slack-term 1.22.0 → 1.23.1
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 +10 -0
- package/dist/cli.js +85 -81
- package/package.json +4 -2
- package/ts/cli.ts +214 -58
- package/ts/slack.ts +71 -44
package/dist/cli.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
|
-
import{createRequire as X3}from"node:module";var C3=Object.create;var{getPrototypeOf:B3,defineProperty:n0,getOwnPropertyNames:$3}=Object;var G3=Object.prototype.hasOwnProperty;function z3(D){return this[D]}var Z3,J3,l0=(D,u,F)=>{var E=D!=null&&typeof D==="object";if(E){var C=u?Z3??=new WeakMap:J3??=new WeakMap,B=C.get(D);if(B)return B}F=D!=null?C3(B3(D)):{};let $=u||!D||!D.__esModule?n0(F,"default",{value:D,enumerable:!0}):F;for(let G of $3(D))if(!G3.call($,G))n0($,G,{get:z3.bind(D,G),enumerable:!0});if(E)C.set(D,$);return $};var t0=(D,u)=>()=>(u||D((u={exports:{}}).exports,u),u.exports);var wD=X3(import.meta.url);var Q2=t0((W9,X2)=>{X2.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=t0((FE,v2)=>{v2.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 Y7}from"crypto";import{existsSync as a1,readFileSync as W7,mkdirSync as O7,writeFileSync as e1}from"fs";import{homedir as t1}from"os";import{join as oD}from"path";import{notStrictEqual as s3,strictEqual as r3}from"assert";var Q3={right:O3,center:V3};class s0{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(`
|
|
3
|
+
import{createRequire as Q3}from"node:module";var B3=Object.create;var{getPrototypeOf:$3,defineProperty:r0,getOwnPropertyNames:G3}=Object;var z3=Object.prototype.hasOwnProperty;function Z3(D){return this[D]}var J3,X3,a0=(D,u,F)=>{var E=D!=null&&typeof D==="object";if(E){var C=u?J3??=new WeakMap:X3??=new WeakMap,B=C.get(D);if(B)return B}F=D!=null?B3($3(D)):{};let $=u||!D||!D.__esModule?r0(F,"default",{value:D,enumerable:!0}):F;for(let G of G3(D))if(!z3.call($,G))r0($,G,{get:Z3.bind(D,G),enumerable:!0});if(E)C.set(D,$);return $};var e0=(D,u)=>()=>(u||D((u={exports:{}}).exports,u),u.exports);var wD=Q3(import.meta.url);var H2=e0((V9,V2)=>{V2.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 k2=e0((CE,c2)=>{c2.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 W7}from"crypto";import{existsSync as e1,readFileSync as O7,mkdirSync as V7,writeFileSync as D3}from"fs";import{homedir as o1}from"os";import{join as oD}from"path";import{notStrictEqual as r3,strictEqual as a3}from"assert";var Y3={right:V3,center:H3};class u2{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
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[$],
|
|
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=Y3[D[$].align];if(Z=J(Z,z),HD.stringWidth(Z)<z)Z+=" ".repeat((G||0)-HD.stringWidth(Z)-1)}let Y=D[$].padding||[0,0,0,0];if(Y[3])C+=" ".repeat(Y[3]);if(C+=D2(D[$],Z,"| "),C+=Z,C+=D2(D[$],Z," |"),Y[1])C+=" ".repeat(Y[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(($,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,Y3(D[$]));return B})}}function o0(D,u,F){if(D.border){if(/[.']-+[.']/.test(u))return"";if(u.trim().length!==0)return F;return" "}return""}function Y3(D){let u=D.padding||[],F=1+(u[3]||0)+(u[1]||0);if(D.border)return F+4;return F}function W3(){if(typeof process==="object"&&process.stdout&&process.stdout.columns)return process.stdout.columns;return 80}function O3(D,u){D=D.trim();let F=HD.stringWidth(D);if(F<u)return" ".repeat(u-F)+D;return D}function V3(D,u){D=D.trim();let F=HD.stringWidth(D);if(F>=u)return D;return" ".repeat(u-F>>1)+D}var HD;function r0(D,u){return HD=u,new s0({width:(D===null||D===void 0?void 0:D.width)||W3(),wrap:D===null||D===void 0?void 0:D.wrap})}function SF({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 H3=SF();function rD(D){if(typeof D!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);if(!D.includes("\x1B")&&!D.includes(""))return D;return D.replace(H3,"")}var a0=161,e0=1114109,D2=[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],u2=12288,F2=65510,E2=[12288,12288,65281,65376,65504,65510];var C2=4352,B2=262141,PF=[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 lu=(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 $2=19968,[q3,K3]=M3(PF);function M3(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($2>=C&&$2<=B)return[C,B];if(B-C>F-u)u=C,F=B}return[u,F]}var G2=(D)=>{if(D<a0||D>e0)return!1;return lu(D2,D)},z2=(D)=>{if(D<u2||D>F2)return!1;return lu(E2,D)};var Z2=(D)=>{if(D>=q3&&D<=K3)return!0;if(D<C2||D>B2)return!1;return lu(PF,D)};function U3(D){if(!Number.isSafeInteger(D))throw TypeError(`Expected a code point, got \`${typeof D}\`.`)}function J2(D,{ambiguousAsWide:u=!1}={}){if(U3(D),z2(D)||Z2(D)||u&&G2(D))return 2;return 1}var Y2=l0(Q2(),1),_3=new Intl.Segmenter,j3=/^\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=rD(D);if(D.length===0)return 0;let C=0,B={ambiguousAsWide:!F};for(let{segment:$}of _3.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(j3.test($))continue;if(Y2.default().test($)){C+=2;continue}C+=J2(G,B)}return C}var W2=(D=0)=>(u)=>`\x1B[${u+D}m`,O2=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,V2=(D=0)=>(u,F,E)=>`\x1B[${38+D};2;${u};${F};${E}m`,e={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]}},q9=Object.keys(e.modifier),A3=Object.keys(e.color),L3=Object.keys(e.bgColor),K9=[...A3,...L3];function N3(){let D=new Map;for(let[u,F]of Object.entries(e)){for(let[E,C]of Object.entries(F))e[E]={open:`\x1B[${C[0]}m`,close:`\x1B[${C[1]}m`},F[E]=e[E],D.set(C[0],C[1]);Object.defineProperty(e,u,{value:F,enumerable:!1})}return Object.defineProperty(e,"codes",{value:D,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",e.color.ansi=W2(),e.color.ansi256=O2(),e.color.ansi16m=V2(),e.bgColor.ansi=W2(10),e.bgColor.ansi256=O2(10),e.bgColor.ansi16m=V2(10),Object.defineProperties(e,{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)=>e.rgbToAnsi256(...e.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)=>e.ansi256ToAnsi(e.rgbToAnsi256(u,F,E)),enumerable:!1},hexToAnsi:{value:(u)=>e.ansi256ToAnsi(e.hexToAnsi256(u)),enumerable:!1}}),e}var T3=N3(),H2=T3;var ou=new Set(["\x1B",""]),R3=39,xF="\x07",M2="[",S3="]",U2="m",tu=`${S3}8;;`,q2=(D)=>`${ou.values().next().value}${M2}${D}${U2}`,K2=(D)=>`${ou.values().next().value}${tu}${D}${xF}`,P3=(D)=>D.split(" ").map((u)=>TD(u)),wF=(D,u,F)=>{let E=[...u],C=!1,B=!1,$=TD(rD(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(ou.has(Z))C=!0,B=E.slice(G+1,G+1+tu.length).join("")===tu;if(C){if(B){if(Z===xF)C=!1,B=!1}else if(Z===U2)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()},w3=(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("")},x3=(D,u,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let E="",C,B,$=P3(D),G=[""];for(let[J,Y]of D.split(" ").entries()){if(F.trim!==!1)G[G.length-1]=G.at(-1).trimStart();let V=TD(G.at(-1));if(J!==0){if(V>=u&&(F.wordWrap===!1||F.trim===!1))G.push(""),V=0;if(V>0||F.trim===!1)G[G.length-1]+=" ",V++}if(F.hard&&$[J]>u){let O=u-V,W=1+Math.floor(($[J]-O-1)/u);if(Math.floor(($[J]-1)/u)<W)G.push("");wF(G,Y,u);continue}if(V+$[J]>u&&V>0&&$[J]>0){if(F.wordWrap===!1&&V<u){wF(G,Y,u);continue}G.push("")}if(V+$[J]>u&&F.wordWrap===!1){wF(G,Y,u);continue}G[G.length-1]+=Y}if(F.trim!==!1)G=G.map((J)=>w3(J));let Z=G.join(`
|
|
8
|
-
`),
|
|
9
|
-
`){if(B)E+=
|
|
10
|
-
`){if(C&&
|
|
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,W3(D[$]));return B})}}function D2(D,u,F){if(D.border){if(/[.']-+[.']/.test(u))return"";if(u.trim().length!==0)return F;return" "}return""}function W3(D){let u=D.padding||[],F=1+(u[3]||0)+(u[1]||0);if(D.border)return F+4;return F}function O3(){if(typeof process==="object"&&process.stdout&&process.stdout.columns)return process.stdout.columns;return 80}function V3(D,u){D=D.trim();let F=HD.stringWidth(D);if(F<u)return" ".repeat(u-F)+D;return D}function H3(D,u){D=D.trim();let F=HD.stringWidth(D);if(F>=u)return D;return" ".repeat(u-F>>1)+D}var HD;function F2(D,u){return HD=u,new u2({width:(D===null||D===void 0?void 0:D.width)||O3(),wrap:D===null||D===void 0?void 0:D.wrap})}function SF({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 q3=SF();function rD(D){if(typeof D!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);if(!D.includes("\x1B")&&!D.includes(""))return D;return D.replace(q3,"")}var E2=161,C2=1114109,B2=[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],$2=12288,G2=65510,z2=[12288,12288,65281,65376,65504,65510];var Z2=4352,J2=262141,PF=[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 lu=(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 X2=19968,[K3,U3]=_3(PF);function _3(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(X2>=C&&X2<=B)return[C,B];if(B-C>F-u)u=C,F=B}return[u,F]}var Q2=(D)=>{if(D<E2||D>C2)return!1;return lu(B2,D)},Y2=(D)=>{if(D<$2||D>G2)return!1;return lu(z2,D)};var W2=(D)=>{if(D>=K3&&D<=U3)return!0;if(D<Z2||D>J2)return!1;return lu(PF,D)};function j3(D){if(!Number.isSafeInteger(D))throw TypeError(`Expected a code point, got \`${typeof D}\`.`)}function O2(D,{ambiguousAsWide:u=!1}={}){if(j3(D),Y2(D)||W2(D)||u&&Q2(D))return 2;return 1}var q2=a0(H2(),1),M3=new Intl.Segmenter,A3=/^\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=rD(D);if(D.length===0)return 0;let C=0,B={ambiguousAsWide:!F};for(let{segment:$}of M3.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(A3.test($))continue;if(q2.default().test($)){C+=2;continue}C+=O2(G,B)}return C}var K2=(D=0)=>(u)=>`\x1B[${u+D}m`,U2=(D=0)=>(u)=>`\x1B[${38+D};5;${u}m`,_2=(D=0)=>(u,F,E)=>`\x1B[${38+D};2;${u};${F};${E}m`,e={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]}},U9=Object.keys(e.modifier),L3=Object.keys(e.color),N3=Object.keys(e.bgColor),_9=[...L3,...N3];function T3(){let D=new Map;for(let[u,F]of Object.entries(e)){for(let[E,C]of Object.entries(F))e[E]={open:`\x1B[${C[0]}m`,close:`\x1B[${C[1]}m`},F[E]=e[E],D.set(C[0],C[1]);Object.defineProperty(e,u,{value:F,enumerable:!1})}return Object.defineProperty(e,"codes",{value:D,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",e.color.ansi=K2(),e.color.ansi256=U2(),e.color.ansi16m=_2(),e.bgColor.ansi=K2(10),e.bgColor.ansi256=U2(10),e.bgColor.ansi16m=_2(10),Object.defineProperties(e,{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)=>e.rgbToAnsi256(...e.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)=>e.ansi256ToAnsi(e.rgbToAnsi256(u,F,E)),enumerable:!1},hexToAnsi:{value:(u)=>e.ansi256ToAnsi(e.hexToAnsi256(u)),enumerable:!1}}),e}var R3=T3(),j2=R3;var ou=new Set(["\x1B",""]),S3=39,xF="\x07",L2="[",P3="]",N2="m",tu=`${P3}8;;`,M2=(D)=>`${ou.values().next().value}${L2}${D}${N2}`,A2=(D)=>`${ou.values().next().value}${tu}${D}${xF}`,w3=(D)=>D.split(" ").map((u)=>TD(u)),wF=(D,u,F)=>{let E=[...u],C=!1,B=!1,$=TD(rD(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(ou.has(z))C=!0,B=E.slice(G+1,G+1+tu.length).join("")===tu;if(C){if(B){if(z===xF)C=!1,B=!1}else if(z===N2)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()},x3=(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("")},I3=(D,u,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let E="",C,B,$=w3(D),G=[""];for(let[J,Q]of D.split(" ").entries()){if(F.trim!==!1)G[G.length-1]=G.at(-1).trimStart();let O=TD(G.at(-1));if(J!==0){if(O>=u&&(F.wordWrap===!1||F.trim===!1))G.push(""),O=0;if(O>0||F.trim===!1)G[G.length-1]+=" ",O++}if(F.hard&&$[J]>u){let V=u-O,W=1+Math.floor(($[J]-V-1)/u);if(Math.floor(($[J]-1)/u)<W)G.push("");wF(G,Q,u);continue}if(O+$[J]>u&&O>0&&$[J]>0){if(F.wordWrap===!1&&O<u){wF(G,Q,u);continue}G.push("")}if(O+$[J]>u&&F.wordWrap===!1){wF(G,Q,u);continue}G[G.length-1]+=Q}if(F.trim!==!1)G=G.map((J)=>x3(J));let z=G.join(`
|
|
8
|
+
`),Z=[...z],Y=0;for(let[J,Q]of Z.entries()){if(E+=Q,ou.has(Q)){let{groups:V}=new RegExp(`(?:\\${L2}(?<code>\\d+)m|\\${tu}(?<uri>.*)${xF})`).exec(z.slice(Y))||{groups:{}};if(V.code!==void 0){let W=Number.parseFloat(V.code);C=W===S3?void 0:W}else if(V.uri!==void 0)B=V.uri.length===0?void 0:V.uri}let O=j2.codes.get(Number(C));if(Z[J+1]===`
|
|
9
|
+
`){if(B)E+=A2("");if(C&&O)E+=M2(O)}else if(Q===`
|
|
10
|
+
`){if(C&&O)E+=M2(C);if(B)E+=A2(B)}Y+=Q.length}return E};function IF(D,u,F){return String(D).normalize().replaceAll(`\r
|
|
11
11
|
`,`
|
|
12
12
|
`).split(`
|
|
13
|
-
`).map((E)=>
|
|
14
|
-
`)}function bF(D){return r0(D,{stringWidth:TD,stripAnsi:rD,wrap:IF})}import{dirname as _2,resolve as j2}from"path";import{readdirSync as I3,statSync as b3}from"fs";function fF(D,u){let F=j2(".",D),E;if(!b3(F).isDirectory())F=_2(F);while(!0){if(E=u(F,I3(F)),E)return j2(F,E);if(F=_2(E=F),E===F)break}}import{inspect as a3}from"util";import{fileURLToPath as m2}from"url";import{format as v3}from"util";import{normalize as p3,resolve as y3}from"path";function aD(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 su(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 ru(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 A2(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 jD;(function(D){D.BOOLEAN="boolean",D.STRING="string",D.NUMBER="number",D.ARRAY="array"})(jD||(jD={}));var vD;class vF{constructor(D){vD=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=A2(D),C=typeof D==="string",B=f3(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),V=Object.create(null),O=F.__||vD.format,W={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:[]},K=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,_=new RegExp("^--"+$["negation-prefix"]+"(.+)");if([].concat(F.array||[]).filter(Boolean).forEach(function(H){let M=typeof H==="object"?H.key:H,A=Object.keys(H).map(function(U){return{boolean:"bools",string:"strings",number:"numbers"}[U]}).filter(Boolean).pop();if(A)W[A][M]=!0;W.arrays[M]=!0,W.keys.push(M)}),[].concat(F.boolean||[]).filter(Boolean).forEach(function(H){W.bools[H]=!0,W.keys.push(H)}),[].concat(F.string||[]).filter(Boolean).forEach(function(H){W.strings[H]=!0,W.keys.push(H)}),[].concat(F.number||[]).filter(Boolean).forEach(function(H){W.numbers[H]=!0,W.keys.push(H)}),[].concat(F.count||[]).filter(Boolean).forEach(function(H){W.counts[H]=!0,W.keys.push(H)}),[].concat(F.normalize||[]).filter(Boolean).forEach(function(H){W.normalize[H]=!0,W.keys.push(H)}),typeof F.narg==="object")Object.entries(F.narg).forEach(([H,M])=>{if(typeof M==="number")W.nargs[H]=M,W.keys.push(H)});if(typeof F.coerce==="object")Object.entries(F.coerce).forEach(([H,M])=>{if(typeof M==="function")W.coercions[H]=M,W.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){W.configs[H]=!0});else if(typeof F.config==="object")Object.entries(F.config).forEach(([H,M])=>{if(typeof M==="boolean"||typeof M==="function")W.configs[H]=M})}Ru(F.key,B,F.default,W.arrays),Object.keys(G).forEach(function(H){(W.aliases[H]||[]).forEach(function(M){G[M]=G[H]})});let j=null;RF();let I=[],L=Object.assign(Object.create(null),{_:[]}),m={};for(let H=0;H<E.length;H++){let M=E[H],A=M.replace(/^-{3,}/,"---"),U,q,P,T,f,JD;if(M!=="--"&&/^-/.test(M)&&t(M))d(M);else if(A.match(/^---+(=|$)/)){d(M);continue}else if(M.match(/^--.+=/)||!$["short-option-groups"]&&M.match(/^-.+=/)){if(T=M.match(/^--?([^=]+)=([\s\S]*)$/),T!==null&&Array.isArray(T)&&T.length>=3)if(h(T[1],W.arrays))H=_D(H,T[1],E,T[2]);else if(h(T[1],W.nargs)!==!1)H=o(H,T[1],E,T[2]);else n(T[1],T[2],!0)}else if(M.match(_)&&$["boolean-negation"]){if(T=M.match(_),T!==null&&Array.isArray(T)&&T.length>=2)q=T[1],n(q,h(q,W.arrays)?[!1]:!1)}else if(M.match(/^--.+/)||!$["short-option-groups"]&&M.match(/^-[^-]+/)){if(T=M.match(/^--?(.+)/),T!==null&&Array.isArray(T)&&T.length>=2)if(q=T[1],h(q,W.arrays))H=_D(H,q,E);else if(h(q,W.nargs)!==!1)H=o(H,q,E);else if(f=E[H+1],f!==void 0&&(!f.match(/^-/)||f.match(K))&&!h(q,W.bools)&&!h(q,W.counts))n(q,f),H++;else if(/^(true|false)$/.test(f))n(q,f),H++;else n(q,k(q))}else if(M.match(/^-.\..+=/)){if(T=M.match(/^-([^=]+)=([\s\S]*)$/),T!==null&&Array.isArray(T)&&T.length>=3)n(T[1],T[2])}else if(M.match(/^-.\..+/)&&!M.match(K)){if(f=E[H+1],T=M.match(/^-(.\..+)/),T!==null&&Array.isArray(T)&&T.length>=2)if(q=T[1],f!==void 0&&!f.match(/^-/)&&!h(q,W.bools)&&!h(q,W.counts))n(q,f),H++;else n(q,k(q))}else if(M.match(/^-[^-]+/)&&!M.match(K)){P=M.slice(1,-1).split(""),U=!1;for(let YD=0;YD<P.length;YD++){if(f=M.slice(YD+2),P[YD+1]&&P[YD+1]==="="){if(JD=M.slice(YD+3),q=P[YD],h(q,W.arrays))H=_D(H,q,E,JD);else if(h(q,W.nargs)!==!1)H=o(H,q,E,JD);else n(q,JD);U=!0;break}if(f==="-"){n(P[YD],f);continue}if(/[A-Za-z]/.test(P[YD])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(f)&&h(f,W.bools)===!1){n(P[YD],f),U=!0;break}if(P[YD+1]&&P[YD+1].match(/\W/)){n(P[YD],f),U=!0;break}else n(P[YD],k(P[YD]))}if(q=M.slice(-1)[0],!U&&q!=="-")if(h(q,W.arrays))H=_D(H,q,E);else if(h(q,W.nargs)!==!1)H=o(H,q,E);else if(f=E[H+1],f!==void 0&&(!/^(-|--)[^-]/.test(f)||f.match(K))&&!h(q,W.bools)&&!h(q,W.counts))n(q,f),H++;else if(/^(true|false)$/.test(f))n(q,f),H++;else n(q,k(q))}else if(M.match(/^-[0-9]$/)&&M.match(K)&&h(M.slice(1),W.bools))q=M.slice(1),n(q,k(q));else if(M==="--"){I=E.slice(H+1);break}else if($["halt-at-non-option"]){I=E.slice(H);break}else d(M)}if(BD(L,!0),BD(L,!1),x(L),l(),mD(L,W.aliases,G,!0),i(L),$["set-placeholder-key"])$D(L);if(Object.keys(W.counts).forEach(function(H){if(!s(L,H.split(".")))n(H,0)}),Q&&I.length)L[J]=[];if(I.forEach(function(H){L[J].push(H)}),$["camel-case-expansion"]&&$["strip-dashed"])Object.keys(L).filter((H)=>H!=="--"&&H.includes("-")).forEach((H)=>{delete L[H]});if($["strip-aliased"])[].concat(...Object.keys(B).map((H)=>B[H])).forEach((H)=>{if($["camel-case-expansion"]&&H.includes("-"))delete L[H.split(".").map((M)=>aD(M)).join(".")];delete L[H]});function d(H){let M=N("_",H);if(typeof M==="string"||typeof M==="number")L._.push(M)}function o(H,M,A,U){let q,P=h(M,W.nargs);if(P=typeof P!=="number"||isNaN(P)?1:P,P===0){if(!zD(U))j=Error(O("Argument unexpected for: %s",M));return n(M,k(M)),H}let T=zD(U)?0:1;if($["nargs-eats-options"]){if(A.length-(H+1)+T<P)j=Error(O("Not enough arguments following: %s",M));T=P}else{for(q=H+1;q<A.length;q++)if(!A[q].match(/^-[^0-9]/)||A[q].match(K)||t(A[q]))T++;else break;if(T<P)j=Error(O("Not enough arguments following: %s",M))}let f=Math.min(T,P);if(!zD(U)&&f>0)n(M,U),f--;for(q=H+1;q<f+H+1;q++)n(M,A[q]);return H+f}function _D(H,M,A,U){let q=[],P=U||A[H+1],T=h(M,W.nargs);if(h(M,W.bools)&&!/^(true|false)$/.test(P))q.push(!0);else if(zD(P)||zD(U)&&/^-/.test(P)&&!K.test(P)&&!t(P)){if(G[M]!==void 0){let f=G[M];q=Array.isArray(f)?f:[f]}}else{if(!zD(U))q.push(w(M,U,!0));for(let f=H+1;f<A.length;f++){if(!$["greedy-arrays"]&&q.length>0||T&&typeof T==="number"&&q.length>=T)break;if(P=A[f],/^-/.test(P)&&!K.test(P)&&!t(P))break;H=f,q.push(w(M,P,C))}}if(typeof T==="number"&&(T&&q.length<T||isNaN(T)&&q.length===0))j=Error(O("Not enough arguments following: %s",M));return n(M,q),H}function n(H,M,A=C){if(/-/.test(H)&&$["camel-case-expansion"]){let P=H.split(".").map(function(T){return aD(T)}).join(".");sD(H,P)}let U=w(H,M,A),q=H.split(".");if(hD(L,q,U),W.aliases[H])W.aliases[H].forEach(function(P){let T=P.split(".");hD(L,T,U)});if(q.length>1&&$["dot-notation"])(W.aliases[q[0]]||[]).forEach(function(P){let T=P.split("."),f=[].concat(q);if(f.shift(),T=T.concat(f),!(W.aliases[H]||[]).includes(T.join(".")))hD(L,T,U)});if(h(H,W.normalize)&&!h(H,W.arrays))[H].concat(W.aliases[H]||[]).forEach(function(T){Object.defineProperty(m,T,{enumerable:!0,get(){return M},set(f){M=typeof f==="string"?vD.normalize(f):f}})})}function sD(H,M){if(!(W.aliases[H]&&W.aliases[H].length))W.aliases[H]=[M],Y[M]=!0;if(!(W.aliases[M]&&W.aliases[M].length))sD(M,H)}function w(H,M,A){if(A)M=h3(M);if(h(H,W.bools)||h(H,W.counts)){if(typeof M==="string")M=M==="true"}let U=Array.isArray(M)?M.map(function(q){return N(H,q)}):N(H,M);if(h(H,W.counts)&&(zD(U)||typeof U==="boolean"))U=hF();if(h(H,W.normalize)&&h(H,W.arrays))if(Array.isArray(M))U=M.map((q)=>{return vD.normalize(q)});else U=vD.normalize(M);return U}function N(H,M){if(!$["parse-positional-numbers"]&&H==="_")return M;if(!h(H,W.strings)&&!h(H,W.bools)&&!Array.isArray(M)){if(ru(M)&&$["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${M}`)))||!zD(M)&&h(H,W.numbers))M=Number(M)}return M}function x(H){let M=Object.create(null);mD(M,W.aliases,G),Object.keys(W.configs).forEach(function(A){let U=H[A]||M[A];if(U)try{let q=null,P=vD.resolve(vD.cwd(),U),T=W.configs[A];if(typeof T==="function"){try{q=T(P)}catch(f){q=f}if(q instanceof Error){j=q;return}}else q=vD.require(P);y(q)}catch(q){if(q.name==="PermissionDenied")j=q;else if(H[A])j=Error(O("Invalid JSON config file: %s",U))}})}function y(H,M){Object.keys(H).forEach(function(A){let U=H[A],q=M?M+"."+A:A;if(typeof U==="object"&&U!==null&&!Array.isArray(U)&&$["dot-notation"])y(U,q);else if(!s(L,q.split("."))||h(q,W.arrays)&&$["combine-arrays"])n(q,U)})}function l(){if(typeof Z<"u")Z.forEach(function(H){y(H)})}function BD(H,M){if(typeof z>"u")return;let A=typeof z==="string"?z:"",U=vD.env();Object.keys(U).forEach(function(q){if(A===""||q.lastIndexOf(A,0)===0){let P=q.split("__").map(function(T,f){if(f===0)T=T.substring(A.length);return aD(T)});if((M&&W.configs[P.join(".")]||!M)&&!s(H,P))n(P.join("."),U[q])}})}function i(H){let M,A=new Set;Object.keys(H).forEach(function(U){if(!A.has(U)){if(M=h(U,W.coercions),typeof M==="function")try{let q=N(U,M(H[U]));[].concat(W.aliases[U]||[],U).forEach((P)=>{A.add(P),H[P]=q})}catch(q){j=q}}})}function $D(H){return W.keys.forEach((M)=>{if(~M.indexOf("."))return;if(typeof H[M]>"u")H[M]=void 0}),H}function mD(H,M,A,U=!1){Object.keys(A).forEach(function(q){if(!s(H,q.split("."))){if(hD(H,q.split("."),A[q]),U)V[q]=!0;(M[q]||[]).forEach(function(P){if(s(H,P.split(".")))return;hD(H,P.split("."),A[q])})}})}function s(H,M){let A=H;if(!$["dot-notation"])M=[M.join(".")];M.slice(0,-1).forEach(function(q){A=A[q]||{}});let U=M[M.length-1];if(typeof A!=="object")return!1;else return U in A}function hD(H,M,A){let U=H;if(!$["dot-notation"])M=[M.join(".")];M.slice(0,-1).forEach(function(JD){if(JD=L2(JD),typeof U==="object"&&U[JD]===void 0)U[JD]={};if(typeof U[JD]!=="object"||Array.isArray(U[JD])){if(Array.isArray(U[JD]))U[JD].push({});else U[JD]=[U[JD],{}];U=U[JD][U[JD].length-1]}else U=U[JD]});let q=L2(M[M.length-1]),P=h(M.join("."),W.arrays),T=Array.isArray(A),f=$["duplicate-arguments-array"];if(!f&&h(q,W.nargs)){if(f=!0,!zD(U[q])&&W.nargs[q]===1||Array.isArray(U[q])&&U[q].length===W.nargs[q])U[q]=void 0}if(A===hF())U[q]=hF(U[q]);else if(Array.isArray(U[q]))if(f&&P&&T)U[q]=$["flatten-duplicate-arrays"]?U[q].concat(A):(Array.isArray(U[q][0])?U[q]:[U[q]]).concat([A]);else if(!f&&Boolean(P)===Boolean(T))U[q]=A;else U[q]=U[q].concat([A]);else if(U[q]===void 0&&P)U[q]=T?A:[A];else if(f&&!(U[q]===void 0||h(q,W.counts)||h(q,W.bools)))U[q]=[U[q],A];else U[q]=A}function Ru(...H){H.forEach(function(M){Object.keys(M||{}).forEach(function(A){if(W.aliases[A])return;W.aliases[A]=[].concat(B[A]||[]),W.aliases[A].concat(A).forEach(function(U){if(/-/.test(U)&&$["camel-case-expansion"]){let q=aD(U);if(q!==A&&W.aliases[A].indexOf(q)===-1)W.aliases[A].push(q),Y[q]=!0}}),W.aliases[A].concat(A).forEach(function(U){if(U.length>1&&/[A-Z]/.test(U)&&$["camel-case-expansion"]){let q=su(U,"-");if(q!==A&&W.aliases[A].indexOf(q)===-1)W.aliases[A].push(q),Y[q]=!0}}),W.aliases[A].forEach(function(U){W.aliases[U]=[A].concat(W.aliases[A].filter(function(q){return U!==q}))})})})}function h(H,M){let A=[].concat(W.aliases[H]||[],H),U=Object.keys(M),q=A.find((P)=>U.includes(P));return q?M[q]:!1}function qu(H){let M=Object.keys(W);return[].concat(M.map((U)=>W[U])).some(function(U){return Array.isArray(U)?U.includes(H):U[H]})}function i0(H,...M){return[].concat(...M).some(function(U){let q=H.match(U);return q&&qu(q[1])})}function v(H){if(H.match(K)||!H.match(/^-[^-]+/))return!1;let M=!0,A,U=H.slice(1).split("");for(let q=0;q<U.length;q++){if(A=H.slice(q+2),!qu(U[q])){M=!1;break}if(U[q+1]&&U[q+1]==="="||A==="-"||/[A-Za-z]/.test(U[q])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(A)||U[q+1]&&U[q+1].match(/\W/))break}return M}function t(H){return $["unknown-options-as-args"]&&GD(H)}function GD(H){if(H=H.replace(/^-{3,}/,"--"),H.match(K))return!1;if(v(H))return!1;return!i0(H,/^-+([^=]+?)=[\s\S]*$/,_,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function k(H){if(!h(H,W.bools)&&!h(H,W.counts)&&`${H}`in G)return G[H];else return QD(uD(H))}function QD(H){return{[jD.BOOLEAN]:!0,[jD.STRING]:"",[jD.NUMBER]:void 0,[jD.ARRAY]:[]}[H]}function uD(H){let M=jD.BOOLEAN;if(h(H,W.strings))M=jD.STRING;else if(h(H,W.numbers))M=jD.NUMBER;else if(h(H,W.bools))M=jD.BOOLEAN;else if(h(H,W.arrays))M=jD.ARRAY;return M}function zD(H){return H===void 0}function RF(){Object.keys(W.counts).find((H)=>{if(h(H,W.arrays))return j=Error(O("Invalid configuration: %s, opts.count excludes opts.array.",H)),!0;else if(h(H,W.nargs))return j=Error(O("Invalid configuration: %s, opts.count excludes opts.narg.",H)),!0;return!1})}return{aliases:Object.assign({},W.aliases),argv:Object.assign(m,L),configuration:$,defaulted:Object.assign({},V),error:j,newAliases:Object.assign({},Y)}}}function f3(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 hF(D){return D!==void 0?D+1:1}function L2(D){if(D==="__proto__")return"___proto___";return D}function h3(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 m3}from"fs";import{createRequire as N2}from"node:module";var pF,yF,mF,T2=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):20,R2=(yF=(pF=process===null||process===void 0?void 0:process.versions)===null||pF===void 0?void 0:pF.node)!==null&&yF!==void 0?yF:(mF=process===null||process===void 0?void 0:process.version)===null||mF===void 0?void 0:mF.slice(1);if(R2){if(Number(R2.match(/^([^.]+)/)[1])<T2)throw Error(`yargs parser supports a minimum Node.js version of ${T2}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`)}var c3=process?process.env:{},S2=N2?N2(import.meta.url):void 0,P2=new vF({cwd:process.cwd,env:()=>{return c3},format:v3,normalize:p3,resolve:y3,require:(D)=>{if(typeof S2<"u")return S2(D);else if(D.match(/\.json$/))return JSON.parse(m3(D,"utf8"));else throw Error("only .json config files are supported in ESM")}}),Su=function(u,F){return P2.parse(u.slice(),F).argv};Su.detailed=function(D,u){return P2.parse(D.slice(),u)};Su.camelCase=aD;Su.decamelize=su;Su.looksLikeNumber=ru;var cF=Su;import{basename as e3,dirname as D6,extname as u6,relative as F6,resolve as y2,join as E6}from"path";function w2(){if(g3())return 0;return 1}function g3(){return k3()&&!process.defaultApp}function k3(){return!!process.versions.electron}function gF(D){return D.slice(w2()+1)}function x2(){return process.argv[w2()]}import{readFileSync as d3,statSync as i3,writeFile as n3}from"fs";import{format as l3}from"util";import{resolve as t3}from"path";var I2={fs:{readFileSync:d3,writeFile:n3},format:l3,resolve:t3,exists:(D)=>{try{return i3(D).isFile()}catch(u){return!1}}};var RD;class b2{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 f2(D,u){RD=u;let F=new b2(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 o3=(D)=>{return f2(D,I2)},h2=o3;var c2=l0(p2(),1);import{createRequire as C6}from"node:module";import{readFileSync as B6,readdirSync as $6}from"node:fs";var kF=m2(import.meta.url),G6=kF.substring(0,kF.lastIndexOf("node_modules")),z6=C6(import.meta.url),dF={assert:{notStrictEqual:s3,strictEqual:r3},cliui:bF,findUp:fF,getEnv:(D)=>{return process.env[D]},inspect:a3,getProcessArgvBin:x2,mainFilename:G6||process.cwd(),Parser:cF,path:{basename:e3,dirname:D6,extname:u6,relative:F6,resolve:y2,join:E6},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:B6,readdirSync:$6,require:z6,getCallerFile:()=>{let D=c2.default(3);return D.match(/^file:\/\//)?m2(D):D},stringWidth:TD,y18n:h2({directory:y2(kF,"../../../locales"),updateFiles:!1})};function WD(D,u,F,E){F.assert.notStrictEqual(D,u,E)}function iF(D,u){u.assert.strictEqual(typeof D,"string")}function Ku(D){return Object.keys(D)}function a(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 Z6=["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,$,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(),V=g2(Y);if(J.cmd.filter((W)=>W===V||W==="*").length===0)k2(V,J.cmd,C);C+=1}),B.optional.forEach((J)=>{if(Z.length===0)return;let Y=Z.shift(),V=g2(Y);if(J.cmd.filter((W)=>W===V||W==="*").length===0)k2(V,J.cmd,C);C+=1})}catch(C){console.warn(C.stack)}}function g2(D){if(Array.isArray(D))return"array";else if(D===null)return"null";return typeof D}function k2(D,u,F){throw new FD(`Invalid ${Z6[F]||"manyith"} argument. Expected ${u.join(" or ")} but received ${D}.`)}class nF{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 d2(D){if(!D)return[];return D.map((u)=>{return u.applyBeforeValidation=!1,u})}function eD(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(a(C))return C.then(($)=>Promise.all([$,B($,u)])).then(([$,G])=>Object.assign($,G));else{let $=B(C,u);return a($)?$.then((G)=>Object.assign(C,G)):Object.assign(C,$)}},D)}function Du(D,u,F=(E)=>{throw E}){try{let E=J6(D)?D():D;return a(E)?E.then((C)=>u(C)):u(E)}catch(E){return F(E)}}function J6(D){return typeof D==="function"}var Mu=/(^\*)|(^\$0)/;class n2{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=d2(C);if(E=E||(()=>{}),Array.isArray(D))if(X6(D))[D,...$]=D;else for(let Z of D)this.addHandler(Z);else if(Y6(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(i2(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(Mu.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(Mu,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 a(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(au(Z)){F.getInternalMethods().getUsageInstance().freeze();let Q=Z(F.getInternalMethods().reset(E),G);if(a(Q))return Q.then((J)=>{return z=t2(J)?J:F,this.parseAndUpdateUsage(D,u,z,C,B,$)})}else if(Q6(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 a($)?$.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=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,$,G){if(!B.getInternalMethods().getHasOutput()){let Z=B.getInternalMethods().runValidation(C,G,B.parsed.error,D);F=Du(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=eD(F,B,$,!1),F=Du(F,(z)=>{let Q=u.handler(z);return a(Q)?Q.then(()=>z):z}),!D)B.getInternalMethods().getUsageInstance().cacheHelpMessage();if(a(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=eD(F,$,Z,!0);return a(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=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(au(u))return u(D,!0);else if(!i2(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;WD(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();WD(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 l2(D,u,F,E){return new n2(D,u,F,E)}function i2(D){return typeof D==="object"&&!!D.builder&&typeof D.handler==="function"}function X6(D){return D.every((u)=>typeof u==="string")}function au(D){return typeof D==="function"}function Q6(D){return typeof D==="object"}function Y6(D){return typeof D==="object"&&!Array.isArray(D)}function gD(D={},u=()=>!0){let F={};return Ku(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 W6(D){return typeof D==="boolean"}function s2(D,u){let F=u.y18n.__,E={},C=[];E.failFn=function(N){C.push(N)};let B=null,$=null,G=!0;E.showHelpOnFail=function(N=!0,x){let[y,l]=typeof N==="string"?[!0,N]:[N,x];if(D.getInternalMethods().isGlobalContext())$=l;return B=l,G=y,E};let Z=!1;E.fail=function(N,x){let y=D.getInternalMethods().getLoggerInstance();if(C.length)for(let l=C.length-1;l>=0;--l){let BD=C[l];if(W6(BD)){if(x)throw x;else if(N)throw Error(N)}else BD(N,x,E)}else{if(D.getExitProcess())kD(!0);if(!Z){if(Z=!0,G)D.showHelp("error"),y.error();if(N||x)y.error(N||x);let l=B||$;if(l){if(N||x)y.error("");y.error(l)}}if(x=x||new FD(N),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=(w,N)=>{if(w===null)return Q=!0,z=[],E;return Q=!1,z.push([w,N||""]),E},E.getUsage=()=>{return z},E.getUsageDisabled=()=>{return Q},E.getPositionalGroupName=()=>{return F("Positionals:")};let J=[];E.example=(w,N)=>{J.push([w,N||""])};let Y=[];E.command=function(N,x,y,l,BD=!1){if(y)Y=Y.map((i)=>{return i[2]=!1,i});Y.push([N,x||"",y,l,BD])},E.getCommands=()=>Y;let V={};E.describe=function(N,x){if(Array.isArray(N))N.forEach((y)=>{E.describe(y,x)});else if(typeof N==="object")Object.keys(N).forEach((y)=>{E.describe(y,N[y])});else V[N]=x},E.getDescriptions=()=>V;let O=[];E.epilog=(w)=>{O.push(w)};let W=!1,K;E.wrap=(w)=>{W=!0,K=w},E.getWrap=()=>{if(u.getEnv("YARGS_DISABLE_WRAP"))return null;if(!W)K=_D(),W=!0;return K};let _="__yargsString__:";E.deferY18nLookup=(w)=>_+w,E.help=function(){if(L)return L;I();let N=D.customScriptName?D.$0:u.path.basename(D.$0),x=D.getDemandedOptions(),y=D.getDemandedCommands(),l=D.getDeprecatedOptions(),BD=D.getGroups(),i=D.getOptions(),$D=[];$D=$D.concat(Object.keys(V)),$D=$D.concat(Object.keys(x)),$D=$D.concat(Object.keys(y)),$D=$D.concat(Object.keys(i.default)),$D=$D.filter(d),$D=Object.keys($D.reduce((v,t)=>{if(t!=="_")v[t]=!0;return v},{}));let mD=E.getWrap(),s=u.cliui({width:mD,wrap:!!mD});if(!Q){if(z.length)z.forEach((v)=>{if(s.div({text:`${v[0].replace(/\$0/g,N)}`}),v[1])s.div({text:`${v[1]}`,padding:[1,0,0,0]})}),s.div();else if(Y.length){let v=null;if(y._)v=`${N} <${F("command")}>
|
|
15
|
-
`;else
|
|
16
|
-
`;s.div(`${
|
|
17
|
-
`);s.div(`${
|
|
18
|
-
`)}return s.toString().replace(/\s*$/,"")};function
|
|
13
|
+
`).map((E)=>I3(E,u,F)).join(`
|
|
14
|
+
`)}function bF(D){return F2(D,{stringWidth:TD,stripAnsi:rD,wrap:IF})}import{dirname as T2,resolve as R2}from"path";import{readdirSync as b3,statSync as f3}from"fs";function fF(D,u){let F=R2(".",D),E;if(!f3(F).isDirectory())F=T2(F);while(!0){if(E=u(F,b3(F)),E)return R2(F,E);if(F=T2(E=F),E===F)break}}import{inspect as e3}from"util";import{fileURLToPath as i2}from"url";import{format as p3}from"util";import{normalize as y3,resolve as m3}from"path";function aD(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 su(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 ru(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 S2(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 MD;(function(D){D.BOOLEAN="boolean",D.STRING="string",D.NUMBER="number",D.ARRAY="array"})(MD||(MD={}));var vD;class vF{constructor(D){vD=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=S2(D),C=typeof D==="string",B=h3(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,Y=$["populate--"],J=Y?"--":"_",Q=Object.create(null),O=Object.create(null),V=F.__||vD.format,W={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:[]},K=/^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/,A=new RegExp("^--"+$["negation-prefix"]+"(.+)");if([].concat(F.array||[]).filter(Boolean).forEach(function(H){let U=typeof H==="object"?H.key:H,N=Object.keys(H).map(function(j){return{boolean:"bools",string:"strings",number:"numbers"}[j]}).filter(Boolean).pop();if(N)W[N][U]=!0;W.arrays[U]=!0,W.keys.push(U)}),[].concat(F.boolean||[]).filter(Boolean).forEach(function(H){W.bools[H]=!0,W.keys.push(H)}),[].concat(F.string||[]).filter(Boolean).forEach(function(H){W.strings[H]=!0,W.keys.push(H)}),[].concat(F.number||[]).filter(Boolean).forEach(function(H){W.numbers[H]=!0,W.keys.push(H)}),[].concat(F.count||[]).filter(Boolean).forEach(function(H){W.counts[H]=!0,W.keys.push(H)}),[].concat(F.normalize||[]).filter(Boolean).forEach(function(H){W.normalize[H]=!0,W.keys.push(H)}),typeof F.narg==="object")Object.entries(F.narg).forEach(([H,U])=>{if(typeof U==="number")W.nargs[H]=U,W.keys.push(H)});if(typeof F.coerce==="object")Object.entries(F.coerce).forEach(([H,U])=>{if(typeof U==="function")W.coercions[H]=U,W.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){W.configs[H]=!0});else if(typeof F.config==="object")Object.entries(F.config).forEach(([H,U])=>{if(typeof U==="boolean"||typeof U==="function")W.configs[H]=U})}Su(F.key,B,F.default,W.arrays),Object.keys(G).forEach(function(H){(W.aliases[H]||[]).forEach(function(U){G[U]=G[H]})});let _=null;RF();let L=[],M=Object.assign(Object.create(null),{_:[]}),x={};for(let H=0;H<E.length;H++){let U=E[H],N=U.replace(/^-{3,}/,"---"),j,q,w,R,h,JD;if(U!=="--"&&/^-/.test(U)&&t(U))k(U);else if(N.match(/^---+(=|$)/)){k(U);continue}else if(U.match(/^--.+=/)||!$["short-option-groups"]&&U.match(/^-.+=/)){if(R=U.match(/^--?([^=]+)=([\s\S]*)$/),R!==null&&Array.isArray(R)&&R.length>=3)if(v(R[1],W.arrays))H=jD(H,R[1],E,R[2]);else if(v(R[1],W.nargs)!==!1)H=o(H,R[1],E,R[2]);else n(R[1],R[2],!0)}else if(U.match(A)&&$["boolean-negation"]){if(R=U.match(A),R!==null&&Array.isArray(R)&&R.length>=2)q=R[1],n(q,v(q,W.arrays)?[!1]:!1)}else if(U.match(/^--.+/)||!$["short-option-groups"]&&U.match(/^-[^-]+/)){if(R=U.match(/^--?(.+)/),R!==null&&Array.isArray(R)&&R.length>=2)if(q=R[1],v(q,W.arrays))H=jD(H,q,E);else if(v(q,W.nargs)!==!1)H=o(H,q,E);else if(h=E[H+1],h!==void 0&&(!h.match(/^-/)||h.match(K))&&!v(q,W.bools)&&!v(q,W.counts))n(q,h),H++;else if(/^(true|false)$/.test(h))n(q,h),H++;else n(q,d(q))}else if(U.match(/^-.\..+=/)){if(R=U.match(/^-([^=]+)=([\s\S]*)$/),R!==null&&Array.isArray(R)&&R.length>=3)n(R[1],R[2])}else if(U.match(/^-.\..+/)&&!U.match(K)){if(h=E[H+1],R=U.match(/^-(.\..+)/),R!==null&&Array.isArray(R)&&R.length>=2)if(q=R[1],h!==void 0&&!h.match(/^-/)&&!v(q,W.bools)&&!v(q,W.counts))n(q,h),H++;else n(q,d(q))}else if(U.match(/^-[^-]+/)&&!U.match(K)){w=U.slice(1,-1).split(""),j=!1;for(let YD=0;YD<w.length;YD++){if(h=U.slice(YD+2),w[YD+1]&&w[YD+1]==="="){if(JD=U.slice(YD+3),q=w[YD],v(q,W.arrays))H=jD(H,q,E,JD);else if(v(q,W.nargs)!==!1)H=o(H,q,E,JD);else n(q,JD);j=!0;break}if(h==="-"){n(w[YD],h);continue}if(/[A-Za-z]/.test(w[YD])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(h)&&v(h,W.bools)===!1){n(w[YD],h),j=!0;break}if(w[YD+1]&&w[YD+1].match(/\W/)){n(w[YD],h),j=!0;break}else n(w[YD],d(w[YD]))}if(q=U.slice(-1)[0],!j&&q!=="-")if(v(q,W.arrays))H=jD(H,q,E);else if(v(q,W.nargs)!==!1)H=o(H,q,E);else if(h=E[H+1],h!==void 0&&(!/^(-|--)[^-]/.test(h)||h.match(K))&&!v(q,W.bools)&&!v(q,W.counts))n(q,h),H++;else if(/^(true|false)$/.test(h))n(q,h),H++;else n(q,d(q))}else if(U.match(/^-[0-9]$/)&&U.match(K)&&v(U.slice(1),W.bools))q=U.slice(1),n(q,d(q));else if(U==="--"){L=E.slice(H+1);break}else if($["halt-at-non-option"]){L=E.slice(H);break}else k(U)}if(BD(M,!0),BD(M,!1),b(M),l(),mD(M,W.aliases,G,!0),i(M),$["set-placeholder-key"])$D(M);if(Object.keys(W.counts).forEach(function(H){if(!s(M,H.split(".")))n(H,0)}),Y&&L.length)M[J]=[];if(L.forEach(function(H){M[J].push(H)}),$["camel-case-expansion"]&&$["strip-dashed"])Object.keys(M).filter((H)=>H!=="--"&&H.includes("-")).forEach((H)=>{delete M[H]});if($["strip-aliased"])[].concat(...Object.keys(B).map((H)=>B[H])).forEach((H)=>{if($["camel-case-expansion"]&&H.includes("-"))delete M[H.split(".").map((U)=>aD(U)).join(".")];delete M[H]});function k(H){let U=T("_",H);if(typeof U==="string"||typeof U==="number")M._.push(U)}function o(H,U,N,j){let q,w=v(U,W.nargs);if(w=typeof w!=="number"||isNaN(w)?1:w,w===0){if(!zD(j))_=Error(V("Argument unexpected for: %s",U));return n(U,d(U)),H}let R=zD(j)?0:1;if($["nargs-eats-options"]){if(N.length-(H+1)+R<w)_=Error(V("Not enough arguments following: %s",U));R=w}else{for(q=H+1;q<N.length;q++)if(!N[q].match(/^-[^0-9]/)||N[q].match(K)||t(N[q]))R++;else break;if(R<w)_=Error(V("Not enough arguments following: %s",U))}let h=Math.min(R,w);if(!zD(j)&&h>0)n(U,j),h--;for(q=H+1;q<h+H+1;q++)n(U,N[q]);return H+h}function jD(H,U,N,j){let q=[],w=j||N[H+1],R=v(U,W.nargs);if(v(U,W.bools)&&!/^(true|false)$/.test(w))q.push(!0);else if(zD(w)||zD(j)&&/^-/.test(w)&&!K.test(w)&&!t(w)){if(G[U]!==void 0){let h=G[U];q=Array.isArray(h)?h:[h]}}else{if(!zD(j))q.push(I(U,j,!0));for(let h=H+1;h<N.length;h++){if(!$["greedy-arrays"]&&q.length>0||R&&typeof R==="number"&&q.length>=R)break;if(w=N[h],/^-/.test(w)&&!K.test(w)&&!t(w))break;H=h,q.push(I(U,w,C))}}if(typeof R==="number"&&(R&&q.length<R||isNaN(R)&&q.length===0))_=Error(V("Not enough arguments following: %s",U));return n(U,q),H}function n(H,U,N=C){if(/-/.test(H)&&$["camel-case-expansion"]){let w=H.split(".").map(function(R){return aD(R)}).join(".");sD(H,w)}let j=I(H,U,N),q=H.split(".");if(hD(M,q,j),W.aliases[H])W.aliases[H].forEach(function(w){let R=w.split(".");hD(M,R,j)});if(q.length>1&&$["dot-notation"])(W.aliases[q[0]]||[]).forEach(function(w){let R=w.split("."),h=[].concat(q);if(h.shift(),R=R.concat(h),!(W.aliases[H]||[]).includes(R.join(".")))hD(M,R,j)});if(v(H,W.normalize)&&!v(H,W.arrays))[H].concat(W.aliases[H]||[]).forEach(function(R){Object.defineProperty(x,R,{enumerable:!0,get(){return U},set(h){U=typeof h==="string"?vD.normalize(h):h}})})}function sD(H,U){if(!(W.aliases[H]&&W.aliases[H].length))W.aliases[H]=[U],Q[U]=!0;if(!(W.aliases[U]&&W.aliases[U].length))sD(U,H)}function I(H,U,N){if(N)U=v3(U);if(v(H,W.bools)||v(H,W.counts)){if(typeof U==="string")U=U==="true"}let j=Array.isArray(U)?U.map(function(q){return T(H,q)}):T(H,U);if(v(H,W.counts)&&(zD(j)||typeof j==="boolean"))j=hF();if(v(H,W.normalize)&&v(H,W.arrays))if(Array.isArray(U))j=U.map((q)=>{return vD.normalize(q)});else j=vD.normalize(U);return j}function T(H,U){if(!$["parse-positional-numbers"]&&H==="_")return U;if(!v(H,W.strings)&&!v(H,W.bools)&&!Array.isArray(U)){if(ru(U)&&$["parse-numbers"]&&Number.isSafeInteger(Math.floor(parseFloat(`${U}`)))||!zD(U)&&v(H,W.numbers))U=Number(U)}return U}function b(H){let U=Object.create(null);mD(U,W.aliases,G),Object.keys(W.configs).forEach(function(N){let j=H[N]||U[N];if(j)try{let q=null,w=vD.resolve(vD.cwd(),j),R=W.configs[N];if(typeof R==="function"){try{q=R(w)}catch(h){q=h}if(q instanceof Error){_=q;return}}else q=vD.require(w);g(q)}catch(q){if(q.name==="PermissionDenied")_=q;else if(H[N])_=Error(V("Invalid JSON config file: %s",j))}})}function g(H,U){Object.keys(H).forEach(function(N){let j=H[N],q=U?U+"."+N:N;if(typeof j==="object"&&j!==null&&!Array.isArray(j)&&$["dot-notation"])g(j,q);else if(!s(M,q.split("."))||v(q,W.arrays)&&$["combine-arrays"])n(q,j)})}function l(){if(typeof z<"u")z.forEach(function(H){g(H)})}function BD(H,U){if(typeof Z>"u")return;let N=typeof Z==="string"?Z:"",j=vD.env();Object.keys(j).forEach(function(q){if(N===""||q.lastIndexOf(N,0)===0){let w=q.split("__").map(function(R,h){if(h===0)R=R.substring(N.length);return aD(R)});if((U&&W.configs[w.join(".")]||!U)&&!s(H,w))n(w.join("."),j[q])}})}function i(H){let U,N=new Set;Object.keys(H).forEach(function(j){if(!N.has(j)){if(U=v(j,W.coercions),typeof U==="function")try{let q=T(j,U(H[j]));[].concat(W.aliases[j]||[],j).forEach((w)=>{N.add(w),H[w]=q})}catch(q){_=q}}})}function $D(H){return W.keys.forEach((U)=>{if(~U.indexOf("."))return;if(typeof H[U]>"u")H[U]=void 0}),H}function mD(H,U,N,j=!1){Object.keys(N).forEach(function(q){if(!s(H,q.split("."))){if(hD(H,q.split("."),N[q]),j)O[q]=!0;(U[q]||[]).forEach(function(w){if(s(H,w.split(".")))return;hD(H,w.split("."),N[q])})}})}function s(H,U){let N=H;if(!$["dot-notation"])U=[U.join(".")];U.slice(0,-1).forEach(function(q){N=N[q]||{}});let j=U[U.length-1];if(typeof N!=="object")return!1;else return j in N}function hD(H,U,N){let j=H;if(!$["dot-notation"])U=[U.join(".")];U.slice(0,-1).forEach(function(JD){if(JD=P2(JD),typeof j==="object"&&j[JD]===void 0)j[JD]={};if(typeof j[JD]!=="object"||Array.isArray(j[JD])){if(Array.isArray(j[JD]))j[JD].push({});else j[JD]=[j[JD],{}];j=j[JD][j[JD].length-1]}else j=j[JD]});let q=P2(U[U.length-1]),w=v(U.join("."),W.arrays),R=Array.isArray(N),h=$["duplicate-arguments-array"];if(!h&&v(q,W.nargs)){if(h=!0,!zD(j[q])&&W.nargs[q]===1||Array.isArray(j[q])&&j[q].length===W.nargs[q])j[q]=void 0}if(N===hF())j[q]=hF(j[q]);else if(Array.isArray(j[q]))if(h&&w&&R)j[q]=$["flatten-duplicate-arrays"]?j[q].concat(N):(Array.isArray(j[q][0])?j[q]:[j[q]]).concat([N]);else if(!h&&Boolean(w)===Boolean(R))j[q]=N;else j[q]=j[q].concat([N]);else if(j[q]===void 0&&w)j[q]=R?N:[N];else if(h&&!(j[q]===void 0||v(q,W.counts)||v(q,W.bools)))j[q]=[j[q],N];else j[q]=N}function Su(...H){H.forEach(function(U){Object.keys(U||{}).forEach(function(N){if(W.aliases[N])return;W.aliases[N]=[].concat(B[N]||[]),W.aliases[N].concat(N).forEach(function(j){if(/-/.test(j)&&$["camel-case-expansion"]){let q=aD(j);if(q!==N&&W.aliases[N].indexOf(q)===-1)W.aliases[N].push(q),Q[q]=!0}}),W.aliases[N].concat(N).forEach(function(j){if(j.length>1&&/[A-Z]/.test(j)&&$["camel-case-expansion"]){let q=su(j,"-");if(q!==N&&W.aliases[N].indexOf(q)===-1)W.aliases[N].push(q),Q[q]=!0}}),W.aliases[N].forEach(function(j){W.aliases[j]=[N].concat(W.aliases[N].filter(function(q){return j!==q}))})})})}function v(H,U){let N=[].concat(W.aliases[H]||[],H),j=Object.keys(U),q=N.find((w)=>j.includes(w));return q?U[q]:!1}function qu(H){let U=Object.keys(W);return[].concat(U.map((j)=>W[j])).some(function(j){return Array.isArray(j)?j.includes(H):j[H]})}function s0(H,...U){return[].concat(...U).some(function(j){let q=H.match(j);return q&&qu(q[1])})}function p(H){if(H.match(K)||!H.match(/^-[^-]+/))return!1;let U=!0,N,j=H.slice(1).split("");for(let q=0;q<j.length;q++){if(N=H.slice(q+2),!qu(j[q])){U=!1;break}if(j[q+1]&&j[q+1]==="="||N==="-"||/[A-Za-z]/.test(j[q])&&/^-?\d+(\.\d*)?(e-?\d+)?$/.test(N)||j[q+1]&&j[q+1].match(/\W/))break}return U}function t(H){return $["unknown-options-as-args"]&&GD(H)}function GD(H){if(H=H.replace(/^-{3,}/,"--"),H.match(K))return!1;if(p(H))return!1;return!s0(H,/^-+([^=]+?)=[\s\S]*$/,A,/^-+([^=]+?)$/,/^-+([^=]+?)-$/,/^-+([^=]+?\d+)$/,/^-+([^=]+?)\W+.*$/)}function d(H){if(!v(H,W.bools)&&!v(H,W.counts)&&`${H}`in G)return G[H];else return QD(uD(H))}function QD(H){return{[MD.BOOLEAN]:!0,[MD.STRING]:"",[MD.NUMBER]:void 0,[MD.ARRAY]:[]}[H]}function uD(H){let U=MD.BOOLEAN;if(v(H,W.strings))U=MD.STRING;else if(v(H,W.numbers))U=MD.NUMBER;else if(v(H,W.bools))U=MD.BOOLEAN;else if(v(H,W.arrays))U=MD.ARRAY;return U}function zD(H){return H===void 0}function RF(){Object.keys(W.counts).find((H)=>{if(v(H,W.arrays))return _=Error(V("Invalid configuration: %s, opts.count excludes opts.array.",H)),!0;else if(v(H,W.nargs))return _=Error(V("Invalid configuration: %s, opts.count excludes opts.narg.",H)),!0;return!1})}return{aliases:Object.assign({},W.aliases),argv:Object.assign(x,M),configuration:$,defaulted:Object.assign({},O),error:_,newAliases:Object.assign({},Q)}}}function h3(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 hF(D){return D!==void 0?D+1:1}function P2(D){if(D==="__proto__")return"___proto___";return D}function v3(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 g3}from"fs";import{createRequire as w2}from"node:module";var pF,yF,mF,x2=process&&process.env&&process.env.YARGS_MIN_NODE_VERSION?Number(process.env.YARGS_MIN_NODE_VERSION):20,I2=(yF=(pF=process===null||process===void 0?void 0:process.versions)===null||pF===void 0?void 0:pF.node)!==null&&yF!==void 0?yF:(mF=process===null||process===void 0?void 0:process.version)===null||mF===void 0?void 0:mF.slice(1);if(I2){if(Number(I2.match(/^([^.]+)/)[1])<x2)throw Error(`yargs parser supports a minimum Node.js version of ${x2}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`)}var c3=process?process.env:{},b2=w2?w2(import.meta.url):void 0,f2=new vF({cwd:process.cwd,env:()=>{return c3},format:p3,normalize:y3,resolve:m3,require:(D)=>{if(typeof b2<"u")return b2(D);else if(D.match(/\.json$/))return JSON.parse(g3(D,"utf8"));else throw Error("only .json config files are supported in ESM")}}),Pu=function(u,F){return f2.parse(u.slice(),F).argv};Pu.detailed=function(D,u){return f2.parse(D.slice(),u)};Pu.camelCase=aD;Pu.decamelize=su;Pu.looksLikeNumber=ru;var gF=Pu;import{basename as D6,dirname as u6,extname as F6,relative as E6,resolve as d2,join as C6}from"path";function h2(){if(k3())return 0;return 1}function k3(){return d3()&&!process.defaultApp}function d3(){return!!process.versions.electron}function cF(D){return D.slice(h2()+1)}function v2(){return process.argv[h2()]}import{readFileSync as i3,statSync as n3,writeFile as l3}from"fs";import{format as t3}from"util";import{resolve as o3}from"path";var p2={fs:{readFileSync:i3,writeFile:l3},format:t3,resolve:o3,exists:(D)=>{try{return n3(D).isFile()}catch(u){return!1}}};var RD;class y2{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 m2(D,u){RD=u;let F=new y2(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 s3=(D)=>{return m2(D,p2)},g2=s3;var n2=a0(k2(),1);import{createRequire as B6}from"node:module";import{readFileSync as $6,readdirSync as G6}from"node:fs";var kF=i2(import.meta.url),z6=kF.substring(0,kF.lastIndexOf("node_modules")),Z6=B6(import.meta.url),dF={assert:{notStrictEqual:r3,strictEqual:a3},cliui:bF,findUp:fF,getEnv:(D)=>{return process.env[D]},inspect:e3,getProcessArgvBin:v2,mainFilename:z6||process.cwd(),Parser:gF,path:{basename:D6,dirname:u6,extname:F6,relative:E6,resolve:d2,join:C6},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:$6,readdirSync:G6,require:Z6,getCallerFile:()=>{let D=n2.default(3);return D.match(/^file:\/\//)?i2(D):D},stringWidth:TD,y18n:g2({directory:d2(kF,"../../../locales"),updateFiles:!1})};function WD(D,u,F,E){F.assert.notStrictEqual(D,u,E)}function iF(D,u){u.assert.strictEqual(typeof D,"string")}function Ku(D){return Object.keys(D)}function a(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 gD(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 J6=["first","second","third","fourth","fifth","sixth"];function S(D,u,F){function E(){return typeof D==="object"?[{demanded:[],optional:[]},D,u]:[gD(`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 Y=B.demanded.length+B.optional.length;if(Z>Y)throw new FD(`Too many arguments provided. Expected max ${Y} but received ${Z}.`);B.demanded.forEach((J)=>{let Q=z.shift(),O=l2(Q);if(J.cmd.filter((W)=>W===O||W==="*").length===0)t2(O,J.cmd,C);C+=1}),B.optional.forEach((J)=>{if(z.length===0)return;let Q=z.shift(),O=l2(Q);if(J.cmd.filter((W)=>W===O||W==="*").length===0)t2(O,J.cmd,C);C+=1})}catch(C){console.warn(C.stack)}}function l2(D){if(Array.isArray(D))return"array";else if(D===null)return"null";return typeof D}function t2(D,u,F){throw new FD(`Invalid ${J6[F]||"manyith"} argument. Expected ${u.join(" or ")} but received ${D}.`)}class nF{constructor(D){this.globalMiddleware=[],this.frozens=[],this.yargs=D}addMiddleware(D,u,F=!0,E=!1){if(S("<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 o2(D){if(!D)return[];return D.map((u)=>{return u.applyBeforeValidation=!1,u})}function eD(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(a(C))return C.then(($)=>Promise.all([$,B($,u)])).then(([$,G])=>Object.assign($,G));else{let $=B(C,u);return a($)?$.then((G)=>Object.assign(C,G)):Object.assign(C,$)}},D)}function Du(D,u,F=(E)=>{throw E}){try{let E=X6(D)?D():D;return a(E)?E.then((C)=>u(C)):u(E)}catch(E){return F(E)}}function X6(D){return typeof D==="function"}var Uu=/(^\*)|(^\$0)/;class r2{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 Y=!1;if(typeof E.exclude==="function")Y=E.exclude(z);else Y=E.exclude.test(z);if(Y)continue}if(E.include){let Y=!1;if(typeof E.include==="function")Y=E.include(z);else Y=E.include.test(z);if(!Y)continue}let Z=!1;for(let Y of E.extensions)if(z.endsWith(Y))Z=!0;if(Z){let Y=this.shim.path.join(C,z),J=u(Y),Q=Object.create(null,Object.getOwnPropertyDescriptors({...J}));if($(Q,Y,z)){if(this.requireCache.has(Y))continue;else this.requireCache.add(Y);if(!Q.command)Q.command=this.shim.path.basename(Y,this.shim.path.extname(Y));this.addHandler(Q)}}}}addHandler(D,u,F,E,C,B){let $=[],G=o2(C);if(E=E||(()=>{}),Array.isArray(D))if(Q6(D))[D,...$]=D;else for(let z of D)this.addHandler(z);else if(W6(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(s2(F)){this.addHandler([D].concat($),u,F.builder,F.handler,F.middlewares,F.deprecated);return}if(typeof D==="string"){let z=gD(D);$=$.map((J)=>gD(J).cmd);let Z=!1,Y=[z.cmd].concat($).filter((J)=>{if(Uu.test(J))return Z=!0,!1;return!0});if(Y.length===0&&Z)Y.push("$0");if(Z)z.cmd=Y[0],$=Y.slice(1),D=D.replace(Uu,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 Y=this.applyBuilderUpdateUsageAndParse(Z,$,u,F.aliases,z,E,C,B);return a(Y)?Y.then((J)=>this.applyMiddlewareAndGetResult(Z,$,J.innerArgv,G,C,J.aliases,u)):this.applyMiddlewareAndGetResult(Z,$,Y.innerArgv,G,C,Y.aliases,u)}applyBuilderUpdateUsageAndParse(D,u,F,E,C,B,$,G){let z=u.builder,Z=F;if(au(z)){F.getInternalMethods().getUsageInstance().freeze();let Y=z(F.getInternalMethods().reset(E),G);if(a(Y))return Y.then((J)=>{return Z=e2(J)?J:F,this.parseAndUpdateUsage(D,u,Z,C,B,$)})}else if(Y6(z))F.getInternalMethods().getUsageInstance().freeze(),Z=F.getInternalMethods().reset(E),Object.keys(u.builder).forEach((Y)=>{Z.option(Y,z[Y])});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 a($)?$.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=Uu.test(u.original)?u.original.replace(Uu,"").trim():u.original,E=D.filter((C)=>{return!Uu.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=Du(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=eD(F,B,$,!1),F=Du(F,(Z)=>{let Y=u.handler(Z);return a(Y)?Y.then(()=>Z):Z}),!D)B.getInternalMethods().getUsageInstance().cacheHelpMessage();if(a(F)&&!B.getInternalMethods().hasParseCallback())F.catch((Z)=>{try{B.getInternalMethods().getUsageInstance().fail(null,Z)}catch(Y){}})}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=eD(F,$,z,!0);return a(Z)?Z.then((Y)=>this.handleValidationAndGetResult(D,u,Y,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=gD(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=Uu.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(au(u))return u(D,!0);else if(!s2(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;WD(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();WD(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 a2(D,u,F,E){return new r2(D,u,F,E)}function s2(D){return typeof D==="object"&&!!D.builder&&typeof D.handler==="function"}function Q6(D){return D.every((u)=>typeof u==="string")}function au(D){return typeof D==="function"}function Y6(D){return typeof D==="object"}function W6(D){return typeof D==="object"&&!Array.isArray(D)}function cD(D={},u=()=>!0){let F={};return Ku(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 O6(D){return typeof D==="boolean"}function u8(D,u){let F=u.y18n.__,E={},C=[];E.failFn=function(T){C.push(T)};let B=null,$=null,G=!0;E.showHelpOnFail=function(T=!0,b){let[g,l]=typeof T==="string"?[!0,T]:[T,b];if(D.getInternalMethods().isGlobalContext())$=l;return B=l,G=g,E};let z=!1;E.fail=function(T,b){let g=D.getInternalMethods().getLoggerInstance();if(C.length)for(let l=C.length-1;l>=0;--l){let BD=C[l];if(O6(BD)){if(b)throw b;else if(T)throw Error(T)}else BD(T,b,E)}else{if(D.getExitProcess())kD(!0);if(!z){if(z=!0,G)D.showHelp("error"),g.error();if(T||b)g.error(T||b);let l=B||$;if(l){if(T||b)g.error("");g.error(l)}}if(b=b||new FD(T),D.getExitProcess())return D.exit(1);else if(D.getInternalMethods().hasParseCallback())return D.exit(1,b);else throw b}};let Z=[],Y=!1;E.usage=(I,T)=>{if(I===null)return Y=!0,Z=[],E;return Y=!1,Z.push([I,T||""]),E},E.getUsage=()=>{return Z},E.getUsageDisabled=()=>{return Y},E.getPositionalGroupName=()=>{return F("Positionals:")};let J=[];E.example=(I,T)=>{J.push([I,T||""])};let Q=[];E.command=function(T,b,g,l,BD=!1){if(g)Q=Q.map((i)=>{return i[2]=!1,i});Q.push([T,b||"",g,l,BD])},E.getCommands=()=>Q;let O={};E.describe=function(T,b){if(Array.isArray(T))T.forEach((g)=>{E.describe(g,b)});else if(typeof T==="object")Object.keys(T).forEach((g)=>{E.describe(g,T[g])});else O[T]=b},E.getDescriptions=()=>O;let V=[];E.epilog=(I)=>{V.push(I)};let W=!1,K;E.wrap=(I)=>{W=!0,K=I},E.getWrap=()=>{if(u.getEnv("YARGS_DISABLE_WRAP"))return null;if(!W)K=jD(),W=!0;return K};let A="__yargsString__:";E.deferY18nLookup=(I)=>A+I,E.help=function(){if(M)return M;L();let T=D.customScriptName?D.$0:u.path.basename(D.$0),b=D.getDemandedOptions(),g=D.getDemandedCommands(),l=D.getDeprecatedOptions(),BD=D.getGroups(),i=D.getOptions(),$D=[];$D=$D.concat(Object.keys(O)),$D=$D.concat(Object.keys(b)),$D=$D.concat(Object.keys(g)),$D=$D.concat(Object.keys(i.default)),$D=$D.filter(k),$D=Object.keys($D.reduce((p,t)=>{if(t!=="_")p[t]=!0;return p},{}));let mD=E.getWrap(),s=u.cliui({width:mD,wrap:!!mD});if(!Y){if(Z.length)Z.forEach((p)=>{if(s.div({text:`${p[0].replace(/\$0/g,T)}`}),p[1])s.div({text:`${p[1]}`,padding:[1,0,0,0]})}),s.div();else if(Q.length){let p=null;if(g._)p=`${T} <${F("command")}>
|
|
15
|
+
`;else p=`${T} [${F("command")}]
|
|
16
|
+
`;s.div(`${p}`)}}if(Q.length>1||Q.length===1&&!Q[0][2]){s.div(F("Commands:"));let p=D.getInternalMethods().getContext(),t=p.commands.length?`${p.commands.join(" ")} `:"";if(D.getInternalMethods().getParserConfiguration()["sort-commands"]===!0)Q=Q.sort((d,QD)=>d[0].localeCompare(QD[0]));let GD=T?`${T} `:"";Q.forEach((d)=>{let QD=`${GD}${t}${d[0].replace(/^\$0 ?/,"")}`;s.span({text:QD,padding:[0,2,0,2],width:_(Q,mD,`${T}${t}`)+4},{text:d[1]});let uD=[];if(d[2])uD.push(`[${F("default")}]`);if(d[3]&&d[3].length)uD.push(`[${F("aliases:")} ${d[3].join(", ")}]`);if(d[4])if(typeof d[4]==="string")uD.push(`[${F("deprecated: %s",d[4])}]`);else uD.push(`[${F("deprecated")}]`);if(uD.length)s.div({text:uD.join(" "),padding:[0,0,0,2],align:"right"});else s.div()}),s.div()}let hD=(Object.keys(i.alias)||[]).concat(Object.keys(D.parsed.newAliases)||[]);$D=$D.filter((p)=>!D.parsed.newAliases[p]&&hD.every((t)=>(i.alias[t]||[]).indexOf(p)===-1));let Su=F("Options:");if(!BD[Su])BD[Su]=[];x($D,i.alias,BD,Su);let v=(p)=>/^--/.test(eu(p)),qu=Object.keys(BD).filter((p)=>BD[p].length>0).map((p)=>{let t=BD[p].filter(k).map((GD)=>{if(hD.includes(GD))return GD;for(let d=0,QD;(QD=hD[d])!==void 0;d++)if((i.alias[QD]||[]).includes(GD))return QD;return GD});return{groupName:p,normalizedKeys:t}}).filter(({normalizedKeys:p})=>p.length>0).map(({groupName:p,normalizedKeys:t})=>{let GD=t.reduce((d,QD)=>{return d[QD]=[QD].concat(i.alias[QD]||[]).map((uD)=>{if(p===E.getPositionalGroupName())return uD;else return(/^[0-9]$/.test(uD)?i.boolean.includes(QD)?"-":"--":uD.length>1?"--":"-")+uD}).sort((uD,zD)=>v(uD)===v(zD)?0:v(uD)?1:-1).join(", "),d},{});return{groupName:p,normalizedKeys:t,switches:GD}});if(qu.filter(({groupName:p})=>p!==E.getPositionalGroupName()).some(({normalizedKeys:p,switches:t})=>!p.every((GD)=>v(t[GD]))))qu.filter(({groupName:p})=>p!==E.getPositionalGroupName()).forEach(({normalizedKeys:p,switches:t})=>{p.forEach((GD)=>{if(v(t[GD]))t[GD]=V6(t[GD],4)})});if(qu.forEach(({groupName:p,normalizedKeys:t,switches:GD})=>{s.div(p),t.forEach((d)=>{let QD=GD[d],uD=O[d]||"",zD=null;if(uD.includes(A))uD=F(uD.substring(A.length));if(i.boolean.includes(d))zD=`[${F("boolean")}]`;if(i.count.includes(d))zD=`[${F("count")}]`;if(i.string.includes(d))zD=`[${F("string")}]`;if(i.normalize.includes(d))zD=`[${F("string")}]`;if(i.array.includes(d))zD=`[${F("array")}]`;if(i.number.includes(d))zD=`[${F("number")}]`;let RF=(N)=>typeof N==="string"?`[${F("deprecated: %s",N)}]`:`[${F("deprecated")}]`,H=[d in l?RF(l[d]):null,zD,d in b?`[${F("required")}]`:null,i.choices&&i.choices[d]?`[${F("choices:")} ${E.stringifiedValues(i.choices[d])}]`:null,o(i.default[d],i.defaultDescription[d])].filter(Boolean).join(" ");s.span({text:eu(QD),padding:[0,2,0,2+D8(QD)],width:_(GD,mD)+4},uD);let U=D.getInternalMethods().getUsageConfiguration()["hide-types"]===!0;if(H&&!U)s.div({text:H,padding:[0,0,0,2],align:"right"});else s.div()}),s.div()}),J.length)s.div(F("Examples:")),J.forEach((p)=>{p[0]=p[0].replace(/\$0/g,T)}),J.forEach((p)=>{if(p[1]==="")s.div({text:p[0],padding:[0,2,0,2]});else s.div({text:p[0],padding:[0,2,0,2],width:_(J,mD)+4},{text:p[1]})}),s.div();if(V.length>0){let p=V.map((t)=>t.replace(/\$0/g,T)).join(`
|
|
17
|
+
`);s.div(`${p}
|
|
18
|
+
`)}return s.toString().replace(/\s*$/,"")};function _(I,T,b){let g=0;if(!Array.isArray(I))I=Object.values(I).map((l)=>[l]);if(I.forEach((l)=>{g=Math.max(u.stringWidth(b?`${b} ${eu(l[0])}`:eu(l[0]))+D8(l[0]),g)}),T)g=Math.min(g,parseInt((T*0.5).toString(),10));return g}function L(){let I=D.getDemandedOptions(),T=D.getOptions();(Object.keys(T.alias)||[]).forEach((b)=>{T.alias[b].forEach((g)=>{if(O[g])E.describe(b,O[g]);if(g in I)D.demandOption(b,I[g]);if(T.boolean.includes(g))D.boolean(b);if(T.count.includes(g))D.count(b);if(T.string.includes(g))D.string(b);if(T.normalize.includes(g))D.normalize(b);if(T.array.includes(g))D.array(b);if(T.number.includes(g))D.number(b)})})}let M;E.cacheHelpMessage=function(){M=this.help()},E.clearCachedHelpMessage=function(){M=void 0},E.hasCachedHelpMessage=function(){return!!M};function x(I,T,b,g){let l=[],BD=null;return Object.keys(b).forEach((i)=>{l=l.concat(b[i])}),I.forEach((i)=>{if(BD=[i].concat(T[i]),!BD.some(($D)=>l.indexOf($D)!==-1))b[g].push(i)}),l}function k(I){return D.getOptions().hiddenOptions.indexOf(I)<0||D.parsed.argv[D.getOptions().showHiddenOpt]}E.showHelp=(I)=>{let T=D.getInternalMethods().getLoggerInstance();if(!I)I="error";(typeof I==="function"?I:T[I])(E.help())},E.functionDescription=(I)=>{return["(",I.name?u.Parser.decamelize(I.name,"-"):F("generated-value"),")"].join("")},E.stringifiedValues=function(T,b){let g="",l=b||", ",BD=[].concat(T);if(!T||!BD.length)return g;return BD.forEach((i)=>{if(g.length)g+=l;g+=JSON.stringify(i)}),g};function o(I,T){let b=`[${F("default:")} `;if(I===void 0&&!T)return null;if(T)b+=T;else switch(typeof I){case"string":b+=`"${I}"`;break;case"object":b+=JSON.stringify(I);break;default:b+=I}return`${b}]`}function jD(){if(u.process.stdColumns)return Math.min(80,u.process.stdColumns);else return 80}let n=null;E.version=(I)=>{n=I},E.showVersion=(I)=>{let T=D.getInternalMethods().getLoggerInstance();if(!I)I="error";(typeof I==="function"?I:T[I])(n)},E.reset=function(T){return B=null,z=!1,Z=[],Y=!1,V=[],J=[],Q=[],O=cD(O,(b)=>!T[b]),E};let sD=[];return E.freeze=function(){sD.push({failMessage:B,failureOutput:z,usages:Z,usageDisabled:Y,epilogs:V,examples:J,commands:Q,descriptions:O})},E.unfreeze=function(T=!1){let b=sD.pop();if(!b)return;if(T)O={...b.descriptions,...O},Q=[...b.commands,...Q],Z=[...b.usages,...Z],J=[...b.examples,...J],V=[...b.epilogs,...V];else({failMessage:B,failureOutput:z,usages:Z,usageDisabled:Y,epilogs:V,examples:J,commands:Q,descriptions:O}=b)},E}function lF(D){return typeof D==="object"}function V6(D,u){return lF(D)?{text:D.text,indentation:D.indentation+u}:{text:D,indentation:u}}function D8(D){return lF(D)?D.indentation:0}function eu(D){return lF(D)?D.text:D}var F8=`###-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
|
+
`,E8=`#compdef {{app_name}}
|
|
48
48
|
###-begin-{{app_name}}-completions-###
|
|
49
49
|
#
|
|
50
50
|
# yargs command completion script
|
|
@@ -71,96 +71,100 @@ 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(
|
|
77
|
-
${E("Argument: %s, Given: %s, Choices: %s",K,u.stringifiedValues(
|
|
78
|
-
`;Y.forEach((O)=>{V+=O}),u.fail(V)}};let Z={};B.conflicts=function(J,Y){if(R("<string|object> [array|string]",[J,Y],arguments.length),typeof J==="object")Object.keys(J).forEach((V)=>{B.conflicts(V,J[V])});else{if(D.global(J),!Z[J])Z[J]=[];if(Array.isArray(Y))Y.forEach((V)=>B.conflicts(J,V));else Z[J].push(Y)}},B.getConflicting=()=>Z,B.conflicting=function(J){if(Object.keys(J).forEach((Y)=>{if(Z[Y])Z[Y].forEach((V)=>{if(V&&J[Y]!==void 0&&J[V]!==void 0)u.fail(E("Arguments %s and %s are mutually exclusive",Y,V))})}),D.getInternalMethods().getParserConfiguration()["strip-dashed"])Object.keys(Z).forEach((Y)=>{Z[Y].forEach((V)=>{if(V&&J[F.Parser.camelCase(Y)]!==void 0&&J[F.Parser.camelCase(V)]!==void 0)u.fail(E("Arguments %s and %s are mutually exclusive",Y,V))})})},B.recommendCommands=function(J,Y){Y=Y.sort((K,_)=>_.length-K.length);let O=null,W=1/0;for(let K=0,_;(_=Y[K])!==void 0;K++){let j=u8(J,_);if(j<=3&&j<W)W=j,O=_}if(O)u.fail(E("Did you mean %s?",O))},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();WD(J,void 0,F),{implied:$,conflicting:Z}=J},B}var tF=[],Pu;function wu(D,u,F,E){Pu=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 $=M6(u,D.extends);K6($),tF.push($),C=B?JSON.parse(Pu.readFileSync($,"utf8")):E.require(D.extends),delete D.extends,C=wu(C,Pu.path.dirname($),F,Pu)}return tF=[],F?C8(C,D):Object.assign({},C,D)}function K6(D){if(tF.indexOf(D)>-1)throw new FD(`Circular extended configurations: '${D}'.`)}function M6(D,u){return Pu.path.resolve(D,u)}function C8(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]=C8(D[C],u[C]);else F[C]=u[C];return F}var S=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,uu,xu,VD,qD,DF,dD,Fu,uF,AD,FF,LD,xD,KD,ND,EF,Eu,XD,b,CF,BF,MD,Cu,Uu,Bu,iD,$F,p,$u,Gu,zu,c,GF,ID,DD;function A8(D){return(u=[],F=D.process.cwd(),E)=>{let C=new L8(u,F,E,D);return Object.defineProperty(C,"argv",{get:()=>{return C.parse()},enumerable:!0}),C.help(),C.version(),C}}var B8=Symbol("copyDoubleDash"),$8=Symbol("copyDoubleDash"),oF=Symbol("deleteFromParserHintObject"),G8=Symbol("emitWarning"),z8=Symbol("freeze"),Z8=Symbol("getDollarZero"),Zu=Symbol("getParserConfiguration"),J8=Symbol("getUsageConfiguration"),sF=Symbol("guessLocale"),X8=Symbol("guessVersion"),Q8=Symbol("parsePositionalNumbers"),rF=Symbol("pkgUp"),nD=Symbol("populateParserHintArray"),_u=Symbol("populateParserHintSingleValueDictionary"),aF=Symbol("populateParserHintArrayDictionary"),eF=Symbol("populateParserHintDictionary"),D0=Symbol("sanitizeKey"),u0=Symbol("setKey"),F0=Symbol("unfreeze"),Y8=Symbol("validateAsync"),W8=Symbol("getCommandInstance"),O8=Symbol("getContext"),V8=Symbol("getHasOutput"),H8=Symbol("getLoggerInstance"),q8=Symbol("getParseContext"),K8=Symbol("getUsageInstance"),M8=Symbol("getValidationInstance"),zF=Symbol("hasParseCallback"),U8=Symbol("isGlobalContext"),Ju=Symbol("postProcess"),_8=Symbol("rebase"),E0=Symbol("reset"),Iu=Symbol("runYargsParserAndExecuteCommands"),C0=Symbol("runValidation"),j8=Symbol("setHasOutput"),Xu=Symbol("kTrackManuallySetKeys"),U6="en_US";class L8{constructor(D=[],u,F,E){this.customScriptName=!1,this.parsed=!1,ED.set(this,void 0),uu.set(this,void 0),xu.set(this,{commands:[],fullCommands:[]}),VD.set(this,null),qD.set(this,null),DF.set(this,"show-hidden"),dD.set(this,null),Fu.set(this,!0),uF.set(this,{}),AD.set(this,!0),FF.set(this,[]),LD.set(this,void 0),xD.set(this,{}),KD.set(this,!1),ND.set(this,null),EF.set(this,!0),Eu.set(this,void 0),XD.set(this,""),b.set(this,void 0),CF.set(this,void 0),BF.set(this,{}),MD.set(this,null),Cu.set(this,null),Uu.set(this,{}),Bu.set(this,{}),iD.set(this,void 0),$F.set(this,!1),p.set(this,void 0),$u.set(this,!1),Gu.set(this,!1),zu.set(this,!1),c.set(this,void 0),GF.set(this,{}),ID.set(this,null),DD.set(this,void 0),S(this,p,E,"f"),S(this,iD,D,"f"),S(this,uu,u,"f"),S(this,CF,F,"f"),S(this,LD,new nF(this),"f"),this.$0=this[Z8](),this[E0](),S(this,ED,X(this,ED,"f"),"f"),S(this,c,X(this,c,"f"),"f"),S(this,DD,X(this,DD,"f"),"f"),S(this,b,X(this,b,"f"),"f"),X(this,b,"f").showHiddenOpt=X(this,DF,"f"),S(this,Eu,this[$8](),"f"),X(this,p,"f").y18n.setLocale(U6)}addHelpOpt(D,u){if(R("[string|boolean] [string]",[D,u],arguments.length),X(this,ND,"f"))this[oF](X(this,ND,"f")),S(this,ND,null,"f");if(D===!1&&u===void 0)return this;return S(this,ND,typeof D==="string"?D:"help","f"),this.boolean(X(this,ND,"f")),this.describe(X(this,ND,"f"),u||X(this,c,"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,DF,"f");return this.boolean(F),this.describe(F,u||X(this,c,"f").deferY18nLookup("Show hidden options")),X(this,b,"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[aF](this.alias.bind(this),"alias",D,u),this}array(D){return R("<array|string>",[D],arguments.length),this[nD]("array",D),this[Xu](D),this}boolean(D){return R("<array|string>",[D],arguments.length),this[nD]("boolean",D),this[Xu](D),this}check(D,u){return R("<function> [boolean]",[D,u],arguments.length),this.middleware((F,E)=>{return Du(()=>{return D(F,E.getOptions())},(C)=>{if(!C)X(this,c,"f").fail(X(this,p,"f").y18n.__("Argument check failed: %s",D.toString()));else if(typeof C==="string"||C instanceof Error)X(this,c,"f").fail(C.toString(),C);return F},(C)=>{return X(this,c,"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[aF](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,b,"f").key[F]=!0,X(this,LD,"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 Du(()=>{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 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=wu(D,X(this,uu,"f"),this[Zu]()["deep-merge-config"]||!1,X(this,p,"f")),X(this,b,"f").configObjects=(X(this,b,"f").configObjects||[]).concat(D),this;if(typeof u==="function")F=u,u=void 0;return this.describe(D,u||X(this,c,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(D)?D:[D]).forEach((E)=>{X(this,b,"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(S(this,qD,D||X(this,qD,"f")||"completion","f"),!u&&u!==!1)u="generate completion script";if(this.command(X(this,qD,"f"),u),F)X(this,VD,"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,CF,"f")||X(this,p,"f").require;return X(this,ED,"f").addDirectory(D,F,X(this,p,"f").getCallerFile(),u),this}count(D){return R("<array|string>",[D],arguments.length),this[nD]("count",D),this[Xu](D),this}default(D,u,F){if(R("<object|string|array> [*] [string]",[D,u,F],arguments.length),F)iF(D,X(this,p,"f")),X(this,b,"f").defaultDescription[D]=F;if(typeof u==="function"){if(iF(D,X(this,p,"f")),!X(this,b,"f").defaultDescription[D])X(this,b,"f").defaultDescription[D]=X(this,c,"f").functionDescription(u);u=u.call()}return this[_u](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,b,"f").demandedCommands._={min:D,max:u,minMsg:F,maxMsg:E},this}demand(D,u,F){if(Array.isArray(u))u.forEach((E)=>{WD(F,!0,X(this,p,"f")),this.demandOption(E,F)}),u=1/0;else if(typeof u!=="number")F=u,u=1/0;if(typeof D==="number")WD(F,!0,X(this,p,"f")),this.demandCommand(D,u,F,F);else if(Array.isArray(D))D.forEach((E)=>{WD(F,!0,X(this,p,"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[_u](this.demandOption.bind(this),"demandedOptions",D,u),this}deprecateOption(D,u){return R("<string> [string|boolean]",[D,u],arguments.length),X(this,b,"f").deprecatedOptions[D]=u,this}describe(D,u){return R("<object|string|array> [string]",[D,u],arguments.length),this[u0](D,!0),X(this,c,"f").describe(D,u),this}detectLocale(D){return R("<boolean>",[D],arguments.length),S(this,Fu,D,"f"),this}env(D){if(R("[string|boolean]",[D],arguments.length),D===!1)delete X(this,b,"f").envPrefix;else X(this,b,"f").envPrefix=D||"";return this}epilogue(D){return R("<string>",[D],arguments.length),X(this,c,"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,c,"f").example(D,u);return this}exit(D,u){if(S(this,KD,!0,"f"),S(this,dD,u,"f"),X(this,AD,"f"))X(this,p,"f").process.exit(D)}exitProcess(D=!0){return R("[boolean]",[D],arguments.length),S(this,AD,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,c,"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,VD,"f").getCompletion(D,(C,B)=>{if(C)E(C);else F(B)})});else return X(this,VD,"f").getCompletion(D,u)}getDemandedOptions(){return R([],0),X(this,b,"f").demandedOptions}getDemandedCommands(){return R([],0),X(this,b,"f").demandedCommands}getDeprecatedOptions(){return R([],0),X(this,b,"f").deprecatedOptions}getDetectLocale(){return X(this,Fu,"f")}getExitProcess(){return X(this,AD,"f")}getGroups(){return Object.assign({},X(this,xD,"f"),X(this,Bu,"f"))}getHelp(){if(S(this,KD,!0,"f"),!X(this,c,"f").hasCachedHelpMessage()){if(!this.parsed){let u=this[Iu](X(this,iD,"f"),void 0,void 0,0,!0);if(a(u))return u.then(()=>{return X(this,c,"f").help()})}let D=X(this,ED,"f").runDefaultBuilderOn(this);if(a(D))return D.then(()=>{return X(this,c,"f").help()})}return Promise.resolve(X(this,c,"f").help())}getOptions(){return X(this,b,"f")}getStrict(){return X(this,$u,"f")}getStrictCommands(){return X(this,Gu,"f")}getStrictOptions(){return X(this,zu,"f")}global(D,u){if(R("<string|array> [boolean]",[D,u],arguments.length),D=[].concat(D),u!==!1)X(this,b,"f").local=X(this,b,"f").local.filter((F)=>D.indexOf(F)===-1);else D.forEach((F)=>{if(!X(this,b,"f").local.includes(F))X(this,b,"f").local.push(F)});return this}group(D,u){R("<string|array> <string>",[D,u],arguments.length);let F=X(this,Bu,"f")[u]||X(this,xD,"f")[u];if(X(this,Bu,"f")[u])delete X(this,Bu,"f")[u];let E={};return X(this,xD,"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,b,"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[sF](),X(this,p,"f").y18n.getLocale();return S(this,Fu,!1,"f"),X(this,p,"f").y18n.setLocale(D),this}middleware(D,u,F){return X(this,LD,"f").addMiddleware(D,!!u,F)}nargs(D,u){return R("<string|object|array> [number]",[D,u],arguments.length),this[_u](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[Xu](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[Xu](D),X(this,ID,"f")&&(D==="version"||(u===null||u===void 0?void 0:u.alias)==="version"))this[G8](['"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,
|
|
80
|
-
`,"f");
|
|
81
|
-
`,"f");S(this,XD,X(this,XD,"f")+D.join(" "),"f")}}}[oF](D){Ku(X(this,b,"f")).forEach((u)=>{if(((E)=>E==="configObjects")(u))return;let F=X(this,b,"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,c,"f").getDescriptions()[D]}[G8](D,u,F){if(!X(this,uF,"f")[F])X(this,p,"f").process.emitWarning(D,u),X(this,uF,"f")[F]=!0}[z8](){X(this,FF,"f").push({options:X(this,b,"f"),configObjects:X(this,b,"f").configObjects.slice(0),exitProcess:X(this,AD,"f"),groups:X(this,xD,"f"),strict:X(this,$u,"f"),strictCommands:X(this,Gu,"f"),strictOptions:X(this,zu,"f"),completionCommand:X(this,qD,"f"),output:X(this,XD,"f"),exitError:X(this,dD,"f"),hasOutput:X(this,KD,"f"),parsed:this.parsed,parseFn:X(this,MD,"f"),parseContext:X(this,Cu,"f")}),X(this,c,"f").freeze(),X(this,DD,"f").freeze(),X(this,ED,"f").freeze(),X(this,LD,"f").freeze()}[Z8](){let D="",u;if(/\b(node|iojs|electron)(\.exe)?$/.test(X(this,p,"f").process.argv()[0]))u=X(this,p,"f").process.argv().slice(1,2);else u=X(this,p,"f").process.argv().slice(0,1);if(D=u.map((F)=>{let E=this[_8](X(this,uu,"f"),F);return F.match(/^(\/|([a-zA-Z]:)?\\)/)&&E.length<F.length?E:F}).join(" ").trim(),X(this,p,"f").getEnv("_")&&X(this,p,"f").getProcessArgvBin()===X(this,p,"f").getEnv("_"))D=X(this,p,"f").getEnv("_").replace(`${X(this,p,"f").path.dirname(X(this,p,"f").process.execPath())}/`,"");return D}[Zu](){return X(this,BF,"f")}[J8](){return X(this,GF,"f")}[sF](){if(!X(this,Fu,"f"))return;let D=X(this,p,"f").getEnv("LC_ALL")||X(this,p,"f").getEnv("LC_MESSAGES")||X(this,p,"f").getEnv("LANG")||X(this,p,"f").getEnv("LANGUAGE")||"en_US";this.locale(D.replace(/[.:].*/,""))}[X8](){return this[rF]().version||"unknown"}[Q8](D){let u=D["--"]?D["--"]:D._;for(let F=0,E;(E=u[F])!==void 0;F++)if(X(this,p,"f").Parser.looksLikeNumber(E)&&Number.isSafeInteger(Math.floor(parseFloat(`${E}`))))u[F]=Number(E);return D}[rF](D){let u=D||"*";if(X(this,Uu,"f")[u])return X(this,Uu,"f")[u];let F={};try{let E=D||X(this,p,"f").mainFilename;if(X(this,p,"f").path.extname(E))E=X(this,p,"f").path.dirname(E);let C=X(this,p,"f").findUp(E,(B,$)=>{if($.includes("package.json"))return"package.json";else return});WD(C,void 0,X(this,p,"f")),F=JSON.parse(X(this,p,"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[D0](F),X(this,b,"f")[D].push(F)})}[_u](D,u,F,E){this[eF](D,u,F,E,(C,B,$)=>{X(this,b,"f")[C][B]=$})}[aF](D,u,F,E){this[eF](D,u,F,E,(C,B,$)=>{X(this,b,"f")[C][B]=(X(this,b,"f")[C][B]||[]).concat($)})}[eF](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 Ku(F))D(B,F[B]);else C(u,this[D0](F),E)}[D0](D){if(D==="__proto__")return"___proto___";return D}[u0](D,u){return this[_u](this[u0].bind(this),"key",D,u),this}[F0](){var D,u,F,E,C,B,$,G,Z,z,Q,J;let Y=X(this,FF,"f").pop();WD(Y,void 0,X(this,p,"f"));let V;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(O){S(D,b,O,"f")}}.value,configObjects:V,exitProcess:{set value(O){S(u,AD,O,"f")}}.value,groups:{set value(O){S(F,xD,O,"f")}}.value,output:{set value(O){S(E,XD,O,"f")}}.value,exitError:{set value(O){S(C,dD,O,"f")}}.value,hasOutput:{set value(O){S(B,KD,O,"f")}}.value,parsed:this.parsed,strict:{set value(O){S($,$u,O,"f")}}.value,strictCommands:{set value(O){S(G,Gu,O,"f")}}.value,strictOptions:{set value(O){S(Z,zu,O,"f")}}.value,completionCommand:{set value(O){S(z,qD,O,"f")}}.value,parseFn:{set value(O){S(Q,MD,O,"f")}}.value,parseContext:{set value(O){S(J,Cu,O,"f")}}.value}=Y,X(this,b,"f").configObjects=V,X(this,c,"f").unfreeze(),X(this,DD,"f").unfreeze(),X(this,ED,"f").unfreeze(),X(this,LD,"f").unfreeze()}[Y8](D,u){return Du(u,(F)=>{return D(F),F})}getInternalMethods(){return{getCommandInstance:this[W8].bind(this),getContext:this[O8].bind(this),getHasOutput:this[V8].bind(this),getLoggerInstance:this[H8].bind(this),getParseContext:this[q8].bind(this),getParserConfiguration:this[Zu].bind(this),getUsageConfiguration:this[J8].bind(this),getUsageInstance:this[K8].bind(this),getValidationInstance:this[M8].bind(this),hasParseCallback:this[zF].bind(this),isGlobalContext:this[U8].bind(this),postProcess:this[Ju].bind(this),reset:this[E0].bind(this),runValidation:this[C0].bind(this),runYargsParserAndExecuteCommands:this[Iu].bind(this),setHasOutput:this[j8].bind(this)}}[W8](){return X(this,ED,"f")}[O8](){return X(this,xu,"f")}[V8](){return X(this,KD,"f")}[H8](){return X(this,Eu,"f")}[q8](){return X(this,Cu,"f")||{}}[K8](){return X(this,c,"f")}[M8](){return X(this,DD,"f")}[zF](){return!!X(this,MD,"f")}[U8](){return X(this,EF,"f")}[Ju](D,u,F,E){if(F)return D;if(a(D))return D;if(!u)D=this[B8](D);if(this[Zu]()["parse-positional-numbers"]||this[Zu]()["parse-positional-numbers"]===void 0)D=this[Q8](D);if(E)D=eD(D,this,X(this,LD,"f").getMiddleware(),!1);return D}[E0](D={}){S(this,b,X(this,b,"f")||{},"f");let u={};u.local=X(this,b,"f").local||[],u.configObjects=X(this,b,"f").configObjects||[];let F={};u.local.forEach((B)=>{F[B]=!0,(D[B]||[]).forEach(($)=>{F[$]=!0})}),Object.assign(X(this,Bu,"f"),Object.keys(X(this,xD,"f")).reduce((B,$)=>{let G=X(this,xD,"f")[$].filter((Z)=>!(Z in F));if(G.length>0)B[$]=G;return B},{})),S(this,xD,{},"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,b,"f")[B]||[]).filter(($)=>!F[$])}),C.forEach((B)=>{u[B]=gD(X(this,b,"f")[B],($)=>!F[$])}),u.envPrefix=X(this,b,"f").envPrefix,S(this,b,u,"f"),S(this,c,X(this,c,"f")?X(this,c,"f").reset(F):s2(this,X(this,p,"f")),"f"),S(this,DD,X(this,DD,"f")?X(this,DD,"f").reset(F):E8(this,X(this,c,"f"),X(this,p,"f")),"f"),S(this,ED,X(this,ED,"f")?X(this,ED,"f").reset():l2(X(this,c,"f"),X(this,DD,"f"),X(this,LD,"f"),X(this,p,"f")),"f"),!X(this,VD,"f"))S(this,VD,D8(this,X(this,c,"f"),X(this,ED,"f"),X(this,p,"f")),"f");return X(this,LD,"f").reset(),S(this,qD,null,"f"),S(this,XD,"","f"),S(this,dD,null,"f"),S(this,KD,!1,"f"),this.parsed=!1,this}[_8](D,u){return X(this,p,"f").path.relative(D,u)}[Iu](D,u,F,E=0,C=!1){var B,$,G,Z;let z=!!F||C;D=D||X(this,iD,"f"),X(this,b,"f").__=X(this,p,"f").y18n.__,X(this,b,"f").configuration=this[Zu]();let Q=!!X(this,b,"f").configuration["populate--"],J=Object.assign({},X(this,b,"f").configuration,{"populate--":!0}),Y=X(this,p,"f").Parser.detailed(D,Object.assign({},X(this,b,"f"),{configuration:{"parse-positional-numbers":!1,...J}})),V=Object.assign(Y.argv,X(this,Cu,"f")),O=void 0,W=Y.aliases,K=!1,_=!1;if(Object.keys(V).forEach((j)=>{if(j===X(this,ND,"f")&&V[j])K=!0;else if(j===X(this,ID,"f")&&V[j])_=!0}),V.$0=this.$0,this.parsed=Y,E===0)X(this,c,"f").clearCachedHelpMessage();try{if(this[sF](),u)return this[Ju](V,Q,!!F,!1);if(X(this,ND,"f")){if([X(this,ND,"f")].concat(W[X(this,ND,"f")]||[]).filter((d)=>d.length>1).includes(""+V._[V._.length-1]))V._.pop(),K=!0}S(this,EF,!1,"f");let j=X(this,ED,"f").getCommands(),I=((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((m)=>Object.prototype.hasOwnProperty.call(V,m)):!1,L=K||I||C;if(V._.length){if(j.length){let m;for(let d=E||0,o;V._[d]!==void 0;d++)if(o=String(V._[d]),j.includes(o)&&o!==X(this,qD,"f")){let _D=X(this,ED,"f").runCommand(o,this,Y,d+1,C,K||_||C);return this[Ju](_D,Q,!!F,!1)}else if(!m&&o!==X(this,qD,"f")){m=o;break}if(!X(this,ED,"f").hasDefaultCommand()&&X(this,$F,"f")&&m&&!L)X(this,DD,"f").recommendCommands(m,j)}if(X(this,qD,"f")&&V._.includes(X(this,qD,"f"))&&!I){if(X(this,AD,"f"))kD(!0);this.showCompletionScript(),this.exit(0)}}if(X(this,ED,"f").hasDefaultCommand()&&!L){let m=X(this,ED,"f").runCommand(null,this,Y,0,C,K||_||C);return this[Ju](m,Q,!!F,!1)}if(I){if(X(this,AD,"f"))kD(!0);D=[].concat(D);let m=D.slice(D.indexOf(`--${X(this,VD,"f").completionKey}`)+1);return X(this,VD,"f").getCompletion(m,(d,o)=>{if(d)throw new FD(d.message);(o||[]).forEach((_D)=>{X(this,Eu,"f").log(_D)}),this.exit(0)}),this[Ju](V,!Q,!!F,!1)}if(!X(this,KD,"f")){if(K){if(X(this,AD,"f"))kD(!0);z=!0,this.showHelp((m)=>{X(this,Eu,"f").log(m),this.exit(0)})}else if(_){if(X(this,AD,"f"))kD(!0);z=!0,X(this,c,"f").showVersion("log"),this.exit(0)}}if(!z&&X(this,b,"f").skipValidation.length>0)z=Object.keys(V).some((m)=>X(this,b,"f").skipValidation.indexOf(m)>=0&&V[m]===!0);if(!z){if(Y.error)throw new FD(Y.error.message);if(!I){let m=this[C0](W,{},Y.error);if(!F)O=eD(V,this,X(this,LD,"f").getMiddleware(),!0);if(O=this[Y8](m,O!==null&&O!==void 0?O:V),a(O)&&!F)O=O.then(()=>{return eD(V,this,X(this,LD,"f").getMiddleware(),!1)})}}}catch(j){if(j instanceof FD)X(this,c,"f").fail(j.message,j);else throw j}return this[Ju](O!==null&&O!==void 0?O:V,Q,!!F,!0)}[C0](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,Gu,"f"))$=X(this,DD,"f").unknownCommands(B);if(X(this,$u,"f")&&!$)X(this,DD,"f").unknownArguments(B,D,u,!!E);else if(X(this,zu,"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)}}[j8](){S(this,KD,!0,"f")}[Xu](D){if(typeof D==="string")X(this,b,"f").key[D]=!0;else for(let u of D)X(this,b,"f").key[u]=!0}}function t2(D){return!!D&&typeof D.getInternalMethods==="function"}var _6=A8(dF),N8=_6;import{existsSync as ZF,readFileSync as G0,writeFileSync as B0,mkdirSync as S8}from"node:fs";import{homedir as j6}from"node:os";import{join as Qu,dirname as z0}from"node:path";function Z0(){return process.env.HOME||j6()}function P8(){return Qu(Z0(),".config","slack-cli","profiles.json")}function JF(){return Qu(process.cwd(),".slack-cli","workspace")}function XF(){return Qu(Z0(),".slack-cli","workspace")}function bu(){let D=P8();if(!ZF(D))return{profiles:{}};return JSON.parse(G0(D,"utf8"))}function A6(D){let u=P8();S8(z0(u),{recursive:!0}),B0(u,JSON.stringify(D,null,2)+`
|
|
82
|
-
`)}function
|
|
74
|
+
`;class C8{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(au(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=gD(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 Q=this.usage.getDescriptions(),O=(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((K)=>{let A=Q[K];return typeof A==="string"&&A.length>0}),V=O?Q[O]:void 0,W=(G=($=Q[D])!==null&&$!==void 0?$:V)!==null&&G!==void 0?G:"";z=`${D.replace(/:/g,"\\:")}:${W.replace("__yargsString__:","").replace(/(\r\n|\n|\r)/gm," ")}`}let Z=(Q)=>/^--/.test(Q),Y=(Q)=>/^[^0-9]$/.test(Q),J=!Z(F)&&Y(D)?"-":"--";if(u.push(J+z),E)u.push(J+"no-"+z)}customCompletion(D,u,F,E){if(WD(this.customCompletionFunction,null,this.shim),q6(this.customCompletionFunction)){let C=this.customCompletionFunction(F,u);if(a(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(K6(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 a(E)?E.then(C):C(E)}generateCompletionScript(D,u){let F=this.zshShell?E8:F8,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 B8(D,u,F,E){return new C8(D,u,F,E)}function q6(D){return D.length<3}function K6(D){return D.length>3}function $8(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 G8=["$0","--","_"];function z8(D,u,F){let E=F.y18n.__,C=F.y18n.__n,B={};B.nonOptionCount=function(J){let Q=D.getDemandedCommands(),V=J._.length+(J["--"]?J["--"].length:0)-D.getInternalMethods().getContext().commands.length;if(Q._&&(V<Q._.min||V>Q._.max)){if(V<Q._.min)if(Q._.minMsg!==void 0)u.fail(Q._.minMsg?Q._.minMsg.replace(/\$0/g,V.toString()).replace(/\$1/,Q._.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(),Q._.min.toString()));else if(V>Q._.max)if(Q._.maxMsg!==void 0)u.fail(Q._.maxMsg?Q._.maxMsg.replace(/\$0/g,V.toString()).replace(/\$1/,Q._.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(),Q._.max.toString()))}},B.positionalCount=function(J,Q){if(Q<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",Q,Q+"",J+""))},B.requiredArguments=function(J,Q){let O=null;for(let V of Object.keys(Q))if(!Object.prototype.hasOwnProperty.call(J,V)||typeof J[V]>"u")O=O||{},O[V]=Q[V];if(O){let V=[];for(let K of Object.keys(O)){let A=O[K];if(A&&V.indexOf(A)<0)V.push(A)}let W=V.length?`
|
|
75
|
+
${V.join(`
|
|
76
|
+
`)}`:"";u.fail(C("Missing required argument: %s","Missing required arguments: %s",Object.keys(O).length,Object.keys(O).join(", ")+W))}},B.unknownArguments=function(J,Q,O,V,W=!0){var K;let A=D.getInternalMethods().getCommandInstance().getCommands(),_=[],L=D.getInternalMethods().getContext();if(Object.keys(J).forEach((M)=>{if(!G8.includes(M)&&!Object.prototype.hasOwnProperty.call(O,M)&&!Object.prototype.hasOwnProperty.call(D.getInternalMethods().getParseContext(),M)&&!B.isValidAndSomeAliasIsNotNew(M,Q))_.push(M)}),W&&(L.commands.length>0||A.length>0||V))J._.slice(L.commands.length).forEach((M)=>{if(!A.includes(""+M))_.push(""+M)});if(W){let x=((K=D.getDemandedCommands()._)===null||K===void 0?void 0:K.max)||0,k=L.commands.length+x;if(k<J._.length)J._.slice(k).forEach((o)=>{if(o=String(o),!L.commands.includes(o)&&!_.includes(o))_.push(o)})}if(_.length)u.fail(C("Unknown argument: %s","Unknown arguments: %s",_.length,_.map((M)=>M.trim()?M:`"${M}"`).join(", ")))},B.unknownCommands=function(J){let Q=D.getInternalMethods().getCommandInstance().getCommands(),O=[],V=D.getInternalMethods().getContext();if(V.commands.length>0||Q.length>0)J._.slice(V.commands.length).forEach((W)=>{if(!Q.includes(""+W))O.push(""+W)});if(O.length>0)return u.fail(C("Unknown command: %s","Unknown commands: %s",O.length,O.join(", "))),!0;else return!1},B.isValidAndSomeAliasIsNotNew=function(J,Q){if(!Object.prototype.hasOwnProperty.call(Q,J))return!1;let O=D.parsed.newAliases;return[J,...Q[J]].some((V)=>!Object.prototype.hasOwnProperty.call(O,V)||!O[J])},B.limitedChoices=function(J){let Q=D.getOptions(),O={};if(!Object.keys(Q.choices).length)return;Object.keys(J).forEach((K)=>{if(G8.indexOf(K)===-1&&Object.prototype.hasOwnProperty.call(Q.choices,K))[].concat(J[K]).forEach((A)=>{if(Q.choices[K].indexOf(A)===-1&&A!==void 0)O[K]=(O[K]||[]).concat(A)})});let V=Object.keys(O);if(!V.length)return;let W=E("Invalid values:");V.forEach((K)=>{W+=`
|
|
77
|
+
${E("Argument: %s, Given: %s, Choices: %s",K,u.stringifiedValues(O[K]),u.stringifiedValues(Q.choices[K]))}`}),u.fail(W)};let $={};B.implies=function(J,Q){if(S("<string|object> [array|number|string]",[J,Q],arguments.length),typeof J==="object")Object.keys(J).forEach((O)=>{B.implies(O,J[O])});else{if(D.global(J),!$[J])$[J]=[];if(Array.isArray(Q))Q.forEach((O)=>B.implies(J,O));else WD(Q,void 0,F),$[J].push(Q)}},B.getImplied=function(){return $};function G(Y,J){let Q=Number(J);if(J=isNaN(Q)?J:Q,typeof J==="number")J=Y._.length>=J;else if(J.match(/^--no-.+/))J=J.match(/^--no-(.+)/)[1],J=!Object.prototype.hasOwnProperty.call(Y,J);else J=Object.prototype.hasOwnProperty.call(Y,J);return J}B.implications=function(J){let Q=[];if(Object.keys($).forEach((O)=>{let V=O;($[O]||[]).forEach((W)=>{let K=V,A=W;if(K=G(J,K),W=G(J,W),K&&!W)Q.push(` ${V} -> ${A}`)})}),Q.length){let O=`${E("Implications failed:")}
|
|
78
|
+
`;Q.forEach((V)=>{O+=V}),u.fail(O)}};let z={};B.conflicts=function(J,Q){if(S("<string|object> [array|string]",[J,Q],arguments.length),typeof J==="object")Object.keys(J).forEach((O)=>{B.conflicts(O,J[O])});else{if(D.global(J),!z[J])z[J]=[];if(Array.isArray(Q))Q.forEach((O)=>B.conflicts(J,O));else z[J].push(Q)}},B.getConflicting=()=>z,B.conflicting=function(J){if(Object.keys(J).forEach((Q)=>{if(z[Q])z[Q].forEach((O)=>{if(O&&J[Q]!==void 0&&J[O]!==void 0)u.fail(E("Arguments %s and %s are mutually exclusive",Q,O))})}),D.getInternalMethods().getParserConfiguration()["strip-dashed"])Object.keys(z).forEach((Q)=>{z[Q].forEach((O)=>{if(O&&J[F.Parser.camelCase(Q)]!==void 0&&J[F.Parser.camelCase(O)]!==void 0)u.fail(E("Arguments %s and %s are mutually exclusive",Q,O))})})},B.recommendCommands=function(J,Q){Q=Q.sort((K,A)=>A.length-K.length);let V=null,W=1/0;for(let K=0,A;(A=Q[K])!==void 0;K++){let _=$8(J,A);if(_<=3&&_<W)W=_,V=A}if(V)u.fail(E("Did you mean %s?",V))},B.reset=function(J){return $=cD($,(Q)=>!J[Q]),z=cD(z,(Q)=>!J[Q]),B};let Z=[];return B.freeze=function(){Z.push({implied:$,conflicting:z})},B.unfreeze=function(){let J=Z.pop();WD(J,void 0,F),{implied:$,conflicting:z}=J},B}var tF=[],wu;function xu(D,u,F,E){wu=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 $=_6(u,D.extends);U6($),tF.push($),C=B?JSON.parse(wu.readFileSync($,"utf8")):E.require(D.extends),delete D.extends,C=xu(C,wu.path.dirname($),F,wu)}return tF=[],F?Z8(C,D):Object.assign({},C,D)}function U6(D){if(tF.indexOf(D)>-1)throw new FD(`Circular extended configurations: '${D}'.`)}function _6(D,u){return wu.path.resolve(D,u)}function Z8(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]=Z8(D[C],u[C]);else F[C]=u[C];return F}var P=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,uu,Iu,VD,qD,DF,dD,Fu,uF,AD,FF,LD,xD,KD,ND,EF,Eu,XD,f,CF,BF,UD,Cu,_u,Bu,iD,$F,y,$u,Gu,zu,c,GF,ID,DD;function S8(D){return(u=[],F=D.process.cwd(),E)=>{let C=new P8(u,F,E,D);return Object.defineProperty(C,"argv",{get:()=>{return C.parse()},enumerable:!0}),C.help(),C.version(),C}}var J8=Symbol("copyDoubleDash"),X8=Symbol("copyDoubleDash"),oF=Symbol("deleteFromParserHintObject"),Q8=Symbol("emitWarning"),Y8=Symbol("freeze"),W8=Symbol("getDollarZero"),Zu=Symbol("getParserConfiguration"),O8=Symbol("getUsageConfiguration"),sF=Symbol("guessLocale"),V8=Symbol("guessVersion"),H8=Symbol("parsePositionalNumbers"),rF=Symbol("pkgUp"),nD=Symbol("populateParserHintArray"),ju=Symbol("populateParserHintSingleValueDictionary"),aF=Symbol("populateParserHintArrayDictionary"),eF=Symbol("populateParserHintDictionary"),D0=Symbol("sanitizeKey"),u0=Symbol("setKey"),F0=Symbol("unfreeze"),q8=Symbol("validateAsync"),K8=Symbol("getCommandInstance"),U8=Symbol("getContext"),_8=Symbol("getHasOutput"),j8=Symbol("getLoggerInstance"),M8=Symbol("getParseContext"),A8=Symbol("getUsageInstance"),L8=Symbol("getValidationInstance"),zF=Symbol("hasParseCallback"),N8=Symbol("isGlobalContext"),Ju=Symbol("postProcess"),T8=Symbol("rebase"),E0=Symbol("reset"),bu=Symbol("runYargsParserAndExecuteCommands"),C0=Symbol("runValidation"),R8=Symbol("setHasOutput"),Xu=Symbol("kTrackManuallySetKeys"),j6="en_US";class P8{constructor(D=[],u,F,E){this.customScriptName=!1,this.parsed=!1,ED.set(this,void 0),uu.set(this,void 0),Iu.set(this,{commands:[],fullCommands:[]}),VD.set(this,null),qD.set(this,null),DF.set(this,"show-hidden"),dD.set(this,null),Fu.set(this,!0),uF.set(this,{}),AD.set(this,!0),FF.set(this,[]),LD.set(this,void 0),xD.set(this,{}),KD.set(this,!1),ND.set(this,null),EF.set(this,!0),Eu.set(this,void 0),XD.set(this,""),f.set(this,void 0),CF.set(this,void 0),BF.set(this,{}),UD.set(this,null),Cu.set(this,null),_u.set(this,{}),Bu.set(this,{}),iD.set(this,void 0),$F.set(this,!1),y.set(this,void 0),$u.set(this,!1),Gu.set(this,!1),zu.set(this,!1),c.set(this,void 0),GF.set(this,{}),ID.set(this,null),DD.set(this,void 0),P(this,y,E,"f"),P(this,iD,D,"f"),P(this,uu,u,"f"),P(this,CF,F,"f"),P(this,LD,new nF(this),"f"),this.$0=this[W8](),this[E0](),P(this,ED,X(this,ED,"f"),"f"),P(this,c,X(this,c,"f"),"f"),P(this,DD,X(this,DD,"f"),"f"),P(this,f,X(this,f,"f"),"f"),X(this,f,"f").showHiddenOpt=X(this,DF,"f"),P(this,Eu,this[X8](),"f"),X(this,y,"f").y18n.setLocale(j6)}addHelpOpt(D,u){if(S("[string|boolean] [string]",[D,u],arguments.length),X(this,ND,"f"))this[oF](X(this,ND,"f")),P(this,ND,null,"f");if(D===!1&&u===void 0)return this;return P(this,ND,typeof D==="string"?D:"help","f"),this.boolean(X(this,ND,"f")),this.describe(X(this,ND,"f"),u||X(this,c,"f").deferY18nLookup("Show help")),this}help(D,u){return this.addHelpOpt(D,u)}addShowHiddenOpt(D,u){if(S("[string|boolean] [string]",[D,u],arguments.length),D===!1&&u===void 0)return this;let F=typeof D==="string"?D:X(this,DF,"f");return this.boolean(F),this.describe(F,u||X(this,c,"f").deferY18nLookup("Show hidden options")),X(this,f,"f").showHiddenOpt=F,this}showHidden(D,u){return this.addShowHiddenOpt(D,u)}alias(D,u){return S("<object|string|array> [string|array]",[D,u],arguments.length),this[aF](this.alias.bind(this),"alias",D,u),this}array(D){return S("<array|string>",[D],arguments.length),this[nD]("array",D),this[Xu](D),this}boolean(D){return S("<array|string>",[D],arguments.length),this[nD]("boolean",D),this[Xu](D),this}check(D,u){return S("<function> [boolean]",[D,u],arguments.length),this.middleware((F,E)=>{return Du(()=>{return D(F,E.getOptions())},(C)=>{if(!C)X(this,c,"f").fail(X(this,y,"f").y18n.__("Argument check failed: %s",D.toString()));else if(typeof C==="string"||C instanceof Error)X(this,c,"f").fail(C.toString(),C);return F},(C)=>{return X(this,c,"f").fail(C.message?C.message:C.toString(),C),F})},!1,u),this}choices(D,u){return S("<object|string|array> [string|array]",[D,u],arguments.length),this[aF](this.choices.bind(this),"choices",D,u),this}coerce(D,u){if(S("<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,f,"f").key[F]=!0,X(this,LD,"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 Du(()=>{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 S("<string|object> [string|array]",[D,u],arguments.length),X(this,DD,"f").conflicts(D,u),this}config(D="config",u,F){if(S("[object|string] [string|function] [function]",[D,u,F],arguments.length),typeof D==="object"&&!Array.isArray(D))return D=xu(D,X(this,uu,"f"),this[Zu]()["deep-merge-config"]||!1,X(this,y,"f")),X(this,f,"f").configObjects=(X(this,f,"f").configObjects||[]).concat(D),this;if(typeof u==="function")F=u,u=void 0;return this.describe(D,u||X(this,c,"f").deferY18nLookup("Path to JSON config file")),(Array.isArray(D)?D:[D]).forEach((E)=>{X(this,f,"f").config[E]=F||!0}),this}completion(D,u,F){if(S("[string] [string|boolean|function] [function]",[D,u,F],arguments.length),typeof u==="function")F=u,u=void 0;if(P(this,qD,D||X(this,qD,"f")||"completion","f"),!u&&u!==!1)u="generate completion script";if(this.command(X(this,qD,"f"),u),F)X(this,VD,"f").registerFunction(F);return this}command(D,u,F,E,C,B){return S("<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){S("<string> [object]",[D,u],arguments.length);let F=X(this,CF,"f")||X(this,y,"f").require;return X(this,ED,"f").addDirectory(D,F,X(this,y,"f").getCallerFile(),u),this}count(D){return S("<array|string>",[D],arguments.length),this[nD]("count",D),this[Xu](D),this}default(D,u,F){if(S("<object|string|array> [*] [string]",[D,u,F],arguments.length),F)iF(D,X(this,y,"f")),X(this,f,"f").defaultDescription[D]=F;if(typeof u==="function"){if(iF(D,X(this,y,"f")),!X(this,f,"f").defaultDescription[D])X(this,f,"f").defaultDescription[D]=X(this,c,"f").functionDescription(u);u=u.call()}return this[ju](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(S("[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,f,"f").demandedCommands._={min:D,max:u,minMsg:F,maxMsg:E},this}demand(D,u,F){if(Array.isArray(u))u.forEach((E)=>{WD(F,!0,X(this,y,"f")),this.demandOption(E,F)}),u=1/0;else if(typeof u!=="number")F=u,u=1/0;if(typeof D==="number")WD(F,!0,X(this,y,"f")),this.demandCommand(D,u,F,F);else if(Array.isArray(D))D.forEach((E)=>{WD(F,!0,X(this,y,"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 S("<object|string|array> [string]",[D,u],arguments.length),this[ju](this.demandOption.bind(this),"demandedOptions",D,u),this}deprecateOption(D,u){return S("<string> [string|boolean]",[D,u],arguments.length),X(this,f,"f").deprecatedOptions[D]=u,this}describe(D,u){return S("<object|string|array> [string]",[D,u],arguments.length),this[u0](D,!0),X(this,c,"f").describe(D,u),this}detectLocale(D){return S("<boolean>",[D],arguments.length),P(this,Fu,D,"f"),this}env(D){if(S("[string|boolean]",[D],arguments.length),D===!1)delete X(this,f,"f").envPrefix;else X(this,f,"f").envPrefix=D||"";return this}epilogue(D){return S("<string>",[D],arguments.length),X(this,c,"f").epilog(D),this}epilog(D){return this.epilogue(D)}example(D,u){if(S("<string|array> [string]",[D,u],arguments.length),Array.isArray(D))D.forEach((F)=>this.example(...F));else X(this,c,"f").example(D,u);return this}exit(D,u){if(P(this,KD,!0,"f"),P(this,dD,u,"f"),X(this,AD,"f"))X(this,y,"f").process.exit(D)}exitProcess(D=!0){return S("[boolean]",[D],arguments.length),P(this,AD,D,"f"),this}fail(D){if(S("<function|boolean>",[D],arguments.length),typeof D==="boolean"&&D!==!1)throw new FD("Invalid first argument. Expected function or boolean 'false'");return X(this,c,"f").failFn(D),this}getAliases(){return this.parsed?this.parsed.aliases:{}}async getCompletion(D,u){if(S("<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 S([],0),X(this,f,"f").demandedOptions}getDemandedCommands(){return S([],0),X(this,f,"f").demandedCommands}getDeprecatedOptions(){return S([],0),X(this,f,"f").deprecatedOptions}getDetectLocale(){return X(this,Fu,"f")}getExitProcess(){return X(this,AD,"f")}getGroups(){return Object.assign({},X(this,xD,"f"),X(this,Bu,"f"))}getHelp(){if(P(this,KD,!0,"f"),!X(this,c,"f").hasCachedHelpMessage()){if(!this.parsed){let u=this[bu](X(this,iD,"f"),void 0,void 0,0,!0);if(a(u))return u.then(()=>{return X(this,c,"f").help()})}let D=X(this,ED,"f").runDefaultBuilderOn(this);if(a(D))return D.then(()=>{return X(this,c,"f").help()})}return Promise.resolve(X(this,c,"f").help())}getOptions(){return X(this,f,"f")}getStrict(){return X(this,$u,"f")}getStrictCommands(){return X(this,Gu,"f")}getStrictOptions(){return X(this,zu,"f")}global(D,u){if(S("<string|array> [boolean]",[D,u],arguments.length),D=[].concat(D),u!==!1)X(this,f,"f").local=X(this,f,"f").local.filter((F)=>D.indexOf(F)===-1);else D.forEach((F)=>{if(!X(this,f,"f").local.includes(F))X(this,f,"f").local.push(F)});return this}group(D,u){S("<string|array> <string>",[D,u],arguments.length);let F=X(this,Bu,"f")[u]||X(this,xD,"f")[u];if(X(this,Bu,"f")[u])delete X(this,Bu,"f")[u];let E={};return X(this,xD,"f")[u]=(F||[]).concat(D).filter((C)=>{if(E[C])return!1;return E[C]=!0}),this}hide(D){return S("<string>",[D],arguments.length),X(this,f,"f").hiddenOptions.push(D),this}implies(D,u){return S("<string|object> [number|string|array]",[D,u],arguments.length),X(this,DD,"f").implies(D,u),this}locale(D){if(S("[string]",[D],arguments.length),D===void 0)return this[sF](),X(this,y,"f").y18n.getLocale();return P(this,Fu,!1,"f"),X(this,y,"f").y18n.setLocale(D),this}middleware(D,u,F){return X(this,LD,"f").addMiddleware(D,!!u,F)}nargs(D,u){return S("<string|object|array> [number]",[D,u],arguments.length),this[ju](this.nargs.bind(this),"narg",D,u),this}normalize(D){return S("<array|string>",[D],arguments.length),this[nD]("normalize",D),this}number(D){return S("<array|string>",[D],arguments.length),this[nD]("number",D),this[Xu](D),this}option(D,u){if(S("<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[Xu](D),X(this,ID,"f")&&(D==="version"||(u===null||u===void 0?void 0:u.alias)==="version"))this[Q8](['"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,f,"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,f,"f").defaultDescription[D]=u.defaultDescription;if(u.skipValidation)this.skipValidation(D);let C=u.describe||u.description||u.desc,B=X(this,c,"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(S("[string|array] [function|boolean|object] [function]",[D,u,F],arguments.length),this[Y8](),typeof D>"u")D=X(this,iD,"f");if(typeof u==="object")P(this,Cu,u,"f"),u=F;if(typeof u==="function")P(this,UD,u,"f"),u=!1;if(!u)P(this,iD,D,"f");if(X(this,UD,"f"))P(this,AD,!1,"f");let E=this[bu](D,!!u),C=this.parsed;if(X(this,VD,"f").setParsed(this.parsed),a(E))return E.then((B)=>{if(X(this,UD,"f"))X(this,UD,"f").call(this,X(this,dD,"f"),B,X(this,XD,"f"));return B}).catch((B)=>{if(X(this,UD,"f"))X(this,UD,"f")(B,this.parsed.argv,X(this,XD,"f"));throw B}).finally(()=>{this[F0](),this.parsed=C});else{if(X(this,UD,"f"))X(this,UD,"f").call(this,X(this,dD,"f"),E,X(this,XD,"f"));this[F0](),this.parsed=C}return E}parseAsync(D,u,F){let E=this.parse(D,u,F);return!a(E)?Promise.resolve(E):E}parseSync(D,u,F){let E=this.parse(D,u,F);if(a(E))throw new FD(".parseSync() must not be used with asynchronous builders, handlers, or middleware");return E}parserConfiguration(D){return S("<object>",[D],arguments.length),P(this,BF,D,"f"),this}pkgConf(D,u){S("<string> [string]",[D,u],arguments.length);let F=null,E=this[rF](u||X(this,uu,"f"));if(E[D]&&typeof E[D]==="object")F=xu(E[D],u||X(this,uu,"f"),this[Zu]()["deep-merge-config"]||!1,X(this,y,"f")),X(this,f,"f").configObjects=(X(this,f,"f").configObjects||[]).concat(F);return this}positional(D,u){S("<string> <object>",[D,u],arguments.length);let F=["default","defaultDescription","implies","normalize","choices","conflicts","coerce","type","describe","desc","description","alias"];u=cD(u,(B,$)=>{if(B==="type"&&!["string","number","boolean"].includes($))return!1;return F.includes(B)});let E=X(this,Iu,"f").fullCommands[X(this,Iu,"f").fullCommands.length-1],C=E?X(this,ED,"f").cmdToParseOptions(E):{array:[],alias:{},default:{},demand:{}};return Ku(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,c,"f").getPositionalGroupName()),this.option(D,u)}recommendCommands(D=!0){return S("[boolean]",[D],arguments.length),P(this,$F,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(S("<array|string|object> [number]",[D],arguments.length),typeof D==="string"&&X(this,f,"f").narg[D])return this;else this[ju](this.requiresArg.bind(this),"narg",D,NaN);return this}showCompletionScript(D,u){return S("[string] [string]",[D,u],arguments.length),D=D||this.$0,X(this,Eu,"f").log(X(this,VD,"f").generateCompletionScript(D,u||X(this,qD,"f")||"completion")),this}showHelp(D){if(S("[string|function]",[D],arguments.length),P(this,KD,!0,"f"),!X(this,c,"f").hasCachedHelpMessage()){if(!this.parsed){let F=this[bu](X(this,iD,"f"),void 0,void 0,0,!0);if(a(F))return F.then(()=>{X(this,c,"f").showHelp(D)}),this}let u=X(this,ED,"f").runDefaultBuilderOn(this);if(a(u))return u.then(()=>{X(this,c,"f").showHelp(D)}),this}return X(this,c,"f").showHelp(D),this}scriptName(D){return this.customScriptName=!0,this.$0=D,this}showHelpOnFail(D,u){return S("[boolean|string] [string]",[D,u],arguments.length),X(this,c,"f").showHelpOnFail(D,u),this}showVersion(D){return S("[string|function]",[D],arguments.length),X(this,c,"f").showVersion(D),this}skipValidation(D){return S("<array|string>",[D],arguments.length),this[nD]("skipValidation",D),this}strict(D){return S("[boolean]",[D],arguments.length),P(this,$u,D!==!1,"f"),this}strictCommands(D){return S("[boolean]",[D],arguments.length),P(this,Gu,D!==!1,"f"),this}strictOptions(D){return S("[boolean]",[D],arguments.length),P(this,zu,D!==!1,"f"),this}string(D){return S("<array|string>",[D],arguments.length),this[nD]("string",D),this[Xu](D),this}terminalWidth(){return S([],0),X(this,y,"f").process.stdColumns}updateLocale(D){return this.updateStrings(D)}updateStrings(D){return S("<object>",[D],arguments.length),P(this,Fu,!1,"f"),X(this,y,"f").y18n.updateLocale(D),this}usage(D,u,F,E){if(S("<string|null|undefined> [string|boolean] [function|object] [function]",[D,u,F,E],arguments.length),u!==void 0)if(WD(D,null,X(this,y,"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,c,"f").usage(D),this}usageConfiguration(D){return S("<object>",[D],arguments.length),P(this,GF,D,"f"),this}version(D,u,F){if(S("[boolean|string] [string] [string]",[D,u,F],arguments.length),X(this,ID,"f"))this[oF](X(this,ID,"f")),X(this,c,"f").version(void 0),P(this,ID,null,"f");if(arguments.length===0)F=this[V8](),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 P(this,ID,typeof D==="string"?D:"version","f"),u=u||X(this,c,"f").deferY18nLookup("Show version number"),X(this,c,"f").version(F||void 0),this.boolean(X(this,ID,"f")),this.describe(X(this,ID,"f"),u),this}wrap(D){return S("<number|null|undefined>",[D],arguments.length),X(this,c,"f").wrap(D),this}[(ED=new WeakMap,uu=new WeakMap,Iu=new WeakMap,VD=new WeakMap,qD=new WeakMap,DF=new WeakMap,dD=new WeakMap,Fu=new WeakMap,uF=new WeakMap,AD=new WeakMap,FF=new WeakMap,LD=new WeakMap,xD=new WeakMap,KD=new WeakMap,ND=new WeakMap,EF=new WeakMap,Eu=new WeakMap,XD=new WeakMap,f=new WeakMap,CF=new WeakMap,BF=new WeakMap,UD=new WeakMap,Cu=new WeakMap,_u=new WeakMap,Bu=new WeakMap,iD=new WeakMap,$F=new WeakMap,y=new WeakMap,$u=new WeakMap,Gu=new WeakMap,zu=new WeakMap,c=new WeakMap,GF=new WeakMap,ID=new WeakMap,DD=new WeakMap,J8)](D){if(!D._||!D["--"])return D;D._.push.apply(D._,D["--"]);try{delete D["--"]}catch(u){}return D}[X8](){return{log:(...D)=>{if(!this[zF]())console.log(...D);if(P(this,KD,!0,"f"),X(this,XD,"f").length)P(this,XD,X(this,XD,"f")+`
|
|
80
|
+
`,"f");P(this,XD,X(this,XD,"f")+D.join(" "),"f")},error:(...D)=>{if(!this[zF]())console.error(...D);if(P(this,KD,!0,"f"),X(this,XD,"f").length)P(this,XD,X(this,XD,"f")+`
|
|
81
|
+
`,"f");P(this,XD,X(this,XD,"f")+D.join(" "),"f")}}}[oF](D){Ku(X(this,f,"f")).forEach((u)=>{if(((E)=>E==="configObjects")(u))return;let F=X(this,f,"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,c,"f").getDescriptions()[D]}[Q8](D,u,F){if(!X(this,uF,"f")[F])X(this,y,"f").process.emitWarning(D,u),X(this,uF,"f")[F]=!0}[Y8](){X(this,FF,"f").push({options:X(this,f,"f"),configObjects:X(this,f,"f").configObjects.slice(0),exitProcess:X(this,AD,"f"),groups:X(this,xD,"f"),strict:X(this,$u,"f"),strictCommands:X(this,Gu,"f"),strictOptions:X(this,zu,"f"),completionCommand:X(this,qD,"f"),output:X(this,XD,"f"),exitError:X(this,dD,"f"),hasOutput:X(this,KD,"f"),parsed:this.parsed,parseFn:X(this,UD,"f"),parseContext:X(this,Cu,"f")}),X(this,c,"f").freeze(),X(this,DD,"f").freeze(),X(this,ED,"f").freeze(),X(this,LD,"f").freeze()}[W8](){let D="",u;if(/\b(node|iojs|electron)(\.exe)?$/.test(X(this,y,"f").process.argv()[0]))u=X(this,y,"f").process.argv().slice(1,2);else u=X(this,y,"f").process.argv().slice(0,1);if(D=u.map((F)=>{let E=this[T8](X(this,uu,"f"),F);return F.match(/^(\/|([a-zA-Z]:)?\\)/)&&E.length<F.length?E:F}).join(" ").trim(),X(this,y,"f").getEnv("_")&&X(this,y,"f").getProcessArgvBin()===X(this,y,"f").getEnv("_"))D=X(this,y,"f").getEnv("_").replace(`${X(this,y,"f").path.dirname(X(this,y,"f").process.execPath())}/`,"");return D}[Zu](){return X(this,BF,"f")}[O8](){return X(this,GF,"f")}[sF](){if(!X(this,Fu,"f"))return;let D=X(this,y,"f").getEnv("LC_ALL")||X(this,y,"f").getEnv("LC_MESSAGES")||X(this,y,"f").getEnv("LANG")||X(this,y,"f").getEnv("LANGUAGE")||"en_US";this.locale(D.replace(/[.:].*/,""))}[V8](){return this[rF]().version||"unknown"}[H8](D){let u=D["--"]?D["--"]:D._;for(let F=0,E;(E=u[F])!==void 0;F++)if(X(this,y,"f").Parser.looksLikeNumber(E)&&Number.isSafeInteger(Math.floor(parseFloat(`${E}`))))u[F]=Number(E);return D}[rF](D){let u=D||"*";if(X(this,_u,"f")[u])return X(this,_u,"f")[u];let F={};try{let E=D||X(this,y,"f").mainFilename;if(X(this,y,"f").path.extname(E))E=X(this,y,"f").path.dirname(E);let C=X(this,y,"f").findUp(E,(B,$)=>{if($.includes("package.json"))return"package.json";else return});WD(C,void 0,X(this,y,"f")),F=JSON.parse(X(this,y,"f").readFileSync(C,"utf8"))}catch(E){}return X(this,_u,"f")[u]=F||{},X(this,_u,"f")[u]}[nD](D,u){u=[].concat(u),u.forEach((F)=>{F=this[D0](F),X(this,f,"f")[D].push(F)})}[ju](D,u,F,E){this[eF](D,u,F,E,(C,B,$)=>{X(this,f,"f")[C][B]=$})}[aF](D,u,F,E){this[eF](D,u,F,E,(C,B,$)=>{X(this,f,"f")[C][B]=(X(this,f,"f")[C][B]||[]).concat($)})}[eF](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 Ku(F))D(B,F[B]);else C(u,this[D0](F),E)}[D0](D){if(D==="__proto__")return"___proto___";return D}[u0](D,u){return this[ju](this[u0].bind(this),"key",D,u),this}[F0](){var D,u,F,E,C,B,$,G,z,Z,Y,J;let Q=X(this,FF,"f").pop();WD(Q,void 0,X(this,y,"f"));let O;D=this,u=this,F=this,E=this,C=this,B=this,$=this,G=this,z=this,Z=this,Y=this,J=this,{options:{set value(V){P(D,f,V,"f")}}.value,configObjects:O,exitProcess:{set value(V){P(u,AD,V,"f")}}.value,groups:{set value(V){P(F,xD,V,"f")}}.value,output:{set value(V){P(E,XD,V,"f")}}.value,exitError:{set value(V){P(C,dD,V,"f")}}.value,hasOutput:{set value(V){P(B,KD,V,"f")}}.value,parsed:this.parsed,strict:{set value(V){P($,$u,V,"f")}}.value,strictCommands:{set value(V){P(G,Gu,V,"f")}}.value,strictOptions:{set value(V){P(z,zu,V,"f")}}.value,completionCommand:{set value(V){P(Z,qD,V,"f")}}.value,parseFn:{set value(V){P(Y,UD,V,"f")}}.value,parseContext:{set value(V){P(J,Cu,V,"f")}}.value}=Q,X(this,f,"f").configObjects=O,X(this,c,"f").unfreeze(),X(this,DD,"f").unfreeze(),X(this,ED,"f").unfreeze(),X(this,LD,"f").unfreeze()}[q8](D,u){return Du(u,(F)=>{return D(F),F})}getInternalMethods(){return{getCommandInstance:this[K8].bind(this),getContext:this[U8].bind(this),getHasOutput:this[_8].bind(this),getLoggerInstance:this[j8].bind(this),getParseContext:this[M8].bind(this),getParserConfiguration:this[Zu].bind(this),getUsageConfiguration:this[O8].bind(this),getUsageInstance:this[A8].bind(this),getValidationInstance:this[L8].bind(this),hasParseCallback:this[zF].bind(this),isGlobalContext:this[N8].bind(this),postProcess:this[Ju].bind(this),reset:this[E0].bind(this),runValidation:this[C0].bind(this),runYargsParserAndExecuteCommands:this[bu].bind(this),setHasOutput:this[R8].bind(this)}}[K8](){return X(this,ED,"f")}[U8](){return X(this,Iu,"f")}[_8](){return X(this,KD,"f")}[j8](){return X(this,Eu,"f")}[M8](){return X(this,Cu,"f")||{}}[A8](){return X(this,c,"f")}[L8](){return X(this,DD,"f")}[zF](){return!!X(this,UD,"f")}[N8](){return X(this,EF,"f")}[Ju](D,u,F,E){if(F)return D;if(a(D))return D;if(!u)D=this[J8](D);if(this[Zu]()["parse-positional-numbers"]||this[Zu]()["parse-positional-numbers"]===void 0)D=this[H8](D);if(E)D=eD(D,this,X(this,LD,"f").getMiddleware(),!1);return D}[E0](D={}){P(this,f,X(this,f,"f")||{},"f");let u={};u.local=X(this,f,"f").local||[],u.configObjects=X(this,f,"f").configObjects||[];let F={};u.local.forEach((B)=>{F[B]=!0,(D[B]||[]).forEach(($)=>{F[$]=!0})}),Object.assign(X(this,Bu,"f"),Object.keys(X(this,xD,"f")).reduce((B,$)=>{let G=X(this,xD,"f")[$].filter((z)=>!(z in F));if(G.length>0)B[$]=G;return B},{})),P(this,xD,{},"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,f,"f")[B]||[]).filter(($)=>!F[$])}),C.forEach((B)=>{u[B]=cD(X(this,f,"f")[B],($)=>!F[$])}),u.envPrefix=X(this,f,"f").envPrefix,P(this,f,u,"f"),P(this,c,X(this,c,"f")?X(this,c,"f").reset(F):u8(this,X(this,y,"f")),"f"),P(this,DD,X(this,DD,"f")?X(this,DD,"f").reset(F):z8(this,X(this,c,"f"),X(this,y,"f")),"f"),P(this,ED,X(this,ED,"f")?X(this,ED,"f").reset():a2(X(this,c,"f"),X(this,DD,"f"),X(this,LD,"f"),X(this,y,"f")),"f"),!X(this,VD,"f"))P(this,VD,B8(this,X(this,c,"f"),X(this,ED,"f"),X(this,y,"f")),"f");return X(this,LD,"f").reset(),P(this,qD,null,"f"),P(this,XD,"","f"),P(this,dD,null,"f"),P(this,KD,!1,"f"),this.parsed=!1,this}[T8](D,u){return X(this,y,"f").path.relative(D,u)}[bu](D,u,F,E=0,C=!1){var B,$,G,z;let Z=!!F||C;D=D||X(this,iD,"f"),X(this,f,"f").__=X(this,y,"f").y18n.__,X(this,f,"f").configuration=this[Zu]();let Y=!!X(this,f,"f").configuration["populate--"],J=Object.assign({},X(this,f,"f").configuration,{"populate--":!0}),Q=X(this,y,"f").Parser.detailed(D,Object.assign({},X(this,f,"f"),{configuration:{"parse-positional-numbers":!1,...J}})),O=Object.assign(Q.argv,X(this,Cu,"f")),V=void 0,W=Q.aliases,K=!1,A=!1;if(Object.keys(O).forEach((_)=>{if(_===X(this,ND,"f")&&O[_])K=!0;else if(_===X(this,ID,"f")&&O[_])A=!0}),O.$0=this.$0,this.parsed=Q,E===0)X(this,c,"f").clearCachedHelpMessage();try{if(this[sF](),u)return this[Ju](O,Y,!!F,!1);if(X(this,ND,"f")){if([X(this,ND,"f")].concat(W[X(this,ND,"f")]||[]).filter((k)=>k.length>1).includes(""+O._[O._.length-1]))O._.pop(),K=!0}P(this,EF,!1,"f");let _=X(this,ED,"f").getCommands(),L=((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((x)=>Object.prototype.hasOwnProperty.call(O,x)):!1,M=K||L||C;if(O._.length){if(_.length){let x;for(let k=E||0,o;O._[k]!==void 0;k++)if(o=String(O._[k]),_.includes(o)&&o!==X(this,qD,"f")){let jD=X(this,ED,"f").runCommand(o,this,Q,k+1,C,K||A||C);return this[Ju](jD,Y,!!F,!1)}else if(!x&&o!==X(this,qD,"f")){x=o;break}if(!X(this,ED,"f").hasDefaultCommand()&&X(this,$F,"f")&&x&&!M)X(this,DD,"f").recommendCommands(x,_)}if(X(this,qD,"f")&&O._.includes(X(this,qD,"f"))&&!L){if(X(this,AD,"f"))kD(!0);this.showCompletionScript(),this.exit(0)}}if(X(this,ED,"f").hasDefaultCommand()&&!M){let x=X(this,ED,"f").runCommand(null,this,Q,0,C,K||A||C);return this[Ju](x,Y,!!F,!1)}if(L){if(X(this,AD,"f"))kD(!0);D=[].concat(D);let x=D.slice(D.indexOf(`--${X(this,VD,"f").completionKey}`)+1);return X(this,VD,"f").getCompletion(x,(k,o)=>{if(k)throw new FD(k.message);(o||[]).forEach((jD)=>{X(this,Eu,"f").log(jD)}),this.exit(0)}),this[Ju](O,!Y,!!F,!1)}if(!X(this,KD,"f")){if(K){if(X(this,AD,"f"))kD(!0);Z=!0,this.showHelp((x)=>{X(this,Eu,"f").log(x),this.exit(0)})}else if(A){if(X(this,AD,"f"))kD(!0);Z=!0,X(this,c,"f").showVersion("log"),this.exit(0)}}if(!Z&&X(this,f,"f").skipValidation.length>0)Z=Object.keys(O).some((x)=>X(this,f,"f").skipValidation.indexOf(x)>=0&&O[x]===!0);if(!Z){if(Q.error)throw new FD(Q.error.message);if(!L){let x=this[C0](W,{},Q.error);if(!F)V=eD(O,this,X(this,LD,"f").getMiddleware(),!0);if(V=this[q8](x,V!==null&&V!==void 0?V:O),a(V)&&!F)V=V.then(()=>{return eD(O,this,X(this,LD,"f").getMiddleware(),!1)})}}}catch(_){if(_ instanceof FD)X(this,c,"f").fail(_.message,_);else throw _}return this[Ju](V!==null&&V!==void 0?V:O,Y,!!F,!0)}[C0](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,Gu,"f"))$=X(this,DD,"f").unknownCommands(B);if(X(this,$u,"f")&&!$)X(this,DD,"f").unknownArguments(B,D,u,!!E);else if(X(this,zu,"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)}}[R8](){P(this,KD,!0,"f")}[Xu](D){if(typeof D==="string")X(this,f,"f").key[D]=!0;else for(let u of D)X(this,f,"f").key[u]=!0}}function e2(D){return!!D&&typeof D.getInternalMethods==="function"}var M6=S8(dF),w8=M6;import{existsSync as ZF,readFileSync as G0,writeFileSync as B0,mkdirSync as b8}from"node:fs";import{homedir as A6}from"node:os";import{join as Qu,dirname as z0}from"node:path";function Z0(){return process.env.HOME||A6()}function f8(){return Qu(Z0(),".config","slack-cli","profiles.json")}function JF(){return Qu(process.cwd(),".slack-cli","workspace")}function XF(){return Qu(Z0(),".slack-cli","workspace")}function fu(){let D=f8();if(!ZF(D))return{profiles:{}};return JSON.parse(G0(D,"utf8"))}function L6(D){let u=f8();b8(z0(u),{recursive:!0}),B0(u,JSON.stringify(D,null,2)+`
|
|
82
|
+
`)}function Mu(D){if(!ZF(D))return;return G0(D,"utf8").trim()||void 0}function x8(D,u){let F=z0(D);b8(F,{recursive:!0});let E=Qu(F,".gitignore");if(!ZF(E))B0(E,`*
|
|
83
83
|
`);B0(D,u+`
|
|
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=$0(process.cwd(),["SLACK_TOKEN"]);if(B)return B;let $=process.env.SLACK_WORKSPACE;if($){let
|
|
84
|
+
`)}function N6(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 I8(D){if(!ZF(D))return{};try{return N6(G0(D,"utf8"))}catch{return{}}}function $0(D,u){let F=Z0(),E=D;while(!0){for(let $ of[Qu(E,".slack-term",".env.local"),Qu(E,".env.local")]){let G=I8($);for(let z of u)if(G[z])return G[z]}if(E===F)break;let B=z0(E);if(B===E)break;E=B}let C=I8(Qu(F,".slack-term",".env.local"));for(let B of u)if(C[B])return C[B];return}function J0(){let D=fu(),u=Mu(JF()),F=Mu(XF()),E=u??F;return Object.entries(D.profiles).map(([C,B])=>({name:C,profile:B,current:C===E}))}function h8(D){let u=fu();if(!(D in u.profiles))throw Error(`Profile not found: ${D}`);delete u.profiles[D],L6(u)}function v8(D,u=!1){let F=fu();if(!(D in F.profiles))throw Error(`Profile not found: ${D}`);if(u)x8(XF(),D);else x8(JF(),D)}function X0(D){let F=fu().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=$0(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=$0(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=Mu(JF());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=Mu(XF());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 auth use <name> (writes .slack-cli/workspace)
|
|
88
88
|
Select globally: slack auth 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
|
|
94
|
-
|
|
93
|
+
`+" Or set SLACK_TOKEN=xoxp-... in .slack-term/.env.local")}function Q0(){let D=process.env.SLACK_BOT_TOKEN;return D&&D.startsWith("xoxb-")?D:void 0}function p8(D){let F=fu().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=$0(process.cwd(),["SLACK_COOKIE"]);if(C)return C;let B=process.env.SLACK_WORKSPACE;if(B)return F[B]?.cookie;let $=Mu(JF());if($)return F[$]?.cookie;let G=Mu(XF());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 Y0(){return(process.env.SLACK_API_BASE??"https://slack.com/api").replace(/\/$/,"")}async function y8(D,u,F,E){let C={};if(E)C.Cookie=`d=${E}`;let B=await fetch(`${Y0()}/${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-) needs its session cookie to be accepted by the public Slack API.
|
|
94
|
+
Attach it: slack auth chrome (macOS) or slack auth firefox
|
|
95
|
+
Or replace the token with an xoxp- user token:
|
|
95
96
|
slack auth token`);if((G==="missing_scope"||G==="cannot_dm_bot")&&D.startsWith("xoxb-"))throw Error(`Slack error on ${u}: ${G} — ${G==="cannot_dm_bot"?`you're authenticated as a bot, so "@you" is the bot itself and it can't DM itself`:"this bot token lacks the user scope this action needs"}.
|
|
96
97
|
Tailing/DMing people and listing users need a user session, not a bot token.
|
|
97
98
|
Switch workspace: slack auth ls then slack auth use <name>
|
|
98
|
-
Or import your Slack desktop session: slack auth login`);throw Error(`Slack error on ${u}: ${G}`)}return $}async function
|
|
99
|
+
Or import your Slack desktop session: slack auth login`);throw Error(`Slack error on ${u}: ${G}`)}return $}async function T6(D,u,F,E){let C={};if(E)C.Cookie=`d=${E}`;let B=await fetch(`${Y0()}/${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-).
|
|
99
100
|
Import from Slack desktop: slack auth login`);if((G==="invalid_auth"||G==="not_authed")&&!E)throw Error(`drafts.list also requires the xoxd session cookie.
|
|
100
|
-
Attach it with: slack auth chrome (macOS) or slack auth firefox`);throw Error(`Slack error on ${u}: ${G}`)}return $}function
|
|
101
|
-
`)}function
|
|
102
|
-
`):[];for(let[C,B]of Object.entries(u)){let $=E.findIndex((
|
|
101
|
+
Attach it with: slack auth chrome (macOS) or slack auth firefox`);throw Error(`Slack error on ${u}: ${G}`)}return $}function R6(D,u,F={},E){let C=new URLSearchParams({token:D,...F});return T6(D,u,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:C.toString()},E)}function OD(D,u,F,E){let C=new URLSearchParams(F).toString();return y8(D,`${u}?${C}`,{method:"GET"},E)}function S6(D,u,F,E){return y8(D,u,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(F)},E)}async function QF(D,u){let F=await OD(D,"auth.test",{},u);return{team:F.team??"",teamId:F.team_id??"",url:F.url??"",user:F.user??"",userId:F.user_id??""}}async function m8(D,u){let F={Authorization:`Bearer ${D}`};if(u)F.Cookie=`d=${u}`;let E=await fetch(`${Y0()}/auth.test`,{method:"GET",headers:F});if(E.status===429){let $=parseInt(E.headers.get("retry-after")??"60",10);throw new lD(isNaN($)?60:$)}let C=E.headers.get("x-oauth-scopes")??"",B=await E.json();if(B.ok!==!0)throw Error(`Slack error on auth.test: ${B.error??"unknown"}`);return{userId:B.user_id??"",botId:B.bot_id??"",team:B.team??"",url:B.url??"",scopes:C.split(",").map(($)=>$.trim()).filter(Boolean)}}async function g8(D,u,F){let E=await OD(D,"bots.info",{bot:u},F);return{appId:E.bot?.app_id??"",userId:E.bot?.user_id??""}}async function W0(D,u,F=20,E,C,B){let $={channel:u,limit:String(F)};if(E!==void 0)$.oldest=E;if(C!==void 0)$.cursor=C;return OD(D,"conversations.history",$,B)}async function c8(D,u,F,E=50,C){return OD(D,"conversations.replies",{channel:u,ts:F,limit:String(E)},C)}async function P6(D,u,F){let C=(await S6(D,"conversations.open",{users:u},F)).channel?.id;if(!C)throw Error(`Failed to open DM with user ${u}`);return C}function hu(D){return D.toLowerCase().replace(/[-_\s]/g,"")}function O0(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 w6(D){return O0(D)?.channel}async function k8(D,u,F){let E=w6(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),$=hu(B);if(C){let Z=await OD(D,"auth.test",{},F);if($==="you"||$==="me"||hu(Z.user??"")===$){let V=Z.user_id;if(!V)throw Error("auth.test did not return user_id");let K=((await OD(D,"conversations.list",{types:"im",limit:"200"},F)).channels??[]).find((A)=>A.user===V);if(K?.id)return String(K.id);return P6(D,V,F)}let J="",Q="";while(!0){let V={limit:"200"};if(Q)V.cursor=Q;let W=await OD(D,"users.list",V,F);for(let K of W.members??[]){let A=hu(K.name??""),_=hu(K.real_name??""),L=hu(K.profile?.display_name??"");if(A===$||_===$||L&&L===$){J=K.id??"";break}}if(J)break;if(Q=W.response_metadata?.next_cursor??"",!Q)break}if(!J)throw Error(`User not found: ${u}`);let O="";while(!0){let V={types:"im",limit:"200"};if(O)V.cursor=O;let W=await OD(D,"conversations.list",V,F);for(let K of W.channels??[])if(K.user===J)return String(K.id??"");if(O=W.response_metadata?.next_cursor??"",!O)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 Y=await OD(D,"conversations.list",Z,F);for(let J of Y.channels??[])if(String(J.name??"").toLowerCase()===G)return String(J.id??"");if(z=Y.response_metadata?.next_cursor??"",!z)break}throw Error(`channel not found: ${u}`)}async function YF(D,u,F){try{let E=await OD(D,"users.info",{user:u},F),C=E.user?.profile?.display_name,B=C&&C.length>0?C:E.user?.real_name??E.user?.name??u,$=E.user?.name??u;return[B,$]}catch{return[u,u]}}async function WF(D,u,F){try{let E=await OD(D,"users.info",{user:u},F),C=E.user?.profile?.display_name;if(C&&C.length>0)return C;return E.user?.real_name??E.user?.name??u}catch{return u}}async function OF(D,u){let F=[],E="";while(!0){let C={limit:"200"};if(E)C.cursor=E;let B=await OD(D,"users.list",C,u);if(F.push(...B.members??[]),E=B.response_metadata?.next_cursor??"",!E)break}return{members:F}}async function V0(D,u,F){let E=[],C="";while(!0){let B={channel:u,limit:"200"};if(C)B.cursor=C;let $=await OD(D,"conversations.members",B,F);if(E.push(...$.members??[]),C=$.response_metadata?.next_cursor??"",!C)break}return E}async function H0(D,u,F){return OD(D,"users.info",{user:u},F)}async function d8(D,u,F){return OD(D,"conversations.info",{channel:u},F)}async function i8(D,u){let F=await R6(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 x6=["chat:write","im:write"],I6=["im:history","im:read"];async function q0(D){let{userId:u,botId:F,team:E,scopes:C}=await m8(D),B="";if(F)try{B=(await g8(D,F)).appId}catch{B=""}let $=(Z)=>C.includes(Z),G=x6.filter((Z)=>!$(Z)),z=I6.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 n8(D){return["",` Bot user: ${D.botUserId||"(unknown)"}`,` App ID: ${D.appId||"(unknown — bots.info unavailable)"}`,` Granted scopes: ${D.grantedScopes.join(", ")||"(none reported)"}`]}function K0(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,...n8(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,...n8(D)]}import{createInterface as Wu}from"node:readline/promises";import{join as N0}from"node:path";import{homedir as n6}from"node:os";import{existsSync as U0,readFileSync as _0,writeFileSync as t8,mkdirSync as o8}from"node:fs";import{homedir as b6}from"node:os";import{join as j0,dirname as s8}from"node:path";function r8(){return process.env.HOME||b6()}function a8(){return j0(r8(),".config","slack-cli","profiles.json")}function f6(){return j0(process.cwd(),".slack-cli","workspace")}function h6(){return j0(r8(),".slack-cli","workspace")}function M0(){let D=a8();if(!U0(D))return{profiles:{}};return JSON.parse(_0(D,"utf8"))}function e8(D){let u=a8();o8(s8(u),{recursive:!0}),t8(u,JSON.stringify(D,null,2)+`
|
|
102
|
+
`)}function l8(D){if(!U0(D))return;return _0(D,"utf8").trim()||void 0}function D1(D,u){o8(s8(D),{recursive:!0});let F=U0(D)?_0(D,"utf8"):"",E=F?F.split(`
|
|
103
|
+
`):[];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)}t8(D,E.join(`
|
|
103
104
|
`).trimEnd()+`
|
|
104
|
-
`)}function VF(){let D=
|
|
105
|
+
`)}function VF(){let D=M0(),u=l8(f6()),F=l8(h6()),E=u??F;return Object.entries(D.profiles).map(([C,B])=>({name:C,profile:B,current:C===E}))}function A0(D,u){let F=M0();F.profiles[D]=u,e8(F)}function L0(D,u){let F=M0();if(!(D in F.profiles))throw Error(`Profile not found: ${D}`);F.profiles[D].cookie=u,e8(F)}import{readdirSync as HF,readFileSync as vu,existsSync as Yu,copyFileSync as u1,unlinkSync as F1}from"node:fs";import{homedir as qF,tmpdir as E1}from"node:os";import{join as ZD,dirname as v6}from"node:path";import{pbkdf2Sync as C1,createDecipheriv as B1}from"node:crypto";import{execSync as $1}from"node:child_process";function p6(){let D=qF();if(process.platform==="darwin")return ZD(D,"Library","Application Support","Slack","Local Storage","leveldb");if(process.platform==="linux")return ZD(D,".config","Slack","Local Storage","leveldb");if(process.platform==="win32"){let u=process.env.APPDATA??ZD(D,"AppData","Roaming");return ZD(u,"Slack","Local Storage","leveldb")}throw Error(`Unsupported platform: ${process.platform}`)}function y6(){let D=qF();if(process.platform==="darwin")return ZD(D,"Library","Application Support","Slack","Cookies");return""}function m6(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=B1("aes-128-cbc",u,F);return C.setAutoPadding(!0),Buffer.concat([C.update(E),C.final()]).toString("utf8")}function g6(){if(process.platform!=="darwin")return;let D=y6();if(!Yu(D))return;let u;try{u=$1('security find-generic-password -w -s "Slack Safe Storage" -a "Slack Key"',{encoding:"utf8",stdio:["ignore","pipe","ignore"]}).trimEnd()}catch{return}let F=C1(u,"saltysalt",1003,16,"sha1");try{let{default:E}=wD("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 m6(Buffer.from(B.encrypted_value),F)}catch{return}}async function G1(){let D=p6();if(!Yu(D))throw Error(`Slack desktop app LevelDB not found at:
|
|
105
106
|
${D}
|
|
106
|
-
Is Slack installed and opened at least once?`);let u=HF(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
|
|
107
|
-
`)){let G=$.trim();if(G.startsWith("[")){C="",B="";continue}let
|
|
107
|
+
Is Slack installed and opened at least once?`);let u=HF(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=vu(ZD(D,G),"latin1")}catch{continue}if(G.endsWith(".log"))for(let Z of z.matchAll(/"token":"(xoxc-[^"]+)"/g)){let Y=Z[1],J=Y.split("-")[1]??"";if(!J||Y.length<40)continue;let Q=Math.max(0,Z.index-2000),O=Math.min(z.length,Z.index+2000),V=z.slice(Q,O),W=V.match(/"url":"(https:\/\/[a-z0-9-]+\.slack\.com\/)"/),K=V.match(/"(?:team_name|name)":"([^"]{2,60})"/),A=F.get(J);if(!A||Y.length>A.token.length){let _={token:Y,teamId:J},L=W?.[1]??A?.url,M=K?.[1]??A?.teamName;if(L)_.url=L;if(M)_.teamName=M;F.set(J,_)}}else for(let Z of z.matchAll(/xoxc-(\d+)-(\d+)-(\d+)/g)){let Y=Z[1];if(F.has(Y))continue;let J=Z.index+Z[0].length,Q=Math.min(J+10,z.length);while(J<Q&&(z.charCodeAt(J)<48||z.charCodeAt(J)>57))J++;let O="";while(J<z.length&&z.charCodeAt(J)>=48&&z.charCodeAt(J)<=57)O+=z[J++];if(z[J]!=="-")continue;J++;let V="";while(J<z.length){let K=z.charCodeAt(J);if(K>=48&&K<=57||K>=97&&K<=102)V+=z[J++];else break}if(V.length<20)continue;let W=`${Z[0]}${O}-${V}`;F.set(Y,{token:W,teamId:Y})}}let C=HF(D).filter((G)=>G.endsWith(".ldb")||G.endsWith(".log")).map((G)=>{try{return vu(ZD(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),Y=Math.min(C.length,z+500),Q=C.slice(Z,Y).match(/"(?:team_name|name)":"([^"]{2,60})"/);if(Q?.[1]){G.teamName=Q[1];continue}}if(!G.teamName&&G.url){let Z=G.url.match(/https:\/\/([a-z0-9-]+)\.slack\.com\//)?.[1];if(Z){let Y=C.indexOf(Z);if(Y!==-1){let J=Math.max(0,Y-500),Q=Math.min(C.length,Y+500),V=C.slice(J,Q).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=g6(),$=[...F.values()];if(B)for(let G of $)G.cookie=B;return $}function c6(D,u){let F=(E,C)=>{try{let B=B1("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 k6(D,u){let F=(E,C)=>{if(E&&C)return`${E} (${C})`;return E||C||u};try{let C=JSON.parse(vu(ZD(D,"Local State"),"utf8")).profile?.info_cache?.[u];if(C&&(C.name||C.user_name))return F(C.name??"",C.user_name??"")}catch{}try{let C=JSON.parse(vu(ZD(D,u,"Preferences"),"utf8")).profile;return F(C?.name??"",C?.user_name??"")}catch{return u}}function z1(){if(process.platform!=="darwin")return{candidates:[],totalProfiles:0};let D=ZD(qF(),"Library","Application Support","Google","Chrome");if(!Yu(D))return{candidates:[],totalProfiles:0};let u;try{u=$1('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=C1(u,"saltysalt",1003,16,"sha1"),E=["Default",...HF(D).filter((B)=>B.startsWith("Profile "))],C=[];for(let B of E){let $=ZD(D,B,"Cookies");if(!Yu($))continue;let G=ZD(E1(),`slack-chrome-cookies-${Date.now()}-${B}.db`);try{u1($,G);let{default:z}=wD("bun:sqlite"),Z=new z(G,{readonly:!0}),Y=Z.prepare("SELECT encrypted_value FROM cookies WHERE name='d' AND host_key LIKE '%slack%'").get();if(Z.close(),!Y)continue;let J=Buffer.from(Y.encrypted_value),Q=J.slice(0,3).toString();if(Q==="v10"){let O=c6(J,F);if(!O)continue;C.push({profileDir:B,profileName:k6(D,B),cookie:O})}else if(Q==="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{F1(G)}catch{}}}return{candidates:C,totalProfiles:E.length}}function d6(){let D=qF();if(process.platform==="darwin")return ZD(D,"Library","Application Support","Firefox","Profiles");if(process.platform==="linux")return ZD(D,".mozilla","firefox");if(process.platform==="win32")return ZD(process.env.APPDATA??ZD(D,"AppData","Roaming"),"Mozilla","Firefox","Profiles");return""}function i6(D){let u=ZD(v6(D),"profiles.ini"),F={};if(!Yu(u))return F;try{let E=vu(u,"utf8"),C="",B="";for(let $ of E.split(`
|
|
108
|
+
`)){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(),Y=G.slice(z+1).trim();if(Z==="name")C=Y;if(Z==="path")B=Y.split(/[\\/]/).pop()??Y;if(C&&B)F[B]=C,C="",B=""}}catch{}return F}function Z1(){let D=d6();if(!D||!Yu(D))return[];let u=i6(D),F=[],E;try{E=HF(D)}catch{return[]}for(let C of E){let B=ZD(D,C,"cookies.sqlite");if(!Yu(B))continue;let $=ZD(E1(),`slack-firefox-cookies-${Date.now()}-${C}.db`);try{u1(B,$);let{default:G}=wD("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 Y=u[C]??C;F.push({profileDir:C,profileName:Y,cookie:Z.value})}catch{}finally{try{F1($)}catch{}}}return F}var l6=["search:read","channels:history","groups:history","im:history","mpim:history","channels:read","groups:read","im:read","mpim:read","users:read","chat:write","files:write"],t6=["channels:history","groups:history","im:history","mpim:history","channels:read","groups:read","im:read","mpim:read","users:read","chat:write","files:write"];function KF(D){return D.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")}function o6(){return JSON.stringify({display_information:{name:"slack-term"},oauth_config:{scopes:{user:l6}},settings:{org_deploy_enabled:!1,socket_mode_enabled:!1,token_rotation_enabled:!1}},null,2)}function s6(){return JSON.stringify({display_information:{name:"slack-term"},features:{bot_user:{display_name:"slack-term",always_online:!1}},oauth_config:{scopes:{bot:t6}},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 Vu(D,u,F,E){console.error("Verifying token...");let C=await QF(u),B=KF(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=N0(process.cwd(),".slack-term",".env.local");else if(z==="3")G=N0(n6(),".slack-term",".env.local");else if(z==="4")G=null;else G=N0(process.cwd(),".env.local")}if(G===null)if(A0($,{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;D1(G,z),console.log(`Saved token to ${G}`),console.log(" SLACK_TOKEN will be picked up automatically in this directory tree.")}return $}async function r6(D){console.error("Scanning Slack desktop app...");let u=await G1();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 Vu(D,F.token,KF(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=KF(E);A0(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=KF(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 J1(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 Vu(D,B)}async function UF(D,u){let F=u==="user"?o6():s6(),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 Vu(D,B)}async function X1(D={}){if(process.platform!=="darwin")console.error("Chrome cookie extraction is only supported on macOS."),process.exit(1);let u=VF();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 G=u.find((z)=>z.current);if(G)F=G.name,console.log(`Using active workspace: ${F}`);else{console.log("Multiple workspaces found. Choose one:"),u.forEach((J,Q)=>console.log(` ${Q+1}) ${J.name} (${J.profile.team})`));let z=Wu({input:process.stdin,output:process.stdout}),Z=(await z.question("Choice: ")).trim();z.close();let Y=parseInt(Z,10)-1;if(isNaN(Y)||Y<0||Y>=u.length)console.error("Invalid choice."),process.exit(1);F=u[Y].name}}if(u.find((G)=>G.name===F).profile.token.startsWith("xoxb-")){console.error(`
|
|
108
109
|
Workspace "${F}" uses a bot token (xoxb-). A Chrome session cookie only
|
|
109
110
|
`+`augments a user session token (xoxc-) — it has no effect on a bot token, so user-level
|
|
110
|
-
`+"actions (tail @user, DMs, listing users) would still fail.");let G=u.filter((
|
|
111
|
-
`),z
|
|
112
|
-
`+
|
|
113
|
-
`):""),
|
|
114
|
-
`)}),
|
|
111
|
+
`+"actions (tail @user, DMs, listing users) would still fail.");let G=u.filter((z)=>z.profile.token.startsWith("xoxc-")||z.profile.token.startsWith("xoxp-"));if(G.length>0)console.error(` Target a user-token workspace instead: ${G.map((z)=>z.name).join(", ")}`),console.error(` slack auth chrome -w ${G[0].name}`);else console.error(" Import your Slack desktop user session instead: slack auth login");process.exit(1)}console.log("Scanning Chrome profiles for Slack session..."),console.log("macOS may show a dialog asking for your login password — click Allow.");let C,B;try{({candidates:C,totalProfiles:B}=z1())}catch(G){console.error(`Failed: ${G instanceof Error?G.message:String(G)}`),process.exit(1)}if(C.length===0)console.error(`No Slack session found in Chrome (scanned ${B} profile${B!==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 $;if(C.length===1&&B<=1)$=C[0].cookie,console.log(`Found session in Chrome profile: ${C[0].profileName}`);else{let G=C.length===1?`Found 1 Slack session across ${B} Chrome profiles:`:`Found ${C.length} Slack sessions across ${B} Chrome profiles:`;console.log(G),C.forEach((Q,O)=>console.log(` ${O+1}) ${Q.profileName} [${Q.profileDir}]`)),console.log("");let z=Wu({input:process.stdin,output:process.stdout}),Z=C.length===1?" [Enter=1]":"",Y=(await z.question(`Choice [1-${C.length}]${Z}: `)).trim();z.close();let J=Y===""&&C.length===1?0:parseInt(Y,10)-1;if(isNaN(J)||J<0||J>=C.length)console.error("Invalid choice."),process.exit(1);$=C[J].cookie}L0(F,$),console.log(`Saved xoxd cookie to workspace "${F}".`),console.log("RTM WebSocket mode is now available: slack tail @you")}async function Q1(D={}){let u=VF();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,Y)=>console.log(` ${Y+1}) ${Z.name} (${Z.profile.team})`));let $=Wu({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=Z1();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=Wu({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}L0(F,C),console.log(`Saved xoxd cookie to workspace "${F}".`),console.log("RTM WebSocket mode is now available: slack tail @you")}async function Y1(D={}){if(D.token){await Vu(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 Vu(null,E,D.name);return}let u=Wu({input:process.stdin,output:process.stdout});try{await J1(u)}finally{u.close()}}async function W1(D={}){let u=Wu({input:process.stdin,output:process.stdout});try{if(D.bot!==void 0){await UF(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 UF(u,F==="2"?"bot":"user")}finally{u.close()}}async function _F(D={}){let u=VF();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 Vu(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 Vu(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=Wu({input:process.stdin,output:process.stdout});try{let E=await Ou(F,"Choice [1/2/3/4]: ");if(console.log(""),E==="1")await r6(F);else if(E==="2")await J1(F);else if(E==="3")await UF(F,"user");else if(E==="4")await UF(F,"bot");else console.error(`Invalid choice: "${E}". Enter 1, 2, 3, or 4.`),process.exit(1)}finally{F.close()}}async function jF(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(/[>|]/),Y=Z===-1?z:z.slice(0,Z);if(Y.length>=9)C.push(Y);$=G+1}for(let G of C){if(!F.has(G))F.set(G,await WF(D,G));let z=F.get(G)??G;E=E.replaceAll(`<@${G}>`,`@${z}`),E=E.replace(new RegExp(`<@${G}\\|[^>]*>`,"g"),`@${z}`)}return E}function MF(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 V1(D){let u=typeof D.ts==="string"?D.ts:"",F=typeof D.thread_ts==="string"?D.thread_ts:"";return F!==""&&F!==u}function a6(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"),Y=F.padEnd(6,"0").slice(0,6);return`${C}-${B}-${$}T${G}:${z}:${Z}.${Y}`}async function e6(D,u,F){let E=typeof u.ts==="string"?u.ts:"0.000000",C=a6(E),B="?";if(typeof u.user==="string"){let J=u.user,Q="@"+J;if(!F.has(Q)){let[,O]=await YF(D,J);F.set(Q,O)}B=F.get(Q)??J}else if(typeof u.username==="string")B=u.username;let $=typeof u.text==="string"?u.text:"",z=MF(await jF(D,$,F)).split(`
|
|
112
|
+
`),Z=z[0]+(z.length>1?`
|
|
113
|
+
`+z.slice(1).map((J)=>` ${J}`).join(`
|
|
114
|
+
`):""),Y=V1(u)?"↳ ":"";return`${C} ${Y}@${B}: ${Z}`}async function D7(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).
|
|
115
|
+
`)}),Z.addEventListener("close",()=>z()),Z.addEventListener("error",()=>z()),Z.addEventListener("message",(Y)=>{(async()=>{try{let J;try{J=JSON.parse(String(Y.data))}catch{return}let Q=typeof J.type==="string"?J.type:"";if(Q==="ping"){Z.send(JSON.stringify({type:"pong",reply_to:J.id??0}));return}if(Q!=="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 W=typeof J.subtype==="string"?J.subtype:"";if(W==="message_changed"||W==="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&&V1(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 A=B.values().next().value;if(A!==void 0)B.delete(A)}let K=await e6(u,J,$);process.stdout.write(K+`
|
|
115
116
|
`)}catch(J){process.stderr.write(`RTM message error: ${J instanceof Error?J.message:String(J)}
|
|
116
|
-
`)}})()})})}var
|
|
117
|
-
`),
|
|
118
|
-
`+
|
|
119
|
-
`):""),J=
|
|
117
|
+
`)}})()})})}var O1=3,u7=2000,T0={sleep:(D)=>new Promise((u)=>setTimeout(u,D)),clientBoot:i8,getWebSocket:()=>{let D=globalThis.WebSocket;return typeof D==="function"?D:void 0}};async function H1(D,u,F,E,C,B,$){let G=T0.getWebSocket();if(!G)return;for(let z=0;z<O1;z++){if($?.aborted)return;try{let{wsUrl:Z}=await T0.clientBoot(D,u);await D7(G,D,Z,F,E,C,B,$)}catch{}if($?.aborted)return;if(z<O1-1)await T0.sleep(u7)}}function q1(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:H1};function pD(D){return D&&typeof D==="object"&&!Array.isArray(D)?D:{}}function R0(D){return Array.isArray(D)?D:[]}function K1(D){return Number(D)||0}function U1(D){let u=typeof D.ts==="string"?D.ts:"",F=typeof D.thread_ts==="string"?D.thread_ts:"";return F!==""&&F!==u}function F7(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"),Y=F.padEnd(6,"0").slice(0,6);return`${C}-${B}-${$}T${G}:${z}:${Z}.${Y}`}async function E7(D,u,F,E){let C=typeof u.ts==="string"?u.ts:"0.000000",B=F7(C),$="?";if(typeof u.user==="string"){let O=u.user,V="@"+O;if(!F.has(V)){let[,W]=await YF(D,O);F.set(V,W)}$=F.get(V)??O}else if(typeof u.username==="string")$=u.username;let G=typeof u.text==="string"?u.text:"",Z=MF(await jF(D,G,F)).split(`
|
|
118
|
+
`),Y=Z[0]+(Z.length>1?`
|
|
119
|
+
`+Z.slice(1).map((O)=>` ${O}`).join(`
|
|
120
|
+
`):""),J=U1(u)?"↳ ":"",Q=E?`${E} @${$}`:`@${$}`;return`${B} ${J}${Q}: ${Y}`}async function C7(D,u,F,E,C,B,$){let G=pD(await W0(D,u,20,$?void 0:F||void 0,$)),z=R0(G.messages).map(pD).reverse(),Z=pD(G.response_metadata),Y=G.has_more===!0&&typeof Z.next_cursor==="string"?Z.next_cursor:void 0,J=[];if(E.watchThread&&!$){let K=pD(await c8(D,u,E.watchThread,50));J=R0(K.messages).map(pD).filter((A)=>(typeof A.ts==="string"?A.ts:"")!==E.watchThread)}let Q=[...z.map((K)=>({m:K,fromHistory:!0})),...J.map((K)=>({m:K,fromHistory:!1}))].sort((K,A)=>K1(typeof K.m.ts==="string"?K.m.ts:"")-K1(typeof A.m.ts==="string"?A.m.ts:"")),O=[],V=F,W=!1;for(let{m:K,fromHistory:A}of Q){let _=typeof K.ts==="string"?K.ts:"";if(!_||C.has(_))continue;let L=typeof K.subtype==="string"?K.subtype:"";if(L==="message_changed"||L==="message_deleted")continue;if(E.thread){if((typeof K.thread_ts==="string"?K.thread_ts:_)!==E.thread&&_!==E.thread)continue}if(E.watchThread&&U1(K)){if((typeof K.thread_ts==="string"?K.thread_ts:"")!==E.watchThread)continue}if(E.me&&E.myUserId){if(!(typeof K.text==="string"?K.text:"").includes(`<@${E.myUserId}>`))continue}if(C.add(_),C.size>1000){let x=C.values().next().value;if(x!==void 0)C.delete(x)}if(O.push(await E7(D,K,B)),A)V=_;let M=typeof K.user==="string"?K.user:"";if(!E.myUserId||M!==E.myUserId)W=!0}return{newCursor:V,lines:O,hasMore:G.has_more===!0,nextPageCursor:Y,emittedOther:W}}function B7(D){if(D.includes("slack.com")){let u=O0(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 _1(D,u,F={},E){if(F.me&&!u)console.error(`slack tail --me requires a <target> channel.
|
|
120
121
|
Cross-channel mention streaming is not yet supported.
|
|
121
|
-
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
|
|
122
|
-
`);
|
|
123
|
-
`);if(n)W=!0;L
|
|
124
|
-
|
|
122
|
+
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 k8(D,u),B=F.interval??60000,$=F.timeout?SD.now()+q1(F.timeout)*1000:1/0,G=new Map,z=new Set;try{let W=pD(await d8(D,C));if(pD(W.channel).is_archived===!0)console.error("Warning: this channel is archived — no new messages will arrive.")}catch(W){let K=W instanceof Error?W.message:String(W);if(K.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(K.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(K.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: ${K}`)}let Z="";if(F.since){let W=q1(F.since);Z=(SD.now()/1000-W).toFixed(6)}else{let W=pD(await W0(D,C,1)),K=R0(W.messages).map(pD);if(K.length>0&&typeof K[0]?.ts==="string")Z=K[0].ts,z.add(Z);else Z=(SD.now()/1000).toFixed(6)}let Y;if(F.me||F.exitOnMessage)Y=(await QF(D)).userId||void 0;let J;if(F.watchThread!==void 0)try{J=B7(F.watchThread)}catch(W){console.error(W instanceof Error?W.message:String(W)),process.exit(1)}let Q={...F.thread!==void 0?{thread:F.thread}:{},...J!==void 0?{watchThread:J}:{},...F.me!==void 0?{me:F.me}:{},...Y!==void 0?{myUserId:Y}:{}};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,Q,z,G,E),E?.aborted)return;console.error("RTM unavailable — switching to polling.")}let O=!0,V=SD.now();while(!E?.aborted){if(SD.now()>=$)return;let W=!1;try{let _=SD.now()-V,L=B>0&&_>B*5,M,x=!0;do{let{newCursor:k,lines:o,nextPageCursor:jD,emittedOther:n}=await C7(D,C,Z,Q,z,G,M);if(Z=k,O&&x&&F.since&&o.length===0)process.stdout.write(`(no messages in the last ${F.since} — watching for new)
|
|
123
|
+
`);x=!1;for(let sD of o)process.stdout.write(sD+`
|
|
124
|
+
`);if(n)W=!0;M=L?jD:void 0}while(M);O=!1}catch(A){if(A instanceof lD){console.error(`Warning: Slack rate limit hit — backing off for ${A.retryAfter}s`),await SD.sleep(A.retryAfter*1000);continue}throw A}if(F.exitOnMessage&&W)return;V=SD.now();let K=$-SD.now();if(K<=0)return;await SD.sleep(Math.min(B,K))}}class Au extends Error{retryAfter;constructor(D){super(`Slack rate limited — retry after ${D}s`);this.name="RateLimitError",this.retryAfter=D}}function S0(){return(process.env.SLACK_API_BASE??"https://slack.com/api").replace(/\/$/,"")}async function j1(D,u,F,E){let C={};if(E)C.Cookie=`d=${E}`;let B=await fetch(`${S0()}/${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 Au(isNaN(G)?60:G)}let $=await B.json();if($.ok!==!0){let G=$.error??"unknown";if(G==="ratelimited")throw new Au(60);if(G==="invalid_auth"&&D.startsWith("xoxc-")&&!E)throw Error(`Desktop app token (xoxc-) needs its session cookie to be accepted by the public Slack API.
|
|
125
|
+
Attach it: slack auth chrome (macOS) or slack auth firefox
|
|
126
|
+
Or replace the token with an xoxp- user token:
|
|
125
127
|
slack auth token`);if((G==="missing_scope"||G==="cannot_dm_bot")&&D.startsWith("xoxb-"))throw Error(`Slack error on ${u}: ${G} — ${G==="cannot_dm_bot"?`you're authenticated as a bot, so "@you" is the bot itself and it can't DM itself`:"this bot token lacks the user scope this action needs"}.
|
|
126
128
|
Tailing/DMing people and listing users need a user session, not a bot token.
|
|
127
129
|
Switch workspace: slack auth ls then slack auth use <name>
|
|
128
|
-
Or import your Slack desktop session: slack auth login`);throw Error(`Slack error on ${u}: ${G}`)}return $}async function
|
|
130
|
+
Or import your Slack desktop session: slack auth login`);throw Error(`Slack error on ${u}: ${G}`)}return $}async function $7(D,u,F,E){let C={};if(E)C.Cookie=`d=${E}`;let B=await fetch(`${S0()}/${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 Au(isNaN(G)?60:G)}let $=await B.json();if($.ok!==!0){let G=$.error??"unknown";if(G==="ratelimited")throw new Au(60);if((G==="invalid_auth"||G==="not_authed")&&!D.startsWith("xoxc-"))throw Error(`The draft API requires a desktop app session token (xoxc-).
|
|
129
131
|
Import from Slack desktop: slack auth login`);if((G==="invalid_auth"||G==="not_authed")&&!E)throw Error(`drafts.list also requires the xoxd session cookie.
|
|
130
|
-
Attach it with: slack auth chrome (macOS) or slack auth firefox`);throw Error(`Slack error on ${u}: ${G}`)}return $}function Au(D,u,F={},E){let C=new URLSearchParams({token:D,...F});return B7(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 K1(D,`${u}?${C}`,{method:"GET"},E)}function PD(D,u,F){return K1(D,u,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(F)})}async function M1(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 yu(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 Lu(D,u,F,E=50){return CD(D,"conversations.replies",{channel:u,ts:F,limit:String(E)})}async function U1(D,u,F){return CD(D,"files.info",{file:u},F)}async function _1(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 j1(D,u){return _1(D,u,100,1)}async function A1(D,u,F){let C=1,B=[],$={ok:!0,messages:{}};while(!0){let Z=await _1(D,u,100,C),z=pu(Z,["messages","matches"]),Q=Array.isArray(z)?z:[];B.push(...Q);let J=Number(pu(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 L1(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 PD(D,"chat.postMessage",B)).ts??""}async function N1(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 PD(D,"chat.scheduleMessage",B)).scheduled_message_id??""}async function T1(D,u){let F={};if(u)F.channel=u;return CD(D,"chat.scheduledMessages.list",F)}async function R1(D,u,F){await PD(D,"chat.deleteScheduledMessage",{channel:u,scheduled_message_id:F})}async function S1(D,u,F){return(await CD(D,"chat.getPermalink",{channel:u,message_ts:F})).permalink??""}async function P1(D,u,F,E){return(await PD(D,"chat.update",{channel:u,ts:F,text:E,blocks:[{type:"markdown",text:E}]})).ts??F}async function w1(D,u,F){await PD(D,"chat.delete",{channel:u,ts:F})}async function x1(D,u,F,E){await PD(D,"reactions.add",{channel:u,timestamp:F,name:E})}async function I1(D,u,F,E){await PD(D,"reactions.remove",{channel:u,timestamp:F,name:E})}async function b1(D,u,F=!1){let E=await PD(D,"conversations.create",{name:u,is_private:F});return{id:E.channel?.id??"",name:E.channel?.name??u}}async function f1(D,u,F){await PD(D,"conversations.invite",{channel:u,users:F.join(",")})}async function AF(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 mu(D,u){let E=(await PD(D,"conversations.open",{users:u})).channel?.id;if(!E)throw Error(`Failed to open DM with user ${u}`);return E}function bD(D){return D.toLowerCase().replace(/[-_\s]/g,"")}async function R0(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=bD(u.slice(1)),C=await CD(D,"auth.test",{},F);if(E==="you"||E==="me"||bD(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=bD(Z.name??""),Q=bD(Z.real_name??""),J=bD(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 cu(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 $7(D){return cu(D)?.channel}async function UD(D,u,F){let E=$7(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),$=bD(B);if(C){let z=await CD(D,"auth.test",{},F);if($==="you"||$==="me"||bD(z.user??"")===$){let O=z.user_id;if(!O)throw Error("auth.test did not return user_id");let K=((await CD(D,"conversations.list",{types:"im",limit:"200"},F)).channels??[]).find((_)=>_.user===O);if(K?.id)return String(K.id);return mu(D,O)}let J="",Y="";while(!0){let O={limit:"200"};if(Y)O.cursor=Y;let W=await CD(D,"users.list",O,F);for(let K of W.members??[]){let _=bD(K.name??""),j=bD(K.real_name??""),I=bD(K.profile?.display_name??"");if(_===$||j===$||I&&I===$){J=K.id??"";break}}if(J)break;if(Y=W.response_metadata?.next_cursor??"",!Y)break}if(!J)throw Error(`User not found: ${u}`);let V="";while(!0){let O={types:"im",limit:"200"};if(V)O.cursor=V;let W=await CD(D,"conversations.list",O,F);for(let K of W.channels??[])if(K.user===J)return String(K.id??"");if(V=W.response_metadata?.next_cursor??"",!V)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 gu(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 ku(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 S0(D,u){let F=[],E="";while(!0){let C={limit:"200"};if(E)C.cursor=E;let B=await CD(D,"users.list",C,u);if(F.push(...B.members??[]),E=B.response_metadata?.next_cursor??"",!E)break}return{members:F}}async function du(D,u){return Au(D,"drafts.list",{},u)}async function h1(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 Au(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 v1(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 Au(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 Au(D,"conversations.info",{channel:u},F)}async function y1(D,u,F){return CD(D,"users.info",{user:u},F)}async function P0(D,u){return CD(D,"conversations.info",{channel:u})}async function m1(D,u,F){let E=(Date.now()/1000).toFixed(6);return Au(D,"drafts.delete",{draft_id:u,client_last_updated_ts:E},F)}async function w0(D,u){let F=await Au(D,"auth.test",{},u);return{userId:String(F.user_id??""),teamId:String(F.team_id??"")}}async function c1(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),V=await fetch(Q,{method:"POST",headers:{"Content-Type":"application/octet-stream"},body:Y});if(!V.ok)throw Error(`Upload PUT failed: ${V.status} ${V.statusText}`);let O={files:[{id:J,title:E.title??Z}],channel_id:u};if(E.threadTs)O.thread_ts=E.threadTs;if(E.initialComment)O.initial_comment=E.initialComment;let W=await PD(D,"files.completeUploadExternal",O),K={fileId:J},_=W.files?.[0]?.permalink;if(_)K.permalink=_;return K}function pu(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 Hu(D){return D.toLowerCase().replace(/[-_\s]/g,"")}function tD(D){return D&&typeof D==="object"&&!Array.isArray(D)?D:{}}function G7(D,u){let F=Hu(u),E=tD(D.profile);for(let B of[D.name,D.real_name,E.display_name,E.real_name])if(typeof B==="string"&&B&&Hu(B)===F)return!0;let C=typeof E.email==="string"?E.email.toLowerCase():"";return C!==""&&C===u.toLowerCase()}function z7(D){let u=tD(D.profile),F=new Set;for(let E of[u.display_name,D.real_name,D.name,u.real_name])if(typeof E==="string"&&E){let C=Hu(E);if(C.length>=2)F.add(C)}return[...F]}function Z7(D,u){let F=Hu(D),E,C=!1;for(let B of u){let $=typeof B.id==="string"?B.id:"";if(!$)continue;for(let G of z7(B)){let Z=-1;if(F===G)Z=D.length;else for(let z of k1)if(D.length>z.length&&D.endsWith(z)&&Hu(D.slice(0,D.length-z.length))===G){Z=D.length-z.length;break}if(Z<0)continue;if(!E||G.length>E.formLen)E={userId:$,matchLen:Z,formLen:G.length,display:h0(B)},C=!1;else if(G.length===E.formLen&&E.userId!==$)C=!0}}if(!E)return;return C?"ambiguous":{userId:E.userId,matchLen:E.matchLen,display:E.display}}async function I0(D,u,F,E){let C=`[${d1}ー]+`,B=`${C}(?:[._-]+${C})*`,$=new RegExp(`(?<![A-Za-z0-9._@<-])@(${B})`,"gu"),G=new Set;for(let j of u.matchAll($))G.add(j[1]);if(G.size===0)return{text:u,resolved:[],unresolved:[]};let Z=new Map;for(let j of G)Z.set(j,{status:"pending"});let z=(j)=>{for(let I of G){if(Z.get(I).status!=="pending")continue;if(f0(I)){let L=Z7(I,j);if(L==="ambiguous")Z.set(I,{status:"ambiguous"});else if(L)Z.set(I,{status:"resolved",userId:L.userId,matchLen:L.matchLen,display:L.display})}else{let L=j.filter((d)=>G7(d,I)),m=new Set(L.map((d)=>typeof d.id==="string"?d.id:"").filter(Boolean));if(m.size===1){let d=L.find((o)=>typeof o.id==="string");Z.set(I,{status:"resolved",userId:d.id,matchLen:I.length,display:h0(d)})}else if(m.size>1)Z.set(I,{status:"ambiguous"})}}},Q=!1;try{let j=await OF(D,E);z((j.members??[]).map(tD)),Q=!0}catch{Q=!1}let J=[...G].some((j)=>Z.get(j).status==="pending"),Y=!1,V=!0;if(J&&F){Y=!0;try{let j=await O0(D,F,E),I=[];for(let L of j){let m=tD(await V0(D,L,E)),d=tD(m.user);if(typeof d.id!=="string")d.id=L;I.push(d)}z(I)}catch{V=!1}}let O=Q&&(F?Y&&V:!0),W=[],K=[];for(let j of G){let I=Z.get(j);if(I.status==="resolved")W.push({surface:`@${j.slice(0,I.matchLen)}`,display:I.display,userId:I.userId});else if(I.status==="ambiguous")K.push({surface:`@${j}`,reason:"ambiguous"});else K.push({surface:`@${j}`,reason:O?"no-match":"unavailable"})}return{text:u.replace($,(j,I)=>{let L=Z.get(I);if(L&&L.status==="resolved")return`<@${L.userId}>${I.slice(L.matchLen)}`;return j}),resolved:W,unresolved:K}}function b0(D){let u=[],F=!1;for(let E of D)if(E.reason==="ambiguous")u.push(`${E.surface} matches multiple people — not tagged, sent as plain text (use <@USERID> to tag)`);else if(E.reason==="unavailable"){if(F)continue;u.push("could not fetch the user list (users:read missing or an API/connection error) — @mentions not tagged, sent as plain text"),F=!0}else u.push(`${E.surface} matched no one — not tagged, sent as plain text`);return u}async function g1(D,u,F,E={}){let C=E.warn??(($)=>process.stderr.write(`${$}
|
|
131
|
-
`)),B=await
|
|
132
|
-
`)){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
|
|
133
|
-
`)}function
|
|
134
|
-
`),
|
|
135
|
-
`+
|
|
136
|
-
`):""),J=E?`${E} @${$}`:`@${$}`,
|
|
137
|
-
\uD83D\uDCCE ${K}${
|
|
138
|
-
${
|
|
139
|
-
`)[0]??"",
|
|
140
|
-
`)[0]?.slice(0,60)}`:"";console.log(`${
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
`)
|
|
144
|
-
`)
|
|
145
|
-
`)
|
|
146
|
-
`).
|
|
147
|
-
`).
|
|
148
|
-
`).map((
|
|
149
|
-
|
|
150
|
-
`)
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
`)
|
|
132
|
+
Attach it with: slack auth chrome (macOS) or slack auth firefox`);throw Error(`Slack error on ${u}: ${G}`)}return $}function Lu(D,u,F={},E){let C=new URLSearchParams({token:D,...F});return $7(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 j1(D,`${u}?${C}`,{method:"GET"},E)}function PD(D,u,F,E){return j1(D,u,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(F)},E)}async function M1(D,u){let F=await CD(D,"auth.test",{},u);return{team:F.team??"",teamId:F.team_id??"",url:F.url??"",user:F.user??"",userId:F.user_id??""}}async function A1(D,u){let F={Authorization:`Bearer ${D}`};if(u)F.Cookie=`d=${u}`;let E=await fetch(`${S0()}/auth.test`,{method:"GET",headers:F});if(E.status===429){let $=parseInt(E.headers.get("retry-after")??"60",10);throw new Au(isNaN($)?60:$)}let C=E.headers.get("x-oauth-scopes")??"",B=await E.json();if(B.ok!==!0)throw Error(`Slack error on auth.test: ${B.error??"unknown"}`);return{userId:B.user_id??"",botId:B.bot_id??"",team:B.team??"",url:B.url??"",scopes:C.split(",").map(($)=>$.trim()).filter(Boolean)}}async function yu(D,u,F=20,E,C,B){let $={channel:u,limit:String(F)};if(E!==void 0)$.oldest=E;if(C!==void 0)$.cursor=C;return CD(D,"conversations.history",$,B)}async function Nu(D,u,F,E=50,C){return CD(D,"conversations.replies",{channel:u,ts:F,limit:String(E)},C)}async function L1(D,u,F){return CD(D,"files.info",{file:u},F)}async function N1(D,u,F,E,C){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))},C)}async function T1(D,u,F){return N1(D,u,100,1,F)}async function P0(D,u,F,E){let B=1,$=[],G={ok:!0,messages:{}};while(!0){let Z=await N1(D,u,100,B,E),Y=pu(Z,["messages","matches"]),J=Array.isArray(Y)?Y:[];$.push(...J);let Q=Number(pu(Z,["messages","paging","pages"])??1);if(G=Z,J.length===0||B>=Q||$.length>=F)break;B+=1}let z=G;if(!z.messages)z.messages={};return z.messages.matches=$.slice(0,F),z}async function R1(D,u,F,E,C,B){let $={channel:u,text:F,blocks:[{type:"markdown",text:F}]};if(E!==void 0)$.thread_ts=E;if(C&&E!==void 0)$.reply_broadcast=!0;return(await PD(D,"chat.postMessage",$,B)).ts??""}async function S1(D,u,F,E,C,B){let $={channel:u,text:F,post_at:E,blocks:[{type:"markdown",text:F}]};if(C!==void 0)$.thread_ts=C;return(await PD(D,"chat.scheduleMessage",$,B)).scheduled_message_id??""}async function P1(D,u,F){let E={};if(u)E.channel=u;return CD(D,"chat.scheduledMessages.list",E,F)}async function w1(D,u,F,E){await PD(D,"chat.deleteScheduledMessage",{channel:u,scheduled_message_id:F},E)}async function w0(D,u,F,E){return(await CD(D,"chat.getPermalink",{channel:u,message_ts:F},E)).permalink??""}async function x1(D,u,F,E,C){return(await PD(D,"chat.update",{channel:u,ts:F,text:E,blocks:[{type:"markdown",text:E}]},C)).ts??F}async function I1(D,u,F,E){await PD(D,"chat.delete",{channel:u,ts:F},E)}async function b1(D,u,F,E,C){await PD(D,"reactions.add",{channel:u,timestamp:F,name:E},C)}async function f1(D,u,F,E,C){await PD(D,"reactions.remove",{channel:u,timestamp:F,name:E},C)}async function h1(D,u,F=!1,E){let C=await PD(D,"conversations.create",{name:u,is_private:F},E);return{id:C.channel?.id??"",name:C.channel?.name??u}}async function v1(D,u,F,E){await PD(D,"conversations.invite",{channel:u,users:F.join(",")},E)}async function AF(D,u){let F=[],E="";while(!0){let C={limit:"200",types:"public_channel,private_channel,im,mpim"};if(E)C.cursor=E;let B=await CD(D,"conversations.list",C,u);if(F.push(...B.channels??[]),E=B.response_metadata?.next_cursor??"",!E)break}return{channels:F}}async function mu(D,u,F){let C=(await PD(D,"conversations.open",{users:u},F)).channel?.id;if(!C)throw Error(`Failed to open DM with user ${u}`);return C}function bD(D){return D.toLowerCase().replace(/[-_\s]/g,"")}async function x0(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=bD(u.slice(1)),C=await CD(D,"auth.test",{},F);if(E==="you"||E==="me"||bD(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=bD(z.name??""),Y=bD(z.real_name??""),J=bD(z.profile?.display_name??"");if(Z===E||Y===E||J&&J===E)return z.id??""}if(B=G.response_metadata?.next_cursor??"",!B)break}throw Error(`User not found: ${u}`)}function gu(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 G7(D){return gu(D)?.channel}async function _D(D,u,F){let E=G7(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),$=bD(B);if(C){let Z=await CD(D,"auth.test",{},F);if($==="you"||$==="me"||bD(Z.user??"")===$){let V=Z.user_id;if(!V)throw Error("auth.test did not return user_id");let K=((await CD(D,"conversations.list",{types:"im",limit:"200"},F)).channels??[]).find((A)=>A.user===V);if(K?.id)return String(K.id);return mu(D,V,F)}let J="",Q="";while(!0){let V={limit:"200"};if(Q)V.cursor=Q;let W=await CD(D,"users.list",V,F);for(let K of W.members??[]){let A=bD(K.name??""),_=bD(K.real_name??""),L=bD(K.profile?.display_name??"");if(A===$||_===$||L&&L===$){J=K.id??"";break}}if(J)break;if(Q=W.response_metadata?.next_cursor??"",!Q)break}if(!J)throw Error(`User not found: ${u}`);let O="";while(!0){let V={types:"im",limit:"200"};if(O)V.cursor=O;let W=await CD(D,"conversations.list",V,F);for(let K of W.channels??[])if(K.user===J)return String(K.id??"");if(O=W.response_metadata?.next_cursor??"",!O)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 Y=await CD(D,"conversations.list",Z,F);for(let J of Y.channels??[])if(String(J.name??"").toLowerCase()===G)return String(J.id??"");if(z=Y.response_metadata?.next_cursor??"",!z)break}throw Error(`channel not found: ${u}`)}async function cu(D,u,F){try{let E=await CD(D,"users.info",{user:u},F),C=E.user?.profile?.display_name,B=C&&C.length>0?C:E.user?.real_name??E.user?.name??u,$=E.user?.name??u;return[B,$]}catch{return[u,u]}}async function ku(D,u,F){try{let E=await CD(D,"users.info",{user:u},F),C=E.user?.profile?.display_name;if(C&&C.length>0)return C;return E.user?.real_name??E.user?.name??u}catch{return u}}async function I0(D,u){let F=[],E="";while(!0){let C={limit:"200"};if(E)C.cursor=E;let B=await CD(D,"users.list",C,u);if(F.push(...B.members??[]),E=B.response_metadata?.next_cursor??"",!E)break}return{members:F}}async function du(D,u){return Lu(D,"drafts.list",{},u)}async function p1(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 Lu(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 y1(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 Lu(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 m1(D,u,F){return Lu(D,"conversations.info",{channel:u},F)}async function b0(D,u,F){return CD(D,"users.info",{user:u},F)}async function f0(D,u,F){return CD(D,"conversations.info",{channel:u},F)}async function g1(D,u,F){let E=(Date.now()/1000).toFixed(6);return Lu(D,"drafts.delete",{draft_id:u,client_last_updated_ts:E},F)}async function h0(D,u){let F=await Lu(D,"auth.test",{},u);return{userId:String(F.user_id??""),teamId:String(F.team_id??"")}}async function c1(D,u,F,E={},C){let{statSync:B,readFileSync:$}=await import("node:fs"),{basename:G}=await import("node:path"),z=B(F),Z=G(F),Y=await CD(D,"files.getUploadURLExternal",{filename:Z,length:String(z.size)},C),J=Y.upload_url,Q=Y.file_id;if(!J||!Q)throw Error("files.getUploadURLExternal returned no upload_url/file_id");let O=$(F),V=await fetch(J,{method:"POST",headers:{"Content-Type":"application/octet-stream"},body:O});if(!V.ok)throw Error(`Upload PUT failed: ${V.status} ${V.statusText}`);let W={files:[{id:Q,title:E.title??Z}],channel_id:u};if(E.threadTs)W.thread_ts=E.threadTs;if(E.initialComment)W.initial_comment=E.initialComment;let K=await PD(D,"files.completeUploadExternal",W,C),A={fileId:Q},_=K.files?.[0]?.permalink;if(_)A.permalink=_;return A}function pu(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 Hu(D){return D.toLowerCase().replace(/[-_\s]/g,"")}function tD(D){return D&&typeof D==="object"&&!Array.isArray(D)?D:{}}function z7(D,u){let F=Hu(u),E=tD(D.profile);for(let B of[D.name,D.real_name,E.display_name,E.real_name])if(typeof B==="string"&&B&&Hu(B)===F)return!0;let C=typeof E.email==="string"?E.email.toLowerCase():"";return C!==""&&C===u.toLowerCase()}function Z7(D){let u=tD(D.profile),F=new Set;for(let E of[u.display_name,D.real_name,D.name,u.real_name])if(typeof E==="string"&&E){let C=Hu(E);if(C.length>=2)F.add(C)}return[...F]}function J7(D,u){let F=Hu(D),E,C=!1;for(let B of u){let $=typeof B.id==="string"?B.id:"";if(!$)continue;for(let G of Z7(B)){let z=-1;if(F===G)z=D.length;else for(let Z of d1)if(D.length>Z.length&&D.endsWith(Z)&&Hu(D.slice(0,D.length-Z.length))===G){z=D.length-Z.length;break}if(z<0)continue;if(!E||G.length>E.formLen)E={userId:$,matchLen:z,formLen:G.length,display:g0(B)},C=!1;else if(G.length===E.formLen&&E.userId!==$)C=!0}}if(!E)return;return C?"ambiguous":{userId:E.userId,matchLen:E.matchLen,display:E.display}}async function p0(D,u,F,E){let C=`[${i1}ー]+`,B=`${C}(?:[._-]+${C})*`,$=new RegExp(`(?<![A-Za-z0-9._@<-])@(${B})`,"gu"),G=new Set;for(let _ of u.matchAll($))G.add(_[1]);if(G.size===0)return{text:u,resolved:[],unresolved:[]};let z=new Map;for(let _ of G)z.set(_,{status:"pending"});let Z=(_)=>{for(let L of G){if(z.get(L).status!=="pending")continue;if(m0(L)){let M=J7(L,_);if(M==="ambiguous")z.set(L,{status:"ambiguous"});else if(M)z.set(L,{status:"resolved",userId:M.userId,matchLen:M.matchLen,display:M.display})}else{let M=_.filter((k)=>z7(k,L)),x=new Set(M.map((k)=>typeof k.id==="string"?k.id:"").filter(Boolean));if(x.size===1){let k=M.find((o)=>typeof o.id==="string");z.set(L,{status:"resolved",userId:k.id,matchLen:L.length,display:g0(k)})}else if(x.size>1)z.set(L,{status:"ambiguous"})}}},Y=!1;try{let _=await OF(D,E);Z((_.members??[]).map(tD)),Y=!0}catch{Y=!1}let J=[...G].some((_)=>z.get(_).status==="pending"),Q=!1,O=!0;if(J&&F){Q=!0;try{let _=await V0(D,F,E),L=[];for(let M of _){let x=tD(await H0(D,M,E)),k=tD(x.user);if(typeof k.id!=="string")k.id=M;L.push(k)}Z(L)}catch{O=!1}}let V=Y&&(F?Q&&O:!0),W=[],K=[];for(let _ of G){let L=z.get(_);if(L.status==="resolved")W.push({surface:`@${_.slice(0,L.matchLen)}`,display:L.display,userId:L.userId});else if(L.status==="ambiguous")K.push({surface:`@${_}`,reason:"ambiguous"});else K.push({surface:`@${_}`,reason:V?"no-match":"unavailable"})}return{text:u.replace($,(_,L)=>{let M=z.get(L);if(M&&M.status==="resolved")return`<@${M.userId}>${L.slice(M.matchLen)}`;return _}),resolved:W,unresolved:K}}function y0(D){let u=[],F=!1;for(let E of D)if(E.reason==="ambiguous")u.push(`${E.surface} matches multiple people — not tagged, sent as plain text (use <@USERID> to tag)`);else if(E.reason==="unavailable"){if(F)continue;u.push("could not fetch the user list (users:read missing or an API/connection error) — @mentions not tagged, sent as plain text"),F=!0}else u.push(`${E.surface} matched no one — not tagged, sent as plain text`);return u}async function k1(D,u,F,E={}){let C=E.warn??(($)=>process.stderr.write(`${$}
|
|
133
|
+
`)),B=await p0(D,u,F,E.cookie);for(let $ of y0(B.unresolved))C(`warn: ${$}`);return B.text}var d1=["さん","さま","様","君","くん","ちゃん","氏","先生","先輩","殿","老师","老師","兄","姐","哥","姐妹"],i1="\\p{Script=Han}\\p{Script=Hiragana}\\p{Script=Katakana}A-Za-z0-9";function m0(D){return/[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}]/u.test(D)}function X7(D){let u=[],F=new RegExp(`([${i1}]{1,12})(${d1.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 Q7(D){let u=tD(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=Hu(C);if(B.length>=2)F.add(B)}}return[...F]}function Y7(D,u){let F=Hu(D);if(F.length<2)return;for(let E of u)if(F===E)return E;if(m0(D)){for(let E of u)if(F.includes(E)||E.includes(F))return E}return}function g0(D){return[tD(D.profile).display_name,D.real_name,D.name].filter((E)=>typeof E==="string"&&E!=="")[0]??String(D.id??"?")}async function n1(D,u,F){let E=X7(u);if(E.length===0)return[];let C=new Set;for(let Z of u.matchAll(/<@([A-Z0-9]+)(?:\|[^>]*)?>/g))C.add(Z[1]);let $=((await OF(D,F)).members??[]).map(tD).filter((Z)=>Z.deleted!==!0&&Z.is_bot!==!0&&Z.id!=="USLACKBOT").map((Z)=>({id:typeof Z.id==="string"?Z.id:"",forms:Q7(Z),display:g0(Z)})).filter((Z)=>Z.id!==""),G=[],z=new Set;for(let{ref:Z,honorific:Y}of E)for(let J of $){let Q=Y7(Z,J.forms);if(!Q)continue;if(C.has(J.id)||z.has(J.id))break;z.add(J.id),G.push({surface:m0(Z)?`${Q}${Y}`:Z,display:J.display,userId:J.id});break}return G}async function Tu(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(/[>|]/),Y=Z===-1?z:z.slice(0,Z);if(Y.length>=9)C.push(Y);$=G+1}for(let G of C){if(!F.has(G))F.set(G,await WF(D,G));let z=F.get(G)??G;E=E.replaceAll(`<@${G}>`,`@${z}`),E=E.replace(new RegExp(`<@${G}\\|[^>]*>`,"g"),`@${z}`)}return E}function iu(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 l1(D,u=new Date){let F=new Date(D*1000),E=v0(u),C=v0(new Date(u.getTime()-86400000)),B=v0(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 v0(D){return`${D.getFullYear()}-${D.getMonth()}-${D.getDate()}`}function t1(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 nu(D){if(!e1(D))return;let u=O7(D,"utf8");for(let F of u.split(`
|
|
134
|
+
`)){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 H7(D){V7(D,{recursive:!0});let u=oD(D,".gitignore");if(!e1(u))D3(u,`*
|
|
135
|
+
`)}function q7(){nu(oD(o1(),".slack-cli",".env.local")),nu(oD(o1(),".config/slack-cli",".env")),nu(oD(process.cwd(),".slack-cli",".env.local")),nu(oD(process.cwd(),".env.local")),nu(oD(process.cwd(),".env"))}function K7(D){return W7("sha256").update(D).digest("hex")}function m(D){return D&&typeof D==="object"&&!Array.isArray(D)?D:{}}function r(D){return Array.isArray(D)?D:[]}function LF(D){return Number(D.ts??0)}async function u3(D,u,F){let E=u.user;if(typeof E==="string"){if(!F.has(E))F.set(E,await ku(D,E));return F.get(E)??E}return typeof u.username==="string"?u.username:"bot"}function c0(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 d0(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"),Y=String(C.getUTCSeconds()).padStart(2,"0"),J=F.padEnd(6,"0").slice(0,6);return`${B}-${$}-${G}T${z}:${Z}:${Y}.${J}`}function i0(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 U7(D){return/^\d{4}-\d{2}-\d{2}T/.test(D)?i0(D):D}async function TF(D,u,F,E){let C=typeof u.ts==="string"?u.ts:`${LF(u)}.000000`,B=d0(C),$="?";if(typeof u.user==="string"){let W=u.user,K="@"+W;if(!F.has(K)){let[,A]=await cu(D,W);F.set(K,A)}$=F.get(K)??W}else if(typeof u.username==="string")$=u.username;let G=typeof u.text==="string"?u.text:"",Z=iu(await Tu(D,G,F)).split(`
|
|
136
|
+
`),Y=Z[0]+(Z.length>1?`
|
|
137
|
+
`+Z.slice(1).map((W)=>` ${W}`).join(`
|
|
138
|
+
`):""),J=E?`${E} @${$}`:`@${$}`,Q=r(u.reactions).map(m).map((W)=>{let K=typeof W.name==="string"?W.name:"",A=Number(W.count??r(W.users).length??0);return K?`:${K}:\xD7${A}`:""}).filter(Boolean).join(" "),O=r(u.files).map(m).map((W)=>{let K=typeof W.name==="string"?W.name:typeof W.title==="string"?W.title:"(file)",A=typeof W.size==="number"?` (${n0(W.size)})`:"",_=typeof W.id==="string"?` [${W.id}]`:"";return`
|
|
139
|
+
\uD83D\uDCCE ${K}${A}${_}`}).join(""),V=(Q?`
|
|
140
|
+
${Q}`:"")+O;return`${B} ${J}: ${Y}${V}`}function n0(D){return D<1024?`${D} B`:D<1048576?`${(D/1024).toFixed(1)} KB`:`${(D/1048576).toFixed(1)} MB`}function _7(D){return r(D.files).map(m).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 F3(D){let u=_7(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 j7(D,u,F,E="text"){let C=gu(u),B=await _D(D,u),$=new Map,z=await(async()=>{if(C?.threadTs){let Y=await Nu(D,B,C.threadTs,F);return r(Y.messages).map(m)}let Z=await yu(D,B,F);return r(Z.messages).map(m).reverse()})();if(E==="jsonl"){for(let Z of z)console.log(JSON.stringify(F3(Z)));return}for(let Z of z)console.log(await TF(D,Z,$))}async function M7(D,u,F,E,C="text"){let B=await _D(D,u),$=await Nu(D,B,U7(F),E),G=r($.messages).map(m);if(C==="jsonl"){for(let Z of G)console.log(JSON.stringify(F3(Z)));return}let z=new Map;for(let Z of G)console.log(await TF(D,Z,z))}async function A7(D){let u=await AF(D),F=r(u.channels).map(m).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 yu(D,B,5),z=r(G.messages).map(m).filter((Z)=>Z.subtype===void 0||Z.subtype===null).filter((Z)=>{let Y=typeof Z.text==="string"?Z.text:"";return Y.length>0&&!Y.startsWith("<@")}).slice(0,3).reverse();if(z.length===0)continue;console.log(`-- #${$} --------------------------------`);for(let Z of z){let Y=await u3(D,Z,E),J=(typeof Z.text==="string"?Z.text:"").split(`
|
|
141
|
+
`)[0]??"",Q=await Tu(D,J,E);console.log(` ${Y}: ${Q}`)}}}async function L7(D,u){let F=await T1(D,"to:me"),E=r(pu(F,["messages","matches"])).map(m).slice(0,u),C=new Map,B=[];for(let $ of E){let G=l1(LF($)),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 Y=m(Z.channel),J=Y.is_im===!0,Q=typeof Y.name==="string"?Y.name:"dm",O;if(J&&Q.startsWith("U")){let V="@"+Q;if(!C.has(V)){let[,W]=await cu(D,Q);C.set(V,W)}O=`@${C.get(V)??Q}`}else if(J)O=`@${Q}`;else O=`#${Q}`;console.log(await TF(D,Z,C,O))}}}async function N7(D,u,F,E,C="text"){let B=await AF(D),$=r(B.channels).map(m).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,Y=G.is_im===!0,J=G.is_mpim===!0,Q=Y||J?"@":"#",O=G.is_member===!0?"":" (not joined)",V=typeof m(G.purpose).value==="string"?String(m(G.purpose).value):"",W=V?` ${V.split(`
|
|
142
|
+
`)[0]?.slice(0,60)}`:"";console.log(`${Q}${Z} ${z}${O}${W}`)}}function T7(D){let u=(C)=>C.startsWith("xoxp-")||C.startsWith("xoxc-"),F=J0(),E=F.find((C)=>C.profile.token===D);if(!E)return;return F.find((C)=>u(C.profile.token)&&C.profile.teamId===E.profile.teamId)}async function R7(D,u,F,E,C){let B=D,$=C,G;try{G=await P0(B,u,F,$)}catch(Y){let J=Y instanceof Error?Y.message:String(Y);if(D.startsWith("xoxb-")&&J.includes("not_allowed_token_type")){let Q=T7(D);if(Q)console.error(`Note: search.messages needs a user token \u2014 the active profile is a bot token (xoxb-); falling back to profile "${Q.name}".`),B=Q.profile.token,$=Q.profile.cookie,G=await P0(B,u,F,$);else console.error(`Error: search requires a user token (xoxp-/xoxc-) \u2014 the active profile is a bot token (xoxb-), which Slack rejects for search.messages.
|
|
143
|
+
`+` Add a user-token profile: slack auth login (or slack auth token)
|
|
144
|
+
Then select it: slack auth use <name> (or pass --workspace <name>)`),process.exit(1)}else throw Y}if(E){console.log(JSON.stringify(G,null,2));return}let z=r(pu(G,["messages","matches"])).map(m),Z=new Map;for(let Y of z){let J=m(Y.channel),Q=J.is_im===!0,O=typeof J.name==="string"?J.name:"dm",V;if(Q&&O.startsWith("U")){let W="@"+O;if(!Z.has(W)){let[,K]=await cu(B,O,$);Z.set(W,K)}V=`@${Z.get(W)??O}`}else if(Q)V=`@${O}`;else V=`#${O}`;console.log(await TF(B,Y,Z,V))}}async function S7(D,u,F,E){let C=Math.floor(Date.now()/1000)-u*86400,B=await AF(D),$=r(B.channels).map(m).filter((Y)=>Y.is_member===!0&&Y.is_im!==!0&&Y.is_mpim!==!0).filter((Y)=>{if(!E)return!0;return(typeof Y.name==="string"?Y.name:"").toLowerCase().includes(E.toLowerCase())}).sort((Y,J)=>Number(J.updated??0)-Number(Y.updated??0)),G=new Map,z=0,Z=0;for(let Y of $){let J=String(Y.id??""),Q=typeof Y.name==="string"?Y.name:J,O;try{O=await yu(D,J,F)}catch(W){console.error(` SKIP #${Q}: ${W.message}`);continue}let V=r(O.messages).map(m).filter((W)=>(W.subtype===void 0||W.subtype===null)&&LF(W)>=C);if(V.length===0)continue;Z+=1,z+=V.length,console.log(`## #${Q} (${V.length} msgs)
|
|
145
|
+
`);for(let W of[...V].reverse()){let K=await u3(D,W,G),A=typeof W.text==="string"?W.text:"",L=iu(await Tu(D,A,G)).split(`
|
|
146
|
+
`).join(" \u21B5 ");console.log(`[${t1(LF(W))}] ${K}: ${L}`)}console.log("")}console.error(`Dumped ${z} messages across ${Z} channels (cutoff: ${u}d)`)}function P7(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 E3(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 m1(D,C,u),$=m(B.channel),G;if($.is_im===!0){let z=typeof $.user==="string"?$.user:"";if(!z||z===F)G="@self";else{let[Z]=await cu(D,z);G=`@${Z}`}}else G=`#${typeof $.name==="string"?$.name:C}`;return E.set(C,G),G}catch{return C}}}function l0(D){let u=m(r(D.destinations)[0]);return String(u.channel_id??D.channel_id??D.channel??"")}function NF(D){return P7(r(D.blocks))||(typeof D.text==="string"?D.text:"(no text)")}async function w7(D,u,F=!1){let E=await du(D,u),C=r(E.drafts??E.messages??[]).map(m).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 h0(D,u))}catch{}let G=await E3(D,u,$),z=new Map;for(let Z of B){let Y=l0(Z),J=NF(Z),Q=Number(Z.date_created??Z.date_create??0),O=Q?c0(Q):"?",V=await G(Y),W=typeof Z.id==="string"?Z.id:"",K=Z.is_sent===!0?" [SENT]":"",A=iu(await Tu(D,J,z));console.log(`-- ${W} ${V} [${O}]${K}`);for(let _ of A.split(`
|
|
147
|
+
`))console.log(` ${_}`)}}async function x7(D,u,F){let E=await du(D,u),C=r(E.drafts).map(m).find((V)=>String(V.id)===F);if(!C)console.error(`Draft not found: ${F}`),process.exit(1);let B="";try{({userId:B}=await h0(D,u))}catch{}let $=await E3(D,u,B),G=l0(C),z=NF(C),Z=Number(C.date_created??0),Y=String(C.last_updated_ts??"?"),J=await $(G),O=iu(await Tu(D,z,new Map));console.log(`id: ${C.id}`),console.log(`channel: ${J} (${G})`),console.log(`created: ${Z?c0(Z):"?"}`),console.log(`updated: ${c0(Number(Y.split(".")[0]))}`),console.log(`status: ${C.is_sent===!0?"sent":"pending"}`),console.log("---"),console.log(O)}function yD(...D){return K7(D.join(`
|
|
148
|
+
`)).slice(0,4)}function Ru(D){return D.replace(/\x1b\[[0-9;:?]*[ -/]*[@-~]/g,"").replace(/[\x00-\x1f\x7f-\x9f]/g,"").replace(/[\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/g,"")}var I7={"reactions.add":"reactions:write","reactions.remove":"reactions:write","chat.postMessage":"chat:write","chat.update":"chat:write","chat.delete":"chat:write","conversations.replies":"channels:history (or groups:history)","conversations.history":"channels:history (or groups:history)"};function s1(D){let u=D instanceof Error?D.message:String(D),F=u.match(/Slack error on (\S+): (\w+)/);if(!F)return u;let[,E,C]=F;switch(C){case"missing_scope":return`Error: token lacks the ${I7[E]??"the required"} scope (needed for ${E}). Add it to your Slack App's User Token Scopes (or Bot Token Scopes if you use a bot token / --as-bot) \u2014 it must be on the token type the CLI actually uses \u2014 then reinstall to the workspace.`;case"invalid_name":return"Error: not a valid emoji shortcode \u2014 use the name without colons (e.g. white_check_mark), and make sure it exists in the workspace.";case"already_reacted":return"Error: you've already added that reaction to the message.";case"no_reaction":return"Error: that reaction isn't on the message \u2014 nothing to remove.";case"message_not_found":return"Error: no message found at that timestamp in the channel \u2014 check the target ts/permalink.";case"channel_not_found":return"Error: channel not found \u2014 check the target.";default:return u}}function fD(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 t0(D){let u=gu(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:i0(E)}}}return{ref:D}}function o0(D){let u=gu(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:i0(E)}}return{ref:D}}async function C3(D,u,F,E){let C=F;if(!F.startsWith("#")&&!F.startsWith("@"))try{let B=m(await f0(D,u,E)),$=m(B.channel);if($.is_im===!0){let G=typeof $.user==="string"?$.user:"";C=G?`@${await ku(D,G,E)}`:u}else C=typeof $.name==="string"?`#${$.name}`:u}catch{C=u}return C===u?u:`${C} (${u})`}async function k0(D,u,F=60,E){let C=typeof u.user==="string"?await ku(D,u.user,E):typeof u.username==="string"?u.username:"?",B=(typeof u.text==="string"?u.text:"").split(`
|
|
149
|
+
`)[0]??"",$=B.length>F?`${B.slice(0,F)}\u2026`:B,G=typeof u.ts==="string"?u.ts:"";return`${G?d0(G).slice(0,16).replace("T"," "):""} @${C}${$?`: ${$}`:""}`}async function b7(D,u,F,E){let C=F.find((B)=>String(B.ts)===u)??F[0];if(!C)return u;return k0(D,C,40,E)}function r1(D){return D.toLowerCase().replace(/<[@#!][^>]+>/g," ").replace(/[^\p{L}\p{N}\s]/gu," ").replace(/\s+/g," ").trim()}function f7(D,u){let F=r1(D),E=r1(u);if(!F||!E)return 0;if(F===E)return 1;let C=(Z)=>{let Y=new Map;for(let J=0;J<Z.length-1;J++){let Q=Z.slice(J,J+2);Y.set(Q,(Y.get(Q)??0)+1)}return Y},B=C(F),$=C(E);if(B.size===0||$.size===0)return 0;let G=0;for(let[Z,Y]of B){let J=$.get(Z);if(J)G+=Math.min(Y,J)}let z=a1(B)+a1($);return z===0?0:2*G/z}function a1(D){let u=0;for(let F of D.values())u+=F;return u}async function h7(D,u){let{ref:F,ts:E}=t0(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 _D(D,F,u.cookie);let B=await Nu(D,C,E,1,u.cookie),G=r(B.messages).map(m).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=u.mentions?await k1(D,u.newText,C,u.cookie?{cookie:u.cookie}:{}):u.newText,Y=yD(z,Z);if(u.code!==Y)fD(u.code,Y,["--- Original message -------------------------",...z.split(`
|
|
150
|
+
`).map((Q)=>` ${Q}`),"--- Replacing with ---------------------------",...Z.split(`
|
|
151
|
+
`).map((Q)=>` ${Q}`),"--------------------------------\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"]);let J=await x1(D,C,E,Z,u.cookie);console.log(`\u2713 Edited (ts: ${J})`)}async function v7(D,u){let{ref:F,ts:E}=t0(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 _D(D,F,u.cookie);let B=await Nu(D,C,E,1,u.cookie),G=r(B.messages).map(m).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=yD(C,E,z);if(u.code!==Z){let Y=await C3(D,C,F,u.cookie);fD(u.code,Z,["--- Deleting message -------------------------",` \u2192 ${Y} at ${d0(E)}`,...z.split(`
|
|
152
|
+
`).map((J)=>` ${J}`),"---------------------------------------------"])}await I1(D,C,E,u.cookie),console.log(`\u2713 Deleted (ts: ${E})`)}async function p7(D,u){let{ref:F,ts:E}=t0(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=u.emoji.replace(/^:|:$/g,""),B;if(u.channelId)B=u.channelId;else B=await _D(D,F,u.cookie);if(u.remove)await f1(D,B,E,C,u.cookie),console.log(`\u2713 Removed :${C}: (ts: ${E})`);else await b1(D,B,E,C,u.cookie),console.log(`\u2713 Reacted :${C}: (ts: ${E})`)}async function y7(D,u,F){if(!u.startsWith("@"))return!1;let E=u.slice(1).toLowerCase().replace(/[^a-z0-9]/g,"");if(E==="me"||E==="you")return!0;try{let B=((await M1(D,F)).user??"").toLowerCase().replace(/[^a-z0-9]/g,"");return B!==""&&B===E}catch{return!1}}async function m7(D,u){let{ref:F,threadTs:E}=o0(u.target),C=u.cookie;if(!u.asBot&&!u.channelId&&!u.userId&&await y7(D,F,C))console.error(`Warning: "${F}" is a DM to yourself \u2014 Slack will NOT notify you of your own message.
|
|
153
|
+
`+` To reach yourself with a notification, send as the bot: slack send '${F}' '...' --as-bot`);let B;if(u.channelId)B=u.channelId;else if(u.userId)B=await mu(D,u.userId,C);else B=await _D(D,F,C);let $=u.message,G=null;if(u.mentions){G=await p0(u.mentionToken??D,u.message,B,u.mentionCookie),$=G.text;for(let _ of y0(G.unresolved))console.error(`\u26A0 ${Ru(_)}`)}try{for(let _ of await n1(u.mentionToken??D,$,u.mentionCookie))console.error(`\u26A0 possible untagged mention: ${Ru(_.surface)} \u2014 @${Ru(_.display)} won't be notified (did you mean <@${_.userId}>?)`)}catch{}let z=[];if(G&&(G.resolved.length>0||G.unresolved.length>0)){z.push("--- Mentions ---------------------------------");for(let _ of G.resolved)z.push(` \u2713 ${Ru(_.surface)} \u2192 @${Ru(_.display)} (${_.userId}) \u2014 will notify`);for(let _ of G.unresolved){let L=_.reason==="ambiguous"?"ambiguous":_.reason==="unavailable"?"lookup unavailable":"no match";z.push(` \u26A0 ${Ru(_.surface)} \u2014 plain text, NOT notified (${L})`)}}let Z="",Y="?",J=[],Q,O,V;if(E)try{let _=await Nu(D,B,E,100,C);J=r(_.messages).map(m);let L=J[J.length-1];Z=typeof L?.text==="string"?L.text:"",Q=typeof L?.user==="string"?L.user:void 0,O=typeof L?.bot_id==="string"?L.bot_id:void 0,V=typeof L?.ts==="string"?L.ts:void 0}catch{}else try{let _=await yu(D,B,1,void 0,void 0,C),L=r(_.messages).map(m),M=L.filter((k)=>k.subtype===void 0||k.subtype===null)[0];Z=typeof M?.text==="string"?M.text:"",Y=typeof M?.user==="string"?await ku(D,M.user,C):typeof M?.username==="string"?M.username:"?";let x=L[0];Q=typeof x?.user==="string"?x.user:void 0,O=typeof x?.bot_id==="string"?x.bot_id:void 0,V=typeof x?.ts==="string"?x.ts:void 0}catch{}if(process.env.SLACK_UNREPLIED_WARN!=="0"&&V&&(Q||O))try{let _=await A1(D,C);if(!!Q&&!!_.userId&&_.userId===Q||!!O&&!!_.botId&&_.botId===O){let M=`slack edit "#${B}:${V}" "<\u65B0\u3057\u3044\u672C\u6587>" --channel-id ${B}`;try{let x=await w0(D,B,V,C);if(x)M=`slack edit "${x}" "<\u65B0\u3057\u3044\u672C\u6587>"`}catch{}console.error("\u26A0 \u76F8\u624B\u306F\u307E\u3060\u8FD4\u4FE1\u3057\u3066\u3044\u307E\u305B\u3093(\u6700\u5F8C\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306F\u3042\u306A\u305F\u306E\u3082\u306E\u3067\u3059)\u3002"),console.error(" \u9023\u6295\u3092\u907F\u3051\u308B\u305F\u3081\u3001\u65B0\u898F\u9001\u4FE1\u3067\u306A\u304F\u76F4\u524D\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306E edit \u3092\u691C\u8A0E\u3057\u3066\u304F\u3060\u3055\u3044:"),console.error(` ${M}`),console.error(" \u3053\u306E\u307E\u307E\u9001\u4FE1\u3059\u308B\u5834\u5408\u306F --code=XXXX \u3067\u78BA\u5B9A\u3002")}}catch{}if(E&&J.length){let _={sim:0,msg:null};for(let L of J){let M=typeof L.text==="string"?L.text:"";if(!M)continue;let x=f7($,M);if(x>_.sim)_={sim:x,msg:L}}if(_.msg&&_.sim>=0.82){let L=Math.round(_.sim*100);console.error(`\u26A0 possible duplicate: ${L}% similar to an existing thread message \u2014 ${await k0(D,_.msg,60,C)}`)}}let W=yD(B,E??"",Z,$);if(u.code!==W){let _=await C3(D,B,F,C);if(E){let L=await b7(D,E,J,C),M=J.slice(-3),x=M.length?await Promise.all(M.map(async(k)=>` ${await k0(D,k,60,C)}`)):[" (thread context unavailable)"];fD(u.code,W,["--- Recent messages in thread ----------------",...x,...z,"--- Sending ----------------------------------",` \u2192 ${_} thread of ${L} \u2014 THREAD REPLY`,` Message: ${$}`,"--------------------------------\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"])}else fD(u.code,W,["--- Last message in channel ------------------",` ${Y}: ${Z.split(`
|
|
154
|
+
`)[0]?.slice(0,100)??"(empty)"}`,...z,"--- Sending ----------------------------------",` \u2192 ${_} \u2014 NEW top-level message`,` Message: ${$}`,"--------------------------------\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"])}let K=await R1(D,B,$,E,u.broadcast,C),A="";try{A=await w0(D,B,K,C)}catch{}if(A)console.log(`\u2713 Sent: ${A}`);else console.log(`\u2713 Sent (ts: ${K})`);if(u.asBot&&B.startsWith("D"))try{let _=await q0(D);if(!_.ok)for(let L of K0(_,!0))console.error(L);else{let L=_.appId?`https://api.slack.com/apps/${_.appId}`:"https://api.slack.com/apps";console.error(`Note: if ${u.target} can't reply (app messaging may be off), enable Messages Tab: ${L} \u2192 App Home.`)}}catch{}}async function g7(D){let u=await q0(D);for(let F of K0(u,!1))console.log(F);if(!u.ok)process.exit(1)}function c7(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 k7(D,u){let{ref:F,threadTs:E}=o0(u.target),C;if(u.channelId)C=u.channelId;else if(u.userId)C=await mu(D,u.userId,u.cookie);else C=await _D(D,F,u.cookie);let B=c7(u.at),$=new Date(B*1000).toISOString(),G=yD(C,u.message,String(B));if(u.code!==G)fD(u.code,G,["--- Scheduling message -----------------------",` To: ${F}${E?` (thread ${E})`:""}`,` At: ${$} (Unix: ${B})`,` Message: ${u.message}`,"---------------------------------------------"]);let z=await S1(D,C,u.message,B,E,u.cookie);console.log(`\u2713 Scheduled (id: ${z}, at: ${$})`)}async function d7(D,u,F,E){let C;if(F)C=F;else if(u)C=await _D(D,u,E);let $=(await P1(D,C,E)).scheduled_messages??[];if($.length===0){console.log("(no scheduled messages)");return}for(let G of $){let z=new Date(G.post_at*1000).toISOString();console.log(`${G.id} ${z} [${G.channel_id}] ${G.text.split(`
|
|
155
|
+
`)[0]?.slice(0,80)??""}`)}}async function i7(D,u){let F;if(u.channelId)F=u.channelId;else F=await _D(D,u.target,u.cookie);let E=yD(F,u.id);if(u.code!==E)fD(u.code,E,["--- Deleting scheduled message ---------------",` Channel: ${u.target}`,` ID: ${u.id}`,"---------------------------------------------"]);await w1(D,F,u.id,u.cookie),console.log(`\u2713 Deleted scheduled message ${u.id}`)}async function n7(D,u){let{statSync:F,existsSync:E}=await import("fs"),{basename:C}=await import("path");for(let Q of u.filePaths)if(!E(Q))console.error(`Error: file not found: ${Q}`),process.exit(1);let{ref:B,threadTs:$}=o0(u.target),G;if(u.channelId)G=u.channelId;else if(u.userId)G=await mu(D,u.userId,u.cookie);else G=await _D(D,B,u.cookie);let z=u.filePaths.length>1,Z=u.filePaths.map((Q)=>{let O=C(Q),V=z?O:u.title??O;return{fp:Q,filename:O,title:V,sizeFmt:n0(F(Q).size)}}),Y=yD(G,...Z.flatMap((Q)=>[Q.fp,Q.title]));if(u.code!==Y){let Q=` To: ${B}${$?` (thread ${$})`:""}`,O=z?[`--- Uploading ${Z.length} files ------------------------`,Q,...Z.map((V)=>` ${V.filename} (${V.sizeFmt})`),"--------------------------------\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"]:["--- Uploading file ---------------------------",Q,` File: ${Z[0].fp}`,` Title: ${Z[0].title}`,` Size: ${Z[0].sizeFmt}`,"--------------------------------\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"];fD(u.code,Y,O)}let J=Z.length;for(let Q=0;Q<J;Q++){let O=Z[Q],V={title:O.title};if($!==void 0)V.threadTs=$;if(u.comment!==void 0&&Q===0)V.initialComment=u.comment;let{fileId:W,permalink:K}=await c1(D,G,O.fp,V,u.cookie),A=J>1?`[${Q+1}/${J}] `:"";console.log(`${A}\u2713 Uploaded (file_id: ${W}${K?`, url: ${K}`:""})`)}}function l7(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 t7(D,u,F,E){let C=l7(F);if(!C)throw Error(`Not a file ID or file permalink: ${F}
|
|
156
|
+
`+"Expected F\u2026 or https://<ws>.slack.com/files/<UID>/<FID>/<name>");let B=m(await L1(D,C,u)),$=m(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 Y=await fetch(z,{headers:Z});if(!Y.ok)throw Error(`Download failed: HTTP ${Y.status} ${Y.statusText}`);let J=Buffer.from(await Y.arrayBuffer()),{statSync:Q,existsSync:O}=await import("fs"),{basename:V}=await import("path"),W=E??G;if(E&&O(E)&&Q(E).isDirectory())W=oD(E,V(G));D3(W,J),console.log(`\u2713 Downloaded ${G} (${n0(J.length)}) \u2192 ${W}`)}async function o7(){q7();let D=(F)=>X0(F.workspace),u=(F)=>p8(F.workspace);await w8(cF(process.argv)).scriptName("slack").showHelpOnFail(!1).fail((F,E,C)=>{if(E)console.error(E.message),process.exit(1);console.error(F),console.error(""),C.showHelp(),process.exit(1)}).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{X0(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:
|
|
157
|
+
`),await _F(),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 j7(E,F.target,F.limit,C);else await A7(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 M7(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 N7(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=u(E),$=E.channel,G=$.startsWith("#")||$.startsWith("@")||$.startsWith("C")||$.startsWith("G")||$.startsWith("D")?$:`#${$}`,z=await _D(C,G,B),Z=m(await f0(C,z,B)),Y=m(Z.channel),J=typeof Y.name==="string"?Y.name:z,O=Y.is_im===!0?"@":"#",V=String(m(Y.purpose).value??""),W=String(m(Y.topic).value??""),K=Y.num_members??Y.member_count??"";if(console.log(`${O}${J} ${z}`),W)console.log(`topic: ${W}`);if(V)console.log(`purpose: ${V}`);if(K)console.log(`members: ${K}`);console.log(`private: ${Y.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=u(E),$=E.name.replace(/^#/,"").toLowerCase(),G=E.private===!0,z=E.invite.filter(Boolean),Z=yD($,String(G),z.join(","));if(E.code!==Z)fD(E.code,Z,["--- Creating channel -------------------------",` name: ${G?"\uD83D\uDD12 ":"#"}${$}`,` private: ${G}`,...z.length?[` invite: ${z.join(", ")}`]:[],"--------------------------------\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"]);let Y;try{Y=await h1(C,$,G,B)}catch(J){console.error(J instanceof Error?J.message:String(J)),process.exit(1)}if(console.log(`\u2713 Created ${G?"\uD83D\uDD12 ":"#"}${Y.name} (${Y.id})`),z.length){let J=[];for(let Q of z)try{J.push(Q.startsWith("U")||Q.startsWith("W")?Q:await x0(C,Q,B))}catch(O){console.error(` ! could not resolve ${Q}: ${O instanceof Error?O.message:String(O)}`)}for(let Q of J)try{let O=m(await b0(C,Q,B)),V=m(O.user);if(V.is_ultra_restricted===!0)console.error(`\u26A0 ${Q} is a single-channel guest \u2014 Slack restricts them to their one existing channel; this invite will likely report success but not actually add them.`);else if(V.is_restricted===!0)console.error(`\u26A0 ${Q} is a multi-channel guest \u2014 double-check they were actually added (guest invites can silently no-op depending on workspace restrictions).`)}catch{}if(J.length)try{await v1(C,Y.id,J,B),console.log(`\u2713 Invited ${J.length} member${J.length===1?"":"s"}`)}catch(Q){console.error(` ! invite failed: ${Q instanceof Error?Q.message:String(Q)}`)}}}).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 I0(D(E)),$=E.filter?.toLowerCase(),G=r(B.members).map(m).filter((Z)=>Z.deleted!==!0&&Z.is_bot!==!0&&String(Z.id)!=="USLACKBOT").filter((Z)=>{if(!$)return!0;let Y=String(Z.name??"").toLowerCase(),J=String(m(Z.profile).real_name??"").toLowerCase(),Q=String(m(Z.profile).email??"").toLowerCase();return Y.includes($)||J.includes($)||Q.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 Y=function(J,Q=""){if(J===null)return"null";if(typeof J==="string")return J.includes(`
|
|
154
158
|
`)?`|
|
|
155
159
|
${J.split(`
|
|
156
160
|
`).join(`
|
|
157
|
-
`)}`:J;if(typeof J!=="object")return String(J);if(Array.isArray(J))return J.map((
|
|
158
|
-
${
|
|
159
|
-
${
|
|
160
|
-
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
|
|
161
|
+
`)}`:J;if(typeof J!=="object")return String(J);if(Array.isArray(J))return J.map((O)=>`
|
|
162
|
+
${Q} - ${Y(O,Q+" ")}`).join("");return Object.entries(J).map(([O,V])=>`
|
|
163
|
+
${Q} ${O}: ${Y(V,Q+" ")}`).join("")};console.log("---");for(let[J,Q]of Object.entries(Z))console.log(`${J}: ${Y(Q)}`)}return}let z=Intl.DateTimeFormat().resolvedOptions().timeZone;for(let Z of G){let Y=m(Z.profile),J=String(Z.name??Z.id),Q=String(Z.id??""),O=String(Y.display_name||""),V=String(Y.real_name||""),W=String(Y.email||""),K=String(Z.tz??""),_=[...new Set([O,V].filter((x)=>x&&x!==J))].join(" / "),M=[W,K&&K!==z?K:""].filter(Boolean).join(" ");console.log(`@${J} ${Q} ${_}${M?" "+M:""}`)}}).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 M=await I0(C),x=r(M.members).map(m).find((k)=>String(k.name??"")===B);if(!x)console.error(`User not found: @${B}`),process.exit(1);$=String(x.id)}let G=m(await b0(C,$)),z=m(G.user),Z=m(z.profile),Y=Intl.DateTimeFormat().resolvedOptions().timeZone,J=String(z.name??$),Q=String(z.id??$),O=String(Z.display_name||""),V=String(Z.real_name||""),W=String(Z.email||""),K=String(z.tz??""),A=String(Z.phone||""),_=String(Z.title||"");console.log(`@${J} ${Q}`);let L=[...new Set([O,V].filter((M)=>M&&M!==J))];if(L.length)console.log(`name: ${L.join(" / ")}`);if(W)console.log(`email: ${W}`);if(A)console.log(`phone: ${A}`);if(_)console.log(`title: ${_}`);if(K&&K!==Y)console.log(`tz: ${K}`)}).demandCommand(1,"").showHelpOnFail(!0)).command("news","Activity feed (mentions to you)",(F)=>F.option("limit",{alias:"l",type:"number",default:20}),async(F)=>{await L7(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 R7(D(F),F.query,F.count,F.json,u(F))}).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 B=u(F);if(B)E.mentionCookie=B}let C;if(F["as-bot"]){let B=Q0();if(!B)console.error(`Error: --as-bot needs a bot token, but no xoxb- token was found.
|
|
164
|
+
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 x0(D(F),E.target,u(F))}catch($){console.error(`Error: could not resolve ${E.target} to a user for the bot DM.
|
|
161
165
|
${$ instanceof Error?$.message:String($)}
|
|
162
|
-
Tip: pass --user-id <Uxxxx> to skip the lookup.`),process.exit(1)}C=B,E.asBot=!0}else
|
|
163
|
-
Set SLACK_BOT_TOKEN=xoxb-... in ~/.config/slack-cli/.env (or your shell).`),process.exit(1);await
|
|
164
|
-
`).map((
|
|
165
|
-
`).map((
|
|
166
|
-
`).map((
|
|
166
|
+
Tip: pass --user-id <Uxxxx> to skip the lookup.`),process.exit(1)}C=B,E.asBot=!0}else{C=D(F);let B=u(F);if(B)E.cookie=B}try{await m7(C,E)}catch(B){console.error(s1(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=Q0();if(!F)console.error(`Error: slack doctor checks the bot token, but no xoxb- token was found.
|
|
167
|
+
Set SLACK_BOT_TOKEN=xoxb-... in ~/.config/slack-cli/.env (or your shell).`),process.exit(1);await g7(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"];let B=u(E);if(B)C.cookie=B;await k7(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 d7(D(E),E.target,E["channel-id"],u(E))}).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;let B=u(E);if(B)C.cookie=B;if(E["channel-id"])C.channelId=E["channel-id"];await i7(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;let C=u(F);if(C)E.cookie=C;await h7(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"];let C=u(F);if(C)E.cookie=C;await v7(D(F),E)}).command("react <target> <emoji>","Add (or --remove) an emoji reaction \u2014 a lightweight ack that doesn't grow the thread",(F)=>F.positional("target",{type:"string",demandOption:!0,describe:"#chan:ts, @user:ts, or permalink"}).positional("emoji",{type:"string",demandOption:!0,describe:"Emoji shortcode without colons (e.g. eyes, white_check_mark, hourglass)"}).option("remove",{type:"boolean",default:!1,describe:"Remove the reaction instead of adding it"}).option("channel-id",{type:"string",describe:"Raw channel ID"}),async(F)=>{let E={target:F.target,emoji:F.emoji};if(F.remove)E.remove=!0;if(F["channel-id"])E.channelId=F["channel-id"];let C=u(F);if(C)E.cookie=C;try{await p7(D(F),E)}catch(B){console.error(s1(B)),process.exit(1)}}).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"];let C=u(F);if(C)E.cookie=C;await n7(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 t7(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 S7(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 w7(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 _D(C,E.channel,B),z=await p1(C,G,$,B);console.log(`\u2713 Draft created (id: ${m(z.draft).id??"?"})`)}).command("get <id>","Show a draft",(E)=>E.positional("id",{type:"string",demandOption:!0}),async(E)=>{await x7(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 du(C,B),z=r(G.drafts).map(m).find((Q)=>String(Q.id)===E.id);if(!z)console.error(`Draft not found: ${E.id}`),process.exit(1);let Z=NF(z),Y=yD(Z,$);if(E.code!==Y)fD(E.code,Y,["--- Current draft ----------------------------",...Z.split(`
|
|
168
|
+
`).map((Q)=>` ${Q}`),"--- Replacing with ---------------------------",...$.split(`
|
|
169
|
+
`).map((Q)=>` ${Q}`),"--------------------------------\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"]);let J=await y1(C,E.id,l0(z),$,B);console.log(`\u2713 Draft updated (id: ${m(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 du(C,B),G=r($.drafts).map(m).find((Y)=>String(Y.id)===E.id);if(!G)console.error(`Draft not found: ${E.id}`),process.exit(1);let z=NF(G),Z=yD(E.id,z);if(E.code!==Z)fD(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(`
|
|
170
|
+
`).map((Y)=>` ${Y}`),"--------------------------------\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"]);await g1(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 Y1({...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 W1({...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 _F({...E.token!==void 0?{token:E.token}:{},...E.name!==void 0?{name:E.name}:{}})}).command(["ls","status"],"Show auth status",()=>{},()=>{let E=J0();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)H7(oD(process.cwd(),".slack-cli"));v8(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)=>{h8(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 X1({...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 Q1({...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 _1(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 _F({...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()}o7().catch((D)=>{console.error(D instanceof Error?D.message:String(D)),process.exit(1)});
|