@stacksjs/cli 0.65.0 → 0.67.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.
- package/dist/index.js +21640 -12
- package/dist/utils.d.ts +1 -1
- package/package.json +11 -13
- package/dist/index.js.map +0 -120
- package/src/actions/index.ts +0 -1
- package/src/actions/install.ts +0 -41
- package/src/app.ts +0 -777
- package/src/cli.ts +0 -30
- package/src/command.ts +0 -54
- package/src/console.ts +0 -4
- package/src/exec.ts +0 -140
- package/src/helpers.ts +0 -79
- package/src/index.ts +0 -10
- package/src/parse.ts +0 -182
- package/src/run.ts +0 -112
- package/src/spinner.ts +0 -3
- package/src/utils.ts +0 -83
package/dist/index.js.map
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../../node_modules/kleur/index.js", "../../../../../node_modules/prompts/dist/util/action.js", "../../../../../node_modules/prompts/dist/util/strip.js", "../../../../../node_modules/sisteransi/src/index.js", "../../../../../node_modules/prompts/dist/util/clear.js", "../../../../../node_modules/prompts/dist/util/figures.js", "../../../../../node_modules/prompts/dist/util/style.js", "../../../../../node_modules/prompts/dist/util/lines.js", "../../../../../node_modules/prompts/dist/util/wrap.js", "../../../../../node_modules/prompts/dist/util/entriesToDisplay.js", "../../../../../node_modules/prompts/dist/util/index.js", "../../../../../node_modules/prompts/dist/elements/prompt.js", "../../../../../node_modules/prompts/dist/elements/text.js", "../../../../../node_modules/prompts/dist/elements/select.js", "../../../../../node_modules/prompts/dist/elements/toggle.js", "../../../../../node_modules/prompts/dist/dateparts/datepart.js", "../../../../../node_modules/prompts/dist/dateparts/meridiem.js", "../../../../../node_modules/prompts/dist/dateparts/day.js", "../../../../../node_modules/prompts/dist/dateparts/hours.js", "../../../../../node_modules/prompts/dist/dateparts/milliseconds.js", "../../../../../node_modules/prompts/dist/dateparts/minutes.js", "../../../../../node_modules/prompts/dist/dateparts/month.js", "../../../../../node_modules/prompts/dist/dateparts/seconds.js", "../../../../../node_modules/prompts/dist/dateparts/year.js", "../../../../../node_modules/prompts/dist/dateparts/index.js", "../../../../../node_modules/prompts/dist/elements/date.js", "../../../../../node_modules/prompts/dist/elements/number.js", "../../../../../node_modules/prompts/dist/elements/multiselect.js", "../../../../../node_modules/prompts/dist/elements/autocomplete.js", "../../../../../node_modules/prompts/dist/elements/autocompleteMultiselect.js", "../../../../../node_modules/prompts/dist/elements/confirm.js", "../../../../../node_modules/prompts/dist/elements/index.js", "../../../../../node_modules/prompts/dist/prompts.js", "../../../../../node_modules/prompts/dist/index.js", "../../../../../node_modules/prompts/lib/util/action.js", "../../../../../node_modules/prompts/lib/util/strip.js", "../../../../../node_modules/prompts/lib/util/clear.js", "../../../../../node_modules/prompts/lib/util/figures.js", "../../../../../node_modules/prompts/lib/util/style.js", "../../../../../node_modules/prompts/lib/util/lines.js", "../../../../../node_modules/prompts/lib/util/wrap.js", "../../../../../node_modules/prompts/lib/util/entriesToDisplay.js", "../../../../../node_modules/prompts/lib/util/index.js", "../../../../../node_modules/prompts/lib/elements/prompt.js", "../../../../../node_modules/prompts/lib/elements/text.js", "../../../../../node_modules/prompts/lib/elements/select.js", "../../../../../node_modules/prompts/lib/elements/toggle.js", "../../../../../node_modules/prompts/lib/dateparts/datepart.js", "../../../../../node_modules/prompts/lib/dateparts/meridiem.js", "../../../../../node_modules/prompts/lib/dateparts/day.js", "../../../../../node_modules/prompts/lib/dateparts/hours.js", "../../../../../node_modules/prompts/lib/dateparts/milliseconds.js", "../../../../../node_modules/prompts/lib/dateparts/minutes.js", "../../../../../node_modules/prompts/lib/dateparts/month.js", "../../../../../node_modules/prompts/lib/dateparts/seconds.js", "../../../../../node_modules/prompts/lib/dateparts/year.js", "../../../../../node_modules/prompts/lib/dateparts/index.js", "../../../../../node_modules/prompts/lib/elements/date.js", "../../../../../node_modules/prompts/lib/elements/number.js", "../../../../../node_modules/prompts/lib/elements/multiselect.js", "../../../../../node_modules/prompts/lib/elements/autocomplete.js", "../../../../../node_modules/prompts/lib/elements/autocompleteMultiselect.js", "../../../../../node_modules/prompts/lib/elements/confirm.js", "../../../../../node_modules/prompts/lib/elements/index.js", "../../../../../node_modules/prompts/lib/prompts.js", "../../../../../node_modules/prompts/lib/index.js", "../../../../../node_modules/prompts/index.js", "../../../../../node_modules/cli-spinners/index.js", "../../../../../node_modules/@antfu/install-pkg/dist/index.js", "../../../../../node_modules/package-manager-detector/dist/detect.mjs", "../../../../../node_modules/package-manager-detector/dist/constants.mjs", "../../../../../node_modules/tinyexec/dist/main.js", "../src/actions/install.ts", "../../../../../node_modules/cac/dist/index.mjs", "../src/cli.ts", "../src/run.ts", "../src/console.ts", "../src/exec.ts", "../src/utils.ts", "../../../../../node_modules/consola/dist/utils.mjs", "../../../../../node_modules/kolorist/dist/esm/index.mjs", "../src/command.ts", "../src/helpers.ts", "../src/parse.ts", "../../../../../node_modules/ora/index.js", "../../../../../node_modules/chalk/source/vendor/ansi-styles/index.js", "../../../../../node_modules/chalk/source/vendor/supports-color/index.js", "../../../../../node_modules/chalk/source/utilities.js", "../../../../../node_modules/chalk/source/index.js", "../../../../../node_modules/cli-cursor/index.js", "../../../../../node_modules/restore-cursor/index.js", "../../../../../node_modules/mimic-function/index.js", "../../../../../node_modules/restore-cursor/node_modules/onetime/index.js", "../../../../../node_modules/signal-exit/dist/mjs/signals.js", "../../../../../node_modules/signal-exit/dist/mjs/index.js", "../../../../../node_modules/log-symbols/node_modules/chalk/source/vendor/ansi-styles/index.js", "../../../../../node_modules/log-symbols/node_modules/chalk/source/vendor/supports-color/index.js", "../../../../../node_modules/log-symbols/node_modules/chalk/source/utilities.js", "../../../../../node_modules/log-symbols/node_modules/chalk/source/index.js", "../../../../../node_modules/log-symbols/node_modules/is-unicode-supported/index.js", "../../../../../node_modules/log-symbols/index.js", "../../../../../node_modules/ansi-regex/index.js", "../../../../../node_modules/strip-ansi/index.js", "../../../../../node_modules/get-east-asian-width/lookup.js", "../../../../../node_modules/get-east-asian-width/index.js", "../../../../../node_modules/emoji-regex/index.mjs", "../../../../../node_modules/string-width/index.js", "../../../../../node_modules/is-interactive/index.js", "../../../../../node_modules/is-unicode-supported/index.js", "../../../../../node_modules/stdin-discarder/index.js", "../src/spinner.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"'use strict';\n\nconst { FORCE_COLOR, NODE_DISABLE_COLORS, TERM } = process.env;\n\nconst $ = {\n\tenabled: !NODE_DISABLE_COLORS && TERM !== 'dumb' && FORCE_COLOR !== '0',\n\n\t// modifiers\n\treset: init(0, 0),\n\tbold: init(1, 22),\n\tdim: init(2, 22),\n\titalic: init(3, 23),\n\tunderline: init(4, 24),\n\tinverse: init(7, 27),\n\thidden: init(8, 28),\n\tstrikethrough: init(9, 29),\n\n\t// colors\n\tblack: init(30, 39),\n\tred: init(31, 39),\n\tgreen: init(32, 39),\n\tyellow: init(33, 39),\n\tblue: init(34, 39),\n\tmagenta: init(35, 39),\n\tcyan: init(36, 39),\n\twhite: init(37, 39),\n\tgray: init(90, 39),\n\tgrey: init(90, 39),\n\n\t// background colors\n\tbgBlack: init(40, 49),\n\tbgRed: init(41, 49),\n\tbgGreen: init(42, 49),\n\tbgYellow: init(43, 49),\n\tbgBlue: init(44, 49),\n\tbgMagenta: init(45, 49),\n\tbgCyan: init(46, 49),\n\tbgWhite: init(47, 49)\n};\n\nfunction run(arr, str) {\n\tlet i=0, tmp, beg='', end='';\n\tfor (; i < arr.length; i++) {\n\t\ttmp = arr[i];\n\t\tbeg += tmp.open;\n\t\tend += tmp.close;\n\t\tif (str.includes(tmp.close)) {\n\t\t\tstr = str.replace(tmp.rgx, tmp.close + tmp.open);\n\t\t}\n\t}\n\treturn beg + str + end;\n}\n\nfunction chain(has, keys) {\n\tlet ctx = { has, keys };\n\n\tctx.reset = $.reset.bind(ctx);\n\tctx.bold = $.bold.bind(ctx);\n\tctx.dim = $.dim.bind(ctx);\n\tctx.italic = $.italic.bind(ctx);\n\tctx.underline = $.underline.bind(ctx);\n\tctx.inverse = $.inverse.bind(ctx);\n\tctx.hidden = $.hidden.bind(ctx);\n\tctx.strikethrough = $.strikethrough.bind(ctx);\n\n\tctx.black = $.black.bind(ctx);\n\tctx.red = $.red.bind(ctx);\n\tctx.green = $.green.bind(ctx);\n\tctx.yellow = $.yellow.bind(ctx);\n\tctx.blue = $.blue.bind(ctx);\n\tctx.magenta = $.magenta.bind(ctx);\n\tctx.cyan = $.cyan.bind(ctx);\n\tctx.white = $.white.bind(ctx);\n\tctx.gray = $.gray.bind(ctx);\n\tctx.grey = $.grey.bind(ctx);\n\n\tctx.bgBlack = $.bgBlack.bind(ctx);\n\tctx.bgRed = $.bgRed.bind(ctx);\n\tctx.bgGreen = $.bgGreen.bind(ctx);\n\tctx.bgYellow = $.bgYellow.bind(ctx);\n\tctx.bgBlue = $.bgBlue.bind(ctx);\n\tctx.bgMagenta = $.bgMagenta.bind(ctx);\n\tctx.bgCyan = $.bgCyan.bind(ctx);\n\tctx.bgWhite = $.bgWhite.bind(ctx);\n\n\treturn ctx;\n}\n\nfunction init(open, close) {\n\tlet blk = {\n\t\topen: `\\x1b[${open}m`,\n\t\tclose: `\\x1b[${close}m`,\n\t\trgx: new RegExp(`\\\\x1b\\\\[${close}m`, 'g')\n\t};\n\treturn function (txt) {\n\t\tif (this !== void 0 && this.has !== void 0) {\n\t\t\tthis.has.includes(open) || (this.has.push(open),this.keys.push(blk));\n\t\t\treturn txt === void 0 ? this : $.enabled ? run(this.keys, txt+'') : txt+'';\n\t\t}\n\t\treturn txt === void 0 ? chain([open], [blk]) : $.enabled ? run([blk], txt+'') : txt+'';\n\t};\n}\n\nmodule.exports = $;\n",
|
|
6
|
-
"'use strict';\n\nmodule.exports = (key, isSelect) => {\n if (key.meta && key.name !== 'escape') return;\n\n if (key.ctrl) {\n if (key.name === 'a') return 'first';\n if (key.name === 'c') return 'abort';\n if (key.name === 'd') return 'abort';\n if (key.name === 'e') return 'last';\n if (key.name === 'g') return 'reset';\n }\n\n if (isSelect) {\n if (key.name === 'j') return 'down';\n if (key.name === 'k') return 'up';\n }\n\n if (key.name === 'return') return 'submit';\n if (key.name === 'enter') return 'submit'; // ctrl + J\n\n if (key.name === 'backspace') return 'delete';\n if (key.name === 'delete') return 'deleteForward';\n if (key.name === 'abort') return 'abort';\n if (key.name === 'escape') return 'exit';\n if (key.name === 'tab') return 'next';\n if (key.name === 'pagedown') return 'nextPage';\n if (key.name === 'pageup') return 'prevPage'; // TODO create home() in prompt types (e.g. TextPrompt)\n\n if (key.name === 'home') return 'home'; // TODO create end() in prompt types (e.g. TextPrompt)\n\n if (key.name === 'end') return 'end';\n if (key.name === 'up') return 'up';\n if (key.name === 'down') return 'down';\n if (key.name === 'right') return 'right';\n if (key.name === 'left') return 'left';\n return false;\n};",
|
|
7
|
-
"'use strict';\n\nmodule.exports = str => {\n const pattern = ['[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)', '(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PRZcf-ntqry=><~]))'].join('|');\n const RGX = new RegExp(pattern, 'g');\n return typeof str === 'string' ? str.replace(RGX, '') : str;\n};",
|
|
8
|
-
"'use strict';\n\nconst ESC = '\\x1B';\nconst CSI = `${ESC}[`;\nconst beep = '\\u0007';\n\nconst cursor = {\n to(x, y) {\n if (!y) return `${CSI}${x + 1}G`;\n return `${CSI}${y + 1};${x + 1}H`;\n },\n move(x, y) {\n let ret = '';\n\n if (x < 0) ret += `${CSI}${-x}D`;\n else if (x > 0) ret += `${CSI}${x}C`;\n\n if (y < 0) ret += `${CSI}${-y}A`;\n else if (y > 0) ret += `${CSI}${y}B`;\n\n return ret;\n },\n up: (count = 1) => `${CSI}${count}A`,\n down: (count = 1) => `${CSI}${count}B`,\n forward: (count = 1) => `${CSI}${count}C`,\n backward: (count = 1) => `${CSI}${count}D`,\n nextLine: (count = 1) => `${CSI}E`.repeat(count),\n prevLine: (count = 1) => `${CSI}F`.repeat(count),\n left: `${CSI}G`,\n hide: `${CSI}?25l`,\n show: `${CSI}?25h`,\n save: `${ESC}7`,\n restore: `${ESC}8`\n}\n\nconst scroll = {\n up: (count = 1) => `${CSI}S`.repeat(count),\n down: (count = 1) => `${CSI}T`.repeat(count)\n}\n\nconst erase = {\n screen: `${CSI}2J`,\n up: (count = 1) => `${CSI}1J`.repeat(count),\n down: (count = 1) => `${CSI}J`.repeat(count),\n line: `${CSI}2K`,\n lineEnd: `${CSI}K`,\n lineStart: `${CSI}1K`,\n lines(count) {\n let clear = '';\n for (let i = 0; i < count; i++)\n clear += this.line + (i < count - 1 ? cursor.up() : '');\n if (count)\n clear += cursor.left;\n return clear;\n }\n}\n\nmodule.exports = { cursor, scroll, erase, beep };\n",
|
|
9
|
-
"'use strict';\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n\nconst strip = require('./strip');\n\nconst _require = require('sisteransi'),\n erase = _require.erase,\n cursor = _require.cursor;\n\nconst width = str => [...strip(str)].length;\n/**\n * @param {string} prompt\n * @param {number} perLine\n */\n\n\nmodule.exports = function (prompt, perLine) {\n if (!perLine) return erase.line + cursor.to(0);\n let rows = 0;\n const lines = prompt.split(/\\r?\\n/);\n\n var _iterator = _createForOfIteratorHelper(lines),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n let line = _step.value;\n rows += 1 + Math.floor(Math.max(width(line) - 1, 0) / perLine);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return erase.lines(rows);\n};",
|
|
10
|
-
"'use strict';\n\nconst main = {\n arrowUp: '↑',\n arrowDown: '↓',\n arrowLeft: '←',\n arrowRight: '→',\n radioOn: '◉',\n radioOff: '◯',\n tick: '✔',\n cross: '✖',\n ellipsis: '…',\n pointerSmall: '›',\n line: '─',\n pointer: '❯'\n};\nconst win = {\n arrowUp: main.arrowUp,\n arrowDown: main.arrowDown,\n arrowLeft: main.arrowLeft,\n arrowRight: main.arrowRight,\n radioOn: '(*)',\n radioOff: '( )',\n tick: '√',\n cross: '×',\n ellipsis: '...',\n pointerSmall: '»',\n line: '─',\n pointer: '>'\n};\nconst figures = process.platform === 'win32' ? win : main;\nmodule.exports = figures;",
|
|
11
|
-
"'use strict';\n\nconst c = require('kleur');\n\nconst figures = require('./figures'); // rendering user input.\n\n\nconst styles = Object.freeze({\n password: {\n scale: 1,\n render: input => '*'.repeat(input.length)\n },\n emoji: {\n scale: 2,\n render: input => '😃'.repeat(input.length)\n },\n invisible: {\n scale: 0,\n render: input => ''\n },\n default: {\n scale: 1,\n render: input => `${input}`\n }\n});\n\nconst render = type => styles[type] || styles.default; // icon to signalize a prompt.\n\n\nconst symbols = Object.freeze({\n aborted: c.red(figures.cross),\n done: c.green(figures.tick),\n exited: c.yellow(figures.cross),\n default: c.cyan('?')\n});\n\nconst symbol = (done, aborted, exited) => aborted ? symbols.aborted : exited ? symbols.exited : done ? symbols.done : symbols.default; // between the question and the user's input.\n\n\nconst delimiter = completing => c.gray(completing ? figures.ellipsis : figures.pointerSmall);\n\nconst item = (expandable, expanded) => c.gray(expandable ? expanded ? figures.pointerSmall : '+' : figures.line);\n\nmodule.exports = {\n styles,\n render,\n symbols,\n symbol,\n delimiter,\n item\n};",
|
|
12
|
-
"'use strict';\n\nconst strip = require('./strip');\n/**\n * @param {string} msg\n * @param {number} perLine\n */\n\n\nmodule.exports = function (msg, perLine) {\n let lines = String(strip(msg) || '').split(/\\r?\\n/);\n if (!perLine) return lines.length;\n return lines.map(l => Math.ceil(l.length / perLine)).reduce((a, b) => a + b);\n};",
|
|
13
|
-
"'use strict';\n/**\n * @param {string} msg The message to wrap\n * @param {object} opts\n * @param {number|string} [opts.margin] Left margin\n * @param {number} opts.width Maximum characters per line including the margin\n */\n\nmodule.exports = (msg, opts = {}) => {\n const tab = Number.isSafeInteger(parseInt(opts.margin)) ? new Array(parseInt(opts.margin)).fill(' ').join('') : opts.margin || '';\n const width = opts.width;\n return (msg || '').split(/\\r?\\n/g).map(line => line.split(/\\s+/g).reduce((arr, w) => {\n if (w.length + tab.length >= width || arr[arr.length - 1].length + w.length + 1 < width) arr[arr.length - 1] += ` ${w}`;else arr.push(`${tab}${w}`);\n return arr;\n }, [tab]).join('\\n')).join('\\n');\n};",
|
|
14
|
-
"'use strict';\n/**\n * Determine what entries should be displayed on the screen, based on the\n * currently selected index and the maximum visible. Used in list-based\n * prompts like `select` and `multiselect`.\n *\n * @param {number} cursor the currently selected entry\n * @param {number} total the total entries available to display\n * @param {number} [maxVisible] the number of entries that can be displayed\n */\n\nmodule.exports = (cursor, total, maxVisible) => {\n maxVisible = maxVisible || total;\n let startIndex = Math.min(total - maxVisible, cursor - Math.floor(maxVisible / 2));\n if (startIndex < 0) startIndex = 0;\n let endIndex = Math.min(startIndex + maxVisible, total);\n return {\n startIndex,\n endIndex\n };\n};",
|
|
15
|
-
"'use strict';\n\nmodule.exports = {\n action: require('./action'),\n clear: require('./clear'),\n style: require('./style'),\n strip: require('./strip'),\n figures: require('./figures'),\n lines: require('./lines'),\n wrap: require('./wrap'),\n entriesToDisplay: require('./entriesToDisplay')\n};",
|
|
16
|
-
"'use strict';\n\nconst readline = require('readline');\n\nconst _require = require('../util'),\n action = _require.action;\n\nconst EventEmitter = require('events');\n\nconst _require2 = require('sisteransi'),\n beep = _require2.beep,\n cursor = _require2.cursor;\n\nconst color = require('kleur');\n/**\n * Base prompt skeleton\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n */\n\n\nclass Prompt extends EventEmitter {\n constructor(opts = {}) {\n super();\n this.firstRender = true;\n this.in = opts.stdin || process.stdin;\n this.out = opts.stdout || process.stdout;\n\n this.onRender = (opts.onRender || (() => void 0)).bind(this);\n\n const rl = readline.createInterface({\n input: this.in,\n escapeCodeTimeout: 50\n });\n readline.emitKeypressEvents(this.in, rl);\n if (this.in.isTTY) this.in.setRawMode(true);\n const isSelect = ['SelectPrompt', 'MultiselectPrompt'].indexOf(this.constructor.name) > -1;\n\n const keypress = (str, key) => {\n let a = action(key, isSelect);\n\n if (a === false) {\n this._ && this._(str, key);\n } else if (typeof this[a] === 'function') {\n this[a](key);\n } else {\n this.bell();\n }\n };\n\n this.close = () => {\n this.out.write(cursor.show);\n this.in.removeListener('keypress', keypress);\n if (this.in.isTTY) this.in.setRawMode(false);\n rl.close();\n this.emit(this.aborted ? 'abort' : this.exited ? 'exit' : 'submit', this.value);\n this.closed = true;\n };\n\n this.in.on('keypress', keypress);\n }\n\n fire() {\n this.emit('state', {\n value: this.value,\n aborted: !!this.aborted,\n exited: !!this.exited\n });\n }\n\n bell() {\n this.out.write(beep);\n }\n\n render() {\n this.onRender(color);\n if (this.firstRender) this.firstRender = false;\n }\n\n}\n\nmodule.exports = Prompt;",
|
|
17
|
-
"\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nconst color = require('kleur');\n\nconst Prompt = require('./prompt');\n\nconst _require = require('sisteransi'),\n erase = _require.erase,\n cursor = _require.cursor;\n\nconst _require2 = require('../util'),\n style = _require2.style,\n clear = _require2.clear,\n lines = _require2.lines,\n figures = _require2.figures;\n/**\n * TextPrompt Base Element\n * @param {Object} opts Options\n * @param {String} opts.message Message\n * @param {String} [opts.style='default'] Render style\n * @param {String} [opts.initial] Default value\n * @param {Function} [opts.validate] Validate function\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n * @param {String} [opts.error] The invalid error label\n */\n\n\nclass TextPrompt extends Prompt {\n constructor(opts = {}) {\n super(opts);\n this.transform = style.render(opts.style);\n this.scale = this.transform.scale;\n this.msg = opts.message;\n this.initial = opts.initial || ``;\n\n this.validator = opts.validate || (() => true);\n\n this.value = ``;\n this.errorMsg = opts.error || `Please Enter A Valid Value`;\n this.cursor = Number(!!this.initial);\n this.cursorOffset = 0;\n this.clear = clear(``, this.out.columns);\n this.render();\n }\n\n set value(v) {\n if (!v && this.initial) {\n this.placeholder = true;\n this.rendered = color.gray(this.transform.render(this.initial));\n } else {\n this.placeholder = false;\n this.rendered = this.transform.render(v);\n }\n\n this._value = v;\n this.fire();\n }\n\n get value() {\n return this._value;\n }\n\n reset() {\n this.value = ``;\n this.cursor = Number(!!this.initial);\n this.cursorOffset = 0;\n this.fire();\n this.render();\n }\n\n exit() {\n this.abort();\n }\n\n abort() {\n this.value = this.value || this.initial;\n this.done = this.aborted = true;\n this.error = false;\n this.red = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n validate() {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n let valid = yield _this.validator(_this.value);\n\n if (typeof valid === `string`) {\n _this.errorMsg = valid;\n valid = false;\n }\n\n _this.error = !valid;\n })();\n }\n\n submit() {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n _this2.value = _this2.value || _this2.initial;\n _this2.cursorOffset = 0;\n _this2.cursor = _this2.rendered.length;\n yield _this2.validate();\n\n if (_this2.error) {\n _this2.red = true;\n\n _this2.fire();\n\n _this2.render();\n\n return;\n }\n\n _this2.done = true;\n _this2.aborted = false;\n\n _this2.fire();\n\n _this2.render();\n\n _this2.out.write('\\n');\n\n _this2.close();\n })();\n }\n\n next() {\n if (!this.placeholder) return this.bell();\n this.value = this.initial;\n this.cursor = this.rendered.length;\n this.fire();\n this.render();\n }\n\n moveCursor(n) {\n if (this.placeholder) return;\n this.cursor = this.cursor + n;\n this.cursorOffset += n;\n }\n\n _(c, key) {\n let s1 = this.value.slice(0, this.cursor);\n let s2 = this.value.slice(this.cursor);\n this.value = `${s1}${c}${s2}`;\n this.red = false;\n this.cursor = this.placeholder ? 0 : s1.length + 1;\n this.render();\n }\n\n delete() {\n if (this.isCursorAtStart()) return this.bell();\n let s1 = this.value.slice(0, this.cursor - 1);\n let s2 = this.value.slice(this.cursor);\n this.value = `${s1}${s2}`;\n this.red = false;\n\n if (this.isCursorAtStart()) {\n this.cursorOffset = 0;\n } else {\n this.cursorOffset++;\n this.moveCursor(-1);\n }\n\n this.render();\n }\n\n deleteForward() {\n if (this.cursor * this.scale >= this.rendered.length || this.placeholder) return this.bell();\n let s1 = this.value.slice(0, this.cursor);\n let s2 = this.value.slice(this.cursor + 1);\n this.value = `${s1}${s2}`;\n this.red = false;\n\n if (this.isCursorAtEnd()) {\n this.cursorOffset = 0;\n } else {\n this.cursorOffset++;\n }\n\n this.render();\n }\n\n first() {\n this.cursor = 0;\n this.render();\n }\n\n last() {\n this.cursor = this.value.length;\n this.render();\n }\n\n left() {\n if (this.cursor <= 0 || this.placeholder) return this.bell();\n this.moveCursor(-1);\n this.render();\n }\n\n right() {\n if (this.cursor * this.scale >= this.rendered.length || this.placeholder) return this.bell();\n this.moveCursor(1);\n this.render();\n }\n\n isCursorAtStart() {\n return this.cursor === 0 || this.placeholder && this.cursor === 1;\n }\n\n isCursorAtEnd() {\n return this.cursor === this.rendered.length || this.placeholder && this.cursor === this.rendered.length + 1;\n }\n\n render() {\n if (this.closed) return;\n\n if (!this.firstRender) {\n if (this.outputError) this.out.write(cursor.down(lines(this.outputError, this.out.columns) - 1) + clear(this.outputError, this.out.columns));\n this.out.write(clear(this.outputText, this.out.columns));\n }\n\n super.render();\n this.outputError = '';\n this.outputText = [style.symbol(this.done, this.aborted), color.bold(this.msg), style.delimiter(this.done), this.red ? color.red(this.rendered) : this.rendered].join(` `);\n\n if (this.error) {\n this.outputError += this.errorMsg.split(`\\n`).reduce((a, l, i) => a + `\\n${i ? ' ' : figures.pointerSmall} ${color.red().italic(l)}`, ``);\n }\n\n this.out.write(erase.line + cursor.to(0) + this.outputText + cursor.save + this.outputError + cursor.restore + cursor.move(this.cursorOffset, 0));\n }\n\n}\n\nmodule.exports = TextPrompt;",
|
|
18
|
-
"'use strict';\n\nconst color = require('kleur');\n\nconst Prompt = require('./prompt');\n\nconst _require = require('../util'),\n style = _require.style,\n clear = _require.clear,\n figures = _require.figures,\n wrap = _require.wrap,\n entriesToDisplay = _require.entriesToDisplay;\n\nconst _require2 = require('sisteransi'),\n cursor = _require2.cursor;\n/**\n * SelectPrompt Base Element\n * @param {Object} opts Options\n * @param {String} opts.message Message\n * @param {Array} opts.choices Array of choice objects\n * @param {String} [opts.hint] Hint to display\n * @param {Number} [opts.initial] Index of default value\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n * @param {Number} [opts.optionsPerPage=10] Max options to display at once\n */\n\n\nclass SelectPrompt extends Prompt {\n constructor(opts = {}) {\n super(opts);\n this.msg = opts.message;\n this.hint = opts.hint || '- Use arrow-keys. Return to submit.';\n this.warn = opts.warn || '- This option is disabled';\n this.cursor = opts.initial || 0;\n this.choices = opts.choices.map((ch, idx) => {\n if (typeof ch === 'string') ch = {\n title: ch,\n value: idx\n };\n return {\n title: ch && (ch.title || ch.value || ch),\n value: ch && (ch.value === undefined ? idx : ch.value),\n description: ch && ch.description,\n selected: ch && ch.selected,\n disabled: ch && ch.disabled\n };\n });\n this.optionsPerPage = opts.optionsPerPage || 10;\n this.value = (this.choices[this.cursor] || {}).value;\n this.clear = clear('', this.out.columns);\n this.render();\n }\n\n moveCursor(n) {\n this.cursor = n;\n this.value = this.choices[n].value;\n this.fire();\n }\n\n reset() {\n this.moveCursor(0);\n this.fire();\n this.render();\n }\n\n exit() {\n this.abort();\n }\n\n abort() {\n this.done = this.aborted = true;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n submit() {\n if (!this.selection.disabled) {\n this.done = true;\n this.aborted = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n } else this.bell();\n }\n\n first() {\n this.moveCursor(0);\n this.render();\n }\n\n last() {\n this.moveCursor(this.choices.length - 1);\n this.render();\n }\n\n up() {\n if (this.cursor === 0) {\n this.moveCursor(this.choices.length - 1);\n } else {\n this.moveCursor(this.cursor - 1);\n }\n\n this.render();\n }\n\n down() {\n if (this.cursor === this.choices.length - 1) {\n this.moveCursor(0);\n } else {\n this.moveCursor(this.cursor + 1);\n }\n\n this.render();\n }\n\n next() {\n this.moveCursor((this.cursor + 1) % this.choices.length);\n this.render();\n }\n\n _(c, key) {\n if (c === ' ') return this.submit();\n }\n\n get selection() {\n return this.choices[this.cursor];\n }\n\n render() {\n if (this.closed) return;\n if (this.firstRender) this.out.write(cursor.hide);else this.out.write(clear(this.outputText, this.out.columns));\n super.render();\n\n let _entriesToDisplay = entriesToDisplay(this.cursor, this.choices.length, this.optionsPerPage),\n startIndex = _entriesToDisplay.startIndex,\n endIndex = _entriesToDisplay.endIndex; // Print prompt\n\n\n this.outputText = [style.symbol(this.done, this.aborted), color.bold(this.msg), style.delimiter(false), this.done ? this.selection.title : this.selection.disabled ? color.yellow(this.warn) : color.gray(this.hint)].join(' '); // Print choices\n\n if (!this.done) {\n this.outputText += '\\n';\n\n for (let i = startIndex; i < endIndex; i++) {\n let title,\n prefix,\n desc = '',\n v = this.choices[i]; // Determine whether to display \"more choices\" indicators\n\n if (i === startIndex && startIndex > 0) {\n prefix = figures.arrowUp;\n } else if (i === endIndex - 1 && endIndex < this.choices.length) {\n prefix = figures.arrowDown;\n } else {\n prefix = ' ';\n }\n\n if (v.disabled) {\n title = this.cursor === i ? color.gray().underline(v.title) : color.strikethrough().gray(v.title);\n prefix = (this.cursor === i ? color.bold().gray(figures.pointer) + ' ' : ' ') + prefix;\n } else {\n title = this.cursor === i ? color.cyan().underline(v.title) : v.title;\n prefix = (this.cursor === i ? color.cyan(figures.pointer) + ' ' : ' ') + prefix;\n\n if (v.description && this.cursor === i) {\n desc = ` - ${v.description}`;\n\n if (prefix.length + title.length + desc.length >= this.out.columns || v.description.split(/\\r?\\n/).length > 1) {\n desc = '\\n' + wrap(v.description, {\n margin: 3,\n width: this.out.columns\n });\n }\n }\n }\n\n this.outputText += `${prefix} ${title}${color.gray(desc)}\\n`;\n }\n }\n\n this.out.write(this.outputText);\n }\n\n}\n\nmodule.exports = SelectPrompt;",
|
|
19
|
-
"\"use strict\";\n\nconst color = require('kleur');\n\nconst Prompt = require('./prompt');\n\nconst _require = require('../util'),\n style = _require.style,\n clear = _require.clear;\n\nconst _require2 = require('sisteransi'),\n cursor = _require2.cursor,\n erase = _require2.erase;\n/**\n * TogglePrompt Base Element\n * @param {Object} opts Options\n * @param {String} opts.message Message\n * @param {Boolean} [opts.initial=false] Default value\n * @param {String} [opts.active='no'] Active label\n * @param {String} [opts.inactive='off'] Inactive label\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n */\n\n\nclass TogglePrompt extends Prompt {\n constructor(opts = {}) {\n super(opts);\n this.msg = opts.message;\n this.value = !!opts.initial;\n this.active = opts.active || 'on';\n this.inactive = opts.inactive || 'off';\n this.initialValue = this.value;\n this.render();\n }\n\n reset() {\n this.value = this.initialValue;\n this.fire();\n this.render();\n }\n\n exit() {\n this.abort();\n }\n\n abort() {\n this.done = this.aborted = true;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n submit() {\n this.done = true;\n this.aborted = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n deactivate() {\n if (this.value === false) return this.bell();\n this.value = false;\n this.render();\n }\n\n activate() {\n if (this.value === true) return this.bell();\n this.value = true;\n this.render();\n }\n\n delete() {\n this.deactivate();\n }\n\n left() {\n this.deactivate();\n }\n\n right() {\n this.activate();\n }\n\n down() {\n this.deactivate();\n }\n\n up() {\n this.activate();\n }\n\n next() {\n this.value = !this.value;\n this.fire();\n this.render();\n }\n\n _(c, key) {\n if (c === ' ') {\n this.value = !this.value;\n } else if (c === '1') {\n this.value = true;\n } else if (c === '0') {\n this.value = false;\n } else return this.bell();\n\n this.render();\n }\n\n render() {\n if (this.closed) return;\n if (this.firstRender) this.out.write(cursor.hide);else this.out.write(clear(this.outputText, this.out.columns));\n super.render();\n this.outputText = [style.symbol(this.done, this.aborted), color.bold(this.msg), style.delimiter(this.done), this.value ? this.inactive : color.cyan().underline(this.inactive), color.gray('/'), this.value ? color.cyan().underline(this.active) : this.active].join(' ');\n this.out.write(erase.line + cursor.to(0) + this.outputText);\n }\n\n}\n\nmodule.exports = TogglePrompt;",
|
|
20
|
-
"'use strict';\n\nclass DatePart {\n constructor({\n token,\n date,\n parts,\n locales\n }) {\n this.token = token;\n this.date = date || new Date();\n this.parts = parts || [this];\n this.locales = locales || {};\n }\n\n up() {}\n\n down() {}\n\n next() {\n const currentIdx = this.parts.indexOf(this);\n return this.parts.find((part, idx) => idx > currentIdx && part instanceof DatePart);\n }\n\n setTo(val) {}\n\n prev() {\n let parts = [].concat(this.parts).reverse();\n const currentIdx = parts.indexOf(this);\n return parts.find((part, idx) => idx > currentIdx && part instanceof DatePart);\n }\n\n toString() {\n return String(this.date);\n }\n\n}\n\nmodule.exports = DatePart;",
|
|
21
|
-
"'use strict';\n\nconst DatePart = require('./datepart');\n\nclass Meridiem extends DatePart {\n constructor(opts = {}) {\n super(opts);\n }\n\n up() {\n this.date.setHours((this.date.getHours() + 12) % 24);\n }\n\n down() {\n this.up();\n }\n\n toString() {\n let meridiem = this.date.getHours() > 12 ? 'pm' : 'am';\n return /\\A/.test(this.token) ? meridiem.toUpperCase() : meridiem;\n }\n\n}\n\nmodule.exports = Meridiem;",
|
|
22
|
-
"'use strict';\n\nconst DatePart = require('./datepart');\n\nconst pos = n => {\n n = n % 10;\n return n === 1 ? 'st' : n === 2 ? 'nd' : n === 3 ? 'rd' : 'th';\n};\n\nclass Day extends DatePart {\n constructor(opts = {}) {\n super(opts);\n }\n\n up() {\n this.date.setDate(this.date.getDate() + 1);\n }\n\n down() {\n this.date.setDate(this.date.getDate() - 1);\n }\n\n setTo(val) {\n this.date.setDate(parseInt(val.substr(-2)));\n }\n\n toString() {\n let date = this.date.getDate();\n let day = this.date.getDay();\n return this.token === 'DD' ? String(date).padStart(2, '0') : this.token === 'Do' ? date + pos(date) : this.token === 'd' ? day + 1 : this.token === 'ddd' ? this.locales.weekdaysShort[day] : this.token === 'dddd' ? this.locales.weekdays[day] : date;\n }\n\n}\n\nmodule.exports = Day;",
|
|
23
|
-
"'use strict';\n\nconst DatePart = require('./datepart');\n\nclass Hours extends DatePart {\n constructor(opts = {}) {\n super(opts);\n }\n\n up() {\n this.date.setHours(this.date.getHours() + 1);\n }\n\n down() {\n this.date.setHours(this.date.getHours() - 1);\n }\n\n setTo(val) {\n this.date.setHours(parseInt(val.substr(-2)));\n }\n\n toString() {\n let hours = this.date.getHours();\n if (/h/.test(this.token)) hours = hours % 12 || 12;\n return this.token.length > 1 ? String(hours).padStart(2, '0') : hours;\n }\n\n}\n\nmodule.exports = Hours;",
|
|
24
|
-
"'use strict';\n\nconst DatePart = require('./datepart');\n\nclass Milliseconds extends DatePart {\n constructor(opts = {}) {\n super(opts);\n }\n\n up() {\n this.date.setMilliseconds(this.date.getMilliseconds() + 1);\n }\n\n down() {\n this.date.setMilliseconds(this.date.getMilliseconds() - 1);\n }\n\n setTo(val) {\n this.date.setMilliseconds(parseInt(val.substr(-this.token.length)));\n }\n\n toString() {\n return String(this.date.getMilliseconds()).padStart(4, '0').substr(0, this.token.length);\n }\n\n}\n\nmodule.exports = Milliseconds;",
|
|
25
|
-
"'use strict';\n\nconst DatePart = require('./datepart');\n\nclass Minutes extends DatePart {\n constructor(opts = {}) {\n super(opts);\n }\n\n up() {\n this.date.setMinutes(this.date.getMinutes() + 1);\n }\n\n down() {\n this.date.setMinutes(this.date.getMinutes() - 1);\n }\n\n setTo(val) {\n this.date.setMinutes(parseInt(val.substr(-2)));\n }\n\n toString() {\n let m = this.date.getMinutes();\n return this.token.length > 1 ? String(m).padStart(2, '0') : m;\n }\n\n}\n\nmodule.exports = Minutes;",
|
|
26
|
-
"'use strict';\n\nconst DatePart = require('./datepart');\n\nclass Month extends DatePart {\n constructor(opts = {}) {\n super(opts);\n }\n\n up() {\n this.date.setMonth(this.date.getMonth() + 1);\n }\n\n down() {\n this.date.setMonth(this.date.getMonth() - 1);\n }\n\n setTo(val) {\n val = parseInt(val.substr(-2)) - 1;\n this.date.setMonth(val < 0 ? 0 : val);\n }\n\n toString() {\n let month = this.date.getMonth();\n let tl = this.token.length;\n return tl === 2 ? String(month + 1).padStart(2, '0') : tl === 3 ? this.locales.monthsShort[month] : tl === 4 ? this.locales.months[month] : String(month + 1);\n }\n\n}\n\nmodule.exports = Month;",
|
|
27
|
-
"'use strict';\n\nconst DatePart = require('./datepart');\n\nclass Seconds extends DatePart {\n constructor(opts = {}) {\n super(opts);\n }\n\n up() {\n this.date.setSeconds(this.date.getSeconds() + 1);\n }\n\n down() {\n this.date.setSeconds(this.date.getSeconds() - 1);\n }\n\n setTo(val) {\n this.date.setSeconds(parseInt(val.substr(-2)));\n }\n\n toString() {\n let s = this.date.getSeconds();\n return this.token.length > 1 ? String(s).padStart(2, '0') : s;\n }\n\n}\n\nmodule.exports = Seconds;",
|
|
28
|
-
"'use strict';\n\nconst DatePart = require('./datepart');\n\nclass Year extends DatePart {\n constructor(opts = {}) {\n super(opts);\n }\n\n up() {\n this.date.setFullYear(this.date.getFullYear() + 1);\n }\n\n down() {\n this.date.setFullYear(this.date.getFullYear() - 1);\n }\n\n setTo(val) {\n this.date.setFullYear(val.substr(-4));\n }\n\n toString() {\n let year = String(this.date.getFullYear()).padStart(4, '0');\n return this.token.length === 2 ? year.substr(-2) : year;\n }\n\n}\n\nmodule.exports = Year;",
|
|
29
|
-
"'use strict';\n\nmodule.exports = {\n DatePart: require('./datepart'),\n Meridiem: require('./meridiem'),\n Day: require('./day'),\n Hours: require('./hours'),\n Milliseconds: require('./milliseconds'),\n Minutes: require('./minutes'),\n Month: require('./month'),\n Seconds: require('./seconds'),\n Year: require('./year')\n};",
|
|
30
|
-
"'use strict';\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nconst color = require('kleur');\n\nconst Prompt = require('./prompt');\n\nconst _require = require('../util'),\n style = _require.style,\n clear = _require.clear,\n figures = _require.figures;\n\nconst _require2 = require('sisteransi'),\n erase = _require2.erase,\n cursor = _require2.cursor;\n\nconst _require3 = require('../dateparts'),\n DatePart = _require3.DatePart,\n Meridiem = _require3.Meridiem,\n Day = _require3.Day,\n Hours = _require3.Hours,\n Milliseconds = _require3.Milliseconds,\n Minutes = _require3.Minutes,\n Month = _require3.Month,\n Seconds = _require3.Seconds,\n Year = _require3.Year;\n\nconst regex = /\\\\(.)|\"((?:\\\\[\"\\\\]|[^\"])+)\"|(D[Do]?|d{3,4}|d)|(M{1,4})|(YY(?:YY)?)|([aA])|([Hh]{1,2})|(m{1,2})|(s{1,2})|(S{1,4})|./g;\nconst regexGroups = {\n 1: ({\n token\n }) => token.replace(/\\\\(.)/g, '$1'),\n 2: opts => new Day(opts),\n // Day // TODO\n 3: opts => new Month(opts),\n // Month\n 4: opts => new Year(opts),\n // Year\n 5: opts => new Meridiem(opts),\n // AM/PM // TODO (special)\n 6: opts => new Hours(opts),\n // Hours\n 7: opts => new Minutes(opts),\n // Minutes\n 8: opts => new Seconds(opts),\n // Seconds\n 9: opts => new Milliseconds(opts) // Fractional seconds\n\n};\nconst dfltLocales = {\n months: 'January,February,March,April,May,June,July,August,September,October,November,December'.split(','),\n monthsShort: 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'.split(','),\n weekdays: 'Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday'.split(','),\n weekdaysShort: 'Sun,Mon,Tue,Wed,Thu,Fri,Sat'.split(',')\n};\n/**\n * DatePrompt Base Element\n * @param {Object} opts Options\n * @param {String} opts.message Message\n * @param {Number} [opts.initial] Index of default value\n * @param {String} [opts.mask] The format mask\n * @param {object} [opts.locales] The date locales\n * @param {String} [opts.error] The error message shown on invalid value\n * @param {Function} [opts.validate] Function to validate the submitted value\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n */\n\nclass DatePrompt extends Prompt {\n constructor(opts = {}) {\n super(opts);\n this.msg = opts.message;\n this.cursor = 0;\n this.typed = '';\n this.locales = Object.assign(dfltLocales, opts.locales);\n this._date = opts.initial || new Date();\n this.errorMsg = opts.error || 'Please Enter A Valid Value';\n\n this.validator = opts.validate || (() => true);\n\n this.mask = opts.mask || 'YYYY-MM-DD HH:mm:ss';\n this.clear = clear('', this.out.columns);\n this.render();\n }\n\n get value() {\n return this.date;\n }\n\n get date() {\n return this._date;\n }\n\n set date(date) {\n if (date) this._date.setTime(date.getTime());\n }\n\n set mask(mask) {\n let result;\n this.parts = [];\n\n while (result = regex.exec(mask)) {\n let match = result.shift();\n let idx = result.findIndex(gr => gr != null);\n this.parts.push(idx in regexGroups ? regexGroups[idx]({\n token: result[idx] || match,\n date: this.date,\n parts: this.parts,\n locales: this.locales\n }) : result[idx] || match);\n }\n\n let parts = this.parts.reduce((arr, i) => {\n if (typeof i === 'string' && typeof arr[arr.length - 1] === 'string') arr[arr.length - 1] += i;else arr.push(i);\n return arr;\n }, []);\n this.parts.splice(0);\n this.parts.push(...parts);\n this.reset();\n }\n\n moveCursor(n) {\n this.typed = '';\n this.cursor = n;\n this.fire();\n }\n\n reset() {\n this.moveCursor(this.parts.findIndex(p => p instanceof DatePart));\n this.fire();\n this.render();\n }\n\n exit() {\n this.abort();\n }\n\n abort() {\n this.done = this.aborted = true;\n this.error = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n validate() {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n let valid = yield _this.validator(_this.value);\n\n if (typeof valid === 'string') {\n _this.errorMsg = valid;\n valid = false;\n }\n\n _this.error = !valid;\n })();\n }\n\n submit() {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n yield _this2.validate();\n\n if (_this2.error) {\n _this2.color = 'red';\n\n _this2.fire();\n\n _this2.render();\n\n return;\n }\n\n _this2.done = true;\n _this2.aborted = false;\n\n _this2.fire();\n\n _this2.render();\n\n _this2.out.write('\\n');\n\n _this2.close();\n })();\n }\n\n up() {\n this.typed = '';\n this.parts[this.cursor].up();\n this.render();\n }\n\n down() {\n this.typed = '';\n this.parts[this.cursor].down();\n this.render();\n }\n\n left() {\n let prev = this.parts[this.cursor].prev();\n if (prev == null) return this.bell();\n this.moveCursor(this.parts.indexOf(prev));\n this.render();\n }\n\n right() {\n let next = this.parts[this.cursor].next();\n if (next == null) return this.bell();\n this.moveCursor(this.parts.indexOf(next));\n this.render();\n }\n\n next() {\n let next = this.parts[this.cursor].next();\n this.moveCursor(next ? this.parts.indexOf(next) : this.parts.findIndex(part => part instanceof DatePart));\n this.render();\n }\n\n _(c) {\n if (/\\d/.test(c)) {\n this.typed += c;\n this.parts[this.cursor].setTo(this.typed);\n this.render();\n }\n }\n\n render() {\n if (this.closed) return;\n if (this.firstRender) this.out.write(cursor.hide);else this.out.write(clear(this.outputText, this.out.columns));\n super.render(); // Print prompt\n\n this.outputText = [style.symbol(this.done, this.aborted), color.bold(this.msg), style.delimiter(false), this.parts.reduce((arr, p, idx) => arr.concat(idx === this.cursor && !this.done ? color.cyan().underline(p.toString()) : p), []).join('')].join(' '); // Print error\n\n if (this.error) {\n this.outputText += this.errorMsg.split('\\n').reduce((a, l, i) => a + `\\n${i ? ` ` : figures.pointerSmall} ${color.red().italic(l)}`, ``);\n }\n\n this.out.write(erase.line + cursor.to(0) + this.outputText);\n }\n\n}\n\nmodule.exports = DatePrompt;",
|
|
31
|
-
"\"use strict\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nconst color = require('kleur');\n\nconst Prompt = require('./prompt');\n\nconst _require = require('sisteransi'),\n cursor = _require.cursor,\n erase = _require.erase;\n\nconst _require2 = require('../util'),\n style = _require2.style,\n figures = _require2.figures,\n clear = _require2.clear,\n lines = _require2.lines;\n\nconst isNumber = /[0-9]/;\n\nconst isDef = any => any !== undefined;\n\nconst round = (number, precision) => {\n let factor = Math.pow(10, precision);\n return Math.round(number * factor) / factor;\n};\n/**\n * NumberPrompt Base Element\n * @param {Object} opts Options\n * @param {String} opts.message Message\n * @param {String} [opts.style='default'] Render style\n * @param {Number} [opts.initial] Default value\n * @param {Number} [opts.max=+Infinity] Max value\n * @param {Number} [opts.min=-Infinity] Min value\n * @param {Boolean} [opts.float=false] Parse input as floats\n * @param {Number} [opts.round=2] Round floats to x decimals\n * @param {Number} [opts.increment=1] Number to increment by when using arrow-keys\n * @param {Function} [opts.validate] Validate function\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n * @param {String} [opts.error] The invalid error label\n */\n\n\nclass NumberPrompt extends Prompt {\n constructor(opts = {}) {\n super(opts);\n this.transform = style.render(opts.style);\n this.msg = opts.message;\n this.initial = isDef(opts.initial) ? opts.initial : '';\n this.float = !!opts.float;\n this.round = opts.round || 2;\n this.inc = opts.increment || 1;\n this.min = isDef(opts.min) ? opts.min : -Infinity;\n this.max = isDef(opts.max) ? opts.max : Infinity;\n this.errorMsg = opts.error || `Please Enter A Valid Value`;\n\n this.validator = opts.validate || (() => true);\n\n this.color = `cyan`;\n this.value = ``;\n this.typed = ``;\n this.lastHit = 0;\n this.render();\n }\n\n set value(v) {\n if (!v && v !== 0) {\n this.placeholder = true;\n this.rendered = color.gray(this.transform.render(`${this.initial}`));\n this._value = ``;\n } else {\n this.placeholder = false;\n this.rendered = this.transform.render(`${round(v, this.round)}`);\n this._value = round(v, this.round);\n }\n\n this.fire();\n }\n\n get value() {\n return this._value;\n }\n\n parse(x) {\n return this.float ? parseFloat(x) : parseInt(x);\n }\n\n valid(c) {\n return c === `-` || c === `.` && this.float || isNumber.test(c);\n }\n\n reset() {\n this.typed = ``;\n this.value = ``;\n this.fire();\n this.render();\n }\n\n exit() {\n this.abort();\n }\n\n abort() {\n let x = this.value;\n this.value = x !== `` ? x : this.initial;\n this.done = this.aborted = true;\n this.error = false;\n this.fire();\n this.render();\n this.out.write(`\\n`);\n this.close();\n }\n\n validate() {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n let valid = yield _this.validator(_this.value);\n\n if (typeof valid === `string`) {\n _this.errorMsg = valid;\n valid = false;\n }\n\n _this.error = !valid;\n })();\n }\n\n submit() {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n yield _this2.validate();\n\n if (_this2.error) {\n _this2.color = `red`;\n\n _this2.fire();\n\n _this2.render();\n\n return;\n }\n\n let x = _this2.value;\n _this2.value = x !== `` ? x : _this2.initial;\n _this2.done = true;\n _this2.aborted = false;\n _this2.error = false;\n\n _this2.fire();\n\n _this2.render();\n\n _this2.out.write(`\\n`);\n\n _this2.close();\n })();\n }\n\n up() {\n this.typed = ``;\n\n if (this.value === '') {\n this.value = this.min - this.inc;\n }\n\n if (this.value >= this.max) return this.bell();\n this.value += this.inc;\n this.color = `cyan`;\n this.fire();\n this.render();\n }\n\n down() {\n this.typed = ``;\n\n if (this.value === '') {\n this.value = this.min + this.inc;\n }\n\n if (this.value <= this.min) return this.bell();\n this.value -= this.inc;\n this.color = `cyan`;\n this.fire();\n this.render();\n }\n\n delete() {\n let val = this.value.toString();\n if (val.length === 0) return this.bell();\n this.value = this.parse(val = val.slice(0, -1)) || ``;\n\n if (this.value !== '' && this.value < this.min) {\n this.value = this.min;\n }\n\n this.color = `cyan`;\n this.fire();\n this.render();\n }\n\n next() {\n this.value = this.initial;\n this.fire();\n this.render();\n }\n\n _(c, key) {\n if (!this.valid(c)) return this.bell();\n const now = Date.now();\n if (now - this.lastHit > 1000) this.typed = ``; // 1s elapsed\n\n this.typed += c;\n this.lastHit = now;\n this.color = `cyan`;\n if (c === `.`) return this.fire();\n this.value = Math.min(this.parse(this.typed), this.max);\n if (this.value > this.max) this.value = this.max;\n if (this.value < this.min) this.value = this.min;\n this.fire();\n this.render();\n }\n\n render() {\n if (this.closed) return;\n\n if (!this.firstRender) {\n if (this.outputError) this.out.write(cursor.down(lines(this.outputError, this.out.columns) - 1) + clear(this.outputError, this.out.columns));\n this.out.write(clear(this.outputText, this.out.columns));\n }\n\n super.render();\n this.outputError = ''; // Print prompt\n\n this.outputText = [style.symbol(this.done, this.aborted), color.bold(this.msg), style.delimiter(this.done), !this.done || !this.done && !this.placeholder ? color[this.color]().underline(this.rendered) : this.rendered].join(` `); // Print error\n\n if (this.error) {\n this.outputError += this.errorMsg.split(`\\n`).reduce((a, l, i) => a + `\\n${i ? ` ` : figures.pointerSmall} ${color.red().italic(l)}`, ``);\n }\n\n this.out.write(erase.line + cursor.to(0) + this.outputText + cursor.save + this.outputError + cursor.restore);\n }\n\n}\n\nmodule.exports = NumberPrompt;",
|
|
32
|
-
"'use strict';\n\nconst color = require('kleur');\n\nconst _require = require('sisteransi'),\n cursor = _require.cursor;\n\nconst Prompt = require('./prompt');\n\nconst _require2 = require('../util'),\n clear = _require2.clear,\n figures = _require2.figures,\n style = _require2.style,\n wrap = _require2.wrap,\n entriesToDisplay = _require2.entriesToDisplay;\n/**\n * MultiselectPrompt Base Element\n * @param {Object} opts Options\n * @param {String} opts.message Message\n * @param {Array} opts.choices Array of choice objects\n * @param {String} [opts.hint] Hint to display\n * @param {String} [opts.warn] Hint shown for disabled choices\n * @param {Number} [opts.max] Max choices\n * @param {Number} [opts.cursor=0] Cursor start position\n * @param {Number} [opts.optionsPerPage=10] Max options to display at once\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n */\n\n\nclass MultiselectPrompt extends Prompt {\n constructor(opts = {}) {\n super(opts);\n this.msg = opts.message;\n this.cursor = opts.cursor || 0;\n this.scrollIndex = opts.cursor || 0;\n this.hint = opts.hint || '';\n this.warn = opts.warn || '- This option is disabled -';\n this.minSelected = opts.min;\n this.showMinError = false;\n this.maxChoices = opts.max;\n this.instructions = opts.instructions;\n this.optionsPerPage = opts.optionsPerPage || 10;\n this.value = opts.choices.map((ch, idx) => {\n if (typeof ch === 'string') ch = {\n title: ch,\n value: idx\n };\n return {\n title: ch && (ch.title || ch.value || ch),\n description: ch && ch.description,\n value: ch && (ch.value === undefined ? idx : ch.value),\n selected: ch && ch.selected,\n disabled: ch && ch.disabled\n };\n });\n this.clear = clear('', this.out.columns);\n\n if (!opts.overrideRender) {\n this.render();\n }\n }\n\n reset() {\n this.value.map(v => !v.selected);\n this.cursor = 0;\n this.fire();\n this.render();\n }\n\n selected() {\n return this.value.filter(v => v.selected);\n }\n\n exit() {\n this.abort();\n }\n\n abort() {\n this.done = this.aborted = true;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n submit() {\n const selected = this.value.filter(e => e.selected);\n\n if (this.minSelected && selected.length < this.minSelected) {\n this.showMinError = true;\n this.render();\n } else {\n this.done = true;\n this.aborted = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n }\n\n first() {\n this.cursor = 0;\n this.render();\n }\n\n last() {\n this.cursor = this.value.length - 1;\n this.render();\n }\n\n next() {\n this.cursor = (this.cursor + 1) % this.value.length;\n this.render();\n }\n\n up() {\n if (this.cursor === 0) {\n this.cursor = this.value.length - 1;\n } else {\n this.cursor--;\n }\n\n this.render();\n }\n\n down() {\n if (this.cursor === this.value.length - 1) {\n this.cursor = 0;\n } else {\n this.cursor++;\n }\n\n this.render();\n }\n\n left() {\n this.value[this.cursor].selected = false;\n this.render();\n }\n\n right() {\n if (this.value.filter(e => e.selected).length >= this.maxChoices) return this.bell();\n this.value[this.cursor].selected = true;\n this.render();\n }\n\n handleSpaceToggle() {\n const v = this.value[this.cursor];\n\n if (v.selected) {\n v.selected = false;\n this.render();\n } else if (v.disabled || this.value.filter(e => e.selected).length >= this.maxChoices) {\n return this.bell();\n } else {\n v.selected = true;\n this.render();\n }\n }\n\n toggleAll() {\n if (this.maxChoices !== undefined || this.value[this.cursor].disabled) {\n return this.bell();\n }\n\n const newSelected = !this.value[this.cursor].selected;\n this.value.filter(v => !v.disabled).forEach(v => v.selected = newSelected);\n this.render();\n }\n\n _(c, key) {\n if (c === ' ') {\n this.handleSpaceToggle();\n } else if (c === 'a') {\n this.toggleAll();\n } else {\n return this.bell();\n }\n }\n\n renderInstructions() {\n if (this.instructions === undefined || this.instructions) {\n if (typeof this.instructions === 'string') {\n return this.instructions;\n }\n\n return '\\nInstructions:\\n' + ` ${figures.arrowUp}/${figures.arrowDown}: Highlight option\\n` + ` ${figures.arrowLeft}/${figures.arrowRight}/[space]: Toggle selection\\n` + (this.maxChoices === undefined ? ` a: Toggle all\\n` : '') + ` enter/return: Complete answer`;\n }\n\n return '';\n }\n\n renderOption(cursor, v, i, arrowIndicator) {\n const prefix = (v.selected ? color.green(figures.radioOn) : figures.radioOff) + ' ' + arrowIndicator + ' ';\n let title, desc;\n\n if (v.disabled) {\n title = cursor === i ? color.gray().underline(v.title) : color.strikethrough().gray(v.title);\n } else {\n title = cursor === i ? color.cyan().underline(v.title) : v.title;\n\n if (cursor === i && v.description) {\n desc = ` - ${v.description}`;\n\n if (prefix.length + title.length + desc.length >= this.out.columns || v.description.split(/\\r?\\n/).length > 1) {\n desc = '\\n' + wrap(v.description, {\n margin: prefix.length,\n width: this.out.columns\n });\n }\n }\n }\n\n return prefix + title + color.gray(desc || '');\n } // shared with autocompleteMultiselect\n\n\n paginateOptions(options) {\n if (options.length === 0) {\n return color.red('No matches for this query.');\n }\n\n let _entriesToDisplay = entriesToDisplay(this.cursor, options.length, this.optionsPerPage),\n startIndex = _entriesToDisplay.startIndex,\n endIndex = _entriesToDisplay.endIndex;\n\n let prefix,\n styledOptions = [];\n\n for (let i = startIndex; i < endIndex; i++) {\n if (i === startIndex && startIndex > 0) {\n prefix = figures.arrowUp;\n } else if (i === endIndex - 1 && endIndex < options.length) {\n prefix = figures.arrowDown;\n } else {\n prefix = ' ';\n }\n\n styledOptions.push(this.renderOption(this.cursor, options[i], i, prefix));\n }\n\n return '\\n' + styledOptions.join('\\n');\n } // shared with autocomleteMultiselect\n\n\n renderOptions(options) {\n if (!this.done) {\n return this.paginateOptions(options);\n }\n\n return '';\n }\n\n renderDoneOrInstructions() {\n if (this.done) {\n return this.value.filter(e => e.selected).map(v => v.title).join(', ');\n }\n\n const output = [color.gray(this.hint), this.renderInstructions()];\n\n if (this.value[this.cursor].disabled) {\n output.push(color.yellow(this.warn));\n }\n\n return output.join(' ');\n }\n\n render() {\n if (this.closed) return;\n if (this.firstRender) this.out.write(cursor.hide);\n super.render(); // print prompt\n\n let prompt = [style.symbol(this.done, this.aborted), color.bold(this.msg), style.delimiter(false), this.renderDoneOrInstructions()].join(' ');\n\n if (this.showMinError) {\n prompt += color.red(`You must select a minimum of ${this.minSelected} choices.`);\n this.showMinError = false;\n }\n\n prompt += this.renderOptions(this.value);\n this.out.write(this.clear + prompt);\n this.clear = clear(prompt, this.out.columns);\n }\n\n}\n\nmodule.exports = MultiselectPrompt;",
|
|
33
|
-
"'use strict';\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nconst color = require('kleur');\n\nconst Prompt = require('./prompt');\n\nconst _require = require('sisteransi'),\n erase = _require.erase,\n cursor = _require.cursor;\n\nconst _require2 = require('../util'),\n style = _require2.style,\n clear = _require2.clear,\n figures = _require2.figures,\n wrap = _require2.wrap,\n entriesToDisplay = _require2.entriesToDisplay;\n\nconst getVal = (arr, i) => arr[i] && (arr[i].value || arr[i].title || arr[i]);\n\nconst getTitle = (arr, i) => arr[i] && (arr[i].title || arr[i].value || arr[i]);\n\nconst getIndex = (arr, valOrTitle) => {\n const index = arr.findIndex(el => el.value === valOrTitle || el.title === valOrTitle);\n return index > -1 ? index : undefined;\n};\n/**\n * TextPrompt Base Element\n * @param {Object} opts Options\n * @param {String} opts.message Message\n * @param {Array} opts.choices Array of auto-complete choices objects\n * @param {Function} [opts.suggest] Filter function. Defaults to sort by title\n * @param {Number} [opts.limit=10] Max number of results to show\n * @param {Number} [opts.cursor=0] Cursor start position\n * @param {String} [opts.style='default'] Render style\n * @param {String} [opts.fallback] Fallback message - initial to default value\n * @param {String} [opts.initial] Index of the default value\n * @param {Boolean} [opts.clearFirst] The first ESCAPE keypress will clear the input\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n * @param {String} [opts.noMatches] The no matches found label\n */\n\n\nclass AutocompletePrompt extends Prompt {\n constructor(opts = {}) {\n super(opts);\n this.msg = opts.message;\n this.suggest = opts.suggest;\n this.choices = opts.choices;\n this.initial = typeof opts.initial === 'number' ? opts.initial : getIndex(opts.choices, opts.initial);\n this.select = this.initial || opts.cursor || 0;\n this.i18n = {\n noMatches: opts.noMatches || 'no matches found'\n };\n this.fallback = opts.fallback || this.initial;\n this.clearFirst = opts.clearFirst || false;\n this.suggestions = [];\n this.input = '';\n this.limit = opts.limit || 10;\n this.cursor = 0;\n this.transform = style.render(opts.style);\n this.scale = this.transform.scale;\n this.render = this.render.bind(this);\n this.complete = this.complete.bind(this);\n this.clear = clear('', this.out.columns);\n this.complete(this.render);\n this.render();\n }\n\n set fallback(fb) {\n this._fb = Number.isSafeInteger(parseInt(fb)) ? parseInt(fb) : fb;\n }\n\n get fallback() {\n let choice;\n if (typeof this._fb === 'number') choice = this.choices[this._fb];else if (typeof this._fb === 'string') choice = {\n title: this._fb\n };\n return choice || this._fb || {\n title: this.i18n.noMatches\n };\n }\n\n moveSelect(i) {\n this.select = i;\n if (this.suggestions.length > 0) this.value = getVal(this.suggestions, i);else this.value = this.fallback.value;\n this.fire();\n }\n\n complete(cb) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n const p = _this.completing = _this.suggest(_this.input, _this.choices);\n\n const suggestions = yield p;\n if (_this.completing !== p) return;\n _this.suggestions = suggestions.map((s, i, arr) => ({\n title: getTitle(arr, i),\n value: getVal(arr, i),\n description: s.description\n }));\n _this.completing = false;\n const l = Math.max(suggestions.length - 1, 0);\n\n _this.moveSelect(Math.min(l, _this.select));\n\n cb && cb();\n })();\n }\n\n reset() {\n this.input = '';\n this.complete(() => {\n this.moveSelect(this.initial !== void 0 ? this.initial : 0);\n this.render();\n });\n this.render();\n }\n\n exit() {\n if (this.clearFirst && this.input.length > 0) {\n this.reset();\n } else {\n this.done = this.exited = true;\n this.aborted = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n }\n\n abort() {\n this.done = this.aborted = true;\n this.exited = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n submit() {\n this.done = true;\n this.aborted = this.exited = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n _(c, key) {\n let s1 = this.input.slice(0, this.cursor);\n let s2 = this.input.slice(this.cursor);\n this.input = `${s1}${c}${s2}`;\n this.cursor = s1.length + 1;\n this.complete(this.render);\n this.render();\n }\n\n delete() {\n if (this.cursor === 0) return this.bell();\n let s1 = this.input.slice(0, this.cursor - 1);\n let s2 = this.input.slice(this.cursor);\n this.input = `${s1}${s2}`;\n this.complete(this.render);\n this.cursor = this.cursor - 1;\n this.render();\n }\n\n deleteForward() {\n if (this.cursor * this.scale >= this.rendered.length) return this.bell();\n let s1 = this.input.slice(0, this.cursor);\n let s2 = this.input.slice(this.cursor + 1);\n this.input = `${s1}${s2}`;\n this.complete(this.render);\n this.render();\n }\n\n first() {\n this.moveSelect(0);\n this.render();\n }\n\n last() {\n this.moveSelect(this.suggestions.length - 1);\n this.render();\n }\n\n up() {\n if (this.select === 0) {\n this.moveSelect(this.suggestions.length - 1);\n } else {\n this.moveSelect(this.select - 1);\n }\n\n this.render();\n }\n\n down() {\n if (this.select === this.suggestions.length - 1) {\n this.moveSelect(0);\n } else {\n this.moveSelect(this.select + 1);\n }\n\n this.render();\n }\n\n next() {\n if (this.select === this.suggestions.length - 1) {\n this.moveSelect(0);\n } else this.moveSelect(this.select + 1);\n\n this.render();\n }\n\n nextPage() {\n this.moveSelect(Math.min(this.select + this.limit, this.suggestions.length - 1));\n this.render();\n }\n\n prevPage() {\n this.moveSelect(Math.max(this.select - this.limit, 0));\n this.render();\n }\n\n left() {\n if (this.cursor <= 0) return this.bell();\n this.cursor = this.cursor - 1;\n this.render();\n }\n\n right() {\n if (this.cursor * this.scale >= this.rendered.length) return this.bell();\n this.cursor = this.cursor + 1;\n this.render();\n }\n\n renderOption(v, hovered, isStart, isEnd) {\n let desc;\n let prefix = isStart ? figures.arrowUp : isEnd ? figures.arrowDown : ' ';\n let title = hovered ? color.cyan().underline(v.title) : v.title;\n prefix = (hovered ? color.cyan(figures.pointer) + ' ' : ' ') + prefix;\n\n if (v.description) {\n desc = ` - ${v.description}`;\n\n if (prefix.length + title.length + desc.length >= this.out.columns || v.description.split(/\\r?\\n/).length > 1) {\n desc = '\\n' + wrap(v.description, {\n margin: 3,\n width: this.out.columns\n });\n }\n }\n\n return prefix + ' ' + title + color.gray(desc || '');\n }\n\n render() {\n if (this.closed) return;\n if (this.firstRender) this.out.write(cursor.hide);else this.out.write(clear(this.outputText, this.out.columns));\n super.render();\n\n let _entriesToDisplay = entriesToDisplay(this.select, this.choices.length, this.limit),\n startIndex = _entriesToDisplay.startIndex,\n endIndex = _entriesToDisplay.endIndex;\n\n this.outputText = [style.symbol(this.done, this.aborted, this.exited), color.bold(this.msg), style.delimiter(this.completing), this.done && this.suggestions[this.select] ? this.suggestions[this.select].title : this.rendered = this.transform.render(this.input)].join(' ');\n\n if (!this.done) {\n const suggestions = this.suggestions.slice(startIndex, endIndex).map((item, i) => this.renderOption(item, this.select === i + startIndex, i === 0 && startIndex > 0, i + startIndex === endIndex - 1 && endIndex < this.choices.length)).join('\\n');\n this.outputText += `\\n` + (suggestions || color.gray(this.fallback.title));\n }\n\n this.out.write(erase.line + cursor.to(0) + this.outputText);\n }\n\n}\n\nmodule.exports = AutocompletePrompt;",
|
|
34
|
-
"'use strict';\n\nconst color = require('kleur');\n\nconst _require = require('sisteransi'),\n cursor = _require.cursor;\n\nconst MultiselectPrompt = require('./multiselect');\n\nconst _require2 = require('../util'),\n clear = _require2.clear,\n style = _require2.style,\n figures = _require2.figures;\n/**\n * MultiselectPrompt Base Element\n * @param {Object} opts Options\n * @param {String} opts.message Message\n * @param {Array} opts.choices Array of choice objects\n * @param {String} [opts.hint] Hint to display\n * @param {String} [opts.warn] Hint shown for disabled choices\n * @param {Number} [opts.max] Max choices\n * @param {Number} [opts.cursor=0] Cursor start position\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n */\n\n\nclass AutocompleteMultiselectPrompt extends MultiselectPrompt {\n constructor(opts = {}) {\n opts.overrideRender = true;\n super(opts);\n this.inputValue = '';\n this.clear = clear('', this.out.columns);\n this.filteredOptions = this.value;\n this.render();\n }\n\n last() {\n this.cursor = this.filteredOptions.length - 1;\n this.render();\n }\n\n next() {\n this.cursor = (this.cursor + 1) % this.filteredOptions.length;\n this.render();\n }\n\n up() {\n if (this.cursor === 0) {\n this.cursor = this.filteredOptions.length - 1;\n } else {\n this.cursor--;\n }\n\n this.render();\n }\n\n down() {\n if (this.cursor === this.filteredOptions.length - 1) {\n this.cursor = 0;\n } else {\n this.cursor++;\n }\n\n this.render();\n }\n\n left() {\n this.filteredOptions[this.cursor].selected = false;\n this.render();\n }\n\n right() {\n if (this.value.filter(e => e.selected).length >= this.maxChoices) return this.bell();\n this.filteredOptions[this.cursor].selected = true;\n this.render();\n }\n\n delete() {\n if (this.inputValue.length) {\n this.inputValue = this.inputValue.substr(0, this.inputValue.length - 1);\n this.updateFilteredOptions();\n }\n }\n\n updateFilteredOptions() {\n const currentHighlight = this.filteredOptions[this.cursor];\n this.filteredOptions = this.value.filter(v => {\n if (this.inputValue) {\n if (typeof v.title === 'string') {\n if (v.title.toLowerCase().includes(this.inputValue.toLowerCase())) {\n return true;\n }\n }\n\n if (typeof v.value === 'string') {\n if (v.value.toLowerCase().includes(this.inputValue.toLowerCase())) {\n return true;\n }\n }\n\n return false;\n }\n\n return true;\n });\n const newHighlightIndex = this.filteredOptions.findIndex(v => v === currentHighlight);\n this.cursor = newHighlightIndex < 0 ? 0 : newHighlightIndex;\n this.render();\n }\n\n handleSpaceToggle() {\n const v = this.filteredOptions[this.cursor];\n\n if (v.selected) {\n v.selected = false;\n this.render();\n } else if (v.disabled || this.value.filter(e => e.selected).length >= this.maxChoices) {\n return this.bell();\n } else {\n v.selected = true;\n this.render();\n }\n }\n\n handleInputChange(c) {\n this.inputValue = this.inputValue + c;\n this.updateFilteredOptions();\n }\n\n _(c, key) {\n if (c === ' ') {\n this.handleSpaceToggle();\n } else {\n this.handleInputChange(c);\n }\n }\n\n renderInstructions() {\n if (this.instructions === undefined || this.instructions) {\n if (typeof this.instructions === 'string') {\n return this.instructions;\n }\n\n return `\nInstructions:\n ${figures.arrowUp}/${figures.arrowDown}: Highlight option\n ${figures.arrowLeft}/${figures.arrowRight}/[space]: Toggle selection\n [a,b,c]/delete: Filter choices\n enter/return: Complete answer\n`;\n }\n\n return '';\n }\n\n renderCurrentInput() {\n return `\nFiltered results for: ${this.inputValue ? this.inputValue : color.gray('Enter something to filter')}\\n`;\n }\n\n renderOption(cursor, v, i) {\n let title;\n if (v.disabled) title = cursor === i ? color.gray().underline(v.title) : color.strikethrough().gray(v.title);else title = cursor === i ? color.cyan().underline(v.title) : v.title;\n return (v.selected ? color.green(figures.radioOn) : figures.radioOff) + ' ' + title;\n }\n\n renderDoneOrInstructions() {\n if (this.done) {\n return this.value.filter(e => e.selected).map(v => v.title).join(', ');\n }\n\n const output = [color.gray(this.hint), this.renderInstructions(), this.renderCurrentInput()];\n\n if (this.filteredOptions.length && this.filteredOptions[this.cursor].disabled) {\n output.push(color.yellow(this.warn));\n }\n\n return output.join(' ');\n }\n\n render() {\n if (this.closed) return;\n if (this.firstRender) this.out.write(cursor.hide);\n super.render(); // print prompt\n\n let prompt = [style.symbol(this.done, this.aborted), color.bold(this.msg), style.delimiter(false), this.renderDoneOrInstructions()].join(' ');\n\n if (this.showMinError) {\n prompt += color.red(`You must select a minimum of ${this.minSelected} choices.`);\n this.showMinError = false;\n }\n\n prompt += this.renderOptions(this.filteredOptions);\n this.out.write(this.clear + prompt);\n this.clear = clear(prompt, this.out.columns);\n }\n\n}\n\nmodule.exports = AutocompleteMultiselectPrompt;",
|
|
35
|
-
"\"use strict\";\n\nconst color = require('kleur');\n\nconst Prompt = require('./prompt');\n\nconst _require = require('../util'),\n style = _require.style,\n clear = _require.clear;\n\nconst _require2 = require('sisteransi'),\n erase = _require2.erase,\n cursor = _require2.cursor;\n/**\n * ConfirmPrompt Base Element\n * @param {Object} opts Options\n * @param {String} opts.message Message\n * @param {Boolean} [opts.initial] Default value (true/false)\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n * @param {String} [opts.yes] The \"Yes\" label\n * @param {String} [opts.yesOption] The \"Yes\" option when choosing between yes/no\n * @param {String} [opts.no] The \"No\" label\n * @param {String} [opts.noOption] The \"No\" option when choosing between yes/no\n */\n\n\nclass ConfirmPrompt extends Prompt {\n constructor(opts = {}) {\n super(opts);\n this.msg = opts.message;\n this.value = opts.initial;\n this.initialValue = !!opts.initial;\n this.yesMsg = opts.yes || 'yes';\n this.yesOption = opts.yesOption || '(Y/n)';\n this.noMsg = opts.no || 'no';\n this.noOption = opts.noOption || '(y/N)';\n this.render();\n }\n\n reset() {\n this.value = this.initialValue;\n this.fire();\n this.render();\n }\n\n exit() {\n this.abort();\n }\n\n abort() {\n this.done = this.aborted = true;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n submit() {\n this.value = this.value || false;\n this.done = true;\n this.aborted = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n _(c, key) {\n if (c.toLowerCase() === 'y') {\n this.value = true;\n return this.submit();\n }\n\n if (c.toLowerCase() === 'n') {\n this.value = false;\n return this.submit();\n }\n\n return this.bell();\n }\n\n render() {\n if (this.closed) return;\n if (this.firstRender) this.out.write(cursor.hide);else this.out.write(clear(this.outputText, this.out.columns));\n super.render();\n this.outputText = [style.symbol(this.done, this.aborted), color.bold(this.msg), style.delimiter(this.done), this.done ? this.value ? this.yesMsg : this.noMsg : color.gray(this.initialValue ? this.yesOption : this.noOption)].join(' ');\n this.out.write(erase.line + cursor.to(0) + this.outputText);\n }\n\n}\n\nmodule.exports = ConfirmPrompt;",
|
|
36
|
-
"'use strict';\n\nmodule.exports = {\n TextPrompt: require('./text'),\n SelectPrompt: require('./select'),\n TogglePrompt: require('./toggle'),\n DatePrompt: require('./date'),\n NumberPrompt: require('./number'),\n MultiselectPrompt: require('./multiselect'),\n AutocompletePrompt: require('./autocomplete'),\n AutocompleteMultiselectPrompt: require('./autocompleteMultiselect'),\n ConfirmPrompt: require('./confirm')\n};",
|
|
37
|
-
"'use strict';\n\nconst $ = exports;\n\nconst el = require('./elements');\n\nconst noop = v => v;\n\nfunction toPrompt(type, args, opts = {}) {\n return new Promise((res, rej) => {\n const p = new el[type](args);\n const onAbort = opts.onAbort || noop;\n const onSubmit = opts.onSubmit || noop;\n const onExit = opts.onExit || noop;\n p.on('state', args.onState || noop);\n p.on('submit', x => res(onSubmit(x)));\n p.on('exit', x => res(onExit(x)));\n p.on('abort', x => rej(onAbort(x)));\n });\n}\n/**\n * Text prompt\n * @param {string} args.message Prompt message to display\n * @param {string} [args.initial] Default string value\n * @param {string} [args.style=\"default\"] Render style ('default', 'password', 'invisible')\n * @param {function} [args.onState] On state change callback\n * @param {function} [args.validate] Function to validate user input\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n\n\n$.text = args => toPrompt('TextPrompt', args);\n/**\n * Password prompt with masked input\n * @param {string} args.message Prompt message to display\n * @param {string} [args.initial] Default string value\n * @param {function} [args.onState] On state change callback\n * @param {function} [args.validate] Function to validate user input\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n\n\n$.password = args => {\n args.style = 'password';\n return $.text(args);\n};\n/**\n * Prompt where input is invisible, like sudo\n * @param {string} args.message Prompt message to display\n * @param {string} [args.initial] Default string value\n * @param {function} [args.onState] On state change callback\n * @param {function} [args.validate] Function to validate user input\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n\n\n$.invisible = args => {\n args.style = 'invisible';\n return $.text(args);\n};\n/**\n * Number prompt\n * @param {string} args.message Prompt message to display\n * @param {number} args.initial Default number value\n * @param {function} [args.onState] On state change callback\n * @param {number} [args.max] Max value\n * @param {number} [args.min] Min value\n * @param {string} [args.style=\"default\"] Render style ('default', 'password', 'invisible')\n * @param {Boolean} [opts.float=false] Parse input as floats\n * @param {Number} [opts.round=2] Round floats to x decimals\n * @param {Number} [opts.increment=1] Number to increment by when using arrow-keys\n * @param {function} [args.validate] Function to validate user input\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n\n\n$.number = args => toPrompt('NumberPrompt', args);\n/**\n * Date prompt\n * @param {string} args.message Prompt message to display\n * @param {number} args.initial Default number value\n * @param {function} [args.onState] On state change callback\n * @param {number} [args.max] Max value\n * @param {number} [args.min] Min value\n * @param {string} [args.style=\"default\"] Render style ('default', 'password', 'invisible')\n * @param {Boolean} [opts.float=false] Parse input as floats\n * @param {Number} [opts.round=2] Round floats to x decimals\n * @param {Number} [opts.increment=1] Number to increment by when using arrow-keys\n * @param {function} [args.validate] Function to validate user input\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n\n\n$.date = args => toPrompt('DatePrompt', args);\n/**\n * Classic yes/no prompt\n * @param {string} args.message Prompt message to display\n * @param {boolean} [args.initial=false] Default value\n * @param {function} [args.onState] On state change callback\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n\n\n$.confirm = args => toPrompt('ConfirmPrompt', args);\n/**\n * List prompt, split intput string by `seperator`\n * @param {string} args.message Prompt message to display\n * @param {string} [args.initial] Default string value\n * @param {string} [args.style=\"default\"] Render style ('default', 'password', 'invisible')\n * @param {string} [args.separator] String separator\n * @param {function} [args.onState] On state change callback\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input, in form of an `Array`\n */\n\n\n$.list = args => {\n const sep = args.separator || ',';\n return toPrompt('TextPrompt', args, {\n onSubmit: str => str.split(sep).map(s => s.trim())\n });\n};\n/**\n * Toggle/switch prompt\n * @param {string} args.message Prompt message to display\n * @param {boolean} [args.initial=false] Default value\n * @param {string} [args.active=\"on\"] Text for `active` state\n * @param {string} [args.inactive=\"off\"] Text for `inactive` state\n * @param {function} [args.onState] On state change callback\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n\n\n$.toggle = args => toPrompt('TogglePrompt', args);\n/**\n * Interactive select prompt\n * @param {string} args.message Prompt message to display\n * @param {Array} args.choices Array of choices objects `[{ title, value }, ...]`\n * @param {number} [args.initial] Index of default value\n * @param {String} [args.hint] Hint to display\n * @param {function} [args.onState] On state change callback\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n\n\n$.select = args => toPrompt('SelectPrompt', args);\n/**\n * Interactive multi-select / autocompleteMultiselect prompt\n * @param {string} args.message Prompt message to display\n * @param {Array} args.choices Array of choices objects `[{ title, value, [selected] }, ...]`\n * @param {number} [args.max] Max select\n * @param {string} [args.hint] Hint to display user\n * @param {Number} [args.cursor=0] Cursor start position\n * @param {function} [args.onState] On state change callback\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n\n\n$.multiselect = args => {\n args.choices = [].concat(args.choices || []);\n\n const toSelected = items => items.filter(item => item.selected).map(item => item.value);\n\n return toPrompt('MultiselectPrompt', args, {\n onAbort: toSelected,\n onSubmit: toSelected\n });\n};\n\n$.autocompleteMultiselect = args => {\n args.choices = [].concat(args.choices || []);\n\n const toSelected = items => items.filter(item => item.selected).map(item => item.value);\n\n return toPrompt('AutocompleteMultiselectPrompt', args, {\n onAbort: toSelected,\n onSubmit: toSelected\n });\n};\n\nconst byTitle = (input, choices) => Promise.resolve(choices.filter(item => item.title.slice(0, input.length).toLowerCase() === input.toLowerCase()));\n/**\n * Interactive auto-complete prompt\n * @param {string} args.message Prompt message to display\n * @param {Array} args.choices Array of auto-complete choices objects `[{ title, value }, ...]`\n * @param {Function} [args.suggest] Function to filter results based on user input. Defaults to sort by `title`\n * @param {number} [args.limit=10] Max number of results to show\n * @param {string} [args.style=\"default\"] Render style ('default', 'password', 'invisible')\n * @param {String} [args.initial] Index of the default value\n * @param {boolean} [opts.clearFirst] The first ESCAPE keypress will clear the input\n * @param {String} [args.fallback] Fallback message - defaults to initial value\n * @param {function} [args.onState] On state change callback\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n\n\n$.autocomplete = args => {\n args.suggest = args.suggest || byTitle;\n args.choices = [].concat(args.choices || []);\n return toPrompt('AutocompletePrompt', args);\n};",
|
|
38
|
-
"'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nconst prompts = require('./prompts');\n\nconst passOn = ['suggest', 'format', 'onState', 'validate', 'onRender', 'type'];\n\nconst noop = () => {};\n/**\n * Prompt for a series of questions\n * @param {Array|Object} questions Single question object or Array of question objects\n * @param {Function} [onSubmit] Callback function called on prompt submit\n * @param {Function} [onCancel] Callback function called on cancel/abort\n * @returns {Object} Object with values from user input\n */\n\n\nfunction prompt() {\n return _prompt.apply(this, arguments);\n}\n\nfunction _prompt() {\n _prompt = _asyncToGenerator(function* (questions = [], {\n onSubmit = noop,\n onCancel = noop\n } = {}) {\n const answers = {};\n const override = prompt._override || {};\n questions = [].concat(questions);\n let answer, question, quit, name, type, lastPrompt;\n\n const getFormattedAnswer = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (question, answer, skipValidation = false) {\n if (!skipValidation && question.validate && question.validate(answer) !== true) {\n return;\n }\n\n return question.format ? yield question.format(answer, answers) : answer;\n });\n\n return function getFormattedAnswer(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n }();\n\n var _iterator = _createForOfIteratorHelper(questions),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n question = _step.value;\n var _question = question;\n name = _question.name;\n type = _question.type;\n\n // evaluate type first and skip if type is a falsy value\n if (typeof type === 'function') {\n type = yield type(answer, _objectSpread({}, answers), question);\n question['type'] = type;\n }\n\n if (!type) continue; // if property is a function, invoke it unless it's a special function\n\n for (let key in question) {\n if (passOn.includes(key)) continue;\n let value = question[key];\n question[key] = typeof value === 'function' ? yield value(answer, _objectSpread({}, answers), lastPrompt) : value;\n }\n\n lastPrompt = question;\n\n if (typeof question.message !== 'string') {\n throw new Error('prompt message is required');\n } // update vars in case they changed\n\n\n var _question2 = question;\n name = _question2.name;\n type = _question2.type;\n\n if (prompts[type] === void 0) {\n throw new Error(`prompt type (${type}) is not defined`);\n }\n\n if (override[question.name] !== undefined) {\n answer = yield getFormattedAnswer(question, override[question.name]);\n\n if (answer !== undefined) {\n answers[name] = answer;\n continue;\n }\n }\n\n try {\n // Get the injected answer if there is one or prompt the user\n answer = prompt._injected ? getInjectedAnswer(prompt._injected, question.initial) : yield prompts[type](question);\n answers[name] = answer = yield getFormattedAnswer(question, answer, true);\n quit = yield onSubmit(question, answer, answers);\n } catch (err) {\n quit = !(yield onCancel(question, answers));\n }\n\n if (quit) return answers;\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return answers;\n });\n return _prompt.apply(this, arguments);\n}\n\nfunction getInjectedAnswer(injected, deafultValue) {\n const answer = injected.shift();\n\n if (answer instanceof Error) {\n throw answer;\n }\n\n return answer === undefined ? deafultValue : answer;\n}\n\nfunction inject(answers) {\n prompt._injected = (prompt._injected || []).concat(answers);\n}\n\nfunction override(answers) {\n prompt._override = Object.assign({}, answers);\n}\n\nmodule.exports = Object.assign(prompt, {\n prompt,\n prompts,\n inject,\n override\n});",
|
|
39
|
-
"'use strict';\n\nmodule.exports = (key, isSelect) => {\n if (key.meta && key.name !== 'escape') return;\n \n if (key.ctrl) {\n if (key.name === 'a') return 'first';\n if (key.name === 'c') return 'abort';\n if (key.name === 'd') return 'abort';\n if (key.name === 'e') return 'last';\n if (key.name === 'g') return 'reset';\n }\n \n if (isSelect) {\n if (key.name === 'j') return 'down';\n if (key.name === 'k') return 'up';\n }\n\n if (key.name === 'return') return 'submit';\n if (key.name === 'enter') return 'submit'; // ctrl + J\n if (key.name === 'backspace') return 'delete';\n if (key.name === 'delete') return 'deleteForward';\n if (key.name === 'abort') return 'abort';\n if (key.name === 'escape') return 'exit';\n if (key.name === 'tab') return 'next';\n if (key.name === 'pagedown') return 'nextPage';\n if (key.name === 'pageup') return 'prevPage';\n // TODO create home() in prompt types (e.g. TextPrompt)\n if (key.name === 'home') return 'home';\n // TODO create end() in prompt types (e.g. TextPrompt)\n if (key.name === 'end') return 'end';\n\n if (key.name === 'up') return 'up';\n if (key.name === 'down') return 'down';\n if (key.name === 'right') return 'right';\n if (key.name === 'left') return 'left';\n\n return false;\n};\n",
|
|
40
|
-
"'use strict';\n\nmodule.exports = str => {\n const pattern = [\n '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n '(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PRZcf-ntqry=><~]))'\n ].join('|');\n\n const RGX = new RegExp(pattern, 'g');\n return typeof str === 'string' ? str.replace(RGX, '') : str;\n};\n",
|
|
41
|
-
"'use strict';\n\nconst strip = require('./strip');\nconst { erase, cursor } = require('sisteransi');\n\nconst width = str => [...strip(str)].length;\n\n/**\n * @param {string} prompt\n * @param {number} perLine\n */\nmodule.exports = function(prompt, perLine) {\n if (!perLine) return erase.line + cursor.to(0);\n\n let rows = 0;\n const lines = prompt.split(/\\r?\\n/);\n for (let line of lines) {\n rows += 1 + Math.floor(Math.max(width(line) - 1, 0) / perLine);\n }\n\n return erase.lines(rows);\n};\n",
|
|
42
|
-
"'use strict';\t\n\n const main = {\n arrowUp: '↑',\n arrowDown: '↓',\n arrowLeft: '←',\n arrowRight: '→',\n radioOn: '◉',\n radioOff: '◯',\n tick: '✔',\t\n cross: '✖',\t\n ellipsis: '…',\t\n pointerSmall: '›',\t\n line: '─',\t\n pointer: '❯'\t\n};\t\nconst win = {\n arrowUp: main.arrowUp,\n arrowDown: main.arrowDown,\n arrowLeft: main.arrowLeft,\n arrowRight: main.arrowRight,\n radioOn: '(*)',\n radioOff: '( )',\t\n tick: '√',\t\n cross: '×',\t\n ellipsis: '...',\t\n pointerSmall: '»',\t\n line: '─',\t\n pointer: '>'\t\n};\t\nconst figures = process.platform === 'win32' ? win : main;\t\n\n module.exports = figures;\n",
|
|
43
|
-
"'use strict';\n\nconst c = require('kleur');\nconst figures = require('./figures');\n\n// rendering user input.\nconst styles = Object.freeze({\n password: { scale: 1, render: input => '*'.repeat(input.length) },\n emoji: { scale: 2, render: input => '😃'.repeat(input.length) },\n invisible: { scale: 0, render: input => '' },\n default: { scale: 1, render: input => `${input}` }\n});\nconst render = type => styles[type] || styles.default;\n\n// icon to signalize a prompt.\nconst symbols = Object.freeze({\n aborted: c.red(figures.cross),\n done: c.green(figures.tick),\n exited: c.yellow(figures.cross),\n default: c.cyan('?')\n});\n\nconst symbol = (done, aborted, exited) =>\n aborted ? symbols.aborted : exited ? symbols.exited : done ? symbols.done : symbols.default;\n\n// between the question and the user's input.\nconst delimiter = completing =>\n c.gray(completing ? figures.ellipsis : figures.pointerSmall);\n\nconst item = (expandable, expanded) =>\n c.gray(expandable ? (expanded ? figures.pointerSmall : '+') : figures.line);\n\nmodule.exports = {\n styles,\n render,\n symbols,\n symbol,\n delimiter,\n item\n};\n",
|
|
44
|
-
"'use strict';\n\nconst strip = require('./strip');\n\n/**\n * @param {string} msg\n * @param {number} perLine\n */\nmodule.exports = function (msg, perLine) {\n let lines = String(strip(msg) || '').split(/\\r?\\n/);\n\n if (!perLine) return lines.length;\n return lines.map(l => Math.ceil(l.length / perLine))\n .reduce((a, b) => a + b);\n};\n",
|
|
45
|
-
"'use strict';\n\n/**\n * @param {string} msg The message to wrap\n * @param {object} opts\n * @param {number|string} [opts.margin] Left margin\n * @param {number} opts.width Maximum characters per line including the margin\n */\nmodule.exports = (msg, opts = {}) => {\n const tab = Number.isSafeInteger(parseInt(opts.margin))\n ? new Array(parseInt(opts.margin)).fill(' ').join('')\n : (opts.margin || '');\n\n const width = opts.width;\n\n return (msg || '').split(/\\r?\\n/g)\n .map(line => line\n .split(/\\s+/g)\n .reduce((arr, w) => {\n if (w.length + tab.length >= width || arr[arr.length - 1].length + w.length + 1 < width)\n arr[arr.length - 1] += ` ${w}`;\n else arr.push(`${tab}${w}`);\n return arr;\n }, [ tab ])\n .join('\\n'))\n .join('\\n');\n};\n",
|
|
46
|
-
"'use strict';\n\n/**\n * Determine what entries should be displayed on the screen, based on the\n * currently selected index and the maximum visible. Used in list-based\n * prompts like `select` and `multiselect`.\n *\n * @param {number} cursor the currently selected entry\n * @param {number} total the total entries available to display\n * @param {number} [maxVisible] the number of entries that can be displayed\n */\nmodule.exports = (cursor, total, maxVisible) => {\n maxVisible = maxVisible || total;\n\n let startIndex = Math.min(total- maxVisible, cursor - Math.floor(maxVisible / 2));\n if (startIndex < 0) startIndex = 0;\n\n let endIndex = Math.min(startIndex + maxVisible, total);\n\n return { startIndex, endIndex };\n};\n",
|
|
47
|
-
"'use strict';\n\nmodule.exports = {\n action: require('./action'),\n clear: require('./clear'),\n style: require('./style'),\n strip: require('./strip'),\n figures: require('./figures'),\n lines: require('./lines'),\n wrap: require('./wrap'),\n entriesToDisplay: require('./entriesToDisplay')\n};\n",
|
|
48
|
-
"'use strict';\n\nconst readline = require('readline');\nconst { action } = require('../util');\nconst EventEmitter = require('events');\nconst { beep, cursor } = require('sisteransi');\nconst color = require('kleur');\n\n/**\n * Base prompt skeleton\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n */\nclass Prompt extends EventEmitter {\n constructor(opts={}) {\n super();\n\n this.firstRender = true;\n this.in = opts.stdin || process.stdin;\n this.out = opts.stdout || process.stdout;\n this.onRender = (opts.onRender || (() => void 0)).bind(this);\n const rl = readline.createInterface({ input:this.in, escapeCodeTimeout:50 });\n readline.emitKeypressEvents(this.in, rl);\n\n if (this.in.isTTY) this.in.setRawMode(true);\n const isSelect = [ 'SelectPrompt', 'MultiselectPrompt' ].indexOf(this.constructor.name) > -1;\n const keypress = (str, key) => {\n let a = action(key, isSelect);\n if (a === false) {\n this._ && this._(str, key);\n } else if (typeof this[a] === 'function') {\n this[a](key);\n } else {\n this.bell();\n }\n };\n\n this.close = () => {\n this.out.write(cursor.show);\n this.in.removeListener('keypress', keypress);\n if (this.in.isTTY) this.in.setRawMode(false);\n rl.close();\n this.emit(this.aborted ? 'abort' : this.exited ? 'exit' : 'submit', this.value);\n this.closed = true;\n };\n\n this.in.on('keypress', keypress);\n }\n\n fire() {\n this.emit('state', {\n value: this.value,\n aborted: !!this.aborted,\n exited: !!this.exited\n });\n }\n\n bell() {\n this.out.write(beep);\n }\n\n render() {\n this.onRender(color);\n if (this.firstRender) this.firstRender = false;\n }\n}\n\nmodule.exports = Prompt;\n",
|
|
49
|
-
"const color = require('kleur');\nconst Prompt = require('./prompt');\nconst { erase, cursor } = require('sisteransi');\nconst { style, clear, lines, figures } = require('../util');\n\n/**\n * TextPrompt Base Element\n * @param {Object} opts Options\n * @param {String} opts.message Message\n * @param {String} [opts.style='default'] Render style\n * @param {String} [opts.initial] Default value\n * @param {Function} [opts.validate] Validate function\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n * @param {String} [opts.error] The invalid error label\n */\nclass TextPrompt extends Prompt {\n constructor(opts={}) {\n super(opts);\n this.transform = style.render(opts.style);\n this.scale = this.transform.scale;\n this.msg = opts.message;\n this.initial = opts.initial || ``;\n this.validator = opts.validate || (() => true);\n this.value = ``;\n this.errorMsg = opts.error || `Please Enter A Valid Value`;\n this.cursor = Number(!!this.initial);\n this.cursorOffset = 0;\n this.clear = clear(``, this.out.columns);\n this.render();\n }\n\n set value(v) {\n if (!v && this.initial) {\n this.placeholder = true;\n this.rendered = color.gray(this.transform.render(this.initial));\n } else {\n this.placeholder = false;\n this.rendered = this.transform.render(v);\n }\n this._value = v;\n this.fire();\n }\n\n get value() {\n return this._value;\n }\n\n reset() {\n this.value = ``;\n this.cursor = Number(!!this.initial);\n this.cursorOffset = 0;\n this.fire();\n this.render();\n }\n\n exit() {\n this.abort();\n }\n\n abort() {\n this.value = this.value || this.initial;\n this.done = this.aborted = true;\n this.error = false;\n this.red = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n async validate() {\n let valid = await this.validator(this.value);\n if (typeof valid === `string`) {\n this.errorMsg = valid;\n valid = false;\n }\n this.error = !valid;\n }\n\n async submit() {\n this.value = this.value || this.initial;\n this.cursorOffset = 0;\n this.cursor = this.rendered.length;\n await this.validate();\n if (this.error) {\n this.red = true;\n this.fire();\n this.render();\n return;\n }\n this.done = true;\n this.aborted = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n next() {\n if (!this.placeholder) return this.bell();\n this.value = this.initial;\n this.cursor = this.rendered.length;\n this.fire();\n this.render();\n }\n\n moveCursor(n) {\n if (this.placeholder) return;\n this.cursor = this.cursor+n;\n this.cursorOffset += n;\n }\n\n _(c, key) {\n let s1 = this.value.slice(0, this.cursor);\n let s2 = this.value.slice(this.cursor);\n this.value = `${s1}${c}${s2}`;\n this.red = false;\n this.cursor = this.placeholder ? 0 : s1.length+1;\n this.render();\n }\n\n delete() {\n if (this.isCursorAtStart()) return this.bell();\n let s1 = this.value.slice(0, this.cursor-1);\n let s2 = this.value.slice(this.cursor);\n this.value = `${s1}${s2}`;\n this.red = false;\n if (this.isCursorAtStart()) {\n this.cursorOffset = 0\n } else {\n this.cursorOffset++;\n this.moveCursor(-1);\n }\n this.render();\n }\n\n deleteForward() {\n if(this.cursor*this.scale >= this.rendered.length || this.placeholder) return this.bell();\n let s1 = this.value.slice(0, this.cursor);\n let s2 = this.value.slice(this.cursor+1);\n this.value = `${s1}${s2}`;\n this.red = false;\n if (this.isCursorAtEnd()) {\n this.cursorOffset = 0;\n } else {\n this.cursorOffset++;\n }\n this.render();\n }\n\n first() {\n this.cursor = 0;\n this.render();\n }\n\n last() {\n this.cursor = this.value.length;\n this.render();\n }\n\n left() {\n if (this.cursor <= 0 || this.placeholder) return this.bell();\n this.moveCursor(-1);\n this.render();\n }\n\n right() {\n if (this.cursor*this.scale >= this.rendered.length || this.placeholder) return this.bell();\n this.moveCursor(1);\n this.render();\n }\n\n isCursorAtStart() {\n return this.cursor === 0 || (this.placeholder && this.cursor === 1);\n }\n\n isCursorAtEnd() {\n return this.cursor === this.rendered.length || (this.placeholder && this.cursor === this.rendered.length + 1)\n }\n\n render() {\n if (this.closed) return;\n if (!this.firstRender) {\n if (this.outputError)\n this.out.write(cursor.down(lines(this.outputError, this.out.columns) - 1) + clear(this.outputError, this.out.columns));\n this.out.write(clear(this.outputText, this.out.columns));\n }\n super.render();\n this.outputError = '';\n\n this.outputText = [\n style.symbol(this.done, this.aborted),\n color.bold(this.msg),\n style.delimiter(this.done),\n this.red ? color.red(this.rendered) : this.rendered\n ].join(` `);\n\n if (this.error) {\n this.outputError += this.errorMsg.split(`\\n`)\n .reduce((a, l, i) => a + `\\n${i ? ' ' : figures.pointerSmall} ${color.red().italic(l)}`, ``);\n }\n\n this.out.write(erase.line + cursor.to(0) + this.outputText + cursor.save + this.outputError + cursor.restore + cursor.move(this.cursorOffset, 0));\n }\n}\n\nmodule.exports = TextPrompt;",
|
|
50
|
-
"'use strict';\n\nconst color = require('kleur');\nconst Prompt = require('./prompt');\nconst { style, clear, figures, wrap, entriesToDisplay } = require('../util');\nconst { cursor } = require('sisteransi');\n\n/**\n * SelectPrompt Base Element\n * @param {Object} opts Options\n * @param {String} opts.message Message\n * @param {Array} opts.choices Array of choice objects\n * @param {String} [opts.hint] Hint to display\n * @param {Number} [opts.initial] Index of default value\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n * @param {Number} [opts.optionsPerPage=10] Max options to display at once\n */\nclass SelectPrompt extends Prompt {\n constructor(opts={}) {\n super(opts);\n this.msg = opts.message;\n this.hint = opts.hint || '- Use arrow-keys. Return to submit.';\n this.warn = opts.warn || '- This option is disabled';\n this.cursor = opts.initial || 0;\n this.choices = opts.choices.map((ch, idx) => {\n if (typeof ch === 'string')\n ch = {title: ch, value: idx};\n return {\n title: ch && (ch.title || ch.value || ch),\n value: ch && (ch.value === undefined ? idx : ch.value),\n description: ch && ch.description,\n selected: ch && ch.selected,\n disabled: ch && ch.disabled\n };\n });\n this.optionsPerPage = opts.optionsPerPage || 10;\n this.value = (this.choices[this.cursor] || {}).value;\n this.clear = clear('', this.out.columns);\n this.render();\n }\n\n moveCursor(n) {\n this.cursor = n;\n this.value = this.choices[n].value;\n this.fire();\n }\n\n reset() {\n this.moveCursor(0);\n this.fire();\n this.render();\n }\n\n exit() {\n this.abort();\n }\n\n abort() {\n this.done = this.aborted = true;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n submit() {\n if (!this.selection.disabled) {\n this.done = true;\n this.aborted = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n } else\n this.bell();\n }\n\n first() {\n this.moveCursor(0);\n this.render();\n }\n\n last() {\n this.moveCursor(this.choices.length - 1);\n this.render();\n }\n\n up() {\n if (this.cursor === 0) {\n this.moveCursor(this.choices.length - 1);\n } else {\n this.moveCursor(this.cursor - 1);\n }\n this.render();\n }\n\n down() {\n if (this.cursor === this.choices.length - 1) {\n this.moveCursor(0);\n } else {\n this.moveCursor(this.cursor + 1);\n }\n this.render();\n }\n\n next() {\n this.moveCursor((this.cursor + 1) % this.choices.length);\n this.render();\n }\n\n _(c, key) {\n if (c === ' ') return this.submit();\n }\n\n get selection() {\n return this.choices[this.cursor];\n }\n\n render() {\n if (this.closed) return;\n if (this.firstRender) this.out.write(cursor.hide);\n else this.out.write(clear(this.outputText, this.out.columns));\n super.render();\n\n let { startIndex, endIndex } = entriesToDisplay(this.cursor, this.choices.length, this.optionsPerPage);\n\n // Print prompt\n this.outputText = [\n style.symbol(this.done, this.aborted),\n color.bold(this.msg),\n style.delimiter(false),\n this.done ? this.selection.title : this.selection.disabled\n ? color.yellow(this.warn) : color.gray(this.hint)\n ].join(' ');\n\n // Print choices\n if (!this.done) {\n this.outputText += '\\n';\n for (let i = startIndex; i < endIndex; i++) {\n let title, prefix, desc = '', v = this.choices[i];\n\n // Determine whether to display \"more choices\" indicators\n if (i === startIndex && startIndex > 0) {\n prefix = figures.arrowUp;\n } else if (i === endIndex - 1 && endIndex < this.choices.length) {\n prefix = figures.arrowDown;\n } else {\n prefix = ' ';\n }\n\n if (v.disabled) {\n title = this.cursor === i ? color.gray().underline(v.title) : color.strikethrough().gray(v.title);\n prefix = (this.cursor === i ? color.bold().gray(figures.pointer) + ' ' : ' ') + prefix;\n } else {\n title = this.cursor === i ? color.cyan().underline(v.title) : v.title;\n prefix = (this.cursor === i ? color.cyan(figures.pointer) + ' ' : ' ') + prefix;\n if (v.description && this.cursor === i) {\n desc = ` - ${v.description}`;\n if (prefix.length + title.length + desc.length >= this.out.columns\n || v.description.split(/\\r?\\n/).length > 1) {\n desc = '\\n' + wrap(v.description, { margin: 3, width: this.out.columns });\n }\n }\n }\n\n this.outputText += `${prefix} ${title}${color.gray(desc)}\\n`;\n }\n }\n\n this.out.write(this.outputText);\n }\n}\n\nmodule.exports = SelectPrompt;\n",
|
|
51
|
-
"const color = require('kleur');\nconst Prompt = require('./prompt');\nconst { style, clear } = require('../util');\nconst { cursor, erase } = require('sisteransi');\n\n/**\n * TogglePrompt Base Element\n * @param {Object} opts Options\n * @param {String} opts.message Message\n * @param {Boolean} [opts.initial=false] Default value\n * @param {String} [opts.active='no'] Active label\n * @param {String} [opts.inactive='off'] Inactive label\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n */\nclass TogglePrompt extends Prompt {\n constructor(opts={}) {\n super(opts);\n this.msg = opts.message;\n this.value = !!opts.initial;\n this.active = opts.active || 'on';\n this.inactive = opts.inactive || 'off';\n this.initialValue = this.value;\n this.render();\n }\n\n reset() {\n this.value = this.initialValue;\n this.fire();\n this.render();\n }\n\n exit() {\n this.abort();\n }\n\n abort() {\n this.done = this.aborted = true;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n submit() {\n this.done = true;\n this.aborted = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n deactivate() {\n if (this.value === false) return this.bell();\n this.value = false;\n this.render();\n }\n\n activate() {\n if (this.value === true) return this.bell();\n this.value = true;\n this.render();\n }\n\n delete() {\n this.deactivate();\n }\n left() {\n this.deactivate();\n }\n right() {\n this.activate();\n }\n down() {\n this.deactivate();\n }\n up() {\n this.activate();\n }\n\n next() {\n this.value = !this.value;\n this.fire();\n this.render();\n }\n\n _(c, key) {\n if (c === ' ') {\n this.value = !this.value;\n } else if (c === '1') {\n this.value = true;\n } else if (c === '0') {\n this.value = false;\n } else return this.bell();\n this.render();\n }\n\n render() {\n if (this.closed) return;\n if (this.firstRender) this.out.write(cursor.hide);\n else this.out.write(clear(this.outputText, this.out.columns));\n super.render();\n\n this.outputText = [\n style.symbol(this.done, this.aborted),\n color.bold(this.msg),\n style.delimiter(this.done),\n this.value ? this.inactive : color.cyan().underline(this.inactive),\n color.gray('/'),\n this.value ? color.cyan().underline(this.active) : this.active\n ].join(' ');\n\n this.out.write(erase.line + cursor.to(0) + this.outputText);\n }\n}\n\nmodule.exports = TogglePrompt;\n",
|
|
52
|
-
"'use strict';\n\nclass DatePart {\n constructor({token, date, parts, locales}) {\n this.token = token;\n this.date = date || new Date();\n this.parts = parts || [this];\n this.locales = locales || {};\n }\n\n up() {}\n\n down() {}\n\n next() {\n const currentIdx = this.parts.indexOf(this);\n return this.parts.find((part, idx) => idx > currentIdx && part instanceof DatePart);\n }\n\n setTo(val) {}\n\n prev() {\n let parts = [].concat(this.parts).reverse();\n const currentIdx = parts.indexOf(this);\n return parts.find((part, idx) => idx > currentIdx && part instanceof DatePart);\n }\n\n toString() {\n return String(this.date);\n }\n}\n\nmodule.exports = DatePart;\n\n\n",
|
|
53
|
-
"'use strict';\n\nconst DatePart = require('./datepart');\n\nclass Meridiem extends DatePart {\n constructor(opts={}) {\n super(opts);\n }\n\n up() {\n this.date.setHours((this.date.getHours() + 12) % 24);\n }\n\n down() {\n this.up();\n }\n\n toString() {\n let meridiem = this.date.getHours() > 12 ? 'pm' : 'am';\n return /\\A/.test(this.token) ? meridiem.toUpperCase() : meridiem;\n }\n}\n\nmodule.exports = Meridiem;\n",
|
|
54
|
-
"'use strict';\n\nconst DatePart = require('./datepart');\n\nconst pos = n => {\n n = n % 10;\n return n === 1 ? 'st'\n : n === 2 ? 'nd'\n : n === 3 ? 'rd'\n : 'th';\n}\n\nclass Day extends DatePart {\n constructor(opts={}) {\n super(opts);\n }\n\n up() {\n this.date.setDate(this.date.getDate() + 1);\n }\n\n down() {\n this.date.setDate(this.date.getDate() - 1);\n }\n\n setTo(val) {\n this.date.setDate(parseInt(val.substr(-2)));\n }\n\n toString() {\n let date = this.date.getDate();\n let day = this.date.getDay();\n return this.token === 'DD' ? String(date).padStart(2, '0')\n : this.token === 'Do' ? date + pos(date)\n : this.token === 'd' ? day + 1\n : this.token === 'ddd' ? this.locales.weekdaysShort[day]\n : this.token === 'dddd' ? this.locales.weekdays[day]\n : date;\n }\n}\n\nmodule.exports = Day;\n",
|
|
55
|
-
"'use strict';\n\nconst DatePart = require('./datepart');\n\nclass Hours extends DatePart {\n constructor(opts={}) {\n super(opts);\n }\n\n up() {\n this.date.setHours(this.date.getHours() + 1);\n }\n\n down() {\n this.date.setHours(this.date.getHours() - 1);\n }\n\n setTo(val) {\n this.date.setHours(parseInt(val.substr(-2)));\n }\n\n toString() {\n let hours = this.date.getHours();\n if (/h/.test(this.token))\n hours = (hours % 12) || 12;\n return this.token.length > 1 ? String(hours).padStart(2, '0') : hours;\n }\n}\n\nmodule.exports = Hours;\n",
|
|
56
|
-
"'use strict';\n\nconst DatePart = require('./datepart');\n\nclass Milliseconds extends DatePart {\n constructor(opts={}) {\n super(opts);\n }\n\n up() {\n this.date.setMilliseconds(this.date.getMilliseconds() + 1);\n }\n\n down() {\n this.date.setMilliseconds(this.date.getMilliseconds() - 1);\n }\n\n setTo(val) {\n this.date.setMilliseconds(parseInt(val.substr(-(this.token.length))));\n }\n\n toString() {\n return String(this.date.getMilliseconds()).padStart(4, '0')\n .substr(0, this.token.length);\n }\n}\n\nmodule.exports = Milliseconds;\n",
|
|
57
|
-
"'use strict';\n\nconst DatePart = require('./datepart');\n\nclass Minutes extends DatePart {\n constructor(opts={}) {\n super(opts);\n }\n\n up() {\n this.date.setMinutes(this.date.getMinutes() + 1);\n }\n\n down() {\n this.date.setMinutes(this.date.getMinutes() - 1);\n }\n\n setTo(val) {\n this.date.setMinutes(parseInt(val.substr(-2)));\n }\n\n toString() {\n let m = this.date.getMinutes();\n return this.token.length > 1 ? String(m).padStart(2, '0') : m;\n }\n}\n\nmodule.exports = Minutes;\n",
|
|
58
|
-
"'use strict';\n\nconst DatePart = require('./datepart');\n\nclass Month extends DatePart {\n constructor(opts={}) {\n super(opts);\n }\n\n up() {\n this.date.setMonth(this.date.getMonth() + 1);\n }\n\n down() {\n this.date.setMonth(this.date.getMonth() - 1);\n }\n\n setTo(val) {\n val = parseInt(val.substr(-2)) - 1;\n this.date.setMonth(val < 0 ? 0 : val);\n }\n\n toString() {\n let month = this.date.getMonth();\n let tl = this.token.length;\n return tl === 2 ? String(month + 1).padStart(2, '0')\n : tl === 3 ? this.locales.monthsShort[month]\n : tl === 4 ? this.locales.months[month]\n : String(month + 1);\n }\n}\n\nmodule.exports = Month;\n",
|
|
59
|
-
"'use strict';\n\nconst DatePart = require('./datepart');\n\nclass Seconds extends DatePart {\n constructor(opts={}) {\n super(opts);\n }\n\n up() {\n this.date.setSeconds(this.date.getSeconds() + 1);\n }\n\n down() {\n this.date.setSeconds(this.date.getSeconds() - 1);\n }\n\n setTo(val) {\n this.date.setSeconds(parseInt(val.substr(-2)));\n }\n\n toString() {\n let s = this.date.getSeconds();\n return this.token.length > 1 ? String(s).padStart(2, '0') : s;\n }\n}\n\nmodule.exports = Seconds;\n",
|
|
60
|
-
"'use strict';\n\nconst DatePart = require('./datepart');\n\nclass Year extends DatePart {\n constructor(opts={}) {\n super(opts);\n }\n\n up() {\n this.date.setFullYear(this.date.getFullYear() + 1);\n }\n\n down() {\n this.date.setFullYear(this.date.getFullYear() - 1);\n }\n\n setTo(val) {\n this.date.setFullYear(val.substr(-4));\n }\n\n toString() {\n let year = String(this.date.getFullYear()).padStart(4, '0');\n return this.token.length === 2 ? year.substr(-2) : year;\n }\n}\n\nmodule.exports = Year;\n",
|
|
61
|
-
"'use strict';\n\nmodule.exports = {\n DatePart: require('./datepart'),\n Meridiem: require('./meridiem'),\n Day: require('./day'),\n Hours: require('./hours'),\n Milliseconds: require('./milliseconds'),\n Minutes: require('./minutes'),\n Month: require('./month'),\n Seconds: require('./seconds'),\n Year: require('./year'),\n}\n",
|
|
62
|
-
"'use strict';\n\nconst color = require('kleur');\nconst Prompt = require('./prompt');\nconst { style, clear, figures } = require('../util');\nconst { erase, cursor } = require('sisteransi');\nconst { DatePart, Meridiem, Day, Hours, Milliseconds, Minutes, Month, Seconds, Year } = require('../dateparts');\n\nconst regex = /\\\\(.)|\"((?:\\\\[\"\\\\]|[^\"])+)\"|(D[Do]?|d{3,4}|d)|(M{1,4})|(YY(?:YY)?)|([aA])|([Hh]{1,2})|(m{1,2})|(s{1,2})|(S{1,4})|./g;\nconst regexGroups = {\n 1: ({token}) => token.replace(/\\\\(.)/g, '$1'),\n 2: (opts) => new Day(opts), // Day // TODO\n 3: (opts) => new Month(opts), // Month\n 4: (opts) => new Year(opts), // Year\n 5: (opts) => new Meridiem(opts), // AM/PM // TODO (special)\n 6: (opts) => new Hours(opts), // Hours\n 7: (opts) => new Minutes(opts), // Minutes\n 8: (opts) => new Seconds(opts), // Seconds\n 9: (opts) => new Milliseconds(opts), // Fractional seconds\n}\n\nconst dfltLocales = {\n months: 'January,February,March,April,May,June,July,August,September,October,November,December'.split(','),\n monthsShort: 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec'.split(','),\n weekdays: 'Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday'.split(','),\n weekdaysShort: 'Sun,Mon,Tue,Wed,Thu,Fri,Sat'.split(',')\n}\n\n\n/**\n * DatePrompt Base Element\n * @param {Object} opts Options\n * @param {String} opts.message Message\n * @param {Number} [opts.initial] Index of default value\n * @param {String} [opts.mask] The format mask\n * @param {object} [opts.locales] The date locales\n * @param {String} [opts.error] The error message shown on invalid value\n * @param {Function} [opts.validate] Function to validate the submitted value\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n */\nclass DatePrompt extends Prompt {\n constructor(opts={}) {\n super(opts);\n this.msg = opts.message;\n this.cursor = 0;\n this.typed = '';\n this.locales = Object.assign(dfltLocales, opts.locales);\n this._date = opts.initial || new Date();\n this.errorMsg = opts.error || 'Please Enter A Valid Value';\n this.validator = opts.validate || (() => true);\n this.mask = opts.mask || 'YYYY-MM-DD HH:mm:ss';\n this.clear = clear('', this.out.columns);\n this.render();\n }\n\n get value() {\n return this.date\n }\n\n get date() {\n return this._date;\n }\n\n set date(date) {\n if (date) this._date.setTime(date.getTime());\n }\n\n set mask(mask) {\n let result;\n this.parts = [];\n while(result = regex.exec(mask)) {\n let match = result.shift();\n let idx = result.findIndex(gr => gr != null);\n this.parts.push(idx in regexGroups\n ? regexGroups[idx]({ token: result[idx] || match, date: this.date, parts: this.parts, locales: this.locales })\n : result[idx] || match);\n }\n\n let parts = this.parts.reduce((arr, i) => {\n if (typeof i === 'string' && typeof arr[arr.length - 1] === 'string')\n arr[arr.length - 1] += i;\n else arr.push(i);\n return arr;\n }, []);\n\n this.parts.splice(0);\n this.parts.push(...parts);\n this.reset();\n }\n\n moveCursor(n) {\n this.typed = '';\n this.cursor = n;\n this.fire();\n }\n\n reset() {\n this.moveCursor(this.parts.findIndex(p => p instanceof DatePart));\n this.fire();\n this.render();\n }\n\n exit() {\n this.abort();\n }\n\n abort() {\n this.done = this.aborted = true;\n this.error = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n async validate() {\n let valid = await this.validator(this.value);\n if (typeof valid === 'string') {\n this.errorMsg = valid;\n valid = false;\n }\n this.error = !valid;\n }\n\n async submit() {\n await this.validate();\n if (this.error) {\n this.color = 'red';\n this.fire();\n this.render();\n return;\n }\n this.done = true;\n this.aborted = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n up() {\n this.typed = '';\n this.parts[this.cursor].up();\n this.render();\n }\n\n down() {\n this.typed = '';\n this.parts[this.cursor].down();\n this.render();\n }\n\n left() {\n let prev = this.parts[this.cursor].prev();\n if (prev == null) return this.bell();\n this.moveCursor(this.parts.indexOf(prev));\n this.render();\n }\n\n right() {\n let next = this.parts[this.cursor].next();\n if (next == null) return this.bell();\n this.moveCursor(this.parts.indexOf(next));\n this.render();\n }\n\n next() {\n let next = this.parts[this.cursor].next();\n this.moveCursor(next\n ? this.parts.indexOf(next)\n : this.parts.findIndex((part) => part instanceof DatePart));\n this.render();\n }\n\n _(c) {\n if (/\\d/.test(c)) {\n this.typed += c;\n this.parts[this.cursor].setTo(this.typed);\n this.render();\n }\n }\n\n render() {\n if (this.closed) return;\n if (this.firstRender) this.out.write(cursor.hide);\n else this.out.write(clear(this.outputText, this.out.columns));\n super.render();\n\n // Print prompt\n this.outputText = [\n style.symbol(this.done, this.aborted),\n color.bold(this.msg),\n style.delimiter(false),\n this.parts.reduce((arr, p, idx) => arr.concat(idx === this.cursor && !this.done ? color.cyan().underline(p.toString()) : p), [])\n .join('')\n ].join(' ');\n\n // Print error\n if (this.error) {\n this.outputText += this.errorMsg.split('\\n').reduce(\n (a, l, i) => a + `\\n${i ? ` ` : figures.pointerSmall} ${color.red().italic(l)}`, ``);\n }\n\n this.out.write(erase.line + cursor.to(0) + this.outputText);\n }\n}\n\nmodule.exports = DatePrompt;\n",
|
|
63
|
-
"const color = require('kleur');\nconst Prompt = require('./prompt');\nconst { cursor, erase } = require('sisteransi');\nconst { style, figures, clear, lines } = require('../util');\n\nconst isNumber = /[0-9]/;\nconst isDef = any => any !== undefined;\nconst round = (number, precision) => {\n let factor = Math.pow(10, precision);\n return Math.round(number * factor) / factor;\n}\n\n/**\n * NumberPrompt Base Element\n * @param {Object} opts Options\n * @param {String} opts.message Message\n * @param {String} [opts.style='default'] Render style\n * @param {Number} [opts.initial] Default value\n * @param {Number} [opts.max=+Infinity] Max value\n * @param {Number} [opts.min=-Infinity] Min value\n * @param {Boolean} [opts.float=false] Parse input as floats\n * @param {Number} [opts.round=2] Round floats to x decimals\n * @param {Number} [opts.increment=1] Number to increment by when using arrow-keys\n * @param {Function} [opts.validate] Validate function\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n * @param {String} [opts.error] The invalid error label\n */\nclass NumberPrompt extends Prompt {\n constructor(opts={}) {\n super(opts);\n this.transform = style.render(opts.style);\n this.msg = opts.message;\n this.initial = isDef(opts.initial) ? opts.initial : '';\n this.float = !!opts.float;\n this.round = opts.round || 2;\n this.inc = opts.increment || 1;\n this.min = isDef(opts.min) ? opts.min : -Infinity;\n this.max = isDef(opts.max) ? opts.max : Infinity;\n this.errorMsg = opts.error || `Please Enter A Valid Value`;\n this.validator = opts.validate || (() => true);\n this.color = `cyan`;\n this.value = ``;\n this.typed = ``;\n this.lastHit = 0;\n this.render();\n }\n\n set value(v) {\n if (!v && v !== 0) {\n this.placeholder = true;\n this.rendered = color.gray(this.transform.render(`${this.initial}`));\n this._value = ``;\n } else {\n this.placeholder = false;\n this.rendered = this.transform.render(`${round(v, this.round)}`);\n this._value = round(v, this.round);\n }\n this.fire();\n }\n\n get value() {\n return this._value;\n }\n\n parse(x) {\n return this.float ? parseFloat(x) : parseInt(x);\n }\n\n valid(c) {\n return c === `-` || c === `.` && this.float || isNumber.test(c)\n }\n\n reset() {\n this.typed = ``;\n this.value = ``;\n this.fire();\n this.render();\n }\n\n exit() {\n this.abort();\n }\n\n abort() {\n let x = this.value;\n this.value = x !== `` ? x : this.initial;\n this.done = this.aborted = true;\n this.error = false;\n this.fire();\n this.render();\n this.out.write(`\\n`);\n this.close();\n }\n\n async validate() {\n let valid = await this.validator(this.value);\n if (typeof valid === `string`) {\n this.errorMsg = valid;\n valid = false;\n }\n this.error = !valid;\n }\n\n async submit() {\n await this.validate();\n if (this.error) {\n this.color = `red`;\n this.fire();\n this.render();\n return;\n }\n let x = this.value;\n this.value = x !== `` ? x : this.initial;\n this.done = true;\n this.aborted = false;\n this.error = false;\n this.fire();\n this.render();\n this.out.write(`\\n`);\n this.close();\n }\n\n up() {\n this.typed = ``;\n if(this.value === '') {\n this.value = this.min - this.inc;\n }\n if (this.value >= this.max) return this.bell();\n this.value += this.inc;\n this.color = `cyan`;\n this.fire();\n this.render();\n }\n\n down() {\n this.typed = ``;\n if(this.value === '') {\n this.value = this.min + this.inc;\n }\n if (this.value <= this.min) return this.bell();\n this.value -= this.inc;\n this.color = `cyan`;\n this.fire();\n this.render();\n }\n\n delete() {\n let val = this.value.toString();\n if (val.length === 0) return this.bell();\n this.value = this.parse((val = val.slice(0, -1))) || ``;\n if (this.value !== '' && this.value < this.min) {\n this.value = this.min;\n }\n this.color = `cyan`;\n this.fire();\n this.render();\n }\n\n next() {\n this.value = this.initial;\n this.fire();\n this.render();\n }\n\n _(c, key) {\n if (!this.valid(c)) return this.bell();\n\n const now = Date.now();\n if (now - this.lastHit > 1000) this.typed = ``; // 1s elapsed\n this.typed += c;\n this.lastHit = now;\n this.color = `cyan`;\n\n if (c === `.`) return this.fire();\n\n this.value = Math.min(this.parse(this.typed), this.max);\n if (this.value > this.max) this.value = this.max;\n if (this.value < this.min) this.value = this.min;\n this.fire();\n this.render();\n }\n\n render() {\n if (this.closed) return;\n if (!this.firstRender) {\n if (this.outputError)\n this.out.write(cursor.down(lines(this.outputError, this.out.columns) - 1) + clear(this.outputError, this.out.columns));\n this.out.write(clear(this.outputText, this.out.columns));\n }\n super.render();\n this.outputError = '';\n\n // Print prompt\n this.outputText = [\n style.symbol(this.done, this.aborted),\n color.bold(this.msg),\n style.delimiter(this.done),\n !this.done || (!this.done && !this.placeholder)\n ? color[this.color]().underline(this.rendered) : this.rendered\n ].join(` `);\n\n // Print error\n if (this.error) {\n this.outputError += this.errorMsg.split(`\\n`)\n .reduce((a, l, i) => a + `\\n${i ? ` ` : figures.pointerSmall} ${color.red().italic(l)}`, ``);\n }\n\n this.out.write(erase.line + cursor.to(0) + this.outputText + cursor.save + this.outputError + cursor.restore);\n }\n}\n\nmodule.exports = NumberPrompt;\n",
|
|
64
|
-
"'use strict';\n\nconst color = require('kleur');\nconst { cursor } = require('sisteransi');\nconst Prompt = require('./prompt');\nconst { clear, figures, style, wrap, entriesToDisplay } = require('../util');\n\n/**\n * MultiselectPrompt Base Element\n * @param {Object} opts Options\n * @param {String} opts.message Message\n * @param {Array} opts.choices Array of choice objects\n * @param {String} [opts.hint] Hint to display\n * @param {String} [opts.warn] Hint shown for disabled choices\n * @param {Number} [opts.max] Max choices\n * @param {Number} [opts.cursor=0] Cursor start position\n * @param {Number} [opts.optionsPerPage=10] Max options to display at once\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n */\nclass MultiselectPrompt extends Prompt {\n constructor(opts={}) {\n super(opts);\n this.msg = opts.message;\n this.cursor = opts.cursor || 0;\n this.scrollIndex = opts.cursor || 0;\n this.hint = opts.hint || '';\n this.warn = opts.warn || '- This option is disabled -';\n this.minSelected = opts.min;\n this.showMinError = false;\n this.maxChoices = opts.max;\n this.instructions = opts.instructions;\n this.optionsPerPage = opts.optionsPerPage || 10;\n this.value = opts.choices.map((ch, idx) => {\n if (typeof ch === 'string')\n ch = {title: ch, value: idx};\n return {\n title: ch && (ch.title || ch.value || ch),\n description: ch && ch.description,\n value: ch && (ch.value === undefined ? idx : ch.value),\n selected: ch && ch.selected,\n disabled: ch && ch.disabled\n };\n });\n this.clear = clear('', this.out.columns);\n if (!opts.overrideRender) {\n this.render();\n }\n }\n\n reset() {\n this.value.map(v => !v.selected);\n this.cursor = 0;\n this.fire();\n this.render();\n }\n\n selected() {\n return this.value.filter(v => v.selected);\n }\n\n exit() {\n this.abort();\n }\n\n abort() {\n this.done = this.aborted = true;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n submit() {\n const selected = this.value\n .filter(e => e.selected);\n if (this.minSelected && selected.length < this.minSelected) {\n this.showMinError = true;\n this.render();\n } else {\n this.done = true;\n this.aborted = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n }\n\n first() {\n this.cursor = 0;\n this.render();\n }\n\n last() {\n this.cursor = this.value.length - 1;\n this.render();\n }\n next() {\n this.cursor = (this.cursor + 1) % this.value.length;\n this.render();\n }\n\n up() {\n if (this.cursor === 0) {\n this.cursor = this.value.length - 1;\n } else {\n this.cursor--;\n }\n this.render();\n }\n\n down() {\n if (this.cursor === this.value.length - 1) {\n this.cursor = 0;\n } else {\n this.cursor++;\n }\n this.render();\n }\n\n left() {\n this.value[this.cursor].selected = false;\n this.render();\n }\n\n right() {\n if (this.value.filter(e => e.selected).length >= this.maxChoices) return this.bell();\n this.value[this.cursor].selected = true;\n this.render();\n }\n\n handleSpaceToggle() {\n const v = this.value[this.cursor];\n\n if (v.selected) {\n v.selected = false;\n this.render();\n } else if (v.disabled || this.value.filter(e => e.selected).length >= this.maxChoices) {\n return this.bell();\n } else {\n v.selected = true;\n this.render();\n }\n }\n\n toggleAll() {\n if (this.maxChoices !== undefined || this.value[this.cursor].disabled) {\n return this.bell();\n }\n\n const newSelected = !this.value[this.cursor].selected;\n this.value.filter(v => !v.disabled).forEach(v => v.selected = newSelected);\n this.render();\n }\n\n _(c, key) {\n if (c === ' ') {\n this.handleSpaceToggle();\n } else if (c === 'a') {\n this.toggleAll();\n } else {\n return this.bell();\n }\n }\n\n renderInstructions() {\n if (this.instructions === undefined || this.instructions) {\n if (typeof this.instructions === 'string') {\n return this.instructions;\n }\n return '\\nInstructions:\\n'\n + ` ${figures.arrowUp}/${figures.arrowDown}: Highlight option\\n`\n + ` ${figures.arrowLeft}/${figures.arrowRight}/[space]: Toggle selection\\n`\n + (this.maxChoices === undefined ? ` a: Toggle all\\n` : '')\n + ` enter/return: Complete answer`;\n }\n return '';\n }\n\n renderOption(cursor, v, i, arrowIndicator) {\n const prefix = (v.selected ? color.green(figures.radioOn) : figures.radioOff) + ' ' + arrowIndicator + ' ';\n let title, desc;\n\n if (v.disabled) {\n title = cursor === i ? color.gray().underline(v.title) : color.strikethrough().gray(v.title);\n } else {\n title = cursor === i ? color.cyan().underline(v.title) : v.title;\n if (cursor === i && v.description) {\n desc = ` - ${v.description}`;\n if (prefix.length + title.length + desc.length >= this.out.columns\n || v.description.split(/\\r?\\n/).length > 1) {\n desc = '\\n' + wrap(v.description, { margin: prefix.length, width: this.out.columns });\n }\n }\n }\n\n return prefix + title + color.gray(desc || '');\n }\n\n // shared with autocompleteMultiselect\n paginateOptions(options) {\n if (options.length === 0) {\n return color.red('No matches for this query.');\n }\n\n let { startIndex, endIndex } = entriesToDisplay(this.cursor, options.length, this.optionsPerPage);\n let prefix, styledOptions = [];\n\n for (let i = startIndex; i < endIndex; i++) {\n if (i === startIndex && startIndex > 0) {\n prefix = figures.arrowUp;\n } else if (i === endIndex - 1 && endIndex < options.length) {\n prefix = figures.arrowDown;\n } else {\n prefix = ' ';\n }\n styledOptions.push(this.renderOption(this.cursor, options[i], i, prefix));\n }\n\n return '\\n' + styledOptions.join('\\n');\n }\n\n // shared with autocomleteMultiselect\n renderOptions(options) {\n if (!this.done) {\n return this.paginateOptions(options);\n }\n return '';\n }\n\n renderDoneOrInstructions() {\n if (this.done) {\n return this.value\n .filter(e => e.selected)\n .map(v => v.title)\n .join(', ');\n }\n\n const output = [color.gray(this.hint), this.renderInstructions()];\n\n if (this.value[this.cursor].disabled) {\n output.push(color.yellow(this.warn));\n }\n return output.join(' ');\n }\n\n render() {\n if (this.closed) return;\n if (this.firstRender) this.out.write(cursor.hide);\n super.render();\n\n // print prompt\n let prompt = [\n style.symbol(this.done, this.aborted),\n color.bold(this.msg),\n style.delimiter(false),\n this.renderDoneOrInstructions()\n ].join(' ');\n if (this.showMinError) {\n prompt += color.red(`You must select a minimum of ${this.minSelected} choices.`);\n this.showMinError = false;\n }\n prompt += this.renderOptions(this.value);\n\n this.out.write(this.clear + prompt);\n this.clear = clear(prompt, this.out.columns);\n }\n}\n\nmodule.exports = MultiselectPrompt;\n",
|
|
65
|
-
"'use strict';\n\nconst color = require('kleur');\nconst Prompt = require('./prompt');\nconst { erase, cursor } = require('sisteransi');\nconst { style, clear, figures, wrap, entriesToDisplay } = require('../util');\n\nconst getVal = (arr, i) => arr[i] && (arr[i].value || arr[i].title || arr[i]);\nconst getTitle = (arr, i) => arr[i] && (arr[i].title || arr[i].value || arr[i]);\nconst getIndex = (arr, valOrTitle) => {\n const index = arr.findIndex(el => el.value === valOrTitle || el.title === valOrTitle);\n return index > -1 ? index : undefined;\n};\n\n/**\n * TextPrompt Base Element\n * @param {Object} opts Options\n * @param {String} opts.message Message\n * @param {Array} opts.choices Array of auto-complete choices objects\n * @param {Function} [opts.suggest] Filter function. Defaults to sort by title\n * @param {Number} [opts.limit=10] Max number of results to show\n * @param {Number} [opts.cursor=0] Cursor start position\n * @param {String} [opts.style='default'] Render style\n * @param {String} [opts.fallback] Fallback message - initial to default value\n * @param {String} [opts.initial] Index of the default value\n * @param {Boolean} [opts.clearFirst] The first ESCAPE keypress will clear the input\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n * @param {String} [opts.noMatches] The no matches found label\n */\nclass AutocompletePrompt extends Prompt {\n constructor(opts={}) {\n super(opts);\n this.msg = opts.message;\n this.suggest = opts.suggest;\n this.choices = opts.choices;\n this.initial = typeof opts.initial === 'number'\n ? opts.initial\n : getIndex(opts.choices, opts.initial);\n this.select = this.initial || opts.cursor || 0;\n this.i18n = { noMatches: opts.noMatches || 'no matches found' };\n this.fallback = opts.fallback || this.initial;\n this.clearFirst = opts.clearFirst || false;\n this.suggestions = [];\n this.input = '';\n this.limit = opts.limit || 10;\n this.cursor = 0;\n this.transform = style.render(opts.style);\n this.scale = this.transform.scale;\n this.render = this.render.bind(this);\n this.complete = this.complete.bind(this);\n this.clear = clear('', this.out.columns);\n this.complete(this.render);\n this.render();\n }\n\n set fallback(fb) {\n this._fb = Number.isSafeInteger(parseInt(fb)) ? parseInt(fb) : fb;\n }\n\n get fallback() {\n let choice;\n if (typeof this._fb === 'number')\n choice = this.choices[this._fb];\n else if (typeof this._fb === 'string')\n choice = { title: this._fb };\n return choice || this._fb || { title: this.i18n.noMatches };\n }\n\n moveSelect(i) {\n this.select = i;\n if (this.suggestions.length > 0)\n this.value = getVal(this.suggestions, i);\n else this.value = this.fallback.value;\n this.fire();\n }\n\n async complete(cb) {\n const p = (this.completing = this.suggest(this.input, this.choices));\n const suggestions = await p;\n\n if (this.completing !== p) return;\n this.suggestions = suggestions\n .map((s, i, arr) => ({ title: getTitle(arr, i), value: getVal(arr, i), description: s.description }));\n this.completing = false;\n const l = Math.max(suggestions.length - 1, 0);\n this.moveSelect(Math.min(l, this.select));\n\n cb && cb();\n }\n\n reset() {\n this.input = '';\n this.complete(() => {\n this.moveSelect(this.initial !== void 0 ? this.initial : 0);\n this.render();\n });\n this.render();\n }\n\n exit() {\n if (this.clearFirst && this.input.length > 0) {\n this.reset();\n } else {\n this.done = this.exited = true; \n this.aborted = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n }\n\n abort() {\n this.done = this.aborted = true;\n this.exited = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n submit() {\n this.done = true;\n this.aborted = this.exited = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n _(c, key) {\n let s1 = this.input.slice(0, this.cursor);\n let s2 = this.input.slice(this.cursor);\n this.input = `${s1}${c}${s2}`;\n this.cursor = s1.length+1;\n this.complete(this.render);\n this.render();\n }\n\n delete() {\n if (this.cursor === 0) return this.bell();\n let s1 = this.input.slice(0, this.cursor-1);\n let s2 = this.input.slice(this.cursor);\n this.input = `${s1}${s2}`;\n this.complete(this.render);\n this.cursor = this.cursor-1;\n this.render();\n }\n\n deleteForward() {\n if(this.cursor*this.scale >= this.rendered.length) return this.bell();\n let s1 = this.input.slice(0, this.cursor);\n let s2 = this.input.slice(this.cursor+1);\n this.input = `${s1}${s2}`;\n this.complete(this.render);\n this.render();\n }\n\n first() {\n this.moveSelect(0);\n this.render();\n }\n\n last() {\n this.moveSelect(this.suggestions.length - 1);\n this.render();\n }\n\n up() {\n if (this.select === 0) {\n this.moveSelect(this.suggestions.length - 1);\n } else {\n this.moveSelect(this.select - 1);\n }\n this.render();\n }\n\n down() {\n if (this.select === this.suggestions.length - 1) {\n this.moveSelect(0);\n } else {\n this.moveSelect(this.select + 1);\n }\n this.render();\n }\n\n next() {\n if (this.select === this.suggestions.length - 1) {\n this.moveSelect(0);\n } else this.moveSelect(this.select + 1);\n this.render();\n }\n\n nextPage() {\n this.moveSelect(Math.min(this.select + this.limit, this.suggestions.length - 1));\n this.render();\n }\n\n prevPage() {\n this.moveSelect(Math.max(this.select - this.limit, 0));\n this.render();\n }\n\n left() {\n if (this.cursor <= 0) return this.bell();\n this.cursor = this.cursor-1;\n this.render();\n }\n\n right() {\n if (this.cursor*this.scale >= this.rendered.length) return this.bell();\n this.cursor = this.cursor+1;\n this.render();\n }\n\n renderOption(v, hovered, isStart, isEnd) {\n let desc;\n let prefix = isStart ? figures.arrowUp : isEnd ? figures.arrowDown : ' ';\n let title = hovered ? color.cyan().underline(v.title) : v.title;\n prefix = (hovered ? color.cyan(figures.pointer) + ' ' : ' ') + prefix;\n if (v.description) {\n desc = ` - ${v.description}`;\n if (prefix.length + title.length + desc.length >= this.out.columns\n || v.description.split(/\\r?\\n/).length > 1) {\n desc = '\\n' + wrap(v.description, { margin: 3, width: this.out.columns })\n }\n }\n return prefix + ' ' + title + color.gray(desc || '');\n }\n\n render() {\n if (this.closed) return;\n if (this.firstRender) this.out.write(cursor.hide);\n else this.out.write(clear(this.outputText, this.out.columns));\n super.render();\n\n let { startIndex, endIndex } = entriesToDisplay(this.select, this.choices.length, this.limit);\n\n this.outputText = [\n style.symbol(this.done, this.aborted, this.exited),\n color.bold(this.msg),\n style.delimiter(this.completing),\n this.done && this.suggestions[this.select]\n ? this.suggestions[this.select].title\n : this.rendered = this.transform.render(this.input)\n ].join(' ');\n\n if (!this.done) {\n const suggestions = this.suggestions\n .slice(startIndex, endIndex)\n .map((item, i) => this.renderOption(item,\n this.select === i + startIndex,\n i === 0 && startIndex > 0,\n i + startIndex === endIndex - 1 && endIndex < this.choices.length))\n .join('\\n');\n this.outputText += `\\n` + (suggestions || color.gray(this.fallback.title));\n }\n\n this.out.write(erase.line + cursor.to(0) + this.outputText);\n }\n}\n\nmodule.exports = AutocompletePrompt;\n",
|
|
66
|
-
"'use strict';\n\nconst color = require('kleur');\nconst { cursor } = require('sisteransi');\nconst MultiselectPrompt = require('./multiselect');\nconst { clear, style, figures } = require('../util');\n/**\n * MultiselectPrompt Base Element\n * @param {Object} opts Options\n * @param {String} opts.message Message\n * @param {Array} opts.choices Array of choice objects\n * @param {String} [opts.hint] Hint to display\n * @param {String} [opts.warn] Hint shown for disabled choices\n * @param {Number} [opts.max] Max choices\n * @param {Number} [opts.cursor=0] Cursor start position\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n */\nclass AutocompleteMultiselectPrompt extends MultiselectPrompt {\n constructor(opts={}) {\n opts.overrideRender = true;\n super(opts);\n this.inputValue = '';\n this.clear = clear('', this.out.columns);\n this.filteredOptions = this.value;\n this.render();\n }\n\n last() {\n this.cursor = this.filteredOptions.length - 1;\n this.render();\n }\n next() {\n this.cursor = (this.cursor + 1) % this.filteredOptions.length;\n this.render();\n }\n\n up() {\n if (this.cursor === 0) {\n this.cursor = this.filteredOptions.length - 1;\n } else {\n this.cursor--;\n }\n this.render();\n }\n\n down() {\n if (this.cursor === this.filteredOptions.length - 1) {\n this.cursor = 0;\n } else {\n this.cursor++;\n }\n this.render();\n }\n\n left() {\n this.filteredOptions[this.cursor].selected = false;\n this.render();\n }\n\n right() {\n if (this.value.filter(e => e.selected).length >= this.maxChoices) return this.bell();\n this.filteredOptions[this.cursor].selected = true;\n this.render();\n }\n\n delete() {\n if (this.inputValue.length) {\n this.inputValue = this.inputValue.substr(0, this.inputValue.length - 1);\n this.updateFilteredOptions();\n }\n }\n\n updateFilteredOptions() {\n const currentHighlight = this.filteredOptions[this.cursor];\n this.filteredOptions = this.value\n .filter(v => {\n if (this.inputValue) {\n if (typeof v.title === 'string') {\n if (v.title.toLowerCase().includes(this.inputValue.toLowerCase())) {\n return true;\n }\n }\n if (typeof v.value === 'string') {\n if (v.value.toLowerCase().includes(this.inputValue.toLowerCase())) {\n return true;\n }\n }\n return false;\n }\n return true;\n });\n const newHighlightIndex = this.filteredOptions.findIndex(v => v === currentHighlight)\n this.cursor = newHighlightIndex < 0 ? 0 : newHighlightIndex;\n this.render();\n }\n\n handleSpaceToggle() {\n const v = this.filteredOptions[this.cursor];\n\n if (v.selected) {\n v.selected = false;\n this.render();\n } else if (v.disabled || this.value.filter(e => e.selected).length >= this.maxChoices) {\n return this.bell();\n } else {\n v.selected = true;\n this.render();\n }\n }\n\n handleInputChange(c) {\n this.inputValue = this.inputValue + c;\n this.updateFilteredOptions();\n }\n\n _(c, key) {\n if (c === ' ') {\n this.handleSpaceToggle();\n } else {\n this.handleInputChange(c);\n }\n }\n\n renderInstructions() {\n if (this.instructions === undefined || this.instructions) {\n if (typeof this.instructions === 'string') {\n return this.instructions;\n }\n return `\nInstructions:\n ${figures.arrowUp}/${figures.arrowDown}: Highlight option\n ${figures.arrowLeft}/${figures.arrowRight}/[space]: Toggle selection\n [a,b,c]/delete: Filter choices\n enter/return: Complete answer\n`;\n }\n return '';\n }\n\n renderCurrentInput() {\n return `\nFiltered results for: ${this.inputValue ? this.inputValue : color.gray('Enter something to filter')}\\n`;\n }\n\n renderOption(cursor, v, i) {\n let title;\n if (v.disabled) title = cursor === i ? color.gray().underline(v.title) : color.strikethrough().gray(v.title);\n else title = cursor === i ? color.cyan().underline(v.title) : v.title;\n return (v.selected ? color.green(figures.radioOn) : figures.radioOff) + ' ' + title\n }\n\n renderDoneOrInstructions() {\n if (this.done) {\n return this.value\n .filter(e => e.selected)\n .map(v => v.title)\n .join(', ');\n }\n\n const output = [color.gray(this.hint), this.renderInstructions(), this.renderCurrentInput()];\n\n if (this.filteredOptions.length && this.filteredOptions[this.cursor].disabled) {\n output.push(color.yellow(this.warn));\n }\n return output.join(' ');\n }\n\n render() {\n if (this.closed) return;\n if (this.firstRender) this.out.write(cursor.hide);\n super.render();\n\n // print prompt\n\n let prompt = [\n style.symbol(this.done, this.aborted),\n color.bold(this.msg),\n style.delimiter(false),\n this.renderDoneOrInstructions()\n ].join(' ');\n\n if (this.showMinError) {\n prompt += color.red(`You must select a minimum of ${this.minSelected} choices.`);\n this.showMinError = false;\n }\n prompt += this.renderOptions(this.filteredOptions);\n\n this.out.write(this.clear + prompt);\n this.clear = clear(prompt, this.out.columns);\n }\n}\n\nmodule.exports = AutocompleteMultiselectPrompt;\n",
|
|
67
|
-
"const color = require('kleur');\nconst Prompt = require('./prompt');\nconst { style, clear } = require('../util');\nconst { erase, cursor } = require('sisteransi');\n\n/**\n * ConfirmPrompt Base Element\n * @param {Object} opts Options\n * @param {String} opts.message Message\n * @param {Boolean} [opts.initial] Default value (true/false)\n * @param {Stream} [opts.stdin] The Readable stream to listen to\n * @param {Stream} [opts.stdout] The Writable stream to write readline data to\n * @param {String} [opts.yes] The \"Yes\" label\n * @param {String} [opts.yesOption] The \"Yes\" option when choosing between yes/no\n * @param {String} [opts.no] The \"No\" label\n * @param {String} [opts.noOption] The \"No\" option when choosing between yes/no\n */\nclass ConfirmPrompt extends Prompt {\n constructor(opts={}) {\n super(opts);\n this.msg = opts.message;\n this.value = opts.initial;\n this.initialValue = !!opts.initial;\n this.yesMsg = opts.yes || 'yes';\n this.yesOption = opts.yesOption || '(Y/n)';\n this.noMsg = opts.no || 'no';\n this.noOption = opts.noOption || '(y/N)';\n this.render();\n }\n\n reset() {\n this.value = this.initialValue;\n this.fire();\n this.render();\n }\n\n exit() {\n this.abort();\n }\n\n abort() {\n this.done = this.aborted = true;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n submit() {\n this.value = this.value || false;\n this.done = true;\n this.aborted = false;\n this.fire();\n this.render();\n this.out.write('\\n');\n this.close();\n }\n\n _(c, key) {\n if (c.toLowerCase() === 'y') {\n this.value = true;\n return this.submit();\n }\n if (c.toLowerCase() === 'n') {\n this.value = false;\n return this.submit();\n }\n return this.bell();\n }\n\n render() {\n if (this.closed) return;\n if (this.firstRender) this.out.write(cursor.hide);\n else this.out.write(clear(this.outputText, this.out.columns));\n super.render();\n\n this.outputText = [\n style.symbol(this.done, this.aborted),\n color.bold(this.msg),\n style.delimiter(this.done),\n this.done ? (this.value ? this.yesMsg : this.noMsg)\n : color.gray(this.initialValue ? this.yesOption : this.noOption)\n ].join(' ');\n\n this.out.write(erase.line + cursor.to(0) + this.outputText);\n }\n}\n\nmodule.exports = ConfirmPrompt;\n",
|
|
68
|
-
"'use strict';\n\nmodule.exports = {\n TextPrompt: require('./text'),\n SelectPrompt: require('./select'),\n TogglePrompt: require('./toggle'),\n DatePrompt: require('./date'),\n NumberPrompt: require('./number'),\n MultiselectPrompt: require('./multiselect'),\n AutocompletePrompt: require('./autocomplete'),\n AutocompleteMultiselectPrompt: require('./autocompleteMultiselect'),\n ConfirmPrompt: require('./confirm')\n};\n",
|
|
69
|
-
"'use strict';\nconst $ = exports;\nconst el = require('./elements');\nconst noop = v => v;\n\nfunction toPrompt(type, args, opts={}) {\n return new Promise((res, rej) => {\n const p = new el[type](args);\n const onAbort = opts.onAbort || noop;\n const onSubmit = opts.onSubmit || noop;\n const onExit = opts.onExit || noop;\n p.on('state', args.onState || noop);\n p.on('submit', x => res(onSubmit(x)));\n p.on('exit', x => res(onExit(x)));\n p.on('abort', x => rej(onAbort(x)));\n });\n}\n\n/**\n * Text prompt\n * @param {string} args.message Prompt message to display\n * @param {string} [args.initial] Default string value\n * @param {string} [args.style=\"default\"] Render style ('default', 'password', 'invisible')\n * @param {function} [args.onState] On state change callback\n * @param {function} [args.validate] Function to validate user input\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n$.text = args => toPrompt('TextPrompt', args);\n\n/**\n * Password prompt with masked input\n * @param {string} args.message Prompt message to display\n * @param {string} [args.initial] Default string value\n * @param {function} [args.onState] On state change callback\n * @param {function} [args.validate] Function to validate user input\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n$.password = args => {\n args.style = 'password';\n return $.text(args);\n};\n\n/**\n * Prompt where input is invisible, like sudo\n * @param {string} args.message Prompt message to display\n * @param {string} [args.initial] Default string value\n * @param {function} [args.onState] On state change callback\n * @param {function} [args.validate] Function to validate user input\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n$.invisible = args => {\n args.style = 'invisible';\n return $.text(args);\n};\n\n/**\n * Number prompt\n * @param {string} args.message Prompt message to display\n * @param {number} args.initial Default number value\n * @param {function} [args.onState] On state change callback\n * @param {number} [args.max] Max value\n * @param {number} [args.min] Min value\n * @param {string} [args.style=\"default\"] Render style ('default', 'password', 'invisible')\n * @param {Boolean} [opts.float=false] Parse input as floats\n * @param {Number} [opts.round=2] Round floats to x decimals\n * @param {Number} [opts.increment=1] Number to increment by when using arrow-keys\n * @param {function} [args.validate] Function to validate user input\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n$.number = args => toPrompt('NumberPrompt', args);\n\n/**\n * Date prompt\n * @param {string} args.message Prompt message to display\n * @param {number} args.initial Default number value\n * @param {function} [args.onState] On state change callback\n * @param {number} [args.max] Max value\n * @param {number} [args.min] Min value\n * @param {string} [args.style=\"default\"] Render style ('default', 'password', 'invisible')\n * @param {Boolean} [opts.float=false] Parse input as floats\n * @param {Number} [opts.round=2] Round floats to x decimals\n * @param {Number} [opts.increment=1] Number to increment by when using arrow-keys\n * @param {function} [args.validate] Function to validate user input\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n$.date = args => toPrompt('DatePrompt', args);\n\n/**\n * Classic yes/no prompt\n * @param {string} args.message Prompt message to display\n * @param {boolean} [args.initial=false] Default value\n * @param {function} [args.onState] On state change callback\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n$.confirm = args => toPrompt('ConfirmPrompt', args);\n\n/**\n * List prompt, split intput string by `seperator`\n * @param {string} args.message Prompt message to display\n * @param {string} [args.initial] Default string value\n * @param {string} [args.style=\"default\"] Render style ('default', 'password', 'invisible')\n * @param {string} [args.separator] String separator\n * @param {function} [args.onState] On state change callback\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input, in form of an `Array`\n */\n$.list = args => {\n const sep = args.separator || ',';\n return toPrompt('TextPrompt', args, {\n onSubmit: str => str.split(sep).map(s => s.trim())\n });\n};\n\n/**\n * Toggle/switch prompt\n * @param {string} args.message Prompt message to display\n * @param {boolean} [args.initial=false] Default value\n * @param {string} [args.active=\"on\"] Text for `active` state\n * @param {string} [args.inactive=\"off\"] Text for `inactive` state\n * @param {function} [args.onState] On state change callback\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n$.toggle = args => toPrompt('TogglePrompt', args);\n\n/**\n * Interactive select prompt\n * @param {string} args.message Prompt message to display\n * @param {Array} args.choices Array of choices objects `[{ title, value }, ...]`\n * @param {number} [args.initial] Index of default value\n * @param {String} [args.hint] Hint to display\n * @param {function} [args.onState] On state change callback\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n$.select = args => toPrompt('SelectPrompt', args);\n\n/**\n * Interactive multi-select / autocompleteMultiselect prompt\n * @param {string} args.message Prompt message to display\n * @param {Array} args.choices Array of choices objects `[{ title, value, [selected] }, ...]`\n * @param {number} [args.max] Max select\n * @param {string} [args.hint] Hint to display user\n * @param {Number} [args.cursor=0] Cursor start position\n * @param {function} [args.onState] On state change callback\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n$.multiselect = args => {\n args.choices = [].concat(args.choices || []);\n const toSelected = items => items.filter(item => item.selected).map(item => item.value);\n return toPrompt('MultiselectPrompt', args, {\n onAbort: toSelected,\n onSubmit: toSelected\n });\n};\n\n$.autocompleteMultiselect = args => {\n args.choices = [].concat(args.choices || []);\n const toSelected = items => items.filter(item => item.selected).map(item => item.value);\n return toPrompt('AutocompleteMultiselectPrompt', args, {\n onAbort: toSelected,\n onSubmit: toSelected\n });\n};\n\nconst byTitle = (input, choices) => Promise.resolve(\n choices.filter(item => item.title.slice(0, input.length).toLowerCase() === input.toLowerCase())\n);\n\n/**\n * Interactive auto-complete prompt\n * @param {string} args.message Prompt message to display\n * @param {Array} args.choices Array of auto-complete choices objects `[{ title, value }, ...]`\n * @param {Function} [args.suggest] Function to filter results based on user input. Defaults to sort by `title`\n * @param {number} [args.limit=10] Max number of results to show\n * @param {string} [args.style=\"default\"] Render style ('default', 'password', 'invisible')\n * @param {String} [args.initial] Index of the default value\n * @param {boolean} [opts.clearFirst] The first ESCAPE keypress will clear the input\n * @param {String} [args.fallback] Fallback message - defaults to initial value\n * @param {function} [args.onState] On state change callback\n * @param {Stream} [args.stdin] The Readable stream to listen to\n * @param {Stream} [args.stdout] The Writable stream to write readline data to\n * @returns {Promise} Promise with user input\n */\n$.autocomplete = args => {\n args.suggest = args.suggest || byTitle;\n args.choices = [].concat(args.choices || []);\n return toPrompt('AutocompletePrompt', args);\n};\n",
|
|
70
|
-
"'use strict';\n\nconst prompts = require('./prompts');\n\nconst passOn = ['suggest', 'format', 'onState', 'validate', 'onRender', 'type'];\nconst noop = () => {};\n\n/**\n * Prompt for a series of questions\n * @param {Array|Object} questions Single question object or Array of question objects\n * @param {Function} [onSubmit] Callback function called on prompt submit\n * @param {Function} [onCancel] Callback function called on cancel/abort\n * @returns {Object} Object with values from user input\n */\nasync function prompt(questions=[], { onSubmit=noop, onCancel=noop }={}) {\n const answers = {};\n const override = prompt._override || {};\n questions = [].concat(questions);\n let answer, question, quit, name, type, lastPrompt;\n\n const getFormattedAnswer = async (question, answer, skipValidation = false) => {\n if (!skipValidation && question.validate && question.validate(answer) !== true) {\n return;\n }\n return question.format ? await question.format(answer, answers) : answer\n };\n\n for (question of questions) {\n ({ name, type } = question);\n\n // evaluate type first and skip if type is a falsy value\n if (typeof type === 'function') {\n type = await type(answer, { ...answers }, question)\n question['type'] = type\n }\n if (!type) continue;\n\n // if property is a function, invoke it unless it's a special function\n for (let key in question) {\n if (passOn.includes(key)) continue;\n let value = question[key];\n question[key] = typeof value === 'function' ? await value(answer, { ...answers }, lastPrompt) : value;\n }\n\n lastPrompt = question;\n\n if (typeof question.message !== 'string') {\n throw new Error('prompt message is required');\n }\n\n // update vars in case they changed\n ({ name, type } = question);\n\n if (prompts[type] === void 0) {\n throw new Error(`prompt type (${type}) is not defined`);\n }\n\n if (override[question.name] !== undefined) {\n answer = await getFormattedAnswer(question, override[question.name]);\n if (answer !== undefined) {\n answers[name] = answer;\n continue;\n }\n }\n\n try {\n // Get the injected answer if there is one or prompt the user\n answer = prompt._injected ? getInjectedAnswer(prompt._injected, question.initial) : await prompts[type](question);\n answers[name] = answer = await getFormattedAnswer(question, answer, true);\n quit = await onSubmit(question, answer, answers);\n } catch (err) {\n quit = !(await onCancel(question, answers));\n }\n\n if (quit) return answers;\n }\n\n return answers;\n}\n\nfunction getInjectedAnswer(injected, deafultValue) {\n const answer = injected.shift();\n if (answer instanceof Error) {\n throw answer;\n }\n\n return (answer === undefined) ? deafultValue : answer;\n}\n\nfunction inject(answers) {\n prompt._injected = (prompt._injected || []).concat(answers);\n}\n\nfunction override(answers) {\n prompt._override = Object.assign({}, answers);\n}\n\nmodule.exports = Object.assign(prompt, { prompt, prompts, inject, override });\n",
|
|
71
|
-
"function isNodeLT(tar) {\n tar = (Array.isArray(tar) ? tar : tar.split('.')).map(Number);\n let i=0, src=process.versions.node.split('.').map(Number);\n for (; i < tar.length; i++) {\n if (src[i] > tar[i]) return false;\n if (tar[i] > src[i]) return true;\n }\n return false;\n}\n\nmodule.exports =\n isNodeLT('8.6.0')\n ? require('./dist/index.js')\n : require('./lib/index.js');\n",
|
|
72
|
-
"'use strict';\n\nconst spinners = Object.assign({}, require('./spinners.json')); // eslint-disable-line import/extensions\n\nconst spinnersList = Object.keys(spinners);\n\nObject.defineProperty(spinners, 'random', {\n\tget() {\n\t\tconst randomIndex = Math.floor(Math.random() * spinnersList.length);\n\t\tconst spinnerName = spinnersList[randomIndex];\n\t\treturn spinners[spinnerName];\n\t}\n});\n\nmodule.exports = spinners;\n",
|
|
73
|
-
"// src/detect.ts\nimport process from \"process\";\nimport { detect } from \"package-manager-detector/detect\";\nasync function detectPackageManager(cwd = process.cwd()) {\n const result = await detect({\n cwd,\n onUnknown(packageManager) {\n console.warn(\"[@antfu/install-pkg] Unknown packageManager:\", packageManager);\n return void 0;\n }\n });\n return result?.agent || null;\n}\n\n// src/install.ts\nimport { existsSync } from \"fs\";\nimport process2 from \"process\";\nimport { resolve } from \"path\";\nimport { x } from \"tinyexec\";\nasync function installPackage(names, options = {}) {\n const detectedAgent = options.packageManager || await detectPackageManager(options.cwd) || \"npm\";\n const [agent] = detectedAgent.split(\"@\");\n if (!Array.isArray(names))\n names = [names];\n const args = options.additionalArgs || [];\n if (options.preferOffline) {\n if (detectedAgent === \"yarn@berry\")\n args.unshift(\"--cached\");\n else\n args.unshift(\"--prefer-offline\");\n }\n if (agent === \"pnpm\" && existsSync(resolve(options.cwd ?? process2.cwd(), \"pnpm-workspace.yaml\")))\n args.unshift(\"-w\");\n return x(\n agent,\n [\n agent === \"yarn\" ? \"add\" : \"install\",\n options.dev ? \"-D\" : \"\",\n ...args,\n ...names\n ].filter(Boolean),\n {\n nodeOptions: {\n stdio: options.silent ? \"ignore\" : \"inherit\",\n cwd: options.cwd\n },\n throwOnError: true\n }\n );\n}\nexport {\n detectPackageManager,\n installPackage\n};\n",
|
|
74
|
-
"import fs from 'node:fs';\nimport fsPromises from 'node:fs/promises';\nimport path from 'node:path';\nimport process from 'node:process';\nimport { LOCKS, AGENTS } from './constants.mjs';\n\nasync function detect(options = {}) {\n const { cwd, onUnknown } = options;\n for (const directory of lookup(cwd)) {\n for (const lock of Object.keys(LOCKS)) {\n if (await fileExists(path.join(directory, lock))) {\n const name = LOCKS[lock];\n const result2 = await parsePackageJson(path.join(directory, \"package.json\"), onUnknown);\n if (result2)\n return result2;\n else\n return { name, agent: name };\n }\n }\n const result = await parsePackageJson(path.join(directory, \"package.json\"), onUnknown);\n if (result)\n return result;\n }\n return null;\n}\nfunction detectSync(options = {}) {\n const { cwd, onUnknown } = options;\n for (const directory of lookup(cwd)) {\n for (const lock of Object.keys(LOCKS)) {\n if (fileExistsSync(path.join(directory, lock))) {\n const name = LOCKS[lock];\n const result2 = parsePackageJsonSync(path.join(directory, \"package.json\"), onUnknown);\n if (result2)\n return result2;\n else\n return { name, agent: name };\n }\n }\n const result = parsePackageJsonSync(path.join(directory, \"package.json\"), onUnknown);\n if (result)\n return result;\n }\n return null;\n}\nfunction* lookup(cwd = process.cwd()) {\n let directory = path.resolve(cwd);\n const { root } = path.parse(directory);\n while (directory && directory !== root) {\n yield directory;\n directory = path.dirname(directory);\n }\n}\nasync function parsePackageJson(filepath, onUnknown) {\n return !filepath || !await fileExists(filepath) ? null : handlePackageManager(filepath, onUnknown);\n}\nfunction parsePackageJsonSync(filepath, onUnknown) {\n return !filepath || !fileExistsSync(filepath) ? null : handlePackageManager(filepath, onUnknown);\n}\nfunction handlePackageManager(filepath, onUnknown) {\n try {\n const pkg = JSON.parse(fs.readFileSync(filepath, \"utf8\"));\n let agent;\n if (typeof pkg.packageManager === \"string\") {\n const [name, ver] = pkg.packageManager.replace(/^\\^/, \"\").split(\"@\");\n let version = ver;\n if (name === \"yarn\" && Number.parseInt(ver) > 1) {\n agent = \"yarn@berry\";\n version = \"berry\";\n return { name, agent, version };\n } else if (name === \"pnpm\" && Number.parseInt(ver) < 7) {\n agent = \"pnpm@6\";\n return { name, agent, version };\n } else if (AGENTS.includes(name)) {\n agent = name;\n return { name, agent, version };\n } else {\n return onUnknown?.(pkg.packageManager) ?? null;\n }\n }\n } catch {\n }\n return null;\n}\nasync function fileExists(filePath) {\n try {\n const stats = await fsPromises.stat(filePath);\n if (stats.isFile()) {\n return true;\n }\n } catch {\n }\n return false;\n}\nfunction fileExistsSync(filePath) {\n try {\n const stats = fs.statSync(filePath);\n if (stats.isFile()) {\n return true;\n }\n } catch {\n }\n return false;\n}\n\nexport { detect, detectSync };\n",
|
|
75
|
-
"const AGENTS = [\n \"npm\",\n \"yarn\",\n \"yarn@berry\",\n \"pnpm\",\n \"pnpm@6\",\n \"bun\"\n];\nconst LOCKS = {\n \"bun.lockb\": \"bun\",\n \"pnpm-lock.yaml\": \"pnpm\",\n \"yarn.lock\": \"yarn\",\n \"package-lock.json\": \"npm\",\n \"npm-shrinkwrap.json\": \"npm\"\n};\nconst INSTALL_PAGE = {\n \"bun\": \"https://bun.sh\",\n \"pnpm\": \"https://pnpm.io/installation\",\n \"pnpm@6\": \"https://pnpm.io/6.x/installation\",\n \"yarn\": \"https://classic.yarnpkg.com/en/docs/install\",\n \"yarn@berry\": \"https://yarnpkg.com/getting-started/install\",\n \"npm\": \"https://docs.npmjs.com/cli/v8/configuring-npm/install\"\n};\n\nexport { AGENTS, INSTALL_PAGE, LOCKS };\n",
|
|
76
|
-
"import { createRequire as __tinyexec_cr } from \"node:module\";const require = __tinyexec_cr(import.meta.url);\nvar St = Object.create;\nvar $ = Object.defineProperty;\nvar kt = Object.getOwnPropertyDescriptor;\nvar Tt = Object.getOwnPropertyNames;\nvar At = Object.getPrototypeOf, Rt = Object.prototype.hasOwnProperty;\nvar h = /* @__PURE__ */ ((t) => typeof require < \"u\" ? require : typeof Proxy < \"u\" ? new Proxy(t, {\n get: (e, n) => (typeof require < \"u\" ? require : e)[n]\n}) : t)(function(t) {\n if (typeof require < \"u\") return require.apply(this, arguments);\n throw Error('Dynamic require of \"' + t + '\" is not supported');\n});\nvar l = (t, e) => () => (e || t((e = { exports: {} }).exports, e), e.exports);\nvar $t = (t, e, n, r) => {\n if (e && typeof e == \"object\" || typeof e == \"function\")\n for (let s of Tt(e))\n !Rt.call(t, s) && s !== n && $(t, s, { get: () => e[s], enumerable: !(r = kt(e, s)) || r.enumerable });\n return t;\n};\nvar Nt = (t, e, n) => (n = t != null ? St(At(t)) : {}, $t(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n e || !t || !t.__esModule ? $(n, \"default\", { value: t, enumerable: !0 }) : n,\n t\n));\n\n// node_modules/isexe/windows.js\nvar W = l((Se, H) => {\n \"use strict\";\n H.exports = z;\n z.sync = Wt;\n var j = h(\"fs\");\n function Ht(t, e) {\n var n = e.pathExt !== void 0 ? e.pathExt : process.env.PATHEXT;\n if (!n || (n = n.split(\";\"), n.indexOf(\"\") !== -1))\n return !0;\n for (var r = 0; r < n.length; r++) {\n var s = n[r].toLowerCase();\n if (s && t.substr(-s.length).toLowerCase() === s)\n return !0;\n }\n return !1;\n }\n function F(t, e, n) {\n return !t.isSymbolicLink() && !t.isFile() ? !1 : Ht(e, n);\n }\n function z(t, e, n) {\n j.stat(t, function(r, s) {\n n(r, r ? !1 : F(s, t, e));\n });\n }\n function Wt(t, e) {\n return F(j.statSync(t), t, e);\n }\n});\n\n// node_modules/isexe/mode.js\nvar X = l((ke, B) => {\n \"use strict\";\n B.exports = K;\n K.sync = Dt;\n var D = h(\"fs\");\n function K(t, e, n) {\n D.stat(t, function(r, s) {\n n(r, r ? !1 : M(s, e));\n });\n }\n function Dt(t, e) {\n return M(D.statSync(t), e);\n }\n function M(t, e) {\n return t.isFile() && Kt(t, e);\n }\n function Kt(t, e) {\n var n = t.mode, r = t.uid, s = t.gid, o = e.uid !== void 0 ? e.uid : process.getuid && process.getuid(), i = e.gid !== void 0 ? e.gid : process.getgid && process.getgid(), u = parseInt(\"100\", 8), c = parseInt(\"010\", 8), a = parseInt(\"001\", 8), f = u | c, p = n & a || n & c && s === i || n & u && r === o || n & f && o === 0;\n return p;\n }\n});\n\n// node_modules/isexe/index.js\nvar U = l((Ae, G) => {\n \"use strict\";\n var Te = h(\"fs\"), v;\n process.platform === \"win32\" || global.TESTING_WINDOWS ? v = W() : v = X();\n G.exports = y;\n y.sync = Mt;\n function y(t, e, n) {\n if (typeof e == \"function\" && (n = e, e = {}), !n) {\n if (typeof Promise != \"function\")\n throw new TypeError(\"callback not provided\");\n return new Promise(function(r, s) {\n y(t, e || {}, function(o, i) {\n o ? s(o) : r(i);\n });\n });\n }\n v(t, e || {}, function(r, s) {\n r && (r.code === \"EACCES\" || e && e.ignoreErrors) && (r = null, s = !1), n(r, s);\n });\n }\n function Mt(t, e) {\n try {\n return v.sync(t, e || {});\n } catch (n) {\n if (e && e.ignoreErrors || n.code === \"EACCES\")\n return !1;\n throw n;\n }\n }\n});\n\n// node_modules/which/which.js\nvar et = l((Re, tt) => {\n \"use strict\";\n var g = process.platform === \"win32\" || process.env.OSTYPE === \"cygwin\" || process.env.OSTYPE === \"msys\", Y = h(\"path\"), Bt = g ? \";\" : \":\", V = U(), J = (t) => Object.assign(new Error(`not found: ${t}`), { code: \"ENOENT\" }), Q = (t, e) => {\n let n = e.colon || Bt, r = t.match(/\\//) || g && t.match(/\\\\/) ? [\"\"] : [\n // windows always checks the cwd first\n ...g ? [process.cwd()] : [],\n ...(e.path || process.env.PATH || /* istanbul ignore next: very unusual */\n \"\").split(n)\n ], s = g ? e.pathExt || process.env.PATHEXT || \".EXE;.CMD;.BAT;.COM\" : \"\", o = g ? s.split(n) : [\"\"];\n return g && t.indexOf(\".\") !== -1 && o[0] !== \"\" && o.unshift(\"\"), {\n pathEnv: r,\n pathExt: o,\n pathExtExe: s\n };\n }, Z = (t, e, n) => {\n typeof e == \"function\" && (n = e, e = {}), e || (e = {});\n let { pathEnv: r, pathExt: s, pathExtExe: o } = Q(t, e), i = [], u = (a) => new Promise((f, p) => {\n if (a === r.length)\n return e.all && i.length ? f(i) : p(J(t));\n let d = r[a], w = /^\".*\"$/.test(d) ? d.slice(1, -1) : d, m = Y.join(w, t), b = !w && /^\\.[\\\\\\/]/.test(t) ? t.slice(0, 2) + m : m;\n f(c(b, a, 0));\n }), c = (a, f, p) => new Promise((d, w) => {\n if (p === s.length)\n return d(u(f + 1));\n let m = s[p];\n V(a + m, { pathExt: o }, (b, Ot) => {\n if (!b && Ot)\n if (e.all)\n i.push(a + m);\n else\n return d(a + m);\n return d(c(a, f, p + 1));\n });\n });\n return n ? u(0).then((a) => n(null, a), n) : u(0);\n }, Xt = (t, e) => {\n e = e || {};\n let { pathEnv: n, pathExt: r, pathExtExe: s } = Q(t, e), o = [];\n for (let i = 0; i < n.length; i++) {\n let u = n[i], c = /^\".*\"$/.test(u) ? u.slice(1, -1) : u, a = Y.join(c, t), f = !c && /^\\.[\\\\\\/]/.test(t) ? t.slice(0, 2) + a : a;\n for (let p = 0; p < r.length; p++) {\n let d = f + r[p];\n try {\n if (V.sync(d, { pathExt: s }))\n if (e.all)\n o.push(d);\n else\n return d;\n } catch {\n }\n }\n }\n if (e.all && o.length)\n return o;\n if (e.nothrow)\n return null;\n throw J(t);\n };\n tt.exports = Z;\n Z.sync = Xt;\n});\n\n// node_modules/path-key/index.js\nvar rt = l(($e, _) => {\n \"use strict\";\n var nt = (t = {}) => {\n let e = t.env || process.env;\n return (t.platform || process.platform) !== \"win32\" ? \"PATH\" : Object.keys(e).reverse().find((r) => r.toUpperCase() === \"PATH\") || \"Path\";\n };\n _.exports = nt;\n _.exports.default = nt;\n});\n\n// node_modules/cross-spawn/lib/util/resolveCommand.js\nvar ct = l((Ne, it) => {\n \"use strict\";\n var st = h(\"path\"), Gt = et(), Ut = rt();\n function ot(t, e) {\n let n = t.options.env || process.env, r = process.cwd(), s = t.options.cwd != null, o = s && process.chdir !== void 0 && !process.chdir.disabled;\n if (o)\n try {\n process.chdir(t.options.cwd);\n } catch {\n }\n let i;\n try {\n i = Gt.sync(t.command, {\n path: n[Ut({ env: n })],\n pathExt: e ? st.delimiter : void 0\n });\n } catch {\n } finally {\n o && process.chdir(r);\n }\n return i && (i = st.resolve(s ? t.options.cwd : \"\", i)), i;\n }\n function Yt(t) {\n return ot(t) || ot(t, !0);\n }\n it.exports = Yt;\n});\n\n// node_modules/cross-spawn/lib/util/escape.js\nvar at = l((qe, C) => {\n \"use strict\";\n var P = /([()\\][%!^\"`<>&|;, *?])/g;\n function Vt(t) {\n return t = t.replace(P, \"^$1\"), t;\n }\n function Jt(t, e) {\n return t = `${t}`, t = t.replace(/(\\\\*)\"/g, '$1$1\\\\\"'), t = t.replace(/(\\\\*)$/, \"$1$1\"), t = `\"${t}\"`, t = t.replace(P, \"^$1\"), e && (t = t.replace(P, \"^$1\")), t;\n }\n C.exports.command = Vt;\n C.exports.argument = Jt;\n});\n\n// node_modules/shebang-regex/index.js\nvar lt = l((Ie, ut) => {\n \"use strict\";\n ut.exports = /^#!(.*)/;\n});\n\n// node_modules/shebang-command/index.js\nvar dt = l((Le, pt) => {\n \"use strict\";\n var Qt = lt();\n pt.exports = (t = \"\") => {\n let e = t.match(Qt);\n if (!e)\n return null;\n let [n, r] = e[0].replace(/#! ?/, \"\").split(\" \"), s = n.split(\"/\").pop();\n return s === \"env\" ? r : r ? `${s} ${r}` : s;\n };\n});\n\n// node_modules/cross-spawn/lib/util/readShebang.js\nvar ht = l((je, ft) => {\n \"use strict\";\n var O = h(\"fs\"), Zt = dt();\n function te(t) {\n let n = Buffer.alloc(150), r;\n try {\n r = O.openSync(t, \"r\"), O.readSync(r, n, 0, 150, 0), O.closeSync(r);\n } catch {\n }\n return Zt(n.toString());\n }\n ft.exports = te;\n});\n\n// node_modules/cross-spawn/lib/parse.js\nvar wt = l((Fe, Et) => {\n \"use strict\";\n var ee = h(\"path\"), mt = ct(), gt = at(), ne = ht(), re = process.platform === \"win32\", se = /\\.(?:com|exe)$/i, oe = /node_modules[\\\\/].bin[\\\\/][^\\\\/]+\\.cmd$/i;\n function ie(t) {\n t.file = mt(t);\n let e = t.file && ne(t.file);\n return e ? (t.args.unshift(t.file), t.command = e, mt(t)) : t.file;\n }\n function ce(t) {\n if (!re)\n return t;\n let e = ie(t), n = !se.test(e);\n if (t.options.forceShell || n) {\n let r = oe.test(e);\n t.command = ee.normalize(t.command), t.command = gt.command(t.command), t.args = t.args.map((o) => gt.argument(o, r));\n let s = [t.command].concat(t.args).join(\" \");\n t.args = [\"/d\", \"/s\", \"/c\", `\"${s}\"`], t.command = process.env.comspec || \"cmd.exe\", t.options.windowsVerbatimArguments = !0;\n }\n return t;\n }\n function ae(t, e, n) {\n e && !Array.isArray(e) && (n = e, e = null), e = e ? e.slice(0) : [], n = Object.assign({}, n);\n let r = {\n command: t,\n args: e,\n options: n,\n file: void 0,\n original: {\n command: t,\n args: e\n }\n };\n return n.shell ? r : ce(r);\n }\n Et.exports = ae;\n});\n\n// node_modules/cross-spawn/lib/enoent.js\nvar bt = l((ze, vt) => {\n \"use strict\";\n var S = process.platform === \"win32\";\n function k(t, e) {\n return Object.assign(new Error(`${e} ${t.command} ENOENT`), {\n code: \"ENOENT\",\n errno: \"ENOENT\",\n syscall: `${e} ${t.command}`,\n path: t.command,\n spawnargs: t.args\n });\n }\n function ue(t, e) {\n if (!S)\n return;\n let n = t.emit;\n t.emit = function(r, s) {\n if (r === \"exit\") {\n let o = xt(s, e, \"spawn\");\n if (o)\n return n.call(t, \"error\", o);\n }\n return n.apply(t, arguments);\n };\n }\n function xt(t, e) {\n return S && t === 1 && !e.file ? k(e.original, \"spawn\") : null;\n }\n function le(t, e) {\n return S && t === 1 && !e.file ? k(e.original, \"spawnSync\") : null;\n }\n vt.exports = {\n hookChildProcess: ue,\n verifyENOENT: xt,\n verifyENOENTSync: le,\n notFoundError: k\n };\n});\n\n// node_modules/cross-spawn/index.js\nvar Pt = l((He, E) => {\n \"use strict\";\n var yt = h(\"child_process\"), T = wt(), A = bt();\n function _t(t, e, n) {\n let r = T(t, e, n), s = yt.spawn(r.command, r.args, r.options);\n return A.hookChildProcess(s, r), s;\n }\n function pe(t, e, n) {\n let r = T(t, e, n), s = yt.spawnSync(r.command, r.args, r.options);\n return s.error = s.error || A.verifyENOENTSync(s.status, r), s;\n }\n E.exports = _t;\n E.exports.spawn = _t;\n E.exports.sync = pe;\n E.exports._parse = T;\n E.exports._enoent = A;\n});\n\n// src/main.ts\nimport { spawn as de } from \"child_process\";\nimport { normalize as fe } from \"path\";\nimport { cwd as he } from \"process\";\n\n// src/env.ts\nimport {\n delimiter as N,\n resolve as qt,\n dirname as It\n} from \"path\";\nvar Lt = /^path$/i, q = { key: \"PATH\", value: \"\" };\nfunction jt(t) {\n for (let e in t) {\n if (!Object.prototype.hasOwnProperty.call(t, e) || !Lt.test(e))\n continue;\n let n = t[e];\n return n ? { key: e, value: n } : q;\n }\n return q;\n}\nfunction Ft(t, e) {\n let n = e.value.split(N), r = t, s;\n do\n n.push(qt(r, \"node_modules\", \".bin\")), s = r, r = It(r);\n while (r !== s);\n return { key: e.key, value: n.join(N) };\n}\nfunction I(t, e) {\n let n = {\n ...process.env,\n ...e\n }, r = Ft(t, jt(n));\n return n[r.key] = r.value, n;\n}\n\n// src/stream.ts\nimport { PassThrough as zt } from \"stream\";\nvar L = (t) => {\n let e = t.length, n = new zt(), r = () => {\n --e === 0 && n.emit(\"end\");\n };\n for (let s of t)\n s.pipe(n, { end: !1 }), s.on(\"end\", r);\n return n;\n};\n\n// src/main.ts\nvar Ct = Nt(Pt(), 1);\nimport me from \"readline\";\n\n// src/non-zero-exit-error.ts\nvar x = class extends Error {\n result;\n output;\n get exitCode() {\n if (this.result.exitCode !== null)\n return this.result.exitCode;\n }\n constructor(e, n) {\n super(`Process exited with non-zero status (${e.exitCode})`), this.result = e, this.output = n;\n }\n};\n\n// src/main.ts\nvar ge = {\n timeout: void 0,\n persist: !1\n}, Ee = {\n windowsHide: !0\n};\nfunction we(t, e) {\n return {\n command: fe(t),\n args: e ?? []\n };\n}\nfunction xe(t) {\n let e = new AbortController();\n for (let n of t) {\n if (n.aborted)\n return e.abort(), n;\n let r = () => {\n e.abort(n.reason);\n };\n n.addEventListener(\"abort\", r, {\n signal: e.signal\n });\n }\n return e.signal;\n}\nvar R = class {\n _process;\n _aborted = !1;\n _options;\n _command;\n _args;\n _resolveClose;\n _processClosed;\n _thrownError;\n get process() {\n return this._process;\n }\n get pid() {\n return this._process?.pid;\n }\n get exitCode() {\n if (this._process && this._process.exitCode !== null)\n return this._process.exitCode;\n }\n constructor(e, n, r) {\n this._options = {\n ...ge,\n ...r\n }, this._command = e, this._args = n ?? [], this._processClosed = new Promise((s) => {\n this._resolveClose = s;\n });\n }\n kill(e) {\n return this._process?.kill(e) === !0;\n }\n get aborted() {\n return this._aborted;\n }\n get killed() {\n return this._process?.killed === !0;\n }\n pipe(e, n, r) {\n return be(e, n, {\n ...r,\n stdin: this\n });\n }\n async *[Symbol.asyncIterator]() {\n let e = this._process;\n if (!e)\n return;\n let n = [];\n this._streamErr && n.push(this._streamErr), this._streamOut && n.push(this._streamOut);\n let r = L(n), s = me.createInterface({\n input: r\n });\n for await (let o of s)\n yield o.toString();\n if (await this._processClosed, e.removeAllListeners(), this._thrownError)\n throw this._thrownError;\n if (this._options?.throwOnError && this.exitCode !== 0 && this.exitCode !== void 0)\n throw new x(this);\n }\n async _waitForOutput() {\n let e = this._process;\n if (!e)\n throw new Error(\"No process was started\");\n let n = \"\", r = \"\";\n if (this._streamErr)\n for await (let o of this._streamErr)\n n += o.toString();\n if (this._streamOut)\n for await (let o of this._streamOut)\n r += o.toString();\n if (await this._processClosed, this._options?.stdin && await this._options.stdin, e.removeAllListeners(), this._thrownError)\n throw this._thrownError;\n let s = {\n stderr: n,\n stdout: r\n };\n if (this._options.throwOnError && this.exitCode !== 0 && this.exitCode !== void 0)\n throw new x(this, s);\n return s;\n }\n then(e, n) {\n return this._waitForOutput().then(e, n);\n }\n _streamOut;\n _streamErr;\n spawn() {\n let e = he(), n = this._options, r = {\n ...Ee,\n ...n.nodeOptions\n }, s = [];\n this._resetState(), n.timeout !== void 0 && s.push(AbortSignal.timeout(n.timeout)), n.signal !== void 0 && s.push(n.signal), n.persist === !0 && (r.detached = !0), s.length > 0 && (r.signal = xe(s)), r.env = I(e, r.env);\n let { command: o, args: i } = we(this._command, this._args), u = (0, Ct._parse)(o, i, r), c = de(\n u.command,\n u.args,\n u.options\n );\n if (c.stderr && (this._streamErr = c.stderr), c.stdout && (this._streamOut = c.stdout), this._process = c, c.once(\"error\", this._onError), c.once(\"close\", this._onClose), n.stdin !== void 0 && c.stdin && n.stdin.process) {\n let { stdout: a } = n.stdin.process;\n a && a.pipe(c.stdin);\n }\n }\n _resetState() {\n this._aborted = !1, this._processClosed = new Promise((e) => {\n this._resolveClose = e;\n }), this._thrownError = void 0;\n }\n _onError = (e) => {\n if (e.name === \"AbortError\" && (!(e.cause instanceof Error) || e.cause.name !== \"TimeoutError\")) {\n this._aborted = !0;\n return;\n }\n this._thrownError = e;\n };\n _onClose = () => {\n this._resolveClose && this._resolveClose();\n };\n}, ve = (t, e, n) => {\n let r = new R(t, e, n);\n return r.spawn(), r;\n}, be = ve;\nexport {\n R as ExecProcess,\n x as NonZeroExitError,\n be as exec,\n ve as x\n};\n",
|
|
77
|
-
"import { installPackage as installPkg } from '@antfu/install-pkg'\n\ninterface InstallPackageOptions {\n cwd?: string\n dev?: boolean\n silent?: boolean\n packageManager?: string\n packageManagerVersion?: string\n preferOffline?: boolean\n additionalArgs?: string[]\n}\n\n// TODO: improve return types here\n\n/**\n * Install an npm package.\n *\n * @param name - The package name to install.\n * @param options - The options to pass to the install.The options to pass to the install.\n * @returns The result of the install.\n */\nexport async function installPackage(name: string, options?: InstallPackageOptions): Promise<any> {\n if (options)\n return await installPkg(name, options)\n\n return await installPkg(name, { silent: true })\n}\n\n/**\n * Install a Stack into your project.\n *\n * @param name - The Stack name to install.\n * @param options - The options to pass to the install.\n * @returns The result of the install.\n */\nexport async function installStack(name: string, options?: InstallPackageOptions): Promise<any> {\n if (options)\n return await installPkg(`@stacksjs/${name}`, options)\n\n return await installPkg(`@stacksjs/${name}`, { silent: true })\n}\n",
|
|
78
|
-
"import { EventEmitter } from 'events';\n\nfunction toArr(any) {\n\treturn any == null ? [] : Array.isArray(any) ? any : [any];\n}\n\nfunction toVal(out, key, val, opts) {\n\tvar x, old=out[key], nxt=(\n\t\t!!~opts.string.indexOf(key) ? (val == null || val === true ? '' : String(val))\n\t\t: typeof val === 'boolean' ? val\n\t\t: !!~opts.boolean.indexOf(key) ? (val === 'false' ? false : val === 'true' || (out._.push((x = +val,x * 0 === 0) ? x : val),!!val))\n\t\t: (x = +val,x * 0 === 0) ? x : val\n\t);\n\tout[key] = old == null ? nxt : (Array.isArray(old) ? old.concat(nxt) : [old, nxt]);\n}\n\nfunction mri2 (args, opts) {\n\targs = args || [];\n\topts = opts || {};\n\n\tvar k, arr, arg, name, val, out={ _:[] };\n\tvar i=0, j=0, idx=0, len=args.length;\n\n\tconst alibi = opts.alias !== void 0;\n\tconst strict = opts.unknown !== void 0;\n\tconst defaults = opts.default !== void 0;\n\n\topts.alias = opts.alias || {};\n\topts.string = toArr(opts.string);\n\topts.boolean = toArr(opts.boolean);\n\n\tif (alibi) {\n\t\tfor (k in opts.alias) {\n\t\t\tarr = opts.alias[k] = toArr(opts.alias[k]);\n\t\t\tfor (i=0; i < arr.length; i++) {\n\t\t\t\t(opts.alias[arr[i]] = arr.concat(k)).splice(i, 1);\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (i=opts.boolean.length; i-- > 0;) {\n\t\tarr = opts.alias[opts.boolean[i]] || [];\n\t\tfor (j=arr.length; j-- > 0;) opts.boolean.push(arr[j]);\n\t}\n\n\tfor (i=opts.string.length; i-- > 0;) {\n\t\tarr = opts.alias[opts.string[i]] || [];\n\t\tfor (j=arr.length; j-- > 0;) opts.string.push(arr[j]);\n\t}\n\n\tif (defaults) {\n\t\tfor (k in opts.default) {\n\t\t\tname = typeof opts.default[k];\n\t\t\tarr = opts.alias[k] = opts.alias[k] || [];\n\t\t\tif (opts[name] !== void 0) {\n\t\t\t\topts[name].push(k);\n\t\t\t\tfor (i=0; i < arr.length; i++) {\n\t\t\t\t\topts[name].push(arr[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tconst keys = strict ? Object.keys(opts.alias) : [];\n\n\tfor (i=0; i < len; i++) {\n\t\targ = args[i];\n\n\t\tif (arg === '--') {\n\t\t\tout._ = out._.concat(args.slice(++i));\n\t\t\tbreak;\n\t\t}\n\n\t\tfor (j=0; j < arg.length; j++) {\n\t\t\tif (arg.charCodeAt(j) !== 45) break; // \"-\"\n\t\t}\n\n\t\tif (j === 0) {\n\t\t\tout._.push(arg);\n\t\t} else if (arg.substring(j, j + 3) === 'no-') {\n\t\t\tname = arg.substring(j + 3);\n\t\t\tif (strict && !~keys.indexOf(name)) {\n\t\t\t\treturn opts.unknown(arg);\n\t\t\t}\n\t\t\tout[name] = false;\n\t\t} else {\n\t\t\tfor (idx=j+1; idx < arg.length; idx++) {\n\t\t\t\tif (arg.charCodeAt(idx) === 61) break; // \"=\"\n\t\t\t}\n\n\t\t\tname = arg.substring(j, idx);\n\t\t\tval = arg.substring(++idx) || (i+1 === len || (''+args[i+1]).charCodeAt(0) === 45 || args[++i]);\n\t\t\tarr = (j === 2 ? [name] : name);\n\n\t\t\tfor (idx=0; idx < arr.length; idx++) {\n\t\t\t\tname = arr[idx];\n\t\t\t\tif (strict && !~keys.indexOf(name)) return opts.unknown('-'.repeat(j) + name);\n\t\t\t\ttoVal(out, name, (idx + 1 < arr.length) || val, opts);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (defaults) {\n\t\tfor (k in opts.default) {\n\t\t\tif (out[k] === void 0) {\n\t\t\t\tout[k] = opts.default[k];\n\t\t\t}\n\t\t}\n\t}\n\n\tif (alibi) {\n\t\tfor (k in out) {\n\t\t\tarr = opts.alias[k] || [];\n\t\t\twhile (arr.length > 0) {\n\t\t\t\tout[arr.shift()] = out[k];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn out;\n}\n\nconst removeBrackets = (v) => v.replace(/[<[].+/, \"\").trim();\nconst findAllBrackets = (v) => {\n const ANGLED_BRACKET_RE_GLOBAL = /<([^>]+)>/g;\n const SQUARE_BRACKET_RE_GLOBAL = /\\[([^\\]]+)\\]/g;\n const res = [];\n const parse = (match) => {\n let variadic = false;\n let value = match[1];\n if (value.startsWith(\"...\")) {\n value = value.slice(3);\n variadic = true;\n }\n return {\n required: match[0].startsWith(\"<\"),\n value,\n variadic\n };\n };\n let angledMatch;\n while (angledMatch = ANGLED_BRACKET_RE_GLOBAL.exec(v)) {\n res.push(parse(angledMatch));\n }\n let squareMatch;\n while (squareMatch = SQUARE_BRACKET_RE_GLOBAL.exec(v)) {\n res.push(parse(squareMatch));\n }\n return res;\n};\nconst getMriOptions = (options) => {\n const result = {alias: {}, boolean: []};\n for (const [index, option] of options.entries()) {\n if (option.names.length > 1) {\n result.alias[option.names[0]] = option.names.slice(1);\n }\n if (option.isBoolean) {\n if (option.negated) {\n const hasStringTypeOption = options.some((o, i) => {\n return i !== index && o.names.some((name) => option.names.includes(name)) && typeof o.required === \"boolean\";\n });\n if (!hasStringTypeOption) {\n result.boolean.push(option.names[0]);\n }\n } else {\n result.boolean.push(option.names[0]);\n }\n }\n }\n return result;\n};\nconst findLongest = (arr) => {\n return arr.sort((a, b) => {\n return a.length > b.length ? -1 : 1;\n })[0];\n};\nconst padRight = (str, length) => {\n return str.length >= length ? str : `${str}${\" \".repeat(length - str.length)}`;\n};\nconst camelcase = (input) => {\n return input.replace(/([a-z])-([a-z])/g, (_, p1, p2) => {\n return p1 + p2.toUpperCase();\n });\n};\nconst setDotProp = (obj, keys, val) => {\n let i = 0;\n let length = keys.length;\n let t = obj;\n let x;\n for (; i < length; ++i) {\n x = t[keys[i]];\n t = t[keys[i]] = i === length - 1 ? val : x != null ? x : !!~keys[i + 1].indexOf(\".\") || !(+keys[i + 1] > -1) ? {} : [];\n }\n};\nconst setByType = (obj, transforms) => {\n for (const key of Object.keys(transforms)) {\n const transform = transforms[key];\n if (transform.shouldTransform) {\n obj[key] = Array.prototype.concat.call([], obj[key]);\n if (typeof transform.transformFunction === \"function\") {\n obj[key] = obj[key].map(transform.transformFunction);\n }\n }\n }\n};\nconst getFileName = (input) => {\n const m = /([^\\\\\\/]+)$/.exec(input);\n return m ? m[1] : \"\";\n};\nconst camelcaseOptionName = (name) => {\n return name.split(\".\").map((v, i) => {\n return i === 0 ? camelcase(v) : v;\n }).join(\".\");\n};\nclass CACError extends Error {\n constructor(message) {\n super(message);\n this.name = this.constructor.name;\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = new Error(message).stack;\n }\n }\n}\n\nclass Option {\n constructor(rawName, description, config) {\n this.rawName = rawName;\n this.description = description;\n this.config = Object.assign({}, config);\n rawName = rawName.replace(/\\.\\*/g, \"\");\n this.negated = false;\n this.names = removeBrackets(rawName).split(\",\").map((v) => {\n let name = v.trim().replace(/^-{1,2}/, \"\");\n if (name.startsWith(\"no-\")) {\n this.negated = true;\n name = name.replace(/^no-/, \"\");\n }\n return camelcaseOptionName(name);\n }).sort((a, b) => a.length > b.length ? 1 : -1);\n this.name = this.names[this.names.length - 1];\n if (this.negated && this.config.default == null) {\n this.config.default = true;\n }\n if (rawName.includes(\"<\")) {\n this.required = true;\n } else if (rawName.includes(\"[\")) {\n this.required = false;\n } else {\n this.isBoolean = true;\n }\n }\n}\n\nconst processArgs = process.argv;\nconst platformInfo = `${process.platform}-${process.arch} node-${process.version}`;\n\nclass Command {\n constructor(rawName, description, config = {}, cli) {\n this.rawName = rawName;\n this.description = description;\n this.config = config;\n this.cli = cli;\n this.options = [];\n this.aliasNames = [];\n this.name = removeBrackets(rawName);\n this.args = findAllBrackets(rawName);\n this.examples = [];\n }\n usage(text) {\n this.usageText = text;\n return this;\n }\n allowUnknownOptions() {\n this.config.allowUnknownOptions = true;\n return this;\n }\n ignoreOptionDefaultValue() {\n this.config.ignoreOptionDefaultValue = true;\n return this;\n }\n version(version, customFlags = \"-v, --version\") {\n this.versionNumber = version;\n this.option(customFlags, \"Display version number\");\n return this;\n }\n example(example) {\n this.examples.push(example);\n return this;\n }\n option(rawName, description, config) {\n const option = new Option(rawName, description, config);\n this.options.push(option);\n return this;\n }\n alias(name) {\n this.aliasNames.push(name);\n return this;\n }\n action(callback) {\n this.commandAction = callback;\n return this;\n }\n isMatched(name) {\n return this.name === name || this.aliasNames.includes(name);\n }\n get isDefaultCommand() {\n return this.name === \"\" || this.aliasNames.includes(\"!\");\n }\n get isGlobalCommand() {\n return this instanceof GlobalCommand;\n }\n hasOption(name) {\n name = name.split(\".\")[0];\n return this.options.find((option) => {\n return option.names.includes(name);\n });\n }\n outputHelp() {\n const {name, commands} = this.cli;\n const {\n versionNumber,\n options: globalOptions,\n helpCallback\n } = this.cli.globalCommand;\n let sections = [\n {\n body: `${name}${versionNumber ? `/${versionNumber}` : \"\"}`\n }\n ];\n sections.push({\n title: \"Usage\",\n body: ` $ ${name} ${this.usageText || this.rawName}`\n });\n const showCommands = (this.isGlobalCommand || this.isDefaultCommand) && commands.length > 0;\n if (showCommands) {\n const longestCommandName = findLongest(commands.map((command) => command.rawName));\n sections.push({\n title: \"Commands\",\n body: commands.map((command) => {\n return ` ${padRight(command.rawName, longestCommandName.length)} ${command.description}`;\n }).join(\"\\n\")\n });\n sections.push({\n title: `For more info, run any command with the \\`--help\\` flag`,\n body: commands.map((command) => ` $ ${name}${command.name === \"\" ? \"\" : ` ${command.name}`} --help`).join(\"\\n\")\n });\n }\n let options = this.isGlobalCommand ? globalOptions : [...this.options, ...globalOptions || []];\n if (!this.isGlobalCommand && !this.isDefaultCommand) {\n options = options.filter((option) => option.name !== \"version\");\n }\n if (options.length > 0) {\n const longestOptionName = findLongest(options.map((option) => option.rawName));\n sections.push({\n title: \"Options\",\n body: options.map((option) => {\n return ` ${padRight(option.rawName, longestOptionName.length)} ${option.description} ${option.config.default === void 0 ? \"\" : `(default: ${option.config.default})`}`;\n }).join(\"\\n\")\n });\n }\n if (this.examples.length > 0) {\n sections.push({\n title: \"Examples\",\n body: this.examples.map((example) => {\n if (typeof example === \"function\") {\n return example(name);\n }\n return example;\n }).join(\"\\n\")\n });\n }\n if (helpCallback) {\n sections = helpCallback(sections) || sections;\n }\n console.log(sections.map((section) => {\n return section.title ? `${section.title}:\n${section.body}` : section.body;\n }).join(\"\\n\\n\"));\n }\n outputVersion() {\n const {name} = this.cli;\n const {versionNumber} = this.cli.globalCommand;\n if (versionNumber) {\n console.log(`${name}/${versionNumber} ${platformInfo}`);\n }\n }\n checkRequiredArgs() {\n const minimalArgsCount = this.args.filter((arg) => arg.required).length;\n if (this.cli.args.length < minimalArgsCount) {\n throw new CACError(`missing required args for command \\`${this.rawName}\\``);\n }\n }\n checkUnknownOptions() {\n const {options, globalCommand} = this.cli;\n if (!this.config.allowUnknownOptions) {\n for (const name of Object.keys(options)) {\n if (name !== \"--\" && !this.hasOption(name) && !globalCommand.hasOption(name)) {\n throw new CACError(`Unknown option \\`${name.length > 1 ? `--${name}` : `-${name}`}\\``);\n }\n }\n }\n }\n checkOptionValue() {\n const {options: parsedOptions, globalCommand} = this.cli;\n const options = [...globalCommand.options, ...this.options];\n for (const option of options) {\n const value = parsedOptions[option.name.split(\".\")[0]];\n if (option.required) {\n const hasNegated = options.some((o) => o.negated && o.names.includes(option.name));\n if (value === true || value === false && !hasNegated) {\n throw new CACError(`option \\`${option.rawName}\\` value is missing`);\n }\n }\n }\n }\n}\nclass GlobalCommand extends Command {\n constructor(cli) {\n super(\"@@global@@\", \"\", {}, cli);\n }\n}\n\nvar __assign = Object.assign;\nclass CAC extends EventEmitter {\n constructor(name = \"\") {\n super();\n this.name = name;\n this.commands = [];\n this.rawArgs = [];\n this.args = [];\n this.options = {};\n this.globalCommand = new GlobalCommand(this);\n this.globalCommand.usage(\"<command> [options]\");\n }\n usage(text) {\n this.globalCommand.usage(text);\n return this;\n }\n command(rawName, description, config) {\n const command = new Command(rawName, description || \"\", config, this);\n command.globalCommand = this.globalCommand;\n this.commands.push(command);\n return command;\n }\n option(rawName, description, config) {\n this.globalCommand.option(rawName, description, config);\n return this;\n }\n help(callback) {\n this.globalCommand.option(\"-h, --help\", \"Display this message\");\n this.globalCommand.helpCallback = callback;\n this.showHelpOnExit = true;\n return this;\n }\n version(version, customFlags = \"-v, --version\") {\n this.globalCommand.version(version, customFlags);\n this.showVersionOnExit = true;\n return this;\n }\n example(example) {\n this.globalCommand.example(example);\n return this;\n }\n outputHelp() {\n if (this.matchedCommand) {\n this.matchedCommand.outputHelp();\n } else {\n this.globalCommand.outputHelp();\n }\n }\n outputVersion() {\n this.globalCommand.outputVersion();\n }\n setParsedInfo({args, options}, matchedCommand, matchedCommandName) {\n this.args = args;\n this.options = options;\n if (matchedCommand) {\n this.matchedCommand = matchedCommand;\n }\n if (matchedCommandName) {\n this.matchedCommandName = matchedCommandName;\n }\n return this;\n }\n unsetMatchedCommand() {\n this.matchedCommand = void 0;\n this.matchedCommandName = void 0;\n }\n parse(argv = processArgs, {\n run = true\n } = {}) {\n this.rawArgs = argv;\n if (!this.name) {\n this.name = argv[1] ? getFileName(argv[1]) : \"cli\";\n }\n let shouldParse = true;\n for (const command of this.commands) {\n const parsed = this.mri(argv.slice(2), command);\n const commandName = parsed.args[0];\n if (command.isMatched(commandName)) {\n shouldParse = false;\n const parsedInfo = __assign(__assign({}, parsed), {\n args: parsed.args.slice(1)\n });\n this.setParsedInfo(parsedInfo, command, commandName);\n this.emit(`command:${commandName}`, command);\n }\n }\n if (shouldParse) {\n for (const command of this.commands) {\n if (command.name === \"\") {\n shouldParse = false;\n const parsed = this.mri(argv.slice(2), command);\n this.setParsedInfo(parsed, command);\n this.emit(`command:!`, command);\n }\n }\n }\n if (shouldParse) {\n const parsed = this.mri(argv.slice(2));\n this.setParsedInfo(parsed);\n }\n if (this.options.help && this.showHelpOnExit) {\n this.outputHelp();\n run = false;\n this.unsetMatchedCommand();\n }\n if (this.options.version && this.showVersionOnExit && this.matchedCommandName == null) {\n this.outputVersion();\n run = false;\n this.unsetMatchedCommand();\n }\n const parsedArgv = {args: this.args, options: this.options};\n if (run) {\n this.runMatchedCommand();\n }\n if (!this.matchedCommand && this.args[0]) {\n this.emit(\"command:*\");\n }\n return parsedArgv;\n }\n mri(argv, command) {\n const cliOptions = [\n ...this.globalCommand.options,\n ...command ? command.options : []\n ];\n const mriOptions = getMriOptions(cliOptions);\n let argsAfterDoubleDashes = [];\n const doubleDashesIndex = argv.indexOf(\"--\");\n if (doubleDashesIndex > -1) {\n argsAfterDoubleDashes = argv.slice(doubleDashesIndex + 1);\n argv = argv.slice(0, doubleDashesIndex);\n }\n let parsed = mri2(argv, mriOptions);\n parsed = Object.keys(parsed).reduce((res, name) => {\n return __assign(__assign({}, res), {\n [camelcaseOptionName(name)]: parsed[name]\n });\n }, {_: []});\n const args = parsed._;\n const options = {\n \"--\": argsAfterDoubleDashes\n };\n const ignoreDefault = command && command.config.ignoreOptionDefaultValue ? command.config.ignoreOptionDefaultValue : this.globalCommand.config.ignoreOptionDefaultValue;\n let transforms = Object.create(null);\n for (const cliOption of cliOptions) {\n if (!ignoreDefault && cliOption.config.default !== void 0) {\n for (const name of cliOption.names) {\n options[name] = cliOption.config.default;\n }\n }\n if (Array.isArray(cliOption.config.type)) {\n if (transforms[cliOption.name] === void 0) {\n transforms[cliOption.name] = Object.create(null);\n transforms[cliOption.name][\"shouldTransform\"] = true;\n transforms[cliOption.name][\"transformFunction\"] = cliOption.config.type[0];\n }\n }\n }\n for (const key of Object.keys(parsed)) {\n if (key !== \"_\") {\n const keys = key.split(\".\");\n setDotProp(options, keys, parsed[key]);\n setByType(options, transforms);\n }\n }\n return {\n args,\n options\n };\n }\n runMatchedCommand() {\n const {args, options, matchedCommand: command} = this;\n if (!command || !command.commandAction)\n return;\n command.checkUnknownOptions();\n command.checkOptionValue();\n command.checkRequiredArgs();\n const actionArgs = [];\n command.args.forEach((arg, index) => {\n if (arg.variadic) {\n actionArgs.push(args.slice(index));\n } else {\n actionArgs.push(args[index]);\n }\n });\n actionArgs.push(options);\n return command.commandAction.apply(this, actionArgs);\n }\n}\n\nconst cac = (name = \"\") => new CAC(name);\n\nexport default cac;\nexport { CAC, Command, cac };\n",
|
|
79
|
-
"// import type { CliOptions } from '@stacksjs/types'\nimport { CAC } from 'cac'\n\nexport interface ParsedArgv {\n args: ReadonlyArray<string>\n options: {\n [k: string]: any\n }\n}\n\ninterface CliOptions {\n name?: string\n // version: string\n // description: string\n}\n\nexport function cli(name?: string | CliOptions, options?: CliOptions): CAC {\n if (typeof name === 'object') {\n options = name\n name = options.name\n }\n\n return new CAC(name || 'buddy')\n}\n\nexport { CAC }\n\n// export function command(name: string, description: string, options?: CliOptions) {\n// return cli(options).command(name, description)\n// }\n",
|
|
80
|
-
"import type { Ok, Result } from '@stacksjs/error-handling'\nimport type { CliOptions, CommandError, Readable, Subprocess, Writable } from '@stacksjs/types'\nimport process from 'node:process'\nimport { ExitCode } from '@stacksjs/types'\nimport { log } from './console'\nimport { exec, execSync } from './exec'\nimport { italic } from './utils'\n\n/**\n * Run a command.\n *\n * @param command The command to run.\n * @param options The options to pass to the command.\n * @returns The result of the command.\n * @example\n * ```ts\n * const result = await runCommand('ls')\n *\n * if (result.isErr())\n * console.error(result.error)\n * else\n * console.log(result)\n * ```\n * @example\n * ```ts\n * const result = await runCommand('ls', { cwd: '/home' })\n *\n * if (result.isErr())\n * console.error(result.error)\n * else\n * console.log(result)\n * ```\n */\nexport async function runCommand(command: string, options?: CliOptions): Promise<Result<Subprocess, CommandError>> {\n log.debug('runCommand:', command)\n log.debug('options:', options)\n\n return await exec(command, options)\n}\n\nexport async function runProcess(command: string, options?: CliOptions): Promise<Result<Subprocess, CommandError>> {\n log.debug('runProcess:', italic(command))\n log.debug('runProcess Options:', options)\n\n return await exec(command, options)\n}\n\n/**\n * Run a command.\n *\n * @param command The command to run.\n * @param options The options to pass to the command.\n * @returns The result of the command.\n * @example\n * ```ts\n * const result = runCommandSync('ls')\n *\n * if (result.isErr())\n * console.error(result.error)\n * else\n * console.log(result)\n * ```\n * @example\n * ```ts\n * const result = runCommandSync('ls', { cwd: '/home' })\n *\n * if (result.isErr())\n * console.error(result.error)\n * else\n * console.log(result)\n * ```\n */\nexport async function runCommandSync(command: string, options?: CliOptions): Promise<string> {\n log.debug('runCommandSync:', italic(command))\n log.debug('runCommandSync Options:', options)\n\n const result = await execSync(command, options)\n\n // if (result.isErr())\n // return err(result.error)\n\n // return ok(result.value)\n\n return result\n}\n\n/**\n * Run many commands.\n *\n * @param commands The command to run.\n * @param options The options to pass to the command.\n * @returns The result of the command.\n */\nexport async function runCommands(\n commands: string[],\n options?: CliOptions,\n): Promise<Ok<Subprocess<Writable, Readable, Readable>, Error>[]> {\n const results = []\n\n for (const command of commands) {\n const result = await runCommand(command, options)\n\n if (result.isErr()) {\n log.error(result.error)\n process.exit(ExitCode.FatalError)\n }\n\n results.push(result)\n }\n\n return results\n}\n",
|
|
81
|
-
"import { log } from '@stacksjs/logging'\nimport prompts from 'prompts'\n\nexport { log, prompts }\n",
|
|
82
|
-
"import type { CliOptions, ErrorLike, SpawnOptions, Subprocess } from '@stacksjs/types'\nimport process from 'node:process'\nimport { err, handleError, ok, type Result } from '@stacksjs/error-handling'\nimport { ExitCode } from '@stacksjs/types'\nimport { italic, log } from './'\n\n/**\n * Execute a command.\n *\n * @param command The command to execute.\n * @param options The options to pass to the command.\n * @returns The result of the command.\n * @example\n * ```ts\n * const result = await exec('ls')\n *\n * if (result.isErr())\n * console.error(result.error)\n * else\n * console.log(result)\n * ```\n * @example\n * ```ts\n * const result = await exec('ls', { cwd: '/home' })\n * ```\n */\nexport async function exec(command: string | string[], options?: CliOptions): Promise<Result<Subprocess, Error>> {\n const cmd = Array.isArray(command) ? command : command.match(/(?:[^\\s\"]|\"[^\"]*\")+/g)\n\n if (!cmd)\n return err(handleError(`Failed to parse command: ${cmd}`, options))\n\n log.debug('exec:', Array.isArray(command) ? command.join(' ') : command)\n log.debug('cmd:', cmd)\n log.debug('exec options:', options)\n\n const cwd = options?.cwd ?? process.cwd()\n const proc = Bun.spawn(cmd, {\n ...options,\n stdout:\n options?.silent || options?.quiet ? 'ignore' : options?.stdin ? options.stdin : options?.stdout || 'inherit',\n stderr: options?.silent || options?.quiet ? 'ignore' : options?.stderr || 'inherit',\n detached: options?.background || false,\n cwd,\n // env: { ...e, ...options?.env },\n onExit(\n subprocess: Subprocess<SpawnOptions.Writable, SpawnOptions.Readable, SpawnOptions.Readable>,\n exitCode: number | null,\n signalCode: number | null,\n error: ErrorLike | undefined,\n ) {\n exitHandler('spawn', subprocess, exitCode, signalCode, error)\n },\n })\n\n // Check if we need to write to stdin\n // this is currently only used for `buddy aws:configure`\n if (options?.stdin === 'pipe' && options.input) {\n if (proc.stdin) {\n // @ts-expect-error - this works even though there is a type error\n proc.stdin.write(options.input)\n // @ts-expect-error - this works even though there is a type error\n proc.stdin.end()\n }\n }\n\n const exited = await proc.exited\n if (exited === ExitCode.Success)\n return ok(proc)\n\n return err(handleError(`Failed to execute command: ${italic(cmd.join(' '))} in ${italic(cwd)}`, options))\n}\n\n/**\n * Execute a command and return result.\n *\n * @param command The command to execute.\n * @returns The result of the command.\n * @example\n * ```ts\n * const output = execSync('ls')\n *\n * console.log(output)\n * ```\n * @example\n * ```ts\n * const output = execSync('ls', { cwd: '/home' })\n * ```\n */\nexport async function execSync(command: string | string[], options?: CliOptions): Promise<string> {\n log.debug('Running ExecSync:', command)\n log.debug('ExecSync Options:', options)\n\n const cmd = Array.isArray(command) ? command : command.match(/(?:[^\\s\"]|\"[^\"]*\")+/g)\n\n if (!cmd) {\n log.error(`Failed to parse command: ${cmd}`, options)\n process.exit(ExitCode.FatalError)\n }\n\n const proc = Bun.spawnSync(cmd, {\n ...options,\n stdin: options?.stdin ?? 'inherit',\n stdout: options?.stdout ?? 'pipe',\n stderr: options?.stderr ?? 'inherit',\n cwd: options?.cwd ?? process.cwd(),\n // env: { ...Bun.env, ...options?.env },\n onExit(\n subprocess: Subprocess<SpawnOptions.Writable, SpawnOptions.Readable, SpawnOptions.Readable>,\n exitCode: number | null,\n signalCode: number | null,\n error: ErrorLike | undefined,\n ) {\n exitHandler('spawnSync', subprocess, exitCode, signalCode, error)\n },\n })\n\n return proc.stdout?.toString() ?? ''\n}\n\nfunction exitHandler(\n type: 'spawn' | 'spawnSync',\n subprocess: Subprocess,\n exitCode: number | null,\n signalCode: number | null,\n error?: Error,\n) {\n log.debug(`exitHandler: ${type}`)\n log.debug('subprocess', subprocess)\n log.debug('exitCode', exitCode)\n log.debug('signalCode', signalCode)\n\n if (error) {\n log.error(error)\n process.exit(ExitCode.FatalError)\n }\n\n if (exitCode !== ExitCode.Success && exitCode)\n process.exit(exitCode)\n}\n",
|
|
83
|
-
"import { collect, type Collection } from '@stacksjs/collections'\n\nexport {\n align,\n box,\n centerAlign,\n colorize,\n colors,\n getColor,\n leftAlign,\n rightAlign,\n stripAnsi,\n} from 'consola/utils'\n\nexport * as kolorist from 'kolorist'\n\nexport {\n ansi256,\n ansi256Bg,\n bgBlack,\n bgBlue,\n bgCyan,\n bgGray,\n bgGreen,\n bgLightBlue,\n bgLightCyan,\n bgLightGray,\n bgLightGreen,\n bgLightMagenta,\n bgLightRed,\n bgLightYellow,\n bgMagenta,\n bgRed,\n bgWhite,\n bgYellow,\n black,\n blue,\n bold,\n cyan,\n dim,\n gray,\n green,\n hidden,\n inverse,\n italic,\n lightBlue,\n lightCyan,\n lightGray,\n lightGreen,\n lightMagenta,\n lightRed,\n lightYellow,\n link,\n magenta,\n red,\n reset,\n strikethrough,\n stripColors,\n trueColor,\n trueColorBg,\n underline,\n white,\n yellow,\n} from 'kolorist'\n\nexport const quotes: Collection<string> = collect([\n // could be queried from any API or database\n 'The best way to get started is to quit talking and begin doing.',\n 'The pessimist sees difficulty in every opportunity. The optimist sees opportunity in every difficulty.',\n 'Don’t let yesterday take up too much of today.',\n 'You learn more from failure than from success. Don’t let it stop you. Failure builds character.',\n 'It’s not whether you get knocked down, it’s whether you get up.',\n 'If you are working on something that you really care about, you don’t have to be pushed. The vision pulls you.',\n 'People who are crazy enough to think they can change the world, are the ones who do.',\n 'Failure will never overtake me if my determination to succeed is strong enough.',\n 'Entrepreneurs are great at dealing with uncertainty and also very good at minimizing risk. That’s the classic entrepreneur.',\n 'We may encounter many defeats but we must not be defeated.',\n 'Knowing is not enough; we must apply. Wishing is not enough; we must do.',\n 'Imagine your life is perfect in every respect; what would it look like?',\n 'We generate fears while we sit. We overcome them by action.',\n 'Whether you think you can or think you can’t, you’re right.',\n 'Security is mostly a superstition. Life is either a daring adventure or nothing.',\n])\n",
|
|
84
|
-
"import * as tty from 'node:tty';\n\nconst {\n env = {},\n argv = [],\n platform = \"\"\n} = typeof process === \"undefined\" ? {} : process;\nconst isDisabled = \"NO_COLOR\" in env || argv.includes(\"--no-color\");\nconst isForced = \"FORCE_COLOR\" in env || argv.includes(\"--color\");\nconst isWindows = platform === \"win32\";\nconst isDumbTerminal = env.TERM === \"dumb\";\nconst isCompatibleTerminal = tty && tty.isatty && tty.isatty(1) && env.TERM && !isDumbTerminal;\nconst isCI = \"CI\" in env && (\"GITHUB_ACTIONS\" in env || \"GITLAB_CI\" in env || \"CIRCLECI\" in env);\nconst isColorSupported = !isDisabled && (isForced || isWindows && !isDumbTerminal || isCompatibleTerminal || isCI);\nfunction replaceClose(index, string, close, replace, head = string.slice(0, Math.max(0, index)) + replace, tail = string.slice(Math.max(0, index + close.length)), next = tail.indexOf(close)) {\n return head + (next < 0 ? tail : replaceClose(next, tail, close, replace));\n}\nfunction clearBleed(index, string, open, close, replace) {\n return index < 0 ? open + string + close : open + replaceClose(index, string, close, replace) + close;\n}\nfunction filterEmpty(open, close, replace = open, at = open.length + 1) {\n return (string) => string || !(string === \"\" || string === void 0) ? clearBleed(\n (\"\" + string).indexOf(close, at),\n string,\n open,\n close,\n replace\n ) : \"\";\n}\nfunction init(open, close, replace) {\n return filterEmpty(`\\x1B[${open}m`, `\\x1B[${close}m`, replace);\n}\nconst colorDefs = {\n reset: init(0, 0),\n bold: init(1, 22, \"\\x1B[22m\\x1B[1m\"),\n dim: init(2, 22, \"\\x1B[22m\\x1B[2m\"),\n italic: init(3, 23),\n underline: init(4, 24),\n inverse: init(7, 27),\n hidden: init(8, 28),\n strikethrough: init(9, 29),\n black: init(30, 39),\n red: init(31, 39),\n green: init(32, 39),\n yellow: init(33, 39),\n blue: init(34, 39),\n magenta: init(35, 39),\n cyan: init(36, 39),\n white: init(37, 39),\n gray: init(90, 39),\n bgBlack: init(40, 49),\n bgRed: init(41, 49),\n bgGreen: init(42, 49),\n bgYellow: init(43, 49),\n bgBlue: init(44, 49),\n bgMagenta: init(45, 49),\n bgCyan: init(46, 49),\n bgWhite: init(47, 49),\n blackBright: init(90, 39),\n redBright: init(91, 39),\n greenBright: init(92, 39),\n yellowBright: init(93, 39),\n blueBright: init(94, 39),\n magentaBright: init(95, 39),\n cyanBright: init(96, 39),\n whiteBright: init(97, 39),\n bgBlackBright: init(100, 49),\n bgRedBright: init(101, 49),\n bgGreenBright: init(102, 49),\n bgYellowBright: init(103, 49),\n bgBlueBright: init(104, 49),\n bgMagentaBright: init(105, 49),\n bgCyanBright: init(106, 49),\n bgWhiteBright: init(107, 49)\n};\nfunction createColors(useColor = isColorSupported) {\n return useColor ? colorDefs : Object.fromEntries(Object.keys(colorDefs).map((key) => [key, String]));\n}\nconst colors = createColors();\nfunction getColor(color, fallback = \"reset\") {\n return colors[color] || colors[fallback];\n}\nfunction colorize(color, text) {\n return getColor(color)(text);\n}\n\nconst ansiRegex = [\n \"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)\",\n \"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))\"\n].join(\"|\");\nfunction stripAnsi(text) {\n return text.replace(new RegExp(ansiRegex, \"g\"), \"\");\n}\nfunction centerAlign(str, len, space = \" \") {\n const free = len - str.length;\n if (free <= 0) {\n return str;\n }\n const freeLeft = Math.floor(free / 2);\n let _str = \"\";\n for (let i = 0; i < len; i++) {\n _str += i < freeLeft || i >= freeLeft + str.length ? space : str[i - freeLeft];\n }\n return _str;\n}\nfunction rightAlign(str, len, space = \" \") {\n const free = len - str.length;\n if (free <= 0) {\n return str;\n }\n let _str = \"\";\n for (let i = 0; i < len; i++) {\n _str += i < free ? space : str[i - free];\n }\n return _str;\n}\nfunction leftAlign(str, len, space = \" \") {\n let _str = \"\";\n for (let i = 0; i < len; i++) {\n _str += i < str.length ? str[i] : space;\n }\n return _str;\n}\nfunction align(alignment, str, len, space = \" \") {\n switch (alignment) {\n case \"left\": {\n return leftAlign(str, len, space);\n }\n case \"right\": {\n return rightAlign(str, len, space);\n }\n case \"center\": {\n return centerAlign(str, len, space);\n }\n default: {\n return str;\n }\n }\n}\n\nconst boxStylePresets = {\n solid: {\n tl: \"\\u250C\",\n tr: \"\\u2510\",\n bl: \"\\u2514\",\n br: \"\\u2518\",\n h: \"\\u2500\",\n v: \"\\u2502\"\n },\n double: {\n tl: \"\\u2554\",\n tr: \"\\u2557\",\n bl: \"\\u255A\",\n br: \"\\u255D\",\n h: \"\\u2550\",\n v: \"\\u2551\"\n },\n doubleSingle: {\n tl: \"\\u2553\",\n tr: \"\\u2556\",\n bl: \"\\u2559\",\n br: \"\\u255C\",\n h: \"\\u2500\",\n v: \"\\u2551\"\n },\n doubleSingleRounded: {\n tl: \"\\u256D\",\n tr: \"\\u256E\",\n bl: \"\\u2570\",\n br: \"\\u256F\",\n h: \"\\u2500\",\n v: \"\\u2551\"\n },\n singleThick: {\n tl: \"\\u250F\",\n tr: \"\\u2513\",\n bl: \"\\u2517\",\n br: \"\\u251B\",\n h: \"\\u2501\",\n v: \"\\u2503\"\n },\n singleDouble: {\n tl: \"\\u2552\",\n tr: \"\\u2555\",\n bl: \"\\u2558\",\n br: \"\\u255B\",\n h: \"\\u2550\",\n v: \"\\u2502\"\n },\n singleDoubleRounded: {\n tl: \"\\u256D\",\n tr: \"\\u256E\",\n bl: \"\\u2570\",\n br: \"\\u256F\",\n h: \"\\u2550\",\n v: \"\\u2502\"\n },\n rounded: {\n tl: \"\\u256D\",\n tr: \"\\u256E\",\n bl: \"\\u2570\",\n br: \"\\u256F\",\n h: \"\\u2500\",\n v: \"\\u2502\"\n }\n};\nconst defaultStyle = {\n borderColor: \"white\",\n borderStyle: \"rounded\",\n valign: \"center\",\n padding: 2,\n marginLeft: 1,\n marginTop: 1,\n marginBottom: 1\n};\nfunction box(text, _opts = {}) {\n const opts = {\n ..._opts,\n style: {\n ...defaultStyle,\n ..._opts.style\n }\n };\n const textLines = text.split(\"\\n\");\n const boxLines = [];\n const _color = getColor(opts.style.borderColor);\n const borderStyle = {\n ...typeof opts.style.borderStyle === \"string\" ? boxStylePresets[opts.style.borderStyle] || boxStylePresets.solid : opts.style.borderStyle\n };\n if (_color) {\n for (const key in borderStyle) {\n borderStyle[key] = _color(\n borderStyle[key]\n );\n }\n }\n const paddingOffset = opts.style.padding % 2 === 0 ? opts.style.padding : opts.style.padding + 1;\n const height = textLines.length + paddingOffset;\n const width = Math.max(...textLines.map((line) => line.length)) + paddingOffset;\n const widthOffset = width + paddingOffset;\n const leftSpace = opts.style.marginLeft > 0 ? \" \".repeat(opts.style.marginLeft) : \"\";\n if (opts.style.marginTop > 0) {\n boxLines.push(\"\".repeat(opts.style.marginTop));\n }\n if (opts.title) {\n const left = borderStyle.h.repeat(\n Math.floor((width - stripAnsi(opts.title).length) / 2)\n );\n const right = borderStyle.h.repeat(\n width - stripAnsi(opts.title).length - stripAnsi(left).length + paddingOffset\n );\n boxLines.push(\n `${leftSpace}${borderStyle.tl}${left}${opts.title}${right}${borderStyle.tr}`\n );\n } else {\n boxLines.push(\n `${leftSpace}${borderStyle.tl}${borderStyle.h.repeat(widthOffset)}${borderStyle.tr}`\n );\n }\n const valignOffset = opts.style.valign === \"center\" ? Math.floor((height - textLines.length) / 2) : opts.style.valign === \"top\" ? height - textLines.length - paddingOffset : height - textLines.length;\n for (let i = 0; i < height; i++) {\n if (i < valignOffset || i >= valignOffset + textLines.length) {\n boxLines.push(\n `${leftSpace}${borderStyle.v}${\" \".repeat(widthOffset)}${borderStyle.v}`\n );\n } else {\n const line = textLines[i - valignOffset];\n const left = \" \".repeat(paddingOffset);\n const right = \" \".repeat(width - stripAnsi(line).length);\n boxLines.push(\n `${leftSpace}${borderStyle.v}${left}${line}${right}${borderStyle.v}`\n );\n }\n }\n boxLines.push(\n `${leftSpace}${borderStyle.bl}${borderStyle.h.repeat(widthOffset)}${borderStyle.br}`\n );\n if (opts.style.marginBottom > 0) {\n boxLines.push(\"\".repeat(opts.style.marginBottom));\n }\n return boxLines.join(\"\\n\");\n}\n\nexport { align, box, centerAlign, colorize, colors, getColor, leftAlign, rightAlign, stripAnsi };\n",
|
|
85
|
-
"let enabled = true;\n// Support both browser and node environments\nconst globalVar = typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n/**\n * Detect how much colors the current terminal supports\n */\nlet supportLevel = 0 /* none */;\nif (globalVar.process && globalVar.process.env && globalVar.process.stdout) {\n const { FORCE_COLOR, NODE_DISABLE_COLORS, NO_COLOR, TERM, COLORTERM } = globalVar.process.env;\n if (NODE_DISABLE_COLORS || NO_COLOR || FORCE_COLOR === '0') {\n enabled = false;\n }\n else if (FORCE_COLOR === '1' ||\n FORCE_COLOR === '2' ||\n FORCE_COLOR === '3') {\n enabled = true;\n }\n else if (TERM === 'dumb') {\n enabled = false;\n }\n else if ('CI' in globalVar.process.env &&\n [\n 'TRAVIS',\n 'CIRCLECI',\n 'APPVEYOR',\n 'GITLAB_CI',\n 'GITHUB_ACTIONS',\n 'BUILDKITE',\n 'DRONE',\n ].some(vendor => vendor in globalVar.process.env)) {\n enabled = true;\n }\n else {\n enabled = process.stdout.isTTY;\n }\n if (enabled) {\n // Windows supports 24bit True Colors since Windows 10 revision #14931,\n // see https://devblogs.microsoft.com/commandline/24-bit-color-in-the-windows-console/\n if (process.platform === 'win32') {\n supportLevel = 3 /* trueColor */;\n }\n else {\n if (COLORTERM && (COLORTERM === 'truecolor' || COLORTERM === '24bit')) {\n supportLevel = 3 /* trueColor */;\n }\n else if (TERM && (TERM.endsWith('-256color') || TERM.endsWith('256'))) {\n supportLevel = 2 /* ansi256 */;\n }\n else {\n supportLevel = 1 /* ansi */;\n }\n }\n }\n}\nexport let options = {\n enabled,\n supportLevel,\n};\nfunction kolorist(start, end, level = 1 /* ansi */) {\n const open = `\\x1b[${start}m`;\n const close = `\\x1b[${end}m`;\n const regex = new RegExp(`\\\\x1b\\\\[${end}m`, 'g');\n return (str) => {\n return options.enabled && options.supportLevel >= level\n ? open + ('' + str).replace(regex, open) + close\n : '' + str;\n };\n}\n// Lower colors into 256 color space\n// Taken from https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n// which is MIT licensed and copyright by Heather Arthur and Josh Junon\nfunction rgbToAnsi256(r, g, b) {\n // We use the extended greyscale palette here, with the exception of\n // black and white. normal palette only has 4 greyscale shades.\n if (r >> 4 === g >> 4 && g >> 4 === b >> 4) {\n if (r < 8) {\n return 16;\n }\n if (r > 248) {\n return 231;\n }\n return Math.round(((r - 8) / 247) * 24) + 232;\n }\n const ansi = 16 +\n 36 * Math.round((r / 255) * 5) +\n 6 * Math.round((g / 255) * 5) +\n Math.round((b / 255) * 5);\n return ansi;\n}\nexport function stripColors(str) {\n return ('' + str)\n .replace(/\\x1b\\[[0-9;]+m/g, '')\n .replace(/\\x1b\\]8;;.*?\\x07(.*?)\\x1b\\]8;;\\x07/g, (_, group) => group);\n}\n// modifiers\nexport const reset = kolorist(0, 0);\nexport const bold = kolorist(1, 22);\nexport const dim = kolorist(2, 22);\nexport const italic = kolorist(3, 23);\nexport const underline = kolorist(4, 24);\nexport const inverse = kolorist(7, 27);\nexport const hidden = kolorist(8, 28);\nexport const strikethrough = kolorist(9, 29);\n// colors\nexport const black = kolorist(30, 39);\nexport const red = kolorist(31, 39);\nexport const green = kolorist(32, 39);\nexport const yellow = kolorist(33, 39);\nexport const blue = kolorist(34, 39);\nexport const magenta = kolorist(35, 39);\nexport const cyan = kolorist(36, 39);\nexport const white = kolorist(97, 39);\nexport const gray = kolorist(90, 39);\nexport const lightGray = kolorist(37, 39);\nexport const lightRed = kolorist(91, 39);\nexport const lightGreen = kolorist(92, 39);\nexport const lightYellow = kolorist(93, 39);\nexport const lightBlue = kolorist(94, 39);\nexport const lightMagenta = kolorist(95, 39);\nexport const lightCyan = kolorist(96, 39);\n// background colors\nexport const bgBlack = kolorist(40, 49);\nexport const bgRed = kolorist(41, 49);\nexport const bgGreen = kolorist(42, 49);\nexport const bgYellow = kolorist(43, 49);\nexport const bgBlue = kolorist(44, 49);\nexport const bgMagenta = kolorist(45, 49);\nexport const bgCyan = kolorist(46, 49);\nexport const bgWhite = kolorist(107, 49);\nexport const bgGray = kolorist(100, 49);\nexport const bgLightRed = kolorist(101, 49);\nexport const bgLightGreen = kolorist(102, 49);\nexport const bgLightYellow = kolorist(103, 49);\nexport const bgLightBlue = kolorist(104, 49);\nexport const bgLightMagenta = kolorist(105, 49);\nexport const bgLightCyan = kolorist(106, 49);\nexport const bgLightGray = kolorist(47, 49);\n// 256 support\nexport const ansi256 = (n) => kolorist('38;5;' + n, 0, 2 /* ansi256 */);\nexport const ansi256Bg = (n) => kolorist('48;5;' + n, 0, 2 /* ansi256 */);\n// TrueColor 24bit support\nexport const trueColor = (r, g, b) => {\n return options.supportLevel === 2 /* ansi256 */\n ? ansi256(rgbToAnsi256(r, g, b))\n : kolorist(`38;2;${r};${g};${b}`, 0, 3 /* trueColor */);\n};\nexport const trueColorBg = (r, g, b) => {\n return options.supportLevel === 2 /* ansi256 */\n ? ansi256Bg(rgbToAnsi256(r, g, b))\n : kolorist(`48;2;${r};${g};${b}`, 0, 3 /* trueColor */);\n};\n// Links\nconst OSC = '\\u001B]';\nconst BEL = '\\u0007';\nconst SEP = ';';\nexport function link(text, url) {\n return options.enabled\n ? OSC + '8' + SEP + SEP + url + BEL + text + OSC + '8' + SEP + SEP + BEL\n : `${text} (\\u200B${url}\\u200B)`;\n}\n//# sourceMappingURL=index.js.map",
|
|
86
|
-
"import type { Result } from '@stacksjs/error-handling'\nimport type { CliOptions, Readable, Subprocess, Writable } from '@stacksjs/types'\nimport { runCommand } from './run'\n\ntype CommandOptionTuple = [string, string, { default: boolean }]\ninterface CommandOptionObject {\n name: string\n description: string\n default: boolean | string\n}\ntype CommandOptions = CommandOptionTuple | CommandOptionObject[]\ninterface Options {\n name: string\n description: string\n active: boolean\n options: CommandOptions\n run: (options?: CliOptions) => Promise<any>\n onFail: (error: Error) => void\n onSuccess: () => void\n}\n\nexport class Command {\n name: Options['name']\n description: Options['description']\n options: Options['options']\n run: Options['run']\n onFail: Options['onFail']\n onSuccess: Options['onSuccess']\n\n constructor({ name, description, options, run, onFail, onSuccess }: Options) {\n this.name = name\n this.description = description\n this.options = options\n this.run = run\n this.onFail = onFail\n this.onSuccess = onSuccess\n }\n}\n\nexport const command = {\n run: async (\n command: string,\n options?: CliOptions,\n ): Promise<Result<Subprocess<Writable, Readable, Readable>, Error>> => {\n return await runCommand(command, options)\n },\n\n runSync: async (\n command: string,\n options?: CliOptions,\n ): Promise<Result<Subprocess<Writable, Readable, Readable>, Error>> => {\n return await runCommand(command, options)\n },\n}\n",
|
|
87
|
-
"import type { IntroOptions, OutroOptions } from '@stacksjs/types'\nimport { handleError } from '@stacksjs/error-handling'\nimport { log } from '@stacksjs/logging'\nimport { ExitCode } from '@stacksjs/types'\nimport { bgCyan, bold, cyan, dim, gray, green, italic } from 'kolorist'\nimport { version } from '../package.json'\n\n/**\n * Prints the intro message.\n */\nexport async function intro(command: string, options?: IntroOptions): Promise<number> {\n return new Promise((resolve) => {\n if (options?.quiet === false) {\n console.log()\n console.log(cyan(bold('Stacks CLI')) + dim(` v${version}`))\n console.log()\n }\n\n log.info(`Running ${bgCyan(italic(bold(` ${command} `)))}`)\n\n if (options?.showPerformance === false || options?.quiet)\n return resolve(0)\n\n return resolve(performance.now())\n })\n}\n\n/**\n * Prints the outro message.\n */\nexport function outro(text: string, options?: OutroOptions, error?: Error | string): Promise<number> {\n const opts = {\n type: 'success',\n useSeconds: true,\n ...options,\n }\n\n opts.message = options?.message || text\n\n return new Promise((resolve) => {\n if (error)\n return handleError(error)\n\n if (opts?.startTime) {\n let time = performance.now() - opts.startTime\n\n if (opts.useSeconds) {\n time = time / 1000\n time = Math.round(time * 100) / 100 // https://stackoverflow.com/a/11832950/7811162\n }\n\n if (opts.quiet === true)\n return resolve(ExitCode.Success)\n\n if (error) {\n log.error(`[${time.toFixed(2)}${opts.useSeconds ? 's' : 'ms'}] Failed`)\n }\n else if (opts.type === 'info') {\n log.info(`${dim(gray(`[${time.toFixed(2)}${opts.useSeconds ? 's' : 'ms'}]`))} ${opts.message ?? 'Complete'}`)\n }\n else {\n log.success(\n `${dim(gray(bold(`[${time.toFixed(2)}${opts.useSeconds ? 's' : 'ms'}]`)))} ${bold(\n green(opts.message ?? 'Complete'),\n )}`,\n )\n }\n }\n else {\n if (opts?.type === 'info')\n log.info(text)\n // the following condition triggers in the case of \"Cleaned up\" messages\n else if (opts?.type === 'success' && opts?.quiet !== true)\n log.success(text)\n }\n\n return resolve(ExitCode.Success)\n })\n}\n",
|
|
88
|
-
"import process from 'node:process'\n\ninterface ParsedArgv {\n args: string[]\n options: {\n [k: string]: string | boolean | number\n }\n}\n\nfunction isLongOption(arg?: string): boolean {\n if (!arg)\n return false\n\n return arg.startsWith('--')\n}\n\nfunction isShortOption(arg: string): boolean {\n return arg.startsWith('-') && !isLongOption(arg)\n}\n\nfunction parseValue(value: string): string | boolean | number {\n if (value === 'true')\n return true\n\n if (value === 'false')\n return false\n\n const numberValue = Number.parseFloat(value)\n if (!Number.isNaN(numberValue))\n return numberValue\n\n return value.replace(/\"/g, '')\n}\n\nfunction parseLongOption(\n arg: string,\n argv: string[],\n index: number,\n options: { [k: string]: string | boolean | number },\n): number {\n const [key, value] = arg.slice(2).split('=')\n if (value !== undefined) {\n options[key as string] = parseValue(value)\n }\n else if (index + 1 < argv.length && !argv[index + 1]?.startsWith('-')) {\n options[key as string] = argv[index + 1] as string\n index++\n }\n else {\n options[key as string] = true\n }\n return index\n}\n\nfunction parseShortOption(\n arg: string,\n argv: string[],\n index: number,\n options: { [k: string]: string | boolean | number },\n): number {\n const [key, value] = arg.slice(1).split('=')\n\n // Check if key is undefined and handle it\n if (key === undefined)\n return index\n\n if (value !== undefined && key !== undefined) {\n for (let j = 0; j < key.length; j++) options[key[j] as string] = parseValue(value)\n }\n else {\n for (let j = 0; j < key.length; j++) {\n if (index + 1 < argv.length && j === key.length - 1 && !argv[index + 1]?.startsWith('-')) {\n options[key[j] as string] = parseValue(argv[index + 1] as string)\n index++\n }\n else {\n options[key[j] as string] = true\n }\n }\n }\n\n return index\n}\n\nexport function parseArgv(argv?: string[]): ParsedArgv {\n if (argv === undefined)\n argv = process.argv.slice(2)\n\n const args: string[] = []\n const options: { [k: string]: string | boolean | number } = {}\n\n for (let i = 0; i < argv.length; i++) {\n const arg = argv[i]\n if (!arg)\n continue\n if (isLongOption(arg))\n i = parseLongOption(arg, argv, i, options)\n else if (isShortOption(arg))\n i = parseShortOption(arg, argv, i, options)\n else args.push(arg)\n }\n\n return { args, options }\n}\n\nexport function parseArgs(argv?: string[]): string[] {\n if (argv === undefined)\n argv = process.argv.slice(2)\n\n return parseArgv(argv).args\n}\n\ninterface CliOptions {\n dryRun?: boolean\n quiet?: boolean\n verbose?: boolean\n [k: string]: string | boolean | number | undefined\n}\n\nexport function parseOptions(options?: CliOptions): CliOptions {\n options = options || {}\n const defaults = { dryRun: false, quiet: false, verbose: false }\n const args = process.argv.slice(2)\n\n for (let i = 0; i < args.length; i++) {\n const arg = args[i]\n if (arg?.startsWith('--')) {\n const key = arg.substring(2) // remove the --\n const camelCaseKey = key.replace(\n /-([a-z])/gi,\n g => (g[1] ? g[1].toUpperCase() : ''), // convert kebab-case to camelCase\n )\n\n if (i + 1 < args.length && !args?.[i + 1]?.startsWith('--')) {\n // if the next arg exists and is not an option\n if (args?.[i + 1] === 'true' || args?.[i + 1] === 'false') {\n // if the next arg is a boolean\n options[camelCaseKey] = args[i + 1] === 'true' // set the value to the boolean\n i++\n }\n else {\n options[camelCaseKey] = args[i + 1]\n i++\n }\n }\n else {\n options[camelCaseKey] = true\n }\n }\n }\n\n if (Object.keys(options).length === 0)\n // if options has no keys, return an empty object\n return {}\n\n return { ...defaults, ...options }\n}\n\n// interface BuddyOptions {\n// dryRun?: boolean\n// verbose?: boolean\n// }\nexport function buddyOptions(options?: string[] | Record<string, any>): string {\n if (Array.isArray(options)) {\n options = Array.from(new Set(options)) as string[]\n if (Array.isArray(options) && options[0] && !options[0].startsWith('-'))\n options.shift()\n return options.join(' ')\n }\n\n if (typeof options === 'object' && options !== null) {\n return Object.entries(options)\n .map(([key, value]) => {\n if (value === true)\n return `--${key}`\n return `--${key} ${value}`\n })\n .join(' ')\n }\n\n return buddyOptions(process.argv.slice(2))\n}\n",
|
|
89
|
-
"import process from 'node:process';\nimport chalk from 'chalk';\nimport cliCursor from 'cli-cursor';\nimport cliSpinners from 'cli-spinners';\nimport logSymbols from 'log-symbols';\nimport stripAnsi from 'strip-ansi';\nimport stringWidth from 'string-width';\nimport isInteractive from 'is-interactive';\nimport isUnicodeSupported from 'is-unicode-supported';\nimport stdinDiscarder from 'stdin-discarder';\n\nclass Ora {\n\t#linesToClear = 0;\n\t#isDiscardingStdin = false;\n\t#lineCount = 0;\n\t#frameIndex = 0;\n\t#options;\n\t#spinner;\n\t#stream;\n\t#id;\n\t#initialInterval;\n\t#isEnabled;\n\t#isSilent;\n\t#indent;\n\t#text;\n\t#prefixText;\n\t#suffixText;\n\tcolor;\n\n\tconstructor(options) {\n\t\tif (typeof options === 'string') {\n\t\t\toptions = {\n\t\t\t\ttext: options,\n\t\t\t};\n\t\t}\n\n\t\tthis.#options = {\n\t\t\tcolor: 'cyan',\n\t\t\tstream: process.stderr,\n\t\t\tdiscardStdin: true,\n\t\t\thideCursor: true,\n\t\t\t...options,\n\t\t};\n\n\t\t// Public\n\t\tthis.color = this.#options.color;\n\n\t\t// It's important that these use the public setters.\n\t\tthis.spinner = this.#options.spinner;\n\n\t\tthis.#initialInterval = this.#options.interval;\n\t\tthis.#stream = this.#options.stream;\n\t\tthis.#isEnabled = typeof this.#options.isEnabled === 'boolean' ? this.#options.isEnabled : isInteractive({stream: this.#stream});\n\t\tthis.#isSilent = typeof this.#options.isSilent === 'boolean' ? this.#options.isSilent : false;\n\n\t\t// Set *after* `this.#stream`.\n\t\t// It's important that these use the public setters.\n\t\tthis.text = this.#options.text;\n\t\tthis.prefixText = this.#options.prefixText;\n\t\tthis.suffixText = this.#options.suffixText;\n\t\tthis.indent = this.#options.indent;\n\n\t\tif (process.env.NODE_ENV === 'test') {\n\t\t\tthis._stream = this.#stream;\n\t\t\tthis._isEnabled = this.#isEnabled;\n\n\t\t\tObject.defineProperty(this, '_linesToClear', {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.#linesToClear;\n\t\t\t\t},\n\t\t\t\tset(newValue) {\n\t\t\t\t\tthis.#linesToClear = newValue;\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tObject.defineProperty(this, '_frameIndex', {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.#frameIndex;\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tObject.defineProperty(this, '_lineCount', {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.#lineCount;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\tget indent() {\n\t\treturn this.#indent;\n\t}\n\n\tset indent(indent = 0) {\n\t\tif (!(indent >= 0 && Number.isInteger(indent))) {\n\t\t\tthrow new Error('The `indent` option must be an integer from 0 and up');\n\t\t}\n\n\t\tthis.#indent = indent;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget interval() {\n\t\treturn this.#initialInterval ?? this.#spinner.interval ?? 100;\n\t}\n\n\tget spinner() {\n\t\treturn this.#spinner;\n\t}\n\n\tset spinner(spinner) {\n\t\tthis.#frameIndex = 0;\n\t\tthis.#initialInterval = undefined;\n\n\t\tif (typeof spinner === 'object') {\n\t\t\tif (spinner.frames === undefined) {\n\t\t\t\tthrow new Error('The given spinner must have a `frames` property');\n\t\t\t}\n\n\t\t\tthis.#spinner = spinner;\n\t\t} else if (!isUnicodeSupported()) {\n\t\t\tthis.#spinner = cliSpinners.line;\n\t\t} else if (spinner === undefined) {\n\t\t\t// Set default spinner\n\t\t\tthis.#spinner = cliSpinners.dots;\n\t\t} else if (spinner !== 'default' && cliSpinners[spinner]) {\n\t\t\tthis.#spinner = cliSpinners[spinner];\n\t\t} else {\n\t\t\tthrow 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.`);\n\t\t}\n\t}\n\n\tget text() {\n\t\treturn this.#text;\n\t}\n\n\tset text(value = '') {\n\t\tthis.#text = value;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget prefixText() {\n\t\treturn this.#prefixText;\n\t}\n\n\tset prefixText(value = '') {\n\t\tthis.#prefixText = value;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget suffixText() {\n\t\treturn this.#suffixText;\n\t}\n\n\tset suffixText(value = '') {\n\t\tthis.#suffixText = value;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget isSpinning() {\n\t\treturn this.#id !== undefined;\n\t}\n\n\t#getFullPrefixText(prefixText = this.#prefixText, postfix = ' ') {\n\t\tif (typeof prefixText === 'string' && prefixText !== '') {\n\t\t\treturn prefixText + postfix;\n\t\t}\n\n\t\tif (typeof prefixText === 'function') {\n\t\t\treturn prefixText() + postfix;\n\t\t}\n\n\t\treturn '';\n\t}\n\n\t#getFullSuffixText(suffixText = this.#suffixText, prefix = ' ') {\n\t\tif (typeof suffixText === 'string' && suffixText !== '') {\n\t\t\treturn prefix + suffixText;\n\t\t}\n\n\t\tif (typeof suffixText === 'function') {\n\t\t\treturn prefix + suffixText();\n\t\t}\n\n\t\treturn '';\n\t}\n\n\t#updateLineCount() {\n\t\tconst columns = this.#stream.columns ?? 80;\n\t\tconst fullPrefixText = this.#getFullPrefixText(this.#prefixText, '-');\n\t\tconst fullSuffixText = this.#getFullSuffixText(this.#suffixText, '-');\n\t\tconst fullText = ' '.repeat(this.#indent) + fullPrefixText + '--' + this.#text + '--' + fullSuffixText;\n\n\t\tthis.#lineCount = 0;\n\t\tfor (const line of stripAnsi(fullText).split('\\n')) {\n\t\t\tthis.#lineCount += Math.max(1, Math.ceil(stringWidth(line, {countAnsiEscapeCodes: true}) / columns));\n\t\t}\n\t}\n\n\tget isEnabled() {\n\t\treturn this.#isEnabled && !this.#isSilent;\n\t}\n\n\tset isEnabled(value) {\n\t\tif (typeof value !== 'boolean') {\n\t\t\tthrow new TypeError('The `isEnabled` option must be a boolean');\n\t\t}\n\n\t\tthis.#isEnabled = value;\n\t}\n\n\tget isSilent() {\n\t\treturn this.#isSilent;\n\t}\n\n\tset isSilent(value) {\n\t\tif (typeof value !== 'boolean') {\n\t\t\tthrow new TypeError('The `isSilent` option must be a boolean');\n\t\t}\n\n\t\tthis.#isSilent = value;\n\t}\n\n\tframe() {\n\t\tconst {frames} = this.#spinner;\n\t\tlet frame = frames[this.#frameIndex];\n\n\t\tif (this.color) {\n\t\t\tframe = chalk[this.color](frame);\n\t\t}\n\n\t\tthis.#frameIndex = ++this.#frameIndex % frames.length;\n\t\tconst fullPrefixText = (typeof this.#prefixText === 'string' && this.#prefixText !== '') ? this.#prefixText + ' ' : '';\n\t\tconst fullText = typeof this.text === 'string' ? ' ' + this.text : '';\n\t\tconst fullSuffixText = (typeof this.#suffixText === 'string' && this.#suffixText !== '') ? ' ' + this.#suffixText : '';\n\n\t\treturn fullPrefixText + frame + fullText + fullSuffixText;\n\t}\n\n\tclear() {\n\t\tif (!this.#isEnabled || !this.#stream.isTTY) {\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.#stream.cursorTo(0);\n\n\t\tfor (let index = 0; index < this.#linesToClear; index++) {\n\t\t\tif (index > 0) {\n\t\t\t\tthis.#stream.moveCursor(0, -1);\n\t\t\t}\n\n\t\t\tthis.#stream.clearLine(1);\n\t\t}\n\n\t\tif (this.#indent || this.lastIndent !== this.#indent) {\n\t\t\tthis.#stream.cursorTo(this.#indent);\n\t\t}\n\n\t\tthis.lastIndent = this.#indent;\n\t\tthis.#linesToClear = 0;\n\n\t\treturn this;\n\t}\n\n\trender() {\n\t\tif (this.#isSilent) {\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.clear();\n\t\tthis.#stream.write(this.frame());\n\t\tthis.#linesToClear = this.#lineCount;\n\n\t\treturn this;\n\t}\n\n\tstart(text) {\n\t\tif (text) {\n\t\t\tthis.text = text;\n\t\t}\n\n\t\tif (this.#isSilent) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (!this.#isEnabled) {\n\t\t\tif (this.text) {\n\t\t\t\tthis.#stream.write(`- ${this.text}\\n`);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t}\n\n\t\tif (this.isSpinning) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (this.#options.hideCursor) {\n\t\t\tcliCursor.hide(this.#stream);\n\t\t}\n\n\t\tif (this.#options.discardStdin && process.stdin.isTTY) {\n\t\t\tthis.#isDiscardingStdin = true;\n\t\t\tstdinDiscarder.start();\n\t\t}\n\n\t\tthis.render();\n\t\tthis.#id = setInterval(this.render.bind(this), this.interval);\n\n\t\treturn this;\n\t}\n\n\tstop() {\n\t\tif (!this.#isEnabled) {\n\t\t\treturn this;\n\t\t}\n\n\t\tclearInterval(this.#id);\n\t\tthis.#id = undefined;\n\t\tthis.#frameIndex = 0;\n\t\tthis.clear();\n\t\tif (this.#options.hideCursor) {\n\t\t\tcliCursor.show(this.#stream);\n\t\t}\n\n\t\tif (this.#options.discardStdin && process.stdin.isTTY && this.#isDiscardingStdin) {\n\t\t\tstdinDiscarder.stop();\n\t\t\tthis.#isDiscardingStdin = false;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tsucceed(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.success, text});\n\t}\n\n\tfail(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.error, text});\n\t}\n\n\twarn(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.warning, text});\n\t}\n\n\tinfo(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.info, text});\n\t}\n\n\tstopAndPersist(options = {}) {\n\t\tif (this.#isSilent) {\n\t\t\treturn this;\n\t\t}\n\n\t\tconst prefixText = options.prefixText ?? this.#prefixText;\n\t\tconst fullPrefixText = this.#getFullPrefixText(prefixText, ' ');\n\n\t\tconst symbolText = options.symbol ?? ' ';\n\n\t\tconst text = options.text ?? this.text;\n\t\tconst fullText = (typeof text === 'string') ? ' ' + text : '';\n\n\t\tconst suffixText = options.suffixText ?? this.#suffixText;\n\t\tconst fullSuffixText = this.#getFullSuffixText(suffixText, ' ');\n\n\t\tconst textToWrite = fullPrefixText + symbolText + fullText + fullSuffixText + '\\n';\n\n\t\tthis.stop();\n\t\tthis.#stream.write(textToWrite);\n\n\t\treturn this;\n\t}\n}\n\nexport default function ora(options) {\n\treturn new Ora(options);\n}\n\nexport async function oraPromise(action, options) {\n\tconst actionIsFunction = typeof action === 'function';\n\tconst actionIsPromise = typeof action.then === 'function';\n\n\tif (!actionIsFunction && !actionIsPromise) {\n\t\tthrow new TypeError('Parameter `action` must be a Function or a Promise');\n\t}\n\n\tconst {successText, failText} = typeof options === 'object'\n\t\t? options\n\t\t: {successText: undefined, failText: undefined};\n\n\tconst spinner = ora(options).start();\n\n\ttry {\n\t\tconst promise = actionIsFunction ? action(spinner) : action;\n\t\tconst result = await promise;\n\n\t\tspinner.succeed(\n\t\t\tsuccessText === undefined\n\t\t\t\t? undefined\n\t\t\t\t: (typeof successText === 'string' ? successText : successText(result)),\n\t\t);\n\n\t\treturn result;\n\t} catch (error) {\n\t\tspinner.fail(\n\t\t\tfailText === undefined\n\t\t\t\t? undefined\n\t\t\t\t: (typeof failText === 'string' ? failText : failText(error)),\n\t\t);\n\n\t\tthrow error;\n\t}\n}\n\nexport {default as spinners} from 'cli-spinners';\n",
|
|
90
|
-
"const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue(red, green, blue) {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue(hex) {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue(code) {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n",
|
|
91
|
-
"import process from 'node:process';\nimport os from 'node:os';\nimport tty from 'node:tty';\n\n// From: https://github.com/sindresorhus/has-flag/blob/main/index.js\n/// function hasFlag(flag, argv = globalThis.Deno?.args ?? process.argv) {\nfunction hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process.argv) {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n}\n\nconst {env} = process;\n\nlet flagForceColor;\nif (\n\thasFlag('no-color')\n\t|| hasFlag('no-colors')\n\t|| hasFlag('color=false')\n\t|| hasFlag('color=never')\n) {\n\tflagForceColor = 0;\n} else if (\n\thasFlag('color')\n\t|| hasFlag('colors')\n\t|| hasFlag('color=true')\n\t|| hasFlag('color=always')\n) {\n\tflagForceColor = 1;\n}\n\nfunction envForceColor() {\n\tif ('FORCE_COLOR' in env) {\n\t\tif (env.FORCE_COLOR === 'true') {\n\t\t\treturn 1;\n\t\t}\n\n\t\tif (env.FORCE_COLOR === 'false') {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3,\n\t};\n}\n\nfunction _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {\n\tconst noFlagForceColor = envForceColor();\n\tif (noFlagForceColor !== undefined) {\n\t\tflagForceColor = noFlagForceColor;\n\t}\n\n\tconst forceColor = sniffFlags ? flagForceColor : noFlagForceColor;\n\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (sniffFlags) {\n\t\tif (hasFlag('color=16m')\n\t\t\t|| hasFlag('color=full')\n\t\t\t|| hasFlag('color=truecolor')) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (hasFlag('color=256')) {\n\t\t\treturn 2;\n\t\t}\n\t}\n\n\t// Check for Azure DevOps pipelines.\n\t// Has to be above the `!streamIsTTY` check.\n\tif ('TF_BUILD' in env && 'AGENT_NAME' in env) {\n\t\treturn 1;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10\n\t\t\t&& Number(osRelease[2]) >= 10_586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14_931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif ('GITHUB_ACTIONS' in env || 'GITEA_ACTIONS' in env) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-kitty') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app': {\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\t}\n\n\t\t\tcase 'Apple_Terminal': {\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nexport function createSupportsColor(stream, options = {}) {\n\tconst level = _supportsColor(stream, {\n\t\tstreamIsTTY: stream && stream.isTTY,\n\t\t...options,\n\t});\n\n\treturn translateLevel(level);\n}\n\nconst supportsColor = {\n\tstdout: createSupportsColor({isTTY: tty.isatty(1)}),\n\tstderr: createSupportsColor({isTTY: tty.isatty(2)}),\n};\n\nexport default supportsColor;\n",
|
|
92
|
-
"// TODO: When targeting Node.js 16, use `String.prototype.replaceAll`.\nexport function stringReplaceAll(string, substring, replacer) {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.slice(endIndex, index) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n\nexport function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.slice(endIndex, (gotCR ? index - 1 : index)) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n",
|
|
93
|
-
"import ansiStyles from '#ansi-styles';\nimport supportsColor from '#supports-color';\nimport { // eslint-disable-line import/order\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex,\n} from './utilities.js';\n\nconst {stdout: stdoutColor, stderr: stderrColor} = supportsColor;\n\nconst GENERATOR = Symbol('GENERATOR');\nconst STYLER = Symbol('STYLER');\nconst IS_EMPTY = Symbol('IS_EMPTY');\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m',\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nexport class Chalk {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = (...strings) => strings.join(' ');\n\tapplyOptions(chalk, options);\n\n\tObject.setPrototypeOf(chalk, createChalk.prototype);\n\n\treturn chalk;\n};\n\nfunction createChalk(options) {\n\treturn chalkFactory(options);\n}\n\nObject.setPrototypeOf(createChalk.prototype, Function.prototype);\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t},\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this[STYLER], true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t},\n};\n\nconst getModelAnsi = (model, level, type, ...arguments_) => {\n\tif (model === 'rgb') {\n\t\tif (level === 'ansi16m') {\n\t\t\treturn ansiStyles[type].ansi16m(...arguments_);\n\t\t}\n\n\t\tif (level === 'ansi256') {\n\t\t\treturn ansiStyles[type].ansi256(ansiStyles.rgbToAnsi256(...arguments_));\n\t\t}\n\n\t\treturn ansiStyles[type].ansi(ansiStyles.rgbToAnsi(...arguments_));\n\t}\n\n\tif (model === 'hex') {\n\t\treturn getModelAnsi('rgb', level, type, ...ansiStyles.hexToRgb(...arguments_));\n\t}\n\n\treturn ansiStyles[type][model](...arguments_);\n};\n\nconst usedModels = ['rgb', 'hex', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'color', ...arguments_), ansiStyles.color.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'bgColor', ...arguments_), ansiStyles.bgColor.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this[GENERATOR].level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis[GENERATOR].level = level;\n\t\t},\n\t},\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent,\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\t// Single argument is hot path, implicit coercion is faster than anything\n\t// eslint-disable-next-line no-implicit-coercion\n\tconst builder = (...arguments_) => applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder[GENERATOR] = self;\n\tbuilder[STYLER] = _styler;\n\tbuilder[IS_EMPTY] = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self[IS_EMPTY] ? '' : string;\n\t}\n\n\tlet styler = self[STYLER];\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.includes('\\u001B')) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nObject.defineProperties(createChalk.prototype, styles);\n\nconst chalk = createChalk();\nexport const chalkStderr = createChalk({level: stderrColor ? stderrColor.level : 0});\n\nexport {\n\tmodifierNames,\n\tforegroundColorNames,\n\tbackgroundColorNames,\n\tcolorNames,\n\n\t// TODO: Remove these aliases in the next major version\n\tmodifierNames as modifiers,\n\tforegroundColorNames as foregroundColors,\n\tbackgroundColorNames as backgroundColors,\n\tcolorNames as colors,\n} from './vendor/ansi-styles/index.js';\n\nexport {\n\tstdoutColor as supportsColor,\n\tstderrColor as supportsColorStderr,\n};\n\nexport default chalk;\n",
|
|
94
|
-
"import process from 'node:process';\nimport restoreCursor from 'restore-cursor';\n\nlet isHidden = false;\n\nconst cliCursor = {};\n\ncliCursor.show = (writableStream = process.stderr) => {\n\tif (!writableStream.isTTY) {\n\t\treturn;\n\t}\n\n\tisHidden = false;\n\twritableStream.write('\\u001B[?25h');\n};\n\ncliCursor.hide = (writableStream = process.stderr) => {\n\tif (!writableStream.isTTY) {\n\t\treturn;\n\t}\n\n\trestoreCursor();\n\tisHidden = true;\n\twritableStream.write('\\u001B[?25l');\n};\n\ncliCursor.toggle = (force, writableStream) => {\n\tif (force !== undefined) {\n\t\tisHidden = force;\n\t}\n\n\tif (isHidden) {\n\t\tcliCursor.show(writableStream);\n\t} else {\n\t\tcliCursor.hide(writableStream);\n\t}\n};\n\nexport default cliCursor;\n",
|
|
95
|
-
"import process from 'node:process';\nimport onetime from 'onetime';\nimport {onExit} from 'signal-exit';\n\nconst terminal = process.stderr.isTTY\n\t? process.stderr\n\t: (process.stdout.isTTY ? process.stdout : undefined);\n\nconst restoreCursor = terminal ? onetime(() => {\n\tonExit(() => {\n\t\tterminal.write('\\u001B[?25h');\n\t}, {alwaysLast: true});\n}) : () => {};\n\nexport default restoreCursor;\n",
|
|
96
|
-
"const copyProperty = (to, from, property, ignoreNonConfigurable) => {\n\t// `Function#length` should reflect the parameters of `to` not `from` since we keep its body.\n\t// `Function#prototype` is non-writable and non-configurable so can never be modified.\n\tif (property === 'length' || property === 'prototype') {\n\t\treturn;\n\t}\n\n\t// `Function#arguments` and `Function#caller` should not be copied. They were reported to be present in `Reflect.ownKeys` for some devices in React Native (#41), so we explicitly ignore them here.\n\tif (property === 'arguments' || property === 'caller') {\n\t\treturn;\n\t}\n\n\tconst toDescriptor = Object.getOwnPropertyDescriptor(to, property);\n\tconst fromDescriptor = Object.getOwnPropertyDescriptor(from, property);\n\n\tif (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {\n\t\treturn;\n\t}\n\n\tObject.defineProperty(to, property, fromDescriptor);\n};\n\n// `Object.defineProperty()` throws if the property exists, is not configurable and either:\n// - one its descriptors is changed\n// - it is non-writable and its value is changed\nconst canCopyProperty = function (toDescriptor, fromDescriptor) {\n\treturn toDescriptor === undefined || toDescriptor.configurable || (\n\t\ttoDescriptor.writable === fromDescriptor.writable\n\t\t&& toDescriptor.enumerable === fromDescriptor.enumerable\n\t\t&& toDescriptor.configurable === fromDescriptor.configurable\n\t\t&& (toDescriptor.writable || toDescriptor.value === fromDescriptor.value)\n\t);\n};\n\nconst changePrototype = (to, from) => {\n\tconst fromPrototype = Object.getPrototypeOf(from);\n\tif (fromPrototype === Object.getPrototypeOf(to)) {\n\t\treturn;\n\t}\n\n\tObject.setPrototypeOf(to, fromPrototype);\n};\n\nconst wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/\\n${fromBody}`;\n\nconst toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, 'toString');\nconst toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, 'name');\n\n// We call `from.toString()` early (not lazily) to ensure `from` can be garbage collected.\n// We use `bind()` instead of a closure for the same reason.\n// Calling `from.toString()` early also allows caching it in case `to.toString()` is called several times.\nconst changeToString = (to, from, name) => {\n\tconst withName = name === '' ? '' : `with ${name.trim()}() `;\n\tconst newToString = wrappedToString.bind(null, withName, from.toString());\n\t// Ensure `to.toString.toString` is non-enumerable and has the same `same`\n\tObject.defineProperty(newToString, 'name', toStringName);\n\tconst {writable, enumerable, configurable} = toStringDescriptor; // We destructue to avoid a potential `get` descriptor.\n\tObject.defineProperty(to, 'toString', {value: newToString, writable, enumerable, configurable});\n};\n\nexport default function mimicFunction(to, from, {ignoreNonConfigurable = false} = {}) {\n\tconst {name} = to;\n\n\tfor (const property of Reflect.ownKeys(from)) {\n\t\tcopyProperty(to, from, property, ignoreNonConfigurable);\n\t}\n\n\tchangePrototype(to, from);\n\tchangeToString(to, from, name);\n\n\treturn to;\n}\n",
|
|
97
|
-
"import mimicFunction from 'mimic-function';\n\nconst calledFunctions = new WeakMap();\n\nconst onetime = (function_, options = {}) => {\n\tif (typeof function_ !== 'function') {\n\t\tthrow new TypeError('Expected a function');\n\t}\n\n\tlet returnValue;\n\tlet callCount = 0;\n\tconst functionName = function_.displayName || function_.name || '<anonymous>';\n\n\tconst onetime = function (...arguments_) {\n\t\tcalledFunctions.set(onetime, ++callCount);\n\n\t\tif (callCount === 1) {\n\t\t\treturnValue = function_.apply(this, arguments_);\n\t\t\tfunction_ = undefined;\n\t\t} else if (options.throw === true) {\n\t\t\tthrow new Error(`Function \\`${functionName}\\` can only be called once`);\n\t\t}\n\n\t\treturn returnValue;\n\t};\n\n\tmimicFunction(onetime, function_);\n\tcalledFunctions.set(onetime, callCount);\n\n\treturn onetime;\n};\n\nonetime.callCount = function_ => {\n\tif (!calledFunctions.has(function_)) {\n\t\tthrow new Error(`The given function \\`${function_.name}\\` is not wrapped by the \\`onetime\\` package`);\n\t}\n\n\treturn calledFunctions.get(function_);\n};\n\nexport default onetime;\n",
|
|
98
|
-
"/**\n * This is not the set of all possible signals.\n *\n * It IS, however, the set of all signals that trigger\n * an exit on either Linux or BSD systems. Linux is a\n * superset of the signal names supported on BSD, and\n * the unknown signals just fail to register, so we can\n * catch that easily enough.\n *\n * Windows signals are a different set, since there are\n * signals that terminate Windows processes, but don't\n * terminate (or don't even exist) on Posix systems.\n *\n * Don't bother with SIGKILL. It's uncatchable, which\n * means that we can't fire any callbacks anyway.\n *\n * If a user does happen to register a handler on a non-\n * fatal signal like SIGWINCH or something, and then\n * exit, it'll end up firing `process.emit('exit')`, so\n * the handler will be fired anyway.\n *\n * SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n * artificially, inherently leave the process in a\n * state from which it is not safe to try and enter JS\n * listeners.\n */\nexport const signals = [];\nsignals.push('SIGHUP', 'SIGINT', 'SIGTERM');\nif (process.platform !== 'win32') {\n signals.push('SIGALRM', 'SIGABRT', 'SIGVTALRM', 'SIGXCPU', 'SIGXFSZ', 'SIGUSR2', 'SIGTRAP', 'SIGSYS', 'SIGQUIT', 'SIGIOT'\n // should detect profiler and enable/disable accordingly.\n // see #21\n // 'SIGPROF'\n );\n}\nif (process.platform === 'linux') {\n signals.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT');\n}\n//# sourceMappingURL=signals.js.map",
|
|
99
|
-
"// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\n// grab a reference to node's real process object right away\nimport { signals } from './signals.js';\nexport { signals };\nconst processOk = (process) => !!process &&\n typeof process === 'object' &&\n typeof process.removeListener === 'function' &&\n typeof process.emit === 'function' &&\n typeof process.reallyExit === 'function' &&\n typeof process.listeners === 'function' &&\n typeof process.kill === 'function' &&\n typeof process.pid === 'number' &&\n typeof process.on === 'function';\nconst kExitEmitter = Symbol.for('signal-exit emitter');\nconst global = globalThis;\nconst ObjectDefineProperty = Object.defineProperty.bind(Object);\n// teeny special purpose ee\nclass Emitter {\n emitted = {\n afterExit: false,\n exit: false,\n };\n listeners = {\n afterExit: [],\n exit: [],\n };\n count = 0;\n id = Math.random();\n constructor() {\n if (global[kExitEmitter]) {\n return global[kExitEmitter];\n }\n ObjectDefineProperty(global, kExitEmitter, {\n value: this,\n writable: false,\n enumerable: false,\n configurable: false,\n });\n }\n on(ev, fn) {\n this.listeners[ev].push(fn);\n }\n removeListener(ev, fn) {\n const list = this.listeners[ev];\n const i = list.indexOf(fn);\n /* c8 ignore start */\n if (i === -1) {\n return;\n }\n /* c8 ignore stop */\n if (i === 0 && list.length === 1) {\n list.length = 0;\n }\n else {\n list.splice(i, 1);\n }\n }\n emit(ev, code, signal) {\n if (this.emitted[ev]) {\n return false;\n }\n this.emitted[ev] = true;\n let ret = false;\n for (const fn of this.listeners[ev]) {\n ret = fn(code, signal) === true || ret;\n }\n if (ev === 'exit') {\n ret = this.emit('afterExit', code, signal) || ret;\n }\n return ret;\n }\n}\nclass SignalExitBase {\n}\nconst signalExitWrap = (handler) => {\n return {\n onExit(cb, opts) {\n return handler.onExit(cb, opts);\n },\n load() {\n return handler.load();\n },\n unload() {\n return handler.unload();\n },\n };\n};\nclass SignalExitFallback extends SignalExitBase {\n onExit() {\n return () => { };\n }\n load() { }\n unload() { }\n}\nclass SignalExit extends SignalExitBase {\n // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n // so use a supported signal instead\n /* c8 ignore start */\n #hupSig = process.platform === 'win32' ? 'SIGINT' : 'SIGHUP';\n /* c8 ignore stop */\n #emitter = new Emitter();\n #process;\n #originalProcessEmit;\n #originalProcessReallyExit;\n #sigListeners = {};\n #loaded = false;\n constructor(process) {\n super();\n this.#process = process;\n // { <signal>: <listener fn>, ... }\n this.#sigListeners = {};\n for (const sig of signals) {\n this.#sigListeners[sig] = () => {\n // If there are no other listeners, an exit is coming!\n // Simplest way: remove us and then re-send the signal.\n // We know that this will kill the process, so we can\n // safely emit now.\n const listeners = this.#process.listeners(sig);\n let { count } = this.#emitter;\n // This is a workaround for the fact that signal-exit v3 and signal\n // exit v4 are not aware of each other, and each will attempt to let\n // the other handle it, so neither of them do. To correct this, we\n // detect if we're the only handler *except* for previous versions\n // of signal-exit, and increment by the count of listeners it has\n // created.\n /* c8 ignore start */\n const p = process;\n if (typeof p.__signal_exit_emitter__ === 'object' &&\n typeof p.__signal_exit_emitter__.count === 'number') {\n count += p.__signal_exit_emitter__.count;\n }\n /* c8 ignore stop */\n if (listeners.length === count) {\n this.unload();\n const ret = this.#emitter.emit('exit', null, sig);\n /* c8 ignore start */\n const s = sig === 'SIGHUP' ? this.#hupSig : sig;\n if (!ret)\n process.kill(process.pid, s);\n /* c8 ignore stop */\n }\n };\n }\n this.#originalProcessReallyExit = process.reallyExit;\n this.#originalProcessEmit = process.emit;\n }\n onExit(cb, opts) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return () => { };\n }\n /* c8 ignore stop */\n if (this.#loaded === false) {\n this.load();\n }\n const ev = opts?.alwaysLast ? 'afterExit' : 'exit';\n this.#emitter.on(ev, cb);\n return () => {\n this.#emitter.removeListener(ev, cb);\n if (this.#emitter.listeners['exit'].length === 0 &&\n this.#emitter.listeners['afterExit'].length === 0) {\n this.unload();\n }\n };\n }\n load() {\n if (this.#loaded) {\n return;\n }\n this.#loaded = true;\n // This is the number of onSignalExit's that are in play.\n // It's important so that we can count the correct number of\n // listeners on signals, and don't wait for the other one to\n // handle it instead of us.\n this.#emitter.count += 1;\n for (const sig of signals) {\n try {\n const fn = this.#sigListeners[sig];\n if (fn)\n this.#process.on(sig, fn);\n }\n catch (_) { }\n }\n this.#process.emit = (ev, ...a) => {\n return this.#processEmit(ev, ...a);\n };\n this.#process.reallyExit = (code) => {\n return this.#processReallyExit(code);\n };\n }\n unload() {\n if (!this.#loaded) {\n return;\n }\n this.#loaded = false;\n signals.forEach(sig => {\n const listener = this.#sigListeners[sig];\n /* c8 ignore start */\n if (!listener) {\n throw new Error('Listener not defined for signal: ' + sig);\n }\n /* c8 ignore stop */\n try {\n this.#process.removeListener(sig, listener);\n /* c8 ignore start */\n }\n catch (_) { }\n /* c8 ignore stop */\n });\n this.#process.emit = this.#originalProcessEmit;\n this.#process.reallyExit = this.#originalProcessReallyExit;\n this.#emitter.count -= 1;\n }\n #processReallyExit(code) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return 0;\n }\n this.#process.exitCode = code || 0;\n /* c8 ignore stop */\n this.#emitter.emit('exit', this.#process.exitCode, null);\n return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode);\n }\n #processEmit(ev, ...args) {\n const og = this.#originalProcessEmit;\n if (ev === 'exit' && processOk(this.#process)) {\n if (typeof args[0] === 'number') {\n this.#process.exitCode = args[0];\n /* c8 ignore start */\n }\n /* c8 ignore start */\n const ret = og.call(this.#process, ev, ...args);\n /* c8 ignore start */\n this.#emitter.emit('exit', this.#process.exitCode, null);\n /* c8 ignore stop */\n return ret;\n }\n else {\n return og.call(this.#process, ev, ...args);\n }\n }\n}\nconst process = globalThis.process;\n// wrap so that we call the method on the actual handler, without\n// exporting it directly.\nexport const { \n/**\n * Called when the process is exiting, whether via signal, explicit\n * exit, or running out of stuff to do.\n *\n * If the global process object is not suitable for instrumentation,\n * then this will be a no-op.\n *\n * Returns a function that may be used to unload signal-exit.\n */\nonExit, \n/**\n * Load the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\nload, \n/**\n * Unload the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\nunload, } = signalExitWrap(processOk(process) ? new SignalExit(process) : new SignalExitFallback());\n//# sourceMappingURL=index.js.map",
|
|
100
|
-
"const ANSI_BACKGROUND_OFFSET = 10;\n\nconst wrapAnsi16 = (offset = 0) => code => `\\u001B[${code + offset}m`;\n\nconst wrapAnsi256 = (offset = 0) => code => `\\u001B[${38 + offset};5;${code}m`;\n\nconst wrapAnsi16m = (offset = 0) => (red, green, blue) => `\\u001B[${38 + offset};2;${red};${green};${blue}m`;\n\nconst styles = {\n\tmodifier: {\n\t\treset: [0, 0],\n\t\t// 21 isn't widely supported and 22 does the same thing\n\t\tbold: [1, 22],\n\t\tdim: [2, 22],\n\t\titalic: [3, 23],\n\t\tunderline: [4, 24],\n\t\toverline: [53, 55],\n\t\tinverse: [7, 27],\n\t\thidden: [8, 28],\n\t\tstrikethrough: [9, 29],\n\t},\n\tcolor: {\n\t\tblack: [30, 39],\n\t\tred: [31, 39],\n\t\tgreen: [32, 39],\n\t\tyellow: [33, 39],\n\t\tblue: [34, 39],\n\t\tmagenta: [35, 39],\n\t\tcyan: [36, 39],\n\t\twhite: [37, 39],\n\n\t\t// Bright color\n\t\tblackBright: [90, 39],\n\t\tgray: [90, 39], // Alias of `blackBright`\n\t\tgrey: [90, 39], // Alias of `blackBright`\n\t\tredBright: [91, 39],\n\t\tgreenBright: [92, 39],\n\t\tyellowBright: [93, 39],\n\t\tblueBright: [94, 39],\n\t\tmagentaBright: [95, 39],\n\t\tcyanBright: [96, 39],\n\t\twhiteBright: [97, 39],\n\t},\n\tbgColor: {\n\t\tbgBlack: [40, 49],\n\t\tbgRed: [41, 49],\n\t\tbgGreen: [42, 49],\n\t\tbgYellow: [43, 49],\n\t\tbgBlue: [44, 49],\n\t\tbgMagenta: [45, 49],\n\t\tbgCyan: [46, 49],\n\t\tbgWhite: [47, 49],\n\n\t\t// Bright color\n\t\tbgBlackBright: [100, 49],\n\t\tbgGray: [100, 49], // Alias of `bgBlackBright`\n\t\tbgGrey: [100, 49], // Alias of `bgBlackBright`\n\t\tbgRedBright: [101, 49],\n\t\tbgGreenBright: [102, 49],\n\t\tbgYellowBright: [103, 49],\n\t\tbgBlueBright: [104, 49],\n\t\tbgMagentaBright: [105, 49],\n\t\tbgCyanBright: [106, 49],\n\t\tbgWhiteBright: [107, 49],\n\t},\n};\n\nexport const modifierNames = Object.keys(styles.modifier);\nexport const foregroundColorNames = Object.keys(styles.color);\nexport const backgroundColorNames = Object.keys(styles.bgColor);\nexport const colorNames = [...foregroundColorNames, ...backgroundColorNames];\n\nfunction assembleStyles() {\n\tconst codes = new Map();\n\n\tfor (const [groupName, group] of Object.entries(styles)) {\n\t\tfor (const [styleName, style] of Object.entries(group)) {\n\t\t\tstyles[styleName] = {\n\t\t\t\topen: `\\u001B[${style[0]}m`,\n\t\t\t\tclose: `\\u001B[${style[1]}m`,\n\t\t\t};\n\n\t\t\tgroup[styleName] = styles[styleName];\n\n\t\t\tcodes.set(style[0], style[1]);\n\t\t}\n\n\t\tObject.defineProperty(styles, groupName, {\n\t\t\tvalue: group,\n\t\t\tenumerable: false,\n\t\t});\n\t}\n\n\tObject.defineProperty(styles, 'codes', {\n\t\tvalue: codes,\n\t\tenumerable: false,\n\t});\n\n\tstyles.color.close = '\\u001B[39m';\n\tstyles.bgColor.close = '\\u001B[49m';\n\n\tstyles.color.ansi = wrapAnsi16();\n\tstyles.color.ansi256 = wrapAnsi256();\n\tstyles.color.ansi16m = wrapAnsi16m();\n\tstyles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);\n\tstyles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);\n\n\t// From https://github.com/Qix-/color-convert/blob/3f0e0d4e92e235796ccb17f6e85c72094a651f49/conversions.js\n\tObject.defineProperties(styles, {\n\t\trgbToAnsi256: {\n\t\t\tvalue(red, green, blue) {\n\t\t\t\t// We use the extended greyscale palette here, with the exception of\n\t\t\t\t// black and white. normal palette only has 4 greyscale shades.\n\t\t\t\tif (red === green && green === blue) {\n\t\t\t\t\tif (red < 8) {\n\t\t\t\t\t\treturn 16;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (red > 248) {\n\t\t\t\t\t\treturn 231;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Math.round(((red - 8) / 247) * 24) + 232;\n\t\t\t\t}\n\n\t\t\t\treturn 16\n\t\t\t\t\t+ (36 * Math.round(red / 255 * 5))\n\t\t\t\t\t+ (6 * Math.round(green / 255 * 5))\n\t\t\t\t\t+ Math.round(blue / 255 * 5);\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToRgb: {\n\t\t\tvalue(hex) {\n\t\t\t\tconst matches = /[a-f\\d]{6}|[a-f\\d]{3}/i.exec(hex.toString(16));\n\t\t\t\tif (!matches) {\n\t\t\t\t\treturn [0, 0, 0];\n\t\t\t\t}\n\n\t\t\t\tlet [colorString] = matches;\n\n\t\t\t\tif (colorString.length === 3) {\n\t\t\t\t\tcolorString = [...colorString].map(character => character + character).join('');\n\t\t\t\t}\n\n\t\t\t\tconst integer = Number.parseInt(colorString, 16);\n\n\t\t\t\treturn [\n\t\t\t\t\t/* eslint-disable no-bitwise */\n\t\t\t\t\t(integer >> 16) & 0xFF,\n\t\t\t\t\t(integer >> 8) & 0xFF,\n\t\t\t\t\tinteger & 0xFF,\n\t\t\t\t\t/* eslint-enable no-bitwise */\n\t\t\t\t];\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi256: {\n\t\t\tvalue: hex => styles.rgbToAnsi256(...styles.hexToRgb(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t\tansi256ToAnsi: {\n\t\t\tvalue(code) {\n\t\t\t\tif (code < 8) {\n\t\t\t\t\treturn 30 + code;\n\t\t\t\t}\n\n\t\t\t\tif (code < 16) {\n\t\t\t\t\treturn 90 + (code - 8);\n\t\t\t\t}\n\n\t\t\t\tlet red;\n\t\t\t\tlet green;\n\t\t\t\tlet blue;\n\n\t\t\t\tif (code >= 232) {\n\t\t\t\t\tred = (((code - 232) * 10) + 8) / 255;\n\t\t\t\t\tgreen = red;\n\t\t\t\t\tblue = red;\n\t\t\t\t} else {\n\t\t\t\t\tcode -= 16;\n\n\t\t\t\t\tconst remainder = code % 36;\n\n\t\t\t\t\tred = Math.floor(code / 36) / 5;\n\t\t\t\t\tgreen = Math.floor(remainder / 6) / 5;\n\t\t\t\t\tblue = (remainder % 6) / 5;\n\t\t\t\t}\n\n\t\t\t\tconst value = Math.max(red, green, blue) * 2;\n\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn 30;\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line no-bitwise\n\t\t\t\tlet result = 30 + ((Math.round(blue) << 2) | (Math.round(green) << 1) | Math.round(red));\n\n\t\t\t\tif (value === 2) {\n\t\t\t\t\tresult += 60;\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t\trgbToAnsi: {\n\t\t\tvalue: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),\n\t\t\tenumerable: false,\n\t\t},\n\t\thexToAnsi: {\n\t\t\tvalue: hex => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),\n\t\t\tenumerable: false,\n\t\t},\n\t});\n\n\treturn styles;\n}\n\nconst ansiStyles = assembleStyles();\n\nexport default ansiStyles;\n",
|
|
101
|
-
"import process from 'node:process';\nimport os from 'node:os';\nimport tty from 'node:tty';\n\n// From: https://github.com/sindresorhus/has-flag/blob/main/index.js\n/// function hasFlag(flag, argv = globalThis.Deno?.args ?? process.argv) {\nfunction hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : process.argv) {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n}\n\nconst {env} = process;\n\nlet flagForceColor;\nif (\n\thasFlag('no-color')\n\t|| hasFlag('no-colors')\n\t|| hasFlag('color=false')\n\t|| hasFlag('color=never')\n) {\n\tflagForceColor = 0;\n} else if (\n\thasFlag('color')\n\t|| hasFlag('colors')\n\t|| hasFlag('color=true')\n\t|| hasFlag('color=always')\n) {\n\tflagForceColor = 1;\n}\n\nfunction envForceColor() {\n\tif ('FORCE_COLOR' in env) {\n\t\tif (env.FORCE_COLOR === 'true') {\n\t\t\treturn 1;\n\t\t}\n\n\t\tif (env.FORCE_COLOR === 'false') {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3,\n\t};\n}\n\nfunction _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) {\n\tconst noFlagForceColor = envForceColor();\n\tif (noFlagForceColor !== undefined) {\n\t\tflagForceColor = noFlagForceColor;\n\t}\n\n\tconst forceColor = sniffFlags ? flagForceColor : noFlagForceColor;\n\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (sniffFlags) {\n\t\tif (hasFlag('color=16m')\n\t\t\t|| hasFlag('color=full')\n\t\t\t|| hasFlag('color=truecolor')) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (hasFlag('color=256')) {\n\t\t\treturn 2;\n\t\t}\n\t}\n\n\t// Check for Azure DevOps pipelines.\n\t// Has to be above the `!streamIsTTY` check.\n\tif ('TF_BUILD' in env && 'AGENT_NAME' in env) {\n\t\treturn 1;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10\n\t\t\t&& Number(osRelease[2]) >= 10_586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14_931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif ('GITHUB_ACTIONS' in env || 'GITEA_ACTIONS' in env) {\n\t\t\treturn 3;\n\t\t}\n\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif (env.TERM === 'xterm-kitty') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app': {\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\t}\n\n\t\t\tcase 'Apple_Terminal': {\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nexport function createSupportsColor(stream, options = {}) {\n\tconst level = _supportsColor(stream, {\n\t\tstreamIsTTY: stream && stream.isTTY,\n\t\t...options,\n\t});\n\n\treturn translateLevel(level);\n}\n\nconst supportsColor = {\n\tstdout: createSupportsColor({isTTY: tty.isatty(1)}),\n\tstderr: createSupportsColor({isTTY: tty.isatty(2)}),\n};\n\nexport default supportsColor;\n",
|
|
102
|
-
"// TODO: When targeting Node.js 16, use `String.prototype.replaceAll`.\nexport function stringReplaceAll(string, substring, replacer) {\n\tlet index = string.indexOf(substring);\n\tif (index === -1) {\n\t\treturn string;\n\t}\n\n\tconst substringLength = substring.length;\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\treturnValue += string.slice(endIndex, index) + substring + replacer;\n\t\tendIndex = index + substringLength;\n\t\tindex = string.indexOf(substring, endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n\nexport function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {\n\tlet endIndex = 0;\n\tlet returnValue = '';\n\tdo {\n\t\tconst gotCR = string[index - 1] === '\\r';\n\t\treturnValue += string.slice(endIndex, (gotCR ? index - 1 : index)) + prefix + (gotCR ? '\\r\\n' : '\\n') + postfix;\n\t\tendIndex = index + 1;\n\t\tindex = string.indexOf('\\n', endIndex);\n\t} while (index !== -1);\n\n\treturnValue += string.slice(endIndex);\n\treturn returnValue;\n}\n",
|
|
103
|
-
"import ansiStyles from '#ansi-styles';\nimport supportsColor from '#supports-color';\nimport { // eslint-disable-line import/order\n\tstringReplaceAll,\n\tstringEncaseCRLFWithFirstIndex,\n} from './utilities.js';\n\nconst {stdout: stdoutColor, stderr: stderrColor} = supportsColor;\n\nconst GENERATOR = Symbol('GENERATOR');\nconst STYLER = Symbol('STYLER');\nconst IS_EMPTY = Symbol('IS_EMPTY');\n\n// `supportsColor.level` → `ansiStyles.color[name]` mapping\nconst levelMapping = [\n\t'ansi',\n\t'ansi',\n\t'ansi256',\n\t'ansi16m',\n];\n\nconst styles = Object.create(null);\n\nconst applyOptions = (object, options = {}) => {\n\tif (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {\n\t\tthrow new Error('The `level` option should be an integer from 0 to 3');\n\t}\n\n\t// Detect level if not set manually\n\tconst colorLevel = stdoutColor ? stdoutColor.level : 0;\n\tobject.level = options.level === undefined ? colorLevel : options.level;\n};\n\nexport class Chalk {\n\tconstructor(options) {\n\t\t// eslint-disable-next-line no-constructor-return\n\t\treturn chalkFactory(options);\n\t}\n}\n\nconst chalkFactory = options => {\n\tconst chalk = (...strings) => strings.join(' ');\n\tapplyOptions(chalk, options);\n\n\tObject.setPrototypeOf(chalk, createChalk.prototype);\n\n\treturn chalk;\n};\n\nfunction createChalk(options) {\n\treturn chalkFactory(options);\n}\n\nObject.setPrototypeOf(createChalk.prototype, Function.prototype);\n\nfor (const [styleName, style] of Object.entries(ansiStyles)) {\n\tstyles[styleName] = {\n\t\tget() {\n\t\t\tconst builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);\n\t\t\tObject.defineProperty(this, styleName, {value: builder});\n\t\t\treturn builder;\n\t\t},\n\t};\n}\n\nstyles.visible = {\n\tget() {\n\t\tconst builder = createBuilder(this, this[STYLER], true);\n\t\tObject.defineProperty(this, 'visible', {value: builder});\n\t\treturn builder;\n\t},\n};\n\nconst getModelAnsi = (model, level, type, ...arguments_) => {\n\tif (model === 'rgb') {\n\t\tif (level === 'ansi16m') {\n\t\t\treturn ansiStyles[type].ansi16m(...arguments_);\n\t\t}\n\n\t\tif (level === 'ansi256') {\n\t\t\treturn ansiStyles[type].ansi256(ansiStyles.rgbToAnsi256(...arguments_));\n\t\t}\n\n\t\treturn ansiStyles[type].ansi(ansiStyles.rgbToAnsi(...arguments_));\n\t}\n\n\tif (model === 'hex') {\n\t\treturn getModelAnsi('rgb', level, type, ...ansiStyles.hexToRgb(...arguments_));\n\t}\n\n\treturn ansiStyles[type][model](...arguments_);\n};\n\nconst usedModels = ['rgb', 'hex', 'ansi256'];\n\nfor (const model of usedModels) {\n\tstyles[model] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'color', ...arguments_), ansiStyles.color.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n\n\tconst bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);\n\tstyles[bgModel] = {\n\t\tget() {\n\t\t\tconst {level} = this;\n\t\t\treturn function (...arguments_) {\n\t\t\t\tconst styler = createStyler(getModelAnsi(model, levelMapping[level], 'bgColor', ...arguments_), ansiStyles.bgColor.close, this[STYLER]);\n\t\t\t\treturn createBuilder(this, styler, this[IS_EMPTY]);\n\t\t\t};\n\t\t},\n\t};\n}\n\nconst proto = Object.defineProperties(() => {}, {\n\t...styles,\n\tlevel: {\n\t\tenumerable: true,\n\t\tget() {\n\t\t\treturn this[GENERATOR].level;\n\t\t},\n\t\tset(level) {\n\t\t\tthis[GENERATOR].level = level;\n\t\t},\n\t},\n});\n\nconst createStyler = (open, close, parent) => {\n\tlet openAll;\n\tlet closeAll;\n\tif (parent === undefined) {\n\t\topenAll = open;\n\t\tcloseAll = close;\n\t} else {\n\t\topenAll = parent.openAll + open;\n\t\tcloseAll = close + parent.closeAll;\n\t}\n\n\treturn {\n\t\topen,\n\t\tclose,\n\t\topenAll,\n\t\tcloseAll,\n\t\tparent,\n\t};\n};\n\nconst createBuilder = (self, _styler, _isEmpty) => {\n\t// Single argument is hot path, implicit coercion is faster than anything\n\t// eslint-disable-next-line no-implicit-coercion\n\tconst builder = (...arguments_) => applyStyle(builder, (arguments_.length === 1) ? ('' + arguments_[0]) : arguments_.join(' '));\n\n\t// We alter the prototype because we must return a function, but there is\n\t// no way to create a function with a different prototype\n\tObject.setPrototypeOf(builder, proto);\n\n\tbuilder[GENERATOR] = self;\n\tbuilder[STYLER] = _styler;\n\tbuilder[IS_EMPTY] = _isEmpty;\n\n\treturn builder;\n};\n\nconst applyStyle = (self, string) => {\n\tif (self.level <= 0 || !string) {\n\t\treturn self[IS_EMPTY] ? '' : string;\n\t}\n\n\tlet styler = self[STYLER];\n\n\tif (styler === undefined) {\n\t\treturn string;\n\t}\n\n\tconst {openAll, closeAll} = styler;\n\tif (string.includes('\\u001B')) {\n\t\twhile (styler !== undefined) {\n\t\t\t// Replace any instances already present with a re-opening code\n\t\t\t// otherwise only the part of the string until said closing code\n\t\t\t// will be colored, and the rest will simply be 'plain'.\n\t\t\tstring = stringReplaceAll(string, styler.close, styler.open);\n\n\t\t\tstyler = styler.parent;\n\t\t}\n\t}\n\n\t// We can move both next actions out of loop, because remaining actions in loop won't have\n\t// any/visible effect on parts we add here. Close the styling before a linebreak and reopen\n\t// after next line to fix a bleed issue on macOS: https://github.com/chalk/chalk/pull/92\n\tconst lfIndex = string.indexOf('\\n');\n\tif (lfIndex !== -1) {\n\t\tstring = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);\n\t}\n\n\treturn openAll + string + closeAll;\n};\n\nObject.defineProperties(createChalk.prototype, styles);\n\nconst chalk = createChalk();\nexport const chalkStderr = createChalk({level: stderrColor ? stderrColor.level : 0});\n\nexport {\n\tmodifierNames,\n\tforegroundColorNames,\n\tbackgroundColorNames,\n\tcolorNames,\n\n\t// TODO: Remove these aliases in the next major version\n\tmodifierNames as modifiers,\n\tforegroundColorNames as foregroundColors,\n\tbackgroundColorNames as backgroundColors,\n\tcolorNames as colors,\n} from './vendor/ansi-styles/index.js';\n\nexport {\n\tstdoutColor as supportsColor,\n\tstderrColor as supportsColorStderr,\n};\n\nexport default chalk;\n",
|
|
104
|
-
"import process from 'node:process';\n\nexport default function isUnicodeSupported() {\n\tif (process.platform !== 'win32') {\n\t\treturn process.env.TERM !== 'linux'; // Linux console (kernel)\n\t}\n\n\treturn Boolean(process.env.CI)\n\t\t|| Boolean(process.env.WT_SESSION) // Windows Terminal\n\t\t|| Boolean(process.env.TERMINUS_SUBLIME) // Terminus (<0.2.27)\n\t\t|| process.env.ConEmuTask === '{cmd::Cmder}' // ConEmu and cmder\n\t\t|| process.env.TERM_PROGRAM === 'Terminus-Sublime'\n\t\t|| process.env.TERM_PROGRAM === 'vscode'\n\t\t|| process.env.TERM === 'xterm-256color'\n\t\t|| process.env.TERM === 'alacritty'\n\t\t|| process.env.TERMINAL_EMULATOR === 'JetBrains-JediTerm';\n}\n",
|
|
105
|
-
"import chalk from 'chalk';\nimport isUnicodeSupported from 'is-unicode-supported';\n\nconst main = {\n\tinfo: chalk.blue('ℹ'),\n\tsuccess: chalk.green('✔'),\n\twarning: chalk.yellow('⚠'),\n\terror: chalk.red('✖'),\n};\n\nconst fallback = {\n\tinfo: chalk.blue('i'),\n\tsuccess: chalk.green('√'),\n\twarning: chalk.yellow('‼'),\n\terror: chalk.red('×'),\n};\n\nconst logSymbols = isUnicodeSupported() ? main : fallback;\n\nexport default logSymbols;\n",
|
|
106
|
-
"export default function ansiRegex({onlyFirst = false} = {}) {\n\t// Valid string terminator sequences are BEL, ESC\\, and 0x9c\n\tconst ST = '(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C)';\n\tconst pattern = [\n\t\t`[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?${ST})`,\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))',\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n",
|
|
107
|
-
"import ansiRegex from 'ansi-regex';\n\nconst regex = ansiRegex();\n\nexport default function stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n",
|
|
108
|
-
"// Generated code.\n\nfunction isAmbiguous(x) {\n\treturn x === 0xA1\n\t\t|| x === 0xA4\n\t\t|| x === 0xA7\n\t\t|| x === 0xA8\n\t\t|| x === 0xAA\n\t\t|| x === 0xAD\n\t\t|| x === 0xAE\n\t\t|| x >= 0xB0 && x <= 0xB4\n\t\t|| x >= 0xB6 && x <= 0xBA\n\t\t|| x >= 0xBC && x <= 0xBF\n\t\t|| x === 0xC6\n\t\t|| x === 0xD0\n\t\t|| x === 0xD7\n\t\t|| x === 0xD8\n\t\t|| x >= 0xDE && x <= 0xE1\n\t\t|| x === 0xE6\n\t\t|| x >= 0xE8 && x <= 0xEA\n\t\t|| x === 0xEC\n\t\t|| x === 0xED\n\t\t|| x === 0xF0\n\t\t|| x === 0xF2\n\t\t|| x === 0xF3\n\t\t|| x >= 0xF7 && x <= 0xFA\n\t\t|| x === 0xFC\n\t\t|| x === 0xFE\n\t\t|| x === 0x101\n\t\t|| x === 0x111\n\t\t|| x === 0x113\n\t\t|| x === 0x11B\n\t\t|| x === 0x126\n\t\t|| x === 0x127\n\t\t|| x === 0x12B\n\t\t|| x >= 0x131 && x <= 0x133\n\t\t|| x === 0x138\n\t\t|| x >= 0x13F && x <= 0x142\n\t\t|| x === 0x144\n\t\t|| x >= 0x148 && x <= 0x14B\n\t\t|| x === 0x14D\n\t\t|| x === 0x152\n\t\t|| x === 0x153\n\t\t|| x === 0x166\n\t\t|| x === 0x167\n\t\t|| x === 0x16B\n\t\t|| x === 0x1CE\n\t\t|| x === 0x1D0\n\t\t|| x === 0x1D2\n\t\t|| x === 0x1D4\n\t\t|| x === 0x1D6\n\t\t|| x === 0x1D8\n\t\t|| x === 0x1DA\n\t\t|| x === 0x1DC\n\t\t|| x === 0x251\n\t\t|| x === 0x261\n\t\t|| x === 0x2C4\n\t\t|| x === 0x2C7\n\t\t|| x >= 0x2C9 && x <= 0x2CB\n\t\t|| x === 0x2CD\n\t\t|| x === 0x2D0\n\t\t|| x >= 0x2D8 && x <= 0x2DB\n\t\t|| x === 0x2DD\n\t\t|| x === 0x2DF\n\t\t|| x >= 0x300 && x <= 0x36F\n\t\t|| x >= 0x391 && x <= 0x3A1\n\t\t|| x >= 0x3A3 && x <= 0x3A9\n\t\t|| x >= 0x3B1 && x <= 0x3C1\n\t\t|| x >= 0x3C3 && x <= 0x3C9\n\t\t|| x === 0x401\n\t\t|| x >= 0x410 && x <= 0x44F\n\t\t|| x === 0x451\n\t\t|| x === 0x2010\n\t\t|| x >= 0x2013 && x <= 0x2016\n\t\t|| x === 0x2018\n\t\t|| x === 0x2019\n\t\t|| x === 0x201C\n\t\t|| x === 0x201D\n\t\t|| x >= 0x2020 && x <= 0x2022\n\t\t|| x >= 0x2024 && x <= 0x2027\n\t\t|| x === 0x2030\n\t\t|| x === 0x2032\n\t\t|| x === 0x2033\n\t\t|| x === 0x2035\n\t\t|| x === 0x203B\n\t\t|| x === 0x203E\n\t\t|| x === 0x2074\n\t\t|| x === 0x207F\n\t\t|| x >= 0x2081 && x <= 0x2084\n\t\t|| x === 0x20AC\n\t\t|| x === 0x2103\n\t\t|| x === 0x2105\n\t\t|| x === 0x2109\n\t\t|| x === 0x2113\n\t\t|| x === 0x2116\n\t\t|| x === 0x2121\n\t\t|| x === 0x2122\n\t\t|| x === 0x2126\n\t\t|| x === 0x212B\n\t\t|| x === 0x2153\n\t\t|| x === 0x2154\n\t\t|| x >= 0x215B && x <= 0x215E\n\t\t|| x >= 0x2160 && x <= 0x216B\n\t\t|| x >= 0x2170 && x <= 0x2179\n\t\t|| x === 0x2189\n\t\t|| x >= 0x2190 && x <= 0x2199\n\t\t|| x === 0x21B8\n\t\t|| x === 0x21B9\n\t\t|| x === 0x21D2\n\t\t|| x === 0x21D4\n\t\t|| x === 0x21E7\n\t\t|| x === 0x2200\n\t\t|| x === 0x2202\n\t\t|| x === 0x2203\n\t\t|| x === 0x2207\n\t\t|| x === 0x2208\n\t\t|| x === 0x220B\n\t\t|| x === 0x220F\n\t\t|| x === 0x2211\n\t\t|| x === 0x2215\n\t\t|| x === 0x221A\n\t\t|| x >= 0x221D && x <= 0x2220\n\t\t|| x === 0x2223\n\t\t|| x === 0x2225\n\t\t|| x >= 0x2227 && x <= 0x222C\n\t\t|| x === 0x222E\n\t\t|| x >= 0x2234 && x <= 0x2237\n\t\t|| x === 0x223C\n\t\t|| x === 0x223D\n\t\t|| x === 0x2248\n\t\t|| x === 0x224C\n\t\t|| x === 0x2252\n\t\t|| x === 0x2260\n\t\t|| x === 0x2261\n\t\t|| x >= 0x2264 && x <= 0x2267\n\t\t|| x === 0x226A\n\t\t|| x === 0x226B\n\t\t|| x === 0x226E\n\t\t|| x === 0x226F\n\t\t|| x === 0x2282\n\t\t|| x === 0x2283\n\t\t|| x === 0x2286\n\t\t|| x === 0x2287\n\t\t|| x === 0x2295\n\t\t|| x === 0x2299\n\t\t|| x === 0x22A5\n\t\t|| x === 0x22BF\n\t\t|| x === 0x2312\n\t\t|| x >= 0x2460 && x <= 0x24E9\n\t\t|| x >= 0x24EB && x <= 0x254B\n\t\t|| x >= 0x2550 && x <= 0x2573\n\t\t|| x >= 0x2580 && x <= 0x258F\n\t\t|| x >= 0x2592 && x <= 0x2595\n\t\t|| x === 0x25A0\n\t\t|| x === 0x25A1\n\t\t|| x >= 0x25A3 && x <= 0x25A9\n\t\t|| x === 0x25B2\n\t\t|| x === 0x25B3\n\t\t|| x === 0x25B6\n\t\t|| x === 0x25B7\n\t\t|| x === 0x25BC\n\t\t|| x === 0x25BD\n\t\t|| x === 0x25C0\n\t\t|| x === 0x25C1\n\t\t|| x >= 0x25C6 && x <= 0x25C8\n\t\t|| x === 0x25CB\n\t\t|| x >= 0x25CE && x <= 0x25D1\n\t\t|| x >= 0x25E2 && x <= 0x25E5\n\t\t|| x === 0x25EF\n\t\t|| x === 0x2605\n\t\t|| x === 0x2606\n\t\t|| x === 0x2609\n\t\t|| x === 0x260E\n\t\t|| x === 0x260F\n\t\t|| x === 0x261C\n\t\t|| x === 0x261E\n\t\t|| x === 0x2640\n\t\t|| x === 0x2642\n\t\t|| x === 0x2660\n\t\t|| x === 0x2661\n\t\t|| x >= 0x2663 && x <= 0x2665\n\t\t|| x >= 0x2667 && x <= 0x266A\n\t\t|| x === 0x266C\n\t\t|| x === 0x266D\n\t\t|| x === 0x266F\n\t\t|| x === 0x269E\n\t\t|| x === 0x269F\n\t\t|| x === 0x26BF\n\t\t|| x >= 0x26C6 && x <= 0x26CD\n\t\t|| x >= 0x26CF && x <= 0x26D3\n\t\t|| x >= 0x26D5 && x <= 0x26E1\n\t\t|| x === 0x26E3\n\t\t|| x === 0x26E8\n\t\t|| x === 0x26E9\n\t\t|| x >= 0x26EB && x <= 0x26F1\n\t\t|| x === 0x26F4\n\t\t|| x >= 0x26F6 && x <= 0x26F9\n\t\t|| x === 0x26FB\n\t\t|| x === 0x26FC\n\t\t|| x === 0x26FE\n\t\t|| x === 0x26FF\n\t\t|| x === 0x273D\n\t\t|| x >= 0x2776 && x <= 0x277F\n\t\t|| x >= 0x2B56 && x <= 0x2B59\n\t\t|| x >= 0x3248 && x <= 0x324F\n\t\t|| x >= 0xE000 && x <= 0xF8FF\n\t\t|| x >= 0xFE00 && x <= 0xFE0F\n\t\t|| x === 0xFFFD\n\t\t|| x >= 0x1F100 && x <= 0x1F10A\n\t\t|| x >= 0x1F110 && x <= 0x1F12D\n\t\t|| x >= 0x1F130 && x <= 0x1F169\n\t\t|| x >= 0x1F170 && x <= 0x1F18D\n\t\t|| x === 0x1F18F\n\t\t|| x === 0x1F190\n\t\t|| x >= 0x1F19B && x <= 0x1F1AC\n\t\t|| x >= 0xE0100 && x <= 0xE01EF\n\t\t|| x >= 0xF0000 && x <= 0xFFFFD\n\t\t|| x >= 0x100000 && x <= 0x10FFFD;\n}\n\nfunction isFullWidth(x) {\n\treturn x === 0x3000\n\t\t|| x >= 0xFF01 && x <= 0xFF60\n\t\t|| x >= 0xFFE0 && x <= 0xFFE6;\n}\n\nfunction isWide(x) {\n\treturn x >= 0x1100 && x <= 0x115F\n\t\t|| x === 0x231A\n\t\t|| x === 0x231B\n\t\t|| x === 0x2329\n\t\t|| x === 0x232A\n\t\t|| x >= 0x23E9 && x <= 0x23EC\n\t\t|| x === 0x23F0\n\t\t|| x === 0x23F3\n\t\t|| x === 0x25FD\n\t\t|| x === 0x25FE\n\t\t|| x === 0x2614\n\t\t|| x === 0x2615\n\t\t|| x >= 0x2648 && x <= 0x2653\n\t\t|| x === 0x267F\n\t\t|| x === 0x2693\n\t\t|| x === 0x26A1\n\t\t|| x === 0x26AA\n\t\t|| x === 0x26AB\n\t\t|| x === 0x26BD\n\t\t|| x === 0x26BE\n\t\t|| x === 0x26C4\n\t\t|| x === 0x26C5\n\t\t|| x === 0x26CE\n\t\t|| x === 0x26D4\n\t\t|| x === 0x26EA\n\t\t|| x === 0x26F2\n\t\t|| x === 0x26F3\n\t\t|| x === 0x26F5\n\t\t|| x === 0x26FA\n\t\t|| x === 0x26FD\n\t\t|| x === 0x2705\n\t\t|| x === 0x270A\n\t\t|| x === 0x270B\n\t\t|| x === 0x2728\n\t\t|| x === 0x274C\n\t\t|| x === 0x274E\n\t\t|| x >= 0x2753 && x <= 0x2755\n\t\t|| x === 0x2757\n\t\t|| x >= 0x2795 && x <= 0x2797\n\t\t|| x === 0x27B0\n\t\t|| x === 0x27BF\n\t\t|| x === 0x2B1B\n\t\t|| x === 0x2B1C\n\t\t|| x === 0x2B50\n\t\t|| x === 0x2B55\n\t\t|| x >= 0x2E80 && x <= 0x2E99\n\t\t|| x >= 0x2E9B && x <= 0x2EF3\n\t\t|| x >= 0x2F00 && x <= 0x2FD5\n\t\t|| x >= 0x2FF0 && x <= 0x2FFF\n\t\t|| x >= 0x3001 && x <= 0x303E\n\t\t|| x >= 0x3041 && x <= 0x3096\n\t\t|| x >= 0x3099 && x <= 0x30FF\n\t\t|| x >= 0x3105 && x <= 0x312F\n\t\t|| x >= 0x3131 && x <= 0x318E\n\t\t|| x >= 0x3190 && x <= 0x31E3\n\t\t|| x >= 0x31EF && x <= 0x321E\n\t\t|| x >= 0x3220 && x <= 0x3247\n\t\t|| x >= 0x3250 && x <= 0x4DBF\n\t\t|| x >= 0x4E00 && x <= 0xA48C\n\t\t|| x >= 0xA490 && x <= 0xA4C6\n\t\t|| x >= 0xA960 && x <= 0xA97C\n\t\t|| x >= 0xAC00 && x <= 0xD7A3\n\t\t|| x >= 0xF900 && x <= 0xFAFF\n\t\t|| x >= 0xFE10 && x <= 0xFE19\n\t\t|| x >= 0xFE30 && x <= 0xFE52\n\t\t|| x >= 0xFE54 && x <= 0xFE66\n\t\t|| x >= 0xFE68 && x <= 0xFE6B\n\t\t|| x >= 0x16FE0 && x <= 0x16FE4\n\t\t|| x === 0x16FF0\n\t\t|| x === 0x16FF1\n\t\t|| x >= 0x17000 && x <= 0x187F7\n\t\t|| x >= 0x18800 && x <= 0x18CD5\n\t\t|| x >= 0x18D00 && x <= 0x18D08\n\t\t|| x >= 0x1AFF0 && x <= 0x1AFF3\n\t\t|| x >= 0x1AFF5 && x <= 0x1AFFB\n\t\t|| x === 0x1AFFD\n\t\t|| x === 0x1AFFE\n\t\t|| x >= 0x1B000 && x <= 0x1B122\n\t\t|| x === 0x1B132\n\t\t|| x >= 0x1B150 && x <= 0x1B152\n\t\t|| x === 0x1B155\n\t\t|| x >= 0x1B164 && x <= 0x1B167\n\t\t|| x >= 0x1B170 && x <= 0x1B2FB\n\t\t|| x === 0x1F004\n\t\t|| x === 0x1F0CF\n\t\t|| x === 0x1F18E\n\t\t|| x >= 0x1F191 && x <= 0x1F19A\n\t\t|| x >= 0x1F200 && x <= 0x1F202\n\t\t|| x >= 0x1F210 && x <= 0x1F23B\n\t\t|| x >= 0x1F240 && x <= 0x1F248\n\t\t|| x === 0x1F250\n\t\t|| x === 0x1F251\n\t\t|| x >= 0x1F260 && x <= 0x1F265\n\t\t|| x >= 0x1F300 && x <= 0x1F320\n\t\t|| x >= 0x1F32D && x <= 0x1F335\n\t\t|| x >= 0x1F337 && x <= 0x1F37C\n\t\t|| x >= 0x1F37E && x <= 0x1F393\n\t\t|| x >= 0x1F3A0 && x <= 0x1F3CA\n\t\t|| x >= 0x1F3CF && x <= 0x1F3D3\n\t\t|| x >= 0x1F3E0 && x <= 0x1F3F0\n\t\t|| x === 0x1F3F4\n\t\t|| x >= 0x1F3F8 && x <= 0x1F43E\n\t\t|| x === 0x1F440\n\t\t|| x >= 0x1F442 && x <= 0x1F4FC\n\t\t|| x >= 0x1F4FF && x <= 0x1F53D\n\t\t|| x >= 0x1F54B && x <= 0x1F54E\n\t\t|| x >= 0x1F550 && x <= 0x1F567\n\t\t|| x === 0x1F57A\n\t\t|| x === 0x1F595\n\t\t|| x === 0x1F596\n\t\t|| x === 0x1F5A4\n\t\t|| x >= 0x1F5FB && x <= 0x1F64F\n\t\t|| x >= 0x1F680 && x <= 0x1F6C5\n\t\t|| x === 0x1F6CC\n\t\t|| x >= 0x1F6D0 && x <= 0x1F6D2\n\t\t|| x >= 0x1F6D5 && x <= 0x1F6D7\n\t\t|| x >= 0x1F6DC && x <= 0x1F6DF\n\t\t|| x === 0x1F6EB\n\t\t|| x === 0x1F6EC\n\t\t|| x >= 0x1F6F4 && x <= 0x1F6FC\n\t\t|| x >= 0x1F7E0 && x <= 0x1F7EB\n\t\t|| x === 0x1F7F0\n\t\t|| x >= 0x1F90C && x <= 0x1F93A\n\t\t|| x >= 0x1F93C && x <= 0x1F945\n\t\t|| x >= 0x1F947 && x <= 0x1F9FF\n\t\t|| x >= 0x1FA70 && x <= 0x1FA7C\n\t\t|| x >= 0x1FA80 && x <= 0x1FA88\n\t\t|| x >= 0x1FA90 && x <= 0x1FABD\n\t\t|| x >= 0x1FABF && x <= 0x1FAC5\n\t\t|| x >= 0x1FACE && x <= 0x1FADB\n\t\t|| x >= 0x1FAE0 && x <= 0x1FAE8\n\t\t|| x >= 0x1FAF0 && x <= 0x1FAF8\n\t\t|| x >= 0x20000 && x <= 0x2FFFD\n\t\t|| x >= 0x30000 && x <= 0x3FFFD;\n}\n\nfunction getCategory(x) {\n\tif (isAmbiguous(x)) return 'ambiguous';\n\n\tif (isFullWidth(x)) return 'fullwidth';\n\n\tif (\n\t\tx === 0x20A9\n\t\t|| x >= 0xFF61 && x <= 0xFFBE\n\t\t|| x >= 0xFFC2 && x <= 0xFFC7\n\t\t|| x >= 0xFFCA && x <= 0xFFCF\n\t\t|| x >= 0xFFD2 && x <= 0xFFD7\n\t\t|| x >= 0xFFDA && x <= 0xFFDC\n\t\t|| x >= 0xFFE8 && x <= 0xFFEE\n\t) {\n\t\treturn 'halfwidth';\n\t}\n\n\tif (\n\t\tx >= 0x20 && x <= 0x7E\n\t\t|| x === 0xA2\n\t\t|| x === 0xA3\n\t\t|| x === 0xA5\n\t\t|| x === 0xA6\n\t\t|| x === 0xAC\n\t\t|| x === 0xAF\n\t\t|| x >= 0x27E6 && x <= 0x27ED\n\t\t|| x === 0x2985\n\t\t|| x === 0x2986\n\t) {\n\t\treturn 'narrow';\n\t}\n\n\tif (isWide(x)) return 'wide';\n\n\treturn 'neutral';\n}\n\nexport {isAmbiguous, isFullWidth, isWide, getCategory};\n",
|
|
109
|
-
"import {getCategory, isAmbiguous, isFullWidth, isWide} from './lookup.js';\n\nfunction validate(codePoint) {\n\tif (!Number.isSafeInteger(codePoint)) {\n\t\tthrow new TypeError(`Expected a code point, got \\`${typeof codePoint}\\`.`);\n\t}\n}\n\nexport function eastAsianWidthType(codePoint) {\n\tvalidate(codePoint);\n\n\treturn getCategory(codePoint);\n}\n\nexport function eastAsianWidth(codePoint, {ambiguousAsWide = false} = {}) {\n\tvalidate(codePoint);\n\n\tif (\n\t\tisFullWidth(codePoint)\n\t\t|| isWide(codePoint)\n\t\t|| (ambiguousAsWide && isAmbiguous(codePoint))\n\t) {\n\t\treturn 2;\n\t}\n\n\treturn 1;\n}\n\n// For Prettier. This doesn't count \"ambiguous\" characters or check for valid input.\n// https://github.com/sindresorhus/get-east-asian-width/pull/6\nexport const _isNarrowWidth = codePoint => !(isFullWidth(codePoint) || isWide(codePoint));\n",
|
|
110
|
-
"export default () => {\n\t// https://mths.be/emoji\n\treturn /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE89\\uDE8F-\\uDEC2\\uDEC6\\uDECE-\\uDEDC\\uDEDF-\\uDEE9]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n",
|
|
111
|
-
"import stripAnsi from 'strip-ansi';\nimport {eastAsianWidth} from 'get-east-asian-width';\nimport emojiRegex from 'emoji-regex';\n\nconst segmenter = new Intl.Segmenter();\n\nconst defaultIgnorableCodePointRegex = /^\\p{Default_Ignorable_Code_Point}$/u;\n\nexport default function stringWidth(string, options = {}) {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tconst {\n\t\tambiguousIsNarrow = true,\n\t\tcountAnsiEscapeCodes = false,\n\t} = options;\n\n\tif (!countAnsiEscapeCodes) {\n\t\tstring = stripAnsi(string);\n\t}\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tlet width = 0;\n\tconst eastAsianWidthOptions = {ambiguousAsWide: !ambiguousIsNarrow};\n\n\tfor (const {segment: character} of segmenter.segment(string)) {\n\t\tconst codePoint = character.codePointAt(0);\n\n\t\t// Ignore control characters\n\t\tif (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore zero-width characters\n\t\tif (\n\t\t\t(codePoint >= 0x20_0B && codePoint <= 0x20_0F) // Zero-width space, non-joiner, joiner, left-to-right mark, right-to-left mark\n\t\t\t|| codePoint === 0xFE_FF // Zero-width no-break space\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (\n\t\t\t(codePoint >= 0x3_00 && codePoint <= 0x3_6F) // Combining diacritical marks\n\t\t\t|| (codePoint >= 0x1A_B0 && codePoint <= 0x1A_FF) // Combining diacritical marks extended\n\t\t\t|| (codePoint >= 0x1D_C0 && codePoint <= 0x1D_FF) // Combining diacritical marks supplement\n\t\t\t|| (codePoint >= 0x20_D0 && codePoint <= 0x20_FF) // Combining diacritical marks for symbols\n\t\t\t|| (codePoint >= 0xFE_20 && codePoint <= 0xFE_2F) // Combining half marks\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore surrogate pairs\n\t\tif (codePoint >= 0xD8_00 && codePoint <= 0xDF_FF) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore variation selectors\n\t\tif (codePoint >= 0xFE_00 && codePoint <= 0xFE_0F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// This covers some of the above cases, but we still keep them for performance reasons.\n\t\tif (defaultIgnorableCodePointRegex.test(character)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// TODO: Use `/\\p{RGI_Emoji}/v` when targeting Node.js 20.\n\t\tif (emojiRegex().test(character)) {\n\t\t\twidth += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\twidth += eastAsianWidth(codePoint, eastAsianWidthOptions);\n\t}\n\n\treturn width;\n}\n",
|
|
112
|
-
"export default function isInteractive({stream = process.stdout} = {}) {\n\treturn Boolean(\n\t\tstream && stream.isTTY &&\n\t\tprocess.env.TERM !== 'dumb' &&\n\t\t!('CI' in process.env)\n\t);\n}\n",
|
|
113
|
-
"import process from 'node:process';\n\nexport default function isUnicodeSupported() {\n\tconst {env} = process;\n\tconst {TERM, TERM_PROGRAM} = env;\n\n\tif (process.platform !== 'win32') {\n\t\treturn TERM !== 'linux'; // Linux console (kernel)\n\t}\n\n\treturn Boolean(env.WT_SESSION) // Windows Terminal\n\t\t|| Boolean(env.TERMINUS_SUBLIME) // Terminus (<0.2.27)\n\t\t|| env.ConEmuTask === '{cmd::Cmder}' // ConEmu and cmder\n\t\t|| TERM_PROGRAM === 'Terminus-Sublime'\n\t\t|| TERM_PROGRAM === 'vscode'\n\t\t|| TERM === 'xterm-256color'\n\t\t|| TERM === 'alacritty'\n\t\t|| TERM === 'rxvt-unicode'\n\t\t|| TERM === 'rxvt-unicode-256color'\n\t\t|| env.TERMINAL_EMULATOR === 'JetBrains-JediTerm';\n}\n",
|
|
114
|
-
"import process from 'node:process';\n\nconst ASCII_ETX_CODE = 0x03; // Ctrl+C emits this code\n\nclass StdinDiscarder {\n\t#activeCount = 0;\n\n\tstart() {\n\t\tthis.#activeCount++;\n\n\t\tif (this.#activeCount === 1) {\n\t\t\tthis.#realStart();\n\t\t}\n\t}\n\n\tstop() {\n\t\tif (this.#activeCount <= 0) {\n\t\t\tthrow new Error('`stop` called more times than `start`');\n\t\t}\n\n\t\tthis.#activeCount--;\n\n\t\tif (this.#activeCount === 0) {\n\t\t\tthis.#realStop();\n\t\t}\n\t}\n\n\t#realStart() {\n\t\t// No known way to make it work reliably on Windows.\n\t\tif (process.platform === 'win32' || !process.stdin.isTTY) {\n\t\t\treturn;\n\t\t}\n\n\t\tprocess.stdin.setRawMode(true);\n\t\tprocess.stdin.on('data', this.#handleInput);\n\t\tprocess.stdin.resume();\n\t}\n\n\t#realStop() {\n\t\tif (!process.stdin.isTTY) {\n\t\t\treturn;\n\t\t}\n\n\t\tprocess.stdin.off('data', this.#handleInput);\n\t\tprocess.stdin.pause();\n\t\tprocess.stdin.setRawMode(false);\n\t}\n\n\t#handleInput(chunk) {\n\t\t// Allow Ctrl+C to gracefully exit.\n\t\tif (chunk[0] === ASCII_ETX_CODE) {\n\t\t\tprocess.emit('SIGINT');\n\t\t}\n\t}\n}\n\nconst stdinDiscarder = new StdinDiscarder();\n\nexport default stdinDiscarder;\n",
|
|
115
|
-
"import ora from 'ora'\n\nexport const spinner: typeof ora = ora\n"
|
|
116
|
-
],
|
|
117
|
-
"mappings": "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",
|
|
118
|
-
"debugId": "53F080330C649E6464756E2164756E21",
|
|
119
|
-
"names": []
|
|
120
|
-
}
|