@capgo/cli 7.33.0 → 7.33.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/dist/index.js CHANGED
@@ -101,7 +101,7 @@ const config: CapacitorConfig = ${(0,FU.formatJSObject)(t)};
101
101
  export default config;
102
102
  `}});function zU(){try{return Wm.default.statSync("/.dockerenv"),!0}catch{return!1}}function KU(){try{return Wm.default.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}function Ym(){return Gm===void 0&&(Gm=zU()||KU()),Gm}var Wm,Gm,xx=rt(()=>{Wm=pe(require("node:fs"),1)});function Yi(){return Jm===void 0&&(Jm=GU()||Ym()),Jm}var Ax,Jm,GU,Xm=rt(()=>{Ax=pe(require("node:fs"),1);xx();GU=()=>{try{return Ax.default.statSync("/run/.containerenv"),!0}catch{return!1}}});var Zm,Ox,kx,Fx,Tn,Qm=rt(()=>{Zm=pe(require("node:process"),1),Ox=pe(require("node:os"),1),kx=pe(require("node:fs"),1);Xm();Fx=()=>{if(Zm.default.platform!=="linux")return!1;if(Ox.default.release().toLowerCase().includes("microsoft"))return!Yi();try{return kx.default.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft")?!Yi():!1}catch{return!1}},Tn=Zm.default.env.__IS_WSL_TEST__?Fx:Fx()});var eg,Ss,WU,YU,tg,Px=rt(()=>{eg=pe(require("node:process"),1),Ss=pe(require("node:fs/promises"),1);Qm();Qm();WU=(()=>{let t="/mnt/",e;return async function(){if(e)return e;let r="/etc/wsl.conf",n=!1;try{await Ss.default.access(r,Ss.constants.F_OK),n=!0}catch{}if(!n)return t;let o=await Ss.default.readFile(r,{encoding:"utf8"}),i=/(?<!#.*)root\s*=\s*(?<mountPoint>.*)/g.exec(o);return i?(e=i.groups.mountPoint.trim(),e=e.endsWith("/")?e:`${e}/`,e):t}})(),YU=async()=>`${await WU()}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`,tg=async()=>Tn?YU():`${eg.default.env.SYSTEMROOT||eg.default.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`});function In(t,e,r){let n=o=>Object.defineProperty(t,e,{value:o,enumerable:!0,writable:!0});return Object.defineProperty(t,e,{configurable:!0,enumerable:!0,get(){let o=r();return n(o),o},set(o){n(o)}}),t}var $x=rt(()=>{});async function rg(){if(Ix.default.platform!=="darwin")throw new Error("macOS only");let{stdout:t}=await JU("defaults",["read","com.apple.LaunchServices/com.apple.launchservices.secure","LSHandlers"]);return/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec(t)?.groups.id??"com.apple.Safari"}var Tx,Ix,Rx,JU,Bx=rt(()=>{Tx=require("node:util"),Ix=pe(require("node:process"),1),Rx=require("node:child_process"),JU=(0,Tx.promisify)(Rx.execFile)});async function jx(t,{humanReadableOutput:e=!0,signal:r}={}){if(Nx.default.platform!=="darwin")throw new Error("macOS only");let n=e?[]:["-ss"],o={};r&&(o.signal=r);let{stdout:i}=await XU("osascript",["-e",t,n],o);return i.trim()}var Nx,Lx,ng,XU,Ux=rt(()=>{Nx=pe(require("node:process"),1),Lx=require("node:util"),ng=require("node:child_process"),XU=(0,Lx.promisify)(ng.execFile)});async function og(t){return jx(`tell application "Finder" to set app_path to application file id "${t}" as string
103
103
  tell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`)}var Mx=rt(()=>{Ux()});async function ig(t=ZU){let{stdout:e}=await t("reg",["QUERY"," HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\Shell\\Associations\\UrlAssociations\\http\\UserChoice","/v","ProgId"]),r=/ProgId\s*REG_SZ\s*(?<id>\S+)/.exec(e);if(!r)throw new Sl(`Cannot find Windows browser in stdout: ${JSON.stringify(e)}`);let{id:n}=r.groups,o=QU[n];if(!o)throw new Sl(`Unknown browser ID: ${n}`);return o}var qx,Hx,ZU,QU,Sl,Vx=rt(()=>{qx=require("node:util"),Hx=require("node:child_process"),ZU=(0,qx.promisify)(Hx.execFile),QU={AppXq0fevzme2pys62n3e0fbqa7peapykr8v:{name:"Edge",id:"com.microsoft.edge.old"},MSEdgeDHTML:{name:"Edge",id:"com.microsoft.edge"},MSEdgeHTM:{name:"Edge",id:"com.microsoft.edge"},"IE.HTTP":{name:"Internet Explorer",id:"com.microsoft.ie"},FirefoxURL:{name:"Firefox",id:"org.mozilla.firefox"},ChromeHTML:{name:"Chrome",id:"com.google.chrome"},BraveHTML:{name:"Brave",id:"com.brave.Browser"},BraveBHTML:{name:"Brave Beta",id:"com.brave.Browser.beta"},BraveSSHTM:{name:"Brave Nightly",id:"com.brave.Browser.nightly"}},Sl=class extends Error{}});async function ag(){if(xl.default.platform==="darwin"){let t=await rg();return{name:await og(t),id:t}}if(xl.default.platform==="linux"){let{stdout:t}=await e5("xdg-mime",["query","default","x-scheme-handler/http"]),e=t.trim();return{name:t5(e.replace(/.desktop$/,"").replace("-"," ")),id:e}}if(xl.default.platform==="win32")return ig();throw new Error("Only macOS, Linux, and Windows are supported")}var zx,xl,Kx,e5,t5,Gx=rt(()=>{zx=require("node:util"),xl=pe(require("node:process"),1),Kx=require("node:child_process");Bx();Mx();Vx();e5=(0,zx.promisify)(Kx.execFile),t5=t=>t.toLowerCase().replaceAll(/(?:^|\s|-)\S/g,e=>e.toUpperCase())});var pg={};Vr(pg,{apps:()=>Rn,default:()=>a5,openApp:()=>i5});async function n5(){let t=await tg(),e=String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`,r=cg.Buffer.from(e,"utf16le").toString("base64"),{stdout:n}=await r5(t,["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand",r],{encoding:"utf8"}),o=n.trim(),i={ChromeHTML:"com.google.chrome",BraveHTML:"com.brave.Browser",MSEdgeHTM:"com.microsoft.edge",FirefoxURL:"org.mozilla.firefox"};return i[o]?{id:i[o]}:{}}function Xx(t){if(typeof t=="string"||Array.isArray(t))return t;let{[Yx]:e}=t;if(!e)throw new Error(`${Yx} is not supported`);return e}function Fl({[Ji]:t},{wsl:e}){if(e&&Tn)return Xx(e);if(!t)throw new Error(`${Ji} is not supported`);return Xx(t)}var ug,cg,lg,Zx,Qx,fg,Al,s5,r5,sg,Wx,Ji,Yx,Jx,xs,o5,i5,Rn,a5,dg=rt(()=>{ug=pe(require("node:process"),1),cg=require("node:buffer"),lg=pe(require("node:path"),1),Zx=require("node:url"),Qx=require("node:util"),fg=pe(require("node:child_process"),1),Al=pe(require("node:fs/promises"),1);Px();$x();Gx();Xm();s5={},r5=(0,Qx.promisify)(fg.default.execFile),sg=lg.default.dirname((0,Zx.fileURLToPath)(s5.url)),Wx=lg.default.join(sg,"xdg-open"),{platform:Ji,arch:Yx}=ug.default;Jx=async(t,e)=>{let r;for(let n of t)try{return await e(n)}catch(o){r=o}throw r},xs=async t=>{if(t={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...t},Array.isArray(t.app))return Jx(t.app,s=>xs({...t,app:s}));let{name:e,arguments:r=[]}=t.app??{};if(r=[...r],Array.isArray(e))return Jx(e,s=>xs({...t,app:{name:s,arguments:r}}));if(e==="browser"||e==="browserPrivate"){let s={"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"},u={chrome:"--incognito",brave:"--incognito",firefox:"--private-window",edge:"--inPrivate"},c=Tn?await n5():await ag();if(c.id in s){let l=s[c.id];return e==="browserPrivate"&&r.push(u[l]),xs({...t,app:{name:Rn[l],arguments:r}})}throw new Error(`${c.name} is not supported as a default browser`)}let n,o=[],i={};if(Ji==="darwin")n="open",t.wait&&o.push("--wait-apps"),t.background&&o.push("--background"),t.newInstance&&o.push("--new"),e&&o.push("-a",e);else if(Ji==="win32"||Tn&&!Yi()&&!e){n=await tg(),o.push("-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand"),Tn||(i.windowsVerbatimArguments=!0);let s=["Start"];t.wait&&s.push("-Wait"),e?(s.push(`"\`"${e}\`""`),t.target&&r.push(t.target)):t.target&&s.push(`"${t.target}"`),r.length>0&&(r=r.map(u=>`"\`"${u}\`""`),s.push("-ArgumentList",r.join(","))),t.target=cg.Buffer.from(s.join(" "),"utf16le").toString("base64")}else{if(e)n=e;else{let s=!sg||sg==="/",u=!1;try{await Al.default.access(Wx,Al.constants.X_OK),u=!0}catch{}n=ug.default.versions.electron??(Ji==="android"||s||!u)?"xdg-open":Wx}r.length>0&&o.push(...r),t.wait||(i.stdio="ignore",i.detached=!0)}Ji==="darwin"&&r.length>0&&o.push("--args",...r),t.target&&o.push(t.target);let a=fg.default.spawn(n,o,i);return t.wait?new Promise((s,u)=>{a.once("error",u),a.once("close",c=>{if(!t.allowNonzeroExitCode&&c>0){u(new Error(`Exited with code ${c}`));return}s(a)})}):(a.unref(),a)},o5=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a `target`");return xs({...e,target:t})},i5=(t,e)=>{if(typeof t!="string"&&!Array.isArray(t))throw new TypeError("Expected a valid `name`");let{arguments:r=[]}=e??{};if(r!=null&&!Array.isArray(r))throw new TypeError("Expected `appArguments` as Array type");return xs({...e,app:{name:t,arguments:r}})};Rn={};In(Rn,"chrome",()=>Fl({darwin:"google chrome",win32:"chrome",linux:["google-chrome","google-chrome-stable","chromium"]},{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"]}}));In(Rn,"brave",()=>Fl({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"]}}));In(Rn,"firefox",()=>Fl({darwin:"firefox",win32:String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,linux:"firefox"},{wsl:"/mnt/c/Program Files/Mozilla Firefox/firefox.exe"}));In(Rn,"edge",()=>Fl({darwin:"microsoft edge",win32:"msedge",linux:["microsoft-edge","microsoft-edge-dev"]},{wsl:"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"}));In(Rn,"browser",()=>"browser");In(Rn,"browserPrivate",()=>"browserPrivate");a5=o5});var ef=S(pr=>{"use strict";pr.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;pr.find=(t,e)=>t.nodes.find(r=>r.type===e);pr.exceedsLimit=(t,e,r=1,n)=>n===!1||!pr.isInteger(t)||!pr.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=n;pr.escapeNode=(t,e=0,r)=>{let n=t.nodes[e];n&&(r&&n.type===r||n.type==="open"||n.type==="close")&&n.escaped!==!0&&(n.value="\\"+n.value,n.escaped=!0)};pr.encloseBrace=t=>t.type!=="brace"?!1:t.commas>>0+t.ranges>>0===0?(t.invalid=!0,!0):!1;pr.isInvalidBrace=t=>t.type!=="brace"?!1:t.invalid===!0||t.dollar?!0:t.commas>>0+t.ranges>>0===0||t.open!==!0||t.close!==!0?(t.invalid=!0,!0):!1;pr.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;pr.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);pr.flatten=(...t)=>{let e=[],r=n=>{for(let o=0;o<n.length;o++){let i=n[o];if(Array.isArray(i)){r(i);continue}i!==void 0&&e.push(i)}return e};return r(t),e}});var tf=S((yJ,S1)=>{"use strict";var _1=ef();S1.exports=(t,e={})=>{let r=(n,o={})=>{let i=e.escapeInvalid&&_1.isInvalidBrace(o),a=n.invalid===!0&&e.escapeInvalid===!0,s="";if(n.value)return(i||a)&&_1.isOpenOrClose(n)?"\\"+n.value:n.value;if(n.value)return n.value;if(n.nodes)for(let u of n.nodes)s+=r(u);return s};return r(t)}});var A1=S((bJ,x1)=>{"use strict";x1.exports=function(t){return typeof t=="number"?t-t===0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var B1=S((wJ,R1)=>{"use strict";var F1=A1(),jo=(t,e,r)=>{if(F1(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(F1(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let n={relaxZeros:!0,...r};typeof n.strictZeros=="boolean"&&(n.relaxZeros=n.strictZeros===!1);let o=String(n.relaxZeros),i=String(n.shorthand),a=String(n.capture),s=String(n.wrap),u=t+":"+e+"="+o+i+a+s;if(jo.cache.hasOwnProperty(u))return jo.cache[u].result;let c=Math.min(t,e),l=Math.max(t,e);if(Math.abs(c-l)===1){let y=t+"|"+e;return n.capture?`(${y})`:n.wrap===!1?y:`(?:${y})`}let p=I1(t)||I1(e),h={min:t,max:e,a:c,b:l},d=[],m=[];if(p&&(h.isPadded=p,h.maxLen=String(h.max).length),c<0){let y=l<0?Math.abs(l):1;m=O1(y,Math.abs(c),h,n),c=h.a=0}return l>=0&&(d=O1(c,l,h,n)),h.negatives=m,h.positives=d,h.result=Q5(m,d,n),n.capture===!0?h.result=`(${h.result})`:n.wrap!==!1&&d.length+m.length>1&&(h.result=`(?:${h.result})`),jo.cache[u]=h,h.result};function Q5(t,e,r){let n=Lg(t,e,"-",!1,r)||[],o=Lg(e,t,"",!1,r)||[],i=Lg(t,e,"-?",!0,r)||[];return n.concat(i).concat(o).join("|")}function eM(t,e){let r=1,n=1,o=P1(t,r),i=new Set([e]);for(;t<=o&&o<=e;)i.add(o),r+=1,o=P1(t,r);for(o=$1(e+1,n)-1;t<o&&o<=e;)i.add(o),n+=1,o=$1(e+1,n)-1;return i=[...i],i.sort(nM),i}function tM(t,e,r){if(t===e)return{pattern:t,count:[],digits:0};let n=rM(t,e),o=n.length,i="",a=0;for(let s=0;s<o;s++){let[u,c]=n[s];u===c?i+=u:u!=="0"||c!=="9"?i+=oM(u,c,r):a++}return a&&(i+=r.shorthand===!0?"\\d":"[0-9]"),{pattern:i,count:[a],digits:o}}function O1(t,e,r,n){let o=eM(t,e),i=[],a=t,s;for(let u=0;u<o.length;u++){let c=o[u],l=tM(String(a),String(c),n),p="";if(!r.isPadded&&s&&s.pattern===l.pattern){s.count.length>1&&s.count.pop(),s.count.push(l.count[0]),s.string=s.pattern+T1(s.count),a=c+1;continue}r.isPadded&&(p=iM(c,r,n)),l.string=p+l.pattern+T1(l.count),i.push(l),a=c+1,s=l}return i}function Lg(t,e,r,n,o){let i=[];for(let a of t){let{string:s}=a;!n&&!k1(e,"string",s)&&i.push(r+s),n&&k1(e,"string",s)&&i.push(r+s)}return i}function rM(t,e){let r=[];for(let n=0;n<t.length;n++)r.push([t[n],e[n]]);return r}function nM(t,e){return t>e?1:e>t?-1:0}function k1(t,e,r){return t.some(n=>n[e]===r)}function P1(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function $1(t,e){return t-t%Math.pow(10,e)}function T1(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function oM(t,e,r){return`[${t}${e-t===1?"":"-"}${e}]`}function I1(t){return/^-?(0+)\d/.test(t)}function iM(t,e,r){if(!e.isPadded)return t;let n=Math.abs(e.maxLen-String(t).length),o=r.relaxZeros!==!1;switch(n){case 0:return"";case 1:return o?"0?":"0";case 2:return o?"0{0,2}":"00";default:return o?`0{0,${n}}`:`0{${n}}`}}jo.cache={};jo.clearCache=()=>jo.cache={};R1.exports=jo});var Mg=S((vJ,H1)=>{"use strict";var aM=require("util"),L1=B1(),N1=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),sM=t=>e=>t===!0?Number(e):String(e),jg=t=>typeof t=="number"||typeof t=="string"&&t!=="",Ns=t=>Number.isInteger(+t),Ug=t=>{let e=`${t}`,r=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++r]==="0";);return r>0},uM=(t,e,r)=>typeof t=="string"||typeof e=="string"?!0:r.stringify===!0,cM=(t,e,r)=>{if(e>0){let n=t[0]==="-"?"-":"";n&&(t=t.slice(1)),t=n+t.padStart(n?e-1:e,"0")}return r===!1?String(t):t},nf=(t,e)=>{let r=t[0]==="-"?"-":"";for(r&&(t=t.slice(1),e--);t.length<e;)t="0"+t;return r?"-"+t:t},lM=(t,e,r)=>{t.negatives.sort((s,u)=>s<u?-1:s>u?1:0),t.positives.sort((s,u)=>s<u?-1:s>u?1:0);let n=e.capture?"":"?:",o="",i="",a;return t.positives.length&&(o=t.positives.map(s=>nf(String(s),r)).join("|")),t.negatives.length&&(i=`-(${n}${t.negatives.map(s=>nf(String(s),r)).join("|")})`),o&&i?a=`${o}|${i}`:a=o||i,e.wrap?`(${n}${a})`:a},j1=(t,e,r,n)=>{if(r)return L1(t,e,{wrap:!1,...n});let o=String.fromCharCode(t);if(t===e)return o;let i=String.fromCharCode(e);return`[${o}-${i}]`},U1=(t,e,r)=>{if(Array.isArray(t)){let n=r.wrap===!0,o=r.capture?"":"?:";return n?`(${o}${t.join("|")})`:t.join("|")}return L1(t,e,r)},M1=(...t)=>new RangeError("Invalid range arguments: "+aM.inspect(...t)),q1=(t,e,r)=>{if(r.strictRanges===!0)throw M1([t,e]);return[]},fM=(t,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${t}" to be a number`);return[]},pM=(t,e,r=1,n={})=>{let o=Number(t),i=Number(e);if(!Number.isInteger(o)||!Number.isInteger(i)){if(n.strictRanges===!0)throw M1([t,e]);return[]}o===0&&(o=0),i===0&&(i=0);let a=o>i,s=String(t),u=String(e),c=String(r);r=Math.max(Math.abs(r),1);let l=Ug(s)||Ug(u)||Ug(c),p=l?Math.max(s.length,u.length,c.length):0,h=l===!1&&uM(t,e,n)===!1,d=n.transform||sM(h);if(n.toRegex&&r===1)return j1(nf(t,p),nf(e,p),!0,n);let m={negatives:[],positives:[]},y=C=>m[C<0?"negatives":"positives"].push(Math.abs(C)),D=[],E=0;for(;a?o>=i:o<=i;)n.toRegex===!0&&r>1?y(o):D.push(cM(d(o,E),p,h)),o=a?o-r:o+r,E++;return n.toRegex===!0?r>1?lM(m,n,p):U1(D,null,{wrap:!1,...n}):D},dM=(t,e,r=1,n={})=>{if(!Ns(t)&&t.length>1||!Ns(e)&&e.length>1)return q1(t,e,n);let o=n.transform||(h=>String.fromCharCode(h)),i=`${t}`.charCodeAt(0),a=`${e}`.charCodeAt(0),s=i>a,u=Math.min(i,a),c=Math.max(i,a);if(n.toRegex&&r===1)return j1(u,c,!1,n);let l=[],p=0;for(;s?i>=a:i<=a;)l.push(o(i,p)),i=s?i-r:i+r,p++;return n.toRegex===!0?U1(l,null,{wrap:!1,options:n}):l},rf=(t,e,r,n={})=>{if(e==null&&jg(t))return[t];if(!jg(t)||!jg(e))return q1(t,e,n);if(typeof r=="function")return rf(t,e,1,{transform:r});if(N1(r))return rf(t,e,0,r);let o={...n};return o.capture===!0&&(o.wrap=!0),r=r||o.step||1,Ns(r)?Ns(t)&&Ns(e)?pM(t,e,r,o):dM(t,e,Math.max(Math.abs(r),1),o):r!=null&&!N1(r)?fM(r,o):rf(t,e,1,r)};H1.exports=rf});var K1=S((EJ,z1)=>{"use strict";var hM=Mg(),V1=ef(),mM=(t,e={})=>{let r=(n,o={})=>{let i=V1.isInvalidBrace(o),a=n.invalid===!0&&e.escapeInvalid===!0,s=i===!0||a===!0,u=e.escapeInvalid===!0?"\\":"",c="";if(n.isOpen===!0)return u+n.value;if(n.isClose===!0)return console.log("node.isClose",u,n.value),u+n.value;if(n.type==="open")return s?u+n.value:"(";if(n.type==="close")return s?u+n.value:")";if(n.type==="comma")return n.prev.type==="comma"?"":s?n.value:"|";if(n.value)return n.value;if(n.nodes&&n.ranges>0){let l=V1.reduce(n.nodes),p=hM(...l,{...e,wrap:!1,toRegex:!0,strictZeros:!0});if(p.length!==0)return l.length>1&&p.length>1?`(${p})`:p}if(n.nodes)for(let l of n.nodes)c+=r(l,n);return c};return r(t)};z1.exports=mM});var Y1=S((CJ,W1)=>{"use strict";var gM=Mg(),G1=tf(),fa=ef(),Uo=(t="",e="",r=!1)=>{let n=[];if(t=[].concat(t),e=[].concat(e),!e.length)return t;if(!t.length)return r?fa.flatten(e).map(o=>`{${o}}`):e;for(let o of t)if(Array.isArray(o))for(let i of o)n.push(Uo(i,e,r));else for(let i of e)r===!0&&typeof i=="string"&&(i=`{${i}}`),n.push(Array.isArray(i)?Uo(o,i,r):o+i);return fa.flatten(n)},DM=(t,e={})=>{let r=e.rangeLimit===void 0?1e3:e.rangeLimit,n=(o,i={})=>{o.queue=[];let a=i,s=i.queue;for(;a.type!=="brace"&&a.type!=="root"&&a.parent;)a=a.parent,s=a.queue;if(o.invalid||o.dollar){s.push(Uo(s.pop(),G1(o,e)));return}if(o.type==="brace"&&o.invalid!==!0&&o.nodes.length===2){s.push(Uo(s.pop(),["{}"]));return}if(o.nodes&&o.ranges>0){let p=fa.reduce(o.nodes);if(fa.exceedsLimit(...p,e.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let h=gM(...p,e);h.length===0&&(h=G1(o,e)),s.push(Uo(s.pop(),h)),o.nodes=[];return}let u=fa.encloseBrace(o),c=o.queue,l=o;for(;l.type!=="brace"&&l.type!=="root"&&l.parent;)l=l.parent,c=l.queue;for(let p=0;p<o.nodes.length;p++){let h=o.nodes[p];if(h.type==="comma"&&o.type==="brace"){p===1&&c.push(""),c.push("");continue}if(h.type==="close"){s.push(Uo(s.pop(),c,u));continue}if(h.value&&h.type!=="open"){c.push(Uo(c.pop(),h.value));continue}h.nodes&&n(h,o)}return c};return fa.flatten(n(t))};W1.exports=DM});var X1=S((_J,J1)=>{"use strict";J1.exports={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:`
104
- `,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var rF=S((SJ,tF)=>{"use strict";var yM=tf(),{MAX_LENGTH:Z1,CHAR_BACKSLASH:qg,CHAR_BACKTICK:bM,CHAR_COMMA:wM,CHAR_DOT:vM,CHAR_LEFT_PARENTHESES:EM,CHAR_RIGHT_PARENTHESES:CM,CHAR_LEFT_CURLY_BRACE:_M,CHAR_RIGHT_CURLY_BRACE:SM,CHAR_LEFT_SQUARE_BRACKET:Q1,CHAR_RIGHT_SQUARE_BRACKET:eF,CHAR_DOUBLE_QUOTE:xM,CHAR_SINGLE_QUOTE:AM,CHAR_NO_BREAK_SPACE:FM,CHAR_ZERO_WIDTH_NOBREAK_SPACE:OM}=X1(),kM=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},n=typeof r.maxLength=="number"?Math.min(Z1,r.maxLength):Z1;if(t.length>n)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${n})`);let o={type:"root",input:t,nodes:[]},i=[o],a=o,s=o,u=0,c=t.length,l=0,p=0,h,d=()=>t[l++],m=y=>{if(y.type==="text"&&s.type==="dot"&&(s.type="text"),s&&s.type==="text"&&y.type==="text"){s.value+=y.value;return}return a.nodes.push(y),y.parent=a,y.prev=s,s=y,y};for(m({type:"bos"});l<c;)if(a=i[i.length-1],h=d(),!(h===OM||h===FM)){if(h===qg){m({type:"text",value:(e.keepEscaping?h:"")+d()});continue}if(h===eF){m({type:"text",value:"\\"+h});continue}if(h===Q1){u++;let y;for(;l<c&&(y=d());){if(h+=y,y===Q1){u++;continue}if(y===qg){h+=d();continue}if(y===eF&&(u--,u===0))break}m({type:"text",value:h});continue}if(h===EM){a=m({type:"paren",nodes:[]}),i.push(a),m({type:"text",value:h});continue}if(h===CM){if(a.type!=="paren"){m({type:"text",value:h});continue}a=i.pop(),m({type:"text",value:h}),a=i[i.length-1];continue}if(h===xM||h===AM||h===bM){let y=h,D;for(e.keepQuotes!==!0&&(h="");l<c&&(D=d());){if(D===qg){h+=D+d();continue}if(D===y){e.keepQuotes===!0&&(h+=D);break}h+=D}m({type:"text",value:h});continue}if(h===_M){p++;let D={type:"brace",open:!0,close:!1,dollar:s.value&&s.value.slice(-1)==="$"||a.dollar===!0,depth:p,commas:0,ranges:0,nodes:[]};a=m(D),i.push(a),m({type:"open",value:h});continue}if(h===SM){if(a.type!=="brace"){m({type:"text",value:h});continue}let y="close";a=i.pop(),a.close=!0,m({type:y,value:h}),p--,a=i[i.length-1];continue}if(h===wM&&p>0){if(a.ranges>0){a.ranges=0;let y=a.nodes.shift();a.nodes=[y,{type:"text",value:yM(a)}]}m({type:"comma",value:h}),a.commas++;continue}if(h===vM&&p>0&&a.commas===0){let y=a.nodes;if(p===0||y.length===0){m({type:"text",value:h});continue}if(s.type==="dot"){if(a.range=[],s.value+=h,s.type="range",a.nodes.length!==3&&a.nodes.length!==5){a.invalid=!0,a.ranges=0,s.type="text";continue}a.ranges++,a.args=[];continue}if(s.type==="range"){y.pop();let D=y[y.length-1];D.value+=s.value+h,s=D,a.ranges--;continue}m({type:"dot",value:h});continue}m({type:"text",value:h})}do if(a=i.pop(),a.type!=="root"){a.nodes.forEach(E=>{E.nodes||(E.type==="open"&&(E.isOpen=!0),E.type==="close"&&(E.isClose=!0),E.nodes||(E.type="text"),E.invalid=!0)});let y=i[i.length-1],D=y.nodes.indexOf(a);y.nodes.splice(D,1,...a.nodes)}while(i.length>0);return m({type:"eos"}),o};tF.exports=kM});var iF=S((xJ,oF)=>{"use strict";var nF=tf(),PM=K1(),$M=Y1(),TM=rF(),Xt=(t,e={})=>{let r=[];if(Array.isArray(t))for(let n of t){let o=Xt.create(n,e);Array.isArray(o)?r.push(...o):r.push(o)}else r=[].concat(Xt.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};Xt.parse=(t,e={})=>TM(t,e);Xt.stringify=(t,e={})=>nF(typeof t=="string"?Xt.parse(t,e):t,e);Xt.compile=(t,e={})=>(typeof t=="string"&&(t=Xt.parse(t,e)),PM(t,e));Xt.expand=(t,e={})=>{typeof t=="string"&&(t=Xt.parse(t,e));let r=$M(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};Xt.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?Xt.compile(t,e):Xt.expand(t,e);oF.exports=Xt});var Ls=S((AJ,lF)=>{"use strict";var IM=require("path"),Ur="\\\\/",aF=`[^${Ur}]`,ln="\\.",RM="\\+",BM="\\?",of="\\/",NM="(?=.)",sF="[^/]",Hg=`(?:${of}|$)`,uF=`(?:^|${of})`,Vg=`${ln}{1,2}${Hg}`,LM=`(?!${ln})`,jM=`(?!${uF}${Vg})`,UM=`(?!${ln}{0,1}${Hg})`,MM=`(?!${Vg})`,qM=`[^.${of}]`,HM=`${sF}*?`,cF={DOT_LITERAL:ln,PLUS_LITERAL:RM,QMARK_LITERAL:BM,SLASH_LITERAL:of,ONE_CHAR:NM,QMARK:sF,END_ANCHOR:Hg,DOTS_SLASH:Vg,NO_DOT:LM,NO_DOTS:jM,NO_DOT_SLASH:UM,NO_DOTS_SLASH:MM,QMARK_NO_DOT:qM,STAR:HM,START_ANCHOR:uF},VM={...cF,SLASH_LITERAL:`[${Ur}]`,QMARK:aF,STAR:`${aF}*?`,DOTS_SLASH:`${ln}{1,2}(?:[${Ur}]|$)`,NO_DOT:`(?!${ln})`,NO_DOTS:`(?!(?:^|[${Ur}])${ln}{1,2}(?:[${Ur}]|$))`,NO_DOT_SLASH:`(?!${ln}{0,1}(?:[${Ur}]|$))`,NO_DOTS_SLASH:`(?!${ln}{1,2}(?:[${Ur}]|$))`,QMARK_NO_DOT:`[^.${Ur}]`,START_ANCHOR:`(?:^|[${Ur}])`,END_ANCHOR:`(?:[${Ur}]|$)`},zM={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};lF.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:zM,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:IM.sep,extglobChars(t){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===!0?VM:cF}}});var js=S(Ht=>{"use strict";var KM=require("path"),GM=process.platform==="win32",{REGEX_BACKSLASH:WM,REGEX_REMOVE_BACKSLASH:YM,REGEX_SPECIAL_CHARS:JM,REGEX_SPECIAL_CHARS_GLOBAL:XM}=Ls();Ht.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);Ht.hasRegexChars=t=>JM.test(t);Ht.isRegexChar=t=>t.length===1&&Ht.hasRegexChars(t);Ht.escapeRegex=t=>t.replace(XM,"\\$1");Ht.toPosixSlashes=t=>t.replace(WM,"/");Ht.removeBackslashes=t=>t.replace(YM,e=>e==="\\"?"":e);Ht.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};Ht.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:GM===!0||KM.sep==="\\";Ht.escapeLast=(t,e,r)=>{let n=t.lastIndexOf(e,r);return n===-1?t:t[n-1]==="\\"?Ht.escapeLast(t,e,n-1):`${t.slice(0,n)}\\${t.slice(n)}`};Ht.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};Ht.wrapOutput=(t,e={},r={})=>{let n=r.contains?"":"^",o=r.contains?"":"$",i=`${n}(?:${t})${o}`;return e.negated===!0&&(i=`(?:^(?!${i}).*$)`),i}});var yF=S((OJ,DF)=>{"use strict";var fF=js(),{CHAR_ASTERISK:zg,CHAR_AT:ZM,CHAR_BACKWARD_SLASH:Us,CHAR_COMMA:QM,CHAR_DOT:Kg,CHAR_EXCLAMATION_MARK:Gg,CHAR_FORWARD_SLASH:gF,CHAR_LEFT_CURLY_BRACE:Wg,CHAR_LEFT_PARENTHESES:Yg,CHAR_LEFT_SQUARE_BRACKET:e9,CHAR_PLUS:t9,CHAR_QUESTION_MARK:pF,CHAR_RIGHT_CURLY_BRACE:r9,CHAR_RIGHT_PARENTHESES:dF,CHAR_RIGHT_SQUARE_BRACKET:n9}=Ls(),hF=t=>t===gF||t===Us,mF=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?1/0:1)},o9=(t,e)=>{let r=e||{},n=t.length-1,o=r.parts===!0||r.scanToEnd===!0,i=[],a=[],s=[],u=t,c=-1,l=0,p=0,h=!1,d=!1,m=!1,y=!1,D=!1,E=!1,C=!1,g=!1,_=!1,x=!1,P=0,O,B,T={value:"",depth:0,isGlob:!1},L=()=>c>=n,F=()=>u.charCodeAt(c+1),U=()=>(O=B,u.charCodeAt(++c));for(;c<n;){B=U();let w;if(B===Us){C=T.backslashes=!0,B=U(),B===Wg&&(E=!0);continue}if(E===!0||B===Wg){for(P++;L()!==!0&&(B=U());){if(B===Us){C=T.backslashes=!0,U();continue}if(B===Wg){P++;continue}if(E!==!0&&B===Kg&&(B=U())===Kg){if(h=T.isBrace=!0,m=T.isGlob=!0,x=!0,o===!0)continue;break}if(E!==!0&&B===QM){if(h=T.isBrace=!0,m=T.isGlob=!0,x=!0,o===!0)continue;break}if(B===r9&&(P--,P===0)){E=!1,h=T.isBrace=!0,x=!0;break}}if(o===!0)continue;break}if(B===gF){if(i.push(c),a.push(T),T={value:"",depth:0,isGlob:!1},x===!0)continue;if(O===Kg&&c===l+1){l+=2;continue}p=c+1;continue}if(r.noext!==!0&&(B===t9||B===ZM||B===zg||B===pF||B===Gg)===!0&&F()===Yg){if(m=T.isGlob=!0,y=T.isExtglob=!0,x=!0,B===Gg&&c===l&&(_=!0),o===!0){for(;L()!==!0&&(B=U());){if(B===Us){C=T.backslashes=!0,B=U();continue}if(B===dF){m=T.isGlob=!0,x=!0;break}}continue}break}if(B===zg){if(O===zg&&(D=T.isGlobstar=!0),m=T.isGlob=!0,x=!0,o===!0)continue;break}if(B===pF){if(m=T.isGlob=!0,x=!0,o===!0)continue;break}if(B===e9){for(;L()!==!0&&(w=U());){if(w===Us){C=T.backslashes=!0,U();continue}if(w===n9){d=T.isBracket=!0,m=T.isGlob=!0,x=!0;break}}if(o===!0)continue;break}if(r.nonegate!==!0&&B===Gg&&c===l){g=T.negated=!0,l++;continue}if(r.noparen!==!0&&B===Yg){if(m=T.isGlob=!0,o===!0){for(;L()!==!0&&(B=U());){if(B===Yg){C=T.backslashes=!0,B=U();continue}if(B===dF){x=!0;break}}continue}break}if(m===!0){if(x=!0,o===!0)continue;break}}r.noext===!0&&(y=!1,m=!1);let M=u,Q="",$="";l>0&&(Q=u.slice(0,l),u=u.slice(l),p-=l),M&&m===!0&&p>0?(M=u.slice(0,p),$=u.slice(p)):m===!0?(M="",$=u):M=u,M&&M!==""&&M!=="/"&&M!==u&&hF(M.charCodeAt(M.length-1))&&(M=M.slice(0,-1)),r.unescape===!0&&($&&($=fF.removeBackslashes($)),M&&C===!0&&(M=fF.removeBackslashes(M)));let b={prefix:Q,input:t,start:l,base:M,glob:$,isBrace:h,isBracket:d,isGlob:m,isExtglob:y,isGlobstar:D,negated:g,negatedExtglob:_};if(r.tokens===!0&&(b.maxDepth=0,hF(B)||a.push(T),b.tokens=a),r.parts===!0||r.tokens===!0){let w;for(let v=0;v<i.length;v++){let A=w?w+1:l,R=i[v],k=t.slice(A,R);r.tokens&&(v===0&&l!==0?(a[v].isPrefix=!0,a[v].value=Q):a[v].value=k,mF(a[v]),b.maxDepth+=a[v].depth),(v!==0||k!=="")&&s.push(k),w=R}if(w&&w+1<t.length){let v=t.slice(w+1);s.push(v),r.tokens&&(a[a.length-1].value=v,mF(a[a.length-1]),b.maxDepth+=a[a.length-1].depth)}b.slashes=i,b.parts=s}return b};DF.exports=o9});var vF=S((kJ,wF)=>{"use strict";var af=Ls(),Zt=js(),{MAX_LENGTH:sf,POSIX_REGEX_SOURCE:i9,REGEX_NON_SPECIAL_CHARS:a9,REGEX_SPECIAL_CHARS_BACKREF:s9,REPLACEMENTS:bF}=af,u9=(t,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...t,e);t.sort();let r=`[${t.join("-")}]`;try{new RegExp(r)}catch{return t.map(o=>Zt.escapeRegex(o)).join("..")}return r},pa=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,Jg=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=bF[t]||t;let r={...e},n=typeof r.maxLength=="number"?Math.min(sf,r.maxLength):sf,o=t.length;if(o>n)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${n}`);let i={type:"bos",value:"",output:r.prepend||""},a=[i],s=r.capture?"":"?:",u=Zt.isWindows(e),c=af.globChars(u),l=af.extglobChars(c),{DOT_LITERAL:p,PLUS_LITERAL:h,SLASH_LITERAL:d,ONE_CHAR:m,DOTS_SLASH:y,NO_DOT:D,NO_DOT_SLASH:E,NO_DOTS_SLASH:C,QMARK:g,QMARK_NO_DOT:_,STAR:x,START_ANCHOR:P}=c,O=K=>`(${s}(?:(?!${P}${K.dot?y:p}).)*?)`,B=r.dot?"":D,T=r.dot?g:_,L=r.bash===!0?O(r):x;r.capture&&(L=`(${L})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let F={input:t,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:a};t=Zt.removePrefix(t,F),o=t.length;let U=[],M=[],Q=[],$=i,b,w=()=>F.index===o-1,v=F.peek=(K=1)=>t[F.index+K],A=F.advance=()=>t[++F.index]||"",R=()=>t.slice(F.index+1),k=(K="",Ce=0)=>{F.consumed+=K,F.index+=Ce},q=K=>{F.output+=K.output!=null?K.output:K.value,k(K.value)},I=()=>{let K=1;for(;v()==="!"&&(v(2)!=="("||v(3)==="?");)A(),F.start++,K++;return K%2===0?!1:(F.negated=!0,F.start++,!0)},N=K=>{F[K]++,Q.push(K)},te=K=>{F[K]--,Q.pop()},V=K=>{if($.type==="globstar"){let Ce=F.braces>0&&(K.type==="comma"||K.type==="brace"),H=K.extglob===!0||U.length&&(K.type==="pipe"||K.type==="paren");K.type!=="slash"&&K.type!=="paren"&&!Ce&&!H&&(F.output=F.output.slice(0,-$.output.length),$.type="star",$.value="*",$.output=L,F.output+=$.output)}if(U.length&&K.type!=="paren"&&(U[U.length-1].inner+=K.value),(K.value||K.output)&&q(K),$&&$.type==="text"&&K.type==="text"){$.value+=K.value,$.output=($.output||"")+K.value;return}K.prev=$,a.push(K),$=K},se=(K,Ce)=>{let H={...l[Ce],conditions:1,inner:""};H.prev=$,H.parens=F.parens,H.output=F.output;let ue=(r.capture?"(":"")+H.open;N("parens"),V({type:K,value:Ce,output:F.output?"":m}),V({type:"paren",extglob:!0,value:A(),output:ue}),U.push(H)},mr=K=>{let Ce=K.close+(r.capture?")":""),H;if(K.type==="negate"){let ue=L;if(K.inner&&K.inner.length>1&&K.inner.includes("/")&&(ue=O(r)),(ue!==L||w()||/^\)+$/.test(R()))&&(Ce=K.close=`)$))${ue}`),K.inner.includes("*")&&(H=R())&&/^\.[^\\/.]+$/.test(H)){let qe=Jg(H,{...e,fastpaths:!1}).output;Ce=K.close=`)${qe})${ue})`}K.prev.type==="bos"&&(F.negatedExtglob=!0)}V({type:"paren",extglob:!0,value:b,output:Ce}),te("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let K=!1,Ce=t.replace(s9,(H,ue,qe,Ct,tt,gf)=>Ct==="\\"?(K=!0,H):Ct==="?"?ue?ue+Ct+(tt?g.repeat(tt.length):""):gf===0?T+(tt?g.repeat(tt.length):""):g.repeat(qe.length):Ct==="."?p.repeat(qe.length):Ct==="*"?ue?ue+Ct+(tt?L:""):L:ue?H:`\\${H}`);return K===!0&&(r.unescape===!0?Ce=Ce.replace(/\\/g,""):Ce=Ce.replace(/\\+/g,H=>H.length%2===0?"\\\\":H?"\\":"")),Ce===t&&r.contains===!0?(F.output=t,F):(F.output=Zt.wrapOutput(Ce,F,e),F)}for(;!w();){if(b=A(),b==="\0")continue;if(b==="\\"){let H=v();if(H==="/"&&r.bash!==!0||H==="."||H===";")continue;if(!H){b+="\\",V({type:"text",value:b});continue}let ue=/^\\+/.exec(R()),qe=0;if(ue&&ue[0].length>2&&(qe=ue[0].length,F.index+=qe,qe%2!==0&&(b+="\\")),r.unescape===!0?b=A():b+=A(),F.brackets===0){V({type:"text",value:b});continue}}if(F.brackets>0&&(b!=="]"||$.value==="["||$.value==="[^")){if(r.posix!==!1&&b===":"){let H=$.value.slice(1);if(H.includes("[")&&($.posix=!0,H.includes(":"))){let ue=$.value.lastIndexOf("["),qe=$.value.slice(0,ue),Ct=$.value.slice(ue+2),tt=i9[Ct];if(tt){$.value=qe+tt,F.backtrack=!0,A(),!i.output&&a.indexOf($)===1&&(i.output=m);continue}}}(b==="["&&v()!==":"||b==="-"&&v()==="]")&&(b=`\\${b}`),b==="]"&&($.value==="["||$.value==="[^")&&(b=`\\${b}`),r.posix===!0&&b==="!"&&$.value==="["&&(b="^"),$.value+=b,q({value:b});continue}if(F.quotes===1&&b!=='"'){b=Zt.escapeRegex(b),$.value+=b,q({value:b});continue}if(b==='"'){F.quotes=F.quotes===1?0:1,r.keepQuotes===!0&&V({type:"text",value:b});continue}if(b==="("){N("parens"),V({type:"paren",value:b});continue}if(b===")"){if(F.parens===0&&r.strictBrackets===!0)throw new SyntaxError(pa("opening","("));let H=U[U.length-1];if(H&&F.parens===H.parens+1){mr(U.pop());continue}V({type:"paren",value:b,output:F.parens?")":"\\)"}),te("parens");continue}if(b==="["){if(r.nobracket===!0||!R().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(pa("closing","]"));b=`\\${b}`}else N("brackets");V({type:"bracket",value:b});continue}if(b==="]"){if(r.nobracket===!0||$&&$.type==="bracket"&&$.value.length===1){V({type:"text",value:b,output:`\\${b}`});continue}if(F.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(pa("opening","["));V({type:"text",value:b,output:`\\${b}`});continue}te("brackets");let H=$.value.slice(1);if($.posix!==!0&&H[0]==="^"&&!H.includes("/")&&(b=`/${b}`),$.value+=b,q({value:b}),r.literalBrackets===!1||Zt.hasRegexChars(H))continue;let ue=Zt.escapeRegex($.value);if(F.output=F.output.slice(0,-$.value.length),r.literalBrackets===!0){F.output+=ue,$.value=ue;continue}$.value=`(${s}${ue}|${$.value})`,F.output+=$.value;continue}if(b==="{"&&r.nobrace!==!0){N("braces");let H={type:"brace",value:b,output:"(",outputIndex:F.output.length,tokensIndex:F.tokens.length};M.push(H),V(H);continue}if(b==="}"){let H=M[M.length-1];if(r.nobrace===!0||!H){V({type:"text",value:b,output:b});continue}let ue=")";if(H.dots===!0){let qe=a.slice(),Ct=[];for(let tt=qe.length-1;tt>=0&&(a.pop(),qe[tt].type!=="brace");tt--)qe[tt].type!=="dots"&&Ct.unshift(qe[tt].value);ue=u9(Ct,r),F.backtrack=!0}if(H.comma!==!0&&H.dots!==!0){let qe=F.output.slice(0,H.outputIndex),Ct=F.tokens.slice(H.tokensIndex);H.value=H.output="\\{",b=ue="\\}",F.output=qe;for(let tt of Ct)F.output+=tt.output||tt.value}V({type:"brace",value:b,output:ue}),te("braces"),M.pop();continue}if(b==="|"){U.length>0&&U[U.length-1].conditions++,V({type:"text",value:b});continue}if(b===","){let H=b,ue=M[M.length-1];ue&&Q[Q.length-1]==="braces"&&(ue.comma=!0,H="|"),V({type:"comma",value:b,output:H});continue}if(b==="/"){if($.type==="dot"&&F.index===F.start+1){F.start=F.index+1,F.consumed="",F.output="",a.pop(),$=i;continue}V({type:"slash",value:b,output:d});continue}if(b==="."){if(F.braces>0&&$.type==="dot"){$.value==="."&&($.output=p);let H=M[M.length-1];$.type="dots",$.output+=b,$.value+=b,H.dots=!0;continue}if(F.braces+F.parens===0&&$.type!=="bos"&&$.type!=="slash"){V({type:"text",value:b,output:p});continue}V({type:"dot",value:b,output:p});continue}if(b==="?"){if(!($&&$.value==="(")&&r.noextglob!==!0&&v()==="("&&v(2)!=="?"){se("qmark",b);continue}if($&&$.type==="paren"){let ue=v(),qe=b;if(ue==="<"&&!Zt.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");($.value==="("&&!/[!=<:]/.test(ue)||ue==="<"&&!/<([!=]|\w+>)/.test(R()))&&(qe=`\\${b}`),V({type:"text",value:b,output:qe});continue}if(r.dot!==!0&&($.type==="slash"||$.type==="bos")){V({type:"qmark",value:b,output:_});continue}V({type:"qmark",value:b,output:g});continue}if(b==="!"){if(r.noextglob!==!0&&v()==="("&&(v(2)!=="?"||!/[!=<:]/.test(v(3)))){se("negate",b);continue}if(r.nonegate!==!0&&F.index===0){I();continue}}if(b==="+"){if(r.noextglob!==!0&&v()==="("&&v(2)!=="?"){se("plus",b);continue}if($&&$.value==="("||r.regex===!1){V({type:"plus",value:b,output:h});continue}if($&&($.type==="bracket"||$.type==="paren"||$.type==="brace")||F.parens>0){V({type:"plus",value:b});continue}V({type:"plus",value:h});continue}if(b==="@"){if(r.noextglob!==!0&&v()==="("&&v(2)!=="?"){V({type:"at",extglob:!0,value:b,output:""});continue}V({type:"text",value:b});continue}if(b!=="*"){(b==="$"||b==="^")&&(b=`\\${b}`);let H=a9.exec(R());H&&(b+=H[0],F.index+=H[0].length),V({type:"text",value:b});continue}if($&&($.type==="globstar"||$.star===!0)){$.type="star",$.star=!0,$.value+=b,$.output=L,F.backtrack=!0,F.globstar=!0,k(b);continue}let K=R();if(r.noextglob!==!0&&/^\([^?]/.test(K)){se("star",b);continue}if($.type==="star"){if(r.noglobstar===!0){k(b);continue}let H=$.prev,ue=H.prev,qe=H.type==="slash"||H.type==="bos",Ct=ue&&(ue.type==="star"||ue.type==="globstar");if(r.bash===!0&&(!qe||K[0]&&K[0]!=="/")){V({type:"star",value:b,output:""});continue}let tt=F.braces>0&&(H.type==="comma"||H.type==="brace"),gf=U.length&&(H.type==="pipe"||H.type==="paren");if(!qe&&H.type!=="paren"&&!tt&&!gf){V({type:"star",value:b,output:""});continue}for(;K.slice(0,3)==="/**";){let zs=t[F.index+4];if(zs&&zs!=="/")break;K=K.slice(3),k("/**",3)}if(H.type==="bos"&&w()){$.type="globstar",$.value+=b,$.output=O(r),F.output=$.output,F.globstar=!0,k(b);continue}if(H.type==="slash"&&H.prev.type!=="bos"&&!Ct&&w()){F.output=F.output.slice(0,-(H.output+$.output).length),H.output=`(?:${H.output}`,$.type="globstar",$.output=O(r)+(r.strictSlashes?")":"|$)"),$.value+=b,F.globstar=!0,F.output+=H.output+$.output,k(b);continue}if(H.type==="slash"&&H.prev.type!=="bos"&&K[0]==="/"){let zs=K[1]!==void 0?"|$":"";F.output=F.output.slice(0,-(H.output+$.output).length),H.output=`(?:${H.output}`,$.type="globstar",$.output=`${O(r)}${d}|${d}${zs})`,$.value+=b,F.output+=H.output+$.output,F.globstar=!0,k(b+A()),V({type:"slash",value:"/",output:""});continue}if(H.type==="bos"&&K[0]==="/"){$.type="globstar",$.value+=b,$.output=`(?:^|${d}|${O(r)}${d})`,F.output=$.output,F.globstar=!0,k(b+A()),V({type:"slash",value:"/",output:""});continue}F.output=F.output.slice(0,-$.output.length),$.type="globstar",$.output=O(r),$.value+=b,F.output+=$.output,F.globstar=!0,k(b);continue}let Ce={type:"star",value:b,output:L};if(r.bash===!0){Ce.output=".*?",($.type==="bos"||$.type==="slash")&&(Ce.output=B+Ce.output),V(Ce);continue}if($&&($.type==="bracket"||$.type==="paren")&&r.regex===!0){Ce.output=b,V(Ce);continue}(F.index===F.start||$.type==="slash"||$.type==="dot")&&($.type==="dot"?(F.output+=E,$.output+=E):r.dot===!0?(F.output+=C,$.output+=C):(F.output+=B,$.output+=B),v()!=="*"&&(F.output+=m,$.output+=m)),V(Ce)}for(;F.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(pa("closing","]"));F.output=Zt.escapeLast(F.output,"["),te("brackets")}for(;F.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(pa("closing",")"));F.output=Zt.escapeLast(F.output,"("),te("parens")}for(;F.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(pa("closing","}"));F.output=Zt.escapeLast(F.output,"{"),te("braces")}if(r.strictSlashes!==!0&&($.type==="star"||$.type==="bracket")&&V({type:"maybe_slash",value:"",output:`${d}?`}),F.backtrack===!0){F.output="";for(let K of F.tokens)F.output+=K.output!=null?K.output:K.value,K.suffix&&(F.output+=K.suffix)}return F};Jg.fastpaths=(t,e)=>{let r={...e},n=typeof r.maxLength=="number"?Math.min(sf,r.maxLength):sf,o=t.length;if(o>n)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${n}`);t=bF[t]||t;let i=Zt.isWindows(e),{DOT_LITERAL:a,SLASH_LITERAL:s,ONE_CHAR:u,DOTS_SLASH:c,NO_DOT:l,NO_DOTS:p,NO_DOTS_SLASH:h,STAR:d,START_ANCHOR:m}=af.globChars(i),y=r.dot?p:l,D=r.dot?h:l,E=r.capture?"":"?:",C={negated:!1,prefix:""},g=r.bash===!0?".*?":d;r.capture&&(g=`(${g})`);let _=B=>B.noglobstar===!0?g:`(${E}(?:(?!${m}${B.dot?c:a}).)*?)`,x=B=>{switch(B){case"*":return`${y}${u}${g}`;case".*":return`${a}${u}${g}`;case"*.*":return`${y}${g}${a}${u}${g}`;case"*/*":return`${y}${g}${s}${u}${D}${g}`;case"**":return y+_(r);case"**/*":return`(?:${y}${_(r)}${s})?${D}${u}${g}`;case"**/*.*":return`(?:${y}${_(r)}${s})?${D}${g}${a}${u}${g}`;case"**/.*":return`(?:${y}${_(r)}${s})?${a}${u}${g}`;default:{let T=/^(.*?)\.(\w+)$/.exec(B);if(!T)return;let L=x(T[1]);return L?L+a+T[2]:void 0}}},P=Zt.removePrefix(t,C),O=x(P);return O&&r.strictSlashes!==!0&&(O+=`${s}?`),O};wF.exports=Jg});var CF=S((PJ,EF)=>{"use strict";var c9=require("path"),l9=yF(),Xg=vF(),Zg=js(),f9=Ls(),p9=t=>t&&typeof t=="object"&&!Array.isArray(t),Qe=(t,e,r=!1)=>{if(Array.isArray(t)){let l=t.map(h=>Qe(h,e,r));return h=>{for(let d of l){let m=d(h);if(m)return m}return!1}}let n=p9(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!n)throw new TypeError("Expected pattern to be a non-empty string");let o=e||{},i=Zg.isWindows(e),a=n?Qe.compileRe(t,e):Qe.makeRe(t,e,!1,!0),s=a.state;delete a.state;let u=()=>!1;if(o.ignore){let l={...e,ignore:null,onMatch:null,onResult:null};u=Qe(o.ignore,l,r)}let c=(l,p=!1)=>{let{isMatch:h,match:d,output:m}=Qe.test(l,a,e,{glob:t,posix:i}),y={glob:t,state:s,regex:a,posix:i,input:l,output:m,match:d,isMatch:h};return typeof o.onResult=="function"&&o.onResult(y),h===!1?(y.isMatch=!1,p?y:!1):u(l)?(typeof o.onIgnore=="function"&&o.onIgnore(y),y.isMatch=!1,p?y:!1):(typeof o.onMatch=="function"&&o.onMatch(y),p?y:!0)};return r&&(c.state=s),c};Qe.test=(t,e,r,{glob:n,posix:o}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return{isMatch:!1,output:""};let i=r||{},a=i.format||(o?Zg.toPosixSlashes:null),s=t===n,u=s&&a?a(t):t;return s===!1&&(u=a?a(t):t,s=u===n),(s===!1||i.capture===!0)&&(i.matchBase===!0||i.basename===!0?s=Qe.matchBase(t,e,r,o):s=e.exec(u)),{isMatch:!!s,match:s,output:u}};Qe.matchBase=(t,e,r,n=Zg.isWindows(r))=>(e instanceof RegExp?e:Qe.makeRe(e,r)).test(c9.basename(t));Qe.isMatch=(t,e,r)=>Qe(e,r)(t);Qe.parse=(t,e)=>Array.isArray(t)?t.map(r=>Qe.parse(r,e)):Xg(t,{...e,fastpaths:!1});Qe.scan=(t,e)=>l9(t,e);Qe.compileRe=(t,e,r=!1,n=!1)=>{if(r===!0)return t.output;let o=e||{},i=o.contains?"":"^",a=o.contains?"":"$",s=`${i}(?:${t.output})${a}`;t&&t.negated===!0&&(s=`^(?!${s}).*$`);let u=Qe.toRegex(s,e);return n===!0&&(u.state=t),u};Qe.makeRe=(t,e={},r=!1,n=!1)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let o={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(t[0]==="."||t[0]==="*")&&(o.output=Xg.fastpaths(t,e)),o.output||(o=Xg(t,e)),Qe.compileRe(o,e,r,n)};Qe.toRegex=(t,e)=>{try{let r=e||{};return new RegExp(t,r.flags||(r.nocase?"i":""))}catch(r){if(e&&e.debug===!0)throw r;return/$^/}};Qe.constants=f9;EF.exports=Qe});var SF=S(($J,_F)=>{"use strict";_F.exports=CF()});var PF=S((TJ,kF)=>{"use strict";var AF=require("util"),FF=iF(),Mr=SF(),Qg=js(),xF=t=>t===""||t==="./",OF=t=>{let e=t.indexOf("{");return e>-1&&t.indexOf("}",e)>-1},Le=(t,e,r)=>{e=[].concat(e),t=[].concat(t);let n=new Set,o=new Set,i=new Set,a=0,s=l=>{i.add(l.output),r&&r.onResult&&r.onResult(l)};for(let l=0;l<e.length;l++){let p=Mr(String(e[l]),{...r,onResult:s},!0),h=p.state.negated||p.state.negatedExtglob;h&&a++;for(let d of t){let m=p(d,!0);(h?!m.isMatch:m.isMatch)&&(h?n.add(m.output):(n.delete(m.output),o.add(m.output)))}}let c=(a===e.length?[...i]:[...o]).filter(l=>!n.has(l));if(r&&c.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?e.map(l=>l.replace(/\\/g,"")):e}return c};Le.match=Le;Le.matcher=(t,e)=>Mr(t,e);Le.isMatch=(t,e,r)=>Mr(e,r)(t);Le.any=Le.isMatch;Le.not=(t,e,r={})=>{e=[].concat(e).map(String);let n=new Set,o=[],i=s=>{r.onResult&&r.onResult(s),o.push(s.output)},a=new Set(Le(t,e,{...r,onResult:i}));for(let s of o)a.has(s)||n.add(s);return[...n]};Le.contains=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${AF.inspect(t)}"`);if(Array.isArray(e))return e.some(n=>Le.contains(t,n,r));if(typeof e=="string"){if(xF(t)||xF(e))return!1;if(t.includes(e)||t.startsWith("./")&&t.slice(2).includes(e))return!0}return Le.isMatch(t,e,{...r,contains:!0})};Le.matchKeys=(t,e,r)=>{if(!Qg.isObject(t))throw new TypeError("Expected the first argument to be an object");let n=Le(Object.keys(t),e,r),o={};for(let i of n)o[i]=t[i];return o};Le.some=(t,e,r)=>{let n=[].concat(t);for(let o of[].concat(e)){let i=Mr(String(o),r);if(n.some(a=>i(a)))return!0}return!1};Le.every=(t,e,r)=>{let n=[].concat(t);for(let o of[].concat(e)){let i=Mr(String(o),r);if(!n.every(a=>i(a)))return!1}return!0};Le.all=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${AF.inspect(t)}"`);return[].concat(e).every(n=>Mr(n,r)(t))};Le.capture=(t,e,r)=>{let n=Qg.isWindows(r),i=Mr.makeRe(String(t),{...r,capture:!0}).exec(n?Qg.toPosixSlashes(e):e);if(i)return i.slice(1).map(a=>a===void 0?"":a)};Le.makeRe=(...t)=>Mr.makeRe(...t);Le.scan=(...t)=>Mr.scan(...t);Le.parse=(t,e)=>{let r=[];for(let n of[].concat(t||[]))for(let o of FF(String(n),e))r.push(Mr.parse(o,e));return r};Le.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!OF(t)?[t]:FF(t,e)};Le.braceExpand=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return Le.braces(t,{...e,expand:!0})};Le.hasBraces=OF;kF.exports=Le});var gO=S((PX,fn)=>{var $e=require("fs"),ff=require("os"),gt=require("path"),QF=require("crypto"),Hr={fs:$e.constants,os:ff.constants},eO="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",oO=/XXXXXX/,j9=3,iO=(Hr.O_CREAT||Hr.fs.O_CREAT)|(Hr.O_EXCL||Hr.fs.O_EXCL)|(Hr.O_RDWR||Hr.fs.O_RDWR),U9=ff.platform()==="win32",M9=Hr.EBADF||Hr.os.errno.EBADF,q9=Hr.ENOENT||Hr.os.errno.ENOENT,aO=448,sO=384,H9="exit",ha=[],uO=$e.rmdirSync.bind($e),cO=!1;function V9(t,e){return $e.rm(t,{recursive:!0},e)}function lO(t){return $e.rmSync(t,{recursive:!0})}function aD(t,e){let r=ma(t,e),n=r[0],o=r[1];e7(n,function(i,a){if(i)return o(i);let s=a.tries;(function u(){try{let c=pO(a);$e.stat(c,function(l){if(!l)return s-- >0?u():o(new Error("Could not get a unique tmp filename, max tries reached "+c));o(null,c)})}catch(c){o(c)}})()})}function sD(t){let e=ma(t),r=e[0],n=t7(r),o=n.tries;do{let i=pO(n);try{$e.statSync(i)}catch{return i}}while(o-- >0);throw new Error("Could not get a unique tmp filename, max tries reached")}function z9(t,e){let r=ma(t,e),n=r[0],o=r[1];aD(n,function(a,s){if(a)return o(a);$e.open(s,iO,n.mode||sO,function(c,l){if(c)return o(c);if(n.discardDescriptor)return $e.close(l,function(h){return o(h,s,void 0,oD(s,-1,n,!1))});{let p=n.discardDescriptor||n.detachDescriptor;o(null,s,l,oD(s,p?-1:l,n,!1))}})})}function K9(t){let e=ma(t),r=e[0],n=r.discardDescriptor||r.detachDescriptor,o=sD(r),i=$e.openSync(o,iO,r.mode||sO);return r.discardDescriptor&&($e.closeSync(i),i=void 0),{name:o,fd:i,removeCallback:oD(o,n?-1:i,r,!0)}}function G9(t,e){let r=ma(t,e),n=r[0],o=r[1];aD(n,function(a,s){if(a)return o(a);$e.mkdir(s,n.mode||aO,function(c){if(c)return o(c);o(null,s,fO(s,n,!1))})})}function W9(t){let e=ma(t),r=e[0],n=sD(r);return $e.mkdirSync(n,r.mode||aO),{name:n,removeCallback:fO(n,r,!0)}}function Y9(t,e){let r=function(n){if(n&&!iD(n))return e(n);e()};0<=t[0]?$e.close(t[0],function(){$e.unlink(t[1],r)}):$e.unlink(t[1],r)}function J9(t){let e=null;try{0<=t[0]&&$e.closeSync(t[0])}catch(r){if(!r7(r)&&!iD(r))throw r}finally{try{$e.unlinkSync(t[1])}catch(r){iD(r)||(e=r)}}if(e!==null)throw e}function oD(t,e,r,n){let o=lf(J9,[e,t],n),i=lf(Y9,[e,t],n,o);return r.keep||ha.unshift(o),n?o:i}function fO(t,e,r){let n=e.unsafeCleanup?V9:$e.rmdir.bind($e),o=e.unsafeCleanup?lO:uO,i=lf(o,t,r),a=lf(n,t,r,i);return e.keep||ha.unshift(i),r?i:a}function lf(t,e,r,n){let o=!1;return function i(a){if(!o){let s=n||i,u=ha.indexOf(s);return u>=0&&ha.splice(u,1),o=!0,r||t===uO||t===lO?t(e):t(e,a||function(){})}}}function X9(){if(cO)for(;ha.length;)try{ha[0]()}catch{}}function tO(t){let e=[],r=null;try{r=QF.randomBytes(t)}catch{r=QF.pseudoRandomBytes(t)}for(let n=0;n<t;n++)e.push(eO[r[n]%eO.length]);return e.join("")}function Qt(t){return typeof t>"u"}function ma(t,e){if(typeof t=="function")return[{},t];if(Qt(t))return[{},e];let r={};for(let n of Object.getOwnPropertyNames(t))r[n]=t[n];return[r,e]}function Z9(t,e,r){let n=gt.isAbsolute(t)?t:gt.join(e,t);$e.stat(n,function(o){o?$e.realpath(gt.dirname(n),function(i,a){if(i)return r(i);r(null,gt.join(a,gt.basename(n)))}):$e.realpath(n,r)})}function Q9(t,e){let r=gt.isAbsolute(t)?t:gt.join(e,t);try{return $e.statSync(r),$e.realpathSync(r)}catch{let o=$e.realpathSync(gt.dirname(r));return gt.join(o,gt.basename(r))}}function pO(t){let e=t.tmpdir;if(!Qt(t.name))return gt.join(e,t.dir,t.name);if(!Qt(t.template))return gt.join(e,t.dir,t.template).replace(oO,tO(6));let r=[t.prefix?t.prefix:"tmp","-",process.pid,"-",tO(12),t.postfix?"-"+t.postfix:""].join("");return gt.join(e,t.dir,r)}function dO(t){if(!Qt(t.name)){let e=t.name;if(gt.isAbsolute(e))throw new Error(`name option must not contain an absolute path, found "${e}".`);let r=gt.basename(e);if(r===".."||r==="."||r!==e)throw new Error(`name option must not contain a path, found "${e}".`)}if(!Qt(t.template)&&!t.template.match(oO))throw new Error(`Invalid template, found "${t.template}".`);if(!Qt(t.tries)&&isNaN(t.tries)||t.tries<0)throw new Error(`Invalid tries, found "${t.tries}".`);t.tries=Qt(t.name)?t.tries||j9:1,t.keep=!!t.keep,t.detachDescriptor=!!t.detachDescriptor,t.discardDescriptor=!!t.discardDescriptor,t.unsafeCleanup=!!t.unsafeCleanup,t.prefix=Qt(t.prefix)?"":t.prefix,t.postfix=Qt(t.postfix)?"":t.postfix}function rO(t,e,r,n){if(Qt(e))return n(null);Z9(e,r,function(o,i){if(o)return n(o);let a=gt.relative(r,i);if(!i.startsWith(r))return n(new Error(`${t} option must be relative to "${r}", found "${a}".`));n(null,a)})}function nO(t,e,r){if(Qt(e))return;let n=Q9(e,r),o=gt.relative(r,n);if(!n.startsWith(r))throw new Error(`${t} option must be relative to "${r}", found "${o}".`);return o}function e7(t,e){o7(t,function(r,n){if(r)return e(r);t.tmpdir=n;try{dO(t,n)}catch(o){return e(o)}rO("dir",t.dir,n,function(o,i){if(o)return e(o);t.dir=Qt(i)?"":i,rO("template",t.template,n,function(a,s){if(a)return e(a);t.template=s,e(null,t)})})})}function t7(t){let e=t.tmpdir=mO(t);dO(t,e);let r=nO("dir",t.dir,e);return t.dir=Qt(r)?"":r,t.template=nO("template",t.template,e),t}function r7(t){return hO(t,-M9,"EBADF")}function iD(t){return hO(t,-q9,"ENOENT")}function hO(t,e,r){return U9?t.code===r:t.code===r&&t.errno===e}function n7(){cO=!0}function o7(t,e){return $e.realpath(t&&t.tmpdir||ff.tmpdir(),e)}function mO(t){return $e.realpathSync(t&&t.tmpdir||ff.tmpdir())}process.addListener(H9,X9);Object.defineProperty(fn.exports,"tmpdir",{enumerable:!0,configurable:!1,get:function(){return mO()}});fn.exports.dir=G9;fn.exports.dirSync=W9;fn.exports.file=z9;fn.exports.fileSync=K9;fn.exports.tmpName=aD;fn.exports.tmpNameSync=sD;fn.exports.setGracefulCleanup=n7});var hf=require("node:process");var PD=pe(kD(),1),{program:ot,createCommand:L7,createArgument:j7,createOption:U7,CommanderError:M7,InvalidArgumentError:q7,InvalidOptionArgumentError:H7,Command:V7,Argument:z7,Option:K7,Help:G7}=PD.default;var gr={name:"@capgo/cli",version:"7.33.0",description:"A CLI to upload to capgo servers",author:"Martin martin@capgo.app",license:"Apache 2.0",homepage:"https://github.com/Cap-go/CLI#readme",repository:{type:"git",url:"git+https://github.com/Cap-go/CLI.git"},bugs:{url:"https://github.com/Cap-go/CLI/issues"},keywords:["appflow alternative","ionic","capacitor","auto update","live update","capgo","cli","upload","capgo-cli","sdk"],exports:{".":{import:"./dist/index.js",require:"./dist/index.js"},"./sdk":{types:"./dist/src/sdk.d.ts",import:"./dist/src/sdk.js",require:"./dist/src/sdk.js"}},main:"dist/index.js",types:"dist/src/index.d.ts",bin:{capgo:"dist/index.js"},engines:{npm:">=8.0.0",node:">=20.0.0"},scripts:{build:"tsc && node build.mjs",dev:"NODE_ENV=development ncc build","no-debug":"node dist/index.js","dev-build":"SUPA_DB=development ncc build",pack:"pkg",types:"npx --yes supabase gen types typescript --project-id=xvwzpoazmxkqosrdewyv > src/types/supabase.types.ts",typecheck:"tsc --noEmit",lint:'eslint "src/**/*.ts" --fix',"check-posix-paths":"node test/check-posix-paths.js","generate-docs":"node dist/index.js generate-docs README.md","test:bundle":"bun test/test-bundle.mjs","test:functional":"bun test/test-functional.mjs","test:semver":"bun test/test-semver-validation.mjs","test:version-edge-cases":"bun test/test-version-validation.mjs","test:regex":"bun test/test-regex-validation.mjs","test:upload":"bun test/test-upload-validation.mjs","test:credentials":"bun test/test-credentials.mjs","test:credentials-validation":"bun test/test-credentials-validation.mjs",test:"bun run test:bundle && bun run test:functional && bun run test:semver && bun run test:version-edge-cases && bun run test:regex && bun run test:upload && bun run test:credentials && bun run test:credentials-validation"},devDependencies:{"@antfu/eslint-config":"^6.1.0","@bradenmacdonald/s3-lite-client":"npm:@jsr/bradenmacdonald__s3-lite-client@0.9.4","@capacitor/cli":"^7.4.4","@capgo/find-package-manager":"^0.0.18","@clack/prompts":"^0.11.0","@sauber/table":"npm:@jsr/sauber__table","@std/semver":"npm:@jsr/std__semver@1.0.6","@supabase/supabase-js":"^2.79.0","@types/adm-zip":"^0.5.7","@types/node":"^24.9.1","@types/prettyjson":"^0.0.33","@types/tmp":"^0.2.6","@vercel/ncc":"^0.38.4","adm-zip":"^0.5.16","ci-info":"^4.3.1",commander:"^14.0.2",esbuild:"^0.25.11",eslint:"^9.38.0","git-format-staged":"3.1.1",husky:"^9.1.7","is-wsl":"^3.1.0",open:"^10.1.2",prettyjson:"^1.2.5",tmp:"^0.2.5","tus-js-client":"^4.3.1",typescript:"^5.9.3"}};var ia=require("node:fs");var Dt=pe(Rf(),1),Ho=require("node:process"),dn=pe(require("node:readline"),1),Uf=pe(require("node:readline"),1),qD=require("node:stream"),HD=pe(Nf(),1);function e2({onlyFirst:t=!1}={}){let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}var t2=e2();function VD(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(t2,"")}function zD(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var KD={exports:{}};(function(t){var e={};t.exports=e,e.eastAsianWidth=function(n){var o=n.charCodeAt(0),i=n.length==2?n.charCodeAt(1):0,a=o;return 55296<=o&&o<=56319&&56320<=i&&i<=57343&&(o&=1023,i&=1023,a=o<<10|i,a+=65536),a==12288||65281<=a&&a<=65376||65504<=a&&a<=65510?"F":a==8361||65377<=a&&a<=65470||65474<=a&&a<=65479||65482<=a&&a<=65487||65490<=a&&a<=65495||65498<=a&&a<=65500||65512<=a&&a<=65518?"H":4352<=a&&a<=4447||4515<=a&&a<=4519||4602<=a&&a<=4607||9001<=a&&a<=9002||11904<=a&&a<=11929||11931<=a&&a<=12019||12032<=a&&a<=12245||12272<=a&&a<=12283||12289<=a&&a<=12350||12353<=a&&a<=12438||12441<=a&&a<=12543||12549<=a&&a<=12589||12593<=a&&a<=12686||12688<=a&&a<=12730||12736<=a&&a<=12771||12784<=a&&a<=12830||12832<=a&&a<=12871||12880<=a&&a<=13054||13056<=a&&a<=19903||19968<=a&&a<=42124||42128<=a&&a<=42182||43360<=a&&a<=43388||44032<=a&&a<=55203||55216<=a&&a<=55238||55243<=a&&a<=55291||63744<=a&&a<=64255||65040<=a&&a<=65049||65072<=a&&a<=65106||65108<=a&&a<=65126||65128<=a&&a<=65131||110592<=a&&a<=110593||127488<=a&&a<=127490||127504<=a&&a<=127546||127552<=a&&a<=127560||127568<=a&&a<=127569||131072<=a&&a<=194367||177984<=a&&a<=196605||196608<=a&&a<=262141?"W":32<=a&&a<=126||162<=a&&a<=163||165<=a&&a<=166||a==172||a==175||10214<=a&&a<=10221||10629<=a&&a<=10630?"Na":a==161||a==164||167<=a&&a<=168||a==170||173<=a&&a<=174||176<=a&&a<=180||182<=a&&a<=186||188<=a&&a<=191||a==198||a==208||215<=a&&a<=216||222<=a&&a<=225||a==230||232<=a&&a<=234||236<=a&&a<=237||a==240||242<=a&&a<=243||247<=a&&a<=250||a==252||a==254||a==257||a==273||a==275||a==283||294<=a&&a<=295||a==299||305<=a&&a<=307||a==312||319<=a&&a<=322||a==324||328<=a&&a<=331||a==333||338<=a&&a<=339||358<=a&&a<=359||a==363||a==462||a==464||a==466||a==468||a==470||a==472||a==474||a==476||a==593||a==609||a==708||a==711||713<=a&&a<=715||a==717||a==720||728<=a&&a<=731||a==733||a==735||768<=a&&a<=879||913<=a&&a<=929||931<=a&&a<=937||945<=a&&a<=961||963<=a&&a<=969||a==1025||1040<=a&&a<=1103||a==1105||a==8208||8211<=a&&a<=8214||8216<=a&&a<=8217||8220<=a&&a<=8221||8224<=a&&a<=8226||8228<=a&&a<=8231||a==8240||8242<=a&&a<=8243||a==8245||a==8251||a==8254||a==8308||a==8319||8321<=a&&a<=8324||a==8364||a==8451||a==8453||a==8457||a==8467||a==8470||8481<=a&&a<=8482||a==8486||a==8491||8531<=a&&a<=8532||8539<=a&&a<=8542||8544<=a&&a<=8555||8560<=a&&a<=8569||a==8585||8592<=a&&a<=8601||8632<=a&&a<=8633||a==8658||a==8660||a==8679||a==8704||8706<=a&&a<=8707||8711<=a&&a<=8712||a==8715||a==8719||a==8721||a==8725||a==8730||8733<=a&&a<=8736||a==8739||a==8741||8743<=a&&a<=8748||a==8750||8756<=a&&a<=8759||8764<=a&&a<=8765||a==8776||a==8780||a==8786||8800<=a&&a<=8801||8804<=a&&a<=8807||8810<=a&&a<=8811||8814<=a&&a<=8815||8834<=a&&a<=8835||8838<=a&&a<=8839||a==8853||a==8857||a==8869||a==8895||a==8978||9312<=a&&a<=9449||9451<=a&&a<=9547||9552<=a&&a<=9587||9600<=a&&a<=9615||9618<=a&&a<=9621||9632<=a&&a<=9633||9635<=a&&a<=9641||9650<=a&&a<=9651||9654<=a&&a<=9655||9660<=a&&a<=9661||9664<=a&&a<=9665||9670<=a&&a<=9672||a==9675||9678<=a&&a<=9681||9698<=a&&a<=9701||a==9711||9733<=a&&a<=9734||a==9737||9742<=a&&a<=9743||9748<=a&&a<=9749||a==9756||a==9758||a==9792||a==9794||9824<=a&&a<=9825||9827<=a&&a<=9829||9831<=a&&a<=9834||9836<=a&&a<=9837||a==9839||9886<=a&&a<=9887||9918<=a&&a<=9919||9924<=a&&a<=9933||9935<=a&&a<=9953||a==9955||9960<=a&&a<=9983||a==10045||a==10071||10102<=a&&a<=10111||11093<=a&&a<=11097||12872<=a&&a<=12879||57344<=a&&a<=63743||65024<=a&&a<=65039||a==65533||127232<=a&&a<=127242||127248<=a&&a<=127277||127280<=a&&a<=127337||127344<=a&&a<=127386||917760<=a&&a<=917999||983040<=a&&a<=1048573||1048576<=a&&a<=1114109?"A":"N"},e.characterLength=function(n){var o=this.eastAsianWidth(n);return o=="F"||o=="W"||o=="A"?2:1};function r(n){return n.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}e.length=function(n){for(var o=r(n),i=0,a=0;a<o.length;a++)i=i+this.characterLength(o[a]);return i},e.slice=function(n,o,i){textLen=e.length(n),o=o||0,i=i||1,o<0&&(o=textLen+o),i<0&&(i=textLen+i);for(var a="",s=0,u=r(n),c=0;c<u.length;c++){var l=u[c],p=e.length(l);if(s>=o-(p==2?1:0))if(s+p<=i)a+=l;else break;s+=p}return a}})(KD);var r2=KD.exports,n2=zD(r2),o2=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},i2=zD(o2);function ba(t,e={}){if(typeof t!="string"||t.length===0||(e={ambiguousIsNarrow:!0,...e},t=VD(t),t.length===0))return 0;t=t.replace(i2()," ");let r=e.ambiguousIsNarrow?1:2,n=0;for(let o of t){let i=o.codePointAt(0);if(!(i<=31||i>=127&&i<=159||i>=768&&i<=879))switch(n2.eastAsianWidth(o)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}var Lf=10,RD=(t=0)=>e=>`\x1B[${e+t}m`,BD=(t=0)=>e=>`\x1B[${38+t};5;${e}m`,ND=(t=0)=>(e,r,n)=>`\x1B[${38+t};2;${e};${r};${n}m`,je={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(je.modifier);var a2=Object.keys(je.color),s2=Object.keys(je.bgColor);[...a2,...s2];function u2(){let t=new Map;for(let[e,r]of Object.entries(je)){for(let[n,o]of Object.entries(r))je[n]={open:`\x1B[${o[0]}m`,close:`\x1B[${o[1]}m`},r[n]=je[n],t.set(o[0],o[1]);Object.defineProperty(je,e,{value:r,enumerable:!1})}return Object.defineProperty(je,"codes",{value:t,enumerable:!1}),je.color.close="\x1B[39m",je.bgColor.close="\x1B[49m",je.color.ansi=RD(),je.color.ansi256=BD(),je.color.ansi16m=ND(),je.bgColor.ansi=RD(Lf),je.bgColor.ansi256=BD(Lf),je.bgColor.ansi16m=ND(Lf),Object.defineProperties(je,{rgbToAnsi256:{value:(e,r,n)=>e===r&&r===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5),enumerable:!1},hexToRgb:{value:e=>{let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(i=>i+i).join(""));let o=Number.parseInt(n,16);return[o>>16&255,o>>8&255,o&255]},enumerable:!1},hexToAnsi256:{value:e=>je.rgbToAnsi256(...je.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value:e=>{if(e<8)return 30+e;if(e<16)return 90+(e-8);let r,n,o;if(e>=232)r=((e-232)*10+8)/255,n=r,o=r;else{e-=16;let s=e%36;r=Math.floor(e/36)/5,n=Math.floor(s/6)/5,o=s%6/5}let i=Math.max(r,n,o)*2;if(i===0)return 30;let a=30+(Math.round(o)<<2|Math.round(n)<<1|Math.round(r));return i===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(e,r,n)=>je.ansi256ToAnsi(je.rgbToAnsi256(e,r,n)),enumerable:!1},hexToAnsi:{value:e=>je.ansi256ToAnsi(je.hexToAnsi256(e)),enumerable:!1}}),je}var c2=u2(),nu=new Set(["\x1B","\x9B"]),l2=39,qf="\x07",GD="[",f2="]",WD="m",Hf=`${f2}8;;`,LD=t=>`${nu.values().next().value}${GD}${t}${WD}`,jD=t=>`${nu.values().next().value}${Hf}${t}${qf}`,p2=t=>t.split(" ").map(e=>ba(e)),jf=(t,e,r)=>{let n=[...e],o=!1,i=!1,a=ba(VD(t[t.length-1]));for(let[s,u]of n.entries()){let c=ba(u);if(a+c<=r?t[t.length-1]+=u:(t.push(u),a=0),nu.has(u)&&(o=!0,i=n.slice(s+1).join("").startsWith(Hf)),o){i?u===qf&&(o=!1,i=!1):u===WD&&(o=!1);continue}a+=c,a===r&&s<n.length-1&&(t.push(""),a=0)}!a&&t[t.length-1].length>0&&t.length>1&&(t[t.length-2]+=t.pop())},d2=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!(ba(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},h2=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let n="",o,i,a=p2(t),s=[""];for(let[c,l]of t.split(" ").entries()){r.trim!==!1&&(s[s.length-1]=s[s.length-1].trimStart());let p=ba(s[s.length-1]);if(c!==0&&(p>=e&&(r.wordWrap===!1||r.trim===!1)&&(s.push(""),p=0),(p>0||r.trim===!1)&&(s[s.length-1]+=" ",p++)),r.hard&&a[c]>e){let h=e-p,d=1+Math.floor((a[c]-h-1)/e);Math.floor((a[c]-1)/e)<d&&s.push(""),jf(s,l,e);continue}if(p+a[c]>e&&p>0&&a[c]>0){if(r.wordWrap===!1&&p<e){jf(s,l,e);continue}s.push("")}if(p+a[c]>e&&r.wordWrap===!1){jf(s,l,e);continue}s[s.length-1]+=l}r.trim!==!1&&(s=s.map(c=>d2(c)));let u=[...s.join(`
104
+ `,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var rF=S((SJ,tF)=>{"use strict";var yM=tf(),{MAX_LENGTH:Z1,CHAR_BACKSLASH:qg,CHAR_BACKTICK:bM,CHAR_COMMA:wM,CHAR_DOT:vM,CHAR_LEFT_PARENTHESES:EM,CHAR_RIGHT_PARENTHESES:CM,CHAR_LEFT_CURLY_BRACE:_M,CHAR_RIGHT_CURLY_BRACE:SM,CHAR_LEFT_SQUARE_BRACKET:Q1,CHAR_RIGHT_SQUARE_BRACKET:eF,CHAR_DOUBLE_QUOTE:xM,CHAR_SINGLE_QUOTE:AM,CHAR_NO_BREAK_SPACE:FM,CHAR_ZERO_WIDTH_NOBREAK_SPACE:OM}=X1(),kM=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},n=typeof r.maxLength=="number"?Math.min(Z1,r.maxLength):Z1;if(t.length>n)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${n})`);let o={type:"root",input:t,nodes:[]},i=[o],a=o,s=o,u=0,c=t.length,l=0,p=0,h,d=()=>t[l++],m=y=>{if(y.type==="text"&&s.type==="dot"&&(s.type="text"),s&&s.type==="text"&&y.type==="text"){s.value+=y.value;return}return a.nodes.push(y),y.parent=a,y.prev=s,s=y,y};for(m({type:"bos"});l<c;)if(a=i[i.length-1],h=d(),!(h===OM||h===FM)){if(h===qg){m({type:"text",value:(e.keepEscaping?h:"")+d()});continue}if(h===eF){m({type:"text",value:"\\"+h});continue}if(h===Q1){u++;let y;for(;l<c&&(y=d());){if(h+=y,y===Q1){u++;continue}if(y===qg){h+=d();continue}if(y===eF&&(u--,u===0))break}m({type:"text",value:h});continue}if(h===EM){a=m({type:"paren",nodes:[]}),i.push(a),m({type:"text",value:h});continue}if(h===CM){if(a.type!=="paren"){m({type:"text",value:h});continue}a=i.pop(),m({type:"text",value:h}),a=i[i.length-1];continue}if(h===xM||h===AM||h===bM){let y=h,D;for(e.keepQuotes!==!0&&(h="");l<c&&(D=d());){if(D===qg){h+=D+d();continue}if(D===y){e.keepQuotes===!0&&(h+=D);break}h+=D}m({type:"text",value:h});continue}if(h===_M){p++;let D={type:"brace",open:!0,close:!1,dollar:s.value&&s.value.slice(-1)==="$"||a.dollar===!0,depth:p,commas:0,ranges:0,nodes:[]};a=m(D),i.push(a),m({type:"open",value:h});continue}if(h===SM){if(a.type!=="brace"){m({type:"text",value:h});continue}let y="close";a=i.pop(),a.close=!0,m({type:y,value:h}),p--,a=i[i.length-1];continue}if(h===wM&&p>0){if(a.ranges>0){a.ranges=0;let y=a.nodes.shift();a.nodes=[y,{type:"text",value:yM(a)}]}m({type:"comma",value:h}),a.commas++;continue}if(h===vM&&p>0&&a.commas===0){let y=a.nodes;if(p===0||y.length===0){m({type:"text",value:h});continue}if(s.type==="dot"){if(a.range=[],s.value+=h,s.type="range",a.nodes.length!==3&&a.nodes.length!==5){a.invalid=!0,a.ranges=0,s.type="text";continue}a.ranges++,a.args=[];continue}if(s.type==="range"){y.pop();let D=y[y.length-1];D.value+=s.value+h,s=D,a.ranges--;continue}m({type:"dot",value:h});continue}m({type:"text",value:h})}do if(a=i.pop(),a.type!=="root"){a.nodes.forEach(E=>{E.nodes||(E.type==="open"&&(E.isOpen=!0),E.type==="close"&&(E.isClose=!0),E.nodes||(E.type="text"),E.invalid=!0)});let y=i[i.length-1],D=y.nodes.indexOf(a);y.nodes.splice(D,1,...a.nodes)}while(i.length>0);return m({type:"eos"}),o};tF.exports=kM});var iF=S((xJ,oF)=>{"use strict";var nF=tf(),PM=K1(),$M=Y1(),TM=rF(),Xt=(t,e={})=>{let r=[];if(Array.isArray(t))for(let n of t){let o=Xt.create(n,e);Array.isArray(o)?r.push(...o):r.push(o)}else r=[].concat(Xt.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};Xt.parse=(t,e={})=>TM(t,e);Xt.stringify=(t,e={})=>nF(typeof t=="string"?Xt.parse(t,e):t,e);Xt.compile=(t,e={})=>(typeof t=="string"&&(t=Xt.parse(t,e)),PM(t,e));Xt.expand=(t,e={})=>{typeof t=="string"&&(t=Xt.parse(t,e));let r=$M(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};Xt.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?Xt.compile(t,e):Xt.expand(t,e);oF.exports=Xt});var Ls=S((AJ,lF)=>{"use strict";var IM=require("path"),Ur="\\\\/",aF=`[^${Ur}]`,ln="\\.",RM="\\+",BM="\\?",of="\\/",NM="(?=.)",sF="[^/]",Hg=`(?:${of}|$)`,uF=`(?:^|${of})`,Vg=`${ln}{1,2}${Hg}`,LM=`(?!${ln})`,jM=`(?!${uF}${Vg})`,UM=`(?!${ln}{0,1}${Hg})`,MM=`(?!${Vg})`,qM=`[^.${of}]`,HM=`${sF}*?`,cF={DOT_LITERAL:ln,PLUS_LITERAL:RM,QMARK_LITERAL:BM,SLASH_LITERAL:of,ONE_CHAR:NM,QMARK:sF,END_ANCHOR:Hg,DOTS_SLASH:Vg,NO_DOT:LM,NO_DOTS:jM,NO_DOT_SLASH:UM,NO_DOTS_SLASH:MM,QMARK_NO_DOT:qM,STAR:HM,START_ANCHOR:uF},VM={...cF,SLASH_LITERAL:`[${Ur}]`,QMARK:aF,STAR:`${aF}*?`,DOTS_SLASH:`${ln}{1,2}(?:[${Ur}]|$)`,NO_DOT:`(?!${ln})`,NO_DOTS:`(?!(?:^|[${Ur}])${ln}{1,2}(?:[${Ur}]|$))`,NO_DOT_SLASH:`(?!${ln}{0,1}(?:[${Ur}]|$))`,NO_DOTS_SLASH:`(?!${ln}{1,2}(?:[${Ur}]|$))`,QMARK_NO_DOT:`[^.${Ur}]`,START_ANCHOR:`(?:^|[${Ur}])`,END_ANCHOR:`(?:[${Ur}]|$)`},zM={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};lF.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:zM,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:IM.sep,extglobChars(t){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===!0?VM:cF}}});var js=S(Ht=>{"use strict";var KM=require("path"),GM=process.platform==="win32",{REGEX_BACKSLASH:WM,REGEX_REMOVE_BACKSLASH:YM,REGEX_SPECIAL_CHARS:JM,REGEX_SPECIAL_CHARS_GLOBAL:XM}=Ls();Ht.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);Ht.hasRegexChars=t=>JM.test(t);Ht.isRegexChar=t=>t.length===1&&Ht.hasRegexChars(t);Ht.escapeRegex=t=>t.replace(XM,"\\$1");Ht.toPosixSlashes=t=>t.replace(WM,"/");Ht.removeBackslashes=t=>t.replace(YM,e=>e==="\\"?"":e);Ht.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};Ht.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:GM===!0||KM.sep==="\\";Ht.escapeLast=(t,e,r)=>{let n=t.lastIndexOf(e,r);return n===-1?t:t[n-1]==="\\"?Ht.escapeLast(t,e,n-1):`${t.slice(0,n)}\\${t.slice(n)}`};Ht.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};Ht.wrapOutput=(t,e={},r={})=>{let n=r.contains?"":"^",o=r.contains?"":"$",i=`${n}(?:${t})${o}`;return e.negated===!0&&(i=`(?:^(?!${i}).*$)`),i}});var yF=S((OJ,DF)=>{"use strict";var fF=js(),{CHAR_ASTERISK:zg,CHAR_AT:ZM,CHAR_BACKWARD_SLASH:Us,CHAR_COMMA:QM,CHAR_DOT:Kg,CHAR_EXCLAMATION_MARK:Gg,CHAR_FORWARD_SLASH:gF,CHAR_LEFT_CURLY_BRACE:Wg,CHAR_LEFT_PARENTHESES:Yg,CHAR_LEFT_SQUARE_BRACKET:e9,CHAR_PLUS:t9,CHAR_QUESTION_MARK:pF,CHAR_RIGHT_CURLY_BRACE:r9,CHAR_RIGHT_PARENTHESES:dF,CHAR_RIGHT_SQUARE_BRACKET:n9}=Ls(),hF=t=>t===gF||t===Us,mF=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?1/0:1)},o9=(t,e)=>{let r=e||{},n=t.length-1,o=r.parts===!0||r.scanToEnd===!0,i=[],a=[],s=[],u=t,c=-1,l=0,p=0,h=!1,d=!1,m=!1,y=!1,D=!1,E=!1,C=!1,g=!1,_=!1,x=!1,P=0,O,B,T={value:"",depth:0,isGlob:!1},L=()=>c>=n,F=()=>u.charCodeAt(c+1),U=()=>(O=B,u.charCodeAt(++c));for(;c<n;){B=U();let w;if(B===Us){C=T.backslashes=!0,B=U(),B===Wg&&(E=!0);continue}if(E===!0||B===Wg){for(P++;L()!==!0&&(B=U());){if(B===Us){C=T.backslashes=!0,U();continue}if(B===Wg){P++;continue}if(E!==!0&&B===Kg&&(B=U())===Kg){if(h=T.isBrace=!0,m=T.isGlob=!0,x=!0,o===!0)continue;break}if(E!==!0&&B===QM){if(h=T.isBrace=!0,m=T.isGlob=!0,x=!0,o===!0)continue;break}if(B===r9&&(P--,P===0)){E=!1,h=T.isBrace=!0,x=!0;break}}if(o===!0)continue;break}if(B===gF){if(i.push(c),a.push(T),T={value:"",depth:0,isGlob:!1},x===!0)continue;if(O===Kg&&c===l+1){l+=2;continue}p=c+1;continue}if(r.noext!==!0&&(B===t9||B===ZM||B===zg||B===pF||B===Gg)===!0&&F()===Yg){if(m=T.isGlob=!0,y=T.isExtglob=!0,x=!0,B===Gg&&c===l&&(_=!0),o===!0){for(;L()!==!0&&(B=U());){if(B===Us){C=T.backslashes=!0,B=U();continue}if(B===dF){m=T.isGlob=!0,x=!0;break}}continue}break}if(B===zg){if(O===zg&&(D=T.isGlobstar=!0),m=T.isGlob=!0,x=!0,o===!0)continue;break}if(B===pF){if(m=T.isGlob=!0,x=!0,o===!0)continue;break}if(B===e9){for(;L()!==!0&&(w=U());){if(w===Us){C=T.backslashes=!0,U();continue}if(w===n9){d=T.isBracket=!0,m=T.isGlob=!0,x=!0;break}}if(o===!0)continue;break}if(r.nonegate!==!0&&B===Gg&&c===l){g=T.negated=!0,l++;continue}if(r.noparen!==!0&&B===Yg){if(m=T.isGlob=!0,o===!0){for(;L()!==!0&&(B=U());){if(B===Yg){C=T.backslashes=!0,B=U();continue}if(B===dF){x=!0;break}}continue}break}if(m===!0){if(x=!0,o===!0)continue;break}}r.noext===!0&&(y=!1,m=!1);let M=u,Q="",$="";l>0&&(Q=u.slice(0,l),u=u.slice(l),p-=l),M&&m===!0&&p>0?(M=u.slice(0,p),$=u.slice(p)):m===!0?(M="",$=u):M=u,M&&M!==""&&M!=="/"&&M!==u&&hF(M.charCodeAt(M.length-1))&&(M=M.slice(0,-1)),r.unescape===!0&&($&&($=fF.removeBackslashes($)),M&&C===!0&&(M=fF.removeBackslashes(M)));let b={prefix:Q,input:t,start:l,base:M,glob:$,isBrace:h,isBracket:d,isGlob:m,isExtglob:y,isGlobstar:D,negated:g,negatedExtglob:_};if(r.tokens===!0&&(b.maxDepth=0,hF(B)||a.push(T),b.tokens=a),r.parts===!0||r.tokens===!0){let w;for(let v=0;v<i.length;v++){let A=w?w+1:l,R=i[v],k=t.slice(A,R);r.tokens&&(v===0&&l!==0?(a[v].isPrefix=!0,a[v].value=Q):a[v].value=k,mF(a[v]),b.maxDepth+=a[v].depth),(v!==0||k!=="")&&s.push(k),w=R}if(w&&w+1<t.length){let v=t.slice(w+1);s.push(v),r.tokens&&(a[a.length-1].value=v,mF(a[a.length-1]),b.maxDepth+=a[a.length-1].depth)}b.slashes=i,b.parts=s}return b};DF.exports=o9});var vF=S((kJ,wF)=>{"use strict";var af=Ls(),Zt=js(),{MAX_LENGTH:sf,POSIX_REGEX_SOURCE:i9,REGEX_NON_SPECIAL_CHARS:a9,REGEX_SPECIAL_CHARS_BACKREF:s9,REPLACEMENTS:bF}=af,u9=(t,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...t,e);t.sort();let r=`[${t.join("-")}]`;try{new RegExp(r)}catch{return t.map(o=>Zt.escapeRegex(o)).join("..")}return r},pa=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,Jg=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=bF[t]||t;let r={...e},n=typeof r.maxLength=="number"?Math.min(sf,r.maxLength):sf,o=t.length;if(o>n)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${n}`);let i={type:"bos",value:"",output:r.prepend||""},a=[i],s=r.capture?"":"?:",u=Zt.isWindows(e),c=af.globChars(u),l=af.extglobChars(c),{DOT_LITERAL:p,PLUS_LITERAL:h,SLASH_LITERAL:d,ONE_CHAR:m,DOTS_SLASH:y,NO_DOT:D,NO_DOT_SLASH:E,NO_DOTS_SLASH:C,QMARK:g,QMARK_NO_DOT:_,STAR:x,START_ANCHOR:P}=c,O=K=>`(${s}(?:(?!${P}${K.dot?y:p}).)*?)`,B=r.dot?"":D,T=r.dot?g:_,L=r.bash===!0?O(r):x;r.capture&&(L=`(${L})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let F={input:t,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:a};t=Zt.removePrefix(t,F),o=t.length;let U=[],M=[],Q=[],$=i,b,w=()=>F.index===o-1,v=F.peek=(K=1)=>t[F.index+K],A=F.advance=()=>t[++F.index]||"",R=()=>t.slice(F.index+1),k=(K="",Ce=0)=>{F.consumed+=K,F.index+=Ce},q=K=>{F.output+=K.output!=null?K.output:K.value,k(K.value)},I=()=>{let K=1;for(;v()==="!"&&(v(2)!=="("||v(3)==="?");)A(),F.start++,K++;return K%2===0?!1:(F.negated=!0,F.start++,!0)},N=K=>{F[K]++,Q.push(K)},te=K=>{F[K]--,Q.pop()},V=K=>{if($.type==="globstar"){let Ce=F.braces>0&&(K.type==="comma"||K.type==="brace"),H=K.extglob===!0||U.length&&(K.type==="pipe"||K.type==="paren");K.type!=="slash"&&K.type!=="paren"&&!Ce&&!H&&(F.output=F.output.slice(0,-$.output.length),$.type="star",$.value="*",$.output=L,F.output+=$.output)}if(U.length&&K.type!=="paren"&&(U[U.length-1].inner+=K.value),(K.value||K.output)&&q(K),$&&$.type==="text"&&K.type==="text"){$.value+=K.value,$.output=($.output||"")+K.value;return}K.prev=$,a.push(K),$=K},se=(K,Ce)=>{let H={...l[Ce],conditions:1,inner:""};H.prev=$,H.parens=F.parens,H.output=F.output;let ue=(r.capture?"(":"")+H.open;N("parens"),V({type:K,value:Ce,output:F.output?"":m}),V({type:"paren",extglob:!0,value:A(),output:ue}),U.push(H)},mr=K=>{let Ce=K.close+(r.capture?")":""),H;if(K.type==="negate"){let ue=L;if(K.inner&&K.inner.length>1&&K.inner.includes("/")&&(ue=O(r)),(ue!==L||w()||/^\)+$/.test(R()))&&(Ce=K.close=`)$))${ue}`),K.inner.includes("*")&&(H=R())&&/^\.[^\\/.]+$/.test(H)){let qe=Jg(H,{...e,fastpaths:!1}).output;Ce=K.close=`)${qe})${ue})`}K.prev.type==="bos"&&(F.negatedExtglob=!0)}V({type:"paren",extglob:!0,value:b,output:Ce}),te("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let K=!1,Ce=t.replace(s9,(H,ue,qe,Ct,tt,gf)=>Ct==="\\"?(K=!0,H):Ct==="?"?ue?ue+Ct+(tt?g.repeat(tt.length):""):gf===0?T+(tt?g.repeat(tt.length):""):g.repeat(qe.length):Ct==="."?p.repeat(qe.length):Ct==="*"?ue?ue+Ct+(tt?L:""):L:ue?H:`\\${H}`);return K===!0&&(r.unescape===!0?Ce=Ce.replace(/\\/g,""):Ce=Ce.replace(/\\+/g,H=>H.length%2===0?"\\\\":H?"\\":"")),Ce===t&&r.contains===!0?(F.output=t,F):(F.output=Zt.wrapOutput(Ce,F,e),F)}for(;!w();){if(b=A(),b==="\0")continue;if(b==="\\"){let H=v();if(H==="/"&&r.bash!==!0||H==="."||H===";")continue;if(!H){b+="\\",V({type:"text",value:b});continue}let ue=/^\\+/.exec(R()),qe=0;if(ue&&ue[0].length>2&&(qe=ue[0].length,F.index+=qe,qe%2!==0&&(b+="\\")),r.unescape===!0?b=A():b+=A(),F.brackets===0){V({type:"text",value:b});continue}}if(F.brackets>0&&(b!=="]"||$.value==="["||$.value==="[^")){if(r.posix!==!1&&b===":"){let H=$.value.slice(1);if(H.includes("[")&&($.posix=!0,H.includes(":"))){let ue=$.value.lastIndexOf("["),qe=$.value.slice(0,ue),Ct=$.value.slice(ue+2),tt=i9[Ct];if(tt){$.value=qe+tt,F.backtrack=!0,A(),!i.output&&a.indexOf($)===1&&(i.output=m);continue}}}(b==="["&&v()!==":"||b==="-"&&v()==="]")&&(b=`\\${b}`),b==="]"&&($.value==="["||$.value==="[^")&&(b=`\\${b}`),r.posix===!0&&b==="!"&&$.value==="["&&(b="^"),$.value+=b,q({value:b});continue}if(F.quotes===1&&b!=='"'){b=Zt.escapeRegex(b),$.value+=b,q({value:b});continue}if(b==='"'){F.quotes=F.quotes===1?0:1,r.keepQuotes===!0&&V({type:"text",value:b});continue}if(b==="("){N("parens"),V({type:"paren",value:b});continue}if(b===")"){if(F.parens===0&&r.strictBrackets===!0)throw new SyntaxError(pa("opening","("));let H=U[U.length-1];if(H&&F.parens===H.parens+1){mr(U.pop());continue}V({type:"paren",value:b,output:F.parens?")":"\\)"}),te("parens");continue}if(b==="["){if(r.nobracket===!0||!R().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(pa("closing","]"));b=`\\${b}`}else N("brackets");V({type:"bracket",value:b});continue}if(b==="]"){if(r.nobracket===!0||$&&$.type==="bracket"&&$.value.length===1){V({type:"text",value:b,output:`\\${b}`});continue}if(F.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(pa("opening","["));V({type:"text",value:b,output:`\\${b}`});continue}te("brackets");let H=$.value.slice(1);if($.posix!==!0&&H[0]==="^"&&!H.includes("/")&&(b=`/${b}`),$.value+=b,q({value:b}),r.literalBrackets===!1||Zt.hasRegexChars(H))continue;let ue=Zt.escapeRegex($.value);if(F.output=F.output.slice(0,-$.value.length),r.literalBrackets===!0){F.output+=ue,$.value=ue;continue}$.value=`(${s}${ue}|${$.value})`,F.output+=$.value;continue}if(b==="{"&&r.nobrace!==!0){N("braces");let H={type:"brace",value:b,output:"(",outputIndex:F.output.length,tokensIndex:F.tokens.length};M.push(H),V(H);continue}if(b==="}"){let H=M[M.length-1];if(r.nobrace===!0||!H){V({type:"text",value:b,output:b});continue}let ue=")";if(H.dots===!0){let qe=a.slice(),Ct=[];for(let tt=qe.length-1;tt>=0&&(a.pop(),qe[tt].type!=="brace");tt--)qe[tt].type!=="dots"&&Ct.unshift(qe[tt].value);ue=u9(Ct,r),F.backtrack=!0}if(H.comma!==!0&&H.dots!==!0){let qe=F.output.slice(0,H.outputIndex),Ct=F.tokens.slice(H.tokensIndex);H.value=H.output="\\{",b=ue="\\}",F.output=qe;for(let tt of Ct)F.output+=tt.output||tt.value}V({type:"brace",value:b,output:ue}),te("braces"),M.pop();continue}if(b==="|"){U.length>0&&U[U.length-1].conditions++,V({type:"text",value:b});continue}if(b===","){let H=b,ue=M[M.length-1];ue&&Q[Q.length-1]==="braces"&&(ue.comma=!0,H="|"),V({type:"comma",value:b,output:H});continue}if(b==="/"){if($.type==="dot"&&F.index===F.start+1){F.start=F.index+1,F.consumed="",F.output="",a.pop(),$=i;continue}V({type:"slash",value:b,output:d});continue}if(b==="."){if(F.braces>0&&$.type==="dot"){$.value==="."&&($.output=p);let H=M[M.length-1];$.type="dots",$.output+=b,$.value+=b,H.dots=!0;continue}if(F.braces+F.parens===0&&$.type!=="bos"&&$.type!=="slash"){V({type:"text",value:b,output:p});continue}V({type:"dot",value:b,output:p});continue}if(b==="?"){if(!($&&$.value==="(")&&r.noextglob!==!0&&v()==="("&&v(2)!=="?"){se("qmark",b);continue}if($&&$.type==="paren"){let ue=v(),qe=b;if(ue==="<"&&!Zt.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");($.value==="("&&!/[!=<:]/.test(ue)||ue==="<"&&!/<([!=]|\w+>)/.test(R()))&&(qe=`\\${b}`),V({type:"text",value:b,output:qe});continue}if(r.dot!==!0&&($.type==="slash"||$.type==="bos")){V({type:"qmark",value:b,output:_});continue}V({type:"qmark",value:b,output:g});continue}if(b==="!"){if(r.noextglob!==!0&&v()==="("&&(v(2)!=="?"||!/[!=<:]/.test(v(3)))){se("negate",b);continue}if(r.nonegate!==!0&&F.index===0){I();continue}}if(b==="+"){if(r.noextglob!==!0&&v()==="("&&v(2)!=="?"){se("plus",b);continue}if($&&$.value==="("||r.regex===!1){V({type:"plus",value:b,output:h});continue}if($&&($.type==="bracket"||$.type==="paren"||$.type==="brace")||F.parens>0){V({type:"plus",value:b});continue}V({type:"plus",value:h});continue}if(b==="@"){if(r.noextglob!==!0&&v()==="("&&v(2)!=="?"){V({type:"at",extglob:!0,value:b,output:""});continue}V({type:"text",value:b});continue}if(b!=="*"){(b==="$"||b==="^")&&(b=`\\${b}`);let H=a9.exec(R());H&&(b+=H[0],F.index+=H[0].length),V({type:"text",value:b});continue}if($&&($.type==="globstar"||$.star===!0)){$.type="star",$.star=!0,$.value+=b,$.output=L,F.backtrack=!0,F.globstar=!0,k(b);continue}let K=R();if(r.noextglob!==!0&&/^\([^?]/.test(K)){se("star",b);continue}if($.type==="star"){if(r.noglobstar===!0){k(b);continue}let H=$.prev,ue=H.prev,qe=H.type==="slash"||H.type==="bos",Ct=ue&&(ue.type==="star"||ue.type==="globstar");if(r.bash===!0&&(!qe||K[0]&&K[0]!=="/")){V({type:"star",value:b,output:""});continue}let tt=F.braces>0&&(H.type==="comma"||H.type==="brace"),gf=U.length&&(H.type==="pipe"||H.type==="paren");if(!qe&&H.type!=="paren"&&!tt&&!gf){V({type:"star",value:b,output:""});continue}for(;K.slice(0,3)==="/**";){let zs=t[F.index+4];if(zs&&zs!=="/")break;K=K.slice(3),k("/**",3)}if(H.type==="bos"&&w()){$.type="globstar",$.value+=b,$.output=O(r),F.output=$.output,F.globstar=!0,k(b);continue}if(H.type==="slash"&&H.prev.type!=="bos"&&!Ct&&w()){F.output=F.output.slice(0,-(H.output+$.output).length),H.output=`(?:${H.output}`,$.type="globstar",$.output=O(r)+(r.strictSlashes?")":"|$)"),$.value+=b,F.globstar=!0,F.output+=H.output+$.output,k(b);continue}if(H.type==="slash"&&H.prev.type!=="bos"&&K[0]==="/"){let zs=K[1]!==void 0?"|$":"";F.output=F.output.slice(0,-(H.output+$.output).length),H.output=`(?:${H.output}`,$.type="globstar",$.output=`${O(r)}${d}|${d}${zs})`,$.value+=b,F.output+=H.output+$.output,F.globstar=!0,k(b+A()),V({type:"slash",value:"/",output:""});continue}if(H.type==="bos"&&K[0]==="/"){$.type="globstar",$.value+=b,$.output=`(?:^|${d}|${O(r)}${d})`,F.output=$.output,F.globstar=!0,k(b+A()),V({type:"slash",value:"/",output:""});continue}F.output=F.output.slice(0,-$.output.length),$.type="globstar",$.output=O(r),$.value+=b,F.output+=$.output,F.globstar=!0,k(b);continue}let Ce={type:"star",value:b,output:L};if(r.bash===!0){Ce.output=".*?",($.type==="bos"||$.type==="slash")&&(Ce.output=B+Ce.output),V(Ce);continue}if($&&($.type==="bracket"||$.type==="paren")&&r.regex===!0){Ce.output=b,V(Ce);continue}(F.index===F.start||$.type==="slash"||$.type==="dot")&&($.type==="dot"?(F.output+=E,$.output+=E):r.dot===!0?(F.output+=C,$.output+=C):(F.output+=B,$.output+=B),v()!=="*"&&(F.output+=m,$.output+=m)),V(Ce)}for(;F.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(pa("closing","]"));F.output=Zt.escapeLast(F.output,"["),te("brackets")}for(;F.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(pa("closing",")"));F.output=Zt.escapeLast(F.output,"("),te("parens")}for(;F.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(pa("closing","}"));F.output=Zt.escapeLast(F.output,"{"),te("braces")}if(r.strictSlashes!==!0&&($.type==="star"||$.type==="bracket")&&V({type:"maybe_slash",value:"",output:`${d}?`}),F.backtrack===!0){F.output="";for(let K of F.tokens)F.output+=K.output!=null?K.output:K.value,K.suffix&&(F.output+=K.suffix)}return F};Jg.fastpaths=(t,e)=>{let r={...e},n=typeof r.maxLength=="number"?Math.min(sf,r.maxLength):sf,o=t.length;if(o>n)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${n}`);t=bF[t]||t;let i=Zt.isWindows(e),{DOT_LITERAL:a,SLASH_LITERAL:s,ONE_CHAR:u,DOTS_SLASH:c,NO_DOT:l,NO_DOTS:p,NO_DOTS_SLASH:h,STAR:d,START_ANCHOR:m}=af.globChars(i),y=r.dot?p:l,D=r.dot?h:l,E=r.capture?"":"?:",C={negated:!1,prefix:""},g=r.bash===!0?".*?":d;r.capture&&(g=`(${g})`);let _=B=>B.noglobstar===!0?g:`(${E}(?:(?!${m}${B.dot?c:a}).)*?)`,x=B=>{switch(B){case"*":return`${y}${u}${g}`;case".*":return`${a}${u}${g}`;case"*.*":return`${y}${g}${a}${u}${g}`;case"*/*":return`${y}${g}${s}${u}${D}${g}`;case"**":return y+_(r);case"**/*":return`(?:${y}${_(r)}${s})?${D}${u}${g}`;case"**/*.*":return`(?:${y}${_(r)}${s})?${D}${g}${a}${u}${g}`;case"**/.*":return`(?:${y}${_(r)}${s})?${a}${u}${g}`;default:{let T=/^(.*?)\.(\w+)$/.exec(B);if(!T)return;let L=x(T[1]);return L?L+a+T[2]:void 0}}},P=Zt.removePrefix(t,C),O=x(P);return O&&r.strictSlashes!==!0&&(O+=`${s}?`),O};wF.exports=Jg});var CF=S((PJ,EF)=>{"use strict";var c9=require("path"),l9=yF(),Xg=vF(),Zg=js(),f9=Ls(),p9=t=>t&&typeof t=="object"&&!Array.isArray(t),Qe=(t,e,r=!1)=>{if(Array.isArray(t)){let l=t.map(h=>Qe(h,e,r));return h=>{for(let d of l){let m=d(h);if(m)return m}return!1}}let n=p9(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!n)throw new TypeError("Expected pattern to be a non-empty string");let o=e||{},i=Zg.isWindows(e),a=n?Qe.compileRe(t,e):Qe.makeRe(t,e,!1,!0),s=a.state;delete a.state;let u=()=>!1;if(o.ignore){let l={...e,ignore:null,onMatch:null,onResult:null};u=Qe(o.ignore,l,r)}let c=(l,p=!1)=>{let{isMatch:h,match:d,output:m}=Qe.test(l,a,e,{glob:t,posix:i}),y={glob:t,state:s,regex:a,posix:i,input:l,output:m,match:d,isMatch:h};return typeof o.onResult=="function"&&o.onResult(y),h===!1?(y.isMatch=!1,p?y:!1):u(l)?(typeof o.onIgnore=="function"&&o.onIgnore(y),y.isMatch=!1,p?y:!1):(typeof o.onMatch=="function"&&o.onMatch(y),p?y:!0)};return r&&(c.state=s),c};Qe.test=(t,e,r,{glob:n,posix:o}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return{isMatch:!1,output:""};let i=r||{},a=i.format||(o?Zg.toPosixSlashes:null),s=t===n,u=s&&a?a(t):t;return s===!1&&(u=a?a(t):t,s=u===n),(s===!1||i.capture===!0)&&(i.matchBase===!0||i.basename===!0?s=Qe.matchBase(t,e,r,o):s=e.exec(u)),{isMatch:!!s,match:s,output:u}};Qe.matchBase=(t,e,r,n=Zg.isWindows(r))=>(e instanceof RegExp?e:Qe.makeRe(e,r)).test(c9.basename(t));Qe.isMatch=(t,e,r)=>Qe(e,r)(t);Qe.parse=(t,e)=>Array.isArray(t)?t.map(r=>Qe.parse(r,e)):Xg(t,{...e,fastpaths:!1});Qe.scan=(t,e)=>l9(t,e);Qe.compileRe=(t,e,r=!1,n=!1)=>{if(r===!0)return t.output;let o=e||{},i=o.contains?"":"^",a=o.contains?"":"$",s=`${i}(?:${t.output})${a}`;t&&t.negated===!0&&(s=`^(?!${s}).*$`);let u=Qe.toRegex(s,e);return n===!0&&(u.state=t),u};Qe.makeRe=(t,e={},r=!1,n=!1)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let o={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(t[0]==="."||t[0]==="*")&&(o.output=Xg.fastpaths(t,e)),o.output||(o=Xg(t,e)),Qe.compileRe(o,e,r,n)};Qe.toRegex=(t,e)=>{try{let r=e||{};return new RegExp(t,r.flags||(r.nocase?"i":""))}catch(r){if(e&&e.debug===!0)throw r;return/$^/}};Qe.constants=f9;EF.exports=Qe});var SF=S(($J,_F)=>{"use strict";_F.exports=CF()});var PF=S((TJ,kF)=>{"use strict";var AF=require("util"),FF=iF(),Mr=SF(),Qg=js(),xF=t=>t===""||t==="./",OF=t=>{let e=t.indexOf("{");return e>-1&&t.indexOf("}",e)>-1},Le=(t,e,r)=>{e=[].concat(e),t=[].concat(t);let n=new Set,o=new Set,i=new Set,a=0,s=l=>{i.add(l.output),r&&r.onResult&&r.onResult(l)};for(let l=0;l<e.length;l++){let p=Mr(String(e[l]),{...r,onResult:s},!0),h=p.state.negated||p.state.negatedExtglob;h&&a++;for(let d of t){let m=p(d,!0);(h?!m.isMatch:m.isMatch)&&(h?n.add(m.output):(n.delete(m.output),o.add(m.output)))}}let c=(a===e.length?[...i]:[...o]).filter(l=>!n.has(l));if(r&&c.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?e.map(l=>l.replace(/\\/g,"")):e}return c};Le.match=Le;Le.matcher=(t,e)=>Mr(t,e);Le.isMatch=(t,e,r)=>Mr(e,r)(t);Le.any=Le.isMatch;Le.not=(t,e,r={})=>{e=[].concat(e).map(String);let n=new Set,o=[],i=s=>{r.onResult&&r.onResult(s),o.push(s.output)},a=new Set(Le(t,e,{...r,onResult:i}));for(let s of o)a.has(s)||n.add(s);return[...n]};Le.contains=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${AF.inspect(t)}"`);if(Array.isArray(e))return e.some(n=>Le.contains(t,n,r));if(typeof e=="string"){if(xF(t)||xF(e))return!1;if(t.includes(e)||t.startsWith("./")&&t.slice(2).includes(e))return!0}return Le.isMatch(t,e,{...r,contains:!0})};Le.matchKeys=(t,e,r)=>{if(!Qg.isObject(t))throw new TypeError("Expected the first argument to be an object");let n=Le(Object.keys(t),e,r),o={};for(let i of n)o[i]=t[i];return o};Le.some=(t,e,r)=>{let n=[].concat(t);for(let o of[].concat(e)){let i=Mr(String(o),r);if(n.some(a=>i(a)))return!0}return!1};Le.every=(t,e,r)=>{let n=[].concat(t);for(let o of[].concat(e)){let i=Mr(String(o),r);if(!n.every(a=>i(a)))return!1}return!0};Le.all=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${AF.inspect(t)}"`);return[].concat(e).every(n=>Mr(n,r)(t))};Le.capture=(t,e,r)=>{let n=Qg.isWindows(r),i=Mr.makeRe(String(t),{...r,capture:!0}).exec(n?Qg.toPosixSlashes(e):e);if(i)return i.slice(1).map(a=>a===void 0?"":a)};Le.makeRe=(...t)=>Mr.makeRe(...t);Le.scan=(...t)=>Mr.scan(...t);Le.parse=(t,e)=>{let r=[];for(let n of[].concat(t||[]))for(let o of FF(String(n),e))r.push(Mr.parse(o,e));return r};Le.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!OF(t)?[t]:FF(t,e)};Le.braceExpand=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return Le.braces(t,{...e,expand:!0})};Le.hasBraces=OF;kF.exports=Le});var gO=S((PX,fn)=>{var $e=require("fs"),ff=require("os"),gt=require("path"),QF=require("crypto"),Hr={fs:$e.constants,os:ff.constants},eO="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",oO=/XXXXXX/,j9=3,iO=(Hr.O_CREAT||Hr.fs.O_CREAT)|(Hr.O_EXCL||Hr.fs.O_EXCL)|(Hr.O_RDWR||Hr.fs.O_RDWR),U9=ff.platform()==="win32",M9=Hr.EBADF||Hr.os.errno.EBADF,q9=Hr.ENOENT||Hr.os.errno.ENOENT,aO=448,sO=384,H9="exit",ha=[],uO=$e.rmdirSync.bind($e),cO=!1;function V9(t,e){return $e.rm(t,{recursive:!0},e)}function lO(t){return $e.rmSync(t,{recursive:!0})}function aD(t,e){let r=ma(t,e),n=r[0],o=r[1];e7(n,function(i,a){if(i)return o(i);let s=a.tries;(function u(){try{let c=pO(a);$e.stat(c,function(l){if(!l)return s-- >0?u():o(new Error("Could not get a unique tmp filename, max tries reached "+c));o(null,c)})}catch(c){o(c)}})()})}function sD(t){let e=ma(t),r=e[0],n=t7(r),o=n.tries;do{let i=pO(n);try{$e.statSync(i)}catch{return i}}while(o-- >0);throw new Error("Could not get a unique tmp filename, max tries reached")}function z9(t,e){let r=ma(t,e),n=r[0],o=r[1];aD(n,function(a,s){if(a)return o(a);$e.open(s,iO,n.mode||sO,function(c,l){if(c)return o(c);if(n.discardDescriptor)return $e.close(l,function(h){return o(h,s,void 0,oD(s,-1,n,!1))});{let p=n.discardDescriptor||n.detachDescriptor;o(null,s,l,oD(s,p?-1:l,n,!1))}})})}function K9(t){let e=ma(t),r=e[0],n=r.discardDescriptor||r.detachDescriptor,o=sD(r),i=$e.openSync(o,iO,r.mode||sO);return r.discardDescriptor&&($e.closeSync(i),i=void 0),{name:o,fd:i,removeCallback:oD(o,n?-1:i,r,!0)}}function G9(t,e){let r=ma(t,e),n=r[0],o=r[1];aD(n,function(a,s){if(a)return o(a);$e.mkdir(s,n.mode||aO,function(c){if(c)return o(c);o(null,s,fO(s,n,!1))})})}function W9(t){let e=ma(t),r=e[0],n=sD(r);return $e.mkdirSync(n,r.mode||aO),{name:n,removeCallback:fO(n,r,!0)}}function Y9(t,e){let r=function(n){if(n&&!iD(n))return e(n);e()};0<=t[0]?$e.close(t[0],function(){$e.unlink(t[1],r)}):$e.unlink(t[1],r)}function J9(t){let e=null;try{0<=t[0]&&$e.closeSync(t[0])}catch(r){if(!r7(r)&&!iD(r))throw r}finally{try{$e.unlinkSync(t[1])}catch(r){iD(r)||(e=r)}}if(e!==null)throw e}function oD(t,e,r,n){let o=lf(J9,[e,t],n),i=lf(Y9,[e,t],n,o);return r.keep||ha.unshift(o),n?o:i}function fO(t,e,r){let n=e.unsafeCleanup?V9:$e.rmdir.bind($e),o=e.unsafeCleanup?lO:uO,i=lf(o,t,r),a=lf(n,t,r,i);return e.keep||ha.unshift(i),r?i:a}function lf(t,e,r,n){let o=!1;return function i(a){if(!o){let s=n||i,u=ha.indexOf(s);return u>=0&&ha.splice(u,1),o=!0,r||t===uO||t===lO?t(e):t(e,a||function(){})}}}function X9(){if(cO)for(;ha.length;)try{ha[0]()}catch{}}function tO(t){let e=[],r=null;try{r=QF.randomBytes(t)}catch{r=QF.pseudoRandomBytes(t)}for(let n=0;n<t;n++)e.push(eO[r[n]%eO.length]);return e.join("")}function Qt(t){return typeof t>"u"}function ma(t,e){if(typeof t=="function")return[{},t];if(Qt(t))return[{},e];let r={};for(let n of Object.getOwnPropertyNames(t))r[n]=t[n];return[r,e]}function Z9(t,e,r){let n=gt.isAbsolute(t)?t:gt.join(e,t);$e.stat(n,function(o){o?$e.realpath(gt.dirname(n),function(i,a){if(i)return r(i);r(null,gt.join(a,gt.basename(n)))}):$e.realpath(n,r)})}function Q9(t,e){let r=gt.isAbsolute(t)?t:gt.join(e,t);try{return $e.statSync(r),$e.realpathSync(r)}catch{let o=$e.realpathSync(gt.dirname(r));return gt.join(o,gt.basename(r))}}function pO(t){let e=t.tmpdir;if(!Qt(t.name))return gt.join(e,t.dir,t.name);if(!Qt(t.template))return gt.join(e,t.dir,t.template).replace(oO,tO(6));let r=[t.prefix?t.prefix:"tmp","-",process.pid,"-",tO(12),t.postfix?"-"+t.postfix:""].join("");return gt.join(e,t.dir,r)}function dO(t){if(!Qt(t.name)){let e=t.name;if(gt.isAbsolute(e))throw new Error(`name option must not contain an absolute path, found "${e}".`);let r=gt.basename(e);if(r===".."||r==="."||r!==e)throw new Error(`name option must not contain a path, found "${e}".`)}if(!Qt(t.template)&&!t.template.match(oO))throw new Error(`Invalid template, found "${t.template}".`);if(!Qt(t.tries)&&isNaN(t.tries)||t.tries<0)throw new Error(`Invalid tries, found "${t.tries}".`);t.tries=Qt(t.name)?t.tries||j9:1,t.keep=!!t.keep,t.detachDescriptor=!!t.detachDescriptor,t.discardDescriptor=!!t.discardDescriptor,t.unsafeCleanup=!!t.unsafeCleanup,t.prefix=Qt(t.prefix)?"":t.prefix,t.postfix=Qt(t.postfix)?"":t.postfix}function rO(t,e,r,n){if(Qt(e))return n(null);Z9(e,r,function(o,i){if(o)return n(o);let a=gt.relative(r,i);if(!i.startsWith(r))return n(new Error(`${t} option must be relative to "${r}", found "${a}".`));n(null,a)})}function nO(t,e,r){if(Qt(e))return;let n=Q9(e,r),o=gt.relative(r,n);if(!n.startsWith(r))throw new Error(`${t} option must be relative to "${r}", found "${o}".`);return o}function e7(t,e){o7(t,function(r,n){if(r)return e(r);t.tmpdir=n;try{dO(t,n)}catch(o){return e(o)}rO("dir",t.dir,n,function(o,i){if(o)return e(o);t.dir=Qt(i)?"":i,rO("template",t.template,n,function(a,s){if(a)return e(a);t.template=s,e(null,t)})})})}function t7(t){let e=t.tmpdir=mO(t);dO(t,e);let r=nO("dir",t.dir,e);return t.dir=Qt(r)?"":r,t.template=nO("template",t.template,e),t}function r7(t){return hO(t,-M9,"EBADF")}function iD(t){return hO(t,-q9,"ENOENT")}function hO(t,e,r){return U9?t.code===r:t.code===r&&t.errno===e}function n7(){cO=!0}function o7(t,e){return $e.realpath(t&&t.tmpdir||ff.tmpdir(),e)}function mO(t){return $e.realpathSync(t&&t.tmpdir||ff.tmpdir())}process.addListener(H9,X9);Object.defineProperty(fn.exports,"tmpdir",{enumerable:!0,configurable:!1,get:function(){return mO()}});fn.exports.dir=G9;fn.exports.dirSync=W9;fn.exports.file=z9;fn.exports.fileSync=K9;fn.exports.tmpName=aD;fn.exports.tmpNameSync=sD;fn.exports.setGracefulCleanup=n7});var hf=require("node:process");var PD=pe(kD(),1),{program:ot,createCommand:L7,createArgument:j7,createOption:U7,CommanderError:M7,InvalidArgumentError:q7,InvalidOptionArgumentError:H7,Command:V7,Argument:z7,Option:K7,Help:G7}=PD.default;var gr={name:"@capgo/cli",version:"7.33.1",description:"A CLI to upload to capgo servers",author:"Martin martin@capgo.app",license:"Apache 2.0",homepage:"https://github.com/Cap-go/CLI#readme",repository:{type:"git",url:"git+https://github.com/Cap-go/CLI.git"},bugs:{url:"https://github.com/Cap-go/CLI/issues"},keywords:["appflow alternative","ionic","capacitor","auto update","live update","capgo","cli","upload","capgo-cli","sdk"],exports:{".":{import:"./dist/index.js",require:"./dist/index.js"},"./sdk":{types:"./dist/src/sdk.d.ts",import:"./dist/src/sdk.js",require:"./dist/src/sdk.js"}},main:"dist/index.js",types:"dist/src/index.d.ts",bin:{capgo:"dist/index.js"},engines:{npm:">=8.0.0",node:">=20.0.0"},scripts:{build:"tsc && node build.mjs",dev:"NODE_ENV=development ncc build","no-debug":"node dist/index.js","dev-build":"SUPA_DB=development ncc build",pack:"pkg",types:"npx --yes supabase gen types typescript --project-id=xvwzpoazmxkqosrdewyv > src/types/supabase.types.ts",typecheck:"tsc --noEmit",lint:'eslint "src/**/*.ts" --fix',"check-posix-paths":"node test/check-posix-paths.js","generate-docs":"node dist/index.js generate-docs README.md","test:bundle":"bun test/test-bundle.mjs","test:functional":"bun test/test-functional.mjs","test:semver":"bun test/test-semver-validation.mjs","test:version-edge-cases":"bun test/test-version-validation.mjs","test:regex":"bun test/test-regex-validation.mjs","test:upload":"bun test/test-upload-validation.mjs","test:credentials":"bun test/test-credentials.mjs","test:credentials-validation":"bun test/test-credentials-validation.mjs",test:"bun run test:bundle && bun run test:functional && bun run test:semver && bun run test:version-edge-cases && bun run test:regex && bun run test:upload && bun run test:credentials && bun run test:credentials-validation"},devDependencies:{"@antfu/eslint-config":"^6.1.0","@bradenmacdonald/s3-lite-client":"npm:@jsr/bradenmacdonald__s3-lite-client@0.9.4","@capacitor/cli":"^7.4.4","@capgo/find-package-manager":"^0.0.18","@clack/prompts":"^0.11.0","@sauber/table":"npm:@jsr/sauber__table","@std/semver":"npm:@jsr/std__semver@1.0.6","@supabase/supabase-js":"^2.79.0","@types/adm-zip":"^0.5.7","@types/node":"^24.9.1","@types/prettyjson":"^0.0.33","@types/tmp":"^0.2.6","@vercel/ncc":"^0.38.4","adm-zip":"^0.5.16","ci-info":"^4.3.1",commander:"^14.0.2",esbuild:"^0.25.11",eslint:"^9.38.0","git-format-staged":"3.1.1",husky:"^9.1.7","is-wsl":"^3.1.0",open:"^10.1.2",prettyjson:"^1.2.5",tmp:"^0.2.5","tus-js-client":"^4.3.1",typescript:"^5.9.3"}};var ia=require("node:fs");var Dt=pe(Rf(),1),Ho=require("node:process"),dn=pe(require("node:readline"),1),Uf=pe(require("node:readline"),1),qD=require("node:stream"),HD=pe(Nf(),1);function e2({onlyFirst:t=!1}={}){let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}var t2=e2();function VD(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(t2,"")}function zD(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var KD={exports:{}};(function(t){var e={};t.exports=e,e.eastAsianWidth=function(n){var o=n.charCodeAt(0),i=n.length==2?n.charCodeAt(1):0,a=o;return 55296<=o&&o<=56319&&56320<=i&&i<=57343&&(o&=1023,i&=1023,a=o<<10|i,a+=65536),a==12288||65281<=a&&a<=65376||65504<=a&&a<=65510?"F":a==8361||65377<=a&&a<=65470||65474<=a&&a<=65479||65482<=a&&a<=65487||65490<=a&&a<=65495||65498<=a&&a<=65500||65512<=a&&a<=65518?"H":4352<=a&&a<=4447||4515<=a&&a<=4519||4602<=a&&a<=4607||9001<=a&&a<=9002||11904<=a&&a<=11929||11931<=a&&a<=12019||12032<=a&&a<=12245||12272<=a&&a<=12283||12289<=a&&a<=12350||12353<=a&&a<=12438||12441<=a&&a<=12543||12549<=a&&a<=12589||12593<=a&&a<=12686||12688<=a&&a<=12730||12736<=a&&a<=12771||12784<=a&&a<=12830||12832<=a&&a<=12871||12880<=a&&a<=13054||13056<=a&&a<=19903||19968<=a&&a<=42124||42128<=a&&a<=42182||43360<=a&&a<=43388||44032<=a&&a<=55203||55216<=a&&a<=55238||55243<=a&&a<=55291||63744<=a&&a<=64255||65040<=a&&a<=65049||65072<=a&&a<=65106||65108<=a&&a<=65126||65128<=a&&a<=65131||110592<=a&&a<=110593||127488<=a&&a<=127490||127504<=a&&a<=127546||127552<=a&&a<=127560||127568<=a&&a<=127569||131072<=a&&a<=194367||177984<=a&&a<=196605||196608<=a&&a<=262141?"W":32<=a&&a<=126||162<=a&&a<=163||165<=a&&a<=166||a==172||a==175||10214<=a&&a<=10221||10629<=a&&a<=10630?"Na":a==161||a==164||167<=a&&a<=168||a==170||173<=a&&a<=174||176<=a&&a<=180||182<=a&&a<=186||188<=a&&a<=191||a==198||a==208||215<=a&&a<=216||222<=a&&a<=225||a==230||232<=a&&a<=234||236<=a&&a<=237||a==240||242<=a&&a<=243||247<=a&&a<=250||a==252||a==254||a==257||a==273||a==275||a==283||294<=a&&a<=295||a==299||305<=a&&a<=307||a==312||319<=a&&a<=322||a==324||328<=a&&a<=331||a==333||338<=a&&a<=339||358<=a&&a<=359||a==363||a==462||a==464||a==466||a==468||a==470||a==472||a==474||a==476||a==593||a==609||a==708||a==711||713<=a&&a<=715||a==717||a==720||728<=a&&a<=731||a==733||a==735||768<=a&&a<=879||913<=a&&a<=929||931<=a&&a<=937||945<=a&&a<=961||963<=a&&a<=969||a==1025||1040<=a&&a<=1103||a==1105||a==8208||8211<=a&&a<=8214||8216<=a&&a<=8217||8220<=a&&a<=8221||8224<=a&&a<=8226||8228<=a&&a<=8231||a==8240||8242<=a&&a<=8243||a==8245||a==8251||a==8254||a==8308||a==8319||8321<=a&&a<=8324||a==8364||a==8451||a==8453||a==8457||a==8467||a==8470||8481<=a&&a<=8482||a==8486||a==8491||8531<=a&&a<=8532||8539<=a&&a<=8542||8544<=a&&a<=8555||8560<=a&&a<=8569||a==8585||8592<=a&&a<=8601||8632<=a&&a<=8633||a==8658||a==8660||a==8679||a==8704||8706<=a&&a<=8707||8711<=a&&a<=8712||a==8715||a==8719||a==8721||a==8725||a==8730||8733<=a&&a<=8736||a==8739||a==8741||8743<=a&&a<=8748||a==8750||8756<=a&&a<=8759||8764<=a&&a<=8765||a==8776||a==8780||a==8786||8800<=a&&a<=8801||8804<=a&&a<=8807||8810<=a&&a<=8811||8814<=a&&a<=8815||8834<=a&&a<=8835||8838<=a&&a<=8839||a==8853||a==8857||a==8869||a==8895||a==8978||9312<=a&&a<=9449||9451<=a&&a<=9547||9552<=a&&a<=9587||9600<=a&&a<=9615||9618<=a&&a<=9621||9632<=a&&a<=9633||9635<=a&&a<=9641||9650<=a&&a<=9651||9654<=a&&a<=9655||9660<=a&&a<=9661||9664<=a&&a<=9665||9670<=a&&a<=9672||a==9675||9678<=a&&a<=9681||9698<=a&&a<=9701||a==9711||9733<=a&&a<=9734||a==9737||9742<=a&&a<=9743||9748<=a&&a<=9749||a==9756||a==9758||a==9792||a==9794||9824<=a&&a<=9825||9827<=a&&a<=9829||9831<=a&&a<=9834||9836<=a&&a<=9837||a==9839||9886<=a&&a<=9887||9918<=a&&a<=9919||9924<=a&&a<=9933||9935<=a&&a<=9953||a==9955||9960<=a&&a<=9983||a==10045||a==10071||10102<=a&&a<=10111||11093<=a&&a<=11097||12872<=a&&a<=12879||57344<=a&&a<=63743||65024<=a&&a<=65039||a==65533||127232<=a&&a<=127242||127248<=a&&a<=127277||127280<=a&&a<=127337||127344<=a&&a<=127386||917760<=a&&a<=917999||983040<=a&&a<=1048573||1048576<=a&&a<=1114109?"A":"N"},e.characterLength=function(n){var o=this.eastAsianWidth(n);return o=="F"||o=="W"||o=="A"?2:1};function r(n){return n.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}e.length=function(n){for(var o=r(n),i=0,a=0;a<o.length;a++)i=i+this.characterLength(o[a]);return i},e.slice=function(n,o,i){textLen=e.length(n),o=o||0,i=i||1,o<0&&(o=textLen+o),i<0&&(i=textLen+i);for(var a="",s=0,u=r(n),c=0;c<u.length;c++){var l=u[c],p=e.length(l);if(s>=o-(p==2?1:0))if(s+p<=i)a+=l;else break;s+=p}return a}})(KD);var r2=KD.exports,n2=zD(r2),o2=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},i2=zD(o2);function ba(t,e={}){if(typeof t!="string"||t.length===0||(e={ambiguousIsNarrow:!0,...e},t=VD(t),t.length===0))return 0;t=t.replace(i2()," ");let r=e.ambiguousIsNarrow?1:2,n=0;for(let o of t){let i=o.codePointAt(0);if(!(i<=31||i>=127&&i<=159||i>=768&&i<=879))switch(n2.eastAsianWidth(o)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}var Lf=10,RD=(t=0)=>e=>`\x1B[${e+t}m`,BD=(t=0)=>e=>`\x1B[${38+t};5;${e}m`,ND=(t=0)=>(e,r,n)=>`\x1B[${38+t};2;${e};${r};${n}m`,je={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(je.modifier);var a2=Object.keys(je.color),s2=Object.keys(je.bgColor);[...a2,...s2];function u2(){let t=new Map;for(let[e,r]of Object.entries(je)){for(let[n,o]of Object.entries(r))je[n]={open:`\x1B[${o[0]}m`,close:`\x1B[${o[1]}m`},r[n]=je[n],t.set(o[0],o[1]);Object.defineProperty(je,e,{value:r,enumerable:!1})}return Object.defineProperty(je,"codes",{value:t,enumerable:!1}),je.color.close="\x1B[39m",je.bgColor.close="\x1B[49m",je.color.ansi=RD(),je.color.ansi256=BD(),je.color.ansi16m=ND(),je.bgColor.ansi=RD(Lf),je.bgColor.ansi256=BD(Lf),je.bgColor.ansi16m=ND(Lf),Object.defineProperties(je,{rgbToAnsi256:{value:(e,r,n)=>e===r&&r===n?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5),enumerable:!1},hexToRgb:{value:e=>{let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(i=>i+i).join(""));let o=Number.parseInt(n,16);return[o>>16&255,o>>8&255,o&255]},enumerable:!1},hexToAnsi256:{value:e=>je.rgbToAnsi256(...je.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value:e=>{if(e<8)return 30+e;if(e<16)return 90+(e-8);let r,n,o;if(e>=232)r=((e-232)*10+8)/255,n=r,o=r;else{e-=16;let s=e%36;r=Math.floor(e/36)/5,n=Math.floor(s/6)/5,o=s%6/5}let i=Math.max(r,n,o)*2;if(i===0)return 30;let a=30+(Math.round(o)<<2|Math.round(n)<<1|Math.round(r));return i===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(e,r,n)=>je.ansi256ToAnsi(je.rgbToAnsi256(e,r,n)),enumerable:!1},hexToAnsi:{value:e=>je.ansi256ToAnsi(je.hexToAnsi256(e)),enumerable:!1}}),je}var c2=u2(),nu=new Set(["\x1B","\x9B"]),l2=39,qf="\x07",GD="[",f2="]",WD="m",Hf=`${f2}8;;`,LD=t=>`${nu.values().next().value}${GD}${t}${WD}`,jD=t=>`${nu.values().next().value}${Hf}${t}${qf}`,p2=t=>t.split(" ").map(e=>ba(e)),jf=(t,e,r)=>{let n=[...e],o=!1,i=!1,a=ba(VD(t[t.length-1]));for(let[s,u]of n.entries()){let c=ba(u);if(a+c<=r?t[t.length-1]+=u:(t.push(u),a=0),nu.has(u)&&(o=!0,i=n.slice(s+1).join("").startsWith(Hf)),o){i?u===qf&&(o=!1,i=!1):u===WD&&(o=!1);continue}a+=c,a===r&&s<n.length-1&&(t.push(""),a=0)}!a&&t[t.length-1].length>0&&t.length>1&&(t[t.length-2]+=t.pop())},d2=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!(ba(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},h2=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let n="",o,i,a=p2(t),s=[""];for(let[c,l]of t.split(" ").entries()){r.trim!==!1&&(s[s.length-1]=s[s.length-1].trimStart());let p=ba(s[s.length-1]);if(c!==0&&(p>=e&&(r.wordWrap===!1||r.trim===!1)&&(s.push(""),p=0),(p>0||r.trim===!1)&&(s[s.length-1]+=" ",p++)),r.hard&&a[c]>e){let h=e-p,d=1+Math.floor((a[c]-h-1)/e);Math.floor((a[c]-1)/e)<d&&s.push(""),jf(s,l,e);continue}if(p+a[c]>e&&p>0&&a[c]>0){if(r.wordWrap===!1&&p<e){jf(s,l,e);continue}s.push("")}if(p+a[c]>e&&r.wordWrap===!1){jf(s,l,e);continue}s[s.length-1]+=l}r.trim!==!1&&(s=s.map(c=>d2(c)));let u=[...s.join(`
105
105
  `)];for(let[c,l]of u.entries()){if(n+=l,nu.has(l)){let{groups:h}=new RegExp(`(?:\\${GD}(?<code>\\d+)m|\\${Hf}(?<uri>.*)${qf})`).exec(u.slice(c).join(""))||{groups:{}};if(h.code!==void 0){let d=Number.parseFloat(h.code);o=d===l2?void 0:d}else h.uri!==void 0&&(i=h.uri.length===0?void 0:h.uri)}let p=c2.codes.get(Number(o));u[c+1]===`
106
106
  `?(i&&(n+=jD("")),o&&p&&(n+=LD(p))):l===`
107
107
  `&&(o&&p&&(n+=LD(o)),i&&(n+=jD(i)))}return n};function UD(t,e,r){return String(t).normalize().replace(/\r\n/g,`
@@ -177,7 +177,7 @@ Location: ~/.capgo-credentials/credentials.json`),f.info(`
177
177
  \u{1F512} These credentials are stored locally on your machine only.`),f.info(" When building, they are sent to Capgo but NEVER stored there."),f.info(" They are auto-deleted after build completion (max 24 hours)."),f.info(` Builds sent directly to app stores - Capgo keeps nothing.
178
178
  `)}catch(e){f.error(`Failed to list credentials: ${e instanceof Error?e.message:String(e)}`),Jt.default.exit(1)}}async function KA(t){try{let e=await ee(),r=t.appId||ce(void 0,e?.config);if(r&&t.platform){if(!await HA(r,t.platform)){f.info(`No ${t.platform.toUpperCase()} credentials found for ${r}.`);return}await ql(r,t.platform),f.success(`\u2705 ${t.platform.toUpperCase()} credentials cleared for ${r}!`)}else if(r){let n=await Os(r);if(!n||!n.ios&&!n.android){f.info(`No credentials found for ${r}.`);return}await ql(r),f.success(`\u2705 All credentials cleared for ${r}!`)}else{if((await xg()).length===0){f.info("No saved credentials found.");return}await ql(),f.success("\u2705 All credentials cleared for all apps!")}f.info(` Location: ~/.capgo-credentials/credentials.json
179
179
  `)}catch(e){f.error(`Failed to clear credentials: ${e instanceof Error?e.message:String(e)}`),Jt.default.exit(1)}}var GA=require("node:child_process"),Bn=require("node:fs/promises"),WA=require("node:os"),To=require("node:path"),Ag=pe(require("node:process"));async function P5(t,e,r,n,o){if(!o)try{let i=await fetch(`${t}/build/logs/${e}?app_id=${encodeURIComponent(r)}`,{headers:{authorization:n}});if(!i.ok){f.warn("Could not stream logs, continuing...");return}let a=i.body?.getReader();if(!a)return;let s=new TextDecoder;for(;;){let{done:u,value:c}=await a.read();if(u)break;let p=s.decode(c,{stream:!0}).split(`
180
- `);for(let h of p)if(h.startsWith("data: ")){let d=h.slice(6);d.trim()&&f.error(d)}}}catch(i){o||f.warn(`Log streaming interrupted${i instanceof Error?`: ${i.message}`:""}`)}}async function $5(t,e,r,n,o,i){let s=0;for(;s<120;)try{let u=await fetch(`${t}/build/status?job_id=${encodeURIComponent(e)}&app_id=${encodeURIComponent(r)}&platform=${n}`,{headers:{authorization:o}});if(!u.ok){i||f.warn(`Status check failed: ${u.status}`),await new Promise(l=>setTimeout(l,5e3)),s++;continue}let c=await u.json();if(c.status==="succeeded"||c.status==="failed")return c.status;await new Promise(l=>setTimeout(l,5e3)),s++}catch(u){i||f.warn(`Status check error: ${u}`),await new Promise(c=>setTimeout(c,5e3)),s++}return i||f.warn("Build status polling timed out"),"timeout"}async function T5(t,e){return new Promise((r,n)=>{let i=(0,GA.spawn)("zip",["-rq",e,"."],{cwd:t,stdio:"inherit"});i.on("error",a=>{a.code==="ENOENT"?n(new Error("zip command not found. Please install zip utility.")):n(a)}),i.on("close",a=>{a===0?r():n(new Error(`zip process exited with code ${a}`))})})}async function I5(t,e,r=!1){let n=Date.now();try{e.apikey=e.apikey||ne(r);let o=await ee();if(t=t||o?.config.appId,!t)throw new Error("Missing argument, you need to provide a appId, or be in a capacitor project");let i=(0,To.resolve)(e.path||Ag.default.cwd()),a=await re(e.apikey,e.supaHost,e.supaAnon);await ie(a,e.apikey,["write","all"]);let s=await yt(a,t);r||(f.info(`Requesting native build for ${t}`),f.info(`Platform: ${e.platform}`),f.info(`Project: ${i}`),f.info(`
180
+ `);for(let h of p)if(h.startsWith("data: ")){let d=h.slice(6);d.trim()&&f.error(d)}}}catch(i){o||f.warn(`Log streaming interrupted${i instanceof Error?`: ${i.message}`:""}`)}}async function $5(t,e,r,n,o,i){let s=0;for(;s<120;)try{let u=await fetch(`${t}/build/status?job_id=${encodeURIComponent(e)}&app_id=${encodeURIComponent(r)}&platform=${n}`,{headers:{authorization:o}});if(!u.ok){i||f.warn(`Status check failed: ${u.status}`),await new Promise(l=>setTimeout(l,5e3)),s++;continue}let c=await u.json();if(c.status==="succeeded"||c.status==="failed")return c.status;await new Promise(l=>setTimeout(l,5e3)),s++}catch(u){i||f.warn(`Status check error: ${u}`),await new Promise(c=>setTimeout(c,5e3)),s++}return i||f.warn("Build status polling timed out"),"timeout"}async function T5(t,e){return new Promise((r,n)=>{let i=(0,GA.spawn)("zip",["-rq",e,"."],{cwd:t,stdio:"inherit"});i.on("error",a=>{a.code==="ENOENT"?n(new Error("zip command not found. Please install zip utility.")):n(a)}),i.on("close",a=>{a===0?r():n(new Error(`zip process exited with code ${a}`))})})}async function I5(t,e,r=!1){let n=Date.now();try{e.apikey=e.apikey||ne(r);let o=await ee();if(t=t||o?.config.appId,!t)throw new Error("Missing argument, you need to provide a appId, or be in a capacitor project");if(!e.platform)throw new Error("Missing required argument: --platform <ios|android>");if(e.platform!=="ios"&&e.platform!=="android")throw new Error(`Invalid platform "${e.platform}". Must be "ios" or "android"`);let i=(0,To.resolve)(e.path||Ag.default.cwd()),a=await re(e.apikey,e.supaHost,e.supaAnon);await ie(a,e.apikey,["write","all"]);let s=await yt(a,t);r||(f.info(`Requesting native build for ${t}`),f.info(`Platform: ${e.platform}`),f.info(`Project: ${i}`),f.info(`
181
181
  \u{1F512} Security: Credentials are never stored on Capgo servers`),f.info(" They are used only during build and deleted after (max 24h)"),f.info(` Builds sent directly to app stores - Capgo keeps nothing
182
182
  `));let u={};e.buildCertificateBase64&&(u.BUILD_CERTIFICATE_BASE64=e.buildCertificateBase64),e.buildProvisionProfileBase64&&(u.BUILD_PROVISION_PROFILE_BASE64=e.buildProvisionProfileBase64),e.buildProvisionProfileBase64Prod&&(u.BUILD_PROVISION_PROFILE_BASE64_PROD=e.buildProvisionProfileBase64Prod),e.p12Password&&(u.P12_PASSWORD=e.p12Password),e.appleKeyId&&(u.APPLE_KEY_ID=e.appleKeyId),e.appleIssuerId&&(u.APPLE_ISSUER_ID=e.appleIssuerId),e.appleKeyContent&&(u.APPLE_KEY_CONTENT=e.appleKeyContent),e.appleProfileName&&(u.APPLE_PROFILE_NAME=e.appleProfileName),e.appStoreConnectTeamId&&(u.APP_STORE_CONNECT_TEAM_ID=e.appStoreConnectTeamId),e.androidKeystoreFile&&(u.ANDROID_KEYSTORE_FILE=e.androidKeystoreFile),e.keystoreKeyAlias&&(u.KEYSTORE_KEY_ALIAS=e.keystoreKeyAlias);let c=!!e.keystoreKeyPassword,l=!!e.keystoreStorePassword;c&&!l?(u.KEYSTORE_KEY_PASSWORD=e.keystoreKeyPassword,u.KEYSTORE_STORE_PASSWORD=e.keystoreKeyPassword):!c&&l?(u.KEYSTORE_KEY_PASSWORD=e.keystoreStorePassword,u.KEYSTORE_STORE_PASSWORD=e.keystoreStorePassword):c&&l&&(u.KEYSTORE_KEY_PASSWORD=e.keystoreKeyPassword,u.KEYSTORE_STORE_PASSWORD=e.keystoreStorePassword),e.playConfigJson&&(u.PLAY_CONFIG_JSON=e.playConfigJson);let p=await UA(t,e.platform,Object.keys(u).length>0?u:void 0),h={app_id:t,platform:e.platform};if(!p)throw r||(f.error("\u274C No credentials found for this app and platform"),f.error(""),f.error("You must provide credentials via:"),f.error(" 1. CLI arguments (--apple-key-id, --p12-password, etc.)"),f.error(" 2. Environment variables (APPLE_KEY_ID, P12_PASSWORD, etc.)"),f.error(" 3. Saved credentials file:"),f.error(` npx @capgo/cli build credentials save --appId ${t} --platform ${e.platform}`),f.error(""),f.error("Documentation:"),f.error(" https://capgo.app/docs/cli/cloud-build/credentials/")),new Error("No credentials found. Please provide credentials before building.");let d=[];if(e.platform==="ios"?(p.BUILD_CERTIFICATE_BASE64||d.push("BUILD_CERTIFICATE_BASE64 (or --build-certificate-base64)"),p.P12_PASSWORD||d.push("P12_PASSWORD (or --p12-password)"),p.BUILD_PROVISION_PROFILE_BASE64||d.push("BUILD_PROVISION_PROFILE_BASE64 (or --build-provision-profile-base64)"),p.APPLE_KEY_ID||d.push("APPLE_KEY_ID (or --apple-key-id)"),p.APPLE_ISSUER_ID||d.push("APPLE_ISSUER_ID (or --apple-issuer-id)"),p.APPLE_KEY_CONTENT||d.push("APPLE_KEY_CONTENT (or --apple-key-content)"),p.APP_STORE_CONNECT_TEAM_ID||d.push("APP_STORE_CONNECT_TEAM_ID (or --apple-team-id)")):e.platform==="android"&&(p.ANDROID_KEYSTORE_FILE||d.push("ANDROID_KEYSTORE_FILE (or --android-keystore-file)"),p.KEYSTORE_KEY_ALIAS||d.push("KEYSTORE_KEY_ALIAS (or --keystore-key-alias)"),!p.KEYSTORE_KEY_PASSWORD&&!p.KEYSTORE_STORE_PASSWORD&&d.push("KEYSTORE_KEY_PASSWORD or KEYSTORE_STORE_PASSWORD (at least one password required)"),!p.PLAY_CONFIG_JSON&&!r&&f.warn("\u26A0\uFE0F PLAY_CONFIG_JSON not provided - build will succeed but cannot auto-upload to Play Store")),d.length>0){if(!r){f.error(`\u274C Missing required credentials for ${e.platform}:`),f.error("");for(let g of d)f.error(` \u2022 ${g}`);f.error(""),f.error("Provide credentials via:"),f.error(' 1. CLI arguments: npx @capgo/cli build request --platform ios --apple-id "..." --p12-password "..."'),f.error(' 2. Environment variables: export APPLE_ID="..." P12_PASSWORD="..."'),f.error(" 3. Saved credentials: npx @capgo/cli build credentials save --platform ios ..."),f.error(""),f.error("Documentation:"),f.error(` https://capgo.app/docs/cli/cloud-build/${e.platform}/`)}throw new Error(`Missing required credentials for ${e.platform}: ${d.join(", ")}`)}h.credentials=p,r||f.info("\u2713 Using credentials (merged from CLI args, env vars, and saved file)"),r||f.info("Requesting build from Capgo...");let m=e.supaHost||"https://api.capgo.app",y=await fetch(`${m}/build/request`,{method:"POST",headers:{"Content-Type":"application/json",authorization:e.apikey},body:JSON.stringify(h)});if(!y.ok){let g=await y.text();throw new Error(`Failed to request build: ${y.status} - ${g}`)}let D=await y.json();r||(f.success(`Build job created: ${D.job_id}`),f.info(`Status: ${D.status}`)),await fe(e.apikey,{channel:"native-builder",event:"Build requested",icon:"\u{1F3D7}\uFE0F",user_id:s,tags:{"app-id":t,platform:e.platform},notify:!1}).catch();let E=(0,To.join)((0,WA.tmpdir)(),`capgo-build-${Date.now()}`);await(0,Bn.mkdir)(E,{recursive:!0});let C=(0,To.join)(E,`${(0,To.basename)(i)}.zip`);try{r||f.info(`Zipping project from ${i}...`),await T5(i,C);let g=await(0,Bn.stat)(C),_=(g.size/1024/1024).toFixed(2);r||f.success(`Created zip: ${C} (${_} MB)`),r||f.info("Uploading to builder...");let x=await(0,Bn.readFile)(C),P=await fetch(D.upload_url,{method:"PUT",headers:{"Content-Type":"application/zip","Content-Length":String(g.size)},body:x});if(!P.ok){let F=await P.text();throw new Error(`Upload failed: ${P.status} - ${F}`)}r||f.success("Upload complete!"),r||f.info("Starting build job...");let O=await fetch(`${m}/build/start/${D.job_id}`,{method:"POST",headers:{"Content-Type":"application/json",authorization:e.apikey},body:JSON.stringify({app_id:t})});if(!O.ok){let F=await O.text();throw new Error(`Failed to start build: ${O.status} - ${F}`)}let B=await O.json();r||(f.success("Build started successfully!"),f.info(`Job ID: ${D.job_id}`),f.info(`Streaming build logs...
183
183
  `)),await P5(m,D.job_id,t,e.apikey,r);let T=await $5(m,D.job_id,t,e.platform,e.apikey,r);r||(T==="succeeded"?f.success("Build completed successfully!"):T==="failed"?f.error("Build failed"):f.warn(`Build finished with status: ${T}`));let L=((Date.now()-n)/1e3).toFixed(2);return await fe(e.apikey,{channel:"native-builder",event:T==="succeeded"?"Build succeeded":"Build failed",icon:T==="succeeded"?"\u2705":"\u274C",user_id:s,tags:{"app-id":t,platform:e.platform,status:T||"unknown",time:L},notify:!1}).catch(),{success:T==="succeeded",jobId:D.job_id,uploadUrl:D.upload_url,status:T||B.status||D.status}}finally{await(0,Bn.rm)(E,{recursive:!0,force:!0})}}catch(o){let i=o instanceof Error?o.message:String(o);return r||f.error(i),{success:!1,error:i}}}async function YA(t,e){(await I5(t,e,!1)).success||Ag.default.exit(1)}async function JA(t,e,r,n={}){let{silent:o=!1,autoUnlink:i=!1}=n,{data:a,error:s}=await t.from("channels").select().eq("app_id",e).eq("version",r.id);if(s)throw o||f.error(`Cannot check Version ${e}@${r.name}: ${j(s)}`),new Error(`Cannot check version ${e}@${r.name}: ${j(s)}`);if(!a?.length)return;if(o)throw new Error(`Version ${e}@${r.name} is used in ${a.length} channel(s)`);Z(`\u274C Version ${e}@${r.name} is used in ${a.length} channel${a.length>1?"s":""}`);let u=i;if(i||(u=await be({message:"unlink it?"})===!0),!u)throw f.error("Unlink it first"),new Error(`Version ${e}@${r.name} is still linked to channel(s)`);for(let c of a){let l=ve();l.start(`Unlinking channel ${c.name}`);let p=await Fg(t,e,{silent:o});if(!p)throw l.stop(`Cannot find unknown version for ${e}`),new Error(`Cannot find unknown version for ${e}`);let{error:h}=await t.from("channels").update({version:p.id}).eq("id",c.id);if(h)throw l.stop(`Cannot update channel ${c.name} ${j(h)}`),new Error(`Cannot update channel ${c.name}: ${j(h)}`);l.stop(`\u2705 Channel ${c.name} unlinked`)}J(`Version unlinked from ${a.length} channel${a.length>1?"s":""}`)}async function Fg(t,e,r={}){let{silent:n=!1}=r,o=[3e3,7e3],i;for(let a=0;a<=2;a++){let{data:s,error:u}=await t.from("app_versions").select("id").eq("app_id",e).eq("name","unknown").single();if(!u)return s;i=u,a<2&&await new Promise(c=>setTimeout(c,o[a]))}throw n||f.error(`Cannot call findUnknownVersion as it returned an error.
@@ -457,11 +457,11 @@ Android Example:
457
457
  npx @capgo/cli build credentials save \\
458
458
  --appId com.example.app \\
459
459
  --platform android \\
460
- --keystore ./release.keystore \\
460
+ --keystore ./release.keystore \\ # or ./release.jks
461
461
  --keystore-alias "my-key" \\
462
462
  --keystore-key-password "key-pass" \\
463
463
  --keystore-store-password "store-pass" \\
464
- --play-config ./service-account.json`).action(VA).option("--appId <appId>","App ID (e.g., com.example.app) (required)").option("--platform <platform>","Platform: ios or android (required)").option("--certificate <path>","iOS: Path to .p12 certificate file").option("--provisioning-profile <path>","iOS: Path to provisioning profile (.mobileprovision)").option("--provisioning-profile-prod <path>","iOS: Path to production provisioning profile").option("--p12-password <password>","iOS: Certificate password").option("--apple-key <path>","iOS: Path to .p8 App Store Connect API key").option("--apple-key-id <id>","iOS: App Store Connect API Key ID").option("--apple-issuer-id <id>","iOS: App Store Connect Issuer ID").option("--apple-profile-name <name>","iOS: Provisioning profile name").option("--apple-team-id <id>","iOS: App Store Connect Team ID").option("--apple-id <email>","iOS: Apple ID email (optional)").option("--apple-app-password <password>","iOS: App-specific password (optional)").option("--keystore <path>","Android: Path to keystore file").option("--keystore-alias <alias>","Android: Keystore key alias").option("--keystore-key-password <password>","Android: Keystore key password").option("--keystore-store-password <password>","Android: Keystore store password").option("--play-config <path>","Android: Path to Play Store service account JSON");DD.command("list").description(`List saved build credentials (passwords masked).
464
+ --play-config ./service-account.json`).action(VA).option("--appId <appId>","App ID (e.g., com.example.app) (required)").option("--platform <platform>","Platform: ios or android (required)").option("--certificate <path>","iOS: Path to .p12 certificate file").option("--provisioning-profile <path>","iOS: Path to provisioning profile (.mobileprovision)").option("--provisioning-profile-prod <path>","iOS: Path to production provisioning profile").option("--p12-password <password>","iOS: Certificate password").option("--apple-key <path>","iOS: Path to .p8 App Store Connect API key").option("--apple-key-id <id>","iOS: App Store Connect API Key ID").option("--apple-issuer-id <id>","iOS: App Store Connect Issuer ID").option("--apple-profile-name <name>","iOS: Provisioning profile name").option("--apple-team-id <id>","iOS: App Store Connect Team ID").option("--apple-id <email>","iOS: Apple ID email (optional)").option("--apple-app-password <password>","iOS: App-specific password (optional)").option("--keystore <path>","Android: Path to keystore file (.keystore or .jks)").option("--keystore-alias <alias>","Android: Keystore key alias").option("--keystore-key-password <password>","Android: Keystore key password").option("--keystore-store-password <password>","Android: Keystore store password").option("--play-config <path>","Android: Path to Play Store service account JSON");DD.command("list").description(`List saved build credentials (passwords masked).
465
465
 
466
466
  Shows what credentials are currently saved in ~/.capgo-credentials/credentials.json
467
467
 
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capgo/cli",
3
- "version": "7.33.0",
3
+ "version": "7.33.1",
4
4
  "description": "A CLI to upload to capgo servers",
5
5
  "author": "Martin martin@capgo.app",
6
6
  "license": "Apache 2.0",
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/build/request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAU3C;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAE/B,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,mCAAmC,CAAC,EAAE,MAAM,CAAA;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAGlC,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAGzB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAA;IAC3B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;IAGf,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,+BAA+B,CAAC,EAAE,MAAM,CAAA;IACxC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAG9B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAA;QACV,EAAE,EAAE,MAAM,CAAA;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KACvB,GAAG,IAAI,CAAA;CACT;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAgID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAyVnI;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpG"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/build/request.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAU3C;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAE/B,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,8BAA8B,CAAC,EAAE,MAAM,CAAA;IACvC,mCAAmC,CAAC,EAAE,MAAM,CAAA;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,yBAAyB,CAAC,EAAE,MAAM,CAAA;IAGlC,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAGzB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,KAAK,GAAG,SAAS,CAAA;IAC3B,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;IAGf,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,+BAA+B,CAAC,EAAE,MAAM,CAAA;IACxC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAG9B,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAA;QACV,EAAE,EAAE,MAAM,CAAA;QACV,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KACvB,GAAG,IAAI,CAAA;CACT;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAgID;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAiWnI;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpG"}
package/dist/src/sdk.js CHANGED
@@ -280,7 +280,7 @@ ${Y.default.gray(lu)} ${t}
280
280
  `);let w=0,_=0;f(),s=setInterval(()=>{if(n&&a===u)return;y(),u=a;let P=Y.default.magenta(e[w]);if(n)process.stdout.write(`${P} ${a}...`);else if(t==="timer")process.stdout.write(`${P} ${a} ${S(c)}`);else{let b=".".repeat(Math.floor(_)).slice(0,3);process.stdout.write(`${P} ${a}${b}`)}w=w+1<e.length?w+1:0,_=_<e.length?_+.125:0},r)},p=(D="",w=0)=>{o=!1,clearInterval(s),y();let _=w===0?Y.default.green(Sm):w===1?Y.default.red(Qv):Y.default.red(e_);a=E(D??a),t==="timer"?process.stdout.write(`${_} ${a} ${S(c)}
281
281
  `):process.stdout.write(`${_} ${a}
282
282
  `),m(),i()};return{start:A,stop:p,message:(D="")=>{a=E(D??a)}}};function t_(t,e){let n=["normal","bold","dim","italic","underline","strikethrough"].indexOf(t),i="\x1B[";return i+n+"m"+e+i+"0m"}var Vt=class t{title=null;headers=[];rows=[];static narrowTheme={top:["\u2554","\u2550","\u2564","\u2557"],row:["\u2551"," ","\u2502","\u2551"],div:["\u255F","\u2500","\u253C","\u2562"],bot:["\u255A","\u2550","\u2567","\u255D"]};static wideTheme={top:["\u2554\u2550","\u2550","\u2550\u2564\u2550","\u2550\u2557"],row:["\u2551 "," "," \u2502 "," \u2551"],div:["\u255F\u2500","\u2500","\u2500\u253C\u2500","\u2500\u2562"],bot:["\u255A\u2550","\u2550","\u2550\u2567\u2550","\u2550\u255D"]};static roundTheme={top:["\u256D\u2500","\u2500","\u2500\u252C\u2500","\u2500\u256E"],row:["\u2502 "," "," \u2502 "," \u2502"],div:["\u251C\u2500","\u2500","\u2500\u253C\u2500","\u2500\u2524"],bot:["\u2570\u2500","\u2500","\u2500\u2534\u2500","\u2500\u256F"]};theme=t.wideTheme;columnWidth(){let e=[this.headers,...this.rows].filter(n=>n.length>0),r=e[0].map(n=>this.cast(n).length);for(let n of e.slice(1))for(let i=0;i<r.length;i++){let s=this.cast(n[i]).length;s>r[i]&&(r[i]=s)}return r}cast(e){return typeof e=="object"?"obj":e!==void 0&&typeof e.toString=="function"?e.toString():""}renderTitle(){return"[ "+this.title+" ]"}renderLine(e){let r=this.columnWidth();return e[0]+r.map(n=>e[1].repeat(n)).join(e[2])+e[3]}renderCell(e,r,n=!1){let i=this.cast(e),s=n?t_("bold",i):i,o=r-i.length,a=this.theme.row[1];switch(typeof e){case"number":return a.repeat(o)+s;case"string":return s+a.repeat(o);case"boolean":case"object":return a.repeat(Math.ceil(o/2))+t_("italic",i)+a.repeat(Math.floor(o/2));default:return a.repeat(o)}}renderRow(e,r=!1){let n=this.theme.row,i=this.columnWidth();return n[0]+e.map((s,o)=>this.renderCell(s,i[o],r)).join(n[2])+n[3]}toString(){let e=this.theme,r=this.headers.length>0,n=this.rows.length>0;return[this.title?this.renderTitle():"",r||n?this.renderLine(e.top):"",r?this.renderRow(this.headers,!0):"",r&&n?this.renderLine(e.div):"",...this.rows.map(i=>this.renderRow(i)),r||n?this.renderLine(e.bot):""].filter(i=>i.length>0).join(`
283
- `)}};var qM=require("node:child_process"),Ye=require("node:fs"),kp=require("node:os"),Xe=Oe(require("node:path")),$n=require("node:process"),rs=Oe(xl());var Zt=require("fs"),hu=(t=".",e="unknown")=>{let r=`${t}/bun.lockb`,n=`${t}/bun.lock`,i=`${t}/pnpm-lock.yaml`,s=`${t}/shrinkwrap.yaml`,o=`${t}/yarn.lock`,a=`${t}/package-lock.json`,u=`${t}/npm-shrinkwrap.json`;return(0,Zt.existsSync)(r)||(0,Zt.existsSync)(n)?"bun":(0,Zt.existsSync)(i)||(0,Zt.existsSync)(s)?"pnpm":(0,Zt.existsSync)(o)?"yarn":(0,Zt.existsSync)(a)||(0,Zt.existsSync)(u)?"npm":e},Tl=(t=hu(),e=!1)=>{switch(t){case"bun":return e?"bun install":"install";case"pnpm":return e?"pnpm install":"install";case"yarn":return e?"yarn install":"install";case"npm":return e?"npm install":"install";case"unknown":return e?"unknown unknown":"unknown";default:return e?"npm install":"install"}},r_=(t=".",e="npx")=>{let r=`${t}/bun.lockb`,n=`${t}/bun.lock`,i=`${t}/pnpm-lock.yaml`,s=`${t}/shrinkwrap.yaml`,o=`${t}/yarn.lock`,a=`${t}/package-lock.json`,u=`${t}/npm-shrinkwrap.json`;return(0,Zt.existsSync)(r)||(0,Zt.existsSync)(n)?"bunx":(0,Zt.existsSync)(i)||(0,Zt.existsSync)(s)?"pnpm exec":(0,Zt.existsSync)(o)?"yarn dlx":(0,Zt.existsSync)(a)||(0,Zt.existsSync)(u)?"npx":e};function Il(t,e){if(isNaN(t)||isNaN(e))throw new Error("Cannot compare against non-numbers");return t===e?0:t<e?-1:1}function s_(t=[],e=[]){return t.length&&!e.length?-1:!t.length&&e.length?1:0}function Im(t=[],e=[]){let r=Math.max(t.length,e.length);for(let n=0;n<r;n++){let i=t[n],s=e[n];if(i===void 0&&s===void 0)return 0;if(s===void 0)return 1;if(i===void 0)return-1;if(typeof i=="string"&&typeof s=="number")return 1;if(typeof i=="number"&&typeof s=="string"||i<s)return-1;if(i>s)return 1}return 0}var bo="0|[1-9]\\d*",AU="\\d*[a-zA-Z-][a-zA-Z0-9-]*",OU=`(?<major>${bo})\\.(?<minor>${bo})\\.(?<patch>${bo})`,n_=`(?:${bo}|${AU})`,o_=`(?:-(?<prerelease>${n_}(?:\\.${n_})*))`,i_="[0-9A-Za-z-]+",a_=`(?:\\+(?<buildmetadata>${i_}(?:\\.${i_})*))`,u_=`v?${OU}${o_}?${a_}?`,c_=new RegExp(`^${u_}$`),l_="(?:<|>)?=?",xU="x|X|\\*",Tm=`${bo}|${xU}`,Fl=`[v=\\s]*(?<major>${Tm})(?:\\.(?<minor>${Tm})(?:\\.(?<patch>${Tm})${o_}?${a_}?)?)?`,f_=new RegExp(`^(?<operator>~>?|\\^|${l_})\\s*${Fl}$`),h_=new RegExp(`^(?<operator>${l_})\\s*(${u_})$|^$`);function Fm(t){return typeof t=="number"&&!Number.isNaN(t)&&(!Number.isFinite(t)||0<=t&&t<=Number.MAX_SAFE_INTEGER)}var Pm=256;var TU=new RegExp(`^${bo}$`);function Qt(t){return t.split(".").filter(Boolean).map(e=>{if(TU.test(e)){let r=Number(e);if(Fm(r))return r}return e})}function en(t){return t.split(".").filter(Boolean)}function bi(t,e){let r=Number(t);if(!Fm(r))throw new TypeError(e);return r}function Un(t){return Number.isNaN(t.major)&&Number.isNaN(t.minor)&&Number.isNaN(t.patch)&&(t.prerelease===void 0||t.prerelease.length===0)&&(t.build===void 0||t.build.length===0)}function er(t,e){return t===e?0:Il(t.major,e.major)||Il(t.minor,e.minor)||Il(t.patch,e.patch)||s_(t.prerelease,e.prerelease)||Im(t.prerelease,e.prerelease)}function Rm(t){return t.toFixed(0)}function vi(t){let e=Rm(t.major),r=Rm(t.minor),n=Rm(t.patch),i=t.prerelease?.join(".")??"",s=t.build?.join(".")??"";return[[`${e}.${r}.${n}`,i].filter(u=>u).join("-"),s].filter(u=>u).join("+")}function IU(t,e){if(Un(e))return!0;let r=er(t,e);switch(e.operator){case"=":case void 0:return r===0;case"!=":return r!==0;case">":return r>0;case"<":return r<0;case">=":return r>=0;case"<=":return r<=0}}function Pl(t,e){for(let r of e)if(!IU(t,r))return!1;if(t.prerelease&&t.prerelease.length>0){for(let r of e){if(Un(r))continue;let{major:n,minor:i,patch:s,prerelease:o}=r;if(o&&o.length>0&&t.major===n&&t.minor===i&&t.patch===s)return!0}return!1}return!0}function du(t,e){return e.some(r=>Pl(t,r))}function FU(t=[]){let e=[...t],r=e.length;for(;r>=0;){let n=e[r];if(typeof n=="number"){e[r]=n+1;break}r-=1}return r===-1&&e.push(0),e}function pu(t=[],e){let r=FU(t);if(!e)return r;let n=Qt(e);if(n.every(i=>typeof i=="string")){if(n.every((i,s)=>i===r[s])&&typeof r[n.length]=="number")return r;n=[...n,0]}return n}function d_(t,e,r={}){let n=r.build!==void 0?en(r.build):t.build??[];switch(e){case"premajor":return{major:t.major+1,minor:0,patch:0,prerelease:pu(t.prerelease,r.prerelease),build:n};case"preminor":return{major:t.major,minor:t.minor+1,patch:0,prerelease:pu(t.prerelease,r.prerelease),build:n};case"prepatch":return{major:t.major,minor:t.minor,patch:t.patch+1,prerelease:pu(t.prerelease,r.prerelease),build:n};case"prerelease":{let s=(t.prerelease??[]).length===0?t.patch+1:t.patch;return{major:t.major,minor:t.minor,patch:s,prerelease:pu(t.prerelease,r.prerelease),build:n}}case"major":return{major:(t.prerelease??[]).length===0||t.minor!==0||t.patch!==0?t.major+1:t.major,minor:0,patch:0,prerelease:[],build:n};case"minor":{let s=(t.prerelease??[]).length===0||t.patch!==0?t.minor+1:t.minor;return{major:t.major,minor:s,patch:0,prerelease:[],build:n}}case"patch":{let s=(t.prerelease??[]).length===0?t.patch+1:t.patch;return{major:t.major,minor:t.minor,patch:s,prerelease:[],build:n}}case"pre":return{major:t.major,minor:t.minor,patch:t.patch,prerelease:pu(t.prerelease,r.prerelease),build:n};default:throw new TypeError(`Cannot increment version: invalid argument ${e}`)}}var Rl={major:Number.NaN,minor:Number.NaN,patch:Number.NaN,prerelease:[],build:[]},vo={operator:void 0,...Rl};function km(t,e){return er(t,e)>0}function Nm(t,e){return er(t,e)<0}function PU(t){let r=t.match(h_)?.groups;if(!r)return null;let{operator:n,prerelease:i,buildmetadata:s}=r,o=r.major?{major:bi(r.major,`Cannot parse comparator ${t}: invalid major version`),minor:bi(r.minor,`Cannot parse comparator ${t}: invalid minor version`),patch:bi(r.patch,`Cannot parse comparator ${t}: invalid patch version`),prerelease:i?Qt(i):[],build:s?en(s):[]}:Rl;return{operator:n||void 0,...o}}function Ue(t){return!t||t.toLowerCase()==="x"||t==="*"}function RU(t){if(!Ue(t.major))return Ue(t.minor)?{operator:">=",major:+t.major,minor:0,patch:0,prerelease:[],build:[]}:Ue(t.patch)?{operator:">=",major:+t.major,minor:+t.minor,patch:0,prerelease:[],build:[]}:{operator:">=",major:+t.major,minor:+t.minor,patch:+t.patch,prerelease:t.prerelease?Qt(t.prerelease):[],build:[]}}function kU(t){if(!Ue(t.major))return Ue(t.minor)?{operator:"<",major:+t.major+1,minor:0,patch:0,prerelease:[],build:[]}:Ue(t.patch)?{operator:"<",major:+t.major,minor:+t.minor+1,patch:0,prerelease:[],build:[]}:t.prerelease?{operator:"<=",major:+t.major,minor:+t.minor,patch:+t.patch,prerelease:Qt(t.prerelease),build:[]}:{operator:"<=",major:+t.major,minor:+t.minor,patch:+t.patch,prerelease:[],build:[]}}function NU(t){let e=t.match(new RegExp(`^${Fl}`)),r=e?.groups;if(!r)return null;let n=e[0].length,i=t.slice(n).match(/^\s+-\s+/);if(!i)return null;let s=i[0].length,a=t.slice(n+s).match(new RegExp(`^${Fl}\\s*$`))?.groups;if(!a)return null;let u=RU(r),c=kU(a);return[u,c].filter(Boolean)}function $U(t){let e=Ue(t.major),r=Ue(t.minor),n=Ue(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[vo];if(r)return[{operator:">=",major:i,minor:0,patch:0},{operator:"<",major:i+1,minor:0,patch:0}];if(n)return i===0?[{operator:">=",major:i,minor:s,patch:0},{operator:"<",major:i,minor:s+1,patch:0}]:[{operator:">=",major:i,minor:s,patch:0},{operator:"<",major:i+1,minor:0,patch:0}];let a=Qt(t.prerelease??"");return i===0?s===0?[{operator:">=",major:i,minor:s,patch:o,prerelease:a},{operator:"<",major:i,minor:s,patch:o+1}]:[{operator:">=",major:i,minor:s,patch:o,prerelease:a},{operator:"<",major:i,minor:s+1,patch:0}]:[{operator:">=",major:i,minor:s,patch:o,prerelease:a},{operator:"<",major:i+1,minor:0,patch:0}]}function LU(t){let e=Ue(t.major),r=Ue(t.minor),n=Ue(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[vo];if(r)return[{operator:">=",major:i,minor:0,patch:0},{operator:"<",major:i+1,minor:0,patch:0}];if(n)return[{operator:">=",major:i,minor:s,patch:0},{operator:"<",major:i,minor:s+1,patch:0}];let a=Qt(t.prerelease??"");return[{operator:">=",major:i,minor:s,patch:o,prerelease:a},{operator:"<",major:i,minor:s+1,patch:0}]}function jU(t){let e=Ue(t.major),r=Ue(t.minor),n=Ue(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[{operator:"<",major:0,minor:0,patch:0}];if(r)return n?[{operator:"<",major:i,minor:0,patch:0}]:[{operator:"<",major:i,minor:0,patch:0}];if(n)return[{operator:"<",major:i,minor:s,patch:0}];let a=Qt(t.prerelease??""),u=en(t.build??"");return[{operator:"<",major:i,minor:s,patch:o,prerelease:a,build:u}]}function BU(t){let e=Ue(t.minor),r=Ue(t.patch),n=+t.major,i=+t.minor,s=+t.patch;if(e)return r?[{operator:"<",major:n+1,minor:0,patch:0}]:[{operator:"<",major:n,minor:i+1,patch:0}];if(r)return[{operator:"<",major:n,minor:i+1,patch:0}];let o=Qt(t.prerelease??""),a=en(t.build??"");return[{operator:"<=",major:n,minor:i,patch:s,prerelease:o,build:a}]}function MU(t){let e=Ue(t.major),r=Ue(t.minor),n=Ue(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[{operator:"<",major:0,minor:0,patch:0}];if(r)return[{operator:">=",major:i+1,minor:0,patch:0}];if(n)return[{operator:">=",major:i,minor:s+1,patch:0}];let a=Qt(t.prerelease??""),u=en(t.build??"");return[{operator:">",major:i,minor:s,patch:o,prerelease:a,build:u}]}function qU(t){let e=Ue(t.major),r=Ue(t.minor),n=Ue(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[vo];if(r)return n?[{operator:">=",major:i,minor:0,patch:0}]:[{operator:">=",major:i,minor:0,patch:0}];if(n)return[{operator:">=",major:i,minor:s,patch:0}];let a=Qt(t.prerelease??""),u=en(t.build??"");return[{operator:">=",major:i,minor:s,patch:o,prerelease:a,build:u}]}function UU(t){let e=Ue(t.major),r=Ue(t.minor),n=Ue(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[vo];if(r)return[{operator:">=",major:i,minor:0,patch:0},{operator:"<",major:i+1,minor:0,patch:0}];if(n)return[{operator:">=",major:i,minor:s,patch:0},{operator:"<",major:i,minor:s+1,patch:0}];let a=Qt(t.prerelease??""),u=en(t.build??"");return[{operator:void 0,major:i,minor:s,patch:o,prerelease:a,build:u}]}function HU(t){let e=t.match(f_)?.groups;if(!e)return PU(t);switch(e.operator){case"^":return $U(e);case"~":case"~>":return LU(e);case"<":return jU(e);case"<=":return BU(e);case">":return MU(e);case">=":return qU(e);case"=":case"":return UU(e);default:throw new Error(`Cannot parse version range: '${e.operator}' is not a valid operator`)}}function VU(t){return t.split(/\s+/).flatMap(HU)}function kl(t){let e=t.replaceAll(/(?<=<|>|=|~|\^)(\s+)/g,"").split(/\s*\|\|\s*/).map(r=>NU(r)||VU(r));if(e.some(r=>r.includes(null)))throw new TypeError(`Cannot parse version range: range "${t}" is invalid`);return e}function St(t){if(typeof t!="string")throw new TypeError(`Cannot parse version as version must be a string: received ${typeof t}`);if(t.length>Pm)throw new TypeError(`Cannot parse version as version length is too long: length is ${t.length}, max length is ${Pm}`);t=t.trim();let e=t.match(c_)?.groups;if(!e)throw new TypeError(`Cannot parse version: ${t}`);let r=bi(e.major,`Cannot parse version ${t}: invalid major version`),n=bi(e.minor,`Cannot parse version ${t}: invalid minor version`),i=bi(e.patch,`Cannot parse version ${t}: invalid patch version`),s=e.prerelease?Qt(e.prerelease):[],o=e.buildmetadata?en(e.buildmetadata):[];return{major:r,minor:n,patch:i,prerelease:s,build:o}}function p_(t,e){let r=t.operator,n=e.operator;if(r===void 0)return Un(t)?!0:du(t,[[e]]);if(n===void 0)return Un(e)?!0:du(e,[[t]]);let i=er(t,e);return(r===">="||r===">")&&(n===">="||n===">")||(r==="<="||r==="<")&&(n==="<="||n==="<")||i===0&&((r===">="||r==="<=")&&(n===">="||n==="<="))||i===-1&&(r===">="||r===">")&&(n==="<="||n==="<")||i===1&&(r==="<="||r==="<")&&(n===">="||n===">")}function zU(t){return t.every(e=>e.some(r=>KU(r)))}function KU(t){for(let e=0;e<t.length-1;e++){let r=t[e];for(let n of t.slice(e+1))if(!p_(r,n))return!1}return!0}function m_(t,e){return zU([t,e])&&t.some(r=>e.some(n=>r.every(i=>n.every(s=>p_(i,s)))))}function g_(t){try{return St(t),!0}catch{return!1}}function _i(t,e){return er(t,e)>=0}var Wa=Oe(dS()),Qb=Oe(KS()),UM=Oe(_A()),Np=Oe(u0());var Ri={name:"@capgo/cli",version:"7.33.0",description:"A CLI to upload to capgo servers",author:"Martin martin@capgo.app",license:"Apache 2.0",homepage:"https://github.com/Cap-go/CLI#readme",repository:{type:"git",url:"git+https://github.com/Cap-go/CLI.git"},bugs:{url:"https://github.com/Cap-go/CLI/issues"},keywords:["appflow alternative","ionic","capacitor","auto update","live update","capgo","cli","upload","capgo-cli","sdk"],exports:{".":{import:"./dist/index.js",require:"./dist/index.js"},"./sdk":{types:"./dist/src/sdk.d.ts",import:"./dist/src/sdk.js",require:"./dist/src/sdk.js"}},main:"dist/index.js",types:"dist/src/index.d.ts",bin:{capgo:"dist/index.js"},engines:{npm:">=8.0.0",node:">=20.0.0"},scripts:{build:"tsc && node build.mjs",dev:"NODE_ENV=development ncc build","no-debug":"node dist/index.js","dev-build":"SUPA_DB=development ncc build",pack:"pkg",types:"npx --yes supabase gen types typescript --project-id=xvwzpoazmxkqosrdewyv > src/types/supabase.types.ts",typecheck:"tsc --noEmit",lint:'eslint "src/**/*.ts" --fix',"check-posix-paths":"node test/check-posix-paths.js","generate-docs":"node dist/index.js generate-docs README.md","test:bundle":"bun test/test-bundle.mjs","test:functional":"bun test/test-functional.mjs","test:semver":"bun test/test-semver-validation.mjs","test:version-edge-cases":"bun test/test-version-validation.mjs","test:regex":"bun test/test-regex-validation.mjs","test:upload":"bun test/test-upload-validation.mjs","test:credentials":"bun test/test-credentials.mjs","test:credentials-validation":"bun test/test-credentials-validation.mjs",test:"bun run test:bundle && bun run test:functional && bun run test:semver && bun run test:version-edge-cases && bun run test:regex && bun run test:upload && bun run test:credentials && bun run test:credentials-validation"},devDependencies:{"@antfu/eslint-config":"^6.1.0","@bradenmacdonald/s3-lite-client":"npm:@jsr/bradenmacdonald__s3-lite-client@0.9.4","@capacitor/cli":"^7.4.4","@capgo/find-package-manager":"^0.0.18","@clack/prompts":"^0.11.0","@sauber/table":"npm:@jsr/sauber__table","@std/semver":"npm:@jsr/std__semver@1.0.6","@supabase/supabase-js":"^2.79.0","@types/adm-zip":"^0.5.7","@types/node":"^24.9.1","@types/prettyjson":"^0.0.33","@types/tmp":"^0.2.6","@vercel/ncc":"^0.38.4","adm-zip":"^0.5.16","ci-info":"^4.3.1",commander:"^14.0.2",esbuild:"^0.25.11",eslint:"^9.38.0","git-format-staged":"3.1.1",husky:"^9.1.7","is-wsl":"^3.1.0",open:"^10.1.2",prettyjson:"^1.2.5",tmp:"^0.2.5","tus-js-client":"^4.3.1",typescript:"^5.9.3"}};async function Lh(t){try{let r=`https://registry.npmjs.org/${encodeURIComponent(t.toLowerCase())}`,n=await fetch(r,{headers:{accept:"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"}});return n.ok&&(await n.json())["dist-tags"]?.latest||null}catch{return null}}async function Ke(){let t=await Lh("@capgo/cli")??"",e=t?.split(".")[0];t!==Ri.version&&g.warning(`\u{1F6A8} You are using @capgo/cli@${Ri.version} it's not the latest version.
283
+ `)}};var qM=require("node:child_process"),Ye=require("node:fs"),kp=require("node:os"),Xe=Oe(require("node:path")),$n=require("node:process"),rs=Oe(xl());var Zt=require("fs"),hu=(t=".",e="unknown")=>{let r=`${t}/bun.lockb`,n=`${t}/bun.lock`,i=`${t}/pnpm-lock.yaml`,s=`${t}/shrinkwrap.yaml`,o=`${t}/yarn.lock`,a=`${t}/package-lock.json`,u=`${t}/npm-shrinkwrap.json`;return(0,Zt.existsSync)(r)||(0,Zt.existsSync)(n)?"bun":(0,Zt.existsSync)(i)||(0,Zt.existsSync)(s)?"pnpm":(0,Zt.existsSync)(o)?"yarn":(0,Zt.existsSync)(a)||(0,Zt.existsSync)(u)?"npm":e},Tl=(t=hu(),e=!1)=>{switch(t){case"bun":return e?"bun install":"install";case"pnpm":return e?"pnpm install":"install";case"yarn":return e?"yarn install":"install";case"npm":return e?"npm install":"install";case"unknown":return e?"unknown unknown":"unknown";default:return e?"npm install":"install"}},r_=(t=".",e="npx")=>{let r=`${t}/bun.lockb`,n=`${t}/bun.lock`,i=`${t}/pnpm-lock.yaml`,s=`${t}/shrinkwrap.yaml`,o=`${t}/yarn.lock`,a=`${t}/package-lock.json`,u=`${t}/npm-shrinkwrap.json`;return(0,Zt.existsSync)(r)||(0,Zt.existsSync)(n)?"bunx":(0,Zt.existsSync)(i)||(0,Zt.existsSync)(s)?"pnpm exec":(0,Zt.existsSync)(o)?"yarn dlx":(0,Zt.existsSync)(a)||(0,Zt.existsSync)(u)?"npx":e};function Il(t,e){if(isNaN(t)||isNaN(e))throw new Error("Cannot compare against non-numbers");return t===e?0:t<e?-1:1}function s_(t=[],e=[]){return t.length&&!e.length?-1:!t.length&&e.length?1:0}function Im(t=[],e=[]){let r=Math.max(t.length,e.length);for(let n=0;n<r;n++){let i=t[n],s=e[n];if(i===void 0&&s===void 0)return 0;if(s===void 0)return 1;if(i===void 0)return-1;if(typeof i=="string"&&typeof s=="number")return 1;if(typeof i=="number"&&typeof s=="string"||i<s)return-1;if(i>s)return 1}return 0}var bo="0|[1-9]\\d*",AU="\\d*[a-zA-Z-][a-zA-Z0-9-]*",OU=`(?<major>${bo})\\.(?<minor>${bo})\\.(?<patch>${bo})`,n_=`(?:${bo}|${AU})`,o_=`(?:-(?<prerelease>${n_}(?:\\.${n_})*))`,i_="[0-9A-Za-z-]+",a_=`(?:\\+(?<buildmetadata>${i_}(?:\\.${i_})*))`,u_=`v?${OU}${o_}?${a_}?`,c_=new RegExp(`^${u_}$`),l_="(?:<|>)?=?",xU="x|X|\\*",Tm=`${bo}|${xU}`,Fl=`[v=\\s]*(?<major>${Tm})(?:\\.(?<minor>${Tm})(?:\\.(?<patch>${Tm})${o_}?${a_}?)?)?`,f_=new RegExp(`^(?<operator>~>?|\\^|${l_})\\s*${Fl}$`),h_=new RegExp(`^(?<operator>${l_})\\s*(${u_})$|^$`);function Fm(t){return typeof t=="number"&&!Number.isNaN(t)&&(!Number.isFinite(t)||0<=t&&t<=Number.MAX_SAFE_INTEGER)}var Pm=256;var TU=new RegExp(`^${bo}$`);function Qt(t){return t.split(".").filter(Boolean).map(e=>{if(TU.test(e)){let r=Number(e);if(Fm(r))return r}return e})}function en(t){return t.split(".").filter(Boolean)}function bi(t,e){let r=Number(t);if(!Fm(r))throw new TypeError(e);return r}function Un(t){return Number.isNaN(t.major)&&Number.isNaN(t.minor)&&Number.isNaN(t.patch)&&(t.prerelease===void 0||t.prerelease.length===0)&&(t.build===void 0||t.build.length===0)}function er(t,e){return t===e?0:Il(t.major,e.major)||Il(t.minor,e.minor)||Il(t.patch,e.patch)||s_(t.prerelease,e.prerelease)||Im(t.prerelease,e.prerelease)}function Rm(t){return t.toFixed(0)}function vi(t){let e=Rm(t.major),r=Rm(t.minor),n=Rm(t.patch),i=t.prerelease?.join(".")??"",s=t.build?.join(".")??"";return[[`${e}.${r}.${n}`,i].filter(u=>u).join("-"),s].filter(u=>u).join("+")}function IU(t,e){if(Un(e))return!0;let r=er(t,e);switch(e.operator){case"=":case void 0:return r===0;case"!=":return r!==0;case">":return r>0;case"<":return r<0;case">=":return r>=0;case"<=":return r<=0}}function Pl(t,e){for(let r of e)if(!IU(t,r))return!1;if(t.prerelease&&t.prerelease.length>0){for(let r of e){if(Un(r))continue;let{major:n,minor:i,patch:s,prerelease:o}=r;if(o&&o.length>0&&t.major===n&&t.minor===i&&t.patch===s)return!0}return!1}return!0}function du(t,e){return e.some(r=>Pl(t,r))}function FU(t=[]){let e=[...t],r=e.length;for(;r>=0;){let n=e[r];if(typeof n=="number"){e[r]=n+1;break}r-=1}return r===-1&&e.push(0),e}function pu(t=[],e){let r=FU(t);if(!e)return r;let n=Qt(e);if(n.every(i=>typeof i=="string")){if(n.every((i,s)=>i===r[s])&&typeof r[n.length]=="number")return r;n=[...n,0]}return n}function d_(t,e,r={}){let n=r.build!==void 0?en(r.build):t.build??[];switch(e){case"premajor":return{major:t.major+1,minor:0,patch:0,prerelease:pu(t.prerelease,r.prerelease),build:n};case"preminor":return{major:t.major,minor:t.minor+1,patch:0,prerelease:pu(t.prerelease,r.prerelease),build:n};case"prepatch":return{major:t.major,minor:t.minor,patch:t.patch+1,prerelease:pu(t.prerelease,r.prerelease),build:n};case"prerelease":{let s=(t.prerelease??[]).length===0?t.patch+1:t.patch;return{major:t.major,minor:t.minor,patch:s,prerelease:pu(t.prerelease,r.prerelease),build:n}}case"major":return{major:(t.prerelease??[]).length===0||t.minor!==0||t.patch!==0?t.major+1:t.major,minor:0,patch:0,prerelease:[],build:n};case"minor":{let s=(t.prerelease??[]).length===0||t.patch!==0?t.minor+1:t.minor;return{major:t.major,minor:s,patch:0,prerelease:[],build:n}}case"patch":{let s=(t.prerelease??[]).length===0?t.patch+1:t.patch;return{major:t.major,minor:t.minor,patch:s,prerelease:[],build:n}}case"pre":return{major:t.major,minor:t.minor,patch:t.patch,prerelease:pu(t.prerelease,r.prerelease),build:n};default:throw new TypeError(`Cannot increment version: invalid argument ${e}`)}}var Rl={major:Number.NaN,minor:Number.NaN,patch:Number.NaN,prerelease:[],build:[]},vo={operator:void 0,...Rl};function km(t,e){return er(t,e)>0}function Nm(t,e){return er(t,e)<0}function PU(t){let r=t.match(h_)?.groups;if(!r)return null;let{operator:n,prerelease:i,buildmetadata:s}=r,o=r.major?{major:bi(r.major,`Cannot parse comparator ${t}: invalid major version`),minor:bi(r.minor,`Cannot parse comparator ${t}: invalid minor version`),patch:bi(r.patch,`Cannot parse comparator ${t}: invalid patch version`),prerelease:i?Qt(i):[],build:s?en(s):[]}:Rl;return{operator:n||void 0,...o}}function Ue(t){return!t||t.toLowerCase()==="x"||t==="*"}function RU(t){if(!Ue(t.major))return Ue(t.minor)?{operator:">=",major:+t.major,minor:0,patch:0,prerelease:[],build:[]}:Ue(t.patch)?{operator:">=",major:+t.major,minor:+t.minor,patch:0,prerelease:[],build:[]}:{operator:">=",major:+t.major,minor:+t.minor,patch:+t.patch,prerelease:t.prerelease?Qt(t.prerelease):[],build:[]}}function kU(t){if(!Ue(t.major))return Ue(t.minor)?{operator:"<",major:+t.major+1,minor:0,patch:0,prerelease:[],build:[]}:Ue(t.patch)?{operator:"<",major:+t.major,minor:+t.minor+1,patch:0,prerelease:[],build:[]}:t.prerelease?{operator:"<=",major:+t.major,minor:+t.minor,patch:+t.patch,prerelease:Qt(t.prerelease),build:[]}:{operator:"<=",major:+t.major,minor:+t.minor,patch:+t.patch,prerelease:[],build:[]}}function NU(t){let e=t.match(new RegExp(`^${Fl}`)),r=e?.groups;if(!r)return null;let n=e[0].length,i=t.slice(n).match(/^\s+-\s+/);if(!i)return null;let s=i[0].length,a=t.slice(n+s).match(new RegExp(`^${Fl}\\s*$`))?.groups;if(!a)return null;let u=RU(r),c=kU(a);return[u,c].filter(Boolean)}function $U(t){let e=Ue(t.major),r=Ue(t.minor),n=Ue(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[vo];if(r)return[{operator:">=",major:i,minor:0,patch:0},{operator:"<",major:i+1,minor:0,patch:0}];if(n)return i===0?[{operator:">=",major:i,minor:s,patch:0},{operator:"<",major:i,minor:s+1,patch:0}]:[{operator:">=",major:i,minor:s,patch:0},{operator:"<",major:i+1,minor:0,patch:0}];let a=Qt(t.prerelease??"");return i===0?s===0?[{operator:">=",major:i,minor:s,patch:o,prerelease:a},{operator:"<",major:i,minor:s,patch:o+1}]:[{operator:">=",major:i,minor:s,patch:o,prerelease:a},{operator:"<",major:i,minor:s+1,patch:0}]:[{operator:">=",major:i,minor:s,patch:o,prerelease:a},{operator:"<",major:i+1,minor:0,patch:0}]}function LU(t){let e=Ue(t.major),r=Ue(t.minor),n=Ue(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[vo];if(r)return[{operator:">=",major:i,minor:0,patch:0},{operator:"<",major:i+1,minor:0,patch:0}];if(n)return[{operator:">=",major:i,minor:s,patch:0},{operator:"<",major:i,minor:s+1,patch:0}];let a=Qt(t.prerelease??"");return[{operator:">=",major:i,minor:s,patch:o,prerelease:a},{operator:"<",major:i,minor:s+1,patch:0}]}function jU(t){let e=Ue(t.major),r=Ue(t.minor),n=Ue(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[{operator:"<",major:0,minor:0,patch:0}];if(r)return n?[{operator:"<",major:i,minor:0,patch:0}]:[{operator:"<",major:i,minor:0,patch:0}];if(n)return[{operator:"<",major:i,minor:s,patch:0}];let a=Qt(t.prerelease??""),u=en(t.build??"");return[{operator:"<",major:i,minor:s,patch:o,prerelease:a,build:u}]}function BU(t){let e=Ue(t.minor),r=Ue(t.patch),n=+t.major,i=+t.minor,s=+t.patch;if(e)return r?[{operator:"<",major:n+1,minor:0,patch:0}]:[{operator:"<",major:n,minor:i+1,patch:0}];if(r)return[{operator:"<",major:n,minor:i+1,patch:0}];let o=Qt(t.prerelease??""),a=en(t.build??"");return[{operator:"<=",major:n,minor:i,patch:s,prerelease:o,build:a}]}function MU(t){let e=Ue(t.major),r=Ue(t.minor),n=Ue(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[{operator:"<",major:0,minor:0,patch:0}];if(r)return[{operator:">=",major:i+1,minor:0,patch:0}];if(n)return[{operator:">=",major:i,minor:s+1,patch:0}];let a=Qt(t.prerelease??""),u=en(t.build??"");return[{operator:">",major:i,minor:s,patch:o,prerelease:a,build:u}]}function qU(t){let e=Ue(t.major),r=Ue(t.minor),n=Ue(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[vo];if(r)return n?[{operator:">=",major:i,minor:0,patch:0}]:[{operator:">=",major:i,minor:0,patch:0}];if(n)return[{operator:">=",major:i,minor:s,patch:0}];let a=Qt(t.prerelease??""),u=en(t.build??"");return[{operator:">=",major:i,minor:s,patch:o,prerelease:a,build:u}]}function UU(t){let e=Ue(t.major),r=Ue(t.minor),n=Ue(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[vo];if(r)return[{operator:">=",major:i,minor:0,patch:0},{operator:"<",major:i+1,minor:0,patch:0}];if(n)return[{operator:">=",major:i,minor:s,patch:0},{operator:"<",major:i,minor:s+1,patch:0}];let a=Qt(t.prerelease??""),u=en(t.build??"");return[{operator:void 0,major:i,minor:s,patch:o,prerelease:a,build:u}]}function HU(t){let e=t.match(f_)?.groups;if(!e)return PU(t);switch(e.operator){case"^":return $U(e);case"~":case"~>":return LU(e);case"<":return jU(e);case"<=":return BU(e);case">":return MU(e);case">=":return qU(e);case"=":case"":return UU(e);default:throw new Error(`Cannot parse version range: '${e.operator}' is not a valid operator`)}}function VU(t){return t.split(/\s+/).flatMap(HU)}function kl(t){let e=t.replaceAll(/(?<=<|>|=|~|\^)(\s+)/g,"").split(/\s*\|\|\s*/).map(r=>NU(r)||VU(r));if(e.some(r=>r.includes(null)))throw new TypeError(`Cannot parse version range: range "${t}" is invalid`);return e}function St(t){if(typeof t!="string")throw new TypeError(`Cannot parse version as version must be a string: received ${typeof t}`);if(t.length>Pm)throw new TypeError(`Cannot parse version as version length is too long: length is ${t.length}, max length is ${Pm}`);t=t.trim();let e=t.match(c_)?.groups;if(!e)throw new TypeError(`Cannot parse version: ${t}`);let r=bi(e.major,`Cannot parse version ${t}: invalid major version`),n=bi(e.minor,`Cannot parse version ${t}: invalid minor version`),i=bi(e.patch,`Cannot parse version ${t}: invalid patch version`),s=e.prerelease?Qt(e.prerelease):[],o=e.buildmetadata?en(e.buildmetadata):[];return{major:r,minor:n,patch:i,prerelease:s,build:o}}function p_(t,e){let r=t.operator,n=e.operator;if(r===void 0)return Un(t)?!0:du(t,[[e]]);if(n===void 0)return Un(e)?!0:du(e,[[t]]);let i=er(t,e);return(r===">="||r===">")&&(n===">="||n===">")||(r==="<="||r==="<")&&(n==="<="||n==="<")||i===0&&((r===">="||r==="<=")&&(n===">="||n==="<="))||i===-1&&(r===">="||r===">")&&(n==="<="||n==="<")||i===1&&(r==="<="||r==="<")&&(n===">="||n===">")}function zU(t){return t.every(e=>e.some(r=>KU(r)))}function KU(t){for(let e=0;e<t.length-1;e++){let r=t[e];for(let n of t.slice(e+1))if(!p_(r,n))return!1}return!0}function m_(t,e){return zU([t,e])&&t.some(r=>e.some(n=>r.every(i=>n.every(s=>p_(i,s)))))}function g_(t){try{return St(t),!0}catch{return!1}}function _i(t,e){return er(t,e)>=0}var Wa=Oe(dS()),Qb=Oe(KS()),UM=Oe(_A()),Np=Oe(u0());var Ri={name:"@capgo/cli",version:"7.33.1",description:"A CLI to upload to capgo servers",author:"Martin martin@capgo.app",license:"Apache 2.0",homepage:"https://github.com/Cap-go/CLI#readme",repository:{type:"git",url:"git+https://github.com/Cap-go/CLI.git"},bugs:{url:"https://github.com/Cap-go/CLI/issues"},keywords:["appflow alternative","ionic","capacitor","auto update","live update","capgo","cli","upload","capgo-cli","sdk"],exports:{".":{import:"./dist/index.js",require:"./dist/index.js"},"./sdk":{types:"./dist/src/sdk.d.ts",import:"./dist/src/sdk.js",require:"./dist/src/sdk.js"}},main:"dist/index.js",types:"dist/src/index.d.ts",bin:{capgo:"dist/index.js"},engines:{npm:">=8.0.0",node:">=20.0.0"},scripts:{build:"tsc && node build.mjs",dev:"NODE_ENV=development ncc build","no-debug":"node dist/index.js","dev-build":"SUPA_DB=development ncc build",pack:"pkg",types:"npx --yes supabase gen types typescript --project-id=xvwzpoazmxkqosrdewyv > src/types/supabase.types.ts",typecheck:"tsc --noEmit",lint:'eslint "src/**/*.ts" --fix',"check-posix-paths":"node test/check-posix-paths.js","generate-docs":"node dist/index.js generate-docs README.md","test:bundle":"bun test/test-bundle.mjs","test:functional":"bun test/test-functional.mjs","test:semver":"bun test/test-semver-validation.mjs","test:version-edge-cases":"bun test/test-version-validation.mjs","test:regex":"bun test/test-regex-validation.mjs","test:upload":"bun test/test-upload-validation.mjs","test:credentials":"bun test/test-credentials.mjs","test:credentials-validation":"bun test/test-credentials-validation.mjs",test:"bun run test:bundle && bun run test:functional && bun run test:semver && bun run test:version-edge-cases && bun run test:regex && bun run test:upload && bun run test:credentials && bun run test:credentials-validation"},devDependencies:{"@antfu/eslint-config":"^6.1.0","@bradenmacdonald/s3-lite-client":"npm:@jsr/bradenmacdonald__s3-lite-client@0.9.4","@capacitor/cli":"^7.4.4","@capgo/find-package-manager":"^0.0.18","@clack/prompts":"^0.11.0","@sauber/table":"npm:@jsr/sauber__table","@std/semver":"npm:@jsr/std__semver@1.0.6","@supabase/supabase-js":"^2.79.0","@types/adm-zip":"^0.5.7","@types/node":"^24.9.1","@types/prettyjson":"^0.0.33","@types/tmp":"^0.2.6","@vercel/ncc":"^0.38.4","adm-zip":"^0.5.16","ci-info":"^4.3.1",commander:"^14.0.2",esbuild:"^0.25.11",eslint:"^9.38.0","git-format-staged":"3.1.1",husky:"^9.1.7","is-wsl":"^3.1.0",open:"^10.1.2",prettyjson:"^1.2.5",tmp:"^0.2.5","tus-js-client":"^4.3.1",typescript:"^5.9.3"}};async function Lh(t){try{let r=`https://registry.npmjs.org/${encodeURIComponent(t.toLowerCase())}`,n=await fetch(r,{headers:{accept:"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"}});return n.ok&&(await n.json())["dist-tags"]?.latest||null}catch{return null}}async function Ke(){let t=await Lh("@capgo/cli")??"",e=t?.split(".")[0];t!==Ri.version&&g.warning(`\u{1F6A8} You are using @capgo/cli@${Ri.version} it's not the latest version.
284
284
  Please use @capgo/cli@${t}" or @capgo/cli@${e} to keep up to date with the latest features and bug fixes.`)}async function NT(t,e,r,n,i,s="\u2705"){await ve(r,{channel:t,event:n,icon:s,user_id:e,...i?{tags:{"app-id":i}}:{},notify:!1})}var c0=require("node:buffer"),$T=require("node:crypto"),tY=(()=>{let t=[];for(let e=0;e<256;e++){let r=e;for(let n=0;n<8;n++)r=r&1?3988292384^r>>>1:r>>>1;t[e]=r}return t})();function rY(t){let e=4294967295;for(let r=0;r<t.length;r++){let n=t[r];e=tY[(e^n)&255]^e>>>8}return e=e^4294967295,(e>>>0).toString(16).padStart(8,"0")}async function Jn(t,e="sha256"){let r=c0.Buffer.isBuffer(t)?t:c0.Buffer.from(t);if(e==="crc32")return rY(r);let n=(0,$T.createHash)(e);return n.update(r),n.digest("hex")}var el=Oe(sM());async function oM(){let t=await(0,el.loadConfig)();return{config:t.app.extConfig,path:t.app.extConfigFilePath}}async function Ib(t,e,r=!1){let n=await(0,el.loadConfig)(),{extConfig:i}=n.app;i&&(i.plugins||(i.plugins={extConfig:{},[t]:{}}),i.plugins[t]||(i.plugins[t]={}),r?i=e.config:i.plugins[t]=e.config.plugins?.[t],(0,el.writeConfig)(i,n.app.extConfigFilePath))}async function Va(t,e=!1){await Ib("CapacitorUpdater",t,e)}var Xa=".capgo_key",Rr=".capgo_key_v2",$p=`${Xa}.pub`,di=`${Rr}.pub`,NM="https://capgo.app",$M="https://files.capgo.app",LM="https://api.capgo.app",jM="https://console.capgo.app",ev=12e4,Ele=1024*1024*20,ble=1024*1024*1024,vle=1024*1024*99,Lp="package.json",Ya=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-z-][0-9a-z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-z-][0-9a-z-]*))*))?(?:\+([0-9a-z-]+(?:\.[0-9a-z-]+)*))?$/i,W=t=>t?`
285
285
  ${UM.default.render(t)}`:"";function Rp(t){return new Promise(e=>{setTimeout(e,t)})}function Jr(t){return(0,rs.isMonorepo)(t)?(0,rs.findMonorepoRoot)(t):(0,rs.isNXMonorepo)(t)?(0,rs.findNXMonorepoRoot)(t):t}function _le(t=Jr((0,$n.cwd)()),e=void 0){let r=e?.split(",")[0];if(r&&!(0,Ye.existsSync)(r)){let i=`Package.json at ${r} does not exist`;throw g.error(i),new Error(i)}let n=(0,Ye.readFileSync)(r??(0,Xe.join)(t,Lp));return JSON.parse(n)}function ns(t=Jr((0,$n.cwd)()),e=void 0){return _le(t,e).version??""}function BM(t){let e=t.replace("^","").replace("~","");if(g_(e))try{let r=St(e);return vi(r)}catch{return e}return e}async function io(t,e=(0,$n.cwd)(),r){if(t!=="@capgo/capacitor-updater")return null;if(r)try{let o=(await il(e,r)).get(t);if(o)return o}catch{}let n=null,i=(0,Xe.join)(e,"ios","App","Podfile");if((0,Ye.existsSync)(i))try{let o=(0,Ye.readFileSync)(i,"utf-8").match(/pod\s+['"]CapgoCapacitorUpdater['"],\s*:path\s*=>\s*['"]([^'"]+)['"]/);o?.[1]&&(n=(0,Xe.resolve)((0,Xe.join)(e,"ios","App",o[1])))}catch{}if(!n){let s=(0,Xe.join)(e,"android","capacitor.settings.gradle");if((0,Ye.existsSync)(s))try{let a=(0,Ye.readFileSync)(s,"utf-8").match(/project\(':capgo-capacitor-updater'\)\.projectDir\s*=\s*new\s+File\(['"]([^'"]+)['"]/);a?.[1]&&(n=(0,Xe.resolve)((0,Xe.join)(e,"android",a[1])).replace(/\/android$/,""))}catch{}}if(n){let s=(0,Xe.join)(n,Lp);if((0,Ye.existsSync)(s))try{let o=JSON.parse((0,Ye.readFileSync)(s,"utf-8"));if(o.version)return o.version}catch{}}try{let o=(await il(e)).get(t);if(o)return o}catch{}return null}async function il(t=Jr((0,$n.cwd)()),e=void 0){let r=e?.split(",");if(r??=[(0,Xe.join)(t,Lp)],r){for(let i of r)if(!(0,Ye.existsSync)(i)){let s=`Package.json at ${i} does not exist`;throw g.error(s),new Error(s)}}let n=new Map;for(let i of r){let s=(0,Ye.readFileSync)(i),o=JSON.parse(s);for(let a in o.dependencies)n.set(a,BM(o.dependencies[a]));for(let a in o.devDependencies)n.set(a,BM(o.devDependencies[a]))}return n}async function de(){try{let t=await oM();if(!t){let e="No capacitor config file found, run `cap init` first";throw g.error(e),new Error(e)}return t}catch(t){let e=`No capacitor config file found, run \`cap init\` first ${W(t)}`;throw g.error(e),new Error(e)}}async function Cle(t,e){let r=await de();return r?.config&&(r.config.plugins??={},r.config.plugins.extConfig??={},r.config.plugins[t]??={},r.config.plugins[t]={...r.config.plugins[t],...e},await Ib(t,r)),r}async function HM(t){return Cle("CapacitorUpdater",t)}async function En(){try{let t=await de(),e={host:t?.config?.plugins?.CapacitorUpdater?.localHost||NM,hostWeb:t?.config?.plugins?.CapacitorUpdater?.localWebHost||jM,hostFilesApi:t?.config?.plugins?.CapacitorUpdater?.localApiFiles||$M,hostApi:t?.config?.plugins?.CapacitorUpdater?.localApi||LM};return t?.config?.plugins?.CapacitorUpdater?.localSupa&&t?.config?.plugins?.CapacitorUpdater?.localSupaAnon&&(g.info("Using custom supabase instance from capacitor.config.json"),e.supaKey=t?.config?.plugins?.CapacitorUpdater?.localSupaAnon,e.supaHost=t?.config?.plugins?.CapacitorUpdater?.localSupa),e}catch{return{host:NM,hostWeb:jM,hostFilesApi:$M,hostApi:LM}}}var Sle=/([A-Za-z0-9]+)\.(java|swift|kt|scala)$/;async function jp(){let t=await En();try{let e=await fetch(`${t.hostApi}/private/config`);if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return{...await e.json(),...t}}catch{return g.info(`Local config ${W(t)}`),t}}async function VM(){let t=await En();try{let e=await fetch(`${t.hostFilesApi}/files/config`);if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch{return{partialUpload:!1,TUSUpload:!1,partialUploadForced:!1,TUSUploadForced:!1,maxUploadLength:ble,maxChunkSize:vle,alertUploadSize:Ele}}}async function pe(t,e,r){let n=await jp();if(e&&r&&(g.info("Using custom supabase instance from provided options"),n.supaHost=e,n.supaKey=r),!n.supaHost||!n.supaKey)throw g.error("Cannot connect to server please try again later"),new Error("Cannot connect to server please try again later");return(0,Wa.createClient)(n.supaHost,n.supaKey,{auth:{persistSession:!1},global:{headers:{capgkey:t}}})}async function Ale(t,e,r){let{data:n}=await t.rpc("is_allowed_capgkey",{apikey:e,keymode:r}).single();if(!n){g.error("Invalid API key or insufficient permissions.");let s=`Your key should be: ${r.map((o,a)=>r.length===1?`"${o}"`:a===r.length-1?`or "${o}"`:`"${o}", `).join("")} mode.`;throw g.error(s),new Error("Invalid API key or insufficient permissions.")}}async function zM(t,e){let{data:r}=await t.rpc("is_paying_org",{orgid:e}).single();return r||!1}async function KM(t,e){let{data:r}=await t.rpc("is_trial_org",{orgid:e}).single();return r||0}async function Ole(t,e){let{data:r}=await t.rpc("is_allowed_action_org",{orgid:e}).single();return!!r}async function xle(t,e,r){let{data:n}=await t.rpc("is_allowed_action",{apikey:r,appid:e}).single();return!!n}var hr=(o=>(o[o.none=0]="none",o[o.read=1]="read",o[o.upload=2]="upload",o[o.write=3]="write",o[o.admin=4]="admin",o[o.super_admin=5]="super_admin",o))(hr||{}),Ja=(t,e)=>t>=e;async function GM(t,e,r){let{data:n,error:i}=await t.rpc("get_org_perm_for_apikey",{apikey:e,app_id:r}).single();if(i)throw g.error("Cannot get permissions for organization!"),console.error(i),new Error("Cannot get permissions for organization");if(n.includes("perm")){let a=null;switch(n){case"perm_none":{a=0;break}case"perm_read":{a=1;break}case"perm_upload":{a=2;break}case"perm_write":{a=3;break}case"perm_admin":{a=4;break}case"perm_owner":{a=5;break}default:throw n.includes("invite")?(g.info("Please accept/deny the organization invitation before trying to access the app"),new Error("Organization invitation pending")):(g.error(`Invalid output when fetching organization permission. Response: ${n}`),new Error(`Invalid output when fetching organization permission. Response: ${n}`))}return{okay:!0,data:a}}let o=null;switch(n){case"INVALID_APIKEY":{o="INVALID_APIKEY";break}case"NO_APP":{o="NO_APP";break}case"NO_ORG":{o="NO_ORG";break}default:throw g.error(`Invalid error when fetching organization permission. Response: ${n}`),new Error(`Invalid error when fetching organization permission. Response: ${n}`)}return{okay:!1,error:o}}async function WM(t,e,r){let{data:n,error:i}=await t.rpc("get_organization_cli_warnings",{orgid:e,cli_version:r});if(i){g.error(`Cannot get cli warnings: ${W(i)}`);return}if(n.length>0){g.warn(`Found ${n.length} cli warnings for your organization.`);let s=null;for(let o of n){if(typeof o!="object"||typeof o.message!="string"||typeof o.fatal!="boolean"){g.error(`Invalid cli warning: ${o}`);continue}let a=o;a.fatal?(g.error(`${a.message.replaceAll("\\n",`
286
286
  `)}`),s=new Error(a.message)):g.warn(`${a.message.replaceAll("\\n",`
@@ -317,7 +317,7 @@ ${W(s)}`),new Error(`Cannot retrieve unknown version for app ${e}: ${W(s)}`)}fun
317
317
  app_id,
318
318
  version (id, name)
319
319
  `).eq("app_id",e).order("created_at",{ascending:!1});if(i)throw r||g.error(`App ${e} not found in database`),new Error(`App ${e} not found in database: ${W(i)}`);return n}async function sv(t,e,r,n={}){let{silent:i=!1}=n,{error:s}=await t.from("app_versions").update({deleted:!0}).eq("app_id",e).eq("deleted",!1).eq("name",r);if(s){let o=`App version ${e}@${r} not found in database`;throw i||g.error(o),new Error(`${o}: ${W(s)}`)}}async function Hp(t,e,r,n={}){let{silent:i=!1,autoUnlink:s=!1}=n,o=await Rle(t,e,r,{silent:i});await o8(t,e,o,{silent:i,autoUnlink:s}),await sv(t,e,r,{silent:i})}function p8(t,e=!1){if(e)return;if(!t.length)throw new Error("No bundle found");let r=new Vt;r.theme=Vt.roundTheme,r.headers=["Version","Created","Keep"],r.rows=[];for(let n of t.toReversed())r.rows.push([n.name,Qa(n.created_at),n.keep??""]);g.success("Bundles"),g.success(r.toString())}async function Vp(t,e,r={}){let{silent:n=!1}=r,{data:i,error:s}=await t.from("app_versions").select().eq("app_id",e).eq("deleted",!1).order("created_at",{ascending:!1});if(s){let o=`App ${e} not found in database`;throw n||g.error(o),new Error(`${o}: ${W(s)}`)}return i??[]}async function m8(t,e,r={}){let{silent:n=!1}=r,{data:i,error:s}=await t.from("channels").select("version").eq("app_id",e);if(s){let o=`App ${e} not found in database`;throw n||g.error(o),new Error(`${o}: ${W(s)}`)}return(i??[]).map(o=>o.version)}async function Rle(t,e,r,n={}){let{silent:i=!1}=n,{data:s,error:o}=await t.from("app_versions").select().eq("app_id",e).eq("name",r).eq("deleted",!1).single();if(!s||o){let a=`App version ${e}@${r} doesn't exist`;throw i||g.error(a),new Error(`${a}${o?`: ${W(o)}`:""}`)}return s}var eu=require("node:fs");async function g8(t,e){let{data:r}=await t.rpc("exist_app_v2",{appid:e}).single();return!!r}async function Dt(t,e,r,n,i=!1){let s=Ln(),o=await GM(t,e,r);if(!o.okay)switch(o.error){case"INVALID_APIKEY":{let c="Invalid apikey, such apikey does not exists!";throw i||g.error(c),new Error(c)}case"NO_APP":{let c=`App ${r} does not exist, run first \`${s.runner} @capgo/cli app add ${r}\` to create it`;throw i||g.error(c),new Error(c)}case"NO_ORG":{let c="Could not find organization, please contact support to resolve this!";throw i||g.error(c),new Error(c)}}let a=o.data;if(n>a){let c=`Insuficcent permissions for app ${r}. Current permission: ${hr[o.data]}, required for this action: ${hr[n]}.`;throw i||g.error(c),new Error(c)}return o.data}var Zr="assets/icon.png";var kle=/^[a-z0-9]+(\.[\w-]+)+$/i;function Nle(t,e,r){if(!e.apikey)throw r||g.error("Missing API key, you need to provide an API key to upload your bundle"),new Error("Missing API key");if(!t)throw r||g.error("Missing argument, you need to provide a appId, or be in a capacitor project"),new Error("Missing appId");if(t.includes("--"))throw r||g.error('The app id includes illegal symbols. You cannot use "--" in the app id'),new Error("App id includes illegal symbols");if(!kle.test(t))throw r||(g.error(`Invalid app ID format: "${t}"`),g.info("App ID must be in reverse domain notation (e.g., com.example.app)"),g.info("Valid format: lowercase letters, numbers, dots, hyphens, and underscores"),g.info("Examples: com.mycompany.myapp, io.capgo.app, com.example.my-app")),new Error("Invalid app ID format")}async function $le(t,e,r){if(await g8(t,e))throw e==="io.ionic.starter"?(r||g.error(`This appId ${e} cannot be used it's reserved, please change it in your capacitor config.`),new Error("Reserved appId, please change it in capacitor config")):(r||g.error(`App ${e} already exist`),new Error(`App ${e} already exists`))}async function y8(t,e,r,n=!1){n||oe("Adding"),await Ke(),e.apikey=e.apikey||te();let i=await de(),s=Re(t,i?.config);Nle(s,e,n);let o=await pe(e.apikey,e.supaHost,e.supaAnon),a=await De(o,e.apikey,["write","all"]);await $le(o,s,n),r||(r=await qp(o,["admin","super_admin"]));let u=r.gid,{name:c,icon:l}=e;if(c=c||i.config?.appName||"Unknown",l=l||"resources/icon.png",!l||!c)throw n||g.error("Missing argument, you need to provide a appId and a name, or be in a capacitor project"),new Error("Missing app name or icon path");n||g.info(`Adding ${s} to Capgo`);let h=null,d=null;l&&(0,eu.existsSync)(l)?(h=(0,eu.readFileSync)(l),d=Za(l)||"image/png",n||g.warn(`Found app icon ${l}`)):(0,eu.existsSync)(Zr)?(h=(0,eu.readFileSync)(Zr),d=Za(Zr)||"image/png",n||g.warn(`Found app icon ${Zr}`)):n||g.warn(`Cannot find app icon in any of the following locations: ${l}, ${Zr}`);let f="icon",m="https://xvwzpoazmxkqosrdewyv.supabase.co/storage/v1/object/public/images/capgo.png";if(h&&d){let{error:E}=await o.storage.from(`images/org/${u}/${s}`).upload(f,h,{contentType:d});if(E)throw n||console.error(E),n||g.error(`Could not add app ${W(E)}`),new Error(`Could not add app ${W(E)}`);let{data:S}=await o.storage.from(`images/org/${u}/${s}`).getPublicUrl(f);m=S?.publicUrl||m}let{error:y}=await o.from("apps").insert({icon_url:m,owner_org:u,user_id:a,name:c,app_id:s});if(y)throw n||g.error(`Could not add app ${W(y)}`),new Error(`Could not add app ${W(y)}`);return n||(g.success(`App ${s} added to Capgo. You can upload a bundle now`),ce("Done \u2705")),{appId:s,organizationUid:u,userId:a,name:c,signedURL:m}}async function D8(t,e,r=!1,n=!1){r||oe("Deleting"),e.apikey=e.apikey||te();let i=await de(),s=Re(t,i?.config);if(!e.apikey)throw r||g.error("Missing API key, you need to provide an API key to upload your bundle"),new Error("Missing API key");if(!s)throw r||g.error("Missing argument, you need to provide a appId, or be in a capacitor project"),new Error("Missing appId");let o=await pe(e.apikey,e.supaHost,e.supaAnon),a=await De(o,e.apikey,["write","all"]);await Dt(o,e.apikey,s,5,r);let{data:u,error:c}=await o.from("apps").select("owner_org ( created_by, id )").eq("app_id",s).single(),l=u;if(!n&&!c&&(l?.owner_org.created_by??"")!==a){if(r)throw new Error("Cannot delete app: you are not the organization owner");{g.warn("Deleting the app is not recommended for users that are not the organization owner"),g.warn("You are invited as a super_admin but your are not the owner"),g.warn("It's strongly recommended that you do not continue!");let y=await Eo({message:"Do you want to continue?",options:[{label:"Yes",value:"yes"},{label:"No",value:"no"}]});if(Tt(y)||y==="no")throw g.error("Canceled deleting the app, exiting"),new Error("App deletion cancelled")}}else c&&!r&&g.warn(`Cannot get the app owner ${W(c)}`);let{error:h}=await o.storage.from("images").remove([`org/${l?.owner_org.id}/${s}/icon`]);h&&!r&&g.error("Could not delete app logo");let{error:d}=await o.storage.from(`apps/${s}/${a}`).remove(["versions"]);d&&!r&&g.error("Could not delete app version");let{error:f}=await o.from("apps").delete().eq("app_id",s);if(f)throw r||g.error("Could not delete app"),new Error(`Could not delete app: ${W(f)}`);let m=await Fr(o,s);return await ve(e.apikey,{channel:"app",event:"App Deleted",icon:"\u{1F5D1}\uFE0F",user_id:m,tags:{"app-id":s},notify:!1}).catch(()=>{}),r||(g.success("App deleted in Capgo"),ce("Done \u2705")),!0}var zp=require("node:os"),E8=require("node:process");async function w8(t){let e={},r=Object.keys(t);return(await Promise.all(r.map(i=>Lh(i)))).forEach((i,s)=>{i&&(e[r[s]]=i)}),e}async function Lle(){let t=await il(),e={"@capgo/cli":Ri.version};for(let[r,n]of t)(r.startsWith("@capgo/")||r.startsWith("@capawesome/")||r.startsWith("capacitor"))&&(e[r]=n);return e}async function b8(t,e=!1){e||g.warn(" \u{1F48A} Capgo Doctor \u{1F48A}");let r=await de(),n=ns("",t.packageJson),i=r?.config?.plugins?.CapacitorUpdater?.version||n,s=r?.config?.appName||"",o=Re("",r?.config),a=r?.config?.webDir||"";e||(g.info(` App Name: ${s}`),g.info(` App ID: ${o}`),g.info(` App Version: ${i}`),g.info(` Web Dir: ${a}`),g.info(` OS: ${(0,zp.platform)()} ${(0,zp.version)()}`),g.info(` Node: ${E8.version}`),g.info(" Installed Dependencies:"));let u=await Lle();if(Object.keys(u).length===0)throw e||g.warning("\x1B[31m%s\x1B[0m \u{1F6A8} No dependencies found"),new Error("No dependencies found");if(!e)for(let l of Object.keys(u))g.info(` ${l}: ${u[l]}`);let c={};if(e)c=await w8(u);else{let l=Ft();l.start("Running: Loading latest dependencies"),c=await w8(u),l.stop("Latest Dependencies:");for(let h of Object.keys(c))g.info(` ${h}: ${c[h]}`)}if(JSON.stringify(u)!==JSON.stringify(c))throw e||g.warn("\x1B[31m\u{1F6A8} Some dependencies are not up to date\x1B[0m"),new Error("Some dependencies are not up to date");return e||g.success("\x1B[32m\u2705 All dependencies are up to date\x1B[0m"),{appName:s,appId:o,appVersion:i,webDir:a,installedDependencies:u,latestDependencies:c}}function jle(t){let e=new Vt;e.headers=["Name","id","Created"],e.rows=[];for(let r of t.toReversed())e.rows.push([r.name??"",r.app_id,Qa(r.created_at)]);g.success("Apps"),g.success(e.toString())}async function Ble(t,e){let{data:r,error:n}=await t.from("apps").select().order("created_at",{ascending:!1});if(n)throw e||g.error("Apps not found"),new Error("Apps not found");return r??[]}async function v8(t,e=!1){e||oe("List apps in Capgo"),await Ke(),t.apikey=t.apikey||te();let r=await pe(t.apikey,t.supaHost,t.supaAnon);await De(r,t.apikey,["write","all","read","upload"]),e||g.info("Getting active bundle in Capgo");let n=await Ble(r,e);if(!n.length)throw e||g.error("No apps found"),new Error("No apps found");return e||(g.info(`Active app in Capgo: ${n.length}`),jle(n),ce("Done \u2705")),n}var _8=require("node:crypto"),tu=require("node:fs");async function C8(t,e,r=!1){r||oe("Set app"),e.apikey=e.apikey||te();let n=await de();if(t=Re(t,n?.config),!e.apikey)throw r||g.error("Missing API key, you need to provide an API key to upload your bundle"),new Error("Missing API key");if(!t)throw r||g.error("Missing argument, you need to provide a appId, or be in a capacitor project"),new Error("Missing appId");let i=await pe(e.apikey,e.supaHost,e.supaAnon),o=(await qp(i,["admin","super_admin"])).gid,a=await De(i,e.apikey,["write","all"]);await Dt(i,e.apikey,t,4,r);let{name:u,icon:c,retention:l}=e;if(l&&Number.isNaN(Number(l)))throw r||g.error("retention value must be a number"),new Error("Retention value must be a number");if(l&&l<0)throw r||g.error("retention value cannot be less than 0"),new Error("Retention value cannot be less than 0");if(l&&l>=63113904)throw r||g.error("retention value cannot be greater than 63113904 seconds (2 years)"),new Error("Retention value cannot be greater than 63113904 seconds (2 years)");let h,d,f=`icon_${(0,_8.randomUUID)()}`,m="https://xvwzpoazmxkqosrdewyv.supabase.co/storage/v1/object/public/images/capgo.png";if(c&&(0,tu.existsSync)(c)?(h=(0,tu.readFileSync)(c),d=Za(c)||"image/png",r||g.warn(`Found app icon ${c}`)):(0,tu.existsSync)(Zr)?(h=(0,tu.readFileSync)(Zr),d=Za(Zr)||"image/png",r||g.warn(`Found app icon ${Zr}`)):r||g.warn(`Cannot find app icon in any of the following locations: ${c}, ${Zr}`),h&&d){let{error:E}=await i.storage.from(`images/org/${o}/${t}`).upload(f,h,{contentType:d});if(E)throw r||g.error(`Could not set app ${W(E)}`),new Error(`Could not set app: ${W(E)}`);let{data:S}=await i.storage.from(`images/org/${o}/${t}`).getPublicUrl(f);m=S?.publicUrl||m}let{error:y}=await i.from("apps").update({icon_url:m,name:u,retention:l?l*24*60*60:void 0}).eq("app_id",t).eq("user_id",a);if(y)throw r||g.error(`Could not set app ${W(y)}`),new Error(`Could not set app: ${W(y)}`);return r||ce("Done \u2705"),!0}async function S8(t,e,r=!1){if(r||oe("Set a specific setting in capacitor config"),e.bool&&e.string)throw r||g.error("Bool and string CANNOT be set at the same time"),new Error("Bool and string cannot both be provided");if(!e.bool&&!e.string)throw r||g.error("You MUST provide either bool or string as the value"),new Error("Either bool or string value is required");if(e.bool&&e.bool!=="true"&&e.bool!=="false")throw r||g.error("Invalid bool"),new Error("Invalid bool value; expected true or false");try{let n=await de(),i=n.config,s=t.split(".");if(s.length===0)throw r||g.error("Invalid path"),new Error("Invalid config path");for(let a of s.slice(0,-1))Object.prototype.hasOwnProperty.call(i,a)||(i[a]={}),i=i[a];let o=e.bool?e.bool==="true":e.string;i[s.at(-1)]=o,await Va(n,!0),r||g.success(`Set "${t}" to "${o}"`)}catch(n){throw r||g.error(`Cannot set config in capacitor settings ${W(n)}`),new Error(`Cannot set capacitor config: ${W(n)}`)}r||ce("Done \u2705")}var x8=require("node:child_process"),is=require("node:fs/promises"),T8=require("node:os"),oo=require("node:path"),I8=Oe(require("node:process"));var Kp=require("node:fs/promises"),A8=require("node:os"),ov=require("node:path"),$e=require("node:process"),Mle=(0,ov.join)((0,A8.homedir)(),".capgo-credentials"),qle=(0,ov.join)(Mle,"credentials.json");async function Ule(){try{let t=await(0,Kp.readFile)(qle,"utf-8");return JSON.parse(t)}catch{return{}}}async function Hle(t){let e=await Ule();if(!t){let r=Object.keys(e);return r.length===0?null:e[r[0]]||null}return e[t]||null}function Vle(){let t={};return $e.env.BUILD_CERTIFICATE_BASE64&&(t.BUILD_CERTIFICATE_BASE64=$e.env.BUILD_CERTIFICATE_BASE64),$e.env.BUILD_PROVISION_PROFILE_BASE64&&(t.BUILD_PROVISION_PROFILE_BASE64=$e.env.BUILD_PROVISION_PROFILE_BASE64),$e.env.BUILD_PROVISION_PROFILE_BASE64_PROD&&(t.BUILD_PROVISION_PROFILE_BASE64_PROD=$e.env.BUILD_PROVISION_PROFILE_BASE64_PROD),$e.env.P12_PASSWORD&&(t.P12_PASSWORD=$e.env.P12_PASSWORD),$e.env.APPLE_KEY_ID&&(t.APPLE_KEY_ID=$e.env.APPLE_KEY_ID),$e.env.APPLE_ISSUER_ID&&(t.APPLE_ISSUER_ID=$e.env.APPLE_ISSUER_ID),$e.env.APPLE_KEY_CONTENT&&(t.APPLE_KEY_CONTENT=$e.env.APPLE_KEY_CONTENT),$e.env.APPLE_PROFILE_NAME&&(t.APPLE_PROFILE_NAME=$e.env.APPLE_PROFILE_NAME),$e.env.APP_STORE_CONNECT_TEAM_ID&&(t.APP_STORE_CONNECT_TEAM_ID=$e.env.APP_STORE_CONNECT_TEAM_ID),$e.env.ANDROID_KEYSTORE_FILE&&(t.ANDROID_KEYSTORE_FILE=$e.env.ANDROID_KEYSTORE_FILE),$e.env.KEYSTORE_KEY_ALIAS&&(t.KEYSTORE_KEY_ALIAS=$e.env.KEYSTORE_KEY_ALIAS),$e.env.KEYSTORE_KEY_PASSWORD&&(t.KEYSTORE_KEY_PASSWORD=$e.env.KEYSTORE_KEY_PASSWORD),$e.env.KEYSTORE_STORE_PASSWORD&&(t.KEYSTORE_STORE_PASSWORD=$e.env.KEYSTORE_STORE_PASSWORD),$e.env.PLAY_CONFIG_JSON&&(t.PLAY_CONFIG_JSON=$e.env.PLAY_CONFIG_JSON),t}async function O8(t,e,r){let n=await Hle(t),i=Vle(),s={...n?.[e]||{}};if(Object.assign(s,i),r&&Object.assign(s,r),e==="android"){let o=!!s.KEYSTORE_KEY_PASSWORD,a=!!s.KEYSTORE_STORE_PASSWORD;o&&!a?s.KEYSTORE_STORE_PASSWORD=s.KEYSTORE_KEY_PASSWORD:!o&&a&&(s.KEYSTORE_KEY_PASSWORD=s.KEYSTORE_STORE_PASSWORD)}return Object.keys(s).length>0?s:void 0}async function zle(t,e,r,n,i){if(!i)try{let s=await fetch(`${t}/build/logs/${e}?app_id=${encodeURIComponent(r)}`,{headers:{authorization:n}});if(!s.ok){g.warn("Could not stream logs, continuing...");return}let o=s.body?.getReader();if(!o)return;let a=new TextDecoder;for(;;){let{done:u,value:c}=await o.read();if(u)break;let h=a.decode(c,{stream:!0}).split(`
320
- `);for(let d of h)if(d.startsWith("data: ")){let f=d.slice(6);f.trim()&&g.error(f)}}}catch(s){i||g.warn(`Log streaming interrupted${s instanceof Error?`: ${s.message}`:""}`)}}async function Kle(t,e,r,n,i,s){let a=0;for(;a<120;)try{let u=await fetch(`${t}/build/status?job_id=${encodeURIComponent(e)}&app_id=${encodeURIComponent(r)}&platform=${n}`,{headers:{authorization:i}});if(!u.ok){s||g.warn(`Status check failed: ${u.status}`),await new Promise(l=>setTimeout(l,5e3)),a++;continue}let c=await u.json();if(c.status==="succeeded"||c.status==="failed")return c.status;await new Promise(l=>setTimeout(l,5e3)),a++}catch(u){s||g.warn(`Status check error: ${u}`),await new Promise(c=>setTimeout(c,5e3)),a++}return s||g.warn("Build status polling timed out"),"timeout"}async function Gle(t,e){return new Promise((r,n)=>{let s=(0,x8.spawn)("zip",["-rq",e,"."],{cwd:t,stdio:"inherit"});s.on("error",o=>{o.code==="ENOENT"?n(new Error("zip command not found. Please install zip utility.")):n(o)}),s.on("close",o=>{o===0?r():n(new Error(`zip process exited with code ${o}`))})})}async function F8(t,e,r=!1){let n=Date.now();try{e.apikey=e.apikey||te(r);let i=await de();if(t=t||i?.config.appId,!t)throw new Error("Missing argument, you need to provide a appId, or be in a capacitor project");let s=(0,oo.resolve)(e.path||I8.default.cwd()),o=await pe(e.apikey,e.supaHost,e.supaAnon);await De(o,e.apikey,["write","all"]);let a=await Fr(o,t);r||(g.info(`Requesting native build for ${t}`),g.info(`Platform: ${e.platform}`),g.info(`Project: ${s}`),g.info(`
320
+ `);for(let d of h)if(d.startsWith("data: ")){let f=d.slice(6);f.trim()&&g.error(f)}}}catch(s){i||g.warn(`Log streaming interrupted${s instanceof Error?`: ${s.message}`:""}`)}}async function Kle(t,e,r,n,i,s){let a=0;for(;a<120;)try{let u=await fetch(`${t}/build/status?job_id=${encodeURIComponent(e)}&app_id=${encodeURIComponent(r)}&platform=${n}`,{headers:{authorization:i}});if(!u.ok){s||g.warn(`Status check failed: ${u.status}`),await new Promise(l=>setTimeout(l,5e3)),a++;continue}let c=await u.json();if(c.status==="succeeded"||c.status==="failed")return c.status;await new Promise(l=>setTimeout(l,5e3)),a++}catch(u){s||g.warn(`Status check error: ${u}`),await new Promise(c=>setTimeout(c,5e3)),a++}return s||g.warn("Build status polling timed out"),"timeout"}async function Gle(t,e){return new Promise((r,n)=>{let s=(0,x8.spawn)("zip",["-rq",e,"."],{cwd:t,stdio:"inherit"});s.on("error",o=>{o.code==="ENOENT"?n(new Error("zip command not found. Please install zip utility.")):n(o)}),s.on("close",o=>{o===0?r():n(new Error(`zip process exited with code ${o}`))})})}async function F8(t,e,r=!1){let n=Date.now();try{e.apikey=e.apikey||te(r);let i=await de();if(t=t||i?.config.appId,!t)throw new Error("Missing argument, you need to provide a appId, or be in a capacitor project");if(!e.platform)throw new Error("Missing required argument: --platform <ios|android>");if(e.platform!=="ios"&&e.platform!=="android")throw new Error(`Invalid platform "${e.platform}". Must be "ios" or "android"`);let s=(0,oo.resolve)(e.path||I8.default.cwd()),o=await pe(e.apikey,e.supaHost,e.supaAnon);await De(o,e.apikey,["write","all"]);let a=await Fr(o,t);r||(g.info(`Requesting native build for ${t}`),g.info(`Platform: ${e.platform}`),g.info(`Project: ${s}`),g.info(`
321
321
  \u{1F512} Security: Credentials are never stored on Capgo servers`),g.info(" They are used only during build and deleted after (max 24h)"),g.info(` Builds sent directly to app stores - Capgo keeps nothing
322
322
  `));let u={};e.buildCertificateBase64&&(u.BUILD_CERTIFICATE_BASE64=e.buildCertificateBase64),e.buildProvisionProfileBase64&&(u.BUILD_PROVISION_PROFILE_BASE64=e.buildProvisionProfileBase64),e.buildProvisionProfileBase64Prod&&(u.BUILD_PROVISION_PROFILE_BASE64_PROD=e.buildProvisionProfileBase64Prod),e.p12Password&&(u.P12_PASSWORD=e.p12Password),e.appleKeyId&&(u.APPLE_KEY_ID=e.appleKeyId),e.appleIssuerId&&(u.APPLE_ISSUER_ID=e.appleIssuerId),e.appleKeyContent&&(u.APPLE_KEY_CONTENT=e.appleKeyContent),e.appleProfileName&&(u.APPLE_PROFILE_NAME=e.appleProfileName),e.appStoreConnectTeamId&&(u.APP_STORE_CONNECT_TEAM_ID=e.appStoreConnectTeamId),e.androidKeystoreFile&&(u.ANDROID_KEYSTORE_FILE=e.androidKeystoreFile),e.keystoreKeyAlias&&(u.KEYSTORE_KEY_ALIAS=e.keystoreKeyAlias);let c=!!e.keystoreKeyPassword,l=!!e.keystoreStorePassword;c&&!l?(u.KEYSTORE_KEY_PASSWORD=e.keystoreKeyPassword,u.KEYSTORE_STORE_PASSWORD=e.keystoreKeyPassword):!c&&l?(u.KEYSTORE_KEY_PASSWORD=e.keystoreStorePassword,u.KEYSTORE_STORE_PASSWORD=e.keystoreStorePassword):c&&l&&(u.KEYSTORE_KEY_PASSWORD=e.keystoreKeyPassword,u.KEYSTORE_STORE_PASSWORD=e.keystoreStorePassword),e.playConfigJson&&(u.PLAY_CONFIG_JSON=e.playConfigJson);let h=await O8(t,e.platform,Object.keys(u).length>0?u:void 0),d={app_id:t,platform:e.platform};if(!h)throw r||(g.error("\u274C No credentials found for this app and platform"),g.error(""),g.error("You must provide credentials via:"),g.error(" 1. CLI arguments (--apple-key-id, --p12-password, etc.)"),g.error(" 2. Environment variables (APPLE_KEY_ID, P12_PASSWORD, etc.)"),g.error(" 3. Saved credentials file:"),g.error(` npx @capgo/cli build credentials save --appId ${t} --platform ${e.platform}`),g.error(""),g.error("Documentation:"),g.error(" https://capgo.app/docs/cli/cloud-build/credentials/")),new Error("No credentials found. Please provide credentials before building.");let f=[];if(e.platform==="ios"?(h.BUILD_CERTIFICATE_BASE64||f.push("BUILD_CERTIFICATE_BASE64 (or --build-certificate-base64)"),h.P12_PASSWORD||f.push("P12_PASSWORD (or --p12-password)"),h.BUILD_PROVISION_PROFILE_BASE64||f.push("BUILD_PROVISION_PROFILE_BASE64 (or --build-provision-profile-base64)"),h.APPLE_KEY_ID||f.push("APPLE_KEY_ID (or --apple-key-id)"),h.APPLE_ISSUER_ID||f.push("APPLE_ISSUER_ID (or --apple-issuer-id)"),h.APPLE_KEY_CONTENT||f.push("APPLE_KEY_CONTENT (or --apple-key-content)"),h.APP_STORE_CONNECT_TEAM_ID||f.push("APP_STORE_CONNECT_TEAM_ID (or --apple-team-id)")):e.platform==="android"&&(h.ANDROID_KEYSTORE_FILE||f.push("ANDROID_KEYSTORE_FILE (or --android-keystore-file)"),h.KEYSTORE_KEY_ALIAS||f.push("KEYSTORE_KEY_ALIAS (or --keystore-key-alias)"),!h.KEYSTORE_KEY_PASSWORD&&!h.KEYSTORE_STORE_PASSWORD&&f.push("KEYSTORE_KEY_PASSWORD or KEYSTORE_STORE_PASSWORD (at least one password required)"),!h.PLAY_CONFIG_JSON&&!r&&g.warn("\u26A0\uFE0F PLAY_CONFIG_JSON not provided - build will succeed but cannot auto-upload to Play Store")),f.length>0){if(!r){g.error(`\u274C Missing required credentials for ${e.platform}:`),g.error("");for(let p of f)g.error(` \u2022 ${p}`);g.error(""),g.error("Provide credentials via:"),g.error(' 1. CLI arguments: npx @capgo/cli build request --platform ios --apple-id "..." --p12-password "..."'),g.error(' 2. Environment variables: export APPLE_ID="..." P12_PASSWORD="..."'),g.error(" 3. Saved credentials: npx @capgo/cli build credentials save --platform ios ..."),g.error(""),g.error("Documentation:"),g.error(` https://capgo.app/docs/cli/cloud-build/${e.platform}/`)}throw new Error(`Missing required credentials for ${e.platform}: ${f.join(", ")}`)}d.credentials=h,r||g.info("\u2713 Using credentials (merged from CLI args, env vars, and saved file)"),r||g.info("Requesting build from Capgo...");let m=e.supaHost||"https://api.capgo.app",y=await fetch(`${m}/build/request`,{method:"POST",headers:{"Content-Type":"application/json",authorization:e.apikey},body:JSON.stringify(d)});if(!y.ok){let p=await y.text();throw new Error(`Failed to request build: ${y.status} - ${p}`)}let E=await y.json();r||(g.success(`Build job created: ${E.job_id}`),g.info(`Status: ${E.status}`)),await ve(e.apikey,{channel:"native-builder",event:"Build requested",icon:"\u{1F3D7}\uFE0F",user_id:a,tags:{"app-id":t,platform:e.platform},notify:!1}).catch();let S=(0,oo.join)((0,T8.tmpdir)(),`capgo-build-${Date.now()}`);await(0,is.mkdir)(S,{recursive:!0});let A=(0,oo.join)(S,`${(0,oo.basename)(s)}.zip`);try{r||g.info(`Zipping project from ${s}...`),await Gle(s,A);let p=await(0,is.stat)(A),D=(p.size/1024/1024).toFixed(2);r||g.success(`Created zip: ${A} (${D} MB)`),r||g.info("Uploading to builder...");let w=await(0,is.readFile)(A),_=await fetch(E.upload_url,{method:"PUT",headers:{"Content-Type":"application/zip","Content-Length":String(p.size)},body:w});if(!_.ok){let I=await _.text();throw new Error(`Upload failed: ${_.status} - ${I}`)}r||g.success("Upload complete!"),r||g.info("Starting build job...");let P=await fetch(`${m}/build/start/${E.job_id}`,{method:"POST",headers:{"Content-Type":"application/json",authorization:e.apikey},body:JSON.stringify({app_id:t})});if(!P.ok){let I=await P.text();throw new Error(`Failed to start build: ${P.status} - ${I}`)}let b=await P.json();r||(g.success("Build started successfully!"),g.info(`Job ID: ${E.job_id}`),g.info(`Streaming build logs...
323
323
  `)),await zle(m,E.job_id,t,e.apikey,r);let k=await Kle(m,E.job_id,t,e.platform,e.apikey,r);r||(k==="succeeded"?g.success("Build completed successfully!"):k==="failed"?g.error("Build failed"):g.warn(`Build finished with status: ${k}`));let R=((Date.now()-n)/1e3).toFixed(2);return await ve(e.apikey,{channel:"native-builder",event:k==="succeeded"?"Build succeeded":"Build failed",icon:k==="succeeded"?"\u2705":"\u274C",user_id:a,tags:{"app-id":t,platform:e.platform,status:k||"unknown",time:R},notify:!1}).catch(),{success:k==="succeeded",jobId:E.job_id,uploadUrl:E.upload_url,status:k||b.status||E.status}}finally{await(0,is.rm)(S,{recursive:!0,force:!0})}}catch(i){let s=i instanceof Error?i.message:String(i);return r||g.error(s),{success:!1,error:s}}}async function Wle(t,e,r,n){for await(let i of t)n||g.warn(`Removing ${i.name} created on ${Qa(i.created_at)}`),await Hp(e,r,i.name)}function Xle(t,e,r){let n=[];for(let i of t??[]){let s=St(i.name);km(s,e)&&Nm(s,r)&&n.push(i)}return n}async function P8(t,e,r=!1){r||oe("Cleanup versions in Capgo"),await Ke(),e.apikey=e.apikey||te();let{bundle:n,keep:i=4}=e,s=e.force||!1,o=e.ignoreChannel||!1,a=await de();if(t=Re(t,a?.config),!e.apikey)throw r||g.error("Missing API key, you need to provide an API key to delete your app"),new Error("Missing API key");if(!t)throw r||g.error("Missing argument, you need to provide a appid, or be in a capacitor project"),new Error("Missing appId");let u=await pe(e.apikey,e.supaHost,e.supaAnon);await De(u,e.apikey,["write","all"]),await Dt(u,e.apikey,t,3,r),r||g.info("Querying all available versions in Capgo");let c=await Vp(u,t),l=await m8(u,t);if(r||g.info(`Total active versions in Capgo: ${c?.length??0}`),!c?.length)throw r||g.error("No versions found, aborting cleanup"),new Error("No versions found");if(n){let f=St(n),m=d_(f,"major");r||g.info(`Querying available versions in Capgo between ${vi(f)} and ${vi(m)}`),c=Xle(c,f,m),r||g.info(`Active versions in Capgo between ${vi(f)} and ${vi(m)}: ${c?.length??0}`)}let h=[],d=0;for(let f of c){let m=l.find(y=>y===f.id);d<i||m&&!o?(f.keep=m?"\u2705 (Linked to channel)":"\u2705",d+=1):(f.keep="\u274C",h.push(f))}if(!h.length)return r||g.warn("Nothing to be removed, aborting removal..."),{removed:0,kept:d};if(r||p8(c),!s){if(r)throw new Error("Cleanup requires force=true in SDK mode to prevent accidental deletions");{let f=await jr({message:"Do you want to continue removing the versions specified?"});if(Tt(f)||!f)throw g.warn("Not confirmed, aborting removal..."),new Error("Cleanup cancelled by user")}}return r||g.success("You have confirmed removal, removing versions now"),await Wle(h,u,t,r),r||ce("Done \u2705"),{removed:h.length,kept:d}}async function R8(t,e,r=!1){r||oe("Check compatibility");let n={...e,apikey:e.apikey||te()},i=await de(),s=Re(t,i?.config),o=n.channel;if(!o)throw r||g.error("Missing argument, you need to provide a channel"),new Error("Missing channel");if(!n.apikey)throw r||g.error("Missing API key, you need to provide an API key to upload your bundle"),new Error("Missing API key");if(!s)throw r||g.error("Missing argument, you need to provide an appId, or be in a capacitor project"),new Error("Missing appId");let a=await pe(n.apikey,n.supaHost,n.supaAnon);await De(a,n.apikey,["write","all","read","upload"]),await Dt(a,n.apikey,s,1,r);let u=await Up(a,s,o,n.packageJson,n.nodeModules);if(!r){let c=new Vt;c.headers=["Package","Local version","Remote version","Compatible"],c.theme=Vt.roundTheme,c.rows=[];let l=n.text?"Yes":"\u2705",h=n.text?"No":"\u274C";for(let d of u.finalCompatibility){let{name:f,localVersion:m,remoteVersion:y}=d,E=so(d)?l:h;c.rows.push([f,m,y,E])}g.success("Compatibility"),g.success(c.toString())}return{finalCompatibility:u.finalCompatibility}}var mi=require("node:fs");var ss=require("node:buffer"),Ut=require("node:crypto"),k8="aes-128-cbc",pi="base64",Gp=Ut.constants.RSA_PKCS1_PADDING;function Wp(t){let e=(0,Ut.randomBytes)(16),r=(0,Ut.randomBytes)(16),n=e.toString(pi),i=(0,Ut.privateEncrypt)({key:t,padding:Gp},r).toString(pi);return{sessionKey:r,ivSessionKey:`${n}:${i}`}}function ru(t,e,r){let[n]=r.split(":"),i=ss.Buffer.from(n,pi),s=(0,Ut.createCipheriv)(k8,e,i);return s.setAutoPadding(!0),ss.Buffer.concat([s.update(t),s.final()])}function N8(t,e,r){let[n,i]=e.split(":"),s=(0,Ut.publicDecrypt)({key:r,padding:Gp},ss.Buffer.from(i,pi)),o=ss.Buffer.from(n,pi),a=(0,Ut.createDecipheriv)(k8,s,o);return a.setAutoPadding(!0),ss.Buffer.concat([a.update(t),a.final()])}function nu(t,e){return(0,Ut.privateEncrypt)({key:e,padding:Gp},ss.Buffer.from(t,pi)).toString(pi)}function $8(t="pem",e=2048){let{publicKey:r,privateKey:n}=(0,Ut.generateKeyPairSync)("rsa",{modulusLength:e});return t==="pem"?{publicKey:r.export({type:"pkcs1",format:"pem"}),privateKey:n.export({type:"pkcs1",format:"pem"})}:{publicKey:r.export({type:"spki",format:"der"}).toString("base64"),privateKey:n.export({type:"pkcs1",format:"pem"}).toString("base64")}}function L8(t,e){return(0,Ut.publicDecrypt)({key:e,padding:Gp},ss.Buffer.from(t,pi)).toString(pi)}function Yle(t,e){let r=t.key||di,n=e.config.plugins?.CapacitorUpdater?.publicKey;return(0,mi.existsSync)(r)?n=(0,mi.readFileSync)(r,"utf8"):!n&&t.keyData&&(n=t.keyData),{publicKey:n,fallbackKeyPath:r}}async function j8(t,e,r,n=!1){n||oe("Decrypt zip file");try{if(await Ke(),!(0,mi.existsSync)(t)){let h=`Zip not found at the path ${t}`;throw n||g.error(h),new Error(h)}let i=await de();if(!r.key&&!(0,mi.existsSync)(di)&&!i.config.plugins?.CapacitorUpdater?.privateKey){let h=`Private Key not found at the path ${di} or in ${i.path}`;throw n||g.error(h),new Error(h)}let{publicKey:s,fallbackKeyPath:o}=Yle(r,i);if(!s){let h=`Cannot find public key ${o} or as keyData option or in ${i.path}`;throw n||g.error(h),new Error(h)}let a=(0,mi.readFileSync)(t),u=N8(a,e,r.keyData??s),c=`${t}_decrypted.zip`;(0,mi.writeFileSync)(c,u),n||g.info(`Decrypted zip file at ${c}`);let l;if(r.checksum){let h=await Jn(u,"sha256"),d=L8(r.checksum,r.keyData??s);if(l=h===d,!l){let f=`Checksum does not match ${h} !== ${d}`;throw n||g.error(f),new Error(f)}n||g.info("Checksum matches")}return n||ce("\u2705 done"),{outputPath:c,checksumMatches:l}}catch(i){throw n||g.error(`Error decrypting zip file ${W(i)}`),i instanceof Error?i:new Error(String(i))}}async function B8(t,e,r,n=!1){n||oe("Delete bundle"),r.apikey=r.apikey||te();let i=await de();if(e=Re(e,i?.config),!r.apikey)throw n||g.error("Missing API key, you need to provide an API key to upload your bundle"),new Error("Missing API key");if(!e)throw n||g.error("Missing argument, you need to provide a appId, or be in a capacitor project"),new Error("Missing appId");if(!t)throw n||g.error("Missing argument, you need to provide a bundleId, or be in a capacitor project"),new Error("Missing bundleId");let s=await pe(r.apikey,r.supaHost,r.supaAnon);return await De(s,r.apikey,["write","all"]),await Dt(s,r.apikey,e,3,n),n||(g.info(`Deleting bundle ${e}@${t} from Capgo`),g.info("Keep in mind that you will not be able to reuse this bundle version, it's gone forever")),await Hp(s,e,t),n||(g.success(`Bundle ${e}@${t} deleted in Capgo`),ce("Done")),!0}var gi=require("node:fs");function sl(t){console.error(W(t))}async function M8(t,e,r,n=!1){let{json:i}=r,s=!i&&!n;s&&(oe("Encryption"),await Ke());try{let o=await de(),a=!!o.config.plugins?.CapacitorUpdater?.privateKey,u=!!o.config.plugins?.CapacitorUpdater?.publicKey;if(a&&s&&g.warning("There is still a privateKey in the config"),!(0,gi.existsSync)(t)){let S=`Zip not found at the path ${t}`;throw n||(i?sl({error:"zip_not_found"}):g.error(`Error: ${S}`)),new Error(S)}if(!u)throw n||(i?sl({error:"missing_public_key"}):g.warning("Warning: Missing Public Key in config")),new Error("Missing public key in config");let c=r.key||Rr,l=r.keyData||"";if(!(0,gi.existsSync)(c)&&!l)throw n||(i?sl({error:"missing_key"}):(g.warning(`Cannot find a private key at ${c} or as a keyData option`),g.error("Error: Missing key"))),new Error("Missing private key");if((0,gi.existsSync)(c)&&(l=(0,gi.readFileSync)(c,"utf8")),l&&!l.startsWith("-----BEGIN RSA PRIVATE KEY-----"))throw n||(i?sl({error:"invalid_private_key"}):g.error("The private key provided is not a valid RSA Private key")),new Error("Invalid private key format");let h=(0,gi.readFileSync)(t),{sessionKey:d,ivSessionKey:f}=Wp(l),m=ru(h,d,f),y=nu(e,l),E=`${t}_encrypted.zip`;return(0,gi.writeFileSync)(E,m),n||(i?console.log(JSON.stringify({checksum:y,filename:E,ivSessionKey:f},null,2)):(g.success(`Encoded Checksum: ${y}`),g.success(`ivSessionKey: ${f}`),g.success(`Encrypted zip saved at ${E}`),ce("Done \u2705"))),{checksum:y,filename:E,ivSessionKey:f}}catch(o){throw n||(r.json?sl(o):g.error(`Error encrypting zip file ${W(o)}`)),o instanceof Error?o:new Error(String(o))}}var dq=require("node:crypto"),go=require("node:fs"),Fv=require("node:process");var Xp=class extends TransformStream{outChunkSize;constructor(e){let r=new Uint8Array(e),n=0;super({transform(i,s){let o=0;for(;o<i.length;){let a=e-n,u=Math.min(a,i.length-o);r.set(i.subarray(o,o+u),n),o+=u,n+=u,n===e&&(s.enqueue(r),r=new Uint8Array(e),n=0)}},flush(i){n>0&&i.enqueue(r.subarray(0,n))}}),this.outChunkSize=e}};function os(t){return t=t.trim(),t=t.replace(/<!--[\s\S]*?-->/g,""),e();function e(){return{declaration:r(),root:n()}}function r(){if(!u(/^<\?xml\s*/))return;let d={attributes:{}};for(;!(c()||l("?>"));){let f=s();if(!f)return d;d.attributes[f.name]=f.value}return u(/\?>\s*/),d}function n(){let h=u(/^<([\w-:.]+)\s*/);if(!h)return;let d={name:h[1],attributes:{},children:[]};for(;!(c()||l(">")||l("?>")||l("/>"));){let m=s();if(!m)return d;d.attributes[m.name]=m.value}if(u(/^\s*\/>\s*/))return d;u(/\??>\s*/),d.content=i();let f;for(;f=n();)d.children.push(f);return u(/^<\/[\w-:.]+>\s*/),d}function i(){let h=u(/^([^<]*)/);return h?a(h[1]):""}function s(){let h=u(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/);if(h)return{name:h[1],value:a(o(h[2]))}}function o(h){return h.replace(/^['"]|['"]$/g,"")}function a(h){return h.replaceAll("&lt;","<").replaceAll("&gt;",">").replaceAll("&amp;","&")}function u(h){let d=t.match(h);if(d)return t=t.slice(d[0].length),d}function c(){return t.length===0}function l(h){return t.startsWith(h)}}var jn=class extends Error{};var Jt=class extends jn{},ol=class extends jn{},Yp=class extends jn{bucketName;constructor(e){super(`Invalid bucket name: ${e}`),this.bucketName=e}},Bn=class extends jn{objectName;constructor(e){super(`Invalid object name: ${e}`),this.objectName=e}},as=class extends jn{constructor(){super("accessKey is required")}},iu=class extends jn{constructor(){super("secretKey is required")}},al=class extends jn{constructor(){super("expirySeconds cannot be less than 1 second or more than 7 days")}},yi=class extends jn{statusCode;code;key;bucketName;resource;region;constructor(e,r,n,i={}){super(n),this.statusCode=e,this.code=r,this.key=i.key,this.bucketName=i.bucketName,this.resource=i.resource,this.region=i.region}};async function q8(t){try{let r=os(await t.text()).root;if(r?.name!=="Error")throw new Error("Invalid root, expected <Error>");let n=r.children.find(c=>c.name==="Code")?.content??"UnknownErrorCode",i=r.children.find(c=>c.name==="Message")?.content??"The error message could not be determined.",s=r.children.find(c=>c.name==="Key")?.content,o=r.children.find(c=>c.name==="BucketName")?.content,a=r.children.find(c=>c.name==="Resource")?.content,u=r.children.find(c=>c.name==="Region")?.content;return new yi(t.status,n,i,{key:s,bucketName:o,resource:a,region:u})}catch{return new yi(t.status,"UnrecognizedError",`Error: Unexpected response code ${t.status} ${t.statusText}. Unable to parse response as XML.`)}}function U8(t){return typeof t!="number"||isNaN(t)?!1:t>=1&&t<=65535}function H8(t){return typeof t!="string"||t.length<3||t.length>63||t.includes("..")||t.match(/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/)?!1:!!t.match(/^[a-z0-9][a-z0-9.-]+[a-z0-9]$/)}function us(t){return!(!Jle(t)||t.length===0)}function Jle(t){return!(typeof t!="string"||t.length>1024)}function ul(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}function ao(t=""){let e={'"':"","&quot;":"","&#34;":"","&QUOT;":"","&#x00022":""};return t.replace(/^("|&quot;|&#34;)|("|&quot;|&#34;)$/g,r=>e[r])}function uv(t){return t.get("x-amz-version-id")??null}function uo(t){let e=t.toISOString();return e.slice(0,4)+e.slice(5,7)+e.slice(8,13)+e.slice(14,16)+e.slice(17,19)+"Z"}function cv(t){return uo(t).slice(0,8)}function lv(t,e){return`${cv(e)}/${t}/s3/aws4_request`}async function Jp(t){return t instanceof Uint8Array||(t=new TextEncoder().encode(t)),ul(new Uint8Array(await crypto.subtle.digest("SHA-256",t)))}var Zle=["x-amz-server-side-encryption-customer-algorithm","x-amz-server-side-encryption-customer-key","x-amz-server-side-encryption-customer-key-MD5"],Zp=class extends WritableStream{getResult;constructor({client:e,bucketName:r,objectName:n,partSize:i,metadata:s}){let o,a=1,u,c=[],l,h=[];super({start(){},async write(d,f){let y=a++;try{if(y==1&&d.length<i){let A=await e.makeRequest({method:"PUT",headers:new Headers({...s,"Content-Length":String(d.length)}),bucketName:r,objectName:n,payload:d});o={etag:ao(A.headers.get("etag")??void 0),versionId:uv(A.headers)};return}y===1&&(u=(await Qle({client:e,bucketName:r,objectName:n,metadata:s})).uploadId);let E={"Content-Length":String(d.length)};for(let A of Zle){let p=s[A];p&&(E[A]=p)}let S=e.makeRequest({method:"PUT",query:{partNumber:y.toString(),uploadId:u},headers:new Headers(E),bucketName:r,objectName:n,payload:d}).then(A=>{let p=A.headers.get("etag")??"";return p&&(p=p.replace(/^"/,"").replace(/"$/,"")),c.push({part:y,etag:p}),A});h.push(S.catch(A=>{l||(l=A)}))}catch(E){throw E}},async close(){if(!o)if(u){if(await Promise.all(h),l)throw l;c.sort((d,f)=>d.part>f.part?1:-1),o=await efe({client:e,bucketName:r,objectName:n,uploadId:u,etags:c})}else throw new Error("Stream was closed without uploading any data.")}}),this.getResult=()=>{if(o===void 0)throw new Error("Result is not ready. await the stream first.");return o}}};async function Qle(t){let e="POST",r=new Headers(t.metadata),s=await(await t.client.makeRequest({method:e,bucketName:t.bucketName,objectName:t.objectName,query:"uploads",headers:r,returnBody:!0})).text(),o=os(s).root;if(!o||o.name!=="InitiateMultipartUploadResult")throw new Error(`Unexpected response: ${s}`);let a=o.children.find(u=>u.name==="UploadId")?.content;if(!a)throw new Error(`Unable to get UploadId from response: ${s}`);return{uploadId:a}}async function efe({client:t,bucketName:e,objectName:r,uploadId:n,etags:i}){let s=`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capgo/cli",
3
- "version": "7.33.0",
3
+ "version": "7.33.1",
4
4
  "description": "A CLI to upload to capgo servers",
5
5
  "author": "Martin martin@capgo.app",
6
6
  "license": "Apache 2.0",