@photon-ai/cli 2.3.0 → 3.0.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/LICENSE +202 -21
- package/README.md +21 -332
- package/dist/THIRD_PARTY_NOTICES.txt +26310 -0
- package/dist/bin.js +97333 -0
- package/dist/bin.js.map +7 -0
- package/package.json +86 -59
- package/dist/photon.js +0 -91
package/dist/photon.js
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{createRequire as j9}from"node:module";var W9=Object.create;var{getPrototypeOf:$9,defineProperty:w1,getOwnPropertyNames:U9}=Object;var V9=Object.prototype.hasOwnProperty;function N9(D){return this[D]}var u9,A9,TD=(D,F,B)=>{var Z=D!=null&&typeof D==="object";if(Z){var E=F?u9??=new WeakMap:A9??=new WeakMap,Y=E.get(D);if(Y)return Y}B=D!=null?W9($9(D)):{};let J=F||!D||!D.__esModule?w1(B,"default",{value:D,enumerable:!0}):B;for(let Q of U9(D))if(!V9.call(J,Q))w1(J,Q,{get:N9.bind(D,Q),enumerable:!0});if(Z)E.set(D,J);return J};var O=(D,F)=>()=>(F||D((F={exports:{}}).exports,F),F.exports);var cD=j9(import.meta.url);var b0=O((WJ,v1)=>{var t2=[],b1=0,ZD=(D,F)=>{if(b1>=F)t2.push(D)};ZD.WARN=1;ZD.INFO=2;ZD.DEBUG=3;ZD.reset=()=>{t2=[]};ZD.setDebugLevel=(D)=>{b1=D};ZD.warn=(D)=>ZD(D,ZD.WARN);ZD.info=(D)=>ZD(D,ZD.INFO);ZD.debug=(D)=>ZD(D,ZD.DEBUG);ZD.debugMessages=()=>t2;v1.exports=ZD});var g1=O(($J,h1)=>{h1.exports=({onlyFirst:D=!1}={})=>{let F=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(F,D?void 0:"g")}});var d1=O((UJ,m1)=>{var M9=g1();m1.exports=(D)=>typeof D==="string"?D.replace(M9(),""):D});var l1=O((VJ,e2)=>{var c1=(D)=>{if(Number.isNaN(D))return!1;if(D>=4352&&(D<=4447||D===9001||D===9002||11904<=D&&D<=12871&&D!==12351||12880<=D&&D<=19903||19968<=D&&D<=42182||43360<=D&&D<=43388||44032<=D&&D<=55203||63744<=D&&D<=64255||65040<=D&&D<=65049||65072<=D&&D<=65131||65281<=D&&D<=65376||65504<=D&&D<=65510||110592<=D&&D<=110593||127488<=D&&D<=127569||131072<=D&&D<=262141))return!0;return!1};e2.exports=c1;e2.exports.default=c1});var a1=O((NJ,p1)=>{p1.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var n1=O((uJ,DF)=>{var T9=d1(),I9=l1(),L9=a1(),i1=(D)=>{if(typeof D!=="string"||D.length===0)return 0;if(D=T9(D),D.length===0)return 0;D=D.replace(L9()," ");let F=0;for(let B=0;B<D.length;B++){let Z=D.codePointAt(B);if(Z<=31||Z>=127&&Z<=159)continue;if(Z>=768&&Z<=879)continue;if(Z>65535)B++;F+=I9(Z)?2:1}return F};DF.exports=i1;DF.exports.default=i1});var FF=O((AJ,t1)=>{var r1=n1();function v0(D){return D?/\u001b\[((?:\d*;){0,5}\d*)m/g:/\u001b\[(?:\d*;){0,5}\d*m/g}function ID(D){let F=v0();return(""+D).replace(F,"").split(`
|
|
3
|
-
`).reduce(function(E,Y){return r1(Y)>E?r1(Y):E},0)}function G0(D,F){return Array(F+1).join(D)}function R9(D,F,B,Z){let E=ID(D);if(F+1>=E){let Y=F-E;switch(Z){case"right":{D=G0(B,Y)+D;break}case"center":{let J=Math.ceil(Y/2),Q=Y-J;D=G0(B,Q)+D+G0(B,J);break}default:{D=D+G0(B,Y);break}}}return D}var F0={};function z0(D,F,B){F="\x1B["+F+"m",B="\x1B["+B+"m",F0[F]={set:D,to:!0},F0[B]={set:D,to:!1},F0[D]={on:F,off:B}}z0("bold",1,22);z0("italics",3,23);z0("underline",4,24);z0("inverse",7,27);z0("strikethrough",9,29);function s1(D,F){let B=F[1]?parseInt(F[1].split(";")[0]):0;if(B>=30&&B<=39||B>=90&&B<=97){D.lastForegroundAdded=F[0];return}if(B>=40&&B<=49||B>=100&&B<=107){D.lastBackgroundAdded=F[0];return}if(B===0){for(let E in D)if(Object.prototype.hasOwnProperty.call(D,E))delete D[E];return}let Z=F0[F[0]];if(Z)D[Z.set]=Z.to}function S9(D){let F=v0(!0),B=F.exec(D),Z={};while(B!==null)s1(Z,B),B=F.exec(D);return Z}function o1(D,F){let{lastBackgroundAdded:B,lastForegroundAdded:Z}=D;if(delete D.lastBackgroundAdded,delete D.lastForegroundAdded,Object.keys(D).forEach(function(E){if(D[E])F+=F0[E].off}),B&&B!="\x1B[49m")F+="\x1B[49m";if(Z&&Z!="\x1B[39m")F+="\x1B[39m";return F}function _9(D,F){let{lastBackgroundAdded:B,lastForegroundAdded:Z}=D;if(delete D.lastBackgroundAdded,delete D.lastForegroundAdded,Object.keys(D).forEach(function(E){if(D[E])F=F0[E].on+F}),B&&B!="\x1B[49m")F=B+F;if(Z&&Z!="\x1B[39m")F=Z+F;return F}function k9(D,F){if(D.length===ID(D))return D.substr(0,F);while(ID(D)>F)D=D.slice(0,-1);return D}function O9(D,F){let B=v0(!0),Z=D.split(v0()),E=0,Y=0,J="",Q,X={};while(Y<F){Q=B.exec(D);let H=Z[E];if(E++,Y+ID(H)>F)H=k9(H,F-Y);if(J+=H,Y+=ID(H),Y<F){if(!Q)break;J+=Q[0],s1(X,Q)}}return o1(X,J)}function f9(D,F,B){if(B=B||"…",ID(D)<=F)return D;F-=ID(B);let E=O9(D,F);E+=B;let Y="\x1B]8;;\x07";if(D.includes(Y)&&!E.includes(Y))E+=Y;return E}function P9(){return{chars:{top:"─","top-mid":"┬","top-left":"┌","top-right":"┐",bottom:"─","bottom-mid":"┴","bottom-left":"└","bottom-right":"┘",left:"│","left-mid":"├",mid:"─","mid-mid":"┼",right:"│","right-mid":"┤",middle:"│"},truncate:"…",colWidths:[],rowHeights:[],colAligns:[],rowAligns:[],style:{"padding-left":1,"padding-right":1,head:["red"],border:["grey"],compact:!1},head:[]}}function y9(D,F){D=D||{},F=F||P9();let B=Object.assign({},F,D);return B.chars=Object.assign({},F.chars,D.chars),B.style=Object.assign({},F.style,D.style),B}function x9(D,F){let B=[],Z=F.split(/(\s+)/g),E=[],Y=0,J;for(let Q=0;Q<Z.length;Q+=2){let X=Z[Q],H=Y+ID(X);if(Y>0&&J)H+=J.length;if(H>D){if(Y!==0)B.push(E.join(""));E=[X],Y=ID(X)}else E.push(J||"",X),Y=H;J=Z[Q+1]}if(Y)B.push(E.join(""));return B}function w9(D,F){let B=[],Z="";function E(J,Q){if(Z.length&&Q)Z+=Q;Z+=J;while(Z.length>D)B.push(Z.slice(0,D)),Z=Z.slice(D)}let Y=F.split(/(\s+)/g);for(let J=0;J<Y.length;J+=2)E(Y[J],J&&Y[J-1]);if(Z.length)B.push(Z);return B}function b9(D,F,B=!0){let Z=[];F=F.split(`
|
|
4
|
-
`);let E=B?x9:w9;for(let Y=0;Y<F.length;Y++)Z.push.apply(Z,E(D,F[Y]));return Z}function v9(D){let F={},B=[];for(let Z=0;Z<D.length;Z++){let E=_9(F,D[Z]);F=S9(E);let Y=Object.assign({},F);B.push(o1(Y,E))}return B}function h9(D,F){return["\x1B]","8",";",";",D||F,"\x07",F,"\x1B]","8",";",";","\x07"].join("")}t1.exports={strlen:ID,repeat:G0,pad:R9,truncate:f9,mergeOptions:y9,wordWrap:b9,colorizeLines:v9,hyperlink:h9}});var B3=O((jJ,F3)=>{var D3={};F3.exports=D3;var e1={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],grey:[90,39],brightRed:[91,39],brightGreen:[92,39],brightYellow:[93,39],brightBlue:[94,39],brightMagenta:[95,39],brightCyan:[96,39],brightWhite:[97,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgGray:[100,49],bgGrey:[100,49],bgBrightRed:[101,49],bgBrightGreen:[102,49],bgBrightYellow:[103,49],bgBrightBlue:[104,49],bgBrightMagenta:[105,49],bgBrightCyan:[106,49],bgBrightWhite:[107,49],blackBG:[40,49],redBG:[41,49],greenBG:[42,49],yellowBG:[43,49],blueBG:[44,49],magentaBG:[45,49],cyanBG:[46,49],whiteBG:[47,49]};Object.keys(e1).forEach(function(D){var F=e1[D],B=D3[D]=[];B.open="\x1B["+F[0]+"m",B.close="\x1B["+F[1]+"m"})});var E3=O((MJ,Z3)=>{Z3.exports=function(D,F){F=F||process.argv;var B=F.indexOf("--"),Z=/^-{1,2}/.test(D)?"":"--",E=F.indexOf(Z+D);return E!==-1&&(B===-1?!0:E<B)}});var J3=O((TJ,Y3)=>{var g9=cD("os"),UD=E3(),JD=process.env,B0=void 0;if(UD("no-color")||UD("no-colors")||UD("color=false"))B0=!1;else if(UD("color")||UD("colors")||UD("color=true")||UD("color=always"))B0=!0;if("FORCE_COLOR"in JD)B0=JD.FORCE_COLOR.length===0||parseInt(JD.FORCE_COLOR,10)!==0;function m9(D){if(D===0)return!1;return{level:D,hasBasic:!0,has256:D>=2,has16m:D>=3}}function d9(D){if(B0===!1)return 0;if(UD("color=16m")||UD("color=full")||UD("color=truecolor"))return 3;if(UD("color=256"))return 2;if(D&&!D.isTTY&&B0!==!0)return 0;var F=B0?1:0;if(process.platform==="win32"){var B=g9.release().split(".");if(Number(process.versions.node.split(".")[0])>=8&&Number(B[0])>=10&&Number(B[2])>=10586)return Number(B[2])>=14931?3:2;return 1}if("CI"in JD){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(function(E){return E in JD})||JD.CI_NAME==="codeship")return 1;return F}if("TEAMCITY_VERSION"in JD)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(JD.TEAMCITY_VERSION)?1:0;if("TERM_PROGRAM"in JD){var Z=parseInt((JD.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(JD.TERM_PROGRAM){case"iTerm.app":return Z>=3?3:2;case"Hyper":return 3;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(JD.TERM))return 2;if(/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(JD.TERM))return 1;if("COLORTERM"in JD)return 1;if(JD.TERM==="dumb")return F;return F}function BF(D){var F=d9(D);return m9(F)}Y3.exports={supportsColor:BF,stdout:BF(process.stdout),stderr:BF(process.stderr)}});var H3=O((IJ,Q3)=>{Q3.exports=function(F,B){var Z="";F=F||"Run the trap, drop the bass",F=F.split("");var E={a:["@","Ą","Ⱥ","Ʌ","Δ","Λ","Д"],b:["ß","Ɓ","Ƀ","ɮ","β","฿"],c:["©","Ȼ","Ͼ"],d:["Ð","Ɗ","Ԁ","ԁ","Ԃ","ԃ"],e:["Ë","ĕ","Ǝ","ɘ","Σ","ξ","Ҽ","੬"],f:["Ӻ"],g:["ɢ"],h:["Ħ","ƕ","Ң","Һ","Ӈ","Ԋ"],i:["༏"],j:["Ĵ"],k:["ĸ","Ҡ","Ӄ","Ԟ"],l:["Ĺ"],m:["ʍ","Ӎ","ӎ","Ԡ","ԡ","൩"],n:["Ñ","ŋ","Ɲ","Ͷ","Π","Ҋ"],o:["Ø","õ","ø","Ǿ","ʘ","Ѻ","ם","","๏"],p:["Ƿ","Ҏ"],q:["্"],r:["®","Ʀ","Ȑ","Ɍ","ʀ","Я"],s:["§","Ϟ","ϟ","Ϩ"],t:["Ł","Ŧ","ͳ"],u:["Ʊ","Ս"],v:["ט"],w:["Ш","Ѡ","Ѽ","൰"],x:["Ҳ","Ӿ","Ӽ","ӽ"],y:["¥","Ұ","Ӌ"],z:["Ƶ","ɀ"]};return F.forEach(function(Y){Y=Y.toLowerCase();var J=E[Y]||[" "],Q=Math.floor(Math.random()*J.length);if(typeof E[Y]<"u")Z+=E[Y][Q];else Z+=Y}),Z}});var q3=O((LJ,X3)=>{X3.exports=function(F,B){F=F||" he is here ";var Z={up:["̍","̎","̄","̅","̿","̑","̆","̐","͒","͗","͑","̇","̈","̊","͂","̓","̈","͊","͋","͌","̃","̂","̌","͐","̀","́","̋","̏","̒","̓","̔","̽","̉","ͣ","ͤ","ͥ","ͦ","ͧ","ͨ","ͩ","ͪ","ͫ","ͬ","ͭ","ͮ","ͯ","̾","͛","͆","̚"],down:["̖","̗","̘","̙","̜","̝","̞","̟","̠","̤","̥","̦","̩","̪","̫","̬","̭","̮","̯","̰","̱","̲","̳","̹","̺","̻","̼","ͅ","͇","͈","͉","͍","͎","͓","͔","͕","͖","͙","͚","̣"],mid:["̕","̛","̀","́","͘","̡","̢","̧","̨","̴","̵","̶","͜","͝","͞","͟","͠","͢","̸","̷","͡"," ҉"]},E=[].concat(Z.up,Z.down,Z.mid);function Y(X){var H=Math.floor(Math.random()*X);return H}function J(X){var H=!1;return E.filter(function(q){H=q===X}),H}function Q(X,H){var q="",K,C;H=H||{},H.up=typeof H.up<"u"?H.up:!0,H.mid=typeof H.mid<"u"?H.mid:!0,H.down=typeof H.down<"u"?H.down:!0,H.size=typeof H.size<"u"?H.size:"maxi",X=X.split("");for(C in X){if(J(C))continue;switch(q=q+X[C],K={up:0,down:0,mid:0},H.size){case"mini":K.up=Y(8),K.mid=Y(2),K.down=Y(8);break;case"maxi":K.up=Y(16)+3,K.mid=Y(4)+1,K.down=Y(64)+3;break;default:K.up=Y(8)+1,K.mid=Y(6)/2,K.down=Y(8)+1;break}var W=["up","mid","down"];for(var z in W){var U=W[z];for(var u=0;u<=K[U];u++)if(H[U])q=q+Z[U][Y(Z[U].length)]}}return q}return Q(F,B)}});var G3=O((RJ,K3)=>{K3.exports=function(D){return function(F,B,Z){if(F===" ")return F;switch(B%3){case 0:return D.red(F);case 1:return D.white(F);case 2:return D.blue(F)}}}});var C3=O((SJ,z3)=>{z3.exports=function(D){return function(F,B,Z){return B%2===0?F:D.inverse(F)}}});var $3=O((_J,W3)=>{W3.exports=function(D){var F=["red","yellow","green","blue","magenta"];return function(B,Z,E){if(B===" ")return B;else return D[F[Z++%F.length]](B)}}});var V3=O((kJ,U3)=>{U3.exports=function(D){var F=["underline","inverse","grey","yellow","red","green","blue","white","cyan","magenta","brightYellow","brightRed","brightGreen","brightBlue","brightWhite","brightCyan","brightMagenta"];return function(B,Z,E){return B===" "?B:D[F[Math.round(Math.random()*(F.length-2))]](B)}}});var M3=O((fJ,j3)=>{var h={};j3.exports=h;h.themes={};var c9=cD("util"),pD=h.styles=B3(),N3=Object.defineProperties,l9=new RegExp(/[\r\n]+/g);h.supportsColor=J3().supportsColor;if(typeof h.enabled>"u")h.enabled=h.supportsColor()!==!1;h.enable=function(){h.enabled=!0};h.disable=function(){h.enabled=!1};h.stripColors=h.strip=function(D){return(""+D).replace(/\x1B\[\d+m/g,"")};var OJ=h.stylize=function(F,B){if(!h.enabled)return F+"";var Z=pD[B];if(!Z&&B in h)return h[B](F);return Z.open+F+Z.close},p9=/[|\\{}()[\]^$+*?.]/g,a9=function(D){if(typeof D!=="string")throw TypeError("Expected a string");return D.replace(p9,"\\$&")};function u3(D){var F=function B(){return n9.apply(B,arguments)};return F._styles=D,F.__proto__=i9,F}var A3=function(){var D={};return pD.grey=pD.gray,Object.keys(pD).forEach(function(F){pD[F].closeRe=new RegExp(a9(pD[F].close),"g"),D[F]={get:function(){return u3(this._styles.concat(F))}}}),D}(),i9=N3(function(){},A3);function n9(){var D=Array.prototype.slice.call(arguments),F=D.map(function(J){if(J!=null&&J.constructor===String)return J;else return c9.inspect(J)}).join(" ");if(!h.enabled||!F)return F;var B=F.indexOf(`
|
|
5
|
-
`)!=-1,Z=this._styles,E=Z.length;while(E--){var Y=pD[Z[E]];if(F=Y.open+F.replace(Y.closeRe,Y.open)+Y.close,B)F=F.replace(l9,function(J){return Y.close+J+Y.open})}return F}h.setTheme=function(D){if(typeof D==="string"){console.log("colors.setTheme now only accepts an object, not a string. If you are trying to set a theme from a file, it is now your (the caller's) responsibility to require the file. The old syntax looked like colors.setTheme(__dirname + '/../themes/generic-logging.js'); The new syntax looks like colors.setTheme(require(__dirname + '/../themes/generic-logging.js'));");return}for(var F in D)(function(B){h[B]=function(Z){if(typeof D[B]==="object"){var E=Z;for(var Y in D[B])E=h[D[B][Y]](E);return E}return h[D[B]](Z)}})(F)};function r9(){var D={};return Object.keys(A3).forEach(function(F){D[F]={get:function(){return u3([F])}}}),D}var s9=function(F,B){var Z=B.split("");return Z=Z.map(F),Z.join("")};h.trap=H3();h.zalgo=q3();h.maps={};h.maps.america=G3()(h);h.maps.zebra=C3()(h);h.maps.rainbow=$3()(h);h.maps.random=V3()(h);for(ZF in h.maps)(function(D){h[D]=function(F){return s9(h.maps[D],F)}})(ZF);var ZF;N3(h,r9())});var I3=O((PJ,T3)=>{var o9=M3();T3.exports=o9});var _3=O((yJ,m0)=>{var{info:t9,debug:S3}=b0(),KD=FF();class C0{constructor(D){this.setOptions(D),this.x=null,this.y=null}setOptions(D){if(["boolean","number","bigint","string"].indexOf(typeof D)!==-1)D={content:""+D};D=D||{},this.options=D;let F=D.content;if(["boolean","number","bigint","string"].indexOf(typeof F)!==-1)this.content=String(F);else if(!F)this.content=this.options.href||"";else throw Error("Content needs to be a primitive, got: "+typeof F);if(this.colSpan=D.colSpan||1,this.rowSpan=D.rowSpan||1,this.options.href)Object.defineProperty(this,"href",{get(){return this.options.href}})}mergeTableOptions(D,F){this.cells=F;let B=this.options.chars||{},Z=D.chars,E=this.chars={};D5.forEach(function(Q){EF(B,Z,Q,E)}),this.truncate=this.options.truncate||D.truncate;let Y=this.options.style=this.options.style||{},J=D.style;EF(Y,J,"padding-left",this),EF(Y,J,"padding-right",this),this.head=Y.head||J.head,this.border=Y.border||J.border,this.fixedWidth=D.colWidths[this.x],this.lines=this.computeLines(D),this.desiredWidth=KD.strlen(this.content)+this.paddingLeft+this.paddingRight,this.desiredHeight=this.lines.length}computeLines(D){let F=D.wordWrap||D.textWrap,{wordWrap:B=F}=this.options;if(this.fixedWidth&&B){if(this.fixedWidth-=this.paddingLeft+this.paddingRight,this.colSpan){let Y=1;while(Y<this.colSpan)this.fixedWidth+=D.colWidths[this.x+Y],Y++}let{wrapOnWordBoundary:Z=!0}=D,{wrapOnWordBoundary:E=Z}=this.options;return this.wrapLines(KD.wordWrap(this.fixedWidth,this.content,E))}return this.wrapLines(this.content.split(`
|
|
6
|
-
`))}wrapLines(D){let F=KD.colorizeLines(D);if(this.href)return F.map((B)=>KD.hyperlink(this.href,B));return F}init(D){let F=this.x,B=this.y;this.widths=D.colWidths.slice(F,F+this.colSpan),this.heights=D.rowHeights.slice(B,B+this.rowSpan),this.width=this.widths.reduce(R3,-1),this.height=this.heights.reduce(R3,-1),this.hAlign=this.options.hAlign||D.colAligns[F],this.vAlign=this.options.vAlign||D.rowAligns[B],this.drawRight=F+this.colSpan==D.colWidths.length}draw(D,F){if(D=="top")return this.drawTop(this.drawRight);if(D=="bottom")return this.drawBottom(this.drawRight);let B=KD.truncate(this.content,10,this.truncate);if(!D)t9(`${this.y}-${this.x}: ${this.rowSpan-D}x${this.colSpan} Cell ${B}`);let Z=Math.max(this.height-this.lines.length,0),E;switch(this.vAlign){case"center":E=Math.ceil(Z/2);break;case"bottom":E=Z;break;default:E=0}if(D<E||D>=E+this.lines.length)return this.drawEmpty(this.drawRight,F);let Y=this.lines.length>this.height&&D+1>=this.height;return this.drawLine(D-E,this.drawRight,Y,F)}drawTop(D){let F=[];if(this.cells)this.widths.forEach(function(B,Z){F.push(this._topLeftChar(Z)),F.push(KD.repeat(this.chars[this.y==0?"top":"mid"],B))},this);else F.push(this._topLeftChar(0)),F.push(KD.repeat(this.chars[this.y==0?"top":"mid"],this.width));if(D)F.push(this.chars[this.y==0?"topRight":"rightMid"]);return this.wrapWithStyleColors("border",F.join(""))}_topLeftChar(D){let F=this.x+D,B;if(this.y==0)B=F==0?"topLeft":D==0?"topMid":"top";else if(F==0)B="leftMid";else if(B=D==0?"midMid":"bottomMid",this.cells){if(this.cells[this.y-1][F]instanceof C0.ColSpanCell)B=D==0?"topMid":"mid";if(D==0){let E=1;while(this.cells[this.y][F-E]instanceof C0.ColSpanCell)E++;if(this.cells[this.y][F-E]instanceof C0.RowSpanCell)B="leftMid"}}return this.chars[B]}wrapWithStyleColors(D,F){if(this[D]&&this[D].length)try{let B=I3();for(let Z=this[D].length-1;Z>=0;Z--)B=B[this[D][Z]];return B(F)}catch(B){return F}else return F}drawLine(D,F,B,Z){let E=this.chars[this.x==0?"left":"middle"];if(this.x&&Z&&this.cells){let K=this.cells[this.y+Z][this.x-1];while(K instanceof h0)K=this.cells[K.y][K.x-1];if(!(K instanceof g0))E=this.chars.rightMid}let Y=KD.repeat(" ",this.paddingLeft),J=F?this.chars.right:"",Q=KD.repeat(" ",this.paddingRight),X=this.lines[D],H=this.width-(this.paddingLeft+this.paddingRight);if(B)X+=this.truncate||"…";let q=KD.truncate(X,H,this.truncate);return q=KD.pad(q,H," ",this.hAlign),q=Y+q+Q,this.stylizeLine(E,q,J)}stylizeLine(D,F,B){if(D=this.wrapWithStyleColors("border",D),B=this.wrapWithStyleColors("border",B),this.y===0)F=this.wrapWithStyleColors("head",F);return D+F+B}drawBottom(D){let F=this.chars[this.x==0?"bottomLeft":"bottomMid"],B=KD.repeat(this.chars.bottom,this.width),Z=D?this.chars.bottomRight:"";return this.wrapWithStyleColors("border",F+B+Z)}drawEmpty(D,F){let B=this.chars[this.x==0?"left":"middle"];if(this.x&&F&&this.cells){let Y=this.cells[this.y+F][this.x-1];while(Y instanceof h0)Y=this.cells[Y.y][Y.x-1];if(!(Y instanceof g0))B=this.chars.rightMid}let Z=D?this.chars.right:"",E=KD.repeat(" ",this.width);return this.stylizeLine(B,E,Z)}}class h0{constructor(){}draw(D){if(typeof D==="number")S3(`${this.y}-${this.x}: 1x1 ColSpanCell`);return""}init(){}mergeTableOptions(){}}class g0{constructor(D){this.originalCell=D}init(D){let F=this.y,B=this.originalCell.y;this.cellOffset=F-B,this.offset=e9(D.rowHeights,B,this.cellOffset)}draw(D){if(D=="top")return this.originalCell.draw(this.offset,this.cellOffset);if(D=="bottom")return this.originalCell.draw("bottom");return S3(`${this.y}-${this.x}: 1x${this.colSpan} RowSpanCell for ${this.originalCell.content}`),this.originalCell.draw(this.offset+1+D)}mergeTableOptions(){}}function L3(...D){return D.filter((F)=>F!==void 0&&F!==null).shift()}function EF(D,F,B,Z){let E=B.split("-");if(E.length>1)E[1]=E[1].charAt(0).toUpperCase()+E[1].substr(1),E=E.join(""),Z[E]=L3(D[E],D[B],F[E],F[B]);else Z[B]=L3(D[B],F[B])}function e9(D,F,B){let Z=D[F];for(let E=1;E<B;E++)Z+=1+D[F+E];return Z}function R3(D,F){return D+F+1}var D5=["top","top-mid","top-left","top-right","bottom","bottom-mid","bottom-left","bottom-right","left","left-mid","mid","mid-mid","right","right-mid","middle"];m0.exports=C0;m0.exports.ColSpanCell=h0;m0.exports.RowSpanCell=g0});var f3=O((xJ,O3)=>{var{warn:F5,debug:B5}=b0(),YF=_3(),{ColSpanCell:Z5,RowSpanCell:E5}=YF;(function(){function D(W,z){if(W[z]>0)return D(W,z+1);return z}function F(W){let z={};W.forEach(function(U,u){let I=0;U.forEach(function(A){A.y=u,A.x=u?D(z,I):I;let N=A.rowSpan||1,V=A.colSpan||1;if(N>1)for(let L=0;L<V;L++)z[A.x+L]=N;I=A.x+V}),Object.keys(z).forEach((A)=>{if(z[A]--,z[A]<1)delete z[A]})})}function B(W){let z=0;return W.forEach(function(U){U.forEach(function(u){z=Math.max(z,u.x+(u.colSpan||1))})}),z}function Z(W){return W.length}function E(W,z){let U=W.y,u=W.y-1+(W.rowSpan||1),I=z.y,A=z.y-1+(z.rowSpan||1),N=!(U>A||I>u),V=W.x,L=W.x-1+(W.colSpan||1),S=z.x,R=z.x-1+(z.colSpan||1),P=!(V>R||S>L);return N&&P}function Y(W,z,U){let u=Math.min(W.length-1,U),I={x:z,y:U};for(let A=0;A<=u;A++){let N=W[A];for(let V=0;V<N.length;V++)if(E(I,N[V]))return!0}return!1}function J(W,z,U,u){for(let I=U;I<u;I++)if(Y(W,I,z))return!1;return!0}function Q(W){W.forEach(function(z,U){z.forEach(function(u){for(let I=1;I<u.rowSpan;I++){let A=new E5(u);A.x=u.x,A.y=u.y+I,A.colSpan=u.colSpan,H(A,W[U+I])}})})}function X(W){for(let z=W.length-1;z>=0;z--){let U=W[z];for(let u=0;u<U.length;u++){let I=U[u];for(let A=1;A<I.colSpan;A++){let N=new Z5;N.x=I.x+A,N.y=I.y,U.splice(u+1,0,N)}}}}function H(W,z){let U=0;while(U<z.length&&z[U].x<W.x)U++;z.splice(U,0,W)}function q(W){let z=Z(W),U=B(W);B5(`Max rows: ${z}; Max cols: ${U}`);for(let u=0;u<z;u++)for(let I=0;I<U;I++)if(!Y(W,I,u)){let A={x:I,y:u,colSpan:1,rowSpan:1};I++;while(I<U&&!Y(W,I,u))A.colSpan++,I++;let N=u+1;while(N<z&&J(W,N,A.x,A.x+A.colSpan))A.rowSpan++,N++;let V=new YF(A);V.x=A.x,V.y=A.y,F5(`Missing cell at ${V.y}-${V.x}.`),H(V,W[u])}}function K(W){return W.map(function(z){if(!Array.isArray(z)){let U=Object.keys(z)[0];if(z=z[U],Array.isArray(z))z=z.slice(),z.unshift(U);else z=[U,z]}return z.map(function(U){return new YF(U)})})}function C(W){let z=K(W);return F(z),q(z),Q(z),X(z),z}O3.exports={makeTableLayout:C,layoutTable:F,addRowSpanCells:Q,maxWidth:B,fillInTable:q,computeWidths:k3("colSpan","desiredWidth","x",1),computeHeights:k3("rowSpan","desiredHeight","y",1)}})();function k3(D,F,B,Z){return function(E,Y){let J=[],Q=[],X={};Y.forEach(function(H){H.forEach(function(q){if((q[D]||1)>1)Q.push(q);else J[q[B]]=Math.max(J[q[B]]||0,q[F]||0,Z)})}),E.forEach(function(H,q){if(typeof H==="number")J[q]=H});for(let H=Q.length-1;H>=0;H--){let q=Q[H],K=q[D],C=q[B],W=J[C],z=typeof E[C]==="number"?0:1;if(typeof W==="number"){for(let U=1;U<K;U++)if(W+=1+J[C+U],typeof E[C+U]!=="number")z++}else if(W=F==="desiredWidth"?q.desiredWidth-1:1,!X[C]||X[C]<W)X[C]=W;if(q[F]>W){let U=0;while(z>0&&q[F]>W){if(typeof E[C+U]!=="number"){let u=Math.round((q[F]-W)/z);W+=u,J[C+U]+=u,z--}U++}}}Object.assign(E,J,X);for(let H=0;H<E.length;H++)E[H]=Math.max(Z,E[H]||0)}}});var y3=O((wJ,P3)=>{var kD=b0(),Y5=FF(),JF=f3();class HF extends Array{constructor(D){super();let F=Y5.mergeOptions(D);if(Object.defineProperty(this,"options",{value:F,enumerable:F.debug}),F.debug){switch(typeof F.debug){case"boolean":kD.setDebugLevel(kD.WARN);break;case"number":kD.setDebugLevel(F.debug);break;case"string":kD.setDebugLevel(parseInt(F.debug,10));break;default:kD.setDebugLevel(kD.WARN),kD.warn(`Debug option is expected to be boolean, number, or string. Received a ${typeof F.debug}`)}Object.defineProperty(this,"messages",{get(){return kD.debugMessages()}})}}toString(){let D=this,F=this.options.head&&this.options.head.length;if(F){if(D=[this.options.head],this.length)D.push.apply(D,this)}else this.options.style.head=[];let B=JF.makeTableLayout(D);B.forEach(function(E){E.forEach(function(Y){Y.mergeTableOptions(this.options,B)},this)},this),JF.computeWidths(this.options.colWidths,B),JF.computeHeights(this.options.rowHeights,B),B.forEach(function(E){E.forEach(function(Y){Y.init(this.options)},this)},this);let Z=[];for(let E=0;E<B.length;E++){let Y=B[E],J=this.options.rowHeights[E];if(E===0||!this.options.style.compact||E==1&&F)QF(Y,"top",Z);for(let Q=0;Q<J;Q++)QF(Y,Q,Z);if(E+1==B.length)QF(Y,"bottom",Z)}return Z.join(`
|
|
7
|
-
`)}get width(){return this.toString().split(`
|
|
8
|
-
`)[0].length}}HF.reset=()=>kD.reset();function QF(D,F,B){let Z=[];D.forEach(function(Y){Z.push(Y.draw(F))});let E=Z.join("");if(E.length)B.push(E)}P3.exports=HF});var qF=O((bJ,XF)=>{var c0=process||{},x3=c0.argv||[],d0=c0.env||{},J5=!(!!d0.NO_COLOR||x3.includes("--no-color"))&&(!!d0.FORCE_COLOR||x3.includes("--color")||c0.platform==="win32"||(c0.stdout||{}).isTTY&&d0.TERM!=="dumb"||!!d0.CI),Q5=(D,F,B=D)=>(Z)=>{let E=""+Z,Y=E.indexOf(F,D.length);return~Y?D+H5(E,F,B,Y)+F:D+E+F},H5=(D,F,B,Z)=>{let E="",Y=0;do E+=D.substring(Y,Z)+B,Y=Z+F.length,Z=D.indexOf(F,Y);while(~Z);return E+D.substring(Y)},w3=(D=J5)=>{let F=D?Q5:()=>String;return{isColorSupported:D,reset:F("\x1B[0m","\x1B[0m"),bold:F("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:F("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:F("\x1B[3m","\x1B[23m"),underline:F("\x1B[4m","\x1B[24m"),inverse:F("\x1B[7m","\x1B[27m"),hidden:F("\x1B[8m","\x1B[28m"),strikethrough:F("\x1B[9m","\x1B[29m"),black:F("\x1B[30m","\x1B[39m"),red:F("\x1B[31m","\x1B[39m"),green:F("\x1B[32m","\x1B[39m"),yellow:F("\x1B[33m","\x1B[39m"),blue:F("\x1B[34m","\x1B[39m"),magenta:F("\x1B[35m","\x1B[39m"),cyan:F("\x1B[36m","\x1B[39m"),white:F("\x1B[37m","\x1B[39m"),gray:F("\x1B[90m","\x1B[39m"),bgBlack:F("\x1B[40m","\x1B[49m"),bgRed:F("\x1B[41m","\x1B[49m"),bgGreen:F("\x1B[42m","\x1B[49m"),bgYellow:F("\x1B[43m","\x1B[49m"),bgBlue:F("\x1B[44m","\x1B[49m"),bgMagenta:F("\x1B[45m","\x1B[49m"),bgCyan:F("\x1B[46m","\x1B[49m"),bgWhite:F("\x1B[47m","\x1B[49m"),blackBright:F("\x1B[90m","\x1B[39m"),redBright:F("\x1B[91m","\x1B[39m"),greenBright:F("\x1B[92m","\x1B[39m"),yellowBright:F("\x1B[93m","\x1B[39m"),blueBright:F("\x1B[94m","\x1B[39m"),magentaBright:F("\x1B[95m","\x1B[39m"),cyanBright:F("\x1B[96m","\x1B[39m"),whiteBright:F("\x1B[97m","\x1B[39m"),bgBlackBright:F("\x1B[100m","\x1B[49m"),bgRedBright:F("\x1B[101m","\x1B[49m"),bgGreenBright:F("\x1B[102m","\x1B[49m"),bgYellowBright:F("\x1B[103m","\x1B[49m"),bgBlueBright:F("\x1B[104m","\x1B[49m"),bgMagentaBright:F("\x1B[105m","\x1B[49m"),bgCyanBright:F("\x1B[106m","\x1B[49m"),bgWhiteBright:F("\x1B[107m","\x1B[49m")}};XF.exports=w3();XF.exports.createColors=w3});var g3=O((hJ,h3)=>{class v3{constructor(){this.max=1000,this.map=new Map}get(D){let F=this.map.get(D);if(F===void 0)return;else return this.map.delete(D),this.map.set(D,F),F}delete(D){return this.map.delete(D)}set(D,F){if(!this.delete(D)&&F!==void 0){if(this.map.size>=this.max){let Z=this.map.keys().next().value;this.delete(Z)}this.map.set(D,F)}return this}}h3.exports=v3});var l0=O((gJ,m3)=>{var X5=Object.freeze({loose:!0}),q5=Object.freeze({}),K5=(D)=>{if(!D)return q5;if(typeof D!=="object")return X5;return D};m3.exports=K5});var p0=O((mJ,d3)=>{var G5=Number.MAX_SAFE_INTEGER||9007199254740991,z5=["major","premajor","minor","preminor","patch","prepatch","prerelease"];d3.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:G5,RELEASE_TYPES:z5,SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var W0=O((dJ,c3)=>{var C5=typeof process==="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...D)=>console.error("SEMVER",...D):()=>{};c3.exports=C5});var a0=O((LD,l3)=>{var{MAX_SAFE_COMPONENT_LENGTH:KF,MAX_SAFE_BUILD_LENGTH:W5,MAX_LENGTH:$5}=p0(),U5=W0();LD=l3.exports={};var V5=LD.re=[],N5=LD.safeRe=[],M=LD.src=[],u5=LD.safeSrc=[],T=LD.t={},A5=0,GF="[a-zA-Z0-9-]",j5=[["\\s",1],["\\d",$5],[GF,W5]],M5=(D)=>{for(let[F,B]of j5)D=D.split(`${F}*`).join(`${F}{0,${B}}`).split(`${F}+`).join(`${F}{1,${B}}`);return D},y=(D,F,B)=>{let Z=M5(F),E=A5++;U5(D,E,F),T[D]=E,M[E]=F,u5[E]=Z,V5[E]=new RegExp(F,B?"g":void 0),N5[E]=new RegExp(Z,B?"g":void 0)};y("NUMERICIDENTIFIER","0|[1-9]\\d*");y("NUMERICIDENTIFIERLOOSE","\\d+");y("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${GF}*`);y("MAINVERSION",`(${M[T.NUMERICIDENTIFIER]})\\.(${M[T.NUMERICIDENTIFIER]})\\.(${M[T.NUMERICIDENTIFIER]})`);y("MAINVERSIONLOOSE",`(${M[T.NUMERICIDENTIFIERLOOSE]})\\.(${M[T.NUMERICIDENTIFIERLOOSE]})\\.(${M[T.NUMERICIDENTIFIERLOOSE]})`);y("PRERELEASEIDENTIFIER",`(?:${M[T.NONNUMERICIDENTIFIER]}|${M[T.NUMERICIDENTIFIER]})`);y("PRERELEASEIDENTIFIERLOOSE",`(?:${M[T.NONNUMERICIDENTIFIER]}|${M[T.NUMERICIDENTIFIERLOOSE]})`);y("PRERELEASE",`(?:-(${M[T.PRERELEASEIDENTIFIER]}(?:\\.${M[T.PRERELEASEIDENTIFIER]})*))`);y("PRERELEASELOOSE",`(?:-?(${M[T.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${M[T.PRERELEASEIDENTIFIERLOOSE]})*))`);y("BUILDIDENTIFIER",`${GF}+`);y("BUILD",`(?:\\+(${M[T.BUILDIDENTIFIER]}(?:\\.${M[T.BUILDIDENTIFIER]})*))`);y("FULLPLAIN",`v?${M[T.MAINVERSION]}${M[T.PRERELEASE]}?${M[T.BUILD]}?`);y("FULL",`^${M[T.FULLPLAIN]}$`);y("LOOSEPLAIN",`[v=\\s]*${M[T.MAINVERSIONLOOSE]}${M[T.PRERELEASELOOSE]}?${M[T.BUILD]}?`);y("LOOSE",`^${M[T.LOOSEPLAIN]}$`);y("GTLT","((?:<|>)?=?)");y("XRANGEIDENTIFIERLOOSE",`${M[T.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);y("XRANGEIDENTIFIER",`${M[T.NUMERICIDENTIFIER]}|x|X|\\*`);y("XRANGEPLAIN",`[v=\\s]*(${M[T.XRANGEIDENTIFIER]})(?:\\.(${M[T.XRANGEIDENTIFIER]})(?:\\.(${M[T.XRANGEIDENTIFIER]})(?:${M[T.PRERELEASE]})?${M[T.BUILD]}?)?)?`);y("XRANGEPLAINLOOSE",`[v=\\s]*(${M[T.XRANGEIDENTIFIERLOOSE]})(?:\\.(${M[T.XRANGEIDENTIFIERLOOSE]})(?:\\.(${M[T.XRANGEIDENTIFIERLOOSE]})(?:${M[T.PRERELEASELOOSE]})?${M[T.BUILD]}?)?)?`);y("XRANGE",`^${M[T.GTLT]}\\s*${M[T.XRANGEPLAIN]}$`);y("XRANGELOOSE",`^${M[T.GTLT]}\\s*${M[T.XRANGEPLAINLOOSE]}$`);y("COERCEPLAIN",`(^|[^\\d])(\\d{1,${KF}})(?:\\.(\\d{1,${KF}}))?(?:\\.(\\d{1,${KF}}))?`);y("COERCE",`${M[T.COERCEPLAIN]}(?:$|[^\\d])`);y("COERCEFULL",M[T.COERCEPLAIN]+`(?:${M[T.PRERELEASE]})?(?:${M[T.BUILD]})?(?:$|[^\\d])`);y("COERCERTL",M[T.COERCE],!0);y("COERCERTLFULL",M[T.COERCEFULL],!0);y("LONETILDE","(?:~>?)");y("TILDETRIM",`(\\s*)${M[T.LONETILDE]}\\s+`,!0);LD.tildeTrimReplace="$1~";y("TILDE",`^${M[T.LONETILDE]}${M[T.XRANGEPLAIN]}$`);y("TILDELOOSE",`^${M[T.LONETILDE]}${M[T.XRANGEPLAINLOOSE]}$`);y("LONECARET","(?:\\^)");y("CARETTRIM",`(\\s*)${M[T.LONECARET]}\\s+`,!0);LD.caretTrimReplace="$1^";y("CARET",`^${M[T.LONECARET]}${M[T.XRANGEPLAIN]}$`);y("CARETLOOSE",`^${M[T.LONECARET]}${M[T.XRANGEPLAINLOOSE]}$`);y("COMPARATORLOOSE",`^${M[T.GTLT]}\\s*(${M[T.LOOSEPLAIN]})$|^$`);y("COMPARATOR",`^${M[T.GTLT]}\\s*(${M[T.FULLPLAIN]})$|^$`);y("COMPARATORTRIM",`(\\s*)${M[T.GTLT]}\\s*(${M[T.LOOSEPLAIN]}|${M[T.XRANGEPLAIN]})`,!0);LD.comparatorTrimReplace="$1$2$3";y("HYPHENRANGE",`^\\s*(${M[T.XRANGEPLAIN]})\\s+-\\s+(${M[T.XRANGEPLAIN]})\\s*$`);y("HYPHENRANGELOOSE",`^\\s*(${M[T.XRANGEPLAINLOOSE]})\\s+-\\s+(${M[T.XRANGEPLAINLOOSE]})\\s*$`);y("STAR","(<|>)?=?\\s*\\*");y("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");y("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var n3=O((cJ,i3)=>{var p3=/^[0-9]+$/,a3=(D,F)=>{if(typeof D==="number"&&typeof F==="number")return D===F?0:D<F?-1:1;let B=p3.test(D),Z=p3.test(F);if(B&&Z)D=+D,F=+F;return D===F?0:B&&!Z?-1:Z&&!B?1:D<F?-1:1},T5=(D,F)=>a3(F,D);i3.exports={compareIdentifiers:a3,rcompareIdentifiers:T5}});var $0=O((lJ,s3)=>{var i0=W0(),{MAX_LENGTH:r3,MAX_SAFE_INTEGER:n0}=p0(),{safeRe:r0,t:s0}=a0(),I5=l0(),{compareIdentifiers:zF}=n3(),L5=(D,F)=>{let B=F.split(".");if(B.length>D.length)return!1;for(let Z=0;Z<B.length;Z++)if(zF(D[Z],B[Z])!==0)return!1;return!0};class VD{constructor(D,F){if(F=I5(F),D instanceof VD)if(D.loose===!!F.loose&&D.includePrerelease===!!F.includePrerelease)return D;else D=D.version;else if(typeof D!=="string")throw TypeError(`Invalid version. Must be a string. Got type "${typeof D}".`);if(D.length>r3)throw TypeError(`version is longer than ${r3} characters`);i0("SemVer",D,F),this.options=F,this.loose=!!F.loose,this.includePrerelease=!!F.includePrerelease;let B=D.trim().match(F.loose?r0[s0.LOOSE]:r0[s0.FULL]);if(!B)throw TypeError(`Invalid Version: ${D}`);if(this.raw=D,this.major=+B[1],this.minor=+B[2],this.patch=+B[3],this.major>n0||this.major<0)throw TypeError("Invalid major version");if(this.minor>n0||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>n0||this.patch<0)throw TypeError("Invalid patch version");if(!B[4])this.prerelease=[];else this.prerelease=B[4].split(".").map((Z)=>{if(/^[0-9]+$/.test(Z)){let E=+Z;if(E>=0&&E<n0)return E}return Z});this.build=B[5]?B[5].split("."):[],this.format()}format(){if(this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length)this.version+=`-${this.prerelease.join(".")}`;return this.version}toString(){return this.version}compare(D){if(i0("SemVer.compare",this.version,this.options,D),!(D instanceof VD)){if(typeof D==="string"&&D===this.version)return 0;D=new VD(D,this.options)}if(D.version===this.version)return 0;return this.compareMain(D)||this.comparePre(D)}compareMain(D){if(!(D instanceof VD))D=new VD(D,this.options);if(this.major<D.major)return-1;if(this.major>D.major)return 1;if(this.minor<D.minor)return-1;if(this.minor>D.minor)return 1;if(this.patch<D.patch)return-1;if(this.patch>D.patch)return 1;return 0}comparePre(D){if(!(D instanceof VD))D=new VD(D,this.options);if(this.prerelease.length&&!D.prerelease.length)return-1;else if(!this.prerelease.length&&D.prerelease.length)return 1;else if(!this.prerelease.length&&!D.prerelease.length)return 0;let F=0;do{let B=this.prerelease[F],Z=D.prerelease[F];if(i0("prerelease compare",F,B,Z),B===void 0&&Z===void 0)return 0;else if(Z===void 0)return 1;else if(B===void 0)return-1;else if(B===Z)continue;else return zF(B,Z)}while(++F)}compareBuild(D){if(!(D instanceof VD))D=new VD(D,this.options);let F=0;do{let B=this.build[F],Z=D.build[F];if(i0("build compare",F,B,Z),B===void 0&&Z===void 0)return 0;else if(Z===void 0)return 1;else if(B===void 0)return-1;else if(B===Z)continue;else return zF(B,Z)}while(++F)}inc(D,F,B){if(D.startsWith("pre")){if(!F&&B===!1)throw Error("invalid increment argument: identifier is empty");if(F){let Z=`-${F}`.match(this.options.loose?r0[s0.PRERELEASELOOSE]:r0[s0.PRERELEASE]);if(!Z||Z[1]!==F)throw Error(`invalid identifier: ${F}`)}}switch(D){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",F,B);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",F,B);break;case"prepatch":this.prerelease.length=0,this.inc("patch",F,B),this.inc("pre",F,B);break;case"prerelease":if(this.prerelease.length===0)this.inc("patch",F,B);this.inc("pre",F,B);break;case"release":if(this.prerelease.length===0)throw Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":if(this.minor!==0||this.patch!==0||this.prerelease.length===0)this.major++;this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":if(this.patch!==0||this.prerelease.length===0)this.minor++;this.patch=0,this.prerelease=[];break;case"patch":if(this.prerelease.length===0)this.patch++;this.prerelease=[];break;case"pre":{let Z=Number(B)?1:0;if(this.prerelease.length===0)this.prerelease=[Z];else{let E=this.prerelease.length;while(--E>=0)if(typeof this.prerelease[E]==="number")this.prerelease[E]++,E=-2;if(E===-1){if(F===this.prerelease.join(".")&&B===!1)throw Error("invalid increment argument: identifier already exists");this.prerelease.push(Z)}}if(F){let E=[F,Z];if(B===!1)E=[F];if(L5(this.prerelease,F)){let Y=this.prerelease[F.split(".").length];if(isNaN(Y))this.prerelease=E}else this.prerelease=E}break}default:throw Error(`invalid increment argument: ${D}`)}if(this.raw=this.format(),this.build.length)this.raw+=`+${this.build.join(".")}`;return this}}s3.exports=VD});var aD=O((pJ,t3)=>{var o3=$0(),R5=(D,F,B)=>new o3(D,B).compare(new o3(F,B));t3.exports=R5});var D8=O((aJ,e3)=>{var S5=aD(),_5=(D,F,B)=>S5(D,F,B)===0;e3.exports=_5});var B8=O((iJ,F8)=>{var k5=aD(),O5=(D,F,B)=>k5(D,F,B)!==0;F8.exports=O5});var CF=O((nJ,Z8)=>{var f5=aD(),P5=(D,F,B)=>f5(D,F,B)>0;Z8.exports=P5});var Y8=O((rJ,E8)=>{var y5=aD(),x5=(D,F,B)=>y5(D,F,B)>=0;E8.exports=x5});var Q8=O((sJ,J8)=>{var w5=aD(),b5=(D,F,B)=>w5(D,F,B)<0;J8.exports=b5});var X8=O((oJ,H8)=>{var v5=aD(),h5=(D,F,B)=>v5(D,F,B)<=0;H8.exports=h5});var K8=O((tJ,q8)=>{var g5=D8(),m5=B8(),d5=CF(),c5=Y8(),l5=Q8(),p5=X8(),a5=(D,F,B,Z)=>{switch(F){case"===":if(typeof D==="object")D=D.version;if(typeof B==="object")B=B.version;return D===B;case"!==":if(typeof D==="object")D=D.version;if(typeof B==="object")B=B.version;return D!==B;case"":case"=":case"==":return g5(D,B,Z);case"!=":return m5(D,B,Z);case">":return d5(D,B,Z);case">=":return c5(D,B,Z);case"<":return l5(D,B,Z);case"<=":return p5(D,B,Z);default:throw TypeError(`Invalid operator: ${F}`)}};q8.exports=a5});var V8=O((eJ,U8)=>{var U0=Symbol("SemVer ANY");class o0{static get ANY(){return U0}constructor(D,F){if(F=G8(F),D instanceof o0)if(D.loose===!!F.loose)return D;else D=D.value;if(D=D.trim().split(/\s+/).join(" "),$F("comparator",D,F),this.options=F,this.loose=!!F.loose,this.parse(D),this.semver===U0)this.value="";else this.value=this.operator+this.semver.version;$F("comp",this)}parse(D){let F=this.options.loose?z8[C8.COMPARATORLOOSE]:z8[C8.COMPARATOR],B=D.match(F);if(!B)throw TypeError(`Invalid comparator: ${D}`);if(this.operator=B[1]!==void 0?B[1]:"",this.operator==="=")this.operator="";if(!B[2])this.semver=U0;else this.semver=new W8(B[2],this.options.loose)}toString(){return this.value}test(D){if($F("Comparator.test",D,this.options.loose),this.semver===U0||D===U0)return!0;if(typeof D==="string")try{D=new W8(D,this.options)}catch(F){return!1}return WF(D,this.operator,this.semver,this.options)}intersects(D,F){if(!(D instanceof o0))throw TypeError("a Comparator is required");if(this.operator===""){if(this.value==="")return!0;return new $8(D.value,F).test(this.value)}else if(D.operator===""){if(D.value==="")return!0;return new $8(this.value,F).test(D.semver)}if(F=G8(F),F.includePrerelease&&(this.value==="<0.0.0-0"||D.value==="<0.0.0-0"))return!1;if(!F.includePrerelease&&(this.value.startsWith("<0.0.0")||D.value.startsWith("<0.0.0")))return!1;if(this.operator.startsWith(">")&&D.operator.startsWith(">"))return!0;if(this.operator.startsWith("<")&&D.operator.startsWith("<"))return!0;if(this.semver.version===D.semver.version&&this.operator.includes("=")&&D.operator.includes("="))return!0;if(WF(this.semver,"<",D.semver,F)&&this.operator.startsWith(">")&&D.operator.startsWith("<"))return!0;if(WF(this.semver,">",D.semver,F)&&this.operator.startsWith("<")&&D.operator.startsWith(">"))return!0;return!1}}U8.exports=o0;var G8=l0(),{safeRe:z8,t:C8}=a0(),WF=K8(),$F=W0(),W8=$0(),$8=UF()});var UF=O((DQ,j8)=>{var i5=/\s+/g;class V0{constructor(D,F){if(F=r5(F),D instanceof V0)if(D.loose===!!F.loose&&D.includePrerelease===!!F.includePrerelease)return D;else return new V0(D.raw,F);if(D instanceof VF)return this.raw=D.value,this.set=[[D]],this.formatted=void 0,this;if(this.options=F,this.loose=!!F.loose,this.includePrerelease=!!F.includePrerelease,this.raw=D.trim().replace(i5," "),this.set=this.raw.split("||").map((B)=>this.parseRange(B.trim())).filter((B)=>B.length),!this.set.length)throw TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let B=this.set[0];if(this.set=this.set.filter((Z)=>!u8(Z[0])),this.set.length===0)this.set=[B];else if(this.set.length>1){for(let Z of this.set)if(Z.length===1&&E7(Z[0])){this.set=[Z];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let D=0;D<this.set.length;D++){if(D>0)this.formatted+="||";let F=this.set[D];for(let B=0;B<F.length;B++){if(B>0)this.formatted+=" ";this.formatted+=F[B].toString().trim()}}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(D){D=D.replace(Z7,"");let B=((this.options.includePrerelease&&F7)|(this.options.loose&&B7))+":"+D,Z=N8.get(B);if(Z)return Z;let E=this.options.loose,Y=E?QD[e.HYPHENRANGELOOSE]:QD[e.HYPHENRANGE];D=D.replace(Y,W7(this.options.includePrerelease)),i("hyphen replace",D),D=D.replace(QD[e.COMPARATORTRIM],t5),i("comparator trim",D),D=D.replace(QD[e.TILDETRIM],e5),i("tilde trim",D),D=D.replace(QD[e.CARETTRIM],D7),i("caret trim",D);let J=D.split(" ").map((q)=>Y7(q,this.options)).join(" ").split(/\s+/).map((q)=>C7(q,this.options));if(E)J=J.filter((q)=>{return i("loose invalid filter",q,this.options),!!q.match(QD[e.COMPARATORLOOSE])});i("range list",J);let Q=new Map,X=J.map((q)=>new VF(q,this.options));for(let q of X){if(u8(q))return[q];Q.set(q.value,q)}if(Q.size>1&&Q.has(""))Q.delete("");let H=[...Q.values()];return N8.set(B,H),H}intersects(D,F){if(!(D instanceof V0))throw TypeError("a Range is required");return this.set.some((B)=>{return A8(B,F)&&D.set.some((Z)=>{return A8(Z,F)&&B.every((E)=>{return Z.every((Y)=>{return E.intersects(Y,F)})})})})}test(D){if(!D)return!1;if(typeof D==="string")try{D=new s5(D,this.options)}catch(F){return!1}for(let F=0;F<this.set.length;F++)if($7(this.set[F],D,this.options))return!0;return!1}}j8.exports=V0;var n5=g3(),N8=new n5,r5=l0(),VF=V8(),i=W0(),s5=$0(),{safeRe:QD,src:o5,t:e,comparatorTrimReplace:t5,tildeTrimReplace:e5,caretTrimReplace:D7}=a0(),{FLAG_INCLUDE_PRERELEASE:F7,FLAG_LOOSE:B7}=p0(),Z7=new RegExp(o5[e.BUILD],"g"),u8=(D)=>D.value==="<0.0.0-0",E7=(D)=>D.value==="",A8=(D,F)=>{let B=!0,Z=D.slice(),E=Z.pop();while(B&&Z.length)B=Z.every((Y)=>{return E.intersects(Y,F)}),E=Z.pop();return B},Y7=(D,F)=>{return D=D.replace(QD[e.BUILD],""),i("comp",D,F),D=X7(D,F),i("caret",D),D=Q7(D,F),i("tildes",D),D=K7(D,F),i("xrange",D),D=z7(D,F),i("stars",D),D},s=(D)=>!D||D.toLowerCase()==="x"||D==="*",J7=(D,F,B)=>s(D)&&!s(F)||s(F)&&B&&!s(B),Q7=(D,F)=>{return D.trim().split(/\s+/).map((B)=>H7(B,F)).join(" ")},H7=(D,F)=>{let B=F.loose?QD[e.TILDELOOSE]:QD[e.TILDE],Z=F.includePrerelease?"-0":"";return D.replace(B,(E,Y,J,Q,X)=>{i("tilde",D,E,Y,J,Q,X);let H;if(s(Y))H="";else if(s(J))H=`>=${Y}.0.0${Z} <${+Y+1}.0.0-0`;else if(s(Q))H=`>=${Y}.${J}.0${Z} <${Y}.${+J+1}.0-0`;else if(X)i("replaceTilde pr",X),H=`>=${Y}.${J}.${Q}-${X} <${Y}.${+J+1}.0-0`;else H=`>=${Y}.${J}.${Q} <${Y}.${+J+1}.0-0`;return i("tilde return",H),H})},X7=(D,F)=>{return D.trim().split(/\s+/).map((B)=>q7(B,F)).join(" ")},q7=(D,F)=>{i("caret",D,F);let B=F.loose?QD[e.CARETLOOSE]:QD[e.CARET],Z=F.includePrerelease?"-0":"";return D.replace(B,(E,Y,J,Q,X)=>{i("caret",D,E,Y,J,Q,X);let H;if(s(Y))H="";else if(s(J))H=`>=${Y}.0.0${Z} <${+Y+1}.0.0-0`;else if(s(Q))if(Y==="0")H=`>=${Y}.${J}.0${Z} <${Y}.${+J+1}.0-0`;else H=`>=${Y}.${J}.0${Z} <${+Y+1}.0.0-0`;else if(X)if(i("replaceCaret pr",X),Y==="0")if(J==="0")H=`>=${Y}.${J}.${Q}-${X} <${Y}.${J}.${+Q+1}-0`;else H=`>=${Y}.${J}.${Q}-${X} <${Y}.${+J+1}.0-0`;else H=`>=${Y}.${J}.${Q}-${X} <${+Y+1}.0.0-0`;else if(i("no pr"),Y==="0")if(J==="0")H=`>=${Y}.${J}.${Q} <${Y}.${J}.${+Q+1}-0`;else H=`>=${Y}.${J}.${Q} <${Y}.${+J+1}.0-0`;else H=`>=${Y}.${J}.${Q} <${+Y+1}.0.0-0`;return i("caret return",H),H})},K7=(D,F)=>{return i("replaceXRanges",D,F),D.split(/\s+/).map((B)=>G7(B,F)).join(" ")},G7=(D,F)=>{D=D.trim();let B=F.loose?QD[e.XRANGELOOSE]:QD[e.XRANGE];return D.replace(B,(Z,E,Y,J,Q,X)=>{if(i("xRange",D,Z,E,Y,J,Q,X),J7(Y,J,Q))return D;let H=s(Y),q=H||s(J),K=q||s(Q),C=K;if(E==="="&&C)E="";if(X=F.includePrerelease?"-0":"",H)if(E===">"||E==="<")Z="<0.0.0-0";else Z="*";else if(E&&C){if(q)J=0;if(Q=0,E===">")if(E=">=",q)Y=+Y+1,J=0,Q=0;else J=+J+1,Q=0;else if(E==="<=")if(E="<",q)Y=+Y+1;else J=+J+1;if(E==="<")X="-0";Z=`${E+Y}.${J}.${Q}${X}`}else if(q)Z=`>=${Y}.0.0${X} <${+Y+1}.0.0-0`;else if(K)Z=`>=${Y}.${J}.0${X} <${Y}.${+J+1}.0-0`;return i("xRange return",Z),Z})},z7=(D,F)=>{return i("replaceStars",D,F),D.trim().replace(QD[e.STAR],"")},C7=(D,F)=>{return i("replaceGTE0",D,F),D.trim().replace(QD[F.includePrerelease?e.GTE0PRE:e.GTE0],"")},W7=(D)=>(F,B,Z,E,Y,J,Q,X,H,q,K,C)=>{if(s(Z))B="";else if(s(E))B=`>=${Z}.0.0${D?"-0":""}`;else if(s(Y))B=`>=${Z}.${E}.0${D?"-0":""}`;else if(J)B=`>=${B}`;else B=`>=${B}${D?"-0":""}`;if(s(H))X="";else if(s(q))X=`<${+H+1}.0.0-0`;else if(s(K))X=`<${H}.${+q+1}.0-0`;else if(C)X=`<=${H}.${q}.${K}-${C}`;else if(D)X=`<${H}.${q}.${+K+1}-0`;else X=`<=${X}`;return`${B} ${X}`.trim()},$7=(D,F,B)=>{for(let Z=0;Z<D.length;Z++)if(!D[Z].test(F))return!1;if(F.prerelease.length&&!B.includePrerelease){for(let Z=0;Z<D.length;Z++){if(i(D[Z].semver),D[Z].semver===VF.ANY)continue;if(D[Z].semver.prerelease.length>0){let E=D[Z].semver;if(E.major===F.major&&E.minor===F.minor&&E.patch===F.patch)return!0}}return!1}return!0}});var T8=O((FQ,M8)=>{var U7=UF(),V7=(D,F,B)=>{try{F=new U7(F,B)}catch(Z){return!1}return F.test(D)};M8.exports=V7});var R8=O((BQ,L8)=>{var I8=$0(),N7=(D,F,B=!1)=>{if(D instanceof I8)return D;try{return new I8(D,F)}catch(Z){if(!B)return null;throw Z}};L8.exports=N7});var _8=O((ZQ,S8)=>{var u7=R8(),A7=(D,F)=>{let B=u7(D,F);return B?B.version:null};S8.exports=A7});var N0=O((v7)=>{class jF extends Error{constructor(D,F,B){super(B);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=F,this.exitCode=D,this.nestedError=void 0}}class v8 extends jF{constructor(D){super(1,"commander.invalidArgument",D);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}v7.CommanderError=jF;v7.InvalidArgumentError=v8});var e0=O((c7)=>{var{InvalidArgumentError:m7}=N0();class h8{constructor(D,F){switch(this.description=F||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,D[0]){case"<":this.required=!0,this._name=D.slice(1,-1);break;case"[":this.required=!1,this._name=D.slice(1,-1);break;default:this.required=!0,this._name=D;break}if(this._name.endsWith("..."))this.variadic=!0,this._name=this._name.slice(0,-3)}name(){return this._name}_collectValue(D,F){if(F===this.defaultValue||!Array.isArray(F))return[D];return F.push(D),F}default(D,F){return this.defaultValue=D,this.defaultValueDescription=F,this}argParser(D){return this.parseArg=D,this}choices(D){return this.argChoices=D.slice(),this.parseArg=(F,B)=>{if(!this.argChoices.includes(F))throw new m7(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(F,B);return F},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}}function d7(D){let F=D.name()+(D.variadic===!0?"...":"");return D.required?"<"+F+">":"["+F+"]"}c7.Argument=h8;c7.humanReadableArgName=d7});var MF=O((i7)=>{var{humanReadableArgName:a7}=e0();class g8{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(D){this.helpWidth=this.helpWidth??D.helpWidth??80}visibleCommands(D){let F=D.commands.filter((Z)=>!Z._hidden),B=D._getHelpCommand();if(B&&!B._hidden)F.push(B);if(this.sortSubcommands)F.sort((Z,E)=>{return Z.name().localeCompare(E.name())});return F}compareOptions(D,F){let B=(Z)=>{return Z.short?Z.short.replace(/^-/,""):Z.long.replace(/^--/,"")};return B(D).localeCompare(B(F))}visibleOptions(D){let F=D.options.filter((Z)=>!Z.hidden),B=D._getHelpOption();if(B&&!B.hidden){let Z=B.short&&D._findOption(B.short),E=B.long&&D._findOption(B.long);if(!Z&&!E)F.push(B);else if(B.long&&!E)F.push(D.createOption(B.long,B.description));else if(B.short&&!Z)F.push(D.createOption(B.short,B.description))}if(this.sortOptions)F.sort(this.compareOptions);return F}visibleGlobalOptions(D){if(!this.showGlobalOptions)return[];let F=[];for(let B=D.parent;B;B=B.parent){let Z=B.options.filter((E)=>!E.hidden);F.push(...Z)}if(this.sortOptions)F.sort(this.compareOptions);return F}visibleArguments(D){if(D._argsDescription)D.registeredArguments.forEach((F)=>{F.description=F.description||D._argsDescription[F.name()]||""});if(D.registeredArguments.find((F)=>F.description))return D.registeredArguments;return[]}subcommandTerm(D){let F=D.registeredArguments.map((B)=>a7(B)).join(" ");return D._name+(D._aliases[0]?"|"+D._aliases[0]:"")+(D.options.length?" [options]":"")+(F?" "+F:"")}optionTerm(D){return D.flags}argumentTerm(D){return D.name()}longestSubcommandTermLength(D,F){return F.visibleCommands(D).reduce((B,Z)=>{return Math.max(B,this.displayWidth(F.styleSubcommandTerm(F.subcommandTerm(Z))))},0)}longestOptionTermLength(D,F){return F.visibleOptions(D).reduce((B,Z)=>{return Math.max(B,this.displayWidth(F.styleOptionTerm(F.optionTerm(Z))))},0)}longestGlobalOptionTermLength(D,F){return F.visibleGlobalOptions(D).reduce((B,Z)=>{return Math.max(B,this.displayWidth(F.styleOptionTerm(F.optionTerm(Z))))},0)}longestArgumentTermLength(D,F){return F.visibleArguments(D).reduce((B,Z)=>{return Math.max(B,this.displayWidth(F.styleArgumentTerm(F.argumentTerm(Z))))},0)}commandUsage(D){let F=D._name;if(D._aliases[0])F=F+"|"+D._aliases[0];let B="";for(let Z=D.parent;Z;Z=Z.parent)B=Z.name()+" "+B;return B+F+" "+D.usage()}commandDescription(D){return D.description()}subcommandDescription(D){return D.summary()||D.description()}optionDescription(D){let F=[];if(D.argChoices)F.push(`choices: ${D.argChoices.map((B)=>JSON.stringify(B)).join(", ")}`);if(D.defaultValue!==void 0){if(D.required||D.optional||D.isBoolean()&&typeof D.defaultValue==="boolean")F.push(`default: ${D.defaultValueDescription||JSON.stringify(D.defaultValue)}`)}if(D.presetArg!==void 0&&D.optional)F.push(`preset: ${JSON.stringify(D.presetArg)}`);if(D.envVar!==void 0)F.push(`env: ${D.envVar}`);if(F.length>0){let B=`(${F.join(", ")})`;if(D.description)return`${D.description} ${B}`;return B}return D.description}argumentDescription(D){let F=[];if(D.argChoices)F.push(`choices: ${D.argChoices.map((B)=>JSON.stringify(B)).join(", ")}`);if(D.defaultValue!==void 0)F.push(`default: ${D.defaultValueDescription||JSON.stringify(D.defaultValue)}`);if(F.length>0){let B=`(${F.join(", ")})`;if(D.description)return`${D.description} ${B}`;return B}return D.description}formatItemList(D,F,B){if(F.length===0)return[];return[B.styleTitle(D),...F,""]}groupItems(D,F,B){let Z=new Map;return D.forEach((E)=>{let Y=B(E);if(!Z.has(Y))Z.set(Y,[])}),F.forEach((E)=>{let Y=B(E);if(!Z.has(Y))Z.set(Y,[]);Z.get(Y).push(E)}),Z}formatHelp(D,F){let B=F.padWidth(D,F),Z=F.helpWidth??80;function E(q,K){return F.formatItem(q,B,K,F)}let Y=[`${F.styleTitle("Usage:")} ${F.styleUsage(F.commandUsage(D))}`,""],J=F.commandDescription(D);if(J.length>0)Y=Y.concat([F.boxWrap(F.styleCommandDescription(J),Z),""]);let Q=F.visibleArguments(D).map((q)=>{return E(F.styleArgumentTerm(F.argumentTerm(q)),F.styleArgumentDescription(F.argumentDescription(q)))});if(Y=Y.concat(this.formatItemList("Arguments:",Q,F)),this.groupItems(D.options,F.visibleOptions(D),(q)=>q.helpGroupHeading??"Options:").forEach((q,K)=>{let C=q.map((W)=>{return E(F.styleOptionTerm(F.optionTerm(W)),F.styleOptionDescription(F.optionDescription(W)))});Y=Y.concat(this.formatItemList(K,C,F))}),F.showGlobalOptions){let q=F.visibleGlobalOptions(D).map((K)=>{return E(F.styleOptionTerm(F.optionTerm(K)),F.styleOptionDescription(F.optionDescription(K)))});Y=Y.concat(this.formatItemList("Global Options:",q,F))}return this.groupItems(D.commands,F.visibleCommands(D),(q)=>q.helpGroup()||"Commands:").forEach((q,K)=>{let C=q.map((W)=>{return E(F.styleSubcommandTerm(F.subcommandTerm(W)),F.styleSubcommandDescription(F.subcommandDescription(W)))});Y=Y.concat(this.formatItemList(K,C,F))}),Y.join(`
|
|
9
|
-
`)}displayWidth(D){return m8(D).length}styleTitle(D){return D}styleUsage(D){return D.split(" ").map((F)=>{if(F==="[options]")return this.styleOptionText(F);if(F==="[command]")return this.styleSubcommandText(F);if(F[0]==="["||F[0]==="<")return this.styleArgumentText(F);return this.styleCommandText(F)}).join(" ")}styleCommandDescription(D){return this.styleDescriptionText(D)}styleOptionDescription(D){return this.styleDescriptionText(D)}styleSubcommandDescription(D){return this.styleDescriptionText(D)}styleArgumentDescription(D){return this.styleDescriptionText(D)}styleDescriptionText(D){return D}styleOptionTerm(D){return this.styleOptionText(D)}styleSubcommandTerm(D){return D.split(" ").map((F)=>{if(F==="[options]")return this.styleOptionText(F);if(F[0]==="["||F[0]==="<")return this.styleArgumentText(F);return this.styleSubcommandText(F)}).join(" ")}styleArgumentTerm(D){return this.styleArgumentText(D)}styleOptionText(D){return D}styleArgumentText(D){return D}styleSubcommandText(D){return D}styleCommandText(D){return D}padWidth(D,F){return Math.max(F.longestOptionTermLength(D,F),F.longestGlobalOptionTermLength(D,F),F.longestSubcommandTermLength(D,F),F.longestArgumentTermLength(D,F))}preformatted(D){return/\n[^\S\r\n]/.test(D)}formatItem(D,F,B,Z){let Y=" ".repeat(2);if(!B)return Y+D;let J=D.padEnd(F+D.length-Z.displayWidth(D)),Q=2,H=(this.helpWidth??80)-F-Q-2,q;if(H<this.minWidthToWrap||Z.preformatted(B))q=B;else q=Z.boxWrap(B,H).replace(/\n/g,`
|
|
10
|
-
`+" ".repeat(F+Q));return Y+J+" ".repeat(Q)+q.replace(/\n/g,`
|
|
11
|
-
${Y}`)}boxWrap(D,F){if(F<this.minWidthToWrap)return D;let B=D.split(/\r\n|\n/),Z=/[\s]*[^\s]+/g,E=[];return B.forEach((Y)=>{let J=Y.match(Z);if(J===null){E.push("");return}let Q=[J.shift()],X=this.displayWidth(Q[0]);J.forEach((H)=>{let q=this.displayWidth(H);if(X+q<=F){Q.push(H),X+=q;return}E.push(Q.join(""));let K=H.trimStart();Q=[K],X=this.displayWidth(K)}),E.push(Q.join(""))}),E.join(`
|
|
12
|
-
`)}}function m8(D){let F=/\x1b\[\d*(;\d*)*m/g;return D.replace(F,"")}i7.Help=g8;i7.stripColor=m8});var TF=O((t7)=>{var{InvalidArgumentError:s7}=N0();class c8{constructor(D,F){this.flags=D,this.description=F||"",this.required=D.includes("<"),this.optional=D.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(D),this.mandatory=!1;let B=o7(D);if(this.short=B.shortFlag,this.long=B.longFlag,this.negate=!1,this.long)this.negate=this.long.startsWith("--no-");this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default(D,F){return this.defaultValue=D,this.defaultValueDescription=F,this}preset(D){return this.presetArg=D,this}conflicts(D){return this.conflictsWith=this.conflictsWith.concat(D),this}implies(D){let F=D;if(typeof D==="string")F={[D]:!0};return this.implied=Object.assign(this.implied||{},F),this}env(D){return this.envVar=D,this}argParser(D){return this.parseArg=D,this}makeOptionMandatory(D=!0){return this.mandatory=!!D,this}hideHelp(D=!0){return this.hidden=!!D,this}_collectValue(D,F){if(F===this.defaultValue||!Array.isArray(F))return[D];return F.push(D),F}choices(D){return this.argChoices=D.slice(),this.parseArg=(F,B)=>{if(!this.argChoices.includes(F))throw new s7(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(F,B);return F},this}name(){if(this.long)return this.long.replace(/^--/,"");return this.short.replace(/^-/,"")}attributeName(){if(this.negate)return d8(this.name().replace(/^no-/,""));return d8(this.name())}helpGroup(D){return this.helpGroupHeading=D,this}is(D){return this.short===D||this.long===D}isBoolean(){return!this.required&&!this.optional&&!this.negate}}class l8{constructor(D){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,D.forEach((F)=>{if(F.negate)this.negativeOptions.set(F.attributeName(),F);else this.positiveOptions.set(F.attributeName(),F)}),this.negativeOptions.forEach((F,B)=>{if(this.positiveOptions.has(B))this.dualOptions.add(B)})}valueFromOption(D,F){let B=F.attributeName();if(!this.dualOptions.has(B))return!0;let Z=this.negativeOptions.get(B).presetArg,E=Z!==void 0?Z:!1;return F.negate===(E===D)}}function d8(D){return D.split("-").reduce((F,B)=>{return F+B[0].toUpperCase()+B.slice(1)})}function o7(D){let F,B,Z=/^-[^-]$/,E=/^--[^-]/,Y=D.split(/[ |,]+/).concat("guard");if(Z.test(Y[0]))F=Y.shift();if(E.test(Y[0]))B=Y.shift();if(!F&&Z.test(Y[0]))F=Y.shift();if(!F&&E.test(Y[0]))F=B,B=Y.shift();if(Y[0].startsWith("-")){let J=Y[0],Q=`option creation failed due to '${J}' in option flags '${D}'`;if(/^-[^-][^-]/.test(J))throw Error(`${Q}
|
|
13
|
-
- a short flag is a single dash and a single character
|
|
14
|
-
- either use a single dash and a single character (for a short flag)
|
|
15
|
-
- or use a double dash for a long option (and can have two, like '--ws, --workspace')`);if(Z.test(J))throw Error(`${Q}
|
|
16
|
-
- too many short flags`);if(E.test(J))throw Error(`${Q}
|
|
17
|
-
- too many long flags`);throw Error(`${Q}
|
|
18
|
-
- unrecognised flag format`)}if(F===void 0&&B===void 0)throw Error(`option creation failed due to no flags found in '${D}'.`);return{shortFlag:F,longFlag:B}}t7.Option=c8;t7.DualOptions=l8});var p8=O((ZB)=>{function FB(D,F){if(Math.abs(D.length-F.length)>3)return Math.max(D.length,F.length);let B=[];for(let Z=0;Z<=D.length;Z++)B[Z]=[Z];for(let Z=0;Z<=F.length;Z++)B[0][Z]=Z;for(let Z=1;Z<=F.length;Z++)for(let E=1;E<=D.length;E++){let Y=1;if(D[E-1]===F[Z-1])Y=0;else Y=1;if(B[E][Z]=Math.min(B[E-1][Z]+1,B[E][Z-1]+1,B[E-1][Z-1]+Y),E>1&&Z>1&&D[E-1]===F[Z-2]&&D[E-2]===F[Z-1])B[E][Z]=Math.min(B[E][Z],B[E-2][Z-2]+1)}return B[D.length][F.length]}function BB(D,F){if(!F||F.length===0)return"";F=Array.from(new Set(F));let B=D.startsWith("--");if(B)D=D.slice(2),F=F.map((J)=>J.slice(2));let Z=[],E=3,Y=0.4;if(F.forEach((J)=>{if(J.length<=1)return;let Q=FB(D,J),X=Math.max(D.length,J.length);if((X-Q)/X>Y){if(Q<E)E=Q,Z=[J];else if(Q===E)Z.push(J)}}),Z.sort((J,Q)=>J.localeCompare(Q)),B)Z=Z.map((J)=>`--${J}`);if(Z.length>1)return`
|
|
19
|
-
(Did you mean one of ${Z.join(", ")}?)`;if(Z.length===1)return`
|
|
20
|
-
(Did you mean ${Z[0]}?)`;return""}ZB.suggestSimilar=BB});var r8=O((KB)=>{var YB=cD("node:events").EventEmitter,IF=cD("node:child_process"),fD=cD("node:path"),D2=cD("node:fs"),d=cD("node:process"),{Argument:JB,humanReadableArgName:QB}=e0(),{CommanderError:LF}=N0(),{Help:HB,stripColor:XB}=MF(),{Option:a8,DualOptions:qB}=TF(),{suggestSimilar:i8}=p8();class SF extends YB{constructor(D){super();this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=D||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:(F)=>d.stdout.write(F),writeErr:(F)=>d.stderr.write(F),outputError:(F,B)=>B(F),getOutHelpWidth:()=>d.stdout.isTTY?d.stdout.columns:void 0,getErrHelpWidth:()=>d.stderr.isTTY?d.stderr.columns:void 0,getOutHasColors:()=>RF()??(d.stdout.isTTY&&d.stdout.hasColors?.()),getErrHasColors:()=>RF()??(d.stderr.isTTY&&d.stderr.hasColors?.()),stripColor:(F)=>XB(F)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={},this._helpGroupHeading=void 0,this._defaultCommandGroup=void 0,this._defaultOptionGroup=void 0}copyInheritedSettings(D){return this._outputConfiguration=D._outputConfiguration,this._helpOption=D._helpOption,this._helpCommand=D._helpCommand,this._helpConfiguration=D._helpConfiguration,this._exitCallback=D._exitCallback,this._storeOptionsAsProperties=D._storeOptionsAsProperties,this._combineFlagAndOptionalValue=D._combineFlagAndOptionalValue,this._allowExcessArguments=D._allowExcessArguments,this._enablePositionalOptions=D._enablePositionalOptions,this._showHelpAfterError=D._showHelpAfterError,this._showSuggestionAfterError=D._showSuggestionAfterError,this}_getCommandAndAncestors(){let D=[];for(let F=this;F;F=F.parent)D.push(F);return D}command(D,F,B){let Z=F,E=B;if(typeof Z==="object"&&Z!==null)E=Z,Z=null;E=E||{};let[,Y,J]=D.match(/([^ ]+) *(.*)/),Q=this.createCommand(Y);if(Z)Q.description(Z),Q._executableHandler=!0;if(E.isDefault)this._defaultCommandName=Q._name;if(Q._hidden=!!(E.noHelp||E.hidden),Q._executableFile=E.executableFile||null,J)Q.arguments(J);if(this._registerCommand(Q),Q.parent=this,Q.copyInheritedSettings(this),Z)return this;return Q}createCommand(D){return new SF(D)}createHelp(){return Object.assign(new HB,this.configureHelp())}configureHelp(D){if(D===void 0)return this._helpConfiguration;return this._helpConfiguration=D,this}configureOutput(D){if(D===void 0)return this._outputConfiguration;return this._outputConfiguration={...this._outputConfiguration,...D},this}showHelpAfterError(D=!0){if(typeof D!=="string")D=!!D;return this._showHelpAfterError=D,this}showSuggestionAfterError(D=!0){return this._showSuggestionAfterError=!!D,this}addCommand(D,F){if(!D._name)throw Error(`Command passed to .addCommand() must have a name
|
|
21
|
-
- specify the name in Command constructor or using .name()`);if(F=F||{},F.isDefault)this._defaultCommandName=D._name;if(F.noHelp||F.hidden)D._hidden=!0;return this._registerCommand(D),D.parent=this,D._checkForBrokenPassThrough(),this}createArgument(D,F){return new JB(D,F)}argument(D,F,B,Z){let E=this.createArgument(D,F);if(typeof B==="function")E.default(Z).argParser(B);else E.default(B);return this.addArgument(E),this}arguments(D){return D.trim().split(/ +/).forEach((F)=>{this.argument(F)}),this}addArgument(D){let F=this.registeredArguments.slice(-1)[0];if(F?.variadic)throw Error(`only the last argument can be variadic '${F.name()}'`);if(D.required&&D.defaultValue!==void 0&&D.parseArg===void 0)throw Error(`a default value for a required argument is never used: '${D.name()}'`);return this.registeredArguments.push(D),this}helpCommand(D,F){if(typeof D==="boolean"){if(this._addImplicitHelpCommand=D,D&&this._defaultCommandGroup)this._initCommandGroup(this._getHelpCommand());return this}let B=D??"help [command]",[,Z,E]=B.match(/([^ ]+) *(.*)/),Y=F??"display help for command",J=this.createCommand(Z);if(J.helpOption(!1),E)J.arguments(E);if(Y)J.description(Y);if(this._addImplicitHelpCommand=!0,this._helpCommand=J,D||F)this._initCommandGroup(J);return this}addHelpCommand(D,F){if(typeof D!=="object")return this.helpCommand(D,F),this;return this._addImplicitHelpCommand=!0,this._helpCommand=D,this._initCommandGroup(D),this}_getHelpCommand(){if(this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))){if(this._helpCommand===void 0)this.helpCommand(void 0,void 0);return this._helpCommand}return null}hook(D,F){let B=["preSubcommand","preAction","postAction"];if(!B.includes(D))throw Error(`Unexpected value for event passed to hook : '${D}'.
|
|
22
|
-
Expecting one of '${B.join("', '")}'`);if(this._lifeCycleHooks[D])this._lifeCycleHooks[D].push(F);else this._lifeCycleHooks[D]=[F];return this}exitOverride(D){if(D)this._exitCallback=D;else this._exitCallback=(F)=>{if(F.code!=="commander.executeSubCommandAsync")throw F};return this}_exit(D,F,B){if(this._exitCallback)this._exitCallback(new LF(D,F,B));d.exit(D)}action(D){let F=(B)=>{let Z=this.registeredArguments.length,E=B.slice(0,Z);if(this._storeOptionsAsProperties)E[Z]=this;else E[Z]=this.opts();return E.push(this),D.apply(this,E)};return this._actionHandler=F,this}createOption(D,F){return new a8(D,F)}_callParseArg(D,F,B,Z){try{return D.parseArg(F,B)}catch(E){if(E.code==="commander.invalidArgument"){let Y=`${Z} ${E.message}`;this.error(Y,{exitCode:E.exitCode,code:E.code})}throw E}}_registerOption(D){let F=D.short&&this._findOption(D.short)||D.long&&this._findOption(D.long);if(F){let B=D.long&&this._findOption(D.long)?D.long:D.short;throw Error(`Cannot add option '${D.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${B}'
|
|
23
|
-
- already used by option '${F.flags}'`)}this._initOptionGroup(D),this.options.push(D)}_registerCommand(D){let F=(Z)=>{return[Z.name()].concat(Z.aliases())},B=F(D).find((Z)=>this._findCommand(Z));if(B){let Z=F(this._findCommand(B)).join("|"),E=F(D).join("|");throw Error(`cannot add command '${E}' as already have command '${Z}'`)}this._initCommandGroup(D),this.commands.push(D)}addOption(D){this._registerOption(D);let F=D.name(),B=D.attributeName();if(D.negate){let E=D.long.replace(/^--no-/,"--");if(!this._findOption(E))this.setOptionValueWithSource(B,D.defaultValue===void 0?!0:D.defaultValue,"default")}else if(D.defaultValue!==void 0)this.setOptionValueWithSource(B,D.defaultValue,"default");let Z=(E,Y,J)=>{if(E==null&&D.presetArg!==void 0)E=D.presetArg;let Q=this.getOptionValue(B);if(E!==null&&D.parseArg)E=this._callParseArg(D,E,Q,Y);else if(E!==null&&D.variadic)E=D._collectValue(E,Q);if(E==null)if(D.negate)E=!1;else if(D.isBoolean()||D.optional)E=!0;else E="";this.setOptionValueWithSource(B,E,J)};if(this.on("option:"+F,(E)=>{let Y=`error: option '${D.flags}' argument '${E}' is invalid.`;Z(E,Y,"cli")}),D.envVar)this.on("optionEnv:"+F,(E)=>{let Y=`error: option '${D.flags}' value '${E}' from env '${D.envVar}' is invalid.`;Z(E,Y,"env")});return this}_optionEx(D,F,B,Z,E){if(typeof F==="object"&&F instanceof a8)throw Error("To add an Option object use addOption() instead of option() or requiredOption()");let Y=this.createOption(F,B);if(Y.makeOptionMandatory(!!D.mandatory),typeof Z==="function")Y.default(E).argParser(Z);else if(Z instanceof RegExp){let J=Z;Z=(Q,X)=>{let H=J.exec(Q);return H?H[0]:X},Y.default(E).argParser(Z)}else Y.default(Z);return this.addOption(Y)}option(D,F,B,Z){return this._optionEx({},D,F,B,Z)}requiredOption(D,F,B,Z){return this._optionEx({mandatory:!0},D,F,B,Z)}combineFlagAndOptionalValue(D=!0){return this._combineFlagAndOptionalValue=!!D,this}allowUnknownOption(D=!0){return this._allowUnknownOption=!!D,this}allowExcessArguments(D=!0){return this._allowExcessArguments=!!D,this}enablePositionalOptions(D=!0){return this._enablePositionalOptions=!!D,this}passThroughOptions(D=!0){return this._passThroughOptions=!!D,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(D=!0){if(this.options.length)throw Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!D,this}getOptionValue(D){if(this._storeOptionsAsProperties)return this[D];return this._optionValues[D]}setOptionValue(D,F){return this.setOptionValueWithSource(D,F,void 0)}setOptionValueWithSource(D,F,B){if(this._storeOptionsAsProperties)this[D]=F;else this._optionValues[D]=F;return this._optionValueSources[D]=B,this}getOptionValueSource(D){return this._optionValueSources[D]}getOptionValueSourceWithGlobals(D){let F;return this._getCommandAndAncestors().forEach((B)=>{if(B.getOptionValueSource(D)!==void 0)F=B.getOptionValueSource(D)}),F}_prepareUserArgs(D,F){if(D!==void 0&&!Array.isArray(D))throw Error("first parameter to parse must be array or undefined");if(F=F||{},D===void 0&&F.from===void 0){if(d.versions?.electron)F.from="electron";let Z=d.execArgv??[];if(Z.includes("-e")||Z.includes("--eval")||Z.includes("-p")||Z.includes("--print"))F.from="eval"}if(D===void 0)D=d.argv;this.rawArgs=D.slice();let B;switch(F.from){case void 0:case"node":this._scriptPath=D[1],B=D.slice(2);break;case"electron":if(d.defaultApp)this._scriptPath=D[1],B=D.slice(2);else B=D.slice(1);break;case"user":B=D.slice(0);break;case"eval":B=D.slice(1);break;default:throw Error(`unexpected parse option { from: '${F.from}' }`)}if(!this._name&&this._scriptPath)this.nameFromFilename(this._scriptPath);return this._name=this._name||"program",B}parse(D,F){this._prepareForParse();let B=this._prepareUserArgs(D,F);return this._parseCommand([],B),this}async parseAsync(D,F){this._prepareForParse();let B=this._prepareUserArgs(D,F);return await this._parseCommand([],B),this}_prepareForParse(){if(this._savedState===null)this.saveStateBeforeParse();else this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw Error(`Can not call parse again when storeOptionsAsProperties is true.
|
|
24
|
-
- either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable(D,F,B){if(D2.existsSync(D))return;let Z=F?`searched for local subcommand relative to directory '${F}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",E=`'${D}' does not exist
|
|
25
|
-
- if '${B}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
|
|
26
|
-
- if the default executable name is not suitable, use the executableFile option to supply a custom name or path
|
|
27
|
-
- ${Z}`;throw Error(E)}_executeSubCommand(D,F){F=F.slice();let B=!1,Z=[".js",".ts",".tsx",".mjs",".cjs"];function E(H,q){let K=fD.resolve(H,q);if(D2.existsSync(K))return K;if(Z.includes(fD.extname(q)))return;let C=Z.find((W)=>D2.existsSync(`${K}${W}`));if(C)return`${K}${C}`;return}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let Y=D._executableFile||`${this._name}-${D._name}`,J=this._executableDir||"";if(this._scriptPath){let H;try{H=D2.realpathSync(this._scriptPath)}catch{H=this._scriptPath}J=fD.resolve(fD.dirname(H),J)}if(J){let H=E(J,Y);if(!H&&!D._executableFile&&this._scriptPath){let q=fD.basename(this._scriptPath,fD.extname(this._scriptPath));if(q!==this._name)H=E(J,`${q}-${D._name}`)}Y=H||Y}B=Z.includes(fD.extname(Y));let Q;if(d.platform!=="win32")if(B)F.unshift(Y),F=n8(d.execArgv).concat(F),Q=IF.spawn(d.argv[0],F,{stdio:"inherit"});else Q=IF.spawn(Y,F,{stdio:"inherit"});else this._checkForMissingExecutable(Y,J,D._name),F.unshift(Y),F=n8(d.execArgv).concat(F),Q=IF.spawn(d.execPath,F,{stdio:"inherit"});if(!Q.killed)["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach((q)=>{d.on(q,()=>{if(Q.killed===!1&&Q.exitCode===null)Q.kill(q)})});let X=this._exitCallback;Q.on("close",(H)=>{if(H=H??1,!X)d.exit(H);else X(new LF(H,"commander.executeSubCommandAsync","(close)"))}),Q.on("error",(H)=>{if(H.code==="ENOENT")this._checkForMissingExecutable(Y,J,D._name);else if(H.code==="EACCES")throw Error(`'${Y}' not executable`);if(!X)d.exit(1);else{let q=new LF(1,"commander.executeSubCommandAsync","(error)");q.nestedError=H,X(q)}}),this.runningCommand=Q}_dispatchSubcommand(D,F,B){let Z=this._findCommand(D);if(!Z)this.help({error:!0});Z._prepareForParse();let E;return E=this._chainOrCallSubCommandHook(E,Z,"preSubcommand"),E=this._chainOrCall(E,()=>{if(Z._executableHandler)this._executeSubCommand(Z,F.concat(B));else return Z._parseCommand(F,B)}),E}_dispatchHelpCommand(D){if(!D)this.help();let F=this._findCommand(D);if(F&&!F._executableHandler)F.help();return this._dispatchSubcommand(D,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){if(this.registeredArguments.forEach((D,F)=>{if(D.required&&this.args[F]==null)this.missingArgument(D.name())}),this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)return;if(this.args.length>this.registeredArguments.length)this._excessArguments(this.args)}_processArguments(){let D=(B,Z,E)=>{let Y=Z;if(Z!==null&&B.parseArg){let J=`error: command-argument value '${Z}' is invalid for argument '${B.name()}'.`;Y=this._callParseArg(B,Z,E,J)}return Y};this._checkNumberOfArguments();let F=[];this.registeredArguments.forEach((B,Z)=>{let E=B.defaultValue;if(B.variadic){if(Z<this.args.length){if(E=this.args.slice(Z),B.parseArg)E=E.reduce((Y,J)=>{return D(B,J,Y)},B.defaultValue)}else if(E===void 0)E=[]}else if(Z<this.args.length){if(E=this.args[Z],B.parseArg)E=D(B,E,B.defaultValue)}F[Z]=E}),this.processedArgs=F}_chainOrCall(D,F){if(D?.then&&typeof D.then==="function")return D.then(()=>F());return F()}_chainOrCallHooks(D,F){let B=D,Z=[];if(this._getCommandAndAncestors().reverse().filter((E)=>E._lifeCycleHooks[F]!==void 0).forEach((E)=>{E._lifeCycleHooks[F].forEach((Y)=>{Z.push({hookedCommand:E,callback:Y})})}),F==="postAction")Z.reverse();return Z.forEach((E)=>{B=this._chainOrCall(B,()=>{return E.callback(E.hookedCommand,this)})}),B}_chainOrCallSubCommandHook(D,F,B){let Z=D;if(this._lifeCycleHooks[B]!==void 0)this._lifeCycleHooks[B].forEach((E)=>{Z=this._chainOrCall(Z,()=>{return E(this,F)})});return Z}_parseCommand(D,F){let B=this.parseOptions(F);if(this._parseOptionsEnv(),this._parseOptionsImplied(),D=D.concat(B.operands),F=B.unknown,this.args=D.concat(F),D&&this._findCommand(D[0]))return this._dispatchSubcommand(D[0],D.slice(1),F);if(this._getHelpCommand()&&D[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(D[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(F),this._dispatchSubcommand(this._defaultCommandName,D,F);if(this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName)this.help({error:!0});this._outputHelpIfRequested(B.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let Z=()=>{if(B.unknown.length>0)this.unknownOption(B.unknown[0])},E=`command:${this.name()}`;if(this._actionHandler){Z(),this._processArguments();let Y;if(Y=this._chainOrCallHooks(Y,"preAction"),Y=this._chainOrCall(Y,()=>this._actionHandler(this.processedArgs)),this.parent)Y=this._chainOrCall(Y,()=>{this.parent.emit(E,D,F)});return Y=this._chainOrCallHooks(Y,"postAction"),Y}if(this.parent?.listenerCount(E))Z(),this._processArguments(),this.parent.emit(E,D,F);else if(D.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",D,F);if(this.listenerCount("command:*"))this.emit("command:*",D,F);else if(this.commands.length)this.unknownCommand();else Z(),this._processArguments()}else if(this.commands.length)Z(),this.help({error:!0});else Z(),this._processArguments()}_findCommand(D){if(!D)return;return this.commands.find((F)=>F._name===D||F._aliases.includes(D))}_findOption(D){return this.options.find((F)=>F.is(D))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach((D)=>{D.options.forEach((F)=>{if(F.mandatory&&D.getOptionValue(F.attributeName())===void 0)D.missingMandatoryOptionValue(F)})})}_checkForConflictingLocalOptions(){let D=this.options.filter((B)=>{let Z=B.attributeName();if(this.getOptionValue(Z)===void 0)return!1;return this.getOptionValueSource(Z)!=="default"});D.filter((B)=>B.conflictsWith.length>0).forEach((B)=>{let Z=D.find((E)=>B.conflictsWith.includes(E.attributeName()));if(Z)this._conflictingOption(B,Z)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach((D)=>{D._checkForConflictingLocalOptions()})}parseOptions(D){let F=[],B=[],Z=F;function E(H){return H.length>1&&H[0]==="-"}let Y=(H)=>{if(!/^-(\d+|\d*\.\d+)(e[+-]?\d+)?$/.test(H))return!1;return!this._getCommandAndAncestors().some((q)=>q.options.map((K)=>K.short).some((K)=>/^-\d$/.test(K)))},J=null,Q=null,X=0;while(X<D.length||Q){let H=Q??D[X++];if(Q=null,H==="--"){if(Z===B)Z.push(H);Z.push(...D.slice(X));break}if(J&&(!E(H)||Y(H))){this.emit(`option:${J.name()}`,H);continue}if(J=null,E(H)){let q=this._findOption(H);if(q){if(q.required){let K=D[X++];if(K===void 0)this.optionMissingArgument(q);this.emit(`option:${q.name()}`,K)}else if(q.optional){let K=null;if(X<D.length&&(!E(D[X])||Y(D[X])))K=D[X++];this.emit(`option:${q.name()}`,K)}else this.emit(`option:${q.name()}`);J=q.variadic?q:null;continue}}if(H.length>2&&H[0]==="-"&&H[1]!=="-"){let q=this._findOption(`-${H[1]}`);if(q){if(q.required||q.optional&&this._combineFlagAndOptionalValue)this.emit(`option:${q.name()}`,H.slice(2));else this.emit(`option:${q.name()}`),Q=`-${H.slice(2)}`;continue}}if(/^--[^=]+=/.test(H)){let q=H.indexOf("="),K=this._findOption(H.slice(0,q));if(K&&(K.required||K.optional)){this.emit(`option:${K.name()}`,H.slice(q+1));continue}}if(Z===F&&E(H)&&!(this.commands.length===0&&Y(H)))Z=B;if((this._enablePositionalOptions||this._passThroughOptions)&&F.length===0&&B.length===0){if(this._findCommand(H)){F.push(H),B.push(...D.slice(X));break}else if(this._getHelpCommand()&&H===this._getHelpCommand().name()){F.push(H,...D.slice(X));break}else if(this._defaultCommandName){B.push(H,...D.slice(X));break}}if(this._passThroughOptions){Z.push(H,...D.slice(X));break}Z.push(H)}return{operands:F,unknown:B}}opts(){if(this._storeOptionsAsProperties){let D={},F=this.options.length;for(let B=0;B<F;B++){let Z=this.options[B].attributeName();D[Z]=Z===this._versionOptionName?this._version:this[Z]}return D}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((D,F)=>Object.assign(D,F.opts()),{})}error(D,F){if(this._outputConfiguration.outputError(`${D}
|
|
28
|
-
`,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==="string")this._outputConfiguration.writeErr(`${this._showHelpAfterError}
|
|
29
|
-
`);else if(this._showHelpAfterError)this._outputConfiguration.writeErr(`
|
|
30
|
-
`),this.outputHelp({error:!0});let B=F||{},Z=B.exitCode||1,E=B.code||"commander.error";this._exit(Z,E,D)}_parseOptionsEnv(){this.options.forEach((D)=>{if(D.envVar&&D.envVar in d.env){let F=D.attributeName();if(this.getOptionValue(F)===void 0||["default","config","env"].includes(this.getOptionValueSource(F)))if(D.required||D.optional)this.emit(`optionEnv:${D.name()}`,d.env[D.envVar]);else this.emit(`optionEnv:${D.name()}`)}})}_parseOptionsImplied(){let D=new qB(this.options),F=(B)=>{return this.getOptionValue(B)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(B))};this.options.filter((B)=>B.implied!==void 0&&F(B.attributeName())&&D.valueFromOption(this.getOptionValue(B.attributeName()),B)).forEach((B)=>{Object.keys(B.implied).filter((Z)=>!F(Z)).forEach((Z)=>{this.setOptionValueWithSource(Z,B.implied[Z],"implied")})})}missingArgument(D){let F=`error: missing required argument '${D}'`;this.error(F,{code:"commander.missingArgument"})}optionMissingArgument(D){let F=`error: option '${D.flags}' argument missing`;this.error(F,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(D){let F=`error: required option '${D.flags}' not specified`;this.error(F,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(D,F){let B=(Y)=>{let J=Y.attributeName(),Q=this.getOptionValue(J),X=this.options.find((q)=>q.negate&&J===q.attributeName()),H=this.options.find((q)=>!q.negate&&J===q.attributeName());if(X&&(X.presetArg===void 0&&Q===!1||X.presetArg!==void 0&&Q===X.presetArg))return X;return H||Y},Z=(Y)=>{let J=B(Y),Q=J.attributeName();if(this.getOptionValueSource(Q)==="env")return`environment variable '${J.envVar}'`;return`option '${J.flags}'`},E=`error: ${Z(D)} cannot be used with ${Z(F)}`;this.error(E,{code:"commander.conflictingOption"})}unknownOption(D){if(this._allowUnknownOption)return;let F="";if(D.startsWith("--")&&this._showSuggestionAfterError){let Z=[],E=this;do{let Y=E.createHelp().visibleOptions(E).filter((J)=>J.long).map((J)=>J.long);Z=Z.concat(Y),E=E.parent}while(E&&!E._enablePositionalOptions);F=i8(D,Z)}let B=`error: unknown option '${D}'${F}`;this.error(B,{code:"commander.unknownOption"})}_excessArguments(D){if(this._allowExcessArguments)return;let F=this.registeredArguments.length,B=F===1?"":"s",E=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${F} argument${B} but got ${D.length}.`;this.error(E,{code:"commander.excessArguments"})}unknownCommand(){let D=this.args[0],F="";if(this._showSuggestionAfterError){let Z=[];this.createHelp().visibleCommands(this).forEach((E)=>{if(Z.push(E.name()),E.alias())Z.push(E.alias())}),F=i8(D,Z)}let B=`error: unknown command '${D}'${F}`;this.error(B,{code:"commander.unknownCommand"})}version(D,F,B){if(D===void 0)return this._version;this._version=D,F=F||"-V, --version",B=B||"output the version number";let Z=this.createOption(F,B);return this._versionOptionName=Z.attributeName(),this._registerOption(Z),this.on("option:"+Z.name(),()=>{this._outputConfiguration.writeOut(`${D}
|
|
31
|
-
`),this._exit(0,"commander.version",D)}),this}description(D,F){if(D===void 0&&F===void 0)return this._description;if(this._description=D,F)this._argsDescription=F;return this}summary(D){if(D===void 0)return this._summary;return this._summary=D,this}alias(D){if(D===void 0)return this._aliases[0];let F=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler)F=this.commands[this.commands.length-1];if(D===F._name)throw Error("Command alias can't be the same as its name");let B=this.parent?._findCommand(D);if(B){let Z=[B.name()].concat(B.aliases()).join("|");throw Error(`cannot add alias '${D}' to command '${this.name()}' as already have command '${Z}'`)}return F._aliases.push(D),this}aliases(D){if(D===void 0)return this._aliases;return D.forEach((F)=>this.alias(F)),this}usage(D){if(D===void 0){if(this._usage)return this._usage;let F=this.registeredArguments.map((B)=>{return QB(B)});return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?F:[]).join(" ")}return this._usage=D,this}name(D){if(D===void 0)return this._name;return this._name=D,this}helpGroup(D){if(D===void 0)return this._helpGroupHeading??"";return this._helpGroupHeading=D,this}commandsGroup(D){if(D===void 0)return this._defaultCommandGroup??"";return this._defaultCommandGroup=D,this}optionsGroup(D){if(D===void 0)return this._defaultOptionGroup??"";return this._defaultOptionGroup=D,this}_initOptionGroup(D){if(this._defaultOptionGroup&&!D.helpGroupHeading)D.helpGroup(this._defaultOptionGroup)}_initCommandGroup(D){if(this._defaultCommandGroup&&!D.helpGroup())D.helpGroup(this._defaultCommandGroup)}nameFromFilename(D){return this._name=fD.basename(D,fD.extname(D)),this}executableDir(D){if(D===void 0)return this._executableDir;return this._executableDir=D,this}helpInformation(D){let F=this.createHelp(),B=this._getOutputContext(D);F.prepareContext({error:B.error,helpWidth:B.helpWidth,outputHasColors:B.hasColors});let Z=F.formatHelp(this,F);if(B.hasColors)return Z;return this._outputConfiguration.stripColor(Z)}_getOutputContext(D){D=D||{};let F=!!D.error,B,Z,E;if(F)B=(J)=>this._outputConfiguration.writeErr(J),Z=this._outputConfiguration.getErrHasColors(),E=this._outputConfiguration.getErrHelpWidth();else B=(J)=>this._outputConfiguration.writeOut(J),Z=this._outputConfiguration.getOutHasColors(),E=this._outputConfiguration.getOutHelpWidth();return{error:F,write:(J)=>{if(!Z)J=this._outputConfiguration.stripColor(J);return B(J)},hasColors:Z,helpWidth:E}}outputHelp(D){let F;if(typeof D==="function")F=D,D=void 0;let B=this._getOutputContext(D),Z={error:B.error,write:B.write,command:this};this._getCommandAndAncestors().reverse().forEach((Y)=>Y.emit("beforeAllHelp",Z)),this.emit("beforeHelp",Z);let E=this.helpInformation({error:B.error});if(F){if(E=F(E),typeof E!=="string"&&!Buffer.isBuffer(E))throw Error("outputHelp callback must return a string or a Buffer")}if(B.write(E),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",Z),this._getCommandAndAncestors().forEach((Y)=>Y.emit("afterAllHelp",Z))}helpOption(D,F){if(typeof D==="boolean"){if(D){if(this._helpOption===null)this._helpOption=void 0;if(this._defaultOptionGroup)this._initOptionGroup(this._getHelpOption())}else this._helpOption=null;return this}if(this._helpOption=this.createOption(D??"-h, --help",F??"display help for command"),D||F)this._initOptionGroup(this._helpOption);return this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption(D){return this._helpOption=D,this._initOptionGroup(D),this}help(D){this.outputHelp(D);let F=Number(d.exitCode??0);if(F===0&&D&&typeof D!=="function"&&D.error)F=1;this._exit(F,"commander.help","(outputHelp)")}addHelpText(D,F){let B=["beforeAll","before","after","afterAll"];if(!B.includes(D))throw Error(`Unexpected value for position to addHelpText.
|
|
32
|
-
Expecting one of '${B.join("', '")}'`);let Z=`${D}Help`;return this.on(Z,(E)=>{let Y;if(typeof F==="function")Y=F({error:E.error,command:E.command});else Y=F;if(Y)E.write(`${Y}
|
|
33
|
-
`)}),this}_outputHelpIfRequested(D){let F=this._getHelpOption();if(F&&D.find((Z)=>F.is(Z)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function n8(D){return D.map((F)=>{if(!F.startsWith("--inspect"))return F;let B,Z="127.0.0.1",E="9229",Y;if((Y=F.match(/^(--inspect(-brk)?)$/))!==null)B=Y[1];else if((Y=F.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(B=Y[1],/^\d+$/.test(Y[3]))E=Y[3];else Z=Y[3];else if((Y=F.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)B=Y[1],Z=Y[3],E=Y[4];if(B&&E!=="0")return`${B}=${Z}:${parseInt(E)+1}`;return F})}function RF(){if(d.env.NO_COLOR||d.env.FORCE_COLOR==="0"||d.env.FORCE_COLOR==="false")return!1;if(d.env.FORCE_COLOR||d.env.CLICOLOR_FORCE!==void 0)return!0;return}KB.Command=SF;KB.useColor=RF});var kF=O(($B)=>{var{Argument:s8}=e0(),{Command:_F}=r8(),{CommanderError:CB,InvalidArgumentError:o8}=N0(),{Help:WB}=MF(),{Option:t8}=TF();$B.program=new _F;$B.createCommand=(D)=>new _F(D);$B.createOption=(D,F)=>new t8(D,F);$B.createArgument=(D,F)=>new s8(D,F);$B.Command=_F;$B.Option=t8;$B.Argument=s8;$B.Help=WB;$B.CommanderError=CB;$B.InvalidArgumentError=o8;$B.InvalidOptionArgumentError=o8});var D6=O((zD,e8)=>{var ND=kF();zD=e8.exports={};zD.program=new ND.Command;zD.Argument=ND.Argument;zD.Command=ND.Command;zD.CommanderError=ND.CommanderError;zD.Help=ND.Help;zD.InvalidArgumentError=ND.InvalidArgumentError;zD.InvalidOptionArgumentError=ND.InvalidArgumentError;zD.Option=ND.Option;zD.createCommand=(D)=>new ND.Command(D);zD.createOption=(D,F)=>new ND.Option(D,F);zD.createArgument=(D,F)=>new ND.Argument(D,F)});var lF=O((fH,_6)=>{var cF={to(D,F){if(!F)return`\x1B[${D+1}G`;return`\x1B[${F+1};${D+1}H`},move(D,F){let B="";if(D<0)B+=`\x1B[${-D}D`;else if(D>0)B+=`\x1B[${D}C`;if(F<0)B+=`\x1B[${-F}A`;else if(F>0)B+=`\x1B[${F}B`;return B},up:(D=1)=>`\x1B[${D}A`,down:(D=1)=>`\x1B[${D}B`,forward:(D=1)=>`\x1B[${D}C`,backward:(D=1)=>`\x1B[${D}D`,nextLine:(D=1)=>"\x1B[E".repeat(D),prevLine:(D=1)=>"\x1B[F".repeat(D),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},JZ={up:(D=1)=>"\x1B[S".repeat(D),down:(D=1)=>"\x1B[T".repeat(D)},QZ={screen:"\x1B[2J",up:(D=1)=>"\x1B[1J".repeat(D),down:(D=1)=>"\x1B[J".repeat(D),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(D){let F="";for(let B=0;B<D;B++)F+=this.line+(B<D-1?cF.up():"");if(D)F+=cF.left;return F}};_6.exports={cursor:cF,scroll:JZ,erase:QZ,beep:"\x07"}});class K0 extends Error{envName;constructor(D){super(`Not authenticated for backend "${D}".`);this.envName=D;this.name="NotAuthenticatedError"}}class D0 extends Error{constructor(){super("Authorization was denied.");this.name="DeviceFlowDenied"}}class lD extends Error{constructor(){super("Device code expired.");this.name="DeviceFlowExpired"}}class f extends Error{envName;constructor(D){super(`Session expired for "${D}".`);this.envName=D;this.name="SessionExpiredError"}}var b3=TD(y3(),1),t=TD(qF(),1),G={bold:t.default.bold,dim:t.default.dim,italic:t.default.italic,underline:t.default.underline,cyan:t.default.cyan,green:t.default.green,yellow:t.default.yellow,red:t.default.red,gray:t.default.gray,blue:t.default.blue,magenta:t.default.magenta,success:(D)=>t.default.green(`✓ ${D}`),error:(D)=>t.default.red(`✗ ${D}`),info:(D)=>t.default.cyan(`◆ ${D}`),warn:(D)=>t.default.yellow(`! ${D}`),hint:(D)=>t.default.dim(D)};function $D(D,F){let B=new b3.default({head:D.map((Z)=>G.bold(Z)),style:{head:[],border:["gray"]}});for(let Z of F)B.push(Z);console.log(B.toString())}function w(D){console.log(JSON.stringify(D,null,2))}function k(D){if(D instanceof Error)return D.message;if(typeof D==="string")return D;if(typeof D==="object"&&D!==null){let F=D,B=F.status?` [${F.status}]`:"";if(typeof F.value==="string")return F.value+B;if(typeof F.value==="object"&&F.value!==null){let Z=F.value;if(Z.error)return String(Z.error)+B;if(Z.message)return String(Z.message)+B}return JSON.stringify(F.value??D)+B}return String(D)}function $(D,F={}){if(console.error(G.error(D)),F.hint)console.error(G.hint(` Hint: ${F.hint}`));if(F.context)console.error(G.dim(` ${F.context}`));process.exit(F.code??1)}var w8=TD(T8(),1);import w7 from"update-notifier";var f8=TD(CF(),1),t0=TD(_8(),1);import{spawn as O8}from"node:child_process";import{createHash as M7}from"node:crypto";import OD from"node:fs";import NF from"node:path";import T7 from"update-notifier";var DD={name:"@photon-ai/cli",version:"2.3.0",description:"Photon CLI — typed terminal UI for the Photon Dashboard. Binary: `photon` (alias `pho`).",keywords:["photon","cli","dashboard","spectrum","messaging","imessage","developer-tools"],author:"Photon",license:"MIT",homepage:"https://github.com/photon-hq/cli#readme",repository:{type:"git",url:"git+https://github.com/photon-hq/cli.git"},bugs:{url:"https://github.com/photon-hq/cli/issues"},type:"module",bin:{photon:"./dist/photon.js",pho:"./dist/photon.js"},files:["dist","README.md"],publishConfig:{access:"public"},engines:{bun:">=1.3.0",node:">=18.0.0"},scripts:{start:"bun run src/index.ts",dev:"bun run --watch src/index.ts",build:"bun build ./src/index.ts --outfile dist/photon.js --target node --minify --external update-notifier && chmod +x dist/photon.js",compile:"bun build ./src/index.ts --compile --outfile dist/photon",typecheck:"tsc --noEmit",test:"bun test",check:"bun run typecheck && bun test && bun run build",manifest:"bun run scripts/generate-route-manifest.ts",prepublishOnly:"bun run typecheck && bun run build","docs:reference":"bun run scripts/export-docs.ts"},devDependencies:{"@photon-ai/dashboard-api":"1.6.12","@types/bun":"latest","@types/node":"^25.6.2","@types/semver":"^7.7.1","@types/update-notifier":"^6.0.8",elysia:"1.4.28",typescript:"^5"},dependencies:{"@clack/prompts":"^1.2.0","@commander-js/extra-typings":"^14.0.0","@elysiajs/eden":"1.4.9","better-auth":"1.4.18","cli-table3":"^0.6.5",commander:"^14.0.3",open:"^11.0.0",picocolors:"^1.1.1",semver:"^7.8.5","update-notifier":"^7.3.1"}};var uF=["npm","pnpm","yarn","bun"],iD="legacy";async function I7(){let D=process.env.NO_UPDATE_NOTIFIER;process.env.NO_UPDATE_NOTIFIER="1";let F;try{({latest:F}=await T7({pkg:{name:DD.name,version:DD.version},distTag:iD}).fetchInfo())}catch(B){if(B instanceof Error&&B.name==="VersionNotFoundError")throw Error(`The Photon update registry has no ${iD} release of ${DD.name}.`,{cause:B});throw Error("Could not reach the Photon update registry.",{cause:B})}finally{if(D===void 0)delete process.env.NO_UPDATE_NOTIFIER;else process.env.NO_UPDATE_NOTIFIER=D}if(!t0.default(F))throw Error("The Photon update registry returned an invalid version.");return F}function AF(D){try{return OD.realpathSync.native(D)}catch{return NF.resolve(D)}}function L7(D=process.argv[1]??"",F=process.execPath,B=process.env){if(!D)return{kind:"unknown",entryPath:D};let Z=NF.resolve(D),E=AF(D),Y=AF(F),J=D.replaceAll("\\","/");if(E===Y||J.startsWith("/$bunfs/root/"))return{kind:"standalone",entryPath:NF.resolve(F)};let Q=E.replaceAll("\\","/").toLowerCase();if(Q.includes("/.npm/_npx/")||Q.includes("/.bun/install/cache/@photon-ai/cli@")||Q.includes("/node_modules/.cache/bunx-")||Q.includes("/tmp/dlx-")&&Q.includes("/node_modules/"))return{kind:"ephemeral",entryPath:Z};if(Q.includes("/.bun/install/global/"))return{kind:"bun",entryPath:Z};if(Q.includes("/pnpm/global/")||Q.includes("/.pnpm/global/"))return{kind:"pnpm",entryPath:Z};if(Q.includes("/.config/yarn/global/")||Q.includes("/yarn/global/"))return{kind:"yarn",entryPath:Z};if(Q.includes("/lib/node_modules/@photon-ai/cli/")||Q.includes("/npm/node_modules/@photon-ai/cli/"))return{kind:"npm",entryPath:Z};let X=/^yarn\/(\d+)(?:\.|\s|$)/i.exec(B.npm_config_user_agent??"")?.[1];if(X&&Number(X)>=2){let H=(B.INIT_CWD??"").replaceAll("\\","/"),q=/\/dlx-[^/]+(?:\/|$)/i;if(q.test(J)&&(J.includes("/.yarn/")||q.test(H)))return{kind:"yarn-dlx",entryPath:Z};return{kind:"yarn-berry",entryPath:Z}}if(!Q.includes("/node_modules/@photon-ai/cli/"))return{kind:"development",entryPath:Z};return{kind:"unknown",entryPath:Z}}function P8(D){if(uF.includes(D))return D;throw Error(`Unknown installer "${D}". Expected one of: ${uF.join(", ")}.`)}function R7(D,F,B=!1){let Z=`${DD.name}@${F}`,E=B?["--force"]:[];if(D==="npm")return{command:D,args:["install","--global",...E,Z]};if(D==="yarn")return{command:D,args:["global","add",...E,Z]};return{command:D,args:["add","--global",...E,Z]}}async function S7(D,F){await new Promise((B,Z)=>{let E=O8(D.command,D.args,{shell:!1,stdio:F?["ignore","ignore","pipe"]:"inherit"}),Y="";E.stderr?.on("data",(J)=>{Y=(Y+String(J)).slice(-8192)}),E.on("error",(J)=>{Z(Error(`Could not start ${D.command}. Make sure it is installed and on PATH.`,{cause:J}))}),E.on("close",(J,Q)=>{if(J===0){B();return}let X=Y.trim(),H=Q?`signal ${Q}`:`exit code ${J??"unknown"}`;Z(Error(`The ${D.command} updater failed with ${H}.${X?` ${X}`:""}`))})})}async function _7(D,F){let B=await new Promise((Z,E)=>{let Y=O8(process.execPath,[D,"--version"],{shell:!1,stdio:["ignore","pipe","pipe"],env:{...process.env,PHOTON_NO_UPDATE_NOTIFIER:"1"}}),J="",Q="";Y.stdout.on("data",(X)=>{J=(J+String(X)).slice(-8192)}),Y.stderr.on("data",(X)=>{Q=(Q+String(X)).slice(-8192)}),Y.on("error",(X)=>{E(Error("Could not launch the updated Photon executable.",{cause:X}))}),Y.on("close",(X,H)=>{if(X===0){Z(J.trim());return}let q=H?`signal ${H}`:`exit code ${X??"unknown"}`;E(Error(`The updated Photon executable failed with ${q}.${Q.trim()?` ${Q.trim()}`:""}`))})});if(B!==F)throw Error(`The installer completed, but ${D} reports ${B||"no version"} instead of ${F}.`)}function k7(){let D=process.platform==="darwin"?"darwin":process.platform;if(D!=="darwin"&&D!=="linux")throw Error(`Standalone updates are not supported on ${process.platform}.`);if(process.arch!=="arm64"&&process.arch!=="x64")throw Error(`Standalone updates are not supported on ${process.arch}.`);return`photon-${D}-${process.arch}`}async function O7(D,F,B={}){let Z=k7(),Y=`${(B.releaseBase??"https://github.com/photon-hq/cli/releases/download").replace(/\/$/,"")}/v${F}/${Z}`,J={signal:AbortSignal.timeout(60000)},Q,X;try{[Q,X]=await Promise.all([fetch(Y,J),fetch(`${Y}.sha256`,J)])}catch(z){throw Error("Could not reach the Photon release downloads.",{cause:z})}if(!Q.ok||!X.ok)throw Error(`Could not download Photon ${F} (${Q.status}/${X.status}).`);let H;try{H=await X.text()}catch(z){throw Error("Could not read the Photon release checksum.",{cause:z})}let q=H.trim().split(/\s+/,1)[0]?.toLowerCase();if(!q||!/^[a-f0-9]{64}$/.test(q))throw Error("The standalone checksum file is invalid.");let K=AF(D),C=`${K}.update-${process.pid}-${Date.now()}`,W;try{if(!Q.body)throw Error("The standalone download returned an empty body.");let z;try{let U=OD.statSync(K).mode&511;W=OD.openSync(C,"wx",U||493);let u=M7("sha256"),I=Q.body.getReader();while(!0){let{done:A,value:N}=await I.read();if(A)break;u.update(N);let V=0;while(V<N.byteLength){let L=OD.writeSync(W,N,V,N.byteLength-V);if(L===0)throw Error("Writing the update made no progress.");V+=L}}OD.fsyncSync(W),OD.closeSync(W),W=void 0,z=u.digest("hex")}catch(U){throw Error(`Could not stage the Photon update beside ${K}. Check the download and file permissions.`,{cause:U})}if(z!==q)throw Error("The downloaded Photon binary failed checksum verification.");try{OD.renameSync(C,K)}catch(U){throw Error(`Could not replace ${K}. Check that the file is writable.`,{cause:U})}}finally{if(W!==void 0)try{OD.closeSync(W)}catch{}try{OD.rmSync(C,{force:!0})}catch{}}}function y8(D){return D.slice(2).find((B)=>!B.startsWith("-"))==="update"}function k8(D){if(D.kind==="npm"||D.kind==="pnpm"||D.kind==="yarn"||D.kind==="bun"||D.kind==="standalone")return D.kind;if(D.kind==="ephemeral")throw Error(`A one-off Photon invocation cannot update itself. Run your package runner with ${DD.name}@${iD} instead.`);if(D.kind==="development")throw Error("A development checkout cannot update itself. Update the checkout with Git instead.");if(D.kind==="yarn-dlx")throw Error(`A Yarn dlx invocation cannot update itself. Run \`yarn dlx --package ${DD.name}@${iD} photon\` instead.`);if(D.kind==="yarn-berry")throw Error(`Yarn 2+ does not provide global installs. Run \`yarn up ${DD.name}@${iD}\` from the project that owns this dependency.`);throw Error(`Cannot detect this Photon installation automatically. Re-run with --installer ${uF.join("|")}.`)}function f7(D,F){if(!F)return k8(D);if(D.kind==="unknown")return F;if(D.kind===F)return F;if(D.kind==="development"||D.kind==="ephemeral")return k8(D);throw Error(`This Photon invocation was detected as ${D.kind}; refusing to update a different ${F} installation.`)}async function x8(D={},F={}){let B=F.currentVersion??DD.version,Z=await(F.latestVersion??I7)();if(!t0.default(B)||!t0.default(Z))throw Error("Cannot compare invalid Photon release versions.");let E=f8.default(Z,B);if(!E&&!D.force)return{status:"up-to-date",currentVersion:B,latestVersion:Z,installer:null};if(D.check)return{status:E?"update-available":"up-to-date",currentVersion:B,latestVersion:Z,installer:null};let Y=F.installation??L7(),J=f7(Y,D.installer),Q=E?Z:B;if(J==="standalone")await(F.replaceStandalone??O7)(Y.entryPath,Q);else await(F.runInstaller??S7)(R7(J,Q,D.force),D.quiet??!1),await(F.verifyInstalled??_7)(Y.entryPath,Q);return{status:E?"updated":"reinstalled",currentVersion:B,latestVersion:Z,installer:J}}var P7=()=>Boolean(process.stdout.isTTY),y7=()=>Boolean(process.stdin.isTTY),x7=()=>Boolean(process.env.CI||process.env.GITHUB_ACTIONS||process.env.GITLAB_CI||process.env.CIRCLECI||process.env.BUILDKITE||process.env.TF_BUILD);var GD=()=>P7()&&y7()&&!x7();var b7=`Update available ${G.dim("{currentVersion}")} → ${G.green("{latestVersion}")}
|
|
34
|
-
Run ${G.cyan("photon update")} to update`;function b8(D={}){if(!(D.interactive??GD)())return;if(process.env.PHOTON_NO_UPDATE_NOTIFIER==="1")return;let Z=(D.createNotifier??w7)({pkg:{name:DD.name,version:DD.version},distTag:iD,updateCheckInterval:86400000}),{update:E}=Z;if(E&&(typeof E.latest!=="string"||!w8.default(E.latest,`^${DD.version}`)))return;Z.notify({defer:!0,isGlobal:!0,message:b7})}var F6=TD(D6(),1),{program:LQ,createCommand:RQ,createArgument:SQ,createOption:_Q,CommanderError:kQ,InvalidArgumentError:OQ,InvalidOptionArgumentError:fQ,Command:B6,Argument:PQ,Option:yQ,Help:xQ}=F6.default;import{existsSync as Z6,renameSync as SB}from"node:fs";import E6 from"node:os";import Z0 from"node:path";var Y6="https://app.photon.codes";function _B(D){return D??process.env.PHOTON_API_HOST??Y6}function OF(D){try{return new URL(D).origin}catch{throw Error(`Invalid API host URL: "${D}". Must include scheme — e.g. https://your.host.tld.`)}}function J6(D){let F=OF(_B(D));return{name:kB(F),url:F}}function kB(D){let F;try{F=new URL(D)}catch{throw Error(`Invalid API host URL: "${D}". Must include scheme — e.g. https://your.host.tld.`)}if(F.origin===Y6)return"production";let B=F.hostname.toLowerCase().replace(/[[\]]/g,"").replace(/[.:%]/g,"_"),Z=F.port?`_${F.port}`:"",E=`${B}${Z}`;if(E.length>64)throw Error(`API host "${D}" produces a key longer than 64 characters (got ${E.length}). Use a shorter hostname or alias the host in your local hosts file / DNS.`);return E}var OB=/^[a-z0-9_][a-z0-9_-]{0,63}$/;function fB(D){if(!OB.test(D))throw Error(`Invalid environment key "${D}" — must be 1-64 chars, `+"start with a-z, 0-9, or '_', and only contain a-z, 0-9, '-', '_'.")}function F2(){let D=process.env.PHOTON_CONFIG_DIR??process.env.DASHBOARD_CONFIG_DIR;if(D)return D;let F=process.env.XDG_CONFIG_HOME,B=F?Z0.join(F,"photon"):Z0.join(E6.homedir(),".config","photon"),Z=F?Z0.join(F,"photon-dashboard"):Z0.join(E6.homedir(),".config","photon-dashboard"),E=B;if(!Z6(B)&&Z6(Z))try{SB(Z,B)}catch{E=Z}return E}var fF=()=>Z0.join(F2(),"credentials"),B2=(D)=>{return fB(D),Z0.join(fF(),`${D}.json`)};async function XD(D){return J6(D)}import{chmod as PB,mkdir as yB,readdir as xB,readFile as wB,unlink as bB,writeFile as vB}from"node:fs/promises";import{dirname as hB}from"node:path";async function E0(D){try{let F=await wB(B2(D),"utf-8");return JSON.parse(F)}catch{return null}}async function Q6(D){let F=B2(D.envName);await yB(hB(F),{recursive:!0}),await vB(F,JSON.stringify(D,null,2)+`
|
|
35
|
-
`,"utf-8"),await PB(F,384)}async function H6(D){let F=B2(D);try{await bB(F)}catch(B){if(B.code!=="ENOENT")throw B}}async function Z2(){try{return(await xB(fF())).filter((F)=>F.endsWith(".json")).map((F)=>F.slice(0,-5)).sort()}catch(D){if(D.code==="ENOENT")return[];throw D}}function X6(D){D.command("auth").description("inspect authentication state across backends").command("status").description("show login status for every backend you've authenticated against").option("--json","output JSON").action(async(B)=>{let Z=await XD(),E=await Z2(),Y=Array.from(new Set([Z.name,...E])).sort(),J=await Promise.all(Y.map(async(H)=>{let q=await E0(H);if(!q)return{name:H,url:H===Z.name?Z.url:null,loggedIn:!1,user:null,issuedAt:null,corrupt:E.includes(H)};return{name:H,url:q.apiUrl,loggedIn:!0,user:q.user,issuedAt:q.issuedAt,corrupt:!1}}));if(B.json)return w(J);let Q=J.map((H)=>[H.name===Z.name?G.green("●"):" ",H.name,H.url??G.dim("—"),H.loggedIn?G.green(H.user?.email??"yes"):H.corrupt?G.yellow("corrupt"):G.dim("no"),H.issuedAt?new Date(H.issuedAt).toLocaleDateString():G.dim("—")]);$D(["","key","url","logged in","since"],Q);let X=J.filter((H)=>H.corrupt).map((H)=>H.name);if(X.length>0)console.log(),console.log(G.warn(`Credentials file for ${X.join(", ")} is unreadable. Re-login with \`photon login --api-host <url>\`.`))})}var xD=class extends Error{constructor(D,F){super(F+"");this.status=D,this.value=F}},gB=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,mB=/(?:Sun|Mon|Tue|Wed|Thu|Fri|Sat)\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{2}\s\d{4}\s\d{2}:\d{2}:\d{2}\sGMT(?:\+|-)\d{4}\s\([^)]+\)/,dB=/^(?:(?:(?:(?:0?[1-9]|[12][0-9]|3[01])[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:19|20)\d{2})|(?:(?:19|20)\d{2}[/\s-](?:0?[1-9]|1[0-2])[/\s-](?:0?[1-9]|[12][0-9]|3[01]))))(?:\s(?:1[012]|0?[1-9]):[0-5][0-9](?::[0-5][0-9])?(?:\s[AP]M)?)?$/,cB=(D)=>D.trim().length!==0&&!Number.isNaN(Number(D)),E2=(D,F)=>{if(typeof D!="string"||F?.parseDate===!1)return null;let B=D.replace(/"/g,"");if(gB.test(B)||mB.test(B)||dB.test(B)){let Z=new Date(B);if(!Number.isNaN(Z.getTime()))return Z}return null},lB=(D)=>{let F=D.charCodeAt(0),B=D.charCodeAt(D.length-1);return F===123&&B===125||F===91&&B===93},pB=(D,F)=>JSON.parse(D,(B,Z)=>{return E2(Z,F)||Z}),nD=(D,F)=>{if(!D)return D;if(cB(D))return+D;if(D==="true")return!0;if(D==="false")return!1;if(F?.parseDate!==!1){let B=E2(D,F);if(B)return B}if(lB(D))try{return pB(D,F)}catch{}return D},PF=(D,F)=>{let B=D.data.toString();return B==="null"?null:nD(B,F)};var aB=class{constructor(D){this.url=D,this.ws=new WebSocket(D)}ws;send(D){return Array.isArray(D)?(D.forEach((F)=>this.send(F)),this):(this.ws.send(typeof D=="object"?JSON.stringify(D):D.toString()),this)}on(D,F,B){return this.addEventListener(D,F,B)}off(D,F,B){return this.ws.removeEventListener(D,F,B),this}subscribe(D,F){return this.addEventListener("message",D,F)}addEventListener(D,F,B){return this.ws.addEventListener(D,(Z)=>{if(D==="message"){let E=PF(Z);F({...Z,data:E})}else F(Z)},B),this}removeEventListener(D,F,B){return this.off(D,F,B),this}close(){return this.ws.close(),this}},iB=["get","post","put","delete","patch","options","head","connect","subscribe"],q6=(D,F)=>typeof F=="function"?F(D):F===!0,z6=["localhost","127.0.0.1","0.0.0.0"],xF=typeof FileList>"u",Y2=(D)=>xF?D instanceof Blob:D instanceof FileList||D instanceof File,nB=(D)=>{if(!D)return!1;for(let F in D)if(Y2(D[F])||Array.isArray(D[F])&&D[F].find(Y2))return!0;return!1},yF=(D)=>xF?D:new Promise((F)=>{let B=new FileReader;B.onload=()=>{let Z=new File([B.result],D.name,{lastModified:D.lastModified,type:D.type});F(Z)},B.readAsArrayBuffer(D)}),rD=async(D,F,B={},Z={})=>{if(Array.isArray(D)){for(let E of D)if(!Array.isArray(E))Z=await rD(E,F,B,Z);else{let Y=E[0];if(typeof Y=="string")Z[Y.toLowerCase()]=E[1];else for(let[J,Q]of Y)Z[J.toLowerCase()]=Q}return Z}if(!D)return Z;switch(typeof D){case"function":if(D instanceof Headers)return rD(D,F,B,Z);let E=await D(F,B);return E?rD(E,F,B,Z):Z;case"object":if(D instanceof Headers)return D.forEach((Y,J)=>{Z[J.toLowerCase()]=Y}),Z;for(let[Y,J]of Object.entries(D))Z[Y.toLowerCase()]=J;return Z;default:return Z}};function C6(D,F){let B=D.split(`
|
|
36
|
-
`),Z={};for(let E of B){if(!E||E.startsWith(":"))continue;let Y=E.indexOf(":");if(Y>0){let J=E.slice(0,Y).trim(),Q=E.slice(Y+1).replace(/^ /,"");Z[J]=Q&&nD(Q,F)}}return Object.keys(Z).length>0?Z:null}function*K6(D,F){let B;for(;(B=D.value.indexOf(`
|
|
37
|
-
|
|
38
|
-
`))!==-1;){let Z=D.value.slice(0,B);if(D.value=D.value.slice(B+2),Z.trim()){let E=C6(Z,F);E&&(yield E)}}}async function*G6(D,F){let B=D.body;if(!B)return;let Z=B.getReader(),E=new TextDecoder("utf-8");if(D.headers.get("Content-Type")?.startsWith("text/event-stream")){let Y={value:""};try{for(;;){let{done:Q,value:X}=await Z.read();if(Q)break;let H=typeof X=="string"?X:E.decode(X,{stream:!0});Y.value+=H,yield*K6(Y,F)}let J=E.decode();if(J&&(Y.value+=J),yield*K6(Y,F),Y.value.trim()){let Q=C6(Y.value,F);Q&&(yield Q)}}finally{Z.releaseLock()}}else try{for(;;){let{done:Y,value:J}=await Z.read();if(Y)break;yield nD(typeof J=="string"?J:E.decode(J,{stream:!0}),{parseDate:F?.parseDate})}}finally{Z.releaseLock()}}var u0=(D,F,B=[],Z)=>new Proxy(()=>{},{get(E,Y){if(Y==="~path")return"/"+B.join("/");if(!(B.length===0&&(Y==="then"||Y==="catch"||Y==="finally")))return u0(D,F,[...B,Y],Z)},apply(E,Y,[J,Q]){if(!J||Q||typeof J=="object"&&Object.keys(J).length!==1||iB.includes(B.at(-1))){let X=[...B],H=X.pop(),q="/"+X.join("/"),{fetcher:K=fetch,headers:C,onRequest:W,onResponse:z,fetch:U}=F,u=H==="get"||H==="head"||H==="subscribe",I=u?J?.query:Q?.query,A="";if(I){let N=(V,L)=>{L!=null&&(L instanceof Date&&(L=L.toISOString()),A+=(A?"&":"?")+`${encodeURIComponent(V)}=${encodeURIComponent(typeof L=="object"?JSON.stringify(L):L+"")}`)};for(let[V,L]of Object.entries(I)){if(Array.isArray(L)){for(let S of L)N(V,S);continue}N(V,L)}}if(H==="subscribe"){let N=D.replace(/^([^]+):\/\//,D.startsWith("https://")?"wss://":D.startsWith("http://")||z6.find((V)=>D.includes(V))?"ws://":"wss://")+q+A;return new aB(N)}return(async()=>{C=await rD(C,q,Q);let N={method:H?.toUpperCase(),body:J,...U,headers:C};N.headers={...C,...await rD(u?J?.headers:Q?.headers,q,N)};let V=u&&typeof J=="object"?J.fetch:Q?.fetch,L=(u&&typeof J=="object"?J.throwHttpError:Q?.throwHttpError)??F.throwHttpError;if(N={...N,...V},u&&delete N.body,W){Array.isArray(W)||(W=[W]);for(let c of W){let v=await c(q,N);typeof v=="object"&&(N={...N,...v,headers:{...N.headers,...await rD(v.headers,q,N)}})}}if(u&&delete N.body,nB(J)){let c=new FormData,v=(b)=>{if(typeof b=="string"||Y2(b))return!1;if(typeof b=="object"){if(b!==null)return!0;if(b instanceof Date)return!1}return!1},YD=async(b)=>b instanceof File?await yF(b):v(b)?JSON.stringify(b):b;for(let[b,_]of Object.entries(N.body)){if(Array.isArray(_)){if(_.some((g)=>typeof g=="object"&&g!==null&&!Y2(g)))c.append(b,JSON.stringify(_));else for(let g=0;g<_.length;g++){let r=_[g],qD=await YD(r);c.append(b,qD)}continue}if(xF){if(Array.isArray(_))for(let g of _)c.append(b,await YD(g));else c.append(b,await YD(_));continue}if(_ instanceof File){c.append(b,await yF(_));continue}if(_ instanceof FileList){for(let g=0;g<_.length;g++)c.append(b,await yF(_[g]));continue}c.append(b,await YD(_))}N.body=c}else typeof J=="object"?(N.headers["content-type"]="application/json",N.body=JSON.stringify(J)):J!=null&&(N.headers["content-type"]="text/plain");if(u&&delete N.body,W){Array.isArray(W)||(W=[W]);for(let c of W){let v=await c(q,N);typeof v=="object"&&(N={...N,...v,headers:{...N.headers,...await rD(v.headers,q,N)}})}}Q?.headers?.["content-type"]&&(N.headers["content-type"]=Q?.headers["content-type"]);let S=D+q+A,R;try{R=await(Z?.handle(new Request(S,N))??K(S,N))}catch(c){let v=new xD(503,c);if(q6(v,L))throw v;return{data:null,error:v,response:void 0,status:503,headers:void 0}}let P=null,n=null;if(z){Array.isArray(z)||(z=[z]);for(let c of z)try{let v=await c(R.clone());if(v!=null){P=v;break}}catch(v){v instanceof xD?n=v:n=new xD(422,v);break}}if(P!==null)return{data:P,error:n,response:R,status:R.status,headers:R.headers};switch(R.headers.get("Content-Type")?.split(";")[0]){case"text/event-stream":P=G6(R,{parseDate:F.parseDate});break;case"application/json":P=JSON.parse(await R.text(),(v,YD)=>{if(typeof YD!="string")return YD;return E2(YD,{parseDate:F.parseDate})||YD});break;case"application/octet-stream":P=await R.arrayBuffer();break;case"multipart/form-data":let c=await R.formData();P={},c.forEach((v,YD)=>{P[YD]=v});break;default:R.headers.get("content-type")?.startsWith("text/")&&R.headers.get("transfer-encoding")==="chunked"&&!R.headers.has("content-length")?P=G6(R,{parseDate:F.parseDate}):P=await R.text().then((v)=>nD(v,{parseDate:F.parseDate}))}if(R.status>=300||R.status<200){if(n=new xD(R.status,P),q6(n,L))throw n;P=null}return{data:P,error:n,response:R,status:R.status,headers:R.headers}})()}return typeof J=="object"?u0(D,F,[...B,Object.values(J)[0]],Z):u0(D,F,B)}}),wF=(D,F={})=>typeof D=="string"?(F.keepDomain||(D.includes("://")||(D=(z6.find((B)=>D.includes(B))?"http://":"https://")+D),D.endsWith("/")&&(D=D.slice(0,-1))),u0(D,F)):(typeof window<"u"&&console.warn("Elysia instance server found on client side, this is not recommended for security reason. Use generic type instead."),u0("http://e.ly",F,[],D));var wD=TD(qF(),1),J2=process.env.PHOTON_DEBUG==="1"||process.env.PHOTON_DEBUG==="true";function W6(D){J2=D}function $6(){return J2}function rB(...D){if(!J2)return;let F=wD.default.dim(`[debug ${new Date().toISOString()}]`);console.error(F,...D)}function bF(D){if(!J2)return;let F=D.status>=500?wD.default.red:D.status>=400?wD.default.yellow:D.status>=200?wD.default.green:wD.default.dim;rB(wD.default.bold(D.method.padEnd(6)),F(String(D.status)),D.url,wD.default.dim(`${D.durationMs}ms`))}async function x(D={}){let F=D.url?{name:"custom",url:OF(D.url)}:await XD(D.apiHost),B=D.token??process.env.PHOTON_TOKEN??process.env.DASHBOARD_TOKEN,Z=D.url||B?null:await E0(F.name);if(D.requireAuth&&!Z&&!B)throw new K0(F.name);let E=B??Z?.accessToken,Y={};if(E)Y.Authorization=`Bearer ${E}`;let J=$6()?sB():fetch;return{api:wF(F.url,{headers:Y,fetcher:J}),env:F,creds:Z}}function sB(){return Object.assign(async(D,F)=>{let B=performance.now(),Z=typeof D==="string"?D:D instanceof URL?D.toString():D.url,E=(F?.method??(D instanceof Request?D.method:void 0)??"GET").toUpperCase();try{let Y=await fetch(D,F);return bF({method:E,url:Z,status:Y.status,durationMs:Math.round(performance.now()-B)}),Y}catch(Y){throw bF({method:E,url:Z,status:0,durationMs:Math.round(performance.now()-B)}),Y}},typeof fetch.preconnect==="function"?{preconnect:fetch.preconnect.bind(fetch)}:{})}async function m(D){let F=await XD(D.apiHost),B=D.flagProjectId?.trim();if(B)return{projectId:B,env:F};let Z=process.env.PHOTON_PROJECT_ID?.trim();if(Z)return{projectId:Z,env:F};$(`No project specified for backend "${F.name}".`,{hint:"Pass `--project <id>`, or set `PHOTON_PROJECT_ID` in your shell."})}import{styleText as aF}from"node:util";import{stdout as rF,stdin as P6}from"node:process";import*as vD from"node:readline";import HZ from"node:readline";var U6=(D)=>{return D===161||D===164||D===167||D===168||D===170||D===173||D===174||D>=176&&D<=180||D>=182&&D<=186||D>=188&&D<=191||D===198||D===208||D===215||D===216||D>=222&&D<=225||D===230||D>=232&&D<=234||D===236||D===237||D===240||D===242||D===243||D>=247&&D<=250||D===252||D===254||D===257||D===273||D===275||D===283||D===294||D===295||D===299||D>=305&&D<=307||D===312||D>=319&&D<=322||D===324||D>=328&&D<=331||D===333||D===338||D===339||D===358||D===359||D===363||D===462||D===464||D===466||D===468||D===470||D===472||D===474||D===476||D===593||D===609||D===708||D===711||D>=713&&D<=715||D===717||D===720||D>=728&&D<=731||D===733||D===735||D>=768&&D<=879||D>=913&&D<=929||D>=931&&D<=937||D>=945&&D<=961||D>=963&&D<=969||D===1025||D>=1040&&D<=1103||D===1105||D===8208||D>=8211&&D<=8214||D===8216||D===8217||D===8220||D===8221||D>=8224&&D<=8226||D>=8228&&D<=8231||D===8240||D===8242||D===8243||D===8245||D===8251||D===8254||D===8308||D===8319||D>=8321&&D<=8324||D===8364||D===8451||D===8453||D===8457||D===8467||D===8470||D===8481||D===8482||D===8486||D===8491||D===8531||D===8532||D>=8539&&D<=8542||D>=8544&&D<=8555||D>=8560&&D<=8569||D===8585||D>=8592&&D<=8601||D===8632||D===8633||D===8658||D===8660||D===8679||D===8704||D===8706||D===8707||D===8711||D===8712||D===8715||D===8719||D===8721||D===8725||D===8730||D>=8733&&D<=8736||D===8739||D===8741||D>=8743&&D<=8748||D===8750||D>=8756&&D<=8759||D===8764||D===8765||D===8776||D===8780||D===8786||D===8800||D===8801||D>=8804&&D<=8807||D===8810||D===8811||D===8814||D===8815||D===8834||D===8835||D===8838||D===8839||D===8853||D===8857||D===8869||D===8895||D===8978||D>=9312&&D<=9449||D>=9451&&D<=9547||D>=9552&&D<=9587||D>=9600&&D<=9615||D>=9618&&D<=9621||D===9632||D===9633||D>=9635&&D<=9641||D===9650||D===9651||D===9654||D===9655||D===9660||D===9661||D===9664||D===9665||D>=9670&&D<=9672||D===9675||D>=9678&&D<=9681||D>=9698&&D<=9701||D===9711||D===9733||D===9734||D===9737||D===9742||D===9743||D===9756||D===9758||D===9792||D===9794||D===9824||D===9825||D>=9827&&D<=9829||D>=9831&&D<=9834||D===9836||D===9837||D===9839||D===9886||D===9887||D===9919||D>=9926&&D<=9933||D>=9935&&D<=9939||D>=9941&&D<=9953||D===9955||D===9960||D===9961||D>=9963&&D<=9969||D===9972||D>=9974&&D<=9977||D===9979||D===9980||D===9982||D===9983||D===10045||D>=10102&&D<=10111||D>=11094&&D<=11097||D>=12872&&D<=12879||D>=57344&&D<=63743||D>=65024&&D<=65039||D===65533||D>=127232&&D<=127242||D>=127248&&D<=127277||D>=127280&&D<=127337||D>=127344&&D<=127373||D===127375||D===127376||D>=127387&&D<=127404||D>=917760&&D<=917999||D>=983040&&D<=1048573||D>=1048576&&D<=1114109},V6=(D)=>{return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510},N6=(D)=>{return D>=4352&&D<=4447||D===8986||D===8987||D===9001||D===9002||D>=9193&&D<=9196||D===9200||D===9203||D===9725||D===9726||D===9748||D===9749||D>=9800&&D<=9811||D===9855||D===9875||D===9889||D===9898||D===9899||D===9917||D===9918||D===9924||D===9925||D===9934||D===9940||D===9962||D===9970||D===9971||D===9973||D===9978||D===9981||D===9989||D===9994||D===9995||D===10024||D===10060||D===10062||D>=10067&&D<=10069||D===10071||D>=10133&&D<=10135||D===10160||D===10175||D===11035||D===11036||D===11088||D===11093||D>=11904&&D<=11929||D>=11931&&D<=12019||D>=12032&&D<=12245||D>=12272&&D<=12287||D>=12289&&D<=12350||D>=12353&&D<=12438||D>=12441&&D<=12543||D>=12549&&D<=12591||D>=12593&&D<=12686||D>=12688&&D<=12771||D>=12783&&D<=12830||D>=12832&&D<=12871||D>=12880&&D<=19903||D>=19968&&D<=42124||D>=42128&&D<=42182||D>=43360&&D<=43388||D>=44032&&D<=55203||D>=63744&&D<=64255||D>=65040&&D<=65049||D>=65072&&D<=65106||D>=65108&&D<=65126||D>=65128&&D<=65131||D>=94176&&D<=94180||D===94192||D===94193||D>=94208&&D<=100343||D>=100352&&D<=101589||D>=101632&&D<=101640||D>=110576&&D<=110579||D>=110581&&D<=110587||D===110589||D===110590||D>=110592&&D<=110882||D===110898||D>=110928&&D<=110930||D===110933||D>=110948&&D<=110951||D>=110960&&D<=111355||D===126980||D===127183||D===127374||D>=127377&&D<=127386||D>=127488&&D<=127490||D>=127504&&D<=127547||D>=127552&&D<=127560||D===127568||D===127569||D>=127584&&D<=127589||D>=127744&&D<=127776||D>=127789&&D<=127797||D>=127799&&D<=127868||D>=127870&&D<=127891||D>=127904&&D<=127946||D>=127951&&D<=127955||D>=127968&&D<=127984||D===127988||D>=127992&&D<=128062||D===128064||D>=128066&&D<=128252||D>=128255&&D<=128317||D>=128331&&D<=128334||D>=128336&&D<=128359||D===128378||D===128405||D===128406||D===128420||D>=128507&&D<=128591||D>=128640&&D<=128709||D===128716||D>=128720&&D<=128722||D>=128725&&D<=128727||D>=128732&&D<=128735||D===128747||D===128748||D>=128756&&D<=128764||D>=128992&&D<=129003||D===129008||D>=129292&&D<=129338||D>=129340&&D<=129349||D>=129351&&D<=129535||D>=129648&&D<=129660||D>=129664&&D<=129672||D>=129680&&D<=129725||D>=129727&&D<=129733||D>=129742&&D<=129755||D>=129760&&D<=129768||D>=129776&&D<=129784||D>=131072&&D<=196605||D>=196608&&D<=262141};var vF=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y,Q2=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,H2=/\t{1,1000}/y,hF=/[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/yu,X2=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,oB=/\p{M}+/gu,tB={limit:1/0,ellipsis:""},u6=(D,F={},B={})=>{let Z=F.limit??1/0,E=F.ellipsis??"",Y=F?.ellipsisWidth??(E?u6(E,tB,B).width:0),J=B.ansiWidth??0,Q=B.controlWidth??0,X=B.tabWidth??8,H=B.ambiguousWidth??1,q=B.emojiWidth??2,K=B.fullWidthWidth??2,C=B.regularWidth??1,W=B.wideWidth??2,z=0,U=0,u=D.length,I=0,A=!1,N=u,V=Math.max(0,Z-Y),L=0,S=0,R=0,P=0;D:while(!0){if(S>L||U>=u&&U>z){let n=D.slice(L,S)||D.slice(z,U);I=0;for(let c of n.replaceAll(oB,"")){let v=c.codePointAt(0)||0;if(V6(v))P=K;else if(N6(v))P=W;else if(H!==C&&U6(v))P=H;else P=C;if(R+P>V)N=Math.min(N,Math.max(L,z)+I);if(R+P>Z){A=!0;break D}I+=c.length,R+=P}L=S=0}if(U>=u)break;if(X2.lastIndex=U,X2.test(D)){if(I=X2.lastIndex-U,P=I*C,R+P>V)N=Math.min(N,U+Math.floor((V-R)/C));if(R+P>Z){A=!0;break}R+=P,L=z,S=U,U=z=X2.lastIndex;continue}if(vF.lastIndex=U,vF.test(D)){if(R+J>V)N=Math.min(N,U);if(R+J>Z){A=!0;break}R+=J,L=z,S=U,U=z=vF.lastIndex;continue}if(Q2.lastIndex=U,Q2.test(D)){if(I=Q2.lastIndex-U,P=I*Q,R+P>V)N=Math.min(N,U+Math.floor((V-R)/Q));if(R+P>Z){A=!0;break}R+=P,L=z,S=U,U=z=Q2.lastIndex;continue}if(H2.lastIndex=U,H2.test(D)){if(I=H2.lastIndex-U,P=I*X,R+P>V)N=Math.min(N,U+Math.floor((V-R)/X));if(R+P>Z){A=!0;break}R+=P,L=z,S=U,U=z=H2.lastIndex;continue}if(hF.lastIndex=U,hF.test(D)){if(R+q>V)N=Math.min(N,U);if(R+q>Z){A=!0;break}R+=q,L=z,S=U,U=z=hF.lastIndex;continue}U+=1}return{width:A?V:R,index:A?N:u,truncated:A,ellipsed:A&&Z>=Y}},A6=u6;var eB={limit:1/0,ellipsis:"",ellipsisWidth:0},DZ=(D,F={})=>{return A6(D,eB,F).width},RD=DZ;var q2="\x1B",L6="",FZ=39,mF="\x07",R6="[",BZ="]",S6="m",dF=`${BZ}8;;`,j6=new RegExp(`(?:\\${R6}(?<code>\\d+)m|\\${dF}(?<uri>.*)${mF})`,"y"),M6=(D)=>{if(D>=30&&D<=37)return 39;if(D>=90&&D<=97)return 39;if(D>=40&&D<=47)return 49;if(D>=100&&D<=107)return 49;if(D===1||D===2)return 22;if(D===3)return 23;if(D===4)return 24;if(D===7)return 27;if(D===8)return 28;if(D===9)return 29;if(D===0)return 0;return},T6=(D)=>`${q2}${R6}${D}${S6}`,I6=(D)=>`${q2}${dF}${D}${mF}`,gF=(D,F,B)=>{let Z=F[Symbol.iterator](),E=!1,Y=!1,J=D.at(-1),Q=J===void 0?0:RD(J),X=Z.next(),H=Z.next(),q=0;while(!X.done){let K=X.value,C=RD(K);if(Q+C<=B)D[D.length-1]+=K;else D.push(K),Q=0;if(K===q2||K===L6)E=!0,Y=F.startsWith(dF,q+1);if(E){if(Y){if(K===mF)E=!1,Y=!1}else if(K===S6)E=!1}else if(Q+=C,Q===B&&!H.done)D.push(""),Q=0;X=H,H=Z.next(),q+=K.length}if(J=D.at(-1),!Q&&J!==void 0&&J.length&&D.length>1)D[D.length-2]+=D.pop()},ZZ=(D)=>{let F=D.split(" "),B=F.length;while(B){if(RD(F[B-1]))break;B--}if(B===F.length)return D;return F.slice(0,B).join(" ")+F.slice(B).join("")},EZ=(D,F,B={})=>{if(B.trim!==!1&&D.trim()==="")return"";let Z="",E,Y,J=D.split(" "),Q=[""],X=0;for(let K=0;K<J.length;K++){let C=J[K];if(B.trim!==!1){let z=Q.at(-1)??"",U=z.trimStart();if(z.length!==U.length)Q[Q.length-1]=U,X=RD(U)}if(K!==0){if(X>=F&&(B.wordWrap===!1||B.trim===!1))Q.push(""),X=0;if(X||B.trim===!1)Q[Q.length-1]+=" ",X++}let W=RD(C);if(B.hard&&W>F){let z=F-X,U=1+Math.floor((W-z-1)/F);if(Math.floor((W-1)/F)<U)Q.push("");gF(Q,C,F),X=RD(Q.at(-1)??"");continue}if(X+W>F&&X&&W){if(B.wordWrap===!1&&X<F){gF(Q,C,F),X=RD(Q.at(-1)??"");continue}Q.push(""),X=0}if(X+W>F&&B.wordWrap===!1){gF(Q,C,F),X=RD(Q.at(-1)??"");continue}Q[Q.length-1]+=C,X+=W}if(B.trim!==!1)Q=Q.map((K)=>ZZ(K));let H=Q.join(`
|
|
39
|
-
`),q=!1;for(let K=0;K<H.length;K++){let C=H[K];if(Z+=C,!q)q=C>="\uD800"&&C<="\uDBFF";else continue;if(C===q2||C===L6){j6.lastIndex=K+1;let z=j6.exec(H)?.groups;if(z?.code!==void 0){let U=Number.parseFloat(z.code);E=U===FZ?void 0:U}else if(z?.uri!==void 0)Y=z.uri.length===0?void 0:z.uri}if(H[K+1]===`
|
|
40
|
-
`){if(Y)Z+=I6("");let W=E?M6(E):void 0;if(E&&W)Z+=T6(W)}else if(C===`
|
|
41
|
-
`){if(E&&M6(E))Z+=T6(E);if(Y)Z+=I6(Y)}}return Z},YZ=/\r?\n/;function bD(D,F,B){return String(D).normalize().split(YZ).map((Z)=>EZ(Z,F,B)).join(`
|
|
42
|
-
`)}var ED=TD(lF(),1);import{ReadStream as k6}from"node:tty";function Y0(D,F,B){if(!B.some((J)=>!J.disabled))return D;let Z=D+F,E=Math.max(B.length-1,0),Y=Z<0?E:Z>E?0:Z;return B[Y].disabled?Y0(Y,F<0?-1:1,B):Y}var XZ=["up","down","left","right","space","enter","cancel"],qZ=["January","February","March","April","May","June","July","August","September","October","November","December"],FD={actions:new Set(XZ),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]]),messages:{cancel:"Canceled",error:"Something went wrong"},withGuide:!0,date:{monthNames:[...qZ],messages:{required:"Please enter a valid date",invalidMonth:"There are only 12 months in a year",invalidDay:(D,F)=>`There are only ${D} days in ${F}`,afterMin:(D)=>`Date must be on or after ${D.toISOString().slice(0,10)}`,beforeMax:(D)=>`Date must be on or before ${D.toISOString().slice(0,10)}`}}};function sF(D,F){if(typeof D=="string")return FD.aliases.get(D)===F;for(let B of D)if(B!==void 0&&sF(B,F))return!0;return!1}function KZ(D,F){if(D===F)return;let B=D.split(`
|
|
43
|
-
`),Z=F.split(`
|
|
44
|
-
`),E=Math.max(B.length,Z.length),Y=[];for(let J=0;J<E;J++)B[J]!==Z[J]&&Y.push(J);return{lines:Y,numLinesBefore:B.length,numLinesAfter:Z.length,numLines:E}}var GZ=globalThis.process.platform.startsWith("win"),iF=Symbol("clack:cancel");function BD(D){return D===iF}function K2(D,F){let B=D;B.isTTY&&B.setRawMode(F)}function y6({input:D=P6,output:F=rF,overwrite:B=!0,hideCursor:Z=!0}={}){let E=vD.createInterface({input:D,output:F,prompt:"",tabSize:1});vD.emitKeypressEvents(D,E),D instanceof k6&&D.isTTY&&D.setRawMode(!0);let Y=(J,{name:Q,sequence:X})=>{let H=String(J);if(sF([H,Q,X],"cancel")){Z&&F.write(ED.cursor.show),process.exit(0);return}if(!B)return;vD.moveCursor(F,Q==="return"?0:-1,Q==="return"?-1:0,()=>{vD.clearLine(F,1,()=>{D.once("keypress",Y)})})};return Z&&F.write(ED.cursor.hide),D.once("keypress",Y),()=>{D.off("keypress",Y),Z&&F.write(ED.cursor.show),D instanceof k6&&D.isTTY&&!GZ&&D.setRawMode(!1),E.terminal=!1,E.close()}}var z2=(D)=>("columns"in D)&&typeof D.columns=="number"?D.columns:80,oF=(D)=>("rows"in D)&&typeof D.rows=="number"?D.rows:20;function A0(D,F,B,Z=B){let E=z2(D??rF);return bD(F,E-B.length,{hard:!0,trim:!1}).split(`
|
|
45
|
-
`).map((Y,J)=>`${J===0?Z:B}${Y}`).join(`
|
|
46
|
-
`)}var J0=class{input;output;_abortSignal;rl;opts;_render;_track=!1;_prevFrame="";_subscribers=new Map;_cursor=0;state="initial";error="";value;userInput="";constructor(D,F=!0){let{input:B=P6,output:Z=rF,render:E,signal:Y,...J}=D;this.opts=J,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=E.bind(this),this._track=F,this._abortSignal=Y,this.input=B,this.output=Z}unsubscribe(){this._subscribers.clear()}setSubscriber(D,F){let B=this._subscribers.get(D)??[];B.push(F),this._subscribers.set(D,B)}on(D,F){this.setSubscriber(D,{cb:F})}once(D,F){this.setSubscriber(D,{cb:F,once:!0})}emit(D,...F){let B=this._subscribers.get(D)??[],Z=[];for(let E of B)E.cb(...F),E.once&&Z.push(()=>B.splice(B.indexOf(E),1));for(let E of Z)E()}prompt(){return new Promise((D)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),D(iF);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}this.rl=HZ.createInterface({input:this.input,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),this.rl.prompt(),this.opts.initialUserInput!==void 0&&this._setUserInput(this.opts.initialUserInput,!0),this.input.on("keypress",this.onKeypress),K2(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(ED.cursor.show),this.output.off("resize",this.render),K2(this.input,!1),D(this.value)}),this.once("cancel",()=>{this.output.write(ED.cursor.show),this.output.off("resize",this.render),K2(this.input,!1),D(iF)})})}_isActionKey(D,F){return D==="\t"}_setValue(D){this.value=D,this.emit("value",this.value)}_setUserInput(D,F){this.userInput=D??"",this.emit("userInput",this.userInput),F&&this._track&&this.rl&&(this.rl.write(this.userInput),this._cursor=this.rl.cursor)}_clearUserInput(){this.rl?.write(null,{ctrl:!0,name:"u"}),this._setUserInput("")}onKeypress(D,F){if(this._track&&F.name!=="return"&&(F.name&&this._isActionKey(D,F)&&this.rl?.write(null,{ctrl:!0,name:"h"}),this._cursor=this.rl?.cursor??0,this._setUserInput(this.rl?.line)),this.state==="error"&&(this.state="active"),F?.name&&(!this._track&&FD.aliases.has(F.name)&&this.emit("cursor",FD.aliases.get(F.name)),FD.actions.has(F.name)&&this.emit("cursor",F.name)),D&&(D.toLowerCase()==="y"||D.toLowerCase()==="n")&&this.emit("confirm",D.toLowerCase()==="y"),this.emit("key",D?.toLowerCase(),F),F?.name==="return"){if(this.opts.validate){let B=this.opts.validate(this.value);B&&(this.error=B instanceof Error?B.message:B,this.state="error",this.rl?.write(this.userInput))}this.state!=="error"&&(this.state="submit")}sF([D,F?.name,F?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
|
|
47
|
-
`),K2(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let D=bD(this._prevFrame,process.stdout.columns,{hard:!0,trim:!1}).split(`
|
|
48
|
-
`).length-1;this.output.write(ED.cursor.move(-999,D*-1))}render(){let D=bD(this._render(this)??"",process.stdout.columns,{hard:!0,trim:!1});if(D!==this._prevFrame){if(this.state==="initial")this.output.write(ED.cursor.hide);else{let F=KZ(this._prevFrame,D),B=oF(this.output);if(this.restoreCursor(),F){let Z=Math.max(0,F.numLinesAfter-B),E=Math.max(0,F.numLinesBefore-B),Y=F.lines.find((J)=>J>=Z);if(Y===void 0){this._prevFrame=D;return}if(F.lines.length===1){this.output.write(ED.cursor.move(0,Y-E)),this.output.write(ED.erase.lines(1));let J=D.split(`
|
|
49
|
-
`);this.output.write(J[Y]),this._prevFrame=D,this.output.write(ED.cursor.move(0,J.length-Y-1));return}else if(F.lines.length>1){if(Z<E)Y=Z;else{let Q=Y-E;Q>0&&this.output.write(ED.cursor.move(0,Q))}this.output.write(ED.erase.down());let J=D.split(`
|
|
50
|
-
`).slice(Y);this.output.write(J.join(`
|
|
51
|
-
`)),this._prevFrame=D;return}}this.output.write(ED.erase.down())}this.output.write(D),this.state==="initial"&&(this.state="active"),this._prevFrame=D}}};function zZ(D,F){if(D===void 0||F.length===0)return 0;let B=F.findIndex((Z)=>Z.value===D);return B!==-1?B:0}function CZ(D,F){return(F.label??String(F.value)).toLowerCase().includes(D.toLowerCase())}function WZ(D,F){if(F)return D?F:F[0]}var $Z=class extends J0{filteredOptions;multiple;isNavigating=!1;selectedValues=[];focusedValue;#F=0;#J="";#D;#Y;#Q;get cursor(){return this.#F}get userInputWithCursor(){if(!this.userInput)return aF(["inverse","hidden"],"_");if(this._cursor>=this.userInput.length)return`${this.userInput}█`;let D=this.userInput.slice(0,this._cursor),[F,...B]=this.userInput.slice(this._cursor);return`${D}${aF("inverse",F)}${B.join("")}`}get options(){return typeof this.#Y=="function"?this.#Y():this.#Y}constructor(D){super(D),this.#Y=D.options,this.#Q=D.placeholder;let F=this.options;this.filteredOptions=[...F],this.multiple=D.multiple===!0,this.#D=typeof D.options=="function"?D.filter:D.filter??CZ;let B;if(D.initialValue&&Array.isArray(D.initialValue)?this.multiple?B=D.initialValue:B=D.initialValue.slice(0,1):!this.multiple&&this.options.length>0&&(B=[this.options[0].value]),B)for(let Z of B){let E=F.findIndex((Y)=>Y.value===Z);E!==-1&&(this.toggleSelected(Z),this.#F=E)}this.focusedValue=this.options[this.#F]?.value,this.on("key",(Z,E)=>this.#B(Z,E)),this.on("userInput",(Z)=>this.#Z(Z))}_isActionKey(D,F){return D==="\t"||this.multiple&&this.isNavigating&&F.name==="space"&&D!==void 0&&D!==""}#B(D,F){let B=F.name==="up",Z=F.name==="down",E=F.name==="return",Y=this.userInput===""||this.userInput==="\t",J=this.#Q,Q=this.options,X=J!==void 0&&J!==""&&Q.some((H)=>!H.disabled&&(this.#D?this.#D(J,H):!0));if(F.name==="tab"&&Y&&X){this.userInput==="\t"&&this._clearUserInput(),this._setUserInput(J,!0),this.isNavigating=!1;return}B||Z?(this.#F=Y0(this.#F,B?-1:1,this.filteredOptions),this.focusedValue=this.filteredOptions[this.#F]?.value,this.multiple||(this.selectedValues=[this.focusedValue]),this.isNavigating=!0):E?this.value=WZ(this.multiple,this.selectedValues):this.multiple?this.focusedValue!==void 0&&(F.name==="tab"||this.isNavigating&&F.name==="space")?this.toggleSelected(this.focusedValue):this.isNavigating=!1:(this.focusedValue&&(this.selectedValues=[this.focusedValue]),this.isNavigating=!1)}deselectAll(){this.selectedValues=[]}toggleSelected(D){this.filteredOptions.length!==0&&(this.multiple?this.selectedValues.includes(D)?this.selectedValues=this.selectedValues.filter((F)=>F!==D):this.selectedValues=[...this.selectedValues,D]:this.selectedValues=[D])}#Z(D){if(D!==this.#J){this.#J=D;let F=this.options;D&&this.#D?this.filteredOptions=F.filter((E)=>this.#D?.(D,E)):this.filteredOptions=[...F];let B=zZ(this.focusedValue,this.filteredOptions);this.#F=Y0(B,0,this.filteredOptions);let Z=this.filteredOptions[this.#F];Z&&!Z.disabled?this.focusedValue=Z.value:this.focusedValue=void 0,this.multiple||(this.focusedValue!==void 0?this.toggleSelected(this.focusedValue):this.deselectAll())}}};class tF extends J0{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(D){super(D,!1),this.value=!!D.initialValue,this.on("userInput",()=>{this.value=this._value}),this.on("confirm",(F)=>{this.output.write(ED.cursor.move(0,-1)),this.value=F,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}var UZ={Y:{type:"year",len:4},M:{type:"month",len:2},D:{type:"day",len:2}};function O6(D){return[...D].map((F)=>UZ[F])}function VZ(D){let F=new Intl.DateTimeFormat(D,{year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(new Date(2000,0,15)),B=[],Z="/";for(let E of F)E.type==="literal"?Z=E.value.trim()||E.value:(E.type==="year"||E.type==="month"||E.type==="day")&&B.push({type:E.type,len:E.type==="year"?4:2});return{segments:B,separator:Z}}function pF(D){return Number.parseInt((D||"0").replace(/_/g,"0"),10)||0}function G2(D){return{year:pF(D.year),month:pF(D.month),day:pF(D.day)}}function nF(D,F){return new Date(D||2001,F||1,0).getDate()}function x6(D){let{year:F,month:B,day:Z}=G2(D);if(!F||F<0||F>9999||!B||B<1||B>12||!Z||Z<1)return;let E=new Date(Date.UTC(F,B-1,Z));if(!(E.getUTCFullYear()!==F||E.getUTCMonth()!==B-1||E.getUTCDate()!==Z))return{year:F,month:B,day:Z}}function f6(D){let F=x6(D);return F?new Date(Date.UTC(F.year,F.month-1,F.day)):void 0}function NZ(D,F,B,Z){let E=B?{year:B.getUTCFullYear(),month:B.getUTCMonth()+1,day:B.getUTCDate()}:null,Y=Z?{year:Z.getUTCFullYear(),month:Z.getUTCMonth()+1,day:Z.getUTCDate()}:null;return D==="year"?{min:E?.year??1,max:Y?.year??9999}:D==="month"?{min:E&&F.year===E.year?E.month:1,max:Y&&F.year===Y.year?Y.month:12}:{min:E&&F.year===E.year&&F.month===E.month?E.day:1,max:Y&&F.year===Y.year&&F.month===Y.month?Y.day:nF(F.year,F.month)}}class w6 extends J0{#F;#J;#D;#Y;#Q;#B={segmentIndex:0,positionInSegment:0};#Z=!0;#E=null;inlineError="";get segmentCursor(){return{...this.#B}}get segmentValues(){return{...this.#D}}get segments(){return this.#F}get separator(){return this.#J}get formattedValue(){return this.#K(this.#D)}#K(D){return this.#F.map((F)=>D[F.type]).join(this.#J)}#H(){this._setUserInput(this.#K(this.#D)),this._setValue(f6(this.#D)??void 0)}constructor(D){let F=D.format?{segments:O6(D.format),separator:D.separator??"/"}:VZ(D.locale),B=D.separator??F.separator,Z=D.format?O6(D.format):F.segments,E=D.initialValue??D.defaultValue,Y=E?{year:String(E.getUTCFullYear()).padStart(4,"0"),month:String(E.getUTCMonth()+1).padStart(2,"0"),day:String(E.getUTCDate()).padStart(2,"0")}:{year:"____",month:"__",day:"__"},J=Z.map((Q)=>Y[Q.type]).join(B);super({...D,initialUserInput:J},!1),this.#F=Z,this.#J=B,this.#D=Y,this.#Y=D.minDate,this.#Q=D.maxDate,this.#H(),this.on("cursor",(Q)=>this.#C(Q)),this.on("key",(Q,X)=>this.#W(Q,X)),this.on("finalize",()=>this.#$(D))}#X(){let D=Math.max(0,Math.min(this.#B.segmentIndex,this.#F.length-1)),F=this.#F[D];if(F)return this.#B.positionInSegment=Math.max(0,Math.min(this.#B.positionInSegment,F.len-1)),{segment:F,index:D}}#q(D){this.inlineError="",this.#E=null;let F=this.#X();F&&(this.#B.segmentIndex=Math.max(0,Math.min(this.#F.length-1,F.index+D)),this.#B.positionInSegment=0,this.#Z=!0)}#G(D){let F=this.#X();if(!F)return;let{segment:B}=F,Z=this.#D[B.type],E=!Z||Z.replace(/_/g,"")==="",Y=Number.parseInt((Z||"0").replace(/_/g,"0"),10)||0,J=NZ(B.type,G2(this.#D),this.#Y,this.#Q),Q;E?Q=D===1?J.min:J.max:Q=Math.max(Math.min(J.max,Y+D),J.min),this.#D={...this.#D,[B.type]:Q.toString().padStart(B.len,"0")},this.#Z=!0,this.#E=null,this.#H()}#C(D){if(D)switch(D){case"right":return this.#q(1);case"left":return this.#q(-1);case"up":return this.#G(1);case"down":return this.#G(-1)}}#W(D,F){if(F?.name==="backspace"||F?.sequence===""||F?.sequence==="\b"||D===""||D==="\b"){this.inlineError="";let B=this.#X();if(!B)return;if(!this.#D[B.segment.type].replace(/_/g,"")){this.#q(-1);return}this.#D[B.segment.type]="_".repeat(B.segment.len),this.#Z=!0,this.#B.positionInSegment=0,this.#H();return}if(F?.name==="tab"){this.inlineError="";let B=this.#X();if(!B)return;let Z=F.shift?-1:1,E=B.index+Z;E>=0&&E<this.#F.length&&(this.#B.segmentIndex=E,this.#B.positionInSegment=0,this.#Z=!0);return}if(D&&/^[0-9]$/.test(D)){let B=this.#X();if(!B)return;let{segment:Z}=B,E=!this.#D[Z.type].replace(/_/g,"");if(this.#Z&&this.#E!==null&&!E){let C=this.#E+D,W={...this.#D,[Z.type]:C},z=this.#z(W,Z);if(z){this.inlineError=z,this.#E=null,this.#Z=!1;return}this.inlineError="",this.#D[Z.type]=C,this.#E=null,this.#Z=!1,this.#H(),B.index<this.#F.length-1&&(this.#B.segmentIndex=B.index+1,this.#B.positionInSegment=0,this.#Z=!0);return}this.#Z&&!E&&(this.#D[Z.type]="_".repeat(Z.len),this.#B.positionInSegment=0),this.#Z=!1,this.#E=null;let Y=this.#D[Z.type],J=Y.indexOf("_"),Q=J>=0?J:Math.min(this.#B.positionInSegment,Z.len-1);if(Q<0||Q>=Z.len)return;let X=Y.slice(0,Q)+D+Y.slice(Q+1),H=!1;if(Q===0&&Y==="__"&&(Z.type==="month"||Z.type==="day")){let C=Number.parseInt(D,10);X=`0${D}`,H=C<=(Z.type==="month"?1:2)}if(Z.type==="year"&&(X=(Y.replace(/_/g,"")+D).padStart(Z.len,"_")),!X.includes("_")){let C={...this.#D,[Z.type]:X},W=this.#z(C,Z);if(W){this.inlineError=W;return}}this.inlineError="",this.#D[Z.type]=X;let q=X.includes("_")?void 0:x6(this.#D);if(q){let{year:C,month:W}=q,z=nF(C,W);this.#D={year:String(Math.max(0,Math.min(9999,C))).padStart(4,"0"),month:String(Math.max(1,Math.min(12,W))).padStart(2,"0"),day:String(Math.max(1,Math.min(z,q.day))).padStart(2,"0")}}this.#H();let K=X.indexOf("_");H?(this.#Z=!0,this.#E=D):K>=0?this.#B.positionInSegment=K:J>=0&&B.index<this.#F.length-1?(this.#B.segmentIndex=B.index+1,this.#B.positionInSegment=0,this.#Z=!0):this.#B.positionInSegment=Math.min(Q+1,Z.len-1)}}#z(D,F){let{month:B,day:Z}=G2(D);if(F.type==="month"&&(B<0||B>12))return FD.date.messages.invalidMonth;if(F.type==="day"&&(Z<0||Z>31))return FD.date.messages.invalidDay(31,"any month")}#$(D){let{year:F,month:B,day:Z}=G2(this.#D);if(F&&B&&Z){let E=nF(F,B);this.#D={...this.#D,day:String(Math.min(Z,E)).padStart(2,"0")}}this.value=f6(this.#D)??D.defaultValue??void 0}}class b6 extends J0{options;cursor=0;#F;getGroupItems(D){return this.options.filter((F)=>F.group===D)}isGroupSelected(D){let F=this.getGroupItems(D),B=this.value;return B===void 0?!1:F.every((Z)=>B.includes(Z.value))}toggleValue(){let D=this.options[this.cursor];if(this.value===void 0&&(this.value=[]),D.group===!0){let F=D.value,B=this.getGroupItems(F);this.isGroupSelected(F)?this.value=this.value.filter((Z)=>B.findIndex((E)=>E.value===Z)===-1):this.value=[...this.value,...B.map((Z)=>Z.value)],this.value=Array.from(new Set(this.value))}else{let F=this.value.includes(D.value);this.value=F?this.value.filter((B)=>B!==D.value):[...this.value,D.value]}}constructor(D){super(D,!1);let{options:F}=D;this.#F=D.selectableGroups!==!1,this.options=Object.entries(F).flatMap(([B,Z])=>[{value:B,group:!0,label:B},...Z.map((E)=>({...E,group:B}))]),this.value=[...D.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:B})=>B===D.cursorAt),this.#F?0:1),this.on("cursor",(B)=>{switch(B){case"left":case"up":{this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;let Z=this.options[this.cursor]?.group===!0;!this.#F&&Z&&(this.cursor=this.cursor===0?this.options.length-1:this.cursor-1);break}case"down":case"right":{this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;let Z=this.options[this.cursor]?.group===!0;!this.#F&&Z&&(this.cursor=this.cursor===this.options.length-1?0:this.cursor+1);break}case"space":this.toggleValue();break}})}}class eF extends J0{options;cursor=0;get _selectedValue(){return this.options[this.cursor]}changeValue(){this.value=this._selectedValue.value}constructor(D){super(D,!1),this.options=D.options;let F=this.options.findIndex(({value:Z})=>Z===D.initialValue),B=F===-1?0:F;this.cursor=this.options[B].disabled?Y0(B,1,this.options):B,this.changeValue(),this.on("cursor",(Z)=>{switch(Z){case"left":case"up":this.cursor=Y0(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=Y0(this.cursor,1,this.options);break}this.changeValue()})}}class D1 extends J0{get userInputWithCursor(){if(this.state==="submit")return this.userInput;let D=this.userInput;if(this.cursor>=D.length)return`${this.userInput}█`;let F=D.slice(0,this.cursor),[B,...Z]=D.slice(this.cursor);return`${F}${aF("inverse",B)}${Z.join("")}`}get cursor(){return this._cursor}constructor(D){super({...D,initialUserInput:D.initialUserInput??D.initialValue}),this.on("userInput",(F)=>{this._setValue(F)}),this.on("finalize",()=>{this.value||(this.value=D.defaultValue),this.value===void 0&&(this.value="")})}}import{styleText as j,stripVTControlCharacters as iH}from"node:util";import uD from"node:process";var j0=TD(lF(),1);function uZ(){return uD.platform!=="win32"?uD.env.TERM!=="linux":!!uD.env.CI||!!uD.env.WT_SESSION||!!uD.env.TERMINUS_SUBLIME||uD.env.ConEmuTask==="{cmd::Cmder}"||uD.env.TERM_PROGRAM==="Terminus-Sublime"||uD.env.TERM_PROGRAM==="vscode"||uD.env.TERM==="xterm-256color"||uD.env.TERM==="alacritty"||uD.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var F1=uZ(),AZ=()=>process.env.CI==="true";var p=(D,F)=>F1?D:F,jZ=p("◆","*"),v6=p("■","x"),h6=p("▲","x"),Z1=p("◇","o"),MZ=p("┌","T"),a=p("│","|"),M0=p("└","—"),oH=p("┐","T"),tH=p("┘","—"),B1=p("●",">"),W2=p("○"," "),eH=p("◻","[•]"),DX=p("◼","[+]"),FX=p("◻","[ ]"),BX=p("▪","•"),ZX=p("─","-"),EX=p("╮","+"),YX=p("├","+"),JX=p("╯","+"),QX=p("╰","+"),HX=p("╭","+"),TZ=p("●","•"),IZ=p("◆","*"),LZ=p("▲","!"),RZ=p("■","x"),E1=(D)=>{switch(D){case"initial":case"active":return j("cyan",jZ);case"cancel":return j("red",v6);case"error":return j("yellow",h6);case"submit":return j("green",Z1)}},SZ=(D)=>{switch(D){case"initial":case"active":return j("cyan",a);case"cancel":return j("red",a);case"error":return j("yellow",a);case"submit":return j("green",a)}},_Z=(D,F,B,Z,E)=>{let Y=F,J=0;for(let Q=B;Q<Z;Q++){let X=D[Q];if(Y=Y-X.length,J++,Y<=E)break}return{lineCount:Y,removals:J}},kZ=({cursor:D,options:F,style:B,output:Z=process.stdout,maxItems:E=Number.POSITIVE_INFINITY,columnPadding:Y=0,rowPadding:J=4})=>{let Q=z2(Z)-Y,X=oF(Z),H=j("dim","..."),q=Math.max(X-J,0),K=Math.max(Math.min(E,q),5),C=0;D>=K-3&&(C=Math.max(Math.min(D-K+3,F.length-K),0));let W=K<F.length&&C>0,z=K<F.length&&C+K<F.length,U=Math.min(C+K,F.length),u=[],I=0;W&&I++,z&&I++;let A=C+(W?1:0),N=U-(z?1:0);for(let L=A;L<N;L++){let S=bD(B(F[L],L===D),Q,{hard:!0,trim:!1}).split(`
|
|
52
|
-
`);u.push(S),I+=S.length}if(I>q){let L=0,S=0,R=I,P=D-A,n=(c,v)=>_Z(u,R,c,v,q);W?({lineCount:R,removals:L}=n(0,P),R>q&&({lineCount:R,removals:S}=n(P+1,u.length))):({lineCount:R,removals:S}=n(P+1,u.length),R>q&&({lineCount:R,removals:L}=n(0,P))),L>0&&(W=!0,u.splice(0,L)),S>0&&(z=!0,u.splice(u.length-S,S))}let V=[];W&&V.push(H);for(let L of u)for(let S of L)V.push(S);return z&&V.push(H),V};var $2=(D)=>{let F=D.active??"Yes",B=D.inactive??"No";return new tF({active:F,inactive:B,signal:D.signal,input:D.input,output:D.output,initialValue:D.initialValue??!0,render(){let Z=D.withGuide??FD.withGuide,E=`${E1(this.state)} `,Y=Z?`${j("gray",a)} `:"",J=A0(D.output,D.message,Y,E),Q=`${Z?`${j("gray",a)}
|
|
53
|
-
`:""}${J}
|
|
54
|
-
`,X=this.value?F:B;switch(this.state){case"submit":{let H=Z?`${j("gray",a)} `:"";return`${Q}${H}${j("dim",X)}`}case"cancel":{let H=Z?`${j("gray",a)} `:"";return`${Q}${H}${j(["strikethrough","dim"],X)}${Z?`
|
|
55
|
-
${j("gray",a)}`:""}`}default:{let H=Z?`${j("cyan",a)} `:"",q=Z?j("cyan",M0):"";return`${Q}${H}${this.value?`${j("green",B1)} ${F}`:`${j("dim",W2)} ${j("dim",F)}`}${D.vertical?Z?`
|
|
56
|
-
${j("cyan",a)} `:`
|
|
57
|
-
`:` ${j("dim","/")} `}${this.value?`${j("dim",W2)} ${j("dim",B)}`:`${j("green",B1)} ${B}`}
|
|
58
|
-
${q}
|
|
59
|
-
`}}}}).prompt()};var hD={message:(D=[],{symbol:F=j("gray",a),secondarySymbol:B=j("gray",a),output:Z=process.stdout,spacing:E=1,withGuide:Y}={})=>{let J=[],Q=Y??FD.withGuide,X=Q?B:"",H=Q?`${F} `:"",q=Q?`${B} `:"";for(let C=0;C<E;C++)J.push(X);let K=Array.isArray(D)?D:D.split(`
|
|
60
|
-
`);if(K.length>0){let[C,...W]=K;C.length>0?J.push(`${H}${C}`):J.push(Q?F:"");for(let z of W)z.length>0?J.push(`${q}${z}`):J.push(Q?B:"")}Z.write(`${J.join(`
|
|
61
|
-
`)}
|
|
62
|
-
`)},info:(D,F)=>{hD.message(D,{...F,symbol:j("blue",TZ)})},success:(D,F)=>{hD.message(D,{...F,symbol:j("green",IZ)})},step:(D,F)=>{hD.message(D,{...F,symbol:j("green",Z1)})},warn:(D,F)=>{hD.message(D,{...F,symbol:j("yellow",LZ)})},warning:(D,F)=>{hD.warn(D,F)},error:(D,F)=>{hD.message(D,{...F,symbol:j("red",RZ)})}};var U2=(D="",F)=>{let B=F?.output??process.stdout,Z=F?.withGuide??FD.withGuide?`${j("gray",MZ)} `:"";B.write(`${Z}${D}
|
|
63
|
-
`)},V2=(D="",F)=>{let B=F?.output??process.stdout,Z=F?.withGuide??FD.withGuide?`${j("gray",a)}
|
|
64
|
-
${j("gray",M0)} `:"";B.write(`${Z}${D}
|
|
65
|
-
|
|
66
|
-
`)};var OZ=(D)=>j("magenta",D),g6=({indicator:D="dots",onCancel:F,output:B=process.stdout,cancelMessage:Z,errorMessage:E,frames:Y=F1?["◒","◐","◓","◑"]:["•","o","O","0"],delay:J=F1?80:120,signal:Q,...X}={})=>{let H=AZ(),q,K,C=!1,W=!1,z="",U,u=performance.now(),I=z2(B),A=X?.styleFrame??OZ,N=(_)=>{let g=_>1?E??FD.messages.error:Z??FD.messages.cancel;W=_===1,C&&(b(g,_),W&&typeof F=="function"&&F())},V=()=>N(2),L=()=>N(1),S=()=>{process.on("uncaughtExceptionMonitor",V),process.on("unhandledRejection",V),process.on("SIGINT",L),process.on("SIGTERM",L),process.on("exit",N),Q&&Q.addEventListener("abort",L)},R=()=>{process.removeListener("uncaughtExceptionMonitor",V),process.removeListener("unhandledRejection",V),process.removeListener("SIGINT",L),process.removeListener("SIGTERM",L),process.removeListener("exit",N),Q&&Q.removeEventListener("abort",L)},P=()=>{if(U===void 0)return;H&&B.write(`
|
|
67
|
-
`);let _=bD(U,I,{hard:!0,trim:!1}).split(`
|
|
68
|
-
`);_.length>1&&B.write(j0.cursor.up(_.length-1)),B.write(j0.cursor.to(0)),B.write(j0.erase.down())},n=(_)=>_.replace(/\.+$/,""),c=(_)=>{let g=(performance.now()-_)/1000,r=Math.floor(g/60),qD=Math.floor(g%60);return r>0?`[${r}m ${qD}s]`:`[${qD}s]`},v=X.withGuide??FD.withGuide,YD=(_="")=>{C=!0,q=y6({output:B}),z=n(_),u=performance.now(),v&&B.write(`${j("gray",a)}
|
|
69
|
-
`);let g=0,r=0;S(),K=setInterval(()=>{if(H&&z===U)return;P(),U=z;let qD=A(Y[g]),w0;if(H)w0=`${qD} ${z}...`;else if(D==="timer")w0=`${qD} ${z} ${c(u)}`;else{let C9=".".repeat(Math.floor(r)).slice(0,3);w0=`${qD} ${z}${C9}`}let z9=bD(w0,I,{hard:!0,trim:!1});B.write(z9),g=g+1<Y.length?g+1:0,r=r<4?r+0.125:0},J)},b=(_="",g=0,r=!1)=>{if(!C)return;C=!1,clearInterval(K),P();let qD=g===0?j("green",Z1):g===1?j("red",v6):j("red",h6);z=_??z,r||(D==="timer"?B.write(`${qD} ${z} ${c(u)}
|
|
70
|
-
`):B.write(`${qD} ${z}
|
|
71
|
-
`)),R(),q()};return{start:YD,stop:(_="")=>b(_,0),message:(_="")=>{z=n(_??z)},cancel:(_="")=>b(_,1),error:(_="")=>b(_,2),clear:()=>b("",0,!0),get isCancelled(){return W}}},XX={light:p("─","-"),heavy:p("━","="),block:p("█","#")};var C2=(D,F)=>D.includes(`
|
|
72
|
-
`)?D.split(`
|
|
73
|
-
`).map((B)=>F(B)).join(`
|
|
74
|
-
`):F(D),N2=(D)=>{let F=(B,Z)=>{let E=B.label??String(B.value);switch(Z){case"disabled":return`${j("gray",W2)} ${C2(E,(Y)=>j("gray",Y))}${B.hint?` ${j("dim",`(${B.hint??"disabled"})`)}`:""}`;case"selected":return`${C2(E,(Y)=>j("dim",Y))}`;case"active":return`${j("green",B1)} ${E}${B.hint?` ${j("dim",`(${B.hint})`)}`:""}`;case"cancelled":return`${C2(E,(Y)=>j(["strikethrough","dim"],Y))}`;default:return`${j("dim",W2)} ${C2(E,(Y)=>j("dim",Y))}`}};return new eF({options:D.options,signal:D.signal,input:D.input,output:D.output,initialValue:D.initialValue,render(){let B=D.withGuide??FD.withGuide,Z=`${E1(this.state)} `,E=`${SZ(this.state)} `,Y=A0(D.output,D.message,E,Z),J=`${B?`${j("gray",a)}
|
|
75
|
-
`:""}${Y}
|
|
76
|
-
`;switch(this.state){case"submit":{let Q=B?`${j("gray",a)} `:"",X=A0(D.output,F(this.options[this.cursor],"selected"),Q);return`${J}${X}`}case"cancel":{let Q=B?`${j("gray",a)} `:"",X=A0(D.output,F(this.options[this.cursor],"cancelled"),Q);return`${J}${X}${B?`
|
|
77
|
-
${j("gray",a)}`:""}`}default:{let Q=B?`${j("cyan",a)} `:"",X=B?j("cyan",M0):"",H=J.split(`
|
|
78
|
-
`).length,q=B?2:1;return`${J}${Q}${kZ({output:D.output,cursor:this.cursor,options:this.options,maxItems:D.maxItems,columnPadding:Q.length,rowPadding:H+q,style:(K,C)=>F(K,K.disabled?"disabled":C?"active":"inactive")}).join(`
|
|
79
|
-
${Q}`)}
|
|
80
|
-
${X}
|
|
81
|
-
`}}}}).prompt()};var qX=`${j("gray",a)} `;var PD=(D)=>new D1({validate:D.validate,placeholder:D.placeholder,defaultValue:D.defaultValue,initialValue:D.initialValue,output:D.output,signal:D.signal,input:D.input,render(){let F=D?.withGuide??FD.withGuide,B=`${`${F?`${j("gray",a)}
|
|
82
|
-
`:""}${E1(this.state)} `}${D.message}
|
|
83
|
-
`,Z=D.placeholder?j("inverse",D.placeholder[0])+j("dim",D.placeholder.slice(1)):j(["inverse","hidden"],"_"),E=this.userInput?this.userInputWithCursor:Z,Y=this.value??"";switch(this.state){case"error":{let J=this.error?` ${j("yellow",this.error)}`:"",Q=F?`${j("yellow",a)} `:"",X=F?j("yellow",M0):"";return`${B.trim()}
|
|
84
|
-
${Q}${E}
|
|
85
|
-
${X}${J}
|
|
86
|
-
`}case"submit":{let J=Y?` ${j("dim",Y)}`:"",Q=F?j("gray",a):"";return`${B}${Q}${J}`}case"cancel":{let J=Y?` ${j(["strikethrough","dim"],Y)}`:"",Q=F?j("gray",a):"";return`${B}${Q}${J}${Y.trim()?`
|
|
87
|
-
${Q}`:""}`}default:{let J=F?`${j("cyan",a)} `:"",Q=F?j("cyan",M0):"";return`${B}${J}${E}
|
|
88
|
-
${Q}
|
|
89
|
-
`}}}}).prompt();import U1 from"node:process";import E4 from"node:path";import{fileURLToPath as HE}from"node:url";import XE from"node:child_process";import qE,{constants as KE}from"node:fs/promises";import{promisify as mZ}from"node:util";import dZ from"node:child_process";import q1,{constants as i6}from"node:fs/promises";import c6 from"node:process";import wZ from"node:os";import H1 from"node:fs";import yZ from"node:fs";import m6 from"node:fs";var Y1;function fZ(){try{return m6.statSync("/.dockerenv"),!0}catch{return!1}}function PZ(){try{return m6.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}function J1(){if(Y1===void 0)Y1=fZ()||PZ();return Y1}var Q1,xZ=()=>{try{return yZ.statSync("/run/.containerenv"),!0}catch{return!1}};function sD(){if(Q1===void 0)Q1=xZ()||J1();return Q1}var d6=()=>{if(c6.platform!=="linux")return!1;if(wZ.release().toLowerCase().includes("microsoft")){if(sD())return!1;return!0}try{if(H1.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft"))return!sD()}catch{}if(H1.existsSync("/proc/sys/fs/binfmt_misc/WSLInterop")||H1.existsSync("/run/WSL"))return!sD();return!1},yD=c6.env.__IS_WSL_TEST__?d6:d6();import l6 from"node:process";import{Buffer as bZ}from"node:buffer";import{promisify as vZ}from"node:util";import hZ from"node:child_process";var gZ=vZ(hZ.execFile),X1=()=>`${l6.env.SYSTEMROOT||l6.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`;var CD=async(D,F={})=>{let{powerShellPath:B,...Z}=F,E=CD.encodeCommand(D);return gZ(B??X1(),[...CD.argumentsPrefix,E],{encoding:"utf8",...Z})};CD.argumentsPrefix=["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand"];CD.encodeCommand=(D)=>bZ.from(D,"utf16le").toString("base64");CD.escapeArgument=(D)=>`'${String(D).replaceAll("'","''")}'`;function p6(D){for(let F of D.split(`
|
|
90
|
-
`)){if(/^\s*#/.test(F))continue;let B=/^\s*root\s*=\s*(?<mountPoint>"[^"]*"|'[^']*'|[^#]*)/.exec(F);if(!B)continue;return B.groups.mountPoint.trim().replaceAll(/^["']|["']$/g,"")}}var cZ=mZ(dZ.execFile),lZ=(()=>{let F;return async function(){if(F)return F;let B="/etc/wsl.conf",Z=!1;try{await q1.access(B,i6.F_OK),Z=!0}catch{}if(!Z)return"/mnt/";let E=await q1.readFile(B,{encoding:"utf8"}),Y=p6(E);if(Y===void 0)return"/mnt/";return F=Y,F=F.endsWith("/")?F:`${F}/`,F}})(),pZ=async()=>{return`${await lZ()}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`},u2=yD?pZ:X1,a6,n6=async()=>{return a6??=(async()=>{try{let D=await u2();return await q1.access(D,i6.X_OK),!0}catch{return!1}})(),a6},r6=async()=>{let D=await u2(),F=String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`,{stdout:B}=await CD(F,{powerShellPath:D});return B.trim()},s6=async(D)=>{if(/^[a-z]+:\/\//i.test(D))return D;try{let{stdout:F}=await cZ("wslpath",["-aw",D],{encoding:"utf8"});return F.trim()}catch{return D}};function oD(D,F,B){let Z=(E)=>Object.defineProperty(D,F,{value:E,enumerable:!0,writable:!0});return Object.defineProperty(D,F,{configurable:!0,enumerable:!0,get(){let E=B();return Z(E),E},set(E){Z(E)}}),D}import{promisify as ZE}from"node:util";import C1 from"node:process";import{execFile as EE}from"node:child_process";import{promisify as aZ}from"node:util";import iZ from"node:process";import{execFile as nZ}from"node:child_process";var rZ=aZ(nZ);async function K1(){if(iZ.platform!=="darwin")throw Error("macOS only");let{stdout:D}=await rZ("defaults",["read","com.apple.LaunchServices/com.apple.launchservices.secure","LSHandlers"]),B=/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec(D)?.groups.id??"com.apple.Safari";if(B==="com.apple.safari")return"com.apple.Safari";return B}import sZ from"node:process";import{promisify as oZ}from"node:util";import{execFile as tZ,execFileSync as pX}from"node:child_process";var eZ=oZ(tZ);async function o6(D,{humanReadableOutput:F=!0,signal:B}={}){if(sZ.platform!=="darwin")throw Error("macOS only");let Z=F?[]:["-ss"],E={};if(B)E.signal=B;let{stdout:Y}=await eZ("osascript",["-e",D,Z],E);return Y.trim()}async function G1(D){return o6(`tell application "Finder" to set app_path to application file id "${D}" as string
|
|
91
|
-
tell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`)}import{promisify as DE}from"node:util";import{execFile as FE}from"node:child_process";var BE=DE(FE),A2={MSEdgeHTM:{name:"Edge",id:"com.microsoft.edge"},MSEdgeBHTML:{name:"Edge Beta",id:"com.microsoft.edge.beta"},MSEdgeDHTML:{name:"Edge Dev",id:"com.microsoft.edge.dev"},AppXq0fevzme2pys62n3e0fbqa7peapykr8v:{name:"Edge",id:"com.microsoft.edge.old"},ChromeHTML:{name:"Chrome",id:"com.google.chrome"},ChromeBHTML:{name:"Chrome Beta",id:"com.google.chrome.beta"},ChromeDHTML:{name:"Chrome Dev",id:"com.google.chrome.dev"},ChromiumHTM:{name:"Chromium",id:"org.chromium.Chromium"},BraveHTML:{name:"Brave",id:"com.brave.Browser"},BraveBHTML:{name:"Brave Beta",id:"com.brave.Browser.beta"},BraveDHTML:{name:"Brave Dev",id:"com.brave.Browser.dev"},BraveSSHTM:{name:"Brave Nightly",id:"com.brave.Browser.nightly"},FirefoxURL:{name:"Firefox",id:"org.mozilla.firefox"},OperaStable:{name:"Opera",id:"com.operasoftware.Opera"},VivaldiHTM:{name:"Vivaldi",id:"com.vivaldi.Vivaldi"},"IE.HTTP":{name:"Internet Explorer",id:"com.microsoft.ie"}},j2=new Map(Object.entries(A2));class t6 extends Error{}async function z1(D=BE){let{stdout:F}=await D("reg",["QUERY"," HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice","/v","ProgId"]),B=/ProgId\s*REG_SZ\s*(?<id>\S+)/.exec(F);if(!B)throw new t6(`Cannot find Windows browser in stdout: ${JSON.stringify(F)}`);let{id:Z}=B.groups,E=Z.lastIndexOf("."),Y=Z.lastIndexOf("-"),J=E===-1?void 0:Z.slice(0,E),Q=Y===-1?void 0:Z.slice(0,Y);return A2[Z]??A2[J]??A2[Q]??{name:Z,id:Z}}var YE=ZE(EE),JE=(D)=>D.toLowerCase().replaceAll(/(?:^|\s|-)\S/g,(F)=>F.toUpperCase());async function W1(){if(C1.platform==="darwin"){let D=await K1();return{name:await G1(D),id:D}}if(C1.platform==="linux"){let{stdout:D}=await YE("xdg-mime",["query","default","x-scheme-handler/http"]),F=D.trim();return{name:JE(F.replace(/.desktop$/,"").replace("-"," ")),id:F}}if(C1.platform==="win32")return z1();throw Error("Only macOS, Linux, and Windows are supported")}import $1 from"node:process";var QE=Boolean($1.env.SSH_CONNECTION||$1.env.SSH_CLIENT||$1.env.SSH_TTY),e6=QE;var M2=Symbol("fallbackAttempt"),V1=import.meta.url?E4.dirname(HE(import.meta.url)):"",D4=E4.join(V1,"xdg-open"),{platform:Q0,arch:F4}=U1,B4=async(D,F)=>{if(D.length===0)return;let B=[];for(let Z of D)try{return await F(Z)}catch(E){B.push(E)}throw AggregateError(B,"Failed to open in all supported apps")},T2=async(D)=>{D={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...D};let F=D[M2]===!0;if(delete D[M2],Array.isArray(D.app))return B4(D.app,(H)=>T2({...D,app:H,[M2]:!0}));let{name:B,arguments:Z=[]}=D.app??{};if(Z=[...Z],Array.isArray(B))return B4(B,(H)=>T2({...D,app:{name:H,arguments:Z},[M2]:!0}));if(B==="browser"||B==="browserPrivate"){let H={"com.google.chrome":"chrome","google-chrome.desktop":"chrome","com.brave.browser":"brave","org.mozilla.firefox":"firefox","firefox.desktop":"firefox","com.microsoft.msedge":"edge","com.microsoft.edge":"edge","com.microsoft.edgemac":"edge","microsoft-edge.desktop":"edge","com.apple.safari":"safari"},q={chrome:"--incognito",brave:"--incognito",firefox:"--private-window",edge:"--inPrivate"},K;if(yD){let C=await r6();K=j2.get(C)??{}}else K=await W1();if(K.id in H){let C=H[K.id.toLowerCase()];if(B==="browserPrivate"){if(C==="safari")throw Error("Safari doesn't support opening in private mode via command line");Z.push(q[C])}return T2({...D,app:{name:H0[C],arguments:Z}})}throw Error(`${K.name} is not supported as a default browser`)}let E,Y=[],J={},Q=!1;if(yD&&!sD()&&!e6&&!B)Q=await n6();if(Q0==="darwin"){if(E="open",D.wait)Y.push("--wait-apps");if(D.background)Y.push("--background");if(D.newInstance)Y.push("--new");if(B)Y.push("-a",B)}else if(Q0==="win32"||Q){if(E=await u2(),Y.push(...CD.argumentsPrefix),!yD)J.windowsVerbatimArguments=!0;if(yD&&D.target)D.target=await s6(D.target);let H=["$ProgressPreference = 'SilentlyContinue';","Start"];if(D.wait)H.push("-Wait");if(B){if(H.push(CD.escapeArgument(B)),D.target)Z.push(D.target)}else if(D.target)H.push(CD.escapeArgument(D.target));if(Z.length>0)Z=Z.map((q)=>CD.escapeArgument(q)),H.push("-ArgumentList",Z.join(","));if(D.target=CD.encodeCommand(H.join(" ")),!D.wait)J.stdio="ignore"}else{if(B)E=B;else{let H=!V1||V1==="/",q=!1;try{await qE.access(D4,KE.X_OK),q=!0}catch{}E=U1.versions.electron??(Q0==="android"||H||!q)?"xdg-open":D4}if(Z.length>0)Y.push(...Z);if(!D.wait)J.stdio="ignore",J.detached=!0}if(Q0==="darwin"&&Z.length>0)Y.push("--args",...Z);if(D.target)Y.push(D.target);let X=XE.spawn(E,Y,J);if(D.wait)return new Promise((H,q)=>{X.once("error",q),X.once("close",(K)=>{if(!D.allowNonzeroExitCode&&K!==0){q(Error(`Exited with code ${K}`));return}H(X)})});if(F)return new Promise((H,q)=>{X.once("error",q),X.once("spawn",()=>{X.once("close",(K)=>{if(X.off("error",q),K!==0){q(Error(`Exited with code ${K}`));return}X.unref(),H(X)})})});return X.unref(),new Promise((H,q)=>{X.once("error",q),X.once("spawn",()=>{X.off("error",q),H(X)})})},GE=(D,F)=>{if(typeof D!=="string")throw TypeError("Expected a `target`");return T2({...F,target:D})};function Z4(D){if(typeof D==="string"||Array.isArray(D))return D;let{[F4]:F}=D;if(!F)throw Error(`${F4} is not supported`);return F}function T0({[Q0]:D},{wsl:F}={}){if(F&&yD)return Z4(F);if(!D)throw Error(`${Q0} is not supported`);return Z4(D)}var H0={browser:"browser",browserPrivate:"browserPrivate"};oD(H0,"chrome",()=>T0({darwin:"google chrome",win32:"chrome",linux:["google-chrome","google-chrome-stable","chromium","chromium-browser"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe",x64:["/mnt/c/Program Files/Google/Chrome/Application/chrome.exe","/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe"]}}));oD(H0,"brave",()=>T0({darwin:"brave browser",win32:"brave",linux:["brave-browser","brave"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe",x64:["/mnt/c/Program Files/BraveSoftware/Brave-Browser/Application/brave.exe","/mnt/c/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe"]}}));oD(H0,"firefox",()=>T0({darwin:"firefox",win32:String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,linux:"firefox"},{wsl:"/mnt/c/Program Files/Mozilla Firefox/firefox.exe"}));oD(H0,"edge",()=>T0({darwin:"microsoft edge",win32:"msedge",linux:["microsoft-edge","microsoft-edge-dev"]},{wsl:"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"}));oD(H0,"safari",()=>T0({darwin:"Safari"}));var I2=GE;async function I0(D,F={}){let B=F.label??"Open";if(console.log(`${G.dim(B+":")} ${G.underline(G.cyan(D))}`),F.noBrowser)return"skipped";try{return await I2(D),"opened"}catch{return"failed"}}var L2="The API response format may have changed — try updating the CLI.";function R2(D,F){if(D==null)return[];if(Array.isArray(D))return D;$(`Unexpected API response: expected an array of ${F}.`,{hint:L2})}function Y4(D,F){if(D==null)return{};if(!Array.isArray(D)&&typeof D==="object"&&Object.values(D).every((B)=>typeof B==="boolean"))return D;$(`Unexpected API response: expected a ${F} object.`,{hint:L2})}function S2(D,F,B=F){if(D==null)return[];if(Array.isArray(D)||typeof D!=="object")$(`Unexpected API response: expected an array of ${B}.`,{hint:L2});let Z=D[F];if(!Array.isArray(Z))$(`Unexpected API response: expected an array of ${B}.`,{hint:L2});return Z}function zE(D){return R2(D,"plans")}var gD=["pro","business","enterprise"];async function tD(D,F){let{data:B,error:Z,status:E}=await D.api.billing.plans.get();if(E===401)throw new f(F);if(Z)$(`Failed to list plans: ${k(Z)}`);return zE(B)}async function J4(D,F,B){let{data:Z,error:E,status:Y}=await D.api.projects({id:F}).subscription.get();if(Y===401)throw new f(B);if(E){let J=typeof Y==="number"?Y:0;if(!(J===0||J>=500))$(`Failed to fetch subscription: ${k(E)}`);return console.error(G.warn(`Could not read subscription for project ${F}: ${k(E)}. Subscription state unknown.`)),{tier:"unknown",status:null}}return Z??{}}function _2(D,F){let B=F.toLowerCase();for(let Z of D){if(!Z.name.toLowerCase().includes(B))continue;if(!Z.prices?.length)continue;return Z}return null}function k2(D){let F=D.toLowerCase();for(let B of gD)if(F.includes(B))return B;return}async function O2(D){if(!GD())$("Cannot prompt for a plan in non-interactive mode.",{hint:"Pass a tier (pro / business / enterprise) or --plan <price-id>."});let F=D.filter((E)=>E.prices&&E.prices.length>0);if(F.length===0)$("No subscription plans available.",{hint:"Contact support if you expected plans to be listed."});let B=[];for(let E of F)for(let Y of E.prices??[])B.push({value:{plan:E,price:Y},label:`${E.name} — ${CE(Y)}`,hint:E.description});let Z=await N2({message:"Pick a plan",options:B});if(BD(Z))$("Aborted.");return Z}function L0({explicitNoBrowser:D,json:F}){if(F||D)return!0;return!GD()}async function f2(D){let{data:F,error:B,status:Z}=await D.api.api.billing.checkout.post({projectId:D.projectId,priceId:D.priceId,quantity:D.quantity});if(Z===401)throw new f(D.envName);if(B)$(`Failed to start checkout: ${k(B)}`);let E=F;if(E.error)$(E.error);if(!E.url)$("Server did not return a checkout URL.");let Y={action:"checkout",url:E.url,...D.tierLabel?{tier:D.tierLabel}:{}};if(D.json)return w(Y),Y;if(await I0(Y.url,{noBrowser:D.noBrowser,label:"Stripe checkout"})==="failed")console.log(G.warn("Could not open browser automatically — copy the URL above."));return Y}async function P2(D){let{data:F,error:B,status:Z}=await D.api.api.projects({id:D.projectId}).subscription.manage.post();if(Z===401)throw new f(D.envName);if(B)$(`Failed to open portal: ${k(B)}`);let E=F;if(E.error)$(E.error);if(!E.url)$("Server did not return a portal URL.");let Y={action:"manage",url:E.url};if(D.json)return w(Y),Y;if(await I0(Y.url,{noBrowser:D.noBrowser,label:"Stripe portal"})==="failed")console.log(G.warn("Could not open browser automatically — copy the URL above."));return Y}function CE(D){if(D.unit_amount==null)return"—";let F=D.currency.toUpperCase(),B=2;try{B=new Intl.NumberFormat("en-US",{style:"currency",currency:F}).resolvedOptions().maximumFractionDigits??2}catch{}let Z=10**B,E=(D.unit_amount/Z).toFixed(B),Y=D.recurring?.interval;return Y?`${E} ${F} / ${Y}`:`${E} ${F}`}var Q4=TD(kF(),1),{program:fq,createCommand:Pq,createArgument:yq,createOption:xq,CommanderError:wq,InvalidArgumentError:N1,InvalidOptionArgumentError:bq,Command:vq,Argument:hq,Option:gq,Help:mq}=Q4.default;function y2(D){if(!/^\d+$/.test(D))throw new N1(`must be a positive integer (got "${D}")`);let F=Number.parseInt(D,10);if(!Number.isSafeInteger(F)||F<1)throw new N1(`must be a positive integer (got "${D}")`);return F}function H4(D){let F=D.command("billing").description("view + manage your project's subscription");WE(F),$E(F),UE(F),NE(F)}function WE(D){D.command("plans").description("list available subscription plans").option("-p, --project <id>","project id (accepted for parity with other billing commands; not used)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(F)=>{let{api:B,env:Z}=await x({apiHost:F.apiHost,token:F.token,requireAuth:!0}),E=await tD(B,Z.name);if(F.json)return w(E);if(E.length===0){console.log(G.dim("No plans available."));return}let Y=E.flatMap((J)=>(J.prices??[{id:"—",unit_amount:null,currency:"—",recurring:null}]).map((Q)=>[J.name,Q.id,uE(Q),Q.recurring?.interval??G.dim("—")]));$D(["plan","price id","price","interval"],Y)})}function $E(D){D.command("show").description("show the project's current subscription (defaults to $PHOTON_PROJECT_ID)").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(F)=>{let{projectId:B,env:Z}=await m({flagProjectId:F.project,apiHost:F.apiHost}),{api:E}=await x({apiHost:Z.url,token:F.token,requireAuth:!0}),{data:Y,error:J,status:Q}=await E.api.projects({id:B}).subscription.get();if(Q===401)throw new f(Z.name);if(J)$(`Failed to fetch subscription: ${k(J)}`);if(F.json)return w(Y??{});let X=Y??{};if(console.log(G.bold("Subscription")),console.log(` ${G.dim("tier".padEnd(8))} ${AE(X.tier)}`),console.log(` ${G.dim("status".padEnd(8))} ${jE(X.status??null)}`),X.subscriptionId)console.log(` ${G.dim("id".padEnd(8))} ${X.subscriptionId}`);if(X.tier==="unknown")console.log(),console.log(G.warn('Server returned tier "unknown". This is a known issue (architecture-review S3) — the subscription may still be active.'))})}function UE(D){D.command("checkout [tier]").description("start a subscription checkout (interactive picker when no tier / --plan)").option("--plan <price-id>","Stripe price id (escape hatch; overrides tier picker)").option("--qty <n>","quantity",y2).option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--no-browser","print the URL instead of launching a browser").option("--json","output JSON ({action,url,tier?}) and skip browser open").action(async(F,B)=>{let Z=VE(F);if(F&&!Z)$(`Unknown tier "${F}".`,{hint:`Use one of: ${gD.join(", ")} — or pass --plan <price-id>.`});let{projectId:E,env:Y}=await m({flagProjectId:B.project,apiHost:B.apiHost}),{api:J}=await x({apiHost:Y.url,token:B.token,requireAuth:!0}),Q=L0({explicitNoBrowser:B.browser===!1,json:B.json??!1}),X,H;if(B.plan)X=B.plan;else if(Z){let q=await tD(J,Y.name),K=_2(q,Z),C=K?.prices?.length===1?K.prices[0]:void 0;if(!K||!K.prices?.length)$(`No plan matching tier "${Z}".`,{hint:"List options with `photon billing plans`."});if(!C)$(`Tier "${Z}" has multiple billing intervals.`,{hint:"Pass --plan <price-id> to choose, or omit the tier to use the interactive picker."});X=C.id,H=Z}else{let q=await tD(J,Y.name),K=await O2(q);X=K.price.id,H=k2(K.plan.name)}await f2({api:J,projectId:E,priceId:X,quantity:B.qty,envName:Y.name,json:B.json??!1,noBrowser:Q,tierLabel:H})})}function VE(D){if(!D)return;let F=D.trim().toLowerCase();return gD.includes(F)?F:void 0}function NE(D){D.command("manage").alias("portal").description("open the Stripe customer portal for this project").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--no-browser","print the URL instead of launching a browser").option("--json","output JSON ({action,url}) and skip browser open").action(async(F)=>{let{projectId:B,env:Z}=await m({flagProjectId:F.project,apiHost:F.apiHost}),{api:E}=await x({apiHost:Z.url,token:F.token,requireAuth:!0}),Y=L0({explicitNoBrowser:F.browser===!1,json:F.json??!1});await P2({api:E,projectId:B,envName:Z.name,json:F.json??!1,noBrowser:Y})})}function uE(D){if(D.unit_amount==null)return G.dim("—");let F=D.currency.toUpperCase(),B=2;try{B=new Intl.NumberFormat("en-US",{style:"currency",currency:F}).resolvedOptions().maximumFractionDigits??2}catch{}let Z=10**B;return`${(D.unit_amount/Z).toFixed(B)} ${F}`}function AE(D){if(!D)return G.dim("—");if(D==="free")return G.dim(D);if(D==="unknown")return G.yellow(D);return G.green(D)}function jE(D){if(!D)return G.dim("—");switch(D){case"active":return G.green(D);case"past_due":case"unpaid":return G.red(D);case"trialing":return G.cyan(D);case"canceled":return G.dim(D);default:return D}}function X4(D){D.command("config").description("inspect Photon CLI configuration").command("show",{isDefault:!0}).description("dump the active configuration (no secrets printed)").option("--json","output JSON").action(async(B)=>{let Z=await XD(),E=await Z2(),Y=process.env.PHOTON_PROJECT_ID?.trim()||null,J={configDir:F2(),currentEnv:{name:Z.name,url:Z.url},activeProject:Y,authedEnvs:E};if(B.json)return w(J);console.log(G.bold("Photon CLI configuration")),console.log();let Q=18;X("config dir",J.configDir),X("active backend",`${G.bold(J.currentEnv.name)} ${G.dim(`(${J.currentEnv.url})`)}`),X("active project",Y?`${G.bold(Y)} ${G.dim("(via $PHOTON_PROJECT_ID)")}`:G.dim("(none — pass --project <id> or set $PHOTON_PROJECT_ID)")),X("logged-in keys",E.length>0?E.join(", "):G.dim("none"));function X(H,q){console.log(` ${G.dim(H.padEnd(Q))} ${q}`)}})}function q4(D){D.command("env").description("show the active backend (set via PHOTON_API_HOST or --api-host)").command("current",{isDefault:!0}).description("print the resolved API host").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").action(async(B)=>{let Z=await XD(B.apiHost);console.log(`${G.bold(Z.name)} ${G.dim(`(${Z.url})`)}`)})}var x2=Symbol.for("better-auth:broadcast-channel"),ME=()=>Math.floor(Date.now()/1000),TE=class{listeners=new Set;name;constructor(D="better-auth.message"){this.name=D}subscribe(D){return this.listeners.add(D),()=>{this.listeners.delete(D)}}post(D){if(typeof window>"u")return;try{localStorage.setItem(this.name,JSON.stringify({...D,timestamp:ME()}))}catch{}}setup(){if(typeof window>"u"||typeof window.addEventListener>"u")return()=>{};let D=(F)=>{if(F.key!==this.name)return;let B=JSON.parse(F.newValue??"{}");if(B?.event!=="session"||!B?.data)return;this.listeners.forEach((Z)=>Z(B))};return window.addEventListener("storage",D),()=>{window.removeEventListener("storage",D)}}};function R0(D="better-auth.message"){if(!globalThis[x2])globalThis[x2]=new TE(D);return globalThis[x2]}var w2=Symbol.for("better-auth:focus-manager"),IE=class{listeners=new Set;subscribe(D){return this.listeners.add(D),()=>{this.listeners.delete(D)}}setFocused(D){this.listeners.forEach((F)=>F(D))}setup(){if(typeof window>"u"||typeof document>"u"||typeof window.addEventListener>"u")return()=>{};let D=()=>{if(document.visibilityState==="visible")this.setFocused(!0)};return document.addEventListener("visibilitychange",D,!1),()=>{document.removeEventListener("visibilitychange",D,!1)}}};function u1(){if(!globalThis[w2])globalThis[w2]=new IE;return globalThis[w2]}var b2=Symbol.for("better-auth:online-manager"),LE=class{listeners=new Set;isOnline=typeof navigator<"u"?navigator.onLine:!0;subscribe(D){return this.listeners.add(D),()=>{this.listeners.delete(D)}}setOnline(D){this.isOnline=D,this.listeners.forEach((F)=>F(D))}setup(){if(typeof window>"u"||typeof window.addEventListener>"u")return()=>{};let D=()=>this.setOnline(!0),F=()=>this.setOnline(!1);return window.addEventListener("online",D,!1),window.addEventListener("offline",F,!1),()=>{window.removeEventListener("online",D,!1),window.removeEventListener("offline",F,!1)}}};function v2(){if(!globalThis[b2])globalThis[b2]=new LE;return globalThis[b2]}var S0=Symbol("clean");var AD=[],mD=0,h2=4,RE=globalThis.nanostoresGlobal||={epoch:0},_0=(D)=>{let F=[],B={get(){if(!B.lc)B.listen(()=>{})();return B.value},init:D,lc:0,listen(Z){return B.lc=F.push(Z),()=>{for(let Y=mD+h2;Y<AD.length;)if(AD[Y]===Z)AD.splice(Y,h2);else Y+=h2;let E=F.indexOf(Z);if(~E){if(F.splice(E,1),!--B.lc)B.off()}}},notify(Z,E){RE.epoch++;let Y=!AD.length;for(let J of F)AD.push(J,B.value,Z,E);if(Y){for(mD=0;mD<AD.length;mD+=h2)AD[mD](AD[mD+1],AD[mD+2],AD[mD+3]);AD.length=0}},off(){},set(Z){let E=B.value;if(E!==Z)B.value=Z,B.notify(E)},subscribe(Z){let E=B.listen(Z);return Z(B.value),E},value:D};return B[S0]=()=>{F=[],B.lc=0,B.off()},B};var SE=5,X0=6,g2=10,_E=(D,F,B,Z)=>{if(D.events=D.events||{},!D.events[B+g2])D.events[B+g2]=Z((E)=>{D.events[B].reduceRight((Y,J)=>(J(Y),Y),{shared:{},...E})});return D.events[B]=D.events[B]||[],D.events[B].push(F),()=>{let E=D.events[B],Y=E.indexOf(F);if(E.splice(Y,1),!E.length)delete D.events[B],D.events[B+g2](),delete D.events[B+g2]}};var K4=1000,k0=(D,F)=>{return _E(D,(Z)=>{let E=F(Z);if(E)D.events[X0].push(E)},SE,(Z)=>{let E=D.listen;D.listen=(...J)=>{if(!D.lc&&!D.active)D.active=!0,Z();return E(...J)};let Y=D.off;D.events[X0]=[],D.off=()=>{Y(),setTimeout(()=>{if(D.active&&!D.lc){D.active=!1;for(let J of D.events[X0])J();D.events[X0]=[]}},K4)};{let J=D[S0];D[S0]=()=>{for(let Q of D.events[X0])Q();D.events[X0]=[],D.active=!1,J()}}return()=>{D.listen=E,D.off=Y}})};var kE=()=>typeof window>"u",m2=(D,F,B,Z)=>{let E=_0({data:null,error:null,isPending:!0,isRefetching:!1,refetch:(Q)=>Y(Q)}),Y=async(Q)=>{return new Promise((X)=>{let H=typeof Z==="function"?Z({data:E.get().data,error:E.get().error,isPending:E.get().isPending}):Z;B(F,{...H,query:{...H?.query,...Q?.query},async onSuccess(q){E.set({data:q.data,error:null,isPending:!1,isRefetching:!1,refetch:E.value.refetch}),await H?.onSuccess?.(q)},async onError(q){let{request:K}=q,C=typeof K.retry==="number"?K.retry:K.retry?.attempts,W=K.retryAttempt||0;if(C&&W<C)return;E.set({error:q.error,data:null,isPending:!1,isRefetching:!1,refetch:E.value.refetch}),await H?.onError?.(q)},async onRequest(q){let K=E.get();E.set({isPending:K.data===null,data:K.data,error:null,isRefetching:!0,refetch:E.value.refetch}),await H?.onRequest?.(q)}}).catch((q)=>{E.set({error:q,data:null,isPending:!1,isRefetching:!1,refetch:E.value.refetch})}).finally(()=>{X(void 0)})})};D=Array.isArray(D)?D:[D];let J=!1;for(let Q of D)Q.subscribe(async()=>{if(kE())return;if(J)await Y();else k0(E,()=>{let X=setTimeout(async()=>{if(!J)await Y(),J=!0},0);return()=>{E.off(),Q.off(),clearTimeout(X)}})});return E};var q0=()=>Math.floor(Date.now()/1000),OE=5;function A1(D){let{sessionAtom:F,sessionSignal:B,$fetch:Z,options:E={}}=D,Y=E.sessionOptions?.refetchInterval??0,J=E.sessionOptions?.refetchOnWindowFocus??!0,Q=E.sessionOptions?.refetchWhenOffline??!1,X={lastSync:0,lastSessionRequest:0,cachedSession:void 0},H=()=>{return Q||v2().isOnline},q=(A)=>{if(!H())return;if(A?.event==="storage"){X.lastSync=q0(),B.set(!B.get());return}let N=F.get();if(A?.event==="poll"){X.lastSessionRequest=q0(),Z("/get-session").then((V)=>{if(V.error)F.set({...N,data:null,error:V.error});else F.set({...N,data:V.data,error:null});X.lastSync=q0(),B.set(!B.get())}).catch(()=>{});return}if(A?.event==="visibilitychange"){if(q0()-X.lastSessionRequest<OE)return;X.lastSessionRequest=q0()}if(N?.data===null||N?.data===void 0||A?.event==="visibilitychange")X.lastSync=q0(),B.set(!B.get())},K=(A)=>{R0().post({event:"session",data:{trigger:A},clientId:Math.random().toString(36).substring(7)})},C=()=>{if(Y&&Y>0)X.pollInterval=setInterval(()=>{if(F.get()?.data)q({event:"poll"})},Y*1000)},W=()=>{X.unsubscribeBroadcast=R0().subscribe(()=>{q({event:"storage"})})},z=()=>{if(!J)return;X.unsubscribeFocus=u1().subscribe(()=>{q({event:"visibilitychange"})})},U=()=>{X.unsubscribeOnline=v2().subscribe((A)=>{if(A)q({event:"visibilitychange"})})};return{init:()=>{C(),W(),z(),U(),R0().setup(),u1().setup(),v2().setup()},cleanup:()=>{if(X.pollInterval)clearInterval(X.pollInterval),X.pollInterval=void 0;if(X.unsubscribeBroadcast)X.unsubscribeBroadcast(),X.unsubscribeBroadcast=void 0;if(X.unsubscribeFocus)X.unsubscribeFocus(),X.unsubscribeFocus=void 0;if(X.unsubscribeOnline)X.unsubscribeOnline(),X.unsubscribeOnline=void 0;X.lastSync=0,X.lastSessionRequest=0,X.cachedSession=void 0},triggerRefetch:q,broadcastSessionUpdate:K}}var d2=Object.create(null),O0=(D)=>globalThis.process?.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(D?d2:globalThis),HD=new Proxy(d2,{get(D,F){return O0()[F]??d2[F]},has(D,F){return F in O0()||F in d2},set(D,F,B){let Z=O0(!0);return Z[F]=B,!0},deleteProperty(D,F){if(!F)return!1;let B=O0(!0);return delete B[F],!0},ownKeys(){let D=O0(!0);return Object.keys(D)}});var fE=typeof process<"u"&&process.env&&"development"||"";function l(D,F){if(typeof process<"u"&&process.env)return process.env[D]??F;if(typeof Deno<"u")return Deno.env.get(D)??F;if(typeof Bun<"u")return Bun.env[D]??F;return F}var PE=Object.freeze({get BETTER_AUTH_SECRET(){return l("BETTER_AUTH_SECRET")},get AUTH_SECRET(){return l("AUTH_SECRET")},get BETTER_AUTH_TELEMETRY(){return l("BETTER_AUTH_TELEMETRY")},get BETTER_AUTH_TELEMETRY_ID(){return l("BETTER_AUTH_TELEMETRY_ID")},get NODE_ENV(){return l("NODE_ENV","development")},get PACKAGE_VERSION(){return l("PACKAGE_VERSION","0.0.0")},get BETTER_AUTH_TELEMETRY_ENDPOINT(){return l("BETTER_AUTH_TELEMETRY_ENDPOINT","")}});var f0=1,o=4,SD=8,WD=24,G4={eterm:o,cons25:o,console:o,cygwin:o,dtterm:o,gnome:o,hurd:o,jfbterm:o,konsole:o,kterm:o,mlterm:o,mosh:WD,putty:o,st:o,"rxvt-unicode-24bit":WD,terminator:WD,"xterm-kitty":WD},yE=new Map(Object.entries({APPVEYOR:SD,BUILDKITE:SD,CIRCLECI:WD,DRONE:SD,GITEA_ACTIONS:WD,GITHUB_ACTIONS:WD,GITLAB_CI:SD,TRAVIS:SD})),xE=[/ansi/,/color/,/linux/,/direct/,/^con[0-9]*x[0-9]/,/^rxvt/,/^screen/,/^xterm/,/^vt100/,/^vt220/];function j1(){if(l("FORCE_COLOR")!==void 0)switch(l("FORCE_COLOR")){case"":case"1":case"true":return o;case"2":return SD;case"3":return WD;default:return f0}if(l("NODE_DISABLE_COLORS")!==void 0&&l("NODE_DISABLE_COLORS")!==""||l("NO_COLOR")!==void 0&&l("NO_COLOR")!==""||l("TERM")==="dumb")return f0;if(l("TMUX"))return WD;if("TF_BUILD"in HD&&"AGENT_NAME"in HD)return o;if("CI"in HD){for(let{0:D,1:F}of yE)if(D in HD)return F;if(l("CI_NAME")==="codeship")return SD;return f0}if("TEAMCITY_VERSION"in HD)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.exec(l("TEAMCITY_VERSION"))!==null?o:f0;switch(l("TERM_PROGRAM")){case"iTerm.app":if(!l("TERM_PROGRAM_VERSION")||/^[0-2]\./.exec(l("TERM_PROGRAM_VERSION"))!==null)return SD;return WD;case"HyperTerm":case"MacTerm":return WD;case"Apple_Terminal":return SD}if(l("COLORTERM")==="truecolor"||l("COLORTERM")==="24bit")return WD;if(l("TERM")){if(/truecolor/.exec(l("TERM"))!==null)return WD;if(/^xterm-256/.exec(l("TERM"))!==null)return SD;let D=l("TERM").toLowerCase();if(G4[D])return G4[D];if(xE.some((F)=>F.exec(D)!==null))return o}if(l("COLORTERM"))return o;return f0}var jD={reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",undim:"\x1B[22m",underscore:"\x1B[4m",blink:"\x1B[5m",reverse:"\x1B[7m",hidden:"\x1B[8m",fg:{black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m"},bg:{black:"\x1B[40m",red:"\x1B[41m",green:"\x1B[42m",yellow:"\x1B[43m",blue:"\x1B[44m",magenta:"\x1B[45m",cyan:"\x1B[46m",white:"\x1B[47m"}},c2=["debug","info","success","warn","error"];function z4(D,F){return c2.indexOf(F)>=c2.indexOf(D)}var wE={info:jD.fg.blue,success:jD.fg.green,warn:jD.fg.yellow,error:jD.fg.red,debug:jD.fg.magenta},bE=(D,F,B)=>{let Z=new Date().toISOString();if(B)return`${jD.dim}${Z}${jD.reset} ${wE[D]}${D.toUpperCase()}${jD.reset} ${jD.bright}[Better Auth]:${jD.reset} ${F}`;return`${Z} ${D.toUpperCase()} [Better Auth]: ${F}`},C4=(D)=>{let F=D?.disabled!==!0,B=D?.level??"warn",Z=D?.disableColors!==void 0?!D.disableColors:j1()!==1,E=(Y,J,Q=[])=>{if(!F||!z4(B,Y))return;let X=bE(Y,J,Z);if(!D||typeof D.log!=="function"){if(Y==="error")console.error(X,...Q);else if(Y==="warn")console.warn(X,...Q);else console.log(X,...Q);return}D.log(Y==="success"?"info":Y,J,...Q)};return{...Object.fromEntries(c2.map((Y)=>[Y,(...[J,...Q])=>E(Y,J,Q)])),get level(){return B}}},W4=C4();function M1(D){return D}function T1(D){return D.charAt(0).toUpperCase()+D.slice(1)}var vE=M1({USER_NOT_FOUND:"User not found",FAILED_TO_CREATE_USER:"Failed to create user",FAILED_TO_CREATE_SESSION:"Failed to create session",FAILED_TO_UPDATE_USER:"Failed to update user",FAILED_TO_GET_SESSION:"Failed to get session",INVALID_PASSWORD:"Invalid password",INVALID_EMAIL:"Invalid email",INVALID_EMAIL_OR_PASSWORD:"Invalid email or password",SOCIAL_ACCOUNT_ALREADY_LINKED:"Social account already linked",PROVIDER_NOT_FOUND:"Provider not found",INVALID_TOKEN:"Invalid token",ID_TOKEN_NOT_SUPPORTED:"id_token not supported",FAILED_TO_GET_USER_INFO:"Failed to get user info",USER_EMAIL_NOT_FOUND:"User email not found",EMAIL_NOT_VERIFIED:"Email not verified",PASSWORD_TOO_SHORT:"Password too short",PASSWORD_TOO_LONG:"Password too long",USER_ALREADY_EXISTS:"User already exists.",USER_ALREADY_EXISTS_USE_ANOTHER_EMAIL:"User already exists. Use another email.",EMAIL_CAN_NOT_BE_UPDATED:"Email can not be updated",CREDENTIAL_ACCOUNT_NOT_FOUND:"Credential account not found",SESSION_EXPIRED:"Session expired. Re-authenticate to perform this action.",FAILED_TO_UNLINK_LAST_ACCOUNT:"You can't unlink your last account",ACCOUNT_NOT_FOUND:"Account not found",USER_ALREADY_HAS_PASSWORD:"User already has a password. Provide that to delete the account.",CROSS_SITE_NAVIGATION_LOGIN_BLOCKED:"Cross-site navigation login blocked. This request appears to be a CSRF attack.",VERIFICATION_EMAIL_NOT_ENABLED:"Verification email isn't enabled",EMAIL_ALREADY_VERIFIED:"Email is already verified",EMAIL_MISMATCH:"Email mismatch",SESSION_NOT_FRESH:"Session is not fresh",LINKED_ACCOUNT_ALREADY_EXISTS:"Linked account already exists",INVALID_ORIGIN:"Invalid origin",INVALID_CALLBACK_URL:"Invalid callbackURL",INVALID_REDIRECT_URL:"Invalid redirectURL",INVALID_ERROR_CALLBACK_URL:"Invalid errorCallbackURL",INVALID_NEW_USER_CALLBACK_URL:"Invalid newUserCallbackURL",MISSING_OR_NULL_ORIGIN:"Missing or null Origin",CALLBACK_URL_REQUIRED:"callbackURL is required",FAILED_TO_CREATE_VERIFICATION:"Unable to create verification",FIELD_NOT_ALLOWED:"Field not allowed to be set",ASYNC_VALIDATION_NOT_SUPPORTED:"Async validation is not supported",VALIDATION_ERROR:"Validation Error",MISSING_FIELD:"Field is required"});var dD=class extends Error{constructor(D,F){super(D,F);this.name="BetterAuthError",this.message=D,this.stack=""}};function hE(D){try{return(new URL(D).pathname.replace(/\/+$/,"")||"/")!=="/"}catch{throw new dD(`Invalid base URL: ${D}. Please provide a valid base URL.`)}}function gE(D){try{let F=new URL(D);if(F.protocol!=="http:"&&F.protocol!=="https:")throw new dD(`Invalid base URL: ${D}. URL must include 'http://' or 'https://'`)}catch(F){if(F instanceof dD)throw F;throw new dD(`Invalid base URL: ${D}. Please provide a valid base URL.`,{cause:F})}}function P0(D,F="/api/auth"){if(gE(D),hE(D))return D;let B=D.replace(/\/+$/,"");if(!F||F==="/")return B;return F=F.startsWith("/")?F:`/${F}`,`${B}${F}`}function $4(D,F){if(!D||D.trim()==="")return!1;if(F==="proto")return D==="http"||D==="https";if(F==="host"){if([/\.\./,/\0/,/[\s]/,/^[.]/,/[<>'"]/,/javascript:/i,/file:/i,/data:/i].some((B)=>B.test(D)))return!1;return/^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*(:[0-9]{1,5})?$/.test(D)||/^(\d{1,3}\.){3}\d{1,3}(:[0-9]{1,5})?$/.test(D)||/^\[[0-9a-fA-F:]+\](:[0-9]{1,5})?$/.test(D)||/^localhost(:[0-9]{1,5})?$/i.test(D)}return!1}function U4(D,F,B,Z,E){if(D)return P0(D,F);if(Z!==!1){let Q=HD.BETTER_AUTH_URL||HD.NEXT_PUBLIC_BETTER_AUTH_URL||HD.PUBLIC_BETTER_AUTH_URL||HD.NUXT_PUBLIC_BETTER_AUTH_URL||HD.NUXT_PUBLIC_AUTH_URL||(HD.BASE_URL!=="/"?HD.BASE_URL:void 0);if(Q)return P0(Q,F)}let Y=B?.headers.get("x-forwarded-host"),J=B?.headers.get("x-forwarded-proto");if(Y&&J&&E){if($4(J,"proto")&&$4(Y,"host"))try{return P0(`${J}://${Y}`,F)}catch(Q){}}if(B){let Q=mE(B.url);if(!Q)throw new dD("Could not get origin from request. Please provide a valid base URL.");return P0(Q,F)}if(typeof window<"u"&&window.location)return P0(window.location.origin,F)}function mE(D){try{let F=new URL(D);return F.origin==="null"?null:F.origin}catch{return null}}var V4={id:"redirect",name:"Redirect",hooks:{onSuccess(D){if(D.data?.url&&D.data?.redirect){if(typeof window<"u"&&window.location){if(window.location)try{window.location.href=D.data.url}catch{}}}}}};var dE={proto:/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,constructor:/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,protoShort:/"__proto__"\s*:/,constructorShort:/"constructor"\s*:/},cE=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/,N4={true:!0,false:!1,null:null,undefined:void 0,nan:NaN,infinity:Number.POSITIVE_INFINITY,"-infinity":Number.NEGATIVE_INFINITY},lE=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,7}))?(?:Z|([+-])(\d{2}):(\d{2}))$/;function pE(D){return D instanceof Date&&!isNaN(D.getTime())}function aE(D){let F=lE.exec(D);if(!F)return null;let[,B,Z,E,Y,J,Q,X,H,q,K]=F,C=new Date(Date.UTC(parseInt(B,10),parseInt(Z,10)-1,parseInt(E,10),parseInt(Y,10),parseInt(J,10),parseInt(Q,10),X?parseInt(X.padEnd(3,"0"),10):0));if(H){let W=(parseInt(q,10)*60+parseInt(K,10))*(H==="+"?-1:1);C.setUTCMinutes(C.getUTCMinutes()+W)}return pE(C)?C:null}function iE(D,F={}){let{strict:B=!1,warnings:Z=!1,reviver:E,parseDates:Y=!0}=F;if(typeof D!=="string")return D;let J=D.trim();if(J.length>0&&J[0]==='"'&&J.endsWith('"')&&!J.slice(1,-1).includes('"'))return J.slice(1,-1);let Q=J.toLowerCase();if(Q.length<=9&&Q in N4)return N4[Q];if(!cE.test(J)){if(B)throw SyntaxError("[better-json] Invalid JSON");return D}if(Object.entries(dE).some(([X,H])=>{let q=H.test(J);if(q&&Z)console.warn(`[better-json] Detected potential prototype pollution attempt using ${X} pattern`);return q})&&B)throw Error("[better-json] Potential prototype pollution attempt detected");try{return JSON.parse(J,(H,q)=>{if(H==="__proto__"||H==="constructor"&&q&&typeof q==="object"&&"prototype"in q){if(Z)console.warn(`[better-json] Dropping "${H}" key to prevent prototype pollution`);return}if(Y&&typeof q==="string"){let K=aE(q);if(K)return K}return E?E(H,q):q})}catch(X){if(B)throw X;return D}}function u4(D,F={strict:!0}){return iE(D,F)}function A4(D,F){let B=_0(!1),Z=m2(B,"/get-session",D,{method:"GET"});return k0(Z,()=>{let E=A1({sessionAtom:Z,sessionSignal:B,$fetch:D,options:F});return E.init(),()=>{E.cleanup()}}),{session:Z,$sessionSignal:B}}function I1(D){if(D===null||typeof D!=="object")return!1;let F=Object.getPrototypeOf(D);if(F!==null&&F!==Object.prototype&&Object.getPrototypeOf(F)!==null)return!1;if(Symbol.iterator in D)return!1;if(Symbol.toStringTag in D)return Object.prototype.toString.call(D)==="[object Module]";return!0}function L1(D,F,B=".",Z){if(!I1(F))return L1(D,{},B,Z);let E={...F};for(let Y of Object.keys(D)){if(Y==="__proto__"||Y==="constructor")continue;let J=D[Y];if(J===null||J===void 0)continue;if(Z&&Z(E,Y,J,B))continue;if(Array.isArray(J)&&Array.isArray(E[Y]))E[Y]=[...J,...E[Y]];else if(I1(J)&&I1(E[Y]))E[Y]=L1(J,E[Y],(B?`${B}.`:"")+Y.toString(),Z);else E[Y]=J}return E}function R1(D){return(...F)=>F.reduce((B,Z)=>L1(B,Z,"",D),{})}var j4=R1(),Xz=R1((D,F,B)=>{if(D[F]!==void 0&&typeof B==="function")return D[F]=B(D[F]),!0}),qz=R1((D,F,B)=>{if(Array.isArray(D[F])&&typeof B==="function")return D[F]=B(D[F]),!0});var{defineProperty:nE,defineProperties:rE,getOwnPropertyDescriptors:sE,getOwnPropertySymbols:M4}=Object,oE=Object.prototype.hasOwnProperty,tE=Object.prototype.propertyIsEnumerable,T4=(D,F,B)=>(F in D)?nE(D,F,{enumerable:!0,configurable:!0,writable:!0,value:B}):D[F]=B,MD=(D,F)=>{for(var B in F||(F={}))if(oE.call(F,B))T4(D,B,F[B]);if(M4){for(var B of M4(F))if(tE.call(F,B))T4(D,B,F[B])}return D},_D=(D,F)=>rE(D,sE(F)),eE=class extends Error{constructor(D,F,B){super(F||D.toString(),{cause:B});this.status=D,this.statusText=F,this.error=B,Error.captureStackTrace(this,this.constructor)}},DY=async(D,F)=>{var B,Z,E,Y,J,Q;let X=F||{},H={onRequest:[F==null?void 0:F.onRequest],onResponse:[F==null?void 0:F.onResponse],onSuccess:[F==null?void 0:F.onSuccess],onError:[F==null?void 0:F.onError],onRetry:[F==null?void 0:F.onRetry]};if(!F||!(F==null?void 0:F.plugins))return{url:D,options:X,hooks:H};for(let q of(F==null?void 0:F.plugins)||[]){if(q.init){let K=await((B=q.init)==null?void 0:B.call(q,D.toString(),F));X=K.options||X,D=K.url}H.onRequest.push((Z=q.hooks)==null?void 0:Z.onRequest),H.onResponse.push((E=q.hooks)==null?void 0:E.onResponse),H.onSuccess.push((Y=q.hooks)==null?void 0:Y.onSuccess),H.onError.push((J=q.hooks)==null?void 0:J.onError),H.onRetry.push((Q=q.hooks)==null?void 0:Q.onRetry)}return{url:D,options:X,hooks:H}},I4=class{constructor(D){this.options=D}shouldAttemptRetry(D,F){if(this.options.shouldRetry)return Promise.resolve(D<this.options.attempts&&this.options.shouldRetry(F));return Promise.resolve(D<this.options.attempts)}getDelay(){return this.options.delay}},FY=class{constructor(D){this.options=D}shouldAttemptRetry(D,F){if(this.options.shouldRetry)return Promise.resolve(D<this.options.attempts&&this.options.shouldRetry(F));return Promise.resolve(D<this.options.attempts)}getDelay(D){return Math.min(this.options.maxDelay,this.options.baseDelay*2**D)}};function BY(D){if(typeof D==="number")return new I4({type:"linear",attempts:D,delay:1000});switch(D.type){case"linear":return new I4(D);case"exponential":return new FY(D);default:throw Error("Invalid retry strategy")}}var ZY=async(D)=>{let F={},B=async(Z)=>typeof Z==="function"?await Z():Z;if(D==null?void 0:D.auth){if(D.auth.type==="Bearer"){let Z=await B(D.auth.token);if(!Z)return F;F.authorization=`Bearer ${Z}`}else if(D.auth.type==="Basic"){let[Z,E]=await Promise.all([B(D.auth.username),B(D.auth.password)]);if(!Z||!E)return F;F.authorization=`Basic ${btoa(`${Z}:${E}`)}`}else if(D.auth.type==="Custom"){let[Z,E]=await Promise.all([B(D.auth.prefix),B(D.auth.value)]);if(!E)return F;F.authorization=`${Z!=null?Z:""} ${E}`}}return F},EY=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function YY(D){let F=D.headers.get("content-type"),B=new Set(["image/svg","application/xml","application/xhtml","application/html"]);if(!F)return"json";let Z=F.split(";").shift()||"";if(EY.test(Z))return"json";if(B.has(Z)||Z.startsWith("text/"))return"text";return"blob"}function JY(D){try{return JSON.parse(D),!0}catch(F){return!1}}function S1(D){if(D===void 0)return!1;let F=typeof D;if(F==="string"||F==="number"||F==="boolean"||F===null)return!0;if(F!=="object")return!1;if(Array.isArray(D))return!0;if(D.buffer)return!1;return D.constructor&&D.constructor.name==="Object"||typeof D.toJSON==="function"}function L4(D){try{return JSON.parse(D)}catch(F){return D}}function R4(D){return typeof D==="function"}function QY(D){if(D==null?void 0:D.customFetchImpl)return D.customFetchImpl;if(typeof globalThis<"u"&&R4(globalThis.fetch))return globalThis.fetch;if(typeof window<"u"&&R4(window.fetch))return window.fetch;throw Error("No fetch implementation found")}async function HY(D){let F=new Headers(D==null?void 0:D.headers),B=await ZY(D);for(let[Z,E]of Object.entries(B||{}))F.set(Z,E);if(!F.has("content-type")){let Z=XY(D==null?void 0:D.body);if(Z)F.set("content-type",Z)}return F}function XY(D){if(S1(D))return"application/json";return null}function qY(D){if(!(D==null?void 0:D.body))return null;let F=new Headers(D==null?void 0:D.headers);if(S1(D.body)&&!F.has("content-type")){for(let[B,Z]of Object.entries(D==null?void 0:D.body))if(Z instanceof Date)D.body[B]=Z.toISOString();return JSON.stringify(D.body)}if(F.has("content-type")&&F.get("content-type")==="application/x-www-form-urlencoded"){if(S1(D.body))return new URLSearchParams(D.body).toString();return D.body}return D.body}function KY(D,F){var B;if(F==null?void 0:F.method)return F.method.toUpperCase();if(D.startsWith("@")){let Z=(B=D.split("@")[1])==null?void 0:B.split("/")[0];if(!S4.includes(Z))return(F==null?void 0:F.body)?"POST":"GET";return Z.toUpperCase()}return(F==null?void 0:F.body)?"POST":"GET"}function GY(D,F){let B;if(!(D==null?void 0:D.signal)&&(D==null?void 0:D.timeout))B=setTimeout(()=>F==null?void 0:F.abort(),D==null?void 0:D.timeout);return{abortTimeout:B,clearTimeout:()=>{if(B)clearTimeout(B)}}}var zY=class D extends Error{constructor(F,B){super(B||JSON.stringify(F,null,2));this.issues=F,Object.setPrototypeOf(this,D.prototype)}};async function l2(D,F){let B=await D["~standard"].validate(F);if(B.issues)throw new zY(B.issues);return B.value}var S4=["get","post","put","patch","delete"];var CY=(D)=>({id:"apply-schema",name:"Apply Schema",version:"1.0.0",async init(F,B){var Z,E,Y,J;let Q=((E=(Z=D.plugins)==null?void 0:Z.find((X)=>{var H;return((H=X.schema)==null?void 0:H.config)?F.startsWith(X.schema.config.baseURL||"")||F.startsWith(X.schema.config.prefix||""):!1}))==null?void 0:E.schema)||D.schema;if(Q){let X=F;if((Y=Q.config)==null?void 0:Y.prefix){if(X.startsWith(Q.config.prefix)){if(X=X.replace(Q.config.prefix,""),Q.config.baseURL)F=F.replace(Q.config.prefix,Q.config.baseURL)}}if((J=Q.config)==null?void 0:J.baseURL){if(X.startsWith(Q.config.baseURL))X=X.replace(Q.config.baseURL,"")}let H=Q.schema[X];if(H){let q=_D(MD({},B),{method:H.method,output:H.output});if(!(B==null?void 0:B.disableValidation))q=_D(MD({},q),{body:H.input?await l2(H.input,B==null?void 0:B.body):B==null?void 0:B.body,params:H.params?await l2(H.params,B==null?void 0:B.params):B==null?void 0:B.params,query:H.query?await l2(H.query,B==null?void 0:B.query):B==null?void 0:B.query});return{url:F,options:q}}}return{url:F,options:B}}}),_4=(D)=>{async function F(B,Z){let E=_D(MD(MD({},D),Z),{plugins:[...(D==null?void 0:D.plugins)||[],CY(D||{}),...(Z==null?void 0:Z.plugins)||[]]});if(D==null?void 0:D.catchAllError)try{return await _1(B,E)}catch(Y){return{data:null,error:{status:500,statusText:"Fetch Error",message:"Fetch related error. Captured by catchAllError option. See error property for more details.",error:Y}}}return await _1(B,E)}return F};function WY(D,F){let{baseURL:B,params:Z,query:E}=F||{query:{},params:{},baseURL:""},Y=D.startsWith("http")?D.split("/").slice(0,3).join("/"):B||"";if(D.startsWith("@")){let K=D.toString().split("@")[1].split("/")[0];if(S4.includes(K))D=D.replace(`@${K}/`,"/")}if(!Y.endsWith("/"))Y+="/";let[J,Q]=D.replace(Y,"").split("?"),X=new URLSearchParams(Q);for(let[K,C]of Object.entries(E||{})){if(C==null)continue;let W;if(typeof C==="string")W=C;else if(Array.isArray(C)){for(let z of C)X.append(K,z);continue}else W=JSON.stringify(C);X.set(K,W)}if(Z)if(Array.isArray(Z)){let K=J.split("/").filter((C)=>C.startsWith(":"));for(let[C,W]of K.entries()){let z=Z[C];J=J.replace(W,z)}}else for(let[K,C]of Object.entries(Z))J=J.replace(`:${K}`,String(C));if(J=J.split("/").map(encodeURIComponent).join("/"),J.startsWith("/"))J=J.slice(1);let H=X.toString();if(H=H.length>0?`?${H}`.replace(/\+/g,"%20"):"",!Y.startsWith("http"))return`${Y}${J}${H}`;return new URL(`${J}${H}`,Y)}var _1=async(D,F)=>{var B,Z,E,Y,J,Q,X,H;let{hooks:q,url:K,options:C}=await DY(D,F),W=QY(C),z=new AbortController,U=(B=C.signal)!=null?B:z.signal,u=WY(K,C),I=qY(C),A=await HY(C),N=KY(K,C),V=_D(MD({},C),{url:u,headers:A,body:I,method:N,signal:U});for(let b of q.onRequest)if(b){let _=await b(V);if(typeof _==="object"&&_!==null)V=_}if("pipeTo"in V&&typeof V.pipeTo==="function"||typeof((Z=F==null?void 0:F.body)==null?void 0:Z.pipe)==="function"){if(!("duplex"in V))V.duplex="half"}let{clearTimeout:L}=GY(C,z),S=await W(V.url,V);L();let R={response:S,request:V};for(let b of q.onResponse)if(b){let _=await b(_D(MD({},R),{response:((E=F==null?void 0:F.hookOptions)==null?void 0:E.cloneResponse)?S.clone():S}));if(_ instanceof Response)S=_;else if(typeof _==="object"&&_!==null)S=_.response}if(S.ok){if(V.method==="HEAD")return{data:"",error:null};let _=YY(S),g={data:null,response:S,request:V};if(_==="json"||_==="text"){let r=await S.text(),qD=(Y=V.jsonParser)!=null?Y:L4;g.data=await qD(r)}else g.data=await S[_]();if(V==null?void 0:V.output){if(V.output&&!V.disableValidation)g.data=await l2(V.output,g.data)}for(let r of q.onSuccess)if(r)await r(_D(MD({},g),{response:((J=F==null?void 0:F.hookOptions)==null?void 0:J.cloneResponse)?S.clone():S}));if(F==null?void 0:F.throw)return g.data;return{data:g.data,error:null}}let P=(Q=F==null?void 0:F.jsonParser)!=null?Q:L4,n=await S.text(),c=JY(n),v=c?await P(n):null,YD={response:S,responseText:n,request:V,error:_D(MD({},v),{status:S.status,statusText:S.statusText})};for(let b of q.onError)if(b)await b(_D(MD({},YD),{response:((X=F==null?void 0:F.hookOptions)==null?void 0:X.cloneResponse)?S.clone():S}));if(F==null?void 0:F.retry){let b=BY(F.retry),_=(H=F.retryAttempt)!=null?H:0;if(await b.shouldAttemptRetry(_,S)){for(let r of q.onRetry)if(r)await r(R);let g=b.getDelay(_);return await new Promise((r)=>setTimeout(r,g)),await _1(D,_D(MD({},F),{retryAttempt:_+1}))}}if(F==null?void 0:F.throw)throw new eE(S.status,S.statusText,c?v:n);return{data:null,error:_D(MD({},v),{status:S.status,statusText:S.statusText})}};var k4=(D,F)=>{let B="credentials"in Request.prototype,Z=U4(D?.baseURL,D?.basePath,void 0,F)??"/api/auth",E=D?.plugins?.flatMap((V)=>V.fetchPlugins).filter((V)=>V!==void 0)||[],Y={id:"lifecycle-hooks",name:"lifecycle-hooks",hooks:{onSuccess:D?.fetchOptions?.onSuccess,onError:D?.fetchOptions?.onError,onRequest:D?.fetchOptions?.onRequest,onResponse:D?.fetchOptions?.onResponse}},{onSuccess:J,onError:Q,onRequest:X,onResponse:H,...q}=D?.fetchOptions||{},K=_4({baseURL:Z,...B?{credentials:"include"}:{},method:"GET",jsonParser(V){if(!V)return null;return u4(V,{strict:!1})},customFetchImpl:fetch,...q,plugins:[Y,...q.plugins||[],...D?.disableDefaultFetchPlugins?[]:[V4],...E]}),{$sessionSignal:C,session:W}=A4(K,D),z=D?.plugins||[],U={},u={$sessionSignal:C,session:W},I={"/sign-out":"POST","/revoke-sessions":"POST","/revoke-other-sessions":"POST","/delete-user":"POST"},A=[{signal:"$sessionSignal",matcher(V){return V==="/sign-out"||V==="/update-user"||V==="/sign-up/email"||V==="/sign-in/email"||V==="/delete-user"||V==="/verify-email"||V==="/revoke-sessions"||V==="/revoke-session"||V==="/change-email"}}];for(let V of z){if(V.getAtoms)Object.assign(u,V.getAtoms?.(K));if(V.pathMethods)Object.assign(I,V.pathMethods);if(V.atomListeners)A.push(...V.atomListeners)}let N={notify:(V)=>{u[V].set(!u[V].get())},listen:(V,L)=>{u[V].subscribe(L)},atoms:u};for(let V of z)if(V.getActions)U=j4(V.getActions?.(K,N,D)??{},U);return{get baseURL(){return Z},pluginsActions:U,pluginsAtoms:u,pluginPathMethods:I,atomListeners:A,$fetch:K,$store:N}};function O4(D){return typeof D==="object"&&D!==null&&"get"in D&&typeof D.get==="function"&&"lc"in D&&typeof D.lc==="number"}function $Y(D,F,B){let Z=F[D],{fetchOptions:E,query:Y,...J}=B||{};if(Z)return Z;if(E?.method)return E.method;if(J&&Object.keys(J).length>0)return"POST";return"GET"}function f4(D,F,B,Z,E){function Y(J=[]){return new Proxy(function(){},{get(Q,X){if(typeof X!=="string")return;if(X==="then"||X==="catch"||X==="finally")return;let H=[...J,X],q=D;for(let K of H)if(q&&typeof q==="object"&&K in q)q=q[K];else{q=void 0;break}if(typeof q==="function")return q;if(O4(q))return q;return Y(H)},apply:async(Q,X,H)=>{let q="/"+J.map((A)=>A.replace(/[A-Z]/g,(N)=>`-${N.toLowerCase()}`)).join("/"),K=H[0]||{},C=H[1]||{},{query:W,fetchOptions:z,...U}=K,u={...C,...z},I=$Y(q,B,K);return await F(q,{...u,body:I==="GET"?void 0:{...U,...u?.body||{}},query:W||u?.query,method:I,async onSuccess(A){if(await u?.onSuccess?.(A),!E||u.disableSignal)return;let N=E.filter((L)=>L.matcher(q));if(!N.length)return;let V=new Set;for(let L of N){let S=Z[L.signal];if(!S)return;if(V.has(L.signal))continue;V.add(L.signal);let R=S.get();setTimeout(()=>{S.set(!R)},10)}}})}})}return Y()}function k1(D){let{pluginPathMethods:F,pluginsActions:B,pluginsAtoms:Z,$fetch:E,atomListeners:Y,$store:J}=k4(D),Q={};for(let[X,H]of Object.entries(Z))Q[`use${T1(X)}`]=H;return f4({...B,...Q,$fetch:E,$store:J},E,F,Z,Y)}function P4(D){return{authorize(F,B="AND"){let Z=!1;for(let[E,Y]of Object.entries(F)){let J=D[E];if(!J)return{success:!1,error:`You are not allowed to access resource: ${E}`};if(Array.isArray(Y))Z=Y.every((Q)=>J.includes(Q));else if(typeof Y==="object"){let Q=Y;if(Q.connector==="OR")Z=Q.actions.some((X)=>J.includes(X));else Z=Q.actions.every((X)=>J.includes(X))}else throw new dD("Invalid access control request");if(Z&&B==="OR")return{success:Z};if(!Z&&B==="AND")return{success:!1,error:`unauthorized to access resource "${E}"`}}if(Z)return{success:Z};return{success:!1,error:"Not authorized"}},statements:D}}function y0(D){return{newRole(F){return P4(F)},statements:D}}var y4={user:["create","list","set-role","ban","impersonate","delete","set-password","get","update"],session:["list","revoke","delete"]},O1=y0(y4),x4=O1.newRole({user:["create","list","set-role","ban","impersonate","delete","set-password","get","update"],session:["list","revoke","delete"]}),w4=O1.newRole({user:[],session:[]});var f1=()=>{return{id:"device-authorization",$InferServerPlugin:{},pathMethods:{"/device/code":"POST","/device/token":"POST","/device":"GET","/device/approve":"POST","/device/deny":"POST"}}};var b4={organization:["update","delete"],member:["create","update","delete"],invitation:["create","cancel"],team:["create","update","delete"],ac:["create","read","update","delete"]},p2=y0(b4),v4=p2.newRole({organization:["update"],invitation:["create","cancel"],member:["create","update","delete"],team:["create","update","delete"],ac:["create","read","update","delete"]}),h4=p2.newRole({organization:["update","delete"],member:["create","update","delete"],invitation:["create","cancel"],team:["create","update","delete"],ac:["create","read","update","delete"]}),g4=p2.newRole({organization:[],member:[],invitation:[],team:[],ac:["read"]});var P1="photon-cli",m4="openid profile email";function a2(D){return k1({baseURL:D,plugins:[f1()]})}function d4(D){D.command("login").description("authenticate via the device authorization flow").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("--no-browser","don't auto-open the verification URL").action(async(F)=>{try{await uY(F)}catch(B){if(B instanceof D0||B instanceof lD)$(B.message);throw B}})}async function uY({apiHost:D,browser:F=!0}){let B=await XD(D);console.log(G.info(`Authenticating to ${G.bold(B.name)} ${G.dim(`(${B.url})`)}`));let Z=a2(B.url),E;try{E=await Z.device.code({client_id:P1,scope:m4})}catch(U){$(`Could not reach ${B.url} — ${U instanceof Error?U.message:String(U)}`)}if(E.error||!E.data)$(`Failed to start device flow: ${k(E.error)}`);let{device_code:Y,user_code:J,verification_uri:Q,verification_uri_complete:X,interval:H=5,expires_in:q=1800}=E.data;if(console.log(),console.log(` ${G.dim("Visit:")} ${G.underline(G.cyan(Q))}`),console.log(` ${G.dim("Code: ")} ${G.bold(J)}`),console.log(),F){let U=X??Q;try{await I2(U),console.log(G.dim(` Opened ${U}`))}catch{}}else console.log(G.dim(" --no-browser set; open the URL above manually"));console.log();let K=g6();K.start(`Waiting for approval (polling every ${H}s)`);let C=await AY({auth:Z,deviceCode:Y,initialInterval:H,expiresInSec:q,onSlowDown:(U)=>{K.message(`Server asked us to slow down — polling every ${U}s`)}}).catch((U)=>{throw K.error(U instanceof Error?U.message:"Failed"),U});K.stop("Authorized");let z=(await Z.getSession({fetchOptions:{headers:{Authorization:`Bearer ${C}`}}})).data?.user;if(!z)$("Token issued but session lookup failed — server might be misconfigured.");await Q6({accessToken:C,user:{id:z.id,email:z.email,name:z.name},envName:B.name,apiUrl:B.url,issuedAt:new Date().toISOString()}),console.log(),console.log(G.success(`Logged in to ${G.bold(B.name)} as ${G.bold(z.email)}`))}async function AY(D){let F=D.initialInterval,B=Date.now()+D.expiresInSec*1000;while(Date.now()<B){await new Promise((J)=>setTimeout(J,F*1000));let Z=await D.auth.device.token({grant_type:"urn:ietf:params:oauth:grant-type:device_code",device_code:D.deviceCode,client_id:P1});if(Z.data?.access_token)return Z.data.access_token;let E=jY(Z.error);if(MY(Z.error)===429){F+=10,D.onSlowDown(F);continue}switch(E){case"authorization_pending":continue;case"slow_down":F+=5,D.onSlowDown(F);continue;case"access_denied":throw new D0;case"expired_token":throw new lD;default:throw Error(`Device flow error: ${k(Z.error)}`)}}throw new lD}function jY(D){if(D&&typeof D==="object"&&"error"in D){let F=D.error;return typeof F==="string"?F:void 0}return}function MY(D){if(D&&typeof D==="object"&&"status"in D){let F=D.status;return typeof F==="number"?F:void 0}return}function c4(D){D.command("logout").description("clear stored credentials for the active backend").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").action(async(F)=>{let B=await XD(F.apiHost),Z=await E0(B.name);if(!Z){console.log(G.dim(`Not logged in to ${G.bold(B.name)} — nothing to do.`));return}try{await a2(Z.apiUrl).signOut({fetchOptions:{headers:{Authorization:`Bearer ${Z.accessToken}`}}})}catch{}await H6(B.name),console.log(G.success(`Logged out of ${G.bold(B.name)}`))})}function l4(D){D.command("ping").description("hit the Photon Dashboard /api/health endpoint").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-u, --url <url>","raw API URL (bypasses env resolution)").action(async(F)=>{let{api:B,env:Z}=await x({apiHost:F.apiHost,url:F.url});console.log(G.dim(`→ ${Z.url}`));let E=performance.now(),{data:Y,error:J,status:Q}=await B.api.health.get(),X=Math.round(performance.now()-E);if(J)console.error(G.error(`${Q} (${X}ms): ${k(J)}`)),process.exit(1);console.log(G.success(`${Q} (${X}ms): ${JSON.stringify(Y)}`))})}var TY=["developer","organization"];function a4(D){let F=D.command("profile").description("view or manage your developer / organization profile");IY(F),LY(F),SY(F)}function IY(D){D.command("show",{isDefault:!0}).description("show your profile").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(F)=>{let{api:B,creds:Z,env:E}=await x({apiHost:F.apiHost,token:F.token,requireAuth:!0}),{data:Y,error:J}=await B.api.profile.get();if(J){if(J.status===401)throw new f(E.name);$(`Failed to fetch profile: ${k(J)}`)}if(F.json){w({user:Z?.user??null,profile:Y});return}if(Z)console.log(G.bold(Z.user.name)+G.dim(` <${Z.user.email}>`));else console.log(G.dim(`token-authenticated on env ${E.name}`));if(console.log(),!Y){console.log(G.dim("No profile yet.")),console.log(G.hint("Set one up: `photon profile init`."));return}console.log(G.bold(`${Y.type} profile`));let Q=[["companyName",Y.companyName],["platforms",Y.platforms],["background",Y.background],["referralSource",Y.referralSource]],X=Math.max(...Q.map(([H])=>H.length));for(let[H,q]of Q)console.log(` ${G.dim(H.padEnd(X))} ${kY(q)}`)})}function LY(D){D.command("init").description("set up your developer or organization profile").option("--type <type>","developer | organization").option("--platforms <list>","comma-separated platforms you're building on").option("--background <text>","what you're building").option("--company-name <name>","organization: company name").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(F)=>{let{api:B,env:Z}=await x({apiHost:F.apiHost,token:F.token,requireAuth:!0}),E=await B.api.profile.get();if(E.status===401)throw new f(Z.name);if(E.error)$(`Failed to check existing profile: ${k(E.error)}`);if(E.data)$("A profile already exists for this account.",{hint:"Use `photon profile update` to change it."});let Y=await RY(F);if(await i4(B,Z.name,Y),F.json){w({profile:Y});return}console.log(G.success(`Created ${Y.type} profile.`))})}async function RY(D){if(!GD())return{type:i2(D.type,{required:!0}),platforms:D.platforms!==void 0?x0(D.platforms):void 0,background:D.background,companyName:D.companyName};U2(G.cyan("Set up your profile"));let F=i2(D.type);if(!F){let Y=await N2({message:"What kind of profile?",options:[{value:"developer",label:"Developer",hint:"individual contributor"},{value:"organization",label:"Organization",hint:"company / team"}]});if(BD(Y))$("Aborted.");F=Y}let B=D.platforms!==void 0?x0(D.platforms):await _Y("Platforms you're building on (comma-separated)",void 0,!0),Z=await p4("What are you building?",D.background),E=F==="organization"?await p4("Company name",D.companyName):D.companyName;return V2(G.dim("Submitting…")),{type:F,platforms:B.length>0?B:void 0,background:Z,companyName:E}}function SY(D){D.command("update").alias("edit").description("update your existing profile (preserves unchanged fields)").option("--type <type>","developer | organization").option("--platforms <list>","comma-separated platforms you're building on").option("--background <text>","what you're building").option("--company-name <name>","organization: company name").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(F)=>{if(!(F.type!==void 0||F.platforms!==void 0||F.background!==void 0||F.companyName!==void 0))$("Nothing to update.",{hint:"Pass at least one field flag — see `photon profile update --help`."});let{api:Z,env:E}=await x({apiHost:F.apiHost,token:F.token,requireAuth:!0}),Y=await Z.api.profile.get();if(Y.status===401)throw new f(E.name);if(Y.error)$(`Failed to fetch profile: ${k(Y.error)}`);let J=Y.data;if(!J)$("No profile to update.",{hint:"Create one first: `photon profile init`."});let Q={type:F.type!==void 0?i2(F.type,{required:!0}):i2(J.type)??void 0,platforms:F.platforms!==void 0?x0(F.platforms):J.platforms??void 0,background:F.background??J.background??void 0,companyName:F.companyName??J.companyName??void 0};if(await i4(Z,E.name,Q),F.json)return w({profile:Q});console.log(G.success("Profile updated."))})}async function i4(D,F,B){let Z={};if(B.type!==void 0)Z.type=B.type;if(B.platforms!==void 0)Z.platforms=B.platforms;if(B.background!==void 0)Z.background=B.background;if(B.companyName!==void 0)Z.companyName=B.companyName;let E=await D.api.onboarding.details.post(Z);if(E.status===401)throw new f(F);if(E.error)$(`Failed to save profile: ${k(E.error)}`)}function i2(D,{required:F=!1}={}){if(D===void 0||D===""){if(F)$("--type is required (developer | organization).");return}if(!TY.includes(D))$(`Unknown profile type "${D}". Use "developer" or "organization".`);return D}async function p4(D,F){if(F!==void 0)return F;let B=await PD({message:D,placeholder:"(skip)"});if(BD(B))$("Aborted.");let Z=B?.trim();return Z?Z:void 0}async function _Y(D,F,B=!1){if(F!==void 0)return x0(F);let Z=await PD({message:D,placeholder:B?"(skip)":void 0});if(BD(Z))$("Aborted.");return x0(Z??"")}function x0(D){return D.split(",").map((F)=>F.trim()).filter(Boolean)}function kY(D){if(D===null||D===void 0||D==="")return G.dim("—");if(Array.isArray(D))return D.length>0?D.join(", "):G.dim("—");if(typeof D==="boolean")return D?G.green("yes"):G.dim("no");if(D instanceof Date)return D.toLocaleString();if(typeof D==="object")return JSON.stringify(D);return String(D)}async function eD(D){if(D.yes)return;if(!GD())$("Confirmation required for this destructive action.",{hint:D.fallbackHint??"Pass --yes to confirm."});let F=await $2({message:D.message,initialValue:!1});if(BD(F)||!F)$("Aborted.")}var n2=["imessage","whatsapp_business","voice"],s4={owner_phone_missing:{code:"owner_phone_missing",message:"Your project was created without a connected phone. Add a phone number to your Photon account or connect a dedicated line."},shared_line_unavailable:{code:"shared_line_unavailable",message:"We couldn't connect your phone to a shared iMessage line. You can add another phone or connect a dedicated line."},owner_enrollment_failed:{code:"owner_enrollment_failed",message:"We couldn't connect your phone to a shared iMessage line. Try again with another phone or connect a dedicated line."}};function OY(D){return typeof D==="string"&&Object.prototype.hasOwnProperty.call(s4,D)}function fY(D){if(D.warning&&typeof D.warning==="object"){let F=D.warning;if(OY(F.code))return s4[F.code]}return}function o4(D){let F=D.command("projects").alias("project").description("manage your Photon Dashboard projects");PY(F),yY(F),xY(F),wY(F),hY(F),gY(F),mY(F),dY(F),cY(F),pY(F)}function PY(D){D.command("list",{isDefault:!0}).alias("ls").description("list your projects").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(F)=>{let{api:B,env:Z}=await x({apiHost:F.apiHost,token:F.token,requireAuth:!0}),{data:E,error:Y}=await B.api.projects.get();if(Y){if(Y.status===401)throw new f(Z.name);$(`Failed to list projects: ${k(Y)}`)}let J=R2(E,"projects");if(F.json){w(J);return}if(J.length===0){console.log(G.dim("No projects yet.")),console.log(G.hint("Create one with `photon projects create`."));return}let Q=J.map((X)=>[aY(X.id,8),X.name,X.location,t4(X.status),X.platforms.length>0?X.platforms.join(", "):G.dim("—"),new Date(X.updatedAt).toLocaleDateString()]);$D(["id","name","location","status","platforms","updated"],Q)})}function yY(D){D.command("show [id]").alias("get").description("show details for one project (defaults to $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(F,B)=>{let{projectId:Z,env:E}=await m({flagProjectId:F??B.project,apiHost:B.apiHost}),{api:Y}=await x({apiHost:E.url,token:B.token,requireAuth:!0}),{data:J,error:Q,status:X}=await Y.api.projects({id:Z}).get();if(X===401)throw new f(E.name);if(X===404||!Q&&!J)$(`Project not found: ${Z}`,{hint:"List your projects with `photon projects ls`."});if(Q)$(`Failed to fetch project: ${k(Q)}`);if(B.json){w(J);return}if(!J)return;let H=J;console.log(G.bold(H.name)+G.dim(` (${H.id})`)),console.log(),iY([["status",t4(H.status)],["location",H.location],["owner",H.isOwner?G.green("yes"):G.dim("no")],["template",H.template?"yes":"no"],["observability",H.observability?"yes":"no"],["slackChannelId",H.slackChannelId??G.dim("—")],["slackTeamId",H.slackTeamId??G.dim("—")],["createdAt",new Date(H.createdAt).toLocaleString()],["updatedAt",new Date(H.updatedAt).toLocaleString()]])})}function xY(D){D.command("secret [id]").alias("get-secret").description("print the project's Spectrum API secret (defaults to $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(F,B)=>{let{projectId:Z,env:E}=await m({flagProjectId:F??B.project,apiHost:B.apiHost}),{api:Y}=await x({apiHost:E.url,token:B.token,requireAuth:!0}),{data:J,error:Q,status:X}=await Y.api.projects({id:Z}).get();if(X===401)throw new f(E.name);if(X===404||!Q&&!J)$(`Project not found: ${Z}`,{hint:"List your projects with `photon projects ls`."});if(Q)$(`Failed to fetch project: ${k(Q)}`);if(!J)return;if(!J.projectSecret)$("This project has no API secret yet.",{hint:`Generate one with \`photon projects regenerate-secret ${Z}\`.`});if(B.json){w({id:Z,projectSecret:J.projectSecret});return}console.log(J.projectSecret)})}function wY(D){D.command("create").alias("new").description("create a new project").option("-n, --name <name>","project name").option("-l, --location <location>",'location (default: "United States")').option("--platforms <list>",`comma-separated platforms (${n2.join(", ")})`).option("--template","use as template").option("--observability","enable observability").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(F)=>{let B=await bY(F),{api:Z,env:E}=await x({apiHost:F.apiHost,token:F.token,requireAuth:!0}),{data:Y,error:J,status:Q}=await Z.api.projects.post({name:B.name,location:B.location,platforms:B.platforms,template:B.template,observability:B.observability});if(Q===401)throw new f(E.name);if(J)$(`Failed to create project: ${k(J)}`);if(!Y)$("Server did not return a project result.");let X=Y;if(X.error)$(X.error);if(!X.id)$("Server did not return a project id.");let H=fY(X);if(F.json){w({id:X.id,name:B.name,env:E.name,...H?{warning:H}:{}});return}if(console.log(G.success(`Created ${G.bold(B.name)} ${G.dim(`(${X.id})`)} on ${G.bold(E.name)}`)),B.platforms.length===0)console.log(G.dim(" No platforms enabled.")),console.log(G.dim(" See accepted platform names with `photon projects create --help`.")),console.log(G.dim(` Enable one with \`photon spectrum platforms enable <platform-name> --project '${X.id}'\`.`));if(H)console.error(G.warn(H.message));console.log(G.dim(` To make this the active project: export PHOTON_PROJECT_ID='${X.id}'`))})}function y1(D){let F=D.split(",").map((Z)=>Z.trim()).filter(Boolean),B=F.filter((Z)=>!n2.includes(Z));if(B.length>0)$(`Unknown platform(s): ${B.join(", ")}.`,{hint:`Valid platforms: ${n2.join(", ")}.`});return[...new Set(F)]}async function bY(D){if(!GD()){if(!D.name?.trim())$("--name is required in non-interactive mode.",{hint:"Run from a terminal for the interactive prompt, or pass --name <name>."});return{name:D.name.trim(),location:D.location??"United States",platforms:D.platforms!==void 0?y1(D.platforms):[],template:D.template??!1,observability:D.observability??!1}}U2(G.cyan("Create a new project"));let F=D.name?.trim();if(!F){let J=await PD({message:"Project name",validate:(Q)=>Q&&Q.trim()?void 0:"Project name is required"});if(BD(J))$("Aborted.");F=J.trim()}let B=D.location;if(B===void 0){let J=await PD({message:"Location",placeholder:"United States",defaultValue:"United States"});if(BD(J))$("Aborted.");B=J||"United States"}let Z=D.platforms!==void 0?y1(D.platforms):y1(await vY(`Platforms (comma-separated: ${n2.join(", ")})`,void 0,!0)),E=D.template??await n4("Use as template?",!1),Y=D.observability??await n4("Enable observability?",!1);return V2(G.dim("Submitting…")),{name:F,location:B,platforms:Z,template:E,observability:Y}}async function vY(D,F,B=!1){if(F!==void 0)return F;let Z=await PD({message:D,placeholder:B?"(skip)":void 0});if(BD(Z))$("Aborted.");return Z??""}async function n4(D,F){let B=await $2({message:D,initialValue:F});if(BD(B))$("Aborted.");return Boolean(B)}function hY(D){D.command("update [id]").alias("edit").alias("rename").description("rename a project (defaults to $PHOTON_PROJECT_ID)").option("-n, --name <name>","new name").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(F,B)=>{let Z=B.name?.trim();if(!Z)$("--name is required.",{hint:"Pass a non-empty name, e.g. `photon projects update --name 'New Name'`."});let{projectId:E,env:Y}=await m({flagProjectId:F??B.project,apiHost:B.apiHost}),{api:J}=await x({apiHost:Y.url,token:B.token,requireAuth:!0}),{error:Q,status:X,data:H}=await J.api.projects({id:E}).patch({name:Z});if(X===401)throw new f(Y.name);if(Q)$(`Failed to update project: ${k(Q)}`);let q=H;if(q.error)$(q.error);if(B.json){w({id:E,name:Z});return}console.log(G.success(`Updated ${G.bold(Z)} ${G.dim(`(${E})`)}`))})}function gY(D){D.command("delete [id]").alias("rm").alias("remove").description("permanently delete a project (defaults to $PHOTON_PROJECT_ID)").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("-y, --yes","skip confirmation").action(async(F,B)=>{let{projectId:Z,env:E}=await m({flagProjectId:F??B.project,apiHost:B.apiHost}),{api:Y}=await x({apiHost:E.url,token:B.token,requireAuth:!0}),J=await Y.api.projects({id:Z}).get();if(J.status===401)throw new f(E.name);if(J.status===404||!J.error&&!J.data)$(`Project not found: ${Z}`,{hint:"Already deleted? `photon projects ls` to confirm."});if(J.error)$(`Failed to look up project: ${k(J.error)}`);if(!J.data)return;let Q=J.data;await eD({message:`Delete project ${G.bold(Q.name)} (${Z})? This cannot be undone.`,yes:B.yes??!1,fallbackHint:`Pass --yes to delete ${Q.name}.`});let{error:X,status:H}=await Y.api.projects({id:Z}).delete();if(H===401)throw new f(E.name);if(X)$(`Failed to delete project: ${k(X)}`);if(console.log(G.success(`Deleted ${G.bold(Q.name)} ${G.dim(`(${Z})`)}`)),process.env.PHOTON_PROJECT_ID===Z)console.error(G.warn("Active project just deleted. Run `unset PHOTON_PROJECT_ID` to clear."))})}function mY(D){D.command("regenerate-secret [id]").alias("rotate-secret").description("rotate the project's Spectrum API secret (defaults to $PHOTON_PROJECT_ID)").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("-y, --yes","skip confirmation").option("--json","output JSON").action(async(F,B)=>{let{projectId:Z,env:E}=await m({flagProjectId:F??B.project,apiHost:B.apiHost}),{api:Y}=await x({apiHost:E.url,token:B.token,requireAuth:!0});await eD({message:`Rotate the API secret for project ${Z}? Existing integrations using the old secret will stop working immediately.`,yes:B.yes??!1,fallbackHint:"Pass --yes to rotate the secret."});let{data:J,error:Q,status:X}=await Y.api.projects({id:Z})["regenerate-secret"].post();if(X===401)throw new f(E.name);if(Q)$(`Failed to rotate secret: ${k(Q)}`);let H=J;if(H.error)$(H.error);if(!H.projectSecret)$("Server did not return a new secret.");if(B.json){w({id:Z,projectSecret:H.projectSecret});return}console.log(G.success(`New secret for ${Z}:`)),console.log(` ${G.bold(H.projectSecret)}`),hD.warn("This is shown once. Store it somewhere safe — re-rotating is the only way to recover.")})}function dY(D){D.command("open [id]").description("open the project in the dashboard web UI (defaults to $PHOTON_PROJECT_ID)").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("--no-browser","print the URL instead of launching a browser").action(async(F,B)=>{let{projectId:Z,env:E}=await m({flagProjectId:F??B.project,apiHost:B.apiHost}),Y=new URL(`/dashboard/${Z}`,E.url).toString();await I0(Y,{noBrowser:!B.browser,label:"URL"})})}function cY(D){D.command("upgrade [id] [tier]").description("subscribe / pay for a project (smart-routes to Stripe checkout or billing portal)").option("--plan <price-id>","Stripe price id (escape hatch; overrides tier picker)").option("--qty <n>","quantity (default 1)",y2).option("--checkout","force checkout flow (even if currently subscribed)").option("--manage","force Stripe portal (downgrade / cancel / change card)").option("-p, --project <id>","project id (overrides positional [id] and $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--no-browser","print the URL instead of launching a browser").option("--json","output JSON ({action,url,tier?}) and skip browser open").action(async(F,B,Z)=>{if(Z.checkout&&Z.manage)$("--checkout and --manage are mutually exclusive.");let E=F,Y=r4(B);if(!Y&&E&&lY(E)&&!B)Y=r4(E),E=void 0;if(B&&!Y)$(`Unknown tier "${B}".`,{hint:`Use one of: ${gD.join(", ")} — or pass --plan <price-id>.`});let{projectId:J,env:Q}=await m({flagProjectId:Z.project??E,apiHost:Z.apiHost}),{api:X}=await x({apiHost:Q.url,token:Z.token,requireAuth:!0}),H=L0({explicitNoBrowser:Z.browser===!1,json:Z.json??!1}),q;if(Z.manage)q="manage";else if(Z.checkout||Z.plan||Y)q="checkout";else{let W=await J4(X,J,Q.name);if(W.tier==="unknown")$(`Cannot determine the subscription state of project ${J}.`,{hint:"Re-run with --checkout to subscribe, or --manage to open the Stripe portal."});if(q=W.status==="active"||W.status==="past_due"?"manage":"checkout",q==="manage"&&!Z.json)console.log(G.info(`Project ${G.bold(J)} is on ${W.tier??"—"} (${W.status??"—"}). Opening Stripe portal…`)),console.log(G.dim(" To pick a different plan instead, re-run with --checkout."))}if(q==="manage"){await P2({api:X,projectId:J,envName:Q.name,json:Z.json??!1,noBrowser:H});return}let K,C;if(Z.plan)K=Z.plan;else if(Y){let W=await tD(X,Q.name),z=_2(W,Y),U=z?.prices?.length===1?z.prices[0]:void 0;if(!z||!z.prices?.length)$(`No plan matching tier "${Y}".`,{hint:"List options with `photon billing plans`."});if(!U)$(`Tier "${Y}" has multiple billing intervals.`,{hint:"Pass --plan <price-id> to choose, or omit the tier to use the interactive picker."});K=U.id,C=Y}else{let W=await tD(X,Q.name),z=await O2(W);K=z.price.id,C=k2(z.plan.name)}await f2({api:X,projectId:J,priceId:K,quantity:Z.qty,envName:Q.name,json:Z.json??!1,noBrowser:H,tierLabel:C})})}function lY(D){return gD.includes(D.trim().toLowerCase())}function r4(D){if(!D)return;let F=D.trim().toLowerCase();return gD.includes(F)?F:void 0}function pY(D){D.command("check-phone <number>").description("check whether a phone number is available on Spectrum").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(F,B)=>{let{api:Z,env:E}=await x({apiHost:B.apiHost,token:B.token,requireAuth:!0}),{data:Y,error:J,status:Q}=await Z.api.projects["check-availability"].get({query:{phoneNumber:F}});if(Q===401)throw new f(E.name);if(J)$(`Failed to check phone availability: ${k(J)}`);if(B.json){w(Y);return}if(Y.available)console.log(G.success(`${F} is available.`));else console.log(G.warn(`${F} is taken.`))})}function t4(D){switch(D){case"running":return G.green(D);case"paused":return G.yellow(D);case"error":return G.red(D);default:return D}}function aY(D,F){return D.length>F?`${D.slice(0,F)}…`:D}function iY(D){let F=Math.max(...D.map(([B])=>B.length));for(let[B,Z]of D)console.log(` ${G.dim(B.padEnd(F))} ${Z}`)}var nY={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".webp":"image/webp",".gif":"image/gif"},rY=new Set([".svg",".svgz"]),sY=/^\s*(?:<\?xml[\s\S]*?\?>\s*)?(?:<!--[\s\S]*?-->\s*)*<svg(?:\s|>)/i,oY=4100,tY=(D)=>{let F=D.replaceAll("\\","/").split("/").at(-1)??D,B=F.lastIndexOf(".");return B===-1?"":F.slice(B).toLowerCase()},eY=(D)=>sY.test(new TextDecoder().decode(D.subarray(0,oY))),e4=(D,F)=>{if(rY.has(D)||F&&eY(F))$("SVG avatars are not supported.",{hint:"Convert the image to PNG, JPEG, or WebP before uploading."})};async function r2(D){let F=tY(D);e4(F);let B=Bun.file(D);if(!await B.exists())$(`File not found: ${D}`);let Z=new Uint8Array(await B.arrayBuffer());return e4(F,Z),{body:Z,contentType:nY[F]??"application/octet-stream",size:Z.byteLength}}async function s2(D,F,B){console.log(G.dim(`Uploading ${D} (${(B.size/1024).toFixed(1)} KB)…`));let Z=await fetch(F,{method:"PUT",body:B.body,headers:{"Content-Type":B.contentType}});if(!Z.ok)$(`Upload failed: ${Z.status} ${Z.statusText}`)}function D9(D){D.command("avatar").description("manage the Spectrum avatar image").command("upload <file>").description("upload an image as the Spectrum avatar").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").action(async(B,Z)=>{let E=await r2(B),{projectId:Y,env:J}=await m({flagProjectId:Z.project,apiHost:Z.apiHost}),{api:Q}=await x({apiHost:J.url,token:Z.token,requireAuth:!0}),X=await Q.api.projects({id:Y}).spectrum.avatar.upload.post({contentType:E.contentType});if(X.status===401)throw new f(J.name);if(X.error)$(`Failed to get upload URL: ${k(X.error)}`);let H=X.data;if(H.error)$(H.error);if(!H.uploadUrl||!H.key)$("Server did not return uploadUrl + key.");await s2(B,H.uploadUrl,E);let q=await Q.api.projects({id:Y}).spectrum.avatar.commit.post({key:H.key});if(q.status===401)throw new f(J.name);if(q.error)$(`Uploaded, but commit failed: ${k(q.error)}`);let K=q.data;if(K.error)$(K.error);if(!K.avatarUrl)$("Server did not return an avatar URL after commit.");let C=K.avatarUrl;console.log(G.success(`Uploaded avatar from ${B}`)),console.log(G.dim(` URL: ${C}`))})}function F9(D){D.command("profile").description("manage a dedicated iMessage line profile").command("update <line-id>").alias("edit").description("update a line profile name (preserves unset fields)").option("--first-name <name>").option("--last-name <name>").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(Z,E)=>{let Y=E.firstName!==void 0?{firstName:E.firstName,...E.lastName!==void 0?{lastName:E.lastName}:{}}:E.lastName!==void 0?{lastName:E.lastName}:$("Nothing to update.",{hint:"Pass --first-name and/or --last-name."}),{projectId:J,env:Q}=await m({flagProjectId:E.project,apiHost:E.apiHost}),{api:X}=await x({apiHost:Q.url,token:E.token,requireAuth:!0}),{data:H,error:q,status:K}=await X.api.projects({id:J}).lines({lineId:Z}).profile.patch(Y);if(K===401)throw new f(Q.name);if(q)$(`Failed to update line profile: ${k(q)}`);if(!H?.succeed)$("Failed to update line profile: empty API response.");if(E.json)return w(H.data);console.log(G.success(`Updated profile for line ${Z}.`))}),D.command("avatar").description("manage a dedicated iMessage line avatar").command("upload <line-id> <file>").description("upload an image as a line avatar").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").action(async(Z,E,Y)=>{let J=await r2(E),{projectId:Q,env:X}=await m({flagProjectId:Y.project,apiHost:Y.apiHost}),{api:H}=await x({apiHost:X.url,token:Y.token,requireAuth:!0}),q=await H.api.projects({id:Q}).lines({lineId:Z}).profile.avatar.upload.post({contentType:J.contentType});if(q.status===401)throw new f(X.name);if(q.error)$(`Failed to get line avatar upload URL: ${k(q.error)}`);if(!q.data?.succeed)$("Failed to get line avatar upload URL: empty API response.");let K=q.data.data;if(!K.uploadUrl||!K.key)$("Server did not return uploadUrl + key.");await s2(E,K.uploadUrl,J);let C=await H.api.projects({id:Q}).lines({lineId:Z}).profile.avatar.commit.post({key:K.key});if(C.status===401)throw new f(X.name);if(C.error)$(`Uploaded, but commit failed: ${k(C.error)}`);if(!C.data?.succeed)$("Uploaded, but commit failed: empty API response.");let W=C.data.data.avatarUrl;if(!W)$("Server did not return an avatar URL after commit.");console.log(G.success(`Uploaded avatar for line ${Z}.`)),console.log(G.dim(` URL: ${W}`))})}function B9(D){let F=D.command("lines").description("manage Spectrum phone lines on a project");F9(F),F.command("list",{isDefault:!0}).alias("ls").description("list lines for the active project").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(B)=>{let{projectId:Z,env:E}=await m({flagProjectId:B.project,apiHost:B.apiHost}),{api:Y}=await x({apiHost:E.url,token:B.token,requireAuth:!0}),{data:J,error:Q,status:X}=await Y.api.projects({id:Z}).lines.get();if(X===401)throw new f(E.name);if(Q)$(`Failed to list lines: ${k(Q)}`);let H=S2(J,"lines");if(B.json)return w(H);if(H.length===0){console.log(G.dim("No lines yet.")),console.log(G.hint("Add one with `photon spectrum lines add`."));return}let q=H.map((K)=>[DJ(K.id,10),K.platform??"—",("phoneNumber"in K?K.phoneNumber:K.displayPhoneNumber)??G.dim("—"),K.status??G.dim("—")]);$D(["id","platform","number","status"],q)}),F.command("add").alias("create").description("add a new line (currently iMessage only)").option("--platform <name>","platform (only 'imessage' supported today)","imessage").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(B)=>{if(B.platform!=="imessage")$(`Unsupported platform "${B.platform}".`,{hint:"The server currently only accepts 'imessage'."});let{projectId:Z,env:E}=await m({flagProjectId:B.project,apiHost:B.apiHost}),{api:Y}=await x({apiHost:E.url,token:B.token,requireAuth:!0}),{data:J,error:Q,status:X}=await Y.api.projects({id:Z}).lines.post({platform:"imessage"});if(X===401)throw new f(E.name);if(Q)$(`Failed to add line: ${k(Q)}`);let H=J;if(H.error)$(H.error);if(B.json)return w(H.line??{});console.log(G.success(`Added ${H.line?.platform??"imessage"} line${H.line?.id?G.dim(` (${H.line.id})`):""}`))}),F.command("remove <line-id>").alias("rm").alias("delete").description("remove a line").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("-y, --yes","skip confirmation").action(async(B,Z)=>{let{projectId:E,env:Y}=await m({flagProjectId:Z.project,apiHost:Z.apiHost}),{api:J}=await x({apiHost:Y.url,token:Z.token,requireAuth:!0});await eD({message:`Remove line ${B} from project ${E}?`,yes:Z.yes??!1,fallbackHint:`Pass --yes to remove line ${B}.`});let{error:Q,status:X}=await J.api.projects({id:E}).lines({lineId:B}).delete();if(X===401)throw new f(Y.name);if(Q)$(`Failed to remove line: ${k(Q)}`);console.log(G.success(`Removed line ${B}`))})}function DJ(D,F){return D.length>F?`${D.slice(0,F)}…`:D}var FJ={code:"imessage_connection_missing",message:"iMessage was enabled without a connected phone. Add another phone or connect a dedicated line."};function BJ(D){if(!(D&&typeof D==="object"))return;return D.code==="imessage_connection_missing"?FJ:void 0}function E9(D){let F=D.command("platforms").description("manage Spectrum platform integrations on a project");F.command("list",{isDefault:!0}).alias("ls").description("list platforms and their enabled state").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(B)=>{let{projectId:Z,env:E}=await m({flagProjectId:B.project,apiHost:B.apiHost}),{api:Y}=await x({apiHost:E.url,token:B.token,requireAuth:!0}),{data:J,error:Q,status:X}=await Y.api.projects({id:Z}).platforms.get();if(X===401)throw new f(E.name);if(Q)$(`Failed to list platforms: ${k(Q)}`);let H=Y4(J,"platform map");if(B.json)return w(H);let q=Object.entries(H);if(q.length===0){console.log(G.dim("No platforms configured for this project."));return}let K=q.sort(([C],[W])=>C.localeCompare(W)).map(([C,W])=>[C,W?G.green("on"):G.dim("off")]);$D(["platform","state"],K)}),F.command("enable <name>").description("enable a platform").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(B,Z)=>{await Z9(B,!0,Z)}),F.command("disable <name>").description("disable a platform").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(B,Z)=>{await Z9(B,!1,Z)})}async function Z9(D,F,B){let{projectId:Z,env:E}=await m({flagProjectId:B.project,apiHost:B.apiHost}),{api:Y}=await x({apiHost:E.url,token:B.token,requireAuth:!0}),{data:J,error:Q,status:X}=await Y.api.projects({id:Z}).platforms.toggle.post({platformId:D,enabled:F});if(X===401)throw new f(E.name);if(Q)$(`Failed to ${F?"enable":"disable"} ${D}: ${k(Q)}`);if(!J)$("Server did not return a platform result.");let H=J;if(H.error)$(H.error,{hint:H.error==="Unsupported platform"?"Run `photon spectrum platforms ls` to see available platforms.":void 0});let q=D==="imessage"&&F?BJ(H.warning):void 0;if(B.json)return w(q?{platforms:H.platforms??{},warning:q}:H.platforms??{});if(console.log(G.success(`${F?"Enabled":"Disabled"} ${G.bold(D)}`)),q)console.error(G.warn(q.message))}function Y9(D){let F=D.command("profile").description("view or update the Spectrum profile");F.command("show",{isDefault:!0}).description("show the Spectrum profile").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(B)=>{let{projectId:Z,env:E}=await m({flagProjectId:B.project,apiHost:B.apiHost}),{api:Y}=await x({apiHost:E.url,token:B.token,requireAuth:!0}),{data:J,error:Q,status:X}=await Y.api.projects({id:Z}).spectrum.profile.get();if(X===401)throw new f(E.name);if(Q)$(`Failed to fetch Spectrum profile: ${k(Q)}`);if(B.json)return w(J??{});if(!J||typeof J!=="object"){console.log(G.dim("No Spectrum profile."));return}let H=Object.entries(J).filter(([K])=>!["id","projectId"].includes(K));if(H.length===0){console.log(G.dim("Empty Spectrum profile."));return}let q=Math.max(...H.map(([K])=>K.length));for(let[K,C]of H)console.log(` ${G.dim(K.padEnd(q))} ${ZJ(C)}`)}),F.command("update").alias("edit").description("update the Spectrum profile (preserves unset fields)").option("--first-name <name>").option("--last-name <name>").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(B)=>{if(!(B.firstName!==void 0||B.lastName!==void 0))$("Nothing to update.",{hint:"Pass at least one of --first-name / --last-name."});let{projectId:E,env:Y}=await m({flagProjectId:B.project,apiHost:B.apiHost}),{api:J}=await x({apiHost:Y.url,token:B.token,requireAuth:!0}),Q={};if(B.firstName!==void 0)Q.firstName=B.firstName;if(B.lastName!==void 0)Q.lastName=B.lastName;let{data:X,error:H,status:q}=await J.api.projects({id:E}).spectrum.profile.patch(Q);if(q===401)throw new f(Y.name);if(H)$(`Failed to update Spectrum profile: ${k(H)}`);let K=X;if(K.error)$(K.error);if(B.json)return w(K.profile??{});console.log(G.success("Spectrum profile updated."))}),F.command("sync").description("sync the project profile to every dedicated iMessage line").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(B)=>{let{projectId:Z,env:E}=await m({flagProjectId:B.project,apiHost:B.apiHost}),{api:Y}=await x({apiHost:E.url,token:B.token,requireAuth:!0}),{data:J,error:Q,status:X}=await Y.api.projects({id:Z}).spectrum.profile.sync.post();if(X===401)throw new f(E.name);if(Q)$(`Failed to trigger Spectrum profile sync: ${k(Q)}`);if(!J?.succeed)$("Failed to trigger Spectrum profile sync: empty API response.");if(B.json){w(J.data);return}let{targetedLineCount:H}=J.data;console.log(G.success(`Profile synced. ${H} ${H===1?"line":"lines"} updated.`))})}function ZJ(D){if(D===null||D===void 0||D==="")return G.dim("—");if(typeof D==="boolean")return D?G.green("yes"):G.dim("no");if(typeof D==="object")return JSON.stringify(D);return String(D)}function Q9(D){let F=D.command("users").description("manage Spectrum users on a project");F.command("list",{isDefault:!0}).alias("ls").description("list Spectrum users for the active project").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(B)=>{let{projectId:Z,env:E}=await m({flagProjectId:B.project,apiHost:B.apiHost}),{api:Y}=await x({apiHost:E.url,token:B.token,requireAuth:!0}),{data:J,error:Q,status:X}=await Y.api.projects({id:Z}).spectrum.users.get();if(X===401)throw new f(E.name);if(Q)$(`Failed to list users: ${k(Q)}`);let H=S2(J,"users");if(B.json)return w(H);if(H.length===0){console.log(G.dim("No Spectrum users yet.")),console.log(G.hint("Add one with `photon spectrum users add`."));return}let q=H.map((K)=>[XJ(K.id,10),J9(K),K.email??G.dim("—"),K.phoneNumber??G.dim("—")]);$D(["id","name","email","phone"],q)}),F.command("add").alias("create").description("add a Spectrum user to the active project").option("--first-name <name>","first name").option("--last-name <name>","last name").option("--email <email>","email address").option("--phone <number>","phone number (E.164)").option("--invite","send an onboarding invite to this user").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("--json","output JSON").action(async(B)=>{let{projectId:Z,env:E}=await m({flagProjectId:B.project,apiHost:B.apiHost}),{api:Y}=await x({apiHost:E.url,token:B.token,requireAuth:!0}),J=await HJ(B),{data:Q,error:X,status:H}=await Y.api.projects({id:Z}).spectrum.users.post({firstName:J.firstName,lastName:J.lastName,email:J.email,phoneNumber:J.phone,sendInvite:B.invite??!1});if(H===401)throw new f(E.name);if(X)x1(X,B.json??!1);let q=EJ(Q);if(!q)x1("Server did not return a valid Spectrum user result.",B.json??!1);if("error"in q)x1({code:"shared_user_create_failed",message:q.error},B.json??!1);if(B.json)return w(q.user);let K=q.user;if(console.log(G.success(`Added ${J9(K)} ${G.dim(`(${K.id})`)}`)),B.invite)console.log(G.dim(" Invite sent."))}),F.command("remove <user-id>").alias("rm").alias("delete").description("remove a Spectrum user").option("-p, --project <id>","project id (overrides $PHOTON_PROJECT_ID)").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").option("-y, --yes","skip confirmation").action(async(B,Z)=>{let{projectId:E,env:Y}=await m({flagProjectId:Z.project,apiHost:Z.apiHost}),{api:J}=await x({apiHost:Y.url,token:Z.token,requireAuth:!0});await eD({message:`Remove user ${B} from project ${E}?`,yes:Z.yes??!1,fallbackHint:`Pass --yes to remove user ${B}.`});let{error:Q,status:X}=await J.api.projects({id:E}).spectrum.users({userId:B}).delete();if(X===401)throw new f(Y.name);if(Q)$(`Failed to remove user: ${k(Q)}`);console.log(G.success(`Removed user ${B}`))})}function EJ(D){if(!(D&&typeof D==="object")||Array.isArray(D))return null;let F=D;if(typeof F.error==="string")return{error:F.error};if(F.success!==!0||!(F.user&&typeof F.user==="object")||Array.isArray(F.user)||typeof F.user.id!=="string")return null;return{success:!0,user:F.user}}function YJ(D){return D==="imessage_not_enabled"||D==="shared_line_unavailable"||D==="shared_user_create_failed"}function JJ(D){let F=[D],B=new Set;while(F.length>0){let Z=F.shift();if(!(Z&&typeof Z==="object")||B.has(Z))continue;B.add(Z);let E=Z;if(YJ(E.code)&&typeof E.message==="string")return{code:E.code,message:E.message};for(let Y of["value","message","error","cause"])if(E[Y]&&typeof E[Y]==="object")F.push(E[Y])}return null}var QJ="This phone couldn't be connected to a shared iMessage line. Try another phone or connect a dedicated line.";function x1(D,F){let B=JJ(D)??{code:"shared_user_create_failed",message:k(D)},Z=B.code==="shared_line_unavailable"?{...B,message:QJ}:B;if(F)w({error:Z}),process.exit(1);$(`Failed to add user: ${Z.message}`)}async function HJ(D){if(!GD()){let F=[];if(!D.firstName)F.push("--first-name");if(!D.lastName)F.push("--last-name");if(!D.email)F.push("--email");if(!D.phone)F.push("--phone");if(F.length>0)$(`Missing required flags in non-interactive mode: ${F.join(", ")}`);return{firstName:D.firstName,lastName:D.lastName,email:D.email,phone:D.phone}}return{firstName:D.firstName??await o2("First name"),lastName:D.lastName??await o2("Last name"),email:D.email??await o2("Email"),phone:D.phone??await o2("Phone (E.164, e.g. +14155551234)")}}async function o2(D){let F=await PD({message:D,validate:(B)=>B&&B.trim()?void 0:"Required"});if(BD(F))$("Aborted.");return F.trim()}function J9(D){let F=[D.firstName,D.lastName].filter(Boolean);return F.length>0?F.join(" "):G.dim("(no name)")}function XJ(D,F){return D.length>F?`${D.slice(0,F)}…`:D}function H9(D){let F=D.command("spectrum").description("manage Spectrum users, lines, platforms, and profile");Y9(F),Q9(F),B9(F),E9(F),D9(F)}function X9(D){D.command("update").description("update Photon to the newest release on npm's legacy tag").option("--check","check for an update without installing it").option("--force","reinstall even when this version is current").option("--installer <name>","override package-manager detection (npm, pnpm, yarn Classic, bun)").option("--json","output machine-readable JSON").action(async(F)=>{if(F.check&&F.force)throw Error("--check and --force cannot be used together.");let B=F.installer?P8(F.installer):void 0;if(!F.json)console.log(G.info(F.check?"Checking for Photon updates…":"Updating Photon…"));let Z=await x8({check:F.check,force:F.force,installer:B,quiet:F.json});if(F.json){w(Z);return}if(Z.status==="up-to-date"){console.log(G.success(`Photon ${Z.currentVersion} is up to date.`));return}if(Z.status==="update-available"){console.log(G.warn(`Update available: ${Z.currentVersion} → ${Z.latestVersion}`)),console.log(G.hint(" Run `photon update` to install it."));return}if(Z.status==="reinstalled"){console.log(G.success(`Reinstalled Photon ${Z.currentVersion} with ${Z.installer}.`));return}console.log(G.success(`Updated Photon ${Z.currentVersion} → ${Z.latestVersion} with ${Z.installer}.`))})}function K9(D){D.command("whoami").description("show the user authenticated for the active backend").option("--api-host <url>","API host URL (defaults to PHOTON_API_HOST or built-in production)").option("-t, --token <token>","API token (overrides stored creds)").action(async(F)=>{let{api:B,env:Z,creds:E}=await x({apiHost:F.apiHost,token:F.token,requireAuth:!0}),{data:Y,error:J,status:Q}=await B.api.profile.get();if(Q===401)throw new f(Z.name);if(J)$(`Failed to fetch profile: ${k(J)}`);if(!E){if(console.log(G.dim(`authenticated via token on backend ${Z.name} (${Z.url})`)),Y&&typeof Y==="object"){let H=q9(Y);if(H)console.log(G.dim(`profile: ${H}`))}return}let X=E.user;if(console.log(G.bold(X.name)+G.dim(` <${X.email}>`)),console.log(G.dim(`backend: ${Z.name} (${Z.url})`)),console.log(G.dim(`signed in: ${new Date(E.issuedAt).toLocaleString()}`)),Y&&typeof Y==="object"){let H=q9(Y);if(H)console.log(G.dim(`profile: ${H}`))}})}function q9(D){if(!D||typeof D!=="object")return null;let F=D;if(F.type==="developer"||F.type==="organization")return F.type;return null}function G9(){let D=new B6().name("photon").description("Photon CLI — bring your agents to any interface").version(DD.version,"-v, --version","output the current version").option("--debug","verbose output incl. HTTP request/response").hook("preAction",(F)=>{let B=F.opts();W6(!!B.debug)});return l4(D),q4(D),d4(D),c4(D),K9(D),X9(D),a4(D),o4(D),H9(D),H4(D),X6(D),X4(D),D}if(!y8(process.argv))b8();var qJ=G9();qJ.parseAsync(process.argv).catch(KJ);function KJ(D){if(D instanceof K0||D instanceof f){let F=D.envName==="production"?"":` --api-host <url> # for "${D.envName}"`;$(D.message,{hint:`Run \`photon login${F}\`.`})}if(D instanceof D0)$(D.message,{hint:"Re-run `photon login` if this was unintentional."});if(D instanceof lD)$(D.message,{hint:"Re-run `photon login` and approve more quickly."});if(D instanceof Error){if(/Unable to connect|fetch failed|ECONNREFUSED/i.test(D.message))$(D.message,{hint:"Check your connection, or set PHOTON_API_HOST / pass --api-host <url> to target a reachable backend."});$(D.message)}$(String(D))}
|