slack-term 1.19.0 → 1.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SKILL.md +14 -0
- package/dist/cli.js +79 -77
- package/package.json +1 -1
- package/ts/cli.ts +93 -6
- package/ts/format.ts +113 -2
- package/ts/slack.ts +7 -0
package/dist/cli.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
|
-
import{createRequire as s1}from"node:module";var k1=Object.create;var{getPrototypeOf:d1,defineProperty:p0,getOwnPropertyNames:i1}=Object;var n1=Object.prototype.hasOwnProperty;function t1(D){return this[D]}var l1,o1,m0=(D,u,F)=>{var E=D!=null&&typeof D==="object";if(E){var C=u?l1??=new WeakMap:o1??=new WeakMap,B=C.get(D);if(B)return B}F=D!=null?k1(d1(D)):{};let $=u||!D||!D.__esModule?p0(F,"default",{value:D,enumerable:!0}):F;for(let z of i1(D))if(!n1.call($,z))p0($,z,{get:t1.bind(D,z),enumerable:!0});if(E)C.set(D,$);return $};var y0=(D,u)=>()=>(u||D((u={exports:{}}).exports,u),u.exports);var yD=s1(import.meta.url);var C2=y0((g7,E2)=>{E2.exports=()=>{return/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g}});var P2=y0((P9,S2)=>{S2.exports=function(u){if(u===void 0)u=2;if(u>=Error.stackTraceLimit)throw TypeError("getCallerFile(position) requires position be less then Error.stackTraceLimit but position was: `"+u+"` and Error.stackTraceLimit was: `"+Error.stackTraceLimit+"`");var F=Error.prepareStackTrace;Error.prepareStackTrace=function(C,B){return B};var E=Error().stack;if(Error.prepareStackTrace=F,E!==null&&typeof E==="object")return E[u]?E[u].getFileName():void 0}});import{createHash as n6}from"crypto";import{existsSync as v1,readFileSync as t6,mkdirSync as l6,writeFileSync as o6}from"fs";import{homedir as h1}from"os";import{join as Wu}from"path";import{notStrictEqual as f3,strictEqual as h3}from"assert";var r1={right:D3,center:u3};class g0{constructor(D){var u;this.width=D.width,this.wrap=(u=D.wrap)!==null&&u!==void 0?u:!0,this.rows=[]}span(...D){let u=this.div(...D);u.span=!0}resetOutput(){this.rows=[]}div(...D){if(D.length===0)this.div("");if(this.wrap&&this.shouldApplyLayoutDSL(...D)&&typeof D[0]==="string")return this.applyLayoutDSL(D[0]);let u=D.map((F)=>{if(typeof F==="string")return this.colFromString(F);return F});return this.rows.push(u),u}shouldApplyLayoutDSL(...D){return D.length===1&&typeof D[0]==="string"&&/[\t\n]/.test(D[0])}applyLayoutDSL(D){let u=D.split(`
|
|
4
|
-
`).map((E)=>E.split("\t")),F=0;return u.forEach((E)=>{if(E.length>1&&
|
|
5
|
-
`)}rowToString(D,u){return this.rasterize(D).forEach((F,E)=>{let C="";F.forEach((B,$)=>{let{width:
|
|
3
|
+
import{createRequire as u3}from"node:module";var t1=Object.create;var{getPrototypeOf:o1,defineProperty:y0,getOwnPropertyNames:s1}=Object;var r1=Object.prototype.hasOwnProperty;function a1(D){return this[D]}var e1,D3,c0=(D,u,F)=>{var E=D!=null&&typeof D==="object";if(E){var C=u?e1??=new WeakMap:D3??=new WeakMap,B=C.get(D);if(B)return B}F=D!=null?t1(o1(D)):{};let $=u||!D||!D.__esModule?y0(F,"default",{value:D,enumerable:!0}):F;for(let G of s1(D))if(!r1.call($,G))y0($,G,{get:a1.bind(D,G),enumerable:!0});if(E)C.set(D,$);return $};var g0=(D,u)=>()=>(u||D((u={exports:{}}).exports,u),u.exports);var PD=u3(import.meta.url);var $2=g0((u9,B2)=>{B2.exports=()=>{return/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g}});var x2=g0((k9,w2)=>{w2.exports=function(u){if(u===void 0)u=2;if(u>=Error.stackTraceLimit)throw TypeError("getCallerFile(position) requires position be less then Error.stackTraceLimit but position was: `"+u+"` and Error.stackTraceLimit was: `"+Error.stackTraceLimit+"`");var F=Error.prepareStackTrace;Error.prepareStackTrace=function(C,B){return B};var E=Error().stack;if(Error.prepareStackTrace=F,E!==null&&typeof E==="object")return E[u]?E[u].getFileName():void 0}});import{createHash as E7}from"crypto";import{existsSync as c1,readFileSync as C7,mkdirSync as B7,writeFileSync as g1}from"fs";import{homedir as y1}from"os";import{join as tD}from"path";import{notStrictEqual as y3,strictEqual as c3}from"assert";var F3={right:B3,center:$3};class d0{constructor(D){var u;this.width=D.width,this.wrap=(u=D.wrap)!==null&&u!==void 0?u:!0,this.rows=[]}span(...D){let u=this.div(...D);u.span=!0}resetOutput(){this.rows=[]}div(...D){if(D.length===0)this.div("");if(this.wrap&&this.shouldApplyLayoutDSL(...D)&&typeof D[0]==="string")return this.applyLayoutDSL(D[0]);let u=D.map((F)=>{if(typeof F==="string")return this.colFromString(F);return F});return this.rows.push(u),u}shouldApplyLayoutDSL(...D){return D.length===1&&typeof D[0]==="string"&&/[\t\n]/.test(D[0])}applyLayoutDSL(D){let u=D.split(`
|
|
4
|
+
`).map((E)=>E.split("\t")),F=0;return u.forEach((E)=>{if(E.length>1&&HD.stringWidth(E[0])>F)F=Math.min(Math.floor(this.width*0.5),HD.stringWidth(E[0]))}),u.forEach((E)=>{this.div(...E.map((C,B)=>{return{text:C.trim(),padding:this.measurePadding(C),width:B===0&&E.length>1?F:void 0}}))}),this.rows[this.rows.length-1]}colFromString(D){return{text:D,padding:this.measurePadding(D)}}measurePadding(D){let u=HD.stripAnsi(D);return[0,u.match(/\s*$/)[0].length,0,u.match(/^\s*/)[0].length]}toString(){let D=[];return this.rows.forEach((u)=>{this.rowToString(u,D)}),D.filter((u)=>!u.hidden).map((u)=>u.text).join(`
|
|
5
|
+
`)}rowToString(D,u){return this.rasterize(D).forEach((F,E)=>{let C="";F.forEach((B,$)=>{let{width:G}=D[$],Z=this.negatePadding(D[$]),z=B;if(Z>HD.stringWidth(B))z+=" ".repeat(Z-HD.stringWidth(B));if(D[$].align&&D[$].align!=="left"&&this.wrap){let J=F3[D[$].align];if(z=J(z,Z),HD.stringWidth(z)<Z)z+=" ".repeat((G||0)-HD.stringWidth(z)-1)}let Q=D[$].padding||[0,0,0,0];if(Q[3])C+=" ".repeat(Q[3]);if(C+=k0(D[$],z,"| "),C+=z,C+=k0(D[$],z," |"),Q[1])C+=" ".repeat(Q[1]);if(E===0&&u.length>0)C=this.renderInline(C,u[u.length-1])}),u.push({text:C.replace(/ +$/,""),span:D.span})}),u}renderInline(D,u){let F=D.match(/^ */),E=F?F[0].length:0,C=u.text,B=HD.stringWidth(C.trimRight());if(!u.span)return D;if(!this.wrap)return u.hidden=!0,C+D;if(E<B)return D;return u.hidden=!0,C.trimRight()+" ".repeat(E-B)+D.trimLeft()}rasterize(D){let u=[],F=this.columnWidths(D),E;return D.forEach((C,B)=>{if(C.width=F[B],this.wrap)E=HD.wrap(C.text,this.negatePadding(C),{hard:!0}).split(`
|
|
6
6
|
`);else E=C.text.split(`
|
|
7
|
-
`);if(C.border)E.unshift("."+"-".repeat(this.negatePadding(C)+2)+"."),E.push("'"+"-".repeat(this.negatePadding(C)+2)+"'");if(C.padding)E.unshift(...Array(C.padding[0]||0).fill("")),E.push(...Array(C.padding[2]||0).fill(""));E.forEach(($,z)=>{if(!u[z])u.push([]);let Z=u[z];for(let G=0;G<B;G++)if(Z[G]===void 0)Z.push("");Z.push($)})}),u}negatePadding(D){let u=D.width||0;if(D.padding)u-=(D.padding[3]||0)+(D.padding[1]||0);if(D.border)u-=4;return u}columnWidths(D){if(!this.wrap)return D.map((B)=>{return B.width||VD.stringWidth(B.text)});let u=D.length,F=this.width,E=D.map((B)=>{if(B.width)return u--,F-=B.width,B.width;return}),C=u?Math.floor(F/u):0;return E.map((B,$)=>{if(B===void 0)return Math.max(C,a1(D[$]));return B})}}function c0(D,u,F){if(D.border){if(/[.']-+[.']/.test(u))return"";if(u.trim().length!==0)return F;return" "}return""}function a1(D){let u=D.padding||[],F=1+(u[3]||0)+(u[1]||0);if(D.border)return F+4;return F}function e1(){if(typeof process==="object"&&process.stdout&&process.stdout.columns)return process.stdout.columns;return 80}function D3(D,u){D=D.trim();let F=VD.stringWidth(D);if(F<u)return" ".repeat(u-F)+D;return D}function u3(D,u){D=D.trim();let F=VD.stringWidth(D);if(F>=u)return D;return" ".repeat(u-F>>1)+D}var VD;function k0(D,u){return VD=u,new g0({width:(D===null||D===void 0?void 0:D.width)||e1(),wrap:D===null||D===void 0?void 0:D.wrap})}function NF({onlyFirst:D=!1}={}){return new RegExp("(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]",D?void 0:"g")}var F3=NF();function oD(D){if(typeof D!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);if(!D.includes("\x1B")&&!D.includes(""))return D;return D.replace(F3,"")}var d0=161,i0=1114109,n0=[161,161,164,164,167,168,170,170,173,174,176,180,182,186,188,191,198,198,208,208,215,216,222,225,230,230,232,234,236,237,240,240,242,243,247,250,252,252,254,254,257,257,273,273,275,275,283,283,294,295,299,299,305,307,312,312,319,322,324,324,328,331,333,333,338,339,358,359,363,363,462,462,464,464,466,466,468,468,470,470,472,472,474,474,476,476,593,593,609,609,708,708,711,711,713,715,717,717,720,720,728,731,733,733,735,735,768,879,913,929,931,937,945,961,963,969,1025,1025,1040,1103,1105,1105,8208,8208,8211,8214,8216,8217,8220,8221,8224,8226,8228,8231,8240,8240,8242,8243,8245,8245,8251,8251,8254,8254,8308,8308,8319,8319,8321,8324,8364,8364,8451,8451,8453,8453,8457,8457,8467,8467,8470,8470,8481,8482,8486,8486,8491,8491,8531,8532,8539,8542,8544,8555,8560,8569,8585,8585,8592,8601,8632,8633,8658,8658,8660,8660,8679,8679,8704,8704,8706,8707,8711,8712,8715,8715,8719,8719,8721,8721,8725,8725,8730,8730,8733,8736,8739,8739,8741,8741,8743,8748,8750,8750,8756,8759,8764,8765,8776,8776,8780,8780,8786,8786,8800,8801,8804,8807,8810,8811,8814,8815,8834,8835,8838,8839,8853,8853,8857,8857,8869,8869,8895,8895,8978,8978,9312,9449,9451,9547,9552,9587,9600,9615,9618,9621,9632,9633,9635,9641,9650,9651,9654,9655,9660,9661,9664,9665,9670,9672,9675,9675,9678,9681,9698,9701,9711,9711,9733,9734,9737,9737,9742,9743,9756,9756,9758,9758,9792,9792,9794,9794,9824,9825,9827,9829,9831,9834,9836,9837,9839,9839,9886,9887,9919,9919,9926,9933,9935,9939,9941,9953,9955,9955,9960,9961,9963,9969,9972,9972,9974,9977,9979,9980,9982,9983,10045,10045,10102,10111,11094,11097,12872,12879,57344,63743,65024,65039,65533,65533,127232,127242,127248,127277,127280,127337,127344,127373,127375,127376,127387,127404,917760,917999,983040,1048573,1048576,1114109],t0=12288,l0=65510,o0=[12288,12288,65281,65376,65504,65510];var s0=4352,r0=262141,RF=[4352,4447,8986,8987,9001,9002,9193,9196,9200,9200,9203,9203,9725,9726,9748,9749,9776,9783,9800,9811,9855,9855,9866,9871,9875,9875,9889,9889,9898,9899,9917,9918,9924,9925,9934,9934,9940,9940,9962,9962,9970,9971,9973,9973,9978,9978,9981,9981,9989,9989,9994,9995,10024,10024,10060,10060,10062,10062,10067,10069,10071,10071,10133,10135,10160,10160,10175,10175,11035,11036,11088,11088,11093,11093,11904,11929,11931,12019,12032,12245,12272,12287,12289,12350,12353,12438,12441,12543,12549,12591,12593,12686,12688,12773,12783,12830,12832,12871,12880,42124,42128,42182,43360,43388,44032,55203,63744,64255,65040,65049,65072,65106,65108,65126,65128,65131,94176,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,119552,119638,119648,119670,126980,126980,127183,127183,127374,127374,127377,127386,127488,127490,127504,127547,127552,127560,127568,127569,127584,127589,127744,127776,127789,127797,127799,127868,127870,127891,127904,127946,127951,127955,127968,127984,127988,127988,127992,128062,128064,128064,128066,128252,128255,128317,128331,128334,128336,128359,128378,128378,128405,128406,128420,128420,128507,128591,128640,128709,128716,128716,128720,128722,128725,128728,128732,128735,128747,128748,128756,128764,128992,129003,129008,129008,129292,129338,129340,129349,129351,129535,129648,129660,129664,129674,129678,129734,129736,129736,129741,129756,129759,129770,129775,129784,131072,196605,196608,262141];var ku=(D,u)=>{let F=0,E=Math.floor(D.length/2)-1;while(F<=E){let C=Math.floor((F+E)/2),B=C*2;if(u<D[B])E=C-1;else if(u>D[B+1])F=C+1;else return!0}return!1};var a0=19968,[E3,C3]=B3(RF);function B3(D){let u=D[0],F=D[1];for(let E=0;E<D.length;E+=2){let C=D[E],B=D[E+1];if(a0>=C&&a0<=B)return[C,B];if(B-C>F-u)u=C,F=B}return[u,F]}var e0=(D)=>{if(D<d0||D>i0)return!1;return ku(n0,D)},D2=(D)=>{if(D<t0||D>l0)return!1;return ku(o0,D)};var u2=(D)=>{if(D>=E3&&D<=C3)return!0;if(D<s0||D>r0)return!1;return ku(RF,D)};function $3(D){if(!Number.isSafeInteger(D))throw TypeError(`Expected a code point, got \`${typeof D}\`.`)}function F2(D,{ambiguousAsWide:u=!1}={}){if($3(D),D2(D)||u2(D)||u&&e0(D))return 2;return 1}var B2=m0(C2(),1),z3=new Intl.Segmenter,G3=/^\p{Default_Ignorable_Code_Point}$/u;function RD(D,u={}){if(typeof D!=="string"||D.length===0)return 0;let{ambiguousIsNarrow:F=!0,countAnsiEscapeCodes:E=!1}=u;if(!E)D=oD(D);if(D.length===0)return 0;let C=0,B={ambiguousAsWide:!F};for(let{segment:$}of z3.segment(D)){let z=$.codePointAt(0);if(z<=31||z>=127&&z<=159)continue;if(z>=8203&&z<=8207||z===65279)continue;if(z>=768&&z<=879||z>=6832&&z<=6911||z>=7616&&z<=7679||z>=8400&&z<=8447||z>=65056&&z<=65071)continue;if(z>=55296&&z<=57343)continue;if(z>=65024&&z<=65039)continue;if(G3.test($))continue;if(B2.default().test($)){C+=2;continue}C+=F2(z,B)}return C}var $2=(D=0)=>(u)=>`\x1B[${u+D}m`,z2=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,G2=(D=0)=>(u,F,E)=>`\x1B[${38+D};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]}},n7=Object.keys(r.modifier),Z3=Object.keys(r.color),J3=Object.keys(r.bgColor),t7=[...Z3,...J3];function X3(){let D=new Map;for(let[u,F]of Object.entries(r)){for(let[E,C]of Object.entries(F))r[E]={open:`\x1B[${C[0]}m`,close:`\x1B[${C[1]}m`},F[E]=r[E],D.set(C[0],C[1]);Object.defineProperty(r,u,{value:F,enumerable:!1})}return Object.defineProperty(r,"codes",{value:D,enumerable:!1}),r.color.close="\x1B[39m",r.bgColor.close="\x1B[49m",r.color.ansi=$2(),r.color.ansi256=z2(),r.color.ansi16m=G2(),r.bgColor.ansi=$2(10),r.bgColor.ansi256=z2(10),r.bgColor.ansi16m=G2(10),Object.defineProperties(r,{rgbToAnsi256:{value(u,F,E){if(u===F&&F===E){if(u<8)return 16;if(u>248)return 231;return Math.round((u-8)/247*24)+232}return 16+36*Math.round(u/255*5)+6*Math.round(F/255*5)+Math.round(E/255*5)},enumerable:!1},hexToRgb:{value(u){let F=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!F)return[0,0,0];let[E]=F;if(E.length===3)E=[...E].map((B)=>B+B).join("");let C=Number.parseInt(E,16);return[C>>16&255,C>>8&255,C&255]},enumerable:!1},hexToAnsi256:{value:(u)=>r.rgbToAnsi256(...r.hexToRgb(u)),enumerable:!1},ansi256ToAnsi:{value(u){if(u<8)return 30+u;if(u<16)return 90+(u-8);let F,E,C;if(u>=232)F=((u-232)*10+8)/255,E=F,C=F;else{u-=16;let z=u%36;F=Math.floor(u/36)/5,E=Math.floor(z/6)/5,C=z%6/5}let B=Math.max(F,E,C)*2;if(B===0)return 30;let $=30+(Math.round(C)<<2|Math.round(E)<<1|Math.round(F));if(B===2)$+=60;return $},enumerable:!1},rgbToAnsi:{value:(u,F,E)=>r.ansi256ToAnsi(r.rgbToAnsi256(u,F,E)),enumerable:!1},hexToAnsi:{value:(u)=>r.ansi256ToAnsi(r.hexToAnsi256(u)),enumerable:!1}}),r}var Q3=X3(),Z2=Q3;var iu=new Set(["\x1B",""]),O3=39,SF="\x07",Q2="[",Y3="]",O2="m",du=`${Y3}8;;`,J2=(D)=>`${iu.values().next().value}${Q2}${D}${O2}`,X2=(D)=>`${iu.values().next().value}${du}${D}${SF}`,W3=(D)=>D.split(" ").map((u)=>RD(u)),TF=(D,u,F)=>{let E=[...u],C=!1,B=!1,$=RD(oD(D.at(-1)));for(let[z,Z]of E.entries()){let G=RD(Z);if($+G<=F)D[D.length-1]+=Z;else D.push(Z),$=0;if(iu.has(Z))C=!0,B=E.slice(z+1,z+1+du.length).join("")===du;if(C){if(B){if(Z===SF)C=!1,B=!1}else if(Z===O2)C=!1;continue}if($+=G,$===F&&z<E.length-1)D.push(""),$=0}if(!$&&D.at(-1).length>0&&D.length>1)D[D.length-2]+=D.pop()},H3=(D)=>{let u=D.split(" "),F=u.length;while(F>0){if(RD(u[F-1])>0)break;F--}if(F===u.length)return D;return u.slice(0,F).join(" ")+u.slice(F).join("")},V3=(D,u,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let E="",C,B,$=W3(D),z=[""];for(let[J,O]of D.split(" ").entries()){if(F.trim!==!1)z[z.length-1]=z.at(-1).trimStart();let W=RD(z.at(-1));if(J!==0){if(W>=u&&(F.wordWrap===!1||F.trim===!1))z.push(""),W=0;if(W>0||F.trim===!1)z[z.length-1]+=" ",W++}if(F.hard&&$[J]>u){let H=u-W,Y=1+Math.floor(($[J]-H-1)/u);if(Math.floor(($[J]-1)/u)<Y)z.push("");TF(z,O,u);continue}if(W+$[J]>u&&W>0&&$[J]>0){if(F.wordWrap===!1&&W<u){TF(z,O,u);continue}z.push("")}if(W+$[J]>u&&F.wordWrap===!1){TF(z,O,u);continue}z[z.length-1]+=O}if(F.trim!==!1)z=z.map((J)=>H3(J));let Z=z.join(`
|
|
8
|
-
`),
|
|
9
|
-
`){if(B)E+=
|
|
10
|
-
`){if(C&&W)E+=
|
|
7
|
+
`);if(C.border)E.unshift("."+"-".repeat(this.negatePadding(C)+2)+"."),E.push("'"+"-".repeat(this.negatePadding(C)+2)+"'");if(C.padding)E.unshift(...Array(C.padding[0]||0).fill("")),E.push(...Array(C.padding[2]||0).fill(""));E.forEach(($,G)=>{if(!u[G])u.push([]);let Z=u[G];for(let z=0;z<B;z++)if(Z[z]===void 0)Z.push("");Z.push($)})}),u}negatePadding(D){let u=D.width||0;if(D.padding)u-=(D.padding[3]||0)+(D.padding[1]||0);if(D.border)u-=4;return u}columnWidths(D){if(!this.wrap)return D.map((B)=>{return B.width||HD.stringWidth(B.text)});let u=D.length,F=this.width,E=D.map((B)=>{if(B.width)return u--,F-=B.width,B.width;return}),C=u?Math.floor(F/u):0;return E.map((B,$)=>{if(B===void 0)return Math.max(C,E3(D[$]));return B})}}function k0(D,u,F){if(D.border){if(/[.']-+[.']/.test(u))return"";if(u.trim().length!==0)return F;return" "}return""}function E3(D){let u=D.padding||[],F=1+(u[3]||0)+(u[1]||0);if(D.border)return F+4;return F}function C3(){if(typeof process==="object"&&process.stdout&&process.stdout.columns)return process.stdout.columns;return 80}function B3(D,u){D=D.trim();let F=HD.stringWidth(D);if(F<u)return" ".repeat(u-F)+D;return D}function $3(D,u){D=D.trim();let F=HD.stringWidth(D);if(F>=u)return D;return" ".repeat(u-F>>1)+D}var HD;function i0(D,u){return HD=u,new d0({width:(D===null||D===void 0?void 0:D.width)||C3(),wrap:D===null||D===void 0?void 0:D.wrap})}function RF({onlyFirst:D=!1}={}){return new RegExp("(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]",D?void 0:"g")}var G3=RF();function sD(D){if(typeof D!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);if(!D.includes("\x1B")&&!D.includes(""))return D;return D.replace(G3,"")}var n0=161,l0=1114109,t0=[161,161,164,164,167,168,170,170,173,174,176,180,182,186,188,191,198,198,208,208,215,216,222,225,230,230,232,234,236,237,240,240,242,243,247,250,252,252,254,254,257,257,273,273,275,275,283,283,294,295,299,299,305,307,312,312,319,322,324,324,328,331,333,333,338,339,358,359,363,363,462,462,464,464,466,466,468,468,470,470,472,472,474,474,476,476,593,593,609,609,708,708,711,711,713,715,717,717,720,720,728,731,733,733,735,735,768,879,913,929,931,937,945,961,963,969,1025,1025,1040,1103,1105,1105,8208,8208,8211,8214,8216,8217,8220,8221,8224,8226,8228,8231,8240,8240,8242,8243,8245,8245,8251,8251,8254,8254,8308,8308,8319,8319,8321,8324,8364,8364,8451,8451,8453,8453,8457,8457,8467,8467,8470,8470,8481,8482,8486,8486,8491,8491,8531,8532,8539,8542,8544,8555,8560,8569,8585,8585,8592,8601,8632,8633,8658,8658,8660,8660,8679,8679,8704,8704,8706,8707,8711,8712,8715,8715,8719,8719,8721,8721,8725,8725,8730,8730,8733,8736,8739,8739,8741,8741,8743,8748,8750,8750,8756,8759,8764,8765,8776,8776,8780,8780,8786,8786,8800,8801,8804,8807,8810,8811,8814,8815,8834,8835,8838,8839,8853,8853,8857,8857,8869,8869,8895,8895,8978,8978,9312,9449,9451,9547,9552,9587,9600,9615,9618,9621,9632,9633,9635,9641,9650,9651,9654,9655,9660,9661,9664,9665,9670,9672,9675,9675,9678,9681,9698,9701,9711,9711,9733,9734,9737,9737,9742,9743,9756,9756,9758,9758,9792,9792,9794,9794,9824,9825,9827,9829,9831,9834,9836,9837,9839,9839,9886,9887,9919,9919,9926,9933,9935,9939,9941,9953,9955,9955,9960,9961,9963,9969,9972,9972,9974,9977,9979,9980,9982,9983,10045,10045,10102,10111,11094,11097,12872,12879,57344,63743,65024,65039,65533,65533,127232,127242,127248,127277,127280,127337,127344,127373,127375,127376,127387,127404,917760,917999,983040,1048573,1048576,1114109],o0=12288,s0=65510,r0=[12288,12288,65281,65376,65504,65510];var a0=4352,e0=262141,SF=[4352,4447,8986,8987,9001,9002,9193,9196,9200,9200,9203,9203,9725,9726,9748,9749,9776,9783,9800,9811,9855,9855,9866,9871,9875,9875,9889,9889,9898,9899,9917,9918,9924,9925,9934,9934,9940,9940,9962,9962,9970,9971,9973,9973,9978,9978,9981,9981,9989,9989,9994,9995,10024,10024,10060,10060,10062,10062,10067,10069,10071,10071,10133,10135,10160,10160,10175,10175,11035,11036,11088,11088,11093,11093,11904,11929,11931,12019,12032,12245,12272,12287,12289,12350,12353,12438,12441,12543,12549,12591,12593,12686,12688,12773,12783,12830,12832,12871,12880,42124,42128,42182,43360,43388,44032,55203,63744,64255,65040,65049,65072,65106,65108,65126,65128,65131,94176,94180,94192,94198,94208,101589,101631,101662,101760,101874,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,119552,119638,119648,119670,126980,126980,127183,127183,127374,127374,127377,127386,127488,127490,127504,127547,127552,127560,127568,127569,127584,127589,127744,127776,127789,127797,127799,127868,127870,127891,127904,127946,127951,127955,127968,127984,127988,127988,127992,128062,128064,128064,128066,128252,128255,128317,128331,128334,128336,128359,128378,128378,128405,128406,128420,128420,128507,128591,128640,128709,128716,128716,128720,128722,128725,128728,128732,128735,128747,128748,128756,128764,128992,129003,129008,129008,129292,129338,129340,129349,129351,129535,129648,129660,129664,129674,129678,129734,129736,129736,129741,129756,129759,129770,129775,129784,131072,196605,196608,262141];var du=(D,u)=>{let F=0,E=Math.floor(D.length/2)-1;while(F<=E){let C=Math.floor((F+E)/2),B=C*2;if(u<D[B])E=C-1;else if(u>D[B+1])F=C+1;else return!0}return!1};var D2=19968,[z3,Z3]=J3(SF);function J3(D){let u=D[0],F=D[1];for(let E=0;E<D.length;E+=2){let C=D[E],B=D[E+1];if(D2>=C&&D2<=B)return[C,B];if(B-C>F-u)u=C,F=B}return[u,F]}var u2=(D)=>{if(D<n0||D>l0)return!1;return du(t0,D)},F2=(D)=>{if(D<o0||D>s0)return!1;return du(r0,D)};var E2=(D)=>{if(D>=z3&&D<=Z3)return!0;if(D<a0||D>e0)return!1;return du(SF,D)};function X3(D){if(!Number.isSafeInteger(D))throw TypeError(`Expected a code point, got \`${typeof D}\`.`)}function C2(D,{ambiguousAsWide:u=!1}={}){if(X3(D),F2(D)||E2(D)||u&&u2(D))return 2;return 1}var G2=c0($2(),1),Q3=new Intl.Segmenter,Y3=/^\p{Default_Ignorable_Code_Point}$/u;function TD(D,u={}){if(typeof D!=="string"||D.length===0)return 0;let{ambiguousIsNarrow:F=!0,countAnsiEscapeCodes:E=!1}=u;if(!E)D=sD(D);if(D.length===0)return 0;let C=0,B={ambiguousAsWide:!F};for(let{segment:$}of Q3.segment(D)){let G=$.codePointAt(0);if(G<=31||G>=127&&G<=159)continue;if(G>=8203&&G<=8207||G===65279)continue;if(G>=768&&G<=879||G>=6832&&G<=6911||G>=7616&&G<=7679||G>=8400&&G<=8447||G>=65056&&G<=65071)continue;if(G>=55296&&G<=57343)continue;if(G>=65024&&G<=65039)continue;if(Y3.test($))continue;if(G2.default().test($)){C+=2;continue}C+=C2(G,B)}return C}var z2=(D=0)=>(u)=>`\x1B[${u+D}m`,Z2=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,J2=(D=0)=>(u,F,E)=>`\x1B[${38+D};2;${u};${F};${E}m`,a={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]}},B9=Object.keys(a.modifier),O3=Object.keys(a.color),W3=Object.keys(a.bgColor),$9=[...O3,...W3];function V3(){let D=new Map;for(let[u,F]of Object.entries(a)){for(let[E,C]of Object.entries(F))a[E]={open:`\x1B[${C[0]}m`,close:`\x1B[${C[1]}m`},F[E]=a[E],D.set(C[0],C[1]);Object.defineProperty(a,u,{value:F,enumerable:!1})}return Object.defineProperty(a,"codes",{value:D,enumerable:!1}),a.color.close="\x1B[39m",a.bgColor.close="\x1B[49m",a.color.ansi=z2(),a.color.ansi256=Z2(),a.color.ansi16m=J2(),a.bgColor.ansi=z2(10),a.bgColor.ansi256=Z2(10),a.bgColor.ansi16m=J2(10),Object.defineProperties(a,{rgbToAnsi256:{value(u,F,E){if(u===F&&F===E){if(u<8)return 16;if(u>248)return 231;return Math.round((u-8)/247*24)+232}return 16+36*Math.round(u/255*5)+6*Math.round(F/255*5)+Math.round(E/255*5)},enumerable:!1},hexToRgb:{value(u){let F=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!F)return[0,0,0];let[E]=F;if(E.length===3)E=[...E].map((B)=>B+B).join("");let C=Number.parseInt(E,16);return[C>>16&255,C>>8&255,C&255]},enumerable:!1},hexToAnsi256:{value:(u)=>a.rgbToAnsi256(...a.hexToRgb(u)),enumerable:!1},ansi256ToAnsi:{value(u){if(u<8)return 30+u;if(u<16)return 90+(u-8);let F,E,C;if(u>=232)F=((u-232)*10+8)/255,E=F,C=F;else{u-=16;let G=u%36;F=Math.floor(u/36)/5,E=Math.floor(G/6)/5,C=G%6/5}let B=Math.max(F,E,C)*2;if(B===0)return 30;let $=30+(Math.round(C)<<2|Math.round(E)<<1|Math.round(F));if(B===2)$+=60;return $},enumerable:!1},rgbToAnsi:{value:(u,F,E)=>a.ansi256ToAnsi(a.rgbToAnsi256(u,F,E)),enumerable:!1},hexToAnsi:{value:(u)=>a.ansi256ToAnsi(a.hexToAnsi256(u)),enumerable:!1}}),a}var H3=V3(),X2=H3;var nu=new Set(["\x1B",""]),M3=39,wF="\x07",O2="[",q3="]",W2="m",iu=`${q3}8;;`,Q2=(D)=>`${nu.values().next().value}${O2}${D}${W2}`,Y2=(D)=>`${nu.values().next().value}${iu}${D}${wF}`,U3=(D)=>D.split(" ").map((u)=>TD(u)),PF=(D,u,F)=>{let E=[...u],C=!1,B=!1,$=TD(sD(D.at(-1)));for(let[G,Z]of E.entries()){let z=TD(Z);if($+z<=F)D[D.length-1]+=Z;else D.push(Z),$=0;if(nu.has(Z))C=!0,B=E.slice(G+1,G+1+iu.length).join("")===iu;if(C){if(B){if(Z===wF)C=!1,B=!1}else if(Z===W2)C=!1;continue}if($+=z,$===F&&G<E.length-1)D.push(""),$=0}if(!$&&D.at(-1).length>0&&D.length>1)D[D.length-2]+=D.pop()},K3=(D)=>{let u=D.split(" "),F=u.length;while(F>0){if(TD(u[F-1])>0)break;F--}if(F===u.length)return D;return u.slice(0,F).join(" ")+u.slice(F).join("")},_3=(D,u,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let E="",C,B,$=U3(D),G=[""];for(let[J,Y]of D.split(" ").entries()){if(F.trim!==!1)G[G.length-1]=G.at(-1).trimStart();let W=TD(G.at(-1));if(J!==0){if(W>=u&&(F.wordWrap===!1||F.trim===!1))G.push(""),W=0;if(W>0||F.trim===!1)G[G.length-1]+=" ",W++}if(F.hard&&$[J]>u){let V=u-W,O=1+Math.floor(($[J]-V-1)/u);if(Math.floor(($[J]-1)/u)<O)G.push("");PF(G,Y,u);continue}if(W+$[J]>u&&W>0&&$[J]>0){if(F.wordWrap===!1&&W<u){PF(G,Y,u);continue}G.push("")}if(W+$[J]>u&&F.wordWrap===!1){PF(G,Y,u);continue}G[G.length-1]+=Y}if(F.trim!==!1)G=G.map((J)=>K3(J));let Z=G.join(`
|
|
8
|
+
`),z=[...Z],Q=0;for(let[J,Y]of z.entries()){if(E+=Y,nu.has(Y)){let{groups:V}=new RegExp(`(?:\\${O2}(?<code>\\d+)m|\\${iu}(?<uri>.*)${wF})`).exec(Z.slice(Q))||{groups:{}};if(V.code!==void 0){let O=Number.parseFloat(V.code);C=O===M3?void 0:O}else if(V.uri!==void 0)B=V.uri.length===0?void 0:V.uri}let W=X2.codes.get(Number(C));if(z[J+1]===`
|
|
9
|
+
`){if(B)E+=Y2("");if(C&&W)E+=Q2(W)}else if(Y===`
|
|
10
|
+
`){if(C&&W)E+=Q2(C);if(B)E+=Y2(B)}Q+=Y.length}return E};function xF(D,u,F){return String(D).normalize().replaceAll(`\r
|
|
11
11
|
`,`
|
|
12
12
|
`).split(`
|
|
13
|
-
`).map((E)=>
|
|
14
|
-
`)}function wF(D){return k0(D,{stringWidth:RD,stripAnsi:oD,wrap:PF})}import{dirname as Y2,resolve as W2}from"path";import{readdirSync as M3,statSync as U3}from"fs";function xF(D,u){let F=W2(".",D),E;if(!U3(F).isDirectory())F=Y2(F);while(!0){if(E=u(F,M3(F)),E)return W2(F,E);if(F=Y2(E=F),E===F)break}}import{inspect as v3}from"util";import{fileURLToPath as x2}from"url";import{format as K3}from"util";import{normalize as j3,resolve as A3}from"path";function sD(D){if(!(D!==D.toLowerCase()&&D!==D.toUpperCase()))D=D.toLowerCase();if(D.indexOf("-")===-1&&D.indexOf("_")===-1)return D;else{let F="",E=!1,C=D.match(/^-+/);for(let B=C?C[0].length:0;B<D.length;B++){let $=D.charAt(B);if(E)E=!1,$=$.toUpperCase();if(B!==0&&($==="-"||$==="_"))E=!0;else if($!=="-"&&$!=="_")F+=$}return F}}function nu(D,u){let F=D.toLowerCase();u=u||"-";let E="";for(let C=0;C<D.length;C++){let B=F.charAt(C),$=D.charAt(C);if(B!==$&&C>0)E+=`${u}${F.charAt(C)}`;else E+=$}return E}function tu(D){if(D===null||D===void 0)return!1;if(typeof D==="number")return!0;if(/^0x[0-9a-f]+$/i.test(D))return!0;if(/^0[^.]/.test(D))return!1;return/^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(D)}function H2(D){if(Array.isArray(D))return D.map(($)=>typeof $!=="string"?$+"":$);D=D.trim();let u=0,F=null,E=null,C=null,B=[];for(let $=0;$<D.length;$++){if(F=E,E=D.charAt($),E===" "&&!C){if(F!==" ")u++;continue}if(E===C)C=null;else if((E==="'"||E==='"')&&!C)C=E;if(!B[u])B[u]="";B[u]+=E}return B}var KD;(function(D){D.BOOLEAN="boolean",D.STRING="string",D.NUMBER="number",D.ARRAY="array"})(KD||(KD={}));var bD;class bF{constructor(D){bD=D}parse(D,u){let F=Object.assign({alias:void 0,array:void 0,boolean:void 0,config:void 0,configObjects:void 0,configuration:void 0,coerce:void 0,count:void 0,default:void 0,envPrefix:void 0,narg:void 0,normalize:void 0,string:void 0,number:void 0,__:void 0,key:void 0},u),E=H2(D),C=typeof D==="string",B=q3(Object.assign(Object.create(null),F.alias)),$=Object.assign({"boolean-negation":!0,"camel-case-expansion":!0,"combine-arrays":!1,"dot-notation":!0,"duplicate-arguments-array":!0,"flatten-duplicate-arrays":!0,"greedy-arrays":!0,"halt-at-non-option":!1,"nargs-eats-options":!1,"negation-prefix":"no-","parse-numbers":!0,"parse-positional-numbers":!0,"populate--":!1,"set-placeholder-key":!1,"short-option-groups":!0,"strip-aliased":!1,"strip-dashed":!1,"unknown-options-as-args":!1},F.configuration),z=Object.assign(Object.create(null),F.default),Z=F.configObjects||[],G=F.envPrefix,Q=$["populate--"],J=Q?"--":"_",O=Object.create(null),W=Object.create(null),H=F.__||bD.format,Y={aliases:Object.create(null),arrays:Object.create(null),bools:Object.create(null),strings:Object.create(null),numbers:Object.create(null),counts:Object.create(null),normalize:Object.create(null),configs:Object.create(null),nargs:Object.create(null),coercions:Object.create(null),keys:[]},q=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,j=new RegExp("^--"+$["negation-prefix"]+"(.+)");if([].concat(F.array||[]).filter(Boolean).forEach(function(V){let U=typeof V==="object"?V.key:V,K=Object.keys(V).map(function(_){return{boolean:"bools",string:"strings",number:"numbers"}[_]}).filter(Boolean).pop();if(K)Y[K][U]=!0;Y.arrays[U]=!0,Y.keys.push(U)}),[].concat(F.boolean||[]).filter(Boolean).forEach(function(V){Y.bools[V]=!0,Y.keys.push(V)}),[].concat(F.string||[]).filter(Boolean).forEach(function(V){Y.strings[V]=!0,Y.keys.push(V)}),[].concat(F.number||[]).filter(Boolean).forEach(function(V){Y.numbers[V]=!0,Y.keys.push(V)}),[].concat(F.count||[]).filter(Boolean).forEach(function(V){Y.counts[V]=!0,Y.keys.push(V)}),[].concat(F.normalize||[]).filter(Boolean).forEach(function(V){Y.normalize[V]=!0,Y.keys.push(V)}),typeof F.narg==="object")Object.entries(F.narg).forEach(([V,U])=>{if(typeof U==="number")Y.nargs[V]=U,Y.keys.push(V)});if(typeof F.coerce==="object")Object.entries(F.coerce).forEach(([V,U])=>{if(typeof U==="function")Y.coercions[V]=U,Y.keys.push(V)});if(typeof F.config<"u"){if(Array.isArray(F.config)||typeof F.config==="string")[].concat(F.config).filter(Boolean).forEach(function(V){Y.configs[V]=!0});else if(typeof F.config==="object")Object.entries(F.config).forEach(([V,U])=>{if(typeof U==="boolean"||typeof U==="function")Y.configs[V]=U})}Lu(F.key,B,F.default,Y.arrays),Object.keys(z).forEach(function(V){(Y.aliases[V]||[]).forEach(function(U){z[U]=z[V]})});let N=null;LF();let k=[],w=Object.assign(Object.create(null),{_:[]}),c={};for(let V=0;V<E.length;V++){let U=E[V],K=U.replace(/^-{3,}/,"---"),_,M,S,L,b,ZD;if(U!=="--"&&/^-/.test(U)&&t(U))e(U);else if(K.match(/^---+(=|$)/)){e(U);continue}else if(U.match(/^--.+=/)||!$["short-option-groups"]&&U.match(/^-.+=/)){if(L=U.match(/^--?([^=]+)=([\s\S]*)$/),L!==null&&Array.isArray(L)&&L.length>=3)if(f(L[1],Y.arrays))V=_D(V,L[1],E,L[2]);else if(f(L[1],Y.nargs)!==!1)V=s(V,L[1],E,L[2]);else i(L[1],L[2],!0)}else if(U.match(j)&&$["boolean-negation"]){if(L=U.match(j),L!==null&&Array.isArray(L)&&L.length>=2)M=L[1],i(M,f(M,Y.arrays)?[!1]:!1)}else if(U.match(/^--.+/)||!$["short-option-groups"]&&U.match(/^-[^-]+/)){if(L=U.match(/^--?(.+)/),L!==null&&Array.isArray(L)&&L.length>=2)if(M=L[1],f(M,Y.arrays))V=_D(V,M,E);else if(f(M,Y.nargs)!==!1)V=s(V,M,E);else if(b=E[V+1],b!==void 0&&(!b.match(/^-/)||b.match(q))&&!f(M,Y.bools)&&!f(M,Y.counts))i(M,b),V++;else if(/^(true|false)$/.test(b))i(M,b),V++;else i(M,g(M))}else if(U.match(/^-.\..+=/)){if(L=U.match(/^-([^=]+)=([\s\S]*)$/),L!==null&&Array.isArray(L)&&L.length>=3)i(L[1],L[2])}else if(U.match(/^-.\..+/)&&!U.match(q)){if(b=E[V+1],L=U.match(/^-(.\..+)/),L!==null&&Array.isArray(L)&&L.length>=2)if(M=L[1],b!==void 0&&!b.match(/^-/)&&!f(M,Y.bools)&&!f(M,Y.counts))i(M,b),V++;else i(M,g(M))}else if(U.match(/^-[^-]+/)&&!U.match(q)){S=U.slice(1,-1).split(""),_=!1;for(let OD=0;OD<S.length;OD++){if(b=U.slice(OD+2),S[OD+1]&&S[OD+1]==="="){if(ZD=U.slice(OD+3),M=S[OD],f(M,Y.arrays))V=_D(V,M,E,ZD);else if(f(M,Y.nargs)!==!1)V=s(V,M,E,ZD);else i(M,ZD);_=!0;break}if(b==="-"){i(S[OD],b);continue}if(/[A-Za-z]/.test(S[OD])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(b)&&f(b,Y.bools)===!1){i(S[OD],b),_=!0;break}if(S[OD+1]&&S[OD+1].match(/\W/)){i(S[OD],b),_=!0;break}else i(S[OD],g(S[OD]))}if(M=U.slice(-1)[0],!_&&M!=="-")if(f(M,Y.arrays))V=_D(V,M,E);else if(f(M,Y.nargs)!==!1)V=s(V,M,E);else if(b=E[V+1],b!==void 0&&(!/^(-|--)[^-]/.test(b)||b.match(q))&&!f(M,Y.bools)&&!f(M,Y.counts))i(M,b),V++;else if(/^(true|false)$/.test(b))i(M,b),V++;else i(M,g(M))}else if(U.match(/^-[0-9]$/)&&U.match(q)&&f(U.slice(1),Y.bools))M=U.slice(1),i(M,g(M));else if(U==="--"){k=E.slice(V+1);break}else if($["halt-at-non-option"]){k=E.slice(V);break}else e(U)}if(CD(w,!0),CD(w,!1),x(w),n(),mD(w,Y.aliases,z,!0),d(w),$["set-placeholder-key"])$D(w);if(Object.keys(Y.counts).forEach(function(V){if(!l(w,V.split(".")))i(V,0)}),Q&&k.length)w[J]=[];if(k.forEach(function(V){w[J].push(V)}),$["camel-case-expansion"]&&$["strip-dashed"])Object.keys(w).filter((V)=>V!=="--"&&V.includes("-")).forEach((V)=>{delete w[V]});if($["strip-aliased"])[].concat(...Object.keys(B).map((V)=>B[V])).forEach((V)=>{if($["camel-case-expansion"]&&V.includes("-"))delete w[V.split(".").map((U)=>sD(U)).join(".")];delete w[V]});function e(V){let U=A("_",V);if(typeof U==="string"||typeof U==="number")w._.push(U)}function s(V,U,K,_){let M,S=f(U,Y.nargs);if(S=typeof S!=="number"||isNaN(S)?1:S,S===0){if(!GD(_))N=Error(H("Argument unexpected for: %s",U));return i(U,g(U)),V}let L=GD(_)?0:1;if($["nargs-eats-options"]){if(K.length-(V+1)+L<S)N=Error(H("Not enough arguments following: %s",U));L=S}else{for(M=V+1;M<K.length;M++)if(!K[M].match(/^-[^0-9]/)||K[M].match(q)||t(K[M]))L++;else break;if(L<S)N=Error(H("Not enough arguments following: %s",U))}let b=Math.min(L,S);if(!GD(_)&&b>0)i(U,_),b--;for(M=V+1;M<b+V+1;M++)i(U,K[M]);return V+b}function _D(V,U,K,_){let M=[],S=_||K[V+1],L=f(U,Y.nargs);if(f(U,Y.bools)&&!/^(true|false)$/.test(S))M.push(!0);else if(GD(S)||GD(_)&&/^-/.test(S)&&!q.test(S)&&!t(S)){if(z[U]!==void 0){let b=z[U];M=Array.isArray(b)?b:[b]}}else{if(!GD(_))M.push(P(U,_,!0));for(let b=V+1;b<K.length;b++){if(!$["greedy-arrays"]&&M.length>0||L&&typeof L==="number"&&M.length>=L)break;if(S=K[b],/^-/.test(S)&&!q.test(S)&&!t(S))break;V=b,M.push(P(U,S,C))}}if(typeof L==="number"&&(L&&M.length<L||isNaN(L)&&M.length===0))N=Error(H("Not enough arguments following: %s",U));return i(U,M),V}function i(V,U,K=C){if(/-/.test(V)&&$["camel-case-expansion"]){let S=V.split(".").map(function(L){return sD(L)}).join(".");lD(V,S)}let _=P(V,U,K),M=V.split(".");if(ID(w,M,_),Y.aliases[V])Y.aliases[V].forEach(function(S){let L=S.split(".");ID(w,L,_)});if(M.length>1&&$["dot-notation"])(Y.aliases[M[0]]||[]).forEach(function(S){let L=S.split("."),b=[].concat(M);if(b.shift(),L=L.concat(b),!(Y.aliases[V]||[]).includes(L.join(".")))ID(w,L,_)});if(f(V,Y.normalize)&&!f(V,Y.arrays))[V].concat(Y.aliases[V]||[]).forEach(function(L){Object.defineProperty(c,L,{enumerable:!0,get(){return U},set(b){U=typeof b==="string"?bD.normalize(b):b}})})}function lD(V,U){if(!(Y.aliases[V]&&Y.aliases[V].length))Y.aliases[V]=[U],O[U]=!0;if(!(Y.aliases[U]&&Y.aliases[U].length))lD(U,V)}function P(V,U,K){if(K)U=_3(U);if(f(V,Y.bools)||f(V,Y.counts)){if(typeof U==="string")U=U==="true"}let _=Array.isArray(U)?U.map(function(M){return A(V,M)}):A(V,U);if(f(V,Y.counts)&&(GD(_)||typeof _==="boolean"))_=IF();if(f(V,Y.normalize)&&f(V,Y.arrays))if(Array.isArray(U))_=U.map((M)=>{return bD.normalize(M)});else _=bD.normalize(U);return _}function A(V,U){if(!$["parse-positional-numbers"]&&V==="_")return U;if(!f(V,Y.strings)&&!f(V,Y.bools)&&!Array.isArray(U)){if(tu(U)&&$["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${U}`)))||!GD(U)&&f(V,Y.numbers))U=Number(U)}return U}function x(V){let U=Object.create(null);mD(U,Y.aliases,z),Object.keys(Y.configs).forEach(function(K){let _=V[K]||U[K];if(_)try{let M=null,S=bD.resolve(bD.cwd(),_),L=Y.configs[K];if(typeof L==="function"){try{M=L(S)}catch(b){M=b}if(M instanceof Error){N=M;return}}else M=bD.require(S);p(M)}catch(M){if(M.name==="PermissionDenied")N=M;else if(V[K])N=Error(H("Invalid JSON config file: %s",_))}})}function p(V,U){Object.keys(V).forEach(function(K){let _=V[K],M=U?U+"."+K:K;if(typeof _==="object"&&_!==null&&!Array.isArray(_)&&$["dot-notation"])p(_,M);else if(!l(w,M.split("."))||f(M,Y.arrays)&&$["combine-arrays"])i(M,_)})}function n(){if(typeof Z<"u")Z.forEach(function(V){p(V)})}function CD(V,U){if(typeof G>"u")return;let K=typeof G==="string"?G:"",_=bD.env();Object.keys(_).forEach(function(M){if(K===""||M.lastIndexOf(K,0)===0){let S=M.split("__").map(function(L,b){if(b===0)L=L.substring(K.length);return sD(L)});if((U&&Y.configs[S.join(".")]||!U)&&!l(V,S))i(S.join("."),_[M])}})}function d(V){let U,K=new Set;Object.keys(V).forEach(function(_){if(!K.has(_)){if(U=f(_,Y.coercions),typeof U==="function")try{let M=A(_,U(V[_]));[].concat(Y.aliases[_]||[],_).forEach((S)=>{K.add(S),V[S]=M})}catch(M){N=M}}})}function $D(V){return Y.keys.forEach((U)=>{if(~U.indexOf("."))return;if(typeof V[U]>"u")V[U]=void 0}),V}function mD(V,U,K,_=!1){Object.keys(K).forEach(function(M){if(!l(V,M.split("."))){if(ID(V,M.split("."),K[M]),_)W[M]=!0;(U[M]||[]).forEach(function(S){if(l(V,S.split(".")))return;ID(V,S.split("."),K[M])})}})}function l(V,U){let K=V;if(!$["dot-notation"])U=[U.join(".")];U.slice(0,-1).forEach(function(M){K=K[M]||{}});let _=U[U.length-1];if(typeof K!=="object")return!1;else return _ in K}function ID(V,U,K){let _=V;if(!$["dot-notation"])U=[U.join(".")];U.slice(0,-1).forEach(function(ZD){if(ZD=V2(ZD),typeof _==="object"&&_[ZD]===void 0)_[ZD]={};if(typeof _[ZD]!=="object"||Array.isArray(_[ZD])){if(Array.isArray(_[ZD]))_[ZD].push({});else _[ZD]=[_[ZD],{}];_=_[ZD][_[ZD].length-1]}else _=_[ZD]});let M=V2(U[U.length-1]),S=f(U.join("."),Y.arrays),L=Array.isArray(K),b=$["duplicate-arguments-array"];if(!b&&f(M,Y.nargs)){if(b=!0,!GD(_[M])&&Y.nargs[M]===1||Array.isArray(_[M])&&_[M].length===Y.nargs[M])_[M]=void 0}if(K===IF())_[M]=IF(_[M]);else if(Array.isArray(_[M]))if(b&&S&&L)_[M]=$["flatten-duplicate-arrays"]?_[M].concat(K):(Array.isArray(_[M][0])?_[M]:[_[M]]).concat([K]);else if(!b&&Boolean(S)===Boolean(L))_[M]=K;else _[M]=_[M].concat([K]);else if(_[M]===void 0&&S)_[M]=L?K:[K];else if(b&&!(_[M]===void 0||f(M,Y.counts)||f(M,Y.bools)))_[M]=[_[M],K];else _[M]=K}function Lu(...V){V.forEach(function(U){Object.keys(U||{}).forEach(function(K){if(Y.aliases[K])return;Y.aliases[K]=[].concat(B[K]||[]),Y.aliases[K].concat(K).forEach(function(_){if(/-/.test(_)&&$["camel-case-expansion"]){let M=sD(_);if(M!==K&&Y.aliases[K].indexOf(M)===-1)Y.aliases[K].push(M),O[M]=!0}}),Y.aliases[K].concat(K).forEach(function(_){if(_.length>1&&/[A-Z]/.test(_)&&$["camel-case-expansion"]){let M=nu(_,"-");if(M!==K&&Y.aliases[K].indexOf(M)===-1)Y.aliases[K].push(M),O[M]=!0}}),Y.aliases[K].forEach(function(_){Y.aliases[_]=[K].concat(Y.aliases[K].filter(function(M){return _!==M}))})})})}function f(V,U){let K=[].concat(Y.aliases[V]||[],V),_=Object.keys(U),M=K.find((S)=>_.includes(S));return M?U[M]:!1}function Hu(V){let U=Object.keys(Y);return[].concat(U.map((_)=>Y[_])).some(function(_){return Array.isArray(_)?_.includes(V):_[V]})}function v0(V,...U){return[].concat(...U).some(function(_){let M=V.match(_);return M&&Hu(M[1])})}function h(V){if(V.match(q)||!V.match(/^-[^-]+/))return!1;let U=!0,K,_=V.slice(1).split("");for(let M=0;M<_.length;M++){if(K=V.slice(M+2),!Hu(_[M])){U=!1;break}if(_[M+1]&&_[M+1]==="="||K==="-"||/[A-Za-z]/.test(_[M])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(K)||_[M+1]&&_[M+1].match(/\W/))break}return U}function t(V){return $["unknown-options-as-args"]&&zD(V)}function zD(V){if(V=V.replace(/^-{3,}/,"--"),V.match(q))return!1;if(h(V))return!1;return!v0(V,/^-+([^=]+?)=[\s\S]*$/,j,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function g(V){if(!f(V,Y.bools)&&!f(V,Y.counts)&&`${V}`in z)return z[V];else return QD(uD(V))}function QD(V){return{[KD.BOOLEAN]:!0,[KD.STRING]:"",[KD.NUMBER]:void 0,[KD.ARRAY]:[]}[V]}function uD(V){let U=KD.BOOLEAN;if(f(V,Y.strings))U=KD.STRING;else if(f(V,Y.numbers))U=KD.NUMBER;else if(f(V,Y.bools))U=KD.BOOLEAN;else if(f(V,Y.arrays))U=KD.ARRAY;return U}function GD(V){return V===void 0}function LF(){Object.keys(Y.counts).find((V)=>{if(f(V,Y.arrays))return N=Error(H("Invalid configuration: %s, opts.count excludes opts.array.",V)),!0;else if(f(V,Y.nargs))return N=Error(H("Invalid configuration: %s, opts.count excludes opts.narg.",V)),!0;return!1})}return{aliases:Object.assign({},Y.aliases),argv:Object.assign(c,w),configuration:$,defaulted:Object.assign({},W),error:N,newAliases:Object.assign({},O)}}}function q3(D){let u=[],F=Object.create(null),E=!0;Object.keys(D).forEach(function(C){u.push([].concat(D[C],C))});while(E){E=!1;for(let C=0;C<u.length;C++)for(let B=C+1;B<u.length;B++)if(u[C].filter(function(z){return u[B].indexOf(z)!==-1}).length){u[C]=u[C].concat(u[B]),u.splice(B,1),E=!0;break}}return u.forEach(function(C){C=C.filter(function($,z,Z){return Z.indexOf($)===z});let B=C.pop();if(B!==void 0&&typeof B==="string")F[B]=C}),F}function IF(D){return D!==void 0?D+1:1}function V2(D){if(D==="__proto__")return"___proto___";return D}function _3(D){return typeof D==="string"&&(D[0]==="'"||D[0]==='"')&&D[D.length-1]===D[0]?D.substring(1,D.length-1):D}import{readFileSync as L3}from"fs";import{createRequire as M2}from"node:module";var fF,hF,vF,U2=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):20,q2=(hF=(fF=process===null||process===void 0?void 0:process.versions)===null||fF===void 0?void 0:fF.node)!==null&&hF!==void 0?hF:(vF=process===null||process===void 0?void 0:process.version)===null||vF===void 0?void 0:vF.slice(1);if(q2){if(Number(q2.match(/^([^.]+)/)[1])<U2)throw Error(`yargs parser supports a minimum Node.js version of ${U2}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`)}var N3=process?process.env:{},_2=M2?M2(import.meta.url):void 0,K2=new bF({cwd:process.cwd,env:()=>{return N3},format:K3,normalize:j3,resolve:A3,require:(D)=>{if(typeof _2<"u")return _2(D);else if(D.match(/\.json$/))return JSON.parse(L3(D,"utf8"));else throw Error("only .json config files are supported in ESM")}}),Nu=function(u,F){return K2.parse(u.slice(),F).argv};Nu.detailed=function(D,u){return K2.parse(D.slice(),u)};Nu.camelCase=sD;Nu.decamelize=nu;Nu.looksLikeNumber=tu;var pF=Nu;import{basename as p3,dirname as m3,extname as y3,relative as c3,resolve as w2,join as g3}from"path";function j2(){if(R3())return 0;return 1}function R3(){return T3()&&!process.defaultApp}function T3(){return!!process.versions.electron}function mF(D){return D.slice(j2()+1)}function A2(){return process.argv[j2()]}import{readFileSync as S3,statSync as P3,writeFile as w3}from"fs";import{format as x3}from"util";import{resolve as I3}from"path";var L2={fs:{readFileSync:S3,writeFile:w3},format:x3,resolve:I3,exists:(D)=>{try{return P3(D).isFile()}catch(u){return!1}}};var TD;class N2{constructor(D){D=D||{},this.directory=D.directory||"./locales",this.updateFiles=typeof D.updateFiles==="boolean"?D.updateFiles:!0,this.locale=D.locale||"en",this.fallbackToLanguage=typeof D.fallbackToLanguage==="boolean"?D.fallbackToLanguage:!0,this.cache=Object.create(null),this.writeQueue=[]}__(...D){if(typeof arguments[0]!=="string")return this._taggedLiteral(arguments[0],...arguments);let u=D.shift(),F=function(){};if(typeof D[D.length-1]==="function")F=D.pop();if(F=F||function(){},!this.cache[this.locale])this._readLocaleFile();if(!this.cache[this.locale][u]&&this.updateFiles)this.cache[this.locale][u]=u,this._enqueueWrite({directory:this.directory,locale:this.locale,cb:F});else F();return TD.format.apply(TD.format,[this.cache[this.locale][u]||u].concat(D))}__n(){let D=Array.prototype.slice.call(arguments),u=D.shift(),F=D.shift(),E=D.shift(),C=function(){};if(typeof D[D.length-1]==="function")C=D.pop();if(!this.cache[this.locale])this._readLocaleFile();let B=E===1?u:F;if(this.cache[this.locale][u])B=this.cache[this.locale][u][E===1?"one":"other"];if(!this.cache[this.locale][u]&&this.updateFiles)this.cache[this.locale][u]={one:u,other:F},this._enqueueWrite({directory:this.directory,locale:this.locale,cb:C});else C();let $=[B];if(~B.indexOf("%d"))$.push(E);return TD.format.apply(TD.format,$.concat(D))}setLocale(D){this.locale=D}getLocale(){return this.locale}updateLocale(D){if(!this.cache[this.locale])this._readLocaleFile();for(let u in D)if(Object.prototype.hasOwnProperty.call(D,u))this.cache[this.locale][u]=D[u]}_taggedLiteral(D,...u){let F="";return D.forEach(function(E,C){let B=u[C+1];if(F+=E,typeof B<"u")F+="%s"}),this.__.apply(this,[F].concat([].slice.call(u,1)))}_enqueueWrite(D){if(this.writeQueue.push(D),this.writeQueue.length===1)this._processWriteQueue()}_processWriteQueue(){let D=this,u=this.writeQueue[0],F=u.directory,E=u.locale,C=u.cb,B=this._resolveLocaleFile(F,E),$=JSON.stringify(this.cache[E],null,2);TD.fs.writeFile(B,$,"utf-8",function(z){if(D.writeQueue.shift(),D.writeQueue.length>0)D._processWriteQueue();C(z)})}_readLocaleFile(){let D={},u=this._resolveLocaleFile(this.directory,this.locale);try{if(TD.fs.readFileSync)D=JSON.parse(TD.fs.readFileSync(u,"utf-8"))}catch(F){if(F instanceof SyntaxError)F.message="syntax error in "+u;if(F.code==="ENOENT")D={};else throw F}this.cache[this.locale]=D}_resolveLocaleFile(D,u){let F=TD.resolve(D,"./",u+".json");if(this.fallbackToLanguage&&!this._fileExistsSync(F)&&~u.lastIndexOf("_")){let E=TD.resolve(D,"./",u.split("_")[0]+".json");if(this._fileExistsSync(E))F=E}return F}_fileExistsSync(D){return TD.exists(D)}}function R2(D,u){TD=u;let F=new N2(D);return{__:F.__.bind(F),__n:F.__n.bind(F),setLocale:F.setLocale.bind(F),getLocale:F.getLocale.bind(F),updateLocale:F.updateLocale.bind(F),locale:F.locale}}var b3=(D)=>{return R2(D,L2)},T2=b3;var I2=m0(P2(),1);import{createRequire as k3}from"node:module";import{readFileSync as d3,readdirSync as i3}from"node:fs";var yF=x2(import.meta.url),n3=yF.substring(0,yF.lastIndexOf("node_modules")),t3=k3(import.meta.url),cF={assert:{notStrictEqual:f3,strictEqual:h3},cliui:wF,findUp:xF,getEnv:(D)=>{return process.env[D]},inspect:v3,getProcessArgvBin:A2,mainFilename:n3||process.cwd(),Parser:pF,path:{basename:p3,dirname:m3,extname:y3,relative:c3,resolve:w2,join:g3},process:{argv:()=>process.argv,cwd:process.cwd,emitWarning:(D,u)=>process.emitWarning(D,u),execPath:()=>process.execPath,exit:(D)=>{process.exit(D)},nextTick:process.nextTick,stdColumns:typeof process.stdout.columns<"u"?process.stdout.columns:null},readFileSync:d3,readdirSync:i3,require:t3,getCallerFile:()=>{let D=I2.default(3);return D.match(/^file:\/\//)?x2(D):D},stringWidth:RD,y18n:T2({directory:w2(yF,"../../../locales"),updateFiles:!1})};function YD(D,u,F,E){F.assert.notStrictEqual(D,u,E)}function gF(D,u){u.assert.strictEqual(typeof D,"string")}function Vu(D){return Object.keys(D)}function o(D){return!!D&&!!D.then&&typeof D.then==="function"}class FD extends Error{constructor(D){super(D||"yargs error");if(this.name="YError",Error.captureStackTrace)Error.captureStackTrace(this,FD)}}function cD(D){let F=D.replace(/\s{2,}/g," ").split(/\s+(?![^[]*]|[^<]*>)/),E=/\.*[\][<>]/g,C=F.shift();if(!C)throw Error(`No command found in: ${D}`);let B={cmd:C.replace(E,""),demanded:[],optional:[]};return F.forEach(($,z)=>{let Z=!1;if($=$.replace(/\s/g,""),/\.+[\]>]/.test($)&&z===F.length-1)Z=!0;if(/^\[/.test($))B.optional.push({cmd:$.replace(E,"").split("|"),variadic:Z});else B.demanded.push({cmd:$.replace(E,"").split("|"),variadic:Z})}),B}var l3=["first","second","third","fourth","fifth","sixth"];function R(D,u,F){function E(){return typeof D==="object"?[{demanded:[],optional:[]},D,u]:[cD(`cmd ${D}`),u,F]}try{let C=0,[B,$,z]=E(),Z=[].slice.call($);while(Z.length&&Z[Z.length-1]===void 0)Z.pop();let G=z||Z.length;if(G<B.demanded.length)throw new FD(`Not enough arguments provided. Expected ${B.demanded.length} but received ${Z.length}.`);let Q=B.demanded.length+B.optional.length;if(G>Q)throw new FD(`Too many arguments provided. Expected max ${Q} but received ${G}.`);B.demanded.forEach((J)=>{let O=Z.shift(),W=b2(O);if(J.cmd.filter((Y)=>Y===W||Y==="*").length===0)f2(W,J.cmd,C);C+=1}),B.optional.forEach((J)=>{if(Z.length===0)return;let O=Z.shift(),W=b2(O);if(J.cmd.filter((Y)=>Y===W||Y==="*").length===0)f2(W,J.cmd,C);C+=1})}catch(C){console.warn(C.stack)}}function b2(D){if(Array.isArray(D))return"array";else if(D===null)return"null";return typeof D}function f2(D,u,F){throw new FD(`Invalid ${l3[F]||"manyith"} argument. Expected ${u.join(" or ")} but received ${D}.`)}class kF{constructor(D){this.globalMiddleware=[],this.frozens=[],this.yargs=D}addMiddleware(D,u,F=!0,E=!1){if(R("<array|function> [boolean] [boolean] [boolean]",[D,u,F],arguments.length),Array.isArray(D)){for(let C=0;C<D.length;C++){if(typeof D[C]!=="function")throw Error("middleware must be a function");let B=D[C];B.applyBeforeValidation=u,B.global=F}Array.prototype.push.apply(this.globalMiddleware,D)}else if(typeof D==="function"){let C=D;C.applyBeforeValidation=u,C.global=F,C.mutates=E,this.globalMiddleware.push(D)}return this.yargs}addCoerceMiddleware(D,u){let F=this.yargs.getAliases();return this.globalMiddleware=this.globalMiddleware.filter((E)=>{let C=[...F[u]||[],u];if(!E.option)return!0;else return!C.includes(E.option)}),D.option=u,this.addMiddleware(D,!0,!0,!0)}getMiddleware(){return this.globalMiddleware}freeze(){this.frozens.push([...this.globalMiddleware])}unfreeze(){let D=this.frozens.pop();if(D!==void 0)this.globalMiddleware=D}reset(){this.globalMiddleware=this.globalMiddleware.filter((D)=>D.global)}}function h2(D){if(!D)return[];return D.map((u)=>{return u.applyBeforeValidation=!1,u})}function rD(D,u,F,E){return F.reduce((C,B)=>{if(B.applyBeforeValidation!==E)return C;if(B.mutates){if(B.applied)return C;B.applied=!0}if(o(C))return C.then(($)=>Promise.all([$,B($,u)])).then(([$,z])=>Object.assign($,z));else{let $=B(C,u);return o($)?$.then((z)=>Object.assign(C,z)):Object.assign(C,$)}},D)}function aD(D,u,F=(E)=>{throw E}){try{let E=o3(D)?D():D;return o(E)?E.then((C)=>u(C)):u(E)}catch(E){return F(E)}}function o3(D){return typeof D==="function"}var Mu=/(^\*)|(^\$0)/;class p2{constructor(D,u,F,E){this.requireCache=new Set,this.handlers={},this.aliasMap={},this.frozens=[],this.shim=E,this.usage=D,this.globalMiddleware=F,this.validation=u}addDirectory(D,u,F,E){E=E||{},this.requireCache.add(F);let C=this.shim.path.resolve(this.shim.path.dirname(F),D),B=this.shim.readdirSync(C,{recursive:E.recurse?!0:!1});if(!Array.isArray(E.extensions))E.extensions=["js"];let $=typeof E.visit==="function"?E.visit:(z)=>z;for(let z of B){let Z=z.toString();if(E.exclude){let Q=!1;if(typeof E.exclude==="function")Q=E.exclude(Z);else Q=E.exclude.test(Z);if(Q)continue}if(E.include){let Q=!1;if(typeof E.include==="function")Q=E.include(Z);else Q=E.include.test(Z);if(!Q)continue}let G=!1;for(let Q of E.extensions)if(Z.endsWith(Q))G=!0;if(G){let Q=this.shim.path.join(C,Z),J=u(Q),O=Object.create(null,Object.getOwnPropertyDescriptors({...J}));if($(O,Q,Z)){if(this.requireCache.has(Q))continue;else this.requireCache.add(Q);if(!O.command)O.command=this.shim.path.basename(Q,this.shim.path.extname(Q));this.addHandler(O)}}}}addHandler(D,u,F,E,C,B){let $=[],z=h2(C);if(E=E||(()=>{}),Array.isArray(D))if(s3(D))[D,...$]=D;else for(let Z of D)this.addHandler(Z);else if(a3(D)){let Z=Array.isArray(D.command)||typeof D.command==="string"?D.command:null;if(Z===null)throw Error(`No command name given for module: ${this.shim.inspect(D)}`);if(D.aliases)Z=[].concat(Z).concat(D.aliases);this.addHandler(Z,this.extractDesc(D),D.builder,D.handler,D.middlewares,D.deprecated);return}else if(v2(F)){this.addHandler([D].concat($),u,F.builder,F.handler,F.middlewares,F.deprecated);return}if(typeof D==="string"){let Z=cD(D);$=$.map((J)=>cD(J).cmd);let G=!1,Q=[Z.cmd].concat($).filter((J)=>{if(Mu.test(J))return G=!0,!1;return!0});if(Q.length===0&&G)Q.push("$0");if(G)Z.cmd=Q[0],$=Q.slice(1),D=D.replace(Mu,Z.cmd);if($.forEach((J)=>{this.aliasMap[J]=Z.cmd}),u!==!1)this.usage.command(D,u,G,$,B);if(this.handlers[Z.cmd]={original:D,description:u,handler:E,builder:F||{},middlewares:z,deprecated:B,demanded:Z.demanded,optional:Z.optional},G)this.defaultCommand=this.handlers[Z.cmd]}}getCommandHandlers(){return this.handlers}getCommands(){return Object.keys(this.handlers).concat(Object.keys(this.aliasMap))}hasDefaultCommand(){return!!this.defaultCommand}runCommand(D,u,F,E,C,B){let $=this.handlers[D]||this.handlers[this.aliasMap[D]]||this.defaultCommand,z=u.getInternalMethods().getContext(),Z=z.commands.slice(),G=!D;if(D)z.commands.push(D),z.fullCommands.push($.original);let Q=this.applyBuilderUpdateUsageAndParse(G,$,u,F.aliases,Z,E,C,B);return o(Q)?Q.then((J)=>this.applyMiddlewareAndGetResult(G,$,J.innerArgv,z,C,J.aliases,u)):this.applyMiddlewareAndGetResult(G,$,Q.innerArgv,z,C,Q.aliases,u)}applyBuilderUpdateUsageAndParse(D,u,F,E,C,B,$,z){let Z=u.builder,G=F;if(lu(Z)){F.getInternalMethods().getUsageInstance().freeze();let Q=Z(F.getInternalMethods().reset(E),z);if(o(Q))return Q.then((J)=>{return G=y2(J)?J:F,this.parseAndUpdateUsage(D,u,G,C,B,$)})}else if(r3(Z))F.getInternalMethods().getUsageInstance().freeze(),G=F.getInternalMethods().reset(E),Object.keys(u.builder).forEach((Q)=>{G.option(Q,Z[Q])});return this.parseAndUpdateUsage(D,u,G,C,B,$)}parseAndUpdateUsage(D,u,F,E,C,B){if(D)F.getInternalMethods().getUsageInstance().unfreeze(!0);if(this.shouldUpdateUsage(F))F.getInternalMethods().getUsageInstance().usage(this.usageFromParentCommandsCommandHandler(E,u),u.description);let $=F.getInternalMethods().runYargsParserAndExecuteCommands(null,void 0,!0,C,B);return o($)?$.then((z)=>({aliases:F.parsed.aliases,innerArgv:z})):{aliases:F.parsed.aliases,innerArgv:$}}shouldUpdateUsage(D){return!D.getInternalMethods().getUsageInstance().getUsageDisabled()&&D.getInternalMethods().getUsageInstance().getUsage().length===0}usageFromParentCommandsCommandHandler(D,u){let F=Mu.test(u.original)?u.original.replace(Mu,"").trim():u.original,E=D.filter((C)=>{return!Mu.test(C)});return E.push(F),`$0 ${E.join(" ")}`}handleValidationAndGetResult(D,u,F,E,C,B,$,z){if(!B.getInternalMethods().getHasOutput()){let Z=B.getInternalMethods().runValidation(C,z,B.parsed.error,D);F=aD(F,(G)=>{return Z(G),G})}if(u.handler&&!B.getInternalMethods().getHasOutput()){B.getInternalMethods().setHasOutput();let Z=!!B.getOptions().configuration["populate--"];if(B.getInternalMethods().postProcess(F,Z,!1,!1),F=rD(F,B,$,!1),F=aD(F,(G)=>{let Q=u.handler(G);return o(Q)?Q.then(()=>G):G}),!D)B.getInternalMethods().getUsageInstance().cacheHelpMessage();if(o(F)&&!B.getInternalMethods().hasParseCallback())F.catch((G)=>{try{B.getInternalMethods().getUsageInstance().fail(null,G)}catch(Q){}})}if(!D)E.commands.pop(),E.fullCommands.pop();return F}applyMiddlewareAndGetResult(D,u,F,E,C,B,$){let z={};if(C)return F;if(!$.getInternalMethods().getHasOutput())z=this.populatePositionals(u,F,E,$);let Z=this.globalMiddleware.getMiddleware().slice(0).concat(u.middlewares),G=rD(F,$,Z,!0);return o(G)?G.then((Q)=>this.handleValidationAndGetResult(D,u,Q,E,B,$,Z,z)):this.handleValidationAndGetResult(D,u,G,E,B,$,Z,z)}populatePositionals(D,u,F,E){u._=u._.slice(F.commands.length);let C=D.demanded.slice(0),B=D.optional.slice(0),$={};this.validation.positionalCount(C.length,u._.length);while(C.length){let z=C.shift();this.populatePositional(z,u,$)}while(B.length){let z=B.shift();this.populatePositional(z,u,$)}return u._=F.commands.concat(u._.map((z)=>""+z)),this.postProcessPositionals(u,$,this.cmdToParseOptions(D.original),E),$}populatePositional(D,u,F){let E=D.cmd[0];if(D.variadic)F[E]=u._.splice(0).map(String);else if(u._.length)F[E]=[String(u._.shift())]}cmdToParseOptions(D){let u={array:[],default:{},alias:{},demand:{}},F=cD(D);return F.demanded.forEach((E)=>{let[C,...B]=E.cmd;if(E.variadic)u.array.push(C),u.default[C]=[];u.alias[C]=B,u.demand[C]=!0}),F.optional.forEach((E)=>{let[C,...B]=E.cmd;if(E.variadic)u.array.push(C),u.default[C]=[];u.alias[C]=B}),u}postProcessPositionals(D,u,F,E){let C=Object.assign({},E.getOptions());C.default=Object.assign(F.default,C.default);for(let Z of Object.keys(F.alias))C.alias[Z]=(C.alias[Z]||[]).concat(F.alias[Z]);C.array=C.array.concat(F.array),C.config={};let B=[];if(Object.keys(u).forEach((Z)=>{u[Z].map((G)=>{if(C.configuration["unknown-options-as-args"])C.key[Z]=!0;B.push(`--${Z}`),B.push(G)})}),!B.length)return;let $=Object.assign({},C.configuration,{"populate--":!1}),z=this.shim.Parser.detailed(B,Object.assign({},C,{configuration:$}));if(z.error)E.getInternalMethods().getUsageInstance().fail(z.error.message,z.error);else{let Z=Object.keys(u);Object.keys(u).forEach((G)=>{Z.push(...z.aliases[G])}),Object.keys(z.argv).forEach((G)=>{if(Z.includes(G)){if(!u[G])u[G]=z.argv[G];if(!this.isInConfigs(E,G)&&!this.isDefaulted(E,G)&&Object.prototype.hasOwnProperty.call(D,G)&&Object.prototype.hasOwnProperty.call(z.argv,G)&&(Array.isArray(D[G])||Array.isArray(z.argv[G])))D[G]=[].concat(D[G],z.argv[G]);else D[G]=z.argv[G]}})}}isDefaulted(D,u){let{default:F}=D.getOptions();return Object.prototype.hasOwnProperty.call(F,u)||Object.prototype.hasOwnProperty.call(F,this.shim.Parser.camelCase(u))}isInConfigs(D,u){let{configObjects:F}=D.getOptions();return F.some((E)=>Object.prototype.hasOwnProperty.call(E,u))||F.some((E)=>Object.prototype.hasOwnProperty.call(E,this.shim.Parser.camelCase(u)))}runDefaultBuilderOn(D){if(!this.defaultCommand)return;if(this.shouldUpdateUsage(D)){let F=Mu.test(this.defaultCommand.original)?this.defaultCommand.original:this.defaultCommand.original.replace(/^[^[\]<>]*/,"$0 ");D.getInternalMethods().getUsageInstance().usage(F,this.defaultCommand.description)}let u=this.defaultCommand.builder;if(lu(u))return u(D,!0);else if(!v2(u))Object.keys(u).forEach((F)=>{D.option(F,u[F])});return}extractDesc({describe:D,description:u,desc:F}){for(let E of[D,u,F]){if(typeof E==="string"||E===!1)return E;YD(E,!0,this.shim)}return!1}freeze(){this.frozens.push({handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand})}unfreeze(){let D=this.frozens.pop();YD(D,void 0,this.shim),{handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand}=D}reset(){return this.handlers={},this.aliasMap={},this.defaultCommand=void 0,this.requireCache=new Set,this}}function m2(D,u,F,E){return new p2(D,u,F,E)}function v2(D){return typeof D==="object"&&!!D.builder&&typeof D.handler==="function"}function s3(D){return D.every((u)=>typeof u==="string")}function lu(D){return typeof D==="function"}function r3(D){return typeof D==="object"}function a3(D){return typeof D==="object"&&!Array.isArray(D)}function gD(D={},u=()=>!0){let F={};return Vu(D).forEach((E)=>{if(u(E,D[E]))F[E]=D[E]}),F}function kD(D){if(typeof process>"u")return;[process.stdout,process.stderr].forEach((u)=>{let F=u;if(F._handle&&F.isTTY&&typeof F._handle.setBlocking==="function")F._handle.setBlocking(D)})}function e3(D){return typeof D==="boolean"}function g2(D,u){let F=u.y18n.__,E={},C=[];E.failFn=function(A){C.push(A)};let B=null,$=null,z=!0;E.showHelpOnFail=function(A=!0,x){let[p,n]=typeof A==="string"?[!0,A]:[A,x];if(D.getInternalMethods().isGlobalContext())$=n;return B=n,z=p,E};let Z=!1;E.fail=function(A,x){let p=D.getInternalMethods().getLoggerInstance();if(C.length)for(let n=C.length-1;n>=0;--n){let CD=C[n];if(e3(CD)){if(x)throw x;else if(A)throw Error(A)}else CD(A,x,E)}else{if(D.getExitProcess())kD(!0);if(!Z){if(Z=!0,z)D.showHelp("error"),p.error();if(A||x)p.error(A||x);let n=B||$;if(n){if(A||x)p.error("");p.error(n)}}if(x=x||new FD(A),D.getExitProcess())return D.exit(1);else if(D.getInternalMethods().hasParseCallback())return D.exit(1,x);else throw x}};let G=[],Q=!1;E.usage=(P,A)=>{if(P===null)return Q=!0,G=[],E;return Q=!1,G.push([P,A||""]),E},E.getUsage=()=>{return G},E.getUsageDisabled=()=>{return Q},E.getPositionalGroupName=()=>{return F("Positionals:")};let J=[];E.example=(P,A)=>{J.push([P,A||""])};let O=[];E.command=function(A,x,p,n,CD=!1){if(p)O=O.map((d)=>{return d[2]=!1,d});O.push([A,x||"",p,n,CD])},E.getCommands=()=>O;let W={};E.describe=function(A,x){if(Array.isArray(A))A.forEach((p)=>{E.describe(p,x)});else if(typeof A==="object")Object.keys(A).forEach((p)=>{E.describe(p,A[p])});else W[A]=x},E.getDescriptions=()=>W;let H=[];E.epilog=(P)=>{H.push(P)};let Y=!1,q;E.wrap=(P)=>{Y=!0,q=P},E.getWrap=()=>{if(u.getEnv("YARGS_DISABLE_WRAP"))return null;if(!Y)q=_D(),Y=!0;return q};let j="__yargsString__:";E.deferY18nLookup=(P)=>j+P,E.help=function(){if(w)return w;k();let A=D.customScriptName?D.$0:u.path.basename(D.$0),x=D.getDemandedOptions(),p=D.getDemandedCommands(),n=D.getDeprecatedOptions(),CD=D.getGroups(),d=D.getOptions(),$D=[];$D=$D.concat(Object.keys(W)),$D=$D.concat(Object.keys(x)),$D=$D.concat(Object.keys(p)),$D=$D.concat(Object.keys(d.default)),$D=$D.filter(e),$D=Object.keys($D.reduce((h,t)=>{if(t!=="_")h[t]=!0;return h},{}));let mD=E.getWrap(),l=u.cliui({width:mD,wrap:!!mD});if(!Q){if(G.length)G.forEach((h)=>{if(l.div({text:`${h[0].replace(/\$0/g,A)}`}),h[1])l.div({text:`${h[1]}`,padding:[1,0,0,0]})}),l.div();else if(O.length){let h=null;if(p._)h=`${A} <${F("command")}>
|
|
13
|
+
`).map((E)=>_3(E,u,F)).join(`
|
|
14
|
+
`)}function IF(D){return i0(D,{stringWidth:TD,stripAnsi:sD,wrap:xF})}import{dirname as V2,resolve as H2}from"path";import{readdirSync as j3,statSync as A3}from"fs";function bF(D,u){let F=H2(".",D),E;if(!A3(F).isDirectory())F=V2(F);while(!0){if(E=u(F,j3(F)),E)return H2(F,E);if(F=V2(E=F),E===F)break}}import{inspect as g3}from"util";import{fileURLToPath as b2}from"url";import{format as T3}from"util";import{normalize as R3,resolve as S3}from"path";function rD(D){if(!(D!==D.toLowerCase()&&D!==D.toUpperCase()))D=D.toLowerCase();if(D.indexOf("-")===-1&&D.indexOf("_")===-1)return D;else{let F="",E=!1,C=D.match(/^-+/);for(let B=C?C[0].length:0;B<D.length;B++){let $=D.charAt(B);if(E)E=!1,$=$.toUpperCase();if(B!==0&&($==="-"||$==="_"))E=!0;else if($!=="-"&&$!=="_")F+=$}return F}}function lu(D,u){let F=D.toLowerCase();u=u||"-";let E="";for(let C=0;C<D.length;C++){let B=F.charAt(C),$=D.charAt(C);if(B!==$&&C>0)E+=`${u}${F.charAt(C)}`;else E+=$}return E}function tu(D){if(D===null||D===void 0)return!1;if(typeof D==="number")return!0;if(/^0x[0-9a-f]+$/i.test(D))return!0;if(/^0[^.]/.test(D))return!1;return/^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(D)}function M2(D){if(Array.isArray(D))return D.map(($)=>typeof $!=="string"?$+"":$);D=D.trim();let u=0,F=null,E=null,C=null,B=[];for(let $=0;$<D.length;$++){if(F=E,E=D.charAt($),E===" "&&!C){if(F!==" ")u++;continue}if(E===C)C=null;else if((E==="'"||E==='"')&&!C)C=E;if(!B[u])B[u]="";B[u]+=E}return B}var _D;(function(D){D.BOOLEAN="boolean",D.STRING="string",D.NUMBER="number",D.ARRAY="array"})(_D||(_D={}));var fD;class hF{constructor(D){fD=D}parse(D,u){let F=Object.assign({alias:void 0,array:void 0,boolean:void 0,config:void 0,configObjects:void 0,configuration:void 0,coerce:void 0,count:void 0,default:void 0,envPrefix:void 0,narg:void 0,normalize:void 0,string:void 0,number:void 0,__:void 0,key:void 0},u),E=M2(D),C=typeof D==="string",B=L3(Object.assign(Object.create(null),F.alias)),$=Object.assign({"boolean-negation":!0,"camel-case-expansion":!0,"combine-arrays":!1,"dot-notation":!0,"duplicate-arguments-array":!0,"flatten-duplicate-arrays":!0,"greedy-arrays":!0,"halt-at-non-option":!1,"nargs-eats-options":!1,"negation-prefix":"no-","parse-numbers":!0,"parse-positional-numbers":!0,"populate--":!1,"set-placeholder-key":!1,"short-option-groups":!0,"strip-aliased":!1,"strip-dashed":!1,"unknown-options-as-args":!1},F.configuration),G=Object.assign(Object.create(null),F.default),Z=F.configObjects||[],z=F.envPrefix,Q=$["populate--"],J=Q?"--":"_",Y=Object.create(null),W=Object.create(null),V=F.__||fD.format,O={aliases:Object.create(null),arrays:Object.create(null),bools:Object.create(null),strings:Object.create(null),numbers:Object.create(null),counts:Object.create(null),normalize:Object.create(null),configs:Object.create(null),nargs:Object.create(null),coercions:Object.create(null),keys:[]},U=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,_=new RegExp("^--"+$["negation-prefix"]+"(.+)");if([].concat(F.array||[]).filter(Boolean).forEach(function(H){let q=typeof H==="object"?H.key:H,j=Object.keys(H).map(function(K){return{boolean:"bools",string:"strings",number:"numbers"}[K]}).filter(Boolean).pop();if(j)O[j][q]=!0;O.arrays[q]=!0,O.keys.push(q)}),[].concat(F.boolean||[]).filter(Boolean).forEach(function(H){O.bools[H]=!0,O.keys.push(H)}),[].concat(F.string||[]).filter(Boolean).forEach(function(H){O.strings[H]=!0,O.keys.push(H)}),[].concat(F.number||[]).filter(Boolean).forEach(function(H){O.numbers[H]=!0,O.keys.push(H)}),[].concat(F.count||[]).filter(Boolean).forEach(function(H){O.counts[H]=!0,O.keys.push(H)}),[].concat(F.normalize||[]).filter(Boolean).forEach(function(H){O.normalize[H]=!0,O.keys.push(H)}),typeof F.narg==="object")Object.entries(F.narg).forEach(([H,q])=>{if(typeof q==="number")O.nargs[H]=q,O.keys.push(H)});if(typeof F.coerce==="object")Object.entries(F.coerce).forEach(([H,q])=>{if(typeof q==="function")O.coercions[H]=q,O.keys.push(H)});if(typeof F.config<"u"){if(Array.isArray(F.config)||typeof F.config==="string")[].concat(F.config).filter(Boolean).forEach(function(H){O.configs[H]=!0});else if(typeof F.config==="object")Object.entries(F.config).forEach(([H,q])=>{if(typeof q==="boolean"||typeof q==="function")O.configs[H]=q})}Nu(F.key,B,F.default,O.arrays),Object.keys(G).forEach(function(H){(O.aliases[H]||[]).forEach(function(q){G[q]=G[H]})});let N=null;TF();let k=[],w=Object.assign(Object.create(null),{_:[]}),c={};for(let H=0;H<E.length;H++){let q=E[H],j=q.replace(/^-{3,}/,"---"),K,M,S,L,b,ZD;if(q!=="--"&&/^-/.test(q)&&l(q))e(q);else if(j.match(/^---+(=|$)/)){e(q);continue}else if(q.match(/^--.+=/)||!$["short-option-groups"]&&q.match(/^-.+=/)){if(L=q.match(/^--?([^=]+)=([\s\S]*)$/),L!==null&&Array.isArray(L)&&L.length>=3)if(f(L[1],O.arrays))H=KD(H,L[1],E,L[2]);else if(f(L[1],O.nargs)!==!1)H=r(H,L[1],E,L[2]);else i(L[1],L[2],!0)}else if(q.match(_)&&$["boolean-negation"]){if(L=q.match(_),L!==null&&Array.isArray(L)&&L.length>=2)M=L[1],i(M,f(M,O.arrays)?[!1]:!1)}else if(q.match(/^--.+/)||!$["short-option-groups"]&&q.match(/^-[^-]+/)){if(L=q.match(/^--?(.+)/),L!==null&&Array.isArray(L)&&L.length>=2)if(M=L[1],f(M,O.arrays))H=KD(H,M,E);else if(f(M,O.nargs)!==!1)H=r(H,M,E);else if(b=E[H+1],b!==void 0&&(!b.match(/^-/)||b.match(U))&&!f(M,O.bools)&&!f(M,O.counts))i(M,b),H++;else if(/^(true|false)$/.test(b))i(M,b),H++;else i(M,g(M))}else if(q.match(/^-.\..+=/)){if(L=q.match(/^-([^=]+)=([\s\S]*)$/),L!==null&&Array.isArray(L)&&L.length>=3)i(L[1],L[2])}else if(q.match(/^-.\..+/)&&!q.match(U)){if(b=E[H+1],L=q.match(/^-(.\..+)/),L!==null&&Array.isArray(L)&&L.length>=2)if(M=L[1],b!==void 0&&!b.match(/^-/)&&!f(M,O.bools)&&!f(M,O.counts))i(M,b),H++;else i(M,g(M))}else if(q.match(/^-[^-]+/)&&!q.match(U)){S=q.slice(1,-1).split(""),K=!1;for(let YD=0;YD<S.length;YD++){if(b=q.slice(YD+2),S[YD+1]&&S[YD+1]==="="){if(ZD=q.slice(YD+3),M=S[YD],f(M,O.arrays))H=KD(H,M,E,ZD);else if(f(M,O.nargs)!==!1)H=r(H,M,E,ZD);else i(M,ZD);K=!0;break}if(b==="-"){i(S[YD],b);continue}if(/[A-Za-z]/.test(S[YD])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(b)&&f(b,O.bools)===!1){i(S[YD],b),K=!0;break}if(S[YD+1]&&S[YD+1].match(/\W/)){i(S[YD],b),K=!0;break}else i(S[YD],g(S[YD]))}if(M=q.slice(-1)[0],!K&&M!=="-")if(f(M,O.arrays))H=KD(H,M,E);else if(f(M,O.nargs)!==!1)H=r(H,M,E);else if(b=E[H+1],b!==void 0&&(!/^(-|--)[^-]/.test(b)||b.match(U))&&!f(M,O.bools)&&!f(M,O.counts))i(M,b),H++;else if(/^(true|false)$/.test(b))i(M,b),H++;else i(M,g(M))}else if(q.match(/^-[0-9]$/)&&q.match(U)&&f(q.slice(1),O.bools))M=q.slice(1),i(M,g(M));else if(q==="--"){k=E.slice(H+1);break}else if($["halt-at-non-option"]){k=E.slice(H);break}else e(q)}if(BD(w,!0),BD(w,!1),x(w),n(),yD(w,O.aliases,G,!0),d(w),$["set-placeholder-key"])$D(w);if(Object.keys(O.counts).forEach(function(H){if(!t(w,H.split(".")))i(H,0)}),Q&&k.length)w[J]=[];if(k.forEach(function(H){w[J].push(H)}),$["camel-case-expansion"]&&$["strip-dashed"])Object.keys(w).filter((H)=>H!=="--"&&H.includes("-")).forEach((H)=>{delete w[H]});if($["strip-aliased"])[].concat(...Object.keys(B).map((H)=>B[H])).forEach((H)=>{if($["camel-case-expansion"]&&H.includes("-"))delete w[H.split(".").map((q)=>rD(q)).join(".")];delete w[H]});function e(H){let q=A("_",H);if(typeof q==="string"||typeof q==="number")w._.push(q)}function r(H,q,j,K){let M,S=f(q,O.nargs);if(S=typeof S!=="number"||isNaN(S)?1:S,S===0){if(!zD(K))N=Error(V("Argument unexpected for: %s",q));return i(q,g(q)),H}let L=zD(K)?0:1;if($["nargs-eats-options"]){if(j.length-(H+1)+L<S)N=Error(V("Not enough arguments following: %s",q));L=S}else{for(M=H+1;M<j.length;M++)if(!j[M].match(/^-[^0-9]/)||j[M].match(U)||l(j[M]))L++;else break;if(L<S)N=Error(V("Not enough arguments following: %s",q))}let b=Math.min(L,S);if(!zD(K)&&b>0)i(q,K),b--;for(M=H+1;M<b+H+1;M++)i(q,j[M]);return H+b}function KD(H,q,j,K){let M=[],S=K||j[H+1],L=f(q,O.nargs);if(f(q,O.bools)&&!/^(true|false)$/.test(S))M.push(!0);else if(zD(S)||zD(K)&&/^-/.test(S)&&!U.test(S)&&!l(S)){if(G[q]!==void 0){let b=G[q];M=Array.isArray(b)?b:[b]}}else{if(!zD(K))M.push(P(q,K,!0));for(let b=H+1;b<j.length;b++){if(!$["greedy-arrays"]&&M.length>0||L&&typeof L==="number"&&M.length>=L)break;if(S=j[b],/^-/.test(S)&&!U.test(S)&&!l(S))break;H=b,M.push(P(q,S,C))}}if(typeof L==="number"&&(L&&M.length<L||isNaN(L)&&M.length===0))N=Error(V("Not enough arguments following: %s",q));return i(q,M),H}function i(H,q,j=C){if(/-/.test(H)&&$["camel-case-expansion"]){let S=H.split(".").map(function(L){return rD(L)}).join(".");oD(H,S)}let K=P(H,q,j),M=H.split(".");if(bD(w,M,K),O.aliases[H])O.aliases[H].forEach(function(S){let L=S.split(".");bD(w,L,K)});if(M.length>1&&$["dot-notation"])(O.aliases[M[0]]||[]).forEach(function(S){let L=S.split("."),b=[].concat(M);if(b.shift(),L=L.concat(b),!(O.aliases[H]||[]).includes(L.join(".")))bD(w,L,K)});if(f(H,O.normalize)&&!f(H,O.arrays))[H].concat(O.aliases[H]||[]).forEach(function(L){Object.defineProperty(c,L,{enumerable:!0,get(){return q},set(b){q=typeof b==="string"?fD.normalize(b):b}})})}function oD(H,q){if(!(O.aliases[H]&&O.aliases[H].length))O.aliases[H]=[q],Y[q]=!0;if(!(O.aliases[q]&&O.aliases[q].length))oD(q,H)}function P(H,q,j){if(j)q=N3(q);if(f(H,O.bools)||f(H,O.counts)){if(typeof q==="string")q=q==="true"}let K=Array.isArray(q)?q.map(function(M){return A(H,M)}):A(H,q);if(f(H,O.counts)&&(zD(K)||typeof K==="boolean"))K=fF();if(f(H,O.normalize)&&f(H,O.arrays))if(Array.isArray(q))K=q.map((M)=>{return fD.normalize(M)});else K=fD.normalize(q);return K}function A(H,q){if(!$["parse-positional-numbers"]&&H==="_")return q;if(!f(H,O.strings)&&!f(H,O.bools)&&!Array.isArray(q)){if(tu(q)&&$["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${q}`)))||!zD(q)&&f(H,O.numbers))q=Number(q)}return q}function x(H){let q=Object.create(null);yD(q,O.aliases,G),Object.keys(O.configs).forEach(function(j){let K=H[j]||q[j];if(K)try{let M=null,S=fD.resolve(fD.cwd(),K),L=O.configs[j];if(typeof L==="function"){try{M=L(S)}catch(b){M=b}if(M instanceof Error){N=M;return}}else M=fD.require(S);p(M)}catch(M){if(M.name==="PermissionDenied")N=M;else if(H[j])N=Error(V("Invalid JSON config file: %s",K))}})}function p(H,q){Object.keys(H).forEach(function(j){let K=H[j],M=q?q+"."+j:j;if(typeof K==="object"&&K!==null&&!Array.isArray(K)&&$["dot-notation"])p(K,M);else if(!t(w,M.split("."))||f(M,O.arrays)&&$["combine-arrays"])i(M,K)})}function n(){if(typeof Z<"u")Z.forEach(function(H){p(H)})}function BD(H,q){if(typeof z>"u")return;let j=typeof z==="string"?z:"",K=fD.env();Object.keys(K).forEach(function(M){if(j===""||M.lastIndexOf(j,0)===0){let S=M.split("__").map(function(L,b){if(b===0)L=L.substring(j.length);return rD(L)});if((q&&O.configs[S.join(".")]||!q)&&!t(H,S))i(S.join("."),K[M])}})}function d(H){let q,j=new Set;Object.keys(H).forEach(function(K){if(!j.has(K)){if(q=f(K,O.coercions),typeof q==="function")try{let M=A(K,q(H[K]));[].concat(O.aliases[K]||[],K).forEach((S)=>{j.add(S),H[S]=M})}catch(M){N=M}}})}function $D(H){return O.keys.forEach((q)=>{if(~q.indexOf("."))return;if(typeof H[q]>"u")H[q]=void 0}),H}function yD(H,q,j,K=!1){Object.keys(j).forEach(function(M){if(!t(H,M.split("."))){if(bD(H,M.split("."),j[M]),K)W[M]=!0;(q[M]||[]).forEach(function(S){if(t(H,S.split(".")))return;bD(H,S.split("."),j[M])})}})}function t(H,q){let j=H;if(!$["dot-notation"])q=[q.join(".")];q.slice(0,-1).forEach(function(M){j=j[M]||{}});let K=q[q.length-1];if(typeof j!=="object")return!1;else return K in j}function bD(H,q,j){let K=H;if(!$["dot-notation"])q=[q.join(".")];q.slice(0,-1).forEach(function(ZD){if(ZD=q2(ZD),typeof K==="object"&&K[ZD]===void 0)K[ZD]={};if(typeof K[ZD]!=="object"||Array.isArray(K[ZD])){if(Array.isArray(K[ZD]))K[ZD].push({});else K[ZD]=[K[ZD],{}];K=K[ZD][K[ZD].length-1]}else K=K[ZD]});let M=q2(q[q.length-1]),S=f(q.join("."),O.arrays),L=Array.isArray(j),b=$["duplicate-arguments-array"];if(!b&&f(M,O.nargs)){if(b=!0,!zD(K[M])&&O.nargs[M]===1||Array.isArray(K[M])&&K[M].length===O.nargs[M])K[M]=void 0}if(j===fF())K[M]=fF(K[M]);else if(Array.isArray(K[M]))if(b&&S&&L)K[M]=$["flatten-duplicate-arrays"]?K[M].concat(j):(Array.isArray(K[M][0])?K[M]:[K[M]]).concat([j]);else if(!b&&Boolean(S)===Boolean(L))K[M]=j;else K[M]=K[M].concat([j]);else if(K[M]===void 0&&S)K[M]=L?j:[j];else if(b&&!(K[M]===void 0||f(M,O.counts)||f(M,O.bools)))K[M]=[K[M],j];else K[M]=j}function Nu(...H){H.forEach(function(q){Object.keys(q||{}).forEach(function(j){if(O.aliases[j])return;O.aliases[j]=[].concat(B[j]||[]),O.aliases[j].concat(j).forEach(function(K){if(/-/.test(K)&&$["camel-case-expansion"]){let M=rD(K);if(M!==j&&O.aliases[j].indexOf(M)===-1)O.aliases[j].push(M),Y[M]=!0}}),O.aliases[j].concat(j).forEach(function(K){if(K.length>1&&/[A-Z]/.test(K)&&$["camel-case-expansion"]){let M=lu(K,"-");if(M!==j&&O.aliases[j].indexOf(M)===-1)O.aliases[j].push(M),Y[M]=!0}}),O.aliases[j].forEach(function(K){O.aliases[K]=[j].concat(O.aliases[j].filter(function(M){return K!==M}))})})})}function f(H,q){let j=[].concat(O.aliases[H]||[],H),K=Object.keys(q),M=j.find((S)=>K.includes(S));return M?q[M]:!1}function Hu(H){let q=Object.keys(O);return[].concat(q.map((K)=>O[K])).some(function(K){return Array.isArray(K)?K.includes(H):K[H]})}function m0(H,...q){return[].concat(...q).some(function(K){let M=H.match(K);return M&&Hu(M[1])})}function h(H){if(H.match(U)||!H.match(/^-[^-]+/))return!1;let q=!0,j,K=H.slice(1).split("");for(let M=0;M<K.length;M++){if(j=H.slice(M+2),!Hu(K[M])){q=!1;break}if(K[M+1]&&K[M+1]==="="||j==="-"||/[A-Za-z]/.test(K[M])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(j)||K[M+1]&&K[M+1].match(/\W/))break}return q}function l(H){return $["unknown-options-as-args"]&&GD(H)}function GD(H){if(H=H.replace(/^-{3,}/,"--"),H.match(U))return!1;if(h(H))return!1;return!m0(H,/^-+([^=]+?)=[\s\S]*$/,_,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function g(H){if(!f(H,O.bools)&&!f(H,O.counts)&&`${H}`in G)return G[H];else return QD(uD(H))}function QD(H){return{[_D.BOOLEAN]:!0,[_D.STRING]:"",[_D.NUMBER]:void 0,[_D.ARRAY]:[]}[H]}function uD(H){let q=_D.BOOLEAN;if(f(H,O.strings))q=_D.STRING;else if(f(H,O.numbers))q=_D.NUMBER;else if(f(H,O.bools))q=_D.BOOLEAN;else if(f(H,O.arrays))q=_D.ARRAY;return q}function zD(H){return H===void 0}function TF(){Object.keys(O.counts).find((H)=>{if(f(H,O.arrays))return N=Error(V("Invalid configuration: %s, opts.count excludes opts.array.",H)),!0;else if(f(H,O.nargs))return N=Error(V("Invalid configuration: %s, opts.count excludes opts.narg.",H)),!0;return!1})}return{aliases:Object.assign({},O.aliases),argv:Object.assign(c,w),configuration:$,defaulted:Object.assign({},W),error:N,newAliases:Object.assign({},Y)}}}function L3(D){let u=[],F=Object.create(null),E=!0;Object.keys(D).forEach(function(C){u.push([].concat(D[C],C))});while(E){E=!1;for(let C=0;C<u.length;C++)for(let B=C+1;B<u.length;B++)if(u[C].filter(function(G){return u[B].indexOf(G)!==-1}).length){u[C]=u[C].concat(u[B]),u.splice(B,1),E=!0;break}}return u.forEach(function(C){C=C.filter(function($,G,Z){return Z.indexOf($)===G});let B=C.pop();if(B!==void 0&&typeof B==="string")F[B]=C}),F}function fF(D){return D!==void 0?D+1:1}function q2(D){if(D==="__proto__")return"___proto___";return D}function N3(D){return typeof D==="string"&&(D[0]==="'"||D[0]==='"')&&D[D.length-1]===D[0]?D.substring(1,D.length-1):D}import{readFileSync as P3}from"fs";import{createRequire as U2}from"node:module";var vF,pF,mF,K2=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):20,_2=(pF=(vF=process===null||process===void 0?void 0:process.versions)===null||vF===void 0?void 0:vF.node)!==null&&pF!==void 0?pF:(mF=process===null||process===void 0?void 0:process.version)===null||mF===void 0?void 0:mF.slice(1);if(_2){if(Number(_2.match(/^([^.]+)/)[1])<K2)throw Error(`yargs parser supports a minimum Node.js version of ${K2}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`)}var w3=process?process.env:{},j2=U2?U2(import.meta.url):void 0,A2=new hF({cwd:process.cwd,env:()=>{return w3},format:T3,normalize:R3,resolve:S3,require:(D)=>{if(typeof j2<"u")return j2(D);else if(D.match(/\.json$/))return JSON.parse(P3(D,"utf8"));else throw Error("only .json config files are supported in ESM")}}),Tu=function(u,F){return A2.parse(u.slice(),F).argv};Tu.detailed=function(D,u){return A2.parse(D.slice(),u)};Tu.camelCase=rD;Tu.decamelize=lu;Tu.looksLikeNumber=tu;var yF=Tu;import{basename as k3,dirname as d3,extname as i3,relative as n3,resolve as I2,join as l3}from"path";function L2(){if(x3())return 0;return 1}function x3(){return I3()&&!process.defaultApp}function I3(){return!!process.versions.electron}function cF(D){return D.slice(L2()+1)}function N2(){return process.argv[L2()]}import{readFileSync as b3,statSync as f3,writeFile as h3}from"fs";import{format as v3}from"util";import{resolve as p3}from"path";var T2={fs:{readFileSync:b3,writeFile:h3},format:v3,resolve:p3,exists:(D)=>{try{return f3(D).isFile()}catch(u){return!1}}};var RD;class R2{constructor(D){D=D||{},this.directory=D.directory||"./locales",this.updateFiles=typeof D.updateFiles==="boolean"?D.updateFiles:!0,this.locale=D.locale||"en",this.fallbackToLanguage=typeof D.fallbackToLanguage==="boolean"?D.fallbackToLanguage:!0,this.cache=Object.create(null),this.writeQueue=[]}__(...D){if(typeof arguments[0]!=="string")return this._taggedLiteral(arguments[0],...arguments);let u=D.shift(),F=function(){};if(typeof D[D.length-1]==="function")F=D.pop();if(F=F||function(){},!this.cache[this.locale])this._readLocaleFile();if(!this.cache[this.locale][u]&&this.updateFiles)this.cache[this.locale][u]=u,this._enqueueWrite({directory:this.directory,locale:this.locale,cb:F});else F();return RD.format.apply(RD.format,[this.cache[this.locale][u]||u].concat(D))}__n(){let D=Array.prototype.slice.call(arguments),u=D.shift(),F=D.shift(),E=D.shift(),C=function(){};if(typeof D[D.length-1]==="function")C=D.pop();if(!this.cache[this.locale])this._readLocaleFile();let B=E===1?u:F;if(this.cache[this.locale][u])B=this.cache[this.locale][u][E===1?"one":"other"];if(!this.cache[this.locale][u]&&this.updateFiles)this.cache[this.locale][u]={one:u,other:F},this._enqueueWrite({directory:this.directory,locale:this.locale,cb:C});else C();let $=[B];if(~B.indexOf("%d"))$.push(E);return RD.format.apply(RD.format,$.concat(D))}setLocale(D){this.locale=D}getLocale(){return this.locale}updateLocale(D){if(!this.cache[this.locale])this._readLocaleFile();for(let u in D)if(Object.prototype.hasOwnProperty.call(D,u))this.cache[this.locale][u]=D[u]}_taggedLiteral(D,...u){let F="";return D.forEach(function(E,C){let B=u[C+1];if(F+=E,typeof B<"u")F+="%s"}),this.__.apply(this,[F].concat([].slice.call(u,1)))}_enqueueWrite(D){if(this.writeQueue.push(D),this.writeQueue.length===1)this._processWriteQueue()}_processWriteQueue(){let D=this,u=this.writeQueue[0],F=u.directory,E=u.locale,C=u.cb,B=this._resolveLocaleFile(F,E),$=JSON.stringify(this.cache[E],null,2);RD.fs.writeFile(B,$,"utf-8",function(G){if(D.writeQueue.shift(),D.writeQueue.length>0)D._processWriteQueue();C(G)})}_readLocaleFile(){let D={},u=this._resolveLocaleFile(this.directory,this.locale);try{if(RD.fs.readFileSync)D=JSON.parse(RD.fs.readFileSync(u,"utf-8"))}catch(F){if(F instanceof SyntaxError)F.message="syntax error in "+u;if(F.code==="ENOENT")D={};else throw F}this.cache[this.locale]=D}_resolveLocaleFile(D,u){let F=RD.resolve(D,"./",u+".json");if(this.fallbackToLanguage&&!this._fileExistsSync(F)&&~u.lastIndexOf("_")){let E=RD.resolve(D,"./",u.split("_")[0]+".json");if(this._fileExistsSync(E))F=E}return F}_fileExistsSync(D){return RD.exists(D)}}function S2(D,u){RD=u;let F=new R2(D);return{__:F.__.bind(F),__n:F.__n.bind(F),setLocale:F.setLocale.bind(F),getLocale:F.getLocale.bind(F),updateLocale:F.updateLocale.bind(F),locale:F.locale}}var m3=(D)=>{return S2(D,T2)},P2=m3;var f2=c0(x2(),1);import{createRequire as t3}from"node:module";import{readFileSync as o3,readdirSync as s3}from"node:fs";var gF=b2(import.meta.url),r3=gF.substring(0,gF.lastIndexOf("node_modules")),a3=t3(import.meta.url),kF={assert:{notStrictEqual:y3,strictEqual:c3},cliui:IF,findUp:bF,getEnv:(D)=>{return process.env[D]},inspect:g3,getProcessArgvBin:N2,mainFilename:r3||process.cwd(),Parser:yF,path:{basename:k3,dirname:d3,extname:i3,relative:n3,resolve:I2,join:l3},process:{argv:()=>process.argv,cwd:process.cwd,emitWarning:(D,u)=>process.emitWarning(D,u),execPath:()=>process.execPath,exit:(D)=>{process.exit(D)},nextTick:process.nextTick,stdColumns:typeof process.stdout.columns<"u"?process.stdout.columns:null},readFileSync:o3,readdirSync:s3,require:a3,getCallerFile:()=>{let D=f2.default(3);return D.match(/^file:\/\//)?b2(D):D},stringWidth:TD,y18n:P2({directory:I2(gF,"../../../locales"),updateFiles:!1})};function OD(D,u,F,E){F.assert.notStrictEqual(D,u,E)}function dF(D,u){u.assert.strictEqual(typeof D,"string")}function Mu(D){return Object.keys(D)}function s(D){return!!D&&!!D.then&&typeof D.then==="function"}class FD extends Error{constructor(D){super(D||"yargs error");if(this.name="YError",Error.captureStackTrace)Error.captureStackTrace(this,FD)}}function cD(D){let F=D.replace(/\s{2,}/g," ").split(/\s+(?![^[]*]|[^<]*>)/),E=/\.*[\][<>]/g,C=F.shift();if(!C)throw Error(`No command found in: ${D}`);let B={cmd:C.replace(E,""),demanded:[],optional:[]};return F.forEach(($,G)=>{let Z=!1;if($=$.replace(/\s/g,""),/\.+[\]>]/.test($)&&G===F.length-1)Z=!0;if(/^\[/.test($))B.optional.push({cmd:$.replace(E,"").split("|"),variadic:Z});else B.demanded.push({cmd:$.replace(E,"").split("|"),variadic:Z})}),B}var e3=["first","second","third","fourth","fifth","sixth"];function T(D,u,F){function E(){return typeof D==="object"?[{demanded:[],optional:[]},D,u]:[cD(`cmd ${D}`),u,F]}try{let C=0,[B,$,G]=E(),Z=[].slice.call($);while(Z.length&&Z[Z.length-1]===void 0)Z.pop();let z=G||Z.length;if(z<B.demanded.length)throw new FD(`Not enough arguments provided. Expected ${B.demanded.length} but received ${Z.length}.`);let Q=B.demanded.length+B.optional.length;if(z>Q)throw new FD(`Too many arguments provided. Expected max ${Q} but received ${z}.`);B.demanded.forEach((J)=>{let Y=Z.shift(),W=h2(Y);if(J.cmd.filter((O)=>O===W||O==="*").length===0)v2(W,J.cmd,C);C+=1}),B.optional.forEach((J)=>{if(Z.length===0)return;let Y=Z.shift(),W=h2(Y);if(J.cmd.filter((O)=>O===W||O==="*").length===0)v2(W,J.cmd,C);C+=1})}catch(C){console.warn(C.stack)}}function h2(D){if(Array.isArray(D))return"array";else if(D===null)return"null";return typeof D}function v2(D,u,F){throw new FD(`Invalid ${e3[F]||"manyith"} argument. Expected ${u.join(" or ")} but received ${D}.`)}class iF{constructor(D){this.globalMiddleware=[],this.frozens=[],this.yargs=D}addMiddleware(D,u,F=!0,E=!1){if(T("<array|function> [boolean] [boolean] [boolean]",[D,u,F],arguments.length),Array.isArray(D)){for(let C=0;C<D.length;C++){if(typeof D[C]!=="function")throw Error("middleware must be a function");let B=D[C];B.applyBeforeValidation=u,B.global=F}Array.prototype.push.apply(this.globalMiddleware,D)}else if(typeof D==="function"){let C=D;C.applyBeforeValidation=u,C.global=F,C.mutates=E,this.globalMiddleware.push(D)}return this.yargs}addCoerceMiddleware(D,u){let F=this.yargs.getAliases();return this.globalMiddleware=this.globalMiddleware.filter((E)=>{let C=[...F[u]||[],u];if(!E.option)return!0;else return!C.includes(E.option)}),D.option=u,this.addMiddleware(D,!0,!0,!0)}getMiddleware(){return this.globalMiddleware}freeze(){this.frozens.push([...this.globalMiddleware])}unfreeze(){let D=this.frozens.pop();if(D!==void 0)this.globalMiddleware=D}reset(){this.globalMiddleware=this.globalMiddleware.filter((D)=>D.global)}}function p2(D){if(!D)return[];return D.map((u)=>{return u.applyBeforeValidation=!1,u})}function aD(D,u,F,E){return F.reduce((C,B)=>{if(B.applyBeforeValidation!==E)return C;if(B.mutates){if(B.applied)return C;B.applied=!0}if(s(C))return C.then(($)=>Promise.all([$,B($,u)])).then(([$,G])=>Object.assign($,G));else{let $=B(C,u);return s($)?$.then((G)=>Object.assign(C,G)):Object.assign(C,$)}},D)}function eD(D,u,F=(E)=>{throw E}){try{let E=D6(D)?D():D;return s(E)?E.then((C)=>u(C)):u(E)}catch(E){return F(E)}}function D6(D){return typeof D==="function"}var qu=/(^\*)|(^\$0)/;class y2{constructor(D,u,F,E){this.requireCache=new Set,this.handlers={},this.aliasMap={},this.frozens=[],this.shim=E,this.usage=D,this.globalMiddleware=F,this.validation=u}addDirectory(D,u,F,E){E=E||{},this.requireCache.add(F);let C=this.shim.path.resolve(this.shim.path.dirname(F),D),B=this.shim.readdirSync(C,{recursive:E.recurse?!0:!1});if(!Array.isArray(E.extensions))E.extensions=["js"];let $=typeof E.visit==="function"?E.visit:(G)=>G;for(let G of B){let Z=G.toString();if(E.exclude){let Q=!1;if(typeof E.exclude==="function")Q=E.exclude(Z);else Q=E.exclude.test(Z);if(Q)continue}if(E.include){let Q=!1;if(typeof E.include==="function")Q=E.include(Z);else Q=E.include.test(Z);if(!Q)continue}let z=!1;for(let Q of E.extensions)if(Z.endsWith(Q))z=!0;if(z){let Q=this.shim.path.join(C,Z),J=u(Q),Y=Object.create(null,Object.getOwnPropertyDescriptors({...J}));if($(Y,Q,Z)){if(this.requireCache.has(Q))continue;else this.requireCache.add(Q);if(!Y.command)Y.command=this.shim.path.basename(Q,this.shim.path.extname(Q));this.addHandler(Y)}}}}addHandler(D,u,F,E,C,B){let $=[],G=p2(C);if(E=E||(()=>{}),Array.isArray(D))if(u6(D))[D,...$]=D;else for(let Z of D)this.addHandler(Z);else if(E6(D)){let Z=Array.isArray(D.command)||typeof D.command==="string"?D.command:null;if(Z===null)throw Error(`No command name given for module: ${this.shim.inspect(D)}`);if(D.aliases)Z=[].concat(Z).concat(D.aliases);this.addHandler(Z,this.extractDesc(D),D.builder,D.handler,D.middlewares,D.deprecated);return}else if(m2(F)){this.addHandler([D].concat($),u,F.builder,F.handler,F.middlewares,F.deprecated);return}if(typeof D==="string"){let Z=cD(D);$=$.map((J)=>cD(J).cmd);let z=!1,Q=[Z.cmd].concat($).filter((J)=>{if(qu.test(J))return z=!0,!1;return!0});if(Q.length===0&&z)Q.push("$0");if(z)Z.cmd=Q[0],$=Q.slice(1),D=D.replace(qu,Z.cmd);if($.forEach((J)=>{this.aliasMap[J]=Z.cmd}),u!==!1)this.usage.command(D,u,z,$,B);if(this.handlers[Z.cmd]={original:D,description:u,handler:E,builder:F||{},middlewares:G,deprecated:B,demanded:Z.demanded,optional:Z.optional},z)this.defaultCommand=this.handlers[Z.cmd]}}getCommandHandlers(){return this.handlers}getCommands(){return Object.keys(this.handlers).concat(Object.keys(this.aliasMap))}hasDefaultCommand(){return!!this.defaultCommand}runCommand(D,u,F,E,C,B){let $=this.handlers[D]||this.handlers[this.aliasMap[D]]||this.defaultCommand,G=u.getInternalMethods().getContext(),Z=G.commands.slice(),z=!D;if(D)G.commands.push(D),G.fullCommands.push($.original);let Q=this.applyBuilderUpdateUsageAndParse(z,$,u,F.aliases,Z,E,C,B);return s(Q)?Q.then((J)=>this.applyMiddlewareAndGetResult(z,$,J.innerArgv,G,C,J.aliases,u)):this.applyMiddlewareAndGetResult(z,$,Q.innerArgv,G,C,Q.aliases,u)}applyBuilderUpdateUsageAndParse(D,u,F,E,C,B,$,G){let Z=u.builder,z=F;if(ou(Z)){F.getInternalMethods().getUsageInstance().freeze();let Q=Z(F.getInternalMethods().reset(E),G);if(s(Q))return Q.then((J)=>{return z=g2(J)?J:F,this.parseAndUpdateUsage(D,u,z,C,B,$)})}else if(F6(Z))F.getInternalMethods().getUsageInstance().freeze(),z=F.getInternalMethods().reset(E),Object.keys(u.builder).forEach((Q)=>{z.option(Q,Z[Q])});return this.parseAndUpdateUsage(D,u,z,C,B,$)}parseAndUpdateUsage(D,u,F,E,C,B){if(D)F.getInternalMethods().getUsageInstance().unfreeze(!0);if(this.shouldUpdateUsage(F))F.getInternalMethods().getUsageInstance().usage(this.usageFromParentCommandsCommandHandler(E,u),u.description);let $=F.getInternalMethods().runYargsParserAndExecuteCommands(null,void 0,!0,C,B);return s($)?$.then((G)=>({aliases:F.parsed.aliases,innerArgv:G})):{aliases:F.parsed.aliases,innerArgv:$}}shouldUpdateUsage(D){return!D.getInternalMethods().getUsageInstance().getUsageDisabled()&&D.getInternalMethods().getUsageInstance().getUsage().length===0}usageFromParentCommandsCommandHandler(D,u){let F=qu.test(u.original)?u.original.replace(qu,"").trim():u.original,E=D.filter((C)=>{return!qu.test(C)});return E.push(F),`$0 ${E.join(" ")}`}handleValidationAndGetResult(D,u,F,E,C,B,$,G){if(!B.getInternalMethods().getHasOutput()){let Z=B.getInternalMethods().runValidation(C,G,B.parsed.error,D);F=eD(F,(z)=>{return Z(z),z})}if(u.handler&&!B.getInternalMethods().getHasOutput()){B.getInternalMethods().setHasOutput();let Z=!!B.getOptions().configuration["populate--"];if(B.getInternalMethods().postProcess(F,Z,!1,!1),F=aD(F,B,$,!1),F=eD(F,(z)=>{let Q=u.handler(z);return s(Q)?Q.then(()=>z):z}),!D)B.getInternalMethods().getUsageInstance().cacheHelpMessage();if(s(F)&&!B.getInternalMethods().hasParseCallback())F.catch((z)=>{try{B.getInternalMethods().getUsageInstance().fail(null,z)}catch(Q){}})}if(!D)E.commands.pop(),E.fullCommands.pop();return F}applyMiddlewareAndGetResult(D,u,F,E,C,B,$){let G={};if(C)return F;if(!$.getInternalMethods().getHasOutput())G=this.populatePositionals(u,F,E,$);let Z=this.globalMiddleware.getMiddleware().slice(0).concat(u.middlewares),z=aD(F,$,Z,!0);return s(z)?z.then((Q)=>this.handleValidationAndGetResult(D,u,Q,E,B,$,Z,G)):this.handleValidationAndGetResult(D,u,z,E,B,$,Z,G)}populatePositionals(D,u,F,E){u._=u._.slice(F.commands.length);let C=D.demanded.slice(0),B=D.optional.slice(0),$={};this.validation.positionalCount(C.length,u._.length);while(C.length){let G=C.shift();this.populatePositional(G,u,$)}while(B.length){let G=B.shift();this.populatePositional(G,u,$)}return u._=F.commands.concat(u._.map((G)=>""+G)),this.postProcessPositionals(u,$,this.cmdToParseOptions(D.original),E),$}populatePositional(D,u,F){let E=D.cmd[0];if(D.variadic)F[E]=u._.splice(0).map(String);else if(u._.length)F[E]=[String(u._.shift())]}cmdToParseOptions(D){let u={array:[],default:{},alias:{},demand:{}},F=cD(D);return F.demanded.forEach((E)=>{let[C,...B]=E.cmd;if(E.variadic)u.array.push(C),u.default[C]=[];u.alias[C]=B,u.demand[C]=!0}),F.optional.forEach((E)=>{let[C,...B]=E.cmd;if(E.variadic)u.array.push(C),u.default[C]=[];u.alias[C]=B}),u}postProcessPositionals(D,u,F,E){let C=Object.assign({},E.getOptions());C.default=Object.assign(F.default,C.default);for(let Z of Object.keys(F.alias))C.alias[Z]=(C.alias[Z]||[]).concat(F.alias[Z]);C.array=C.array.concat(F.array),C.config={};let B=[];if(Object.keys(u).forEach((Z)=>{u[Z].map((z)=>{if(C.configuration["unknown-options-as-args"])C.key[Z]=!0;B.push(`--${Z}`),B.push(z)})}),!B.length)return;let $=Object.assign({},C.configuration,{"populate--":!1}),G=this.shim.Parser.detailed(B,Object.assign({},C,{configuration:$}));if(G.error)E.getInternalMethods().getUsageInstance().fail(G.error.message,G.error);else{let Z=Object.keys(u);Object.keys(u).forEach((z)=>{Z.push(...G.aliases[z])}),Object.keys(G.argv).forEach((z)=>{if(Z.includes(z)){if(!u[z])u[z]=G.argv[z];if(!this.isInConfigs(E,z)&&!this.isDefaulted(E,z)&&Object.prototype.hasOwnProperty.call(D,z)&&Object.prototype.hasOwnProperty.call(G.argv,z)&&(Array.isArray(D[z])||Array.isArray(G.argv[z])))D[z]=[].concat(D[z],G.argv[z]);else D[z]=G.argv[z]}})}}isDefaulted(D,u){let{default:F}=D.getOptions();return Object.prototype.hasOwnProperty.call(F,u)||Object.prototype.hasOwnProperty.call(F,this.shim.Parser.camelCase(u))}isInConfigs(D,u){let{configObjects:F}=D.getOptions();return F.some((E)=>Object.prototype.hasOwnProperty.call(E,u))||F.some((E)=>Object.prototype.hasOwnProperty.call(E,this.shim.Parser.camelCase(u)))}runDefaultBuilderOn(D){if(!this.defaultCommand)return;if(this.shouldUpdateUsage(D)){let F=qu.test(this.defaultCommand.original)?this.defaultCommand.original:this.defaultCommand.original.replace(/^[^[\]<>]*/,"$0 ");D.getInternalMethods().getUsageInstance().usage(F,this.defaultCommand.description)}let u=this.defaultCommand.builder;if(ou(u))return u(D,!0);else if(!m2(u))Object.keys(u).forEach((F)=>{D.option(F,u[F])});return}extractDesc({describe:D,description:u,desc:F}){for(let E of[D,u,F]){if(typeof E==="string"||E===!1)return E;OD(E,!0,this.shim)}return!1}freeze(){this.frozens.push({handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand})}unfreeze(){let D=this.frozens.pop();OD(D,void 0,this.shim),{handlers:this.handlers,aliasMap:this.aliasMap,defaultCommand:this.defaultCommand}=D}reset(){return this.handlers={},this.aliasMap={},this.defaultCommand=void 0,this.requireCache=new Set,this}}function c2(D,u,F,E){return new y2(D,u,F,E)}function m2(D){return typeof D==="object"&&!!D.builder&&typeof D.handler==="function"}function u6(D){return D.every((u)=>typeof u==="string")}function ou(D){return typeof D==="function"}function F6(D){return typeof D==="object"}function E6(D){return typeof D==="object"&&!Array.isArray(D)}function gD(D={},u=()=>!0){let F={};return Mu(D).forEach((E)=>{if(u(E,D[E]))F[E]=D[E]}),F}function kD(D){if(typeof process>"u")return;[process.stdout,process.stderr].forEach((u)=>{let F=u;if(F._handle&&F.isTTY&&typeof F._handle.setBlocking==="function")F._handle.setBlocking(D)})}function C6(D){return typeof D==="boolean"}function d2(D,u){let F=u.y18n.__,E={},C=[];E.failFn=function(A){C.push(A)};let B=null,$=null,G=!0;E.showHelpOnFail=function(A=!0,x){let[p,n]=typeof A==="string"?[!0,A]:[A,x];if(D.getInternalMethods().isGlobalContext())$=n;return B=n,G=p,E};let Z=!1;E.fail=function(A,x){let p=D.getInternalMethods().getLoggerInstance();if(C.length)for(let n=C.length-1;n>=0;--n){let BD=C[n];if(C6(BD)){if(x)throw x;else if(A)throw Error(A)}else BD(A,x,E)}else{if(D.getExitProcess())kD(!0);if(!Z){if(Z=!0,G)D.showHelp("error"),p.error();if(A||x)p.error(A||x);let n=B||$;if(n){if(A||x)p.error("");p.error(n)}}if(x=x||new FD(A),D.getExitProcess())return D.exit(1);else if(D.getInternalMethods().hasParseCallback())return D.exit(1,x);else throw x}};let z=[],Q=!1;E.usage=(P,A)=>{if(P===null)return Q=!0,z=[],E;return Q=!1,z.push([P,A||""]),E},E.getUsage=()=>{return z},E.getUsageDisabled=()=>{return Q},E.getPositionalGroupName=()=>{return F("Positionals:")};let J=[];E.example=(P,A)=>{J.push([P,A||""])};let Y=[];E.command=function(A,x,p,n,BD=!1){if(p)Y=Y.map((d)=>{return d[2]=!1,d});Y.push([A,x||"",p,n,BD])},E.getCommands=()=>Y;let W={};E.describe=function(A,x){if(Array.isArray(A))A.forEach((p)=>{E.describe(p,x)});else if(typeof A==="object")Object.keys(A).forEach((p)=>{E.describe(p,A[p])});else W[A]=x},E.getDescriptions=()=>W;let V=[];E.epilog=(P)=>{V.push(P)};let O=!1,U;E.wrap=(P)=>{O=!0,U=P},E.getWrap=()=>{if(u.getEnv("YARGS_DISABLE_WRAP"))return null;if(!O)U=KD(),O=!0;return U};let _="__yargsString__:";E.deferY18nLookup=(P)=>_+P,E.help=function(){if(w)return w;k();let A=D.customScriptName?D.$0:u.path.basename(D.$0),x=D.getDemandedOptions(),p=D.getDemandedCommands(),n=D.getDeprecatedOptions(),BD=D.getGroups(),d=D.getOptions(),$D=[];$D=$D.concat(Object.keys(W)),$D=$D.concat(Object.keys(x)),$D=$D.concat(Object.keys(p)),$D=$D.concat(Object.keys(d.default)),$D=$D.filter(e),$D=Object.keys($D.reduce((h,l)=>{if(l!=="_")h[l]=!0;return h},{}));let yD=E.getWrap(),t=u.cliui({width:yD,wrap:!!yD});if(!Q){if(z.length)z.forEach((h)=>{if(t.div({text:`${h[0].replace(/\$0/g,A)}`}),h[1])t.div({text:`${h[1]}`,padding:[1,0,0,0]})}),t.div();else if(Y.length){let h=null;if(p._)h=`${A} <${F("command")}>
|
|
15
15
|
`;else h=`${A} [${F("command")}]
|
|
16
|
-
`;
|
|
17
|
-
`);
|
|
18
|
-
`)}return
|
|
16
|
+
`;t.div(`${h}`)}}if(Y.length>1||Y.length===1&&!Y[0][2]){t.div(F("Commands:"));let h=D.getInternalMethods().getContext(),l=h.commands.length?`${h.commands.join(" ")} `:"";if(D.getInternalMethods().getParserConfiguration()["sort-commands"]===!0)Y=Y.sort((g,QD)=>g[0].localeCompare(QD[0]));let GD=A?`${A} `:"";Y.forEach((g)=>{let QD=`${GD}${l}${g[0].replace(/^\$0 ?/,"")}`;t.span({text:QD,padding:[0,2,0,2],width:N(Y,yD,`${A}${l}`)+4},{text:g[1]});let uD=[];if(g[2])uD.push(`[${F("default")}]`);if(g[3]&&g[3].length)uD.push(`[${F("aliases:")} ${g[3].join(", ")}]`);if(g[4])if(typeof g[4]==="string")uD.push(`[${F("deprecated: %s",g[4])}]`);else uD.push(`[${F("deprecated")}]`);if(uD.length)t.div({text:uD.join(" "),padding:[0,0,0,2],align:"right"});else t.div()}),t.div()}let bD=(Object.keys(d.alias)||[]).concat(Object.keys(D.parsed.newAliases)||[]);$D=$D.filter((h)=>!D.parsed.newAliases[h]&&bD.every((l)=>(d.alias[l]||[]).indexOf(h)===-1));let Nu=F("Options:");if(!BD[Nu])BD[Nu]=[];c($D,d.alias,BD,Nu);let f=(h)=>/^--/.test(su(h)),Hu=Object.keys(BD).filter((h)=>BD[h].length>0).map((h)=>{let l=BD[h].filter(e).map((GD)=>{if(bD.includes(GD))return GD;for(let g=0,QD;(QD=bD[g])!==void 0;g++)if((d.alias[QD]||[]).includes(GD))return QD;return GD});return{groupName:h,normalizedKeys:l}}).filter(({normalizedKeys:h})=>h.length>0).map(({groupName:h,normalizedKeys:l})=>{let GD=l.reduce((g,QD)=>{return g[QD]=[QD].concat(d.alias[QD]||[]).map((uD)=>{if(h===E.getPositionalGroupName())return uD;else return(/^[0-9]$/.test(uD)?d.boolean.includes(QD)?"-":"--":uD.length>1?"--":"-")+uD}).sort((uD,zD)=>f(uD)===f(zD)?0:f(uD)?1:-1).join(", "),g},{});return{groupName:h,normalizedKeys:l,switches:GD}});if(Hu.filter(({groupName:h})=>h!==E.getPositionalGroupName()).some(({normalizedKeys:h,switches:l})=>!h.every((GD)=>f(l[GD]))))Hu.filter(({groupName:h})=>h!==E.getPositionalGroupName()).forEach(({normalizedKeys:h,switches:l})=>{h.forEach((GD)=>{if(f(l[GD]))l[GD]=B6(l[GD],4)})});if(Hu.forEach(({groupName:h,normalizedKeys:l,switches:GD})=>{t.div(h),l.forEach((g)=>{let QD=GD[g],uD=W[g]||"",zD=null;if(uD.includes(_))uD=F(uD.substring(_.length));if(d.boolean.includes(g))zD=`[${F("boolean")}]`;if(d.count.includes(g))zD=`[${F("count")}]`;if(d.string.includes(g))zD=`[${F("string")}]`;if(d.normalize.includes(g))zD=`[${F("string")}]`;if(d.array.includes(g))zD=`[${F("array")}]`;if(d.number.includes(g))zD=`[${F("number")}]`;let TF=(j)=>typeof j==="string"?`[${F("deprecated: %s",j)}]`:`[${F("deprecated")}]`,H=[g in n?TF(n[g]):null,zD,g in x?`[${F("required")}]`:null,d.choices&&d.choices[g]?`[${F("choices:")} ${E.stringifiedValues(d.choices[g])}]`:null,r(d.default[g],d.defaultDescription[g])].filter(Boolean).join(" ");t.span({text:su(QD),padding:[0,2,0,2+k2(QD)],width:N(GD,yD)+4},uD);let q=D.getInternalMethods().getUsageConfiguration()["hide-types"]===!0;if(H&&!q)t.div({text:H,padding:[0,0,0,2],align:"right"});else t.div()}),t.div()}),J.length)t.div(F("Examples:")),J.forEach((h)=>{h[0]=h[0].replace(/\$0/g,A)}),J.forEach((h)=>{if(h[1]==="")t.div({text:h[0],padding:[0,2,0,2]});else t.div({text:h[0],padding:[0,2,0,2],width:N(J,yD)+4},{text:h[1]})}),t.div();if(V.length>0){let h=V.map((l)=>l.replace(/\$0/g,A)).join(`
|
|
17
|
+
`);t.div(`${h}
|
|
18
|
+
`)}return t.toString().replace(/\s*$/,"")};function N(P,A,x){let p=0;if(!Array.isArray(P))P=Object.values(P).map((n)=>[n]);if(P.forEach((n)=>{p=Math.max(u.stringWidth(x?`${x} ${su(n[0])}`:su(n[0]))+k2(n[0]),p)}),A)p=Math.min(p,parseInt((A*0.5).toString(),10));return p}function k(){let P=D.getDemandedOptions(),A=D.getOptions();(Object.keys(A.alias)||[]).forEach((x)=>{A.alias[x].forEach((p)=>{if(W[p])E.describe(x,W[p]);if(p in P)D.demandOption(x,P[p]);if(A.boolean.includes(p))D.boolean(x);if(A.count.includes(p))D.count(x);if(A.string.includes(p))D.string(x);if(A.normalize.includes(p))D.normalize(x);if(A.array.includes(p))D.array(x);if(A.number.includes(p))D.number(x)})})}let w;E.cacheHelpMessage=function(){w=this.help()},E.clearCachedHelpMessage=function(){w=void 0},E.hasCachedHelpMessage=function(){return!!w};function c(P,A,x,p){let n=[],BD=null;return Object.keys(x).forEach((d)=>{n=n.concat(x[d])}),P.forEach((d)=>{if(BD=[d].concat(A[d]),!BD.some(($D)=>n.indexOf($D)!==-1))x[p].push(d)}),n}function e(P){return D.getOptions().hiddenOptions.indexOf(P)<0||D.parsed.argv[D.getOptions().showHiddenOpt]}E.showHelp=(P)=>{let A=D.getInternalMethods().getLoggerInstance();if(!P)P="error";(typeof P==="function"?P:A[P])(E.help())},E.functionDescription=(P)=>{return["(",P.name?u.Parser.decamelize(P.name,"-"):F("generated-value"),")"].join("")},E.stringifiedValues=function(A,x){let p="",n=x||", ",BD=[].concat(A);if(!A||!BD.length)return p;return BD.forEach((d)=>{if(p.length)p+=n;p+=JSON.stringify(d)}),p};function r(P,A){let x=`[${F("default:")} `;if(P===void 0&&!A)return null;if(A)x+=A;else switch(typeof P){case"string":x+=`"${P}"`;break;case"object":x+=JSON.stringify(P);break;default:x+=P}return`${x}]`}function KD(){if(u.process.stdColumns)return Math.min(80,u.process.stdColumns);else return 80}let i=null;E.version=(P)=>{i=P},E.showVersion=(P)=>{let A=D.getInternalMethods().getLoggerInstance();if(!P)P="error";(typeof P==="function"?P:A[P])(i)},E.reset=function(A){return B=null,Z=!1,z=[],Q=!1,V=[],J=[],Y=[],W=gD(W,(x)=>!A[x]),E};let oD=[];return E.freeze=function(){oD.push({failMessage:B,failureOutput:Z,usages:z,usageDisabled:Q,epilogs:V,examples:J,commands:Y,descriptions:W})},E.unfreeze=function(A=!1){let x=oD.pop();if(!x)return;if(A)W={...x.descriptions,...W},Y=[...x.commands,...Y],z=[...x.usages,...z],J=[...x.examples,...J],V=[...x.epilogs,...V];else({failMessage:B,failureOutput:Z,usages:z,usageDisabled:Q,epilogs:V,examples:J,commands:Y,descriptions:W}=x)},E}function nF(D){return typeof D==="object"}function B6(D,u){return nF(D)?{text:D.text,indentation:D.indentation+u}:{text:D,indentation:u}}function k2(D){return nF(D)?D.indentation:0}function su(D){return nF(D)?D.text:D}var i2=`###-begin-{{app_name}}-completions-###
|
|
19
19
|
#
|
|
20
20
|
# yargs command completion script
|
|
21
21
|
#
|
|
@@ -44,7 +44,7 @@ _{{app_name}}_yargs_completions()
|
|
|
44
44
|
}
|
|
45
45
|
complete -o bashdefault -o default -F _{{app_name}}_yargs_completions {{app_name}}
|
|
46
46
|
###-end-{{app_name}}-completions-###
|
|
47
|
-
`,
|
|
47
|
+
`,n2=`#compdef {{app_name}}
|
|
48
48
|
###-begin-{{app_name}}-completions-###
|
|
49
49
|
#
|
|
50
50
|
# yargs command completion script
|
|
@@ -71,87 +71,89 @@ else
|
|
|
71
71
|
compdef _{{app_name}}_yargs_completions {{app_name}}
|
|
72
72
|
fi
|
|
73
73
|
###-end-{{app_name}}-completions-###
|
|
74
|
-
`;class
|
|
75
|
-
${
|
|
76
|
-
`)}`:"";u.fail(C("Missing required argument: %s","Missing required arguments: %s",Object.keys(W).length,Object.keys(W).join(", ")+
|
|
77
|
-
${E("Argument: %s, Given: %s, Choices: %s",
|
|
78
|
-
`;O.forEach((H)=>{W+=H}),u.fail(W)}};let Z={};B.conflicts=function(J,O){if(R("<string|object> [array|string]",[J,O],arguments.length),typeof J==="object")Object.keys(J).forEach((W)=>{B.conflicts(W,J[W])});else{if(D.global(J),!Z[J])Z[J]=[];if(Array.isArray(O))O.forEach((W)=>B.conflicts(J,W));else Z[J].push(O)}},B.getConflicting=()=>Z,B.conflicting=function(J){if(Object.keys(J).forEach((O)=>{if(Z[O])Z[O].forEach((W)=>{if(W&&J[O]!==void 0&&J[W]!==void 0)u.fail(E("Arguments %s and %s are mutually exclusive",O,W))})}),D.getInternalMethods().getParserConfiguration()["strip-dashed"])Object.keys(Z).forEach((O)=>{Z[O].forEach((W)=>{if(W&&J[F.Parser.camelCase(O)]!==void 0&&J[F.Parser.camelCase(W)]!==void 0)u.fail(E("Arguments %s and %s are mutually exclusive",O,W))})})},B.recommendCommands=function(J,O){O=O.sort((q,j)=>j.length-q.length);let H=null,Y=1/0;for(let q=0,j;(j=O[q])!==void 0;q++){let N=t2(J,j);if(N<=3&&N<Y)Y=N,H=j}if(H)u.fail(E("Did you mean %s?",H))},B.reset=function(J){return $=gD($,(O)=>!J[O]),Z=gD(Z,(O)=>!J[O]),B};let G=[];return B.freeze=function(){G.push({implied:$,conflicting:Z})},B.unfreeze=function(){let J=G.pop();YD(J,void 0,F),{implied:$,conflicting:Z}=J},B}var iF=[],Ru;function Tu(D,u,F,E){Ru=E;let C={};if(Object.prototype.hasOwnProperty.call(D,"extends")){if(typeof D.extends!=="string")return C;let B=/\.json|\..*rc$/.test(D.extends),$=null;if(!B)try{$=import.meta.resolve(D.extends)}catch(z){return D}else $=B6(u,D.extends);C6($),iF.push($),C=B?JSON.parse(Ru.readFileSync($,"utf8")):E.require(D.extends),delete D.extends,C=Tu(C,Ru.path.dirname($),F,Ru)}return iF=[],F?s2(C,D):Object.assign({},C,D)}function C6(D){if(iF.indexOf(D)>-1)throw new FD(`Circular extended configurations: '${D}'.`)}function B6(D,u){return Ru.path.resolve(D,u)}function s2(D,u){let F={};function E(C){return C&&typeof C==="object"&&!Array.isArray(C)}Object.assign(F,D);for(let C of Object.keys(u))if(E(u[C])&&E(F[C]))F[C]=s2(D[C],u[C]);else F[C]=u[C];return F}var T=function(D,u,F,E,C){if(E==="m")throw TypeError("Private method is not writable");if(E==="a"&&!C)throw TypeError("Private accessor was defined without a setter");if(typeof u==="function"?D!==u||!C:!u.has(D))throw TypeError("Cannot write private member to an object whose class did not declare it");return E==="a"?C.call(D,F):C?C.value=F:u.set(D,F),F},X=function(D,u,F,E){if(F==="a"&&!E)throw TypeError("Private accessor was defined without a getter");if(typeof u==="function"?D!==u||!E:!u.has(D))throw TypeError("Cannot read private member from an object whose class did not declare it");return F==="m"?E:F==="a"?E.call(D):E?E.value:u.get(D)},ED,eD,Su,HD,MD,su,dD,Du,ru,jD,au,AD,PD,UD,LD,eu,uu,JD,I,DF,uF,qD,Fu,Uu,Eu,iD,FF,v,Cu,Bu,$u,m,EF,wD,DD;function H8(D){return(u=[],F=D.process.cwd(),E)=>{let C=new V8(u,F,E,D);return Object.defineProperty(C,"argv",{get:()=>{return C.parse()},enumerable:!0}),C.help(),C.version(),C}}var r2=Symbol("copyDoubleDash"),a2=Symbol("copyDoubleDash"),nF=Symbol("deleteFromParserHintObject"),e2=Symbol("emitWarning"),D8=Symbol("freeze"),u8=Symbol("getDollarZero"),zu=Symbol("getParserConfiguration"),F8=Symbol("getUsageConfiguration"),tF=Symbol("guessLocale"),E8=Symbol("guessVersion"),C8=Symbol("parsePositionalNumbers"),lF=Symbol("pkgUp"),nD=Symbol("populateParserHintArray"),qu=Symbol("populateParserHintSingleValueDictionary"),oF=Symbol("populateParserHintArrayDictionary"),sF=Symbol("populateParserHintDictionary"),rF=Symbol("sanitizeKey"),aF=Symbol("setKey"),eF=Symbol("unfreeze"),B8=Symbol("validateAsync"),$8=Symbol("getCommandInstance"),z8=Symbol("getContext"),G8=Symbol("getHasOutput"),Z8=Symbol("getLoggerInstance"),J8=Symbol("getParseContext"),X8=Symbol("getUsageInstance"),Q8=Symbol("getValidationInstance"),CF=Symbol("hasParseCallback"),O8=Symbol("isGlobalContext"),Gu=Symbol("postProcess"),Y8=Symbol("rebase"),D0=Symbol("reset"),Pu=Symbol("runYargsParserAndExecuteCommands"),u0=Symbol("runValidation"),W8=Symbol("setHasOutput"),Zu=Symbol("kTrackManuallySetKeys"),$6="en_US";class V8{constructor(D=[],u,F,E){this.customScriptName=!1,this.parsed=!1,ED.set(this,void 0),eD.set(this,void 0),Su.set(this,{commands:[],fullCommands:[]}),HD.set(this,null),MD.set(this,null),su.set(this,"show-hidden"),dD.set(this,null),Du.set(this,!0),ru.set(this,{}),jD.set(this,!0),au.set(this,[]),AD.set(this,void 0),PD.set(this,{}),UD.set(this,!1),LD.set(this,null),eu.set(this,!0),uu.set(this,void 0),JD.set(this,""),I.set(this,void 0),DF.set(this,void 0),uF.set(this,{}),qD.set(this,null),Fu.set(this,null),Uu.set(this,{}),Eu.set(this,{}),iD.set(this,void 0),FF.set(this,!1),v.set(this,void 0),Cu.set(this,!1),Bu.set(this,!1),$u.set(this,!1),m.set(this,void 0),EF.set(this,{}),wD.set(this,null),DD.set(this,void 0),T(this,v,E,"f"),T(this,iD,D,"f"),T(this,eD,u,"f"),T(this,DF,F,"f"),T(this,AD,new kF(this),"f"),this.$0=this[u8](),this[D0](),T(this,ED,X(this,ED,"f"),"f"),T(this,m,X(this,m,"f"),"f"),T(this,DD,X(this,DD,"f"),"f"),T(this,I,X(this,I,"f"),"f"),X(this,I,"f").showHiddenOpt=X(this,su,"f"),T(this,uu,this[a2](),"f"),X(this,v,"f").y18n.setLocale($6)}addHelpOpt(D,u){if(R("[string|boolean] [string]",[D,u],arguments.length),X(this,LD,"f"))this[nF](X(this,LD,"f")),T(this,LD,null,"f");if(D===!1&&u===void 0)return this;return T(this,LD,typeof D==="string"?D:"help","f"),this.boolean(X(this,LD,"f")),this.describe(X(this,LD,"f"),u||X(this,m,"f").deferY18nLookup("Show help")),this}help(D,u){return this.addHelpOpt(D,u)}addShowHiddenOpt(D,u){if(R("[string|boolean] [string]",[D,u],arguments.length),D===!1&&u===void 0)return this;let F=typeof D==="string"?D:X(this,su,"f");return this.boolean(F),this.describe(F,u||X(this,m,"f").deferY18nLookup("Show hidden options")),X(this,I,"f").showHiddenOpt=F,this}showHidden(D,u){return this.addShowHiddenOpt(D,u)}alias(D,u){return R("<object|string|array> [string|array]",[D,u],arguments.length),this[oF](this.alias.bind(this),"alias",D,u),this}array(D){return R("<array|string>",[D],arguments.length),this[nD]("array",D),this[Zu](D),this}boolean(D){return R("<array|string>",[D],arguments.length),this[nD]("boolean",D),this[Zu](D),this}check(D,u){return R("<function> [boolean]",[D,u],arguments.length),this.middleware((F,E)=>{return aD(()=>{return D(F,E.getOptions())},(C)=>{if(!C)X(this,m,"f").fail(X(this,v,"f").y18n.__("Argument check failed: %s",D.toString()));else if(typeof C==="string"||C instanceof Error)X(this,m,"f").fail(C.toString(),C);return F},(C)=>{return X(this,m,"f").fail(C.message?C.message:C.toString(),C),F})},!1,u),this}choices(D,u){return R("<object|string|array> [string|array]",[D,u],arguments.length),this[oF](this.choices.bind(this),"choices",D,u),this}coerce(D,u){if(R("<object|string|array> [function]",[D,u],arguments.length),Array.isArray(D)){if(!u)throw new FD("coerce callback must be provided");for(let E of D)this.coerce(E,u);return this}else if(typeof D==="object"){for(let E of Object.keys(D))this.coerce(E,D[E]);return this}if(!u)throw new FD("coerce callback must be provided");let F=D;return X(this,I,"f").key[F]=!0,X(this,AD,"f").addCoerceMiddleware((E,C)=>{var B;let $=(B=C.getAliases()[F])!==null&&B!==void 0?B:[],z=[F,...$].filter((Z)=>Object.prototype.hasOwnProperty.call(E,Z));if(z.length===0)return E;return aD(()=>{return u(E[z[0]])},(Z)=>{return z.forEach((G)=>{E[G]=Z}),E},(Z)=>{throw new FD(Z.message)})},F),this}conflicts(D,u){return R("<string|object> [string|array]",[D,u],arguments.length),X(this,DD,"f").conflicts(D,u),this}config(D="config",u,F){if(R("[object|string] [string|function] [function]",[D,u,F],arguments.length),typeof D==="object"&&!Array.isArray(D))return D=Tu(D,X(this,eD,"f"),this[zu]()["deep-merge-config"]||!1,X(this,v,"f")),X(this,I,"f").configObjects=(X(this,I,"f").configObjects||[]).concat(D),this;if(typeof u==="function")F=u,u=void 0;return this.describe(D,u||X(this,m,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(D)?D:[D]).forEach((E)=>{X(this,I,"f").config[E]=F||!0}),this}completion(D,u,F){if(R("[string] [string|boolean|function] [function]",[D,u,F],arguments.length),typeof u==="function")F=u,u=void 0;if(T(this,MD,D||X(this,MD,"f")||"completion","f"),!u&&u!==!1)u="generate completion script";if(this.command(X(this,MD,"f"),u),F)X(this,HD,"f").registerFunction(F);return this}command(D,u,F,E,C,B){return R("<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]",[D,u,F,E,C,B],arguments.length),X(this,ED,"f").addHandler(D,u,F,E,C,B),this}commands(D,u,F,E,C,B){return this.command(D,u,F,E,C,B)}commandDir(D,u){R("<string> [object]",[D,u],arguments.length);let F=X(this,DF,"f")||X(this,v,"f").require;return X(this,ED,"f").addDirectory(D,F,X(this,v,"f").getCallerFile(),u),this}count(D){return R("<array|string>",[D],arguments.length),this[nD]("count",D),this[Zu](D),this}default(D,u,F){if(R("<object|string|array> [*] [string]",[D,u,F],arguments.length),F)gF(D,X(this,v,"f")),X(this,I,"f").defaultDescription[D]=F;if(typeof u==="function"){if(gF(D,X(this,v,"f")),!X(this,I,"f").defaultDescription[D])X(this,I,"f").defaultDescription[D]=X(this,m,"f").functionDescription(u);u=u.call()}return this[qu](this.default.bind(this),"default",D,u),this}defaults(D,u,F){return this.default(D,u,F)}demandCommand(D=1,u,F,E){if(R("[number] [number|string] [string|null|undefined] [string|null|undefined]",[D,u,F,E],arguments.length),typeof u!=="number")F=u,u=1/0;return this.global("_",!1),X(this,I,"f").demandedCommands._={min:D,max:u,minMsg:F,maxMsg:E},this}demand(D,u,F){if(Array.isArray(u))u.forEach((E)=>{YD(F,!0,X(this,v,"f")),this.demandOption(E,F)}),u=1/0;else if(typeof u!=="number")F=u,u=1/0;if(typeof D==="number")YD(F,!0,X(this,v,"f")),this.demandCommand(D,u,F,F);else if(Array.isArray(D))D.forEach((E)=>{YD(F,!0,X(this,v,"f")),this.demandOption(E,F)});else if(typeof F==="string")this.demandOption(D,F);else if(F===!0||typeof F>"u")this.demandOption(D);return this}demandOption(D,u){return R("<object|string|array> [string]",[D,u],arguments.length),this[qu](this.demandOption.bind(this),"demandedOptions",D,u),this}deprecateOption(D,u){return R("<string> [string|boolean]",[D,u],arguments.length),X(this,I,"f").deprecatedOptions[D]=u,this}describe(D,u){return R("<object|string|array> [string]",[D,u],arguments.length),this[aF](D,!0),X(this,m,"f").describe(D,u),this}detectLocale(D){return R("<boolean>",[D],arguments.length),T(this,Du,D,"f"),this}env(D){if(R("[string|boolean]",[D],arguments.length),D===!1)delete X(this,I,"f").envPrefix;else X(this,I,"f").envPrefix=D||"";return this}epilogue(D){return R("<string>",[D],arguments.length),X(this,m,"f").epilog(D),this}epilog(D){return this.epilogue(D)}example(D,u){if(R("<string|array> [string]",[D,u],arguments.length),Array.isArray(D))D.forEach((F)=>this.example(...F));else X(this,m,"f").example(D,u);return this}exit(D,u){if(T(this,UD,!0,"f"),T(this,dD,u,"f"),X(this,jD,"f"))X(this,v,"f").process.exit(D)}exitProcess(D=!0){return R("[boolean]",[D],arguments.length),T(this,jD,D,"f"),this}fail(D){if(R("<function|boolean>",[D],arguments.length),typeof D==="boolean"&&D!==!1)throw new FD("Invalid first argument. Expected function or boolean 'false'");return X(this,m,"f").failFn(D),this}getAliases(){return this.parsed?this.parsed.aliases:{}}async getCompletion(D,u){if(R("<array> [function]",[D,u],arguments.length),!u)return new Promise((F,E)=>{X(this,HD,"f").getCompletion(D,(C,B)=>{if(C)E(C);else F(B)})});else return X(this,HD,"f").getCompletion(D,u)}getDemandedOptions(){return R([],0),X(this,I,"f").demandedOptions}getDemandedCommands(){return R([],0),X(this,I,"f").demandedCommands}getDeprecatedOptions(){return R([],0),X(this,I,"f").deprecatedOptions}getDetectLocale(){return X(this,Du,"f")}getExitProcess(){return X(this,jD,"f")}getGroups(){return Object.assign({},X(this,PD,"f"),X(this,Eu,"f"))}getHelp(){if(T(this,UD,!0,"f"),!X(this,m,"f").hasCachedHelpMessage()){if(!this.parsed){let u=this[Pu](X(this,iD,"f"),void 0,void 0,0,!0);if(o(u))return u.then(()=>{return X(this,m,"f").help()})}let D=X(this,ED,"f").runDefaultBuilderOn(this);if(o(D))return D.then(()=>{return X(this,m,"f").help()})}return Promise.resolve(X(this,m,"f").help())}getOptions(){return X(this,I,"f")}getStrict(){return X(this,Cu,"f")}getStrictCommands(){return X(this,Bu,"f")}getStrictOptions(){return X(this,$u,"f")}global(D,u){if(R("<string|array> [boolean]",[D,u],arguments.length),D=[].concat(D),u!==!1)X(this,I,"f").local=X(this,I,"f").local.filter((F)=>D.indexOf(F)===-1);else D.forEach((F)=>{if(!X(this,I,"f").local.includes(F))X(this,I,"f").local.push(F)});return this}group(D,u){R("<string|array> <string>",[D,u],arguments.length);let F=X(this,Eu,"f")[u]||X(this,PD,"f")[u];if(X(this,Eu,"f")[u])delete X(this,Eu,"f")[u];let E={};return X(this,PD,"f")[u]=(F||[]).concat(D).filter((C)=>{if(E[C])return!1;return E[C]=!0}),this}hide(D){return R("<string>",[D],arguments.length),X(this,I,"f").hiddenOptions.push(D),this}implies(D,u){return R("<string|object> [number|string|array]",[D,u],arguments.length),X(this,DD,"f").implies(D,u),this}locale(D){if(R("[string]",[D],arguments.length),D===void 0)return this[tF](),X(this,v,"f").y18n.getLocale();return T(this,Du,!1,"f"),X(this,v,"f").y18n.setLocale(D),this}middleware(D,u,F){return X(this,AD,"f").addMiddleware(D,!!u,F)}nargs(D,u){return R("<string|object|array> [number]",[D,u],arguments.length),this[qu](this.nargs.bind(this),"narg",D,u),this}normalize(D){return R("<array|string>",[D],arguments.length),this[nD]("normalize",D),this}number(D){return R("<array|string>",[D],arguments.length),this[nD]("number",D),this[Zu](D),this}option(D,u){if(R("<string|object> [object]",[D,u],arguments.length),typeof D==="object")Object.keys(D).forEach((F)=>{this.options(F,D[F])});else{if(typeof u!=="object")u={};if(this[Zu](D),X(this,wD,"f")&&(D==="version"||(u===null||u===void 0?void 0:u.alias)==="version"))this[e2](['"version" is a reserved word.',"Please do one of the following:",'- Disable version with `yargs.version(false)` if using "version" as an option',"- Use the built-in `yargs.version` method instead (if applicable)","- Use a different option key","https://yargs.js.org/docs/#api-reference-version"].join(`
|
|
79
|
-
`),void 0,"versionWarning");if(X(this,I,"f").key[D]=!0,u.alias)this.alias(D,u.alias);let F=u.deprecate||u.deprecated;if(F)this.deprecateOption(D,F);let E=u.demand||u.required||u.require;if(E)this.demand(D,E);if(u.demandOption)this.demandOption(D,typeof u.demandOption==="string"?u.demandOption:void 0);if(u.conflicts)this.conflicts(D,u.conflicts);if("default"in u)this.default(D,u.default);if(u.implies!==void 0)this.implies(D,u.implies);if(u.nargs!==void 0)this.nargs(D,u.nargs);if(u.config)this.config(D,u.configParser);if(u.normalize)this.normalize(D);if(u.choices)this.choices(D,u.choices);if(u.coerce)this.coerce(D,u.coerce);if(u.group)this.group(D,u.group);if(u.boolean||u.type==="boolean"){if(this.boolean(D),u.alias)this.boolean(u.alias)}if(u.array||u.type==="array"){if(this.array(D),u.alias)this.array(u.alias)}if(u.number||u.type==="number"){if(this.number(D),u.alias)this.number(u.alias)}if(u.string||u.type==="string"){if(this.string(D),u.alias)this.string(u.alias)}if(u.count||u.type==="count")this.count(D);if(typeof u.global==="boolean")this.global(D,u.global);if(u.defaultDescription)X(this,I,"f").defaultDescription[D]=u.defaultDescription;if(u.skipValidation)this.skipValidation(D);let C=u.describe||u.description||u.desc,B=X(this,m,"f").getDescriptions();if(!Object.prototype.hasOwnProperty.call(B,D)||typeof C==="string")this.describe(D,C);if(u.hidden)this.hide(D);if(u.requiresArg)this.requiresArg(D)}return this}options(D,u){return this.option(D,u)}parse(D,u,F){if(
|
|
80
|
-
`,"f");
|
|
81
|
-
`,"f");T(this,JD,X(this,JD,"f")+D.join(" "),"f")}}}[nF](D){Vu(X(this,I,"f")).forEach((u)=>{if(((E)=>E==="configObjects")(u))return;let F=X(this,I,"f")[u];if(Array.isArray(F)){if(F.includes(D))F.splice(F.indexOf(D),1)}else if(typeof F==="object")delete F[D]}),delete X(this,m,"f").getDescriptions()[D]}[e2](D,u,F){if(!X(this,ru,"f")[F])X(this,v,"f").process.emitWarning(D,u),X(this,ru,"f")[F]=!0}[D8](){X(this,au,"f").push({options:X(this,I,"f"),configObjects:X(this,I,"f").configObjects.slice(0),exitProcess:X(this,jD,"f"),groups:X(this,PD,"f"),strict:X(this,Cu,"f"),strictCommands:X(this,Bu,"f"),strictOptions:X(this,$u,"f"),completionCommand:X(this,MD,"f"),output:X(this,JD,"f"),exitError:X(this,dD,"f"),hasOutput:X(this,UD,"f"),parsed:this.parsed,parseFn:X(this,qD,"f"),parseContext:X(this,Fu,"f")}),X(this,m,"f").freeze(),X(this,DD,"f").freeze(),X(this,ED,"f").freeze(),X(this,AD,"f").freeze()}[u8](){let D="",u;if(/\b(node|iojs|electron)(\.exe)?$/.test(X(this,v,"f").process.argv()[0]))u=X(this,v,"f").process.argv().slice(1,2);else u=X(this,v,"f").process.argv().slice(0,1);if(D=u.map((F)=>{let E=this[Y8](X(this,eD,"f"),F);return F.match(/^(\/|([a-zA-Z]:)?\\)/)&&E.length<F.length?E:F}).join(" ").trim(),X(this,v,"f").getEnv("_")&&X(this,v,"f").getProcessArgvBin()===X(this,v,"f").getEnv("_"))D=X(this,v,"f").getEnv("_").replace(`${X(this,v,"f").path.dirname(X(this,v,"f").process.execPath())}/`,"");return D}[zu](){return X(this,uF,"f")}[F8](){return X(this,EF,"f")}[tF](){if(!X(this,Du,"f"))return;let D=X(this,v,"f").getEnv("LC_ALL")||X(this,v,"f").getEnv("LC_MESSAGES")||X(this,v,"f").getEnv("LANG")||X(this,v,"f").getEnv("LANGUAGE")||"en_US";this.locale(D.replace(/[.:].*/,""))}[E8](){return this[lF]().version||"unknown"}[C8](D){let u=D["--"]?D["--"]:D._;for(let F=0,E;(E=u[F])!==void 0;F++)if(X(this,v,"f").Parser.looksLikeNumber(E)&&Number.isSafeInteger(Math.floor(parseFloat(`${E}`))))u[F]=Number(E);return D}[lF](D){let u=D||"*";if(X(this,Uu,"f")[u])return X(this,Uu,"f")[u];let F={};try{let E=D||X(this,v,"f").mainFilename;if(X(this,v,"f").path.extname(E))E=X(this,v,"f").path.dirname(E);let C=X(this,v,"f").findUp(E,(B,$)=>{if($.includes("package.json"))return"package.json";else return});YD(C,void 0,X(this,v,"f")),F=JSON.parse(X(this,v,"f").readFileSync(C,"utf8"))}catch(E){}return X(this,Uu,"f")[u]=F||{},X(this,Uu,"f")[u]}[nD](D,u){u=[].concat(u),u.forEach((F)=>{F=this[rF](F),X(this,I,"f")[D].push(F)})}[qu](D,u,F,E){this[sF](D,u,F,E,(C,B,$)=>{X(this,I,"f")[C][B]=$})}[oF](D,u,F,E){this[sF](D,u,F,E,(C,B,$)=>{X(this,I,"f")[C][B]=(X(this,I,"f")[C][B]||[]).concat($)})}[sF](D,u,F,E,C){if(Array.isArray(F))F.forEach((B)=>{D(B,E)});else if(((B)=>typeof B==="object")(F))for(let B of Vu(F))D(B,F[B]);else C(u,this[rF](F),E)}[rF](D){if(D==="__proto__")return"___proto___";return D}[aF](D,u){return this[qu](this[aF].bind(this),"key",D,u),this}[eF](){var D,u,F,E,C,B,$,z,Z,G,Q,J;let O=X(this,au,"f").pop();YD(O,void 0,X(this,v,"f"));let W;D=this,u=this,F=this,E=this,C=this,B=this,$=this,z=this,Z=this,G=this,Q=this,J=this,{options:{set value(H){T(D,I,H,"f")}}.value,configObjects:W,exitProcess:{set value(H){T(u,jD,H,"f")}}.value,groups:{set value(H){T(F,PD,H,"f")}}.value,output:{set value(H){T(E,JD,H,"f")}}.value,exitError:{set value(H){T(C,dD,H,"f")}}.value,hasOutput:{set value(H){T(B,UD,H,"f")}}.value,parsed:this.parsed,strict:{set value(H){T($,Cu,H,"f")}}.value,strictCommands:{set value(H){T(z,Bu,H,"f")}}.value,strictOptions:{set value(H){T(Z,$u,H,"f")}}.value,completionCommand:{set value(H){T(G,MD,H,"f")}}.value,parseFn:{set value(H){T(Q,qD,H,"f")}}.value,parseContext:{set value(H){T(J,Fu,H,"f")}}.value}=O,X(this,I,"f").configObjects=W,X(this,m,"f").unfreeze(),X(this,DD,"f").unfreeze(),X(this,ED,"f").unfreeze(),X(this,AD,"f").unfreeze()}[B8](D,u){return aD(u,(F)=>{return D(F),F})}getInternalMethods(){return{getCommandInstance:this[$8].bind(this),getContext:this[z8].bind(this),getHasOutput:this[G8].bind(this),getLoggerInstance:this[Z8].bind(this),getParseContext:this[J8].bind(this),getParserConfiguration:this[zu].bind(this),getUsageConfiguration:this[F8].bind(this),getUsageInstance:this[X8].bind(this),getValidationInstance:this[Q8].bind(this),hasParseCallback:this[CF].bind(this),isGlobalContext:this[O8].bind(this),postProcess:this[Gu].bind(this),reset:this[D0].bind(this),runValidation:this[u0].bind(this),runYargsParserAndExecuteCommands:this[Pu].bind(this),setHasOutput:this[W8].bind(this)}}[$8](){return X(this,ED,"f")}[z8](){return X(this,Su,"f")}[G8](){return X(this,UD,"f")}[Z8](){return X(this,uu,"f")}[J8](){return X(this,Fu,"f")||{}}[X8](){return X(this,m,"f")}[Q8](){return X(this,DD,"f")}[CF](){return!!X(this,qD,"f")}[O8](){return X(this,eu,"f")}[Gu](D,u,F,E){if(F)return D;if(o(D))return D;if(!u)D=this[r2](D);if(this[zu]()["parse-positional-numbers"]||this[zu]()["parse-positional-numbers"]===void 0)D=this[C8](D);if(E)D=rD(D,this,X(this,AD,"f").getMiddleware(),!1);return D}[D0](D={}){T(this,I,X(this,I,"f")||{},"f");let u={};u.local=X(this,I,"f").local||[],u.configObjects=X(this,I,"f").configObjects||[];let F={};u.local.forEach((B)=>{F[B]=!0,(D[B]||[]).forEach(($)=>{F[$]=!0})}),Object.assign(X(this,Eu,"f"),Object.keys(X(this,PD,"f")).reduce((B,$)=>{let z=X(this,PD,"f")[$].filter((Z)=>!(Z in F));if(z.length>0)B[$]=z;return B},{})),T(this,PD,{},"f");let E=["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"],C=["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"];if(E.forEach((B)=>{u[B]=(X(this,I,"f")[B]||[]).filter(($)=>!F[$])}),C.forEach((B)=>{u[B]=gD(X(this,I,"f")[B],($)=>!F[$])}),u.envPrefix=X(this,I,"f").envPrefix,T(this,I,u,"f"),T(this,m,X(this,m,"f")?X(this,m,"f").reset(F):g2(this,X(this,v,"f")),"f"),T(this,DD,X(this,DD,"f")?X(this,DD,"f").reset(F):o2(this,X(this,m,"f"),X(this,v,"f")),"f"),T(this,ED,X(this,ED,"f")?X(this,ED,"f").reset():m2(X(this,m,"f"),X(this,DD,"f"),X(this,AD,"f"),X(this,v,"f")),"f"),!X(this,HD,"f"))T(this,HD,n2(this,X(this,m,"f"),X(this,ED,"f"),X(this,v,"f")),"f");return X(this,AD,"f").reset(),T(this,MD,null,"f"),T(this,JD,"","f"),T(this,dD,null,"f"),T(this,UD,!1,"f"),this.parsed=!1,this}[Y8](D,u){return X(this,v,"f").path.relative(D,u)}[Pu](D,u,F,E=0,C=!1){var B,$,z,Z;let G=!!F||C;D=D||X(this,iD,"f"),X(this,I,"f").__=X(this,v,"f").y18n.__,X(this,I,"f").configuration=this[zu]();let Q=!!X(this,I,"f").configuration["populate--"],J=Object.assign({},X(this,I,"f").configuration,{"populate--":!0}),O=X(this,v,"f").Parser.detailed(D,Object.assign({},X(this,I,"f"),{configuration:{"parse-positional-numbers":!1,...J}})),W=Object.assign(O.argv,X(this,Fu,"f")),H=void 0,Y=O.aliases,q=!1,j=!1;if(Object.keys(W).forEach((N)=>{if(N===X(this,LD,"f")&&W[N])q=!0;else if(N===X(this,wD,"f")&&W[N])j=!0}),W.$0=this.$0,this.parsed=O,E===0)X(this,m,"f").clearCachedHelpMessage();try{if(this[tF](),u)return this[Gu](W,Q,!!F,!1);if(X(this,LD,"f")){if([X(this,LD,"f")].concat(Y[X(this,LD,"f")]||[]).filter((e)=>e.length>1).includes(""+W._[W._.length-1]))W._.pop(),q=!0}T(this,eu,!1,"f");let N=X(this,ED,"f").getCommands(),k=((B=X(this,HD,"f"))===null||B===void 0?void 0:B.completionKey)?[($=X(this,HD,"f"))===null||$===void 0?void 0:$.completionKey,...(Z=this.getAliases()[(z=X(this,HD,"f"))===null||z===void 0?void 0:z.completionKey])!==null&&Z!==void 0?Z:[]].some((c)=>Object.prototype.hasOwnProperty.call(W,c)):!1,w=q||k||C;if(W._.length){if(N.length){let c;for(let e=E||0,s;W._[e]!==void 0;e++)if(s=String(W._[e]),N.includes(s)&&s!==X(this,MD,"f")){let _D=X(this,ED,"f").runCommand(s,this,O,e+1,C,q||j||C);return this[Gu](_D,Q,!!F,!1)}else if(!c&&s!==X(this,MD,"f")){c=s;break}if(!X(this,ED,"f").hasDefaultCommand()&&X(this,FF,"f")&&c&&!w)X(this,DD,"f").recommendCommands(c,N)}if(X(this,MD,"f")&&W._.includes(X(this,MD,"f"))&&!k){if(X(this,jD,"f"))kD(!0);this.showCompletionScript(),this.exit(0)}}if(X(this,ED,"f").hasDefaultCommand()&&!w){let c=X(this,ED,"f").runCommand(null,this,O,0,C,q||j||C);return this[Gu](c,Q,!!F,!1)}if(k){if(X(this,jD,"f"))kD(!0);D=[].concat(D);let c=D.slice(D.indexOf(`--${X(this,HD,"f").completionKey}`)+1);return X(this,HD,"f").getCompletion(c,(e,s)=>{if(e)throw new FD(e.message);(s||[]).forEach((_D)=>{X(this,uu,"f").log(_D)}),this.exit(0)}),this[Gu](W,!Q,!!F,!1)}if(!X(this,UD,"f")){if(q){if(X(this,jD,"f"))kD(!0);G=!0,this.showHelp((c)=>{X(this,uu,"f").log(c),this.exit(0)})}else if(j){if(X(this,jD,"f"))kD(!0);G=!0,X(this,m,"f").showVersion("log"),this.exit(0)}}if(!G&&X(this,I,"f").skipValidation.length>0)G=Object.keys(W).some((c)=>X(this,I,"f").skipValidation.indexOf(c)>=0&&W[c]===!0);if(!G){if(O.error)throw new FD(O.error.message);if(!k){let c=this[u0](Y,{},O.error);if(!F)H=rD(W,this,X(this,AD,"f").getMiddleware(),!0);if(H=this[B8](c,H!==null&&H!==void 0?H:W),o(H)&&!F)H=H.then(()=>{return rD(W,this,X(this,AD,"f").getMiddleware(),!1)})}}}catch(N){if(N instanceof FD)X(this,m,"f").fail(N.message,N);else throw N}return this[Gu](H!==null&&H!==void 0?H:W,Q,!!F,!0)}[u0](D,u,F,E){let C={...this.getDemandedOptions()};return(B)=>{if(F)throw new FD(F.message);X(this,DD,"f").nonOptionCount(B),X(this,DD,"f").requiredArguments(B,C);let $=!1;if(X(this,Bu,"f"))$=X(this,DD,"f").unknownCommands(B);if(X(this,Cu,"f")&&!$)X(this,DD,"f").unknownArguments(B,D,u,!!E);else if(X(this,$u,"f"))X(this,DD,"f").unknownArguments(B,D,{},!1,!1);X(this,DD,"f").limitedChoices(B),X(this,DD,"f").implications(B),X(this,DD,"f").conflicting(B)}}[W8](){T(this,UD,!0,"f")}[Zu](D){if(typeof D==="string")X(this,I,"f").key[D]=!0;else for(let u of D)X(this,I,"f").key[u]=!0}}function y2(D){return!!D&&typeof D.getInternalMethods==="function"}var z6=H8(cF),M8=z6;import{existsSync as BF,readFileSync as C0,writeFileSync as F0,mkdirSync as _8}from"node:fs";import{homedir as G6}from"node:os";import{join as Ju,dirname as B0}from"node:path";function $0(){return process.env.HOME||G6()}function K8(){return Ju($0(),".config","slack-cli","profiles.json")}function $F(){return Ju(process.cwd(),".slack-cli","workspace")}function zF(){return Ju($0(),".slack-cli","workspace")}function wu(){let D=K8();if(!BF(D))return{profiles:{}};return JSON.parse(C0(D,"utf8"))}function Z6(D){let u=K8();_8(B0(u),{recursive:!0}),F0(u,JSON.stringify(D,null,2)+`
|
|
82
|
-
`)}function _u(D){if(
|
|
83
|
-
`);
|
|
84
|
-
`)}function
|
|
85
|
-
`)){let E=F.trim();if(!E||E.startsWith("#"))continue;let C=E.indexOf("=");if(C===-1)continue;let B=E.slice(0,C).trim(),$=E.slice(C+1).trim();if($.startsWith('"')&&$.endsWith('"')||$.startsWith("'")&&$.endsWith("'"))$=$.slice(1,-1);u[B]=$}return u}function
|
|
86
|
-
`+" Migrate to SLACK_TOKEN=... or remove from your shell config.")}}let B=
|
|
74
|
+
`;class l2{constructor(D,u,F,E){var C,B,$;this.yargs=D,this.usage=u,this.command=F,this.shim=E,this.completionKey="get-yargs-completions",this.aliases=null,this.customCompletionFunction=null,this.indexAfterLastReset=0,this.zshShell=($=((C=this.shim.getEnv("SHELL"))===null||C===void 0?void 0:C.includes("zsh"))||((B=this.shim.getEnv("ZSH_NAME"))===null||B===void 0?void 0:B.includes("zsh")))!==null&&$!==void 0?$:!1}defaultCompletion(D,u,F,E){let C=this.command.getCommandHandlers();for(let $=0,G=D.length;$<G;++$)if(C[D[$]]&&C[D[$]].builder){let Z=C[D[$]].builder;if(ou(Z)){this.indexAfterLastReset=$+1;let z=this.yargs.getInternalMethods().reset();return Z(z,!0),z.argv}}let B=[];this.commandCompletions(B,D,F),this.optionCompletions(B,D,u,F),this.choicesFromOptionsCompletions(B,D,u,F),this.choicesFromPositionalsCompletions(B,D,u,F),E(null,B)}commandCompletions(D,u,F){let E=this.yargs.getInternalMethods().getContext().commands;if(!F.match(/^-/)&&E[E.length-1]!==F&&!this.previousArgHasChoices(u))this.usage.getCommands().forEach((C)=>{let B=cD(C[0]).cmd;if(u.indexOf(B)===-1)if(!this.zshShell)D.push(B);else{let $=C[1]||"";D.push(B.replace(/:/g,"\\:")+":"+$)}})}optionCompletions(D,u,F,E){if((E.match(/^-/)||E===""&&D.length===0)&&!this.previousArgHasChoices(u)){let C=this.yargs.getOptions(),B=this.yargs.getGroups()[this.usage.getPositionalGroupName()]||[];Object.keys(C.key).forEach(($)=>{let G=!!C.configuration["boolean-negation"]&&C.boolean.includes($);if(!B.includes($)&&!C.hiddenOptions.includes($)&&!this.argsContainKey(u,$,G))this.completeOptionKey($,D,E,G&&!!C.default[$])})}}choicesFromOptionsCompletions(D,u,F,E){if(this.previousArgHasChoices(u)){let C=this.getPreviousArgChoices(u);if(C&&C.length>0)D.push(...C.map((B)=>B.replace(/:/g,"\\:")))}}choicesFromPositionalsCompletions(D,u,F,E){if(E===""&&D.length>0&&this.previousArgHasChoices(u))return;let C=this.yargs.getGroups()[this.usage.getPositionalGroupName()]||[],B=Math.max(this.indexAfterLastReset,this.yargs.getInternalMethods().getContext().commands.length+1),$=C[F._.length-B-1];if(!$)return;let G=this.yargs.getOptions().choices[$]||[];for(let Z of G)if(Z.startsWith(E))D.push(Z.replace(/:/g,"\\:"))}getPreviousArgChoices(D){if(D.length<1)return;let u=D[D.length-1],F="";if(!u.startsWith("-")&&D.length>1)F=u,u=D[D.length-2];if(!u.startsWith("-"))return;let E=u.replace(/^-+/,""),C=this.yargs.getOptions(),B=[E,...this.yargs.getAliases()[E]||[]],$;for(let G of B)if(Object.prototype.hasOwnProperty.call(C.key,G)&&Array.isArray(C.choices[G])){$=C.choices[G];break}if($)return $.filter((G)=>!F||G.startsWith(F))}previousArgHasChoices(D){let u=this.getPreviousArgChoices(D);return u!==void 0&&u.length>0}argsContainKey(D,u,F){let E=(C)=>D.indexOf((/^[^0-9]$/.test(C)?"-":"--")+C)!==-1;if(E(u))return!0;if(F&&E(`no-${u}`))return!0;if(this.aliases){for(let C of this.aliases[u])if(E(C))return!0}return!1}completeOptionKey(D,u,F,E){var C,B,$,G;let Z=D;if(this.zshShell){let Y=this.usage.getDescriptions(),W=(B=(C=this===null||this===void 0?void 0:this.aliases)===null||C===void 0?void 0:C[D])===null||B===void 0?void 0:B.find((U)=>{let _=Y[U];return typeof _==="string"&&_.length>0}),V=W?Y[W]:void 0,O=(G=($=Y[D])!==null&&$!==void 0?$:V)!==null&&G!==void 0?G:"";Z=`${D.replace(/:/g,"\\:")}:${O.replace("__yargsString__:","").replace(/(\r\n|\n|\r)/gm," ")}`}let z=(Y)=>/^--/.test(Y),Q=(Y)=>/^[^0-9]$/.test(Y),J=!z(F)&&Q(D)?"-":"--";if(u.push(J+Z),E)u.push(J+"no-"+Z)}customCompletion(D,u,F,E){if(OD(this.customCompletionFunction,null,this.shim),G6(this.customCompletionFunction)){let C=this.customCompletionFunction(F,u);if(s(C))return C.then((B)=>{this.shim.process.nextTick(()=>{E(null,B)})}).catch((B)=>{this.shim.process.nextTick(()=>{E(B,void 0)})});return E(null,C)}else if(z6(this.customCompletionFunction))return this.customCompletionFunction(F,u,(C=E)=>this.defaultCompletion(D,u,F,C),(C)=>{E(null,C)});else return this.customCompletionFunction(F,u,(C)=>{E(null,C)})}getCompletion(D,u){let F=D.length?D[D.length-1]:"",E=this.yargs.parse(D,!0),C=this.customCompletionFunction?(B)=>this.customCompletion(D,B,F,u):(B)=>this.defaultCompletion(D,B,F,u);return s(E)?E.then(C):C(E)}generateCompletionScript(D,u){let F=this.zshShell?n2:i2,E=this.shim.path.basename(D);if(D.match(/\.js$/))D=`./${D}`;return F=F.replace(/{{app_name}}/g,E),F=F.replace(/{{completion_command}}/g,u),F.replace(/{{app_path}}/g,D)}registerFunction(D){this.customCompletionFunction=D}setParsed(D){this.aliases=D.aliases}}function t2(D,u,F,E){return new l2(D,u,F,E)}function G6(D){return D.length<3}function z6(D){return D.length>3}function o2(D,u){if(D.length===0)return u.length;if(u.length===0)return D.length;let F=[],E;for(E=0;E<=u.length;E++)F[E]=[E];let C;for(C=0;C<=D.length;C++)F[0][C]=C;for(E=1;E<=u.length;E++)for(C=1;C<=D.length;C++)if(u.charAt(E-1)===D.charAt(C-1))F[E][C]=F[E-1][C-1];else if(E>1&&C>1&&u.charAt(E-2)===D.charAt(C-1)&&u.charAt(E-1)===D.charAt(C-2))F[E][C]=F[E-2][C-2]+1;else F[E][C]=Math.min(F[E-1][C-1]+1,Math.min(F[E][C-1]+1,F[E-1][C]+1));return F[u.length][D.length]}var s2=["$0","--","_"];function r2(D,u,F){let E=F.y18n.__,C=F.y18n.__n,B={};B.nonOptionCount=function(J){let Y=D.getDemandedCommands(),V=J._.length+(J["--"]?J["--"].length:0)-D.getInternalMethods().getContext().commands.length;if(Y._&&(V<Y._.min||V>Y._.max)){if(V<Y._.min)if(Y._.minMsg!==void 0)u.fail(Y._.minMsg?Y._.minMsg.replace(/\$0/g,V.toString()).replace(/\$1/,Y._.min.toString()):null);else u.fail(C("Not enough non-option arguments: got %s, need at least %s","Not enough non-option arguments: got %s, need at least %s",V,V.toString(),Y._.min.toString()));else if(V>Y._.max)if(Y._.maxMsg!==void 0)u.fail(Y._.maxMsg?Y._.maxMsg.replace(/\$0/g,V.toString()).replace(/\$1/,Y._.max.toString()):null);else u.fail(C("Too many non-option arguments: got %s, maximum of %s","Too many non-option arguments: got %s, maximum of %s",V,V.toString(),Y._.max.toString()))}},B.positionalCount=function(J,Y){if(Y<J)u.fail(C("Not enough non-option arguments: got %s, need at least %s","Not enough non-option arguments: got %s, need at least %s",Y,Y+"",J+""))},B.requiredArguments=function(J,Y){let W=null;for(let V of Object.keys(Y))if(!Object.prototype.hasOwnProperty.call(J,V)||typeof J[V]>"u")W=W||{},W[V]=Y[V];if(W){let V=[];for(let U of Object.keys(W)){let _=W[U];if(_&&V.indexOf(_)<0)V.push(_)}let O=V.length?`
|
|
75
|
+
${V.join(`
|
|
76
|
+
`)}`:"";u.fail(C("Missing required argument: %s","Missing required arguments: %s",Object.keys(W).length,Object.keys(W).join(", ")+O))}},B.unknownArguments=function(J,Y,W,V,O=!0){var U;let _=D.getInternalMethods().getCommandInstance().getCommands(),N=[],k=D.getInternalMethods().getContext();if(Object.keys(J).forEach((w)=>{if(!s2.includes(w)&&!Object.prototype.hasOwnProperty.call(W,w)&&!Object.prototype.hasOwnProperty.call(D.getInternalMethods().getParseContext(),w)&&!B.isValidAndSomeAliasIsNotNew(w,Y))N.push(w)}),O&&(k.commands.length>0||_.length>0||V))J._.slice(k.commands.length).forEach((w)=>{if(!_.includes(""+w))N.push(""+w)});if(O){let c=((U=D.getDemandedCommands()._)===null||U===void 0?void 0:U.max)||0,e=k.commands.length+c;if(e<J._.length)J._.slice(e).forEach((r)=>{if(r=String(r),!k.commands.includes(r)&&!N.includes(r))N.push(r)})}if(N.length)u.fail(C("Unknown argument: %s","Unknown arguments: %s",N.length,N.map((w)=>w.trim()?w:`"${w}"`).join(", ")))},B.unknownCommands=function(J){let Y=D.getInternalMethods().getCommandInstance().getCommands(),W=[],V=D.getInternalMethods().getContext();if(V.commands.length>0||Y.length>0)J._.slice(V.commands.length).forEach((O)=>{if(!Y.includes(""+O))W.push(""+O)});if(W.length>0)return u.fail(C("Unknown command: %s","Unknown commands: %s",W.length,W.join(", "))),!0;else return!1},B.isValidAndSomeAliasIsNotNew=function(J,Y){if(!Object.prototype.hasOwnProperty.call(Y,J))return!1;let W=D.parsed.newAliases;return[J,...Y[J]].some((V)=>!Object.prototype.hasOwnProperty.call(W,V)||!W[J])},B.limitedChoices=function(J){let Y=D.getOptions(),W={};if(!Object.keys(Y.choices).length)return;Object.keys(J).forEach((U)=>{if(s2.indexOf(U)===-1&&Object.prototype.hasOwnProperty.call(Y.choices,U))[].concat(J[U]).forEach((_)=>{if(Y.choices[U].indexOf(_)===-1&&_!==void 0)W[U]=(W[U]||[]).concat(_)})});let V=Object.keys(W);if(!V.length)return;let O=E("Invalid values:");V.forEach((U)=>{O+=`
|
|
77
|
+
${E("Argument: %s, Given: %s, Choices: %s",U,u.stringifiedValues(W[U]),u.stringifiedValues(Y.choices[U]))}`}),u.fail(O)};let $={};B.implies=function(J,Y){if(T("<string|object> [array|number|string]",[J,Y],arguments.length),typeof J==="object")Object.keys(J).forEach((W)=>{B.implies(W,J[W])});else{if(D.global(J),!$[J])$[J]=[];if(Array.isArray(Y))Y.forEach((W)=>B.implies(J,W));else OD(Y,void 0,F),$[J].push(Y)}},B.getImplied=function(){return $};function G(Q,J){let Y=Number(J);if(J=isNaN(Y)?J:Y,typeof J==="number")J=Q._.length>=J;else if(J.match(/^--no-.+/))J=J.match(/^--no-(.+)/)[1],J=!Object.prototype.hasOwnProperty.call(Q,J);else J=Object.prototype.hasOwnProperty.call(Q,J);return J}B.implications=function(J){let Y=[];if(Object.keys($).forEach((W)=>{let V=W;($[W]||[]).forEach((O)=>{let U=V,_=O;if(U=G(J,U),O=G(J,O),U&&!O)Y.push(` ${V} -> ${_}`)})}),Y.length){let W=`${E("Implications failed:")}
|
|
78
|
+
`;Y.forEach((V)=>{W+=V}),u.fail(W)}};let Z={};B.conflicts=function(J,Y){if(T("<string|object> [array|string]",[J,Y],arguments.length),typeof J==="object")Object.keys(J).forEach((W)=>{B.conflicts(W,J[W])});else{if(D.global(J),!Z[J])Z[J]=[];if(Array.isArray(Y))Y.forEach((W)=>B.conflicts(J,W));else Z[J].push(Y)}},B.getConflicting=()=>Z,B.conflicting=function(J){if(Object.keys(J).forEach((Y)=>{if(Z[Y])Z[Y].forEach((W)=>{if(W&&J[Y]!==void 0&&J[W]!==void 0)u.fail(E("Arguments %s and %s are mutually exclusive",Y,W))})}),D.getInternalMethods().getParserConfiguration()["strip-dashed"])Object.keys(Z).forEach((Y)=>{Z[Y].forEach((W)=>{if(W&&J[F.Parser.camelCase(Y)]!==void 0&&J[F.Parser.camelCase(W)]!==void 0)u.fail(E("Arguments %s and %s are mutually exclusive",Y,W))})})},B.recommendCommands=function(J,Y){Y=Y.sort((U,_)=>_.length-U.length);let V=null,O=1/0;for(let U=0,_;(_=Y[U])!==void 0;U++){let N=o2(J,_);if(N<=3&&N<O)O=N,V=_}if(V)u.fail(E("Did you mean %s?",V))},B.reset=function(J){return $=gD($,(Y)=>!J[Y]),Z=gD(Z,(Y)=>!J[Y]),B};let z=[];return B.freeze=function(){z.push({implied:$,conflicting:Z})},B.unfreeze=function(){let J=z.pop();OD(J,void 0,F),{implied:$,conflicting:Z}=J},B}var lF=[],Ru;function Su(D,u,F,E){Ru=E;let C={};if(Object.prototype.hasOwnProperty.call(D,"extends")){if(typeof D.extends!=="string")return C;let B=/\.json|\..*rc$/.test(D.extends),$=null;if(!B)try{$=import.meta.resolve(D.extends)}catch(G){return D}else $=J6(u,D.extends);Z6($),lF.push($),C=B?JSON.parse(Ru.readFileSync($,"utf8")):E.require(D.extends),delete D.extends,C=Su(C,Ru.path.dirname($),F,Ru)}return lF=[],F?a2(C,D):Object.assign({},C,D)}function Z6(D){if(lF.indexOf(D)>-1)throw new FD(`Circular extended configurations: '${D}'.`)}function J6(D,u){return Ru.path.resolve(D,u)}function a2(D,u){let F={};function E(C){return C&&typeof C==="object"&&!Array.isArray(C)}Object.assign(F,D);for(let C of Object.keys(u))if(E(u[C])&&E(F[C]))F[C]=a2(D[C],u[C]);else F[C]=u[C];return F}var R=function(D,u,F,E,C){if(E==="m")throw TypeError("Private method is not writable");if(E==="a"&&!C)throw TypeError("Private accessor was defined without a setter");if(typeof u==="function"?D!==u||!C:!u.has(D))throw TypeError("Cannot write private member to an object whose class did not declare it");return E==="a"?C.call(D,F):C?C.value=F:u.set(D,F),F},X=function(D,u,F,E){if(F==="a"&&!E)throw TypeError("Private accessor was defined without a getter");if(typeof u==="function"?D!==u||!E:!u.has(D))throw TypeError("Cannot read private member from an object whose class did not declare it");return F==="m"?E:F==="a"?E.call(D):E?E.value:u.get(D)},ED,Du,Pu,VD,MD,ru,dD,uu,au,jD,eu,AD,wD,qD,LD,DF,Fu,JD,I,uF,FF,UD,Eu,Uu,Cu,iD,EF,v,Bu,$u,Gu,m,CF,xD,DD;function M8(D){return(u=[],F=D.process.cwd(),E)=>{let C=new q8(u,F,E,D);return Object.defineProperty(C,"argv",{get:()=>{return C.parse()},enumerable:!0}),C.help(),C.version(),C}}var e2=Symbol("copyDoubleDash"),D8=Symbol("copyDoubleDash"),tF=Symbol("deleteFromParserHintObject"),u8=Symbol("emitWarning"),F8=Symbol("freeze"),E8=Symbol("getDollarZero"),zu=Symbol("getParserConfiguration"),C8=Symbol("getUsageConfiguration"),oF=Symbol("guessLocale"),B8=Symbol("guessVersion"),$8=Symbol("parsePositionalNumbers"),sF=Symbol("pkgUp"),nD=Symbol("populateParserHintArray"),Ku=Symbol("populateParserHintSingleValueDictionary"),rF=Symbol("populateParserHintArrayDictionary"),aF=Symbol("populateParserHintDictionary"),eF=Symbol("sanitizeKey"),D0=Symbol("setKey"),u0=Symbol("unfreeze"),G8=Symbol("validateAsync"),z8=Symbol("getCommandInstance"),Z8=Symbol("getContext"),J8=Symbol("getHasOutput"),X8=Symbol("getLoggerInstance"),Q8=Symbol("getParseContext"),Y8=Symbol("getUsageInstance"),O8=Symbol("getValidationInstance"),BF=Symbol("hasParseCallback"),W8=Symbol("isGlobalContext"),Zu=Symbol("postProcess"),V8=Symbol("rebase"),F0=Symbol("reset"),wu=Symbol("runYargsParserAndExecuteCommands"),E0=Symbol("runValidation"),H8=Symbol("setHasOutput"),Ju=Symbol("kTrackManuallySetKeys"),X6="en_US";class q8{constructor(D=[],u,F,E){this.customScriptName=!1,this.parsed=!1,ED.set(this,void 0),Du.set(this,void 0),Pu.set(this,{commands:[],fullCommands:[]}),VD.set(this,null),MD.set(this,null),ru.set(this,"show-hidden"),dD.set(this,null),uu.set(this,!0),au.set(this,{}),jD.set(this,!0),eu.set(this,[]),AD.set(this,void 0),wD.set(this,{}),qD.set(this,!1),LD.set(this,null),DF.set(this,!0),Fu.set(this,void 0),JD.set(this,""),I.set(this,void 0),uF.set(this,void 0),FF.set(this,{}),UD.set(this,null),Eu.set(this,null),Uu.set(this,{}),Cu.set(this,{}),iD.set(this,void 0),EF.set(this,!1),v.set(this,void 0),Bu.set(this,!1),$u.set(this,!1),Gu.set(this,!1),m.set(this,void 0),CF.set(this,{}),xD.set(this,null),DD.set(this,void 0),R(this,v,E,"f"),R(this,iD,D,"f"),R(this,Du,u,"f"),R(this,uF,F,"f"),R(this,AD,new iF(this),"f"),this.$0=this[E8](),this[F0](),R(this,ED,X(this,ED,"f"),"f"),R(this,m,X(this,m,"f"),"f"),R(this,DD,X(this,DD,"f"),"f"),R(this,I,X(this,I,"f"),"f"),X(this,I,"f").showHiddenOpt=X(this,ru,"f"),R(this,Fu,this[D8](),"f"),X(this,v,"f").y18n.setLocale(X6)}addHelpOpt(D,u){if(T("[string|boolean] [string]",[D,u],arguments.length),X(this,LD,"f"))this[tF](X(this,LD,"f")),R(this,LD,null,"f");if(D===!1&&u===void 0)return this;return R(this,LD,typeof D==="string"?D:"help","f"),this.boolean(X(this,LD,"f")),this.describe(X(this,LD,"f"),u||X(this,m,"f").deferY18nLookup("Show help")),this}help(D,u){return this.addHelpOpt(D,u)}addShowHiddenOpt(D,u){if(T("[string|boolean] [string]",[D,u],arguments.length),D===!1&&u===void 0)return this;let F=typeof D==="string"?D:X(this,ru,"f");return this.boolean(F),this.describe(F,u||X(this,m,"f").deferY18nLookup("Show hidden options")),X(this,I,"f").showHiddenOpt=F,this}showHidden(D,u){return this.addShowHiddenOpt(D,u)}alias(D,u){return T("<object|string|array> [string|array]",[D,u],arguments.length),this[rF](this.alias.bind(this),"alias",D,u),this}array(D){return T("<array|string>",[D],arguments.length),this[nD]("array",D),this[Ju](D),this}boolean(D){return T("<array|string>",[D],arguments.length),this[nD]("boolean",D),this[Ju](D),this}check(D,u){return T("<function> [boolean]",[D,u],arguments.length),this.middleware((F,E)=>{return eD(()=>{return D(F,E.getOptions())},(C)=>{if(!C)X(this,m,"f").fail(X(this,v,"f").y18n.__("Argument check failed: %s",D.toString()));else if(typeof C==="string"||C instanceof Error)X(this,m,"f").fail(C.toString(),C);return F},(C)=>{return X(this,m,"f").fail(C.message?C.message:C.toString(),C),F})},!1,u),this}choices(D,u){return T("<object|string|array> [string|array]",[D,u],arguments.length),this[rF](this.choices.bind(this),"choices",D,u),this}coerce(D,u){if(T("<object|string|array> [function]",[D,u],arguments.length),Array.isArray(D)){if(!u)throw new FD("coerce callback must be provided");for(let E of D)this.coerce(E,u);return this}else if(typeof D==="object"){for(let E of Object.keys(D))this.coerce(E,D[E]);return this}if(!u)throw new FD("coerce callback must be provided");let F=D;return X(this,I,"f").key[F]=!0,X(this,AD,"f").addCoerceMiddleware((E,C)=>{var B;let $=(B=C.getAliases()[F])!==null&&B!==void 0?B:[],G=[F,...$].filter((Z)=>Object.prototype.hasOwnProperty.call(E,Z));if(G.length===0)return E;return eD(()=>{return u(E[G[0]])},(Z)=>{return G.forEach((z)=>{E[z]=Z}),E},(Z)=>{throw new FD(Z.message)})},F),this}conflicts(D,u){return T("<string|object> [string|array]",[D,u],arguments.length),X(this,DD,"f").conflicts(D,u),this}config(D="config",u,F){if(T("[object|string] [string|function] [function]",[D,u,F],arguments.length),typeof D==="object"&&!Array.isArray(D))return D=Su(D,X(this,Du,"f"),this[zu]()["deep-merge-config"]||!1,X(this,v,"f")),X(this,I,"f").configObjects=(X(this,I,"f").configObjects||[]).concat(D),this;if(typeof u==="function")F=u,u=void 0;return this.describe(D,u||X(this,m,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(D)?D:[D]).forEach((E)=>{X(this,I,"f").config[E]=F||!0}),this}completion(D,u,F){if(T("[string] [string|boolean|function] [function]",[D,u,F],arguments.length),typeof u==="function")F=u,u=void 0;if(R(this,MD,D||X(this,MD,"f")||"completion","f"),!u&&u!==!1)u="generate completion script";if(this.command(X(this,MD,"f"),u),F)X(this,VD,"f").registerFunction(F);return this}command(D,u,F,E,C,B){return T("<string|array|object> [string|boolean] [function|object] [function] [array] [boolean|string]",[D,u,F,E,C,B],arguments.length),X(this,ED,"f").addHandler(D,u,F,E,C,B),this}commands(D,u,F,E,C,B){return this.command(D,u,F,E,C,B)}commandDir(D,u){T("<string> [object]",[D,u],arguments.length);let F=X(this,uF,"f")||X(this,v,"f").require;return X(this,ED,"f").addDirectory(D,F,X(this,v,"f").getCallerFile(),u),this}count(D){return T("<array|string>",[D],arguments.length),this[nD]("count",D),this[Ju](D),this}default(D,u,F){if(T("<object|string|array> [*] [string]",[D,u,F],arguments.length),F)dF(D,X(this,v,"f")),X(this,I,"f").defaultDescription[D]=F;if(typeof u==="function"){if(dF(D,X(this,v,"f")),!X(this,I,"f").defaultDescription[D])X(this,I,"f").defaultDescription[D]=X(this,m,"f").functionDescription(u);u=u.call()}return this[Ku](this.default.bind(this),"default",D,u),this}defaults(D,u,F){return this.default(D,u,F)}demandCommand(D=1,u,F,E){if(T("[number] [number|string] [string|null|undefined] [string|null|undefined]",[D,u,F,E],arguments.length),typeof u!=="number")F=u,u=1/0;return this.global("_",!1),X(this,I,"f").demandedCommands._={min:D,max:u,minMsg:F,maxMsg:E},this}demand(D,u,F){if(Array.isArray(u))u.forEach((E)=>{OD(F,!0,X(this,v,"f")),this.demandOption(E,F)}),u=1/0;else if(typeof u!=="number")F=u,u=1/0;if(typeof D==="number")OD(F,!0,X(this,v,"f")),this.demandCommand(D,u,F,F);else if(Array.isArray(D))D.forEach((E)=>{OD(F,!0,X(this,v,"f")),this.demandOption(E,F)});else if(typeof F==="string")this.demandOption(D,F);else if(F===!0||typeof F>"u")this.demandOption(D);return this}demandOption(D,u){return T("<object|string|array> [string]",[D,u],arguments.length),this[Ku](this.demandOption.bind(this),"demandedOptions",D,u),this}deprecateOption(D,u){return T("<string> [string|boolean]",[D,u],arguments.length),X(this,I,"f").deprecatedOptions[D]=u,this}describe(D,u){return T("<object|string|array> [string]",[D,u],arguments.length),this[D0](D,!0),X(this,m,"f").describe(D,u),this}detectLocale(D){return T("<boolean>",[D],arguments.length),R(this,uu,D,"f"),this}env(D){if(T("[string|boolean]",[D],arguments.length),D===!1)delete X(this,I,"f").envPrefix;else X(this,I,"f").envPrefix=D||"";return this}epilogue(D){return T("<string>",[D],arguments.length),X(this,m,"f").epilog(D),this}epilog(D){return this.epilogue(D)}example(D,u){if(T("<string|array> [string]",[D,u],arguments.length),Array.isArray(D))D.forEach((F)=>this.example(...F));else X(this,m,"f").example(D,u);return this}exit(D,u){if(R(this,qD,!0,"f"),R(this,dD,u,"f"),X(this,jD,"f"))X(this,v,"f").process.exit(D)}exitProcess(D=!0){return T("[boolean]",[D],arguments.length),R(this,jD,D,"f"),this}fail(D){if(T("<function|boolean>",[D],arguments.length),typeof D==="boolean"&&D!==!1)throw new FD("Invalid first argument. Expected function or boolean 'false'");return X(this,m,"f").failFn(D),this}getAliases(){return this.parsed?this.parsed.aliases:{}}async getCompletion(D,u){if(T("<array> [function]",[D,u],arguments.length),!u)return new Promise((F,E)=>{X(this,VD,"f").getCompletion(D,(C,B)=>{if(C)E(C);else F(B)})});else return X(this,VD,"f").getCompletion(D,u)}getDemandedOptions(){return T([],0),X(this,I,"f").demandedOptions}getDemandedCommands(){return T([],0),X(this,I,"f").demandedCommands}getDeprecatedOptions(){return T([],0),X(this,I,"f").deprecatedOptions}getDetectLocale(){return X(this,uu,"f")}getExitProcess(){return X(this,jD,"f")}getGroups(){return Object.assign({},X(this,wD,"f"),X(this,Cu,"f"))}getHelp(){if(R(this,qD,!0,"f"),!X(this,m,"f").hasCachedHelpMessage()){if(!this.parsed){let u=this[wu](X(this,iD,"f"),void 0,void 0,0,!0);if(s(u))return u.then(()=>{return X(this,m,"f").help()})}let D=X(this,ED,"f").runDefaultBuilderOn(this);if(s(D))return D.then(()=>{return X(this,m,"f").help()})}return Promise.resolve(X(this,m,"f").help())}getOptions(){return X(this,I,"f")}getStrict(){return X(this,Bu,"f")}getStrictCommands(){return X(this,$u,"f")}getStrictOptions(){return X(this,Gu,"f")}global(D,u){if(T("<string|array> [boolean]",[D,u],arguments.length),D=[].concat(D),u!==!1)X(this,I,"f").local=X(this,I,"f").local.filter((F)=>D.indexOf(F)===-1);else D.forEach((F)=>{if(!X(this,I,"f").local.includes(F))X(this,I,"f").local.push(F)});return this}group(D,u){T("<string|array> <string>",[D,u],arguments.length);let F=X(this,Cu,"f")[u]||X(this,wD,"f")[u];if(X(this,Cu,"f")[u])delete X(this,Cu,"f")[u];let E={};return X(this,wD,"f")[u]=(F||[]).concat(D).filter((C)=>{if(E[C])return!1;return E[C]=!0}),this}hide(D){return T("<string>",[D],arguments.length),X(this,I,"f").hiddenOptions.push(D),this}implies(D,u){return T("<string|object> [number|string|array]",[D,u],arguments.length),X(this,DD,"f").implies(D,u),this}locale(D){if(T("[string]",[D],arguments.length),D===void 0)return this[oF](),X(this,v,"f").y18n.getLocale();return R(this,uu,!1,"f"),X(this,v,"f").y18n.setLocale(D),this}middleware(D,u,F){return X(this,AD,"f").addMiddleware(D,!!u,F)}nargs(D,u){return T("<string|object|array> [number]",[D,u],arguments.length),this[Ku](this.nargs.bind(this),"narg",D,u),this}normalize(D){return T("<array|string>",[D],arguments.length),this[nD]("normalize",D),this}number(D){return T("<array|string>",[D],arguments.length),this[nD]("number",D),this[Ju](D),this}option(D,u){if(T("<string|object> [object]",[D,u],arguments.length),typeof D==="object")Object.keys(D).forEach((F)=>{this.options(F,D[F])});else{if(typeof u!=="object")u={};if(this[Ju](D),X(this,xD,"f")&&(D==="version"||(u===null||u===void 0?void 0:u.alias)==="version"))this[u8](['"version" is a reserved word.',"Please do one of the following:",'- Disable version with `yargs.version(false)` if using "version" as an option',"- Use the built-in `yargs.version` method instead (if applicable)","- Use a different option key","https://yargs.js.org/docs/#api-reference-version"].join(`
|
|
79
|
+
`),void 0,"versionWarning");if(X(this,I,"f").key[D]=!0,u.alias)this.alias(D,u.alias);let F=u.deprecate||u.deprecated;if(F)this.deprecateOption(D,F);let E=u.demand||u.required||u.require;if(E)this.demand(D,E);if(u.demandOption)this.demandOption(D,typeof u.demandOption==="string"?u.demandOption:void 0);if(u.conflicts)this.conflicts(D,u.conflicts);if("default"in u)this.default(D,u.default);if(u.implies!==void 0)this.implies(D,u.implies);if(u.nargs!==void 0)this.nargs(D,u.nargs);if(u.config)this.config(D,u.configParser);if(u.normalize)this.normalize(D);if(u.choices)this.choices(D,u.choices);if(u.coerce)this.coerce(D,u.coerce);if(u.group)this.group(D,u.group);if(u.boolean||u.type==="boolean"){if(this.boolean(D),u.alias)this.boolean(u.alias)}if(u.array||u.type==="array"){if(this.array(D),u.alias)this.array(u.alias)}if(u.number||u.type==="number"){if(this.number(D),u.alias)this.number(u.alias)}if(u.string||u.type==="string"){if(this.string(D),u.alias)this.string(u.alias)}if(u.count||u.type==="count")this.count(D);if(typeof u.global==="boolean")this.global(D,u.global);if(u.defaultDescription)X(this,I,"f").defaultDescription[D]=u.defaultDescription;if(u.skipValidation)this.skipValidation(D);let C=u.describe||u.description||u.desc,B=X(this,m,"f").getDescriptions();if(!Object.prototype.hasOwnProperty.call(B,D)||typeof C==="string")this.describe(D,C);if(u.hidden)this.hide(D);if(u.requiresArg)this.requiresArg(D)}return this}options(D,u){return this.option(D,u)}parse(D,u,F){if(T("[string|array] [function|boolean|object] [function]",[D,u,F],arguments.length),this[F8](),typeof D>"u")D=X(this,iD,"f");if(typeof u==="object")R(this,Eu,u,"f"),u=F;if(typeof u==="function")R(this,UD,u,"f"),u=!1;if(!u)R(this,iD,D,"f");if(X(this,UD,"f"))R(this,jD,!1,"f");let E=this[wu](D,!!u),C=this.parsed;if(X(this,VD,"f").setParsed(this.parsed),s(E))return E.then((B)=>{if(X(this,UD,"f"))X(this,UD,"f").call(this,X(this,dD,"f"),B,X(this,JD,"f"));return B}).catch((B)=>{if(X(this,UD,"f"))X(this,UD,"f")(B,this.parsed.argv,X(this,JD,"f"));throw B}).finally(()=>{this[u0](),this.parsed=C});else{if(X(this,UD,"f"))X(this,UD,"f").call(this,X(this,dD,"f"),E,X(this,JD,"f"));this[u0](),this.parsed=C}return E}parseAsync(D,u,F){let E=this.parse(D,u,F);return!s(E)?Promise.resolve(E):E}parseSync(D,u,F){let E=this.parse(D,u,F);if(s(E))throw new FD(".parseSync() must not be used with asynchronous builders, handlers, or middleware");return E}parserConfiguration(D){return T("<object>",[D],arguments.length),R(this,FF,D,"f"),this}pkgConf(D,u){T("<string> [string]",[D,u],arguments.length);let F=null,E=this[sF](u||X(this,Du,"f"));if(E[D]&&typeof E[D]==="object")F=Su(E[D],u||X(this,Du,"f"),this[zu]()["deep-merge-config"]||!1,X(this,v,"f")),X(this,I,"f").configObjects=(X(this,I,"f").configObjects||[]).concat(F);return this}positional(D,u){T("<string> <object>",[D,u],arguments.length);let F=["default","defaultDescription","implies","normalize","choices","conflicts","coerce","type","describe","desc","description","alias"];u=gD(u,(B,$)=>{if(B==="type"&&!["string","number","boolean"].includes($))return!1;return F.includes(B)});let E=X(this,Pu,"f").fullCommands[X(this,Pu,"f").fullCommands.length-1],C=E?X(this,ED,"f").cmdToParseOptions(E):{array:[],alias:{},default:{},demand:{}};return Mu(C).forEach((B)=>{let $=C[B];if(Array.isArray($)){if($.indexOf(D)!==-1)u[B]=!0}else if($[D]&&!(B in u))u[B]=$[D]}),this.group(D,X(this,m,"f").getPositionalGroupName()),this.option(D,u)}recommendCommands(D=!0){return T("[boolean]",[D],arguments.length),R(this,EF,D,"f"),this}required(D,u,F){return this.demand(D,u,F)}require(D,u,F){return this.demand(D,u,F)}requiresArg(D){if(T("<array|string|object> [number]",[D],arguments.length),typeof D==="string"&&X(this,I,"f").narg[D])return this;else this[Ku](this.requiresArg.bind(this),"narg",D,NaN);return this}showCompletionScript(D,u){return T("[string] [string]",[D,u],arguments.length),D=D||this.$0,X(this,Fu,"f").log(X(this,VD,"f").generateCompletionScript(D,u||X(this,MD,"f")||"completion")),this}showHelp(D){if(T("[string|function]",[D],arguments.length),R(this,qD,!0,"f"),!X(this,m,"f").hasCachedHelpMessage()){if(!this.parsed){let F=this[wu](X(this,iD,"f"),void 0,void 0,0,!0);if(s(F))return F.then(()=>{X(this,m,"f").showHelp(D)}),this}let u=X(this,ED,"f").runDefaultBuilderOn(this);if(s(u))return u.then(()=>{X(this,m,"f").showHelp(D)}),this}return X(this,m,"f").showHelp(D),this}scriptName(D){return this.customScriptName=!0,this.$0=D,this}showHelpOnFail(D,u){return T("[boolean|string] [string]",[D,u],arguments.length),X(this,m,"f").showHelpOnFail(D,u),this}showVersion(D){return T("[string|function]",[D],arguments.length),X(this,m,"f").showVersion(D),this}skipValidation(D){return T("<array|string>",[D],arguments.length),this[nD]("skipValidation",D),this}strict(D){return T("[boolean]",[D],arguments.length),R(this,Bu,D!==!1,"f"),this}strictCommands(D){return T("[boolean]",[D],arguments.length),R(this,$u,D!==!1,"f"),this}strictOptions(D){return T("[boolean]",[D],arguments.length),R(this,Gu,D!==!1,"f"),this}string(D){return T("<array|string>",[D],arguments.length),this[nD]("string",D),this[Ju](D),this}terminalWidth(){return T([],0),X(this,v,"f").process.stdColumns}updateLocale(D){return this.updateStrings(D)}updateStrings(D){return T("<object>",[D],arguments.length),R(this,uu,!1,"f"),X(this,v,"f").y18n.updateLocale(D),this}usage(D,u,F,E){if(T("<string|null|undefined> [string|boolean] [function|object] [function]",[D,u,F,E],arguments.length),u!==void 0)if(OD(D,null,X(this,v,"f")),(D||"").match(/^\$0( |$)/))return this.command(D,u,F,E);else throw new FD(".usage() description must start with $0 if being used as alias for .command()");else return X(this,m,"f").usage(D),this}usageConfiguration(D){return T("<object>",[D],arguments.length),R(this,CF,D,"f"),this}version(D,u,F){if(T("[boolean|string] [string] [string]",[D,u,F],arguments.length),X(this,xD,"f"))this[tF](X(this,xD,"f")),X(this,m,"f").version(void 0),R(this,xD,null,"f");if(arguments.length===0)F=this[B8](),D="version";else if(arguments.length===1){if(D===!1)return this;F=D,D="version"}else if(arguments.length===2)F=u,u=void 0;return R(this,xD,typeof D==="string"?D:"version","f"),u=u||X(this,m,"f").deferY18nLookup("Show version number"),X(this,m,"f").version(F||void 0),this.boolean(X(this,xD,"f")),this.describe(X(this,xD,"f"),u),this}wrap(D){return T("<number|null|undefined>",[D],arguments.length),X(this,m,"f").wrap(D),this}[(ED=new WeakMap,Du=new WeakMap,Pu=new WeakMap,VD=new WeakMap,MD=new WeakMap,ru=new WeakMap,dD=new WeakMap,uu=new WeakMap,au=new WeakMap,jD=new WeakMap,eu=new WeakMap,AD=new WeakMap,wD=new WeakMap,qD=new WeakMap,LD=new WeakMap,DF=new WeakMap,Fu=new WeakMap,JD=new WeakMap,I=new WeakMap,uF=new WeakMap,FF=new WeakMap,UD=new WeakMap,Eu=new WeakMap,Uu=new WeakMap,Cu=new WeakMap,iD=new WeakMap,EF=new WeakMap,v=new WeakMap,Bu=new WeakMap,$u=new WeakMap,Gu=new WeakMap,m=new WeakMap,CF=new WeakMap,xD=new WeakMap,DD=new WeakMap,e2)](D){if(!D._||!D["--"])return D;D._.push.apply(D._,D["--"]);try{delete D["--"]}catch(u){}return D}[D8](){return{log:(...D)=>{if(!this[BF]())console.log(...D);if(R(this,qD,!0,"f"),X(this,JD,"f").length)R(this,JD,X(this,JD,"f")+`
|
|
80
|
+
`,"f");R(this,JD,X(this,JD,"f")+D.join(" "),"f")},error:(...D)=>{if(!this[BF]())console.error(...D);if(R(this,qD,!0,"f"),X(this,JD,"f").length)R(this,JD,X(this,JD,"f")+`
|
|
81
|
+
`,"f");R(this,JD,X(this,JD,"f")+D.join(" "),"f")}}}[tF](D){Mu(X(this,I,"f")).forEach((u)=>{if(((E)=>E==="configObjects")(u))return;let F=X(this,I,"f")[u];if(Array.isArray(F)){if(F.includes(D))F.splice(F.indexOf(D),1)}else if(typeof F==="object")delete F[D]}),delete X(this,m,"f").getDescriptions()[D]}[u8](D,u,F){if(!X(this,au,"f")[F])X(this,v,"f").process.emitWarning(D,u),X(this,au,"f")[F]=!0}[F8](){X(this,eu,"f").push({options:X(this,I,"f"),configObjects:X(this,I,"f").configObjects.slice(0),exitProcess:X(this,jD,"f"),groups:X(this,wD,"f"),strict:X(this,Bu,"f"),strictCommands:X(this,$u,"f"),strictOptions:X(this,Gu,"f"),completionCommand:X(this,MD,"f"),output:X(this,JD,"f"),exitError:X(this,dD,"f"),hasOutput:X(this,qD,"f"),parsed:this.parsed,parseFn:X(this,UD,"f"),parseContext:X(this,Eu,"f")}),X(this,m,"f").freeze(),X(this,DD,"f").freeze(),X(this,ED,"f").freeze(),X(this,AD,"f").freeze()}[E8](){let D="",u;if(/\b(node|iojs|electron)(\.exe)?$/.test(X(this,v,"f").process.argv()[0]))u=X(this,v,"f").process.argv().slice(1,2);else u=X(this,v,"f").process.argv().slice(0,1);if(D=u.map((F)=>{let E=this[V8](X(this,Du,"f"),F);return F.match(/^(\/|([a-zA-Z]:)?\\)/)&&E.length<F.length?E:F}).join(" ").trim(),X(this,v,"f").getEnv("_")&&X(this,v,"f").getProcessArgvBin()===X(this,v,"f").getEnv("_"))D=X(this,v,"f").getEnv("_").replace(`${X(this,v,"f").path.dirname(X(this,v,"f").process.execPath())}/`,"");return D}[zu](){return X(this,FF,"f")}[C8](){return X(this,CF,"f")}[oF](){if(!X(this,uu,"f"))return;let D=X(this,v,"f").getEnv("LC_ALL")||X(this,v,"f").getEnv("LC_MESSAGES")||X(this,v,"f").getEnv("LANG")||X(this,v,"f").getEnv("LANGUAGE")||"en_US";this.locale(D.replace(/[.:].*/,""))}[B8](){return this[sF]().version||"unknown"}[$8](D){let u=D["--"]?D["--"]:D._;for(let F=0,E;(E=u[F])!==void 0;F++)if(X(this,v,"f").Parser.looksLikeNumber(E)&&Number.isSafeInteger(Math.floor(parseFloat(`${E}`))))u[F]=Number(E);return D}[sF](D){let u=D||"*";if(X(this,Uu,"f")[u])return X(this,Uu,"f")[u];let F={};try{let E=D||X(this,v,"f").mainFilename;if(X(this,v,"f").path.extname(E))E=X(this,v,"f").path.dirname(E);let C=X(this,v,"f").findUp(E,(B,$)=>{if($.includes("package.json"))return"package.json";else return});OD(C,void 0,X(this,v,"f")),F=JSON.parse(X(this,v,"f").readFileSync(C,"utf8"))}catch(E){}return X(this,Uu,"f")[u]=F||{},X(this,Uu,"f")[u]}[nD](D,u){u=[].concat(u),u.forEach((F)=>{F=this[eF](F),X(this,I,"f")[D].push(F)})}[Ku](D,u,F,E){this[aF](D,u,F,E,(C,B,$)=>{X(this,I,"f")[C][B]=$})}[rF](D,u,F,E){this[aF](D,u,F,E,(C,B,$)=>{X(this,I,"f")[C][B]=(X(this,I,"f")[C][B]||[]).concat($)})}[aF](D,u,F,E,C){if(Array.isArray(F))F.forEach((B)=>{D(B,E)});else if(((B)=>typeof B==="object")(F))for(let B of Mu(F))D(B,F[B]);else C(u,this[eF](F),E)}[eF](D){if(D==="__proto__")return"___proto___";return D}[D0](D,u){return this[Ku](this[D0].bind(this),"key",D,u),this}[u0](){var D,u,F,E,C,B,$,G,Z,z,Q,J;let Y=X(this,eu,"f").pop();OD(Y,void 0,X(this,v,"f"));let W;D=this,u=this,F=this,E=this,C=this,B=this,$=this,G=this,Z=this,z=this,Q=this,J=this,{options:{set value(V){R(D,I,V,"f")}}.value,configObjects:W,exitProcess:{set value(V){R(u,jD,V,"f")}}.value,groups:{set value(V){R(F,wD,V,"f")}}.value,output:{set value(V){R(E,JD,V,"f")}}.value,exitError:{set value(V){R(C,dD,V,"f")}}.value,hasOutput:{set value(V){R(B,qD,V,"f")}}.value,parsed:this.parsed,strict:{set value(V){R($,Bu,V,"f")}}.value,strictCommands:{set value(V){R(G,$u,V,"f")}}.value,strictOptions:{set value(V){R(Z,Gu,V,"f")}}.value,completionCommand:{set value(V){R(z,MD,V,"f")}}.value,parseFn:{set value(V){R(Q,UD,V,"f")}}.value,parseContext:{set value(V){R(J,Eu,V,"f")}}.value}=Y,X(this,I,"f").configObjects=W,X(this,m,"f").unfreeze(),X(this,DD,"f").unfreeze(),X(this,ED,"f").unfreeze(),X(this,AD,"f").unfreeze()}[G8](D,u){return eD(u,(F)=>{return D(F),F})}getInternalMethods(){return{getCommandInstance:this[z8].bind(this),getContext:this[Z8].bind(this),getHasOutput:this[J8].bind(this),getLoggerInstance:this[X8].bind(this),getParseContext:this[Q8].bind(this),getParserConfiguration:this[zu].bind(this),getUsageConfiguration:this[C8].bind(this),getUsageInstance:this[Y8].bind(this),getValidationInstance:this[O8].bind(this),hasParseCallback:this[BF].bind(this),isGlobalContext:this[W8].bind(this),postProcess:this[Zu].bind(this),reset:this[F0].bind(this),runValidation:this[E0].bind(this),runYargsParserAndExecuteCommands:this[wu].bind(this),setHasOutput:this[H8].bind(this)}}[z8](){return X(this,ED,"f")}[Z8](){return X(this,Pu,"f")}[J8](){return X(this,qD,"f")}[X8](){return X(this,Fu,"f")}[Q8](){return X(this,Eu,"f")||{}}[Y8](){return X(this,m,"f")}[O8](){return X(this,DD,"f")}[BF](){return!!X(this,UD,"f")}[W8](){return X(this,DF,"f")}[Zu](D,u,F,E){if(F)return D;if(s(D))return D;if(!u)D=this[e2](D);if(this[zu]()["parse-positional-numbers"]||this[zu]()["parse-positional-numbers"]===void 0)D=this[$8](D);if(E)D=aD(D,this,X(this,AD,"f").getMiddleware(),!1);return D}[F0](D={}){R(this,I,X(this,I,"f")||{},"f");let u={};u.local=X(this,I,"f").local||[],u.configObjects=X(this,I,"f").configObjects||[];let F={};u.local.forEach((B)=>{F[B]=!0,(D[B]||[]).forEach(($)=>{F[$]=!0})}),Object.assign(X(this,Cu,"f"),Object.keys(X(this,wD,"f")).reduce((B,$)=>{let G=X(this,wD,"f")[$].filter((Z)=>!(Z in F));if(G.length>0)B[$]=G;return B},{})),R(this,wD,{},"f");let E=["array","boolean","string","skipValidation","count","normalize","number","hiddenOptions"],C=["narg","key","alias","default","defaultDescription","config","choices","demandedOptions","demandedCommands","deprecatedOptions"];if(E.forEach((B)=>{u[B]=(X(this,I,"f")[B]||[]).filter(($)=>!F[$])}),C.forEach((B)=>{u[B]=gD(X(this,I,"f")[B],($)=>!F[$])}),u.envPrefix=X(this,I,"f").envPrefix,R(this,I,u,"f"),R(this,m,X(this,m,"f")?X(this,m,"f").reset(F):d2(this,X(this,v,"f")),"f"),R(this,DD,X(this,DD,"f")?X(this,DD,"f").reset(F):r2(this,X(this,m,"f"),X(this,v,"f")),"f"),R(this,ED,X(this,ED,"f")?X(this,ED,"f").reset():c2(X(this,m,"f"),X(this,DD,"f"),X(this,AD,"f"),X(this,v,"f")),"f"),!X(this,VD,"f"))R(this,VD,t2(this,X(this,m,"f"),X(this,ED,"f"),X(this,v,"f")),"f");return X(this,AD,"f").reset(),R(this,MD,null,"f"),R(this,JD,"","f"),R(this,dD,null,"f"),R(this,qD,!1,"f"),this.parsed=!1,this}[V8](D,u){return X(this,v,"f").path.relative(D,u)}[wu](D,u,F,E=0,C=!1){var B,$,G,Z;let z=!!F||C;D=D||X(this,iD,"f"),X(this,I,"f").__=X(this,v,"f").y18n.__,X(this,I,"f").configuration=this[zu]();let Q=!!X(this,I,"f").configuration["populate--"],J=Object.assign({},X(this,I,"f").configuration,{"populate--":!0}),Y=X(this,v,"f").Parser.detailed(D,Object.assign({},X(this,I,"f"),{configuration:{"parse-positional-numbers":!1,...J}})),W=Object.assign(Y.argv,X(this,Eu,"f")),V=void 0,O=Y.aliases,U=!1,_=!1;if(Object.keys(W).forEach((N)=>{if(N===X(this,LD,"f")&&W[N])U=!0;else if(N===X(this,xD,"f")&&W[N])_=!0}),W.$0=this.$0,this.parsed=Y,E===0)X(this,m,"f").clearCachedHelpMessage();try{if(this[oF](),u)return this[Zu](W,Q,!!F,!1);if(X(this,LD,"f")){if([X(this,LD,"f")].concat(O[X(this,LD,"f")]||[]).filter((e)=>e.length>1).includes(""+W._[W._.length-1]))W._.pop(),U=!0}R(this,DF,!1,"f");let N=X(this,ED,"f").getCommands(),k=((B=X(this,VD,"f"))===null||B===void 0?void 0:B.completionKey)?[($=X(this,VD,"f"))===null||$===void 0?void 0:$.completionKey,...(Z=this.getAliases()[(G=X(this,VD,"f"))===null||G===void 0?void 0:G.completionKey])!==null&&Z!==void 0?Z:[]].some((c)=>Object.prototype.hasOwnProperty.call(W,c)):!1,w=U||k||C;if(W._.length){if(N.length){let c;for(let e=E||0,r;W._[e]!==void 0;e++)if(r=String(W._[e]),N.includes(r)&&r!==X(this,MD,"f")){let KD=X(this,ED,"f").runCommand(r,this,Y,e+1,C,U||_||C);return this[Zu](KD,Q,!!F,!1)}else if(!c&&r!==X(this,MD,"f")){c=r;break}if(!X(this,ED,"f").hasDefaultCommand()&&X(this,EF,"f")&&c&&!w)X(this,DD,"f").recommendCommands(c,N)}if(X(this,MD,"f")&&W._.includes(X(this,MD,"f"))&&!k){if(X(this,jD,"f"))kD(!0);this.showCompletionScript(),this.exit(0)}}if(X(this,ED,"f").hasDefaultCommand()&&!w){let c=X(this,ED,"f").runCommand(null,this,Y,0,C,U||_||C);return this[Zu](c,Q,!!F,!1)}if(k){if(X(this,jD,"f"))kD(!0);D=[].concat(D);let c=D.slice(D.indexOf(`--${X(this,VD,"f").completionKey}`)+1);return X(this,VD,"f").getCompletion(c,(e,r)=>{if(e)throw new FD(e.message);(r||[]).forEach((KD)=>{X(this,Fu,"f").log(KD)}),this.exit(0)}),this[Zu](W,!Q,!!F,!1)}if(!X(this,qD,"f")){if(U){if(X(this,jD,"f"))kD(!0);z=!0,this.showHelp((c)=>{X(this,Fu,"f").log(c),this.exit(0)})}else if(_){if(X(this,jD,"f"))kD(!0);z=!0,X(this,m,"f").showVersion("log"),this.exit(0)}}if(!z&&X(this,I,"f").skipValidation.length>0)z=Object.keys(W).some((c)=>X(this,I,"f").skipValidation.indexOf(c)>=0&&W[c]===!0);if(!z){if(Y.error)throw new FD(Y.error.message);if(!k){let c=this[E0](O,{},Y.error);if(!F)V=aD(W,this,X(this,AD,"f").getMiddleware(),!0);if(V=this[G8](c,V!==null&&V!==void 0?V:W),s(V)&&!F)V=V.then(()=>{return aD(W,this,X(this,AD,"f").getMiddleware(),!1)})}}}catch(N){if(N instanceof FD)X(this,m,"f").fail(N.message,N);else throw N}return this[Zu](V!==null&&V!==void 0?V:W,Q,!!F,!0)}[E0](D,u,F,E){let C={...this.getDemandedOptions()};return(B)=>{if(F)throw new FD(F.message);X(this,DD,"f").nonOptionCount(B),X(this,DD,"f").requiredArguments(B,C);let $=!1;if(X(this,$u,"f"))$=X(this,DD,"f").unknownCommands(B);if(X(this,Bu,"f")&&!$)X(this,DD,"f").unknownArguments(B,D,u,!!E);else if(X(this,Gu,"f"))X(this,DD,"f").unknownArguments(B,D,{},!1,!1);X(this,DD,"f").limitedChoices(B),X(this,DD,"f").implications(B),X(this,DD,"f").conflicting(B)}}[H8](){R(this,qD,!0,"f")}[Ju](D){if(typeof D==="string")X(this,I,"f").key[D]=!0;else for(let u of D)X(this,I,"f").key[u]=!0}}function g2(D){return!!D&&typeof D.getInternalMethods==="function"}var Q6=M8(kF),U8=Q6;import{existsSync as $F,readFileSync as $0,writeFileSync as C0,mkdirSync as j8}from"node:fs";import{homedir as Y6}from"node:os";import{join as Xu,dirname as G0}from"node:path";function z0(){return process.env.HOME||Y6()}function A8(){return Xu(z0(),".config","slack-cli","profiles.json")}function GF(){return Xu(process.cwd(),".slack-cli","workspace")}function zF(){return Xu(z0(),".slack-cli","workspace")}function xu(){let D=A8();if(!$F(D))return{profiles:{}};return JSON.parse($0(D,"utf8"))}function O6(D){let u=A8();j8(G0(u),{recursive:!0}),C0(u,JSON.stringify(D,null,2)+`
|
|
82
|
+
`)}function _u(D){if(!$F(D))return;return $0(D,"utf8").trim()||void 0}function K8(D,u){let F=G0(D);j8(F,{recursive:!0});let E=Xu(F,".gitignore");if(!$F(E))C0(E,`*
|
|
83
|
+
`);C0(D,u+`
|
|
84
|
+
`)}function W6(D){let u={};for(let F of D.split(`
|
|
85
|
+
`)){let E=F.trim();if(!E||E.startsWith("#"))continue;let C=E.indexOf("=");if(C===-1)continue;let B=E.slice(0,C).trim(),$=E.slice(C+1).trim();if($.startsWith('"')&&$.endsWith('"')||$.startsWith("'")&&$.endsWith("'"))$=$.slice(1,-1);u[B]=$}return u}function _8(D){if(!$F(D))return{};try{return W6($0(D,"utf8"))}catch{return{}}}function B0(D,u){let F=z0(),E=D;while(!0){for(let $ of[Xu(E,".slack-term",".env.local"),Xu(E,".env.local")]){let G=_8($);for(let Z of u)if(G[Z])return G[Z]}if(E===F)break;let B=G0(E);if(B===E)break;E=B}let C=_8(Xu(F,".slack-term",".env.local"));for(let B of u)if(C[B])return C[B];return}function L8(){let D=xu(),u=_u(GF()),F=_u(zF()),E=u??F;return Object.entries(D.profiles).map(([C,B])=>({name:C,profile:B,current:C===E}))}function N8(D){let u=xu();if(!(D in u.profiles))throw Error(`Profile not found: ${D}`);delete u.profiles[D],O6(u)}function T8(D,u=!1){let F=xu();if(!(D in F.profiles))throw Error(`Profile not found: ${D}`);if(u)K8(zF(),D);else K8(GF(),D)}function Z0(D){let F=xu().profiles,E=Object.keys(F);if(D){let z=F[D];if(!z)throw Error(`Workspace "${D}" not found. Available: ${E.join(", ")||"(none)"}`);return z.token}if(process.env.SLACK_TOKEN)return process.env.SLACK_TOKEN;let C=process.env.SLACK_BOT_TOKEN??process.env.SLACK_MCP_XOXP_TOKEN;if(C&&E.length===0)return C;if(C&&E.length>0){let z=B0(process.cwd(),["SLACK_BOT_TOKEN","SLACK_MCP_XOXP_TOKEN"]);if(C!==z){if(!globalThis.__slackEnvWarnShown)globalThis.__slackEnvWarnShown=!0,console.error(`Warning: SLACK_MCP_XOXP_TOKEN / SLACK_BOT_TOKEN is set but workspace profiles exist — using profiles.
|
|
86
|
+
`+" Migrate to SLACK_TOKEN=... or remove from your shell config.")}}let B=B0(process.cwd(),["SLACK_TOKEN"]);if(B)return B;let $=process.env.SLACK_WORKSPACE;if($){let z=F[$];if(!z)throw Error(`Workspace "${$}" not found. Available: ${E.join(", ")||"(none)"}`);return z.token}let G=_u(GF());if(G){let z=F[G];if(!z)throw Error(`Workspace "${G}" (from .slack-cli/workspace) not found in profiles.`);return z.token}let Z=_u(zF());if(Z){let z=F[Z];if(!z)throw Error(`Workspace "${Z}" (from ~/.slack-cli/workspace) not found in profiles.`);return z.token}if(E.length>0)throw Error(`Workspace not selected (${E.join(", ")} available).
|
|
87
87
|
Select locally: slack workspace use <name> (writes .slack-cli/workspace)
|
|
88
88
|
Select globally: slack workspace use -g <name> (writes ~/.slack-cli/workspace)`);throw Error(`No Slack token found.
|
|
89
89
|
Run one of:
|
|
90
90
|
`+` slack auth token — paste an existing xoxp-/xoxb- token
|
|
91
91
|
`+` slack auth chrome — import from Chrome browser (macOS)
|
|
92
92
|
`+` slack auth app — guided Slack app creation
|
|
93
|
-
`+" Or set SLACK_TOKEN=xoxp-... in .slack-term/.env.local")}function
|
|
93
|
+
`+" Or set SLACK_TOKEN=xoxp-... in .slack-term/.env.local")}function J0(){let D=process.env.SLACK_BOT_TOKEN;return D&&D.startsWith("xoxb-")?D:void 0}function R8(D){let F=xu().profiles;if(D)return F[D]?.cookie;if(process.env.SLACK_COOKIE)return process.env.SLACK_COOKIE;if(process.env.SLACK_MCP_XOXD_COOKIE)return process.env.SLACK_MCP_XOXD_COOKIE;if(process.env.SLACK_MCP_XOXP_TOKEN&&Object.keys(F).length===0)return process.env.SLACK_MCP_XOXD_COOKIE;let C=B0(process.cwd(),["SLACK_COOKIE"]);if(C)return C;let B=process.env.SLACK_WORKSPACE;if(B)return F[B]?.cookie;let $=_u(GF());if($)return F[$]?.cookie;let G=_u(zF());if(G)return F[G]?.cookie;return}class lD extends Error{retryAfter;constructor(D){super(`Slack rate limited — retry after ${D}s`);this.name="RateLimitError",this.retryAfter=D}}function X0(){return(process.env.SLACK_API_BASE??"https://slack.com/api").replace(/\/$/,"")}async function S8(D,u,F,E){let C={};if(E)C.Cookie=`d=${E}`;let B=await fetch(`${X0()}/${u}`,{...F,headers:{...F.headers??{},Authorization:`Bearer ${D}`,...C}});if(B.status===429){let G=parseInt(B.headers.get("retry-after")??"60",10);throw new lD(isNaN(G)?60:G)}let $=await B.json();if($.ok!==!0){let G=$.error??"unknown";if(G==="ratelimited")throw new lD(60);if(G==="invalid_auth"&&D.startsWith("xoxc-")&&!E)throw Error(`Desktop app token (xoxc-) is not accepted by the public Slack API.
|
|
94
94
|
Replace it with an xoxp- user token:
|
|
95
|
-
slack workspace set-token <name> <xoxp-token>`);throw Error(`Slack error on ${u}: ${
|
|
96
|
-
Import from Slack desktop: slack workspace import`);if((
|
|
95
|
+
slack workspace set-token <name> <xoxp-token>`);throw Error(`Slack error on ${u}: ${G}`)}return $}async function V6(D,u,F,E){let C={};if(E)C.Cookie=`d=${E}`;let B=await fetch(`${X0()}/${u}`,{...F,headers:{...F.headers??{},Authorization:`Bearer ${D}`,...C}});if(B.status===429){let G=parseInt(B.headers.get("retry-after")??"60",10);throw new lD(isNaN(G)?60:G)}let $=await B.json();if($.ok!==!0){let G=$.error??"unknown";if(G==="ratelimited")throw new lD(60);if((G==="invalid_auth"||G==="not_authed")&&!D.startsWith("xoxc-"))throw Error(`The draft API requires a desktop app session token (xoxc-).
|
|
96
|
+
Import from Slack desktop: slack workspace import`);if((G==="invalid_auth"||G==="not_authed")&&!E)throw Error(`drafts.list also requires the xoxd session cookie.
|
|
97
97
|
Set it with: slack workspace set-cookie <workspace-name> <xoxd-value>
|
|
98
|
-
`+"Get xoxd from browser: DevTools → Application → Cookies → slack.com → d");throw Error(`Slack error on ${u}: ${
|
|
99
|
-
`)}function
|
|
100
|
-
`):[];for(let[C,B]of Object.entries(u)){let $=E.findIndex((Z)=>{let
|
|
98
|
+
`+"Get xoxd from browser: DevTools → Application → Cookies → slack.com → d");throw Error(`Slack error on ${u}: ${G}`)}return $}function H6(D,u,F={},E){let C=new URLSearchParams({token:D,...F});return V6(D,u,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:C.toString()},E)}function WD(D,u,F,E){let C=new URLSearchParams(F).toString();return S8(D,`${u}?${C}`,{method:"GET"},E)}function M6(D,u,F){return S8(D,u,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(F)})}async function ZF(D){let u=await WD(D,"auth.test",{});return{team:u.team??"",teamId:u.team_id??"",url:u.url??"",user:u.user??"",userId:u.user_id??""}}async function P8(D){let u=await fetch(`${X0()}/auth.test`,{method:"GET",headers:{Authorization:`Bearer ${D}`}});if(u.status===429){let C=parseInt(u.headers.get("retry-after")??"60",10);throw new lD(isNaN(C)?60:C)}let F=u.headers.get("x-oauth-scopes")??"",E=await u.json();if(E.ok!==!0)throw Error(`Slack error on auth.test: ${E.error??"unknown"}`);return{userId:E.user_id??"",botId:E.bot_id??"",team:E.team??"",url:E.url??"",scopes:F.split(",").map((C)=>C.trim()).filter(Boolean)}}async function w8(D,u){let F=await WD(D,"bots.info",{bot:u});return{appId:F.bot?.app_id??"",userId:F.bot?.user_id??""}}async function Q0(D,u,F=20,E,C){let B={channel:u,limit:String(F)};if(E!==void 0)B.oldest=E;if(C!==void 0)B.cursor=C;return WD(D,"conversations.history",B)}async function x8(D,u,F,E=50){return WD(D,"conversations.replies",{channel:u,ts:F,limit:String(E)})}async function q6(D,u){let E=(await M6(D,"conversations.open",{users:u})).channel?.id;if(!E)throw Error(`Failed to open DM with user ${u}`);return E}function Iu(D){return D.toLowerCase().replace(/[-_\s]/g,"")}function Y0(D){let u=D.match(/(?:app\.slack\.com\/client\/T[A-Za-z0-9]+|[A-Za-z0-9-]+\.slack\.com\/archives)\/([A-Za-z0-9]+)(?:\/p(\d{10})(\d{6}))?/);if(!u)return;let F=u[1],E=u[2]&&u[3]?`${u[2]}.${u[3]}`:void 0,C=D.indexOf("?"),B=C>=0?new URLSearchParams(D.slice(C)):void 0,$=B?.get("thread_ts")??void 0,z={channel:B?.get("cid")??void 0??F};if(E)z.ts=E;if($)z.threadTs=$;return z}function U6(D){return Y0(D)?.channel}async function I8(D,u,F){let E=U6(u);if(E)return E;if(!u.startsWith("@")&&!u.startsWith("#")){if(/^[A-Za-z0-9]{9,}$/.test(u))return u;throw Error(`Target must start with # or @ (or be a Slack URL/ID), got: ${u}`)}let C=u.startsWith("@"),B=u.slice(1),$=Iu(B);if(C){let z=await WD(D,"auth.test",{},F);if($==="you"||$==="me"||Iu(z.user??"")===$){let V=z.user_id;if(!V)throw Error("auth.test did not return user_id");let U=((await WD(D,"conversations.list",{types:"im",limit:"200"},F)).channels??[]).find((_)=>_.user===V);if(U?.id)return String(U.id);return q6(D,V)}let J="",Y="";while(!0){let V={limit:"200"};if(Y)V.cursor=Y;let O=await WD(D,"users.list",V,F);for(let U of O.members??[]){let _=Iu(U.name??""),N=Iu(U.real_name??""),k=Iu(U.profile?.display_name??"");if(_===$||N===$||k&&k===$){J=U.id??"";break}}if(J)break;if(Y=O.response_metadata?.next_cursor??"",!Y)break}if(!J)throw Error(`User not found: ${u}`);let W="";while(!0){let V={types:"im",limit:"200"};if(W)V.cursor=W;let O=await WD(D,"conversations.list",V,F);for(let U of O.channels??[])if(U.user===J)return String(U.id??"");if(W=O.response_metadata?.next_cursor??"",!W)break}throw Error(`No existing DM with ${u} (${J}). Open it once in Slack first.`)}let G=B.toLowerCase(),Z="";while(!0){let z={limit:"200",types:"public_channel,private_channel",exclude_archived:"true"};if(Z)z.cursor=Z;let Q=await WD(D,"conversations.list",z,F);for(let J of Q.channels??[])if(String(J.name??"").toLowerCase()===G)return String(J.id??"");if(Z=Q.response_metadata?.next_cursor??"",!Z)break}throw Error(`channel not found: ${u}`)}async function JF(D,u){try{let F=await WD(D,"users.info",{user:u}),E=F.user?.profile?.display_name,C=E&&E.length>0?E:F.user?.real_name??F.user?.name??u,B=F.user?.name??u;return[C,B]}catch{return[u,u]}}async function XF(D,u){try{let F=await WD(D,"users.info",{user:u}),E=F.user?.profile?.display_name;if(E&&E.length>0)return E;return F.user?.real_name??F.user?.name??u}catch{return u}}async function QF(D){let u=[],F="";while(!0){let E={limit:"200"};if(F)E.cursor=F;let C=await WD(D,"users.list",E);if(u.push(...C.members??[]),F=C.response_metadata?.next_cursor??"",!F)break}return{members:u}}async function O0(D,u){let F=[],E="";while(!0){let C={channel:u,limit:"200"};if(E)C.cursor=E;let B=await WD(D,"conversations.members",C);if(F.push(...B.members??[]),E=B.response_metadata?.next_cursor??"",!E)break}return F}async function W0(D,u){return WD(D,"users.info",{user:u})}async function b8(D,u){return WD(D,"conversations.info",{channel:u})}async function f8(D,u){let F=await H6(D,"client.boot",{},u),E=typeof F.url==="string"?F.url:void 0;if(!E){let B=Object.keys(F).join(", ");throw Error(`client.boot did not return a WebSocket URL. Keys: ${B}`)}let C=F.self&&typeof F.self==="object"&&!Array.isArray(F.self)?F.self:{};return{wsUrl:E,selfId:typeof C.id==="string"?C.id:""}}var K6=["chat:write","im:write"],_6=["im:history","im:read"];async function V0(D){let{userId:u,botId:F,team:E,scopes:C}=await P8(D),B="";if(F)try{B=(await w8(D,F)).appId}catch{B=""}let $=(z)=>C.includes(z),G=K6.filter((z)=>!$(z)),Z=_6.filter((z)=>!$(z));return{canSend:G.length===0,canReceiveReplies:Z.length===0,ok:G.length===0&&Z.length===0,botUserId:u,appId:B,team:E,grantedScopes:C,missingSendScopes:G,missingReplyScopes:Z}}function h8(D){return["",` Bot user: ${D.botUserId||"(unknown)"}`,` App ID: ${D.appId||"(unknown — bots.info unavailable)"}`,` Granted scopes: ${D.grantedScopes.join(", ")||"(none reported)"}`]}function H0(D,u=!1){let F=D.appId?`https://api.slack.com/apps/${D.appId}`:"https://api.slack.com/apps";if(D.ok){let C=["✓ Bot DM scopes are complete (send + read replies)."," Two-way replies also require the Messages Tab, which is not API-detectable.",' If recipients see "Sending messages to this app is turned off", enable it:',` ${F} → App Home → "Messages Tab" ON + "Allow users to send messages".`];return u?C:[...C,...h8(D)]}let E=[];if(!D.canSend)E.push(`⚠ This bot CANNOT send DMs — missing scope(s): ${D.missingSendScopes.join(", ")}.`);else E.push("⚠ This bot can send DMs, but the user's replies will NOT be readable.");return E.push(" Make escalation DMs two-way:"),E.push(` 1. ${F} → App Home → enable "Messages Tab" and check`),E.push(' "Allow users to send Slash commands and messages".'),E.push(` 2. OAuth & Permissions → add Bot Token Scopes: ${[...D.missingSendScopes,...D.missingReplyScopes].join(", ")}`),E.push(" 3. Reinstall the app to apply the new scopes."),u?E:[...E,...h8(D)]}import{createInterface as Yu}from"node:readline/promises";import{join as A0}from"node:path";import{homedir as f6}from"node:os";import{existsSync as M0,readFileSync as q0,writeFileSync as p8,mkdirSync as m8}from"node:fs";import{homedir as j6}from"node:os";import{join as U0,dirname as y8}from"node:path";function c8(){return process.env.HOME||j6()}function g8(){return U0(c8(),".config","slack-cli","profiles.json")}function A6(){return U0(process.cwd(),".slack-cli","workspace")}function L6(){return U0(c8(),".slack-cli","workspace")}function K0(){let D=g8();if(!M0(D))return{profiles:{}};return JSON.parse(q0(D,"utf8"))}function k8(D){let u=g8();m8(y8(u),{recursive:!0}),p8(u,JSON.stringify(D,null,2)+`
|
|
99
|
+
`)}function v8(D){if(!M0(D))return;return q0(D,"utf8").trim()||void 0}function d8(D,u){m8(y8(D),{recursive:!0});let F=M0(D)?q0(D,"utf8"):"",E=F?F.split(`
|
|
100
|
+
`):[];for(let[C,B]of Object.entries(u)){let $=E.findIndex((Z)=>{let z=Z.trim();return z.startsWith(C+"=")||z.startsWith(C+" =")}),G=`${C}=${B}`;if($!==-1)E[$]=G;else E.push(G)}p8(D,E.join(`
|
|
101
101
|
`).trimEnd()+`
|
|
102
|
-
`)}function
|
|
102
|
+
`)}function YF(){let D=K0(),u=v8(A6()),F=v8(L6()),E=u??F;return Object.entries(D.profiles).map(([C,B])=>({name:C,profile:B,current:C===E}))}function _0(D,u){let F=K0();F.profiles[D]=u,k8(F)}function j0(D,u){let F=K0();if(!(D in F.profiles))throw Error(`Profile not found: ${D}`);F.profiles[D].cookie=u,k8(F)}import{readdirSync as OF,readFileSync as WF,existsSync as Qu,copyFileSync as i8,unlinkSync as n8}from"node:fs";import{homedir as VF,tmpdir as l8}from"node:os";import{join as XD,dirname as N6}from"node:path";import{pbkdf2Sync as t8,createDecipheriv as o8}from"node:crypto";import{execSync as s8}from"node:child_process";function T6(){let D=VF();if(process.platform==="darwin")return XD(D,"Library","Application Support","Slack","Local Storage","leveldb");if(process.platform==="linux")return XD(D,".config","Slack","Local Storage","leveldb");if(process.platform==="win32"){let u=process.env.APPDATA??XD(D,"AppData","Roaming");return XD(u,"Slack","Local Storage","leveldb")}throw Error(`Unsupported platform: ${process.platform}`)}function R6(){let D=VF();if(process.platform==="darwin")return XD(D,"Library","Application Support","Slack","Cookies");return""}function S6(D,u){if(D.length<35||D.slice(0,3).toString()!=="v10")throw Error("Not a v10 encrypted cookie");let F=D.slice(19,35),E=D.slice(35),C=o8("aes-128-cbc",u,F);return C.setAutoPadding(!0),Buffer.concat([C.update(E),C.final()]).toString("utf8")}function P6(){if(process.platform!=="darwin")return;let D=R6();if(!Qu(D))return;let u;try{u=s8('security find-generic-password -w -s "Slack Safe Storage" -a "Slack Key"',{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trimEnd()}catch{return}let F=t8(u,"saltysalt",1003,16,"sha1");try{let{default:E}=PD("bun:sqlite"),C=new E(D,{readonly:!0}),B=C.prepare("SELECT encrypted_value FROM cookies WHERE name='d' AND host_key LIKE '%slack%'").get();if(C.close(),!B)return;return S6(Buffer.from(B.encrypted_value),F)}catch{return}}async function r8(){let D=T6();if(!Qu(D))throw Error(`Slack desktop app LevelDB not found at:
|
|
103
103
|
${D}
|
|
104
|
-
Is Slack installed and opened at least once?`);let u=
|
|
105
|
-
`)){let z=$.trim();if(z.startsWith("[")){C="",B="";continue}let Z=z.indexOf("=");if(Z===-1)continue;let G=z.slice(0,Z).trim().toLowerCase(),Q=z.slice(Z+1).trim();if(G==="name")C=Q;if(G==="path")B=Q.split(/[\\/]/).pop()??Q;if(C&&B)F[B]=C,C="",B=""}}catch{}return F}function r8(){let D=T6();if(!D||!Xu(D))return[];let u=S6(D),F=[],E;try{E=QF(D)}catch{return[]}for(let C of E){let B=XD(D,C,"cookies.sqlite");if(!Xu(B))continue;let $=XD(i8(),`slack-firefox-cookies-${Date.now()}-${C}.db`);try{k8(B,$);let{default:z}=yD("bun:sqlite"),Z=new z($,{readonly:!0}),G=Z.prepare("SELECT value FROM moz_cookies WHERE name='d' AND host LIKE '%slack%' LIMIT 1").get();if(Z.close(),!G?.value||!G.value.startsWith("xoxd-"))continue;let Q=u[C]??C;F.push({profileDir:C,profileName:Q,cookie:G.value})}catch{}finally{try{d8($)}catch{}}}return F}var w6=["search:read","channels:history","groups:history","im:history","mpim:history","channels:read","groups:read","im:read","mpim:read","users:read","chat:write","files:write"],x6=["channels:history","groups:history","im:history","mpim:history","channels:read","groups:read","im:read","mpim:read","users:read","chat:write","files:write"];function WF(D){return D.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}function I6(){return JSON.stringify({display_information:{name:"slack-term"},oauth_config:{scopes:{user:w6}},settings:{org_deploy_enabled:!1,socket_mode_enabled:!1,token_rotation_enabled:!1}},null,2)}function b6(){return JSON.stringify({display_information:{name:"slack-term"},features:{bot_user:{display_name:"slack-term",always_online:!1}},oauth_config:{scopes:{bot:x6}},settings:{org_deploy_enabled:!1,socket_mode_enabled:!1,token_rotation_enabled:!1}},null,2)}async function Ou(D,u){return(await D.question(u)).trim()}async function Yu(D,u,F,E){console.error("Verifying token...");let C=await GF(u),B=WF(C.team),$;if(F)$=F;else if(D)$=await Ou(D,`Workspace name [${B}]: `)||B;else $=B;let z=null;if(D){console.log(""),console.log("Where to save the token?"),console.log(" 1) ./.env.local (current directory) [default]"),console.log(" 2) ./.slack-term/.env.local (current directory, slack-specific)"),console.log(" 3) ~/.slack-term/.env.local (global, available everywhere)"),console.log(" 4) profiles.json (multi-workspace: slack auth use)"),console.log("");let Z=await Ou(D,"Choice [1/2/3/4, Enter=1]: ");if(Z==="2")z=j0(process.cwd(),".slack-term",".env.local");else if(Z==="3")z=j0(P6(),".slack-term",".env.local");else if(Z==="4")z=null;else z=j0(process.cwd(),".env.local")}if(z===null)if(_0($,{token:u,...C,...E?{cookie:E}:{}}),console.log(`Saved workspace "${$}" to profiles.json: ${C.team} (${C.user})`),process.env.SLACK_MCP_XOXP_TOKEN)console.log(""),console.log("Warning: SLACK_MCP_XOXP_TOKEN is set — it conflicts with profiles."),console.log(" Unset it: unset SLACK_MCP_XOXP_TOKEN (and remove from ~/.zshrc / ~/.bashrc)");else console.log(` Run: slack auth use -g ${$}`);else{let Z={SLACK_TOKEN:u};if(E)Z.SLACK_COOKIE=E;g8(z,Z),console.log(`Saved token to ${z}`),console.log(" SLACK_TOKEN will be picked up automatically in this directory tree.")}return $}async function f6(D){console.error("Scanning Slack desktop app...");let u=await o8();if(u.length===0)console.error("No sessions found. Make sure Slack is installed and you have signed in at least once."),process.exit(1);if(u.length===1&&D){let F=u[0],E=F.teamName??F.teamId;console.log(`Found workspace: ${E}${F.cookie?" (+ xoxd cookie)":""}`),await Yu(D,F.token,WF(E),F.cookie),console.log(""),console.log("Note: desktop app tokens (xoxc-) are internal Slack tokens."),console.log("If API calls fail, replace with an xoxp- token: slack auth login");return}for(let F of u){let E=F.teamName??F.teamId,C=WF(E);_0(C,{token:F.token,team:E,teamId:F.teamId,url:F.url??"",user:"",...F.cookie?{cookie:F.cookie}:{}}),console.log(`Added workspace "${C}": ${E}${F.cookie?" + xoxd cookie":""}`)}if(console.log(""),u.length===1){let F=WF(u[0].teamName??u[0].teamId);console.log(`Run: slack auth use -g ${F}`)}else console.log("Run: slack auth ls then: slack auth use -g <name>");console.log(""),console.log("Note: desktop app tokens (xoxc-) are internal Slack tokens."),console.log("If API calls fail, replace with an xoxp- user token by re-running: slack auth login")}async function a8(D){console.log("Which token type does your app use?"),console.log(""),console.log(" 1) User token (xoxp-) -full access including search [recommended]"),console.log(" 2) Bot token (xoxb-) -search and news unavailable"),console.log("");let F=await Ou(D,"Choice [1/2]: ")==="2"?"bot":"user",E=F==="user"?"xoxp-":"xoxb-",C=F==="user"?"User OAuth Token":"Bot User OAuth Token";console.log(""),console.log("Find your token here:"),console.log(" https://api.slack.com/apps"),console.log(" -> Select your app -> OAuth & Permissions"),console.log(` -> Copy the "${C}" (starts with ${E})`),console.log("");let B=await Ou(D,"Paste your token: ");if(!B)console.error("No token provided."),process.exit(1);if(!B.startsWith(E))console.error(`Expected a ${E} token, got: ${B.slice(0,10)}...`),process.exit(1);await Yu(D,B)}async function HF(D,u){let F=u==="user"?I6():b6(),E=u==="user"?"User OAuth Token (xoxp-...)":"Bot User OAuth Token (xoxb-...)",C=u==="user"?"xoxp-":"xoxb-";if(u==="bot")console.log("Note: bot tokens cannot use search:read (user-only scope)."),console.log(" The news and search commands will not work with a bot token."),console.log("");console.log("Step 1 -Create your Slack app:"),console.log(" Open: https://api.slack.com/apps"),console.log(' Click "Create New App" -> "From a manifest" -> select your workspace'),console.log(" Paste this manifest (JSON tab):"),console.log(""),console.log("-------------------------------------------------------------"),console.log(F),console.log("-------------------------------------------------------------"),console.log(""),console.log('Step 2 -Install: "Install App" -> "Install to Workspace" -> Authorize'),console.log(""),console.log("Step 3 -Copy your token:"),console.log(` OAuth & Permissions -> ${E}`),console.log("");let B=await Ou(D,"Paste your token: ");if(!B)console.error("No token provided."),process.exit(1);if(!B.startsWith(C))console.error(`Expected a ${C} token, got: ${B.slice(0,10)}...`),process.exit(1);await Yu(D,B)}async function e8(D={}){if(process.platform!=="darwin")console.error("Chrome cookie extraction is only supported on macOS."),process.exit(1);let u=XF();if(u.length===0)console.error("No workspaces configured. Run: slack auth login"),process.exit(1);let F;if(D.workspace){if(!u.find((z)=>z.name===D.workspace))console.error(`Workspace "${D.workspace}" not found. Available: ${u.map((z)=>z.name).join(", ")}`),process.exit(1);F=D.workspace}else if(u.length===1)F=u[0].name;else{let $=u.find((z)=>z.current);if($)F=$.name,console.log(`Using active workspace: ${F}`);else{console.log("Multiple workspaces found. Choose one:"),u.forEach((Q,J)=>console.log(` ${J+1}) ${Q.name} (${Q.profile.team})`));let z=Qu({input:process.stdin,output:process.stdout}),Z=(await z.question("Choice: ")).trim();z.close();let G=parseInt(Z,10)-1;if(isNaN(G)||G<0||G>=u.length)console.error("Invalid choice."),process.exit(1);F=u[G].name}}console.log("Scanning Chrome profiles for Slack session..."),console.log("macOS may show a dialog asking for your login password — click Allow.");let E,C;try{({candidates:E,totalProfiles:C}=s8())}catch($){console.error(`Failed: ${$ instanceof Error?$.message:String($)}`),process.exit(1)}if(E.length===0)console.error(`No Slack session found in Chrome (scanned ${C} profile${C!==1?"s":""}). Possible reasons:`),console.error(" - You denied the keychain dialog (try running again and click Allow)"),console.error(" - Chrome is not installed or has no Slack session"),console.error(" - You're not logged in to Slack in Chrome"),process.exit(1);let B;if(E.length===1&&C<=1)B=E[0].cookie,console.log(`Found session in Chrome profile: ${E[0].profileName}`);else{let $=E.length===1?`Found 1 Slack session across ${C} Chrome profiles:`:`Found ${E.length} Slack sessions across ${C} Chrome profiles:`;console.log($),E.forEach((J,O)=>console.log(` ${O+1}) ${J.profileName} [${J.profileDir}]`)),console.log("");let z=Qu({input:process.stdin,output:process.stdout}),Z=E.length===1?" [Enter=1]":"",G=(await z.question(`Choice [1-${E.length}]${Z}: `)).trim();z.close();let Q=G===""&&E.length===1?0:parseInt(G,10)-1;if(isNaN(Q)||Q<0||Q>=E.length)console.error("Invalid choice."),process.exit(1);B=E[Q].cookie}K0(F,B),console.log(`Saved xoxd cookie to workspace "${F}".`),console.log("RTM WebSocket mode is now available: slack tail @you")}async function D1(D={}){let u=XF();if(u.length===0)console.error("No workspaces configured. Run: slack auth token"),process.exit(1);let F;if(D.workspace){if(!u.find(($)=>$.name===D.workspace))console.error(`Workspace "${D.workspace}" not found. Available: ${u.map(($)=>$.name).join(", ")}`),process.exit(1);F=D.workspace}else if(u.length===1)F=u[0].name;else{let B=u.find(($)=>$.current);if(B)F=B.name,console.log(`Using active workspace: ${F}`);else{console.log("Multiple workspaces found. Choose one:"),u.forEach((G,Q)=>console.log(` ${Q+1}) ${G.name} (${G.profile.team})`));let $=Qu({input:process.stdin,output:process.stdout}),z=(await $.question("Choice: ")).trim();$.close();let Z=parseInt(z,10)-1;if(isNaN(Z)||Z<0||Z>=u.length)console.error("Invalid choice."),process.exit(1);F=u[Z].name}}console.log("Scanning Firefox profiles for Slack session...");let E=r8();if(E.length===0)console.error("No Slack session found in Firefox. Possible reasons:"),console.error(" - Firefox is not installed"),console.error(" - You are not logged in to Slack in Firefox"),process.exit(1);let C;if(E.length===1)C=E[0].cookie,console.log(`Found session in Firefox profile: ${E[0].profileName}`);else{console.log("Multiple Firefox profiles have a Slack session. Choose one:"),E.forEach((Z,G)=>console.log(` ${G+1}) ${Z.profileName} [${Z.profileDir}]`));let B=Qu({input:process.stdin,output:process.stdout}),$=(await B.question("Choice: ")).trim();B.close();let z=parseInt($,10)-1;if(isNaN(z)||z<0||z>=E.length)console.error("Invalid choice."),process.exit(1);C=E[z].cookie}K0(F,C),console.log(`Saved xoxd cookie to workspace "${F}".`),console.log("RTM WebSocket mode is now available: slack tail @you")}async function u1(D={}){if(D.token){await Yu(null,D.token,D.name);return}if(!process.stdin.isTTY){let F=[];for await(let C of process.stdin)F.push(C);let E=Buffer.concat(F).toString("utf8").trim();if(!E)console.error("No token provided on stdin."),process.exit(1);await Yu(null,E,D.name);return}let u=Qu({input:process.stdin,output:process.stdout});try{await a8(u)}finally{u.close()}}async function F1(D={}){let u=Qu({input:process.stdin,output:process.stdout});try{if(D.bot!==void 0){await HF(u,D.bot?"bot":"user");return}console.log("Which token type?"),console.log(" 1) User token (xoxp-) -full access including search [default]"),console.log(" 2) Bot token (xoxb-) -search and news unavailable"),console.log("");let F=await Ou(u,"Choice [1/2, Enter=1]: ");await HF(u,F==="2"?"bot":"user")}finally{u.close()}}async function VF(D={}){let u=XF();if(u.length>0){console.log("Currently logged in:");for(let{name:E,profile:C,current:B}of u)console.log(` ${B?"*":" "} ${E} ${C.team} (${C.user||"unknown"})`);console.log(""),console.log("Adding another workspace:"),console.log("")}if(D.token){await Yu(null,D.token,D.name);return}if(!process.stdin.isTTY){let E=[];for await(let B of process.stdin)E.push(B);let C=Buffer.concat(E).toString("utf8").trim();if(!C)console.error("No token provided on stdin."),process.exit(1);await Yu(null,C,D.name);return}console.log("How would you like to authenticate with Slack?"),console.log(""),console.log(" 1) Slack desktop app - import session token"),console.log(" Reads the xoxc- token directly from the installed app."),console.log(" Token: all platforms | xoxd cookie: macOS only"),console.log(""),console.log(" 2) Connect existing Slack app [recommended if you have one]"),console.log(" Paste a token from an app you already created."),console.log(""),console.log(" 3) Create new Slack app - user token (xoxp-)"),console.log(" Guided setup with manifest. Full access including search."),console.log(""),console.log(" 4) Create new Slack app - bot token (xoxb-)"),console.log(" Bot is invited to channels. Search and news unavailable."),console.log("");let F=Qu({input:process.stdin,output:process.stdout});try{let E=await Ou(F,"Choice [1/2/3/4]: ");if(console.log(""),E==="1")await f6(F);else if(E==="2")await a8(F);else if(E==="3")await HF(F,"user");else if(E==="4")await HF(F,"bot");else console.error(`Invalid choice: "${E}". Enter 1, 2, 3, or 4.`),process.exit(1)}finally{F.close()}}async function MF(D,u,F){let E=u,C=[],B=E,$=0;while(!0){let z=B.indexOf("<@U",$);if(z===-1)break;let Z=B.slice(z+2),G=Z.search(/[>|]/),Q=G===-1?Z:Z.slice(0,G);if(Q.length>=9)C.push(Q);$=z+1}for(let z of C){if(!F.has(z))F.set(z,await JF(D,z));let Z=F.get(z)??z;E=E.replaceAll(`<@${z}>`,`@${Z}`),E=E.replace(new RegExp(`<@${z}\\|[^>]*>`,"g"),`@${Z}`)}return E}function UF(D){return D.replace(/<!date\^(\d+)\^[^|>]*(?:\|([^>]*))?>/g,(u,F,E)=>{let C=Number(F);if(!Number.isFinite(C))return E??"date";let B=new Date(C*1000);if(Number.isNaN(B.getTime()))return E??"date";let $=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],z=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Z=$[B.getUTCDay()]??"",G=z[B.getUTCMonth()]??"";return`${Z}, ${G} ${String(B.getUTCDate()).padStart(2,"0")}, ${B.getUTCFullYear()}`})}function C1(D){let u=typeof D.ts==="string"?D.ts:"",F=typeof D.thread_ts==="string"?D.thread_ts:"";return F!==""&&F!==u}function h6(D){let[u,F="000000"]=D.split("."),E=new Date(Number(u)*1000),C=E.getUTCFullYear(),B=String(E.getUTCMonth()+1).padStart(2,"0"),$=String(E.getUTCDate()).padStart(2,"0"),z=String(E.getUTCHours()).padStart(2,"0"),Z=String(E.getUTCMinutes()).padStart(2,"0"),G=String(E.getUTCSeconds()).padStart(2,"0"),Q=F.padEnd(6,"0").slice(0,6);return`${C}-${B}-${$}T${z}:${Z}:${G}.${Q}`}async function v6(D,u,F){let E=typeof u.ts==="string"?u.ts:"0.000000",C=h6(E),B="?";if(typeof u.user==="string"){let J=u.user,O="@"+J;if(!F.has(O)){let[,W]=await ZF(D,J);F.set(O,W)}B=F.get(O)??J}else if(typeof u.username==="string")B=u.username;let $=typeof u.text==="string"?u.text:"",Z=UF(await MF(D,$,F)).split(`
|
|
106
|
-
`),
|
|
104
|
+
Is Slack installed and opened at least once?`);let u=OF(D).filter((G)=>G.endsWith(".ldb")||G.endsWith(".log"));if(u.length===0)throw Error(`No LevelDB data files found in ${D}`);let F=new Map;for(let G of u){let Z;try{Z=WF(XD(D,G),"latin1")}catch{continue}if(G.endsWith(".log"))for(let z of Z.matchAll(/"token":"(xoxc-[^"]+)"/g)){let Q=z[1],J=Q.split("-")[1]??"";if(!J||Q.length<40)continue;let Y=Math.max(0,z.index-2000),W=Math.min(Z.length,z.index+2000),V=Z.slice(Y,W),O=V.match(/"url":"(https:\/\/[a-z0-9-]+\.slack\.com\/)"/),U=V.match(/"(?:team_name|name)":"([^"]{2,60})"/),_=F.get(J);if(!_||Q.length>_.token.length){let N={token:Q,teamId:J},k=O?.[1]??_?.url,w=U?.[1]??_?.teamName;if(k)N.url=k;if(w)N.teamName=w;F.set(J,N)}}else for(let z of Z.matchAll(/xoxc-(\d+)-(\d+)-(\d+)/g)){let Q=z[1];if(F.has(Q))continue;let J=z.index+z[0].length,Y=Math.min(J+10,Z.length);while(J<Y&&(Z.charCodeAt(J)<48||Z.charCodeAt(J)>57))J++;let W="";while(J<Z.length&&Z.charCodeAt(J)>=48&&Z.charCodeAt(J)<=57)W+=Z[J++];if(Z[J]!=="-")continue;J++;let V="";while(J<Z.length){let U=Z.charCodeAt(J);if(U>=48&&U<=57||U>=97&&U<=102)V+=Z[J++];else break}if(V.length<20)continue;let O=`${z[0]}${W}-${V}`;F.set(Q,{token:O,teamId:Q})}}let C=OF(D).filter((G)=>G.endsWith(".ldb")||G.endsWith(".log")).map((G)=>{try{return WF(XD(D,G),"latin1").replace(/[^\x20-\x7e]/g," ")}catch{return""}}).join(" ");for(let G of F.values()){if(G.teamName)continue;let Z=C.indexOf(G.teamId);if(Z!==-1){let z=Math.max(0,Z-500),Q=Math.min(C.length,Z+500),Y=C.slice(z,Q).match(/"(?:team_name|name)":"([^"]{2,60})"/);if(Y?.[1]){G.teamName=Y[1];continue}}if(!G.teamName&&G.url){let z=G.url.match(/https:\/\/([a-z0-9-]+)\.slack\.com\//)?.[1];if(z){let Q=C.indexOf(z);if(Q!==-1){let J=Math.max(0,Q-500),Y=Math.min(C.length,Q+500),V=C.slice(J,Y).match(/"(?:team_name|name)":"([^"]{2,60})"/);if(V?.[1]){G.teamName=V[1];continue}}G.teamName=z.split("-").map((J)=>J.charAt(0).toUpperCase()+J.slice(1)).join(" ")}}}let B=P6(),$=[...F.values()];if(B)for(let G of $)G.cookie=B;return $}function w6(D,u){let F=(E,C)=>{try{let B=o8("aes-128-cbc",u,E);B.setAutoPadding(!0);let $=Buffer.concat([B.update(C),B.final()]).toString("utf8");return $.startsWith("xoxd-")?$:void 0}catch{return}};return F(Buffer.alloc(16,32),D.slice(3))??(D.length>=35?F(D.slice(19,35),D.slice(35)):void 0)}function x6(D,u){try{let E=JSON.parse(WF(XD(D,u,"Preferences"),"utf8")).profile,C=E?.name??"",B=E?.user_name??"";return B?`${C} (${B})`:C||u}catch{return u}}function a8(){if(process.platform!=="darwin")return{candidates:[],totalProfiles:0};let D=XD(VF(),"Library","Application Support","Google","Chrome");if(!Qu(D))return{candidates:[],totalProfiles:0};let u;try{u=s8('security find-generic-password -a Chrome -s "Chrome Safe Storage" -w',{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trimEnd()}catch{return{candidates:[],totalProfiles:0}}if(!u)return{candidates:[],totalProfiles:0};let F=t8(u,"saltysalt",1003,16,"sha1"),E=["Default",...OF(D).filter((B)=>B.startsWith("Profile "))],C=[];for(let B of E){let $=XD(D,B,"Cookies");if(!Qu($))continue;let G=XD(l8(),`slack-chrome-cookies-${Date.now()}-${B}.db`);try{i8($,G);let{default:Z}=PD("bun:sqlite"),z=new Z(G,{readonly:!0}),Q=z.prepare("SELECT encrypted_value FROM cookies WHERE name='d' AND host_key LIKE '%slack%'").get();if(z.close(),!Q)continue;let J=Buffer.from(Q.encrypted_value),Y=J.slice(0,3).toString();if(Y==="v10"){let W=w6(J,F);if(!W)continue;C.push({profileDir:B,profileName:x6(D,B),cookie:W})}else if(Y==="v20")throw Error(`Chrome cookie uses v20 (app-bound AES-256-GCM) which is not supported yet. Prefix found: ${J.slice(0,4).toString("hex")}`);else throw Error(`Unknown cookie encryption prefix: ${J.slice(0,4).toString("hex")}`)}catch(Z){if(Z instanceof Error&&(Z.message.includes("app-bound")||Z.message.includes("Unknown cookie")))throw Z}finally{try{n8(G)}catch{}}}return{candidates:C,totalProfiles:E.length}}function I6(){let D=VF();if(process.platform==="darwin")return XD(D,"Library","Application Support","Firefox","Profiles");if(process.platform==="linux")return XD(D,".mozilla","firefox");if(process.platform==="win32")return XD(process.env.APPDATA??XD(D,"AppData","Roaming"),"Mozilla","Firefox","Profiles");return""}function b6(D){let u=XD(N6(D),"profiles.ini"),F={};if(!Qu(u))return F;try{let E=WF(u,"utf8"),C="",B="";for(let $ of E.split(`
|
|
105
|
+
`)){let G=$.trim();if(G.startsWith("[")){C="",B="";continue}let Z=G.indexOf("=");if(Z===-1)continue;let z=G.slice(0,Z).trim().toLowerCase(),Q=G.slice(Z+1).trim();if(z==="name")C=Q;if(z==="path")B=Q.split(/[\\/]/).pop()??Q;if(C&&B)F[B]=C,C="",B=""}}catch{}return F}function e8(){let D=I6();if(!D||!Qu(D))return[];let u=b6(D),F=[],E;try{E=OF(D)}catch{return[]}for(let C of E){let B=XD(D,C,"cookies.sqlite");if(!Qu(B))continue;let $=XD(l8(),`slack-firefox-cookies-${Date.now()}-${C}.db`);try{i8(B,$);let{default:G}=PD("bun:sqlite"),Z=new G($,{readonly:!0}),z=Z.prepare("SELECT value FROM moz_cookies WHERE name='d' AND host LIKE '%slack%' LIMIT 1").get();if(Z.close(),!z?.value||!z.value.startsWith("xoxd-"))continue;let Q=u[C]??C;F.push({profileDir:C,profileName:Q,cookie:z.value})}catch{}finally{try{n8($)}catch{}}}return F}var h6=["search:read","channels:history","groups:history","im:history","mpim:history","channels:read","groups:read","im:read","mpim:read","users:read","chat:write","files:write"],v6=["channels:history","groups:history","im:history","mpim:history","channels:read","groups:read","im:read","mpim:read","users:read","chat:write","files:write"];function HF(D){return D.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}function p6(){return JSON.stringify({display_information:{name:"slack-term"},oauth_config:{scopes:{user:h6}},settings:{org_deploy_enabled:!1,socket_mode_enabled:!1,token_rotation_enabled:!1}},null,2)}function m6(){return JSON.stringify({display_information:{name:"slack-term"},features:{bot_user:{display_name:"slack-term",always_online:!1}},oauth_config:{scopes:{bot:v6}},settings:{org_deploy_enabled:!1,socket_mode_enabled:!1,token_rotation_enabled:!1}},null,2)}async function Ou(D,u){return(await D.question(u)).trim()}async function Wu(D,u,F,E){console.error("Verifying token...");let C=await ZF(u),B=HF(C.team),$;if(F)$=F;else if(D)$=await Ou(D,`Workspace name [${B}]: `)||B;else $=B;let G=null;if(D){console.log(""),console.log("Where to save the token?"),console.log(" 1) ./.env.local (current directory) [default]"),console.log(" 2) ./.slack-term/.env.local (current directory, slack-specific)"),console.log(" 3) ~/.slack-term/.env.local (global, available everywhere)"),console.log(" 4) profiles.json (multi-workspace: slack auth use)"),console.log("");let Z=await Ou(D,"Choice [1/2/3/4, Enter=1]: ");if(Z==="2")G=A0(process.cwd(),".slack-term",".env.local");else if(Z==="3")G=A0(f6(),".slack-term",".env.local");else if(Z==="4")G=null;else G=A0(process.cwd(),".env.local")}if(G===null)if(_0($,{token:u,...C,...E?{cookie:E}:{}}),console.log(`Saved workspace "${$}" to profiles.json: ${C.team} (${C.user})`),process.env.SLACK_MCP_XOXP_TOKEN)console.log(""),console.log("Warning: SLACK_MCP_XOXP_TOKEN is set — it conflicts with profiles."),console.log(" Unset it: unset SLACK_MCP_XOXP_TOKEN (and remove from ~/.zshrc / ~/.bashrc)");else console.log(` Run: slack auth use -g ${$}`);else{let Z={SLACK_TOKEN:u};if(E)Z.SLACK_COOKIE=E;d8(G,Z),console.log(`Saved token to ${G}`),console.log(" SLACK_TOKEN will be picked up automatically in this directory tree.")}return $}async function y6(D){console.error("Scanning Slack desktop app...");let u=await r8();if(u.length===0)console.error("No sessions found. Make sure Slack is installed and you have signed in at least once."),process.exit(1);if(u.length===1&&D){let F=u[0],E=F.teamName??F.teamId;console.log(`Found workspace: ${E}${F.cookie?" (+ xoxd cookie)":""}`),await Wu(D,F.token,HF(E),F.cookie),console.log(""),console.log("Note: desktop app tokens (xoxc-) are internal Slack tokens."),console.log("If API calls fail, replace with an xoxp- token: slack auth login");return}for(let F of u){let E=F.teamName??F.teamId,C=HF(E);_0(C,{token:F.token,team:E,teamId:F.teamId,url:F.url??"",user:"",...F.cookie?{cookie:F.cookie}:{}}),console.log(`Added workspace "${C}": ${E}${F.cookie?" + xoxd cookie":""}`)}if(console.log(""),u.length===1){let F=HF(u[0].teamName??u[0].teamId);console.log(`Run: slack auth use -g ${F}`)}else console.log("Run: slack auth ls then: slack auth use -g <name>");console.log(""),console.log("Note: desktop app tokens (xoxc-) are internal Slack tokens."),console.log("If API calls fail, replace with an xoxp- user token by re-running: slack auth login")}async function D1(D){console.log("Which token type does your app use?"),console.log(""),console.log(" 1) User token (xoxp-) -full access including search [recommended]"),console.log(" 2) Bot token (xoxb-) -search and news unavailable"),console.log("");let F=await Ou(D,"Choice [1/2]: ")==="2"?"bot":"user",E=F==="user"?"xoxp-":"xoxb-",C=F==="user"?"User OAuth Token":"Bot User OAuth Token";console.log(""),console.log("Find your token here:"),console.log(" https://api.slack.com/apps"),console.log(" -> Select your app -> OAuth & Permissions"),console.log(` -> Copy the "${C}" (starts with ${E})`),console.log("");let B=await Ou(D,"Paste your token: ");if(!B)console.error("No token provided."),process.exit(1);if(!B.startsWith(E))console.error(`Expected a ${E} token, got: ${B.slice(0,10)}...`),process.exit(1);await Wu(D,B)}async function MF(D,u){let F=u==="user"?p6():m6(),E=u==="user"?"User OAuth Token (xoxp-...)":"Bot User OAuth Token (xoxb-...)",C=u==="user"?"xoxp-":"xoxb-";if(u==="bot")console.log("Note: bot tokens cannot use search:read (user-only scope)."),console.log(" The news and search commands will not work with a bot token."),console.log("");console.log("Step 1 -Create your Slack app:"),console.log(" Open: https://api.slack.com/apps"),console.log(' Click "Create New App" -> "From a manifest" -> select your workspace'),console.log(" Paste this manifest (JSON tab):"),console.log(""),console.log("-------------------------------------------------------------"),console.log(F),console.log("-------------------------------------------------------------"),console.log(""),console.log('Step 2 -Install: "Install App" -> "Install to Workspace" -> Authorize'),console.log(""),console.log("Step 3 -Copy your token:"),console.log(` OAuth & Permissions -> ${E}`),console.log("");let B=await Ou(D,"Paste your token: ");if(!B)console.error("No token provided."),process.exit(1);if(!B.startsWith(C))console.error(`Expected a ${C} token, got: ${B.slice(0,10)}...`),process.exit(1);await Wu(D,B)}async function u1(D={}){if(process.platform!=="darwin")console.error("Chrome cookie extraction is only supported on macOS."),process.exit(1);let u=YF();if(u.length===0)console.error("No workspaces configured. Run: slack auth login"),process.exit(1);let F;if(D.workspace){if(!u.find((G)=>G.name===D.workspace))console.error(`Workspace "${D.workspace}" not found. Available: ${u.map((G)=>G.name).join(", ")}`),process.exit(1);F=D.workspace}else if(u.length===1)F=u[0].name;else{let $=u.find((G)=>G.current);if($)F=$.name,console.log(`Using active workspace: ${F}`);else{console.log("Multiple workspaces found. Choose one:"),u.forEach((Q,J)=>console.log(` ${J+1}) ${Q.name} (${Q.profile.team})`));let G=Yu({input:process.stdin,output:process.stdout}),Z=(await G.question("Choice: ")).trim();G.close();let z=parseInt(Z,10)-1;if(isNaN(z)||z<0||z>=u.length)console.error("Invalid choice."),process.exit(1);F=u[z].name}}console.log("Scanning Chrome profiles for Slack session..."),console.log("macOS may show a dialog asking for your login password — click Allow.");let E,C;try{({candidates:E,totalProfiles:C}=a8())}catch($){console.error(`Failed: ${$ instanceof Error?$.message:String($)}`),process.exit(1)}if(E.length===0)console.error(`No Slack session found in Chrome (scanned ${C} profile${C!==1?"s":""}). Possible reasons:`),console.error(" - You denied the keychain dialog (try running again and click Allow)"),console.error(" - Chrome is not installed or has no Slack session"),console.error(" - You're not logged in to Slack in Chrome"),process.exit(1);let B;if(E.length===1&&C<=1)B=E[0].cookie,console.log(`Found session in Chrome profile: ${E[0].profileName}`);else{let $=E.length===1?`Found 1 Slack session across ${C} Chrome profiles:`:`Found ${E.length} Slack sessions across ${C} Chrome profiles:`;console.log($),E.forEach((J,Y)=>console.log(` ${Y+1}) ${J.profileName} [${J.profileDir}]`)),console.log("");let G=Yu({input:process.stdin,output:process.stdout}),Z=E.length===1?" [Enter=1]":"",z=(await G.question(`Choice [1-${E.length}]${Z}: `)).trim();G.close();let Q=z===""&&E.length===1?0:parseInt(z,10)-1;if(isNaN(Q)||Q<0||Q>=E.length)console.error("Invalid choice."),process.exit(1);B=E[Q].cookie}j0(F,B),console.log(`Saved xoxd cookie to workspace "${F}".`),console.log("RTM WebSocket mode is now available: slack tail @you")}async function F1(D={}){let u=YF();if(u.length===0)console.error("No workspaces configured. Run: slack auth token"),process.exit(1);let F;if(D.workspace){if(!u.find(($)=>$.name===D.workspace))console.error(`Workspace "${D.workspace}" not found. Available: ${u.map(($)=>$.name).join(", ")}`),process.exit(1);F=D.workspace}else if(u.length===1)F=u[0].name;else{let B=u.find(($)=>$.current);if(B)F=B.name,console.log(`Using active workspace: ${F}`);else{console.log("Multiple workspaces found. Choose one:"),u.forEach((z,Q)=>console.log(` ${Q+1}) ${z.name} (${z.profile.team})`));let $=Yu({input:process.stdin,output:process.stdout}),G=(await $.question("Choice: ")).trim();$.close();let Z=parseInt(G,10)-1;if(isNaN(Z)||Z<0||Z>=u.length)console.error("Invalid choice."),process.exit(1);F=u[Z].name}}console.log("Scanning Firefox profiles for Slack session...");let E=e8();if(E.length===0)console.error("No Slack session found in Firefox. Possible reasons:"),console.error(" - Firefox is not installed"),console.error(" - You are not logged in to Slack in Firefox"),process.exit(1);let C;if(E.length===1)C=E[0].cookie,console.log(`Found session in Firefox profile: ${E[0].profileName}`);else{console.log("Multiple Firefox profiles have a Slack session. Choose one:"),E.forEach((Z,z)=>console.log(` ${z+1}) ${Z.profileName} [${Z.profileDir}]`));let B=Yu({input:process.stdin,output:process.stdout}),$=(await B.question("Choice: ")).trim();B.close();let G=parseInt($,10)-1;if(isNaN(G)||G<0||G>=E.length)console.error("Invalid choice."),process.exit(1);C=E[G].cookie}j0(F,C),console.log(`Saved xoxd cookie to workspace "${F}".`),console.log("RTM WebSocket mode is now available: slack tail @you")}async function E1(D={}){if(D.token){await Wu(null,D.token,D.name);return}if(!process.stdin.isTTY){let F=[];for await(let C of process.stdin)F.push(C);let E=Buffer.concat(F).toString("utf8").trim();if(!E)console.error("No token provided on stdin."),process.exit(1);await Wu(null,E,D.name);return}let u=Yu({input:process.stdin,output:process.stdout});try{await D1(u)}finally{u.close()}}async function C1(D={}){let u=Yu({input:process.stdin,output:process.stdout});try{if(D.bot!==void 0){await MF(u,D.bot?"bot":"user");return}console.log("Which token type?"),console.log(" 1) User token (xoxp-) -full access including search [default]"),console.log(" 2) Bot token (xoxb-) -search and news unavailable"),console.log("");let F=await Ou(u,"Choice [1/2, Enter=1]: ");await MF(u,F==="2"?"bot":"user")}finally{u.close()}}async function qF(D={}){let u=YF();if(u.length>0){console.log("Currently logged in:");for(let{name:E,profile:C,current:B}of u)console.log(` ${B?"*":" "} ${E} ${C.team} (${C.user||"unknown"})`);console.log(""),console.log("Adding another workspace:"),console.log("")}if(D.token){await Wu(null,D.token,D.name);return}if(!process.stdin.isTTY){let E=[];for await(let B of process.stdin)E.push(B);let C=Buffer.concat(E).toString("utf8").trim();if(!C)console.error("No token provided on stdin."),process.exit(1);await Wu(null,C,D.name);return}console.log("How would you like to authenticate with Slack?"),console.log(""),console.log(" 1) Slack desktop app - import session token"),console.log(" Reads the xoxc- token directly from the installed app."),console.log(" Token: all platforms | xoxd cookie: macOS only"),console.log(""),console.log(" 2) Connect existing Slack app [recommended if you have one]"),console.log(" Paste a token from an app you already created."),console.log(""),console.log(" 3) Create new Slack app - user token (xoxp-)"),console.log(" Guided setup with manifest. Full access including search."),console.log(""),console.log(" 4) Create new Slack app - bot token (xoxb-)"),console.log(" Bot is invited to channels. Search and news unavailable."),console.log("");let F=Yu({input:process.stdin,output:process.stdout});try{let E=await Ou(F,"Choice [1/2/3/4]: ");if(console.log(""),E==="1")await y6(F);else if(E==="2")await D1(F);else if(E==="3")await MF(F,"user");else if(E==="4")await MF(F,"bot");else console.error(`Invalid choice: "${E}". Enter 1, 2, 3, or 4.`),process.exit(1)}finally{F.close()}}async function UF(D,u,F){let E=u,C=[],B=E,$=0;while(!0){let G=B.indexOf("<@U",$);if(G===-1)break;let Z=B.slice(G+2),z=Z.search(/[>|]/),Q=z===-1?Z:Z.slice(0,z);if(Q.length>=9)C.push(Q);$=G+1}for(let G of C){if(!F.has(G))F.set(G,await XF(D,G));let Z=F.get(G)??G;E=E.replaceAll(`<@${G}>`,`@${Z}`),E=E.replace(new RegExp(`<@${G}\\|[^>]*>`,"g"),`@${Z}`)}return E}function KF(D){return D.replace(/<!date\^(\d+)\^[^|>]*(?:\|([^>]*))?>/g,(u,F,E)=>{let C=Number(F);if(!Number.isFinite(C))return E??"date";let B=new Date(C*1000);if(Number.isNaN(B.getTime()))return E??"date";let $=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],G=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Z=$[B.getUTCDay()]??"",z=G[B.getUTCMonth()]??"";return`${Z}, ${z} ${String(B.getUTCDate()).padStart(2,"0")}, ${B.getUTCFullYear()}`})}function $1(D){let u=typeof D.ts==="string"?D.ts:"",F=typeof D.thread_ts==="string"?D.thread_ts:"";return F!==""&&F!==u}function c6(D){let[u,F="000000"]=D.split("."),E=new Date(Number(u)*1000),C=E.getUTCFullYear(),B=String(E.getUTCMonth()+1).padStart(2,"0"),$=String(E.getUTCDate()).padStart(2,"0"),G=String(E.getUTCHours()).padStart(2,"0"),Z=String(E.getUTCMinutes()).padStart(2,"0"),z=String(E.getUTCSeconds()).padStart(2,"0"),Q=F.padEnd(6,"0").slice(0,6);return`${C}-${B}-${$}T${G}:${Z}:${z}.${Q}`}async function g6(D,u,F){let E=typeof u.ts==="string"?u.ts:"0.000000",C=c6(E),B="?";if(typeof u.user==="string"){let J=u.user,Y="@"+J;if(!F.has(Y)){let[,W]=await JF(D,J);F.set(Y,W)}B=F.get(Y)??J}else if(typeof u.username==="string")B=u.username;let $=typeof u.text==="string"?u.text:"",Z=KF(await UF(D,$,F)).split(`
|
|
106
|
+
`),z=Z[0]+(Z.length>1?`
|
|
107
107
|
`+Z.slice(1).map((J)=>` ${J}`).join(`
|
|
108
|
-
`):""),Q
|
|
109
|
-
`)}),
|
|
108
|
+
`):""),Q=$1(u)?"↳ ":"";return`${C} ${Q}@${B}: ${z}`}async function k6(D,u,F,E,C,B,$,G){if(G?.aborted)return;return new Promise((Z)=>{let z=new D(F);G?.addEventListener("abort",()=>{z.close(),Z()},{once:!0}),z.addEventListener("open",()=>{process.stderr.write(`Connected via RTM (experimental).
|
|
109
|
+
`)}),z.addEventListener("close",()=>Z()),z.addEventListener("error",()=>Z()),z.addEventListener("message",(Q)=>{(async()=>{try{let J;try{J=JSON.parse(String(Q.data))}catch{return}let Y=typeof J.type==="string"?J.type:"";if(Y==="ping"){z.send(JSON.stringify({type:"pong",reply_to:J.id??0}));return}if(Y!=="message")return;if((typeof J.channel==="string"?J.channel:"")!==E)return;let V=typeof J.ts==="string"?J.ts:"";if(!V||B.has(V))return;let O=typeof J.subtype==="string"?J.subtype:"";if(O==="message_changed"||O==="message_deleted")return;if(C.thread){if((typeof J.thread_ts==="string"?J.thread_ts:V)!==C.thread&&V!==C.thread)return}if(C.watchThread&&$1(J)){if((typeof J.thread_ts==="string"?J.thread_ts:"")!==C.watchThread)return}if(C.me&&C.myUserId){if(!(typeof J.text==="string"?J.text:"").includes(`<@${C.myUserId}>`))return}if(B.add(V),B.size>1000){let _=B.values().next().value;if(_!==void 0)B.delete(_)}let U=await g6(u,J,$);process.stdout.write(U+`
|
|
110
110
|
`)}catch(J){process.stderr.write(`RTM message error: ${J instanceof Error?J.message:String(J)}
|
|
111
|
-
`)}})()})})}var
|
|
112
|
-
`),Q=
|
|
113
|
-
`+
|
|
114
|
-
`):""),J=
|
|
111
|
+
`)}})()})})}var B1=3,d6=2000,L0={sleep:(D)=>new Promise((u)=>setTimeout(u,D)),clientBoot:f8,getWebSocket:()=>{let D=globalThis.WebSocket;return typeof D==="function"?D:void 0}};async function G1(D,u,F,E,C,B,$){let G=L0.getWebSocket();if(!G)return;for(let Z=0;Z<B1;Z++){if($?.aborted)return;try{let{wsUrl:z}=await L0.clientBoot(D,u);await k6(G,D,z,F,E,C,B,$)}catch{}if($?.aborted)return;if(Z<B1-1)await L0.sleep(d6)}}function z1(D){let u=D.match(/^(\d+(?:\.\d+)?)(s|m|h|d)$/);if(!u)throw Error(`Invalid --since format: "${D}" (expected e.g. 10m, 2h, 1d)`);let F=parseFloat(u[1]);switch(u[2]){case"s":return F;case"m":return F*60;case"h":return F*3600;case"d":return F*86400}}var SD={sleep:(D)=>new Promise((u)=>setTimeout(u,D)),now:()=>Date.now(),tailRTM:G1};function hD(D){return D&&typeof D==="object"&&!Array.isArray(D)?D:{}}function N0(D){return Array.isArray(D)?D:[]}function Z1(D){return Number(D)||0}function J1(D){let u=typeof D.ts==="string"?D.ts:"",F=typeof D.thread_ts==="string"?D.thread_ts:"";return F!==""&&F!==u}function i6(D){let[u,F="000000"]=D.split("."),E=new Date(Number(u)*1000),C=E.getUTCFullYear(),B=String(E.getUTCMonth()+1).padStart(2,"0"),$=String(E.getUTCDate()).padStart(2,"0"),G=String(E.getUTCHours()).padStart(2,"0"),Z=String(E.getUTCMinutes()).padStart(2,"0"),z=String(E.getUTCSeconds()).padStart(2,"0"),Q=F.padEnd(6,"0").slice(0,6);return`${C}-${B}-${$}T${G}:${Z}:${z}.${Q}`}async function n6(D,u,F,E){let C=typeof u.ts==="string"?u.ts:"0.000000",B=i6(C),$="?";if(typeof u.user==="string"){let W=u.user,V="@"+W;if(!F.has(V)){let[,O]=await JF(D,W);F.set(V,O)}$=F.get(V)??W}else if(typeof u.username==="string")$=u.username;let G=typeof u.text==="string"?u.text:"",z=KF(await UF(D,G,F)).split(`
|
|
112
|
+
`),Q=z[0]+(z.length>1?`
|
|
113
|
+
`+z.slice(1).map((W)=>` ${W}`).join(`
|
|
114
|
+
`):""),J=J1(u)?"↳ ":"",Y=E?`${E} @${$}`:`@${$}`;return`${B} ${J}${Y}: ${Q}`}async function l6(D,u,F,E,C,B,$){let G=hD(await Q0(D,u,20,$?void 0:F||void 0,$)),Z=N0(G.messages).map(hD).reverse(),z=hD(G.response_metadata),Q=G.has_more===!0&&typeof z.next_cursor==="string"?z.next_cursor:void 0,J=[];if(E.watchThread&&!$){let U=hD(await x8(D,u,E.watchThread,50));J=N0(U.messages).map(hD).filter((_)=>(typeof _.ts==="string"?_.ts:"")!==E.watchThread)}let Y=[...Z.map((U)=>({m:U,fromHistory:!0})),...J.map((U)=>({m:U,fromHistory:!1}))].sort((U,_)=>Z1(typeof U.m.ts==="string"?U.m.ts:"")-Z1(typeof _.m.ts==="string"?_.m.ts:"")),W=[],V=F,O=!1;for(let{m:U,fromHistory:_}of Y){let N=typeof U.ts==="string"?U.ts:"";if(!N||C.has(N))continue;let k=typeof U.subtype==="string"?U.subtype:"";if(k==="message_changed"||k==="message_deleted")continue;if(E.thread){if((typeof U.thread_ts==="string"?U.thread_ts:N)!==E.thread&&N!==E.thread)continue}if(E.watchThread&&J1(U)){if((typeof U.thread_ts==="string"?U.thread_ts:"")!==E.watchThread)continue}if(E.me&&E.myUserId){if(!(typeof U.text==="string"?U.text:"").includes(`<@${E.myUserId}>`))continue}if(C.add(N),C.size>1000){let c=C.values().next().value;if(c!==void 0)C.delete(c)}if(W.push(await n6(D,U,B)),_)V=N;let w=typeof U.user==="string"?U.user:"";if(!E.myUserId||w!==E.myUserId)O=!0}return{newCursor:V,lines:W,hasMore:G.has_more===!0,nextPageCursor:Q,emittedOther:O}}function t6(D){if(D.includes("slack.com")){let u=Y0(D),F=u?.threadTs??u?.ts;if(F)return F;throw Error(`--watch-thread: could not extract a timestamp from "${D}"`)}if(/^\d{10}\.\d{6}$/.test(D))return D;if(/^\d{16}$/.test(D))return`${D.slice(0,10)}.${D.slice(10)}`;throw Error(`--watch-thread: "${D}" is not a valid ts or permalink`)}async function X1(D,u,F={},E){if(F.me&&!u)console.error(`slack tail --me requires a <target> channel.
|
|
115
115
|
Cross-channel mention streaming is not yet supported.
|
|
116
|
-
Use: slack tail "#channel" --me`),process.exit(1);if(!u)console.error("Usage: slack tail <#channel|@user>\n Run `slack tail --help` for details."),process.exit(1);let C=await
|
|
117
|
-
`);c=!1;for(let
|
|
118
|
-
`);if(i)
|
|
116
|
+
Use: slack tail "#channel" --me`),process.exit(1);if(!u)console.error("Usage: slack tail <#channel|@user>\n Run `slack tail --help` for details."),process.exit(1);let C=await I8(D,u),B=F.interval??60000,$=F.timeout?SD.now()+z1(F.timeout)*1000:1/0,G=new Map,Z=new Set;try{let O=hD(await b8(D,C));if(hD(O.channel).is_archived===!0)console.error("Warning: this channel is archived — no new messages will arrive.")}catch(O){let U=O instanceof Error?O.message:String(O);if(U.includes("not_in_channel"))console.error("Error: you are not a member of that channel. Join it in Slack first, then retry."),process.exit(1);if(U.includes("missing_scope"))console.error("Error: token lacks the required history scope. Check your token's channels:history (or groups:history) permission."),process.exit(1);if(U.includes("channel_not_found"))console.error("Error: channel not found — it may be a private channel inaccessible with your token."),process.exit(1);console.error(`Warning: preflight check failed: ${U}`)}let z="";if(F.since){let O=z1(F.since);z=(SD.now()/1000-O).toFixed(6)}else{let O=hD(await Q0(D,C,1)),U=N0(O.messages).map(hD);if(U.length>0&&typeof U[0]?.ts==="string")z=U[0].ts,Z.add(z);else z=(SD.now()/1000).toFixed(6)}let Q;if(F.me||F.exitOnMessage)Q=(await ZF(D)).userId||void 0;let J;if(F.watchThread!==void 0)try{J=t6(F.watchThread)}catch(O){console.error(O instanceof Error?O.message:String(O)),process.exit(1)}let Y={...F.thread!==void 0?{thread:F.thread}:{},...J!==void 0?{watchThread:J}:{},...F.me!==void 0?{me:F.me}:{},...Q!==void 0?{myUserId:Q}:{}};if(D.startsWith("xoxc-")&&F.cookie!==void 0&&F.noRtm!==!0&&F.since===void 0&&F.timeout===void 0&&F.exitOnMessage!==!0){if(await SD.tailRTM(D,F.cookie,C,Y,Z,G,E),E?.aborted)return;console.error("RTM unavailable — switching to polling.")}let W=!0,V=SD.now();while(!E?.aborted){if(SD.now()>=$)return;let O=!1;try{let N=SD.now()-V,k=B>0&&N>B*5,w,c=!0;do{let{newCursor:e,lines:r,nextPageCursor:KD,emittedOther:i}=await l6(D,C,z,Y,Z,G,w);if(z=e,W&&c&&F.since&&r.length===0)process.stdout.write(`(no messages in the last ${F.since} — watching for new)
|
|
117
|
+
`);c=!1;for(let oD of r)process.stdout.write(oD+`
|
|
118
|
+
`);if(i)O=!0;w=k?KD:void 0}while(w);W=!1}catch(_){if(_ instanceof lD){console.error(`Warning: Slack rate limit hit — backing off for ${_.retryAfter}s`),await SD.sleep(_.retryAfter*1000);continue}throw _}if(F.exitOnMessage&&O)return;V=SD.now();let U=$-SD.now();if(U<=0)return;await SD.sleep(Math.min(B,U))}}class bu extends Error{retryAfter;constructor(D){super(`Slack rate limited — retry after ${D}s`);this.name="RateLimitError",this.retryAfter=D}}function Q1(){return(process.env.SLACK_API_BASE??"https://slack.com/api").replace(/\/$/,"")}async function Y1(D,u,F,E){let C={};if(E)C.Cookie=`d=${E}`;let B=await fetch(`${Q1()}/${u}`,{...F,headers:{...F.headers??{},Authorization:`Bearer ${D}`,...C}});if(B.status===429){let G=parseInt(B.headers.get("retry-after")??"60",10);throw new bu(isNaN(G)?60:G)}let $=await B.json();if($.ok!==!0){let G=$.error??"unknown";if(G==="ratelimited")throw new bu(60);if(G==="invalid_auth"&&D.startsWith("xoxc-")&&!E)throw Error(`Desktop app token (xoxc-) is not accepted by the public Slack API.
|
|
119
119
|
Replace it with an xoxp- user token:
|
|
120
|
-
slack workspace set-token <name> <xoxp-token>`);throw Error(`Slack error on ${u}: ${
|
|
121
|
-
Import from Slack desktop: slack workspace import`);if((
|
|
120
|
+
slack workspace set-token <name> <xoxp-token>`);throw Error(`Slack error on ${u}: ${G}`)}return $}async function o6(D,u,F,E){let C={};if(E)C.Cookie=`d=${E}`;let B=await fetch(`${Q1()}/${u}`,{...F,headers:{...F.headers??{},Authorization:`Bearer ${D}`,...C}});if(B.status===429){let G=parseInt(B.headers.get("retry-after")??"60",10);throw new bu(isNaN(G)?60:G)}let $=await B.json();if($.ok!==!0){let G=$.error??"unknown";if(G==="ratelimited")throw new bu(60);if((G==="invalid_auth"||G==="not_authed")&&!D.startsWith("xoxc-"))throw Error(`The draft API requires a desktop app session token (xoxc-).
|
|
121
|
+
Import from Slack desktop: slack workspace import`);if((G==="invalid_auth"||G==="not_authed")&&!E)throw Error(`drafts.list also requires the xoxd session cookie.
|
|
122
122
|
Set it with: slack workspace set-cookie <workspace-name> <xoxd-value>
|
|
123
|
-
`+"Get xoxd from browser: DevTools → Application → Cookies → slack.com → d");throw Error(`Slack error on ${u}: ${
|
|
124
|
-
`)),B=new Set;for(let Q of u.matchAll(
|
|
125
|
-
`)){let E=F.trim();if(!E||E.startsWith("#"))continue;let C=E.indexOf("=");if(C===-1)continue;let B=E.slice(0,C).trim(),$=E.slice(C+1).trim();if($.startsWith('"')&&$.endsWith('"')||$.startsWith("'")&&$.endsWith("'"))$=$.slice(1,-1);if(!(B in process.env))process.env[B]=$}}function
|
|
126
|
-
`)}function
|
|
127
|
-
`),Q=
|
|
128
|
-
`+
|
|
129
|
-
`):""),J=E?`${E} @${$}`:`@${$}`,
|
|
130
|
-
${
|
|
131
|
-
|
|
132
|
-
`)[0]
|
|
133
|
-
`);
|
|
134
|
-
`)
|
|
135
|
-
`))console.log(`
|
|
136
|
-
`)).
|
|
137
|
-
`)
|
|
138
|
-
`).map((
|
|
139
|
-
`).map((
|
|
140
|
-
`).map((
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
`)[0]?.slice(0,
|
|
144
|
-
`)
|
|
123
|
+
`+"Get xoxd from browser: DevTools → Application → Cookies → slack.com → d");throw Error(`Slack error on ${u}: ${G}`)}return $}function ju(D,u,F={},E){let C=new URLSearchParams({token:D,...F});return o6(D,u,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:C.toString()},E)}function CD(D,u,F,E){let C=new URLSearchParams(F).toString();return Y1(D,`${u}?${C}`,{method:"GET"},E)}function vD(D,u,F){return Y1(D,u,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(F)})}async function O1(D){let u=await CD(D,"auth.test",{});return{team:u.team??"",teamId:u.team_id??"",url:u.url??"",user:u.user??"",userId:u.user_id??""}}async function hu(D,u,F=20,E,C){let B={channel:u,limit:String(F)};if(E!==void 0)B.oldest=E;if(C!==void 0)B.cursor=C;return CD(D,"conversations.history",B)}async function Au(D,u,F,E=50){return CD(D,"conversations.replies",{channel:u,ts:F,limit:String(E)})}async function W1(D,u,F){return CD(D,"files.info",{file:u},F)}async function V1(D,u,F,E){return CD(D,"search.messages",{query:u,sort:"timestamp",sort_dir:"desc",count:String(Math.min(Math.max(F,1),100)),page:String(Math.max(E,1))})}async function H1(D,u){return V1(D,u,100,1)}async function M1(D,u,F){let C=1,B=[],$={ok:!0,messages:{}};while(!0){let Z=await V1(D,u,100,C),z=fu(Z,["messages","matches"]),Q=Array.isArray(z)?z:[];B.push(...Q);let J=Number(fu(Z,["messages","paging","pages"])??1);if($=Z,Q.length===0||C>=J||B.length>=F)break;C+=1}let G=$;if(!G.messages)G.messages={};return G.messages.matches=B.slice(0,F),G}async function q1(D,u,F,E,C){let B={channel:u,text:F,blocks:[{type:"markdown",text:F}]};if(E!==void 0)B.thread_ts=E;if(C&&E!==void 0)B.reply_broadcast=!0;return(await vD(D,"chat.postMessage",B)).ts??""}async function U1(D,u,F,E,C){let B={channel:u,text:F,post_at:E,blocks:[{type:"markdown",text:F}]};if(C!==void 0)B.thread_ts=C;return(await vD(D,"chat.scheduleMessage",B)).scheduled_message_id??""}async function K1(D,u){let F={};if(u)F.channel=u;return CD(D,"chat.scheduledMessages.list",F)}async function _1(D,u,F){await vD(D,"chat.deleteScheduledMessage",{channel:u,scheduled_message_id:F})}async function j1(D,u,F){return(await CD(D,"chat.getPermalink",{channel:u,message_ts:F})).permalink??""}async function A1(D,u,F,E){return(await vD(D,"chat.update",{channel:u,ts:F,text:E,blocks:[{type:"markdown",text:E}]})).ts??F}async function L1(D,u,F){await vD(D,"chat.delete",{channel:u,ts:F})}async function N1(D,u,F=!1){let E=await vD(D,"conversations.create",{name:u,is_private:F});return{id:E.channel?.id??"",name:E.channel?.name??u}}async function T1(D,u,F){await vD(D,"conversations.invite",{channel:u,users:F.join(",")})}async function _F(D){let u=[],F="";while(!0){let E={limit:"200",types:"public_channel,private_channel,im,mpim"};if(F)E.cursor=F;let C=await CD(D,"conversations.list",E);if(u.push(...C.channels??[]),F=C.response_metadata?.next_cursor??"",!F)break}return{channels:u}}async function vu(D,u){let E=(await vD(D,"conversations.open",{users:u})).channel?.id;if(!E)throw Error(`Failed to open DM with user ${u}`);return E}function ID(D){return D.toLowerCase().replace(/[-_\s]/g,"")}async function T0(D,u,F){if(!u.startsWith("@")){if(/^[UW][A-Za-z0-9]{6,}$/.test(u))return u;throw Error(`Expected @user or a user ID, got: ${u}`)}let E=ID(u.slice(1)),C=await CD(D,"auth.test",{},F);if(E==="you"||E==="me"||ID(C.user??"")===E){if(!C.user_id)throw Error("auth.test did not return user_id");return C.user_id}let B="";while(!0){let $={limit:"200"};if(B)$.cursor=B;let G=await CD(D,"users.list",$,F);for(let Z of G.members??[]){let z=ID(Z.name??""),Q=ID(Z.real_name??""),J=ID(Z.profile?.display_name??"");if(z===E||Q===E||J&&J===E)return Z.id??""}if(B=G.response_metadata?.next_cursor??"",!B)break}throw Error(`User not found: ${u}`)}function pu(D){let u=D.match(/(?:app\.slack\.com\/client\/T[A-Za-z0-9]+|[A-Za-z0-9-]+\.slack\.com\/archives)\/([A-Za-z0-9]+)(?:\/p(\d{10})(\d{6}))?/);if(!u)return;let F=u[1],E=u[2]&&u[3]?`${u[2]}.${u[3]}`:void 0,C=D.indexOf("?"),B=C>=0?new URLSearchParams(D.slice(C)):void 0,$=B?.get("thread_ts")??void 0,z={channel:B?.get("cid")??void 0??F};if(E)z.ts=E;if($)z.threadTs=$;return z}function s6(D){return pu(D)?.channel}async function ND(D,u,F){let E=s6(u);if(E)return E;if(!u.startsWith("@")&&!u.startsWith("#")){if(/^[A-Za-z0-9]{9,}$/.test(u))return u;throw Error(`Target must start with # or @ (or be a Slack URL/ID), got: ${u}`)}let C=u.startsWith("@"),B=u.slice(1),$=ID(B);if(C){let z=await CD(D,"auth.test",{},F);if($==="you"||$==="me"||ID(z.user??"")===$){let V=z.user_id;if(!V)throw Error("auth.test did not return user_id");let U=((await CD(D,"conversations.list",{types:"im",limit:"200"},F)).channels??[]).find((_)=>_.user===V);if(U?.id)return String(U.id);return vu(D,V)}let J="",Y="";while(!0){let V={limit:"200"};if(Y)V.cursor=Y;let O=await CD(D,"users.list",V,F);for(let U of O.members??[]){let _=ID(U.name??""),N=ID(U.real_name??""),k=ID(U.profile?.display_name??"");if(_===$||N===$||k&&k===$){J=U.id??"";break}}if(J)break;if(Y=O.response_metadata?.next_cursor??"",!Y)break}if(!J)throw Error(`User not found: ${u}`);let W="";while(!0){let V={types:"im",limit:"200"};if(W)V.cursor=W;let O=await CD(D,"conversations.list",V,F);for(let U of O.channels??[])if(U.user===J)return String(U.id??"");if(W=O.response_metadata?.next_cursor??"",!W)break}throw Error(`No existing DM with ${u} (${J}). Open it once in Slack first.`)}let G=B.toLowerCase(),Z="";while(!0){let z={limit:"200",types:"public_channel,private_channel",exclude_archived:"true"};if(Z)z.cursor=Z;let Q=await CD(D,"conversations.list",z,F);for(let J of Q.channels??[])if(String(J.name??"").toLowerCase()===G)return String(J.id??"");if(Z=Q.response_metadata?.next_cursor??"",!Z)break}throw Error(`channel not found: ${u}`)}async function mu(D,u){try{let F=await CD(D,"users.info",{user:u}),E=F.user?.profile?.display_name,C=E&&E.length>0?E:F.user?.real_name??F.user?.name??u,B=F.user?.name??u;return[C,B]}catch{return[u,u]}}async function yu(D,u){try{let F=await CD(D,"users.info",{user:u}),E=F.user?.profile?.display_name;if(E&&E.length>0)return E;return F.user?.real_name??F.user?.name??u}catch{return u}}async function R0(D){let u=[],F="";while(!0){let E={limit:"200"};if(F)E.cursor=F;let C=await CD(D,"users.list",E);if(u.push(...C.members??[]),F=C.response_metadata?.next_cursor??"",!F)break}return{members:u}}async function cu(D,u){return ju(D,"drafts.list",{},u)}async function R1(D,u,F,E){let{randomUUID:C}=await import("node:crypto"),B=JSON.stringify([{type:"rich_text",elements:[{type:"rich_text_section",elements:[{type:"text",text:F}]}]}]);return ju(D,"drafts.create",{client_msg_id:C(),destinations:JSON.stringify([{channel_id:u}]),blocks:B,file_ids:JSON.stringify([]),is_from_composer:"true"},E)}async function S1(D,u,F,E,C){let B=JSON.stringify([{type:"rich_text",elements:[{type:"rich_text_section",elements:[{type:"text",text:E}]}]}]),$=(Date.now()/1000).toFixed(6);return ju(D,"drafts.update",{draft_id:u,client_last_updated_ts:$,destinations:JSON.stringify([{channel_id:F}]),blocks:B,file_ids:JSON.stringify([])},C)}async function P1(D,u,F){return ju(D,"conversations.info",{channel:u},F)}async function w1(D,u){return CD(D,"users.info",{user:u})}async function S0(D,u){return CD(D,"conversations.info",{channel:u})}async function x1(D,u,F){let E=(Date.now()/1000).toFixed(6);return ju(D,"drafts.delete",{draft_id:u,client_last_updated_ts:E},F)}async function P0(D,u){let F=await ju(D,"auth.test",{},u);return{userId:String(F.user_id??""),teamId:String(F.team_id??"")}}async function I1(D,u,F,E={}){let{statSync:C,readFileSync:B}=await import("node:fs"),{basename:$}=await import("node:path"),G=C(F),Z=$(F),z=await CD(D,"files.getUploadURLExternal",{filename:Z,length:String(G.size)}),Q=z.upload_url,J=z.file_id;if(!Q||!J)throw Error("files.getUploadURLExternal returned no upload_url/file_id");let Y=B(F),W=await fetch(Q,{method:"POST",headers:{"Content-Type":"application/octet-stream"},body:Y});if(!W.ok)throw Error(`Upload PUT failed: ${W.status} ${W.statusText}`);let V={files:[{id:J,title:E.title??Z}],channel_id:u};if(E.threadTs)V.thread_ts=E.threadTs;if(E.initialComment)V.initial_comment=E.initialComment;let O=await vD(D,"files.completeUploadExternal",V),U={fileId:J},_=O.files?.[0]?.permalink;if(_)U.permalink=_;return U}function fu(D,u){let F=D;for(let E of u){if(F===void 0||F===null)return;if(typeof E==="number"){if(!Array.isArray(F))return;F=F[E]??void 0}else{if(typeof F!=="object"||Array.isArray(F))return;F=F[E]}}return F}function b1(){return/(?<![A-Za-z0-9._@<-])@([A-Za-z0-9_-]+(?:\.[A-Za-z0-9_-]+)*)/g}function jF(D){return D.toLowerCase().replace(/[-_\s]/g,"")}function Vu(D){return D&&typeof D==="object"&&!Array.isArray(D)?D:{}}function f1(D,u){let F=jF(u),E=Vu(D.profile);for(let B of[D.name,D.real_name,E.display_name,E.real_name])if(typeof B==="string"&&B&&jF(B)===F)return!0;let C=typeof E.email==="string"?E.email.toLowerCase():"";return C!==""&&C===u.toLowerCase()}async function x0(D,u,F,E={}){let C=E.warn??((Q)=>process.stderr.write(`${Q}
|
|
124
|
+
`)),B=new Set;for(let Q of u.matchAll(b1()))B.add(Q[1]);if(B.size===0)return u;let $=new Map,Z=((await QF(D)).members??[]).map(Vu),z=[];for(let Q of B){let J=Z.find((W)=>f1(W,Q)),Y=J&&typeof J.id==="string"?J.id:"";if(Y)$.set(Q,Y);else z.push(Q)}if(z.length>0&&F){let Q=await O0(D,F),J=[];for(let Y of Q){let W=Vu(await W0(D,Y)),V=Vu(W.user);if(typeof V.id!=="string")V.id=Y;J.push(V)}for(let Y of z){let W=J.find((O)=>f1(O,Y)),V=W&&typeof W.id==="string"?W.id:"";if(V)$.set(Y,V)}}for(let Q of B)if(!$.has(Q))C(`warn: unresolved mention @${Q} (left as text)`);return u.replace(b1(),(Q,J)=>{let Y=$.get(J);return Y?`<@${Y}>`:Q})}var r6=["さん","さま","様","君","くん","ちゃん","氏","先生","先輩","殿","老师","老師","兄","姐","哥","姐妹"],a6="\\p{Script=Han}\\p{Script=Hiragana}\\p{Script=Katakana}A-Za-z0-9";function h1(D){return/[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}]/u.test(D)}function e6(D){let u=[],F=new RegExp(`([${a6}]{1,12})(${r6.join("|")})`,"gu");for(let E of D.matchAll(F))u.push({ref:E[1],honorific:E[2]});for(let E of D.matchAll(/\b(?:dear|hi|hello|hey)\b[ \t]+([A-Z][A-Za-z'’-]{1,20})/gi))u.push({ref:E[1],honorific:""});for(let E of D.matchAll(/(?:^|\n)[ \t]*([A-Z][A-Za-z'’-]{1,20}),/g))u.push({ref:E[1],honorific:""});return u}function D7(D){let u=Vu(D.profile),F=new Set;for(let E of[D.name,D.real_name,u.display_name,u.real_name]){if(typeof E!=="string"||!E)continue;for(let C of[E,...E.split(/\s+/)]){let B=jF(C);if(B.length>=2)F.add(B)}}return[...F]}function u7(D,u){let F=jF(D);if(F.length<2)return;for(let E of u)if(F===E)return E;if(h1(D)){for(let E of u)if(F.includes(E)||E.includes(F))return E}return}function F7(D){return[Vu(D.profile).display_name,D.real_name,D.name].filter((E)=>typeof E==="string"&&E!=="")[0]??String(D.id??"?")}async function v1(D,u){let F=e6(u);if(F.length===0)return[];let E=new Set;for(let Z of u.matchAll(/<@([A-Z0-9]+)(?:\|[^>]*)?>/g))E.add(Z[1]);let B=((await QF(D)).members??[]).map(Vu).filter((Z)=>Z.deleted!==!0&&Z.is_bot!==!0&&Z.id!=="USLACKBOT").map((Z)=>({id:typeof Z.id==="string"?Z.id:"",forms:D7(Z),display:F7(Z)})).filter((Z)=>Z.id!==""),$=[],G=new Set;for(let{ref:Z,honorific:z}of F)for(let Q of B){let J=u7(Z,Q.forms);if(!J)continue;if(E.has(Q.id)||G.has(Q.id))break;G.add(Q.id),$.push({surface:h1(Z)?`${J}${z}`:Z,display:Q.display,userId:Q.id});break}return $}async function Lu(D,u,F){let E=u,C=[],B=E,$=0;while(!0){let G=B.indexOf("<@U",$);if(G===-1)break;let Z=B.slice(G+2),z=Z.search(/[>|]/),Q=z===-1?Z:Z.slice(0,z);if(Q.length>=9)C.push(Q);$=G+1}for(let G of C){if(!F.has(G))F.set(G,await XF(D,G));let Z=F.get(G)??G;E=E.replaceAll(`<@${G}>`,`@${Z}`),E=E.replace(new RegExp(`<@${G}\\|[^>]*>`,"g"),`@${Z}`)}return E}function gu(D){return D.replace(/<!date\^(\d+)\^[^|>]*(?:\|([^>]*))?>/g,(u,F,E)=>{let C=Number(F);if(!Number.isFinite(C))return E??"date";let B=new Date(C*1000);if(Number.isNaN(B.getTime()))return E??"date";let $=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],G=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Z=$[B.getUTCDay()]??"",z=G[B.getUTCMonth()]??"";return`${Z}, ${z} ${String(B.getUTCDate()).padStart(2,"0")}, ${B.getUTCFullYear()}`})}function p1(D,u=new Date){let F=new Date(D*1000),E=w0(u),C=w0(new Date(u.getTime()-86400000)),B=w0(F);if(B===E)return"Today";if(B===C)return"Yesterday";let $=F.toLocaleDateString("en-US",{weekday:"long"}),G=F.toLocaleDateString("en-US",{month:"short"});return`${$}, ${G} ${String(F.getDate()).padStart(2,"0")}`}function w0(D){return`${D.getFullYear()}-${D.getMonth()}-${D.getDate()}`}function m1(D){let u=new Date(D*1000),F=u.getFullYear(),E=String(u.getMonth()+1).padStart(2,"0"),C=String(u.getDate()).padStart(2,"0"),B=String(u.getHours()).padStart(2,"0"),$=String(u.getMinutes()).padStart(2,"0");return`${F}-${E}-${C} ${B}:${$}`}function ku(D){if(!c1(D))return;let u=C7(D,"utf8");for(let F of u.split(`
|
|
125
|
+
`)){let E=F.trim();if(!E||E.startsWith("#"))continue;let C=E.indexOf("=");if(C===-1)continue;let B=E.slice(0,C).trim(),$=E.slice(C+1).trim();if($.startsWith('"')&&$.endsWith('"')||$.startsWith("'")&&$.endsWith("'"))$=$.slice(1,-1);if(!(B in process.env))process.env[B]=$}}function $7(D){B7(D,{recursive:!0});let u=tD(D,".gitignore");if(!c1(u))g1(u,`*
|
|
126
|
+
`)}function G7(){ku(tD(y1(),".slack-cli",".env.local")),ku(tD(y1(),".config/slack-cli",".env")),ku(tD(process.cwd(),".slack-cli",".env.local")),ku(tD(process.cwd(),".env.local")),ku(tD(process.cwd(),".env"))}function z7(D){return E7("sha256").update(D).digest("hex")}function y(D){return D&&typeof D==="object"&&!Array.isArray(D)?D:{}}function o(D){return Array.isArray(D)?D:[]}function AF(D){return Number(D.ts??0)}async function k1(D,u,F){let E=u.user;if(typeof E==="string"){if(!F.has(E))F.set(E,await yu(D,E));return F.get(E)??E}return typeof u.username==="string"?u.username:"bot"}function I0(D){let u=new Date(D*1000),F=u.getUTCFullYear(),E=String(u.getUTCMonth()+1).padStart(2,"0"),C=String(u.getUTCDate()).padStart(2,"0"),B=String(u.getUTCHours()).padStart(2,"0"),$=String(u.getUTCMinutes()).padStart(2,"0"),G=String(u.getUTCSeconds()).padStart(2,"0");return`${F}-${E}-${C} ${B}:${$}:${G}`}function b0(D){let[u,F="000000"]=D.split("."),E=Number(u),C=new Date(E*1000),B=C.getUTCFullYear(),$=String(C.getUTCMonth()+1).padStart(2,"0"),G=String(C.getUTCDate()).padStart(2,"0"),Z=String(C.getUTCHours()).padStart(2,"0"),z=String(C.getUTCMinutes()).padStart(2,"0"),Q=String(C.getUTCSeconds()).padStart(2,"0"),J=F.padEnd(6,"0").slice(0,6);return`${B}-${$}-${G}T${Z}:${z}:${Q}.${J}`}function f0(D){let u=D.match(/^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})\.(\d{6})$/);if(!u)throw Error(`Invalid message timestamp "${D}" \u2014 expected 2026-05-11T06:01:04.000100`);let F=Date.parse(u[1]+"Z");if(isNaN(F))throw Error(`Cannot parse date in "${D}"`);return`${Math.floor(F/1000)}.${u[2]}`}function Z7(D){return/^\d{4}-\d{2}-\d{2}T/.test(D)?f0(D):D}async function NF(D,u,F,E){let C=typeof u.ts==="string"?u.ts:`${AF(u)}.000000`,B=b0(C),$="?";if(typeof u.user==="string"){let O=u.user,U="@"+O;if(!F.has(U)){let[,_]=await mu(D,O);F.set(U,_)}$=F.get(U)??O}else if(typeof u.username==="string")$=u.username;let G=typeof u.text==="string"?u.text:"",z=gu(await Lu(D,G,F)).split(`
|
|
127
|
+
`),Q=z[0]+(z.length>1?`
|
|
128
|
+
`+z.slice(1).map((O)=>` ${O}`).join(`
|
|
129
|
+
`):""),J=E?`${E} @${$}`:`@${$}`,Y=o(u.reactions).map(y).map((O)=>{let U=typeof O.name==="string"?O.name:"",_=Number(O.count??o(O.users).length??0);return U?`:${U}:\xD7${_}`:""}).filter(Boolean).join(" "),W=o(u.files).map(y).map((O)=>{let U=typeof O.name==="string"?O.name:typeof O.title==="string"?O.title:"(file)",_=typeof O.size==="number"?` (${h0(O.size)})`:"",N=typeof O.id==="string"?` [${O.id}]`:"";return`
|
|
130
|
+
\uD83D\uDCCE ${U}${_}${N}`}).join(""),V=(Y?`
|
|
131
|
+
${Y}`:"")+W;return`${B} ${J}: ${Q}${V}`}function h0(D){return D<1024?`${D} B`:D<1048576?`${(D/1024).toFixed(1)} KB`:`${(D/1048576).toFixed(1)} MB`}function J7(D){return o(D.files).map(y).map((u)=>({id:u.id??null,name:u.name??u.title??null,mimetype:u.mimetype??null,size:u.size??null,url_private_download:u.url_private_download??u.url_private??null,permalink:u.permalink??null}))}function d1(D){let u=J7(D);return{ts:D.ts??null,user:D.user??null,username:D.username??null,bot_id:D.bot_id??null,thread_ts:D.thread_ts??null,text:typeof D.text==="string"?D.text:"",...u.length>0?{files:u}:{}}}async function X7(D,u,F,E="text"){let C=pu(u),B=await ND(D,u),$=new Map,Z=await(async()=>{if(C?.threadTs){let Q=await Au(D,B,C.threadTs,F);return o(Q.messages).map(y)}let z=await hu(D,B,F);return o(z.messages).map(y).reverse()})();if(E==="jsonl"){for(let z of Z)console.log(JSON.stringify(d1(z)));return}for(let z of Z)console.log(await NF(D,z,$))}async function Q7(D,u,F,E,C="text"){let B=await ND(D,u),$=await Au(D,B,Z7(F),E),G=o($.messages).map(y);if(C==="jsonl"){for(let z of G)console.log(JSON.stringify(d1(z)));return}let Z=new Map;for(let z of G)console.log(await NF(D,z,Z))}async function Y7(D){let u=await _F(D),F=o(u.channels).map(y).filter((C)=>C.is_member===!0).sort((C,B)=>Number(B.updated??0)-Number(C.updated??0)).slice(0,10),E=new Map;for(let C of F){let B=String(C.id??""),$=typeof C.name==="string"?C.name:typeof C.user==="string"?C.user:B,G=await hu(D,B,5),Z=o(G.messages).map(y).filter((z)=>z.subtype===void 0||z.subtype===null).filter((z)=>{let Q=typeof z.text==="string"?z.text:"";return Q.length>0&&!Q.startsWith("<@")}).slice(0,3).reverse();if(Z.length===0)continue;console.log(`-- #${$} --------------------------------`);for(let z of Z){let Q=await k1(D,z,E),J=(typeof z.text==="string"?z.text:"").split(`
|
|
132
|
+
`)[0]??"",Y=await Lu(D,J,E);console.log(` ${Q}: ${Y}`)}}}async function O7(D,u){let F=await H1(D,"to:me"),E=o(fu(F,["messages","matches"])).map(y).slice(0,u),C=new Map,B=[];for(let $ of E){let G=p1(AF($)),Z=B[B.length-1];if(Z?.label===G)Z.msgs.push($);else B.push({label:G,msgs:[$]})}for(let $=0;$<B.length;$++){let{label:G,msgs:Z}=B[$];if($>0)console.log("");console.log(` ${G}`),console.log(" ----------------------------");for(let z of[...Z].reverse()){let Q=y(z.channel),J=Q.is_im===!0,Y=typeof Q.name==="string"?Q.name:"dm",W;if(J&&Y.startsWith("U")){let V="@"+Y;if(!C.has(V)){let[,O]=await mu(D,Y);C.set(V,O)}W=`@${C.get(V)??Y}`}else if(J)W=`@${Y}`;else W=`#${Y}`;console.log(await NF(D,z,C,W))}}}async function W7(D,u,F,E,C="text"){let B=await _F(D),$=o(B.channels).map(y).filter((G)=>E||G.is_member===!0).filter((G)=>{if(!F)return!0;return(typeof G.name==="string"?G.name:"").toLowerCase().includes(F.toLowerCase())}).sort((G,Z)=>Number(Z.updated??0)-Number(G.updated??0)).slice(0,u);if(C==="jsonl"){for(let G of $)console.log(JSON.stringify(G));return}for(let G of $){let Z=String(G.id??""),z=typeof G.name==="string"?G.name:typeof G.user==="string"?G.user:Z,Q=G.is_im===!0,J=G.is_mpim===!0,Y=Q||J?"@":"#",W=G.is_member===!0?"":" (not joined)",V=typeof y(G.purpose).value==="string"?String(y(G.purpose).value):"",O=V?` ${V.split(`
|
|
133
|
+
`)[0]?.slice(0,60)}`:"";console.log(`${Y}${z} ${Z}${W}${O}`)}}async function V7(D,u,F,E){let C=await M1(D,u,F);if(E){console.log(JSON.stringify(C,null,2));return}let B=o(fu(C,["messages","matches"])).map(y),$=new Map;for(let G of B){let Z=y(G.channel),z=Z.is_im===!0,Q=typeof Z.name==="string"?Z.name:"dm",J;if(z&&Q.startsWith("U")){let Y="@"+Q;if(!$.has(Y)){let[,W]=await mu(D,Q);$.set(Y,W)}J=`@${$.get(Y)??Q}`}else if(z)J=`@${Q}`;else J=`#${Q}`;console.log(await NF(D,G,$,J))}}async function H7(D,u,F,E){let C=Math.floor(Date.now()/1000)-u*86400,B=await _F(D),$=o(B.channels).map(y).filter((Q)=>Q.is_member===!0&&Q.is_im!==!0&&Q.is_mpim!==!0).filter((Q)=>{if(!E)return!0;return(typeof Q.name==="string"?Q.name:"").toLowerCase().includes(E.toLowerCase())}).sort((Q,J)=>Number(J.updated??0)-Number(Q.updated??0)),G=new Map,Z=0,z=0;for(let Q of $){let J=String(Q.id??""),Y=typeof Q.name==="string"?Q.name:J,W;try{W=await hu(D,J,F)}catch(O){console.error(` SKIP #${Y}: ${O.message}`);continue}let V=o(W.messages).map(y).filter((O)=>(O.subtype===void 0||O.subtype===null)&&AF(O)>=C);if(V.length===0)continue;z+=1,Z+=V.length,console.log(`## #${Y} (${V.length} msgs)
|
|
134
|
+
`);for(let O of[...V].reverse()){let U=await k1(D,O,G),_=typeof O.text==="string"?O.text:"",k=gu(await Lu(D,_,G)).split(`
|
|
135
|
+
`).join(" \u21B5 ");console.log(`[${m1(AF(O))}] ${U}: ${k}`)}console.log("")}console.error(`Dumped ${Z} messages across ${z} channels (cutoff: ${u}d)`)}function M7(D){let u=[];function F(E){if(typeof E==="string"){u.push(E);return}if(Array.isArray(E)){for(let C of E)F(C);return}if(E&&typeof E==="object"){let C=E;if(typeof C.text==="string"){u.push(C.text);return}if(Array.isArray(C.elements))F(C.elements);else if(Array.isArray(C.content))F(C.content)}}for(let E of D)F(E);return u.join("").trim()}async function i1(D,u,F){let E=new Map;return async(C)=>{if(!C)return"(unknown)";if(E.has(C))return E.get(C);try{let B=await P1(D,C,u),$=y(B.channel),G;if($.is_im===!0){let Z=typeof $.user==="string"?$.user:"";if(!Z||Z===F)G="@self";else{let[z]=await mu(D,Z);G=`@${z}`}}else G=`#${typeof $.name==="string"?$.name:C}`;return E.set(C,G),G}catch{return C}}}function v0(D){let u=y(o(D.destinations)[0]);return String(u.channel_id??D.channel_id??D.channel??"")}function LF(D){return M7(o(D.blocks))||(typeof D.text==="string"?D.text:"(no text)")}async function q7(D,u,F=!1){let E=await cu(D,u),C=o(E.drafts??E.messages??[]).map(y).filter((z)=>z.is_deleted!==!0),B=F?C:C.filter((z)=>z.is_sent!==!0);if(B.length===0){console.log(F?"No drafts.":"No pending drafts. Run with --all to include sent.");return}let $="";try{({userId:$}=await P0(D,u))}catch{}let G=await i1(D,u,$),Z=new Map;for(let z of B){let Q=v0(z),J=LF(z),Y=Number(z.date_created??z.date_create??0),W=Y?I0(Y):"?",V=await G(Q),O=typeof z.id==="string"?z.id:"",U=z.is_sent===!0?" [SENT]":"",_=gu(await Lu(D,J,Z));console.log(`-- ${O} ${V} [${W}]${U}`);for(let N of _.split(`
|
|
136
|
+
`))console.log(` ${N}`)}}async function U7(D,u,F){let E=await cu(D,u),C=o(E.drafts).map(y).find((V)=>String(V.id)===F);if(!C)console.error(`Draft not found: ${F}`),process.exit(1);let B="";try{({userId:B}=await P0(D,u))}catch{}let $=await i1(D,u,B),G=v0(C),Z=LF(C),z=Number(C.date_created??0),Q=String(C.last_updated_ts??"?"),J=await $(G),W=gu(await Lu(D,Z,new Map));console.log(`id: ${C.id}`),console.log(`channel: ${J} (${G})`),console.log(`created: ${z?I0(z):"?"}`),console.log(`updated: ${I0(Number(Q.split(".")[0]))}`),console.log(`status: ${C.is_sent===!0?"sent":"pending"}`),console.log("---"),console.log(W)}function pD(...D){return z7(D.join(`
|
|
137
|
+
`)).slice(0,4)}function mD(D,u,F){for(let E of F)console.log(E);if(D!==void 0)console.error(`Code mismatch (got ${D}, expected ${u})`);console.error(`Rerun with --code=${u}`),process.exit(1)}function n1(D){let u=pu(D);if(u)return u.ts?{ref:u.channel,ts:u.ts}:{ref:u.channel};if(D.startsWith("#")||D.startsWith("@")){let F=D.indexOf(":");if(F>0){let E=D.slice(F+1);if(/^\d{10}\.\d{6}$/.test(E))return{ref:D.slice(0,F),ts:E};if(/^\d{4}-\d{2}-\d{2}T/.test(E))return{ref:D.slice(0,F),ts:f0(E)}}}return{ref:D}}function p0(D){let u=pu(D);if(u){let E=u.threadTs??u.ts;return E?{ref:u.channel,threadTs:E}:{ref:u.channel}}let F=D.indexOf(":");if(F>0){let E=D.slice(F+1);if(/^\d{10}\.\d{6}$/.test(E))return{ref:D.slice(0,F),threadTs:E};if(/^\d{4}-\d{2}-\d{2}T/.test(E))return{ref:D.slice(0,F),threadTs:f0(E)}}return{ref:D}}async function l1(D,u,F){let E=F;if(!F.startsWith("#")&&!F.startsWith("@"))try{let C=y(await S0(D,u)),B=y(C.channel);if(B.is_im===!0){let $=typeof B.user==="string"?B.user:"";E=$?`@${await yu(D,$)}`:u}else E=typeof B.name==="string"?`#${B.name}`:u}catch{E=u}return E===u?u:`${E} (${u})`}async function K7(D,u,F){try{let E=await Au(D,u,F,1),C=o(E.messages).map(y),B=C.find((Q)=>String(Q.ts)===F)??C[0];if(!B)return F;let $=typeof B.user==="string"?await yu(D,B.user):typeof B.username==="string"?B.username:"?",G=(typeof B.text==="string"?B.text:"").split(`
|
|
138
|
+
`)[0]??"",Z=G.length>40?`${G.slice(0,40)}\u2026`:G;return`${b0(F).slice(0,16).replace("T"," ")} @${$}${Z?`: ${Z}`:""}`}catch{return F}}async function _7(D,u){let{ref:F,ts:E}=n1(u.target);if(!E)console.error("Error: target must embed a message ts (e.g. #chan:2026-05-11T06:01:04.000100 or a Slack permalink URL)"),process.exit(2);let C;if(u.channelId)C=u.channelId;else C=await ND(D,F);let B=await Au(D,C,E,1),G=o(B.messages).map(y).find((Y)=>String(Y.ts)===E);if(!G)console.error(`Message not found at ts=${E} in channel ${C}`),process.exit(1);let Z=typeof G.text==="string"?G.text:"",z=u.mentions?await x0(D,u.newText,C):u.newText,Q=pD(Z,z);if(u.code!==Q)mD(u.code,Q,["--- Original message -------------------------",...Z.split(`
|
|
139
|
+
`).map((Y)=>` ${Y}`),"--- Replacing with ---------------------------",...z.split(`
|
|
140
|
+
`).map((Y)=>` ${Y}`),"--------------------------------\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"]);let J=await A1(D,C,E,z);console.log(`\u2713 Edited (ts: ${J})`)}async function j7(D,u){let{ref:F,ts:E}=n1(u.target);if(!E)console.error("Error: target must embed a message ts (e.g. #chan:2026-05-11T06:01:04.000100 or a Slack permalink URL)"),process.exit(2);let C;if(u.channelId)C=u.channelId;else C=await ND(D,F);let B=await Au(D,C,E,1),G=o(B.messages).map(y).find((Q)=>String(Q.ts)===E);if(!G)console.error(`Message not found at ts=${E} in channel ${C}`),process.exit(1);let Z=typeof G.text==="string"?G.text:"",z=pD(C,E,Z);if(u.code!==z){let Q=await l1(D,C,F);mD(u.code,z,["--- Deleting message -------------------------",` \u2192 ${Q} at ${b0(E)}`,...Z.split(`
|
|
141
|
+
`).map((J)=>` ${J}`),"---------------------------------------------"])}await L1(D,C,E),console.log(`\u2713 Deleted (ts: ${E})`)}async function A7(D,u){if(!u.startsWith("@"))return!1;let F=u.slice(1).toLowerCase().replace(/[^a-z0-9]/g,"");if(F==="me"||F==="you")return!0;try{let C=((await O1(D)).user??"").toLowerCase().replace(/[^a-z0-9]/g,"");return C!==""&&C===F}catch{return!1}}async function L7(D,u){let{ref:F,threadTs:E}=p0(u.target);if(!u.asBot&&!u.channelId&&!u.userId&&await A7(D,F))console.error(`Warning: "${F}" is a DM to yourself \u2014 Slack will NOT notify you of your own message.
|
|
142
|
+
`+` To reach yourself with a notification, send as the bot: slack send '${F}' '...' --as-bot`);let C;if(u.channelId)C=u.channelId;else if(u.userId)C=await vu(D,u.userId);else C=await ND(D,F);let B=u.mentions?await x0(u.mentionToken??D,u.message,C):u.message;try{for(let J of await v1(u.mentionToken??D,B))console.error(`\u26A0 possible untagged mention: ${J.surface} \u2014 @${J.display} won't be notified (did you mean <@${J.userId}>?)`)}catch{}let $="",G="?";try{let J=await hu(D,C,1),Y=o(J.messages).map(y).filter((W)=>W.subtype===void 0||W.subtype===null)[0];$=typeof Y?.text==="string"?Y.text:"",G=typeof Y?.user==="string"?await yu(D,Y.user):typeof Y?.username==="string"?Y.username:"?"}catch{}let Z=pD(C,E??"",$,B);if(u.code!==Z){let J=await l1(D,C,F),Y=E?` \u2192 ${J} thread of ${await K7(D,C,E)} \u2014 THREAD REPLY`:` \u2192 ${J} \u2014 NEW top-level message`;mD(u.code,Z,["--- Last message in channel ------------------",` ${G}: ${$.split(`
|
|
143
|
+
`)[0]?.slice(0,100)??"(empty)"}`,"--- Sending ----------------------------------",Y,` Message: ${B}`,"--------------------------------\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"])}let z=await q1(D,C,B,E,u.broadcast),Q="";try{Q=await j1(D,C,z)}catch{}if(Q)console.log(`\u2713 Sent: ${Q}`);else console.log(`\u2713 Sent (ts: ${z})`);if(u.asBot&&C.startsWith("D"))try{let J=await V0(D);if(!J.ok)for(let Y of H0(J,!0))console.error(Y);else{let Y=J.appId?`https://api.slack.com/apps/${J.appId}`:"https://api.slack.com/apps";console.error(`Note: if ${u.target} can't reply (app messaging may be off), enable Messages Tab: ${Y} \u2192 App Home.`)}}catch{}}async function N7(D){let u=await V0(D);for(let F of H0(u,!1))console.log(F);if(!u.ok)process.exit(1)}function T7(D){if(/^\d{10,}$/.test(D))return parseInt(D,10);let u=new Date(D.replace(" ","T"));if(isNaN(u.getTime()))throw Error(`Cannot parse time: ${D}`);return Math.floor(u.getTime()/1000)}async function R7(D,u){let{ref:F,threadTs:E}=p0(u.target),C;if(u.channelId)C=u.channelId;else if(u.userId)C=await vu(D,u.userId);else C=await ND(D,F);let B=T7(u.at),$=new Date(B*1000).toISOString(),G=pD(C,u.message,String(B));if(u.code!==G)mD(u.code,G,["--- Scheduling message -----------------------",` To: ${F}${E?` (thread ${E})`:""}`,` At: ${$} (Unix: ${B})`,` Message: ${u.message}`,"---------------------------------------------"]);let Z=await U1(D,C,u.message,B,E);console.log(`\u2713 Scheduled (id: ${Z}, at: ${$})`)}async function S7(D,u,F){let E;if(F)E=F;else if(u)E=await ND(D,u);let B=(await K1(D,E)).scheduled_messages??[];if(B.length===0){console.log("(no scheduled messages)");return}for(let $ of B){let G=new Date($.post_at*1000).toISOString();console.log(`${$.id} ${G} [${$.channel_id}] ${$.text.split(`
|
|
144
|
+
`)[0]?.slice(0,80)??""}`)}}async function P7(D,u){let F;if(u.channelId)F=u.channelId;else F=await ND(D,u.target);let E=pD(F,u.id);if(u.code!==E)mD(u.code,E,["--- Deleting scheduled message ---------------",` Channel: ${u.target}`,` ID: ${u.id}`,"---------------------------------------------"]);await _1(D,F,u.id),console.log(`\u2713 Deleted scheduled message ${u.id}`)}async function w7(D,u){let{statSync:F,existsSync:E}=await import("fs"),{basename:C}=await import("path");for(let Y of u.filePaths)if(!E(Y))console.error(`Error: file not found: ${Y}`),process.exit(1);let{ref:B,threadTs:$}=p0(u.target),G;if(u.channelId)G=u.channelId;else if(u.userId)G=await vu(D,u.userId);else G=await ND(D,B);let Z=u.filePaths.length>1,z=u.filePaths.map((Y)=>{let W=C(Y),V=Z?W:u.title??W;return{fp:Y,filename:W,title:V,sizeFmt:h0(F(Y).size)}}),Q=pD(G,...z.flatMap((Y)=>[Y.fp,Y.title]));if(u.code!==Q){let Y=` To: ${B}${$?` (thread ${$})`:""}`,W=Z?[`--- Uploading ${z.length} files ------------------------`,Y,...z.map((V)=>` ${V.filename} (${V.sizeFmt})`),"--------------------------------\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"]:["--- Uploading file ---------------------------",Y,` File: ${z[0].fp}`,` Title: ${z[0].title}`,` Size: ${z[0].sizeFmt}`,"--------------------------------\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"];mD(u.code,Q,W)}let J=z.length;for(let Y=0;Y<J;Y++){let W=z[Y],V={title:W.title};if($!==void 0)V.threadTs=$;if(u.comment!==void 0&&Y===0)V.initialComment=u.comment;let{fileId:O,permalink:U}=await I1(D,G,W.fp,V),_=J>1?`[${Y+1}/${J}] `:"";console.log(`${_}\u2713 Uploaded (file_id: ${O}${U?`, url: ${U}`:""})`)}}function x7(D){if(/^F[A-Z0-9]+$/i.test(D))return D;return D.match(/\/files\/[A-Za-z0-9]+\/(F[A-Za-z0-9]+)/)?.[1]}async function I7(D,u,F,E){let C=x7(F);if(!C)throw Error(`Not a file ID or file permalink: ${F}
|
|
145
|
+
`+"Expected F\u2026 or https://<ws>.slack.com/files/<UID>/<FID>/<name>");let B=y(await W1(D,C,u)),$=y(B.file),G=typeof $.name==="string"?$.name:typeof $.title==="string"?$.title:C,Z=typeof $.url_private_download==="string"?$.url_private_download:typeof $.url_private==="string"?$.url_private:"";if(!Z)throw Error(`files.info returned no download URL for ${C}`);let z={Authorization:`Bearer ${D}`};if(u)z.Cookie=`d=${u}`;let Q=await fetch(Z,{headers:z});if(!Q.ok)throw Error(`Download failed: HTTP ${Q.status} ${Q.statusText}`);let J=Buffer.from(await Q.arrayBuffer()),{statSync:Y,existsSync:W}=await import("fs"),{basename:V}=await import("path"),O=E??G;if(E&&W(E)&&Y(E).isDirectory())O=tD(E,V(G));g1(O,J),console.log(`\u2713 Downloaded ${G} (${h0(J.length)}) \u2192 ${O}`)}async function b7(){G7();let D=(F)=>Z0(F.workspace),u=(F)=>R8(F.workspace);await U8(cF(process.argv)).scriptName("slack").option("workspace",{alias:"w",type:"string",describe:"Workspace name"}).middleware(async(F)=>{let E=String((F._??[])[0]??"");if(!E||E==="auth"||E==="login")return;try{Z0(F.workspace)}catch(C){if((C instanceof Error?C.message:String(C)).startsWith("No profiles configured"))console.log(`No workspace configured. Let's set that up:
|
|
146
|
+
`),await qF(),process.exit(0);throw C}},!0).command(["read [target]","msgs [target]"],"Browse messages",(F)=>F.positional("target",{type:"string",describe:"#channel, @user, or URL"}).option("limit",{alias:"n",type:"number",default:20,describe:"Number of messages"}).option("format",{type:"string",choices:["text","jsonl"],default:"text",describe:"jsonl exposes raw ts/user/text (incl. external-guest user IDs)"}).option("json",{type:"boolean",default:!1,describe:"Alias for --format=jsonl"}),async(F)=>{let E=D(F),C=F.json?"jsonl":F.format;if(F.target)await X7(E,F.target,F.limit,C);else await Y7(E)}).command("thread <target> <ts>","Show thread messages",(F)=>F.positional("target",{type:"string",demandOption:!0}).positional("ts",{type:"string",demandOption:!0}).option("limit",{alias:"n",type:"number",default:100}).option("format",{type:"string",choices:["text","jsonl"],default:"text",describe:"jsonl exposes raw ts/user/text (incl. external-guest user IDs)"}).option("json",{type:"boolean",default:!1,describe:"Alias for --format=jsonl"}),async(F)=>{let E=F.json?"jsonl":F.format;await Q7(D(F),F.target,F.ts,F.limit,E)}).command(["channel","channels","ch"],"Channel commands",(F)=>F.command(["ls","list"],"List channels",(E)=>E.option("limit",{alias:"n",type:"number",default:200}).option("filter",{alias:"f",type:"string"}).option("all",{type:"boolean",default:!1}).option("format",{type:"string",choices:["text","jsonl"],default:"text"}).option("json",{type:"boolean",default:!1,describe:"Alias for --format=jsonl"}),async(E)=>{await W7(D(E),E.limit,E.filter,E.all,E.json?"jsonl":E.format)}).command("get <channel>","Show channel details",(E)=>E.positional("channel",{type:"string",demandOption:!0,describe:"#name or channel ID"}),async(E)=>{let C=D(E),B=E.channel,$=B.startsWith("#")||B.startsWith("@")||B.startsWith("C")||B.startsWith("G")||B.startsWith("D")?B:`#${B}`,G=await ND(C,$),Z=y(await S0(C,G)),z=y(Z.channel),Q=typeof z.name==="string"?z.name:G,Y=z.is_im===!0?"@":"#",W=String(y(z.purpose).value??""),V=String(y(z.topic).value??""),O=z.num_members??z.member_count??"";if(console.log(`${Y}${Q} ${G}`),V)console.log(`topic: ${V}`);if(W)console.log(`purpose: ${W}`);if(O)console.log(`members: ${O}`);console.log(`private: ${z.is_private===!0}`)}).command(["create <name>","new <name>"],"Create a channel (confirm-hash safety gate)",(E)=>E.positional("name",{type:"string",demandOption:!0,describe:"Channel name (Slack lowercases it; no spaces)"}).option("private",{type:"boolean",default:!1,describe:"Create a private channel"}).option("invite",{type:"string",array:!0,default:[],describe:"Users to invite after creating (@handle or Uxxxx, repeatable)"}).option("code",{type:"string",describe:"Safety hash to confirm create"}),async(E)=>{let C=D(E),B=E.name.replace(/^#/,"").toLowerCase(),$=E.private===!0,G=E.invite.filter(Boolean),Z=pD(B,String($),G.join(","));if(E.code!==Z)mD(E.code,Z,["--- Creating channel -------------------------",` name: ${$?"\uD83D\uDD12 ":"#"}${B}`,` private: ${$}`,...G.length?[` invite: ${G.join(", ")}`]:[],"--------------------------------\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"]);let z;try{z=await N1(C,B,$)}catch(Q){console.error(Q instanceof Error?Q.message:String(Q)),process.exit(1)}if(console.log(`\u2713 Created ${$?"\uD83D\uDD12 ":"#"}${z.name} (${z.id})`),G.length){let Q=[];for(let J of G)try{Q.push(J.startsWith("U")||J.startsWith("W")?J:await T0(C,J))}catch(Y){console.error(` ! could not resolve ${J}: ${Y instanceof Error?Y.message:String(Y)}`)}if(Q.length)try{await T1(C,z.id,Q),console.log(`\u2713 Invited ${Q.length} member${Q.length===1?"":"s"}`)}catch(J){console.error(` ! invite failed: ${J instanceof Error?J.message:String(J)}`)}}}).demandCommand(1,"").showHelpOnFail(!0)).command(["user","usr"],"User commands",(F)=>F.command(["ls","list"],"List workspace members",(E)=>E.option("limit",{alias:"n",type:"number",default:200}).option("filter",{alias:"f",type:"string"}).option("format",{type:"string",choices:["text","jsonl","yaml"],default:"text"}).option("json",{type:"boolean",default:!1,describe:"Alias for --format=jsonl"}),async(E)=>{let C=E.json?"jsonl":E.format,B=await R0(D(E)),$=E.filter?.toLowerCase(),G=o(B.members).map(y).filter((z)=>z.deleted!==!0&&z.is_bot!==!0&&String(z.id)!=="USLACKBOT").filter((z)=>{if(!$)return!0;let Q=String(z.name??"").toLowerCase(),J=String(y(z.profile).real_name??"").toLowerCase(),Y=String(y(z.profile).email??"").toLowerCase();return Q.includes($)||J.includes($)||Y.includes($)}).slice(0,E.limit);if(C==="jsonl"){for(let z of G)console.log(JSON.stringify(z));return}if(C==="yaml"){for(let z of G){let Q=function(J,Y=""){if(J===null)return"null";if(typeof J==="string")return J.includes(`
|
|
145
147
|
`)?`|
|
|
146
148
|
${J.split(`
|
|
147
149
|
`).join(`
|
|
148
150
|
`)}`:J;if(typeof J!=="object")return String(J);if(Array.isArray(J))return J.map((W)=>`
|
|
149
|
-
${
|
|
150
|
-
${
|
|
151
|
-
Set SLACK_BOT_TOKEN=xoxb-... in ~/.config/slack-cli/.env (or your shell).`),process.exit(1);if(!E.channelId&&!E.userId&&E.target.startsWith("@"))try{E.userId=await
|
|
151
|
+
${Y} - ${Q(W,Y+" ")}`).join("");return Object.entries(J).map(([W,V])=>`
|
|
152
|
+
${Y} ${W}: ${Q(V,Y+" ")}`).join("")};console.log("---");for(let[J,Y]of Object.entries(z))console.log(`${J}: ${Q(Y)}`)}return}let Z=Intl.DateTimeFormat().resolvedOptions().timeZone;for(let z of G){let Q=y(z.profile),J=String(z.name??z.id),Y=String(z.id??""),W=String(Q.display_name||""),V=String(Q.real_name||""),O=String(Q.email||""),U=String(z.tz??""),N=[...new Set([W,V].filter((c)=>c&&c!==J))].join(" / "),w=[O,U&&U!==Z?U:""].filter(Boolean).join(" ");console.log(`@${J} ${Y} ${N}${w?" "+w:""}`)}}).command("get <user>","Show user details",(E)=>E.positional("user",{type:"string",demandOption:!0,describe:"@handle or user ID"}),async(E)=>{let C=D(E),B=E.user.startsWith("@")?E.user.slice(1):E.user,$=B;if(!/^U[A-Z0-9]+$/.test(B)){let w=await R0(C),c=o(w.members).map(y).find((e)=>String(e.name??"")===B);if(!c)console.error(`User not found: @${B}`),process.exit(1);$=String(c.id)}let G=y(await w1(C,$)),Z=y(G.user),z=y(Z.profile),Q=Intl.DateTimeFormat().resolvedOptions().timeZone,J=String(Z.name??$),Y=String(Z.id??$),W=String(z.display_name||""),V=String(z.real_name||""),O=String(z.email||""),U=String(Z.tz??""),_=String(z.phone||""),N=String(z.title||"");console.log(`@${J} ${Y}`);let k=[...new Set([W,V].filter((w)=>w&&w!==J))];if(k.length)console.log(`name: ${k.join(" / ")}`);if(O)console.log(`email: ${O}`);if(_)console.log(`phone: ${_}`);if(N)console.log(`title: ${N}`);if(U&&U!==Q)console.log(`tz: ${U}`)}).demandCommand(1,"").showHelpOnFail(!0)).command("news","Activity feed (mentions to you)",(F)=>F.option("limit",{alias:"l",type:"number",default:20}),async(F)=>{await O7(D(F),F.limit)}).command("search <query>","Full-text search",(F)=>F.positional("query",{type:"string",demandOption:!0}).option("count",{alias:"n",type:"number",default:100}).option("json",{type:"boolean",default:!1,describe:"Output raw JSON"}),async(F)=>{await V7(D(F),F.query,F.count,F.json)}).command("send <target> <message>","Send a message (confirm-hash safety gate)",(F)=>F.positional("target",{type:"string",demandOption:!0,describe:"#chan, @user, #chan:thread_ts, or permalink (a message permalink replies in its thread)"}).positional("message",{type:"string",demandOption:!0}).option("code",{type:"string",describe:"Safety hash to confirm send"}).option("channel-id",{type:"string",describe:"Raw channel ID"}).option("user-id",{type:"string",describe:"Raw user ID (opens DM)"}).option("as-bot",{type:"boolean",default:!1,describe:"Send via the bot token (xoxb / SLACK_BOT_TOKEN) so a DM notifies the recipient and can be two-way"}).option("broadcast",{type:"boolean",default:!1,describe:`Also send to channel: broadcast a threaded reply back to the channel (Slack's "Also send to #channel" checkbox). Only effective with a thread target.`}).option("mentions",{type:"boolean",default:!0,describe:"Convert @handle tokens to real <@USERID> mentions (on by default; resolves via users.list, then channel members for Slack Connect guests). Unresolved handles stay as plain text. The confirm preview shows the converted message before sending. Disable with --no-mentions for literal @text."}),async(F)=>{let E={target:F.target,message:F.message};if(F.code)E.code=F.code;if(F["channel-id"])E.channelId=F["channel-id"];if(F["user-id"])E.userId=F["user-id"];if(F.broadcast)E.broadcast=!0;if(F.mentions!==!1)E.mentions=!0,E.mentionToken=D(F);let C;if(F["as-bot"]){let B=J0();if(!B)console.error(`Error: --as-bot needs a bot token, but no xoxb- token was found.
|
|
153
|
+
Set SLACK_BOT_TOKEN=xoxb-... in ~/.config/slack-cli/.env (or your shell).`),process.exit(1);if(!E.channelId&&!E.userId&&E.target.startsWith("@"))try{E.userId=await T0(D(F),E.target)}catch($){console.error(`Error: could not resolve ${E.target} to a user for the bot DM.
|
|
152
154
|
${$ instanceof Error?$.message:String($)}
|
|
153
|
-
Tip: pass --user-id <Uxxxx> to skip the lookup.`),process.exit(1)}C=B,E.asBot=!0}else C=D(F);try{await
|
|
154
|
-
Set SLACK_BOT_TOKEN=xoxb-... in ~/.config/slack-cli/.env (or your shell).`),process.exit(1);await
|
|
155
|
-
`).map((
|
|
156
|
-
`).map((
|
|
157
|
-
`).map((Q)=>` ${Q}`),"--------------------------------\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"]);await
|
|
155
|
+
Tip: pass --user-id <Uxxxx> to skip the lookup.`),process.exit(1)}C=B,E.asBot=!0}else C=D(F);try{await L7(C,E)}catch(B){console.error(B instanceof Error?B.message:String(B)),process.exit(1)}}).command("doctor","Check the bot token (xoxb) can carry a two-way DM (scopes + Messages Tab)",(F)=>F,async()=>{let F=J0();if(!F)console.error(`Error: slack doctor checks the bot token, but no xoxb- token was found.
|
|
156
|
+
Set SLACK_BOT_TOKEN=xoxb-... in ~/.config/slack-cli/.env (or your shell).`),process.exit(1);await N7(F)}).command("schedule","Manage scheduled messages",(F)=>F.command("send <target> <message>","Schedule a message for later delivery",(E)=>E.positional("target",{type:"string",demandOption:!0,describe:"#chan, @user, #chan:thread_ts, or permalink (a message permalink replies in its thread)"}).positional("message",{type:"string",demandOption:!0}).option("at",{type:"string",demandOption:!0,describe:"Delivery time (ISO datetime or Unix ts)"}).option("code",{type:"string",describe:"Safety hash to confirm"}).option("channel-id",{type:"string",describe:"Raw channel ID"}).option("user-id",{type:"string",describe:"Raw user ID (opens DM)"}),async(E)=>{let C={target:E.target,message:E.message,at:E.at};if(E.code)C.code=E.code;if(E["channel-id"])C.channelId=E["channel-id"];if(E["user-id"])C.userId=E["user-id"];await R7(D(E),C)}).command(["ls","list"],"List pending scheduled messages",(E)=>E.positional("target",{type:"string",describe:"#channel to filter by"}).option("channel-id",{type:"string",describe:"Raw channel ID"}),async(E)=>{await S7(D(E),E.target,E["channel-id"])}).command("rm <target> <id>","Delete a scheduled message",(E)=>E.positional("target",{type:"string",demandOption:!0,describe:"#channel or @user"}).positional("id",{type:"string",demandOption:!0,describe:"Scheduled message ID"}).option("code",{type:"string",describe:"Safety hash to confirm"}).option("channel-id",{type:"string",describe:"Raw channel ID"}),async(E)=>{let C={target:E.target,id:E.id};if(E.code)C.code=E.code;if(E["channel-id"])C.channelId=E["channel-id"];await P7(D(E),C)}).demandCommand(1,"").showHelpOnFail(!0),()=>{}).command("edit <target> <newText>","Edit a sent message",(F)=>F.positional("target",{type:"string",demandOption:!0,describe:"#chan:ts, @user:ts, or permalink"}).positional("newText",{type:"string",demandOption:!0}).option("code",{type:"string",describe:"Safety hash to confirm edit"}).option("channel-id",{type:"string",describe:"Raw channel ID"}).option("mentions",{type:"boolean",default:!0,describe:"Convert @handle tokens in the new text to real <@USERID> mentions (on by default). Unresolved handles stay as plain text. Disable with --no-mentions for literal @text."}),async(F)=>{let E={target:F.target,newText:F.newText};if(F.code)E.code=F.code;if(F["channel-id"])E.channelId=F["channel-id"];if(F.mentions!==!1)E.mentions=!0;await _7(D(F),E)}).command("delete <target>","Delete a sent message (confirm-hash safety gate)",(F)=>F.positional("target",{type:"string",demandOption:!0,describe:"#chan:ts, @user:ts, or permalink"}).option("code",{type:"string",describe:"Safety hash to confirm delete"}).option("channel-id",{type:"string",describe:"Raw channel ID"}),async(F)=>{let E={target:F.target};if(F.code)E.code=F.code;if(F["channel-id"])E.channelId=F["channel-id"];await j7(D(F),E)}).command("upload <target> <file..>","Upload one or more files to a channel or DM",(F)=>F.positional("target",{type:"string",demandOption:!0,describe:"#chan, @user, #chan:thread_ts, or permalink (a message permalink replies in its thread)"}).positional("file",{type:"string",array:!0,demandOption:!0,describe:"Path(s) to file(s)"}).option("title",{type:"string",describe:"Title (single file only)"}).option("comment",{type:"string",describe:"Initial comment (first file)"}).option("code",{type:"string",describe:"4-hex safety code to confirm upload"}).option("channel-id",{type:"string"}).option("user-id",{type:"string"}),async(F)=>{let E={target:F.target,filePaths:F.file};if(F.title)E.title=F.title;if(F.comment)E.comment=F.comment;if(F.code)E.code=F.code;if(F["channel-id"])E.channelId=F["channel-id"];if(F["user-id"])E.userId=F["user-id"];await w7(D(F),E)}).command("download <ref> [dest]","Download a file attachment (by file ID or file permalink) to disk",(F)=>F.positional("ref",{type:"string",demandOption:!0,describe:"File ID (F\u2026) or Slack file permalink"}).positional("dest",{type:"string",describe:"Output path or directory (default: ./<filename>)"}),async(F)=>{await I7(D(F),u(F),F.ref,F.dest)}).command("dump","Bulk export channel history as markdown",(F)=>F.option("days",{alias:"d",type:"number",default:7,describe:"Days of history"}).option("limit",{alias:"l",type:"number",default:200}).option("filter",{alias:"f",type:"string",describe:"Filter channel names"}),async(F)=>{await H7(D(F),F.days,F.limit,F.filter)}).command("drafts","Manage message drafts (requires xoxc desktop token)",(F)=>F.command(["$0","ls","list"],"List pending drafts",(E)=>E.option("all",{alias:"a",type:"boolean",default:!1,describe:"Include sent drafts"}),async(E)=>{await q7(D(E),u(E),E.all)}).command(["new <channel> [text..]","save <channel> [text..]"],"Create a draft",(E)=>E.positional("channel",{type:"string",demandOption:!0}).positional("text",{type:"string",array:!0,default:[]}),async(E)=>{let C=D(E),B=u(E),$=E.text.join(" ");if(!$)console.error("Usage: slack drafts new <#channel|@user> <text>"),process.exit(2);let G=await ND(C,E.channel,B),Z=await R1(C,G,$,B);console.log(`\u2713 Draft created (id: ${y(Z.draft).id??"?"})`)}).command("get <id>","Show a draft",(E)=>E.positional("id",{type:"string",demandOption:!0}),async(E)=>{await U7(D(E),u(E),E.id)}).command(["edit <id> [text..]","update <id> [text..]"],"Edit a draft",(E)=>E.positional("id",{type:"string",demandOption:!0}).positional("text",{type:"string",array:!0,default:[]}).option("code",{type:"string"}),async(E)=>{let C=D(E),B=u(E),$=E.text.join(" ");if(!$)console.error("Usage: slack drafts edit <id> <new-text>"),process.exit(2);let G=await cu(C,B),Z=o(G.drafts).map(y).find((Y)=>String(Y.id)===E.id);if(!Z)console.error(`Draft not found: ${E.id}`),process.exit(1);let z=LF(Z),Q=pD(z,$);if(E.code!==Q)mD(E.code,Q,["--- Current draft ----------------------------",...z.split(`
|
|
157
|
+
`).map((Y)=>` ${Y}`),"--- Replacing with ---------------------------",...$.split(`
|
|
158
|
+
`).map((Y)=>` ${Y}`),"--------------------------------\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"]);let J=await S1(C,E.id,v0(Z),$,B);console.log(`\u2713 Draft updated (id: ${y(J.draft).id??"?"})`)}).command(["delete <id>","rm <id>"],"Delete a draft",(E)=>E.positional("id",{type:"string",demandOption:!0}).option("code",{type:"string"}),async(E)=>{let C=D(E),B=u(E),$=await cu(C,B),G=o($.drafts).map(y).find((Q)=>String(Q.id)===E.id);if(!G)console.error(`Draft not found: ${E.id}`),process.exit(1);let Z=LF(G),z=pD(E.id,Z);if(E.code!==z)mD(E.code,z,["\u2500-- Deleting draft \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",` id: ${E.id}`,...Z.split(`
|
|
159
|
+
`).map((Q)=>` ${Q}`),"--------------------------------\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"]);await x1(C,E.id,B),console.log(`\u2713 Draft deleted (id: ${E.id})`)})).command("auth","Authentication and workspace management",(F)=>F.command("token","Add a workspace \u2014 paste an existing xoxp-/xoxb- token",(E)=>E.option("token",{type:"string",describe:"Token to save directly (non-interactive)"}).option("name",{type:"string",describe:"Workspace name (used with --token)"}),async(E)=>{await E1({...E.token!==void 0?{token:E.token}:{},...E.name!==void 0?{name:E.name}:{}})}).command("app","Create a new Slack app and obtain a token (guided wizard)",(E)=>E.option("bot",{type:"boolean",describe:"Create a bot token (xoxb-) instead of user (xoxp-)"}),async(E)=>{await C1({...E.bot!==void 0?{bot:E.bot}:{}})}).command("login","Interactive auth wizard (all auth methods: desktop app, token, new app)",(E)=>E.option("token",{type:"string",describe:"Token to save directly (non-interactive)"}).option("name",{type:"string",describe:"Workspace name (used with --token)"}),async(E)=>{await qF({...E.token!==void 0?{token:E.token}:{},...E.name!==void 0?{name:E.name}:{}})}).command(["ls","status"],"Show auth status",()=>{},()=>{let E=L8();if(E.length===0){console.log("No workspaces configured. Run: slack auth login");return}for(let{name:C,profile:B,current:$}of E)console.log(`${$?"* ":" "}${C} ${B.team} (${B.user}) ${B.url??""}`)}).command("use <name>","Switch active workspace",(E)=>E.positional("name",{type:"string",demandOption:!0}).option("g",{type:"boolean",default:!1,describe:"Write global lockfile (~/.slack-cli/workspace)"}),(E)=>{if(!E.g)$7(tD(process.cwd(),".slack-cli"));T8(E.name,E.g),console.log(`Switched to workspace "${E.name}" ${E.g?"globally":"locally"}`)}).command(["logout <name>","rm <name>","remove <name>"],"Remove a workspace",(E)=>E.positional("name",{type:"string",demandOption:!0}),(E)=>{N8(E.name),console.log(`Removed workspace "${E.name}"`)}).command(["chrome","cookie"],"Attach Chrome browser xoxd cookie to a workspace (macOS, interactive)",(E)=>E.option("workspace",{type:"string",alias:"w",describe:"Workspace name to update (default: active)"}),async(E)=>{await u1({...E.workspace!==void 0?{workspace:E.workspace}:{}})}).command("firefox","Attach Firefox browser xoxd cookie to a workspace (all platforms)",(E)=>E.option("workspace",{type:"string",alias:"w",describe:"Workspace name to update (default: active)"}),async(E)=>{await F1({...E.workspace!==void 0?{workspace:E.workspace}:{}})}).command("$0",!1,()=>{},()=>{F.showHelp(),process.exit(0)})).command("tail [target]","Stream new messages in real time (like tail -f)",(F)=>F.positional("target",{type:"string",describe:"#channel or @user to follow"}).option("since",{type:"string",describe:"Backfill from N ago (e.g. 10m, 2h, 1d)"}).option("thread",{type:"string",describe:"Follow a single thread by timestamp"}).option("watch-thread",{type:"string",describe:"Watch the channel's top-level timeline AND one thread's replies together (ts or permalink)"}).option("me",{type:"boolean",default:!1,describe:"Filter to messages that mention you"}).option("interval",{type:"number",default:60000,describe:"Poll interval in ms (default 60s; use --interval=3000 for near-real-time)"}).option("timeout",{type:"string",describe:"Auto-stop after this long (e.g. 30m, 2h). Exit code 0 even if nothing arrived."}).option("exit-on-message",{type:"boolean",default:!1,describe:"Stop as soon as the first new message from someone else arrives (wait-for-reply)"}).option("rtm",{type:"boolean",default:!0,describe:"Use RTM WebSocket when available (xoxc + cookie); pass --no-rtm to force polling"}),async(F)=>{let E=D(F),C=u(F),B=new AbortController;process.on("SIGINT",()=>{B.abort(),process.exit(0)}),await X1(E,F.target,{...F.since!==void 0?{since:F.since}:{},...F.thread!==void 0?{thread:F.thread}:{},...F["watch-thread"]!==void 0?{watchThread:F["watch-thread"]}:{},me:F.me,interval:F.interval,...F.timeout!==void 0?{timeout:F.timeout}:{},...F["exit-on-message"]===!0?{exitOnMessage:!0}:{},...C!==void 0?{cookie:C}:{},...F.rtm===!1?{noRtm:!0}:{}},B.signal)}).command("login",!1,(F)=>F.option("token",{type:"string"}).option("name",{type:"string"}),async(F)=>{await qF({...F.token!==void 0?{token:F.token}:{},...F.name!==void 0?{name:F.name}:{}})}).demandCommand(1,"Specify a command. Run with --help for usage.").strict().help().alias("help","h").parseAsync()}b7().catch((D)=>{console.error(D instanceof Error?D.message:String(D)),process.exit(1)});
|