Spaces:
Running
Running
; | |
var __importDefault = (this && this.__importDefault) || function (mod) { | |
return (mod && mod.__esModule) ? mod : { "default": mod }; | |
}; | |
Object.defineProperty(exports, "__esModule", { value: true }); | |
exports.replaceSymbols = exports.fallbackSymbols = exports.mainSymbols = void 0; | |
// process.env dot-notation access prints: | |
// Property 'TERM' comes from an index signature, so it must be accessed with ['TERM'].ts(4111) | |
/* eslint dot-notation: ["off"] */ | |
const node_process_1 = __importDefault(require("node:process")); | |
// Ported from is-unicode-supported | |
function isUnicodeSupported() { | |
if (node_process_1.default.platform !== 'win32') { | |
return node_process_1.default.env['TERM'] !== 'linux'; // Linux console (kernel) | |
} | |
return (Boolean(node_process_1.default.env['WT_SESSION']) || // Windows Terminal | |
Boolean(node_process_1.default.env['TERMINUS_SUBLIME']) || // Terminus (<0.2.27) | |
node_process_1.default.env['ConEmuTask'] === '{cmd::Cmder}' || // ConEmu and cmder | |
node_process_1.default.env['TERM_PROGRAM'] === 'Terminus-Sublime' || | |
node_process_1.default.env['TERM_PROGRAM'] === 'vscode' || | |
node_process_1.default.env['TERM'] === 'xterm-256color' || | |
node_process_1.default.env['TERM'] === 'alacritty' || | |
node_process_1.default.env['TERMINAL_EMULATOR'] === 'JetBrains-JediTerm'); | |
} | |
// Ported from figures | |
const common = { | |
circleQuestionMark: '(?)', | |
questionMarkPrefix: '(?)', | |
square: '█', | |
squareDarkShade: '▓', | |
squareMediumShade: '▒', | |
squareLightShade: '░', | |
squareTop: '▀', | |
squareBottom: '▄', | |
squareLeft: '▌', | |
squareRight: '▐', | |
squareCenter: '■', | |
bullet: '●', | |
dot: '․', | |
ellipsis: '…', | |
pointerSmall: '›', | |
triangleUp: '▲', | |
triangleUpSmall: '▴', | |
triangleDown: '▼', | |
triangleDownSmall: '▾', | |
triangleLeftSmall: '◂', | |
triangleRightSmall: '▸', | |
home: '⌂', | |
heart: '♥', | |
musicNote: '♪', | |
musicNoteBeamed: '♫', | |
arrowUp: '↑', | |
arrowDown: '↓', | |
arrowLeft: '←', | |
arrowRight: '→', | |
arrowLeftRight: '↔', | |
arrowUpDown: '↕', | |
almostEqual: '≈', | |
notEqual: '≠', | |
lessOrEqual: '≤', | |
greaterOrEqual: '≥', | |
identical: '≡', | |
infinity: '∞', | |
subscriptZero: '₀', | |
subscriptOne: '₁', | |
subscriptTwo: '₂', | |
subscriptThree: '₃', | |
subscriptFour: '₄', | |
subscriptFive: '₅', | |
subscriptSix: '₆', | |
subscriptSeven: '₇', | |
subscriptEight: '₈', | |
subscriptNine: '₉', | |
oneHalf: '½', | |
oneThird: '⅓', | |
oneQuarter: '¼', | |
oneFifth: '⅕', | |
oneSixth: '⅙', | |
oneEighth: '⅛', | |
twoThirds: '⅔', | |
twoFifths: '⅖', | |
threeQuarters: '¾', | |
threeFifths: '⅗', | |
threeEighths: '⅜', | |
fourFifths: '⅘', | |
fiveSixths: '⅚', | |
fiveEighths: '⅝', | |
sevenEighths: '⅞', | |
line: '─', | |
lineBold: '━', | |
lineDouble: '═', | |
lineDashed0: '┄', | |
lineDashed1: '┅', | |
lineDashed2: '┈', | |
lineDashed3: '┉', | |
lineDashed4: '╌', | |
lineDashed5: '╍', | |
lineDashed6: '╴', | |
lineDashed7: '╶', | |
lineDashed8: '╸', | |
lineDashed9: '╺', | |
lineDashed10: '╼', | |
lineDashed11: '╾', | |
lineDashed12: '−', | |
lineDashed13: '–', | |
lineDashed14: '‐', | |
lineDashed15: '⁃', | |
lineVertical: '│', | |
lineVerticalBold: '┃', | |
lineVerticalDouble: '║', | |
lineVerticalDashed0: '┆', | |
lineVerticalDashed1: '┇', | |
lineVerticalDashed2: '┊', | |
lineVerticalDashed3: '┋', | |
lineVerticalDashed4: '╎', | |
lineVerticalDashed5: '╏', | |
lineVerticalDashed6: '╵', | |
lineVerticalDashed7: '╷', | |
lineVerticalDashed8: '╹', | |
lineVerticalDashed9: '╻', | |
lineVerticalDashed10: '╽', | |
lineVerticalDashed11: '╿', | |
lineDownLeft: '┐', | |
lineDownLeftArc: '╮', | |
lineDownBoldLeftBold: '┓', | |
lineDownBoldLeft: '┒', | |
lineDownLeftBold: '┑', | |
lineDownDoubleLeftDouble: '╗', | |
lineDownDoubleLeft: '╖', | |
lineDownLeftDouble: '╕', | |
lineDownRight: '┌', | |
lineDownRightArc: '╭', | |
lineDownBoldRightBold: '┏', | |
lineDownBoldRight: '┎', | |
lineDownRightBold: '┍', | |
lineDownDoubleRightDouble: '╔', | |
lineDownDoubleRight: '╓', | |
lineDownRightDouble: '╒', | |
lineUpLeft: '┘', | |
lineUpLeftArc: '╯', | |
lineUpBoldLeftBold: '┛', | |
lineUpBoldLeft: '┚', | |
lineUpLeftBold: '┙', | |
lineUpDoubleLeftDouble: '╝', | |
lineUpDoubleLeft: '╜', | |
lineUpLeftDouble: '╛', | |
lineUpRight: '└', | |
lineUpRightArc: '╰', | |
lineUpBoldRightBold: '┗', | |
lineUpBoldRight: '┖', | |
lineUpRightBold: '┕', | |
lineUpDoubleRightDouble: '╚', | |
lineUpDoubleRight: '╙', | |
lineUpRightDouble: '╘', | |
lineUpDownLeft: '┤', | |
lineUpBoldDownBoldLeftBold: '┫', | |
lineUpBoldDownBoldLeft: '┨', | |
lineUpDownLeftBold: '┥', | |
lineUpBoldDownLeftBold: '┩', | |
lineUpDownBoldLeftBold: '┪', | |
lineUpDownBoldLeft: '┧', | |
lineUpBoldDownLeft: '┦', | |
lineUpDoubleDownDoubleLeftDouble: '╣', | |
lineUpDoubleDownDoubleLeft: '╢', | |
lineUpDownLeftDouble: '╡', | |
lineUpDownRight: '├', | |
lineUpBoldDownBoldRightBold: '┣', | |
lineUpBoldDownBoldRight: '┠', | |
lineUpDownRightBold: '┝', | |
lineUpBoldDownRightBold: '┡', | |
lineUpDownBoldRightBold: '┢', | |
lineUpDownBoldRight: '┟', | |
lineUpBoldDownRight: '┞', | |
lineUpDoubleDownDoubleRightDouble: '╠', | |
lineUpDoubleDownDoubleRight: '╟', | |
lineUpDownRightDouble: '╞', | |
lineDownLeftRight: '┬', | |
lineDownBoldLeftBoldRightBold: '┳', | |
lineDownLeftBoldRightBold: '┯', | |
lineDownBoldLeftRight: '┰', | |
lineDownBoldLeftBoldRight: '┱', | |
lineDownBoldLeftRightBold: '┲', | |
lineDownLeftRightBold: '┮', | |
lineDownLeftBoldRight: '┭', | |
lineDownDoubleLeftDoubleRightDouble: '╦', | |
lineDownDoubleLeftRight: '╥', | |
lineDownLeftDoubleRightDouble: '╤', | |
lineUpLeftRight: '┴', | |
lineUpBoldLeftBoldRightBold: '┻', | |
lineUpLeftBoldRightBold: '┷', | |
lineUpBoldLeftRight: '┸', | |
lineUpBoldLeftBoldRight: '┹', | |
lineUpBoldLeftRightBold: '┺', | |
lineUpLeftRightBold: '┶', | |
lineUpLeftBoldRight: '┵', | |
lineUpDoubleLeftDoubleRightDouble: '╩', | |
lineUpDoubleLeftRight: '╨', | |
lineUpLeftDoubleRightDouble: '╧', | |
lineUpDownLeftRight: '┼', | |
lineUpBoldDownBoldLeftBoldRightBold: '╋', | |
lineUpDownBoldLeftBoldRightBold: '╈', | |
lineUpBoldDownLeftBoldRightBold: '╇', | |
lineUpBoldDownBoldLeftRightBold: '╊', | |
lineUpBoldDownBoldLeftBoldRight: '╉', | |
lineUpBoldDownLeftRight: '╀', | |
lineUpDownBoldLeftRight: '╁', | |
lineUpDownLeftBoldRight: '┽', | |
lineUpDownLeftRightBold: '┾', | |
lineUpBoldDownBoldLeftRight: '╂', | |
lineUpDownLeftBoldRightBold: '┿', | |
lineUpBoldDownLeftBoldRight: '╃', | |
lineUpBoldDownLeftRightBold: '╄', | |
lineUpDownBoldLeftBoldRight: '╅', | |
lineUpDownBoldLeftRightBold: '╆', | |
lineUpDoubleDownDoubleLeftDoubleRightDouble: '╬', | |
lineUpDoubleDownDoubleLeftRight: '╫', | |
lineUpDownLeftDoubleRightDouble: '╪', | |
lineCross: '╳', | |
lineBackslash: '╲', | |
lineSlash: '╱', | |
}; | |
const specialMainSymbols = { | |
tick: '✔', | |
info: 'ℹ', | |
warning: '⚠', | |
cross: '✘', | |
squareSmall: '◻', | |
squareSmallFilled: '◼', | |
circle: '◯', | |
circleFilled: '◉', | |
circleDotted: '◌', | |
circleDouble: '◎', | |
circleCircle: 'ⓞ', | |
circleCross: 'ⓧ', | |
circlePipe: 'Ⓘ', | |
radioOn: '◉', | |
radioOff: '◯', | |
checkboxOn: '☒', | |
checkboxOff: '☐', | |
checkboxCircleOn: 'ⓧ', | |
checkboxCircleOff: 'Ⓘ', | |
pointer: '❯', | |
triangleUpOutline: '△', | |
triangleLeft: '◀', | |
triangleRight: '▶', | |
lozenge: '◆', | |
lozengeOutline: '◇', | |
hamburger: '☰', | |
smiley: '㋡', | |
mustache: '෴', | |
star: '★', | |
play: '▶', | |
nodejs: '⬢', | |
oneSeventh: '⅐', | |
oneNinth: '⅑', | |
oneTenth: '⅒', | |
}; | |
const specialFallbackSymbols = { | |
tick: '√', | |
info: 'i', | |
warning: '‼', | |
cross: '×', | |
squareSmall: '□', | |
squareSmallFilled: '■', | |
circle: '( )', | |
circleFilled: '(*)', | |
circleDotted: '( )', | |
circleDouble: '( )', | |
circleCircle: '(○)', | |
circleCross: '(×)', | |
circlePipe: '(│)', | |
radioOn: '(*)', | |
radioOff: '( )', | |
checkboxOn: '[×]', | |
checkboxOff: '[ ]', | |
checkboxCircleOn: '(×)', | |
checkboxCircleOff: '( )', | |
pointer: '>', | |
triangleUpOutline: '∆', | |
triangleLeft: '◄', | |
triangleRight: '►', | |
lozenge: '♦', | |
lozengeOutline: '◊', | |
hamburger: '≡', | |
smiley: '☺', | |
mustache: '┌─┐', | |
star: '✶', | |
play: '►', | |
nodejs: '♦', | |
oneSeventh: '1/7', | |
oneNinth: '1/9', | |
oneTenth: '1/10', | |
}; | |
exports.mainSymbols = Object.assign(Object.assign({}, common), specialMainSymbols); | |
exports.fallbackSymbols = Object.assign(Object.assign({}, common), specialFallbackSymbols); | |
const shouldUseMain = isUnicodeSupported(); | |
const figures = shouldUseMain ? exports.mainSymbols : exports.fallbackSymbols; | |
exports.default = figures; | |
const replacements = Object.entries(specialMainSymbols); | |
// On terminals which do not support Unicode symbols, substitute them to other symbols | |
const replaceSymbols = (string, { useFallback = !shouldUseMain } = {}) => { | |
if (useFallback) { | |
for (const [key, mainSymbol] of replacements) { | |
const fallbackSymbol = exports.fallbackSymbols[key]; | |
if (!fallbackSymbol) { | |
throw new Error(`Unable to find fallback for ${key}`); | |
} | |
string = string.replaceAll(mainSymbol, fallbackSymbol); | |
} | |
} | |
return string; | |
}; | |
exports.replaceSymbols = replaceSymbols; | |