@acurast/cli
Version:
A cli to interact with the Acurast Cloud.
1,618 lines • 52 kB
JavaScript
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var _Ora_instances, _Ora_linesToClear, _Ora_isDiscardingStdin, _Ora_lineCount, _Ora_frameIndex, _Ora_options, _Ora_spinner, _Ora_stream, _Ora_id, _Ora_initialInterval, _Ora_isEnabled, _Ora_isSilent, _Ora_indent, _Ora_text, _Ora_prefixText, _Ora_suffixText, _Ora_getFullPrefixText, _Ora_getFullSuffixText, _Ora_updateLineCount;
import process from 'node:process';
import cliCursor from 'cli-cursor';
import logSymbols from 'log-symbols';
import stripAnsi from 'strip-ansi';
import stringWidth from 'string-width';
import isInteractive from 'is-interactive';
import isUnicodeSupported from 'is-unicode-supported';
import stdinDiscarder from 'stdin-discarder';
import { acurastColor } from '../util.js';
const cliSpinners = {
dots: {
interval: 80,
frames: ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'],
},
dots2: {
interval: 80,
frames: ['⣾', '⣽', '⣻', '⢿', '⡿', '⣟', '⣯', '⣷'],
},
dots3: {
interval: 80,
frames: ['⠋', '⠙', '⠚', '⠞', '⠖', '⠦', '⠴', '⠲', '⠳', '⠓'],
},
dots4: {
interval: 80,
frames: [
'⠄',
'⠆',
'⠇',
'⠋',
'⠙',
'⠸',
'⠰',
'⠠',
'⠰',
'⠸',
'⠙',
'⠋',
'⠇',
'⠆',
],
},
dots5: {
interval: 80,
frames: [
'⠋',
'⠙',
'⠚',
'⠒',
'⠂',
'⠂',
'⠒',
'⠲',
'⠴',
'⠦',
'⠖',
'⠒',
'⠐',
'⠐',
'⠒',
'⠓',
'⠋',
],
},
dots6: {
interval: 80,
frames: [
'⠁',
'⠉',
'⠙',
'⠚',
'⠒',
'⠂',
'⠂',
'⠒',
'⠲',
'⠴',
'⠤',
'⠄',
'⠄',
'⠤',
'⠴',
'⠲',
'⠒',
'⠂',
'⠂',
'⠒',
'⠚',
'⠙',
'⠉',
'⠁',
],
},
dots7: {
interval: 80,
frames: [
'⠈',
'⠉',
'⠋',
'⠓',
'⠒',
'⠐',
'⠐',
'⠒',
'⠖',
'⠦',
'⠤',
'⠠',
'⠠',
'⠤',
'⠦',
'⠖',
'⠒',
'⠐',
'⠐',
'⠒',
'⠓',
'⠋',
'⠉',
'⠈',
],
},
dots8: {
interval: 80,
frames: [
'⠁',
'⠁',
'⠉',
'⠙',
'⠚',
'⠒',
'⠂',
'⠂',
'⠒',
'⠲',
'⠴',
'⠤',
'⠄',
'⠄',
'⠤',
'⠠',
'⠠',
'⠤',
'⠦',
'⠖',
'⠒',
'⠐',
'⠐',
'⠒',
'⠓',
'⠋',
'⠉',
'⠈',
'⠈',
],
},
dots9: {
interval: 80,
frames: ['⢹', '⢺', '⢼', '⣸', '⣇', '⡧', '⡗', '⡏'],
},
dots10: {
interval: 80,
frames: ['⢄', '⢂', '⢁', '⡁', '⡈', '⡐', '⡠'],
},
dots11: {
interval: 100,
frames: ['⠁', '⠂', '⠄', '⡀', '⢀', '⠠', '⠐', '⠈'],
},
dots12: {
interval: 80,
frames: [
'⢀⠀',
'⡀⠀',
'⠄⠀',
'⢂⠀',
'⡂⠀',
'⠅⠀',
'⢃⠀',
'⡃⠀',
'⠍⠀',
'⢋⠀',
'⡋⠀',
'⠍⠁',
'⢋⠁',
'⡋⠁',
'⠍⠉',
'⠋⠉',
'⠋⠉',
'⠉⠙',
'⠉⠙',
'⠉⠩',
'⠈⢙',
'⠈⡙',
'⢈⠩',
'⡀⢙',
'⠄⡙',
'⢂⠩',
'⡂⢘',
'⠅⡘',
'⢃⠨',
'⡃⢐',
'⠍⡐',
'⢋⠠',
'⡋⢀',
'⠍⡁',
'⢋⠁',
'⡋⠁',
'⠍⠉',
'⠋⠉',
'⠋⠉',
'⠉⠙',
'⠉⠙',
'⠉⠩',
'⠈⢙',
'⠈⡙',
'⠈⠩',
'⠀⢙',
'⠀⡙',
'⠀⠩',
'⠀⢘',
'⠀⡘',
'⠀⠨',
'⠀⢐',
'⠀⡐',
'⠀⠠',
'⠀⢀',
'⠀⡀',
],
},
dots13: {
interval: 80,
frames: ['⣼', '⣹', '⢻', '⠿', '⡟', '⣏', '⣧', '⣶'],
},
dots8Bit: {
interval: 80,
frames: [
'⠀',
'⠁',
'⠂',
'⠃',
'⠄',
'⠅',
'⠆',
'⠇',
'⡀',
'⡁',
'⡂',
'⡃',
'⡄',
'⡅',
'⡆',
'⡇',
'⠈',
'⠉',
'⠊',
'⠋',
'⠌',
'⠍',
'⠎',
'⠏',
'⡈',
'⡉',
'⡊',
'⡋',
'⡌',
'⡍',
'⡎',
'⡏',
'⠐',
'⠑',
'⠒',
'⠓',
'⠔',
'⠕',
'⠖',
'⠗',
'⡐',
'⡑',
'⡒',
'⡓',
'⡔',
'⡕',
'⡖',
'⡗',
'⠘',
'⠙',
'⠚',
'⠛',
'⠜',
'⠝',
'⠞',
'⠟',
'⡘',
'⡙',
'⡚',
'⡛',
'⡜',
'⡝',
'⡞',
'⡟',
'⠠',
'⠡',
'⠢',
'⠣',
'⠤',
'⠥',
'⠦',
'⠧',
'⡠',
'⡡',
'⡢',
'⡣',
'⡤',
'⡥',
'⡦',
'⡧',
'⠨',
'⠩',
'⠪',
'⠫',
'⠬',
'⠭',
'⠮',
'⠯',
'⡨',
'⡩',
'⡪',
'⡫',
'⡬',
'⡭',
'⡮',
'⡯',
'⠰',
'⠱',
'⠲',
'⠳',
'⠴',
'⠵',
'⠶',
'⠷',
'⡰',
'⡱',
'⡲',
'⡳',
'⡴',
'⡵',
'⡶',
'⡷',
'⠸',
'⠹',
'⠺',
'⠻',
'⠼',
'⠽',
'⠾',
'⠿',
'⡸',
'⡹',
'⡺',
'⡻',
'⡼',
'⡽',
'⡾',
'⡿',
'⢀',
'⢁',
'⢂',
'⢃',
'⢄',
'⢅',
'⢆',
'⢇',
'⣀',
'⣁',
'⣂',
'⣃',
'⣄',
'⣅',
'⣆',
'⣇',
'⢈',
'⢉',
'⢊',
'⢋',
'⢌',
'⢍',
'⢎',
'⢏',
'⣈',
'⣉',
'⣊',
'⣋',
'⣌',
'⣍',
'⣎',
'⣏',
'⢐',
'⢑',
'⢒',
'⢓',
'⢔',
'⢕',
'⢖',
'⢗',
'⣐',
'⣑',
'⣒',
'⣓',
'⣔',
'⣕',
'⣖',
'⣗',
'⢘',
'⢙',
'⢚',
'⢛',
'⢜',
'⢝',
'⢞',
'⢟',
'⣘',
'⣙',
'⣚',
'⣛',
'⣜',
'⣝',
'⣞',
'⣟',
'⢠',
'⢡',
'⢢',
'⢣',
'⢤',
'⢥',
'⢦',
'⢧',
'⣠',
'⣡',
'⣢',
'⣣',
'⣤',
'⣥',
'⣦',
'⣧',
'⢨',
'⢩',
'⢪',
'⢫',
'⢬',
'⢭',
'⢮',
'⢯',
'⣨',
'⣩',
'⣪',
'⣫',
'⣬',
'⣭',
'⣮',
'⣯',
'⢰',
'⢱',
'⢲',
'⢳',
'⢴',
'⢵',
'⢶',
'⢷',
'⣰',
'⣱',
'⣲',
'⣳',
'⣴',
'⣵',
'⣶',
'⣷',
'⢸',
'⢹',
'⢺',
'⢻',
'⢼',
'⢽',
'⢾',
'⢿',
'⣸',
'⣹',
'⣺',
'⣻',
'⣼',
'⣽',
'⣾',
'⣿',
],
},
sand: {
interval: 80,
frames: [
'⠁',
'⠂',
'⠄',
'⡀',
'⡈',
'⡐',
'⡠',
'⣀',
'⣁',
'⣂',
'⣄',
'⣌',
'⣔',
'⣤',
'⣥',
'⣦',
'⣮',
'⣶',
'⣷',
'⣿',
'⡿',
'⠿',
'⢟',
'⠟',
'⡛',
'⠛',
'⠫',
'⢋',
'⠋',
'⠍',
'⡉',
'⠉',
'⠑',
'⠡',
'⢁',
],
},
line: {
interval: 130,
frames: ['-', '\\', '|', '/'],
},
line2: {
interval: 100,
frames: ['⠂', '-', '–', '—', '–', '-'],
},
pipe: {
interval: 100,
frames: ['┤', '┘', '┴', '└', '├', '┌', '┬', '┐'],
},
simpleDots: {
interval: 400,
frames: ['. ', '.. ', '...', ' '],
},
simpleDotsScrolling: {
interval: 200,
frames: ['. ', '.. ', '...', ' ..', ' .', ' '],
},
star: {
interval: 70,
frames: ['✶', '✸', '✹', '✺', '✹', '✷'],
},
star2: {
interval: 80,
frames: ['+', 'x', '*'],
},
flip: {
interval: 70,
frames: ['_', '_', '_', '-', '`', '`', "'", '´', '-', '_', '_', '_'],
},
hamburger: {
interval: 100,
frames: ['☱', '☲', '☴'],
},
growVertical: {
interval: 120,
frames: ['▁', '▃', '▄', '▅', '▆', '▇', '▆', '▅', '▄', '▃'],
},
growHorizontal: {
interval: 120,
frames: ['▏', '▎', '▍', '▌', '▋', '▊', '▉', '▊', '▋', '▌', '▍', '▎'],
},
balloon: {
interval: 140,
frames: [' ', '.', 'o', 'O', '@', '*', ' '],
},
balloon2: {
interval: 120,
frames: ['.', 'o', 'O', '°', 'O', 'o', '.'],
},
noise: {
interval: 100,
frames: ['▓', '▒', '░'],
},
bounce: {
interval: 120,
frames: ['⠁', '⠂', '⠄', '⠂'],
},
boxBounce: {
interval: 120,
frames: ['▖', '▘', '▝', '▗'],
},
boxBounce2: {
interval: 100,
frames: ['▌', '▀', '▐', '▄'],
},
triangle: {
interval: 50,
frames: ['◢', '◣', '◤', '◥'],
},
binary: {
interval: 80,
frames: [
'010010',
'001100',
'100101',
'111010',
'111101',
'010111',
'101011',
'111000',
'110011',
'110101',
],
},
arc: {
interval: 100,
frames: ['◜', '◠', '◝', '◞', '◡', '◟'],
},
circle: {
interval: 120,
frames: ['◡', '⊙', '◠'],
},
squareCorners: {
interval: 180,
frames: ['◰', '◳', '◲', '◱'],
},
circleQuarters: {
interval: 120,
frames: ['◴', '◷', '◶', '◵'],
},
circleHalves: {
interval: 50,
frames: ['◐', '◓', '◑', '◒'],
},
squish: {
interval: 100,
frames: ['╫', '╪'],
},
toggle: {
interval: 250,
frames: ['⊶', '⊷'],
},
toggle2: {
interval: 80,
frames: ['▫', '▪'],
},
toggle3: {
interval: 120,
frames: ['□', '■'],
},
toggle4: {
interval: 100,
frames: ['■', '□', '▪', '▫'],
},
toggle5: {
interval: 100,
frames: ['▮', '▯'],
},
toggle6: {
interval: 300,
frames: ['ဝ', '၀'],
},
toggle7: {
interval: 80,
frames: ['⦾', '⦿'],
},
toggle8: {
interval: 100,
frames: ['◍', '◌'],
},
toggle9: {
interval: 100,
frames: ['◉', '◎'],
},
toggle10: {
interval: 100,
frames: ['㊂', '㊀', '㊁'],
},
toggle11: {
interval: 50,
frames: ['⧇', '⧆'],
},
toggle12: {
interval: 120,
frames: ['☗', '☖'],
},
toggle13: {
interval: 80,
frames: ['=', '*', '-'],
},
arrow: {
interval: 100,
frames: ['←', '↖', '↑', '↗', '→', '↘', '↓', '↙'],
},
arrow2: {
interval: 80,
frames: ['⬆️ ', '↗️ ', '➡️ ', '↘️ ', '⬇️ ', '↙️ ', '⬅️ ', '↖️ '],
},
arrow3: {
interval: 120,
frames: ['▹▹▹▹▹', '▸▹▹▹▹', '▹▸▹▹▹', '▹▹▸▹▹', '▹▹▹▸▹', '▹▹▹▹▸'],
},
bouncingBar: {
interval: 80,
frames: [
'[ ]',
'[= ]',
'[== ]',
'[=== ]',
'[====]',
'[ ===]',
'[ ==]',
'[ =]',
'[ ]',
'[ =]',
'[ ==]',
'[ ===]',
'[====]',
'[=== ]',
'[== ]',
'[= ]',
],
},
bouncingBall: {
interval: 80,
frames: [
'( ● )',
'( ● )',
'( ● )',
'( ● )',
'( ●)',
'( ● )',
'( ● )',
'( ● )',
'( ● )',
'(● )',
],
},
smiley: {
interval: 200,
frames: ['😄 ', '😝 '],
},
monkey: {
interval: 300,
frames: ['🙈 ', '🙈 ', '🙉 ', '🙊 '],
},
hearts: {
interval: 100,
frames: ['💛 ', '💙 ', '💜 ', '💚 ', '❤️ '],
},
clock: {
interval: 100,
frames: [
'🕛 ',
'🕐 ',
'🕑 ',
'🕒 ',
'🕓 ',
'🕔 ',
'🕕 ',
'🕖 ',
'🕗 ',
'🕘 ',
'🕙 ',
'🕚 ',
],
},
earth: {
interval: 180,
frames: ['🌍 ', '🌎 ', '🌏 '],
},
material: {
interval: 17,
frames: [
'█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁',
'██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁',
'███▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁',
'████▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁',
'██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁',
'██████▁▁▁▁▁▁▁▁▁▁▁▁▁▁',
'███████▁▁▁▁▁▁▁▁▁▁▁▁▁',
'████████▁▁▁▁▁▁▁▁▁▁▁▁',
'█████████▁▁▁▁▁▁▁▁▁▁▁',
'█████████▁▁▁▁▁▁▁▁▁▁▁',
'██████████▁▁▁▁▁▁▁▁▁▁',
'███████████▁▁▁▁▁▁▁▁▁',
'█████████████▁▁▁▁▁▁▁',
'██████████████▁▁▁▁▁▁',
'██████████████▁▁▁▁▁▁',
'▁██████████████▁▁▁▁▁',
'▁██████████████▁▁▁▁▁',
'▁██████████████▁▁▁▁▁',
'▁▁██████████████▁▁▁▁',
'▁▁▁██████████████▁▁▁',
'▁▁▁▁█████████████▁▁▁',
'▁▁▁▁██████████████▁▁',
'▁▁▁▁██████████████▁▁',
'▁▁▁▁▁██████████████▁',
'▁▁▁▁▁██████████████▁',
'▁▁▁▁▁██████████████▁',
'▁▁▁▁▁▁██████████████',
'▁▁▁▁▁▁██████████████',
'▁▁▁▁▁▁▁█████████████',
'▁▁▁▁▁▁▁█████████████',
'▁▁▁▁▁▁▁▁████████████',
'▁▁▁▁▁▁▁▁████████████',
'▁▁▁▁▁▁▁▁▁███████████',
'▁▁▁▁▁▁▁▁▁███████████',
'▁▁▁▁▁▁▁▁▁▁██████████',
'▁▁▁▁▁▁▁▁▁▁██████████',
'▁▁▁▁▁▁▁▁▁▁▁▁████████',
'▁▁▁▁▁▁▁▁▁▁▁▁▁███████',
'▁▁▁▁▁▁▁▁▁▁▁▁▁▁██████',
'▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████',
'▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████',
'█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████',
'██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███',
'██▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███',
'███▁▁▁▁▁▁▁▁▁▁▁▁▁▁███',
'████▁▁▁▁▁▁▁▁▁▁▁▁▁▁██',
'█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█',
'█████▁▁▁▁▁▁▁▁▁▁▁▁▁▁█',
'██████▁▁▁▁▁▁▁▁▁▁▁▁▁█',
'████████▁▁▁▁▁▁▁▁▁▁▁▁',
'█████████▁▁▁▁▁▁▁▁▁▁▁',
'█████████▁▁▁▁▁▁▁▁▁▁▁',
'█████████▁▁▁▁▁▁▁▁▁▁▁',
'█████████▁▁▁▁▁▁▁▁▁▁▁',
'███████████▁▁▁▁▁▁▁▁▁',
'████████████▁▁▁▁▁▁▁▁',
'████████████▁▁▁▁▁▁▁▁',
'██████████████▁▁▁▁▁▁',
'██████████████▁▁▁▁▁▁',
'▁██████████████▁▁▁▁▁',
'▁██████████████▁▁▁▁▁',
'▁▁▁█████████████▁▁▁▁',
'▁▁▁▁▁████████████▁▁▁',
'▁▁▁▁▁████████████▁▁▁',
'▁▁▁▁▁▁███████████▁▁▁',
'▁▁▁▁▁▁▁▁█████████▁▁▁',
'▁▁▁▁▁▁▁▁█████████▁▁▁',
'▁▁▁▁▁▁▁▁▁█████████▁▁',
'▁▁▁▁▁▁▁▁▁█████████▁▁',
'▁▁▁▁▁▁▁▁▁▁█████████▁',
'▁▁▁▁▁▁▁▁▁▁▁████████▁',
'▁▁▁▁▁▁▁▁▁▁▁████████▁',
'▁▁▁▁▁▁▁▁▁▁▁▁███████▁',
'▁▁▁▁▁▁▁▁▁▁▁▁███████▁',
'▁▁▁▁▁▁▁▁▁▁▁▁▁███████',
'▁▁▁▁▁▁▁▁▁▁▁▁▁███████',
'▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█████',
'▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████',
'▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████',
'▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁████',
'▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███',
'▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁███',
'▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██',
'▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██',
'▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁██',
'▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█',
'▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█',
'▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█',
'▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁',
'▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁',
'▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁',
'▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁',
],
},
moon: {
interval: 80,
frames: ['🌑 ', '🌒 ', '🌓 ', '🌔 ', '🌕 ', '🌖 ', '🌗 ', '🌘 '],
},
runner: {
interval: 140,
frames: ['🚶 ', '🏃 '],
},
pong: {
interval: 80,
frames: [
'▐⠂ ▌',
'▐⠈ ▌',
'▐ ⠂ ▌',
'▐ ⠠ ▌',
'▐ ⡀ ▌',
'▐ ⠠ ▌',
'▐ ⠂ ▌',
'▐ ⠈ ▌',
'▐ ⠂ ▌',
'▐ ⠠ ▌',
'▐ ⡀ ▌',
'▐ ⠠ ▌',
'▐ ⠂ ▌',
'▐ ⠈ ▌',
'▐ ⠂▌',
'▐ ⠠▌',
'▐ ⡀▌',
'▐ ⠠ ▌',
'▐ ⠂ ▌',
'▐ ⠈ ▌',
'▐ ⠂ ▌',
'▐ ⠠ ▌',
'▐ ⡀ ▌',
'▐ ⠠ ▌',
'▐ ⠂ ▌',
'▐ ⠈ ▌',
'▐ ⠂ ▌',
'▐ ⠠ ▌',
'▐ ⡀ ▌',
'▐⠠ ▌',
],
},
shark: {
interval: 120,
frames: [
'▐|\\____________▌',
'▐_|\\___________▌',
'▐__|\\__________▌',
'▐___|\\_________▌',
'▐____|\\________▌',
'▐_____|\\_______▌',
'▐______|\\______▌',
'▐_______|\\_____▌',
'▐________|\\____▌',
'▐_________|\\___▌',
'▐__________|\\__▌',
'▐___________|\\_▌',
'▐____________|\\▌',
'▐____________/|▌',
'▐___________/|_▌',
'▐__________/|__▌',
'▐_________/|___▌',
'▐________/|____▌',
'▐_______/|_____▌',
'▐______/|______▌',
'▐_____/|_______▌',
'▐____/|________▌',
'▐___/|_________▌',
'▐__/|__________▌',
'▐_/|___________▌',
'▐/|____________▌',
],
},
dqpb: {
interval: 100,
frames: ['d', 'q', 'p', 'b'],
},
weather: {
interval: 100,
frames: [
'☀️ ',
'☀️ ',
'☀️ ',
'🌤 ',
'⛅️ ',
'🌥 ',
'☁️ ',
'🌧 ',
'🌨 ',
'🌧 ',
'🌨 ',
'🌧 ',
'🌨 ',
'⛈ ',
'🌨 ',
'🌧 ',
'🌨 ',
'☁️ ',
'🌥 ',
'⛅️ ',
'🌤 ',
'☀️ ',
'☀️ ',
],
},
christmas: {
interval: 400,
frames: ['🌲', '🎄'],
},
grenade: {
interval: 80,
frames: [
'، ',
'′ ',
' ´ ',
' ‾ ',
' ⸌',
' ⸊',
' |',
' ⁎',
' ⁕',
' ෴ ',
' ⁓',
' ',
' ',
' ',
],
},
point: {
interval: 125,
frames: ['∙∙∙', '●∙∙', '∙●∙', '∙∙●', '∙∙∙'],
},
layer: {
interval: 150,
frames: ['-', '=', '≡'],
},
betaWave: {
interval: 80,
frames: [
'ρββββββ',
'βρβββββ',
'ββρββββ',
'βββρβββ',
'ββββρββ',
'βββββρβ',
'ββββββρ',
],
},
fingerDance: {
interval: 160,
frames: ['🤘 ', '🤟 ', '🖖 ', '✋ ', '🤚 ', '👆 '],
},
fistBump: {
interval: 80,
frames: [
'🤜\u3000\u3000\u3000\u3000🤛 ',
'🤜\u3000\u3000\u3000\u3000🤛 ',
'🤜\u3000\u3000\u3000\u3000🤛 ',
'\u3000🤜\u3000\u3000🤛\u3000 ',
'\u3000\u3000🤜🤛\u3000\u3000 ',
'\u3000🤜✨🤛\u3000\u3000 ',
'🤜\u3000✨\u3000🤛\u3000 ',
],
},
soccerHeader: {
interval: 80,
frames: [
' 🧑⚽️ 🧑 ',
'🧑 ⚽️ 🧑 ',
'🧑 ⚽️ 🧑 ',
'🧑 ⚽️ 🧑 ',
'🧑 ⚽️ 🧑 ',
'🧑 ⚽️ 🧑 ',
'🧑 ⚽️🧑 ',
'🧑 ⚽️ 🧑 ',
'🧑 ⚽️ 🧑 ',
'🧑 ⚽️ 🧑 ',
'🧑 ⚽️ 🧑 ',
'🧑 ⚽️ 🧑 ',
],
},
mindblown: {
interval: 160,
frames: [
'😐 ',
'😐 ',
'😮 ',
'😮 ',
'😦 ',
'😦 ',
'😧 ',
'😧 ',
'🤯 ',
'💥 ',
'✨ ',
'\u3000 ',
'\u3000 ',
'\u3000 ',
],
},
speaker: {
interval: 160,
frames: ['🔈 ', '🔉 ', '🔊 ', '🔉 '],
},
orangePulse: {
interval: 100,
frames: ['🔸 ', '🔶 ', '🟠 ', '🟠 ', '🔶 '],
},
bluePulse: {
interval: 100,
frames: ['🔹 ', '🔷 ', '🔵 ', '🔵 ', '🔷 '],
},
orangeBluePulse: {
interval: 100,
frames: [
'🔸 ',
'🔶 ',
'🟠 ',
'🟠 ',
'🔶 ',
'🔹 ',
'🔷 ',
'🔵 ',
'🔵 ',
'🔷 ',
],
},
timeTravel: {
interval: 100,
frames: [
'🕛 ',
'🕚 ',
'🕙 ',
'🕘 ',
'🕗 ',
'🕖 ',
'🕕 ',
'🕔 ',
'🕓 ',
'🕒 ',
'🕑 ',
'🕐 ',
],
},
aesthetic: {
interval: 80,
frames: [
'▰▱▱▱▱▱▱',
'▰▰▱▱▱▱▱',
'▰▰▰▱▱▱▱',
'▰▰▰▰▱▱▱',
'▰▰▰▰▰▱▱',
'▰▰▰▰▰▰▱',
'▰▰▰▰▰▰▰',
'▰▱▱▱▱▱▱',
],
},
dwarfFortress: {
interval: 80,
frames: [
' ██████£££ ',
'☺██████£££ ',
'☺██████£££ ',
'☺▓█████£££ ',
'☺▓█████£££ ',
'☺▒█████£££ ',
'☺▒█████£££ ',
'☺░█████£££ ',
'☺░█████£££ ',
'☺ █████£££ ',
' ☺█████£££ ',
' ☺█████£££ ',
' ☺▓████£££ ',
' ☺▓████£££ ',
' ☺▒████£££ ',
' ☺▒████£££ ',
' ☺░████£££ ',
' ☺░████£££ ',
' ☺ ████£££ ',
' ☺████£££ ',
' ☺████£££ ',
' ☺▓███£££ ',
' ☺▓███£££ ',
' ☺▒███£££ ',
' ☺▒███£££ ',
' ☺░███£££ ',
' ☺░███£££ ',
' ☺ ███£££ ',
' ☺███£££ ',
' ☺███£££ ',
' ☺▓██£££ ',
' ☺▓██£££ ',
' ☺▒██£££ ',
' ☺▒██£££ ',
' ☺░██£££ ',
' ☺░██£££ ',
' ☺ ██£££ ',
' ☺██£££ ',
' ☺██£££ ',
' ☺▓█£££ ',
' ☺▓█£££ ',
' ☺▒█£££ ',
' ☺▒█£££ ',
' ☺░█£££ ',
' ☺░█£££ ',
' ☺ █£££ ',
' ☺█£££ ',
' ☺█£££ ',
' ☺▓£££ ',
' ☺▓£££ ',
' ☺▒£££ ',
' ☺▒£££ ',
' ☺░£££ ',
' ☺░£££ ',
' ☺ £££ ',
' ☺£££ ',
' ☺£££ ',
' ☺▓££ ',
' ☺▓££ ',
' ☺▒££ ',
' ☺▒££ ',
' ☺░££ ',
' ☺░££ ',
' ☺ ££ ',
' ☺££ ',
' ☺££ ',
' ☺▓£ ',
' ☺▓£ ',
' ☺▒£ ',
' ☺▒£ ',
' ☺░£ ',
' ☺░£ ',
' ☺ £ ',
' ☺£ ',
' ☺£ ',
' ☺▓ ',
' ☺▓ ',
' ☺▒ ',
' ☺▒ ',
' ☺░ ',
' ☺░ ',
' ☺ ',
' ☺ &',
' ☺ ☼&',
' ☺ ☼ &',
' ☺☼ &',
' ☺☼ & ',
' ‼ & ',
' ☺ & ',
' ‼ & ',
' ☺ & ',
' ‼ & ',
' ☺ & ',
'‼ & ',
' & ',
' & ',
' & ░ ',
' & ▒ ',
' & ▓ ',
' & £ ',
' & ░£ ',
' & ▒£ ',
' & ▓£ ',
' & ££ ',
' & ░££ ',
' & ▒££ ',
'& ▓££ ',
'& £££ ',
' ░£££ ',
' ▒£££ ',
' ▓£££ ',
' █£££ ',
' ░█£££ ',
' ▒█£££ ',
' ▓█£££ ',
' ██£££ ',
' ░██£££ ',
' ▒██£££ ',
' ▓██£££ ',
' ███£££ ',
' ░███£££ ',
' ▒███£££ ',
' ▓███£££ ',
' ████£££ ',
' ░████£££ ',
' ▒████£££ ',
' ▓████£££ ',
' █████£££ ',
' ░█████£££ ',
' ▒█████£££ ',
' ▓█████£££ ',
' ██████£££ ',
' ██████£££ ',
],
},
};
class Ora {
constructor(options) {
_Ora_instances.add(this);
_Ora_linesToClear.set(this, 0);
_Ora_isDiscardingStdin.set(this, false);
_Ora_lineCount.set(this, 0);
_Ora_frameIndex.set(this, 0);
_Ora_options.set(this, void 0);
_Ora_spinner.set(this, void 0);
_Ora_stream.set(this, void 0);
_Ora_id.set(this, void 0);
_Ora_initialInterval.set(this, void 0);
_Ora_isEnabled.set(this, void 0);
_Ora_isSilent.set(this, void 0);
_Ora_indent.set(this, void 0);
_Ora_text.set(this, void 0);
_Ora_prefixText.set(this, void 0);
_Ora_suffixText.set(this, void 0);
if (typeof options === 'string') {
options = {
text: options,
};
}
__classPrivateFieldSet(this, _Ora_options, {
color: 'cyan',
stream: process.stderr,
discardStdin: true,
hideCursor: true,
...options,
}, "f");
// Public
this.color = __classPrivateFieldGet(this, _Ora_options, "f").color;
// It's important that these use the public setters.
this.spinner = __classPrivateFieldGet(this, _Ora_options, "f").spinner;
__classPrivateFieldSet(this, _Ora_initialInterval, __classPrivateFieldGet(this, _Ora_options, "f").interval, "f");
__classPrivateFieldSet(this, _Ora_stream, __classPrivateFieldGet(this, _Ora_options, "f").stream, "f");
__classPrivateFieldSet(this, _Ora_isEnabled, typeof __classPrivateFieldGet(this, _Ora_options, "f").isEnabled === 'boolean'
? __classPrivateFieldGet(this, _Ora_options, "f").isEnabled
: isInteractive({ stream: __classPrivateFieldGet(this, _Ora_stream, "f") }), "f");
__classPrivateFieldSet(this, _Ora_isSilent, typeof __classPrivateFieldGet(this, _Ora_options, "f").isSilent === 'boolean'
? __classPrivateFieldGet(this, _Ora_options, "f").isSilent
: false, "f");
// Set *after* `this.#stream`.
// It's important that these use the public setters.
this.text = __classPrivateFieldGet(this, _Ora_options, "f").text;
this.prefixText = __classPrivateFieldGet(this, _Ora_options, "f").prefixText;
this.suffixText = __classPrivateFieldGet(this, _Ora_options, "f").suffixText;
this.indent = __classPrivateFieldGet(this, _Ora_options, "f").indent;
if (process.env.NODE_ENV === 'test') {
this._stream = __classPrivateFieldGet(this, _Ora_stream, "f");
this._isEnabled = __classPrivateFieldGet(this, _Ora_isEnabled, "f");
Object.defineProperty(this, '_linesToClear', {
get() {
return __classPrivateFieldGet(this, _Ora_linesToClear, "f");
},
set(newValue) {
__classPrivateFieldSet(this, _Ora_linesToClear, newValue, "f");
},
});
Object.defineProperty(this, '_frameIndex', {
get() {
return __classPrivateFieldGet(this, _Ora_frameIndex, "f");
},
});
Object.defineProperty(this, '_lineCount', {
get() {
return __classPrivateFieldGet(this, _Ora_lineCount, "f");
},
});
}
}
get indent() {
return __classPrivateFieldGet(this, _Ora_indent, "f");
}
set indent(indent = 0) {
if (!(indent >= 0 && Number.isInteger(indent))) {
throw new Error('The `indent` option must be an integer from 0 and up');
}
__classPrivateFieldSet(this, _Ora_indent, indent, "f");
__classPrivateFieldGet(this, _Ora_instances, "m", _Ora_updateLineCount).call(this);
}
get interval() {
return __classPrivateFieldGet(this, _Ora_initialInterval, "f") ?? __classPrivateFieldGet(this, _Ora_spinner, "f").interval ?? 100;
}
get spinner() {
return __classPrivateFieldGet(this, _Ora_spinner, "f");
}
set spinner(spinner) {
__classPrivateFieldSet(this, _Ora_frameIndex, 0, "f");
__classPrivateFieldSet(this, _Ora_initialInterval, undefined, "f");
if (typeof spinner === 'object') {
if (spinner.frames === undefined) {
throw new Error('The given spinner must have a `frames` property');
}
__classPrivateFieldSet(this, _Ora_spinner, spinner, "f");
}
else if (!isUnicodeSupported()) {
__classPrivateFieldSet(this, _Ora_spinner, cliSpinners.line, "f");
}
else if (spinner === undefined) {
// Set default spinner
__classPrivateFieldSet(this, _Ora_spinner, cliSpinners.dots, "f");
}
else if (spinner !== 'default' && cliSpinners[spinner]) {
__classPrivateFieldSet(this, _Ora_spinner, cliSpinners[spinner], "f");
}
else {
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.`);
}
}
get text() {
return __classPrivateFieldGet(this, _Ora_text, "f");
}
set text(value = '') {
__classPrivateFieldSet(this, _Ora_text, value, "f");
__classPrivateFieldGet(this, _Ora_instances, "m", _Ora_updateLineCount).call(this);
}
get prefixText() {
return __classPrivateFieldGet(this, _Ora_prefixText, "f");
}
set prefixText(value = '') {
__classPrivateFieldSet(this, _Ora_prefixText, value, "f");
__classPrivateFieldGet(this, _Ora_instances, "m", _Ora_updateLineCount).call(this);
}
get suffixText() {
return __classPrivateFieldGet(this, _Ora_suffixText, "f");
}
set suffixText(value = '') {
__classPrivateFieldSet(this, _Ora_suffixText, value, "f");
__classPrivateFieldGet(this, _Ora_instances, "m", _Ora_updateLineCount).call(this);
}
get isSpinning() {
return __classPrivateFieldGet(this, _Ora_id, "f") !== undefined;
}
get isEnabled() {
return __classPrivateFieldGet(this, _Ora_isEnabled, "f") && !__classPrivateFieldGet(this, _Ora_isSilent, "f");
}
set isEnabled(value) {
if (typeof value !== 'boolean') {
throw new TypeError('The `isEnabled` option must be a boolean');
}
__classPrivateFieldSet(this, _Ora_isEnabled, value, "f");
}
get isSilent() {
return __classPrivateFieldGet(this, _Ora_isSilent, "f");
}
set isSilent(value) {
if (typeof value !== 'boolean') {
throw new TypeError('The `isSilent` option must be a boolean');
}
__classPrivateFieldSet(this, _Ora_isSilent, value, "f");
}
frame() {
var _a;
const { frames } = __classPrivateFieldGet(this, _Ora_spinner, "f");
let frame = frames[__classPrivateFieldGet(this, _Ora_frameIndex, "f")];
if (this.color) {
frame = acurastColor(frame);
}
__classPrivateFieldSet(this, _Ora_frameIndex, __classPrivateFieldSet(this, _Ora_frameIndex, (_a = __classPrivateFieldGet(this, _Ora_frameIndex, "f"), ++_a), "f") % frames.length, "f");
const fullPrefixText = typeof __classPrivateFieldGet(this, _Ora_prefixText, "f") === 'string' && __classPrivateFieldGet(this, _Ora_prefixText, "f") !== ''
? __classPrivateFieldGet(this, _Ora_prefixText, "f") + ' '
: '';
const fullText = typeof this.text === 'string' ? ' ' + this.text : '';
const fullSuffixText = typeof __classPrivateFieldGet(this, _Ora_suffixText, "f") === 'string' && __classPrivateFieldGet(this, _Ora_suffixText, "f") !== ''
? ' ' + __classPrivateFieldGet(this, _Ora_suffixText, "f")
: '';
return fullPrefixText + frame + fullText + fullSuffixText;
}
clear() {
if (!__classPrivateFieldGet(this, _Ora_isEnabled, "f") || !__classPrivateFieldGet(this, _Ora_stream, "f").isTTY) {
return this;
}
__classPrivateFieldGet(this, _Ora_stream, "f").cursorTo(0);
for (let index = 0; index < __classPrivateFieldGet(this, _Ora_linesToClear, "f"); index++) {
if (index > 0) {
__classPrivateFieldGet(this, _Ora_stream, "f").moveCursor(0, -1);
}
__classPrivateFieldGet(this, _Ora_stream, "f").clearLine(1);
}
if (__classPrivateFieldGet(this, _Ora_indent, "f") || this.lastIndent !== __classPrivateFieldGet(this, _Ora_indent, "f")) {
__classPrivateFieldGet(this, _Ora_stream, "f").cursorTo(__classPrivateFieldGet(this, _Ora_indent, "f"));
}
this.lastIndent = __classPrivateFieldGet(this, _Ora_indent, "f");
__classPrivateFieldSet(this, _Ora_linesToClear, 0, "f");
return this;
}
render() {
if (__classPrivateFieldGet(this, _Ora_isSilent, "f")) {
return this;
}
this.clear();
__classPrivateFieldGet(this, _Ora_stream, "f").write(this.frame());
__classPrivateFieldSet(this, _Ora_linesToClear, __classPrivateFieldGet(this, _Ora_lineCount, "f"), "f");
return this;
}
start(text) {
if (text) {
this.text = text;
}
if (__classPrivateFieldGet(this, _Ora_isSilent, "f")) {
return this;
}
if (!__classPrivateFieldGet(this, _Ora_isEnabled, "f")) {
if (this.text) {
__classPrivateFieldGet(this, _Ora_stream, "f").write(`- ${this.text}\n`);
}
return this;
}
if (this.isSpinning) {
return this;
}
if (__classPrivateFieldGet(this, _Ora_options, "f").hideCursor) {
cliCursor.hide(__classPrivateFieldGet(this, _Ora_stream, "f"));
}
if (__classPrivateFieldGet(this, _Ora_options, "f").discardStdin && process.stdin.isTTY) {
__classPrivateFieldSet(this, _Ora_isDiscardingStdin, true, "f");
stdinDiscarder.start();
}
this.render();
__classPrivateFieldSet(this, _Ora_id, setInterval(this.render.bind(this), this.interval), "f");
return this;
}
stop() {
if (!__classPrivateFieldGet(this, _Ora_isEnabled, "f")) {
return this;
}
clearInterval(__classPrivateFieldGet(this, _Ora_id, "f"));
__classPrivateFieldSet(this, _Ora_id, undefined, "f");
__classPrivateFieldSet(this, _Ora_frameIndex, 0, "f");
this.clear();
if (__classPrivateFieldGet(this, _Ora_options, "f").hideCursor) {
cliCursor.show(__classPrivateFieldGet(this, _Ora_stream, "f"));
}
if (__classPrivateFieldGet(this, _Ora_options, "f").discardStdin &&
process.stdin.isTTY &&
__classPrivateFieldGet(this, _Ora_isDiscardingStdin, "f")) {
stdinDiscarder.stop();
__classPrivateFieldSet(this, _Ora_isDiscardingStdin, false, "f");
}
return this;
}
succeed(text) {
return this.stopAndPersist({ symbol: logSymbols.success, text });
}
fail(text) {
return this.stopAndPersist({ symbol: logSymbols.error, text });
}
warn(text) {
return this.stopAndPersist({ symbol: logSymbols.warning, text });
}
info(text) {
return this.stopAndPersist({ symbol: logSymbols.info, text });
}
stopAndPersist(options = {}) {
if (__classPrivateFieldGet(this, _Ora_isSilent, "f")) {
return this;
}
const prefixText = options.prefixText ?? __classPrivateFieldGet(this, _Ora_prefixText, "f");
const fullPrefixText = __classPrivateFieldGet(this, _Ora_instances, "m", _Ora_getFullPrefixText).call(this, prefixText, ' ');
const symbolText = options.symbol ?? ' ';
const text = options.text ?? this.text;
const fullText = typeof text === 'string' ? ' ' + text : '';
const suffixText = options.suffixText ?? __classPrivateFieldGet(this, _Ora_suffixText, "f");
const fullSuffixText = __classPrivateFieldGet(this, _Ora_instances, "m", _Ora_getFullSuffixText).call(this, suffixText, ' ');
const textToWrite = fullPrefixText + symbolText + fullText + fullSuffixText + '\n';
this.stop();
__classPrivateFieldGet(this, _Ora_stream, "f").write(textToWrite);
return this;
}
}
_Ora_linesToClear = new WeakMap(), _Ora_isDiscardingStdin = new WeakMap(), _Ora_lineCount = new WeakMap(), _Ora_frameIndex = new WeakMap(), _Ora_options = new WeakMap(), _Ora_spinner = new WeakMap(), _Ora_stream = new WeakMap(), _Ora_id = new WeakMap(), _Ora_initialInterval = new WeakMap(), _Ora_isEnabled = new WeakMap(), _Ora_isSilent = new WeakMap(), _Ora_indent = new WeakMap(), _Ora_text = new WeakMap(), _Ora_prefixText = new WeakMap(), _Ora_suffixText = new WeakMap(), _Ora_instances = new WeakSet(), _Ora_getFullPrefixText = function _Ora_getFullPrefixText(prefixText = __classPrivateFieldGet(this, _Ora_prefixText, "f"), postfix = ' ') {
if (typeof prefixText === 'string' && prefixText !== '') {
return prefixText + postfix;
}
if (typeof prefixText === 'function') {
return prefixText() + postfix;
}
return '';
}, _Ora_getFullSuffixText = function _Ora_getFullSuffixText(suffixText = __classPrivateFieldGet(this, _Ora_suffixText, "f"), prefix = ' ') {
if (typeof suffixText === 'string' && suffixText !== '') {
return prefix + suffixText;
}
if (typeof suffixText === 'function') {
return prefix + suffixText();
}
return '';
}, _Ora_updateLineCount = function _Ora_updateLineCount() {
const columns = __classPrivateFieldGet(this, _Ora_stream, "f").columns ?? 80;
const fullPrefixText = __classPrivateFieldGet(this, _Ora_instances, "m", _Ora_getFullPrefixText).call(this, __classPrivateFieldGet(this, _Ora_prefixText, "f"), '-');
const fullSuffixText = __classPrivateFieldGet(this, _Ora_instances, "m", _Ora_getFullSuffixText).call(this, __classPrivateFieldGet(this, _Ora_suffixText, "f"), '-');
const fullText = ' '.repeat(__classPrivateFieldGet(this, _Ora_indent, "f")) +
fullPrefixText +
'--' +
__classPrivateFieldGet(this, _Ora_text, "f") +
'--' +
fullSuffixText;
__classPrivateFieldSet(this, _Ora_lineCount, 0, "f");
for (const line of stripAnsi(fullText).split('\n')) {
__classPrivateFieldSet(this, _Ora_lineCount, __classPrivateFieldGet(this, _Ora_lineCount, "f") + Math.max(1, Math.ceil(stringWidth(line, { countAnsiEscapeCodes: true }) / columns)), "f");
}
};
export default function ora(options) {
return new Ora(options);
}
export async function oraPromise(action, options) {
const actionIsFunction = typeof action === 'function';
const actionIsPromise = typeof action.then === 'function';
if (!actionIsFunction && !actionIsPromise) {
throw new TypeError('Parameter `action` must be a Function or a Promise');
}
const { successText, failText } = typeof options === 'object'
? options
: { successText: undefined, failText: undefined };
const spinner = ora(options).start();
try {
const promise = actionIsFunction ? action(spinner) : action;
const result = await promise;
spinner.succeed(successText === undefined
? undefined
: typeof successText === 'string'
? successText
: successText(result));
return result;
}
catch (error) {
spinner.fail(failText === undefined
? undefined
: typeof failText === 'string'
? failText
: failText(error));
throw error;
}
}
//# sourceMappingURL=ora.js.map