mirror of
https://github.com/cachix/install-nix-action.git
synced 2025-05-15 12:07:14 +00:00
v6
This commit is contained in:
parent
cd5893b2c6
commit
70742d22d9
6774 changed files with 1602535 additions and 1 deletions
35
node_modules/prompts/lib/util/action.js
generated
vendored
Normal file
35
node_modules/prompts/lib/util/action.js
generated
vendored
Normal file
|
@ -0,0 +1,35 @@
|
|||
'use strict';
|
||||
|
||||
module.exports = (key, isSelect) => {
|
||||
if (key.meta) return;
|
||||
|
||||
if (key.ctrl) {
|
||||
if (key.name === 'a') return 'first';
|
||||
if (key.name === 'c') return 'abort';
|
||||
if (key.name === 'd') return 'abort';
|
||||
if (key.name === 'e') return 'last';
|
||||
if (key.name === 'g') return 'reset';
|
||||
}
|
||||
|
||||
if (isSelect) {
|
||||
if (key.name === 'j') return 'down';
|
||||
if (key.name === 'k') return 'up';
|
||||
}
|
||||
|
||||
if (key.name === 'return') return 'submit';
|
||||
if (key.name === 'enter') return 'submit'; // ctrl + J
|
||||
if (key.name === 'backspace') return 'delete';
|
||||
if (key.name === 'delete') return 'deleteForward';
|
||||
if (key.name === 'abort') return 'abort';
|
||||
if (key.name === 'escape') return 'abort';
|
||||
if (key.name === 'tab') return 'next';
|
||||
if (key.name === 'pagedown') return 'nextPage';
|
||||
if (key.name === 'pageup') return 'prevPage';
|
||||
|
||||
if (key.name === 'up') return 'up';
|
||||
if (key.name === 'down') return 'down';
|
||||
if (key.name === 'right') return 'right';
|
||||
if (key.name === 'left') return 'left';
|
||||
|
||||
return false;
|
||||
};
|
18
node_modules/prompts/lib/util/clear.js
generated
vendored
Normal file
18
node_modules/prompts/lib/util/clear.js
generated
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
'use strict';
|
||||
|
||||
const strip = require('./strip');
|
||||
const { erase, cursor } = require('sisteransi');
|
||||
|
||||
const width = str => [...strip(str)].length;
|
||||
|
||||
module.exports = function(prompt, perLine = process.stdout.columns) {
|
||||
if (!perLine) return erase.line + cursor.to(0);
|
||||
|
||||
let rows = 0;
|
||||
const lines = prompt.split(/\r?\n/);
|
||||
for (let line of lines) {
|
||||
rows += 1 + Math.floor(Math.max(width(line) - 1, 0) / perLine);
|
||||
}
|
||||
|
||||
return (erase.line + cursor.prevLine()).repeat(rows - 1) + erase.line + cursor.to(0);
|
||||
};
|
33
node_modules/prompts/lib/util/figures.js
generated
vendored
Normal file
33
node_modules/prompts/lib/util/figures.js
generated
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
'use strict';
|
||||
|
||||
const main = {
|
||||
arrowUp: '↑',
|
||||
arrowDown: '↓',
|
||||
arrowLeft: '←',
|
||||
arrowRight: '→',
|
||||
radioOn: '◉',
|
||||
radioOff: '◯',
|
||||
tick: '✔',
|
||||
cross: '✖',
|
||||
ellipsis: '…',
|
||||
pointerSmall: '›',
|
||||
line: '─',
|
||||
pointer: '❯'
|
||||
};
|
||||
const win = {
|
||||
arrowUp: main.arrowUp,
|
||||
arrowDown: main.arrowDown,
|
||||
arrowLeft: main.arrowLeft,
|
||||
arrowRight: main.arrowRight,
|
||||
radioOn: '(*)',
|
||||
radioOff: '( )',
|
||||
tick: '√',
|
||||
cross: '×',
|
||||
ellipsis: '...',
|
||||
pointerSmall: '»',
|
||||
line: '─',
|
||||
pointer: '>'
|
||||
};
|
||||
const figures = process.platform === 'win32' ? win : main;
|
||||
|
||||
module.exports = figures;
|
11
node_modules/prompts/lib/util/index.js
generated
vendored
Normal file
11
node_modules/prompts/lib/util/index.js
generated
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
'use strict';
|
||||
|
||||
module.exports = {
|
||||
action: require('./action'),
|
||||
clear: require('./clear'),
|
||||
style: require('./style'),
|
||||
strip: require('./strip'),
|
||||
figures: require('./figures'),
|
||||
lines: require('./lines'),
|
||||
wrap: require('./wrap')
|
||||
};
|
11
node_modules/prompts/lib/util/lines.js
generated
vendored
Normal file
11
node_modules/prompts/lib/util/lines.js
generated
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
'use strict';
|
||||
|
||||
const strip = require('./strip');
|
||||
|
||||
module.exports = function (msg, perLine = process.stdout.columns) {
|
||||
let lines = String(strip(msg) || '').split(/\r?\n/);
|
||||
|
||||
if (!perLine) return lines.length;
|
||||
return lines.map(l => Math.ceil(l.length / perLine))
|
||||
.reduce((a, b) => a + b);
|
||||
};
|
11
node_modules/prompts/lib/util/strip.js
generated
vendored
Normal file
11
node_modules/prompts/lib/util/strip.js
generated
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
'use strict';
|
||||
|
||||
module.exports = str => {
|
||||
const pattern = [
|
||||
'[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[a-zA-Z\\d]*)*)?\\u0007)',
|
||||
'(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))'
|
||||
].join('|');
|
||||
|
||||
const RGX = new RegExp(pattern, 'g');
|
||||
return typeof str === 'string' ? str.replace(RGX, '') : str;
|
||||
};
|
39
node_modules/prompts/lib/util/style.js
generated
vendored
Normal file
39
node_modules/prompts/lib/util/style.js
generated
vendored
Normal file
|
@ -0,0 +1,39 @@
|
|||
'use strict';
|
||||
|
||||
const c = require('kleur');
|
||||
const figures = require('./figures');
|
||||
|
||||
// rendering user input.
|
||||
const styles = Object.freeze({
|
||||
password: { scale: 1, render: input => '*'.repeat(input.length) },
|
||||
emoji: { scale: 2, render: input => '😃'.repeat(input.length) },
|
||||
invisible: { scale: 0, render: input => '' },
|
||||
default: { scale: 1, render: input => `${input}` }
|
||||
});
|
||||
const render = type => styles[type] || styles.default;
|
||||
|
||||
// icon to signalize a prompt.
|
||||
const symbols = Object.freeze({
|
||||
aborted: c.red(figures.cross),
|
||||
done: c.green(figures.tick),
|
||||
default: c.cyan('?')
|
||||
});
|
||||
|
||||
const symbol = (done, aborted) =>
|
||||
aborted ? symbols.aborted : done ? symbols.done : symbols.default;
|
||||
|
||||
// between the question and the user's input.
|
||||
const delimiter = completing =>
|
||||
c.gray(completing ? figures.ellipsis : figures.pointerSmall);
|
||||
|
||||
const item = (expandable, expanded) =>
|
||||
c.gray(expandable ? (expanded ? figures.pointerSmall : '+') : figures.line);
|
||||
|
||||
module.exports = {
|
||||
styles,
|
||||
render,
|
||||
symbols,
|
||||
symbol,
|
||||
delimiter,
|
||||
item
|
||||
};
|
27
node_modules/prompts/lib/util/wrap.js
generated
vendored
Normal file
27
node_modules/prompts/lib/util/wrap.js
generated
vendored
Normal file
|
@ -0,0 +1,27 @@
|
|||
'use strict';
|
||||
|
||||
/**
|
||||
* @param {string} msg The message to wrap
|
||||
* @param {object} [opts]
|
||||
* @param {number|string} [opts.margin] Left margin
|
||||
* @param {number} [opts.width] Maximum characters per line including the margin
|
||||
*/
|
||||
module.exports = (msg, opts = {}) => {
|
||||
const tab = Number.isSafeInteger(parseInt(opts.margin))
|
||||
? new Array(parseInt(opts.margin)).fill(' ').join('')
|
||||
: (opts.margin || '');
|
||||
|
||||
const width = opts.width || process.stdout.columns;
|
||||
|
||||
return (msg || '').split(/\r?\n/g)
|
||||
.map(line => line
|
||||
.split(/\s+/g)
|
||||
.reduce((arr, w) => {
|
||||
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}`);
|
||||
return arr;
|
||||
}, [ tab ])
|
||||
.join('\n'))
|
||||
.join('\n');
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue