UNPKG

@involvex/create-wizard

Version:

create everything with ease interactive

1,510 lines (1,470 loc) 406 kB
#!/usr/bin/env node var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); // node_modules/sisteransi/src/index.js var require_src = __commonJS({ "node_modules/sisteransi/src/index.js"(exports, module) { "use strict"; var ESC = "\x1B"; var CSI = `${ESC}[`; var beep = "\x07"; var cursor = { to(x2, y3) { if (!y3) return `${CSI}${x2 + 1}G`; return `${CSI}${y3 + 1};${x2 + 1}H`; }, move(x2, y3) { let ret = ""; if (x2 < 0) ret += `${CSI}${-x2}D`; else if (x2 > 0) ret += `${CSI}${x2}C`; if (y3 < 0) ret += `${CSI}${-y3}A`; else if (y3 > 0) ret += `${CSI}${y3}B`; return ret; }, up: (count2 = 1) => `${CSI}${count2}A`, down: (count2 = 1) => `${CSI}${count2}B`, forward: (count2 = 1) => `${CSI}${count2}C`, backward: (count2 = 1) => `${CSI}${count2}D`, nextLine: (count2 = 1) => `${CSI}E`.repeat(count2), prevLine: (count2 = 1) => `${CSI}F`.repeat(count2), left: `${CSI}G`, hide: `${CSI}?25l`, show: `${CSI}?25h`, save: `${ESC}7`, restore: `${ESC}8` }; var scroll = { up: (count2 = 1) => `${CSI}S`.repeat(count2), down: (count2 = 1) => `${CSI}T`.repeat(count2) }; var erase = { screen: `${CSI}2J`, up: (count2 = 1) => `${CSI}1J`.repeat(count2), down: (count2 = 1) => `${CSI}J`.repeat(count2), line: `${CSI}2K`, lineEnd: `${CSI}K`, lineStart: `${CSI}1K`, lines(count2) { let clear = ""; for (let i2 = 0; i2 < count2; i2++) clear += this.line + (i2 < count2 - 1 ? cursor.up() : ""); if (count2) clear += cursor.left; return clear; } }; module.exports = { cursor, scroll, erase, beep }; } }); // node_modules/picocolors/picocolors.js var require_picocolors = __commonJS({ "node_modules/picocolors/picocolors.js"(exports, module) { var p2 = process || {}; var argv = p2.argv || []; var env2 = p2.env || {}; var isColorSupported = !(!!env2.NO_COLOR || argv.includes("--no-color")) && (!!env2.FORCE_COLOR || argv.includes("--color") || p2.platform === "win32" || (p2.stdout || {}).isTTY && env2.TERM !== "dumb" || !!env2.CI); var formatter = (open, close, replace = open) => (input) => { let string = "" + input, index = string.indexOf(close, open.length); return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close; }; var replaceClose = (string, close, replace, index) => { let result = "", cursor = 0; do { result += string.substring(cursor, index) + replace; cursor = index + close.length; index = string.indexOf(close, cursor); } while (~index); return result + string.substring(cursor); }; var createColors = (enabled = isColorSupported) => { let f = enabled ? formatter : () => String; return { isColorSupported: enabled, reset: f("\x1B[0m", "\x1B[0m"), bold: f("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m"), dim: f("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m"), italic: f("\x1B[3m", "\x1B[23m"), underline: f("\x1B[4m", "\x1B[24m"), inverse: f("\x1B[7m", "\x1B[27m"), hidden: f("\x1B[8m", "\x1B[28m"), strikethrough: f("\x1B[9m", "\x1B[29m"), black: f("\x1B[30m", "\x1B[39m"), red: f("\x1B[31m", "\x1B[39m"), green: f("\x1B[32m", "\x1B[39m"), yellow: f("\x1B[33m", "\x1B[39m"), blue: f("\x1B[34m", "\x1B[39m"), magenta: f("\x1B[35m", "\x1B[39m"), cyan: f("\x1B[36m", "\x1B[39m"), white: f("\x1B[37m", "\x1B[39m"), gray: f("\x1B[90m", "\x1B[39m"), bgBlack: f("\x1B[40m", "\x1B[49m"), bgRed: f("\x1B[41m", "\x1B[49m"), bgGreen: f("\x1B[42m", "\x1B[49m"), bgYellow: f("\x1B[43m", "\x1B[49m"), bgBlue: f("\x1B[44m", "\x1B[49m"), bgMagenta: f("\x1B[45m", "\x1B[49m"), bgCyan: f("\x1B[46m", "\x1B[49m"), bgWhite: f("\x1B[47m", "\x1B[49m"), blackBright: f("\x1B[90m", "\x1B[39m"), redBright: f("\x1B[91m", "\x1B[39m"), greenBright: f("\x1B[92m", "\x1B[39m"), yellowBright: f("\x1B[93m", "\x1B[39m"), blueBright: f("\x1B[94m", "\x1B[39m"), magentaBright: f("\x1B[95m", "\x1B[39m"), cyanBright: f("\x1B[96m", "\x1B[39m"), whiteBright: f("\x1B[97m", "\x1B[39m"), bgBlackBright: f("\x1B[100m", "\x1B[49m"), bgRedBright: f("\x1B[101m", "\x1B[49m"), bgGreenBright: f("\x1B[102m", "\x1B[49m"), bgYellowBright: f("\x1B[103m", "\x1B[49m"), bgBlueBright: f("\x1B[104m", "\x1B[49m"), bgMagentaBright: f("\x1B[105m", "\x1B[49m"), bgCyanBright: f("\x1B[106m", "\x1B[49m"), bgWhiteBright: f("\x1B[107m", "\x1B[49m") }; }; module.exports = createColors(); module.exports.createColors = createColors; } }); // node_modules/is-plain-obj/index.js function isPlainObject(value) { if (typeof value !== "object" || value === null) { return false; } const prototype = Object.getPrototypeOf(value); return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value); } // node_modules/execa/lib/arguments/file-url.js import { fileURLToPath } from "node:url"; var safeNormalizeFileUrl = (file, name) => { const fileString = normalizeFileUrl(normalizeDenoExecPath(file)); if (typeof fileString !== "string") { throw new TypeError(`${name} must be a string or a file URL: ${fileString}.`); } return fileString; }; var normalizeDenoExecPath = (file) => isDenoExecPath(file) ? file.toString() : file; var isDenoExecPath = (file) => typeof file !== "string" && file && Object.getPrototypeOf(file) === String.prototype; var normalizeFileUrl = (file) => file instanceof URL ? fileURLToPath(file) : file; // node_modules/execa/lib/methods/parameters.js var normalizeParameters = (rawFile, rawArguments = [], rawOptions = {}) => { const filePath = safeNormalizeFileUrl(rawFile, "First argument"); const [commandArguments, options] = isPlainObject(rawArguments) ? [[], rawArguments] : [rawArguments, rawOptions]; if (!Array.isArray(commandArguments)) { throw new TypeError(`Second argument must be either an array of arguments or an options object: ${commandArguments}`); } if (commandArguments.some((commandArgument) => typeof commandArgument === "object" && commandArgument !== null)) { throw new TypeError(`Second argument must be an array of strings: ${commandArguments}`); } const normalizedArguments = commandArguments.map(String); const nullByteArgument = normalizedArguments.find((normalizedArgument) => normalizedArgument.includes("\0")); if (nullByteArgument !== void 0) { throw new TypeError(`Arguments cannot contain null bytes ("\\0"): ${nullByteArgument}`); } if (!isPlainObject(options)) { throw new TypeError(`Last argument must be an options object: ${options}`); } return [filePath, normalizedArguments, options]; }; // node_modules/execa/lib/methods/template.js import { ChildProcess } from "node:child_process"; // node_modules/execa/lib/utils/uint-array.js import { StringDecoder } from "node:string_decoder"; var { toString: objectToString } = Object.prototype; var isArrayBuffer = (value) => objectToString.call(value) === "[object ArrayBuffer]"; var isUint8Array = (value) => objectToString.call(value) === "[object Uint8Array]"; var bufferToUint8Array = (buffer) => new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength); var textEncoder = new TextEncoder(); var stringToUint8Array = (string) => textEncoder.encode(string); var textDecoder = new TextDecoder(); var uint8ArrayToString = (uint8Array) => textDecoder.decode(uint8Array); var joinToString = (uint8ArraysOrStrings, encoding) => { const strings = uint8ArraysToStrings(uint8ArraysOrStrings, encoding); return strings.join(""); }; var uint8ArraysToStrings = (uint8ArraysOrStrings, encoding) => { if (encoding === "utf8" && uint8ArraysOrStrings.every((uint8ArrayOrString) => typeof uint8ArrayOrString === "string")) { return uint8ArraysOrStrings; } const decoder = new StringDecoder(encoding); const strings = uint8ArraysOrStrings.map((uint8ArrayOrString) => typeof uint8ArrayOrString === "string" ? stringToUint8Array(uint8ArrayOrString) : uint8ArrayOrString).map((uint8Array) => decoder.write(uint8Array)); const finalString = decoder.end(); return finalString === "" ? strings : [...strings, finalString]; }; var joinToUint8Array = (uint8ArraysOrStrings) => { if (uint8ArraysOrStrings.length === 1 && isUint8Array(uint8ArraysOrStrings[0])) { return uint8ArraysOrStrings[0]; } return concatUint8Arrays(stringsToUint8Arrays(uint8ArraysOrStrings)); }; var stringsToUint8Arrays = (uint8ArraysOrStrings) => uint8ArraysOrStrings.map((uint8ArrayOrString) => typeof uint8ArrayOrString === "string" ? stringToUint8Array(uint8ArrayOrString) : uint8ArrayOrString); var concatUint8Arrays = (uint8Arrays) => { const result = new Uint8Array(getJoinLength(uint8Arrays)); let index = 0; for (const uint8Array of uint8Arrays) { result.set(uint8Array, index); index += uint8Array.length; } return result; }; var getJoinLength = (uint8Arrays) => { let joinLength = 0; for (const uint8Array of uint8Arrays) { joinLength += uint8Array.length; } return joinLength; }; // node_modules/execa/lib/methods/template.js var isTemplateString = (templates) => Array.isArray(templates) && Array.isArray(templates.raw); var parseTemplates = (templates, expressions) => { let tokens = []; for (const [index, template] of templates.entries()) { tokens = parseTemplate({ templates, expressions, tokens, index, template }); } if (tokens.length === 0) { throw new TypeError("Template script must not be empty"); } const [file, ...commandArguments] = tokens; return [file, commandArguments, {}]; }; var parseTemplate = ({ templates, expressions, tokens, index, template }) => { if (template === void 0) { throw new TypeError(`Invalid backslash sequence: ${templates.raw[index]}`); } const { nextTokens, leadingWhitespaces, trailingWhitespaces } = splitByWhitespaces(template, templates.raw[index]); const newTokens = concatTokens(tokens, nextTokens, leadingWhitespaces); if (index === expressions.length) { return newTokens; } const expression = expressions[index]; const expressionTokens = Array.isArray(expression) ? expression.map((expression2) => parseExpression(expression2)) : [parseExpression(expression)]; return concatTokens(newTokens, expressionTokens, trailingWhitespaces); }; var splitByWhitespaces = (template, rawTemplate) => { if (rawTemplate.length === 0) { return { nextTokens: [], leadingWhitespaces: false, trailingWhitespaces: false }; } const nextTokens = []; let templateStart = 0; const leadingWhitespaces = DELIMITERS.has(rawTemplate[0]); for (let templateIndex = 0, rawIndex = 0; templateIndex < template.length; templateIndex += 1, rawIndex += 1) { const rawCharacter = rawTemplate[rawIndex]; if (DELIMITERS.has(rawCharacter)) { if (templateStart !== templateIndex) { nextTokens.push(template.slice(templateStart, templateIndex)); } templateStart = templateIndex + 1; } else if (rawCharacter === "\\") { const nextRawCharacter = rawTemplate[rawIndex + 1]; if (nextRawCharacter === "\n") { templateIndex -= 1; rawIndex += 1; } else if (nextRawCharacter === "u" && rawTemplate[rawIndex + 2] === "{") { rawIndex = rawTemplate.indexOf("}", rawIndex + 3); } else { rawIndex += ESCAPE_LENGTH[nextRawCharacter] ?? 1; } } } const trailingWhitespaces = templateStart === template.length; if (!trailingWhitespaces) { nextTokens.push(template.slice(templateStart)); } return { nextTokens, leadingWhitespaces, trailingWhitespaces }; }; var DELIMITERS = /* @__PURE__ */ new Set([" ", " ", "\r", "\n"]); var ESCAPE_LENGTH = { x: 3, u: 5 }; var concatTokens = (tokens, nextTokens, isSeparated) => isSeparated || tokens.length === 0 || nextTokens.length === 0 ? [...tokens, ...nextTokens] : [ ...tokens.slice(0, -1), `${tokens.at(-1)}${nextTokens[0]}`, ...nextTokens.slice(1) ]; var parseExpression = (expression) => { const typeOfExpression = typeof expression; if (typeOfExpression === "string") { return expression; } if (typeOfExpression === "number") { return String(expression); } if (isPlainObject(expression) && ("stdout" in expression || "isMaxBuffer" in expression)) { return getSubprocessResult(expression); } if (expression instanceof ChildProcess || Object.prototype.toString.call(expression) === "[object Promise]") { throw new TypeError("Unexpected subprocess in template expression. Please use ${await subprocess} instead of ${subprocess}."); } throw new TypeError(`Unexpected "${typeOfExpression}" in template expression`); }; var getSubprocessResult = ({ stdout }) => { if (typeof stdout === "string") { return stdout; } if (isUint8Array(stdout)) { return uint8ArrayToString(stdout); } if (stdout === void 0) { throw new TypeError(`Missing result.stdout in template expression. This is probably due to the previous subprocess' "stdout" option.`); } throw new TypeError(`Unexpected "${typeof stdout}" stdout in template expression`); }; // node_modules/execa/lib/methods/main-sync.js import { spawnSync } from "node:child_process"; // node_modules/execa/lib/arguments/specific.js import { debuglog } from "node:util"; // node_modules/execa/lib/utils/standard-stream.js import process2 from "node:process"; var isStandardStream = (stream) => STANDARD_STREAMS.includes(stream); var STANDARD_STREAMS = [process2.stdin, process2.stdout, process2.stderr]; var STANDARD_STREAMS_ALIASES = ["stdin", "stdout", "stderr"]; var getStreamName = (fdNumber) => STANDARD_STREAMS_ALIASES[fdNumber] ?? `stdio[${fdNumber}]`; // node_modules/execa/lib/arguments/specific.js var normalizeFdSpecificOptions = (options) => { const optionsCopy = { ...options }; for (const optionName of FD_SPECIFIC_OPTIONS) { optionsCopy[optionName] = normalizeFdSpecificOption(options, optionName); } return optionsCopy; }; var normalizeFdSpecificOption = (options, optionName) => { const optionBaseArray = Array.from({ length: getStdioLength(options) + 1 }); const optionArray = normalizeFdSpecificValue(options[optionName], optionBaseArray, optionName); return addDefaultValue(optionArray, optionName); }; var getStdioLength = ({ stdio }) => Array.isArray(stdio) ? Math.max(stdio.length, STANDARD_STREAMS_ALIASES.length) : STANDARD_STREAMS_ALIASES.length; var normalizeFdSpecificValue = (optionValue, optionArray, optionName) => isPlainObject(optionValue) ? normalizeOptionObject(optionValue, optionArray, optionName) : optionArray.fill(optionValue); var normalizeOptionObject = (optionValue, optionArray, optionName) => { for (const fdName of Object.keys(optionValue).sort(compareFdName)) { for (const fdNumber of parseFdName(fdName, optionName, optionArray)) { optionArray[fdNumber] = optionValue[fdName]; } } return optionArray; }; var compareFdName = (fdNameA, fdNameB) => getFdNameOrder(fdNameA) < getFdNameOrder(fdNameB) ? 1 : -1; var getFdNameOrder = (fdName) => { if (fdName === "stdout" || fdName === "stderr") { return 0; } return fdName === "all" ? 2 : 1; }; var parseFdName = (fdName, optionName, optionArray) => { if (fdName === "ipc") { return [optionArray.length - 1]; } const fdNumber = parseFd(fdName); if (fdNumber === void 0 || fdNumber === 0) { throw new TypeError(`"${optionName}.${fdName}" is invalid. It must be "${optionName}.stdout", "${optionName}.stderr", "${optionName}.all", "${optionName}.ipc", or "${optionName}.fd3", "${optionName}.fd4" (and so on).`); } if (fdNumber >= optionArray.length) { throw new TypeError(`"${optionName}.${fdName}" is invalid: that file descriptor does not exist. Please set the "stdio" option to ensure that file descriptor exists.`); } return fdNumber === "all" ? [1, 2] : [fdNumber]; }; var parseFd = (fdName) => { if (fdName === "all") { return fdName; } if (STANDARD_STREAMS_ALIASES.includes(fdName)) { return STANDARD_STREAMS_ALIASES.indexOf(fdName); } const regexpResult = FD_REGEXP.exec(fdName); if (regexpResult !== null) { return Number(regexpResult[1]); } }; var FD_REGEXP = /^fd(\d+)$/; var addDefaultValue = (optionArray, optionName) => optionArray.map((optionValue) => optionValue === void 0 ? DEFAULT_OPTIONS[optionName] : optionValue); var verboseDefault = debuglog("execa").enabled ? "full" : "none"; var DEFAULT_OPTIONS = { lines: false, buffer: true, maxBuffer: 1e3 * 1e3 * 100, verbose: verboseDefault, stripFinalNewline: true }; var FD_SPECIFIC_OPTIONS = ["lines", "buffer", "maxBuffer", "verbose", "stripFinalNewline"]; var getFdSpecificValue = (optionArray, fdNumber) => fdNumber === "ipc" ? optionArray.at(-1) : optionArray[fdNumber]; // node_modules/execa/lib/verbose/values.js var isVerbose = ({ verbose }, fdNumber) => getFdVerbose(verbose, fdNumber) !== "none"; var isFullVerbose = ({ verbose }, fdNumber) => !["none", "short"].includes(getFdVerbose(verbose, fdNumber)); var getVerboseFunction = ({ verbose }, fdNumber) => { const fdVerbose = getFdVerbose(verbose, fdNumber); return isVerboseFunction(fdVerbose) ? fdVerbose : void 0; }; var getFdVerbose = (verbose, fdNumber) => fdNumber === void 0 ? getFdGenericVerbose(verbose) : getFdSpecificValue(verbose, fdNumber); var getFdGenericVerbose = (verbose) => verbose.find((fdVerbose) => isVerboseFunction(fdVerbose)) ?? VERBOSE_VALUES.findLast((fdVerbose) => verbose.includes(fdVerbose)); var isVerboseFunction = (fdVerbose) => typeof fdVerbose === "function"; var VERBOSE_VALUES = ["none", "short", "full"]; // node_modules/execa/lib/verbose/log.js import { inspect } from "node:util"; // node_modules/execa/lib/arguments/escape.js import { platform } from "node:process"; import { stripVTControlCharacters } from "node:util"; var joinCommand = (filePath, rawArguments) => { const fileAndArguments = [filePath, ...rawArguments]; const command = fileAndArguments.join(" "); const escapedCommand = fileAndArguments.map((fileAndArgument) => quoteString(escapeControlCharacters(fileAndArgument))).join(" "); return { command, escapedCommand }; }; var escapeLines = (lines) => stripVTControlCharacters(lines).split("\n").map((line) => escapeControlCharacters(line)).join("\n"); var escapeControlCharacters = (line) => line.replaceAll(SPECIAL_CHAR_REGEXP, (character) => escapeControlCharacter(character)); var escapeControlCharacter = (character) => { const commonEscape = COMMON_ESCAPES[character]; if (commonEscape !== void 0) { return commonEscape; } const codepoint = character.codePointAt(0); const codepointHex = codepoint.toString(16); return codepoint <= ASTRAL_START ? `\\u${codepointHex.padStart(4, "0")}` : `\\U${codepointHex}`; }; var getSpecialCharRegExp = () => { try { return new RegExp("\\p{Separator}|\\p{Other}", "gu"); } catch { return /[\s\u0000-\u001F\u007F-\u009F\u00AD]/g; } }; var SPECIAL_CHAR_REGEXP = getSpecialCharRegExp(); var COMMON_ESCAPES = { " ": " ", "\b": "\\b", "\f": "\\f", "\n": "\\n", "\r": "\\r", " ": "\\t" }; var ASTRAL_START = 65535; var quoteString = (escapedArgument) => { if (NO_ESCAPE_REGEXP.test(escapedArgument)) { return escapedArgument; } return platform === "win32" ? `"${escapedArgument.replaceAll('"', '""')}"` : `'${escapedArgument.replaceAll("'", "'\\''")}'`; }; var NO_ESCAPE_REGEXP = /^[\w./-]+$/; // node_modules/is-unicode-supported/index.js import process3 from "node:process"; function isUnicodeSupported() { const { env: env2 } = process3; const { TERM, TERM_PROGRAM } = env2; if (process3.platform !== "win32") { return TERM !== "linux"; } return Boolean(env2.WT_SESSION) || Boolean(env2.TERMINUS_SUBLIME) || env2.ConEmuTask === "{cmd::Cmder}" || TERM_PROGRAM === "Terminus-Sublime" || TERM_PROGRAM === "vscode" || TERM === "xterm-256color" || TERM === "alacritty" || TERM === "rxvt-unicode" || TERM === "rxvt-unicode-256color" || env2.TERMINAL_EMULATOR === "JetBrains-JediTerm"; } // node_modules/figures/index.js var common = { circleQuestionMark: "(?)", questionMarkPrefix: "(?)", square: "\u2588", squareDarkShade: "\u2593", squareMediumShade: "\u2592", squareLightShade: "\u2591", squareTop: "\u2580", squareBottom: "\u2584", squareLeft: "\u258C", squareRight: "\u2590", squareCenter: "\u25A0", bullet: "\u25CF", dot: "\u2024", ellipsis: "\u2026", pointerSmall: "\u203A", triangleUp: "\u25B2", triangleUpSmall: "\u25B4", triangleDown: "\u25BC", triangleDownSmall: "\u25BE", triangleLeftSmall: "\u25C2", triangleRightSmall: "\u25B8", home: "\u2302", heart: "\u2665", musicNote: "\u266A", musicNoteBeamed: "\u266B", arrowUp: "\u2191", arrowDown: "\u2193", arrowLeft: "\u2190", arrowRight: "\u2192", arrowLeftRight: "\u2194", arrowUpDown: "\u2195", almostEqual: "\u2248", notEqual: "\u2260", lessOrEqual: "\u2264", greaterOrEqual: "\u2265", identical: "\u2261", infinity: "\u221E", subscriptZero: "\u2080", subscriptOne: "\u2081", subscriptTwo: "\u2082", subscriptThree: "\u2083", subscriptFour: "\u2084", subscriptFive: "\u2085", subscriptSix: "\u2086", subscriptSeven: "\u2087", subscriptEight: "\u2088", subscriptNine: "\u2089", oneHalf: "\xBD", oneThird: "\u2153", oneQuarter: "\xBC", oneFifth: "\u2155", oneSixth: "\u2159", oneEighth: "\u215B", twoThirds: "\u2154", twoFifths: "\u2156", threeQuarters: "\xBE", threeFifths: "\u2157", threeEighths: "\u215C", fourFifths: "\u2158", fiveSixths: "\u215A", fiveEighths: "\u215D", sevenEighths: "\u215E", line: "\u2500", lineBold: "\u2501", lineDouble: "\u2550", lineDashed0: "\u2504", lineDashed1: "\u2505", lineDashed2: "\u2508", lineDashed3: "\u2509", lineDashed4: "\u254C", lineDashed5: "\u254D", lineDashed6: "\u2574", lineDashed7: "\u2576", lineDashed8: "\u2578", lineDashed9: "\u257A", lineDashed10: "\u257C", lineDashed11: "\u257E", lineDashed12: "\u2212", lineDashed13: "\u2013", lineDashed14: "\u2010", lineDashed15: "\u2043", lineVertical: "\u2502", lineVerticalBold: "\u2503", lineVerticalDouble: "\u2551", lineVerticalDashed0: "\u2506", lineVerticalDashed1: "\u2507", lineVerticalDashed2: "\u250A", lineVerticalDashed3: "\u250B", lineVerticalDashed4: "\u254E", lineVerticalDashed5: "\u254F", lineVerticalDashed6: "\u2575", lineVerticalDashed7: "\u2577", lineVerticalDashed8: "\u2579", lineVerticalDashed9: "\u257B", lineVerticalDashed10: "\u257D", lineVerticalDashed11: "\u257F", lineDownLeft: "\u2510", lineDownLeftArc: "\u256E", lineDownBoldLeftBold: "\u2513", lineDownBoldLeft: "\u2512", lineDownLeftBold: "\u2511", lineDownDoubleLeftDouble: "\u2557", lineDownDoubleLeft: "\u2556", lineDownLeftDouble: "\u2555", lineDownRight: "\u250C", lineDownRightArc: "\u256D", lineDownBoldRightBold: "\u250F", lineDownBoldRight: "\u250E", lineDownRightBold: "\u250D", lineDownDoubleRightDouble: "\u2554", lineDownDoubleRight: "\u2553", lineDownRightDouble: "\u2552", lineUpLeft: "\u2518", lineUpLeftArc: "\u256F", lineUpBoldLeftBold: "\u251B", lineUpBoldLeft: "\u251A", lineUpLeftBold: "\u2519", lineUpDoubleLeftDouble: "\u255D", lineUpDoubleLeft: "\u255C", lineUpLeftDouble: "\u255B", lineUpRight: "\u2514", lineUpRightArc: "\u2570", lineUpBoldRightBold: "\u2517", lineUpBoldRight: "\u2516", lineUpRightBold: "\u2515", lineUpDoubleRightDouble: "\u255A", lineUpDoubleRight: "\u2559", lineUpRightDouble: "\u2558", lineUpDownLeft: "\u2524", lineUpBoldDownBoldLeftBold: "\u252B", lineUpBoldDownBoldLeft: "\u2528", lineUpDownLeftBold: "\u2525", lineUpBoldDownLeftBold: "\u2529", lineUpDownBoldLeftBold: "\u252A", lineUpDownBoldLeft: "\u2527", lineUpBoldDownLeft: "\u2526", lineUpDoubleDownDoubleLeftDouble: "\u2563", lineUpDoubleDownDoubleLeft: "\u2562", lineUpDownLeftDouble: "\u2561", lineUpDownRight: "\u251C", lineUpBoldDownBoldRightBold: "\u2523", lineUpBoldDownBoldRight: "\u2520", lineUpDownRightBold: "\u251D", lineUpBoldDownRightBold: "\u2521", lineUpDownBoldRightBold: "\u2522", lineUpDownBoldRight: "\u251F", lineUpBoldDownRight: "\u251E", lineUpDoubleDownDoubleRightDouble: "\u2560", lineUpDoubleDownDoubleRight: "\u255F", lineUpDownRightDouble: "\u255E", lineDownLeftRight: "\u252C", lineDownBoldLeftBoldRightBold: "\u2533", lineDownLeftBoldRightBold: "\u252F", lineDownBoldLeftRight: "\u2530", lineDownBoldLeftBoldRight: "\u2531", lineDownBoldLeftRightBold: "\u2532", lineDownLeftRightBold: "\u252E", lineDownLeftBoldRight: "\u252D", lineDownDoubleLeftDoubleRightDouble: "\u2566", lineDownDoubleLeftRight: "\u2565", lineDownLeftDoubleRightDouble: "\u2564", lineUpLeftRight: "\u2534", lineUpBoldLeftBoldRightBold: "\u253B", lineUpLeftBoldRightBold: "\u2537", lineUpBoldLeftRight: "\u2538", lineUpBoldLeftBoldRight: "\u2539", lineUpBoldLeftRightBold: "\u253A", lineUpLeftRightBold: "\u2536", lineUpLeftBoldRight: "\u2535", lineUpDoubleLeftDoubleRightDouble: "\u2569", lineUpDoubleLeftRight: "\u2568", lineUpLeftDoubleRightDouble: "\u2567", lineUpDownLeftRight: "\u253C", lineUpBoldDownBoldLeftBoldRightBold: "\u254B", lineUpDownBoldLeftBoldRightBold: "\u2548", lineUpBoldDownLeftBoldRightBold: "\u2547", lineUpBoldDownBoldLeftRightBold: "\u254A", lineUpBoldDownBoldLeftBoldRight: "\u2549", lineUpBoldDownLeftRight: "\u2540", lineUpDownBoldLeftRight: "\u2541", lineUpDownLeftBoldRight: "\u253D", lineUpDownLeftRightBold: "\u253E", lineUpBoldDownBoldLeftRight: "\u2542", lineUpDownLeftBoldRightBold: "\u253F", lineUpBoldDownLeftBoldRight: "\u2543", lineUpBoldDownLeftRightBold: "\u2544", lineUpDownBoldLeftBoldRight: "\u2545", lineUpDownBoldLeftRightBold: "\u2546", lineUpDoubleDownDoubleLeftDoubleRightDouble: "\u256C", lineUpDoubleDownDoubleLeftRight: "\u256B", lineUpDownLeftDoubleRightDouble: "\u256A", lineCross: "\u2573", lineBackslash: "\u2572", lineSlash: "\u2571" }; var specialMainSymbols = { tick: "\u2714", info: "\u2139", warning: "\u26A0", cross: "\u2718", squareSmall: "\u25FB", squareSmallFilled: "\u25FC", circle: "\u25EF", circleFilled: "\u25C9", circleDotted: "\u25CC", circleDouble: "\u25CE", circleCircle: "\u24DE", circleCross: "\u24E7", circlePipe: "\u24BE", radioOn: "\u25C9", radioOff: "\u25EF", checkboxOn: "\u2612", checkboxOff: "\u2610", checkboxCircleOn: "\u24E7", checkboxCircleOff: "\u24BE", pointer: "\u276F", triangleUpOutline: "\u25B3", triangleLeft: "\u25C0", triangleRight: "\u25B6", lozenge: "\u25C6", lozengeOutline: "\u25C7", hamburger: "\u2630", smiley: "\u32E1", mustache: "\u0DF4", star: "\u2605", play: "\u25B6", nodejs: "\u2B22", oneSeventh: "\u2150", oneNinth: "\u2151", oneTenth: "\u2152" }; var specialFallbackSymbols = { tick: "\u221A", info: "i", warning: "\u203C", cross: "\xD7", squareSmall: "\u25A1", squareSmallFilled: "\u25A0", circle: "( )", circleFilled: "(*)", circleDotted: "( )", circleDouble: "( )", circleCircle: "(\u25CB)", circleCross: "(\xD7)", circlePipe: "(\u2502)", radioOn: "(*)", radioOff: "( )", checkboxOn: "[\xD7]", checkboxOff: "[ ]", checkboxCircleOn: "(\xD7)", checkboxCircleOff: "( )", pointer: ">", triangleUpOutline: "\u2206", triangleLeft: "\u25C4", triangleRight: "\u25BA", lozenge: "\u2666", lozengeOutline: "\u25CA", hamburger: "\u2261", smiley: "\u263A", mustache: "\u250C\u2500\u2510", star: "\u2736", play: "\u25BA", nodejs: "\u2666", oneSeventh: "1/7", oneNinth: "1/9", oneTenth: "1/10" }; var mainSymbols = { ...common, ...specialMainSymbols }; var fallbackSymbols = { ...common, ...specialFallbackSymbols }; var shouldUseMain = isUnicodeSupported(); var figures = shouldUseMain ? mainSymbols : fallbackSymbols; var figures_default = figures; var replacements = Object.entries(specialMainSymbols); // node_modules/yoctocolors/base.js import tty from "node:tty"; var hasColors = tty?.WriteStream?.prototype?.hasColors?.() ?? false; var format = (open, close) => { if (!hasColors) { return (input) => input; } const openCode = `\x1B[${open}m`; const closeCode = `\x1B[${close}m`; return (input) => { const string = input + ""; let index = string.indexOf(closeCode); if (index === -1) { return openCode + string + closeCode; } let result = openCode; let lastIndex = 0; const reopenOnNestedClose = close === 22; const replaceCode = (reopenOnNestedClose ? closeCode : "") + openCode; while (index !== -1) { result += string.slice(lastIndex, index) + replaceCode; lastIndex = index + closeCode.length; index = string.indexOf(closeCode, lastIndex); } result += string.slice(lastIndex) + closeCode; return result; }; }; var reset = format(0, 0); var bold = format(1, 22); var dim = format(2, 22); var italic = format(3, 23); var underline = format(4, 24); var overline = format(53, 55); var inverse = format(7, 27); var hidden = format(8, 28); var strikethrough = format(9, 29); var black = format(30, 39); var red = format(31, 39); var green = format(32, 39); var yellow = format(33, 39); var blue = format(34, 39); var magenta = format(35, 39); var cyan = format(36, 39); var white = format(37, 39); var gray = format(90, 39); var bgBlack = format(40, 49); var bgRed = format(41, 49); var bgGreen = format(42, 49); var bgYellow = format(43, 49); var bgBlue = format(44, 49); var bgMagenta = format(45, 49); var bgCyan = format(46, 49); var bgWhite = format(47, 49); var bgGray = format(100, 49); var redBright = format(91, 39); var greenBright = format(92, 39); var yellowBright = format(93, 39); var blueBright = format(94, 39); var magentaBright = format(95, 39); var cyanBright = format(96, 39); var whiteBright = format(97, 39); var bgRedBright = format(101, 49); var bgGreenBright = format(102, 49); var bgYellowBright = format(103, 49); var bgBlueBright = format(104, 49); var bgMagentaBright = format(105, 49); var bgCyanBright = format(106, 49); var bgWhiteBright = format(107, 49); // node_modules/execa/lib/verbose/default.js var defaultVerboseFunction = ({ type, message, timestamp, piped, commandId, result: { failed = false } = {}, options: { reject = true } }) => { const timestampString = serializeTimestamp(timestamp); const icon = ICONS[type]({ failed, reject, piped }); const color = COLORS[type]({ reject }); return `${gray(`[${timestampString}]`)} ${gray(`[${commandId}]`)} ${color(icon)} ${color(message)}`; }; var serializeTimestamp = (timestamp) => `${padField(timestamp.getHours(), 2)}:${padField(timestamp.getMinutes(), 2)}:${padField(timestamp.getSeconds(), 2)}.${padField(timestamp.getMilliseconds(), 3)}`; var padField = (field, padding) => String(field).padStart(padding, "0"); var getFinalIcon = ({ failed, reject }) => { if (!failed) { return figures_default.tick; } return reject ? figures_default.cross : figures_default.warning; }; var ICONS = { command: ({ piped }) => piped ? "|" : "$", output: () => " ", ipc: () => "*", error: getFinalIcon, duration: getFinalIcon }; var identity = (string) => string; var COLORS = { command: () => bold, output: () => identity, ipc: () => identity, error: ({ reject }) => reject ? redBright : yellowBright, duration: () => gray }; // node_modules/execa/lib/verbose/custom.js var applyVerboseOnLines = (printedLines, verboseInfo, fdNumber) => { const verboseFunction = getVerboseFunction(verboseInfo, fdNumber); return printedLines.map(({ verboseLine, verboseObject }) => applyVerboseFunction(verboseLine, verboseObject, verboseFunction)).filter((printedLine) => printedLine !== void 0).map((printedLine) => appendNewline(printedLine)).join(""); }; var applyVerboseFunction = (verboseLine, verboseObject, verboseFunction) => { if (verboseFunction === void 0) { return verboseLine; } const printedLine = verboseFunction(verboseLine, verboseObject); if (typeof printedLine === "string") { return printedLine; } }; var appendNewline = (printedLine) => printedLine.endsWith("\n") ? printedLine : `${printedLine} `; // node_modules/execa/lib/verbose/log.js var verboseLog = ({ type, verboseMessage, fdNumber, verboseInfo, result }) => { const verboseObject = getVerboseObject({ type, result, verboseInfo }); const printedLines = getPrintedLines(verboseMessage, verboseObject); const finalLines = applyVerboseOnLines(printedLines, verboseInfo, fdNumber); if (finalLines !== "") { console.warn(finalLines.slice(0, -1)); } }; var getVerboseObject = ({ type, result, verboseInfo: { escapedCommand, commandId, rawOptions: { piped = false, ...options } } }) => ({ type, escapedCommand, commandId: `${commandId}`, timestamp: /* @__PURE__ */ new Date(), piped, result, options }); var getPrintedLines = (verboseMessage, verboseObject) => verboseMessage.split("\n").map((message) => getPrintedLine({ ...verboseObject, message })); var getPrintedLine = (verboseObject) => { const verboseLine = defaultVerboseFunction(verboseObject); return { verboseLine, verboseObject }; }; var serializeVerboseMessage = (message) => { const messageString = typeof message === "string" ? message : inspect(message); const escapedMessage = escapeLines(messageString); return escapedMessage.replaceAll(" ", " ".repeat(TAB_SIZE)); }; var TAB_SIZE = 2; // node_modules/execa/lib/verbose/start.js var logCommand = (escapedCommand, verboseInfo) => { if (!isVerbose(verboseInfo)) { return; } verboseLog({ type: "command", verboseMessage: escapedCommand, verboseInfo }); }; // node_modules/execa/lib/verbose/info.js var getVerboseInfo = (verbose, escapedCommand, rawOptions) => { validateVerbose(verbose); const commandId = getCommandId(verbose); return { verbose, escapedCommand, commandId, rawOptions }; }; var getCommandId = (verbose) => isVerbose({ verbose }) ? COMMAND_ID++ : void 0; var COMMAND_ID = 0n; var validateVerbose = (verbose) => { for (const fdVerbose of verbose) { if (fdVerbose === false) { throw new TypeError(`The "verbose: false" option was renamed to "verbose: 'none'".`); } if (fdVerbose === true) { throw new TypeError(`The "verbose: true" option was renamed to "verbose: 'short'".`); } if (!VERBOSE_VALUES.includes(fdVerbose) && !isVerboseFunction(fdVerbose)) { const allowedValues = VERBOSE_VALUES.map((allowedValue) => `'${allowedValue}'`).join(", "); throw new TypeError(`The "verbose" option must not be ${fdVerbose}. Allowed values are: ${allowedValues} or a function.`); } } }; // node_modules/execa/lib/return/duration.js import { hrtime } from "node:process"; var getStartTime = () => hrtime.bigint(); var getDurationMs = (startTime) => Number(hrtime.bigint() - startTime) / 1e6; // node_modules/execa/lib/arguments/command.js var handleCommand = (filePath, rawArguments, rawOptions) => { const startTime = getStartTime(); const { command, escapedCommand } = joinCommand(filePath, rawArguments); const verbose = normalizeFdSpecificOption(rawOptions, "verbose"); const verboseInfo = getVerboseInfo(verbose, escapedCommand, { ...rawOptions }); logCommand(escapedCommand, verboseInfo); return { command, escapedCommand, startTime, verboseInfo }; }; // node_modules/execa/lib/arguments/options.js import path5 from "node:path"; import process6 from "node:process"; import crossSpawn from "cross-spawn"; // node_modules/npm-run-path/index.js import process4 from "node:process"; import path2 from "node:path"; // node_modules/npm-run-path/node_modules/path-key/index.js function pathKey(options = {}) { const { env: env2 = process.env, platform: platform2 = process.platform } = options; if (platform2 !== "win32") { return "PATH"; } return Object.keys(env2).reverse().find((key) => key.toUpperCase() === "PATH") || "Path"; } // node_modules/unicorn-magic/node.js import { promisify } from "node:util"; import { execFile as execFileCallback, execFileSync as execFileSyncOriginal } from "node:child_process"; import path from "node:path"; import { fileURLToPath as fileURLToPath2 } from "node:url"; var execFileOriginal = promisify(execFileCallback); function toPath(urlOrPath) { return urlOrPath instanceof URL ? fileURLToPath2(urlOrPath) : urlOrPath; } function traversePathUp(startPath) { return { *[Symbol.iterator]() { let currentPath = path.resolve(toPath(startPath)); let previousPath; while (previousPath !== currentPath) { yield currentPath; previousPath = currentPath; currentPath = path.resolve(currentPath, ".."); } } }; } var TEN_MEGABYTES_IN_BYTES = 10 * 1024 * 1024; // node_modules/npm-run-path/index.js var npmRunPath = ({ cwd = process4.cwd(), path: pathOption = process4.env[pathKey()], preferLocal = true, execPath: execPath2 = process4.execPath, addExecPath = true } = {}) => { const cwdPath = path2.resolve(toPath(cwd)); const result = []; const pathParts = pathOption.split(path2.delimiter); if (preferLocal) { applyPreferLocal(result, pathParts, cwdPath); } if (addExecPath) { applyExecPath(result, pathParts, execPath2, cwdPath); } return pathOption === "" || pathOption === path2.delimiter ? `${result.join(path2.delimiter)}${pathOption}` : [...result, pathOption].join(path2.delimiter); }; var applyPreferLocal = (result, pathParts, cwdPath) => { for (const directory of traversePathUp(cwdPath)) { const pathPart = path2.join(directory, "node_modules/.bin"); if (!pathParts.includes(pathPart)) { result.push(pathPart); } } }; var applyExecPath = (result, pathParts, execPath2, cwdPath) => { const pathPart = path2.resolve(cwdPath, toPath(execPath2), ".."); if (!pathParts.includes(pathPart)) { result.push(pathPart); } }; var npmRunPathEnv = ({ env: env2 = process4.env, ...options } = {}) => { env2 = { ...env2 }; const pathName = pathKey({ env: env2 }); options.path = env2[pathName]; env2[pathName] = npmRunPath(options); return env2; }; // node_modules/execa/lib/terminate/kill.js import { setTimeout } from "node:timers/promises"; // node_modules/execa/lib/return/final-error.js var getFinalError = (originalError, message, isSync) => { const ErrorClass = isSync ? ExecaSyncError : ExecaError; const options = originalError instanceof DiscardedError ? {} : { cause: originalError }; return new ErrorClass(message, options); }; var DiscardedError = class extends Error { }; var setErrorName = (ErrorClass, value) => { Object.defineProperty(ErrorClass.prototype, "name", { value, writable: true, enumerable: false, configurable: true }); Object.defineProperty(ErrorClass.prototype, execaErrorSymbol, { value: true, writable: false, enumerable: false, configurable: false }); }; var isExecaError = (error2) => isErrorInstance(error2) && execaErrorSymbol in error2; var execaErrorSymbol = Symbol("isExecaError"); var isErrorInstance = (value) => Object.prototype.toString.call(value) === "[object Error]"; var ExecaError = class extends Error { }; setErrorName(ExecaError, ExecaError.name); var ExecaSyncError = class extends Error { }; setErrorName(ExecaSyncError, ExecaSyncError.name); // node_modules/execa/lib/terminate/signal.js import { constants as constants3 } from "node:os"; // node_modules/human-signals/build/src/main.js import { constants as constants2 } from "node:os"; // node_modules/human-signals/build/src/realtime.js var getRealtimeSignals = () => { const length = SIGRTMAX - SIGRTMIN + 1; return Array.from({ length }, getRealtimeSignal); }; var getRealtimeSignal = (value, index) => ({ name: `SIGRT${index + 1}`, number: SIGRTMIN + index, action: "terminate", description: "Application-specific signal (realtime)", standard: "posix" }); var SIGRTMIN = 34; var SIGRTMAX = 64; // node_modules/human-signals/build/src/signals.js import { constants } from "node:os"; // node_modules/human-signals/build/src/core.js var SIGNALS = [ { name: "SIGHUP", number: 1, action: "terminate", description: "Terminal closed", standard: "posix" }, { name: "SIGINT", number: 2, action: "terminate", description: "User interruption with CTRL-C", standard: "ansi" }, { name: "SIGQUIT", number: 3, action: "core", description: "User interruption with CTRL-\\", standard: "posix" }, { name: "SIGILL", number: 4, action: "core", description: "Invalid machine instruction", standard: "ansi" }, { name: "SIGTRAP", number: 5, action: "core", description: "Debugger breakpoint", standard: "posix" }, { name: "SIGABRT", number: 6, action: "core", description: "Aborted", standard: "ansi" }, { name: "SIGIOT", number: 6, action: "core", description: "Aborted", standard: "bsd" }, { name: "SIGBUS", number: 7, action: "core", description: "Bus error due to misaligned, non-existing address or paging error", standard: "bsd" }, { name: "SIGEMT", number: 7, action: "terminate", description: "Command should be emulated but is not implemented", standard: "other" }, { name: "SIGFPE", number: 8, action: "core", description: "Floating point arithmetic error", standard: "ansi" }, { name: "SIGKILL", number: 9, action: "terminate", description: "Forced termination", standard: "posix", forced: true }, { name: "SIGUSR1", number: 10, action: "terminate", description: "Application-specific signal", standard: "posix" }, { name: "SIGSEGV", number: 11, action: "core", description: "Segmentation fault", standard: "ansi" }, { name: "SIGUSR2", number: 12, action: "terminate", description: "Application-specific signal", standard: "posix" }, { name: "SIGPIPE", number: 13, action: "terminate", description: "Broken pipe or socket", standard: "posix" }, { name: "SIGALRM", number: 14, action: "terminate", description: "Timeout or timer", standard: "posix" }, { name: "SIGTERM", number: 15, action: "terminate", description: "Termination", standard: "ansi" }, { name: "SIGSTKFLT", number: 16, action: "terminate", description: "Stack is empty or overflowed", standard: "other" }, { name: "SIGCHLD", number: 17, action: "ignore", description: "Child process terminated, paused or unpaused", standard: "posix" }, { name: "SIGCLD", number: 17, action: "ignore", description: "Child process terminated, paused or unpaused", standard: "other" }, { name: "SIGCONT", number: 18, action: "unpause", description: "Unpaused", standard: "posix", forced: true }, { name: "SIGSTOP", number: 19, action: "pause", description: "Paused", standard: "posix", forced: true }, { name: "SIGTSTP", number: 20, action: "pause", description: 'Paused using CTRL-Z or "suspend"', standard: "posix" }, { name: "SIGTTIN", number: 21, action: "pause", description: "Background process cannot read terminal input", standard: "posix" }, { name: "SIGBREAK", number: 21, action: "terminate", description: "User interruption with CTRL-BREAK", standard: "other" }, { name: "SIGTTOU", number: 22, action: "pause", description: "Background process cannot write to terminal output", standard: "posix" }, { name: "SIGURG", number: 23, action: "ignore", description: "Socket received out-of-band data", standard: "bsd" }, { name: "SIGXCPU", number: 24, action: "core", description: "Process timed out", standard: "bsd" }, { name: "SIGXFSZ", number: 25, action: "core", description: "File too big", standard: "bsd" }, { name: "SIGVTALRM", number: 26, action: "terminate", description: "Timeout or timer", standard: "bsd" }, { name: "SIGPROF", number: 27, action: "terminate", description: "Timeout or timer", standard: "bsd" }, { name: "SIGWINCH", number: 28, action: "ignore", description: "Terminal window size changed", standard: "bsd" }, { name: "SIGIO", number: 29, action: "terminate", description: "I/O is available", standard: "other" }, { name: "SIGPOLL", number: 29, action: "terminate", description: "Watched event", standard: "other" }, { name: "SIGINFO", number: 29, action: "ignore", description: "Request for process information", standard: "other" }, { name: "SIGPWR", number: 30, action: "terminate", description: "Device running out of power", standard: "systemv" }, { name: "SIGSYS", number: 31, action: "core", description: "Invalid system call", standard: "other" }, { name: "SIGUNUSED", number: 31, action: "terminate", description: "Invalid system call", standard: "other" } ]; // node_modules/human-signals/build/src/signals.js var getSignals = () => { const realtimeSignals = getRealtimeSignals(); const signals2 = [...SIGNALS, ...realtimeSignals].map(normalizeSignal); return signals2; }; var normalizeSignal = ({ name, number: defaultNumber, description, action, forced = false, standard }) => { const { signals: { [name]: constantSignal } } = constants; const supported = constantSignal !== void 0; const number = supported ? constantSignal : defaultNumber; return { name, number, description, supported, action, forced, standard }; }; // node_modules/human-signals/build/src/main.js var getSignalsByName = () => { const signals2 = getSignals(); return Object.fromEntries(signals2.map(getSignalByName)); }; var getSignalByName = ({ name, number, description, supported, action, forced, standard }) => [name, { name, number, description, supported, action, forced, standard }]; var signalsByName = getSignalsByName(); var getSignalsByNumber = () => { const signals2 = getSignals(); const length = SIGRTMAX + 1; const signalsA = Array.from( { length }, (value, number) => getSignalByNumber(number, signals2) ); return Object.assign({}, ...signalsA); }; var getSignalByNumber = (number, signals2) => { const signal = findSignalByNumber(number, signals2); if (signal === void 0) { return {}; } const { name, description, supported, action, forced, standard } = signal; return { [number]: { name, number, description, supported, action, forced, standard } }; }; var findSignalByNumber = (number, signals2) => { const signal = signals2.find(({ name }) => constants2.signals[name] === number); if (signal !== void 0) { return signal; } return signals2.find((signalA) => signalA.number === number); }; var signalsByNumber = getSignalsByNumber(); // node_modules/execa/lib/terminate/signal.js var normalizeKillSignal = (killSignal) => { const optionName = "option `killSignal`"; if (killSignal === 0) { throw new TypeError(`Invalid ${optionName}: 0 cannot be used.`); } return normalizeSignal2(killSignal, optionName); }; var normalizeSignalArgument = (signal) => signal === 0 ? signal : normalizeSignal2(signal, "`subprocess.kill()`'s argument"); var normalizeSignal2 = (signalNameOrInteger, optionName) => { if (Number.isInteger(signalNameOrInteger)) { return normalizeSignalInteger(signalNameOrInteger, optionName); } if (typeof signalNameOrInteger === "string") { return normalizeSignalName(signalNameOrInteger, optionName); } throw new TypeError(`Invalid ${optionName} ${Stri