peta-orm 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4079 @@
1
+ // @bun
2
+ import {
3
+ MigrationGenerator,
4
+ MigrationRunner,
5
+ loadConfig,
6
+ loadMigrationFiles
7
+ } from "../index-m8r7jkr4.js";
8
+ import"../index-qwps5bne.js";
9
+ import {
10
+ __export
11
+ } from "../index-k18nf2r7.js";
12
+
13
+ // node_modules/cac/dist/index.js
14
+ function toArr(any) {
15
+ return any == null ? [] : Array.isArray(any) ? any : [any];
16
+ }
17
+ function toVal(out, key, val, opts) {
18
+ var x, old = out[key], nxt = ~opts.string.indexOf(key) ? val == null || val === true ? "" : String(val) : typeof val === "boolean" ? val : ~opts.boolean.indexOf(key) ? val === "false" ? false : val === "true" || (out._.push((x = +val, x * 0 === 0) ? x : val), !!val) : (x = +val, x * 0 === 0) ? x : val;
19
+ out[key] = old == null ? nxt : Array.isArray(old) ? old.concat(nxt) : [old, nxt];
20
+ }
21
+ function lib_default(args, opts) {
22
+ args = args || [];
23
+ opts = opts || {};
24
+ var k, arr, arg, name, val, out = { _: [] };
25
+ var i = 0, j = 0, idx = 0, len = args.length;
26
+ const alibi = opts.alias !== undefined;
27
+ const strict = opts.unknown !== undefined;
28
+ const defaults = opts.default !== undefined;
29
+ opts.alias = opts.alias || {};
30
+ opts.string = toArr(opts.string);
31
+ opts.boolean = toArr(opts.boolean);
32
+ if (alibi)
33
+ for (k in opts.alias) {
34
+ arr = opts.alias[k] = toArr(opts.alias[k]);
35
+ for (i = 0;i < arr.length; i++)
36
+ (opts.alias[arr[i]] = arr.concat(k)).splice(i, 1);
37
+ }
38
+ for (i = opts.boolean.length;i-- > 0; ) {
39
+ arr = opts.alias[opts.boolean[i]] || [];
40
+ for (j = arr.length;j-- > 0; )
41
+ opts.boolean.push(arr[j]);
42
+ }
43
+ for (i = opts.string.length;i-- > 0; ) {
44
+ arr = opts.alias[opts.string[i]] || [];
45
+ for (j = arr.length;j-- > 0; )
46
+ opts.string.push(arr[j]);
47
+ }
48
+ if (defaults)
49
+ for (k in opts.default) {
50
+ name = typeof opts.default[k];
51
+ arr = opts.alias[k] = opts.alias[k] || [];
52
+ if (opts[name] !== undefined) {
53
+ opts[name].push(k);
54
+ for (i = 0;i < arr.length; i++)
55
+ opts[name].push(arr[i]);
56
+ }
57
+ }
58
+ const keys = strict ? Object.keys(opts.alias) : [];
59
+ for (i = 0;i < len; i++) {
60
+ arg = args[i];
61
+ if (arg === "--") {
62
+ out._ = out._.concat(args.slice(++i));
63
+ break;
64
+ }
65
+ for (j = 0;j < arg.length; j++)
66
+ if (arg.charCodeAt(j) !== 45)
67
+ break;
68
+ if (j === 0)
69
+ out._.push(arg);
70
+ else if (arg.substring(j, j + 3) === "no-") {
71
+ name = arg.substring(j + 3);
72
+ if (strict && !~keys.indexOf(name))
73
+ return opts.unknown(arg);
74
+ out[name] = false;
75
+ } else {
76
+ for (idx = j + 1;idx < arg.length; idx++)
77
+ if (arg.charCodeAt(idx) === 61)
78
+ break;
79
+ name = arg.substring(j, idx);
80
+ val = arg.substring(++idx) || i + 1 === len || ("" + args[i + 1]).charCodeAt(0) === 45 || args[++i];
81
+ arr = j === 2 ? [name] : name;
82
+ for (idx = 0;idx < arr.length; idx++) {
83
+ name = arr[idx];
84
+ if (strict && !~keys.indexOf(name))
85
+ return opts.unknown("-".repeat(j) + name);
86
+ toVal(out, name, idx + 1 < arr.length || val, opts);
87
+ }
88
+ }
89
+ }
90
+ if (defaults) {
91
+ for (k in opts.default)
92
+ if (out[k] === undefined)
93
+ out[k] = opts.default[k];
94
+ }
95
+ if (alibi)
96
+ for (k in out) {
97
+ arr = opts.alias[k] || [];
98
+ while (arr.length > 0)
99
+ out[arr.shift()] = out[k];
100
+ }
101
+ return out;
102
+ }
103
+ function removeBrackets(v) {
104
+ return v.replace(/[<[].+/, "").trim();
105
+ }
106
+ function findAllBrackets(v) {
107
+ const ANGLED_BRACKET_RE_GLOBAL = /<([^>]+)>/g;
108
+ const SQUARE_BRACKET_RE_GLOBAL = /\[([^\]]+)\]/g;
109
+ const res = [];
110
+ const parse = (match) => {
111
+ let variadic = false;
112
+ let value = match[1];
113
+ if (value.startsWith("...")) {
114
+ value = value.slice(3);
115
+ variadic = true;
116
+ }
117
+ return {
118
+ required: match[0].startsWith("<"),
119
+ value,
120
+ variadic
121
+ };
122
+ };
123
+ let angledMatch;
124
+ while (angledMatch = ANGLED_BRACKET_RE_GLOBAL.exec(v))
125
+ res.push(parse(angledMatch));
126
+ let squareMatch;
127
+ while (squareMatch = SQUARE_BRACKET_RE_GLOBAL.exec(v))
128
+ res.push(parse(squareMatch));
129
+ return res;
130
+ }
131
+ function getMriOptions(options) {
132
+ const result = {
133
+ alias: {},
134
+ boolean: []
135
+ };
136
+ for (const [index, option] of options.entries()) {
137
+ if (option.names.length > 1)
138
+ result.alias[option.names[0]] = option.names.slice(1);
139
+ if (option.isBoolean)
140
+ if (option.negated) {
141
+ if (!options.some((o, i) => {
142
+ return i !== index && o.names.some((name) => option.names.includes(name)) && typeof o.required === "boolean";
143
+ }))
144
+ result.boolean.push(option.names[0]);
145
+ } else
146
+ result.boolean.push(option.names[0]);
147
+ }
148
+ return result;
149
+ }
150
+ function findLongest(arr) {
151
+ return arr.sort((a, b) => {
152
+ return a.length > b.length ? -1 : 1;
153
+ })[0];
154
+ }
155
+ function padRight(str, length) {
156
+ return str.length >= length ? str : `${str}${" ".repeat(length - str.length)}`;
157
+ }
158
+ function camelcase(input) {
159
+ return input.replaceAll(/([a-z])-([a-z])/g, (_, p1, p2) => {
160
+ return p1 + p2.toUpperCase();
161
+ });
162
+ }
163
+ function setDotProp(obj, keys, val) {
164
+ let current = obj;
165
+ for (let i = 0;i < keys.length; i++) {
166
+ const key = keys[i];
167
+ if (i === keys.length - 1) {
168
+ current[key] = val;
169
+ return;
170
+ }
171
+ if (current[key] == null) {
172
+ const nextKeyIsArrayIndex = +keys[i + 1] > -1;
173
+ current[key] = nextKeyIsArrayIndex ? [] : {};
174
+ }
175
+ current = current[key];
176
+ }
177
+ }
178
+ function setByType(obj, transforms) {
179
+ for (const key of Object.keys(transforms)) {
180
+ const transform = transforms[key];
181
+ if (transform.shouldTransform) {
182
+ obj[key] = [obj[key]].flat();
183
+ if (typeof transform.transformFunction === "function")
184
+ obj[key] = obj[key].map(transform.transformFunction);
185
+ }
186
+ }
187
+ }
188
+ function getFileName(input) {
189
+ const m = /([^\\/]+)$/.exec(input);
190
+ return m ? m[1] : "";
191
+ }
192
+ function camelcaseOptionName(name) {
193
+ return name.split(".").map((v, i) => {
194
+ return i === 0 ? camelcase(v) : v;
195
+ }).join(".");
196
+ }
197
+ var CACError = class extends Error {
198
+ constructor(message) {
199
+ super(message);
200
+ this.name = "CACError";
201
+ if (typeof Error.captureStackTrace !== "function")
202
+ this.stack = new Error(message).stack;
203
+ }
204
+ };
205
+ var Option = class {
206
+ rawName;
207
+ description;
208
+ name;
209
+ names;
210
+ isBoolean;
211
+ required;
212
+ config;
213
+ negated;
214
+ constructor(rawName, description, config) {
215
+ this.rawName = rawName;
216
+ this.description = description;
217
+ this.config = Object.assign({}, config);
218
+ rawName = rawName.replaceAll(".*", "");
219
+ this.negated = false;
220
+ this.names = removeBrackets(rawName).split(",").map((v) => {
221
+ let name = v.trim().replace(/^-{1,2}/, "");
222
+ if (name.startsWith("no-")) {
223
+ this.negated = true;
224
+ name = name.replace(/^no-/, "");
225
+ }
226
+ return camelcaseOptionName(name);
227
+ }).sort((a, b) => a.length > b.length ? 1 : -1);
228
+ this.name = this.names.at(-1);
229
+ if (this.negated && this.config.default == null)
230
+ this.config.default = true;
231
+ if (rawName.includes("<"))
232
+ this.required = true;
233
+ else if (rawName.includes("["))
234
+ this.required = false;
235
+ else
236
+ this.isBoolean = true;
237
+ }
238
+ };
239
+ var runtimeProcessArgs;
240
+ var runtimeInfo;
241
+ if (typeof process !== "undefined") {
242
+ let runtimeName;
243
+ if (typeof Deno !== "undefined" && typeof Deno.version?.deno === "string")
244
+ runtimeName = "deno";
245
+ else if (typeof Bun !== "undefined" && typeof Bun.version === "string")
246
+ runtimeName = "bun";
247
+ else
248
+ runtimeName = "node";
249
+ runtimeInfo = `${process.platform}-${process.arch} ${runtimeName}-${process.version}`;
250
+ runtimeProcessArgs = process.argv;
251
+ } else if (typeof navigator === "undefined")
252
+ runtimeInfo = `unknown`;
253
+ else
254
+ runtimeInfo = `${navigator.platform} ${navigator.userAgent}`;
255
+ var Command = class {
256
+ rawName;
257
+ description;
258
+ config;
259
+ cli;
260
+ options;
261
+ aliasNames;
262
+ name;
263
+ args;
264
+ commandAction;
265
+ usageText;
266
+ versionNumber;
267
+ examples;
268
+ helpCallback;
269
+ globalCommand;
270
+ constructor(rawName, description, config = {}, cli) {
271
+ this.rawName = rawName;
272
+ this.description = description;
273
+ this.config = config;
274
+ this.cli = cli;
275
+ this.options = [];
276
+ this.aliasNames = [];
277
+ this.name = removeBrackets(rawName);
278
+ this.args = findAllBrackets(rawName);
279
+ this.examples = [];
280
+ }
281
+ usage(text) {
282
+ this.usageText = text;
283
+ return this;
284
+ }
285
+ allowUnknownOptions() {
286
+ this.config.allowUnknownOptions = true;
287
+ return this;
288
+ }
289
+ ignoreOptionDefaultValue() {
290
+ this.config.ignoreOptionDefaultValue = true;
291
+ return this;
292
+ }
293
+ version(version, customFlags = "-v, --version") {
294
+ this.versionNumber = version;
295
+ this.option(customFlags, "Display version number");
296
+ return this;
297
+ }
298
+ example(example) {
299
+ this.examples.push(example);
300
+ return this;
301
+ }
302
+ option(rawName, description, config) {
303
+ const option = new Option(rawName, description, config);
304
+ this.options.push(option);
305
+ return this;
306
+ }
307
+ alias(name) {
308
+ this.aliasNames.push(name);
309
+ return this;
310
+ }
311
+ action(callback) {
312
+ this.commandAction = callback;
313
+ return this;
314
+ }
315
+ isMatched(name) {
316
+ return this.name === name || this.aliasNames.includes(name);
317
+ }
318
+ get isDefaultCommand() {
319
+ return this.name === "" || this.aliasNames.includes("!");
320
+ }
321
+ get isGlobalCommand() {
322
+ return this instanceof GlobalCommand;
323
+ }
324
+ hasOption(name) {
325
+ name = name.split(".")[0];
326
+ return this.options.find((option) => {
327
+ return option.names.includes(name);
328
+ });
329
+ }
330
+ outputHelp() {
331
+ const { name, commands } = this.cli;
332
+ const { versionNumber, options: globalOptions, helpCallback } = this.cli.globalCommand;
333
+ let sections = [{ body: `${name}${versionNumber ? `/${versionNumber}` : ""}` }];
334
+ sections.push({
335
+ title: "Usage",
336
+ body: ` $ ${name} ${this.usageText || this.rawName}`
337
+ });
338
+ if ((this.isGlobalCommand || this.isDefaultCommand) && commands.length > 0) {
339
+ const longestCommandName = findLongest(commands.map((command) => command.rawName));
340
+ sections.push({
341
+ title: "Commands",
342
+ body: commands.map((command) => {
343
+ return ` ${padRight(command.rawName, longestCommandName.length)} ${command.description}`;
344
+ }).join(`
345
+ `)
346
+ }, {
347
+ title: `For more info, run any command with the \`--help\` flag`,
348
+ body: commands.map((command) => ` $ ${name}${command.name === "" ? "" : ` ${command.name}`} --help`).join(`
349
+ `)
350
+ });
351
+ }
352
+ let options = this.isGlobalCommand ? globalOptions : [...this.options, ...globalOptions || []];
353
+ if (!this.isGlobalCommand && !this.isDefaultCommand)
354
+ options = options.filter((option) => option.name !== "version");
355
+ if (options.length > 0) {
356
+ const longestOptionName = findLongest(options.map((option) => option.rawName));
357
+ sections.push({
358
+ title: "Options",
359
+ body: options.map((option) => {
360
+ return ` ${padRight(option.rawName, longestOptionName.length)} ${option.description} ${option.config.default === undefined ? "" : `(default: ${option.config.default})`}`;
361
+ }).join(`
362
+ `)
363
+ });
364
+ }
365
+ if (this.examples.length > 0)
366
+ sections.push({
367
+ title: "Examples",
368
+ body: this.examples.map((example) => {
369
+ if (typeof example === "function")
370
+ return example(name);
371
+ return example;
372
+ }).join(`
373
+ `)
374
+ });
375
+ if (helpCallback)
376
+ sections = helpCallback(sections) || sections;
377
+ console.info(sections.map((section) => {
378
+ return section.title ? `${section.title}:
379
+ ${section.body}` : section.body;
380
+ }).join(`
381
+
382
+ `));
383
+ }
384
+ outputVersion() {
385
+ const { name } = this.cli;
386
+ const { versionNumber } = this.cli.globalCommand;
387
+ if (versionNumber)
388
+ console.info(`${name}/${versionNumber} ${runtimeInfo}`);
389
+ }
390
+ checkRequiredArgs() {
391
+ const minimalArgsCount = this.args.filter((arg) => arg.required).length;
392
+ if (this.cli.args.length < minimalArgsCount)
393
+ throw new CACError(`missing required args for command \`${this.rawName}\``);
394
+ }
395
+ checkUnknownOptions() {
396
+ const { options, globalCommand } = this.cli;
397
+ if (!this.config.allowUnknownOptions) {
398
+ for (const name of Object.keys(options))
399
+ if (name !== "--" && !this.hasOption(name) && !globalCommand.hasOption(name))
400
+ throw new CACError(`Unknown option \`${name.length > 1 ? `--${name}` : `-${name}`}\``);
401
+ }
402
+ }
403
+ checkOptionValue() {
404
+ const { options: parsedOptions, globalCommand } = this.cli;
405
+ const options = [...globalCommand.options, ...this.options];
406
+ for (const option of options) {
407
+ const value = parsedOptions[option.name.split(".")[0]];
408
+ if (option.required) {
409
+ const hasNegated = options.some((o) => o.negated && o.names.includes(option.name));
410
+ if (value === true || value === false && !hasNegated)
411
+ throw new CACError(`option \`${option.rawName}\` value is missing`);
412
+ }
413
+ }
414
+ }
415
+ checkUnusedArgs() {
416
+ const maximumArgsCount = this.args.some((arg) => arg.variadic) ? Infinity : this.args.length;
417
+ if (maximumArgsCount < this.cli.args.length)
418
+ throw new CACError(`Unused args: ${this.cli.args.slice(maximumArgsCount).map((arg) => `\`${arg}\``).join(", ")}`);
419
+ }
420
+ };
421
+ var GlobalCommand = class extends Command {
422
+ constructor(cli) {
423
+ super("@@global@@", "", {}, cli);
424
+ }
425
+ };
426
+ var CAC = class extends EventTarget {
427
+ name;
428
+ commands;
429
+ globalCommand;
430
+ matchedCommand;
431
+ matchedCommandName;
432
+ rawArgs;
433
+ args;
434
+ options;
435
+ showHelpOnExit;
436
+ showVersionOnExit;
437
+ constructor(name = "") {
438
+ super();
439
+ this.name = name;
440
+ this.commands = [];
441
+ this.rawArgs = [];
442
+ this.args = [];
443
+ this.options = {};
444
+ this.globalCommand = new GlobalCommand(this);
445
+ this.globalCommand.usage("<command> [options]");
446
+ }
447
+ usage(text) {
448
+ this.globalCommand.usage(text);
449
+ return this;
450
+ }
451
+ command(rawName, description, config) {
452
+ const command = new Command(rawName, description || "", config, this);
453
+ command.globalCommand = this.globalCommand;
454
+ this.commands.push(command);
455
+ return command;
456
+ }
457
+ option(rawName, description, config) {
458
+ this.globalCommand.option(rawName, description, config);
459
+ return this;
460
+ }
461
+ help(callback) {
462
+ this.globalCommand.option("-h, --help", "Display this message");
463
+ this.globalCommand.helpCallback = callback;
464
+ this.showHelpOnExit = true;
465
+ return this;
466
+ }
467
+ version(version, customFlags = "-v, --version") {
468
+ this.globalCommand.version(version, customFlags);
469
+ this.showVersionOnExit = true;
470
+ return this;
471
+ }
472
+ example(example) {
473
+ this.globalCommand.example(example);
474
+ return this;
475
+ }
476
+ outputHelp() {
477
+ if (this.matchedCommand)
478
+ this.matchedCommand.outputHelp();
479
+ else
480
+ this.globalCommand.outputHelp();
481
+ }
482
+ outputVersion() {
483
+ this.globalCommand.outputVersion();
484
+ }
485
+ setParsedInfo({ args, options }, matchedCommand, matchedCommandName) {
486
+ this.args = args;
487
+ this.options = options;
488
+ if (matchedCommand)
489
+ this.matchedCommand = matchedCommand;
490
+ if (matchedCommandName)
491
+ this.matchedCommandName = matchedCommandName;
492
+ return this;
493
+ }
494
+ unsetMatchedCommand() {
495
+ this.matchedCommand = undefined;
496
+ this.matchedCommandName = undefined;
497
+ }
498
+ parse(argv, { run = true } = {}) {
499
+ if (!argv) {
500
+ if (!runtimeProcessArgs)
501
+ throw new Error("No argv provided and runtime process argv is not available.");
502
+ argv = runtimeProcessArgs;
503
+ }
504
+ this.rawArgs = argv;
505
+ if (!this.name)
506
+ this.name = argv[1] ? getFileName(argv[1]) : "cli";
507
+ let shouldParse = true;
508
+ for (const command of this.commands) {
509
+ const parsed = this.mri(argv.slice(2), command);
510
+ const commandName = parsed.args[0];
511
+ if (command.isMatched(commandName)) {
512
+ shouldParse = false;
513
+ const parsedInfo = {
514
+ ...parsed,
515
+ args: parsed.args.slice(1)
516
+ };
517
+ this.setParsedInfo(parsedInfo, command, commandName);
518
+ this.dispatchEvent(new CustomEvent(`command:${commandName}`, { detail: command }));
519
+ }
520
+ }
521
+ if (shouldParse) {
522
+ for (const command of this.commands)
523
+ if (command.isDefaultCommand) {
524
+ shouldParse = false;
525
+ const parsed = this.mri(argv.slice(2), command);
526
+ this.setParsedInfo(parsed, command);
527
+ this.dispatchEvent(new CustomEvent("command:!", { detail: command }));
528
+ }
529
+ }
530
+ if (shouldParse) {
531
+ const parsed = this.mri(argv.slice(2));
532
+ this.setParsedInfo(parsed);
533
+ }
534
+ if (this.options.help && this.showHelpOnExit) {
535
+ this.outputHelp();
536
+ run = false;
537
+ this.unsetMatchedCommand();
538
+ }
539
+ if (this.options.version && this.showVersionOnExit && this.matchedCommandName == null) {
540
+ this.outputVersion();
541
+ run = false;
542
+ this.unsetMatchedCommand();
543
+ }
544
+ const parsedArgv = {
545
+ args: this.args,
546
+ options: this.options
547
+ };
548
+ if (run)
549
+ this.runMatchedCommand();
550
+ if (!this.matchedCommand && this.args[0])
551
+ this.dispatchEvent(new CustomEvent("command:*", { detail: this.args[0] }));
552
+ return parsedArgv;
553
+ }
554
+ mri(argv, command) {
555
+ const cliOptions = [...this.globalCommand.options, ...command ? command.options : []];
556
+ const mriOptions = getMriOptions(cliOptions);
557
+ let argsAfterDoubleDashes = [];
558
+ const doubleDashesIndex = argv.indexOf("--");
559
+ if (doubleDashesIndex !== -1) {
560
+ argsAfterDoubleDashes = argv.slice(doubleDashesIndex + 1);
561
+ argv = argv.slice(0, doubleDashesIndex);
562
+ }
563
+ let parsed = lib_default(argv, mriOptions);
564
+ parsed = Object.keys(parsed).reduce((res, name) => {
565
+ return {
566
+ ...res,
567
+ [camelcaseOptionName(name)]: parsed[name]
568
+ };
569
+ }, { _: [] });
570
+ const args = parsed._;
571
+ const options = { "--": argsAfterDoubleDashes };
572
+ const ignoreDefault = command && command.config.ignoreOptionDefaultValue ? command.config.ignoreOptionDefaultValue : this.globalCommand.config.ignoreOptionDefaultValue;
573
+ const transforms = Object.create(null);
574
+ for (const cliOption of cliOptions) {
575
+ if (!ignoreDefault && cliOption.config.default !== undefined)
576
+ for (const name of cliOption.names)
577
+ options[name] = cliOption.config.default;
578
+ if (Array.isArray(cliOption.config.type) && transforms[cliOption.name] === undefined) {
579
+ transforms[cliOption.name] = Object.create(null);
580
+ transforms[cliOption.name].shouldTransform = true;
581
+ transforms[cliOption.name].transformFunction = cliOption.config.type[0];
582
+ }
583
+ }
584
+ for (const key of Object.keys(parsed))
585
+ if (key !== "_") {
586
+ setDotProp(options, key.split("."), parsed[key]);
587
+ setByType(options, transforms);
588
+ }
589
+ return {
590
+ args,
591
+ options
592
+ };
593
+ }
594
+ runMatchedCommand() {
595
+ const { args, options, matchedCommand: command } = this;
596
+ if (!command || !command.commandAction)
597
+ return;
598
+ command.checkUnknownOptions();
599
+ command.checkOptionValue();
600
+ command.checkRequiredArgs();
601
+ command.checkUnusedArgs();
602
+ const actionArgs = [];
603
+ command.args.forEach((arg, index) => {
604
+ if (arg.variadic)
605
+ actionArgs.push(args.slice(index));
606
+ else
607
+ actionArgs.push(args[index]);
608
+ });
609
+ actionArgs.push(options);
610
+ return command.commandAction.apply(this, actionArgs);
611
+ }
612
+ };
613
+ var cac = (name = "") => new CAC(name);
614
+
615
+ // node_modules/ora/index.js
616
+ import process8 from "process";
617
+ import { stripVTControlCharacters } from "util";
618
+
619
+ // node_modules/chalk/source/vendor/ansi-styles/index.js
620
+ var ANSI_BACKGROUND_OFFSET = 10;
621
+ var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
622
+ var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
623
+ var wrapAnsi16m = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`;
624
+ var styles = {
625
+ modifier: {
626
+ reset: [0, 0],
627
+ bold: [1, 22],
628
+ dim: [2, 22],
629
+ italic: [3, 23],
630
+ underline: [4, 24],
631
+ overline: [53, 55],
632
+ inverse: [7, 27],
633
+ hidden: [8, 28],
634
+ strikethrough: [9, 29]
635
+ },
636
+ color: {
637
+ black: [30, 39],
638
+ red: [31, 39],
639
+ green: [32, 39],
640
+ yellow: [33, 39],
641
+ blue: [34, 39],
642
+ magenta: [35, 39],
643
+ cyan: [36, 39],
644
+ white: [37, 39],
645
+ blackBright: [90, 39],
646
+ gray: [90, 39],
647
+ grey: [90, 39],
648
+ redBright: [91, 39],
649
+ greenBright: [92, 39],
650
+ yellowBright: [93, 39],
651
+ blueBright: [94, 39],
652
+ magentaBright: [95, 39],
653
+ cyanBright: [96, 39],
654
+ whiteBright: [97, 39]
655
+ },
656
+ bgColor: {
657
+ bgBlack: [40, 49],
658
+ bgRed: [41, 49],
659
+ bgGreen: [42, 49],
660
+ bgYellow: [43, 49],
661
+ bgBlue: [44, 49],
662
+ bgMagenta: [45, 49],
663
+ bgCyan: [46, 49],
664
+ bgWhite: [47, 49],
665
+ bgBlackBright: [100, 49],
666
+ bgGray: [100, 49],
667
+ bgGrey: [100, 49],
668
+ bgRedBright: [101, 49],
669
+ bgGreenBright: [102, 49],
670
+ bgYellowBright: [103, 49],
671
+ bgBlueBright: [104, 49],
672
+ bgMagentaBright: [105, 49],
673
+ bgCyanBright: [106, 49],
674
+ bgWhiteBright: [107, 49]
675
+ }
676
+ };
677
+ var modifierNames = Object.keys(styles.modifier);
678
+ var foregroundColorNames = Object.keys(styles.color);
679
+ var backgroundColorNames = Object.keys(styles.bgColor);
680
+ var colorNames = [...foregroundColorNames, ...backgroundColorNames];
681
+ function assembleStyles() {
682
+ const codes = new Map;
683
+ for (const [groupName, group] of Object.entries(styles)) {
684
+ for (const [styleName, style] of Object.entries(group)) {
685
+ styles[styleName] = {
686
+ open: `\x1B[${style[0]}m`,
687
+ close: `\x1B[${style[1]}m`
688
+ };
689
+ group[styleName] = styles[styleName];
690
+ codes.set(style[0], style[1]);
691
+ }
692
+ Object.defineProperty(styles, groupName, {
693
+ value: group,
694
+ enumerable: false
695
+ });
696
+ }
697
+ Object.defineProperty(styles, "codes", {
698
+ value: codes,
699
+ enumerable: false
700
+ });
701
+ styles.color.close = "\x1B[39m";
702
+ styles.bgColor.close = "\x1B[49m";
703
+ styles.color.ansi = wrapAnsi16();
704
+ styles.color.ansi256 = wrapAnsi256();
705
+ styles.color.ansi16m = wrapAnsi16m();
706
+ styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
707
+ styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
708
+ styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
709
+ Object.defineProperties(styles, {
710
+ rgbToAnsi256: {
711
+ value(red, green, blue) {
712
+ if (red === green && green === blue) {
713
+ if (red < 8) {
714
+ return 16;
715
+ }
716
+ if (red > 248) {
717
+ return 231;
718
+ }
719
+ return Math.round((red - 8) / 247 * 24) + 232;
720
+ }
721
+ return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);
722
+ },
723
+ enumerable: false
724
+ },
725
+ hexToRgb: {
726
+ value(hex) {
727
+ const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
728
+ if (!matches) {
729
+ return [0, 0, 0];
730
+ }
731
+ let [colorString] = matches;
732
+ if (colorString.length === 3) {
733
+ colorString = [...colorString].map((character) => character + character).join("");
734
+ }
735
+ const integer = Number.parseInt(colorString, 16);
736
+ return [
737
+ integer >> 16 & 255,
738
+ integer >> 8 & 255,
739
+ integer & 255
740
+ ];
741
+ },
742
+ enumerable: false
743
+ },
744
+ hexToAnsi256: {
745
+ value: (hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)),
746
+ enumerable: false
747
+ },
748
+ ansi256ToAnsi: {
749
+ value(code) {
750
+ if (code < 8) {
751
+ return 30 + code;
752
+ }
753
+ if (code < 16) {
754
+ return 90 + (code - 8);
755
+ }
756
+ let red;
757
+ let green;
758
+ let blue;
759
+ if (code >= 232) {
760
+ red = ((code - 232) * 10 + 8) / 255;
761
+ green = red;
762
+ blue = red;
763
+ } else {
764
+ code -= 16;
765
+ const remainder = code % 36;
766
+ red = Math.floor(code / 36) / 5;
767
+ green = Math.floor(remainder / 6) / 5;
768
+ blue = remainder % 6 / 5;
769
+ }
770
+ const value = Math.max(red, green, blue) * 2;
771
+ if (value === 0) {
772
+ return 30;
773
+ }
774
+ let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
775
+ if (value === 2) {
776
+ result += 60;
777
+ }
778
+ return result;
779
+ },
780
+ enumerable: false
781
+ },
782
+ rgbToAnsi: {
783
+ value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),
784
+ enumerable: false
785
+ },
786
+ hexToAnsi: {
787
+ value: (hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),
788
+ enumerable: false
789
+ }
790
+ });
791
+ return styles;
792
+ }
793
+ var ansiStyles = assembleStyles();
794
+ var ansi_styles_default = ansiStyles;
795
+
796
+ // node_modules/chalk/source/vendor/supports-color/index.js
797
+ import process2 from "process";
798
+ import os from "os";
799
+ import tty from "tty";
800
+ function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process2.argv) {
801
+ const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
802
+ const position = argv.indexOf(prefix + flag);
803
+ const terminatorPosition = argv.indexOf("--");
804
+ return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
805
+ }
806
+ var { env } = process2;
807
+ var flagForceColor;
808
+ if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
809
+ flagForceColor = 0;
810
+ } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
811
+ flagForceColor = 1;
812
+ }
813
+ function envForceColor() {
814
+ if ("FORCE_COLOR" in env) {
815
+ if (env.FORCE_COLOR === "true") {
816
+ return 1;
817
+ }
818
+ if (env.FORCE_COLOR === "false") {
819
+ return 0;
820
+ }
821
+ return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
822
+ }
823
+ }
824
+ function translateLevel(level) {
825
+ if (level === 0) {
826
+ return false;
827
+ }
828
+ return {
829
+ level,
830
+ hasBasic: true,
831
+ has256: level >= 2,
832
+ has16m: level >= 3
833
+ };
834
+ }
835
+ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
836
+ const noFlagForceColor = envForceColor();
837
+ if (noFlagForceColor !== undefined) {
838
+ flagForceColor = noFlagForceColor;
839
+ }
840
+ const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
841
+ if (forceColor === 0) {
842
+ return 0;
843
+ }
844
+ if (sniffFlags) {
845
+ if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
846
+ return 3;
847
+ }
848
+ if (hasFlag("color=256")) {
849
+ return 2;
850
+ }
851
+ }
852
+ if ("TF_BUILD" in env && "AGENT_NAME" in env) {
853
+ return 1;
854
+ }
855
+ if (haveStream && !streamIsTTY && forceColor === undefined) {
856
+ return 0;
857
+ }
858
+ const min = forceColor || 0;
859
+ if (env.TERM === "dumb") {
860
+ return min;
861
+ }
862
+ if (process2.platform === "win32") {
863
+ const osRelease = os.release().split(".");
864
+ if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
865
+ return Number(osRelease[2]) >= 14931 ? 3 : 2;
866
+ }
867
+ return 1;
868
+ }
869
+ if ("CI" in env) {
870
+ if (["GITHUB_ACTIONS", "GITEA_ACTIONS", "CIRCLECI"].some((key) => (key in env))) {
871
+ return 3;
872
+ }
873
+ if (["TRAVIS", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => (sign in env)) || env.CI_NAME === "codeship") {
874
+ return 1;
875
+ }
876
+ return min;
877
+ }
878
+ if ("TEAMCITY_VERSION" in env) {
879
+ return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
880
+ }
881
+ if (env.COLORTERM === "truecolor") {
882
+ return 3;
883
+ }
884
+ if (env.TERM === "xterm-kitty") {
885
+ return 3;
886
+ }
887
+ if (env.TERM === "xterm-ghostty") {
888
+ return 3;
889
+ }
890
+ if (env.TERM === "wezterm") {
891
+ return 3;
892
+ }
893
+ if ("TERM_PROGRAM" in env) {
894
+ const version = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
895
+ switch (env.TERM_PROGRAM) {
896
+ case "iTerm.app": {
897
+ return version >= 3 ? 3 : 2;
898
+ }
899
+ case "Apple_Terminal": {
900
+ return 2;
901
+ }
902
+ }
903
+ }
904
+ if (/-256(color)?$/i.test(env.TERM)) {
905
+ return 2;
906
+ }
907
+ if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
908
+ return 1;
909
+ }
910
+ if ("COLORTERM" in env) {
911
+ return 1;
912
+ }
913
+ return min;
914
+ }
915
+ function createSupportsColor(stream, options = {}) {
916
+ const level = _supportsColor(stream, {
917
+ streamIsTTY: stream && stream.isTTY,
918
+ ...options
919
+ });
920
+ return translateLevel(level);
921
+ }
922
+ var supportsColor = {
923
+ stdout: createSupportsColor({ isTTY: tty.isatty(1) }),
924
+ stderr: createSupportsColor({ isTTY: tty.isatty(2) })
925
+ };
926
+ var supports_color_default = supportsColor;
927
+
928
+ // node_modules/chalk/source/utilities.js
929
+ function stringReplaceAll(string, substring, replacer) {
930
+ let index = string.indexOf(substring);
931
+ if (index === -1) {
932
+ return string;
933
+ }
934
+ const substringLength = substring.length;
935
+ let endIndex = 0;
936
+ let returnValue = "";
937
+ do {
938
+ returnValue += string.slice(endIndex, index) + substring + replacer;
939
+ endIndex = index + substringLength;
940
+ index = string.indexOf(substring, endIndex);
941
+ } while (index !== -1);
942
+ returnValue += string.slice(endIndex);
943
+ return returnValue;
944
+ }
945
+ function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
946
+ let endIndex = 0;
947
+ let returnValue = "";
948
+ do {
949
+ const gotCR = string[index - 1] === "\r";
950
+ returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? `\r
951
+ ` : `
952
+ `) + postfix;
953
+ endIndex = index + 1;
954
+ index = string.indexOf(`
955
+ `, endIndex);
956
+ } while (index !== -1);
957
+ returnValue += string.slice(endIndex);
958
+ return returnValue;
959
+ }
960
+
961
+ // node_modules/chalk/source/index.js
962
+ var { stdout: stdoutColor, stderr: stderrColor } = supports_color_default;
963
+ var GENERATOR = Symbol("GENERATOR");
964
+ var STYLER = Symbol("STYLER");
965
+ var IS_EMPTY = Symbol("IS_EMPTY");
966
+ var levelMapping = [
967
+ "ansi",
968
+ "ansi",
969
+ "ansi256",
970
+ "ansi16m"
971
+ ];
972
+ var styles2 = Object.create(null);
973
+ var applyOptions = (object, options = {}) => {
974
+ if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {
975
+ throw new Error("The `level` option should be an integer from 0 to 3");
976
+ }
977
+ const colorLevel = stdoutColor ? stdoutColor.level : 0;
978
+ object.level = options.level === undefined ? colorLevel : options.level;
979
+ };
980
+ var chalkFactory = (options) => {
981
+ const chalk = (...strings) => strings.join(" ");
982
+ applyOptions(chalk, options);
983
+ Object.setPrototypeOf(chalk, createChalk.prototype);
984
+ return chalk;
985
+ };
986
+ function createChalk(options) {
987
+ return chalkFactory(options);
988
+ }
989
+ Object.setPrototypeOf(createChalk.prototype, Function.prototype);
990
+ for (const [styleName, style] of Object.entries(ansi_styles_default)) {
991
+ styles2[styleName] = {
992
+ get() {
993
+ const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);
994
+ Object.defineProperty(this, styleName, { value: builder });
995
+ return builder;
996
+ }
997
+ };
998
+ }
999
+ styles2.visible = {
1000
+ get() {
1001
+ const builder = createBuilder(this, this[STYLER], true);
1002
+ Object.defineProperty(this, "visible", { value: builder });
1003
+ return builder;
1004
+ }
1005
+ };
1006
+ var getModelAnsi = (model, level, type, ...arguments_) => {
1007
+ if (model === "rgb") {
1008
+ if (level === "ansi16m") {
1009
+ return ansi_styles_default[type].ansi16m(...arguments_);
1010
+ }
1011
+ if (level === "ansi256") {
1012
+ return ansi_styles_default[type].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_));
1013
+ }
1014
+ return ansi_styles_default[type].ansi(ansi_styles_default.rgbToAnsi(...arguments_));
1015
+ }
1016
+ if (model === "hex") {
1017
+ return getModelAnsi("rgb", level, type, ...ansi_styles_default.hexToRgb(...arguments_));
1018
+ }
1019
+ return ansi_styles_default[type][model](...arguments_);
1020
+ };
1021
+ var usedModels = ["rgb", "hex", "ansi256"];
1022
+ for (const model of usedModels) {
1023
+ styles2[model] = {
1024
+ get() {
1025
+ const { level } = this;
1026
+ return function(...arguments_) {
1027
+ const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansi_styles_default.color.close, this[STYLER]);
1028
+ return createBuilder(this, styler, this[IS_EMPTY]);
1029
+ };
1030
+ }
1031
+ };
1032
+ const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
1033
+ styles2[bgModel] = {
1034
+ get() {
1035
+ const { level } = this;
1036
+ return function(...arguments_) {
1037
+ const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansi_styles_default.bgColor.close, this[STYLER]);
1038
+ return createBuilder(this, styler, this[IS_EMPTY]);
1039
+ };
1040
+ }
1041
+ };
1042
+ }
1043
+ var proto = Object.defineProperties(() => {}, {
1044
+ ...styles2,
1045
+ level: {
1046
+ enumerable: true,
1047
+ get() {
1048
+ return this[GENERATOR].level;
1049
+ },
1050
+ set(level) {
1051
+ this[GENERATOR].level = level;
1052
+ }
1053
+ }
1054
+ });
1055
+ var createStyler = (open, close, parent) => {
1056
+ let openAll;
1057
+ let closeAll;
1058
+ if (parent === undefined) {
1059
+ openAll = open;
1060
+ closeAll = close;
1061
+ } else {
1062
+ openAll = parent.openAll + open;
1063
+ closeAll = close + parent.closeAll;
1064
+ }
1065
+ return {
1066
+ open,
1067
+ close,
1068
+ openAll,
1069
+ closeAll,
1070
+ parent
1071
+ };
1072
+ };
1073
+ var createBuilder = (self, _styler, _isEmpty) => {
1074
+ const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" "));
1075
+ Object.setPrototypeOf(builder, proto);
1076
+ builder[GENERATOR] = self;
1077
+ builder[STYLER] = _styler;
1078
+ builder[IS_EMPTY] = _isEmpty;
1079
+ return builder;
1080
+ };
1081
+ var applyStyle = (self, string) => {
1082
+ if (self.level <= 0 || !string) {
1083
+ return self[IS_EMPTY] ? "" : string;
1084
+ }
1085
+ let styler = self[STYLER];
1086
+ if (styler === undefined) {
1087
+ return string;
1088
+ }
1089
+ const { openAll, closeAll } = styler;
1090
+ if (string.includes("\x1B")) {
1091
+ while (styler !== undefined) {
1092
+ string = stringReplaceAll(string, styler.close, styler.open);
1093
+ styler = styler.parent;
1094
+ }
1095
+ }
1096
+ const lfIndex = string.indexOf(`
1097
+ `);
1098
+ if (lfIndex !== -1) {
1099
+ string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
1100
+ }
1101
+ return openAll + string + closeAll;
1102
+ };
1103
+ Object.defineProperties(createChalk.prototype, styles2);
1104
+ var chalk = createChalk();
1105
+ var chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });
1106
+ var source_default = chalk;
1107
+
1108
+ // node_modules/cli-cursor/index.js
1109
+ import process5 from "process";
1110
+
1111
+ // node_modules/restore-cursor/index.js
1112
+ import process4 from "process";
1113
+
1114
+ // node_modules/mimic-function/index.js
1115
+ var copyProperty = (to, from, property, ignoreNonConfigurable) => {
1116
+ if (property === "length" || property === "prototype") {
1117
+ return;
1118
+ }
1119
+ if (property === "arguments" || property === "caller") {
1120
+ return;
1121
+ }
1122
+ const toDescriptor = Object.getOwnPropertyDescriptor(to, property);
1123
+ const fromDescriptor = Object.getOwnPropertyDescriptor(from, property);
1124
+ if (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {
1125
+ return;
1126
+ }
1127
+ Object.defineProperty(to, property, fromDescriptor);
1128
+ };
1129
+ var canCopyProperty = function(toDescriptor, fromDescriptor) {
1130
+ return toDescriptor === undefined || toDescriptor.configurable || toDescriptor.writable === fromDescriptor.writable && toDescriptor.enumerable === fromDescriptor.enumerable && toDescriptor.configurable === fromDescriptor.configurable && (toDescriptor.writable || toDescriptor.value === fromDescriptor.value);
1131
+ };
1132
+ var changePrototype = (to, from) => {
1133
+ const fromPrototype = Object.getPrototypeOf(from);
1134
+ if (fromPrototype === Object.getPrototypeOf(to)) {
1135
+ return;
1136
+ }
1137
+ Object.setPrototypeOf(to, fromPrototype);
1138
+ };
1139
+ var wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/
1140
+ ${fromBody}`;
1141
+ var toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, "toString");
1142
+ var toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, "name");
1143
+ var changeToString = (to, from, name) => {
1144
+ const withName = name === "" ? "" : `with ${name.trim()}() `;
1145
+ const newToString = wrappedToString.bind(null, withName, from.toString());
1146
+ Object.defineProperty(newToString, "name", toStringName);
1147
+ const { writable, enumerable, configurable } = toStringDescriptor;
1148
+ Object.defineProperty(to, "toString", { value: newToString, writable, enumerable, configurable });
1149
+ };
1150
+ function mimicFunction(to, from, { ignoreNonConfigurable = false } = {}) {
1151
+ const { name } = to;
1152
+ for (const property of Reflect.ownKeys(from)) {
1153
+ copyProperty(to, from, property, ignoreNonConfigurable);
1154
+ }
1155
+ changePrototype(to, from);
1156
+ changeToString(to, from, name);
1157
+ return to;
1158
+ }
1159
+
1160
+ // node_modules/onetime/index.js
1161
+ var calledFunctions = new WeakMap;
1162
+ var onetime = (function_, options = {}) => {
1163
+ if (typeof function_ !== "function") {
1164
+ throw new TypeError("Expected a function");
1165
+ }
1166
+ let returnValue;
1167
+ let callCount = 0;
1168
+ const functionName = function_.displayName || function_.name || "<anonymous>";
1169
+ const onetime2 = function(...arguments_) {
1170
+ calledFunctions.set(onetime2, ++callCount);
1171
+ if (callCount === 1) {
1172
+ returnValue = function_.apply(this, arguments_);
1173
+ function_ = undefined;
1174
+ } else if (options.throw === true) {
1175
+ throw new Error(`Function \`${functionName}\` can only be called once`);
1176
+ }
1177
+ return returnValue;
1178
+ };
1179
+ mimicFunction(onetime2, function_);
1180
+ calledFunctions.set(onetime2, callCount);
1181
+ return onetime2;
1182
+ };
1183
+ onetime.callCount = (function_) => {
1184
+ if (!calledFunctions.has(function_)) {
1185
+ throw new Error(`The given function \`${function_.name}\` is not wrapped by the \`onetime\` package`);
1186
+ }
1187
+ return calledFunctions.get(function_);
1188
+ };
1189
+ var onetime_default = onetime;
1190
+
1191
+ // node_modules/signal-exit/dist/mjs/signals.js
1192
+ var signals = [];
1193
+ signals.push("SIGHUP", "SIGINT", "SIGTERM");
1194
+ if (process.platform !== "win32") {
1195
+ signals.push("SIGALRM", "SIGABRT", "SIGVTALRM", "SIGXCPU", "SIGXFSZ", "SIGUSR2", "SIGTRAP", "SIGSYS", "SIGQUIT", "SIGIOT");
1196
+ }
1197
+ if (process.platform === "linux") {
1198
+ signals.push("SIGIO", "SIGPOLL", "SIGPWR", "SIGSTKFLT");
1199
+ }
1200
+
1201
+ // node_modules/signal-exit/dist/mjs/index.js
1202
+ var processOk = (process3) => !!process3 && typeof process3 === "object" && typeof process3.removeListener === "function" && typeof process3.emit === "function" && typeof process3.reallyExit === "function" && typeof process3.listeners === "function" && typeof process3.kill === "function" && typeof process3.pid === "number" && typeof process3.on === "function";
1203
+ var kExitEmitter = Symbol.for("signal-exit emitter");
1204
+ var global = globalThis;
1205
+ var ObjectDefineProperty = Object.defineProperty.bind(Object);
1206
+
1207
+ class Emitter {
1208
+ emitted = {
1209
+ afterExit: false,
1210
+ exit: false
1211
+ };
1212
+ listeners = {
1213
+ afterExit: [],
1214
+ exit: []
1215
+ };
1216
+ count = 0;
1217
+ id = Math.random();
1218
+ constructor() {
1219
+ if (global[kExitEmitter]) {
1220
+ return global[kExitEmitter];
1221
+ }
1222
+ ObjectDefineProperty(global, kExitEmitter, {
1223
+ value: this,
1224
+ writable: false,
1225
+ enumerable: false,
1226
+ configurable: false
1227
+ });
1228
+ }
1229
+ on(ev, fn) {
1230
+ this.listeners[ev].push(fn);
1231
+ }
1232
+ removeListener(ev, fn) {
1233
+ const list = this.listeners[ev];
1234
+ const i = list.indexOf(fn);
1235
+ if (i === -1) {
1236
+ return;
1237
+ }
1238
+ if (i === 0 && list.length === 1) {
1239
+ list.length = 0;
1240
+ } else {
1241
+ list.splice(i, 1);
1242
+ }
1243
+ }
1244
+ emit(ev, code, signal) {
1245
+ if (this.emitted[ev]) {
1246
+ return false;
1247
+ }
1248
+ this.emitted[ev] = true;
1249
+ let ret = false;
1250
+ for (const fn of this.listeners[ev]) {
1251
+ ret = fn(code, signal) === true || ret;
1252
+ }
1253
+ if (ev === "exit") {
1254
+ ret = this.emit("afterExit", code, signal) || ret;
1255
+ }
1256
+ return ret;
1257
+ }
1258
+ }
1259
+
1260
+ class SignalExitBase {
1261
+ }
1262
+ var signalExitWrap = (handler) => {
1263
+ return {
1264
+ onExit(cb, opts) {
1265
+ return handler.onExit(cb, opts);
1266
+ },
1267
+ load() {
1268
+ return handler.load();
1269
+ },
1270
+ unload() {
1271
+ return handler.unload();
1272
+ }
1273
+ };
1274
+ };
1275
+
1276
+ class SignalExitFallback extends SignalExitBase {
1277
+ onExit() {
1278
+ return () => {};
1279
+ }
1280
+ load() {}
1281
+ unload() {}
1282
+ }
1283
+
1284
+ class SignalExit extends SignalExitBase {
1285
+ #hupSig = process3.platform === "win32" ? "SIGINT" : "SIGHUP";
1286
+ #emitter = new Emitter;
1287
+ #process;
1288
+ #originalProcessEmit;
1289
+ #originalProcessReallyExit;
1290
+ #sigListeners = {};
1291
+ #loaded = false;
1292
+ constructor(process3) {
1293
+ super();
1294
+ this.#process = process3;
1295
+ this.#sigListeners = {};
1296
+ for (const sig of signals) {
1297
+ this.#sigListeners[sig] = () => {
1298
+ const listeners = this.#process.listeners(sig);
1299
+ let { count } = this.#emitter;
1300
+ const p = process3;
1301
+ if (typeof p.__signal_exit_emitter__ === "object" && typeof p.__signal_exit_emitter__.count === "number") {
1302
+ count += p.__signal_exit_emitter__.count;
1303
+ }
1304
+ if (listeners.length === count) {
1305
+ this.unload();
1306
+ const ret = this.#emitter.emit("exit", null, sig);
1307
+ const s = sig === "SIGHUP" ? this.#hupSig : sig;
1308
+ if (!ret)
1309
+ process3.kill(process3.pid, s);
1310
+ }
1311
+ };
1312
+ }
1313
+ this.#originalProcessReallyExit = process3.reallyExit;
1314
+ this.#originalProcessEmit = process3.emit;
1315
+ }
1316
+ onExit(cb, opts) {
1317
+ if (!processOk(this.#process)) {
1318
+ return () => {};
1319
+ }
1320
+ if (this.#loaded === false) {
1321
+ this.load();
1322
+ }
1323
+ const ev = opts?.alwaysLast ? "afterExit" : "exit";
1324
+ this.#emitter.on(ev, cb);
1325
+ return () => {
1326
+ this.#emitter.removeListener(ev, cb);
1327
+ if (this.#emitter.listeners["exit"].length === 0 && this.#emitter.listeners["afterExit"].length === 0) {
1328
+ this.unload();
1329
+ }
1330
+ };
1331
+ }
1332
+ load() {
1333
+ if (this.#loaded) {
1334
+ return;
1335
+ }
1336
+ this.#loaded = true;
1337
+ this.#emitter.count += 1;
1338
+ for (const sig of signals) {
1339
+ try {
1340
+ const fn = this.#sigListeners[sig];
1341
+ if (fn)
1342
+ this.#process.on(sig, fn);
1343
+ } catch (_) {}
1344
+ }
1345
+ this.#process.emit = (ev, ...a) => {
1346
+ return this.#processEmit(ev, ...a);
1347
+ };
1348
+ this.#process.reallyExit = (code) => {
1349
+ return this.#processReallyExit(code);
1350
+ };
1351
+ }
1352
+ unload() {
1353
+ if (!this.#loaded) {
1354
+ return;
1355
+ }
1356
+ this.#loaded = false;
1357
+ signals.forEach((sig) => {
1358
+ const listener = this.#sigListeners[sig];
1359
+ if (!listener) {
1360
+ throw new Error("Listener not defined for signal: " + sig);
1361
+ }
1362
+ try {
1363
+ this.#process.removeListener(sig, listener);
1364
+ } catch (_) {}
1365
+ });
1366
+ this.#process.emit = this.#originalProcessEmit;
1367
+ this.#process.reallyExit = this.#originalProcessReallyExit;
1368
+ this.#emitter.count -= 1;
1369
+ }
1370
+ #processReallyExit(code) {
1371
+ if (!processOk(this.#process)) {
1372
+ return 0;
1373
+ }
1374
+ this.#process.exitCode = code || 0;
1375
+ this.#emitter.emit("exit", this.#process.exitCode, null);
1376
+ return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode);
1377
+ }
1378
+ #processEmit(ev, ...args) {
1379
+ const og = this.#originalProcessEmit;
1380
+ if (ev === "exit" && processOk(this.#process)) {
1381
+ if (typeof args[0] === "number") {
1382
+ this.#process.exitCode = args[0];
1383
+ }
1384
+ const ret = og.call(this.#process, ev, ...args);
1385
+ this.#emitter.emit("exit", this.#process.exitCode, null);
1386
+ return ret;
1387
+ } else {
1388
+ return og.call(this.#process, ev, ...args);
1389
+ }
1390
+ }
1391
+ }
1392
+ var process3 = globalThis.process;
1393
+ var {
1394
+ onExit,
1395
+ load,
1396
+ unload
1397
+ } = signalExitWrap(processOk(process3) ? new SignalExit(process3) : new SignalExitFallback);
1398
+
1399
+ // node_modules/restore-cursor/index.js
1400
+ var terminal = process4.stderr.isTTY ? process4.stderr : process4.stdout.isTTY ? process4.stdout : undefined;
1401
+ var restoreCursor = terminal ? onetime_default(() => {
1402
+ onExit(() => {
1403
+ terminal.write("\x1B[?25h");
1404
+ }, { alwaysLast: true });
1405
+ }) : () => {};
1406
+ var restore_cursor_default = restoreCursor;
1407
+
1408
+ // node_modules/cli-cursor/index.js
1409
+ var isHidden = false;
1410
+ var cliCursor = {};
1411
+ cliCursor.show = (writableStream = process5.stderr) => {
1412
+ if (!writableStream.isTTY) {
1413
+ return;
1414
+ }
1415
+ isHidden = false;
1416
+ writableStream.write("\x1B[?25h");
1417
+ };
1418
+ cliCursor.hide = (writableStream = process5.stderr) => {
1419
+ if (!writableStream.isTTY) {
1420
+ return;
1421
+ }
1422
+ restore_cursor_default();
1423
+ isHidden = true;
1424
+ writableStream.write("\x1B[?25l");
1425
+ };
1426
+ cliCursor.toggle = (force, writableStream) => {
1427
+ if (force !== undefined) {
1428
+ isHidden = force;
1429
+ }
1430
+ if (isHidden) {
1431
+ cliCursor.show(writableStream);
1432
+ } else {
1433
+ cliCursor.hide(writableStream);
1434
+ }
1435
+ };
1436
+ var cli_cursor_default = cliCursor;
1437
+ // node_modules/cli-spinners/spinners.json
1438
+ var spinners_default = {
1439
+ dots: {
1440
+ interval: 80,
1441
+ frames: [
1442
+ "\u280B",
1443
+ "\u2819",
1444
+ "\u2839",
1445
+ "\u2838",
1446
+ "\u283C",
1447
+ "\u2834",
1448
+ "\u2826",
1449
+ "\u2827",
1450
+ "\u2807",
1451
+ "\u280F"
1452
+ ]
1453
+ },
1454
+ dots2: {
1455
+ interval: 80,
1456
+ frames: [
1457
+ "\u28FE",
1458
+ "\u28FD",
1459
+ "\u28FB",
1460
+ "\u28BF",
1461
+ "\u287F",
1462
+ "\u28DF",
1463
+ "\u28EF",
1464
+ "\u28F7"
1465
+ ]
1466
+ },
1467
+ dots3: {
1468
+ interval: 80,
1469
+ frames: [
1470
+ "\u280B",
1471
+ "\u2819",
1472
+ "\u281A",
1473
+ "\u281E",
1474
+ "\u2816",
1475
+ "\u2826",
1476
+ "\u2834",
1477
+ "\u2832",
1478
+ "\u2833",
1479
+ "\u2813"
1480
+ ]
1481
+ },
1482
+ dots4: {
1483
+ interval: 80,
1484
+ frames: [
1485
+ "\u2804",
1486
+ "\u2806",
1487
+ "\u2807",
1488
+ "\u280B",
1489
+ "\u2819",
1490
+ "\u2838",
1491
+ "\u2830",
1492
+ "\u2820",
1493
+ "\u2830",
1494
+ "\u2838",
1495
+ "\u2819",
1496
+ "\u280B",
1497
+ "\u2807",
1498
+ "\u2806"
1499
+ ]
1500
+ },
1501
+ dots5: {
1502
+ interval: 80,
1503
+ frames: [
1504
+ "\u280B",
1505
+ "\u2819",
1506
+ "\u281A",
1507
+ "\u2812",
1508
+ "\u2802",
1509
+ "\u2802",
1510
+ "\u2812",
1511
+ "\u2832",
1512
+ "\u2834",
1513
+ "\u2826",
1514
+ "\u2816",
1515
+ "\u2812",
1516
+ "\u2810",
1517
+ "\u2810",
1518
+ "\u2812",
1519
+ "\u2813",
1520
+ "\u280B"
1521
+ ]
1522
+ },
1523
+ dots6: {
1524
+ interval: 80,
1525
+ frames: [
1526
+ "\u2801",
1527
+ "\u2809",
1528
+ "\u2819",
1529
+ "\u281A",
1530
+ "\u2812",
1531
+ "\u2802",
1532
+ "\u2802",
1533
+ "\u2812",
1534
+ "\u2832",
1535
+ "\u2834",
1536
+ "\u2824",
1537
+ "\u2804",
1538
+ "\u2804",
1539
+ "\u2824",
1540
+ "\u2834",
1541
+ "\u2832",
1542
+ "\u2812",
1543
+ "\u2802",
1544
+ "\u2802",
1545
+ "\u2812",
1546
+ "\u281A",
1547
+ "\u2819",
1548
+ "\u2809",
1549
+ "\u2801"
1550
+ ]
1551
+ },
1552
+ dots7: {
1553
+ interval: 80,
1554
+ frames: [
1555
+ "\u2808",
1556
+ "\u2809",
1557
+ "\u280B",
1558
+ "\u2813",
1559
+ "\u2812",
1560
+ "\u2810",
1561
+ "\u2810",
1562
+ "\u2812",
1563
+ "\u2816",
1564
+ "\u2826",
1565
+ "\u2824",
1566
+ "\u2820",
1567
+ "\u2820",
1568
+ "\u2824",
1569
+ "\u2826",
1570
+ "\u2816",
1571
+ "\u2812",
1572
+ "\u2810",
1573
+ "\u2810",
1574
+ "\u2812",
1575
+ "\u2813",
1576
+ "\u280B",
1577
+ "\u2809",
1578
+ "\u2808"
1579
+ ]
1580
+ },
1581
+ dots8: {
1582
+ interval: 80,
1583
+ frames: [
1584
+ "\u2801",
1585
+ "\u2801",
1586
+ "\u2809",
1587
+ "\u2819",
1588
+ "\u281A",
1589
+ "\u2812",
1590
+ "\u2802",
1591
+ "\u2802",
1592
+ "\u2812",
1593
+ "\u2832",
1594
+ "\u2834",
1595
+ "\u2824",
1596
+ "\u2804",
1597
+ "\u2804",
1598
+ "\u2824",
1599
+ "\u2820",
1600
+ "\u2820",
1601
+ "\u2824",
1602
+ "\u2826",
1603
+ "\u2816",
1604
+ "\u2812",
1605
+ "\u2810",
1606
+ "\u2810",
1607
+ "\u2812",
1608
+ "\u2813",
1609
+ "\u280B",
1610
+ "\u2809",
1611
+ "\u2808",
1612
+ "\u2808"
1613
+ ]
1614
+ },
1615
+ dots9: {
1616
+ interval: 80,
1617
+ frames: [
1618
+ "\u28B9",
1619
+ "\u28BA",
1620
+ "\u28BC",
1621
+ "\u28F8",
1622
+ "\u28C7",
1623
+ "\u2867",
1624
+ "\u2857",
1625
+ "\u284F"
1626
+ ]
1627
+ },
1628
+ dots10: {
1629
+ interval: 80,
1630
+ frames: [
1631
+ "\u2884",
1632
+ "\u2882",
1633
+ "\u2881",
1634
+ "\u2841",
1635
+ "\u2848",
1636
+ "\u2850",
1637
+ "\u2860"
1638
+ ]
1639
+ },
1640
+ dots11: {
1641
+ interval: 100,
1642
+ frames: [
1643
+ "\u2801",
1644
+ "\u2802",
1645
+ "\u2804",
1646
+ "\u2840",
1647
+ "\u2880",
1648
+ "\u2820",
1649
+ "\u2810",
1650
+ "\u2808"
1651
+ ]
1652
+ },
1653
+ dots12: {
1654
+ interval: 80,
1655
+ frames: [
1656
+ "\u2880\u2800",
1657
+ "\u2840\u2800",
1658
+ "\u2804\u2800",
1659
+ "\u2882\u2800",
1660
+ "\u2842\u2800",
1661
+ "\u2805\u2800",
1662
+ "\u2883\u2800",
1663
+ "\u2843\u2800",
1664
+ "\u280D\u2800",
1665
+ "\u288B\u2800",
1666
+ "\u284B\u2800",
1667
+ "\u280D\u2801",
1668
+ "\u288B\u2801",
1669
+ "\u284B\u2801",
1670
+ "\u280D\u2809",
1671
+ "\u280B\u2809",
1672
+ "\u280B\u2809",
1673
+ "\u2809\u2819",
1674
+ "\u2809\u2819",
1675
+ "\u2809\u2829",
1676
+ "\u2808\u2899",
1677
+ "\u2808\u2859",
1678
+ "\u2888\u2829",
1679
+ "\u2840\u2899",
1680
+ "\u2804\u2859",
1681
+ "\u2882\u2829",
1682
+ "\u2842\u2898",
1683
+ "\u2805\u2858",
1684
+ "\u2883\u2828",
1685
+ "\u2843\u2890",
1686
+ "\u280D\u2850",
1687
+ "\u288B\u2820",
1688
+ "\u284B\u2880",
1689
+ "\u280D\u2841",
1690
+ "\u288B\u2801",
1691
+ "\u284B\u2801",
1692
+ "\u280D\u2809",
1693
+ "\u280B\u2809",
1694
+ "\u280B\u2809",
1695
+ "\u2809\u2819",
1696
+ "\u2809\u2819",
1697
+ "\u2809\u2829",
1698
+ "\u2808\u2899",
1699
+ "\u2808\u2859",
1700
+ "\u2808\u2829",
1701
+ "\u2800\u2899",
1702
+ "\u2800\u2859",
1703
+ "\u2800\u2829",
1704
+ "\u2800\u2898",
1705
+ "\u2800\u2858",
1706
+ "\u2800\u2828",
1707
+ "\u2800\u2890",
1708
+ "\u2800\u2850",
1709
+ "\u2800\u2820",
1710
+ "\u2800\u2880",
1711
+ "\u2800\u2840"
1712
+ ]
1713
+ },
1714
+ dots13: {
1715
+ interval: 80,
1716
+ frames: [
1717
+ "\u28FC",
1718
+ "\u28F9",
1719
+ "\u28BB",
1720
+ "\u283F",
1721
+ "\u285F",
1722
+ "\u28CF",
1723
+ "\u28E7",
1724
+ "\u28F6"
1725
+ ]
1726
+ },
1727
+ dots14: {
1728
+ interval: 80,
1729
+ frames: [
1730
+ "\u2809\u2809",
1731
+ "\u2808\u2819",
1732
+ "\u2800\u2839",
1733
+ "\u2800\u28B8",
1734
+ "\u2800\u28F0",
1735
+ "\u2880\u28E0",
1736
+ "\u28C0\u28C0",
1737
+ "\u28C4\u2840",
1738
+ "\u28C6\u2800",
1739
+ "\u2847\u2800",
1740
+ "\u280F\u2800",
1741
+ "\u280B\u2801"
1742
+ ]
1743
+ },
1744
+ dots8Bit: {
1745
+ interval: 80,
1746
+ frames: [
1747
+ "\u2800",
1748
+ "\u2801",
1749
+ "\u2802",
1750
+ "\u2803",
1751
+ "\u2804",
1752
+ "\u2805",
1753
+ "\u2806",
1754
+ "\u2807",
1755
+ "\u2840",
1756
+ "\u2841",
1757
+ "\u2842",
1758
+ "\u2843",
1759
+ "\u2844",
1760
+ "\u2845",
1761
+ "\u2846",
1762
+ "\u2847",
1763
+ "\u2808",
1764
+ "\u2809",
1765
+ "\u280A",
1766
+ "\u280B",
1767
+ "\u280C",
1768
+ "\u280D",
1769
+ "\u280E",
1770
+ "\u280F",
1771
+ "\u2848",
1772
+ "\u2849",
1773
+ "\u284A",
1774
+ "\u284B",
1775
+ "\u284C",
1776
+ "\u284D",
1777
+ "\u284E",
1778
+ "\u284F",
1779
+ "\u2810",
1780
+ "\u2811",
1781
+ "\u2812",
1782
+ "\u2813",
1783
+ "\u2814",
1784
+ "\u2815",
1785
+ "\u2816",
1786
+ "\u2817",
1787
+ "\u2850",
1788
+ "\u2851",
1789
+ "\u2852",
1790
+ "\u2853",
1791
+ "\u2854",
1792
+ "\u2855",
1793
+ "\u2856",
1794
+ "\u2857",
1795
+ "\u2818",
1796
+ "\u2819",
1797
+ "\u281A",
1798
+ "\u281B",
1799
+ "\u281C",
1800
+ "\u281D",
1801
+ "\u281E",
1802
+ "\u281F",
1803
+ "\u2858",
1804
+ "\u2859",
1805
+ "\u285A",
1806
+ "\u285B",
1807
+ "\u285C",
1808
+ "\u285D",
1809
+ "\u285E",
1810
+ "\u285F",
1811
+ "\u2820",
1812
+ "\u2821",
1813
+ "\u2822",
1814
+ "\u2823",
1815
+ "\u2824",
1816
+ "\u2825",
1817
+ "\u2826",
1818
+ "\u2827",
1819
+ "\u2860",
1820
+ "\u2861",
1821
+ "\u2862",
1822
+ "\u2863",
1823
+ "\u2864",
1824
+ "\u2865",
1825
+ "\u2866",
1826
+ "\u2867",
1827
+ "\u2828",
1828
+ "\u2829",
1829
+ "\u282A",
1830
+ "\u282B",
1831
+ "\u282C",
1832
+ "\u282D",
1833
+ "\u282E",
1834
+ "\u282F",
1835
+ "\u2868",
1836
+ "\u2869",
1837
+ "\u286A",
1838
+ "\u286B",
1839
+ "\u286C",
1840
+ "\u286D",
1841
+ "\u286E",
1842
+ "\u286F",
1843
+ "\u2830",
1844
+ "\u2831",
1845
+ "\u2832",
1846
+ "\u2833",
1847
+ "\u2834",
1848
+ "\u2835",
1849
+ "\u2836",
1850
+ "\u2837",
1851
+ "\u2870",
1852
+ "\u2871",
1853
+ "\u2872",
1854
+ "\u2873",
1855
+ "\u2874",
1856
+ "\u2875",
1857
+ "\u2876",
1858
+ "\u2877",
1859
+ "\u2838",
1860
+ "\u2839",
1861
+ "\u283A",
1862
+ "\u283B",
1863
+ "\u283C",
1864
+ "\u283D",
1865
+ "\u283E",
1866
+ "\u283F",
1867
+ "\u2878",
1868
+ "\u2879",
1869
+ "\u287A",
1870
+ "\u287B",
1871
+ "\u287C",
1872
+ "\u287D",
1873
+ "\u287E",
1874
+ "\u287F",
1875
+ "\u2880",
1876
+ "\u2881",
1877
+ "\u2882",
1878
+ "\u2883",
1879
+ "\u2884",
1880
+ "\u2885",
1881
+ "\u2886",
1882
+ "\u2887",
1883
+ "\u28C0",
1884
+ "\u28C1",
1885
+ "\u28C2",
1886
+ "\u28C3",
1887
+ "\u28C4",
1888
+ "\u28C5",
1889
+ "\u28C6",
1890
+ "\u28C7",
1891
+ "\u2888",
1892
+ "\u2889",
1893
+ "\u288A",
1894
+ "\u288B",
1895
+ "\u288C",
1896
+ "\u288D",
1897
+ "\u288E",
1898
+ "\u288F",
1899
+ "\u28C8",
1900
+ "\u28C9",
1901
+ "\u28CA",
1902
+ "\u28CB",
1903
+ "\u28CC",
1904
+ "\u28CD",
1905
+ "\u28CE",
1906
+ "\u28CF",
1907
+ "\u2890",
1908
+ "\u2891",
1909
+ "\u2892",
1910
+ "\u2893",
1911
+ "\u2894",
1912
+ "\u2895",
1913
+ "\u2896",
1914
+ "\u2897",
1915
+ "\u28D0",
1916
+ "\u28D1",
1917
+ "\u28D2",
1918
+ "\u28D3",
1919
+ "\u28D4",
1920
+ "\u28D5",
1921
+ "\u28D6",
1922
+ "\u28D7",
1923
+ "\u2898",
1924
+ "\u2899",
1925
+ "\u289A",
1926
+ "\u289B",
1927
+ "\u289C",
1928
+ "\u289D",
1929
+ "\u289E",
1930
+ "\u289F",
1931
+ "\u28D8",
1932
+ "\u28D9",
1933
+ "\u28DA",
1934
+ "\u28DB",
1935
+ "\u28DC",
1936
+ "\u28DD",
1937
+ "\u28DE",
1938
+ "\u28DF",
1939
+ "\u28A0",
1940
+ "\u28A1",
1941
+ "\u28A2",
1942
+ "\u28A3",
1943
+ "\u28A4",
1944
+ "\u28A5",
1945
+ "\u28A6",
1946
+ "\u28A7",
1947
+ "\u28E0",
1948
+ "\u28E1",
1949
+ "\u28E2",
1950
+ "\u28E3",
1951
+ "\u28E4",
1952
+ "\u28E5",
1953
+ "\u28E6",
1954
+ "\u28E7",
1955
+ "\u28A8",
1956
+ "\u28A9",
1957
+ "\u28AA",
1958
+ "\u28AB",
1959
+ "\u28AC",
1960
+ "\u28AD",
1961
+ "\u28AE",
1962
+ "\u28AF",
1963
+ "\u28E8",
1964
+ "\u28E9",
1965
+ "\u28EA",
1966
+ "\u28EB",
1967
+ "\u28EC",
1968
+ "\u28ED",
1969
+ "\u28EE",
1970
+ "\u28EF",
1971
+ "\u28B0",
1972
+ "\u28B1",
1973
+ "\u28B2",
1974
+ "\u28B3",
1975
+ "\u28B4",
1976
+ "\u28B5",
1977
+ "\u28B6",
1978
+ "\u28B7",
1979
+ "\u28F0",
1980
+ "\u28F1",
1981
+ "\u28F2",
1982
+ "\u28F3",
1983
+ "\u28F4",
1984
+ "\u28F5",
1985
+ "\u28F6",
1986
+ "\u28F7",
1987
+ "\u28B8",
1988
+ "\u28B9",
1989
+ "\u28BA",
1990
+ "\u28BB",
1991
+ "\u28BC",
1992
+ "\u28BD",
1993
+ "\u28BE",
1994
+ "\u28BF",
1995
+ "\u28F8",
1996
+ "\u28F9",
1997
+ "\u28FA",
1998
+ "\u28FB",
1999
+ "\u28FC",
2000
+ "\u28FD",
2001
+ "\u28FE",
2002
+ "\u28FF"
2003
+ ]
2004
+ },
2005
+ dotsCircle: {
2006
+ interval: 80,
2007
+ frames: [
2008
+ "\u288E ",
2009
+ "\u280E\u2801",
2010
+ "\u280A\u2811",
2011
+ "\u2808\u2831",
2012
+ " \u2871",
2013
+ "\u2880\u2870",
2014
+ "\u2884\u2860",
2015
+ "\u2886\u2840"
2016
+ ]
2017
+ },
2018
+ sand: {
2019
+ interval: 80,
2020
+ frames: [
2021
+ "\u2801",
2022
+ "\u2802",
2023
+ "\u2804",
2024
+ "\u2840",
2025
+ "\u2848",
2026
+ "\u2850",
2027
+ "\u2860",
2028
+ "\u28C0",
2029
+ "\u28C1",
2030
+ "\u28C2",
2031
+ "\u28C4",
2032
+ "\u28CC",
2033
+ "\u28D4",
2034
+ "\u28E4",
2035
+ "\u28E5",
2036
+ "\u28E6",
2037
+ "\u28EE",
2038
+ "\u28F6",
2039
+ "\u28F7",
2040
+ "\u28FF",
2041
+ "\u287F",
2042
+ "\u283F",
2043
+ "\u289F",
2044
+ "\u281F",
2045
+ "\u285B",
2046
+ "\u281B",
2047
+ "\u282B",
2048
+ "\u288B",
2049
+ "\u280B",
2050
+ "\u280D",
2051
+ "\u2849",
2052
+ "\u2809",
2053
+ "\u2811",
2054
+ "\u2821",
2055
+ "\u2881"
2056
+ ]
2057
+ },
2058
+ line: {
2059
+ interval: 130,
2060
+ frames: [
2061
+ "-",
2062
+ "\\",
2063
+ "|",
2064
+ "/"
2065
+ ]
2066
+ },
2067
+ line2: {
2068
+ interval: 100,
2069
+ frames: [
2070
+ "\u2802",
2071
+ "-",
2072
+ "\u2013",
2073
+ "\u2014",
2074
+ "\u2013",
2075
+ "-"
2076
+ ]
2077
+ },
2078
+ rollingLine: {
2079
+ interval: 80,
2080
+ frames: [
2081
+ "/ ",
2082
+ " - ",
2083
+ " \\ ",
2084
+ " |",
2085
+ " |",
2086
+ " \\ ",
2087
+ " - ",
2088
+ "/ "
2089
+ ]
2090
+ },
2091
+ pipe: {
2092
+ interval: 100,
2093
+ frames: [
2094
+ "\u2524",
2095
+ "\u2518",
2096
+ "\u2534",
2097
+ "\u2514",
2098
+ "\u251C",
2099
+ "\u250C",
2100
+ "\u252C",
2101
+ "\u2510"
2102
+ ]
2103
+ },
2104
+ simpleDots: {
2105
+ interval: 400,
2106
+ frames: [
2107
+ ". ",
2108
+ ".. ",
2109
+ "...",
2110
+ " "
2111
+ ]
2112
+ },
2113
+ simpleDotsScrolling: {
2114
+ interval: 200,
2115
+ frames: [
2116
+ ". ",
2117
+ ".. ",
2118
+ "...",
2119
+ " ..",
2120
+ " .",
2121
+ " "
2122
+ ]
2123
+ },
2124
+ star: {
2125
+ interval: 70,
2126
+ frames: [
2127
+ "\u2736",
2128
+ "\u2738",
2129
+ "\u2739",
2130
+ "\u273A",
2131
+ "\u2739",
2132
+ "\u2737"
2133
+ ]
2134
+ },
2135
+ star2: {
2136
+ interval: 80,
2137
+ frames: [
2138
+ "+",
2139
+ "x",
2140
+ "*"
2141
+ ]
2142
+ },
2143
+ flip: {
2144
+ interval: 70,
2145
+ frames: [
2146
+ "_",
2147
+ "_",
2148
+ "_",
2149
+ "-",
2150
+ "`",
2151
+ "`",
2152
+ "'",
2153
+ "\xB4",
2154
+ "-",
2155
+ "_",
2156
+ "_",
2157
+ "_"
2158
+ ]
2159
+ },
2160
+ hamburger: {
2161
+ interval: 100,
2162
+ frames: [
2163
+ "\u2631",
2164
+ "\u2632",
2165
+ "\u2634"
2166
+ ]
2167
+ },
2168
+ growVertical: {
2169
+ interval: 120,
2170
+ frames: [
2171
+ "\u2581",
2172
+ "\u2583",
2173
+ "\u2584",
2174
+ "\u2585",
2175
+ "\u2586",
2176
+ "\u2587",
2177
+ "\u2586",
2178
+ "\u2585",
2179
+ "\u2584",
2180
+ "\u2583"
2181
+ ]
2182
+ },
2183
+ growHorizontal: {
2184
+ interval: 120,
2185
+ frames: [
2186
+ "\u258F",
2187
+ "\u258E",
2188
+ "\u258D",
2189
+ "\u258C",
2190
+ "\u258B",
2191
+ "\u258A",
2192
+ "\u2589",
2193
+ "\u258A",
2194
+ "\u258B",
2195
+ "\u258C",
2196
+ "\u258D",
2197
+ "\u258E"
2198
+ ]
2199
+ },
2200
+ balloon: {
2201
+ interval: 140,
2202
+ frames: [
2203
+ " ",
2204
+ ".",
2205
+ "o",
2206
+ "O",
2207
+ "@",
2208
+ "*",
2209
+ " "
2210
+ ]
2211
+ },
2212
+ balloon2: {
2213
+ interval: 120,
2214
+ frames: [
2215
+ ".",
2216
+ "o",
2217
+ "O",
2218
+ "\xB0",
2219
+ "O",
2220
+ "o",
2221
+ "."
2222
+ ]
2223
+ },
2224
+ noise: {
2225
+ interval: 100,
2226
+ frames: [
2227
+ "\u2593",
2228
+ "\u2592",
2229
+ "\u2591"
2230
+ ]
2231
+ },
2232
+ bounce: {
2233
+ interval: 120,
2234
+ frames: [
2235
+ "\u2801",
2236
+ "\u2802",
2237
+ "\u2804",
2238
+ "\u2802"
2239
+ ]
2240
+ },
2241
+ boxBounce: {
2242
+ interval: 120,
2243
+ frames: [
2244
+ "\u2596",
2245
+ "\u2598",
2246
+ "\u259D",
2247
+ "\u2597"
2248
+ ]
2249
+ },
2250
+ boxBounce2: {
2251
+ interval: 100,
2252
+ frames: [
2253
+ "\u258C",
2254
+ "\u2580",
2255
+ "\u2590",
2256
+ "\u2584"
2257
+ ]
2258
+ },
2259
+ triangle: {
2260
+ interval: 50,
2261
+ frames: [
2262
+ "\u25E2",
2263
+ "\u25E3",
2264
+ "\u25E4",
2265
+ "\u25E5"
2266
+ ]
2267
+ },
2268
+ binary: {
2269
+ interval: 80,
2270
+ frames: [
2271
+ "010010",
2272
+ "001100",
2273
+ "100101",
2274
+ "111010",
2275
+ "111101",
2276
+ "010111",
2277
+ "101011",
2278
+ "111000",
2279
+ "110011",
2280
+ "110101"
2281
+ ]
2282
+ },
2283
+ arc: {
2284
+ interval: 100,
2285
+ frames: [
2286
+ "\u25DC",
2287
+ "\u25E0",
2288
+ "\u25DD",
2289
+ "\u25DE",
2290
+ "\u25E1",
2291
+ "\u25DF"
2292
+ ]
2293
+ },
2294
+ circle: {
2295
+ interval: 120,
2296
+ frames: [
2297
+ "\u25E1",
2298
+ "\u2299",
2299
+ "\u25E0"
2300
+ ]
2301
+ },
2302
+ squareCorners: {
2303
+ interval: 180,
2304
+ frames: [
2305
+ "\u25F0",
2306
+ "\u25F3",
2307
+ "\u25F2",
2308
+ "\u25F1"
2309
+ ]
2310
+ },
2311
+ circleQuarters: {
2312
+ interval: 120,
2313
+ frames: [
2314
+ "\u25F4",
2315
+ "\u25F7",
2316
+ "\u25F6",
2317
+ "\u25F5"
2318
+ ]
2319
+ },
2320
+ circleHalves: {
2321
+ interval: 50,
2322
+ frames: [
2323
+ "\u25D0",
2324
+ "\u25D3",
2325
+ "\u25D1",
2326
+ "\u25D2"
2327
+ ]
2328
+ },
2329
+ squish: {
2330
+ interval: 100,
2331
+ frames: [
2332
+ "\u256B",
2333
+ "\u256A"
2334
+ ]
2335
+ },
2336
+ toggle: {
2337
+ interval: 250,
2338
+ frames: [
2339
+ "\u22B6",
2340
+ "\u22B7"
2341
+ ]
2342
+ },
2343
+ toggle2: {
2344
+ interval: 80,
2345
+ frames: [
2346
+ "\u25AB",
2347
+ "\u25AA"
2348
+ ]
2349
+ },
2350
+ toggle3: {
2351
+ interval: 120,
2352
+ frames: [
2353
+ "\u25A1",
2354
+ "\u25A0"
2355
+ ]
2356
+ },
2357
+ toggle4: {
2358
+ interval: 100,
2359
+ frames: [
2360
+ "\u25A0",
2361
+ "\u25A1",
2362
+ "\u25AA",
2363
+ "\u25AB"
2364
+ ]
2365
+ },
2366
+ toggle5: {
2367
+ interval: 100,
2368
+ frames: [
2369
+ "\u25AE",
2370
+ "\u25AF"
2371
+ ]
2372
+ },
2373
+ toggle6: {
2374
+ interval: 300,
2375
+ frames: [
2376
+ "\u101D",
2377
+ "\u1040"
2378
+ ]
2379
+ },
2380
+ toggle7: {
2381
+ interval: 80,
2382
+ frames: [
2383
+ "\u29BE",
2384
+ "\u29BF"
2385
+ ]
2386
+ },
2387
+ toggle8: {
2388
+ interval: 100,
2389
+ frames: [
2390
+ "\u25CD",
2391
+ "\u25CC"
2392
+ ]
2393
+ },
2394
+ toggle9: {
2395
+ interval: 100,
2396
+ frames: [
2397
+ "\u25C9",
2398
+ "\u25CE"
2399
+ ]
2400
+ },
2401
+ toggle10: {
2402
+ interval: 100,
2403
+ frames: [
2404
+ "\u3282",
2405
+ "\u3280",
2406
+ "\u3281"
2407
+ ]
2408
+ },
2409
+ toggle11: {
2410
+ interval: 50,
2411
+ frames: [
2412
+ "\u29C7",
2413
+ "\u29C6"
2414
+ ]
2415
+ },
2416
+ toggle12: {
2417
+ interval: 120,
2418
+ frames: [
2419
+ "\u2617",
2420
+ "\u2616"
2421
+ ]
2422
+ },
2423
+ toggle13: {
2424
+ interval: 80,
2425
+ frames: [
2426
+ "=",
2427
+ "*",
2428
+ "-"
2429
+ ]
2430
+ },
2431
+ arrow: {
2432
+ interval: 100,
2433
+ frames: [
2434
+ "\u2190",
2435
+ "\u2196",
2436
+ "\u2191",
2437
+ "\u2197",
2438
+ "\u2192",
2439
+ "\u2198",
2440
+ "\u2193",
2441
+ "\u2199"
2442
+ ]
2443
+ },
2444
+ arrow2: {
2445
+ interval: 80,
2446
+ frames: [
2447
+ "\u2B06\uFE0F ",
2448
+ "\u2197\uFE0F ",
2449
+ "\u27A1\uFE0F ",
2450
+ "\u2198\uFE0F ",
2451
+ "\u2B07\uFE0F ",
2452
+ "\u2199\uFE0F ",
2453
+ "\u2B05\uFE0F ",
2454
+ "\u2196\uFE0F "
2455
+ ]
2456
+ },
2457
+ arrow3: {
2458
+ interval: 120,
2459
+ frames: [
2460
+ "\u25B9\u25B9\u25B9\u25B9\u25B9",
2461
+ "\u25B8\u25B9\u25B9\u25B9\u25B9",
2462
+ "\u25B9\u25B8\u25B9\u25B9\u25B9",
2463
+ "\u25B9\u25B9\u25B8\u25B9\u25B9",
2464
+ "\u25B9\u25B9\u25B9\u25B8\u25B9",
2465
+ "\u25B9\u25B9\u25B9\u25B9\u25B8"
2466
+ ]
2467
+ },
2468
+ bouncingBar: {
2469
+ interval: 80,
2470
+ frames: [
2471
+ "[ ]",
2472
+ "[= ]",
2473
+ "[== ]",
2474
+ "[=== ]",
2475
+ "[====]",
2476
+ "[ ===]",
2477
+ "[ ==]",
2478
+ "[ =]",
2479
+ "[ ]",
2480
+ "[ =]",
2481
+ "[ ==]",
2482
+ "[ ===]",
2483
+ "[====]",
2484
+ "[=== ]",
2485
+ "[== ]",
2486
+ "[= ]"
2487
+ ]
2488
+ },
2489
+ bouncingBall: {
2490
+ interval: 80,
2491
+ frames: [
2492
+ "( \u25CF )",
2493
+ "( \u25CF )",
2494
+ "( \u25CF )",
2495
+ "( \u25CF )",
2496
+ "( \u25CF)",
2497
+ "( \u25CF )",
2498
+ "( \u25CF )",
2499
+ "( \u25CF )",
2500
+ "( \u25CF )",
2501
+ "(\u25CF )"
2502
+ ]
2503
+ },
2504
+ smiley: {
2505
+ interval: 200,
2506
+ frames: [
2507
+ "\uD83D\uDE04 ",
2508
+ "\uD83D\uDE1D "
2509
+ ]
2510
+ },
2511
+ monkey: {
2512
+ interval: 300,
2513
+ frames: [
2514
+ "\uD83D\uDE48 ",
2515
+ "\uD83D\uDE48 ",
2516
+ "\uD83D\uDE49 ",
2517
+ "\uD83D\uDE4A "
2518
+ ]
2519
+ },
2520
+ hearts: {
2521
+ interval: 100,
2522
+ frames: [
2523
+ "\uD83D\uDC9B ",
2524
+ "\uD83D\uDC99 ",
2525
+ "\uD83D\uDC9C ",
2526
+ "\uD83D\uDC9A ",
2527
+ "\uD83D\uDC97 "
2528
+ ]
2529
+ },
2530
+ clock: {
2531
+ interval: 100,
2532
+ frames: [
2533
+ "\uD83D\uDD5B ",
2534
+ "\uD83D\uDD50 ",
2535
+ "\uD83D\uDD51 ",
2536
+ "\uD83D\uDD52 ",
2537
+ "\uD83D\uDD53 ",
2538
+ "\uD83D\uDD54 ",
2539
+ "\uD83D\uDD55 ",
2540
+ "\uD83D\uDD56 ",
2541
+ "\uD83D\uDD57 ",
2542
+ "\uD83D\uDD58 ",
2543
+ "\uD83D\uDD59 ",
2544
+ "\uD83D\uDD5A "
2545
+ ]
2546
+ },
2547
+ earth: {
2548
+ interval: 180,
2549
+ frames: [
2550
+ "\uD83C\uDF0D ",
2551
+ "\uD83C\uDF0E ",
2552
+ "\uD83C\uDF0F "
2553
+ ]
2554
+ },
2555
+ material: {
2556
+ interval: 17,
2557
+ frames: [
2558
+ "\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2559
+ "\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2560
+ "\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2561
+ "\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2562
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2563
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2564
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2565
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2566
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2567
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2568
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2569
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2570
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2571
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
2572
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
2573
+ "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
2574
+ "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
2575
+ "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
2576
+ "\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581",
2577
+ "\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2578
+ "\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2579
+ "\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
2580
+ "\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
2581
+ "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2582
+ "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2583
+ "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2584
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2585
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2586
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2587
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2588
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2589
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2590
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2591
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2592
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2593
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2594
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2595
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2596
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588",
2597
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588",
2598
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588",
2599
+ "\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
2600
+ "\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
2601
+ "\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
2602
+ "\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
2603
+ "\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
2604
+ "\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
2605
+ "\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
2606
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
2607
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2608
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2609
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2610
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2611
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2612
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2613
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2614
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2615
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
2616
+ "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581",
2617
+ "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
2618
+ "\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581",
2619
+ "\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581",
2620
+ "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2621
+ "\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2622
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2623
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2624
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581",
2625
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
2626
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581",
2627
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2628
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2629
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2630
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2631
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581",
2632
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2633
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
2634
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588",
2635
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
2636
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
2637
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588",
2638
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
2639
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588",
2640
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
2641
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
2642
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588",
2643
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
2644
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
2645
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588",
2646
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2647
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2648
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581",
2649
+ "\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581"
2650
+ ]
2651
+ },
2652
+ moon: {
2653
+ interval: 80,
2654
+ frames: [
2655
+ "\uD83C\uDF11 ",
2656
+ "\uD83C\uDF12 ",
2657
+ "\uD83C\uDF13 ",
2658
+ "\uD83C\uDF14 ",
2659
+ "\uD83C\uDF15 ",
2660
+ "\uD83C\uDF16 ",
2661
+ "\uD83C\uDF17 ",
2662
+ "\uD83C\uDF18 "
2663
+ ]
2664
+ },
2665
+ runner: {
2666
+ interval: 140,
2667
+ frames: [
2668
+ "\uD83D\uDEB6 ",
2669
+ "\uD83C\uDFC3 "
2670
+ ]
2671
+ },
2672
+ pong: {
2673
+ interval: 80,
2674
+ frames: [
2675
+ "\u2590\u2802 \u258C",
2676
+ "\u2590\u2808 \u258C",
2677
+ "\u2590 \u2802 \u258C",
2678
+ "\u2590 \u2820 \u258C",
2679
+ "\u2590 \u2840 \u258C",
2680
+ "\u2590 \u2820 \u258C",
2681
+ "\u2590 \u2802 \u258C",
2682
+ "\u2590 \u2808 \u258C",
2683
+ "\u2590 \u2802 \u258C",
2684
+ "\u2590 \u2820 \u258C",
2685
+ "\u2590 \u2840 \u258C",
2686
+ "\u2590 \u2820 \u258C",
2687
+ "\u2590 \u2802 \u258C",
2688
+ "\u2590 \u2808 \u258C",
2689
+ "\u2590 \u2802\u258C",
2690
+ "\u2590 \u2820\u258C",
2691
+ "\u2590 \u2840\u258C",
2692
+ "\u2590 \u2820 \u258C",
2693
+ "\u2590 \u2802 \u258C",
2694
+ "\u2590 \u2808 \u258C",
2695
+ "\u2590 \u2802 \u258C",
2696
+ "\u2590 \u2820 \u258C",
2697
+ "\u2590 \u2840 \u258C",
2698
+ "\u2590 \u2820 \u258C",
2699
+ "\u2590 \u2802 \u258C",
2700
+ "\u2590 \u2808 \u258C",
2701
+ "\u2590 \u2802 \u258C",
2702
+ "\u2590 \u2820 \u258C",
2703
+ "\u2590 \u2840 \u258C",
2704
+ "\u2590\u2820 \u258C"
2705
+ ]
2706
+ },
2707
+ shark: {
2708
+ interval: 120,
2709
+ frames: [
2710
+ "\u2590|\\____________\u258C",
2711
+ "\u2590_|\\___________\u258C",
2712
+ "\u2590__|\\__________\u258C",
2713
+ "\u2590___|\\_________\u258C",
2714
+ "\u2590____|\\________\u258C",
2715
+ "\u2590_____|\\_______\u258C",
2716
+ "\u2590______|\\______\u258C",
2717
+ "\u2590_______|\\_____\u258C",
2718
+ "\u2590________|\\____\u258C",
2719
+ "\u2590_________|\\___\u258C",
2720
+ "\u2590__________|\\__\u258C",
2721
+ "\u2590___________|\\_\u258C",
2722
+ "\u2590____________|\\\u258C",
2723
+ "\u2590____________/|\u258C",
2724
+ "\u2590___________/|_\u258C",
2725
+ "\u2590__________/|__\u258C",
2726
+ "\u2590_________/|___\u258C",
2727
+ "\u2590________/|____\u258C",
2728
+ "\u2590_______/|_____\u258C",
2729
+ "\u2590______/|______\u258C",
2730
+ "\u2590_____/|_______\u258C",
2731
+ "\u2590____/|________\u258C",
2732
+ "\u2590___/|_________\u258C",
2733
+ "\u2590__/|__________\u258C",
2734
+ "\u2590_/|___________\u258C",
2735
+ "\u2590/|____________\u258C"
2736
+ ]
2737
+ },
2738
+ dqpb: {
2739
+ interval: 100,
2740
+ frames: [
2741
+ "d",
2742
+ "q",
2743
+ "p",
2744
+ "b"
2745
+ ]
2746
+ },
2747
+ weather: {
2748
+ interval: 100,
2749
+ frames: [
2750
+ "\u2600\uFE0F ",
2751
+ "\u2600\uFE0F ",
2752
+ "\u2600\uFE0F ",
2753
+ "\uD83C\uDF24 ",
2754
+ "\u26C5\uFE0F ",
2755
+ "\uD83C\uDF25 ",
2756
+ "\u2601\uFE0F ",
2757
+ "\uD83C\uDF27 ",
2758
+ "\uD83C\uDF28 ",
2759
+ "\uD83C\uDF27 ",
2760
+ "\uD83C\uDF28 ",
2761
+ "\uD83C\uDF27 ",
2762
+ "\uD83C\uDF28 ",
2763
+ "\u26C8 ",
2764
+ "\uD83C\uDF28 ",
2765
+ "\uD83C\uDF27 ",
2766
+ "\uD83C\uDF28 ",
2767
+ "\u2601\uFE0F ",
2768
+ "\uD83C\uDF25 ",
2769
+ "\u26C5\uFE0F ",
2770
+ "\uD83C\uDF24 ",
2771
+ "\u2600\uFE0F ",
2772
+ "\u2600\uFE0F "
2773
+ ]
2774
+ },
2775
+ christmas: {
2776
+ interval: 400,
2777
+ frames: [
2778
+ "\uD83C\uDF32",
2779
+ "\uD83C\uDF84"
2780
+ ]
2781
+ },
2782
+ grenade: {
2783
+ interval: 80,
2784
+ frames: [
2785
+ "\u060C ",
2786
+ "\u2032 ",
2787
+ " \xB4 ",
2788
+ " \u203E ",
2789
+ " \u2E0C",
2790
+ " \u2E0A",
2791
+ " |",
2792
+ " \u204E",
2793
+ " \u2055",
2794
+ " \u0DF4 ",
2795
+ " \u2053",
2796
+ " ",
2797
+ " ",
2798
+ " "
2799
+ ]
2800
+ },
2801
+ point: {
2802
+ interval: 125,
2803
+ frames: [
2804
+ "\u2219\u2219\u2219",
2805
+ "\u25CF\u2219\u2219",
2806
+ "\u2219\u25CF\u2219",
2807
+ "\u2219\u2219\u25CF",
2808
+ "\u2219\u2219\u2219"
2809
+ ]
2810
+ },
2811
+ layer: {
2812
+ interval: 150,
2813
+ frames: [
2814
+ "-",
2815
+ "=",
2816
+ "\u2261"
2817
+ ]
2818
+ },
2819
+ betaWave: {
2820
+ interval: 80,
2821
+ frames: [
2822
+ "\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2",
2823
+ "\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2",
2824
+ "\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2",
2825
+ "\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2",
2826
+ "\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2",
2827
+ "\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2",
2828
+ "\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1"
2829
+ ]
2830
+ },
2831
+ fingerDance: {
2832
+ interval: 160,
2833
+ frames: [
2834
+ "\uD83E\uDD18 ",
2835
+ "\uD83E\uDD1F ",
2836
+ "\uD83D\uDD96 ",
2837
+ "\u270B ",
2838
+ "\uD83E\uDD1A ",
2839
+ "\uD83D\uDC46 "
2840
+ ]
2841
+ },
2842
+ fistBump: {
2843
+ interval: 80,
2844
+ frames: [
2845
+ "\uD83E\uDD1C\u3000\u3000\u3000\u3000\uD83E\uDD1B ",
2846
+ "\uD83E\uDD1C\u3000\u3000\u3000\u3000\uD83E\uDD1B ",
2847
+ "\uD83E\uDD1C\u3000\u3000\u3000\u3000\uD83E\uDD1B ",
2848
+ "\u3000\uD83E\uDD1C\u3000\u3000\uD83E\uDD1B\u3000 ",
2849
+ "\u3000\u3000\uD83E\uDD1C\uD83E\uDD1B\u3000\u3000 ",
2850
+ "\u3000\uD83E\uDD1C\u2728\uD83E\uDD1B\u3000\u3000 ",
2851
+ "\uD83E\uDD1C\u3000\u2728\u3000\uD83E\uDD1B\u3000 "
2852
+ ]
2853
+ },
2854
+ soccerHeader: {
2855
+ interval: 80,
2856
+ frames: [
2857
+ " \uD83E\uDDD1\u26BD\uFE0F \uD83E\uDDD1 ",
2858
+ "\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 ",
2859
+ "\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 ",
2860
+ "\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 ",
2861
+ "\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 ",
2862
+ "\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 ",
2863
+ "\uD83E\uDDD1 \u26BD\uFE0F\uD83E\uDDD1 ",
2864
+ "\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 ",
2865
+ "\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 ",
2866
+ "\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 ",
2867
+ "\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 ",
2868
+ "\uD83E\uDDD1 \u26BD\uFE0F \uD83E\uDDD1 "
2869
+ ]
2870
+ },
2871
+ mindblown: {
2872
+ interval: 160,
2873
+ frames: [
2874
+ "\uD83D\uDE10 ",
2875
+ "\uD83D\uDE10 ",
2876
+ "\uD83D\uDE2E ",
2877
+ "\uD83D\uDE2E ",
2878
+ "\uD83D\uDE26 ",
2879
+ "\uD83D\uDE26 ",
2880
+ "\uD83D\uDE27 ",
2881
+ "\uD83D\uDE27 ",
2882
+ "\uD83E\uDD2F ",
2883
+ "\uD83D\uDCA5 ",
2884
+ "\u2728 ",
2885
+ "\u3000 ",
2886
+ "\u3000 ",
2887
+ "\u3000 "
2888
+ ]
2889
+ },
2890
+ speaker: {
2891
+ interval: 160,
2892
+ frames: [
2893
+ "\uD83D\uDD08 ",
2894
+ "\uD83D\uDD09 ",
2895
+ "\uD83D\uDD0A ",
2896
+ "\uD83D\uDD09 "
2897
+ ]
2898
+ },
2899
+ orangePulse: {
2900
+ interval: 100,
2901
+ frames: [
2902
+ "\uD83D\uDD38 ",
2903
+ "\uD83D\uDD36 ",
2904
+ "\uD83D\uDFE0 ",
2905
+ "\uD83D\uDFE0 ",
2906
+ "\uD83D\uDD36 "
2907
+ ]
2908
+ },
2909
+ bluePulse: {
2910
+ interval: 100,
2911
+ frames: [
2912
+ "\uD83D\uDD39 ",
2913
+ "\uD83D\uDD37 ",
2914
+ "\uD83D\uDD35 ",
2915
+ "\uD83D\uDD35 ",
2916
+ "\uD83D\uDD37 "
2917
+ ]
2918
+ },
2919
+ orangeBluePulse: {
2920
+ interval: 100,
2921
+ frames: [
2922
+ "\uD83D\uDD38 ",
2923
+ "\uD83D\uDD36 ",
2924
+ "\uD83D\uDFE0 ",
2925
+ "\uD83D\uDFE0 ",
2926
+ "\uD83D\uDD36 ",
2927
+ "\uD83D\uDD39 ",
2928
+ "\uD83D\uDD37 ",
2929
+ "\uD83D\uDD35 ",
2930
+ "\uD83D\uDD35 ",
2931
+ "\uD83D\uDD37 "
2932
+ ]
2933
+ },
2934
+ timeTravel: {
2935
+ interval: 100,
2936
+ frames: [
2937
+ "\uD83D\uDD5B ",
2938
+ "\uD83D\uDD5A ",
2939
+ "\uD83D\uDD59 ",
2940
+ "\uD83D\uDD58 ",
2941
+ "\uD83D\uDD57 ",
2942
+ "\uD83D\uDD56 ",
2943
+ "\uD83D\uDD55 ",
2944
+ "\uD83D\uDD54 ",
2945
+ "\uD83D\uDD53 ",
2946
+ "\uD83D\uDD52 ",
2947
+ "\uD83D\uDD51 ",
2948
+ "\uD83D\uDD50 "
2949
+ ]
2950
+ },
2951
+ aesthetic: {
2952
+ interval: 80,
2953
+ frames: [
2954
+ "\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1",
2955
+ "\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1",
2956
+ "\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1",
2957
+ "\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1",
2958
+ "\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1",
2959
+ "\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1",
2960
+ "\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0",
2961
+ "\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1"
2962
+ ]
2963
+ },
2964
+ dwarfFortress: {
2965
+ interval: 80,
2966
+ frames: [
2967
+ " \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2968
+ "\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2969
+ "\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2970
+ "\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2971
+ "\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2972
+ "\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2973
+ "\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2974
+ "\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2975
+ "\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2976
+ "\u263A \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2977
+ " \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2978
+ " \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2979
+ " \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2980
+ " \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2981
+ " \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2982
+ " \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2983
+ " \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2984
+ " \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2985
+ " \u263A \u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2986
+ " \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2987
+ " \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
2988
+ " \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 ",
2989
+ " \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 ",
2990
+ " \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 ",
2991
+ " \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 ",
2992
+ " \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 ",
2993
+ " \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 ",
2994
+ " \u263A \u2588\u2588\u2588\xA3\xA3\xA3 ",
2995
+ " \u263A\u2588\u2588\u2588\xA3\xA3\xA3 ",
2996
+ " \u263A\u2588\u2588\u2588\xA3\xA3\xA3 ",
2997
+ " \u263A\u2593\u2588\u2588\xA3\xA3\xA3 ",
2998
+ " \u263A\u2593\u2588\u2588\xA3\xA3\xA3 ",
2999
+ " \u263A\u2592\u2588\u2588\xA3\xA3\xA3 ",
3000
+ " \u263A\u2592\u2588\u2588\xA3\xA3\xA3 ",
3001
+ " \u263A\u2591\u2588\u2588\xA3\xA3\xA3 ",
3002
+ " \u263A\u2591\u2588\u2588\xA3\xA3\xA3 ",
3003
+ " \u263A \u2588\u2588\xA3\xA3\xA3 ",
3004
+ " \u263A\u2588\u2588\xA3\xA3\xA3 ",
3005
+ " \u263A\u2588\u2588\xA3\xA3\xA3 ",
3006
+ " \u263A\u2593\u2588\xA3\xA3\xA3 ",
3007
+ " \u263A\u2593\u2588\xA3\xA3\xA3 ",
3008
+ " \u263A\u2592\u2588\xA3\xA3\xA3 ",
3009
+ " \u263A\u2592\u2588\xA3\xA3\xA3 ",
3010
+ " \u263A\u2591\u2588\xA3\xA3\xA3 ",
3011
+ " \u263A\u2591\u2588\xA3\xA3\xA3 ",
3012
+ " \u263A \u2588\xA3\xA3\xA3 ",
3013
+ " \u263A\u2588\xA3\xA3\xA3 ",
3014
+ " \u263A\u2588\xA3\xA3\xA3 ",
3015
+ " \u263A\u2593\xA3\xA3\xA3 ",
3016
+ " \u263A\u2593\xA3\xA3\xA3 ",
3017
+ " \u263A\u2592\xA3\xA3\xA3 ",
3018
+ " \u263A\u2592\xA3\xA3\xA3 ",
3019
+ " \u263A\u2591\xA3\xA3\xA3 ",
3020
+ " \u263A\u2591\xA3\xA3\xA3 ",
3021
+ " \u263A \xA3\xA3\xA3 ",
3022
+ " \u263A\xA3\xA3\xA3 ",
3023
+ " \u263A\xA3\xA3\xA3 ",
3024
+ " \u263A\u2593\xA3\xA3 ",
3025
+ " \u263A\u2593\xA3\xA3 ",
3026
+ " \u263A\u2592\xA3\xA3 ",
3027
+ " \u263A\u2592\xA3\xA3 ",
3028
+ " \u263A\u2591\xA3\xA3 ",
3029
+ " \u263A\u2591\xA3\xA3 ",
3030
+ " \u263A \xA3\xA3 ",
3031
+ " \u263A\xA3\xA3 ",
3032
+ " \u263A\xA3\xA3 ",
3033
+ " \u263A\u2593\xA3 ",
3034
+ " \u263A\u2593\xA3 ",
3035
+ " \u263A\u2592\xA3 ",
3036
+ " \u263A\u2592\xA3 ",
3037
+ " \u263A\u2591\xA3 ",
3038
+ " \u263A\u2591\xA3 ",
3039
+ " \u263A \xA3 ",
3040
+ " \u263A\xA3 ",
3041
+ " \u263A\xA3 ",
3042
+ " \u263A\u2593 ",
3043
+ " \u263A\u2593 ",
3044
+ " \u263A\u2592 ",
3045
+ " \u263A\u2592 ",
3046
+ " \u263A\u2591 ",
3047
+ " \u263A\u2591 ",
3048
+ " \u263A ",
3049
+ " \u263A &",
3050
+ " \u263A \u263C&",
3051
+ " \u263A \u263C &",
3052
+ " \u263A\u263C &",
3053
+ " \u263A\u263C & ",
3054
+ " \u203C & ",
3055
+ " \u263A & ",
3056
+ " \u203C & ",
3057
+ " \u263A & ",
3058
+ " \u203C & ",
3059
+ " \u263A & ",
3060
+ "\u203C & ",
3061
+ " & ",
3062
+ " & ",
3063
+ " & \u2591 ",
3064
+ " & \u2592 ",
3065
+ " & \u2593 ",
3066
+ " & \xA3 ",
3067
+ " & \u2591\xA3 ",
3068
+ " & \u2592\xA3 ",
3069
+ " & \u2593\xA3 ",
3070
+ " & \xA3\xA3 ",
3071
+ " & \u2591\xA3\xA3 ",
3072
+ " & \u2592\xA3\xA3 ",
3073
+ "& \u2593\xA3\xA3 ",
3074
+ "& \xA3\xA3\xA3 ",
3075
+ " \u2591\xA3\xA3\xA3 ",
3076
+ " \u2592\xA3\xA3\xA3 ",
3077
+ " \u2593\xA3\xA3\xA3 ",
3078
+ " \u2588\xA3\xA3\xA3 ",
3079
+ " \u2591\u2588\xA3\xA3\xA3 ",
3080
+ " \u2592\u2588\xA3\xA3\xA3 ",
3081
+ " \u2593\u2588\xA3\xA3\xA3 ",
3082
+ " \u2588\u2588\xA3\xA3\xA3 ",
3083
+ " \u2591\u2588\u2588\xA3\xA3\xA3 ",
3084
+ " \u2592\u2588\u2588\xA3\xA3\xA3 ",
3085
+ " \u2593\u2588\u2588\xA3\xA3\xA3 ",
3086
+ " \u2588\u2588\u2588\xA3\xA3\xA3 ",
3087
+ " \u2591\u2588\u2588\u2588\xA3\xA3\xA3 ",
3088
+ " \u2592\u2588\u2588\u2588\xA3\xA3\xA3 ",
3089
+ " \u2593\u2588\u2588\u2588\xA3\xA3\xA3 ",
3090
+ " \u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
3091
+ " \u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
3092
+ " \u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
3093
+ " \u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
3094
+ " \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
3095
+ " \u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
3096
+ " \u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
3097
+ " \u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
3098
+ " \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ",
3099
+ " \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "
3100
+ ]
3101
+ },
3102
+ fish: {
3103
+ interval: 80,
3104
+ frames: [
3105
+ "~~~~~~~~~~~~~~~~~~~~",
3106
+ "> ~~~~~~~~~~~~~~~~~~",
3107
+ "\xBA> ~~~~~~~~~~~~~~~~~",
3108
+ "(\xBA> ~~~~~~~~~~~~~~~~",
3109
+ "((\xBA> ~~~~~~~~~~~~~~~",
3110
+ "<((\xBA> ~~~~~~~~~~~~~~",
3111
+ "><((\xBA> ~~~~~~~~~~~~~",
3112
+ " ><((\xBA> ~~~~~~~~~~~~",
3113
+ "~ ><((\xBA> ~~~~~~~~~~~",
3114
+ "~~ <>((\xBA> ~~~~~~~~~~",
3115
+ "~~~ ><((\xBA> ~~~~~~~~~",
3116
+ "~~~~ <>((\xBA> ~~~~~~~~",
3117
+ "~~~~~ ><((\xBA> ~~~~~~~",
3118
+ "~~~~~~ <>((\xBA> ~~~~~~",
3119
+ "~~~~~~~ ><((\xBA> ~~~~~",
3120
+ "~~~~~~~~ <>((\xBA> ~~~~",
3121
+ "~~~~~~~~~ ><((\xBA> ~~~",
3122
+ "~~~~~~~~~~ <>((\xBA> ~~",
3123
+ "~~~~~~~~~~~ ><((\xBA> ~",
3124
+ "~~~~~~~~~~~~ <>((\xBA> ",
3125
+ "~~~~~~~~~~~~~ ><((\xBA>",
3126
+ "~~~~~~~~~~~~~~ <>((\xBA",
3127
+ "~~~~~~~~~~~~~~~ ><((",
3128
+ "~~~~~~~~~~~~~~~~ <>(",
3129
+ "~~~~~~~~~~~~~~~~~ ><",
3130
+ "~~~~~~~~~~~~~~~~~~ <",
3131
+ "~~~~~~~~~~~~~~~~~~~~"
3132
+ ]
3133
+ }
3134
+ };
3135
+
3136
+ // node_modules/cli-spinners/index.js
3137
+ var cli_spinners_default = spinners_default;
3138
+ var spinnersList = Object.keys(spinners_default);
3139
+
3140
+ // node_modules/log-symbols/symbols.js
3141
+ var exports_symbols = {};
3142
+ __export(exports_symbols, {
3143
+ warning: () => warning,
3144
+ success: () => success,
3145
+ info: () => info,
3146
+ error: () => error
3147
+ });
3148
+
3149
+ // node_modules/yoctocolors/base.js
3150
+ import tty2 from "tty";
3151
+ var hasColors = tty2?.WriteStream?.prototype?.hasColors?.() ?? false;
3152
+ var format = (open, close) => {
3153
+ if (!hasColors) {
3154
+ return (input) => input;
3155
+ }
3156
+ const openCode = `\x1B[${open}m`;
3157
+ const closeCode = `\x1B[${close}m`;
3158
+ return (input) => {
3159
+ const string = input + "";
3160
+ let index = string.indexOf(closeCode);
3161
+ if (index === -1) {
3162
+ return openCode + string + closeCode;
3163
+ }
3164
+ let result = openCode;
3165
+ let lastIndex = 0;
3166
+ const reopenOnNestedClose = close === 22;
3167
+ const replaceCode = (reopenOnNestedClose ? closeCode : "") + openCode;
3168
+ while (index !== -1) {
3169
+ result += string.slice(lastIndex, index) + replaceCode;
3170
+ lastIndex = index + closeCode.length;
3171
+ index = string.indexOf(closeCode, lastIndex);
3172
+ }
3173
+ result += string.slice(lastIndex) + closeCode;
3174
+ return result;
3175
+ };
3176
+ };
3177
+ var reset = format(0, 0);
3178
+ var bold = format(1, 22);
3179
+ var dim = format(2, 22);
3180
+ var italic = format(3, 23);
3181
+ var underline = format(4, 24);
3182
+ var overline = format(53, 55);
3183
+ var inverse = format(7, 27);
3184
+ var hidden = format(8, 28);
3185
+ var strikethrough = format(9, 29);
3186
+ var black = format(30, 39);
3187
+ var red = format(31, 39);
3188
+ var green = format(32, 39);
3189
+ var yellow = format(33, 39);
3190
+ var blue = format(34, 39);
3191
+ var magenta = format(35, 39);
3192
+ var cyan = format(36, 39);
3193
+ var white = format(37, 39);
3194
+ var gray = format(90, 39);
3195
+ var bgBlack = format(40, 49);
3196
+ var bgRed = format(41, 49);
3197
+ var bgGreen = format(42, 49);
3198
+ var bgYellow = format(43, 49);
3199
+ var bgBlue = format(44, 49);
3200
+ var bgMagenta = format(45, 49);
3201
+ var bgCyan = format(46, 49);
3202
+ var bgWhite = format(47, 49);
3203
+ var bgGray = format(100, 49);
3204
+ var redBright = format(91, 39);
3205
+ var greenBright = format(92, 39);
3206
+ var yellowBright = format(93, 39);
3207
+ var blueBright = format(94, 39);
3208
+ var magentaBright = format(95, 39);
3209
+ var cyanBright = format(96, 39);
3210
+ var whiteBright = format(97, 39);
3211
+ var bgRedBright = format(101, 49);
3212
+ var bgGreenBright = format(102, 49);
3213
+ var bgYellowBright = format(103, 49);
3214
+ var bgBlueBright = format(104, 49);
3215
+ var bgMagentaBright = format(105, 49);
3216
+ var bgCyanBright = format(106, 49);
3217
+ var bgWhiteBright = format(107, 49);
3218
+
3219
+ // node_modules/is-unicode-supported/index.js
3220
+ import process6 from "process";
3221
+ function isUnicodeSupported() {
3222
+ const { env: env2 } = process6;
3223
+ const { TERM, TERM_PROGRAM } = env2;
3224
+ if (process6.platform !== "win32") {
3225
+ return TERM !== "linux";
3226
+ }
3227
+ 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";
3228
+ }
3229
+
3230
+ // node_modules/log-symbols/symbols.js
3231
+ var _isUnicodeSupported = isUnicodeSupported();
3232
+ var info = blue(_isUnicodeSupported ? "\u2139" : "i");
3233
+ var success = green(_isUnicodeSupported ? "\u2714" : "\u221A");
3234
+ var warning = yellow(_isUnicodeSupported ? "\u26A0" : "\u203C");
3235
+ var error = red(_isUnicodeSupported ? "\u2716" : "\xD7");
3236
+ // node_modules/ansi-regex/index.js
3237
+ function ansiRegex({ onlyFirst = false } = {}) {
3238
+ const ST = "(?:\\u0007|\\u001B\\u005C|\\u009C)";
3239
+ const osc = `(?:\\u001B\\][\\s\\S]*?${ST})`;
3240
+ const csi = "[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";
3241
+ const pattern = `${osc}|${csi}`;
3242
+ return new RegExp(pattern, onlyFirst ? undefined : "g");
3243
+ }
3244
+
3245
+ // node_modules/strip-ansi/index.js
3246
+ var regex = ansiRegex();
3247
+ function stripAnsi(string) {
3248
+ if (typeof string !== "string") {
3249
+ throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
3250
+ }
3251
+ if (!string.includes("\x1B") && !string.includes("\x9B")) {
3252
+ return string;
3253
+ }
3254
+ return string.replace(regex, "");
3255
+ }
3256
+
3257
+ // node_modules/get-east-asian-width/lookup-data.js
3258
+ var ambiguousMinimalCodePoint = 161;
3259
+ var ambiguousMaximumCodePoint = 1114109;
3260
+ var ambiguousRanges = [161, 161, 164, 164, 167, 168, 170, 170, 173, 174, 176, 180, 182, 186, 188, 191, 198, 198, 208, 208, 215, 216, 222, 225, 230, 230, 232, 234, 236, 237, 240, 240, 242, 243, 247, 250, 252, 252, 254, 254, 257, 257, 273, 273, 275, 275, 283, 283, 294, 295, 299, 299, 305, 307, 312, 312, 319, 322, 324, 324, 328, 331, 333, 333, 338, 339, 358, 359, 363, 363, 462, 462, 464, 464, 466, 466, 468, 468, 470, 470, 472, 472, 474, 474, 476, 476, 593, 593, 609, 609, 708, 708, 711, 711, 713, 715, 717, 717, 720, 720, 728, 731, 733, 733, 735, 735, 768, 879, 913, 929, 931, 937, 945, 961, 963, 969, 1025, 1025, 1040, 1103, 1105, 1105, 8208, 8208, 8211, 8214, 8216, 8217, 8220, 8221, 8224, 8226, 8228, 8231, 8240, 8240, 8242, 8243, 8245, 8245, 8251, 8251, 8254, 8254, 8308, 8308, 8319, 8319, 8321, 8324, 8364, 8364, 8451, 8451, 8453, 8453, 8457, 8457, 8467, 8467, 8470, 8470, 8481, 8482, 8486, 8486, 8491, 8491, 8531, 8532, 8539, 8542, 8544, 8555, 8560, 8569, 8585, 8585, 8592, 8601, 8632, 8633, 8658, 8658, 8660, 8660, 8679, 8679, 8704, 8704, 8706, 8707, 8711, 8712, 8715, 8715, 8719, 8719, 8721, 8721, 8725, 8725, 8730, 8730, 8733, 8736, 8739, 8739, 8741, 8741, 8743, 8748, 8750, 8750, 8756, 8759, 8764, 8765, 8776, 8776, 8780, 8780, 8786, 8786, 8800, 8801, 8804, 8807, 8810, 8811, 8814, 8815, 8834, 8835, 8838, 8839, 8853, 8853, 8857, 8857, 8869, 8869, 8895, 8895, 8978, 8978, 9312, 9449, 9451, 9547, 9552, 9587, 9600, 9615, 9618, 9621, 9632, 9633, 9635, 9641, 9650, 9651, 9654, 9655, 9660, 9661, 9664, 9665, 9670, 9672, 9675, 9675, 9678, 9681, 9698, 9701, 9711, 9711, 9733, 9734, 9737, 9737, 9742, 9743, 9756, 9756, 9758, 9758, 9792, 9792, 9794, 9794, 9824, 9825, 9827, 9829, 9831, 9834, 9836, 9837, 9839, 9839, 9886, 9887, 9919, 9919, 9926, 9933, 9935, 9939, 9941, 9953, 9955, 9955, 9960, 9961, 9963, 9969, 9972, 9972, 9974, 9977, 9979, 9980, 9982, 9983, 10045, 10045, 10102, 10111, 11094, 11097, 12872, 12879, 57344, 63743, 65024, 65039, 65533, 65533, 127232, 127242, 127248, 127277, 127280, 127337, 127344, 127373, 127375, 127376, 127387, 127404, 917760, 917999, 983040, 1048573, 1048576, 1114109];
3261
+ var fullwidthMinimalCodePoint = 12288;
3262
+ var fullwidthMaximumCodePoint = 65510;
3263
+ var fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510];
3264
+ var wideMinimalCodePoint = 4352;
3265
+ var wideMaximumCodePoint = 262141;
3266
+ var wideRanges = [4352, 4447, 8986, 8987, 9001, 9002, 9193, 9196, 9200, 9200, 9203, 9203, 9725, 9726, 9748, 9749, 9776, 9783, 9800, 9811, 9855, 9855, 9866, 9871, 9875, 9875, 9889, 9889, 9898, 9899, 9917, 9918, 9924, 9925, 9934, 9934, 9940, 9940, 9962, 9962, 9970, 9971, 9973, 9973, 9978, 9978, 9981, 9981, 9989, 9989, 9994, 9995, 10024, 10024, 10060, 10060, 10062, 10062, 10067, 10069, 10071, 10071, 10133, 10135, 10160, 10160, 10175, 10175, 11035, 11036, 11088, 11088, 11093, 11093, 11904, 11929, 11931, 12019, 12032, 12245, 12272, 12287, 12289, 12350, 12353, 12438, 12441, 12543, 12549, 12591, 12593, 12686, 12688, 12773, 12783, 12830, 12832, 12871, 12880, 42124, 42128, 42182, 43360, 43388, 44032, 55203, 63744, 64255, 65040, 65049, 65072, 65106, 65108, 65126, 65128, 65131, 94176, 94180, 94192, 94198, 94208, 101589, 101631, 101662, 101760, 101874, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 119552, 119638, 119648, 119670, 126980, 126980, 127183, 127183, 127374, 127374, 127377, 127386, 127488, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 127776, 127789, 127797, 127799, 127868, 127870, 127891, 127904, 127946, 127951, 127955, 127968, 127984, 127988, 127988, 127992, 128062, 128064, 128064, 128066, 128252, 128255, 128317, 128331, 128334, 128336, 128359, 128378, 128378, 128405, 128406, 128420, 128420, 128507, 128591, 128640, 128709, 128716, 128716, 128720, 128722, 128725, 128728, 128732, 128735, 128747, 128748, 128756, 128764, 128992, 129003, 129008, 129008, 129292, 129338, 129340, 129349, 129351, 129535, 129648, 129660, 129664, 129674, 129678, 129734, 129736, 129736, 129741, 129756, 129759, 129770, 129775, 129784, 131072, 196605, 196608, 262141];
3267
+
3268
+ // node_modules/get-east-asian-width/utilities.js
3269
+ var isInRange = (ranges, codePoint) => {
3270
+ let low = 0;
3271
+ let high = Math.floor(ranges.length / 2) - 1;
3272
+ while (low <= high) {
3273
+ const mid = Math.floor((low + high) / 2);
3274
+ const i = mid * 2;
3275
+ if (codePoint < ranges[i]) {
3276
+ high = mid - 1;
3277
+ } else if (codePoint > ranges[i + 1]) {
3278
+ low = mid + 1;
3279
+ } else {
3280
+ return true;
3281
+ }
3282
+ }
3283
+ return false;
3284
+ };
3285
+
3286
+ // node_modules/get-east-asian-width/lookup.js
3287
+ var commonCjkCodePoint = 19968;
3288
+ var [wideFastPathStart, wideFastPathEnd] = /* @__PURE__ */ findWideFastPathRange(wideRanges);
3289
+ function findWideFastPathRange(ranges) {
3290
+ let fastPathStart = ranges[0];
3291
+ let fastPathEnd = ranges[1];
3292
+ for (let index = 0;index < ranges.length; index += 2) {
3293
+ const start = ranges[index];
3294
+ const end = ranges[index + 1];
3295
+ if (commonCjkCodePoint >= start && commonCjkCodePoint <= end) {
3296
+ return [start, end];
3297
+ }
3298
+ if (end - start > fastPathEnd - fastPathStart) {
3299
+ fastPathStart = start;
3300
+ fastPathEnd = end;
3301
+ }
3302
+ }
3303
+ return [fastPathStart, fastPathEnd];
3304
+ }
3305
+ var isAmbiguous = (codePoint) => {
3306
+ if (codePoint < ambiguousMinimalCodePoint || codePoint > ambiguousMaximumCodePoint) {
3307
+ return false;
3308
+ }
3309
+ return isInRange(ambiguousRanges, codePoint);
3310
+ };
3311
+ var isFullWidth = (codePoint) => {
3312
+ if (codePoint < fullwidthMinimalCodePoint || codePoint > fullwidthMaximumCodePoint) {
3313
+ return false;
3314
+ }
3315
+ return isInRange(fullwidthRanges, codePoint);
3316
+ };
3317
+ var isWide = (codePoint) => {
3318
+ if (codePoint >= wideFastPathStart && codePoint <= wideFastPathEnd) {
3319
+ return true;
3320
+ }
3321
+ if (codePoint < wideMinimalCodePoint || codePoint > wideMaximumCodePoint) {
3322
+ return false;
3323
+ }
3324
+ return isInRange(wideRanges, codePoint);
3325
+ };
3326
+
3327
+ // node_modules/get-east-asian-width/index.js
3328
+ function validate(codePoint) {
3329
+ if (!Number.isSafeInteger(codePoint)) {
3330
+ throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
3331
+ }
3332
+ }
3333
+ function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
3334
+ validate(codePoint);
3335
+ if (isFullWidth(codePoint) || isWide(codePoint) || ambiguousAsWide && isAmbiguous(codePoint)) {
3336
+ return 2;
3337
+ }
3338
+ return 1;
3339
+ }
3340
+
3341
+ // node_modules/string-width/index.js
3342
+ var segmenter = new Intl.Segmenter;
3343
+ var zeroWidthClusterRegex = /^(?:\p{Default_Ignorable_Code_Point}|\p{Control}|\p{Format}|\p{Mark}|\p{Surrogate})+$/v;
3344
+ var leadingNonPrintingRegex = /^[\p{Default_Ignorable_Code_Point}\p{Control}\p{Format}\p{Mark}\p{Surrogate}]+/v;
3345
+ var rgiEmojiRegex = /^\p{RGI_Emoji}$/v;
3346
+ var unqualifiedKeycapRegex = /^[\d#*]\u20E3$/;
3347
+ var extendedPictographicRegex = /\p{Extended_Pictographic}/gu;
3348
+ function isDoubleWidthNonRgiEmojiSequence(segment) {
3349
+ if (segment.length > 50) {
3350
+ return false;
3351
+ }
3352
+ if (unqualifiedKeycapRegex.test(segment)) {
3353
+ return true;
3354
+ }
3355
+ if (segment.includes("\u200D")) {
3356
+ const pictographics = segment.match(extendedPictographicRegex);
3357
+ return pictographics !== null && pictographics.length >= 2;
3358
+ }
3359
+ return false;
3360
+ }
3361
+ function baseVisible(segment) {
3362
+ return segment.replace(leadingNonPrintingRegex, "");
3363
+ }
3364
+ function isZeroWidthCluster(segment) {
3365
+ return zeroWidthClusterRegex.test(segment);
3366
+ }
3367
+ function isHangulLeadingJamo(codePoint) {
3368
+ return codePoint >= 4352 && codePoint <= 4447 || codePoint >= 43360 && codePoint <= 43388;
3369
+ }
3370
+ function isHangulVowelJamo(codePoint) {
3371
+ return codePoint >= 4448 && codePoint <= 4519 || codePoint >= 55216 && codePoint <= 55238;
3372
+ }
3373
+ function isHangulTrailingJamo(codePoint) {
3374
+ return codePoint >= 4520 && codePoint <= 4607 || codePoint >= 55243 && codePoint <= 55291;
3375
+ }
3376
+ function isHangulJamo(codePoint) {
3377
+ return isHangulLeadingJamo(codePoint) || isHangulVowelJamo(codePoint) || isHangulTrailingJamo(codePoint);
3378
+ }
3379
+ function hangulClusterWidth(visibleSegment, eastAsianWidthOptions) {
3380
+ const codePoints = [];
3381
+ for (const character of visibleSegment) {
3382
+ if (zeroWidthClusterRegex.test(character)) {
3383
+ continue;
3384
+ }
3385
+ codePoints.push(character.codePointAt(0));
3386
+ }
3387
+ if (codePoints.length === 0) {
3388
+ return;
3389
+ }
3390
+ let width = 0;
3391
+ for (let index = 0;index < codePoints.length; index++) {
3392
+ const codePoint = codePoints[index];
3393
+ if (!isHangulJamo(codePoint)) {
3394
+ if (width === 0) {
3395
+ return;
3396
+ }
3397
+ for (let remaining = index;remaining < codePoints.length; remaining++) {
3398
+ width += eastAsianWidth(codePoints[remaining], eastAsianWidthOptions);
3399
+ }
3400
+ return width;
3401
+ }
3402
+ if (isHangulLeadingJamo(codePoint) && isHangulVowelJamo(codePoints[index + 1])) {
3403
+ width += 2;
3404
+ index += isHangulTrailingJamo(codePoints[index + 2]) ? 2 : 1;
3405
+ continue;
3406
+ }
3407
+ width += eastAsianWidth(codePoint, eastAsianWidthOptions);
3408
+ }
3409
+ return width;
3410
+ }
3411
+ function trailingHalfwidthWidth(visibleSegment, eastAsianWidthOptions) {
3412
+ let extra = 0;
3413
+ let first = true;
3414
+ for (const character of visibleSegment) {
3415
+ if (first) {
3416
+ first = false;
3417
+ continue;
3418
+ }
3419
+ if (character >= "\uFF00" && character <= "\uFFEF") {
3420
+ extra += eastAsianWidth(character.codePointAt(0), eastAsianWidthOptions);
3421
+ }
3422
+ }
3423
+ return extra;
3424
+ }
3425
+ function stringWidth(input, options = {}) {
3426
+ if (typeof input !== "string" || input.length === 0) {
3427
+ return 0;
3428
+ }
3429
+ const {
3430
+ ambiguousIsNarrow = true,
3431
+ countAnsiEscapeCodes = false
3432
+ } = options;
3433
+ let string = input;
3434
+ if (!countAnsiEscapeCodes && (string.includes("\x1B") || string.includes("\x9B"))) {
3435
+ string = stripAnsi(string);
3436
+ }
3437
+ if (string.length === 0) {
3438
+ return 0;
3439
+ }
3440
+ if (/^[\u0020-\u007E]*$/.test(string)) {
3441
+ return string.length;
3442
+ }
3443
+ let width = 0;
3444
+ const eastAsianWidthOptions = { ambiguousAsWide: !ambiguousIsNarrow };
3445
+ for (const { segment } of segmenter.segment(string)) {
3446
+ if (isZeroWidthCluster(segment)) {
3447
+ continue;
3448
+ }
3449
+ if (rgiEmojiRegex.test(segment) || isDoubleWidthNonRgiEmojiSequence(segment)) {
3450
+ width += 2;
3451
+ continue;
3452
+ }
3453
+ const visibleSegment = baseVisible(segment);
3454
+ const hangulWidth = hangulClusterWidth(visibleSegment, eastAsianWidthOptions);
3455
+ if (hangulWidth !== undefined) {
3456
+ width += hangulWidth;
3457
+ continue;
3458
+ }
3459
+ const codePoint = visibleSegment.codePointAt(0);
3460
+ width += eastAsianWidth(codePoint, eastAsianWidthOptions);
3461
+ width += trailingHalfwidthWidth(visibleSegment, eastAsianWidthOptions);
3462
+ }
3463
+ return width;
3464
+ }
3465
+
3466
+ // node_modules/is-interactive/index.js
3467
+ function isInteractive({ stream = process.stdout } = {}) {
3468
+ return Boolean(stream && stream.isTTY && process.env.TERM !== "dumb" && !("CI" in process.env));
3469
+ }
3470
+
3471
+ // node_modules/stdin-discarder/index.js
3472
+ import process7 from "process";
3473
+ var ASCII_ETX_CODE = 3;
3474
+
3475
+ class StdinDiscarder {
3476
+ #activeCount = 0;
3477
+ #stdin;
3478
+ #stdinWasPaused = false;
3479
+ #stdinWasRaw = false;
3480
+ #handleInputBound = (chunk) => {
3481
+ if (!chunk?.length) {
3482
+ return;
3483
+ }
3484
+ const code = typeof chunk === "string" ? chunk.codePointAt(0) : chunk[0];
3485
+ if (code === ASCII_ETX_CODE) {
3486
+ process7.kill(process7.pid, "SIGINT");
3487
+ }
3488
+ };
3489
+ start() {
3490
+ this.#activeCount++;
3491
+ if (this.#activeCount === 1) {
3492
+ this.#realStart();
3493
+ }
3494
+ }
3495
+ stop() {
3496
+ if (this.#activeCount === 0) {
3497
+ return;
3498
+ }
3499
+ if (--this.#activeCount === 0) {
3500
+ this.#realStop();
3501
+ }
3502
+ }
3503
+ #realStart() {
3504
+ const { stdin } = process7;
3505
+ if (process7.platform === "win32" || !stdin?.isTTY || typeof stdin.setRawMode !== "function") {
3506
+ this.#stdin = undefined;
3507
+ return;
3508
+ }
3509
+ this.#stdin = stdin;
3510
+ this.#stdinWasPaused = stdin.isPaused();
3511
+ this.#stdinWasRaw = Boolean(stdin.isRaw);
3512
+ stdin.setRawMode(true);
3513
+ stdin.prependListener("data", this.#handleInputBound);
3514
+ if (this.#stdinWasPaused) {
3515
+ stdin.resume();
3516
+ }
3517
+ }
3518
+ #realStop() {
3519
+ if (!this.#stdin) {
3520
+ return;
3521
+ }
3522
+ const stdin = this.#stdin;
3523
+ stdin.off("data", this.#handleInputBound);
3524
+ if (stdin.isTTY) {
3525
+ stdin.setRawMode?.(this.#stdinWasRaw);
3526
+ }
3527
+ if (this.#stdinWasPaused) {
3528
+ stdin.pause();
3529
+ }
3530
+ this.#stdin = undefined;
3531
+ this.#stdinWasPaused = false;
3532
+ this.#stdinWasRaw = false;
3533
+ }
3534
+ }
3535
+ var stdinDiscarder = new StdinDiscarder;
3536
+ var stdin_discarder_default = Object.freeze(stdinDiscarder);
3537
+
3538
+ // node_modules/ora/index.js
3539
+ var RENDER_DEFERRAL_TIMEOUT = 200;
3540
+ var SYNCHRONIZED_OUTPUT_ENABLE = "\x1B[?2026h";
3541
+ var SYNCHRONIZED_OUTPUT_DISABLE = "\x1B[?2026l";
3542
+ var activeHooksPerStream = new Map;
3543
+ var validColors = new Set(["black", "red", "green", "yellow", "blue", "magenta", "cyan", "white", "gray"]);
3544
+
3545
+ class Ora {
3546
+ #linesToClear = 0;
3547
+ #frameIndex = -1;
3548
+ #lastFrameTime = 0;
3549
+ #options;
3550
+ #spinner;
3551
+ #stream;
3552
+ #id;
3553
+ #hookedStreams = new Map;
3554
+ #isInternalWrite = false;
3555
+ #drainHandler;
3556
+ #deferRenderTimer;
3557
+ #isDiscardingStdin = false;
3558
+ #color;
3559
+ #internalWrite(fn) {
3560
+ this.#isInternalWrite = true;
3561
+ try {
3562
+ return fn();
3563
+ } finally {
3564
+ this.#isInternalWrite = false;
3565
+ }
3566
+ }
3567
+ #tryRender() {
3568
+ if (this.isSpinning) {
3569
+ this.render();
3570
+ }
3571
+ }
3572
+ #stringifyChunk(chunk, encoding) {
3573
+ if (chunk === undefined || chunk === null) {
3574
+ return "";
3575
+ }
3576
+ if (typeof chunk === "string") {
3577
+ return chunk;
3578
+ }
3579
+ if (Buffer.isBuffer(chunk) || ArrayBuffer.isView(chunk)) {
3580
+ const normalizedEncoding = typeof encoding === "string" && encoding && encoding !== "buffer" ? encoding : "utf8";
3581
+ return Buffer.from(chunk).toString(normalizedEncoding);
3582
+ }
3583
+ return String(chunk);
3584
+ }
3585
+ #chunkTerminatesLine(chunkString) {
3586
+ if (!chunkString) {
3587
+ return false;
3588
+ }
3589
+ const lastCharacter = chunkString.at(-1);
3590
+ return lastCharacter === `
3591
+ ` || lastCharacter === "\r";
3592
+ }
3593
+ #scheduleRenderDeferral() {
3594
+ if (this.#deferRenderTimer) {
3595
+ return;
3596
+ }
3597
+ this.#deferRenderTimer = setTimeout(() => {
3598
+ this.#deferRenderTimer = undefined;
3599
+ if (this.isSpinning) {
3600
+ this.#tryRender();
3601
+ }
3602
+ }, RENDER_DEFERRAL_TIMEOUT);
3603
+ if (typeof this.#deferRenderTimer?.unref === "function") {
3604
+ this.#deferRenderTimer.unref();
3605
+ }
3606
+ }
3607
+ #clearRenderDeferral() {
3608
+ if (this.#deferRenderTimer) {
3609
+ clearTimeout(this.#deferRenderTimer);
3610
+ this.#deferRenderTimer = undefined;
3611
+ }
3612
+ }
3613
+ #buildOutputLine(symbol, text, prefixText, suffixText) {
3614
+ const fullPrefixText = this.#getFullPrefixText(prefixText, " ");
3615
+ const separatorText = symbol ? " " : "";
3616
+ const fullText = typeof text === "string" ? separatorText + text : "";
3617
+ const fullSuffixText = this.#getFullSuffixText(suffixText, " ");
3618
+ return fullPrefixText + symbol + fullText + fullSuffixText;
3619
+ }
3620
+ constructor(options) {
3621
+ if (typeof options === "string") {
3622
+ options = {
3623
+ text: options
3624
+ };
3625
+ }
3626
+ this.#options = {
3627
+ color: "cyan",
3628
+ stream: process8.stderr,
3629
+ discardStdin: true,
3630
+ hideCursor: true,
3631
+ ...options
3632
+ };
3633
+ this.color = this.#options.color;
3634
+ this.#stream = this.#options.stream;
3635
+ if (typeof this.#options.isEnabled !== "boolean") {
3636
+ this.#options.isEnabled = isInteractive({ stream: this.#stream });
3637
+ }
3638
+ if (typeof this.#options.isSilent !== "boolean") {
3639
+ this.#options.isSilent = false;
3640
+ }
3641
+ if (this.#options.interval !== undefined && !(Number.isInteger(this.#options.interval) && this.#options.interval > 0)) {
3642
+ throw new Error("The `interval` option must be a positive integer");
3643
+ }
3644
+ const userInterval = this.#options.interval;
3645
+ this.spinner = this.#options.spinner;
3646
+ this.#options.interval = userInterval;
3647
+ this.text = this.#options.text;
3648
+ this.prefixText = this.#options.prefixText;
3649
+ this.suffixText = this.#options.suffixText;
3650
+ this.indent = this.#options.indent;
3651
+ if (process8.env.NODE_ENV === "test") {
3652
+ this._stream = this.#stream;
3653
+ this._isEnabled = this.#options.isEnabled;
3654
+ Object.defineProperty(this, "_linesToClear", {
3655
+ get() {
3656
+ return this.#linesToClear;
3657
+ },
3658
+ set(newValue) {
3659
+ this.#linesToClear = newValue;
3660
+ }
3661
+ });
3662
+ Object.defineProperty(this, "_frameIndex", {
3663
+ get() {
3664
+ return this.#frameIndex;
3665
+ }
3666
+ });
3667
+ Object.defineProperty(this, "_lineCount", {
3668
+ get() {
3669
+ const columns = this.#stream.columns ?? 80;
3670
+ const prefixText = typeof this.#options.prefixText === "function" ? "" : this.#options.prefixText;
3671
+ const suffixText = typeof this.#options.suffixText === "function" ? "" : this.#options.suffixText;
3672
+ const fullPrefixText = typeof prefixText === "string" && prefixText !== "" ? prefixText + " " : "";
3673
+ const fullSuffixText = typeof suffixText === "string" && suffixText !== "" ? " " + suffixText : "";
3674
+ const spinnerChar = "-";
3675
+ const fullText = " ".repeat(this.#options.indent) + fullPrefixText + spinnerChar + (typeof this.#options.text === "string" ? " " + this.#options.text : "") + fullSuffixText;
3676
+ return this.#computeLineCountFrom(fullText, columns);
3677
+ }
3678
+ });
3679
+ }
3680
+ }
3681
+ get indent() {
3682
+ return this.#options.indent;
3683
+ }
3684
+ set indent(indent = 0) {
3685
+ if (!(indent >= 0 && Number.isInteger(indent))) {
3686
+ throw new Error("The `indent` option must be an integer from 0 and up");
3687
+ }
3688
+ this.#options.indent = indent;
3689
+ }
3690
+ get interval() {
3691
+ return this.#options.interval ?? this.#spinner.interval ?? 100;
3692
+ }
3693
+ get spinner() {
3694
+ return this.#spinner;
3695
+ }
3696
+ set spinner(spinner) {
3697
+ this.#frameIndex = -1;
3698
+ this.#options.interval = undefined;
3699
+ if (typeof spinner === "object") {
3700
+ if (!Array.isArray(spinner.frames) || spinner.frames.length === 0 || spinner.frames.some((frame) => typeof frame !== "string")) {
3701
+ throw new Error("The given spinner must have a non-empty `frames` array of strings");
3702
+ }
3703
+ if (spinner.interval !== undefined && !(Number.isInteger(spinner.interval) && spinner.interval > 0)) {
3704
+ throw new Error("`spinner.interval` must be a positive integer if provided");
3705
+ }
3706
+ this.#spinner = spinner;
3707
+ } else if (!isUnicodeSupported()) {
3708
+ this.#spinner = cli_spinners_default.line;
3709
+ } else if (spinner === undefined) {
3710
+ this.#spinner = cli_spinners_default.dots;
3711
+ } else if (spinner !== "default" && cli_spinners_default[spinner]) {
3712
+ this.#spinner = cli_spinners_default[spinner];
3713
+ } else {
3714
+ 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.`);
3715
+ }
3716
+ }
3717
+ get text() {
3718
+ return this.#options.text;
3719
+ }
3720
+ set text(value = "") {
3721
+ this.#options.text = value;
3722
+ }
3723
+ get prefixText() {
3724
+ return this.#options.prefixText;
3725
+ }
3726
+ set prefixText(value = "") {
3727
+ this.#options.prefixText = value;
3728
+ }
3729
+ get suffixText() {
3730
+ return this.#options.suffixText;
3731
+ }
3732
+ set suffixText(value = "") {
3733
+ this.#options.suffixText = value;
3734
+ }
3735
+ get isSpinning() {
3736
+ return this.#id !== undefined;
3737
+ }
3738
+ #formatAffix(value, separator, placeBefore = false) {
3739
+ const resolved = typeof value === "function" ? value() : value;
3740
+ if (typeof resolved === "string" && resolved !== "") {
3741
+ return placeBefore ? separator + resolved : resolved + separator;
3742
+ }
3743
+ return "";
3744
+ }
3745
+ #getFullPrefixText(prefixText = this.#options.prefixText, postfix = " ") {
3746
+ return this.#formatAffix(prefixText, postfix, false);
3747
+ }
3748
+ #getFullSuffixText(suffixText = this.#options.suffixText, prefix = " ") {
3749
+ return this.#formatAffix(suffixText, prefix, true);
3750
+ }
3751
+ #computeLineCountFrom(text, columns) {
3752
+ let count = 0;
3753
+ for (const line of stripVTControlCharacters(text).split(`
3754
+ `)) {
3755
+ count += Math.max(1, Math.ceil(stringWidth(line) / columns));
3756
+ }
3757
+ return count;
3758
+ }
3759
+ get color() {
3760
+ return this.#color;
3761
+ }
3762
+ set color(value) {
3763
+ if (value !== undefined && value !== false && !validColors.has(value)) {
3764
+ throw new Error("The `color` option must be a valid color or `false` to disable");
3765
+ }
3766
+ this.#color = value;
3767
+ }
3768
+ get isEnabled() {
3769
+ return this.#options.isEnabled && !this.#options.isSilent;
3770
+ }
3771
+ set isEnabled(value) {
3772
+ if (typeof value !== "boolean") {
3773
+ throw new TypeError("The `isEnabled` option must be a boolean");
3774
+ }
3775
+ this.#options.isEnabled = value;
3776
+ }
3777
+ get isSilent() {
3778
+ return this.#options.isSilent;
3779
+ }
3780
+ set isSilent(value) {
3781
+ if (typeof value !== "boolean") {
3782
+ throw new TypeError("The `isSilent` option must be a boolean");
3783
+ }
3784
+ this.#options.isSilent = value;
3785
+ }
3786
+ frame() {
3787
+ const now = Date.now();
3788
+ if (this.#frameIndex === -1 || now - this.#lastFrameTime >= this.interval) {
3789
+ this.#frameIndex = (this.#frameIndex + 1) % this.#spinner.frames.length;
3790
+ this.#lastFrameTime = now;
3791
+ }
3792
+ const { frames } = this.#spinner;
3793
+ let frame = frames[this.#frameIndex];
3794
+ if (this.#color) {
3795
+ frame = source_default[this.#color](frame);
3796
+ }
3797
+ const fullPrefixText = this.#getFullPrefixText(this.#options.prefixText, " ");
3798
+ const fullText = typeof this.text === "string" ? " " + this.text : "";
3799
+ const fullSuffixText = this.#getFullSuffixText(this.#options.suffixText, " ");
3800
+ return fullPrefixText + frame + fullText + fullSuffixText;
3801
+ }
3802
+ clear() {
3803
+ if (!this.isEnabled || !this.#stream.isTTY) {
3804
+ return this;
3805
+ }
3806
+ this.#internalWrite(() => {
3807
+ this.#stream.cursorTo(0);
3808
+ for (let index = 0;index < this.#linesToClear; index++) {
3809
+ if (index > 0) {
3810
+ this.#stream.moveCursor(0, -1);
3811
+ }
3812
+ this.#stream.clearLine(1);
3813
+ }
3814
+ if (this.#options.indent) {
3815
+ this.#stream.cursorTo(this.#options.indent);
3816
+ }
3817
+ });
3818
+ this.#linesToClear = 0;
3819
+ return this;
3820
+ }
3821
+ #hookStream(stream) {
3822
+ if (!stream || this.#hookedStreams.has(stream) || !stream.isTTY || typeof stream.write !== "function") {
3823
+ return;
3824
+ }
3825
+ if (activeHooksPerStream.has(stream)) {
3826
+ console.warn("[ora] Multiple concurrent spinners detected. This may cause visual corruption. Use one spinner at a time.");
3827
+ }
3828
+ const originalWrite = stream.write;
3829
+ this.#hookedStreams.set(stream, originalWrite);
3830
+ activeHooksPerStream.set(stream, this);
3831
+ stream.write = (chunk, encoding, callback) => this.#hookedWrite(stream, originalWrite, chunk, encoding, callback);
3832
+ }
3833
+ #installHook() {
3834
+ if (!this.isEnabled || this.#hookedStreams.size > 0) {
3835
+ return;
3836
+ }
3837
+ const streamsToHook = new Set([this.#stream, process8.stdout, process8.stderr]);
3838
+ for (const stream of streamsToHook) {
3839
+ this.#hookStream(stream);
3840
+ }
3841
+ }
3842
+ #uninstallHook() {
3843
+ for (const [stream, originalWrite] of this.#hookedStreams) {
3844
+ stream.write = originalWrite;
3845
+ if (activeHooksPerStream.get(stream) === this) {
3846
+ activeHooksPerStream.delete(stream);
3847
+ }
3848
+ }
3849
+ this.#hookedStreams.clear();
3850
+ }
3851
+ #hookedWrite(stream, originalWrite, chunk, encoding, callback) {
3852
+ if (typeof encoding === "function") {
3853
+ callback = encoding;
3854
+ encoding = undefined;
3855
+ }
3856
+ if (this.#isInternalWrite) {
3857
+ return originalWrite.call(stream, chunk, encoding, callback);
3858
+ }
3859
+ this.clear();
3860
+ const chunkString = this.#stringifyChunk(chunk, encoding);
3861
+ const chunkTerminatesLine = this.#chunkTerminatesLine(chunkString);
3862
+ const writeResult = originalWrite.call(stream, chunk, encoding, callback);
3863
+ if (chunkTerminatesLine) {
3864
+ this.#clearRenderDeferral();
3865
+ } else if (chunkString.length > 0) {
3866
+ this.#scheduleRenderDeferral();
3867
+ }
3868
+ if (this.isSpinning && !this.#deferRenderTimer) {
3869
+ this.render();
3870
+ }
3871
+ return writeResult;
3872
+ }
3873
+ render() {
3874
+ if (!this.isEnabled || this.#drainHandler || this.#deferRenderTimer) {
3875
+ return this;
3876
+ }
3877
+ const useSynchronizedOutput = this.#stream.isTTY;
3878
+ let shouldDisableSynchronizedOutput = false;
3879
+ try {
3880
+ if (useSynchronizedOutput) {
3881
+ this.#internalWrite(() => this.#stream.write(SYNCHRONIZED_OUTPUT_ENABLE));
3882
+ shouldDisableSynchronizedOutput = true;
3883
+ }
3884
+ this.clear();
3885
+ let frameContent = this.frame();
3886
+ const columns = this.#stream.columns ?? 80;
3887
+ const actualLineCount = this.#computeLineCountFrom(frameContent, columns);
3888
+ const consoleHeight = this.#stream.rows;
3889
+ if (consoleHeight && consoleHeight > 1 && actualLineCount > consoleHeight) {
3890
+ const lines = frameContent.split(`
3891
+ `);
3892
+ const maxLines = consoleHeight - 1;
3893
+ frameContent = [...lines.slice(0, maxLines), "... (content truncated to fit terminal)"].join(`
3894
+ `);
3895
+ }
3896
+ const canContinue = this.#internalWrite(() => this.#stream.write(frameContent));
3897
+ if (canContinue === false && this.#stream.isTTY) {
3898
+ this.#drainHandler = () => {
3899
+ this.#drainHandler = undefined;
3900
+ this.#tryRender();
3901
+ };
3902
+ this.#stream.once("drain", this.#drainHandler);
3903
+ }
3904
+ this.#linesToClear = this.#computeLineCountFrom(frameContent, columns);
3905
+ } finally {
3906
+ if (shouldDisableSynchronizedOutput) {
3907
+ this.#internalWrite(() => this.#stream.write(SYNCHRONIZED_OUTPUT_DISABLE));
3908
+ }
3909
+ }
3910
+ return this;
3911
+ }
3912
+ start(text) {
3913
+ if (text) {
3914
+ this.text = text;
3915
+ }
3916
+ if (this.isSilent) {
3917
+ return this;
3918
+ }
3919
+ if (!this.isEnabled) {
3920
+ const symbol = this.text ? "-" : "";
3921
+ const line = " ".repeat(this.#options.indent) + this.#buildOutputLine(symbol, this.text, this.#options.prefixText, this.#options.suffixText);
3922
+ if (line.trim() !== "") {
3923
+ this.#internalWrite(() => this.#stream.write(line + `
3924
+ `));
3925
+ }
3926
+ return this;
3927
+ }
3928
+ if (this.isSpinning) {
3929
+ return this;
3930
+ }
3931
+ if (this.#options.hideCursor) {
3932
+ cli_cursor_default.hide(this.#stream);
3933
+ }
3934
+ if (this.#options.discardStdin && process8.stdin.isTTY) {
3935
+ stdin_discarder_default.start();
3936
+ this.#isDiscardingStdin = true;
3937
+ }
3938
+ this.#installHook();
3939
+ this.render();
3940
+ this.#id = setInterval(this.render.bind(this), this.interval);
3941
+ return this;
3942
+ }
3943
+ stop() {
3944
+ clearInterval(this.#id);
3945
+ this.#id = undefined;
3946
+ this.#frameIndex = -1;
3947
+ this.#lastFrameTime = 0;
3948
+ this.#clearRenderDeferral();
3949
+ this.#uninstallHook();
3950
+ if (this.#drainHandler) {
3951
+ this.#stream.removeListener("drain", this.#drainHandler);
3952
+ this.#drainHandler = undefined;
3953
+ }
3954
+ if (this.isEnabled) {
3955
+ this.clear();
3956
+ if (this.#options.hideCursor) {
3957
+ cli_cursor_default.show(this.#stream);
3958
+ }
3959
+ }
3960
+ if (this.#isDiscardingStdin) {
3961
+ this.#isDiscardingStdin = false;
3962
+ stdin_discarder_default.stop();
3963
+ }
3964
+ return this;
3965
+ }
3966
+ succeed(text) {
3967
+ return this.stopAndPersist({ symbol: exports_symbols.success, text });
3968
+ }
3969
+ fail(text) {
3970
+ return this.stopAndPersist({ symbol: exports_symbols.error, text });
3971
+ }
3972
+ warn(text) {
3973
+ return this.stopAndPersist({ symbol: exports_symbols.warning, text });
3974
+ }
3975
+ info(text) {
3976
+ return this.stopAndPersist({ symbol: exports_symbols.info, text });
3977
+ }
3978
+ stopAndPersist(options = {}) {
3979
+ if (this.isSilent) {
3980
+ return this;
3981
+ }
3982
+ const symbol = options.symbol ?? " ";
3983
+ const text = options.text ?? this.text;
3984
+ const prefixText = options.prefixText ?? this.#options.prefixText;
3985
+ const suffixText = options.suffixText ?? this.#options.suffixText;
3986
+ const textToWrite = this.#buildOutputLine(symbol, text, prefixText, suffixText) + `
3987
+ `;
3988
+ this.stop();
3989
+ this.#internalWrite(() => this.#stream.write(textToWrite));
3990
+ return this;
3991
+ }
3992
+ }
3993
+ function ora(options) {
3994
+ return new Ora(options);
3995
+ }
3996
+
3997
+ // src/migrations/cli.ts
3998
+ import { mkdirSync, writeFileSync } from "fs";
3999
+ import { resolve } from "path";
4000
+ async function run() {
4001
+ const cli = cac("peta");
4002
+ cli.command("migrate:init", "Create migrations directory and tracking table").action(async () => {
4003
+ const config = await loadConfig();
4004
+ const spinner = ora("Setting up migrations...").start();
4005
+ mkdirSync(config.migrationsDir, { recursive: true });
4006
+ const runner = new MigrationRunner(config.getKysely());
4007
+ await runner.ensureTable();
4008
+ spinner.succeed(`Migrations directory created at ${config.migrationsDir}`);
4009
+ });
4010
+ cli.command("migrate:generate [name]", "Generate initial migration from models").action(async (name) => {
4011
+ const config = await loadConfig();
4012
+ const spinner = ora("Generating migration...").start();
4013
+ const gen = new MigrationGenerator;
4014
+ const code = gen.generateInitialMigration(config.getModels(), { name: name ?? "Initial" });
4015
+ const timestamp = new Date().toISOString().replace(/[-:T.Z]/g, "").slice(0, 14);
4016
+ const safeName = (name ?? "initial").replace(/[^a-zA-Z0-9_]/g, "_");
4017
+ const filename = resolve(config.migrationsDir, `${timestamp}_${safeName}.ts`);
4018
+ mkdirSync(config.migrationsDir, { recursive: true });
4019
+ writeFileSync(filename, code);
4020
+ spinner.succeed(`Created ${filename}`);
4021
+ });
4022
+ cli.command("migrate:up", "Apply pending migrations").action(async () => {
4023
+ const config = await loadConfig();
4024
+ const migrations = await loadMigrationFiles(config.migrationsDir);
4025
+ if (migrations.length === 0) {
4026
+ console.log("No migration files found.");
4027
+ return;
4028
+ }
4029
+ const runner = new MigrationRunner(config.getKysely());
4030
+ const status = await runner.status(migrations);
4031
+ if (status.pending.length === 0) {
4032
+ console.log("All migrations have been applied.");
4033
+ return;
4034
+ }
4035
+ const spinner = ora(`Running ${status.pending.length} migration(s)...`).start();
4036
+ await runner.up(migrations);
4037
+ const completed = await runner.getCompleted();
4038
+ spinner.succeed(`Applied ${completed.length} migration(s)`);
4039
+ });
4040
+ cli.command("migrate:down", "Rollback last batch").action(async () => {
4041
+ const config = await loadConfig();
4042
+ const migrations = await loadMigrationFiles(config.migrationsDir);
4043
+ if (migrations.length === 0) {
4044
+ console.log("No migration files found.");
4045
+ return;
4046
+ }
4047
+ const runner = new MigrationRunner(config.getKysely());
4048
+ const completed = await runner.getCompleted();
4049
+ if (completed.length === 0) {
4050
+ console.log("Nothing to rollback.");
4051
+ return;
4052
+ }
4053
+ const spinner = ora("Rolling back...").start();
4054
+ await runner.down(migrations);
4055
+ spinner.succeed(`Rolled back ${completed.length} migration(s)`);
4056
+ });
4057
+ cli.command("migrate:status", "Show migration status").action(async () => {
4058
+ const config = await loadConfig();
4059
+ const migrations = await loadMigrationFiles(config.migrationsDir);
4060
+ const runner = new MigrationRunner(config.getKysely());
4061
+ const { completed, pending } = await runner.status(migrations);
4062
+ console.log(`
4063
+ Completed: ${completed.length}`);
4064
+ for (const m of completed) {
4065
+ console.log(` \u2713 ${m.name}`);
4066
+ }
4067
+ console.log(`
4068
+ Pending: ${pending.length}`);
4069
+ for (const m of pending) {
4070
+ console.log(` \xB7 ${m.name}`);
4071
+ }
4072
+ console.log();
4073
+ });
4074
+ cli.help();
4075
+ cli.parse();
4076
+ }
4077
+ export {
4078
+ run
4079
+ };