peta-orm 0.2.6 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/README.md +23 -1
  2. package/bin/peta +1 -1
  3. package/dist/collection-Dv3sQPMx.mjs +173 -0
  4. package/dist/crud-BCWvg5MI.mjs +101 -0
  5. package/dist/errors-sfFJolfu.mjs +69 -0
  6. package/dist/factory-rIbPGjRg.mjs +173 -0
  7. package/dist/hooks-BD0xy7uw.mjs +77 -0
  8. package/dist/index-BdJnSMYi.d.mts +480 -0
  9. package/dist/index.d.mts +215 -0
  10. package/dist/index.mjs +2601 -0
  11. package/dist/migrations/cli.d.mts +4 -0
  12. package/dist/migrations/cli.mjs +74 -0
  13. package/dist/migrations/index.d.mts +53 -0
  14. package/dist/migrations/index.mjs +2 -0
  15. package/dist/rolldown-runtime-D7D4PA-g.mjs +13 -0
  16. package/dist/runner-DQ7uT6LC.mjs +180 -0
  17. package/dist/save-B8rudcT5.mjs +331 -0
  18. package/dist/state-LtlHp6XV.mjs +56 -0
  19. package/package.json +25 -15
  20. package/dist/builder/delete-builder.d.ts +0 -9
  21. package/dist/builder/delete-builder.d.ts.map +0 -1
  22. package/dist/builder/eager-loader.d.ts +0 -13
  23. package/dist/builder/eager-loader.d.ts.map +0 -1
  24. package/dist/builder/index.d.ts +0 -6
  25. package/dist/builder/index.d.ts.map +0 -1
  26. package/dist/builder/query-builder.d.ts +0 -57
  27. package/dist/builder/query-builder.d.ts.map +0 -1
  28. package/dist/builder/update-builder.d.ts +0 -9
  29. package/dist/builder/update-builder.d.ts.map +0 -1
  30. package/dist/collection/collection.d.ts +0 -48
  31. package/dist/collection/collection.d.ts.map +0 -1
  32. package/dist/collection-wwtv7qmv.js +0 -8
  33. package/dist/columns/arktype-config.d.ts +0 -8
  34. package/dist/columns/arktype-config.d.ts.map +0 -1
  35. package/dist/columns/column-types.d.ts +0 -27
  36. package/dist/columns/column-types.d.ts.map +0 -1
  37. package/dist/columns/column.d.ts +0 -30
  38. package/dist/columns/column.d.ts.map +0 -1
  39. package/dist/columns/schema-config.d.ts +0 -10
  40. package/dist/columns/schema-config.d.ts.map +0 -1
  41. package/dist/errors/errors.d.ts +0 -26
  42. package/dist/errors/errors.d.ts.map +0 -1
  43. package/dist/hooks/lifecycle.d.ts +0 -11
  44. package/dist/hooks/lifecycle.d.ts.map +0 -1
  45. package/dist/index-4xnrys72.js +0 -56
  46. package/dist/index-ddxdqxz6.js +0 -636
  47. package/dist/index-k18nf2r7.js +0 -18
  48. package/dist/index-qb301480.js +0 -2424
  49. package/dist/index-sm1xx8gs.js +0 -7828
  50. package/dist/index.d.ts +0 -24
  51. package/dist/index.d.ts.map +0 -1
  52. package/dist/index.js +0 -9229
  53. package/dist/integrations/elysia.d.ts +0 -12
  54. package/dist/integrations/elysia.d.ts.map +0 -1
  55. package/dist/integrations/hono.d.ts +0 -7
  56. package/dist/integrations/hono.d.ts.map +0 -1
  57. package/dist/migrations/cli.d.ts +0 -2
  58. package/dist/migrations/cli.d.ts.map +0 -1
  59. package/dist/migrations/cli.js +0 -4079
  60. package/dist/migrations/config.d.ts +0 -5
  61. package/dist/migrations/config.d.ts.map +0 -1
  62. package/dist/migrations/generator.d.ts +0 -9
  63. package/dist/migrations/generator.d.ts.map +0 -1
  64. package/dist/migrations/index.d.ts +0 -5
  65. package/dist/migrations/index.d.ts.map +0 -1
  66. package/dist/migrations/index.js +0 -17
  67. package/dist/migrations/runner.d.ts +0 -12
  68. package/dist/migrations/runner.d.ts.map +0 -1
  69. package/dist/migrations/types.d.ts +0 -26
  70. package/dist/migrations/types.d.ts.map +0 -1
  71. package/dist/model/model-delete.d.ts +0 -7
  72. package/dist/model/model-delete.d.ts.map +0 -1
  73. package/dist/model/model-hooks.d.ts +0 -10
  74. package/dist/model/model-hooks.d.ts.map +0 -1
  75. package/dist/model/model-relation.d.ts +0 -7
  76. package/dist/model/model-relation.d.ts.map +0 -1
  77. package/dist/model/model-save.d.ts +0 -6
  78. package/dist/model/model-save.d.ts.map +0 -1
  79. package/dist/model/model-scope.d.ts +0 -6
  80. package/dist/model/model-scope.d.ts.map +0 -1
  81. package/dist/model/model-serialize.d.ts +0 -3
  82. package/dist/model/model-serialize.d.ts.map +0 -1
  83. package/dist/model/model-state.d.ts +0 -27
  84. package/dist/model/model-state.d.ts.map +0 -1
  85. package/dist/model/model.d.ts +0 -88
  86. package/dist/model/model.d.ts.map +0 -1
  87. package/dist/pagination/paginator.d.ts +0 -30
  88. package/dist/pagination/paginator.d.ts.map +0 -1
  89. package/dist/paginator-tmp4hxj5.js +0 -9
  90. package/dist/peta.d.ts +0 -20
  91. package/dist/peta.d.ts.map +0 -1
  92. package/dist/relations/morph.d.ts +0 -44
  93. package/dist/relations/morph.d.ts.map +0 -1
  94. package/dist/relations/relation.d.ts +0 -85
  95. package/dist/relations/relation.d.ts.map +0 -1
  96. package/dist/types.d.ts +0 -18
  97. package/dist/types.d.ts.map +0 -1
@@ -1,4079 +0,0 @@
1
- // @bun
2
- import {
3
- MigrationGenerator,
4
- MigrationRunner,
5
- loadConfig,
6
- loadMigrationFiles
7
- } from "../index-qb301480.js";
8
- import"../index-sm1xx8gs.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
- };