vlt 0.0.0-0.1727464479666 → 0.0.0-0.1727821659739
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/LICENSE +3 -3
- package/cache-unzip/unzip.js +13 -8
- package/cache-unzip/unzip.js.map +1 -1
- package/commands/config.js +11 -6
- package/commands/config.js.map +1 -1
- package/commands/exec.js +11 -6
- package/commands/exec.js.map +1 -1
- package/commands/help.js +11 -6
- package/commands/help.js.map +1 -1
- package/commands/install-exec.js +11 -6
- package/commands/install-exec.js.map +1 -1
- package/commands/install.js +15 -10
- package/commands/install.js.map +1 -1
- package/commands/pkg.js +11 -6
- package/commands/pkg.js.map +1 -1
- package/commands/run-exec.js +11 -6
- package/commands/run-exec.js.map +1 -1
- package/commands/run.js +11 -6
- package/commands/run.js.map +1 -1
- package/commands/uninstall.js +15 -10
- package/commands/uninstall.js.map +1 -1
- package/package.json +23 -6
- package/rollback-remove/remove.js +13 -8
- package/rollback-remove/remove.js.map +1 -1
- package/tar/worker.js +12 -7
- package/tar/worker.js.map +1 -1
- package/vlix.js +13 -8
- package/vlix.js.map +1 -1
- package/vlr.js +13 -8
- package/vlr.js.map +1 -1
- package/vlrx.js +13 -8
- package/vlrx.js.map +1 -1
- package/vlt.js +13 -8
- package/vlt.js.map +1 -1
- package/vlx.js +13 -8
- package/vlx.js.map +1 -1
package/commands/config.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../node_modules/.pnpm/eastasianwidth@0.2.0/node_modules/eastasianwidth/eastasianwidth.js", "../../../../../node_modules/.pnpm/emoji-regex@9.2.2/node_modules/emoji-regex/index.js", "../../../../../src/error-cause/src/index.ts", "../../../../../src/vlt/src/commands/config.ts", "../../../../../src/xdg/src/index.ts", "../../../../../src/vlt/src/config/index.ts", "../../../../../node_modules/.pnpm/polite-json@5.0.0/node_modules/polite-json/src/index.ts", "../../../../../node_modules/.pnpm/walk-up-path@4.0.0/node_modules/walk-up-path/src/index.ts", "../../../../../node_modules/.pnpm/jackspeak@4.0.2/node_modules/jackspeak/src/index.ts", "../../../../../node_modules/.pnpm/@isaacs+cliui@8.0.2/node_modules/@isaacs/cliui/build/lib/index.js", "../../../../../node_modules/.pnpm/ansi-regex@6.0.1/node_modules/ansi-regex/index.js", "../../../../../node_modules/.pnpm/strip-ansi@7.1.0/node_modules/strip-ansi/index.js", "../../../../../node_modules/.pnpm/string-width@5.1.2/node_modules/string-width/index.js", "../../../../../node_modules/.pnpm/ansi-styles@6.2.1/node_modules/ansi-styles/index.js", "../../../../../node_modules/.pnpm/wrap-ansi@8.1.0/node_modules/wrap-ansi/index.js", "../../../../../node_modules/.pnpm/@isaacs+cliui@8.0.2/node_modules/@isaacs/cliui/index.mjs", "../../../../../src/vlt/src/config/definition.ts"],
|
|
4
4
|
"sourcesContent": ["var eaw = {};\n\nif ('undefined' == typeof module) {\n window.eastasianwidth = eaw;\n} else {\n module.exports = eaw;\n}\n\neaw.eastAsianWidth = function(character) {\n var x = character.charCodeAt(0);\n var y = (character.length == 2) ? character.charCodeAt(1) : 0;\n var codePoint = x;\n if ((0xD800 <= x && x <= 0xDBFF) && (0xDC00 <= y && y <= 0xDFFF)) {\n x &= 0x3FF;\n y &= 0x3FF;\n codePoint = (x << 10) | y;\n codePoint += 0x10000;\n }\n\n if ((0x3000 == codePoint) ||\n (0xFF01 <= codePoint && codePoint <= 0xFF60) ||\n (0xFFE0 <= codePoint && codePoint <= 0xFFE6)) {\n return 'F';\n }\n if ((0x20A9 == codePoint) ||\n (0xFF61 <= codePoint && codePoint <= 0xFFBE) ||\n (0xFFC2 <= codePoint && codePoint <= 0xFFC7) ||\n (0xFFCA <= codePoint && codePoint <= 0xFFCF) ||\n (0xFFD2 <= codePoint && codePoint <= 0xFFD7) ||\n (0xFFDA <= codePoint && codePoint <= 0xFFDC) ||\n (0xFFE8 <= codePoint && codePoint <= 0xFFEE)) {\n return 'H';\n }\n if ((0x1100 <= codePoint && codePoint <= 0x115F) ||\n (0x11A3 <= codePoint && codePoint <= 0x11A7) ||\n (0x11FA <= codePoint && codePoint <= 0x11FF) ||\n (0x2329 <= codePoint && codePoint <= 0x232A) ||\n (0x2E80 <= codePoint && codePoint <= 0x2E99) ||\n (0x2E9B <= codePoint && codePoint <= 0x2EF3) ||\n (0x2F00 <= codePoint && codePoint <= 0x2FD5) ||\n (0x2FF0 <= codePoint && codePoint <= 0x2FFB) ||\n (0x3001 <= codePoint && codePoint <= 0x303E) ||\n (0x3041 <= codePoint && codePoint <= 0x3096) ||\n (0x3099 <= codePoint && codePoint <= 0x30FF) ||\n (0x3105 <= codePoint && codePoint <= 0x312D) ||\n (0x3131 <= codePoint && codePoint <= 0x318E) ||\n (0x3190 <= codePoint && codePoint <= 0x31BA) ||\n (0x31C0 <= codePoint && codePoint <= 0x31E3) ||\n (0x31F0 <= codePoint && codePoint <= 0x321E) ||\n (0x3220 <= codePoint && codePoint <= 0x3247) ||\n (0x3250 <= codePoint && codePoint <= 0x32FE) ||\n (0x3300 <= codePoint && codePoint <= 0x4DBF) ||\n (0x4E00 <= codePoint && codePoint <= 0xA48C) ||\n (0xA490 <= codePoint && codePoint <= 0xA4C6) ||\n (0xA960 <= codePoint && codePoint <= 0xA97C) ||\n (0xAC00 <= codePoint && codePoint <= 0xD7A3) ||\n (0xD7B0 <= codePoint && codePoint <= 0xD7C6) ||\n (0xD7CB <= codePoint && codePoint <= 0xD7FB) ||\n (0xF900 <= codePoint && codePoint <= 0xFAFF) ||\n (0xFE10 <= codePoint && codePoint <= 0xFE19) ||\n (0xFE30 <= codePoint && codePoint <= 0xFE52) ||\n (0xFE54 <= codePoint && codePoint <= 0xFE66) ||\n (0xFE68 <= codePoint && codePoint <= 0xFE6B) ||\n (0x1B000 <= codePoint && codePoint <= 0x1B001) ||\n (0x1F200 <= codePoint && codePoint <= 0x1F202) ||\n (0x1F210 <= codePoint && codePoint <= 0x1F23A) ||\n (0x1F240 <= codePoint && codePoint <= 0x1F248) ||\n (0x1F250 <= codePoint && codePoint <= 0x1F251) ||\n (0x20000 <= codePoint && codePoint <= 0x2F73F) ||\n (0x2B740 <= codePoint && codePoint <= 0x2FFFD) ||\n (0x30000 <= codePoint && codePoint <= 0x3FFFD)) {\n return 'W';\n }\n if ((0x0020 <= codePoint && codePoint <= 0x007E) ||\n (0x00A2 <= codePoint && codePoint <= 0x00A3) ||\n (0x00A5 <= codePoint && codePoint <= 0x00A6) ||\n (0x00AC == codePoint) ||\n (0x00AF == codePoint) ||\n (0x27E6 <= codePoint && codePoint <= 0x27ED) ||\n (0x2985 <= codePoint && codePoint <= 0x2986)) {\n return 'Na';\n }\n if ((0x00A1 == codePoint) ||\n (0x00A4 == codePoint) ||\n (0x00A7 <= codePoint && codePoint <= 0x00A8) ||\n (0x00AA == codePoint) ||\n (0x00AD <= codePoint && codePoint <= 0x00AE) ||\n (0x00B0 <= codePoint && codePoint <= 0x00B4) ||\n (0x00B6 <= codePoint && codePoint <= 0x00BA) ||\n (0x00BC <= codePoint && codePoint <= 0x00BF) ||\n (0x00C6 == codePoint) ||\n (0x00D0 == codePoint) ||\n (0x00D7 <= codePoint && codePoint <= 0x00D8) ||\n (0x00DE <= codePoint && codePoint <= 0x00E1) ||\n (0x00E6 == codePoint) ||\n (0x00E8 <= codePoint && codePoint <= 0x00EA) ||\n (0x00EC <= codePoint && codePoint <= 0x00ED) ||\n (0x00F0 == codePoint) ||\n (0x00F2 <= codePoint && codePoint <= 0x00F3) ||\n (0x00F7 <= codePoint && codePoint <= 0x00FA) ||\n (0x00FC == codePoint) ||\n (0x00FE == codePoint) ||\n (0x0101 == codePoint) ||\n (0x0111 == codePoint) ||\n (0x0113 == codePoint) ||\n (0x011B == codePoint) ||\n (0x0126 <= codePoint && codePoint <= 0x0127) ||\n (0x012B == codePoint) ||\n (0x0131 <= codePoint && codePoint <= 0x0133) ||\n (0x0138 == codePoint) ||\n (0x013F <= codePoint && codePoint <= 0x0142) ||\n (0x0144 == codePoint) ||\n (0x0148 <= codePoint && codePoint <= 0x014B) ||\n (0x014D == codePoint) ||\n (0x0152 <= codePoint && codePoint <= 0x0153) ||\n (0x0166 <= codePoint && codePoint <= 0x0167) ||\n (0x016B == codePoint) ||\n (0x01CE == codePoint) ||\n (0x01D0 == codePoint) ||\n (0x01D2 == codePoint) ||\n (0x01D4 == codePoint) ||\n (0x01D6 == codePoint) ||\n (0x01D8 == codePoint) ||\n (0x01DA == codePoint) ||\n (0x01DC == codePoint) ||\n (0x0251 == codePoint) ||\n (0x0261 == codePoint) ||\n (0x02C4 == codePoint) ||\n (0x02C7 == codePoint) ||\n (0x02C9 <= codePoint && codePoint <= 0x02CB) ||\n (0x02CD == codePoint) ||\n (0x02D0 == codePoint) ||\n (0x02D8 <= codePoint && codePoint <= 0x02DB) ||\n (0x02DD == codePoint) ||\n (0x02DF == codePoint) ||\n (0x0300 <= codePoint && codePoint <= 0x036F) ||\n (0x0391 <= codePoint && codePoint <= 0x03A1) ||\n (0x03A3 <= codePoint && codePoint <= 0x03A9) ||\n (0x03B1 <= codePoint && codePoint <= 0x03C1) ||\n (0x03C3 <= codePoint && codePoint <= 0x03C9) ||\n (0x0401 == codePoint) ||\n (0x0410 <= codePoint && codePoint <= 0x044F) ||\n (0x0451 == codePoint) ||\n (0x2010 == codePoint) ||\n (0x2013 <= codePoint && codePoint <= 0x2016) ||\n (0x2018 <= codePoint && codePoint <= 0x2019) ||\n (0x201C <= codePoint && codePoint <= 0x201D) ||\n (0x2020 <= codePoint && codePoint <= 0x2022) ||\n (0x2024 <= codePoint && codePoint <= 0x2027) ||\n (0x2030 == codePoint) ||\n (0x2032 <= codePoint && codePoint <= 0x2033) ||\n (0x2035 == codePoint) ||\n (0x203B == codePoint) ||\n (0x203E == codePoint) ||\n (0x2074 == codePoint) ||\n (0x207F == codePoint) ||\n (0x2081 <= codePoint && codePoint <= 0x2084) ||\n (0x20AC == codePoint) ||\n (0x2103 == codePoint) ||\n (0x2105 == codePoint) ||\n (0x2109 == codePoint) ||\n (0x2113 == codePoint) ||\n (0x2116 == codePoint) ||\n (0x2121 <= codePoint && codePoint <= 0x2122) ||\n (0x2126 == codePoint) ||\n (0x212B == codePoint) ||\n (0x2153 <= codePoint && codePoint <= 0x2154) ||\n (0x215B <= codePoint && codePoint <= 0x215E) ||\n (0x2160 <= codePoint && codePoint <= 0x216B) ||\n (0x2170 <= codePoint && codePoint <= 0x2179) ||\n (0x2189 == codePoint) ||\n (0x2190 <= codePoint && codePoint <= 0x2199) ||\n (0x21B8 <= codePoint && codePoint <= 0x21B9) ||\n (0x21D2 == codePoint) ||\n (0x21D4 == codePoint) ||\n (0x21E7 == codePoint) ||\n (0x2200 == codePoint) ||\n (0x2202 <= codePoint && codePoint <= 0x2203) ||\n (0x2207 <= codePoint && codePoint <= 0x2208) ||\n (0x220B == codePoint) ||\n (0x220F == codePoint) ||\n (0x2211 == codePoint) ||\n (0x2215 == codePoint) ||\n (0x221A == codePoint) ||\n (0x221D <= codePoint && codePoint <= 0x2220) ||\n (0x2223 == codePoint) ||\n (0x2225 == codePoint) ||\n (0x2227 <= codePoint && codePoint <= 0x222C) ||\n (0x222E == codePoint) ||\n (0x2234 <= codePoint && codePoint <= 0x2237) ||\n (0x223C <= codePoint && codePoint <= 0x223D) ||\n (0x2248 == codePoint) ||\n (0x224C == codePoint) ||\n (0x2252 == codePoint) ||\n (0x2260 <= codePoint && codePoint <= 0x2261) ||\n (0x2264 <= codePoint && codePoint <= 0x2267) ||\n (0x226A <= codePoint && codePoint <= 0x226B) ||\n (0x226E <= codePoint && codePoint <= 0x226F) ||\n (0x2282 <= codePoint && codePoint <= 0x2283) ||\n (0x2286 <= codePoint && codePoint <= 0x2287) ||\n (0x2295 == codePoint) ||\n (0x2299 == codePoint) ||\n (0x22A5 == codePoint) ||\n (0x22BF == codePoint) ||\n (0x2312 == codePoint) ||\n (0x2460 <= codePoint && codePoint <= 0x24E9) ||\n (0x24EB <= codePoint && codePoint <= 0x254B) ||\n (0x2550 <= codePoint && codePoint <= 0x2573) ||\n (0x2580 <= codePoint && codePoint <= 0x258F) ||\n (0x2592 <= codePoint && codePoint <= 0x2595) ||\n (0x25A0 <= codePoint && codePoint <= 0x25A1) ||\n (0x25A3 <= codePoint && codePoint <= 0x25A9) ||\n (0x25B2 <= codePoint && codePoint <= 0x25B3) ||\n (0x25B6 <= codePoint && codePoint <= 0x25B7) ||\n (0x25BC <= codePoint && codePoint <= 0x25BD) ||\n (0x25C0 <= codePoint && codePoint <= 0x25C1) ||\n (0x25C6 <= codePoint && codePoint <= 0x25C8) ||\n (0x25CB == codePoint) ||\n (0x25CE <= codePoint && codePoint <= 0x25D1) ||\n (0x25E2 <= codePoint && codePoint <= 0x25E5) ||\n (0x25EF == codePoint) ||\n (0x2605 <= codePoint && codePoint <= 0x2606) ||\n (0x2609 == codePoint) ||\n (0x260E <= codePoint && codePoint <= 0x260F) ||\n (0x2614 <= codePoint && codePoint <= 0x2615) ||\n (0x261C == codePoint) ||\n (0x261E == codePoint) ||\n (0x2640 == codePoint) ||\n (0x2642 == codePoint) ||\n (0x2660 <= codePoint && codePoint <= 0x2661) ||\n (0x2663 <= codePoint && codePoint <= 0x2665) ||\n (0x2667 <= codePoint && codePoint <= 0x266A) ||\n (0x266C <= codePoint && codePoint <= 0x266D) ||\n (0x266F == codePoint) ||\n (0x269E <= codePoint && codePoint <= 0x269F) ||\n (0x26BE <= codePoint && codePoint <= 0x26BF) ||\n (0x26C4 <= codePoint && codePoint <= 0x26CD) ||\n (0x26CF <= codePoint && codePoint <= 0x26E1) ||\n (0x26E3 == codePoint) ||\n (0x26E8 <= codePoint && codePoint <= 0x26FF) ||\n (0x273D == codePoint) ||\n (0x2757 == codePoint) ||\n (0x2776 <= codePoint && codePoint <= 0x277F) ||\n (0x2B55 <= codePoint && codePoint <= 0x2B59) ||\n (0x3248 <= codePoint && codePoint <= 0x324F) ||\n (0xE000 <= codePoint && codePoint <= 0xF8FF) ||\n (0xFE00 <= codePoint && codePoint <= 0xFE0F) ||\n (0xFFFD == codePoint) ||\n (0x1F100 <= codePoint && codePoint <= 0x1F10A) ||\n (0x1F110 <= codePoint && codePoint <= 0x1F12D) ||\n (0x1F130 <= codePoint && codePoint <= 0x1F169) ||\n (0x1F170 <= codePoint && codePoint <= 0x1F19A) ||\n (0xE0100 <= codePoint && codePoint <= 0xE01EF) ||\n (0xF0000 <= codePoint && codePoint <= 0xFFFFD) ||\n (0x100000 <= codePoint && codePoint <= 0x10FFFD)) {\n return 'A';\n }\n\n return 'N';\n};\n\neaw.characterLength = function(character) {\n var code = this.eastAsianWidth(character);\n if (code == 'F' || code == 'W' || code == 'A') {\n return 2;\n } else {\n return 1;\n }\n};\n\n// Split a string considering surrogate-pairs.\nfunction stringToArray(string) {\n return string.match(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\uD800-\\uDFFF]/g) || [];\n}\n\neaw.length = function(string) {\n var characters = stringToArray(string);\n var len = 0;\n for (var i = 0; i < characters.length; i++) {\n len = len + this.characterLength(characters[i]);\n }\n return len;\n};\n\neaw.slice = function(text, start, end) {\n textLen = eaw.length(text)\n start = start ? start : 0;\n end = end ? end : 1;\n if (start < 0) {\n start = textLen + start;\n }\n if (end < 0) {\n end = textLen + end;\n }\n var result = '';\n var eawLen = 0;\n var chars = stringToArray(text);\n for (var i = 0; i < chars.length; i++) {\n var char = chars[i];\n var charLen = eaw.length(char);\n if (eawLen >= start - (charLen == 2 ? 1 : 0)) {\n if (eawLen + charLen <= end) {\n result += char;\n } else {\n break;\n }\n }\n eawLen += charLen;\n }\n return result;\n};\n", "\"use strict\";\n\nmodule.exports = function () {\n // https://mths.be/emoji\n return /\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67)\\uDB40\\uDC7F|(?:\\uD83E\\uDDD1\\uD83C\\uDFFF\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C\\uDFFB(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))?|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFF]))|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\u200D(?:(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC)?|(?:\\uD83D\\uDC69(?:\\uD83C\\uDFFB\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|(?:\\uD83C[\\uDFFC-\\uDFFF])\\u200D\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69]))|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC69(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83E\\uDDD1(?:\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|\\uD83D\\uDE36\\u200D\\uD83C\\uDF2B|\\uD83C\\uDFF3\\uFE0F\\u200D\\u26A7|\\uD83D\\uDC3B\\u200D\\u2744|(?:(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\uD83C\\uDFF4\\u200D\\u2620|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])\\u200D[\\u2640\\u2642]|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u2600-\\u2604\\u260E\\u2611\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26B0\\u26B1\\u26C8\\u26CF\\u26D1\\u26D3\\u26E9\\u26F0\\u26F1\\u26F4\\u26F7\\u26F8\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]|\\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|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDE35\\u200D\\uD83D\\uDCAB|\\uD83D\\uDE2E\\u200D\\uD83D\\uDCA8|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83D\\uDC69(?:\\uD83C\\uDFFF|\\uD83C\\uDFFE|\\uD83C\\uDFFD|\\uD83C\\uDFFC|\\uD83C\\uDFFB)?|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83D\\uDC08\\u200D\\u2B1B|\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79)|\\uD83D\\uDC41\\uFE0F|\\uD83C\\uDFF3\\uFE0F|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|[#\\*0-9]\\uFE0F\\u20E3|\\u2764\\uFE0F|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDFF4|(?:[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\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]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270C\\u270D]|\\uD83D[\\uDD74\\uDD90])(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])|[\\u270A\\u270B]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC08\\uDC15\\uDC3B\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE2E\\uDE35\\uDE36\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5]|\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD4\\uDDD6-\\uDDDD]|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF]|[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\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-\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD1D\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78\\uDD7A-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCB\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6]|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26A7\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5-\\uDED7\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDD77\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g;\n};\n", "import type { IncomingMessage } from 'http'\n\n/**\n * Codification of vlt's Error.cause conventions\n *\n * Add new properties to this list as needed.\n *\n * Several of these types are just very basic duck-typing, because referencing\n * internal types directly would create a workspace dependency cycle.\n */\nexport type ErrorCauseObject = {\n /**\n * The `cause` field within a `cause` object should\n * always be an `Error` object that was previously thrown. Note\n * that the `cause` on an Error itself might _also_ be a\n * previously thrown error, if no additional information could be\n * usefully added beyond improving the message.\n */\n cause?: ErrorCause\n\n /** the name of something */\n name?: string\n\n /** byte offset in a Buffer or file */\n offset?: number\n\n /**\n * This should only be a string code that we set. See {@link Codes} for\n * the supported options. Lower-level system codes like `ENOENT` should\n * remain on the errors that generated them.\n */\n code?: Codes\n\n /** target of a file system operation */\n path?: string\n\n /**\n * file path origin of a resolution that failed, for example in the case\n * of `file://` specifiers.\n */\n from?: string\n\n /** path on disk that is being written, linked, or extracted to */\n target?: string\n\n /** Spec object/string relevant to an operation that failed */\n spec?:\n | string\n | {\n type: 'file' | 'git' | 'registry' | 'remote' | 'workspace'\n spec: string\n [k: number | string | symbol]: any\n }\n\n /** exit code of a process, or HTTP response status code */\n status?: number | null\n\n /** null or a signal that a process received */\n signal?: NodeJS.Signals | null\n\n /** the root of a project */\n projectRoot?: string\n\n /** the current working directory of a process */\n cwd?: string\n\n /** a command being run in a child process */\n command?: string\n\n /** the arguments passed to a process */\n args?: string[]\n\n /** standard output from a process */\n stdout?: Buffer | string | null\n\n /** standard error from a process */\n stderr?: Buffer | string | null\n\n /**\n * Array of valid options when something is not a valid option.\n * (For use in `did you mean X?` output.)\n */\n validOptions?: any[]\n\n /**\n * message indicating what bit of work this might be a part of, what feature\n * needs to be implemented, etc. Eg, `{ todo: 'nested workspace support' }`.\n */\n todo?: string\n\n /**\n * A desired value that was not found, or a regular expression or other\n * pattern describing it.\n */\n wanted?: any\n\n /** actual value, which was not wanted */\n found?: any\n\n /** HTTP message, fetch.Response, or `@vltpkg/registry-client.CacheEntry` */\n response?:\n | IncomingMessage\n | Response\n | {\n statusCode: number\n headers: Buffer[] | Record<string, string[] | string>\n text: () => string\n [k: number | string | symbol]: any\n }\n\n /** string or URL object */\n url?: URL | string\n\n /** git repository remote or path */\n repository?: string\n\n /** string or `@vltpkg/semver.Version` object */\n version?:\n | string\n | {\n raw: string\n major: number\n minor: number\n patch: number\n [k: number | string | symbol]: any\n }\n\n /** string or `@vltpkg/semver.Range` object */\n range?:\n | string\n | {\n raw: string\n isAny: boolean\n includePrerelease: boolean\n [k: number | string | symbol]: any\n }\n\n /** a package manifest, either from `package.json` or a registry */\n manifest?: DuckTypeManifest\n\n /** registry top-level package document */\n packument?: {\n name: string\n 'dist-tags': Record<string, string>\n versions: Record<string, DuckTypeManifest>\n time?: Record<string, string>\n }\n\n /** maximum value, which was exceeded */\n max?: any\n\n /** minimum value, which was not met */\n min?: any\n}\n\nexport type DuckTypeManifest = Record<string, any> & {\n name?: string\n version?: string\n deprecated?: string\n engines?: Record<string, string>\n os?: string[] | string\n arch?: string[] | string\n dist?: {\n integrity?: string\n shasum?: string\n tarball?: string\n fileCount?: number\n unpackedSize?: number\n signatures?: {\n keyid: string\n sig: string\n }[]\n }\n}\n\nexport type ErrorCause = Error | ErrorCauseObject\n\n/**\n * Valid properties for the 'code' field in an Error cause.\n * Add new options to this list as needed.\n */\nexport type Codes =\n | 'EEXIST'\n | 'EINTEGRITY'\n | 'EINVAL'\n | 'ELIFECYCLE'\n | 'EMAXREDIRECT'\n | 'ENEEDAUTH'\n | 'ENOENT'\n | 'ENOGIT'\n | 'ERESOLVE'\n | 'EUNKNOWN'\n\nconst create = (\n cls: typeof Error,\n defaultFrom: ((...a: any[]) => any) | (new (...a: any[]) => any),\n message: string,\n cause?: ErrorCause,\n from:\n | ((...a: any[]) => any)\n | (new (...a: any[]) => any) = defaultFrom,\n) => {\n const er = new cls(message, cause ? { cause } : undefined)\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n Error.captureStackTrace?.(er, from)\n return er\n}\n\nexport const error = (\n message: string,\n cause?: ErrorCause,\n from?: ((...a: any[]) => any) | (new (...a: any[]) => any),\n) => create(Error, error, message, cause, from)\n\nexport const typeError = (\n message: string,\n cause?: ErrorCause,\n from?: ((...a: any[]) => any) | (new (...a: any[]) => any),\n) => create(TypeError, typeError, message, cause, from)\n\nexport const syntaxError = (\n message: string,\n cause?: ErrorCause,\n from?: ((...a: any[]) => any) | (new (...a: any[]) => any),\n) => create(SyntaxError, syntaxError, message, cause, from)\n", "import { error } from '@vltpkg/error-cause'\nimport { spawnSync } from 'child_process'\nimport {\n ConfigDefinitions,\n definition,\n isRecordField,\n LoadedConfig,\n pairsToRecords,\n recordsToPairs,\n} from '../config/index.js'\n\n// TODO: need a proper error/logging handler thing\n// replace all these string throws and direct console.log/error\n// with appropriate output and error handling.\n\nexport const usage = `Usage:\n vlt config get <key> [<key> ...]\n vlt config ls\n vlt config set <key>=<value> [<key>=<value> ...] [--config=<user | project>]\n vlt config del <key> [<key> ...] [--config=<user | project>]\n vlt config edit [--config=<user | project>]\n vlt config help [field ...]`\n\nexport const command = async (conf: LoadedConfig) => {\n const sub = conf.positionals[0]\n if (conf.get('help') || !sub) {\n console.log(usage)\n return\n }\n\n switch (sub) {\n case 'set':\n return set(conf)\n case 'get':\n return get(conf)\n case 'ls':\n case 'list':\n return list(conf)\n case 'edit':\n return edit(conf)\n case 'help':\n return help(conf)\n case 'del':\n return del(conf)\n default: {\n console.error(usage)\n throw error('Unrecognized config command', {\n found: conf.positionals[0],\n validOptions: ['set', 'get', 'list', 'edit', 'help', 'del'],\n })\n }\n }\n}\n\nconst help = (conf: LoadedConfig) => {\n const j = definition.toJSON()\n const fields = conf.positionals.slice(1)\n if (!fields.length) {\n console.log('Specify one or more options to see information:')\n console.log(\n Object.keys(j)\n .sort((a, b) => a.localeCompare(b, 'en'))\n .map(c => ` ${c}`)\n .join('\\n'),\n )\n return\n }\n // TODO: some kind of fuzzy search?\n for (const f of fields) {\n const def = j[f]\n if (!def) {\n console.log(`unknown config field: ${f}`)\n } else {\n console.log(`--${f}${def.hint ? `=<${def.hint}>` : ''}\n type: ${\n isRecordField(f) ?\n 'Record<string, string>'\n : def.type + (def.multiple ? '[]' : '')\n }${\n def.default ?\n `\n default: ${JSON.stringify(def.default)}\\n`\n : ''\n }\n${def.description}\n `)\n }\n }\n}\n\nconst list = (conf: LoadedConfig) => {\n console.log(JSON.stringify(recordsToPairs(conf.options), null, 2))\n}\n\nconst del = async (conf: LoadedConfig) => {\n const fields = conf.positionals.slice(1)\n if (!fields.length) {\n console.error(usage)\n throw error('At least one key is required')\n }\n await conf.deleteConfigKeys(\n conf.get('config') as 'project' | 'user',\n fields,\n )\n}\n\nconst get = (conf: LoadedConfig) => {\n const keys = conf.positionals.slice(1)\n const k = keys[0]\n if (!k || keys.length > 1) {\n console.error(usage)\n throw error('Exactly one key is required')\n }\n console.log(\n JSON.stringify(conf.get(k as keyof ConfigDefinitions), null, 2),\n )\n}\n\nconst edit = async (conf: LoadedConfig) => {\n const editor = conf.get('editor')\n /* c8 ignore start - there's a default, it can't be blank */\n if (!editor) {\n throw error('no editor set in config')\n }\n /* c8 ignore stop */\n await conf.editConfigFile(\n conf.get('config') as 'project' | 'user',\n async file => {\n spawnSync(editor, [file], { stdio: 'inherit' })\n },\n )\n}\n\nconst set = async (conf: LoadedConfig) => {\n const pairs = conf.positionals.slice(1)\n if (!pairs.length) {\n console.error(usage)\n throw error('At least one key=value pair is required')\n }\n const { values } = conf.jack.parseRaw(pairs.map(kv => `--${kv}`))\n const which = conf.get('config') as 'project' | 'user'\n await conf.addConfigToFile(which, pairsToRecords(values))\n}\n", "import { homedir, tmpdir } from 'os'\nimport { resolve } from 'path'\n\nconst root = homedir()\nconst path = (p: string) => resolve(root, p)\n\nexport type PathType =\n | 'cache'\n | 'config'\n | 'data'\n | 'runtime'\n | 'state'\n\nconst defaults =\n process.platform === 'darwin' ?\n (which: PathType): string => {\n switch (which) {\n case 'config':\n return path('Library/Preferences')\n case 'cache':\n return path('Library/Caches')\n case 'data':\n return path('Library/Application Support')\n case 'state':\n return path('Library/State')\n case 'runtime':\n return resolve(\n tmpdir(),\n /* c8 ignore next */\n String(process.getuid?.() ?? ''),\n '.run',\n )\n }\n }\n : process.platform === 'win32' ?\n (which: PathType): string => {\n const ad = process.env.APPDATA ?? path('AppData/Roaming')\n const lad = process.env.LOCALAPPDATA ?? path('AppData/Local')\n switch (which) {\n case 'config':\n return resolve(ad, 'xdg.config')\n case 'cache':\n return resolve(lad, 'xdg.cache')\n case 'data':\n return resolve(ad, 'xdg.data')\n case 'state':\n return resolve(lad, 'xdg.state')\n case 'runtime':\n return resolve(tmpdir(), 'xdg.run')\n }\n }\n : (which: PathType): string => {\n switch (which) {\n case 'config':\n return path('.config')\n case 'cache':\n return path('.cache')\n case 'data':\n return path('.local/data')\n case 'state':\n return path('.local/state')\n case 'runtime':\n return resolve(\n tmpdir(),\n /* c8 ignore next */\n String(process.getuid?.() ?? ''),\n '.run',\n )\n }\n }\n\nconst {\n XDG_CONFIG_HOME = defaults('config'),\n XDG_CACHE_HOME = defaults('cache'),\n XDG_DATA_HOME = defaults('data'),\n XDG_STATE_HOME = defaults('state'),\n XDG_RUNTIME_DIR = defaults('runtime'),\n} = process.env\n\nexport class XDG {\n name: string\n base: { [k in PathType]: string } = {\n config: XDG_CONFIG_HOME,\n cache: XDG_CACHE_HOME,\n data: XDG_DATA_HOME,\n state: XDG_STATE_HOME,\n runtime: XDG_RUNTIME_DIR,\n }\n constructor(name: string) {\n this.name = name\n }\n config(p = '') {\n return resolve(this.base.config, this.name, p)\n }\n cache(p = '') {\n return resolve(this.base.cache, this.name, p)\n }\n data(p = '') {\n return resolve(this.base.data, this.name, p)\n }\n state(p = '') {\n return resolve(this.base.state, this.name, p)\n }\n runtime(p = '') {\n return resolve(this.base.runtime, this.name, p)\n }\n}\n", "/**\n * Module that handles all vlt configuration needs\n *\n * Project-level configs are set in a `vlt.json` file in the local project\n * if present. This will override the user-level configs in the appropriate\n * XDG config path.\n *\n * Command-specific configuration can be specified by putting options in a\n * field in the `command` object. For example:\n *\n * ```json\n * {\n * \"registry\": \"https://registry.npmjs.org\",\n * \"command\": {\n * \"publish\": {\n * \"registry\": \"http://registry.internal\"\n * }\n * }\n * }\n * ```\n *\n * @module\n */\n\nimport { error } from '@vltpkg/error-cause'\nimport { XDG } from '@vltpkg/xdg'\nimport { readFileSync, rmSync, writeFileSync } from 'fs'\nimport { lstat, mkdir, readFile, writeFile } from 'fs/promises'\nimport { Jack, OptionsResults, Unwrap } from 'jackspeak'\nimport { homedir } from 'os'\nimport { dirname, resolve } from 'path'\nimport {\n kIndent,\n kNewline,\n parse as jsonParse,\n stringify as jsonStringify,\n} from 'polite-json'\nimport { walkUp } from 'walk-up-path'\nimport {\n commands,\n definition,\n getCommand,\n isRecordField,\n recordFields,\n type Commands,\n} from './definition.js'\nimport { merge } from './merge.js'\nexport { recordFields, isRecordField }\nexport { definition, commands, Commands }\n\n// turn a set of pairs into a Record object.\n// if a kv pair doesn't have a = character, set to `''`\nconst reducePairs = <T extends string[]>(\n pairs: T,\n): Record<string, string> | T => {\n const record: Record<string, string> = {}\n for (const kv of pairs) {\n const eq = kv.indexOf('=')\n if (eq === -1) record[kv] = ''\n else {\n const key = kv.substring(0, eq)\n const val = kv.substring(eq + 1)\n record[key] = val\n }\n }\n return record\n}\n\nconst isRecordFieldValue = (k: string, v: unknown): v is string[] =>\n Array.isArray(v) &&\n recordFields.includes(k as (typeof recordFields)[number])\n\nexport const pairsToRecords = (\n obj: ConfigFileData,\n): Omit<ConfigOptions, 'projectRoot'> & {\n command?: Record<string, ConfigOptions>\n} => {\n return Object.fromEntries(\n Object.entries(obj).map(([k, v]) => [\n k,\n k === 'command' && v && typeof v === 'object' ?\n Object.fromEntries(\n Object.entries(v).map(([k, v]) => [\n k,\n pairsToRecords(v as ConfigFileData),\n ]),\n )\n : isRecordFieldValue(k, v) ? reducePairs(v)\n : v,\n ]),\n )\n}\n\nexport const recordsToPairs = (\n obj: Record<string | symbol, any>,\n): Record<string | symbol, any> => {\n return Object.fromEntries(\n Object.entries(obj).map(([k, v]) => [\n k,\n k === 'command' && v && typeof v === 'object' ?\n recordsToPairs(v)\n : (\n !v ||\n typeof v !== 'object' ||\n Array.isArray(v) ||\n !isRecordField(k)\n ) ?\n v\n : Object.entries(v).map(([k, v]) => `${k}=${v}`),\n ]),\n )\n}\n\nconst kRecord = Symbol('parsed key=value record')\nconst exists = (f: string) =>\n lstat(f).then(\n () => true,\n () => false,\n )\n\nconst home = homedir()\nconst xdg = new XDG('vlt')\n\n/**\n * Config data can be any options, and also a 'command' field which\n * contains command names and override options for that command.\n */\nexport type ConfigData = OptionsResults<ConfigDefinitions> & {\n command?: Record<string, OptionsResults<ConfigDefinitions>>\n}\n\n/**\n * Config data as it appears in config files, with kv pair lists\n * stored as `Record<string, string>`.\n */\nexport type ConfigFileData = {\n [k in keyof ConfigData]?: k extends OptListKeys<ConfigData> ?\n Record<string, string> | string[]\n : k extends 'command' ? Record<string, ConfigFileData>\n : ConfigData[k]\n}\n\nexport type ConfigOptions = {\n [k in keyof ConfigFileData]?: k extends OptListKeys<ConfigData> ?\n Record<string, string>\n : k extends 'command' ? never\n : ConfigData[k]\n} & {\n projectRoot: string\n}\n\n/**\n * The base config definition set as a type\n */\nexport type ConfigDefinitions = Unwrap<typeof definition>\n\nexport type StringListKeys<O> = {\n [k in keyof O]: O[k] extends string[] | undefined ? k : never\n}\nexport type OptListKeys<O> = Exclude<\n StringListKeys<O>[keyof StringListKeys<O>],\n undefined\n>\n\n/**\n * Class that handles configuration for vlt.\n *\n * Call {@link Config.load} to get one of these.\n */\nexport class Config {\n /**\n * The {@link https://npmjs.com/jackspeak | JackSpeak} object\n * representing vlt's configuration\n */\n jack: Jack<ConfigDefinitions>\n\n stringifyOptions: {\n [kIndent]: string\n [kNewline]: string\n } = { [kIndent]: ' ', [kNewline]: '\\n' }\n\n configFiles: Record<string, ConfigFileData> = {}\n\n /**\n * Parsed values in effect\n */\n values?: OptionsResults<ConfigDefinitions>\n\n /**\n * Command-specific config values\n */\n commandValues: {\n [cmd in Commands[keyof Commands]]?: ConfigData\n } = {}\n\n /**\n * A flattened object of the parsed configuration\n */\n get options(): ConfigOptions {\n if (this.#options) return this.#options\n this.#options = Object.assign(\n pairsToRecords(this.parse().values),\n { projectRoot: this.projectRoot },\n )\n return this.#options\n }\n // memoized options() getter value\n #options?: ConfigOptions\n\n /**\n * positional arguments to the vlt process\n */\n positionals?: string[]\n\n /**\n * The root of the project where a vlt.json, vlt-workspaces.json,\n * package.json, or .git was found. Not necessarily the `process.cwd()`,\n * though that is the default location.\n *\n * Never walks up as far as `$HOME`. So for example, if a project is in\n * `~/projects/xyz`, then the highest dir it will check is `~/projects`\n */\n projectRoot: string\n\n /**\n * Record<alias, canonical name> to dereference command aliases.\n */\n commands: Commands\n\n /**\n * Which command name to use for overriding with command-specific values,\n * determined from the argv when parse() is called.\n */\n command?: Commands[keyof Commands]\n\n constructor(\n jack: Jack<ConfigDefinitions> = definition,\n projectRoot = process.cwd(),\n ) {\n this.projectRoot = projectRoot\n this.commands = commands\n this.jack = jack\n }\n\n /**\n * Parse the arguments and set configuration and positionals accordingly.\n */\n parse(args: string[] = process.argv): this & {\n values: OptionsResults<ConfigDefinitions>\n positionals: string[]\n } {\n if (this.values && this.positionals) {\n return this as this & {\n values: OptionsResults<ConfigDefinitions>\n positionals: string[]\n }\n }\n this.jack.loadEnvDefaults()\n const p = this.jack.parseRaw(args)\n\n const fallback = getCommand(p.values['fallback-command'])\n this.command = getCommand(p.positionals[0])\n\n const cmdOrFallback = this.command ?? fallback\n const cmdSpecific =\n cmdOrFallback && this.commandValues[cmdOrFallback]\n if (cmdSpecific) {\n this.jack.setConfigValues(recordsToPairs(cmdSpecific))\n }\n\n // ok, applied cmd-specific defaults, do rest of the parse\n this.jack.applyDefaults(p)\n this.jack.writeEnv(p)\n\n if (this.command) p.positionals.shift()\n else this.command = getCommand(p.values['fallback-command'])\n\n return Object.assign(this, p)\n }\n\n /**\n * Get a `key=value` list option value as an object.\n *\n * For example, a list option with a vlaue of `['key=value', 'xyz=as=df' ]`\n * would be returned as `{key: 'value', xyz: 'as=df'}`\n *\n * Results are memoized, so subsequent calls for the same key will return the\n * same object. If new strings are added to the list, then the memoized value\n * is *not* updated, so only use once configurations have been fully loaded.\n *\n * If the config value is not set at all, an empty object is returned.\n */\n getRecord(k: OptListKeys<ConfigData>): Record<string, string> {\n const pairs = this.get(k) as\n | (string[] & { [kRecord]?: Record<string, string> })\n | undefined\n if (!pairs) return {}\n if (pairs[kRecord]) return pairs[kRecord]\n const kv = pairs.reduce((kv: Record<string, string>, pair) => {\n const eq = pair.indexOf('=')\n if (eq === -1) return kv\n const key = pair.substring(0, eq)\n const val = pair.substring(eq + 1)\n kv[key] = val\n return kv\n }, {})\n Object.assign(pairs, { [kRecord]: kv })\n return kv\n }\n\n /**\n * Get a configuration value.\n *\n * Note: `key=value` pair configs are returned as a string array. To get them\n * as an object, use {@link Config#getRecord}.\n */\n get<K extends keyof OptionsResults<ConfigDefinitions>>(\n k: K,\n ): OptionsResults<ConfigDefinitions>[K] {\n /* c8 ignore next -- impossible but TS doesn't know that */\n return (this.values ?? this.parse().values)[k]\n }\n\n /**\n * Write the config values to the user or project config file.\n */\n async writeConfigFile(\n which: 'project' | 'user',\n values: ConfigFileData,\n ) {\n const f = this.getFilename(which)\n await mkdir(dirname(f), { recursive: true })\n const vals = Object.assign(\n pairsToRecords(values),\n this.stringifyOptions,\n )\n await writeFile(f, jsonStringify(vals))\n this.configFiles[f] = vals\n return values\n }\n\n /**\n * Fold in the provided fields with the existing properties\n * in the config file.\n */\n async addConfigToFile(\n which: 'project' | 'user',\n values: ConfigFileData,\n ) {\n const f = this.getFilename(which)\n return this.writeConfigFile(\n which,\n merge((await this.#maybeLoadConfigFile(f)) ?? {}, values),\n )\n }\n\n /**\n * if the file exists, parse and load it. returns object if data was\n * loaded, or undefined if not.\n */\n async #maybeLoadConfigFile(\n file: string,\n ): Promise<ConfigFileData | undefined> {\n const result = await this.#readConfigFile(file)\n\n if (result) {\n try {\n const { command, ...values } = recordsToPairs(result)\n if (command) {\n for (const [c, opts] of Object.entries(command)) {\n const cmd = getCommand(c)\n if (cmd) {\n this.commandValues[cmd] = merge<ConfigData>(\n this.commandValues[cmd] ?? ({} as ConfigData),\n opts as ConfigData,\n )\n }\n }\n }\n this.jack.setConfigValues(values, file)\n return result\n } catch (er) {\n throw error('failed to load config values from file', {\n path: file,\n cause: er as Error,\n })\n }\n }\n }\n\n async #readConfigFile(\n file: string,\n ): Promise<ConfigFileData | undefined> {\n if (this.configFiles[file]) return this.configFiles[file]\n const data = await readFile(file, 'utf8').catch(() => {})\n if (!data) return undefined\n let result: any\n try {\n result = jsonParse(data)\n if (result[kIndent] !== undefined)\n this.stringifyOptions[kIndent] = result[kIndent]\n if (result[kNewline] !== undefined)\n this.stringifyOptions[kNewline] = result[kNewline]\n } catch (er) {\n throw error('failed to parse vlt config file', {\n path: file,\n cause: er as Error,\n })\n }\n this.configFiles[file] = result\n return result\n }\n\n getFilename(which: 'project' | 'user' = 'project'): string {\n return which === 'user' ?\n xdg.config('vlt.json')\n : resolve(this.projectRoot, 'vlt.json')\n }\n\n async deleteConfigKeys(\n which: 'project' | 'user',\n fields: string[],\n ) {\n const file = this.getFilename(which)\n const data = await this.#maybeLoadConfigFile(file)\n if (!data) {\n rmSync(file, { force: true })\n return false\n }\n let didSomething = false\n for (const f of fields) {\n const [key, ...sk] = f.split('.') as [\n h: string,\n ...rest: string[],\n ]\n const subs = sk.join('.')\n const k = key as keyof ConfigDefinitions\n const v = data[k]\n if (v === undefined) continue\n if (subs && v && typeof v === 'object') {\n if (Array.isArray(v)) {\n const i = v.findIndex(subvalue =>\n subvalue.startsWith(`${subs}=`),\n )\n if (i !== -1) {\n v.splice(i, 1)\n if (v.length === 0) delete data[k]\n didSomething = true\n }\n } else {\n if (v[subs] !== undefined) {\n delete v[subs]\n if (Object.keys(v).length === 0) delete data[k]\n didSomething = true\n }\n }\n } else {\n didSomething = true\n delete data[k]\n }\n }\n const d = jsonStringify(data)\n if (d.trim() === '{}') {\n rmSync(file, { force: true })\n } else {\n writeFileSync(file, jsonStringify(data))\n }\n return didSomething\n }\n\n /**\n * Edit the user or project configuration file.\n *\n * If the file isn't present, then it starts with `{}` so the user has\n * something to work with.\n *\n * If the result is not valid, or no config settings are contained in the\n * file after editing, then it's restored to what it was before, which might\n * mean deleting the file.\n */\n async editConfigFile(\n which: 'project' | 'user',\n edit: (file: string) => Promise<void> | void,\n ) {\n const file = this.getFilename(which)\n const backup = this.configFiles[file]\n if (!backup) {\n writeFileSync(file, '{\\n\\n}\\n')\n }\n await edit(file)\n let valid = false\n try {\n const res = jsonParse(readFileSync(file, 'utf8'))\n if (!res || typeof res !== 'object' || Array.isArray(res)) {\n throw error('Invalid configuration, expected object', {\n path: file,\n found: res,\n })\n }\n if (Object.keys(res).length === 0) {\n // nothing there, remove file\n delete this.configFiles[file]\n rmSync(file, { force: true })\n } else {\n this.jack.setConfigValues(recordsToPairs(res))\n this.configFiles[file] = res as ConfigFileData\n }\n valid = true\n } finally {\n if (!valid) {\n if (backup) {\n writeFileSync(file, jsonStringify(backup))\n } else {\n rmSync(file, { force: true })\n }\n }\n }\n }\n\n /**\n * Find the local config file and load both it and the user-level config in\n * the XDG config home.\n *\n * Note: if working in a workspaces monorepo, then the vlt.json file MUST\n * be in the same folder as the vlt-workspaces.json file, because we stop\n * looking when we find either one.\n */\n async loadConfigFile(): Promise<this> {\n const userConfig = xdg.config('vlt.json')\n await this.#maybeLoadConfigFile(userConfig)\n\n // don't walk up past a folder containing any of these\n const stops = ['vlt-workspaces.json', '.git']\n // indicators that this *may* be the root, if no .git or workspaces\n // file is found higher up in the search.\n let foundLikelyRoot = false\n const likelies = ['package.json', 'node_modules']\n for (const dir of walkUp(this.projectRoot)) {\n // don't look in ~\n if (dir === home) break\n const projectConfig = resolve(dir, 'vlt.json')\n if (projectConfig === userConfig) break\n if (await this.#maybeLoadConfigFile(resolve(dir, 'vlt.json'))) {\n this.projectRoot = dir\n break\n }\n if (\n !foundLikelyRoot &&\n (\n await Promise.all(\n likelies.map(s => exists(resolve(dir, s))),\n )\n ).find(x => x)\n ) {\n foundLikelyRoot = true\n this.projectRoot = dir\n }\n if (\n (\n await Promise.all(stops.map(s => exists(resolve(dir, s))))\n ).find(x => x)\n ) {\n this.projectRoot = dir\n break\n }\n }\n return this\n }\n\n /**\n * Determine whether we should use colors in the output. Update\n * chalk appropriately.\n *\n * Implicitly calls this.parse() if it not parsed already.\n */\n async loadColor(): Promise<\n this & {\n get(key: 'color'): boolean\n values: OptionsResults<ConfigDefinitions>\n positionals: string[]\n }\n > {\n const c = this.get('color')\n const chalk = (await import('chalk')).default\n let color: boolean\n if (\n process.env.NO_COLOR !== '1' &&\n (c === true || (c === undefined && chalk.level > 0))\n ) {\n color = true\n chalk.level = Math.max(chalk.level, 1) as 0 | 1 | 2 | 3\n process.env.FORCE_COLOR = String(chalk.level)\n delete process.env.NO_COLOR\n } else {\n color = false\n chalk.level = 0\n process.env.FORCE_COLOR = '0'\n process.env.NO_COLOR = '1'\n }\n const { values = this.parse().values } = this\n ;(values as ConfigData & { color: boolean }).color = color\n return this as this & {\n values: OptionsResults<ConfigDefinitions>\n positionals: string[]\n get(k: 'color'): boolean\n }\n }\n\n /**\n * cache of the loaded config\n */\n static #loaded: LoadedConfig | undefined\n\n /**\n * Load the configuration and return a Promise to a\n * {@link Config} object\n */\n static async load(\n projectRoot = process.cwd(),\n argv = process.argv,\n /**\n * only used in tests, resets the memoization\n * @internal\n */\n reload = false,\n ): Promise<LoadedConfig> {\n if (this.#loaded && !reload) return this.#loaded\n const a = new Config(definition, projectRoot)\n const b = await a.loadConfigFile()\n const c = await b.parse(argv).loadColor()\n this.#loaded = c as LoadedConfig\n return this.#loaded\n }\n}\n\n/**\n * A fully loaded {@link Config} object\n */\nexport type LoadedConfig = Config & {\n get(k: 'color'): boolean\n values: OptionsResults<ConfigDefinitions>\n positionals: string[]\n}\n", "/**\n * Copyright 2017 Kat Marchán\n * Copyright npm, Inc.\n * Copyright 2023 Isaac Z. Schlueter\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the \"Software\"),\n * to deal in the Software without restriction, including without limitation\n * the rights to use, copy, modify, merge, publish, distribute, sublicense,\n * and/or sell copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\n * DEALINGS IN THE SOFTWARE.\n *\n * ---\n *\n * 'polite-json' is a fork of 'json-parse-even-better-errors',\n * extended and distributed under the terms of the MIT license\n * above.\n *\n * 'json-parse-even-better-errors' is a fork of\n * 'json-parse-better-errors' by Kat Marchán, extended and\n * distributed under the terms of the MIT license above.\n */\n\n// version specific\n/* c8 ignore start */\nconst hexify = (s: string) =>\n Array.from(s)\n .map(\n c => '0x' + c.charCodeAt(0).toString(16).toUpperCase().padStart(2, '0')\n )\n .join('')\n/* c8 ignore stop */\n\ntype ParseErrorMeta = {\n message: string\n position: number\n}\nconst parseError = (e: Error, txt: string, context: number): ParseErrorMeta => {\n if (!txt) {\n return {\n message: e.message + ' while parsing empty string',\n position: 0,\n }\n }\n const badToken = e.message.match(/^Unexpected (?:token (.*?))?/i)\n const atPos = e.message.match(/at positions? (\\d+)/)\n\n // version specific\n /* c8 ignore start */\n const errIdx = /^Unexpected end of JSON|Unterminated string in JSON/i.test(\n e.message\n )\n ? txt.length - 1\n : atPos && atPos[1]\n ? +atPos[1]\n : /is not valid JSON$/.test(e.message)\n ? 0\n : null\n\n const msg =\n badToken && badToken[1]\n ? e.message.replace(\n /^Unexpected token ./,\n `Unexpected token ${JSON.stringify(badToken[1])} (${hexify(\n badToken[1]\n )})`\n )\n : e.message\n /* c8 ignore stop */\n\n if (errIdx !== null && errIdx !== undefined) {\n const start = errIdx <= context ? 0 : errIdx - context\n\n const end = errIdx + context >= txt.length ? txt.length : errIdx + context\n\n const slice =\n (start === 0 ? '' : '...') +\n txt.slice(start, end) +\n (end === txt.length ? '' : '...')\n\n const near = txt === slice ? '' : 'near '\n\n return {\n message: msg + ` while parsing ${near}${JSON.stringify(slice)}`,\n position: errIdx,\n }\n } else {\n return {\n message: msg + ` while parsing '${txt.slice(0, context * 2)}'`,\n position: 0,\n }\n }\n}\n\nexport class JSONParseError extends SyntaxError {\n code: 'EJSONPARSE'\n cause: Error\n position: number\n constructor(\n er: Error,\n txt: string,\n context: number = 20,\n caller?: Function | ((...a: any[]) => any)\n ) {\n const { message, position } = parseError(er, txt, context)\n super(message)\n this.cause = er\n this.position = position\n this.code = 'EJSONPARSE'\n Error.captureStackTrace(this, caller || this.constructor)\n }\n get name() {\n return this.constructor.name\n }\n set name(_) {}\n get [Symbol.toStringTag]() {\n return this.constructor.name\n }\n}\n\nexport const kIndent = Symbol.for('indent')\nexport const kNewline = Symbol.for('newline')\n// only respect indentation if we got a line break, otherwise squash it\n// things other than objects and arrays aren't indented, so ignore those\n// Important: in both of these regexps, the $1 capture group is the newline\n// or undefined, and the $2 capture group is the indent, or undefined.\nconst formatRE = /^\\s*[{\\[]((?:\\r?\\n)+)([\\s\\t]*)/\nconst emptyRE = /^(?:\\{\\}|\\[\\])((?:\\r?\\n)+)?$/\n\nexport type Reviver = (this: any, key: string, value: any) => any\nexport type Replacer =\n | ((this: any, key: string, value: any) => any)\n | (string | number)[]\n | null\nexport type Scalar = string | number | null\nexport type JSONResult =\n | {\n [k: string]: JSONResult\n [kIndent]?: string\n [kNewline]?: string\n }\n | (JSONResult[] & { [kIndent]?: string; [kNewline]?: string })\n | Scalar\n\nexport const parse = (\n txt: string | Buffer,\n reviver?: Reviver | null,\n context?: number\n): JSONResult => {\n const parseText = stripBOM(String(txt))\n if (!reviver) reviver = undefined\n context = context || 20\n try {\n // get the indentation so that we can save it back nicely\n // if the file starts with {\" then we have an indent of '', ie, none\n // otherwise, pick the indentation of the next line after the first \\n\n // If the pattern doesn't match, then it means no indentation.\n // JSON.stringify ignores symbols, so this is reasonably safe.\n // if the string is '{}' or '[]', then use the default 2-space indent.\n const [, newline = '\\n', indent = ' '] = parseText.match(emptyRE) ||\n parseText.match(formatRE) || [, '', '']\n\n const result = JSON.parse(parseText, reviver)\n if (result && typeof result === 'object') {\n result[kNewline] = newline\n result[kIndent] = indent\n }\n return result\n } catch (e) {\n if (typeof txt !== 'string' && !Buffer.isBuffer(txt)) {\n const isEmptyArray =\n Array.isArray(txt) && (txt as Array<any>).length === 0\n throw Object.assign(\n new TypeError(\n `Cannot parse ${isEmptyArray ? 'an empty array' : String(txt)}`\n ),\n {\n code: 'EJSONPARSE',\n systemError: e,\n }\n )\n }\n\n throw new JSONParseError(e as Error, parseText, context, parse)\n }\n}\n\nexport const parseNoExceptions = (txt: string | Buffer, reviver?: Reviver) => {\n try {\n return JSON.parse(stripBOM(String(txt)), reviver)\n } catch (e) {}\n}\n\n// Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n// because the buffer-to-string conversion in `fs.readFileSync()`\n// translates it to FEFF, the UTF-16 BOM.\nconst stripBOM = (txt: string) => String(txt).replace(/^\\uFEFF/, '')\n\nexport const stringify = (\n obj: any,\n replacer?: Replacer,\n indent?: string | number\n) => {\n const space = indent === undefined ? obj[kIndent] : indent\n // TS is so weird with parameter overloads\n const res =\n /* c8 ignore start */\n typeof replacer === 'function'\n ? JSON.stringify(obj, replacer, space)\n : JSON.stringify(obj, replacer, space)\n /* c8 ignore stop */\n const nl = obj[kNewline] || '\\n'\n return space ? (nl === '\\n' ? res : res.split('\\n').join(nl)) + nl : res\n}\n", "import { dirname, resolve } from 'path'\nexport const walkUp = function* (path: string) {\n for (path = resolve(path); path;) {\n yield path\n const pp = dirname(path)\n if (pp === path) {\n break\n } else {\n path = pp\n }\n }\n}\n", "import {\n inspect,\n InspectOptions,\n ParseArgsConfig,\n parseArgs,\n} from 'node:util'\n\n// it's a tiny API, just cast it inline, it's fine\n//@ts-ignore\nimport cliui from '@isaacs/cliui'\nimport { basename } from 'node:path'\n\nexport type ParseArgsOptions = Exclude<\n ParseArgsConfig['options'],\n undefined\n>\nexport type ParseArgsOption = ParseArgsOptions[string]\nexport type ParseArgsDefault = Exclude<ConfigValue, number | number[]>\n\nexport type ConfigType = 'number' | 'string' | 'boolean'\n\nexport const isConfigType = (t: unknown): t is ConfigType =>\n typeof t === 'string' &&\n (t === 'string' || t === 'number' || t === 'boolean')\n\nexport type ConfigValuePrimitive = string | boolean | number\nexport type ConfigValueArray = string[] | boolean[] | number[]\nexport type ConfigValue = ConfigValuePrimitive | ConfigValueArray\n\n/**\n * Given a Jack object, get the typeof its ConfigSet\n */\nexport type Unwrap<J> = J extends Jack<infer C> ? C : never\n\n/**\n * Defines the type of value that is valid, given a config definition's\n * {@link ConfigType} and boolean multiple setting\n */\nexport type ValidValue<\n T extends ConfigType = ConfigType,\n M extends boolean = boolean,\n> =\n [T, M] extends ['number', true] ? number[]\n : [T, M] extends ['string', true] ? string[]\n : [T, M] extends ['boolean', true] ? boolean[]\n : [T, M] extends ['number', false] ? number\n : [T, M] extends ['string', false] ? string\n : [T, M] extends ['boolean', false] ? boolean\n : [T, M] extends ['string', boolean] ? string | string[]\n : [T, M] extends ['boolean', boolean] ? boolean | boolean[]\n : [T, M] extends ['number', boolean] ? number | number[]\n : [T, M] extends [ConfigType, false] ? ConfigValuePrimitive\n : [T, M] extends [ConfigType, true] ? ConfigValueArray\n : ConfigValue\n\nconst isValidValue = <T extends ConfigType, M extends boolean>(\n v: unknown,\n type: T,\n multi: M,\n): v is ValidValue<T, M> => {\n if (multi) {\n if (!Array.isArray(v)) return false\n return !v.some((v: unknown) => !isValidValue(v, type, false))\n }\n if (Array.isArray(v)) return false\n return typeof v === type\n}\n\nexport type ReadonlyArrays = readonly number[] | readonly string[]\n\n/**\n * Defines the type of validOptions that are valid, given a config definition's\n * {@link ConfigType}\n */\nexport type ValidOptions<T extends ConfigType> =\n T extends 'boolean' ? undefined\n : T extends 'string' ? readonly string[]\n : T extends 'number' ? readonly number[]\n : ReadonlyArrays\n\nconst isValidOption = <T extends ConfigType>(\n v: unknown,\n vo: readonly unknown[],\n): vo is Exclude<ValidOptions<T>, undefined> =>\n !!vo &&\n (Array.isArray(v) ? v.every(x => isValidOption(x, vo)) : vo.includes(v))\n\n/**\n * A config field definition, in its full representation.\n * This is what is passed in to addFields so `type` is required.\n */\nexport type ConfigOption<\n T extends ConfigType = ConfigType,\n M extends boolean = boolean,\n O extends undefined | ValidOptions<T> = undefined | ValidOptions<T>,\n> = {\n type: T\n short?: string\n default?: ValidValue<T, M> &\n (O extends ReadonlyArrays ?\n M extends false ?\n O[number]\n : O[number][]\n : unknown)\n description?: string\n hint?: T extends 'boolean' ? undefined : string\n validate?:\n | ((v: unknown) => v is ValidValue<T, M>)\n | ((v: unknown) => boolean)\n validOptions?: O\n delim?: M extends false ? undefined : string\n multiple?: M\n}\n\n/**\n * Determine whether an unknown object is a {@link ConfigOption} based only\n * on its `type` and `multiple` property\n */\nexport const isConfigOptionOfType = <\n T extends ConfigType,\n M extends boolean,\n>(\n o: any,\n type: T,\n multi: M,\n): o is ConfigOption<T, M> =>\n !!o &&\n typeof o === 'object' &&\n isConfigType(o.type) &&\n o.type === type &&\n !!o.multiple === multi\n\n/**\n * Determine whether an unknown object is a {@link ConfigOption} based on\n * it having all valid properties\n */\nexport const isConfigOption = <T extends ConfigType, M extends boolean>(\n o: any,\n type: T,\n multi: M,\n): o is ConfigOption<T, M> =>\n isConfigOptionOfType(o, type, multi) &&\n undefOrType(o.short, 'string') &&\n undefOrType(o.description, 'string') &&\n undefOrType(o.hint, 'string') &&\n undefOrType(o.validate, 'function') &&\n (o.type === 'boolean' ?\n o.validOptions === undefined\n : undefOrTypeArray(o.validOptions, o.type)) &&\n (o.default === undefined || isValidValue(o.default, type, multi))\n\n/**\n * The meta information for a config option definition, when the\n * type and multiple values can be inferred by the method being used\n */\nexport type ConfigOptionMeta<\n T extends ConfigType,\n M extends boolean,\n O extends ConfigOption<T, M> = ConfigOption<T, M>,\n> = Pick<Partial<O>, 'type'> & Omit<O, 'type'>\n\n/**\n * A set of {@link ConfigOption} objects, referenced by their longOption\n * string values.\n */\nexport type ConfigSet = {\n [longOption: string]: ConfigOption\n}\n\n/**\n * A set of {@link ConfigOptionMeta} fields, referenced by their longOption\n * string values.\n */\nexport type ConfigMetaSet<T extends ConfigType, M extends boolean> = {\n [longOption: string]: ConfigOptionMeta<T, M>\n}\n\n/**\n * Infer {@link ConfigSet} fields from a given {@link ConfigMetaSet}\n */\nexport type ConfigSetFromMetaSet<\n T extends ConfigType,\n M extends boolean,\n S extends ConfigMetaSet<T, M>,\n> = S & { [longOption in keyof S]: ConfigOption<T, M> }\n\n/**\n * The 'values' field returned by {@link Jack#parse}. If a value has\n * a default field it will be required on the object otherwise it is optional.\n */\nexport type OptionsResults<T extends ConfigSet> = {\n [K in keyof T]:\n | (T[K]['validOptions'] extends ReadonlyArrays ?\n T[K] extends ConfigOption<'string' | 'number', false> ?\n T[K]['validOptions'][number]\n : T[K] extends ConfigOption<'string' | 'number', true> ?\n T[K]['validOptions'][number][]\n : never\n : T[K] extends ConfigOption<'string', false> ? string\n : T[K] extends ConfigOption<'string', true> ? string[]\n : T[K] extends ConfigOption<'number', false> ? number\n : T[K] extends ConfigOption<'number', true> ? number[]\n : T[K] extends ConfigOption<'boolean', false> ? boolean\n : T[K] extends ConfigOption<'boolean', true> ? boolean[]\n : never)\n | (T[K]['default'] extends ConfigValue ? never : undefined)\n}\n\n/**\n * The object retured by {@link Jack#parse}\n */\nexport type Parsed<T extends ConfigSet> = {\n values: OptionsResults<T>\n positionals: string[]\n}\n\n/**\n * A row used when generating the {@link Jack#usage} string\n */\nexport interface Row {\n left?: string\n text: string\n skipLine?: boolean\n type?: string\n}\n\n/**\n * A heading for a section in the usage, created by the jack.heading()\n * method.\n *\n * First heading is always level 1, subsequent headings default to 2.\n *\n * The level of the nearest heading level sets the indentation of the\n * description that follows.\n */\nexport interface Heading extends Row {\n type: 'heading'\n text: string\n left?: ''\n skipLine?: boolean\n level: number\n pre?: boolean\n}\n\nconst isHeading = (r: { type?: string }): r is Heading =>\n r.type === 'heading'\n\n/**\n * An arbitrary blob of text describing some stuff, set by the\n * jack.description() method.\n *\n * Indentation determined by level of the nearest header.\n */\nexport interface Description extends Row {\n type: 'description'\n text: string\n left?: ''\n skipLine?: boolean\n pre?: boolean\n}\n\nconst isDescription = (r: { type?: string }): r is Description =>\n r.type === 'description'\n\n/**\n * A heading or description row used when generating the {@link Jack#usage}\n * string\n */\nexport type TextRow = Heading | Description\n\n/**\n * Either a {@link TextRow} or a reference to a {@link ConfigOption}\n */\nexport type UsageField =\n | TextRow\n | {\n type: 'config'\n name: string\n value: ConfigOption\n }\n\nconst width = Math.min(process?.stdout?.columns ?? 80, 80)\n\n// indentation spaces from heading level\nconst indent = (n: number) => (n - 1) * 2\n\nconst toEnvKey = (pref: string, key: string): string =>\n [pref, key.replace(/[^a-zA-Z0-9]+/g, ' ')]\n .join(' ')\n .trim()\n .toUpperCase()\n .replace(/ /g, '_')\n\nconst toEnvVal = (value: ConfigValue, delim: string = '\\n'): string => {\n const str =\n typeof value === 'string' ? value\n : typeof value === 'boolean' ?\n value ? '1'\n : '0'\n : typeof value === 'number' ? String(value)\n : Array.isArray(value) ?\n value.map((v: ConfigValue) => toEnvVal(v)).join(delim)\n : /* c8 ignore start */ undefined\n if (typeof str !== 'string') {\n throw new Error(\n `could not serialize value to environment: ${JSON.stringify(value)}`,\n )\n }\n /* c8 ignore stop */\n return str\n}\n\nconst fromEnvVal = <T extends ConfigType, M extends boolean>(\n env: string,\n type: T,\n multiple: M,\n delim: string = '\\n',\n): ValidValue<T, M> =>\n (multiple ?\n env ? env.split(delim).map(v => fromEnvVal(v, type, false))\n : []\n : type === 'string' ? env\n : type === 'boolean' ? env === '1'\n : +env.trim()) as ValidValue<T, M>\n\nconst undefOrType = (v: unknown, t: string): boolean =>\n v === undefined || typeof v === t\n\nconst undefOrTypeArray = (v: unknown, t: string): boolean =>\n v === undefined || (Array.isArray(v) && v.every(x => typeof x === t))\n\n// print the value type, for error message reporting\nconst valueType = (\n v: ConfigValue | { type: ConfigType; multiple?: boolean },\n): string =>\n typeof v === 'string' ? 'string'\n : typeof v === 'boolean' ? 'boolean'\n : typeof v === 'number' ? 'number'\n : Array.isArray(v) ?\n `${joinTypes([...new Set(v.map(v => valueType(v)))])}[]`\n : `${v.type}${v.multiple ? '[]' : ''}`\n\nconst joinTypes = (types: string[]): string =>\n types.length === 1 && typeof types[0] === 'string' ?\n types[0]\n : `(${types.join('|')})`\n\nconst validateFieldMeta = <T extends ConfigType, M extends boolean>(\n field: ConfigOptionMeta<T, M>,\n fieldMeta?: { type: T; multiple: M },\n): { type: ConfigType; multiple: boolean } => {\n if (fieldMeta) {\n if (field.type !== undefined && field.type !== fieldMeta.type) {\n throw new TypeError(`invalid type`, {\n cause: {\n found: field.type,\n wanted: [fieldMeta.type, undefined],\n },\n })\n }\n if (\n field.multiple !== undefined &&\n !!field.multiple !== fieldMeta.multiple\n ) {\n throw new TypeError(`invalid multiple`, {\n cause: {\n found: field.multiple,\n wanted: [fieldMeta.multiple, undefined],\n },\n })\n }\n return fieldMeta\n }\n\n if (!isConfigType(field.type)) {\n throw new TypeError(`invalid type`, {\n cause: {\n found: field.type,\n wanted: ['string', 'number', 'boolean'],\n },\n })\n }\n\n return {\n type: field.type,\n multiple: !!field.multiple,\n }\n}\n\nconst validateField = (\n o: ConfigOption,\n type: ConfigType,\n multiple: boolean,\n): ConfigOption => {\n const validateValidOptions = <\n T extends ConfigValue | undefined,\n V extends T extends Array<infer U> ? U : T,\n >(\n def: T | undefined,\n validOptions: readonly V[] | undefined,\n ) => {\n if (!undefOrTypeArray(validOptions, type)) {\n throw new TypeError('invalid validOptions', {\n cause: {\n found: validOptions,\n wanted: valueType({ type, multiple: true }),\n },\n })\n }\n if (def !== undefined && validOptions !== undefined) {\n const valid =\n Array.isArray(def) ?\n def.every(v => validOptions.includes(v as V))\n : validOptions.includes(def as V)\n if (!valid) {\n throw new TypeError('invalid default value not in validOptions', {\n cause: {\n found: def,\n wanted: validOptions,\n },\n })\n }\n }\n }\n\n if (\n o.default !== undefined &&\n !isValidValue(o.default, type, multiple)\n ) {\n throw new TypeError('invalid default value', {\n cause: {\n found: o.default,\n wanted: valueType({ type, multiple }),\n },\n })\n }\n\n if (\n isConfigOptionOfType(o, 'number', false) ||\n isConfigOptionOfType(o, 'number', true)\n ) {\n validateValidOptions(o.default, o.validOptions)\n } else if (\n isConfigOptionOfType(o, 'string', false) ||\n isConfigOptionOfType(o, 'string', true)\n ) {\n validateValidOptions(o.default, o.validOptions)\n } else if (\n isConfigOptionOfType(o, 'boolean', false) ||\n isConfigOptionOfType(o, 'boolean', true)\n ) {\n if (o.hint !== undefined) {\n throw new TypeError('cannot provide hint for flag')\n }\n if (o.validOptions !== undefined) {\n throw new TypeError('cannot provide validOptions for flag')\n }\n }\n\n return o\n}\n\nconst toParseArgsOptionsConfig = (\n options: ConfigSet,\n): ParseArgsOptions => {\n return Object.entries(options).reduce((acc, [longOption, o]) => {\n const p: ParseArgsOption = {\n type: 'string',\n multiple: !!o.multiple,\n ...(typeof o.short === 'string' ? { short: o.short } : undefined),\n }\n const setNoBool = () => {\n if (!longOption.startsWith('no-') && !options[`no-${longOption}`]) {\n acc[`no-${longOption}`] = {\n type: 'boolean',\n multiple: !!o.multiple,\n }\n }\n }\n const setDefault = <T>(\n def: T | undefined,\n fn: (d: T) => ParseArgsDefault,\n ) => {\n if (def !== undefined) {\n p.default = fn(def)\n }\n }\n if (isConfigOption(o, 'number', false)) {\n setDefault(o.default, String)\n } else if (isConfigOption(o, 'number', true)) {\n setDefault(o.default, d => d.map(v => String(v)))\n } else if (\n isConfigOption(o, 'string', false) ||\n isConfigOption(o, 'string', true)\n ) {\n setDefault(o.default, v => v)\n } else if (\n isConfigOption(o, 'boolean', false) ||\n isConfigOption(o, 'boolean', true)\n ) {\n p.type = 'boolean'\n setDefault(o.default, v => v)\n setNoBool()\n }\n acc[longOption] = p\n return acc\n }, {} as ParseArgsOptions)\n}\n\n/**\n * Options provided to the {@link Jack} constructor\n */\nexport interface JackOptions {\n /**\n * Whether to allow positional arguments\n *\n * @default true\n */\n allowPositionals?: boolean\n\n /**\n * Prefix to use when reading/writing the environment variables\n *\n * If not specified, environment behavior will not be available.\n */\n envPrefix?: string\n\n /**\n * Environment object to read/write. Defaults `process.env`.\n * No effect if `envPrefix` is not set.\n */\n env?: Record<string, string | undefined>\n\n /**\n * A short usage string. If not provided, will be generated from the\n * options provided, but that can of course be rather verbose if\n * there are a lot of options.\n */\n usage?: string\n\n /**\n * Stop parsing flags and opts at the first positional argument.\n * This is to support cases like `cmd [flags] <subcmd> [options]`, where\n * each subcommand may have different options. This effectively treats\n * any positional as a `--` argument. Only relevant if `allowPositionals`\n * is true.\n *\n * To do subcommands, set this option, look at the first positional, and\n * parse the remaining positionals as appropriate.\n *\n * @default false\n */\n stopAtPositional?: boolean\n\n /**\n * Conditional `stopAtPositional`. If set to a `(string)=>boolean` function,\n * will be called with each positional argument encountered. If the function\n * returns true, then parsing will stop at that point.\n */\n stopAtPositionalTest?: (arg: string) => boolean\n}\n\n/**\n * Class returned by the {@link jack} function and all configuration\n * definition methods. This is what gets chained together.\n */\nexport class Jack<C extends ConfigSet = {}> {\n #configSet: C\n #shorts: Record<string, string>\n #options: JackOptions\n #fields: UsageField[] = []\n #env: Record<string, string | undefined>\n #envPrefix?: string\n #allowPositionals: boolean\n #usage?: string\n #usageMarkdown?: string\n\n constructor(options: JackOptions = {}) {\n this.#options = options\n this.#allowPositionals = options.allowPositionals !== false\n this.#env =\n this.#options.env === undefined ? process.env : this.#options.env\n this.#envPrefix = options.envPrefix\n // We need to fib a little, because it's always the same object, but it\n // starts out as having an empty config set. Then each method that adds\n // fields returns `this as Jack<C & { ...newConfigs }>`\n this.#configSet = Object.create(null) as C\n this.#shorts = Object.create(null)\n }\n\n /**\n * Set the default value (which will still be overridden by env or cli)\n * as if from a parsed config file. The optional `source` param, if\n * provided, will be included in error messages if a value is invalid or\n * unknown.\n */\n setConfigValues(values: Partial<OptionsResults<C>>, source = '') {\n try {\n this.validate(values)\n } catch (er) {\n if (source && er instanceof Error) {\n /* c8 ignore next */\n const cause = typeof er.cause === 'object' ? er.cause : {}\n er.cause = { ...cause, path: source }\n }\n throw er\n }\n for (const [field, value] of Object.entries(values)) {\n const my = this.#configSet[field]\n // already validated, just for TS's benefit\n /* c8 ignore start */\n if (!my) {\n throw new Error('unexpected field in config set: ' + field, {\n cause: { found: field },\n })\n }\n /* c8 ignore stop */\n my.default = value as ConfigValue\n }\n return this\n }\n\n /**\n * Parse a string of arguments, and return the resulting\n * `{ values, positionals }` object.\n *\n * If an {@link JackOptions#envPrefix} is set, then it will read default\n * values from the environment, and write the resulting values back\n * to the environment as well.\n *\n * Environment values always take precedence over any other value, except\n * an explicit CLI setting.\n */\n parse(args: string[] = process.argv): Parsed<C> {\n this.loadEnvDefaults()\n const p = this.parseRaw(args)\n this.applyDefaults(p)\n this.writeEnv(p)\n return p\n }\n\n loadEnvDefaults() {\n if (this.#envPrefix) {\n for (const [field, my] of Object.entries(this.#configSet)) {\n const ek = toEnvKey(this.#envPrefix, field)\n const env = this.#env[ek]\n if (env !== undefined) {\n my.default = fromEnvVal(env, my.type, !!my.multiple, my.delim)\n }\n }\n }\n }\n\n applyDefaults(p: Parsed<C>) {\n for (const [field, c] of Object.entries(this.#configSet)) {\n if (c.default !== undefined && !(field in p.values)) {\n //@ts-ignore\n p.values[field] = c.default\n }\n }\n }\n\n /**\n * Only parse the command line arguments passed in.\n * Does not strip off the `node script.js` bits, so it must be just the\n * arguments you wish to have parsed.\n * Does not read from or write to the environment, or set defaults.\n */\n parseRaw(args: string[]): Parsed<C> {\n if (args === process.argv) {\n args = args.slice(\n (process as { _eval?: string })._eval !== undefined ? 1 : 2,\n )\n }\n\n const result = parseArgs({\n args,\n options: toParseArgsOptionsConfig(this.#configSet),\n // always strict, but using our own logic\n strict: false,\n allowPositionals: this.#allowPositionals,\n tokens: true,\n })\n\n const p: Parsed<C> = {\n values: {} as OptionsResults<C>,\n positionals: [],\n }\n for (const token of result.tokens) {\n if (token.kind === 'positional') {\n p.positionals.push(token.value)\n if (\n this.#options.stopAtPositional ||\n this.#options.stopAtPositionalTest?.(token.value)\n ) {\n p.positionals.push(...args.slice(token.index + 1))\n break\n }\n } else if (token.kind === 'option') {\n let value: ConfigValue | undefined = undefined\n if (token.name.startsWith('no-')) {\n const my = this.#configSet[token.name]\n const pname = token.name.substring('no-'.length)\n const pos = this.#configSet[pname]\n if (\n pos &&\n pos.type === 'boolean' &&\n (!my ||\n (my.type === 'boolean' && !!my.multiple === !!pos.multiple))\n ) {\n value = false\n token.name = pname\n }\n }\n const my = this.#configSet[token.name]\n if (!my) {\n throw new Error(\n `Unknown option '${token.rawName}'. ` +\n `To specify a positional argument starting with a '-', ` +\n `place it at the end of the command after '--', as in ` +\n `'-- ${token.rawName}'`,\n {\n cause: {\n found:\n token.rawName + (token.value ? `=${token.value}` : ''),\n },\n },\n )\n }\n if (value === undefined) {\n if (token.value === undefined) {\n if (my.type !== 'boolean') {\n throw new Error(\n `No value provided for ${token.rawName}, expected ${my.type}`,\n {\n cause: {\n name: token.rawName,\n wanted: valueType(my),\n },\n },\n )\n }\n value = true\n } else {\n if (my.type === 'boolean') {\n throw new Error(\n `Flag ${token.rawName} does not take a value, received '${token.value}'`,\n { cause: { found: token } },\n )\n }\n if (my.type === 'string') {\n value = token.value\n } else {\n value = +token.value\n if (value !== value) {\n throw new Error(\n `Invalid value '${token.value}' provided for ` +\n `'${token.rawName}' option, expected number`,\n {\n cause: {\n name: token.rawName,\n found: token.value,\n wanted: 'number',\n },\n },\n )\n }\n }\n }\n }\n if (my.multiple) {\n const pv = p.values as Record<string, ConfigValue[]>\n const tn = pv[token.name] ?? []\n pv[token.name] = tn\n tn.push(value)\n } else {\n const pv = p.values as Record<string, ConfigValue>\n pv[token.name] = value\n }\n }\n }\n\n for (const [field, value] of Object.entries(p.values)) {\n const valid = this.#configSet[field]?.validate\n const validOptions = this.#configSet[field]?.validOptions\n const cause =\n validOptions && !isValidOption(value, validOptions) ?\n { name: field, found: value, validOptions: validOptions }\n : valid && !valid(value) ? { name: field, found: value }\n : undefined\n if (cause) {\n throw new Error(\n `Invalid value provided for --${field}: ${JSON.stringify(value)}`,\n { cause },\n )\n }\n }\n\n return p\n }\n\n /**\n * do not set fields as 'no-foo' if 'foo' exists and both are bools\n * just set foo.\n */\n #noNoFields(f: string, val: unknown, s: string = f) {\n if (!f.startsWith('no-') || typeof val !== 'boolean') return\n const yes = f.substring('no-'.length)\n // recurse so we get the core config key we care about.\n this.#noNoFields(yes, val, s)\n if (this.#configSet[yes]?.type === 'boolean') {\n throw new Error(\n `do not set '${s}', instead set '${yes}' as desired.`,\n { cause: { found: s, wanted: yes } },\n )\n }\n }\n\n /**\n * Validate that any arbitrary object is a valid configuration `values`\n * object. Useful when loading config files or other sources.\n */\n validate(o: unknown): asserts o is Parsed<C>['values'] {\n if (!o || typeof o !== 'object') {\n throw new Error('Invalid config: not an object', {\n cause: { found: o },\n })\n }\n const opts = o as Record<string, ValidValue>\n for (const field in o) {\n const value = opts[field]\n /* c8 ignore next - for TS */\n if (value === undefined) continue\n this.#noNoFields(field, value)\n const config = this.#configSet[field]\n if (!config) {\n throw new Error(`Unknown config option: ${field}`, {\n cause: { found: field },\n })\n }\n if (!isValidValue(value, config.type, !!config.multiple)) {\n throw new Error(\n `Invalid value ${valueType(value)} for ${field}, expected ${valueType(config)}`,\n {\n cause: {\n name: field,\n found: value,\n wanted: valueType(config),\n },\n },\n )\n }\n const cause =\n config.validOptions && !isValidOption(value, config.validOptions) ?\n { name: field, found: value, validOptions: config.validOptions }\n : config.validate && !config.validate(value) ?\n { name: field, found: value }\n : undefined\n if (cause) {\n throw new Error(`Invalid config value for ${field}: ${value}`, {\n cause,\n })\n }\n }\n }\n\n writeEnv(p: Parsed<C>) {\n if (!this.#env || !this.#envPrefix) return\n for (const [field, value] of Object.entries(p.values)) {\n const my = this.#configSet[field]\n this.#env[toEnvKey(this.#envPrefix, field)] = toEnvVal(\n value as ConfigValue,\n my?.delim,\n )\n }\n }\n\n /**\n * Add a heading to the usage output banner\n */\n heading(\n text: string,\n level?: 1 | 2 | 3 | 4 | 5 | 6,\n { pre = false }: { pre?: boolean } = {},\n ): Jack<C> {\n if (level === undefined) {\n level = this.#fields.some(r => isHeading(r)) ? 2 : 1\n }\n this.#fields.push({ type: 'heading', text, level, pre })\n return this\n }\n\n /**\n * Add a long-form description to the usage output at this position.\n */\n description(text: string, { pre }: { pre?: boolean } = {}): Jack<C> {\n this.#fields.push({ type: 'description', text, pre })\n return this\n }\n\n /**\n * Add one or more number fields.\n */\n num<F extends ConfigMetaSet<'number', false>>(\n fields: F,\n ): Jack<C & ConfigSetFromMetaSet<'number', false, F>> {\n return this.#addFieldsWith(fields, 'number', false)\n }\n\n /**\n * Add one or more multiple number fields.\n */\n numList<F extends ConfigMetaSet<'number', true>>(\n fields: F,\n ): Jack<C & ConfigSetFromMetaSet<'number', true, F>> {\n return this.#addFieldsWith(fields, 'number', true)\n }\n\n /**\n * Add one or more string option fields.\n */\n opt<F extends ConfigMetaSet<'string', false>>(\n fields: F,\n ): Jack<C & ConfigSetFromMetaSet<'string', false, F>> {\n return this.#addFieldsWith(fields, 'string', false)\n }\n\n /**\n * Add one or more multiple string option fields.\n */\n optList<F extends ConfigMetaSet<'string', true>>(\n fields: F,\n ): Jack<C & ConfigSetFromMetaSet<'string', true, F>> {\n return this.#addFieldsWith(fields, 'string', true)\n }\n\n /**\n * Add one or more flag fields.\n */\n flag<F extends ConfigMetaSet<'boolean', false>>(\n fields: F,\n ): Jack<C & ConfigSetFromMetaSet<'boolean', false, F>> {\n return this.#addFieldsWith(fields, 'boolean', false)\n }\n\n /**\n * Add one or more multiple flag fields.\n */\n flagList<F extends ConfigMetaSet<'boolean', true>>(\n fields: F,\n ): Jack<C & ConfigSetFromMetaSet<'boolean', true, F>> {\n return this.#addFieldsWith(fields, 'boolean', true)\n }\n\n /**\n * Generic field definition method. Similar to flag/flagList/number/etc,\n * but you must specify the `type` (and optionally `multiple` and `delim`)\n * fields on each one, or Jack won't know how to define them.\n */\n addFields<F extends ConfigSet>(fields: F): Jack<C & F> {\n return this.#addFields(this as unknown as Jack<C & F>, fields)\n }\n\n #addFieldsWith<\n T extends ConfigType,\n M extends boolean,\n F extends ConfigMetaSet<T, M>,\n O extends ConfigSetFromMetaSet<T, M, F>,\n >(fields: F, type: ConfigType, multiple: boolean): Jack<C & O> {\n return this.#addFields(this as unknown as Jack<C & O>, fields, {\n type,\n multiple,\n })\n }\n\n #addFields<\n T extends ConfigType,\n M extends boolean,\n F extends ConfigMetaSet<T, M>,\n O extends Jack,\n >(next: O, fields: F, opt?: { type: T; multiple: M }): O {\n Object.assign(\n next.#configSet,\n Object.fromEntries(\n Object.entries(fields).map(([name, field]) => {\n this.#validateName(name, field)\n const { type, multiple } = validateFieldMeta(field, opt)\n const value = { ...field, type, multiple }\n validateField(value, type, multiple)\n next.#fields.push({ type: 'config', name, value })\n return [name, value]\n }),\n ),\n )\n return next\n }\n\n #validateName(name: string, field: { short?: string }) {\n if (!/^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?$/.test(name)) {\n throw new TypeError(\n `Invalid option name: ${name}, ` +\n `must be '-' delimited ASCII alphanumeric`,\n )\n }\n if (this.#configSet[name]) {\n throw new TypeError(`Cannot redefine option ${field}`)\n }\n if (this.#shorts[name]) {\n throw new TypeError(\n `Cannot redefine option ${name}, already ` +\n `in use for ${this.#shorts[name]}`,\n )\n }\n if (field.short) {\n if (!/^[a-zA-Z0-9]$/.test(field.short)) {\n throw new TypeError(\n `Invalid ${name} short option: ${field.short}, ` +\n 'must be 1 ASCII alphanumeric character',\n )\n }\n if (this.#shorts[field.short]) {\n throw new TypeError(\n `Invalid ${name} short option: ${field.short}, ` +\n `already in use for ${this.#shorts[field.short]}`,\n )\n }\n this.#shorts[field.short] = name\n this.#shorts[name] = name\n }\n }\n\n /**\n * Return the usage banner for the given configuration\n */\n usage(): string {\n if (this.#usage) return this.#usage\n\n let headingLevel = 1\n //@ts-ignore\n const ui = cliui({ width })\n const first = this.#fields[0]\n let start = first?.type === 'heading' ? 1 : 0\n if (first?.type === 'heading') {\n ui.div({\n padding: [0, 0, 0, 0],\n text: normalize(first.text),\n })\n }\n ui.div({ padding: [0, 0, 0, 0], text: 'Usage:' })\n if (this.#options.usage) {\n ui.div({\n text: this.#options.usage,\n padding: [0, 0, 0, 2],\n })\n } else {\n const cmd = basename(String(process.argv[1]))\n const shortFlags: string[] = []\n const shorts: string[][] = []\n const flags: string[] = []\n const opts: string[][] = []\n for (const [field, config] of Object.entries(this.#configSet)) {\n if (config.short) {\n if (config.type === 'boolean') shortFlags.push(config.short)\n else shorts.push([config.short, config.hint || field])\n } else {\n if (config.type === 'boolean') flags.push(field)\n else opts.push([field, config.hint || field])\n }\n }\n const sf = shortFlags.length ? ' -' + shortFlags.join('') : ''\n const so = shorts.map(([k, v]) => ` --${k}=<${v}>`).join('')\n const lf = flags.map(k => ` --${k}`).join('')\n const lo = opts.map(([k, v]) => ` --${k}=<${v}>`).join('')\n const usage = `${cmd}${sf}${so}${lf}${lo}`.trim()\n ui.div({\n text: usage,\n padding: [0, 0, 0, 2],\n })\n }\n\n ui.div({ padding: [0, 0, 0, 0], text: '' })\n const maybeDesc = this.#fields[start]\n if (maybeDesc && isDescription(maybeDesc)) {\n const print = normalize(maybeDesc.text, maybeDesc.pre)\n start++\n ui.div({ padding: [0, 0, 0, 0], text: print })\n ui.div({ padding: [0, 0, 0, 0], text: '' })\n }\n\n const { rows, maxWidth } = this.#usageRows(start)\n\n // every heading/description after the first gets indented by 2\n // extra spaces.\n for (const row of rows) {\n if (row.left) {\n // If the row is too long, don't wrap it\n // Bump the right-hand side down a line to make room\n const configIndent = indent(Math.max(headingLevel, 2))\n if (row.left.length > maxWidth - 3) {\n ui.div({ text: row.left, padding: [0, 0, 0, configIndent] })\n ui.div({ text: row.text, padding: [0, 0, 0, maxWidth] })\n } else {\n ui.div(\n {\n text: row.left,\n padding: [0, 1, 0, configIndent],\n width: maxWidth,\n },\n { padding: [0, 0, 0, 0], text: row.text },\n )\n }\n if (row.skipLine) {\n ui.div({ padding: [0, 0, 0, 0], text: '' })\n }\n } else {\n if (isHeading(row)) {\n const { level } = row\n headingLevel = level\n // only h1 and h2 have bottom padding\n // h3-h6 do not\n const b = level <= 2 ? 1 : 0\n ui.div({ ...row, padding: [0, 0, b, indent(level)] })\n } else {\n ui.div({ ...row, padding: [0, 0, 1, indent(headingLevel + 1)] })\n }\n }\n }\n\n return (this.#usage = ui.toString())\n }\n\n /**\n * Return the usage banner markdown for the given configuration\n */\n usageMarkdown(): string {\n if (this.#usageMarkdown) return this.#usageMarkdown\n\n const out: string[] = []\n\n let headingLevel = 1\n const first = this.#fields[0]\n let start = first?.type === 'heading' ? 1 : 0\n if (first?.type === 'heading') {\n out.push(`# ${normalizeOneLine(first.text)}`)\n }\n out.push('Usage:')\n if (this.#options.usage) {\n out.push(normalizeMarkdown(this.#options.usage, true))\n } else {\n const cmd = basename(String(process.argv[1]))\n const shortFlags: string[] = []\n const shorts: string[][] = []\n const flags: string[] = []\n const opts: string[][] = []\n for (const [field, config] of Object.entries(this.#configSet)) {\n if (config.short) {\n if (config.type === 'boolean') shortFlags.push(config.short)\n else shorts.push([config.short, config.hint || field])\n } else {\n if (config.type === 'boolean') flags.push(field)\n else opts.push([field, config.hint || field])\n }\n }\n const sf = shortFlags.length ? ' -' + shortFlags.join('') : ''\n const so = shorts.map(([k, v]) => ` --${k}=<${v}>`).join('')\n const lf = flags.map(k => ` --${k}`).join('')\n const lo = opts.map(([k, v]) => ` --${k}=<${v}>`).join('')\n const usage = `${cmd}${sf}${so}${lf}${lo}`.trim()\n out.push(normalizeMarkdown(usage, true))\n }\n\n const maybeDesc = this.#fields[start]\n if (maybeDesc && isDescription(maybeDesc)) {\n out.push(normalizeMarkdown(maybeDesc.text, maybeDesc.pre))\n start++\n }\n\n const { rows } = this.#usageRows(start)\n\n // heading level in markdown is number of # ahead of text\n for (const row of rows) {\n if (row.left) {\n out.push(\n '#'.repeat(headingLevel + 1) +\n ' ' +\n normalizeOneLine(row.left, true),\n )\n if (row.text) out.push(normalizeMarkdown(row.text))\n } else if (isHeading(row)) {\n const { level } = row\n headingLevel = level\n out.push(\n `${'#'.repeat(headingLevel)} ${normalizeOneLine(\n row.text,\n row.pre,\n )}`,\n )\n } else {\n out.push(normalizeMarkdown(row.text, !!(row as Description).pre))\n }\n }\n\n return (this.#usageMarkdown = out.join('\\n\\n') + '\\n')\n }\n\n #usageRows(start: number) {\n // turn each config type into a row, and figure out the width of the\n // left hand indentation for the option descriptions.\n let maxMax = Math.max(12, Math.min(26, Math.floor(width / 3)))\n let maxWidth = 8\n let prev: Row | TextRow | undefined = undefined\n const rows: (Row | TextRow)[] = []\n for (const field of this.#fields.slice(start)) {\n if (field.type !== 'config') {\n if (prev?.type === 'config') prev.skipLine = true\n prev = undefined\n field.text = normalize(field.text, !!field.pre)\n rows.push(field)\n continue\n }\n const { value } = field\n const desc = value.description || ''\n const mult = value.multiple ? 'Can be set multiple times' : ''\n const opts =\n value.validOptions?.length ?\n `Valid options:${value.validOptions.map(\n v => ` ${JSON.stringify(v)}`,\n )}`\n : ''\n const dmDelim = desc.includes('\\n') ? '\\n\\n' : '\\n'\n const extra = [opts, mult].join(dmDelim).trim()\n const text = (normalize(desc) + dmDelim + extra).trim()\n const hint =\n value.hint ||\n (value.type === 'number' ? 'n'\n : value.type === 'string' ? field.name\n : undefined)\n const short =\n !value.short ? ''\n : value.type === 'boolean' ? `-${value.short} `\n : `-${value.short}<${hint}> `\n const left =\n value.type === 'boolean' ?\n `${short}--${field.name}`\n : `${short}--${field.name}=<${hint}>`\n const row: Row = { text, left, type: 'config' }\n if (text.length > width - maxMax) {\n row.skipLine = true\n }\n if (prev && left.length > maxMax) prev.skipLine = true\n prev = row\n const len = left.length + 4\n if (len > maxWidth && len < maxMax) {\n maxWidth = len\n }\n\n rows.push(row)\n }\n\n return { rows, maxWidth }\n }\n\n /**\n * Return the configuration options as a plain object\n */\n toJSON() {\n return Object.fromEntries(\n Object.entries(this.#configSet).map(([field, def]) => [\n field,\n {\n type: def.type,\n ...(def.multiple ? { multiple: true } : {}),\n ...(def.delim ? { delim: def.delim } : {}),\n ...(def.short ? { short: def.short } : {}),\n ...(def.description ?\n { description: normalize(def.description) }\n : {}),\n ...(def.validate ? { validate: def.validate } : {}),\n ...(def.validOptions ? { validOptions: def.validOptions } : {}),\n ...(def.default !== undefined ? { default: def.default } : {}),\n ...(def.hint ? { hint: def.hint } : {}),\n },\n ]),\n )\n }\n\n /**\n * Custom printer for `util.inspect`\n */\n [inspect.custom](_: number, options: InspectOptions) {\n return `Jack ${inspect(this.toJSON(), options)}`\n }\n}\n\n/**\n * Main entry point. Create and return a {@link Jack} object.\n */\nexport const jack = (options: JackOptions = {}) => new Jack(options)\n\n// Unwrap and un-indent, so we can wrap description\n// strings however makes them look nice in the code.\nconst normalize = (s: string, pre = false) => {\n if (pre)\n // prepend a ZWSP to each line so cliui doesn't strip it.\n return s\n .split('\\n')\n .map(l => `\\u200b${l}`)\n .join('\\n')\n return s\n .split(/^\\s*```\\s*$/gm)\n .map((s, i) => {\n if (i % 2 === 1) {\n if (!s.trim()) {\n return `\\`\\`\\`\\n\\`\\`\\`\\n`\n }\n // outdent the ``` blocks, but preserve whitespace otherwise.\n const split = s.split('\\n')\n // throw out the \\n at the start and end\n split.pop()\n split.shift()\n const si = split.reduce((shortest, l) => {\n /* c8 ignore next */\n const ind = l.match(/^\\s*/)?.[0] ?? ''\n if (ind.length) return Math.min(ind.length, shortest)\n else return shortest\n }, Infinity)\n /* c8 ignore next */\n const i = isFinite(si) ? si : 0\n return (\n '\\n```\\n' +\n split.map(s => `\\u200b${s.substring(i)}`).join('\\n') +\n '\\n```\\n'\n )\n }\n return (\n s\n // remove single line breaks, except for lists\n .replace(/([^\\n])\\n[ \\t]*([^\\n])/g, (_, $1, $2) =>\n !/^[-*]/.test($2) ? `${$1} ${$2}` : `${$1}\\n${$2}`,\n )\n // normalize mid-line whitespace\n .replace(/([^\\n])[ \\t]+([^\\n])/g, '$1 $2')\n // two line breaks are enough\n .replace(/\\n{3,}/g, '\\n\\n')\n // remove any spaces at the start of a line\n .replace(/\\n[ \\t]+/g, '\\n')\n .trim()\n )\n })\n .join('\\n')\n}\n\n// normalize for markdown printing, remove leading spaces on lines\nconst normalizeMarkdown = (s: string, pre: boolean = false): string => {\n const n = normalize(s, pre).replace(/\\\\/g, '\\\\\\\\')\n return pre ?\n `\\`\\`\\`\\n${n.replace(/\\u200b/g, '')}\\n\\`\\`\\``\n : n.replace(/\\n +/g, '\\n').trim()\n}\n\nconst normalizeOneLine = (s: string, pre: boolean = false) => {\n const n = normalize(s, pre)\n .replace(/[\\s\\u200b]+/g, ' ')\n .trim()\n return pre ? `\\`${n}\\`` : n\n}\n", "'use strict';\nconst align = {\n right: alignRight,\n center: alignCenter\n};\nconst top = 0;\nconst right = 1;\nconst bottom = 2;\nconst left = 3;\nexport class UI {\n constructor(opts) {\n var _a;\n this.width = opts.width;\n /* c8 ignore start */\n this.wrap = (_a = opts.wrap) !== null && _a !== void 0 ? _a : true;\n /* c8 ignore stop */\n this.rows = [];\n }\n span(...args) {\n const cols = this.div(...args);\n cols.span = true;\n }\n resetOutput() {\n this.rows = [];\n }\n div(...args) {\n if (args.length === 0) {\n this.div('');\n }\n if (this.wrap && this.shouldApplyLayoutDSL(...args) && typeof args[0] === 'string') {\n return this.applyLayoutDSL(args[0]);\n }\n const cols = args.map(arg => {\n if (typeof arg === 'string') {\n return this.colFromString(arg);\n }\n return arg;\n });\n this.rows.push(cols);\n return cols;\n }\n shouldApplyLayoutDSL(...args) {\n return args.length === 1 && typeof args[0] === 'string' &&\n /[\\t\\n]/.test(args[0]);\n }\n applyLayoutDSL(str) {\n const rows = str.split('\\n').map(row => row.split('\\t'));\n let leftColumnWidth = 0;\n // simple heuristic for layout, make sure the\n // second column lines up along the left-hand.\n // don't allow the first column to take up more\n // than 50% of the screen.\n rows.forEach(columns => {\n if (columns.length > 1 && mixin.stringWidth(columns[0]) > leftColumnWidth) {\n leftColumnWidth = Math.min(Math.floor(this.width * 0.5), mixin.stringWidth(columns[0]));\n }\n });\n // generate a table:\n // replacing ' ' with padding calculations.\n // using the algorithmically generated width.\n rows.forEach(columns => {\n this.div(...columns.map((r, i) => {\n return {\n text: r.trim(),\n padding: this.measurePadding(r),\n width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined\n };\n }));\n });\n return this.rows[this.rows.length - 1];\n }\n colFromString(text) {\n return {\n text,\n padding: this.measurePadding(text)\n };\n }\n measurePadding(str) {\n // measure padding without ansi escape codes\n const noAnsi = mixin.stripAnsi(str);\n return [0, noAnsi.match(/\\s*$/)[0].length, 0, noAnsi.match(/^\\s*/)[0].length];\n }\n toString() {\n const lines = [];\n this.rows.forEach(row => {\n this.rowToString(row, lines);\n });\n // don't display any lines with the\n // hidden flag set.\n return lines\n .filter(line => !line.hidden)\n .map(line => line.text)\n .join('\\n');\n }\n rowToString(row, lines) {\n this.rasterize(row).forEach((rrow, r) => {\n let str = '';\n rrow.forEach((col, c) => {\n const { width } = row[c]; // the width with padding.\n const wrapWidth = this.negatePadding(row[c]); // the width without padding.\n let ts = col; // temporary string used during alignment/padding.\n if (wrapWidth > mixin.stringWidth(col)) {\n ts += ' '.repeat(wrapWidth - mixin.stringWidth(col));\n }\n // align the string within its column.\n if (row[c].align && row[c].align !== 'left' && this.wrap) {\n const fn = align[row[c].align];\n ts = fn(ts, wrapWidth);\n if (mixin.stringWidth(ts) < wrapWidth) {\n /* c8 ignore start */\n const w = width || 0;\n /* c8 ignore stop */\n ts += ' '.repeat(w - mixin.stringWidth(ts) - 1);\n }\n }\n // apply border and padding to string.\n const padding = row[c].padding || [0, 0, 0, 0];\n if (padding[left]) {\n str += ' '.repeat(padding[left]);\n }\n str += addBorder(row[c], ts, '| ');\n str += ts;\n str += addBorder(row[c], ts, ' |');\n if (padding[right]) {\n str += ' '.repeat(padding[right]);\n }\n // if prior row is span, try to render the\n // current row on the prior line.\n if (r === 0 && lines.length > 0) {\n str = this.renderInline(str, lines[lines.length - 1]);\n }\n });\n // remove trailing whitespace.\n lines.push({\n text: str.replace(/ +$/, ''),\n span: row.span\n });\n });\n return lines;\n }\n // if the full 'source' can render in\n // the target line, do so.\n renderInline(source, previousLine) {\n const match = source.match(/^ */);\n /* c8 ignore start */\n const leadingWhitespace = match ? match[0].length : 0;\n /* c8 ignore stop */\n const target = previousLine.text;\n const targetTextWidth = mixin.stringWidth(target.trimEnd());\n if (!previousLine.span) {\n return source;\n }\n // if we're not applying wrapping logic,\n // just always append to the span.\n if (!this.wrap) {\n previousLine.hidden = true;\n return target + source;\n }\n if (leadingWhitespace < targetTextWidth) {\n return source;\n }\n previousLine.hidden = true;\n return target.trimEnd() + ' '.repeat(leadingWhitespace - targetTextWidth) + source.trimStart();\n }\n rasterize(row) {\n const rrows = [];\n const widths = this.columnWidths(row);\n let wrapped;\n // word wrap all columns, and create\n // a data-structure that is easy to rasterize.\n row.forEach((col, c) => {\n // leave room for left and right padding.\n col.width = widths[c];\n if (this.wrap) {\n wrapped = mixin.wrap(col.text, this.negatePadding(col), { hard: true }).split('\\n');\n }\n else {\n wrapped = col.text.split('\\n');\n }\n if (col.border) {\n wrapped.unshift('.' + '-'.repeat(this.negatePadding(col) + 2) + '.');\n wrapped.push(\"'\" + '-'.repeat(this.negatePadding(col) + 2) + \"'\");\n }\n // add top and bottom padding.\n if (col.padding) {\n wrapped.unshift(...new Array(col.padding[top] || 0).fill(''));\n wrapped.push(...new Array(col.padding[bottom] || 0).fill(''));\n }\n wrapped.forEach((str, r) => {\n if (!rrows[r]) {\n rrows.push([]);\n }\n const rrow = rrows[r];\n for (let i = 0; i < c; i++) {\n if (rrow[i] === undefined) {\n rrow.push('');\n }\n }\n rrow.push(str);\n });\n });\n return rrows;\n }\n negatePadding(col) {\n /* c8 ignore start */\n let wrapWidth = col.width || 0;\n /* c8 ignore stop */\n if (col.padding) {\n wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0);\n }\n if (col.border) {\n wrapWidth -= 4;\n }\n return wrapWidth;\n }\n columnWidths(row) {\n if (!this.wrap) {\n return row.map(col => {\n return col.width || mixin.stringWidth(col.text);\n });\n }\n let unset = row.length;\n let remainingWidth = this.width;\n // column widths can be set in config.\n const widths = row.map(col => {\n if (col.width) {\n unset--;\n remainingWidth -= col.width;\n return col.width;\n }\n return undefined;\n });\n // any unset widths should be calculated.\n /* c8 ignore start */\n const unsetWidth = unset ? Math.floor(remainingWidth / unset) : 0;\n /* c8 ignore stop */\n return widths.map((w, i) => {\n if (w === undefined) {\n return Math.max(unsetWidth, _minWidth(row[i]));\n }\n return w;\n });\n }\n}\nfunction addBorder(col, ts, style) {\n if (col.border) {\n if (/[.']-+[.']/.test(ts)) {\n return '';\n }\n if (ts.trim().length !== 0) {\n return style;\n }\n return ' ';\n }\n return '';\n}\n// calculates the minimum width of\n// a column, based on padding preferences.\nfunction _minWidth(col) {\n const padding = col.padding || [];\n const minWidth = 1 + (padding[left] || 0) + (padding[right] || 0);\n if (col.border) {\n return minWidth + 4;\n }\n return minWidth;\n}\nfunction getWindowWidth() {\n /* c8 ignore start */\n if (typeof process === 'object' && process.stdout && process.stdout.columns) {\n return process.stdout.columns;\n }\n return 80;\n}\n/* c8 ignore stop */\nfunction alignRight(str, width) {\n str = str.trim();\n const strWidth = mixin.stringWidth(str);\n if (strWidth < width) {\n return ' '.repeat(width - strWidth) + str;\n }\n return str;\n}\nfunction alignCenter(str, width) {\n str = str.trim();\n const strWidth = mixin.stringWidth(str);\n /* c8 ignore start */\n if (strWidth >= width) {\n return str;\n }\n /* c8 ignore stop */\n return ' '.repeat((width - strWidth) >> 1) + str;\n}\nlet mixin;\nexport function cliui(opts, _mixin) {\n mixin = _mixin;\n return new UI({\n /* c8 ignore start */\n width: (opts === null || opts === void 0 ? void 0 : opts.width) || getWindowWidth(),\n wrap: opts === null || opts === void 0 ? void 0 : opts.wrap\n /* c8 ignore stop */\n });\n}\n", "export default function ansiRegex({onlyFirst = false} = {}) {\n\tconst pattern = [\n\t '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))'\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n", "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", "import stripAnsi from 'strip-ansi';\nimport eastAsianWidth from 'eastasianwidth';\nimport emojiRegex from 'emoji-regex';\n\nexport default function stringWidth(string, options = {}) {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\toptions = {\n\t\tambiguousIsNarrow: true,\n\t\t...options\n\t};\n\n\tstring = stripAnsi(string);\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tstring = string.replace(emojiRegex(), ' ');\n\n\tconst ambiguousCharacterWidth = options.ambiguousIsNarrow ? 1 : 2;\n\tlet width = 0;\n\n\tfor (const character of 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 combining characters\n\t\tif (codePoint >= 0x300 && codePoint <= 0x36F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst code = eastAsianWidth.eastAsianWidth(character);\n\t\tswitch (code) {\n\t\t\tcase 'F':\n\t\t\tcase 'W':\n\t\t\t\twidth += 2;\n\t\t\t\tbreak;\n\t\t\tcase 'A':\n\t\t\t\twidth += ambiguousCharacterWidth;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\twidth += 1;\n\t\t}\n\t}\n\n\treturn width;\n}\n", "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", "import stringWidth from 'string-width';\nimport stripAnsi from 'strip-ansi';\nimport ansiStyles from 'ansi-styles';\n\nconst ESCAPES = new Set([\n\t'\\u001B',\n\t'\\u009B',\n]);\n\nconst END_CODE = 39;\nconst ANSI_ESCAPE_BELL = '\\u0007';\nconst ANSI_CSI = '[';\nconst ANSI_OSC = ']';\nconst ANSI_SGR_TERMINATOR = 'm';\nconst ANSI_ESCAPE_LINK = `${ANSI_OSC}8;;`;\n\nconst wrapAnsiCode = code => `${ESCAPES.values().next().value}${ANSI_CSI}${code}${ANSI_SGR_TERMINATOR}`;\nconst wrapAnsiHyperlink = uri => `${ESCAPES.values().next().value}${ANSI_ESCAPE_LINK}${uri}${ANSI_ESCAPE_BELL}`;\n\n// Calculate the length of words split on ' ', ignoring\n// the extra characters added by ansi escape codes\nconst wordLengths = string => string.split(' ').map(character => stringWidth(character));\n\n// Wrap a long word across multiple rows\n// Ansi escape codes do not count towards length\nconst wrapWord = (rows, word, columns) => {\n\tconst characters = [...word];\n\n\tlet isInsideEscape = false;\n\tlet isInsideLinkEscape = false;\n\tlet visible = stringWidth(stripAnsi(rows[rows.length - 1]));\n\n\tfor (const [index, character] of characters.entries()) {\n\t\tconst characterLength = stringWidth(character);\n\n\t\tif (visible + characterLength <= columns) {\n\t\t\trows[rows.length - 1] += character;\n\t\t} else {\n\t\t\trows.push(character);\n\t\t\tvisible = 0;\n\t\t}\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tisInsideEscape = true;\n\t\t\tisInsideLinkEscape = characters.slice(index + 1).join('').startsWith(ANSI_ESCAPE_LINK);\n\t\t}\n\n\t\tif (isInsideEscape) {\n\t\t\tif (isInsideLinkEscape) {\n\t\t\t\tif (character === ANSI_ESCAPE_BELL) {\n\t\t\t\t\tisInsideEscape = false;\n\t\t\t\t\tisInsideLinkEscape = false;\n\t\t\t\t}\n\t\t\t} else if (character === ANSI_SGR_TERMINATOR) {\n\t\t\t\tisInsideEscape = false;\n\t\t\t}\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tvisible += characterLength;\n\n\t\tif (visible === columns && index < characters.length - 1) {\n\t\t\trows.push('');\n\t\t\tvisible = 0;\n\t\t}\n\t}\n\n\t// It's possible that the last row we copy over is only\n\t// ansi escape characters, handle this edge-case\n\tif (!visible && rows[rows.length - 1].length > 0 && rows.length > 1) {\n\t\trows[rows.length - 2] += rows.pop();\n\t}\n};\n\n// Trims spaces from a string ignoring invisible sequences\nconst stringVisibleTrimSpacesRight = string => {\n\tconst words = string.split(' ');\n\tlet last = words.length;\n\n\twhile (last > 0) {\n\t\tif (stringWidth(words[last - 1]) > 0) {\n\t\t\tbreak;\n\t\t}\n\n\t\tlast--;\n\t}\n\n\tif (last === words.length) {\n\t\treturn string;\n\t}\n\n\treturn words.slice(0, last).join(' ') + words.slice(last).join('');\n};\n\n// The wrap-ansi module can be invoked in either 'hard' or 'soft' wrap mode\n//\n// 'hard' will never allow a string to take up more than columns characters\n//\n// 'soft' allows long words to expand past the column length\nconst exec = (string, columns, options = {}) => {\n\tif (options.trim !== false && string.trim() === '') {\n\t\treturn '';\n\t}\n\n\tlet returnValue = '';\n\tlet escapeCode;\n\tlet escapeUrl;\n\n\tconst lengths = wordLengths(string);\n\tlet rows = [''];\n\n\tfor (const [index, word] of string.split(' ').entries()) {\n\t\tif (options.trim !== false) {\n\t\t\trows[rows.length - 1] = rows[rows.length - 1].trimStart();\n\t\t}\n\n\t\tlet rowLength = stringWidth(rows[rows.length - 1]);\n\n\t\tif (index !== 0) {\n\t\t\tif (rowLength >= columns && (options.wordWrap === false || options.trim === false)) {\n\t\t\t\t// If we start with a new word but the current row length equals the length of the columns, add a new row\n\t\t\t\trows.push('');\n\t\t\t\trowLength = 0;\n\t\t\t}\n\n\t\t\tif (rowLength > 0 || options.trim === false) {\n\t\t\t\trows[rows.length - 1] += ' ';\n\t\t\t\trowLength++;\n\t\t\t}\n\t\t}\n\n\t\t// In 'hard' wrap mode, the length of a line is never allowed to extend past 'columns'\n\t\tif (options.hard && lengths[index] > columns) {\n\t\t\tconst remainingColumns = (columns - rowLength);\n\t\t\tconst breaksStartingThisLine = 1 + Math.floor((lengths[index] - remainingColumns - 1) / columns);\n\t\t\tconst breaksStartingNextLine = Math.floor((lengths[index] - 1) / columns);\n\t\t\tif (breaksStartingNextLine < breaksStartingThisLine) {\n\t\t\t\trows.push('');\n\t\t\t}\n\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && rowLength > 0 && lengths[index] > 0) {\n\t\t\tif (options.wordWrap === false && rowLength < columns) {\n\t\t\t\twrapWord(rows, word, columns);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\trows.push('');\n\t\t}\n\n\t\tif (rowLength + lengths[index] > columns && options.wordWrap === false) {\n\t\t\twrapWord(rows, word, columns);\n\t\t\tcontinue;\n\t\t}\n\n\t\trows[rows.length - 1] += word;\n\t}\n\n\tif (options.trim !== false) {\n\t\trows = rows.map(row => stringVisibleTrimSpacesRight(row));\n\t}\n\n\tconst pre = [...rows.join('\\n')];\n\n\tfor (const [index, character] of pre.entries()) {\n\t\treturnValue += character;\n\n\t\tif (ESCAPES.has(character)) {\n\t\t\tconst {groups} = new RegExp(`(?:\\\\${ANSI_CSI}(?<code>\\\\d+)m|\\\\${ANSI_ESCAPE_LINK}(?<uri>.*)${ANSI_ESCAPE_BELL})`).exec(pre.slice(index).join('')) || {groups: {}};\n\t\t\tif (groups.code !== undefined) {\n\t\t\t\tconst code = Number.parseFloat(groups.code);\n\t\t\t\tescapeCode = code === END_CODE ? undefined : code;\n\t\t\t} else if (groups.uri !== undefined) {\n\t\t\t\tescapeUrl = groups.uri.length === 0 ? undefined : groups.uri;\n\t\t\t}\n\t\t}\n\n\t\tconst code = ansiStyles.codes.get(Number(escapeCode));\n\n\t\tif (pre[index + 1] === '\\n') {\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink('');\n\t\t\t}\n\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsiCode(code);\n\t\t\t}\n\t\t} else if (character === '\\n') {\n\t\t\tif (escapeCode && code) {\n\t\t\t\treturnValue += wrapAnsiCode(escapeCode);\n\t\t\t}\n\n\t\t\tif (escapeUrl) {\n\t\t\t\treturnValue += wrapAnsiHyperlink(escapeUrl);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn returnValue;\n};\n\n// For each newline, invoke the method separately\nexport default function wrapAnsi(string, columns, options) {\n\treturn String(string)\n\t\t.normalize()\n\t\t.replace(/\\r\\n/g, '\\n')\n\t\t.split('\\n')\n\t\t.map(line => exec(line, columns, options))\n\t\t.join('\\n');\n}\n", "// Bootstrap cliui with ESM dependencies:\nimport { cliui } from './build/lib/index.js'\n\nimport stringWidth from 'string-width'\nimport stripAnsi from 'strip-ansi'\nimport wrap from 'wrap-ansi'\n\nexport default function ui (opts) {\n return cliui(opts, {\n stringWidth,\n stripAnsi,\n wrap\n })\n}\n", "import { XDG } from '@vltpkg/xdg'\nimport { jack } from 'jackspeak'\nimport { homedir } from 'os'\nimport { relative, sep } from 'path'\n\n/**\n * Command aliases mapped to their canonical names\n */\nexport const commands = {\n i: 'install',\n add: 'install',\n install: 'install',\n rm: 'uninstall',\n u: 'uninstall',\n uninstall: 'uninstall',\n r: 'run',\n 'run-script': 'run',\n run: 'run',\n rx: 'run-exec',\n 'run-exec': 'run-exec',\n x: 'exec',\n exec: 'exec',\n h: 'help',\n '?': 'help',\n help: 'help',\n conf: 'config',\n config: 'config',\n ix: 'install-exec',\n 'install-exec': 'install-exec',\n pkg: 'pkg',\n} as const\n\nexport type Commands = typeof commands\n\nexport const getCommand = (\n s?: string,\n): Commands[keyof Commands] | undefined =>\n s && s in commands ? commands[s as keyof Commands] : undefined\n\nconst xdg = new XDG('vlt')\nconst home = homedir()\nconst confDir = xdg.config('vlt.json')\n\nconst cacheDir = xdg.cache()\n\n/**\n * Fields that are parsed as a set of key=value pairs\n */\nexport const recordFields = [\n 'git-hosts',\n 'registries',\n 'git-host-archives',\n 'scope-registries',\n] as const\n\nexport type RecordField = (typeof recordFields)[number]\n\nexport const isRecordField = (s: string): s is RecordField =>\n recordFields.includes(s as RecordField)\n\nconst stopParsingCommands: Commands[keyof Commands][] = [\n 'run',\n 'run-exec',\n 'exec',\n 'install-exec',\n]\n\nlet stopParsing: boolean | undefined = undefined\n\n/**\n * Definition of all configuration values used by vlt.\n */\nexport const definition = jack({\n envPrefix: 'VLT',\n allowPositionals: true,\n usage: `vlt [<options>] [<cmd> [<args> ...]]`,\n stopAtPositionalTest: arg => {\n if (stopParsing) return true\n const a = arg as keyof Commands\n // we stop parsing AFTER the thing, so you can do\n // vlt run --vlt --configs scriptName --args --for --script\n // or\n // vlt exec --vlt --configs command --args --for --command\n if (stopParsingCommands.includes(commands[a])) {\n stopParsing = true\n }\n return false\n },\n})\n .heading('vlt - A New Home for JavaScript')\n .description(\n `Here goes a short description of the vlt command line client.\n\n Much more documentation available at <https://docs.vlt.sh>`,\n )\n\n .heading('Subcommands')\n // make this one an H3, and wrap in a <pre>\n .heading('vlt install [packages ...]', 3, { pre: true })\n .description(\n `Install the specified packages, updating package.json and vlt-lock.json\n appropriately.`,\n )\n .heading('vlt uninstall [packages ...]', 3, { pre: true })\n .description(\n `The opposite of \\`vlt install\\`. Removes deps and updates vlt-lock.json\n and package.json appropriately.`,\n )\n\n .heading('vlt run <script> [args ...]', 3, { pre: true })\n .description(\n `Run a script defined in 'package.json', passing along any extra\n arguments. Note that vlt config values must be specified *before*\n the script name, because everything after that is handed off to\n the script process.`,\n )\n\n .heading('vlt exec [args ...]', 3, { pre: true })\n .description(\n `Run an arbitrary command, with the local installed packages first in the\n PATH. Ie, this will run your locally installed package bins.\n\n If no command is provided, then a shell is spawned in the current working\n directory, with the locally installed package bins first in the PATH.\n\n Note that any vlt configs must be specified *before* the command,\n as the remainder of the command line options are provided to the exec\n process.`,\n )\n\n .heading('vlt run-exec [args ...]', 3, { pre: true })\n .description(\n `If the first argument is a defined script in package.json, then this is\n equivalent to \\`vlt run\\`.\n\n If not, then this is equivalent to \\`vlt exec\\`.`,\n )\n\n .heading('vlt config <subcommand>', 3, { pre: true })\n .description('Work with vlt configuration')\n\n .heading('vlt config get <key>', 4, { pre: true })\n .description('Print the named config value')\n .heading('vlt config list', 4, { pre: true })\n .description('Print all configuration settings currently in effect')\n .heading('vlt config set <key=value> [<key=value> ...]', 4, {\n pre: true,\n })\n .description(\n `Set config values. By default, these are written to the project config\n file, \\`vlt.json\\` in the root of the project. To set things for all\n projects, run with \\`--config=user\\``,\n )\n .heading('vlt config del <key> [<key> ...]', 4, { pre: true })\n .description(\n `Delete the named config fields. If no values remain in the config file,\n delete the file as well. By default, operates on the \\`vlt.json\\` file\n in the root of the current project. To delete a config field from the\n user config file, specify \\`--config=user\\`.`,\n )\n\n .heading('vlt config help [field ...]', 4, { pre: true })\n .description(\n `Get information about a config field, or show a list of known\n config field names.`,\n )\n\n .heading('Configuration')\n .description(\n `If a \\`vlt.json\\` file is present in the root of the current project,\n then that will be used as a source of configuration information.\n\n Next, the file at \\`$HOME${sep}${relative(home, confDir)}\\`\n will be checked, and loaded for any fields not set in the local project.\n\n Object type values will be merged together. Set a field to \\`null\\` in\n the JSON configuration to explicitly remove it.\n\n Command-specific fields may be set in a nested \\`command\\` object that\n overrides any options defined at the top level.\n `,\n )\n\n .flag({\n color: {\n short: 'c',\n description: 'Use colors (Default for TTY)',\n },\n 'no-color': {\n short: 'C',\n description: 'Do not use colors (Default for non-TTY)',\n },\n })\n\n .opt({\n registry: {\n hint: 'url',\n default: 'https://registry.npmjs.org/',\n description: `Sets the registry for fetching packages, when no registry\n is explicitly set on a specifier.\n\n For example, \\`express@latest\\` will be resolved by looking\n up the metadata from this registry.\n\n Note that alias specifiers starting with \\`npm:\\` will\n still map to \\`https://registry.npmjs.org\\` if this is\n changed, unless the a new mapping is created via the\n \\`--registries\\` option.\n `,\n },\n })\n\n .optList({\n registries: {\n hint: 'name=url',\n description: `Specify named registry hosts by their prefix. To set the\n default registry used for non-namespaced specifiers,\n use the \\`--registry\\` option.\n\n Prefixes can be used as a package alias. For example:\n\n \\`\\`\\`\n vlt --registries loc=http://reg.local install foo@loc:foo@1.x\n \\`\\`\\`\n\n By default, the public npm registry is registered to the\n \\`npm:\\` prefix. It is not recommended to change this\n mapping in most cases.\n `,\n },\n\n 'scope-registries': {\n hint: '@scope=url',\n description: `Map package name scopes to registry URLs.\n\n For example,\n \\`--scope-registries @acme=https://registry.acme/\\`\n would tell vlt to fetch any packages named\n \\`@acme/...\\` from the \\`https://registry.acme/\\`\n registry.\n\n Note: this way of specifying registries is more ambiguous,\n compared with using the \\`--registries\\` field and explicit\n prefixes, because instead of failing when the configuration\n is absent, it will instead attempt to fetch from the\n default registry.\n\n By comparison, using\n \\`--registries acme=https://registry.acme/\\` and then\n specifying dependencies such as \\`\"foo\": \"acme:foo@1.x\"\\`\n means that regardless of the name, the package will be\n fetched from the explicitly named registry, or fail if\n no registry is defined with that name.\n\n However, custom registry aliases are not supported by other\n package managers.`,\n },\n\n 'git-hosts': {\n hint: `name=template`,\n short: 'G',\n description: `Map a shorthand name to a git remote URL template.\n\n The \\`template\\` may contain placeholders, which will be\n swapped with the relevant values.\n\n \\`$1\\`, \\`$2\\`, etc. are replaced with the appropriate\n n-th path portion. For example, \\`github:user/project\\`\n would replace the \\`$1\\` in the template with \\`user\\`,\n and \\`$2\\` with \\`project\\`.`,\n },\n\n 'git-host-archives': {\n hint: `name=template`,\n short: 'A',\n description: `Similar to the \\`--git-host <name>=<template>\\` option,\n this option can define a template string that will be\n expanded to provide the URL to download a pre-built\n tarball of the git repository.\n\n In addition to the n-th path portion expansions performed\n by \\`--git-host\\`, this field will also expand the\n string \\`$committish\\` in the template, replacing it with\n the resolved git committish value to be fetched.`,\n },\n })\n\n .opt({\n cache: {\n hint: 'path',\n description: `\n Location of the vlt on-disk cache. Defaults to the platform-specific\n directory recommended by the XDG specification.\n `,\n default: cacheDir,\n },\n tag: {\n description: `Default \\`dist-tag\\` to install`,\n default: 'latest',\n },\n before: {\n hint: 'date',\n description: `Do not install any packages published after this date`,\n },\n os: {\n description: `The operating system to use as the selector when choosing\n packages based on their \\`os\\` value.`,\n default: process.platform,\n },\n arch: {\n description: `CPU architecture to use as the selector when choosing\n packages based on their \\`cpu\\` value.`,\n default: process.arch,\n },\n 'node-version': {\n hint: 'version',\n description: `Node version to use when choosing packages based on\n their \\`engines.node\\` value.`,\n default: process.version,\n },\n })\n\n .flag({\n 'git-shallow': {\n description: `Set to force \\`--depth=1\\` on all git clone actions.\n When set explicitly to false with --no-git-shallow,\n then \\`--depth=1\\` will not be used.\n\n When not set explicitly, \\`--depth=1\\` will be used for\n git hosts known to support this behavior.`,\n },\n })\n .num({\n 'fetch-retries': {\n hint: 'n',\n description: `Number of retries to perform when encountering network\n or other likely-transient errors from git hosts.`,\n default: 3,\n },\n 'fetch-retry-factor': {\n hint: 'n',\n description: `The exponential factor to use when retrying`,\n default: 2,\n },\n 'fetch-retry-mintimeout': {\n hint: 'n',\n description: `Number of milliseconds before starting first retry`,\n default: 60_000,\n },\n 'fetch-retry-maxtimeout': {\n hint: 'n',\n description: `Maximum number of milliseconds between two retries`,\n default: 1000,\n },\n })\n\n .optList({\n workspace: {\n hint: 'ws',\n short: 'w',\n description: `Set to limit the spaces being worked on when working on\n workspaces.\n\n Can be paths or glob patterns matching paths.\n\n Specifying workspaces by package.json name is not\n supported.`,\n },\n 'workspace-group': {\n short: 'g',\n description: `Specify named workspace group names to load and operate on\n when doing recursive operations on workspaces.`,\n },\n })\n\n .flag({\n recursive: {\n short: 'r',\n description: `Run an operation across multiple workspaces.\n\n No effect when used in non-monorepo projects.\n\n Implied by setting --workspace or --workspace-group. If\n not set, then the action is run on the project root.`,\n },\n\n bail: {\n short: 'b',\n description: `When running scripts across multiple workspaces, stop\n on the first failure.`,\n default: true,\n },\n\n 'no-bail': {\n short: 'B',\n description: `When running scripts across multiple workspaces, continue\n on failure, running the script for all workspaces.`,\n },\n })\n\n .opt({\n config: {\n hint: 'user | project',\n description: `Specify whether to operate on user-level or project-level\n configuration files when running \\`vlt config\\` commands.`,\n validOptions: ['user', 'project'],\n default: 'project',\n },\n\n editor: {\n hint: 'program',\n description: `The blocking editor to use for \\`vlt config edit\\` and\n any other cases where a file should be opened for\n editing.\n\n Defaults to the \\`EDITOR\\` or \\`VISUAL\\` env if set, or\n \\`notepad.exe\\` on Windows, or \\`vi\\` elsewhere.`,\n default:\n process.env.EDITOR ||\n process.env.VISUAL ||\n (process.platform === 'win32' ?\n `${process.env.SYSTEMROOT}\\\\notepad.exe`\n : 'vi'),\n },\n\n 'script-shell': {\n hint: 'program',\n description: `The shell to use when executing \\`package.json#scripts\\`\n (either as lifecycle scripts or explicitly with\n \\`vlt run\\`) and \\`vlt exec\\`.\n\n If not set, defaults to \\`/bin/sh\\` on POSIX systems,\n and \\`cmd.exe\\` on Windows.\n\n When no argument is provided to \\`vlt exec\\`, the \\`SHELL\\`\n environment variable takes precedence if set.`,\n },\n\n 'fallback-command': {\n hint: 'command',\n description: `The command to run when the first argument doesn't\n match any known commands.\n\n For pnpm-style behavior, set this to 'run-exec'. e.g:\n \\`\\`\\`\n vlt config set fallback-command=run-exec\n \\`\\`\\``,\n default: 'help',\n validOptions: [...new Set(Object.values(commands))],\n },\n })\n\n .opt({\n package: {\n hint: 'p',\n description: `When running \\`vlt install-exec\\`, this allows you to\n explicitly set the package to search for bins. If not\n provided, then vlt will interpret the first argument as\n the package, and attempt to run the default executable.`,\n },\n })\n\n .flag({\n 'save-dev': {\n short: 'D',\n description: `Save installed packages to a package.json file as\n devDependencies`,\n },\n 'save-optional': {\n short: 'O',\n description: `Save installed packages to a package.json file as\n optionalDependencies`,\n },\n 'save-peer': {\n description: `Save installed packages to a package.json file as\n peerDependencies`,\n },\n 'save-prod': {\n short: 'P',\n description: `Save installed packages into dependencies specifically.\n This is useful if a package already exists in\n devDependencies or optionalDependencies, but you want to\n move it to be a non-optional production dependency.`,\n },\n })\n\n .flag({\n help: {\n short: 'h',\n description: 'Print helpful information',\n },\n })\n"],
|
|
5
|
-
"mappings": "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AAa,OACpC,OAAU,aAAa,aAAa,OACpC,OAAU,aAAa,aAAa,OACpC,OAAU,aAAa,aAAa,OACpC,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aA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",
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,QAAI,MAAM,CAAC;AAEX,QAAI,eAAe,OAAO,QAAQ;AAChC,aAAO,iBAAiB;AAAA,IAC1B,OAAO;AACL,aAAO,UAAU;AAAA,IACnB;AAEA,QAAI,iBAAiB,SAAS,WAAW;AACvC,UAAI,IAAI,UAAU,WAAW,CAAC;AAC9B,UAAI,IAAK,UAAU,UAAU,IAAK,UAAU,WAAW,CAAC,IAAI;AAC5D,UAAI,YAAY;AAChB,UAAK,SAAU,KAAK,KAAK,UAAY,SAAU,KAAK,KAAK,QAAS;AAChE,aAAK;AACL,aAAK;AACL,oBAAa,KAAK,KAAM;AACxB,qBAAa;AAAA,MACf;AAEA,UAAK,SAAU,aACV,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,OAAS;AAChD,eAAO;AAAA,MACT;AACA,UAAK,QAAU,aACV,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,OAAS;AAChD,eAAO;AAAA,MACT;AACA,UAAK,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,SACpC,UAAW,aAAa,aAAa,UACrC,UAAW,aAAa,aAAa,UACrC,UAAW,aAAa,aAAa,UACrC,UAAW,aAAa,aAAa,UACrC,UAAW,aAAa,aAAa,UACrC,UAAW,aAAa,aAAa,UACrC,UAAW,aAAa,aAAa,UACrC,UAAW,aAAa,aAAa,QAAU;AAClD,eAAO;AAAA,MACT;AACA,UAAK,MAAU,aAAa,aAAa,OACpC,OAAU,aAAa,aAAa,OACpC,OAAU,aAAa,aAAa,OACpC,OAAU,aACV,OAAU,aACV,SAAU,aAAa,aAAa,SACpC,SAAU,aAAa,aAAa,OAAS;AAChD,eAAO;AAAA,MACT;AACA,UAAK,OAAU,aACV,OAAU,aACV,OAAU,aAAa,aAAa,OACpC,OAAU,aACV,OAAU,aAAa,aAAa,OACpC,OAAU,aAAa,aAAa,OACpC,OAAU,aAAa,aAAa,OACpC,OAAU,aAAa,aAAa,OACpC,OAAU,aACV,OAAU,aACV,OAAU,aAAa,aAAa,OACpC,OAAU,aAAa,aAAa,OACpC,OAAU,aACV,OAAU,aAAa,aAAa,OACpC,OAAU,aAAa,aAAa,OACpC,OAAU,aACV,OAAU,aAAa,aAAa,OACpC,OAAU,aAAa,aAAa,OACpC,OAAU,aACV,OAAU,aACV,OAAU,aACV,OAAU,aACV,OAAU,aACV,OAAU,aACV,OAAU,aAAa,aAAa,OACpC,OAAU,aACV,OAAU,aAAa,aAAa,OACpC,OAAU,aACV,OAAU,aAAa,aAAa,OACpC,OAAU,aACV,OAAU,aAAa,aAAa,OACpC,OAAU,aACV,OAAU,aAAa,aAAa,OACpC,OAAU,aAAa,aAAa,OACpC,OAAU,aACV,OAAU,aACV,OAAU,aACV,OAAU,aACV,OAAU,aACV,OAAU,aACV,OAAU,aACV,OAAU,aACV,OAAU,aACV,OAAU,aACV,OAAU,aACV,OAAU,aACV,OAAU,aACV,OAAU,aAAa,aAAa,OACpC,OAAU,aACV,OAAU,aACV,OAAU,aAAa,aAAa,OACpC,OAAU,aACV,OAAU,aACV,OAAU,aAAa,aAAa,OACpC,OAAU,aAAa,aAAa,OACpC,OAAU,aAAa,aAAa,OACpC,OAAU,aAAa,aAAa,OACpC,OAAU,aAAa,aAAa,OACpC,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aACV,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aAAa,aAAa,QACpC,QAAU,aA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",
|
|
6
6
|
"names": ["homedir", "dirname", "resolve", "resolve", "width", "emojiRegex", "width", "eastAsianWidth", "code", "v", "my", "ui", "usage", "left", "s", "i", "homedir", "homedir", "k", "v", "home", "homedir", "xdg"]
|
|
7
7
|
}
|