proxitor 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +27 -8
  2. package/dist/add.mjs +26 -27
  3. package/dist/add.mjs.map +1 -1
  4. package/dist/browse.mjs +20 -21
  5. package/dist/browse.mjs.map +1 -1
  6. package/dist/cli.mjs +14774 -33
  7. package/dist/cli.mjs.map +1 -1
  8. package/dist/config.mjs +6 -5
  9. package/dist/config.mjs.map +1 -1
  10. package/dist/config2.mjs +5 -6
  11. package/dist/config2.mjs.map +1 -1
  12. package/dist/dist.mjs +1325 -0
  13. package/dist/dist.mjs.map +1 -0
  14. package/dist/dist2.mjs +6617 -0
  15. package/dist/dist2.mjs.map +1 -0
  16. package/dist/edit.mjs +17 -18
  17. package/dist/edit.mjs.map +1 -1
  18. package/dist/list.mjs +4 -4
  19. package/dist/list.mjs.map +1 -1
  20. package/dist/prompt.mjs +849 -0
  21. package/dist/prompt.mjs.map +1 -0
  22. package/dist/providers.mjs +16 -16
  23. package/dist/providers.mjs.map +1 -1
  24. package/dist/remove.mjs +10 -11
  25. package/dist/remove.mjs.map +1 -1
  26. package/dist/validate.mjs +9 -9
  27. package/dist/validate.mjs.map +1 -1
  28. package/dist/wizard.mjs +222 -0
  29. package/dist/wizard.mjs.map +1 -0
  30. package/package.json +1 -16
  31. package/dist/add.cjs +0 -139
  32. package/dist/add.cjs.map +0 -1
  33. package/dist/browse.cjs +0 -88
  34. package/dist/browse.cjs.map +0 -1
  35. package/dist/cli.cjs +0 -159
  36. package/dist/cli.cjs.map +0 -1
  37. package/dist/cli.d.cts +0 -1
  38. package/dist/cli.d.mts +0 -1
  39. package/dist/config.cjs +0 -68
  40. package/dist/config.cjs.map +0 -1
  41. package/dist/config2.cjs +0 -75
  42. package/dist/config2.cjs.map +0 -1
  43. package/dist/edit.cjs +0 -82
  44. package/dist/edit.cjs.map +0 -1
  45. package/dist/index.cjs +0 -12
  46. package/dist/index.d.cts +0 -261
  47. package/dist/index.d.cts.map +0 -1
  48. package/dist/index.d.mts +0 -261
  49. package/dist/index.d.mts.map +0 -1
  50. package/dist/index.mjs +0 -2
  51. package/dist/list.cjs +0 -33
  52. package/dist/list.cjs.map +0 -1
  53. package/dist/providers.cjs +0 -376
  54. package/dist/providers.cjs.map +0 -1
  55. package/dist/proxy.cjs +0 -656
  56. package/dist/proxy.cjs.map +0 -1
  57. package/dist/proxy.mjs +0 -544
  58. package/dist/proxy.mjs.map +0 -1
  59. package/dist/remove.cjs +0 -38
  60. package/dist/remove.cjs.map +0 -1
  61. package/dist/validate.cjs +0 -26
  62. package/dist/validate.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.mjs","names":["G","f","g","V"],"sources":["../node_modules/.pnpm/consola@3.4.2/node_modules/consola/dist/chunks/prompt.mjs"],"sourcesContent":["import 'node:util';\nimport g, { stdin, stdout } from 'node:process';\nimport f from 'node:readline';\nimport { WriteStream } from 'node:tty';\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar src;\nvar hasRequiredSrc;\n\nfunction requireSrc () {\n\tif (hasRequiredSrc) return src;\n\thasRequiredSrc = 1;\n\n\tconst ESC = '\\x1B';\n\tconst CSI = `${ESC}[`;\n\tconst beep = '\\u0007';\n\n\tconst cursor = {\n\t to(x, y) {\n\t if (!y) return `${CSI}${x + 1}G`;\n\t return `${CSI}${y + 1};${x + 1}H`;\n\t },\n\t move(x, y) {\n\t let ret = '';\n\n\t if (x < 0) ret += `${CSI}${-x}D`;\n\t else if (x > 0) ret += `${CSI}${x}C`;\n\n\t if (y < 0) ret += `${CSI}${-y}A`;\n\t else if (y > 0) ret += `${CSI}${y}B`;\n\n\t return ret;\n\t },\n\t up: (count = 1) => `${CSI}${count}A`,\n\t down: (count = 1) => `${CSI}${count}B`,\n\t forward: (count = 1) => `${CSI}${count}C`,\n\t backward: (count = 1) => `${CSI}${count}D`,\n\t nextLine: (count = 1) => `${CSI}E`.repeat(count),\n\t prevLine: (count = 1) => `${CSI}F`.repeat(count),\n\t left: `${CSI}G`,\n\t hide: `${CSI}?25l`,\n\t show: `${CSI}?25h`,\n\t save: `${ESC}7`,\n\t restore: `${ESC}8`\n\t};\n\n\tconst scroll = {\n\t up: (count = 1) => `${CSI}S`.repeat(count),\n\t down: (count = 1) => `${CSI}T`.repeat(count)\n\t};\n\n\tconst erase = {\n\t screen: `${CSI}2J`,\n\t up: (count = 1) => `${CSI}1J`.repeat(count),\n\t down: (count = 1) => `${CSI}J`.repeat(count),\n\t line: `${CSI}2K`,\n\t lineEnd: `${CSI}K`,\n\t lineStart: `${CSI}1K`,\n\t lines(count) {\n\t let clear = '';\n\t for (let i = 0; i < count; i++)\n\t clear += this.line + (i < count - 1 ? cursor.up() : '');\n\t if (count)\n\t clear += cursor.left;\n\t return clear;\n\t }\n\t};\n\n\tsrc = { cursor, scroll, erase, beep };\n\treturn src;\n}\n\nvar srcExports = requireSrc();\n\nvar picocolors = {exports: {}};\n\nvar hasRequiredPicocolors;\n\nfunction requirePicocolors () {\n\tif (hasRequiredPicocolors) return picocolors.exports;\n\thasRequiredPicocolors = 1;\n\tlet p = process || {}, argv = p.argv || [], env = p.env || {};\n\tlet isColorSupported =\n\t\t!(!!env.NO_COLOR || argv.includes(\"--no-color\")) &&\n\t\t(!!env.FORCE_COLOR || argv.includes(\"--color\") || p.platform === \"win32\" || ((p.stdout || {}).isTTY && env.TERM !== \"dumb\") || !!env.CI);\n\n\tlet formatter = (open, close, replace = open) =>\n\t\tinput => {\n\t\t\tlet string = \"\" + input, index = string.indexOf(close, open.length);\n\t\t\treturn ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close\n\t\t};\n\n\tlet replaceClose = (string, close, replace, index) => {\n\t\tlet result = \"\", cursor = 0;\n\t\tdo {\n\t\t\tresult += string.substring(cursor, index) + replace;\n\t\t\tcursor = index + close.length;\n\t\t\tindex = string.indexOf(close, cursor);\n\t\t} while (~index)\n\t\treturn result + string.substring(cursor)\n\t};\n\n\tlet createColors = (enabled = isColorSupported) => {\n\t\tlet f = enabled ? formatter : () => String;\n\t\treturn {\n\t\t\tisColorSupported: enabled,\n\t\t\treset: f(\"\\x1b[0m\", \"\\x1b[0m\"),\n\t\t\tbold: f(\"\\x1b[1m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[1m\"),\n\t\t\tdim: f(\"\\x1b[2m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[2m\"),\n\t\t\titalic: f(\"\\x1b[3m\", \"\\x1b[23m\"),\n\t\t\tunderline: f(\"\\x1b[4m\", \"\\x1b[24m\"),\n\t\t\tinverse: f(\"\\x1b[7m\", \"\\x1b[27m\"),\n\t\t\thidden: f(\"\\x1b[8m\", \"\\x1b[28m\"),\n\t\t\tstrikethrough: f(\"\\x1b[9m\", \"\\x1b[29m\"),\n\n\t\t\tblack: f(\"\\x1b[30m\", \"\\x1b[39m\"),\n\t\t\tred: f(\"\\x1b[31m\", \"\\x1b[39m\"),\n\t\t\tgreen: f(\"\\x1b[32m\", \"\\x1b[39m\"),\n\t\t\tyellow: f(\"\\x1b[33m\", \"\\x1b[39m\"),\n\t\t\tblue: f(\"\\x1b[34m\", \"\\x1b[39m\"),\n\t\t\tmagenta: f(\"\\x1b[35m\", \"\\x1b[39m\"),\n\t\t\tcyan: f(\"\\x1b[36m\", \"\\x1b[39m\"),\n\t\t\twhite: f(\"\\x1b[37m\", \"\\x1b[39m\"),\n\t\t\tgray: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\n\t\t\tbgBlack: f(\"\\x1b[40m\", \"\\x1b[49m\"),\n\t\t\tbgRed: f(\"\\x1b[41m\", \"\\x1b[49m\"),\n\t\t\tbgGreen: f(\"\\x1b[42m\", \"\\x1b[49m\"),\n\t\t\tbgYellow: f(\"\\x1b[43m\", \"\\x1b[49m\"),\n\t\t\tbgBlue: f(\"\\x1b[44m\", \"\\x1b[49m\"),\n\t\t\tbgMagenta: f(\"\\x1b[45m\", \"\\x1b[49m\"),\n\t\t\tbgCyan: f(\"\\x1b[46m\", \"\\x1b[49m\"),\n\t\t\tbgWhite: f(\"\\x1b[47m\", \"\\x1b[49m\"),\n\n\t\t\tblackBright: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\t\t\tredBright: f(\"\\x1b[91m\", \"\\x1b[39m\"),\n\t\t\tgreenBright: f(\"\\x1b[92m\", \"\\x1b[39m\"),\n\t\t\tyellowBright: f(\"\\x1b[93m\", \"\\x1b[39m\"),\n\t\t\tblueBright: f(\"\\x1b[94m\", \"\\x1b[39m\"),\n\t\t\tmagentaBright: f(\"\\x1b[95m\", \"\\x1b[39m\"),\n\t\t\tcyanBright: f(\"\\x1b[96m\", \"\\x1b[39m\"),\n\t\t\twhiteBright: f(\"\\x1b[97m\", \"\\x1b[39m\"),\n\n\t\t\tbgBlackBright: f(\"\\x1b[100m\", \"\\x1b[49m\"),\n\t\t\tbgRedBright: f(\"\\x1b[101m\", \"\\x1b[49m\"),\n\t\t\tbgGreenBright: f(\"\\x1b[102m\", \"\\x1b[49m\"),\n\t\t\tbgYellowBright: f(\"\\x1b[103m\", \"\\x1b[49m\"),\n\t\t\tbgBlueBright: f(\"\\x1b[104m\", \"\\x1b[49m\"),\n\t\t\tbgMagentaBright: f(\"\\x1b[105m\", \"\\x1b[49m\"),\n\t\t\tbgCyanBright: f(\"\\x1b[106m\", \"\\x1b[49m\"),\n\t\t\tbgWhiteBright: f(\"\\x1b[107m\", \"\\x1b[49m\"),\n\t\t}\n\t};\n\n\tpicocolors.exports = createColors();\n\tpicocolors.exports.createColors = createColors;\n\treturn picocolors.exports;\n}\n\nvar picocolorsExports = /*@__PURE__*/ requirePicocolors();\nconst e = /*@__PURE__*/getDefaultExportFromCjs(picocolorsExports);\n\nfunction J({onlyFirst:t=false}={}){const F=[\"[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?(?:\\\\u0007|\\\\u001B\\\\u005C|\\\\u009C))\",\"(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-nq-uy=><~]))\"].join(\"|\");return new RegExp(F,t?void 0:\"g\")}const Q=J();function T$1(t){if(typeof t!=\"string\")throw new TypeError(`Expected a \\`string\\`, got \\`${typeof t}\\``);return t.replace(Q,\"\")}function O(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}var P$1={exports:{}};(function(t){var u={};t.exports=u,u.eastAsianWidth=function(e){var s=e.charCodeAt(0),i=e.length==2?e.charCodeAt(1):0,D=s;return 55296<=s&&s<=56319&&56320<=i&&i<=57343&&(s&=1023,i&=1023,D=s<<10|i,D+=65536),D==12288||65281<=D&&D<=65376||65504<=D&&D<=65510?\"F\":D==8361||65377<=D&&D<=65470||65474<=D&&D<=65479||65482<=D&&D<=65487||65490<=D&&D<=65495||65498<=D&&D<=65500||65512<=D&&D<=65518?\"H\":4352<=D&&D<=4447||4515<=D&&D<=4519||4602<=D&&D<=4607||9001<=D&&D<=9002||11904<=D&&D<=11929||11931<=D&&D<=12019||12032<=D&&D<=12245||12272<=D&&D<=12283||12289<=D&&D<=12350||12353<=D&&D<=12438||12441<=D&&D<=12543||12549<=D&&D<=12589||12593<=D&&D<=12686||12688<=D&&D<=12730||12736<=D&&D<=12771||12784<=D&&D<=12830||12832<=D&&D<=12871||12880<=D&&D<=13054||13056<=D&&D<=19903||19968<=D&&D<=42124||42128<=D&&D<=42182||43360<=D&&D<=43388||44032<=D&&D<=55203||55216<=D&&D<=55238||55243<=D&&D<=55291||63744<=D&&D<=64255||65040<=D&&D<=65049||65072<=D&&D<=65106||65108<=D&&D<=65126||65128<=D&&D<=65131||110592<=D&&D<=110593||127488<=D&&D<=127490||127504<=D&&D<=127546||127552<=D&&D<=127560||127568<=D&&D<=127569||131072<=D&&D<=194367||177984<=D&&D<=196605||196608<=D&&D<=262141?\"W\":32<=D&&D<=126||162<=D&&D<=163||165<=D&&D<=166||D==172||D==175||10214<=D&&D<=10221||10629<=D&&D<=10630?\"Na\":D==161||D==164||167<=D&&D<=168||D==170||173<=D&&D<=174||176<=D&&D<=180||182<=D&&D<=186||188<=D&&D<=191||D==198||D==208||215<=D&&D<=216||222<=D&&D<=225||D==230||232<=D&&D<=234||236<=D&&D<=237||D==240||242<=D&&D<=243||247<=D&&D<=250||D==252||D==254||D==257||D==273||D==275||D==283||294<=D&&D<=295||D==299||305<=D&&D<=307||D==312||319<=D&&D<=322||D==324||328<=D&&D<=331||D==333||338<=D&&D<=339||358<=D&&D<=359||D==363||D==462||D==464||D==466||D==468||D==470||D==472||D==474||D==476||D==593||D==609||D==708||D==711||713<=D&&D<=715||D==717||D==720||728<=D&&D<=731||D==733||D==735||768<=D&&D<=879||913<=D&&D<=929||931<=D&&D<=937||945<=D&&D<=961||963<=D&&D<=969||D==1025||1040<=D&&D<=1103||D==1105||D==8208||8211<=D&&D<=8214||8216<=D&&D<=8217||8220<=D&&D<=8221||8224<=D&&D<=8226||8228<=D&&D<=8231||D==8240||8242<=D&&D<=8243||D==8245||D==8251||D==8254||D==8308||D==8319||8321<=D&&D<=8324||D==8364||D==8451||D==8453||D==8457||D==8467||D==8470||8481<=D&&D<=8482||D==8486||D==8491||8531<=D&&D<=8532||8539<=D&&D<=8542||8544<=D&&D<=8555||8560<=D&&D<=8569||D==8585||8592<=D&&D<=8601||8632<=D&&D<=8633||D==8658||D==8660||D==8679||D==8704||8706<=D&&D<=8707||8711<=D&&D<=8712||D==8715||D==8719||D==8721||D==8725||D==8730||8733<=D&&D<=8736||D==8739||D==8741||8743<=D&&D<=8748||D==8750||8756<=D&&D<=8759||8764<=D&&D<=8765||D==8776||D==8780||D==8786||8800<=D&&D<=8801||8804<=D&&D<=8807||8810<=D&&D<=8811||8814<=D&&D<=8815||8834<=D&&D<=8835||8838<=D&&D<=8839||D==8853||D==8857||D==8869||D==8895||D==8978||9312<=D&&D<=9449||9451<=D&&D<=9547||9552<=D&&D<=9587||9600<=D&&D<=9615||9618<=D&&D<=9621||9632<=D&&D<=9633||9635<=D&&D<=9641||9650<=D&&D<=9651||9654<=D&&D<=9655||9660<=D&&D<=9661||9664<=D&&D<=9665||9670<=D&&D<=9672||D==9675||9678<=D&&D<=9681||9698<=D&&D<=9701||D==9711||9733<=D&&D<=9734||D==9737||9742<=D&&D<=9743||9748<=D&&D<=9749||D==9756||D==9758||D==9792||D==9794||9824<=D&&D<=9825||9827<=D&&D<=9829||9831<=D&&D<=9834||9836<=D&&D<=9837||D==9839||9886<=D&&D<=9887||9918<=D&&D<=9919||9924<=D&&D<=9933||9935<=D&&D<=9953||D==9955||9960<=D&&D<=9983||D==10045||D==10071||10102<=D&&D<=10111||11093<=D&&D<=11097||12872<=D&&D<=12879||57344<=D&&D<=63743||65024<=D&&D<=65039||D==65533||127232<=D&&D<=127242||127248<=D&&D<=127277||127280<=D&&D<=127337||127344<=D&&D<=127386||917760<=D&&D<=917999||983040<=D&&D<=1048573||1048576<=D&&D<=1114109?\"A\":\"N\"},u.characterLength=function(e){var s=this.eastAsianWidth(e);return s==\"F\"||s==\"W\"||s==\"A\"?2:1};function F(e){return e.match(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\uD800-\\uDFFF]/g)||[]}u.length=function(e){for(var s=F(e),i=0,D=0;D<s.length;D++)i=i+this.characterLength(s[D]);return i},u.slice=function(e,s,i){textLen=u.length(e),s=s||0,i=i||1,s<0&&(s=textLen+s),i<0&&(i=textLen+i);for(var D=\"\",C=0,o=F(e),E=0;E<o.length;E++){var a=o[E],n=u.length(a);if(C>=s-(n==2?1:0))if(C+n<=i)D+=a;else break;C+=n;}return D};})(P$1);var X=P$1.exports;const DD=O(X);var uD=function(){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};const FD=O(uD);function A$1(t,u={}){if(typeof t!=\"string\"||t.length===0||(u={ambiguousIsNarrow:true,...u},t=T$1(t),t.length===0))return 0;t=t.replace(FD(),\" \");const F=u.ambiguousIsNarrow?1:2;let e=0;for(const s of t){const i=s.codePointAt(0);if(i<=31||i>=127&&i<=159||i>=768&&i<=879)continue;switch(DD.eastAsianWidth(s)){case \"F\":case \"W\":e+=2;break;case \"A\":e+=F;break;default:e+=1;}}return e}const m=10,L$1=(t=0)=>u=>`\\x1B[${u+t}m`,N=(t=0)=>u=>`\\x1B[${38+t};5;${u}m`,I=(t=0)=>(u,F,e)=>`\\x1B[${38+t};2;${u};${F};${e}m`,r={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(r.modifier);const tD=Object.keys(r.color),eD=Object.keys(r.bgColor);[...tD,...eD];function sD(){const t=new Map;for(const[u,F]of Object.entries(r)){for(const[e,s]of Object.entries(F))r[e]={open:`\\x1B[${s[0]}m`,close:`\\x1B[${s[1]}m`},F[e]=r[e],t.set(s[0],s[1]);Object.defineProperty(r,u,{value:F,enumerable:false});}return Object.defineProperty(r,\"codes\",{value:t,enumerable:false}),r.color.close=\"\\x1B[39m\",r.bgColor.close=\"\\x1B[49m\",r.color.ansi=L$1(),r.color.ansi256=N(),r.color.ansi16m=I(),r.bgColor.ansi=L$1(m),r.bgColor.ansi256=N(m),r.bgColor.ansi16m=I(m),Object.defineProperties(r,{rgbToAnsi256:{value:(u,F,e)=>u===F&&F===e?u<8?16:u>248?231:Math.round((u-8)/247*24)+232:16+36*Math.round(u/255*5)+6*Math.round(F/255*5)+Math.round(e/255*5),enumerable:false},hexToRgb:{value:u=>{const F=/[a-f\\d]{6}|[a-f\\d]{3}/i.exec(u.toString(16));if(!F)return [0,0,0];let[e]=F;e.length===3&&(e=[...e].map(i=>i+i).join(\"\"));const s=Number.parseInt(e,16);return [s>>16&255,s>>8&255,s&255]},enumerable:false},hexToAnsi256:{value:u=>r.rgbToAnsi256(...r.hexToRgb(u)),enumerable:false},ansi256ToAnsi:{value:u=>{if(u<8)return 30+u;if(u<16)return 90+(u-8);let F,e,s;if(u>=232)F=((u-232)*10+8)/255,e=F,s=F;else {u-=16;const C=u%36;F=Math.floor(u/36)/5,e=Math.floor(C/6)/5,s=C%6/5;}const i=Math.max(F,e,s)*2;if(i===0)return 30;let D=30+(Math.round(s)<<2|Math.round(e)<<1|Math.round(F));return i===2&&(D+=60),D},enumerable:false},rgbToAnsi:{value:(u,F,e)=>r.ansi256ToAnsi(r.rgbToAnsi256(u,F,e)),enumerable:false},hexToAnsi:{value:u=>r.ansi256ToAnsi(r.hexToAnsi256(u)),enumerable:false}}),r}const iD=sD(),v=new Set([\"\\x1B\",\"\\x9B\"]),CD=39,w$1=\"\\x07\",W$1=\"[\",rD=\"]\",R=\"m\",y=`${rD}8;;`,V$1=t=>`${v.values().next().value}${W$1}${t}${R}`,z=t=>`${v.values().next().value}${y}${t}${w$1}`,ED=t=>t.split(\" \").map(u=>A$1(u)),_=(t,u,F)=>{const e=[...u];let s=false,i=false,D=A$1(T$1(t[t.length-1]));for(const[C,o]of e.entries()){const E=A$1(o);if(D+E<=F?t[t.length-1]+=o:(t.push(o),D=0),v.has(o)&&(s=true,i=e.slice(C+1).join(\"\").startsWith(y)),s){i?o===w$1&&(s=false,i=false):o===R&&(s=false);continue}D+=E,D===F&&C<e.length-1&&(t.push(\"\"),D=0);}!D&&t[t.length-1].length>0&&t.length>1&&(t[t.length-2]+=t.pop());},nD=t=>{const u=t.split(\" \");let F=u.length;for(;F>0&&!(A$1(u[F-1])>0);)F--;return F===u.length?t:u.slice(0,F).join(\" \")+u.slice(F).join(\"\")},oD=(t,u,F={})=>{if(F.trim!==false&&t.trim()===\"\")return \"\";let e=\"\",s,i;const D=ED(t);let C=[\"\"];for(const[E,a]of t.split(\" \").entries()){F.trim!==false&&(C[C.length-1]=C[C.length-1].trimStart());let n=A$1(C[C.length-1]);if(E!==0&&(n>=u&&(F.wordWrap===false||F.trim===false)&&(C.push(\"\"),n=0),(n>0||F.trim===false)&&(C[C.length-1]+=\" \",n++)),F.hard&&D[E]>u){const B=u-n,p=1+Math.floor((D[E]-B-1)/u);Math.floor((D[E]-1)/u)<p&&C.push(\"\"),_(C,a,u);continue}if(n+D[E]>u&&n>0&&D[E]>0){if(F.wordWrap===false&&n<u){_(C,a,u);continue}C.push(\"\");}if(n+D[E]>u&&F.wordWrap===false){_(C,a,u);continue}C[C.length-1]+=a;}F.trim!==false&&(C=C.map(E=>nD(E)));const o=[...C.join(`\n`)];for(const[E,a]of o.entries()){if(e+=a,v.has(a)){const{groups:B}=new RegExp(`(?:\\\\${W$1}(?<code>\\\\d+)m|\\\\${y}(?<uri>.*)${w$1})`).exec(o.slice(E).join(\"\"))||{groups:{}};if(B.code!==void 0){const p=Number.parseFloat(B.code);s=p===CD?void 0:p;}else B.uri!==void 0&&(i=B.uri.length===0?void 0:B.uri);}const n=iD.codes.get(Number(s));o[E+1]===`\n`?(i&&(e+=z(\"\")),s&&n&&(e+=V$1(n))):a===`\n`&&(s&&n&&(e+=V$1(s)),i&&(e+=z(i)));}return e};function G(t,u,F){return String(t).normalize().replace(/\\r\\n/g,`\n`).split(`\n`).map(e=>oD(e,u,F)).join(`\n`)}const aD=[\"up\",\"down\",\"left\",\"right\",\"space\",\"enter\",\"cancel\"],c={actions:new Set(aD),aliases:new Map([[\"k\",\"up\"],[\"j\",\"down\"],[\"h\",\"left\"],[\"l\",\"right\"],[\"\u0003\",\"cancel\"],[\"escape\",\"cancel\"]])};function k$1(t,u){if(typeof t==\"string\")return c.aliases.get(t)===u;for(const F of t)if(F!==void 0&&k$1(F,u))return true;return false}function lD(t,u){if(t===u)return;const F=t.split(`\n`),e=u.split(`\n`),s=[];for(let i=0;i<Math.max(F.length,e.length);i++)F[i]!==e[i]&&s.push(i);return s}globalThis.process.platform.startsWith(\"win\");const S=Symbol(\"clack:cancel\");function d$1(t,u){const F=t;F.isTTY&&F.setRawMode(u);}var AD=Object.defineProperty,pD=(t,u,F)=>u in t?AD(t,u,{enumerable:true,configurable:true,writable:true,value:F}):t[u]=F,h=(t,u,F)=>(pD(t,typeof u!=\"symbol\"?u+\"\":u,F),F);class x{constructor(u,F=true){h(this,\"input\"),h(this,\"output\"),h(this,\"_abortSignal\"),h(this,\"rl\"),h(this,\"opts\"),h(this,\"_render\"),h(this,\"_track\",false),h(this,\"_prevFrame\",\"\"),h(this,\"_subscribers\",new Map),h(this,\"_cursor\",0),h(this,\"state\",\"initial\"),h(this,\"error\",\"\"),h(this,\"value\");const{input:e=stdin,output:s=stdout,render:i,signal:D,...C}=u;this.opts=C,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=i.bind(this),this._track=F,this._abortSignal=D,this.input=e,this.output=s;}unsubscribe(){this._subscribers.clear();}setSubscriber(u,F){const e=this._subscribers.get(u)??[];e.push(F),this._subscribers.set(u,e);}on(u,F){this.setSubscriber(u,{cb:F});}once(u,F){this.setSubscriber(u,{cb:F,once:true});}emit(u,...F){const e=this._subscribers.get(u)??[],s=[];for(const i of e)i.cb(...F),i.once&&s.push(()=>e.splice(e.indexOf(i),1));for(const i of s)i();}prompt(){return new Promise((u,F)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state=\"cancel\",this.close(),u(S);this._abortSignal.addEventListener(\"abort\",()=>{this.state=\"cancel\",this.close();},{once:true});}const e=new WriteStream(0);e._write=(s,i,D)=>{this._track&&(this.value=this.rl?.line.replace(/\\t/g,\"\"),this._cursor=this.rl?.cursor??0,this.emit(\"value\",this.value)),D();},this.input.pipe(e),this.rl=f.createInterface({input:this.input,output:e,tabSize:2,prompt:\"\",escapeCodeTimeout:50}),f.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on(\"keypress\",this.onKeypress),d$1(this.input,true),this.output.on(\"resize\",this.render),this.render(),this.once(\"submit\",()=>{this.output.write(srcExports.cursor.show),this.output.off(\"resize\",this.render),d$1(this.input,false),u(this.value);}),this.once(\"cancel\",()=>{this.output.write(srcExports.cursor.show),this.output.off(\"resize\",this.render),d$1(this.input,false),u(S);});})}onKeypress(u,F){if(this.state===\"error\"&&(this.state=\"active\"),F?.name&&(!this._track&&c.aliases.has(F.name)&&this.emit(\"cursor\",c.aliases.get(F.name)),c.actions.has(F.name)&&this.emit(\"cursor\",F.name)),u&&(u.toLowerCase()===\"y\"||u.toLowerCase()===\"n\")&&this.emit(\"confirm\",u.toLowerCase()===\"y\"),u===\"\t\"&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit(\"value\",this.opts.placeholder))),u&&this.emit(\"key\",u.toLowerCase()),F?.name===\"return\"){if(this.opts.validate){const e=this.opts.validate(this.value);e&&(this.error=e instanceof Error?e.message:e,this.state=\"error\",this.rl?.write(this.value));}this.state!==\"error\"&&(this.state=\"submit\");}k$1([u,F?.name,F?.sequence],\"cancel\")&&(this.state=\"cancel\"),(this.state===\"submit\"||this.state===\"cancel\")&&this.emit(\"finalize\"),this.render(),(this.state===\"submit\"||this.state===\"cancel\")&&this.close();}close(){this.input.unpipe(),this.input.removeListener(\"keypress\",this.onKeypress),this.output.write(`\n`),d$1(this.input,false),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe();}restoreCursor(){const u=G(this._prevFrame,process.stdout.columns,{hard:true}).split(`\n`).length-1;this.output.write(srcExports.cursor.move(-999,u*-1));}render(){const u=G(this._render(this)??\"\",process.stdout.columns,{hard:true});if(u!==this._prevFrame){if(this.state===\"initial\")this.output.write(srcExports.cursor.hide);else {const F=lD(this._prevFrame,u);if(this.restoreCursor(),F&&F?.length===1){const e=F[0];this.output.write(srcExports.cursor.move(0,e)),this.output.write(srcExports.erase.lines(1));const s=u.split(`\n`);this.output.write(s[e]),this._prevFrame=u,this.output.write(srcExports.cursor.move(0,s.length-e-1));return}if(F&&F?.length>1){const e=F[0];this.output.write(srcExports.cursor.move(0,e)),this.output.write(srcExports.erase.down());const s=u.split(`\n`).slice(e);this.output.write(s.join(`\n`)),this._prevFrame=u;return}this.output.write(srcExports.erase.down());}this.output.write(u),this.state===\"initial\"&&(this.state=\"active\"),this._prevFrame=u;}}}class fD extends x{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(u){super(u,false),this.value=!!u.initialValue,this.on(\"value\",()=>{this.value=this._value;}),this.on(\"confirm\",F=>{this.output.write(srcExports.cursor.move(0,-1)),this.value=F,this.state=\"submit\",this.close();}),this.on(\"cursor\",()=>{this.value=!this.value;});}}var bD=Object.defineProperty,mD=(t,u,F)=>u in t?bD(t,u,{enumerable:true,configurable:true,writable:true,value:F}):t[u]=F,Y=(t,u,F)=>(mD(t,typeof u!=\"symbol\"?u+\"\":u,F),F);let wD=class extends x{constructor(u){super(u,false),Y(this,\"options\"),Y(this,\"cursor\",0),this.options=u.options,this.value=[...u.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:F})=>F===u.cursorAt),0),this.on(\"key\",F=>{F===\"a\"&&this.toggleAll();}),this.on(\"cursor\",F=>{switch(F){case \"left\":case \"up\":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case \"down\":case \"right\":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case \"space\":this.toggleValue();break}});}get _value(){return this.options[this.cursor].value}toggleAll(){const u=this.value.length===this.options.length;this.value=u?[]:this.options.map(F=>F.value);}toggleValue(){const u=this.value.includes(this._value);this.value=u?this.value.filter(F=>F!==this._value):[...this.value,this._value];}};var SD=Object.defineProperty,$D=(t,u,F)=>u in t?SD(t,u,{enumerable:true,configurable:true,writable:true,value:F}):t[u]=F,q=(t,u,F)=>($D(t,typeof u!=\"symbol\"?u+\"\":u,F),F);class jD extends x{constructor(u){super(u,false),q(this,\"options\"),q(this,\"cursor\",0),this.options=u.options,this.cursor=this.options.findIndex(({value:F})=>F===u.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on(\"cursor\",F=>{switch(F){case \"left\":case \"up\":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case \"down\":case \"right\":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue();});}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value;}}class PD extends x{get valueWithCursor(){if(this.state===\"submit\")return this.value;if(this.cursor>=this.value.length)return `${this.value}\\u2588`;const u=this.value.slice(0,this.cursor),[F,...e$1]=this.value.slice(this.cursor);return `${u}${e.inverse(F)}${e$1.join(\"\")}`}get cursor(){return this._cursor}constructor(u){super(u),this.on(\"finalize\",()=>{this.value||(this.value=u.defaultValue);});}}\n\nfunction ce(){return g.platform!==\"win32\"?g.env.TERM!==\"linux\":!!g.env.CI||!!g.env.WT_SESSION||!!g.env.TERMINUS_SUBLIME||g.env.ConEmuTask===\"{cmd::Cmder}\"||g.env.TERM_PROGRAM===\"Terminus-Sublime\"||g.env.TERM_PROGRAM===\"vscode\"||g.env.TERM===\"xterm-256color\"||g.env.TERM===\"alacritty\"||g.env.TERMINAL_EMULATOR===\"JetBrains-JediTerm\"}const V=ce(),u=(t,n)=>V?t:n,le=u(\"❯\", \">\"),L=u(\"■\", \"x\"),W=u(\"▲\", \"x\"),C=u(\"✔\", \"√\"),o=u(\"\"),d=u(\"\"),k=u(\"\\u25CF\",\">\"),P=u(\"\\u25CB\",\" \"),A=u(\"\\u25FB\",\"[\\u2022]\"),T=u(\"\\u25FC\",\"[+]\"),F=u(\"\\u25FB\",\"[ ]\"),w=t=>{switch(t){case \"initial\":case \"active\":return e.cyan(le);case \"cancel\":return e.red(L);case \"error\":return e.yellow(W);case \"submit\":return e.green(C)}},B=t=>{const{cursor:n,options:s,style:r}=t,i=t.maxItems??Number.POSITIVE_INFINITY,a=Math.max(process.stdout.rows-4,0),c=Math.min(a,Math.max(i,5));let l=0;n>=l+c-3?l=Math.max(Math.min(n-c+3,s.length-c),0):n<l+2&&(l=Math.max(n-2,0));const $=c<s.length&&l>0,p=c<s.length&&l+c<s.length;return s.slice(l,l+c).map((M,v,x)=>{const j=v===0&&$,E=v===x.length-1&&p;return j||E?e.dim(\"...\"):r(M,v+l===n)})},he=t=>new PD({validate:t.validate,placeholder:t.placeholder,defaultValue:t.defaultValue,initialValue:t.initialValue,render(){const n=`${e.gray(o)}\n${w(this.state)} ${t.message}\n`,s=t.placeholder?e.inverse(t.placeholder[0])+e.dim(t.placeholder.slice(1)):e.inverse(e.hidden(\"_\")),r=this.value?this.valueWithCursor:s;switch(this.state){case \"error\":return `${n.trim()}\n${e.yellow(o)} ${r}\n${e.yellow(d)} ${e.yellow(this.error)}\n`;case \"submit\":return `${n}${e.gray(o)} ${e.dim(this.value||t.placeholder)}`;case \"cancel\":return `${n}${e.gray(o)} ${e.strikethrough(e.dim(this.value??\"\"))}${this.value?.trim()?`\n${e.gray(o)}`:\"\"}`;default:return `${n}${e.cyan(o)} ${r}\n${e.cyan(d)}\n`}}}).prompt(),ye=t=>{const n=t.active??\"Yes\",s=t.inactive??\"No\";return new fD({active:n,inactive:s,initialValue:t.initialValue??true,render(){const r=`${e.gray(o)}\n${w(this.state)} ${t.message}\n`,i=this.value?n:s;switch(this.state){case \"submit\":return `${r}${e.gray(o)} ${e.dim(i)}`;case \"cancel\":return `${r}${e.gray(o)} ${e.strikethrough(e.dim(i))}\n${e.gray(o)}`;default:return `${r}${e.cyan(o)} ${this.value?`${e.green(k)} ${n}`:`${e.dim(P)} ${e.dim(n)}`} ${e.dim(\"/\")} ${this.value?`${e.dim(P)} ${e.dim(s)}`:`${e.green(k)} ${s}`}\n${e.cyan(d)}\n`}}}).prompt()},ve=t=>{const n=(s,r)=>{const i=s.label??String(s.value);switch(r){case \"selected\":return `${e.dim(i)}`;case \"active\":return `${e.green(k)} ${i} ${s.hint?e.dim(`(${s.hint})`):\"\"}`;case \"cancelled\":return `${e.strikethrough(e.dim(i))}`;default:return `${e.dim(P)} ${e.dim(i)}`}};return new jD({options:t.options,initialValue:t.initialValue,render(){const s=`${e.gray(o)}\n${w(this.state)} ${t.message}\n`;switch(this.state){case \"submit\":return `${s}${e.gray(o)} ${n(this.options[this.cursor],\"selected\")}`;case \"cancel\":return `${s}${e.gray(o)} ${n(this.options[this.cursor],\"cancelled\")}\n${e.gray(o)}`;default:return `${s}${e.cyan(o)} ${B({cursor:this.cursor,options:this.options,maxItems:t.maxItems,style:(r,i)=>n(r,i?\"active\":\"inactive\")}).join(`\n${e.cyan(o)} `)}\n${e.cyan(d)}\n`}}}).prompt()},fe=t=>{const n=(s,r)=>{const i=s.label??String(s.value);return r===\"active\"?`${e.cyan(A)} ${i} ${s.hint?e.dim(`(${s.hint})`):\"\"}`:r===\"selected\"?`${e.green(T)} ${e.dim(i)}`:r===\"cancelled\"?`${e.strikethrough(e.dim(i))}`:r===\"active-selected\"?`${e.green(T)} ${i} ${s.hint?e.dim(`(${s.hint})`):\"\"}`:r===\"submitted\"?`${e.dim(i)}`:`${e.dim(F)} ${e.dim(i)}`};return new wD({options:t.options,initialValues:t.initialValues,required:t.required??true,cursorAt:t.cursorAt,validate(s){if(this.required&&s.length===0)return `Please select at least one option.\n${e.reset(e.dim(`Press ${e.gray(e.bgWhite(e.inverse(\" space \")))} to select, ${e.gray(e.bgWhite(e.inverse(\" enter \")))} to submit`))}`},render(){const s=`${e.gray(o)}\n${w(this.state)} ${t.message}\n`,r=(i,a)=>{const c=this.value.includes(i.value);return a&&c?n(i,\"active-selected\"):c?n(i,\"selected\"):n(i,a?\"active\":\"inactive\")};switch(this.state){case \"submit\":return `${s}${e.gray(o)} ${this.options.filter(({value:i})=>this.value.includes(i)).map(i=>n(i,\"submitted\")).join(e.dim(\", \"))||e.dim(\"none\")}`;case \"cancel\":{const i=this.options.filter(({value:a})=>this.value.includes(a)).map(a=>n(a,\"cancelled\")).join(e.dim(\", \"));return `${s}${e.gray(o)} ${i.trim()?`${i}\n${e.gray(o)}`:\"\"}`}case \"error\":{const i=this.error.split(`\n`).map((a,c)=>c===0?`${e.yellow(d)} ${e.yellow(a)}`:` ${a}`).join(`\n`);return `${s+e.yellow(o)} ${B({options:this.options,cursor:this.cursor,maxItems:t.maxItems,style:r}).join(`\n${e.yellow(o)} `)}\n${i}\n`}default:return `${s}${e.cyan(o)} ${B({options:this.options,cursor:this.cursor,maxItems:t.maxItems,style:r}).join(`\n${e.cyan(o)} `)}\n${e.cyan(d)}\n`}}}).prompt()};`${e.gray(o)} `;\n\nconst kCancel = Symbol.for(\"cancel\");\nasync function prompt(message, opts = {}) {\n const handleCancel = (value) => {\n if (typeof value !== \"symbol\" || value.toString() !== \"Symbol(clack:cancel)\") {\n return value;\n }\n switch (opts.cancel) {\n case \"reject\": {\n const error = new Error(\"Prompt cancelled.\");\n error.name = \"ConsolaPromptCancelledError\";\n if (Error.captureStackTrace) {\n Error.captureStackTrace(error, prompt);\n }\n throw error;\n }\n case \"undefined\": {\n return void 0;\n }\n case \"null\": {\n return null;\n }\n case \"symbol\": {\n return kCancel;\n }\n default:\n case \"default\": {\n return opts.default ?? opts.initial;\n }\n }\n };\n if (!opts.type || opts.type === \"text\") {\n return await he({\n message,\n defaultValue: opts.default,\n placeholder: opts.placeholder,\n initialValue: opts.initial\n }).then(handleCancel);\n }\n if (opts.type === \"confirm\") {\n return await ye({\n message,\n initialValue: opts.initial\n }).then(handleCancel);\n }\n if (opts.type === \"select\") {\n return await ve({\n message,\n options: opts.options.map(\n (o) => typeof o === \"string\" ? { value: o, label: o } : o\n ),\n initialValue: opts.initial\n }).then(handleCancel);\n }\n if (opts.type === \"multiselect\") {\n return await fe({\n message,\n options: opts.options.map(\n (o) => typeof o === \"string\" ? { value: o, label: o } : o\n ),\n required: opts.required,\n initialValues: opts.initial\n }).then(handleCancel);\n }\n throw new Error(`Unknown prompt type: ${opts.type}`);\n}\n\nexport { kCancel, prompt };\n"],"x_google_ignoreList":[0],"mappings":"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,SAAO,SAAO,KAAG,KAAG,SAAO,SAAO,KAAG,KAAG,SAAO,SAAO,KAAG,KAAG,SAAO,SAAO,KAAG,KAAG,SAAO,SAAO,KAAG,KAAG,SAAO,SAAO,KAAG,KAAG,SAAO,UAAQ,KAAG,KAAG,UAAQ,UAAQ,KAAG,KAAG,UAAQ,UAAQ,KAAG,KAAG,UAAQ,UAAQ,KAAG,KAAG,UAAQ,UAAQ,KAAG,KAAG,UAAQ,UAAQ,KAAG,KAAG,UAAQ,UAAQ,KAAG,KAAG,UAAQ,UAAQ,KAAG,KAAG,SAAO,MAAI,MAAI,KAAG,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,SAAO,KAAG,KAAG,SAAO,SAAO,KAAG,KAAG,QAAM,OAAK,KAAG,OAAK,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,OAAK,KAAG,KAAG,OAAK,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,KAAG,QAAM,QAAM,KAAG,KAAG,QAAM,KAAG,SAAO,KAAG,SAAO,SAAO,KAAG,KAAG,SAAO,SAAO,KAAG,KAAG,SAAO,SAAO,KAAG,KAAG,SAAO,SAAO,KAAG,KAAG,SAAO,SAAO,KAAG,KAAG,SAAO,KAAG,SAAO,UAAQ,KAAG,KAAG,UAAQ,UAAQ,KAAG,KAAG,UAAQ,UAAQ,KAAG,KAAG,UAAQ,UAAQ,KAAG,KAAG,UAAQ,UAAQ,KAAG,KAAG,UAAQ,UAAQ,KAAG,KAAG,WAAS,WAAS,KAAG,KAAG,UAAQ,MAAI;CAAG,GAAE,EAAE,kBAAgB,SAAS,GAAE;EAAC,IAAI,IAAE,KAAK,eAAe,CAAC;EAAE,OAAO,KAAG,OAAK,KAAG,OAAK,KAAG,MAAI,IAAE;CAAC;CAAE,SAAS,EAAE,GAAE;EAAC,OAAO,EAAE,MAAM,kDAAkD,KAAG,CAAC;CAAC;CAAC,EAAE,SAAO,SAAS,GAAE;EAAC,KAAI,IAAI,IAAE,EAAE,CAAC,GAAE,IAAE,GAAE,IAAE,GAAE,IAAE,EAAE,QAAO,KAAI,IAAE,IAAE,KAAK,gBAAgB,EAAE,EAAE;EAAE,OAAO;CAAC,GAAE,EAAE,QAAM,SAAS,GAAE,GAAE,GAAE;EAAC,UAAQ,EAAE,OAAO,CAAC,GAAE,IAAE,KAAG,GAAE,IAAE,KAAG,GAAE,IAAE,MAAI,IAAE,UAAQ,IAAG,IAAE,MAAI,IAAE,UAAQ;EAAG,KAAI,IAAI,IAAE,IAAG,IAAE,GAAE,IAAE,EAAE,CAAC,GAAE,IAAE,GAAE,IAAE,EAAE,QAAO,KAAI;GAAC,IAAI,IAAE,EAAE,IAAG,IAAE,EAAE,OAAO,CAAC;GAAE,IAAG,KAAG,KAAG,KAAG,IAAE,IAAE,IAAG,IAAG,IAAE,KAAG,GAAE,KAAG;QAAO;GAAM,KAAG;EAAE;EAAC,OAAO;CAAC;AAAE,GAAG,GAAG;AAAE,IAAI,IAAE,IAAI;AAAQ,MAAM,KAAG,EAAE,CAAC;AAAE,IAAI,KAAG,WAAU;CAAC,OAAO;AAAgye;AAAE,MAAM,KAAG,EAAE,EAAE;AAAE,SAAS,IAAI,GAAE,IAAE,CAAC,GAAE;CAAC,IAAG,OAAO,KAAG,YAAU,EAAE,WAAS,MAAI,IAAE;EAAC,mBAAkB;EAAK,GAAG;CAAC,GAAE,IAAE,IAAI,CAAC,GAAE,EAAE,WAAS,IAAG,OAAO;CAAE,IAAE,EAAE,QAAQ,GAAG,GAAE,IAAI;CAAE,MAAM,IAAE,EAAE,oBAAkB,IAAE;CAAE,IAAI,IAAE;CAAE,KAAI,MAAM,KAAK,GAAE;EAAC,MAAM,IAAE,EAAE,YAAY,CAAC;EAAE,IAAG,KAAG,MAAI,KAAG,OAAK,KAAG,OAAK,KAAG,OAAK,KAAG,KAAI;EAAS,QAAO,GAAG,eAAe,CAAC,GAA1B;GAA6B,KAAK;GAAI,KAAK;IAAI,KAAG;IAAE;GAAM,KAAK;IAAI,KAAG;IAAE;GAAM,SAAQ,KAAG;EAAE;CAAC;CAAC,OAAO;AAAC;AAAC,MAAM,IAAE,IAAG,OAAK,IAAE,OAAI,MAAG,QAAQ,IAAE,EAAE,IAAG,KAAG,IAAE,OAAI,MAAG,QAAQ,KAAG,EAAE,KAAK,EAAE,IAAG,KAAG,IAAE,OAAK,GAAE,GAAE,MAAI,QAAQ,KAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAG,IAAE;CAAC,UAAS;EAAC,OAAM,CAAC,GAAE,CAAC;EAAE,MAAK,CAAC,GAAE,EAAE;EAAE,KAAI,CAAC,GAAE,EAAE;EAAE,QAAO,CAAC,GAAE,EAAE;EAAE,WAAU,CAAC,GAAE,EAAE;EAAE,UAAS,CAAC,IAAG,EAAE;EAAE,SAAQ,CAAC,GAAE,EAAE;EAAE,QAAO,CAAC,GAAE,EAAE;EAAE,eAAc,CAAC,GAAE,EAAE;CAAC;CAAE,OAAM;EAAC,OAAM,CAAC,IAAG,EAAE;EAAE,KAAI,CAAC,IAAG,EAAE;EAAE,OAAM,CAAC,IAAG,EAAE;EAAE,QAAO,CAAC,IAAG,EAAE;EAAE,MAAK,CAAC,IAAG,EAAE;EAAE,SAAQ,CAAC,IAAG,EAAE;EAAE,MAAK,CAAC,IAAG,EAAE;EAAE,OAAM,CAAC,IAAG,EAAE;EAAE,aAAY,CAAC,IAAG,EAAE;EAAE,MAAK,CAAC,IAAG,EAAE;EAAE,MAAK,CAAC,IAAG,EAAE;EAAE,WAAU,CAAC,IAAG,EAAE;EAAE,aAAY,CAAC,IAAG,EAAE;EAAE,cAAa,CAAC,IAAG,EAAE;EAAE,YAAW,CAAC,IAAG,EAAE;EAAE,eAAc,CAAC,IAAG,EAAE;EAAE,YAAW,CAAC,IAAG,EAAE;EAAE,aAAY,CAAC,IAAG,EAAE;CAAC;CAAE,SAAQ;EAAC,SAAQ,CAAC,IAAG,EAAE;EAAE,OAAM,CAAC,IAAG,EAAE;EAAE,SAAQ,CAAC,IAAG,EAAE;EAAE,UAAS,CAAC,IAAG,EAAE;EAAE,QAAO,CAAC,IAAG,EAAE;EAAE,WAAU,CAAC,IAAG,EAAE;EAAE,QAAO,CAAC,IAAG,EAAE;EAAE,SAAQ,CAAC,IAAG,EAAE;EAAE,eAAc,CAAC,KAAI,EAAE;EAAE,QAAO,CAAC,KAAI,EAAE;EAAE,QAAO,CAAC,KAAI,EAAE;EAAE,aAAY,CAAC,KAAI,EAAE;EAAE,eAAc,CAAC,KAAI,EAAE;EAAE,gBAAe,CAAC,KAAI,EAAE;EAAE,cAAa,CAAC,KAAI,EAAE;EAAE,iBAAgB,CAAC,KAAI,EAAE;EAAE,cAAa,CAAC,KAAI,EAAE;EAAE,eAAc,CAAC,KAAI,EAAE;CAAC;AAAC;AAAE,OAAO,KAAK,EAAE,QAAQ;AAAE,MAAM,KAAG,OAAO,KAAK,EAAE,KAAK,GAAE,KAAG,OAAO,KAAK,EAAE,OAAO;AAAE,CAAC,GAAG,IAAG,GAAG,EAAE;AAAE,SAAS,KAAI;CAAC,MAAM,oBAAE,IAAI,IAAE;CAAE,KAAI,MAAK,CAAC,GAAE,MAAK,OAAO,QAAQ,CAAC,GAAE;EAAC,KAAI,MAAK,CAAC,GAAE,MAAK,OAAO,QAAQ,CAAC,GAAE,EAAE,KAAG;GAAC,MAAK,QAAQ,EAAE,GAAG;GAAG,OAAM,QAAQ,EAAE,GAAG;EAAE,GAAE,EAAE,KAAG,EAAE,IAAG,EAAE,IAAI,EAAE,IAAG,EAAE,EAAE;EAAE,OAAO,eAAe,GAAE,GAAE;GAAC,OAAM;GAAE,YAAW;EAAK,CAAC;CAAE;CAAC,OAAO,OAAO,eAAe,GAAE,SAAQ;EAAC,OAAM;EAAE,YAAW;CAAK,CAAC,GAAE,EAAE,MAAM,QAAM,YAAW,EAAE,QAAQ,QAAM,YAAW,EAAE,MAAM,OAAK,IAAI,GAAE,EAAE,MAAM,UAAQ,EAAE,GAAE,EAAE,MAAM,UAAQ,EAAE,GAAE,EAAE,QAAQ,OAAK,IAAI,CAAC,GAAE,EAAE,QAAQ,UAAQ,EAAE,CAAC,GAAE,EAAE,QAAQ,UAAQ,EAAE,CAAC,GAAE,OAAO,iBAAiB,GAAE;EAAC,cAAa;GAAC,QAAO,GAAE,GAAE,MAAI,MAAI,KAAG,MAAI,IAAE,IAAE,IAAE,KAAG,IAAE,MAAI,MAAI,KAAK,OAAO,IAAE,KAAG,MAAI,EAAE,IAAE,MAAI,KAAG,KAAG,KAAK,MAAM,IAAE,MAAI,CAAC,IAAE,IAAE,KAAK,MAAM,IAAE,MAAI,CAAC,IAAE,KAAK,MAAM,IAAE,MAAI,CAAC;GAAE,YAAW;EAAK;EAAE,UAAS;GAAC,QAAM,MAAG;IAAC,MAAM,IAAE,yBAAyB,KAAK,EAAE,SAAS,EAAE,CAAC;IAAE,IAAG,CAAC,GAAE,OAAO;KAAC;KAAE;KAAE;IAAC;IAAE,IAAG,CAAC,KAAG;IAAE,EAAE,WAAS,MAAI,IAAE,CAAC,GAAG,CAAC,EAAE,KAAI,MAAG,IAAE,CAAC,EAAE,KAAK,EAAE;IAAG,MAAM,IAAE,OAAO,SAAS,GAAE,EAAE;IAAE,OAAO;KAAC,KAAG,KAAG;KAAI,KAAG,IAAE;KAAI,IAAE;IAAG;GAAC;GAAE,YAAW;EAAK;EAAE,cAAa;GAAC,QAAM,MAAG,EAAE,aAAa,GAAG,EAAE,SAAS,CAAC,CAAC;GAAE,YAAW;EAAK;EAAE,eAAc;GAAC,QAAM,MAAG;IAAC,IAAG,IAAE,GAAE,OAAO,KAAG;IAAE,IAAG,IAAE,IAAG,OAAO,MAAI,IAAE;IAAG,IAAI,GAAE,GAAE;IAAE,IAAG,KAAG,KAAI,MAAI,IAAE,OAAK,KAAG,KAAG,KAAI,IAAE,GAAE,IAAE;SAAO;KAAC,KAAG;KAAG,MAAM,IAAE,IAAE;KAAG,IAAE,KAAK,MAAM,IAAE,EAAE,IAAE,GAAE,IAAE,KAAK,MAAM,IAAE,CAAC,IAAE,GAAE,IAAE,IAAE,IAAE;IAAE;IAAC,MAAM,IAAE,KAAK,IAAI,GAAE,GAAE,CAAC,IAAE;IAAE,IAAG,MAAI,GAAE,OAAO;IAAG,IAAI,IAAE,MAAI,KAAK,MAAM,CAAC,KAAG,IAAE,KAAK,MAAM,CAAC,KAAG,IAAE,KAAK,MAAM,CAAC;IAAG,OAAO,MAAI,MAAI,KAAG,KAAI;GAAC;GAAE,YAAW;EAAK;EAAE,WAAU;GAAC,QAAO,GAAE,GAAE,MAAI,EAAE,cAAc,EAAE,aAAa,GAAE,GAAE,CAAC,CAAC;GAAE,YAAW;EAAK;EAAE,WAAU;GAAC,QAAM,MAAG,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;GAAE,YAAW;EAAK;CAAC,CAAC,GAAE;AAAC;AAAC,MAAM,KAAG,GAAG,GAAE,IAAE,IAAI,IAAI,CAAC,QAAO,GAAM,CAAC,GAAE,KAAG,IAAG,MAAI,QAAO,MAAI,KAAI,KAAG,KAAI,IAAE,KAAI,IAAE,GAAG,GAAG,MAAK,OAAI,MAAG,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,MAAM,IAAI,KAAI,KAAE,MAAG,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,IAAI,IAAI,OAAM,MAAG,MAAG,EAAE,MAAM,GAAG,EAAE,KAAI,MAAG,IAAI,CAAC,CAAC,GAAE,KAAG,GAAE,GAAE,MAAI;CAAC,MAAM,IAAE,CAAC,GAAG,CAAC;CAAE,IAAI,IAAE,OAAM,IAAE,OAAM,IAAE,IAAI,IAAI,EAAE,EAAE,SAAO,EAAE,CAAC;CAAE,KAAI,MAAK,CAAC,GAAE,MAAK,EAAE,QAAQ,GAAE;EAAC,MAAM,IAAE,IAAI,CAAC;EAAE,IAAG,IAAE,KAAG,IAAE,EAAE,EAAE,SAAO,MAAI,KAAG,EAAE,KAAK,CAAC,GAAE,IAAE,IAAG,EAAE,IAAI,CAAC,MAAI,IAAE,MAAK,IAAE,EAAE,MAAM,IAAE,CAAC,EAAE,KAAK,EAAE,EAAE,WAAW,CAAC,IAAG,GAAE;GAAC,IAAE,MAAI,QAAM,IAAE,OAAM,IAAE,SAAO,MAAI,MAAI,IAAE;GAAO;EAAQ;EAAC,KAAG,GAAE,MAAI,KAAG,IAAE,EAAE,SAAO,MAAI,EAAE,KAAK,EAAE,GAAE,IAAE;CAAG;CAAC,CAAC,KAAG,EAAE,EAAE,SAAO,GAAG,SAAO,KAAG,EAAE,SAAO,MAAI,EAAE,EAAE,SAAO,MAAI,EAAE,IAAI;AAAG,GAAE,MAAG,MAAG;CAAC,MAAM,IAAE,EAAE,MAAM,GAAG;CAAE,IAAI,IAAE,EAAE;CAAO,OAAK,IAAE,KAAG,EAAE,IAAI,EAAE,IAAE,EAAE,IAAE,KAAI;CAAI,OAAO,MAAI,EAAE,SAAO,IAAE,EAAE,MAAM,GAAE,CAAC,EAAE,KAAK,GAAG,IAAE,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE;AAAC,GAAE,MAAI,GAAE,GAAE,IAAE,CAAC,MAAI;CAAC,IAAG,EAAE,SAAO,SAAO,EAAE,KAAK,MAAI,IAAG,OAAO;CAAG,IAAI,IAAE,IAAG,GAAE;CAAE,MAAM,IAAE,GAAG,CAAC;CAAE,IAAI,IAAE,CAAC,EAAE;CAAE,KAAI,MAAK,CAAC,GAAE,MAAK,EAAE,MAAM,GAAG,EAAE,QAAQ,GAAE;EAAC,EAAE,SAAO,UAAQ,EAAE,EAAE,SAAO,KAAG,EAAE,EAAE,SAAO,GAAG,UAAU;EAAG,IAAI,IAAE,IAAI,EAAE,EAAE,SAAO,EAAE;EAAE,IAAG,MAAI,MAAI,KAAG,MAAI,EAAE,aAAW,SAAO,EAAE,SAAO,WAAS,EAAE,KAAK,EAAE,GAAE,IAAE,KAAI,IAAE,KAAG,EAAE,SAAO,WAAS,EAAE,EAAE,SAAO,MAAI,KAAI,OAAM,EAAE,QAAM,EAAE,KAAG,GAAE;GAAC,MAAM,IAAE,IAAE,GAAE,IAAE,IAAE,KAAK,OAAO,EAAE,KAAG,IAAE,KAAG,CAAC;GAAE,KAAK,OAAO,EAAE,KAAG,KAAG,CAAC,IAAE,KAAG,EAAE,KAAK,EAAE,GAAE,EAAE,GAAE,GAAE,CAAC;GAAE;EAAQ;EAAC,IAAG,IAAE,EAAE,KAAG,KAAG,IAAE,KAAG,EAAE,KAAG,GAAE;GAAC,IAAG,EAAE,aAAW,SAAO,IAAE,GAAE;IAAC,EAAE,GAAE,GAAE,CAAC;IAAE;GAAQ;GAAC,EAAE,KAAK,EAAE;EAAE;EAAC,IAAG,IAAE,EAAE,KAAG,KAAG,EAAE,aAAW,OAAM;GAAC,EAAE,GAAE,GAAE,CAAC;GAAE;EAAQ;EAAC,EAAE,EAAE,SAAO,MAAI;CAAE;CAAC,EAAE,SAAO,UAAQ,IAAE,EAAE,KAAI,MAAG,GAAG,CAAC,CAAC;CAAG,MAAM,IAAE,CAAC,GAAG,EAAE,KAAK;CACznwB,CAAC;CAAE,KAAI,MAAK,CAAC,GAAE,MAAK,EAAE,QAAQ,GAAE;EAAC,IAAG,KAAG,GAAE,EAAE,IAAI,CAAC,GAAE;GAAC,MAAK,EAAC,QAAO,MAAG,IAAI,OAAO,QAAQ,IAAI,mBAAmB,EAAE,YAAY,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,KAAG,EAAC,QAAO,CAAC,EAAC;GAAE,IAAG,EAAE,SAAO,KAAK,GAAE;IAAC,MAAM,IAAE,OAAO,WAAW,EAAE,IAAI;IAAE,IAAE,MAAI,KAAG,KAAK,IAAE;GAAE,OAAM,EAAE,QAAM,KAAK,MAAI,IAAE,EAAE,IAAI,WAAS,IAAE,KAAK,IAAE,EAAE;EAAK;EAAC,MAAM,IAAE,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC;EAAE,EAAE,IAAE,OAAK;KAClV,MAAI,KAAG,EAAE,EAAE,IAAG,KAAG,MAAI,KAAG,IAAI,CAAC,MAAI,MAAI;MACpC,KAAG,MAAI,KAAG,IAAI,CAAC,IAAG,MAAI,KAAG,EAAE,CAAC;CAAI;CAAC,OAAO;AAAC;AAAE,SAASA,IAAE,GAAE,GAAE,GAAE;CAAC,OAAO,OAAO,CAAC,EAAE,UAAU,EAAE,QAAQ,SAAQ;CAC7G,EAAE,MAAM;CACR,EAAE,KAAI,MAAG,GAAG,GAAE,GAAE,CAAC,CAAC,EAAE,KAAK;CACzB;AAAC;AAAC,MAA+D,IAAE;CAAC,SAAQ,IAAI,IAAI;EAAxE;EAAK;EAAO;EAAO;EAAQ;EAAQ;EAAQ;CAA8B,CAAC;CAAE,SAAQ,IAAI,IAAI;EAAC,CAAC,KAAI,IAAI;EAAE,CAAC,KAAI,MAAM;EAAE,CAAC,KAAI,MAAM;EAAE,CAAC,KAAI,OAAO;EAAE,CAAC,KAAI,QAAQ;EAAE,CAAC,UAAS,QAAQ;CAAC,CAAC;AAAC;AAAE,SAAS,IAAI,GAAE,GAAE;CAAC,IAAG,OAAO,KAAG,UAAS,OAAO,EAAE,QAAQ,IAAI,CAAC,MAAI;CAAE,KAAI,MAAM,KAAK,GAAE,IAAG,MAAI,KAAK,KAAG,IAAI,GAAE,CAAC,GAAE,OAAQ;CAAK,OAAQ;AAAK;AAAC,SAAS,GAAG,GAAE,GAAE;CAAC,IAAG,MAAI,GAAE;CAAO,MAAM,IAAE,EAAE,MAAM;CAC3X,GAAE,IAAE,EAAE,MAAM;CACZ,GAAE,IAAE,CAAC;CAAE,KAAI,IAAI,IAAE,GAAE,IAAE,KAAK,IAAI,EAAE,QAAO,EAAE,MAAM,GAAE,KAAI,EAAE,OAAK,EAAE,MAAI,EAAE,KAAK,CAAC;CAAE,OAAO;AAAC;AAAC,WAAW,QAAQ,SAAS,WAAW,KAAK;AAAE,MAAM,IAAE,OAAO,cAAc;AAAE,SAAS,IAAI,GAAE,GAAE;CAAC,MAAM,IAAE;CAAE,EAAE,SAAO,EAAE,WAAW,CAAC;AAAE;AAAC,IAAI,KAAG,OAAO,gBAAe,MAAI,GAAE,GAAE,MAAI,KAAK,IAAE,GAAG,GAAE,GAAE;CAAC,YAAW;CAAK,cAAa;CAAK,UAAS;CAAK,OAAM;AAAC,CAAC,IAAE,EAAE,KAAG,GAAE,KAAG,GAAE,GAAE,OAAK,GAAG,GAAE,OAAO,KAAG,WAAS,IAAE,KAAG,GAAE,CAAC,GAAE;AAAG,IAAM,IAAN,MAAO;CAAC,YAAY,GAAE,IAAE,MAAK;EAAC,EAAE,MAAK,OAAO,GAAE,EAAE,MAAK,QAAQ,GAAE,EAAE,MAAK,cAAc,GAAE,EAAE,MAAK,IAAI,GAAE,EAAE,MAAK,MAAM,GAAE,EAAE,MAAK,SAAS,GAAE,EAAE,MAAK,UAAS,KAAK,GAAE,EAAE,MAAK,cAAa,EAAE,GAAE,EAAE,MAAK,gCAAe,IAAI,IAAE,CAAC,GAAE,EAAE,MAAK,WAAU,CAAC,GAAE,EAAE,MAAK,SAAQ,SAAS,GAAE,EAAE,MAAK,SAAQ,EAAE,GAAE,EAAE,MAAK,OAAO;EAAE,MAAK,EAAC,OAAM,IAAE,OAAM,QAAO,IAAE,QAAO,QAAO,GAAE,QAAO,GAAE,GAAG,MAAG;EAAE,KAAK,OAAK,GAAE,KAAK,aAAW,KAAK,WAAW,KAAK,IAAI,GAAE,KAAK,QAAM,KAAK,MAAM,KAAK,IAAI,GAAE,KAAK,SAAO,KAAK,OAAO,KAAK,IAAI,GAAE,KAAK,UAAQ,EAAE,KAAK,IAAI,GAAE,KAAK,SAAO,GAAE,KAAK,eAAa,GAAE,KAAK,QAAM,GAAE,KAAK,SAAO;CAAE;CAAC,cAAa;EAAC,KAAK,aAAa,MAAM;CAAE;CAAC,cAAc,GAAE,GAAE;EAAC,MAAM,IAAE,KAAK,aAAa,IAAI,CAAC,KAAG,CAAC;EAAE,EAAE,KAAK,CAAC,GAAE,KAAK,aAAa,IAAI,GAAE,CAAC;CAAE;CAAC,GAAG,GAAE,GAAE;EAAC,KAAK,cAAc,GAAE,EAAC,IAAG,EAAC,CAAC;CAAE;CAAC,KAAK,GAAE,GAAE;EAAC,KAAK,cAAc,GAAE;GAAC,IAAG;GAAE,MAAK;EAAI,CAAC;CAAE;CAAC,KAAK,GAAE,GAAG,GAAE;EAAC,MAAM,IAAE,KAAK,aAAa,IAAI,CAAC,KAAG,CAAC,GAAE,IAAE,CAAC;EAAE,KAAI,MAAM,KAAK,GAAE,EAAE,GAAG,GAAG,CAAC,GAAE,EAAE,QAAM,EAAE,WAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAE,CAAC,CAAC;EAAE,KAAI,MAAM,KAAK,GAAE,EAAE;CAAE;CAAC,SAAQ;EAAC,OAAO,IAAI,SAAS,GAAE,MAAI;GAAC,IAAG,KAAK,cAAa;IAAC,IAAG,KAAK,aAAa,SAAQ,OAAO,KAAK,QAAM,UAAS,KAAK,MAAM,GAAE,EAAE,CAAC;IAAE,KAAK,aAAa,iBAAiB,eAAY;KAAC,KAAK,QAAM,UAAS,KAAK,MAAM;IAAE,GAAE,EAAC,MAAK,KAAI,CAAC;GAAE;GAAC,MAAM,IAAE,IAAI,YAAY,CAAC;GAAE,EAAE,UAAQ,GAAE,GAAE,MAAI;IAAC,KAAK,WAAS,KAAK,QAAM,KAAK,IAAI,KAAK,QAAQ,OAAM,EAAE,GAAE,KAAK,UAAQ,KAAK,IAAI,UAAQ,GAAE,KAAK,KAAK,SAAQ,KAAK,KAAK,IAAG,EAAE;GAAE,GAAE,KAAK,MAAM,KAAK,CAAC,GAAE,KAAK,KAAGC,EAAE,gBAAgB;IAAC,OAAM,KAAK;IAAM,QAAO;IAAE,SAAQ;IAAE,QAAO;IAAG,mBAAkB;GAAE,CAAC,GAAEA,EAAE,mBAAmB,KAAK,OAAM,KAAK,EAAE,GAAE,KAAK,GAAG,OAAO,GAAE,KAAK,KAAK,iBAAe,KAAK,KAAG,KAAK,UAAQ,KAAK,GAAG,MAAM,KAAK,KAAK,YAAY,GAAE,KAAK,MAAM,GAAG,YAAW,KAAK,UAAU,GAAE,IAAI,KAAK,OAAM,IAAI,GAAE,KAAK,OAAO,GAAG,UAAS,KAAK,MAAM,GAAE,KAAK,OAAO,GAAE,KAAK,KAAK,gBAAa;IAAC,KAAK,OAAO,MAAM,WAAW,OAAO,IAAI,GAAE,KAAK,OAAO,IAAI,UAAS,KAAK,MAAM,GAAE,IAAI,KAAK,OAAM,KAAK,GAAE,EAAE,KAAK,KAAK;GAAE,CAAC,GAAE,KAAK,KAAK,gBAAa;IAAC,KAAK,OAAO,MAAM,WAAW,OAAO,IAAI,GAAE,KAAK,OAAO,IAAI,UAAS,KAAK,MAAM,GAAE,IAAI,KAAK,OAAM,KAAK,GAAE,EAAE,CAAC;GAAE,CAAC;EAAE,CAAC;CAAC;CAAC,WAAW,GAAE,GAAE;EAAC,IAAG,KAAK,UAAQ,YAAU,KAAK,QAAM,WAAU,GAAG,SAAO,CAAC,KAAK,UAAQ,EAAE,QAAQ,IAAI,EAAE,IAAI,KAAG,KAAK,KAAK,UAAS,EAAE,QAAQ,IAAI,EAAE,IAAI,CAAC,GAAE,EAAE,QAAQ,IAAI,EAAE,IAAI,KAAG,KAAK,KAAK,UAAS,EAAE,IAAI,IAAG,MAAI,EAAE,YAAY,MAAI,OAAK,EAAE,YAAY,MAAI,QAAM,KAAK,KAAK,WAAU,EAAE,YAAY,MAAI,GAAG,GAAE,MAAI,OAAK,KAAK,KAAK,gBAAc,KAAK,UAAQ,KAAK,IAAI,MAAM,KAAK,KAAK,WAAW,GAAE,KAAK,KAAK,SAAQ,KAAK,KAAK,WAAW,KAAI,KAAG,KAAK,KAAK,OAAM,EAAE,YAAY,CAAC,GAAE,GAAG,SAAO,UAAS;GAAC,IAAG,KAAK,KAAK,UAAS;IAAC,MAAM,IAAE,KAAK,KAAK,SAAS,KAAK,KAAK;IAAE,MAAI,KAAK,QAAM,aAAa,QAAM,EAAE,UAAQ,GAAE,KAAK,QAAM,SAAQ,KAAK,IAAI,MAAM,KAAK,KAAK;GAAG;GAAC,KAAK,UAAQ,YAAU,KAAK,QAAM;EAAU;EAAC,IAAI;GAAC;GAAE,GAAG;GAAK,GAAG;EAAQ,GAAE,QAAQ,MAAI,KAAK,QAAM,YAAW,KAAK,UAAQ,YAAU,KAAK,UAAQ,aAAW,KAAK,KAAK,UAAU,GAAE,KAAK,OAAO,IAAG,KAAK,UAAQ,YAAU,KAAK,UAAQ,aAAW,KAAK,MAAM;CAAE;CAAC,QAAO;EAAC,KAAK,MAAM,OAAO,GAAE,KAAK,MAAM,eAAe,YAAW,KAAK,UAAU,GAAE,KAAK,OAAO,MAAM;CACnyG,GAAE,IAAI,KAAK,OAAM,KAAK,GAAE,KAAK,IAAI,MAAM,GAAE,KAAK,KAAG,KAAK,GAAE,KAAK,KAAK,GAAG,KAAK,SAAQ,KAAK,KAAK,GAAE,KAAK,YAAY;CAAE;CAAC,gBAAe;EAAC,MAAM,IAAED,IAAE,KAAK,YAAW,QAAQ,OAAO,SAAQ,EAAC,MAAK,KAAI,CAAC,EAAE,MAAM;CACtM,EAAE,SAAO;EAAE,KAAK,OAAO,MAAM,WAAW,OAAO,KAAK,MAAK,IAAE,EAAE,CAAC;CAAE;CAAC,SAAQ;EAAC,MAAM,IAAEA,IAAE,KAAK,QAAQ,IAAI,KAAG,IAAG,QAAQ,OAAO,SAAQ,EAAC,MAAK,KAAI,CAAC;EAAE,IAAG,MAAI,KAAK,YAAW;GAAC,IAAG,KAAK,UAAQ,WAAU,KAAK,OAAO,MAAM,WAAW,OAAO,IAAI;QAAO;IAAC,MAAM,IAAE,GAAG,KAAK,YAAW,CAAC;IAAE,IAAG,KAAK,cAAc,GAAE,KAAG,GAAG,WAAS,GAAE;KAAC,MAAM,IAAE,EAAE;KAAG,KAAK,OAAO,MAAM,WAAW,OAAO,KAAK,GAAE,CAAC,CAAC,GAAE,KAAK,OAAO,MAAM,WAAW,MAAM,MAAM,CAAC,CAAC;KAAE,MAAM,IAAE,EAAE,MAAM;CAClb;KAAE,KAAK,OAAO,MAAM,EAAE,EAAE,GAAE,KAAK,aAAW,GAAE,KAAK,OAAO,MAAM,WAAW,OAAO,KAAK,GAAE,EAAE,SAAO,IAAE,CAAC,CAAC;KAAE;IAAM;IAAC,IAAG,KAAG,GAAG,SAAO,GAAE;KAAC,MAAM,IAAE,EAAE;KAAG,KAAK,OAAO,MAAM,WAAW,OAAO,KAAK,GAAE,CAAC,CAAC,GAAE,KAAK,OAAO,MAAM,WAAW,MAAM,KAAK,CAAC;KAAE,MAAM,IAAE,EAAE,MAAM;CACvP,EAAE,MAAM,CAAC;KAAE,KAAK,OAAO,MAAM,EAAE,KAAK;CACpC,CAAC,GAAE,KAAK,aAAW;KAAE;IAAM;IAAC,KAAK,OAAO,MAAM,WAAW,MAAM,KAAK,CAAC;GAAE;GAAC,KAAK,OAAO,MAAM,CAAC,GAAE,KAAK,UAAQ,cAAY,KAAK,QAAM,WAAU,KAAK,aAAW;EAAE;CAAC;AAAC;AAAC,IAAM,KAAN,cAAiB,EAAC;CAAC,IAAI,SAAQ;EAAC,OAAO,KAAK,QAAM,IAAE;CAAC;CAAC,IAAI,SAAQ;EAAC,OAAO,KAAK,WAAS;CAAC;CAAC,YAAY,GAAE;EAAC,MAAM,GAAE,KAAK,GAAE,KAAK,QAAM,CAAC,CAAC,EAAE,cAAa,KAAK,GAAG,eAAY;GAAC,KAAK,QAAM,KAAK;EAAO,CAAC,GAAE,KAAK,GAAG,YAAU,MAAG;GAAC,KAAK,OAAO,MAAM,WAAW,OAAO,KAAK,GAAE,EAAE,CAAC,GAAE,KAAK,QAAM,GAAE,KAAK,QAAM,UAAS,KAAK,MAAM;EAAE,CAAC,GAAE,KAAK,GAAG,gBAAa;GAAC,KAAK,QAAM,CAAC,KAAK;EAAM,CAAC;CAAE;AAAC;AAAC,IAAI,KAAG,OAAO,gBAAe,MAAI,GAAE,GAAE,MAAI,KAAK,IAAE,GAAG,GAAE,GAAE;CAAC,YAAW;CAAK,cAAa;CAAK,UAAS;CAAK,OAAM;AAAC,CAAC,IAAE,EAAE,KAAG,GAAE,KAAG,GAAE,GAAE,OAAK,GAAG,GAAE,OAAO,KAAG,WAAS,IAAE,KAAG,GAAE,CAAC,GAAE;AAAG,IAAI,KAAG,cAAc,EAAC;CAAC,YAAY,GAAE;EAAC,MAAM,GAAE,KAAK,GAAE,EAAE,MAAK,SAAS,GAAE,EAAE,MAAK,UAAS,CAAC,GAAE,KAAK,UAAQ,EAAE,SAAQ,KAAK,QAAM,CAAC,GAAG,EAAE,iBAAe,CAAC,CAAC,GAAE,KAAK,SAAO,KAAK,IAAI,KAAK,QAAQ,WAAW,EAAC,OAAM,QAAK,MAAI,EAAE,QAAQ,GAAE,CAAC,GAAE,KAAK,GAAG,QAAM,MAAG;GAAC,MAAI,OAAK,KAAK,UAAU;EAAE,CAAC,GAAE,KAAK,GAAG,WAAS,MAAG;GAAC,QAAO,GAAP;IAAU,KAAK;IAAO,KAAK;KAAK,KAAK,SAAO,KAAK,WAAS,IAAE,KAAK,QAAQ,SAAO,IAAE,KAAK,SAAO;KAAE;IAAM,KAAK;IAAO,KAAK;KAAQ,KAAK,SAAO,KAAK,WAAS,KAAK,QAAQ,SAAO,IAAE,IAAE,KAAK,SAAO;KAAE;IAAM,KAAK;KAAQ,KAAK,YAAY;KAAE;GAAK;EAAC,CAAC;CAAE;CAAC,IAAI,SAAQ;EAAC,OAAO,KAAK,QAAQ,KAAK,QAAQ;CAAK;CAAC,YAAW;EAAC,MAAM,IAAE,KAAK,MAAM,WAAS,KAAK,QAAQ;EAAO,KAAK,QAAM,IAAE,CAAC,IAAE,KAAK,QAAQ,KAAI,MAAG,EAAE,KAAK;CAAE;CAAC,cAAa;EAAC,MAAM,IAAE,KAAK,MAAM,SAAS,KAAK,MAAM;EAAE,KAAK,QAAM,IAAE,KAAK,MAAM,QAAO,MAAG,MAAI,KAAK,MAAM,IAAE,CAAC,GAAG,KAAK,OAAM,KAAK,MAAM;CAAE;AAAC;AAAE,IAAI,KAAG,OAAO,gBAAe,MAAI,GAAE,GAAE,MAAI,KAAK,IAAE,GAAG,GAAE,GAAE;CAAC,YAAW;CAAK,cAAa;CAAK,UAAS;CAAK,OAAM;AAAC,CAAC,IAAE,EAAE,KAAG,GAAE,KAAG,GAAE,GAAE,OAAK,GAAG,GAAE,OAAO,KAAG,WAAS,IAAE,KAAG,GAAE,CAAC,GAAE;AAAG,IAAM,KAAN,cAAiB,EAAC;CAAC,YAAY,GAAE;EAAC,MAAM,GAAE,KAAK,GAAE,EAAE,MAAK,SAAS,GAAE,EAAE,MAAK,UAAS,CAAC,GAAE,KAAK,UAAQ,EAAE,SAAQ,KAAK,SAAO,KAAK,QAAQ,WAAW,EAAC,OAAM,QAAK,MAAI,EAAE,YAAY,GAAE,KAAK,WAAS,OAAK,KAAK,SAAO,IAAG,KAAK,YAAY,GAAE,KAAK,GAAG,WAAS,MAAG;GAAC,QAAO,GAAP;IAAU,KAAK;IAAO,KAAK;KAAK,KAAK,SAAO,KAAK,WAAS,IAAE,KAAK,QAAQ,SAAO,IAAE,KAAK,SAAO;KAAE;IAAM,KAAK;IAAO,KAAK;KAAQ,KAAK,SAAO,KAAK,WAAS,KAAK,QAAQ,SAAO,IAAE,IAAE,KAAK,SAAO;KAAE;GAAK;GAAC,KAAK,YAAY;EAAE,CAAC;CAAE;CAAC,IAAI,SAAQ;EAAC,OAAO,KAAK,QAAQ,KAAK;CAAO;CAAC,cAAa;EAAC,KAAK,QAAM,KAAK,OAAO;CAAM;AAAC;AAAC,IAAM,KAAN,cAAiB,EAAC;CAAC,IAAI,kBAAiB;EAAC,IAAG,KAAK,UAAQ,UAAS,OAAO,KAAK;EAAM,IAAG,KAAK,UAAQ,KAAK,MAAM,QAAO,OAAO,GAAG,KAAK,MAAM;EAAQ,MAAM,IAAE,KAAK,MAAM,MAAM,GAAE,KAAK,MAAM,GAAE,CAAC,GAAE,GAAG,OAAK,KAAK,MAAM,MAAM,KAAK,MAAM;EAAE,OAAO,GAAG,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,KAAK,EAAE;CAAG;CAAC,IAAI,SAAQ;EAAC,OAAO,KAAK;CAAO;CAAC,YAAY,GAAE;EAAC,MAAM,CAAC,GAAE,KAAK,GAAG,kBAAe;GAAC,KAAK,UAAQ,KAAK,QAAM,EAAE;EAAc,CAAC;CAAE;AAAC;AAE3lF,SAAS,KAAI;CAAC,OAAOE,EAAE,aAAW,UAAQA,EAAE,IAAI,SAAO,UAAQ,CAAC,CAACA,EAAE,IAAI,MAAI,CAAC,CAACA,EAAE,IAAI,cAAY,CAAC,CAACA,EAAE,IAAI,oBAAkBA,EAAE,IAAI,eAAa,kBAAgBA,EAAE,IAAI,iBAAe,sBAAoBA,EAAE,IAAI,iBAAe,YAAUA,EAAE,IAAI,SAAO,oBAAkBA,EAAE,IAAI,SAAO,eAAaA,EAAE,IAAI,sBAAoB;AAAoB;AAAC,MAAMC,MAAE,GAAG,GAAE,KAAG,GAAE,MAAIA,MAAE,IAAE,GAAE,KAAG,EAAE,KAAK,GAAG,GAAE,IAAE,EAAE,KAAK,GAAG,GAAE,IAAE,EAAE,KAAK,GAAG,GAAE,IAAE,EAAE,KAAK,GAAG,GAAE,IAAE,EAAE,EAAE,GAAE,IAAE,EAAE,EAAE,GAAE,IAAE,EAAE,KAAS,GAAG,GAAE,IAAE,EAAE,KAAS,GAAG,GAAE,IAAE,EAAE,KAAS,KAAU,GAAE,IAAE,EAAE,KAAS,KAAK,GAAE,IAAE,EAAE,KAAS,KAAK,GAAE,KAAE,MAAG;CAAC,QAAO,GAAP;EAAU,KAAK;EAAU,KAAK,UAAS,OAAO,EAAE,KAAK,EAAE;EAAE,KAAK,UAAS,OAAO,EAAE,IAAI,CAAC;EAAE,KAAK,SAAQ,OAAO,EAAE,OAAO,CAAC;EAAE,KAAK,UAAS,OAAO,EAAE,MAAM,CAAC;CAAC;AAAC,GAAE,KAAE,MAAG;CAAC,MAAK,EAAC,QAAO,GAAE,SAAQ,GAAE,OAAM,MAAG,GAAE,IAAE,EAAE,YAAU,OAAO,mBAAkB,IAAE,KAAK,IAAI,QAAQ,OAAO,OAAK,GAAE,CAAC,GAAE,IAAE,KAAK,IAAI,GAAE,KAAK,IAAI,GAAE,CAAC,CAAC;CAAE,IAAI,IAAE;CAAE,KAAG,IAAE,IAAE,IAAE,IAAE,KAAK,IAAI,KAAK,IAAI,IAAE,IAAE,GAAE,EAAE,SAAO,CAAC,GAAE,CAAC,IAAE,IAAE,IAAE,MAAI,IAAE,KAAK,IAAI,IAAE,GAAE,CAAC;CAAG,MAAM,IAAE,IAAE,EAAE,UAAQ,IAAE,GAAE,IAAE,IAAE,EAAE,UAAQ,IAAE,IAAE,EAAE;CAAO,OAAO,EAAE,MAAM,GAAE,IAAE,CAAC,EAAE,KAAK,GAAE,GAAE,MAAI;EAAC,MAAM,IAAE,MAAI,KAAG,GAAE,IAAE,MAAI,EAAE,SAAO,KAAG;EAAE,OAAO,KAAG,IAAE,EAAE,IAAI,KAAK,IAAE,EAAE,GAAE,IAAE,MAAI,CAAC;CAAC,CAAC;AAAC,GAAE,MAAG,MAAG,IAAI,GAAG;CAAC,UAAS,EAAE;CAAS,aAAY,EAAE;CAAY,cAAa,EAAE;CAAa,cAAa,EAAE;CAAa,SAAQ;EAAC,MAAM,IAAE,GAAG,EAAE,KAAK,CAAC,EAAE;EAChtC,EAAE,KAAK,KAAK,EAAE,GAAG,EAAE,QAAQ;GAC3B,IAAE,EAAE,cAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAE,EAAE,IAAI,EAAE,YAAY,MAAM,CAAC,CAAC,IAAE,EAAE,QAAQ,EAAE,OAAO,GAAG,CAAC,GAAE,IAAE,KAAK,QAAM,KAAK,kBAAgB;EAAE,QAAO,KAAK,OAAZ;GAAmB,KAAK,SAAQ,OAAO,GAAG,EAAE,KAAK,EAAE;EAC1L,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE;EACjB,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,KAAK,KAAK,EAAE;;GACpC,KAAK,UAAS,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,KAAK,SAAO,EAAE,WAAW;GAAI,KAAK,UAAS,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,KAAK,SAAO,EAAE,CAAC,IAAI,KAAK,OAAO,KAAK,IAAE;EACjL,EAAE,KAAK,CAAC,MAAI;GAAK,SAAQ,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE;EACtD,EAAE,KAAK,CAAC,EAAE;;EACX;CAAC;AAAC,CAAC,EAAE,OAAO,GAAE,MAAG,MAAG;CAAC,MAAM,IAAE,EAAE,UAAQ,OAAM,IAAE,EAAE,YAAU;CAAK,OAAO,IAAI,GAAG;EAAC,QAAO;EAAE,UAAS;EAAE,cAAa,EAAE,gBAAc;EAAK,SAAQ;GAAC,MAAM,IAAE,GAAG,EAAE,KAAK,CAAC,EAAE;EAClK,EAAE,KAAK,KAAK,EAAE,GAAG,EAAE,QAAQ;GAC3B,IAAE,KAAK,QAAM,IAAE;GAAE,QAAO,KAAK,OAAZ;IAAmB,KAAK,UAAS,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC;IAAI,KAAK,UAAS,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC,EAAE;EAC3J,EAAE,KAAK,CAAC;IAAI,SAAQ,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,QAAM,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,MAAI,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,KAAK,QAAM,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,MAAI,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI;EACpL,EAAE,KAAK,CAAC,EAAE;;GACX;EAAC;CAAC,CAAC,EAAE,OAAO;AAAC,GAAE,MAAG,MAAG;CAAC,MAAM,KAAG,GAAE,MAAI;EAAC,MAAM,IAAE,EAAE,SAAO,OAAO,EAAE,KAAK;EAAE,QAAO,GAAP;GAAU,KAAK,YAAW,OAAO,GAAG,EAAE,IAAI,CAAC;GAAI,KAAK,UAAS,OAAO,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAK,EAAE,IAAI,IAAI,EAAE,KAAK,EAAE,IAAE;GAAK,KAAK,aAAY,OAAO,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;GAAI,SAAQ,OAAO,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC;EAAG;CAAC;CAAE,OAAO,IAAI,GAAG;EAAC,SAAQ,EAAE;EAAQ,cAAa,EAAE;EAAa,SAAQ;GAAC,MAAM,IAAE,GAAG,EAAE,KAAK,CAAC,EAAE;EAC9X,EAAE,KAAK,KAAK,EAAE,GAAG,EAAE,QAAQ;;GAC3B,QAAO,KAAK,OAAZ;IAAmB,KAAK,UAAS,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,QAAQ,KAAK,SAAQ,UAAU;IAAI,KAAK,UAAS,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,QAAQ,KAAK,SAAQ,WAAW,EAAE;EACxL,EAAE,KAAK,CAAC;IAAI,SAAQ,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE;KAAC,QAAO,KAAK;KAAO,SAAQ,KAAK;KAAQ,UAAS,EAAE;KAAS,QAAO,GAAE,MAAI,EAAE,GAAE,IAAE,WAAS,UAAU;IAAC,CAAC,EAAE,KAAK;EAC7J,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE;EACf,EAAE,KAAK,CAAC,EAAE;;GACX;EAAC;CAAC,CAAC,EAAE,OAAO;AAAC,GAAE,MAAG,MAAG;CAAC,MAAM,KAAG,GAAE,MAAI;EAAC,MAAM,IAAE,EAAE,SAAO,OAAO,EAAE,KAAK;EAAE,OAAO,MAAI,WAAS,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAK,EAAE,IAAI,IAAI,EAAE,KAAK,EAAE,IAAE,OAAK,MAAI,aAAW,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,MAAI,MAAI,cAAY,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC,MAAI,MAAI,oBAAkB,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAK,EAAE,IAAI,IAAI,EAAE,KAAK,EAAE,IAAE,OAAK,MAAI,cAAY,GAAG,EAAE,IAAI,CAAC,MAAI,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC;CAAG;CAAE,OAAO,IAAI,GAAG;EAAC,SAAQ,EAAE;EAAQ,eAAc,EAAE;EAAc,UAAS,EAAE,YAAU;EAAK,UAAS,EAAE;EAAS,SAAS,GAAE;GAAC,IAAG,KAAK,YAAU,EAAE,WAAS,GAAE,OAAO;EAC/gB,EAAE,MAAM,EAAE,IAAI,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,SAAS,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC;EAAG;EAAE,SAAQ;GAAC,MAAM,IAAE,GAAG,EAAE,KAAK,CAAC,EAAE;EACpK,EAAE,KAAK,KAAK,EAAE,GAAG,EAAE,QAAQ;GAC3B,KAAG,GAAE,MAAI;IAAC,MAAM,IAAE,KAAK,MAAM,SAAS,EAAE,KAAK;IAAE,OAAO,KAAG,IAAE,EAAE,GAAE,iBAAiB,IAAE,IAAE,EAAE,GAAE,UAAU,IAAE,EAAE,GAAE,IAAE,WAAS,UAAU;GAAC;GAAE,QAAO,KAAK,OAAZ;IAAmB,KAAK,UAAS,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,QAAQ,QAAQ,EAAC,OAAM,QAAK,KAAK,MAAM,SAAS,CAAC,CAAC,EAAE,KAAI,MAAG,EAAE,GAAE,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,KAAG,EAAE,IAAI,MAAM;IAAI,KAAK,UAAS;KAAC,MAAM,IAAE,KAAK,QAAQ,QAAQ,EAAC,OAAM,QAAK,KAAK,MAAM,SAAS,CAAC,CAAC,EAAE,KAAI,MAAG,EAAE,GAAE,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC;KAAE,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,IAAE,GAAG,EAAE;EACrd,EAAE,KAAK,CAAC,MAAI;IAAI;IAAC,KAAK,SAAQ;KAAC,MAAM,IAAE,KAAK,MAAM,MAAM;CACzD,EAAE,KAAK,GAAE,MAAI,MAAI,IAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,MAAI,MAAM,GAAG,EAAE,KAAK;CACnE;KAAE,OAAO,GAAG,IAAE,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE;MAAC,SAAQ,KAAK;MAAQ,QAAO,KAAK;MAAO,UAAS,EAAE;MAAS,OAAM;KAAC,CAAC,EAAE,KAAK;EAC1G,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE;EACjB,EAAE;;IACH;IAAC,SAAQ,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE;KAAC,SAAQ,KAAK;KAAQ,QAAO,KAAK;KAAO,UAAS,EAAE;KAAS,OAAM;IAAC,CAAC,EAAE,KAAK;EACjH,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE;EACf,EAAE,KAAK,CAAC,EAAE;;GACX;EAAC;CAAC,CAAC,EAAE,OAAO;AAAC;AAAE,GAAG,EAAE,KAAK,CAAC;AAE3B,MAAM,UAAU,OAAO,IAAI,QAAQ;AACnC,eAAe,OAAO,SAAS,OAAO,CAAC,GAAG;CACxC,MAAM,gBAAgB,UAAU;EAC9B,IAAI,OAAO,UAAU,YAAY,MAAM,SAAS,MAAM,wBACpD,OAAO;EAET,QAAQ,KAAK,QAAb;GACE,KAAK,UAAU;IACb,MAAM,wBAAQ,IAAI,MAAM,mBAAmB;IAC3C,MAAM,OAAO;IACb,IAAI,MAAM,mBACR,MAAM,kBAAkB,OAAO,MAAM;IAEvC,MAAM;GACR;GACA,KAAK,aACH;GAEF,KAAK,QACH,OAAO;GAET,KAAK,UACH,OAAO;GAET;GACA,KAAK,WACH,OAAO,KAAK,WAAW,KAAK;EAEhC;CACF;CACA,IAAI,CAAC,KAAK,QAAQ,KAAK,SAAS,QAC9B,OAAO,MAAM,GAAG;EACd;EACA,cAAc,KAAK;EACnB,aAAa,KAAK;EAClB,cAAc,KAAK;CACrB,CAAC,EAAE,KAAK,YAAY;CAEtB,IAAI,KAAK,SAAS,WAChB,OAAO,MAAM,GAAG;EACd;EACA,cAAc,KAAK;CACrB,CAAC,EAAE,KAAK,YAAY;CAEtB,IAAI,KAAK,SAAS,UAChB,OAAO,MAAM,GAAG;EACd;EACA,SAAS,KAAK,QAAQ,KACnB,MAAM,OAAO,MAAM,WAAW;GAAE,OAAO;GAAG,OAAO;EAAE,IAAI,CAC1D;EACA,cAAc,KAAK;CACrB,CAAC,EAAE,KAAK,YAAY;CAEtB,IAAI,KAAK,SAAS,eAChB,OAAO,MAAM,GAAG;EACd;EACA,SAAS,KAAK,QAAQ,KACnB,MAAM,OAAO,MAAM,WAAW;GAAE,OAAO;GAAG,OAAO;EAAE,IAAI,CAC1D;EACA,UAAU,KAAK;EACf,eAAe,KAAK;CACtB,CAAC,EAAE,KAAK,YAAY;CAEtB,MAAM,IAAI,MAAM,wBAAwB,KAAK,MAAM;AACrD"}
@@ -1,7 +1,7 @@
1
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
1
+ import { confirm as le, isCancel as R$1, log as R, multiselect as we, select as Ee, spinner as vt } from "./dist.mjs";
2
2
  import { homedir } from "node:os";
3
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
3
4
  import { join } from "node:path";
4
- import * as clack from "@clack/prompts";
5
5
  //#region src/openrouter/client.ts
6
6
  const DEFAULT_BASE_URL = "https://openrouter.ai/api/v1";
7
7
  var OpenRouterClientError = class extends Error {
@@ -147,7 +147,7 @@ async function fetchProviders(client) {
147
147
  //#endregion
148
148
  //#region src/commands/config/providers.ts
149
149
  async function fetchProvidersForPattern(client) {
150
- const s = clack.spinner();
150
+ const s = vt();
151
151
  s.start("Fetching providers...");
152
152
  try {
153
153
  const providers = await fetchProviders(client);
@@ -159,14 +159,14 @@ async function fetchProvidersForPattern(client) {
159
159
  return options;
160
160
  } catch (error) {
161
161
  s.stop("Failed to fetch providers");
162
- clack.log.error(String(error));
162
+ R.error(String(error));
163
163
  return null;
164
164
  }
165
165
  }
166
166
  async function fetchEndpointsForModel(client, modelId) {
167
167
  const author = parseModelAuthor(modelId);
168
168
  const slug = parseModelSlug(modelId);
169
- const s = clack.spinner();
169
+ const s = vt();
170
170
  s.start("Fetching providers for this model...");
171
171
  try {
172
172
  const endpoints = await fetchModelEndpoints(client, author, slug);
@@ -185,7 +185,7 @@ async function fetchEndpointsForModel(client, modelId) {
185
185
  return options;
186
186
  } catch (error) {
187
187
  s.stop("Failed to fetch providers");
188
- clack.log.error(String(error));
188
+ R.error(String(error));
189
189
  return null;
190
190
  }
191
191
  }
@@ -195,7 +195,7 @@ async function fetchProvidersForModel(client, modelKey, isPattern) {
195
195
  }
196
196
  const DONE_OPTION = "__done__";
197
197
  async function selectRoutingMode(message) {
198
- return clack.select({
198
+ return Ee({
199
199
  message,
200
200
  options: [
201
201
  {
@@ -224,12 +224,12 @@ async function selectProvidersByMode(mode, providerOptions) {
224
224
  return null;
225
225
  }
226
226
  async function selectOnlyProviders(providerOptions) {
227
- const selected = await clack.multiselect({
227
+ const selected = await we({
228
228
  message: "Select providers",
229
229
  options: providerOptions,
230
230
  required: false
231
231
  });
232
- if (clack.isCancel(selected)) return null;
232
+ if (R$1(selected)) return null;
233
233
  const values = selected;
234
234
  if (values.length === 0) return {};
235
235
  return { provider: { only: values.length === 1 ? values[0] : values } };
@@ -239,36 +239,36 @@ async function selectOrderedProviders(providerOptions) {
239
239
  for (let i = 1;; i++) {
240
240
  const remaining = providerOptions.filter((p) => !order.includes(p.value));
241
241
  if (remaining.length === 0) break;
242
- const pick = await clack.select({
242
+ const pick = await Ee({
243
243
  message: `Select provider #${i} (or cancel to finish)`,
244
244
  options: [...remaining, {
245
245
  value: DONE_OPTION,
246
246
  label: "✓ Done"
247
247
  }]
248
248
  });
249
- if (clack.isCancel(pick) || pick === DONE_OPTION) break;
249
+ if (R$1(pick) || pick === DONE_OPTION) break;
250
250
  order.push(pick);
251
251
  }
252
252
  if (order.length === 0) {
253
- clack.log.warn("No providers selected");
253
+ R.warn("No providers selected");
254
254
  return null;
255
255
  }
256
- const allowFallbacks = await clack.confirm({
256
+ const allowFallbacks = await le({
257
257
  message: "Allow fallbacks to other providers?",
258
258
  initialValue: true
259
259
  });
260
260
  return { provider: {
261
261
  order: order.length === 1 ? order[0] : order,
262
- allowFallbacks: clack.isCancel(allowFallbacks) ? true : allowFallbacks
262
+ allowFallbacks: R$1(allowFallbacks) ? true : allowFallbacks
263
263
  } };
264
264
  }
265
265
  async function selectIgnoreProviders(providerOptions) {
266
- const selected = await clack.multiselect({
266
+ const selected = await we({
267
267
  message: "Select providers to ignore",
268
268
  options: providerOptions,
269
269
  required: false
270
270
  });
271
- if (clack.isCancel(selected)) return null;
271
+ if (R$1(selected)) return null;
272
272
  const values = selected;
273
273
  if (values.length === 0) return {};
274
274
  return { provider: { ignore: values.length === 1 ? values[0] : values } };
@@ -1 +1 @@
1
- {"version":3,"file":"providers.mjs","names":["CACHE_KEY","CACHE_TTL"],"sources":["../src/openrouter/client.ts","../src/openrouter/cache.ts","../src/openrouter/models.ts","../src/commands/config/format.ts","../src/openrouter/endpoints.ts","../src/openrouter/providers.ts","../src/commands/config/providers.ts"],"sourcesContent":["const DEFAULT_BASE_URL = 'https://openrouter.ai/api/v1'\n\nexport class OpenRouterClientError extends Error {\n readonly status: number\n\n constructor(status: number, message: string) {\n super(`OpenRouter API error (${status}): ${message}`)\n this.name = 'OpenRouterClientError'\n this.status = status\n }\n}\n\n/** HTTP client for OpenRouter REST endpoints. Auth header is only sent when apiKey is non-empty. */\nexport class OpenRouterClient {\n private readonly apiKey: string\n private readonly baseUrl: string\n\n constructor(apiKey: string, baseUrl?: string) {\n this.apiKey = apiKey\n this.baseUrl = baseUrl ?? DEFAULT_BASE_URL\n }\n\n async get<T>(path: string): Promise<T> {\n const url = `${this.baseUrl}${path}`\n\n const res = await fetch(url, {\n headers: {\n ...(this.apiKey ? { Authorization: `Bearer ${this.apiKey}` } : {}),\n },\n })\n\n if (!res.ok) {\n const body = await res.text().catch(() => '')\n throw new OpenRouterClientError(res.status, body || res.statusText)\n }\n\n return res.json() as Promise<T>\n }\n}\n","import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs'\nimport { homedir } from 'node:os'\nimport { join } from 'node:path'\n\nexport type CacheEntry<T> = {\n data: T\n fetchedAt: number\n}\n\nexport const CACHE_DIR = join(homedir(), '.proxitor', 'cache')\n\n/** Read a cached value. Returns `null` when missing, expired (older than `ttlMs`), or unparseable. */\nexport function readCache<T>(key: string, ttlMs: number): T | null {\n const path = join(CACHE_DIR, `${key}.json`)\n if (!existsSync(path)) return null\n\n try {\n const entry: CacheEntry<T> = JSON.parse(readFileSync(path, 'utf-8'))\n if (Date.now() - entry.fetchedAt > ttlMs) return null\n return entry.data\n } catch {\n return null\n }\n}\n\nexport function writeCache<T>(key: string, data: T): void {\n mkdirSync(CACHE_DIR, { recursive: true })\n const entry: CacheEntry<T> = { fetchedAt: Date.now(), data }\n writeFileSync(join(CACHE_DIR, `${key}.json`), JSON.stringify(entry))\n}\n\nexport function clearCache(key: string): void {\n const path = join(CACHE_DIR, `${key}.json`)\n if (existsSync(path)) unlinkSync(path)\n}\n","import { readCache, writeCache } from './cache.js'\nimport type { OpenRouterClient } from './client.js'\nimport type { OpenRouterModel, OpenRouterModelsResponse } from './types.js'\n\nconst CACHE_KEY = 'models'\nconst CACHE_TTL = 60 * 60 * 1000 // 1 hour\n\nexport async function fetchModels(client: OpenRouterClient): Promise<OpenRouterModel[]> {\n const cached = readCache<OpenRouterModel[]>(CACHE_KEY, CACHE_TTL)\n if (cached) return cached\n\n const response = await client.get<OpenRouterModelsResponse>('/models')\n writeCache(CACHE_KEY, response.data)\n return response.data\n}\n\n/** `\"anthropic/claude-sonnet-4\"` → `\"anthropic\"` */\nexport function parseModelAuthor(modelId: string): string {\n return modelId.split('/')[0] ?? ''\n}\n\n/** `\"anthropic/claude-sonnet-4\"` → `\"claude-sonnet-4\"` */\nexport function parseModelSlug(modelId: string): string {\n return modelId.split('/').slice(1).join('/')\n}\n\n/** `\"0.000003\"` → `\"$3.00\"`, `\"0\"` → `\"free\"` */\nexport function formatPrice(pricePerToken: string): string {\n const per1M = Number.parseFloat(pricePerToken) * 1_000_000\n if (per1M === 0) return 'free'\n if (per1M < 0.01) return `$${per1M.toFixed(4)}`\n return `$${per1M.toFixed(2)}`\n}\n","import { formatPrice } from '../../openrouter/models.js'\nimport type { OpenRouterModel } from '../../openrouter/types.js'\n\nexport function formatPricing(prompt: string, completion: string): string {\n const fmt = (perToken: string) => {\n const per1M = Number.parseFloat(perToken) * 1_000_000\n if (per1M === 0) return 'free'\n if (per1M < 0.01) return `$${per1M.toFixed(4)}`\n return `$${per1M.toFixed(2)}`\n }\n return `${fmt(prompt)} / ${fmt(completion)}`\n}\n\n/** `200000` → `\"200k\"`, `1000000` → `\"1.0M\"` */\nexport function formatContextLength(tokens: number): string {\n if (tokens >= 1_000_000) return `${(tokens / 1_000_000).toFixed(1)}M`\n if (tokens >= 1_000) return `${Math.round(tokens / 1_000)}k`\n return `${tokens}`\n}\n\n/** `1137` → `\"1.1s\"`, `null` → `\"N/A\"` */\nexport function formatLatency(ms: number | null): string {\n if (ms === null) return 'N/A'\n if (ms < 1000) return `${Math.round(ms)}ms`\n return `${(ms / 1000).toFixed(1)}s`\n}\n\nexport function formatThroughput(tokensPerSec: number | null): string {\n if (tokensPerSec === null) return 'N/A'\n return `${tokensPerSec.toFixed(0)} t/s`\n}\n\nexport function formatModelLabel(m: OpenRouterModel): string {\n return `${m.name || m.id} — ${formatPrice(m.pricing.prompt)} · ${formatContextLength(m.context_length)}`\n}\n\nexport function formatModelHint(m: OpenRouterModel): string {\n const parts = [`out ${formatPrice(m.pricing.completion)}`]\n if (m.pricing.input_cache_read && m.pricing.input_cache_read !== '0') {\n parts.push(`cache ${formatPrice(m.pricing.input_cache_read)}`)\n }\n return parts.join(' · ')\n}\n","import type { OpenRouterClient } from './client.js'\nimport type { ModelEndpoint, ModelEndpointsResponse } from './types.js'\n\nexport async function fetchModelEndpoints(\n client: OpenRouterClient,\n author: string,\n slug: string,\n): Promise<ModelEndpoint[]> {\n const response = await client.get<ModelEndpointsResponse>(\n `/models/${author}/${slug}/endpoints`,\n )\n return response.data.endpoints ?? []\n}\n\nexport type ProviderOption = {\n providerName: string\n /** Routing slug for `provider.only/order/ignore` (e.g. \"anthropic\", \"google-vertex/global\"). */\n tag: string\n}\n\nexport function getUniqueProviders(endpoints: ModelEndpoint[]): ProviderOption[] {\n const seen = new Set<string>()\n const result: ProviderOption[] = []\n\n for (const ep of endpoints) {\n if (seen.has(ep.tag)) continue\n seen.add(ep.tag)\n result.push({ tag: ep.tag, providerName: ep.provider_name })\n }\n\n result.sort((a, b) => a.providerName.localeCompare(b.providerName))\n return result\n}\n","import { readCache, writeCache } from './cache.js'\nimport type { OpenRouterClient } from './client.js'\nimport type { OpenRouterProvider, OpenRouterProvidersResponse } from './types.js'\n\nconst CACHE_KEY = 'providers'\nconst CACHE_TTL = 24 * 60 * 60 * 1000 // 24 hours\n\nexport async function fetchProviders(\n client: OpenRouterClient,\n): Promise<OpenRouterProvider[]> {\n const cached = readCache<OpenRouterProvider[]>(CACHE_KEY, CACHE_TTL)\n if (cached) return cached\n\n const response = await client.get<OpenRouterProvidersResponse>('/providers')\n writeCache(CACHE_KEY, response.data)\n return response.data\n}\n","import * as clack from '@clack/prompts'\nimport type { OpenRouterClient } from '../../openrouter/client.js'\nimport { fetchModelEndpoints, getUniqueProviders } from '../../openrouter/endpoints.js'\nimport { parseModelAuthor, parseModelSlug } from '../../openrouter/models.js'\nimport { fetchProviders } from '../../openrouter/providers.js'\nimport { formatLatency, formatThroughput } from './format.js'\n\nexport async function fetchProvidersForPattern(\n client: OpenRouterClient,\n): Promise<Array<{ value: string; label: string; hint?: string }> | null> {\n const s = clack.spinner()\n s.start('Fetching providers...')\n try {\n const providers = await fetchProviders(client)\n const options = providers\n .map(p => ({ value: p.slug, label: p.name }))\n .sort((a, b) => a.label.localeCompare(b.label))\n s.stop(`${providers.length} providers available`)\n return options\n } catch (error) {\n s.stop('Failed to fetch providers')\n clack.log.error(String(error))\n return null\n }\n}\n\nexport async function fetchEndpointsForModel(\n client: OpenRouterClient,\n modelId: string,\n): Promise<Array<{ value: string; label: string; hint?: string }> | null> {\n const author = parseModelAuthor(modelId)\n const slug = parseModelSlug(modelId)\n\n const s = clack.spinner()\n s.start('Fetching providers for this model...')\n try {\n const endpoints = await fetchModelEndpoints(client, author, slug)\n const unique = getUniqueProviders(endpoints)\n\n const options = unique.map(p => {\n const ep = endpoints.find(e => e.tag === p.tag)\n const latency = ep?.latency_last_30m?.p50 ?? null\n const throughput = ep?.throughput_last_30m?.p50 ?? null\n return {\n value: p.tag,\n label: `${p.providerName} (${p.tag})`,\n hint: `${formatLatency(latency)} · ${formatThroughput(throughput)}`,\n }\n })\n\n s.stop(`${unique.length} providers available for this model`)\n return options\n } catch (error) {\n s.stop('Failed to fetch providers')\n clack.log.error(String(error))\n return null\n }\n}\n\nexport async function fetchProvidersForModel(\n client: OpenRouterClient,\n modelKey: string,\n isPattern: boolean,\n): Promise<Array<{ value: string; label: string; hint?: string }> | null> {\n if (isPattern) return fetchProvidersForPattern(client)\n return fetchEndpointsForModel(client, modelKey)\n}\n\nconst DONE_OPTION = '__done__'\n\nexport async function selectRoutingMode(message: string): Promise<string | symbol> {\n return clack.select({\n message,\n options: [\n { value: 'only', label: 'Use specific providers only' },\n { value: 'order', label: 'Set provider priority order' },\n { value: 'ignore', label: 'Ignore specific providers' },\n { value: 'skip', label: 'Skip provider routing' },\n ],\n })\n}\n\nexport async function selectProvidersByMode(\n mode: string,\n providerOptions: Array<{ value: string; label: string; hint?: string }>,\n): Promise<Record<string, unknown> | null> {\n if (mode === 'only') return selectOnlyProviders(providerOptions)\n if (mode === 'order') return selectOrderedProviders(providerOptions)\n if (mode === 'ignore') return selectIgnoreProviders(providerOptions)\n return null\n}\n\nasync function selectOnlyProviders(\n providerOptions: Array<{ value: string; label: string; hint?: string }>,\n): Promise<Record<string, unknown> | null> {\n const selected = await clack.multiselect({\n message: 'Select providers',\n options: providerOptions,\n required: false,\n })\n\n if (clack.isCancel(selected)) return null\n\n const values = selected as string[]\n if (values.length === 0) return {}\n\n const only = values.length === 1 ? values[0] : values\n return { provider: { only } }\n}\n\nasync function selectOrderedProviders(\n providerOptions: Array<{ value: string; label: string; hint?: string }>,\n): Promise<Record<string, unknown> | null> {\n const order: string[] = []\n\n for (let i = 1; ; i++) {\n const remaining = providerOptions.filter(p => !order.includes(p.value))\n if (remaining.length === 0) break\n\n const pick = await clack.select({\n message: `Select provider #${i} (or cancel to finish)`,\n options: [...remaining, { value: DONE_OPTION, label: '✓ Done' }],\n })\n\n if (clack.isCancel(pick) || pick === DONE_OPTION) break\n order.push(pick as string)\n }\n\n if (order.length === 0) {\n clack.log.warn('No providers selected')\n return null\n }\n\n const allowFallbacks = await clack.confirm({\n message: 'Allow fallbacks to other providers?',\n initialValue: true,\n })\n\n return {\n provider: {\n order: order.length === 1 ? order[0] : order,\n allowFallbacks: clack.isCancel(allowFallbacks) ? true : (allowFallbacks as boolean),\n },\n }\n}\n\nasync function selectIgnoreProviders(\n providerOptions: Array<{ value: string; label: string; hint?: string }>,\n): Promise<Record<string, unknown> | null> {\n const selected = await clack.multiselect({\n message: 'Select providers to ignore',\n options: providerOptions,\n required: false,\n })\n\n if (clack.isCancel(selected)) return null\n\n const values = selected as string[]\n if (values.length === 0) return {}\n\n const ignore = values.length === 1 ? values[0] : values\n return { provider: { ignore } }\n}\n"],"mappings":";;;;;AAAA,MAAM,mBAAmB;AAEzB,IAAa,wBAAb,cAA2C,MAAM;CAC/C;CAEA,YAAY,QAAgB,SAAiB;EAC3C,MAAM,yBAAyB,OAAO,KAAK,SAAS;EACpD,KAAK,OAAO;EACZ,KAAK,SAAS;CAChB;AACF;;AAGA,IAAa,mBAAb,MAA8B;CAC5B;CACA;CAEA,YAAY,QAAgB,SAAkB;EAC5C,KAAK,SAAS;EACd,KAAK,UAAU,WAAW;CAC5B;CAEA,MAAM,IAAO,MAA0B;EACrC,MAAM,MAAM,GAAG,KAAK,UAAU;EAE9B,MAAM,MAAM,MAAM,MAAM,KAAK,EAC3B,SAAS,EACP,GAAI,KAAK,SAAS,EAAE,eAAe,UAAU,KAAK,SAAS,IAAI,CAAC,EAClE,EACF,CAAC;EAED,IAAI,CAAC,IAAI,IAAI;GACX,MAAM,OAAO,MAAM,IAAI,KAAK,EAAE,YAAY,EAAE;GAC5C,MAAM,IAAI,sBAAsB,IAAI,QAAQ,QAAQ,IAAI,UAAU;EACpE;EAEA,OAAO,IAAI,KAAK;CAClB;AACF;;;AC7BA,MAAa,YAAY,KAAK,QAAQ,GAAG,aAAa,OAAO;;AAG7D,SAAgB,UAAa,KAAa,OAAyB;CACjE,MAAM,OAAO,KAAK,WAAW,GAAG,IAAI,MAAM;CAC1C,IAAI,CAAC,WAAW,IAAI,GAAG,OAAO;CAE9B,IAAI;EACF,MAAM,QAAuB,KAAK,MAAM,aAAa,MAAM,OAAO,CAAC;EACnE,IAAI,KAAK,IAAI,IAAI,MAAM,YAAY,OAAO,OAAO;EACjD,OAAO,MAAM;CACf,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAgB,WAAc,KAAa,MAAe;CACxD,UAAU,WAAW,EAAE,WAAW,KAAK,CAAC;CACxC,MAAM,QAAuB;EAAE,WAAW,KAAK,IAAI;EAAG;CAAK;CAC3D,cAAc,KAAK,WAAW,GAAG,IAAI,MAAM,GAAG,KAAK,UAAU,KAAK,CAAC;AACrE;;;ACzBA,MAAMA,cAAY;AAClB,MAAMC,cAAY,OAAU;AAE5B,eAAsB,YAAY,QAAsD;CACtF,MAAM,SAAS,UAA6BD,aAAWC,WAAS;CAChE,IAAI,QAAQ,OAAO;CAEnB,MAAM,WAAW,MAAM,OAAO,IAA8B,SAAS;CACrE,WAAWD,aAAW,SAAS,IAAI;CACnC,OAAO,SAAS;AAClB;;AAGA,SAAgB,iBAAiB,SAAyB;CACxD,OAAO,QAAQ,MAAM,GAAG,EAAE,MAAM;AAClC;;AAGA,SAAgB,eAAe,SAAyB;CACtD,OAAO,QAAQ,MAAM,GAAG,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG;AAC7C;;AAGA,SAAgB,YAAY,eAA+B;CACzD,MAAM,QAAQ,OAAO,WAAW,aAAa,IAAI;CACjD,IAAI,UAAU,GAAG,OAAO;CACxB,IAAI,QAAQ,KAAM,OAAO,IAAI,MAAM,QAAQ,CAAC;CAC5C,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC5B;;;AC7BA,SAAgB,cAAc,QAAgB,YAA4B;CACxE,MAAM,OAAO,aAAqB;EAChC,MAAM,QAAQ,OAAO,WAAW,QAAQ,IAAI;EAC5C,IAAI,UAAU,GAAG,OAAO;EACxB,IAAI,QAAQ,KAAM,OAAO,IAAI,MAAM,QAAQ,CAAC;EAC5C,OAAO,IAAI,MAAM,QAAQ,CAAC;CAC5B;CACA,OAAO,GAAG,IAAI,MAAM,EAAE,KAAK,IAAI,UAAU;AAC3C;;AAGA,SAAgB,oBAAoB,QAAwB;CAC1D,IAAI,UAAU,KAAW,OAAO,IAAI,SAAS,KAAW,QAAQ,CAAC,EAAE;CACnE,IAAI,UAAU,KAAO,OAAO,GAAG,KAAK,MAAM,SAAS,GAAK,EAAE;CAC1D,OAAO,GAAG;AACZ;;AAGA,SAAgB,cAAc,IAA2B;CACvD,IAAI,OAAO,MAAM,OAAO;CACxB,IAAI,KAAK,KAAM,OAAO,GAAG,KAAK,MAAM,EAAE,EAAE;CACxC,OAAO,IAAI,KAAK,KAAM,QAAQ,CAAC,EAAE;AACnC;AAEA,SAAgB,iBAAiB,cAAqC;CACpE,IAAI,iBAAiB,MAAM,OAAO;CAClC,OAAO,GAAG,aAAa,QAAQ,CAAC,EAAE;AACpC;AAEA,SAAgB,iBAAiB,GAA4B;CAC3D,OAAO,GAAG,EAAE,QAAQ,EAAE,GAAG,OAAO,YAAY,EAAE,QAAQ,MAAM,EAAE,KAAK,oBAAoB,EAAE,cAAc;AACzG;AAEA,SAAgB,gBAAgB,GAA4B;CAC1D,MAAM,QAAQ,CAAC,OAAO,YAAY,EAAE,QAAQ,UAAU,GAAG;CACzD,IAAI,EAAE,QAAQ,oBAAoB,EAAE,QAAQ,qBAAqB,KAC/D,MAAM,KAAK,SAAS,YAAY,EAAE,QAAQ,gBAAgB,GAAG;CAE/D,OAAO,MAAM,KAAK,KAAK;AACzB;;;ACvCA,eAAsB,oBACpB,QACA,QACA,MAC0B;CAI1B,QAAO,MAHgB,OAAO,IAC5B,WAAW,OAAO,GAAG,KAAK,WAC5B,GACgB,KAAK,aAAa,CAAC;AACrC;AAQA,SAAgB,mBAAmB,WAA8C;CAC/E,MAAM,uBAAO,IAAI,IAAY;CAC7B,MAAM,SAA2B,CAAC;CAElC,KAAK,MAAM,MAAM,WAAW;EAC1B,IAAI,KAAK,IAAI,GAAG,GAAG,GAAG;EACtB,KAAK,IAAI,GAAG,GAAG;EACf,OAAO,KAAK;GAAE,KAAK,GAAG;GAAK,cAAc,GAAG;EAAc,CAAC;CAC7D;CAEA,OAAO,MAAM,GAAG,MAAM,EAAE,aAAa,cAAc,EAAE,YAAY,CAAC;CAClE,OAAO;AACT;;;AC5BA,MAAM,YAAY;AAClB,MAAM,YAAY,OAAU,KAAK;AAEjC,eAAsB,eACpB,QAC+B;CAC/B,MAAM,SAAS,UAAgC,WAAW,SAAS;CACnE,IAAI,QAAQ,OAAO;CAEnB,MAAM,WAAW,MAAM,OAAO,IAAiC,YAAY;CAC3E,WAAW,WAAW,SAAS,IAAI;CACnC,OAAO,SAAS;AAClB;;;ACTA,eAAsB,yBACpB,QACwE;CACxE,MAAM,IAAI,MAAM,QAAQ;CACxB,EAAE,MAAM,uBAAuB;CAC/B,IAAI;EACF,MAAM,YAAY,MAAM,eAAe,MAAM;EAC7C,MAAM,UAAU,UACb,KAAI,OAAM;GAAE,OAAO,EAAE;GAAM,OAAO,EAAE;EAAK,EAAE,EAC3C,MAAM,GAAG,MAAM,EAAE,MAAM,cAAc,EAAE,KAAK,CAAC;EAChD,EAAE,KAAK,GAAG,UAAU,OAAO,qBAAqB;EAChD,OAAO;CACT,SAAS,OAAO;EACd,EAAE,KAAK,2BAA2B;EAClC,MAAM,IAAI,MAAM,OAAO,KAAK,CAAC;EAC7B,OAAO;CACT;AACF;AAEA,eAAsB,uBACpB,QACA,SACwE;CACxE,MAAM,SAAS,iBAAiB,OAAO;CACvC,MAAM,OAAO,eAAe,OAAO;CAEnC,MAAM,IAAI,MAAM,QAAQ;CACxB,EAAE,MAAM,sCAAsC;CAC9C,IAAI;EACF,MAAM,YAAY,MAAM,oBAAoB,QAAQ,QAAQ,IAAI;EAChE,MAAM,SAAS,mBAAmB,SAAS;EAE3C,MAAM,UAAU,OAAO,KAAI,MAAK;GAC9B,MAAM,KAAK,UAAU,MAAK,MAAK,EAAE,QAAQ,EAAE,GAAG;GAC9C,MAAM,UAAU,IAAI,kBAAkB,OAAO;GAC7C,MAAM,aAAa,IAAI,qBAAqB,OAAO;GACnD,OAAO;IACL,OAAO,EAAE;IACT,OAAO,GAAG,EAAE,aAAa,IAAI,EAAE,IAAI;IACnC,MAAM,GAAG,cAAc,OAAO,EAAE,KAAK,iBAAiB,UAAU;GAClE;EACF,CAAC;EAED,EAAE,KAAK,GAAG,OAAO,OAAO,oCAAoC;EAC5D,OAAO;CACT,SAAS,OAAO;EACd,EAAE,KAAK,2BAA2B;EAClC,MAAM,IAAI,MAAM,OAAO,KAAK,CAAC;EAC7B,OAAO;CACT;AACF;AAEA,eAAsB,uBACpB,QACA,UACA,WACwE;CACxE,IAAI,WAAW,OAAO,yBAAyB,MAAM;CACrD,OAAO,uBAAuB,QAAQ,QAAQ;AAChD;AAEA,MAAM,cAAc;AAEpB,eAAsB,kBAAkB,SAA2C;CACjF,OAAO,MAAM,OAAO;EAClB;EACA,SAAS;GACP;IAAE,OAAO;IAAQ,OAAO;GAA8B;GACtD;IAAE,OAAO;IAAS,OAAO;GAA8B;GACvD;IAAE,OAAO;IAAU,OAAO;GAA4B;GACtD;IAAE,OAAO;IAAQ,OAAO;GAAwB;EAClD;CACF,CAAC;AACH;AAEA,eAAsB,sBACpB,MACA,iBACyC;CACzC,IAAI,SAAS,QAAQ,OAAO,oBAAoB,eAAe;CAC/D,IAAI,SAAS,SAAS,OAAO,uBAAuB,eAAe;CACnE,IAAI,SAAS,UAAU,OAAO,sBAAsB,eAAe;CACnE,OAAO;AACT;AAEA,eAAe,oBACb,iBACyC;CACzC,MAAM,WAAW,MAAM,MAAM,YAAY;EACvC,SAAS;EACT,SAAS;EACT,UAAU;CACZ,CAAC;CAED,IAAI,MAAM,SAAS,QAAQ,GAAG,OAAO;CAErC,MAAM,SAAS;CACf,IAAI,OAAO,WAAW,GAAG,OAAO,CAAC;CAGjC,OAAO,EAAE,UAAU,EAAE,MADR,OAAO,WAAW,IAAI,OAAO,KAAK,OACrB,EAAE;AAC9B;AAEA,eAAe,uBACb,iBACyC;CACzC,MAAM,QAAkB,CAAC;CAEzB,KAAK,IAAI,IAAI,IAAK,KAAK;EACrB,MAAM,YAAY,gBAAgB,QAAO,MAAK,CAAC,MAAM,SAAS,EAAE,KAAK,CAAC;EACtE,IAAI,UAAU,WAAW,GAAG;EAE5B,MAAM,OAAO,MAAM,MAAM,OAAO;GAC9B,SAAS,oBAAoB,EAAE;GAC/B,SAAS,CAAC,GAAG,WAAW;IAAE,OAAO;IAAa,OAAO;GAAS,CAAC;EACjE,CAAC;EAED,IAAI,MAAM,SAAS,IAAI,KAAK,SAAS,aAAa;EAClD,MAAM,KAAK,IAAc;CAC3B;CAEA,IAAI,MAAM,WAAW,GAAG;EACtB,MAAM,IAAI,KAAK,uBAAuB;EACtC,OAAO;CACT;CAEA,MAAM,iBAAiB,MAAM,MAAM,QAAQ;EACzC,SAAS;EACT,cAAc;CAChB,CAAC;CAED,OAAO,EACL,UAAU;EACR,OAAO,MAAM,WAAW,IAAI,MAAM,KAAK;EACvC,gBAAgB,MAAM,SAAS,cAAc,IAAI,OAAQ;CAC3D,EACF;AACF;AAEA,eAAe,sBACb,iBACyC;CACzC,MAAM,WAAW,MAAM,MAAM,YAAY;EACvC,SAAS;EACT,SAAS;EACT,UAAU;CACZ,CAAC;CAED,IAAI,MAAM,SAAS,QAAQ,GAAG,OAAO;CAErC,MAAM,SAAS;CACf,IAAI,OAAO,WAAW,GAAG,OAAO,CAAC;CAGjC,OAAO,EAAE,UAAU,EAAE,QADN,OAAO,WAAW,IAAI,OAAO,KAAK,OACrB,EAAE;AAChC"}
1
+ {"version":3,"file":"providers.mjs","names":["CACHE_KEY","CACHE_TTL","clack.spinner","clack.select","clack.multiselect","clack.isCancel","clack.confirm"],"sources":["../src/openrouter/client.ts","../src/openrouter/cache.ts","../src/openrouter/models.ts","../src/commands/config/format.ts","../src/openrouter/endpoints.ts","../src/openrouter/providers.ts","../src/commands/config/providers.ts"],"sourcesContent":["const DEFAULT_BASE_URL = 'https://openrouter.ai/api/v1'\n\nexport class OpenRouterClientError extends Error {\n readonly status: number\n\n constructor(status: number, message: string) {\n super(`OpenRouter API error (${status}): ${message}`)\n this.name = 'OpenRouterClientError'\n this.status = status\n }\n}\n\n/** HTTP client for OpenRouter REST endpoints. Auth header is only sent when apiKey is non-empty. */\nexport class OpenRouterClient {\n private readonly apiKey: string\n private readonly baseUrl: string\n\n constructor(apiKey: string, baseUrl?: string) {\n this.apiKey = apiKey\n this.baseUrl = baseUrl ?? DEFAULT_BASE_URL\n }\n\n async get<T>(path: string): Promise<T> {\n const url = `${this.baseUrl}${path}`\n\n const res = await fetch(url, {\n headers: {\n ...(this.apiKey ? { Authorization: `Bearer ${this.apiKey}` } : {}),\n },\n })\n\n if (!res.ok) {\n const body = await res.text().catch(() => '')\n throw new OpenRouterClientError(res.status, body || res.statusText)\n }\n\n return res.json() as Promise<T>\n }\n}\n","import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs'\nimport { homedir } from 'node:os'\nimport { join } from 'node:path'\n\nexport type CacheEntry<T> = {\n data: T\n fetchedAt: number\n}\n\nexport const CACHE_DIR = join(homedir(), '.proxitor', 'cache')\n\n/** Read a cached value. Returns `null` when missing, expired (older than `ttlMs`), or unparseable. */\nexport function readCache<T>(key: string, ttlMs: number): T | null {\n const path = join(CACHE_DIR, `${key}.json`)\n if (!existsSync(path)) return null\n\n try {\n const entry: CacheEntry<T> = JSON.parse(readFileSync(path, 'utf-8'))\n if (Date.now() - entry.fetchedAt > ttlMs) return null\n return entry.data\n } catch {\n return null\n }\n}\n\nexport function writeCache<T>(key: string, data: T): void {\n mkdirSync(CACHE_DIR, { recursive: true })\n const entry: CacheEntry<T> = { fetchedAt: Date.now(), data }\n writeFileSync(join(CACHE_DIR, `${key}.json`), JSON.stringify(entry))\n}\n\nexport function clearCache(key: string): void {\n const path = join(CACHE_DIR, `${key}.json`)\n if (existsSync(path)) unlinkSync(path)\n}\n","import { readCache, writeCache } from './cache.js'\nimport type { OpenRouterClient } from './client.js'\nimport type { OpenRouterModel, OpenRouterModelsResponse } from './types.js'\n\nconst CACHE_KEY = 'models'\nconst CACHE_TTL = 60 * 60 * 1000 // 1 hour\n\nexport async function fetchModels(client: OpenRouterClient): Promise<OpenRouterModel[]> {\n const cached = readCache<OpenRouterModel[]>(CACHE_KEY, CACHE_TTL)\n if (cached) return cached\n\n const response = await client.get<OpenRouterModelsResponse>('/models')\n writeCache(CACHE_KEY, response.data)\n return response.data\n}\n\n/** `\"anthropic/claude-sonnet-4\"` → `\"anthropic\"` */\nexport function parseModelAuthor(modelId: string): string {\n return modelId.split('/')[0] ?? ''\n}\n\n/** `\"anthropic/claude-sonnet-4\"` → `\"claude-sonnet-4\"` */\nexport function parseModelSlug(modelId: string): string {\n return modelId.split('/').slice(1).join('/')\n}\n\n/** `\"0.000003\"` → `\"$3.00\"`, `\"0\"` → `\"free\"` */\nexport function formatPrice(pricePerToken: string): string {\n const per1M = Number.parseFloat(pricePerToken) * 1_000_000\n if (per1M === 0) return 'free'\n if (per1M < 0.01) return `$${per1M.toFixed(4)}`\n return `$${per1M.toFixed(2)}`\n}\n","import { formatPrice } from '../../openrouter/models.js'\nimport type { OpenRouterModel } from '../../openrouter/types.js'\n\nexport function formatPricing(prompt: string, completion: string): string {\n const fmt = (perToken: string) => {\n const per1M = Number.parseFloat(perToken) * 1_000_000\n if (per1M === 0) return 'free'\n if (per1M < 0.01) return `$${per1M.toFixed(4)}`\n return `$${per1M.toFixed(2)}`\n }\n return `${fmt(prompt)} / ${fmt(completion)}`\n}\n\n/** `200000` → `\"200k\"`, `1000000` → `\"1.0M\"` */\nexport function formatContextLength(tokens: number): string {\n if (tokens >= 1_000_000) return `${(tokens / 1_000_000).toFixed(1)}M`\n if (tokens >= 1_000) return `${Math.round(tokens / 1_000)}k`\n return `${tokens}`\n}\n\n/** `1137` → `\"1.1s\"`, `null` → `\"N/A\"` */\nexport function formatLatency(ms: number | null): string {\n if (ms === null) return 'N/A'\n if (ms < 1000) return `${Math.round(ms)}ms`\n return `${(ms / 1000).toFixed(1)}s`\n}\n\nexport function formatThroughput(tokensPerSec: number | null): string {\n if (tokensPerSec === null) return 'N/A'\n return `${tokensPerSec.toFixed(0)} t/s`\n}\n\nexport function formatModelLabel(m: OpenRouterModel): string {\n return `${m.name || m.id} — ${formatPrice(m.pricing.prompt)} · ${formatContextLength(m.context_length)}`\n}\n\nexport function formatModelHint(m: OpenRouterModel): string {\n const parts = [`out ${formatPrice(m.pricing.completion)}`]\n if (m.pricing.input_cache_read && m.pricing.input_cache_read !== '0') {\n parts.push(`cache ${formatPrice(m.pricing.input_cache_read)}`)\n }\n return parts.join(' · ')\n}\n","import type { OpenRouterClient } from './client.js'\nimport type { ModelEndpoint, ModelEndpointsResponse } from './types.js'\n\nexport async function fetchModelEndpoints(\n client: OpenRouterClient,\n author: string,\n slug: string,\n): Promise<ModelEndpoint[]> {\n const response = await client.get<ModelEndpointsResponse>(\n `/models/${author}/${slug}/endpoints`,\n )\n return response.data.endpoints ?? []\n}\n\nexport type ProviderOption = {\n providerName: string\n /** Routing slug for `provider.only/order/ignore` (e.g. \"anthropic\", \"google-vertex/global\"). */\n tag: string\n}\n\nexport function getUniqueProviders(endpoints: ModelEndpoint[]): ProviderOption[] {\n const seen = new Set<string>()\n const result: ProviderOption[] = []\n\n for (const ep of endpoints) {\n if (seen.has(ep.tag)) continue\n seen.add(ep.tag)\n result.push({ tag: ep.tag, providerName: ep.provider_name })\n }\n\n result.sort((a, b) => a.providerName.localeCompare(b.providerName))\n return result\n}\n","import { readCache, writeCache } from './cache.js'\nimport type { OpenRouterClient } from './client.js'\nimport type { OpenRouterProvider, OpenRouterProvidersResponse } from './types.js'\n\nconst CACHE_KEY = 'providers'\nconst CACHE_TTL = 24 * 60 * 60 * 1000 // 24 hours\n\nexport async function fetchProviders(\n client: OpenRouterClient,\n): Promise<OpenRouterProvider[]> {\n const cached = readCache<OpenRouterProvider[]>(CACHE_KEY, CACHE_TTL)\n if (cached) return cached\n\n const response = await client.get<OpenRouterProvidersResponse>('/providers')\n writeCache(CACHE_KEY, response.data)\n return response.data\n}\n","import * as clack from '@clack/prompts'\nimport type { OpenRouterClient } from '../../openrouter/client.js'\nimport { fetchModelEndpoints, getUniqueProviders } from '../../openrouter/endpoints.js'\nimport { parseModelAuthor, parseModelSlug } from '../../openrouter/models.js'\nimport { fetchProviders } from '../../openrouter/providers.js'\nimport { formatLatency, formatThroughput } from './format.js'\n\nexport async function fetchProvidersForPattern(\n client: OpenRouterClient,\n): Promise<Array<{ value: string; label: string; hint?: string }> | null> {\n const s = clack.spinner()\n s.start('Fetching providers...')\n try {\n const providers = await fetchProviders(client)\n const options = providers\n .map(p => ({ value: p.slug, label: p.name }))\n .sort((a, b) => a.label.localeCompare(b.label))\n s.stop(`${providers.length} providers available`)\n return options\n } catch (error) {\n s.stop('Failed to fetch providers')\n clack.log.error(String(error))\n return null\n }\n}\n\nexport async function fetchEndpointsForModel(\n client: OpenRouterClient,\n modelId: string,\n): Promise<Array<{ value: string; label: string; hint?: string }> | null> {\n const author = parseModelAuthor(modelId)\n const slug = parseModelSlug(modelId)\n\n const s = clack.spinner()\n s.start('Fetching providers for this model...')\n try {\n const endpoints = await fetchModelEndpoints(client, author, slug)\n const unique = getUniqueProviders(endpoints)\n\n const options = unique.map(p => {\n const ep = endpoints.find(e => e.tag === p.tag)\n const latency = ep?.latency_last_30m?.p50 ?? null\n const throughput = ep?.throughput_last_30m?.p50 ?? null\n return {\n value: p.tag,\n label: `${p.providerName} (${p.tag})`,\n hint: `${formatLatency(latency)} · ${formatThroughput(throughput)}`,\n }\n })\n\n s.stop(`${unique.length} providers available for this model`)\n return options\n } catch (error) {\n s.stop('Failed to fetch providers')\n clack.log.error(String(error))\n return null\n }\n}\n\nexport async function fetchProvidersForModel(\n client: OpenRouterClient,\n modelKey: string,\n isPattern: boolean,\n): Promise<Array<{ value: string; label: string; hint?: string }> | null> {\n if (isPattern) return fetchProvidersForPattern(client)\n return fetchEndpointsForModel(client, modelKey)\n}\n\nconst DONE_OPTION = '__done__'\n\nexport async function selectRoutingMode(message: string): Promise<string | symbol> {\n return clack.select({\n message,\n options: [\n { value: 'only', label: 'Use specific providers only' },\n { value: 'order', label: 'Set provider priority order' },\n { value: 'ignore', label: 'Ignore specific providers' },\n { value: 'skip', label: 'Skip provider routing' },\n ],\n })\n}\n\nexport async function selectProvidersByMode(\n mode: string,\n providerOptions: Array<{ value: string; label: string; hint?: string }>,\n): Promise<Record<string, unknown> | null> {\n if (mode === 'only') return selectOnlyProviders(providerOptions)\n if (mode === 'order') return selectOrderedProviders(providerOptions)\n if (mode === 'ignore') return selectIgnoreProviders(providerOptions)\n return null\n}\n\nasync function selectOnlyProviders(\n providerOptions: Array<{ value: string; label: string; hint?: string }>,\n): Promise<Record<string, unknown> | null> {\n const selected = await clack.multiselect({\n message: 'Select providers',\n options: providerOptions,\n required: false,\n })\n\n if (clack.isCancel(selected)) return null\n\n const values = selected as string[]\n if (values.length === 0) return {}\n\n const only = values.length === 1 ? values[0] : values\n return { provider: { only } }\n}\n\nasync function selectOrderedProviders(\n providerOptions: Array<{ value: string; label: string; hint?: string }>,\n): Promise<Record<string, unknown> | null> {\n const order: string[] = []\n\n for (let i = 1; ; i++) {\n const remaining = providerOptions.filter(p => !order.includes(p.value))\n if (remaining.length === 0) break\n\n const pick = await clack.select({\n message: `Select provider #${i} (or cancel to finish)`,\n options: [...remaining, { value: DONE_OPTION, label: '✓ Done' }],\n })\n\n if (clack.isCancel(pick) || pick === DONE_OPTION) break\n order.push(pick as string)\n }\n\n if (order.length === 0) {\n clack.log.warn('No providers selected')\n return null\n }\n\n const allowFallbacks = await clack.confirm({\n message: 'Allow fallbacks to other providers?',\n initialValue: true,\n })\n\n return {\n provider: {\n order: order.length === 1 ? order[0] : order,\n allowFallbacks: clack.isCancel(allowFallbacks) ? true : (allowFallbacks as boolean),\n },\n }\n}\n\nasync function selectIgnoreProviders(\n providerOptions: Array<{ value: string; label: string; hint?: string }>,\n): Promise<Record<string, unknown> | null> {\n const selected = await clack.multiselect({\n message: 'Select providers to ignore',\n options: providerOptions,\n required: false,\n })\n\n if (clack.isCancel(selected)) return null\n\n const values = selected as string[]\n if (values.length === 0) return {}\n\n const ignore = values.length === 1 ? values[0] : values\n return { provider: { ignore } }\n}\n"],"mappings":"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"}
package/dist/remove.mjs CHANGED
@@ -1,19 +1,18 @@
1
+ import { confirm as le, intro as ye, isCancel as R$1, log as R, multiselect as we, outro as fe } from "./dist.mjs";
1
2
  import { n as removeModelOverride, r as requireConfigPath, t as getModelOverrides } from "./config.mjs";
2
- import * as clack from "@clack/prompts";
3
- import { isCancel } from "@clack/prompts";
4
3
  //#region src/commands/config/remove.ts
5
4
  /** Run the interactive "Remove model override" flow. */
6
5
  async function removeOverrideCommand() {
7
- clack.intro("Remove Model Override");
6
+ ye("Remove Model Override");
8
7
  const configPath = requireConfigPath();
9
8
  const overrides = getModelOverrides(configPath);
10
9
  const keys = Object.keys(overrides);
11
10
  if (keys.length === 0) {
12
- clack.log.warn("No model overrides found.");
13
- clack.outro("");
11
+ R.warn("No model overrides found.");
12
+ fe("");
14
13
  return;
15
14
  }
16
- const selected = await clack.multiselect({
15
+ const selected = await we({
17
16
  message: "Select overrides to remove",
18
17
  options: keys.map((k) => ({
19
18
  value: k,
@@ -21,15 +20,15 @@ async function removeOverrideCommand() {
21
20
  })),
22
21
  required: true
23
22
  });
24
- if (isCancel(selected)) return;
23
+ if (R$1(selected)) return;
25
24
  const toRemove = selected;
26
- const confirmed = await clack.confirm({ message: `Remove ${toRemove.length} override(s)?` });
27
- if (isCancel(confirmed) || !confirmed) {
28
- clack.outro("Cancelled");
25
+ const confirmed = await le({ message: `Remove ${toRemove.length} override(s)?` });
26
+ if (R$1(confirmed) || !confirmed) {
27
+ fe("Cancelled");
29
28
  return;
30
29
  }
31
30
  for (const key of toRemove) removeModelOverride(configPath, key);
32
- clack.outro(`✓ ${toRemove.length} override(s) removed`);
31
+ fe(`✓ ${toRemove.length} override(s) removed`);
33
32
  }
34
33
  //#endregion
35
34
  export { removeOverrideCommand };
@@ -1 +1 @@
1
- {"version":3,"file":"remove.mjs","names":[],"sources":["../src/commands/config/remove.ts"],"sourcesContent":["import * as clack from '@clack/prompts'\nimport { isCancel } from '@clack/prompts'\nimport { getModelOverrides, removeModelOverride, requireConfigPath } from './config.js'\n\n/** Run the interactive \"Remove model override\" flow. */\nexport async function removeOverrideCommand(): Promise<void> {\n clack.intro('Remove Model Override')\n\n const configPath = requireConfigPath()\n const overrides = getModelOverrides(configPath)\n const keys = Object.keys(overrides)\n\n if (keys.length === 0) {\n clack.log.warn('No model overrides found.')\n clack.outro('')\n return\n }\n\n const selected = await clack.multiselect({\n message: 'Select overrides to remove',\n options: keys.map(k => ({\n value: k,\n label: k,\n })),\n required: true,\n })\n\n if (isCancel(selected)) return\n\n const toRemove = selected as string[]\n\n const confirmed = await clack.confirm({\n message: `Remove ${toRemove.length} override(s)?`,\n })\n\n if (isCancel(confirmed) || !confirmed) {\n clack.outro('Cancelled')\n return\n }\n\n for (const key of toRemove) {\n removeModelOverride(configPath, key)\n }\n\n clack.outro(`✓ ${toRemove.length} override(s) removed`)\n}\n"],"mappings":";;;;;AAKA,eAAsB,wBAAuC;CAC3D,MAAM,MAAM,uBAAuB;CAEnC,MAAM,aAAa,kBAAkB;CACrC,MAAM,YAAY,kBAAkB,UAAU;CAC9C,MAAM,OAAO,OAAO,KAAK,SAAS;CAElC,IAAI,KAAK,WAAW,GAAG;EACrB,MAAM,IAAI,KAAK,2BAA2B;EAC1C,MAAM,MAAM,EAAE;EACd;CACF;CAEA,MAAM,WAAW,MAAM,MAAM,YAAY;EACvC,SAAS;EACT,SAAS,KAAK,KAAI,OAAM;GACtB,OAAO;GACP,OAAO;EACT,EAAE;EACF,UAAU;CACZ,CAAC;CAED,IAAI,SAAS,QAAQ,GAAG;CAExB,MAAM,WAAW;CAEjB,MAAM,YAAY,MAAM,MAAM,QAAQ,EACpC,SAAS,UAAU,SAAS,OAAO,eACrC,CAAC;CAED,IAAI,SAAS,SAAS,KAAK,CAAC,WAAW;EACrC,MAAM,MAAM,WAAW;EACvB;CACF;CAEA,KAAK,MAAM,OAAO,UAChB,oBAAoB,YAAY,GAAG;CAGrC,MAAM,MAAM,KAAK,SAAS,OAAO,qBAAqB;AACxD"}
1
+ {"version":3,"file":"remove.mjs","names":["clack.multiselect","isCancel","clack.confirm"],"sources":["../src/commands/config/remove.ts"],"sourcesContent":["import * as clack from '@clack/prompts'\nimport { isCancel } from '@clack/prompts'\nimport { getModelOverrides, removeModelOverride, requireConfigPath } from './config.js'\n\n/** Run the interactive \"Remove model override\" flow. */\nexport async function removeOverrideCommand(): Promise<void> {\n clack.intro('Remove Model Override')\n\n const configPath = requireConfigPath()\n const overrides = getModelOverrides(configPath)\n const keys = Object.keys(overrides)\n\n if (keys.length === 0) {\n clack.log.warn('No model overrides found.')\n clack.outro('')\n return\n }\n\n const selected = await clack.multiselect({\n message: 'Select overrides to remove',\n options: keys.map(k => ({\n value: k,\n label: k,\n })),\n required: true,\n })\n\n if (isCancel(selected)) return\n\n const toRemove = selected as string[]\n\n const confirmed = await clack.confirm({\n message: `Remove ${toRemove.length} override(s)?`,\n })\n\n if (isCancel(confirmed) || !confirmed) {\n clack.outro('Cancelled')\n return\n }\n\n for (const key of toRemove) {\n removeModelOverride(configPath, key)\n }\n\n clack.outro(`✓ ${toRemove.length} override(s) removed`)\n}\n"],"mappings":";;;;AAKA,eAAsB,wBAAuC;CAC3D,GAAY,uBAAuB;CAEnC,MAAM,aAAa,kBAAkB;CACrC,MAAM,YAAY,kBAAkB,UAAU;CAC9C,MAAM,OAAO,OAAO,KAAK,SAAS;CAElC,IAAI,KAAK,WAAW,GAAG;EACrB,EAAU,KAAK,2BAA2B;EAC1C,GAAY,EAAE;EACd;CACF;CAEA,MAAM,WAAW,MAAMA,GAAkB;EACvC,SAAS;EACT,SAAS,KAAK,KAAI,OAAM;GACtB,OAAO;GACP,OAAO;EACT,EAAE;EACF,UAAU;CACZ,CAAC;CAED,IAAIC,IAAS,QAAQ,GAAG;CAExB,MAAM,WAAW;CAEjB,MAAM,YAAY,MAAMC,GAAc,EACpC,SAAS,UAAU,SAAS,OAAO,eACrC,CAAC;CAED,IAAID,IAAS,SAAS,KAAK,CAAC,WAAW;EACrC,GAAY,WAAW;EACvB;CACF;CAEA,KAAK,MAAM,OAAO,UAChB,oBAAoB,YAAY,GAAG;CAGrC,GAAY,KAAK,SAAS,OAAO,qBAAqB;AACxD"}
package/dist/validate.mjs CHANGED
@@ -1,23 +1,23 @@
1
- import { l as readConfigFile, o as findConfigFile } from "./proxy.mjs";
2
- import * as clack from "@clack/prompts";
1
+ import { i as readConfigFile, n as findConfigFile } from "./cli.mjs";
2
+ import { intro as ye, log as R, outro as fe } from "./dist.mjs";
3
3
  //#region src/commands/config/validate.ts
4
4
  /** Run config validation and display results. */
5
5
  async function validateConfigCommand() {
6
- clack.intro("Validate Config");
6
+ ye("Validate Config");
7
7
  const configPath = findConfigFile();
8
8
  if (!configPath) {
9
- clack.log.error("No config file found.");
10
- clack.outro("");
9
+ R.error("No config file found.");
10
+ fe("");
11
11
  return;
12
12
  }
13
- clack.log.info(`Checking ${configPath}...`);
13
+ R.info(`Checking ${configPath}...`);
14
14
  try {
15
15
  readConfigFile(configPath);
16
- clack.log.success("Config is valid ✓");
16
+ R.success("Config is valid ✓");
17
17
  } catch (error) {
18
- clack.log.error(String(error));
18
+ R.error(String(error));
19
19
  }
20
- clack.outro("");
20
+ fe("");
21
21
  }
22
22
  //#endregion
23
23
  export { validateConfigCommand };
@@ -1 +1 @@
1
- {"version":3,"file":"validate.mjs","names":[],"sources":["../src/commands/config/validate.ts"],"sourcesContent":["import * as clack from '@clack/prompts'\nimport { findConfigFile, readConfigFile } from '../../config.js'\n\n/** Run config validation and display results. */\nexport async function validateConfigCommand(): Promise<void> {\n clack.intro('Validate Config')\n\n const configPath = findConfigFile()\n if (!configPath) {\n clack.log.error('No config file found.')\n clack.outro('')\n return\n }\n\n clack.log.info(`Checking ${configPath}...`)\n\n try {\n readConfigFile(configPath)\n clack.log.success('Config is valid ✓')\n } catch (error) {\n clack.log.error(String(error))\n }\n\n clack.outro('')\n}\n"],"mappings":";;;;AAIA,eAAsB,wBAAuC;CAC3D,MAAM,MAAM,iBAAiB;CAE7B,MAAM,aAAa,eAAe;CAClC,IAAI,CAAC,YAAY;EACf,MAAM,IAAI,MAAM,uBAAuB;EACvC,MAAM,MAAM,EAAE;EACd;CACF;CAEA,MAAM,IAAI,KAAK,YAAY,WAAW,IAAI;CAE1C,IAAI;EACF,eAAe,UAAU;EACzB,MAAM,IAAI,QAAQ,mBAAmB;CACvC,SAAS,OAAO;EACd,MAAM,IAAI,MAAM,OAAO,KAAK,CAAC;CAC/B;CAEA,MAAM,MAAM,EAAE;AAChB"}
1
+ {"version":3,"file":"validate.mjs","names":[],"sources":["../src/commands/config/validate.ts"],"sourcesContent":["import * as clack from '@clack/prompts'\nimport { findConfigFile, readConfigFile } from '../../config.js'\n\n/** Run config validation and display results. */\nexport async function validateConfigCommand(): Promise<void> {\n clack.intro('Validate Config')\n\n const configPath = findConfigFile()\n if (!configPath) {\n clack.log.error('No config file found.')\n clack.outro('')\n return\n }\n\n clack.log.info(`Checking ${configPath}...`)\n\n try {\n readConfigFile(configPath)\n clack.log.success('Config is valid ✓')\n } catch (error) {\n clack.log.error(String(error))\n }\n\n clack.outro('')\n}\n"],"mappings":";;;;AAIA,eAAsB,wBAAuC;CAC3D,GAAY,iBAAiB;CAE7B,MAAM,aAAa,eAAe;CAClC,IAAI,CAAC,YAAY;EACf,EAAU,MAAM,uBAAuB;EACvC,GAAY,EAAE;EACd;CACF;CAEA,EAAU,KAAK,YAAY,WAAW,IAAI;CAE1C,IAAI;EACF,eAAe,UAAU;EACzB,EAAU,QAAQ,mBAAmB;CACvC,SAAS,OAAO;EACd,EAAU,MAAM,OAAO,KAAK,CAAC;CAC/B;CAEA,GAAY,EAAE;AAChB"}