@capgo/cli 7.49.0 → 7.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +3 -3
- package/dist/package.json +1 -1
- package/dist/src/build/request.d.ts.map +1 -1
- package/dist/src/sdk.js +3 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -104,7 +104,7 @@ const config: CapacitorConfig = ${(0,i5.formatJSObject)(t)};
|
|
|
104
104
|
export default config;
|
|
105
105
|
`}});function C5(){try{return sg.default.statSync("/.dockerenv"),!0}catch{return!1}}function E5(){try{return sg.default.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}function ug(){return ag===void 0&&(ag=C5()||E5()),ag}var sg,ag,jx=Ze(()=>{sg=fe(require("node:fs"),1)});function Qi(){return cg===void 0&&(cg=_5()||ug()),cg}var Ux,cg,_5,lg=Ze(()=>{Ux=fe(require("node:fs"),1);jx();_5=()=>{try{return Ux.default.statSync("/run/.containerenv"),!0}catch{return!1}}});var fg,qx,Hx,Mx,ln,dg=Ze(()=>{fg=fe(require("node:process"),1),qx=fe(require("node:os"),1),Hx=fe(require("node:fs"),1);lg();Mx=()=>{if(fg.default.platform!=="linux")return!1;if(qx.default.release().toLowerCase().includes("microsoft"))return!Qi();try{return Hx.default.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft")?!Qi():!1}catch{return!1}},ln=fg.default.env.__IS_WSL_TEST__?Mx:Mx()});var pg,Vx,zx,Kx,S5,hg,tr,mg=Ze(()=>{pg=fe(require("node:process"),1),Vx=require("node:buffer"),zx=require("node:util"),Kx=fe(require("node:child_process"),1),S5=(0,zx.promisify)(Kx.default.execFile),hg=()=>`${pg.default.env.SYSTEMROOT||pg.default.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`,tr=async(t,e={})=>{let{powerShellPath:r,...n}=e,o=tr.encodeCommand(t);return S5(r??hg(),[...tr.argumentsPrefix,o],{encoding:"utf8",...n})};tr.argumentsPrefix=["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand"];tr.encodeCommand=t=>Vx.Buffer.from(t,"utf16le").toString("base64");tr.escapeArgument=t=>`'${String(t).replaceAll("'","''")}'`});var Wx,Yx,ko,x5,A5,O5,Il,Gx,Jx,Xx,Zx,Qx=Ze(()=>{Wx=require("node:util"),Yx=fe(require("node:child_process"),1),ko=fe(require("node:fs/promises"),1);dg();mg();dg();x5=(0,Wx.promisify)(Yx.default.execFile),A5=(()=>{let t="/mnt/",e;return async function(){if(e)return e;let r="/etc/wsl.conf",n=!1;try{await ko.default.access(r,ko.constants.F_OK),n=!0}catch{}if(!n)return t;let o=await ko.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}})(),O5=async()=>`${await A5()}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`,Il=ln?O5:hg,Jx=async()=>(Gx??=(async()=>{try{let t=await Il();return await ko.default.access(t,ko.constants.X_OK),!0}catch{return!1}})(),Gx),Xx=async()=>{let t=await Il(),e=String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`,{stdout:r}=await tr(e,{powerShellPath:t});return r.trim()},Zx=async t=>{if(/^[a-z]+:\/\//i.test(t))return t;try{let{stdout:e}=await x5("wslpath",["-aw",t],{encoding:"utf8"});return e.trim()}catch{return t}}});function Po(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 eA=Ze(()=>{});async function gg(){if(rA.default.platform!=="darwin")throw new Error("macOS only");let{stdout:t}=await F5("defaults",["read","com.apple.LaunchServices/com.apple.launchservices.secure","LSHandlers"]),r=/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec(t)?.groups.id??"com.apple.Safari";return r==="com.apple.safari"?"com.apple.Safari":r}var tA,rA,nA,F5,oA=Ze(()=>{tA=require("node:util"),rA=fe(require("node:process"),1),nA=require("node:child_process"),F5=(0,tA.promisify)(nA.execFile)});async function sA(t,{humanReadableOutput:e=!0,signal:r}={}){if(iA.default.platform!=="darwin")throw new Error("macOS only");let n=e?[]:["-ss"],o={};r&&(o.signal=r);let{stdout:i}=await k5("osascript",["-e",t,n],o);return i.trim()}var iA,aA,yg,k5,uA=Ze(()=>{iA=fe(require("node:process"),1),aA=require("node:util"),yg=require("node:child_process"),k5=(0,aA.promisify)(yg.execFile)});async function Dg(t){return sA(`tell application "Finder" to set app_path to application file id "${t}" as string
|
|
106
106
|
tell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`)}var cA=Ze(()=>{uA()});async function wg(t=P5){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 Tl(`Cannot find Windows browser in stdout: ${JSON.stringify(e)}`);let{id:n}=r.groups,o=dA[n];if(!o)throw new Tl(`Unknown browser ID: ${n}`);return o}var lA,fA,P5,dA,bg,Tl,vg=Ze(()=>{lA=require("node:util"),fA=require("node:child_process"),P5=(0,lA.promisify)(fA.execFile),dA={MSEdgeHTM:{name:"Edge",id:"com.microsoft.edge"},MSEdgeBHTML:{name:"Edge Beta",id:"com.microsoft.edge.beta"},MSEdgeDHTML:{name:"Edge Dev",id:"com.microsoft.edge.dev"},AppXq0fevzme2pys62n3e0fbqa7peapykr8v:{name:"Edge",id:"com.microsoft.edge.old"},ChromeHTML:{name:"Chrome",id:"com.google.chrome"},ChromeBHTML:{name:"Chrome Beta",id:"com.google.chrome.beta"},ChromeDHTML:{name:"Chrome Dev",id:"com.google.chrome.dev"},ChromiumHTM:{name:"Chromium",id:"org.chromium.Chromium"},BraveHTML:{name:"Brave",id:"com.brave.Browser"},BraveBHTML:{name:"Brave Beta",id:"com.brave.Browser.beta"},BraveDHTML:{name:"Brave Dev",id:"com.brave.Browser.dev"},BraveSSHTM:{name:"Brave Nightly",id:"com.brave.Browser.nightly"},FirefoxURL:{name:"Firefox",id:"org.mozilla.firefox"},OperaStable:{name:"Opera",id:"com.operasoftware.Opera"},VivaldiHTM:{name:"Vivaldi",id:"com.vivaldi.Vivaldi"},"IE.HTTP":{name:"Internet Explorer",id:"com.microsoft.ie"}},bg=new Map(Object.entries(dA)),Tl=class extends Error{}});async function Cg(){if(Rl.default.platform==="darwin"){let t=await gg();return{name:await Dg(t),id:t}}if(Rl.default.platform==="linux"){let{stdout:t}=await $5("xdg-mime",["query","default","x-scheme-handler/http"]),e=t.trim();return{name:I5(e.replace(/.desktop$/,"").replace("-"," ")),id:e}}if(Rl.default.platform==="win32")return wg();throw new Error("Only macOS, Linux, and Windows are supported")}var pA,Rl,hA,$5,I5,mA=Ze(()=>{pA=require("node:util"),Rl=fe(require("node:process"),1),hA=require("node:child_process");oA();cA();vg();vg();$5=(0,pA.promisify)(hA.execFile),I5=t=>t.toLowerCase().replaceAll(/(?:^|\s|-)\S/g,e=>e.toUpperCase())});var Bl,T5,gA,yA=Ze(()=>{Bl=fe(require("node:process"),1),T5=!!(Bl.default.env.SSH_CONNECTION||Bl.default.env.SSH_CLIENT||Bl.default.env.SSH_TTY),gA=T5});var xg={};Jr(xg,{apps:()=>$o,default:()=>N5,openApp:()=>B5});function vA(t){if(typeof t=="string"||Array.isArray(t))return t;let{[bA]:e}=t;if(!e)throw new Error(`${bA} is not supported`);return e}function Fs({[ea]:t},{wsl:e}={}){if(e&&ln)return vA(e);if(!t)throw new Error(`${ea} is not supported`);return vA(t)}var _g,Sg,EA,_A,Ll,CA,Nl,Eg,DA,ea,bA,wA,Os,R5,B5,$o,N5,Ag=Ze(()=>{_g=fe(require("node:process"),1),Sg=fe(require("node:path"),1),EA=require("node:url"),_A=fe(require("node:child_process"),1),Ll=fe(require("node:fs/promises"),1);Qx();mg();eA();mA();lg();yA();CA={},Nl=Symbol("fallbackAttempt"),Eg=CA.url?Sg.default.dirname((0,EA.fileURLToPath)(CA.url)):"",DA=Sg.default.join(Eg,"xdg-open"),{platform:ea,arch:bA}=_g.default,wA=async(t,e)=>{if(t.length===0)return;let r=[];for(let n of t)try{return await e(n)}catch(o){r.push(o)}throw new AggregateError(r,"Failed to open in all supported apps")},Os=async t=>{t={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...t};let e=t[Nl]===!0;if(delete t[Nl],Array.isArray(t.app))return wA(t.app,c=>Os({...t,app:c,[Nl]:!0}));let{name:r,arguments:n=[]}=t.app??{};if(n=[...n],Array.isArray(r))return wA(r,c=>Os({...t,app:{name:c,arguments:n},[Nl]:!0}));if(r==="browser"||r==="browserPrivate"){let c={"com.google.chrome":"chrome","google-chrome.desktop":"chrome","com.brave.browser":"brave","org.mozilla.firefox":"firefox","firefox.desktop":"firefox","com.microsoft.msedge":"edge","com.microsoft.edge":"edge","com.microsoft.edgemac":"edge","microsoft-edge.desktop":"edge","com.apple.safari":"safari"},f={chrome:"--incognito",brave:"--incognito",firefox:"--private-window",edge:"--inPrivate"},d;if(ln){let p=await Xx();d=bg.get(p)??{}}else d=await Cg();if(d.id in c){let p=c[d.id.toLowerCase()];if(r==="browserPrivate"){if(p==="safari")throw new Error("Safari doesn't support opening in private mode via command line");n.push(f[p])}return Os({...t,app:{name:$o[p],arguments:n}})}throw new Error(`${d.name} is not supported as a default browser`)}let o,i=[],a={},s=!1;if(ln&&!Qi()&&!gA&&!r&&(s=await Jx()),ea==="darwin")o="open",t.wait&&i.push("--wait-apps"),t.background&&i.push("--background"),t.newInstance&&i.push("--new"),r&&i.push("-a",r);else if(ea==="win32"||s){o=await Il(),i.push(...tr.argumentsPrefix),ln||(a.windowsVerbatimArguments=!0),ln&&t.target&&(t.target=await Zx(t.target));let c=["$ProgressPreference = 'SilentlyContinue';","Start"];t.wait&&c.push("-Wait"),r?(c.push(tr.escapeArgument(r)),t.target&&n.push(t.target)):t.target&&c.push(tr.escapeArgument(t.target)),n.length>0&&(n=n.map(f=>tr.escapeArgument(f)),c.push("-ArgumentList",n.join(","))),t.target=tr.encodeCommand(c.join(" ")),t.wait||(a.stdio="ignore")}else{if(r)o=r;else{let c=!Eg||Eg==="/",f=!1;try{await Ll.default.access(DA,Ll.constants.X_OK),f=!0}catch{}o=_g.default.versions.electron??(ea==="android"||c||!f)?"xdg-open":DA}n.length>0&&i.push(...n),t.wait||(a.stdio="ignore",a.detached=!0)}ea==="darwin"&&n.length>0&&i.push("--args",...n),t.target&&i.push(t.target);let u=_A.default.spawn(o,i,a);return t.wait?new Promise((c,f)=>{u.once("error",f),u.once("close",d=>{if(!t.allowNonzeroExitCode&&d!==0){f(new Error(`Exited with code ${d}`));return}c(u)})}):e?new Promise((c,f)=>{u.once("error",f),u.once("spawn",()=>{u.once("close",d=>{if(u.off("error",f),d!==0){f(new Error(`Exited with code ${d}`));return}u.unref(),c(u)})})}):(u.unref(),new Promise((c,f)=>{u.once("error",f),u.once("spawn",()=>{u.off("error",f),c(u)})}))},R5=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a `target`");return Os({...e,target:t})},B5=(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 Os({...e,app:{name:t,arguments:r}})};$o={browser:"browser",browserPrivate:"browserPrivate"};Po($o,"chrome",()=>Fs({darwin:"google chrome",win32:"chrome",linux:["google-chrome","google-chrome-stable","chromium","chromium-browser"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe",x64:["/mnt/c/Program Files/Google/Chrome/Application/chrome.exe","/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe"]}}));Po($o,"brave",()=>Fs({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"]}}));Po($o,"firefox",()=>Fs({darwin:"firefox",win32:String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,linux:"firefox"},{wsl:"/mnt/c/Program Files/Mozilla Firefox/firefox.exe"}));Po($o,"edge",()=>Fs({darwin:"microsoft edge",win32:"msedge",linux:["microsoft-edge","microsoft-edge-dev"]},{wsl:"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"}));Po($o,"safari",()=>Fs({darwin:"Safari"}));N5=R5});var df=x(vr=>{"use strict";vr.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;vr.find=(t,e)=>t.nodes.find(r=>r.type===e);vr.exceedsLimit=(t,e,r=1,n)=>n===!1||!vr.isInteger(t)||!vr.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=n;vr.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)};vr.encloseBrace=t=>t.type!=="brace"?!1:t.commas>>0+t.ranges>>0===0?(t.invalid=!0,!0):!1;vr.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;vr.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;vr.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);vr.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 pf=x((uX,oO)=>{"use strict";var nO=df();oO.exports=(t,e={})=>{let r=(n,o={})=>{let i=e.escapeInvalid&&nO.isInvalidBrace(o),a=n.invalid===!0&&e.escapeInvalid===!0,s="";if(n.value)return(i||a)&&nO.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 aO=x((cX,iO)=>{"use strict";iO.exports=function(t){return typeof t=="number"?t-t===0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var mO=x((lX,hO)=>{"use strict";var sO=aO(),qo=(t,e,r)=>{if(sO(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(sO(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(qo.cache.hasOwnProperty(u))return qo.cache[u].result;let c=Math.min(t,e),f=Math.max(t,e);if(Math.abs(c-f)===1){let y=t+"|"+e;return n.capture?`(${y})`:n.wrap===!1?y:`(?:${y})`}let d=pO(t)||pO(e),p={min:t,max:e,a:c,b:f},h=[],m=[];if(d&&(p.isPadded=d,p.maxLen=String(p.max).length),c<0){let y=f<0?Math.abs(f):1;m=uO(y,Math.abs(c),p,n),c=p.a=0}return f>=0&&(h=uO(c,f,p,n)),p.negatives=m,p.positives=h,p.result=kM(m,h,n),n.capture===!0?p.result=`(${p.result})`:n.wrap!==!1&&h.length+m.length>1&&(p.result=`(?:${p.result})`),qo.cache[u]=p,p.result};function kM(t,e,r){let n=Zg(t,e,"-",!1,r)||[],o=Zg(e,t,"",!1,r)||[],i=Zg(t,e,"-?",!0,r)||[];return n.concat(i).concat(o).join("|")}function PM(t,e){let r=1,n=1,o=lO(t,r),i=new Set([e]);for(;t<=o&&o<=e;)i.add(o),r+=1,o=lO(t,r);for(o=fO(e+1,n)-1;t<o&&o<=e;)i.add(o),n+=1,o=fO(e+1,n)-1;return i=[...i],i.sort(TM),i}function $M(t,e,r){if(t===e)return{pattern:t,count:[],digits:0};let n=IM(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+=RM(u,c,r):a++}return a&&(i+=r.shorthand===!0?"\\d":"[0-9]"),{pattern:i,count:[a],digits:o}}function uO(t,e,r,n){let o=PM(t,e),i=[],a=t,s;for(let u=0;u<o.length;u++){let c=o[u],f=$M(String(a),String(c),n),d="";if(!r.isPadded&&s&&s.pattern===f.pattern){s.count.length>1&&s.count.pop(),s.count.push(f.count[0]),s.string=s.pattern+dO(s.count),a=c+1;continue}r.isPadded&&(d=BM(c,r,n)),f.string=d+f.pattern+dO(f.count),i.push(f),a=c+1,s=f}return i}function Zg(t,e,r,n,o){let i=[];for(let a of t){let{string:s}=a;!n&&!cO(e,"string",s)&&i.push(r+s),n&&cO(e,"string",s)&&i.push(r+s)}return i}function IM(t,e){let r=[];for(let n=0;n<t.length;n++)r.push([t[n],e[n]]);return r}function TM(t,e){return t>e?1:e>t?-1:0}function cO(t,e,r){return t.some(n=>n[e]===r)}function lO(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function fO(t,e){return t-t%Math.pow(10,e)}function dO(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function RM(t,e,r){return`[${t}${e-t===1?"":"-"}${e}]`}function pO(t){return/^-?(0+)\d/.test(t)}function BM(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}}`}}qo.cache={};qo.clearCache=()=>qo.cache={};hO.exports=qo});var ty=x((fX,CO)=>{"use strict";var NM=require("util"),yO=mO(),gO=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),LM=t=>e=>t===!0?Number(e):String(e),Qg=t=>typeof t=="number"||typeof t=="string"&&t!=="",Hs=t=>Number.isInteger(+t),ey=t=>{let e=`${t}`,r=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++r]==="0";);return r>0},jM=(t,e,r)=>typeof t=="string"||typeof e=="string"?!0:r.stringify===!0,UM=(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},mf=(t,e)=>{let r=t[0]==="-"?"-":"";for(r&&(t=t.slice(1),e--);t.length<e;)t="0"+t;return r?"-"+t:t},MM=(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=>mf(String(s),r)).join("|")),t.negatives.length&&(i=`-(${n}${t.negatives.map(s=>mf(String(s),r)).join("|")})`),o&&i?a=`${o}|${i}`:a=o||i,e.wrap?`(${n}${a})`:a},DO=(t,e,r,n)=>{if(r)return yO(t,e,{wrap:!1,...n});let o=String.fromCharCode(t);if(t===e)return o;let i=String.fromCharCode(e);return`[${o}-${i}]`},bO=(t,e,r)=>{if(Array.isArray(t)){let n=r.wrap===!0,o=r.capture?"":"?:";return n?`(${o}${t.join("|")})`:t.join("|")}return yO(t,e,r)},wO=(...t)=>new RangeError("Invalid range arguments: "+NM.inspect(...t)),vO=(t,e,r)=>{if(r.strictRanges===!0)throw wO([t,e]);return[]},qM=(t,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${t}" to be a number`);return[]},HM=(t,e,r=1,n={})=>{let o=Number(t),i=Number(e);if(!Number.isInteger(o)||!Number.isInteger(i)){if(n.strictRanges===!0)throw wO([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 f=ey(s)||ey(u)||ey(c),d=f?Math.max(s.length,u.length,c.length):0,p=f===!1&&jM(t,e,n)===!1,h=n.transform||LM(p);if(n.toRegex&&r===1)return DO(mf(t,d),mf(e,d),!0,n);let m={negatives:[],positives:[]},y=E=>m[E<0?"negatives":"positives"].push(Math.abs(E)),b=[],v=0;for(;a?o>=i:o<=i;)n.toRegex===!0&&r>1?y(o):b.push(UM(h(o,v),d,p)),o=a?o-r:o+r,v++;return n.toRegex===!0?r>1?MM(m,n,d):bO(b,null,{wrap:!1,...n}):b},VM=(t,e,r=1,n={})=>{if(!Hs(t)&&t.length>1||!Hs(e)&&e.length>1)return vO(t,e,n);let o=n.transform||(p=>String.fromCharCode(p)),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 DO(u,c,!1,n);let f=[],d=0;for(;s?i>=a:i<=a;)f.push(o(i,d)),i=s?i-r:i+r,d++;return n.toRegex===!0?bO(f,null,{wrap:!1,options:n}):f},hf=(t,e,r,n={})=>{if(e==null&&Qg(t))return[t];if(!Qg(t)||!Qg(e))return vO(t,e,n);if(typeof r=="function")return hf(t,e,1,{transform:r});if(gO(r))return hf(t,e,0,r);let o={...n};return o.capture===!0&&(o.wrap=!0),r=r||o.step||1,Hs(r)?Hs(t)&&Hs(e)?HM(t,e,r,o):VM(t,e,Math.max(Math.abs(r),1),o):r!=null&&!gO(r)?qM(r,o):hf(t,e,1,r)};CO.exports=hf});var SO=x((dX,_O)=>{"use strict";var zM=ty(),EO=df(),KM=(t,e={})=>{let r=(n,o={})=>{let i=EO.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 f=EO.reduce(n.nodes),d=zM(...f,{...e,wrap:!1,toRegex:!0,strictZeros:!0});if(d.length!==0)return f.length>1&&d.length>1?`(${d})`:d}if(n.nodes)for(let f of n.nodes)c+=r(f,n);return c};return r(t)};_O.exports=KM});var OO=x((pX,AO)=>{"use strict";var GM=ty(),xO=pf(),ma=df(),Ho=(t="",e="",r=!1)=>{let n=[];if(t=[].concat(t),e=[].concat(e),!e.length)return t;if(!t.length)return r?ma.flatten(e).map(o=>`{${o}}`):e;for(let o of t)if(Array.isArray(o))for(let i of o)n.push(Ho(i,e,r));else for(let i of e)r===!0&&typeof i=="string"&&(i=`{${i}}`),n.push(Array.isArray(i)?Ho(o,i,r):o+i);return ma.flatten(n)},WM=(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(Ho(s.pop(),xO(o,e)));return}if(o.type==="brace"&&o.invalid!==!0&&o.nodes.length===2){s.push(Ho(s.pop(),["{}"]));return}if(o.nodes&&o.ranges>0){let d=ma.reduce(o.nodes);if(ma.exceedsLimit(...d,e.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let p=GM(...d,e);p.length===0&&(p=xO(o,e)),s.push(Ho(s.pop(),p)),o.nodes=[];return}let u=ma.encloseBrace(o),c=o.queue,f=o;for(;f.type!=="brace"&&f.type!=="root"&&f.parent;)f=f.parent,c=f.queue;for(let d=0;d<o.nodes.length;d++){let p=o.nodes[d];if(p.type==="comma"&&o.type==="brace"){d===1&&c.push(""),c.push("");continue}if(p.type==="close"){s.push(Ho(s.pop(),c,u));continue}if(p.value&&p.type!=="open"){c.push(Ho(c.pop(),p.value));continue}p.nodes&&n(p,o)}return c};return ma.flatten(n(t))};AO.exports=WM});var kO=x((hX,FO)=>{"use strict";FO.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:`
|
|
107
|
-
`,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 RO=x((mX,TO)=>{"use strict";var YM=pf(),{MAX_LENGTH:PO,CHAR_BACKSLASH:ry,CHAR_BACKTICK:JM,CHAR_COMMA:XM,CHAR_DOT:ZM,CHAR_LEFT_PARENTHESES:QM,CHAR_RIGHT_PARENTHESES:e9,CHAR_LEFT_CURLY_BRACE:t9,CHAR_RIGHT_CURLY_BRACE:r9,CHAR_LEFT_SQUARE_BRACKET:$O,CHAR_RIGHT_SQUARE_BRACKET:IO,CHAR_DOUBLE_QUOTE:n9,CHAR_SINGLE_QUOTE:o9,CHAR_NO_BREAK_SPACE:i9,CHAR_ZERO_WIDTH_NOBREAK_SPACE:a9}=kO(),s9=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},n=typeof r.maxLength=="number"?Math.min(PO,r.maxLength):PO;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,f=0,d=0,p,h=()=>t[f++],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"});f<c;)if(a=i[i.length-1],p=h(),!(p===a9||p===i9)){if(p===ry){m({type:"text",value:(e.keepEscaping?p:"")+h()});continue}if(p===IO){m({type:"text",value:"\\"+p});continue}if(p===$O){u++;let y;for(;f<c&&(y=h());){if(p+=y,y===$O){u++;continue}if(y===ry){p+=h();continue}if(y===IO&&(u--,u===0))break}m({type:"text",value:p});continue}if(p===QM){a=m({type:"paren",nodes:[]}),i.push(a),m({type:"text",value:p});continue}if(p===e9){if(a.type!=="paren"){m({type:"text",value:p});continue}a=i.pop(),m({type:"text",value:p}),a=i[i.length-1];continue}if(p===n9||p===o9||p===JM){let y=p,b;for(e.keepQuotes!==!0&&(p="");f<c&&(b=h());){if(b===ry){p+=b+h();continue}if(b===y){e.keepQuotes===!0&&(p+=b);break}p+=b}m({type:"text",value:p});continue}if(p===t9){d++;let b={type:"brace",open:!0,close:!1,dollar:s.value&&s.value.slice(-1)==="$"||a.dollar===!0,depth:d,commas:0,ranges:0,nodes:[]};a=m(b),i.push(a),m({type:"open",value:p});continue}if(p===r9){if(a.type!=="brace"){m({type:"text",value:p});continue}let y="close";a=i.pop(),a.close=!0,m({type:y,value:p}),d--,a=i[i.length-1];continue}if(p===XM&&d>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:p}),a.commas++;continue}if(p===ZM&&d>0&&a.commas===0){let y=a.nodes;if(d===0||y.length===0){m({type:"text",value:p});continue}if(s.type==="dot"){if(a.range=[],s.value+=p,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 b=y[y.length-1];b.value+=s.value+p,s=b,a.ranges--;continue}m({type:"dot",value:p});continue}m({type:"text",value:p})}do if(a=i.pop(),a.type!=="root"){a.nodes.forEach(v=>{v.nodes||(v.type==="open"&&(v.isOpen=!0),v.type==="close"&&(v.isClose=!0),v.nodes||(v.type="text"),v.invalid=!0)});let y=i[i.length-1],b=y.nodes.indexOf(a);y.nodes.splice(b,1,...a.nodes)}while(i.length>0);return m({type:"eos"}),o};TO.exports=s9});var LO=x((gX,NO)=>{"use strict";var BO=pf(),u9=SO(),c9=OO(),l9=RO(),ir=(t,e={})=>{let r=[];if(Array.isArray(t))for(let n of t){let o=ir.create(n,e);Array.isArray(o)?r.push(...o):r.push(o)}else r=[].concat(ir.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};ir.parse=(t,e={})=>l9(t,e);ir.stringify=(t,e={})=>BO(typeof t=="string"?ir.parse(t,e):t,e);ir.compile=(t,e={})=>(typeof t=="string"&&(t=ir.parse(t,e)),u9(t,e));ir.expand=(t,e={})=>{typeof t=="string"&&(t=ir.parse(t,e));let r=c9(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};ir.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?ir.compile(t,e):ir.expand(t,e);NO.exports=ir});var Vs=x((yX,HO)=>{"use strict";var f9=require("path"),Kr="\\\\/",jO=`[^${Kr}]`,Dn="\\.",d9="\\+",p9="\\?",gf="\\/",h9="(?=.)",UO="[^/]",ny=`(?:${gf}|$)`,MO=`(?:^|${gf})`,oy=`${Dn}{1,2}${ny}`,m9=`(?!${Dn})`,g9=`(?!${MO}${oy})`,y9=`(?!${Dn}{0,1}${ny})`,D9=`(?!${oy})`,b9=`[^.${gf}]`,w9=`${UO}*?`,qO={DOT_LITERAL:Dn,PLUS_LITERAL:d9,QMARK_LITERAL:p9,SLASH_LITERAL:gf,ONE_CHAR:h9,QMARK:UO,END_ANCHOR:ny,DOTS_SLASH:oy,NO_DOT:m9,NO_DOTS:g9,NO_DOT_SLASH:y9,NO_DOTS_SLASH:D9,QMARK_NO_DOT:b9,STAR:w9,START_ANCHOR:MO},v9={...qO,SLASH_LITERAL:`[${Kr}]`,QMARK:jO,STAR:`${jO}*?`,DOTS_SLASH:`${Dn}{1,2}(?:[${Kr}]|$)`,NO_DOT:`(?!${Dn})`,NO_DOTS:`(?!(?:^|[${Kr}])${Dn}{1,2}(?:[${Kr}]|$))`,NO_DOT_SLASH:`(?!${Dn}{0,1}(?:[${Kr}]|$))`,NO_DOTS_SLASH:`(?!${Dn}{1,2}(?:[${Kr}]|$))`,QMARK_NO_DOT:`[^.${Kr}]`,START_ANCHOR:`(?:^|[${Kr}])`,END_ANCHOR:`(?:[${Kr}]|$)`},C9={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"};HO.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:C9,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:f9.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?v9:qO}}});var zs=x(Jt=>{"use strict";var E9=require("path"),_9=process.platform==="win32",{REGEX_BACKSLASH:S9,REGEX_REMOVE_BACKSLASH:x9,REGEX_SPECIAL_CHARS:A9,REGEX_SPECIAL_CHARS_GLOBAL:O9}=Vs();Jt.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);Jt.hasRegexChars=t=>A9.test(t);Jt.isRegexChar=t=>t.length===1&&Jt.hasRegexChars(t);Jt.escapeRegex=t=>t.replace(O9,"\\$1");Jt.toPosixSlashes=t=>t.replace(S9,"/");Jt.removeBackslashes=t=>t.replace(x9,e=>e==="\\"?"":e);Jt.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};Jt.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:_9===!0||E9.sep==="\\";Jt.escapeLast=(t,e,r)=>{let n=t.lastIndexOf(e,r);return n===-1?t:t[n-1]==="\\"?Jt.escapeLast(t,e,n-1):`${t.slice(0,n)}\\${t.slice(n)}`};Jt.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};Jt.wrapOutput=(t,e={},r={})=>{let n=r.contains?"":"^",o=r.contains?"":"$",i=`${n}(?:${t})${o}`;return e.negated===!0&&(i=`(?:^(?!${i}).*$)`),i}});var XO=x((bX,JO)=>{"use strict";var VO=zs(),{CHAR_ASTERISK:iy,CHAR_AT:F9,CHAR_BACKWARD_SLASH:Ks,CHAR_COMMA:k9,CHAR_DOT:ay,CHAR_EXCLAMATION_MARK:sy,CHAR_FORWARD_SLASH:YO,CHAR_LEFT_CURLY_BRACE:uy,CHAR_LEFT_PARENTHESES:cy,CHAR_LEFT_SQUARE_BRACKET:P9,CHAR_PLUS:$9,CHAR_QUESTION_MARK:zO,CHAR_RIGHT_CURLY_BRACE:I9,CHAR_RIGHT_PARENTHESES:KO,CHAR_RIGHT_SQUARE_BRACKET:T9}=Vs(),GO=t=>t===YO||t===Ks,WO=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?1/0:1)},R9=(t,e)=>{let r=e||{},n=t.length-1,o=r.parts===!0||r.scanToEnd===!0,i=[],a=[],s=[],u=t,c=-1,f=0,d=0,p=!1,h=!1,m=!1,y=!1,b=!1,v=!1,E=!1,g=!1,_=!1,S=!1,P=0,k,B,T={value:"",depth:0,isGlob:!1},L=()=>c>=n,O=()=>u.charCodeAt(c+1),q=()=>(k=B,u.charCodeAt(++c));for(;c<n;){B=q();let w;if(B===Ks){E=T.backslashes=!0,B=q(),B===uy&&(v=!0);continue}if(v===!0||B===uy){for(P++;L()!==!0&&(B=q());){if(B===Ks){E=T.backslashes=!0,q();continue}if(B===uy){P++;continue}if(v!==!0&&B===ay&&(B=q())===ay){if(p=T.isBrace=!0,m=T.isGlob=!0,S=!0,o===!0)continue;break}if(v!==!0&&B===k9){if(p=T.isBrace=!0,m=T.isGlob=!0,S=!0,o===!0)continue;break}if(B===I9&&(P--,P===0)){v=!1,p=T.isBrace=!0,S=!0;break}}if(o===!0)continue;break}if(B===YO){if(i.push(c),a.push(T),T={value:"",depth:0,isGlob:!1},S===!0)continue;if(k===ay&&c===f+1){f+=2;continue}d=c+1;continue}if(r.noext!==!0&&(B===$9||B===F9||B===iy||B===zO||B===sy)===!0&&O()===cy){if(m=T.isGlob=!0,y=T.isExtglob=!0,S=!0,B===sy&&c===f&&(_=!0),o===!0){for(;L()!==!0&&(B=q());){if(B===Ks){E=T.backslashes=!0,B=q();continue}if(B===KO){m=T.isGlob=!0,S=!0;break}}continue}break}if(B===iy){if(k===iy&&(b=T.isGlobstar=!0),m=T.isGlob=!0,S=!0,o===!0)continue;break}if(B===zO){if(m=T.isGlob=!0,S=!0,o===!0)continue;break}if(B===P9){for(;L()!==!0&&(w=q());){if(w===Ks){E=T.backslashes=!0,q();continue}if(w===T9){h=T.isBracket=!0,m=T.isGlob=!0,S=!0;break}}if(o===!0)continue;break}if(r.nonegate!==!0&&B===sy&&c===f){g=T.negated=!0,f++;continue}if(r.noparen!==!0&&B===cy){if(m=T.isGlob=!0,o===!0){for(;L()!==!0&&(B=q());){if(B===cy){E=T.backslashes=!0,B=q();continue}if(B===KO){S=!0;break}}continue}break}if(m===!0){if(S=!0,o===!0)continue;break}}r.noext===!0&&(y=!1,m=!1);let j=u,Z="",F="";f>0&&(Z=u.slice(0,f),u=u.slice(f),d-=f),j&&m===!0&&d>0?(j=u.slice(0,d),F=u.slice(d)):m===!0?(j="",F=u):j=u,j&&j!==""&&j!=="/"&&j!==u&&GO(j.charCodeAt(j.length-1))&&(j=j.slice(0,-1)),r.unescape===!0&&(F&&(F=VO.removeBackslashes(F)),j&&E===!0&&(j=VO.removeBackslashes(j)));let D={prefix:Z,input:t,start:f,base:j,glob:F,isBrace:p,isBracket:h,isGlob:m,isExtglob:y,isGlobstar:b,negated:g,negatedExtglob:_};if(r.tokens===!0&&(D.maxDepth=0,GO(B)||a.push(T),D.tokens=a),r.parts===!0||r.tokens===!0){let w;for(let C=0;C<i.length;C++){let A=w?w+1:f,R=i[C],I=t.slice(A,R);r.tokens&&(C===0&&f!==0?(a[C].isPrefix=!0,a[C].value=Z):a[C].value=I,WO(a[C]),D.maxDepth+=a[C].depth),(C!==0||I!=="")&&s.push(I),w=R}if(w&&w+1<t.length){let C=t.slice(w+1);s.push(C),r.tokens&&(a[a.length-1].value=C,WO(a[a.length-1]),D.maxDepth+=a[a.length-1].depth)}D.slashes=i,D.parts=s}return D};JO.exports=R9});var eF=x((wX,QO)=>{"use strict";var yf=Vs(),ar=zs(),{MAX_LENGTH:Df,POSIX_REGEX_SOURCE:B9,REGEX_NON_SPECIAL_CHARS:N9,REGEX_SPECIAL_CHARS_BACKREF:L9,REPLACEMENTS:ZO}=yf,j9=(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=>ar.escapeRegex(o)).join("..")}return r},ga=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,ly=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=ZO[t]||t;let r={...e},n=typeof r.maxLength=="number"?Math.min(Df,r.maxLength):Df,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=ar.isWindows(e),c=yf.globChars(u),f=yf.extglobChars(c),{DOT_LITERAL:d,PLUS_LITERAL:p,SLASH_LITERAL:h,ONE_CHAR:m,DOTS_SLASH:y,NO_DOT:b,NO_DOT_SLASH:v,NO_DOTS_SLASH:E,QMARK:g,QMARK_NO_DOT:_,STAR:S,START_ANCHOR:P}=c,k=z=>`(${s}(?:(?!${P}${z.dot?y:d}).)*?)`,B=r.dot?"":b,T=r.dot?g:_,L=r.bash===!0?k(r):S;r.capture&&(L=`(${L})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let O={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=ar.removePrefix(t,O),o=t.length;let q=[],j=[],Z=[],F=i,D,w=()=>O.index===o-1,C=O.peek=(z=1)=>t[O.index+z],A=O.advance=()=>t[++O.index]||"",R=()=>t.slice(O.index+1),I=(z="",Se=0)=>{O.consumed+=z,O.index+=Se},H=z=>{O.output+=z.output!=null?z.output:z.value,I(z.value)},$=()=>{let z=1;for(;C()==="!"&&(C(2)!=="("||C(3)==="?");)A(),O.start++,z++;return z%2===0?!1:(O.negated=!0,O.start++,!0)},N=z=>{O[z]++,Z.push(z)},X=z=>{O[z]--,Z.pop()},U=z=>{if(F.type==="globstar"){let Se=O.braces>0&&(z.type==="comma"||z.type==="brace"),V=z.extglob===!0||q.length&&(z.type==="pipe"||z.type==="paren");z.type!=="slash"&&z.type!=="paren"&&!Se&&!V&&(O.output=O.output.slice(0,-F.output.length),F.type="star",F.value="*",F.output=L,O.output+=F.output)}if(q.length&&z.type!=="paren"&&(q[q.length-1].inner+=z.value),(z.value||z.output)&&H(z),F&&F.type==="text"&&z.type==="text"){F.value+=z.value,F.output=(F.output||"")+z.value;return}z.prev=F,a.push(z),F=z},oe=(z,Se)=>{let V={...f[Se],conditions:1,inner:""};V.prev=F,V.parens=O.parens,V.output=O.output;let de=(r.capture?"(":"")+V.open;N("parens"),U({type:z,value:Se,output:O.output?"":m}),U({type:"paren",extglob:!0,value:A(),output:de}),q.push(V)},Xt=z=>{let Se=z.close+(r.capture?")":""),V;if(z.type==="negate"){let de=L;if(z.inner&&z.inner.length>1&&z.inner.includes("/")&&(de=k(r)),(de!==L||w()||/^\)+$/.test(R()))&&(Se=z.close=`)$))${de}`),z.inner.includes("*")&&(V=R())&&/^\.[^\\/.]+$/.test(V)){let qe=ly(V,{...e,fastpaths:!1}).output;Se=z.close=`)${qe})${de})`}z.prev.type==="bos"&&(O.negatedExtglob=!0)}U({type:"paren",extglob:!0,value:D,output:Se}),X("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let z=!1,Se=t.replace(L9,(V,de,qe,At,nt,Ff)=>At==="\\"?(z=!0,V):At==="?"?de?de+At+(nt?g.repeat(nt.length):""):Ff===0?T+(nt?g.repeat(nt.length):""):g.repeat(qe.length):At==="."?d.repeat(qe.length):At==="*"?de?de+At+(nt?L:""):L:de?V:`\\${V}`);return z===!0&&(r.unescape===!0?Se=Se.replace(/\\/g,""):Se=Se.replace(/\\+/g,V=>V.length%2===0?"\\\\":V?"\\":"")),Se===t&&r.contains===!0?(O.output=t,O):(O.output=ar.wrapOutput(Se,O,e),O)}for(;!w();){if(D=A(),D==="\0")continue;if(D==="\\"){let V=C();if(V==="/"&&r.bash!==!0||V==="."||V===";")continue;if(!V){D+="\\",U({type:"text",value:D});continue}let de=/^\\+/.exec(R()),qe=0;if(de&&de[0].length>2&&(qe=de[0].length,O.index+=qe,qe%2!==0&&(D+="\\")),r.unescape===!0?D=A():D+=A(),O.brackets===0){U({type:"text",value:D});continue}}if(O.brackets>0&&(D!=="]"||F.value==="["||F.value==="[^")){if(r.posix!==!1&&D===":"){let V=F.value.slice(1);if(V.includes("[")&&(F.posix=!0,V.includes(":"))){let de=F.value.lastIndexOf("["),qe=F.value.slice(0,de),At=F.value.slice(de+2),nt=B9[At];if(nt){F.value=qe+nt,O.backtrack=!0,A(),!i.output&&a.indexOf(F)===1&&(i.output=m);continue}}}(D==="["&&C()!==":"||D==="-"&&C()==="]")&&(D=`\\${D}`),D==="]"&&(F.value==="["||F.value==="[^")&&(D=`\\${D}`),r.posix===!0&&D==="!"&&F.value==="["&&(D="^"),F.value+=D,H({value:D});continue}if(O.quotes===1&&D!=='"'){D=ar.escapeRegex(D),F.value+=D,H({value:D});continue}if(D==='"'){O.quotes=O.quotes===1?0:1,r.keepQuotes===!0&&U({type:"text",value:D});continue}if(D==="("){N("parens"),U({type:"paren",value:D});continue}if(D===")"){if(O.parens===0&&r.strictBrackets===!0)throw new SyntaxError(ga("opening","("));let V=q[q.length-1];if(V&&O.parens===V.parens+1){Xt(q.pop());continue}U({type:"paren",value:D,output:O.parens?")":"\\)"}),X("parens");continue}if(D==="["){if(r.nobracket===!0||!R().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(ga("closing","]"));D=`\\${D}`}else N("brackets");U({type:"bracket",value:D});continue}if(D==="]"){if(r.nobracket===!0||F&&F.type==="bracket"&&F.value.length===1){U({type:"text",value:D,output:`\\${D}`});continue}if(O.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(ga("opening","["));U({type:"text",value:D,output:`\\${D}`});continue}X("brackets");let V=F.value.slice(1);if(F.posix!==!0&&V[0]==="^"&&!V.includes("/")&&(D=`/${D}`),F.value+=D,H({value:D}),r.literalBrackets===!1||ar.hasRegexChars(V))continue;let de=ar.escapeRegex(F.value);if(O.output=O.output.slice(0,-F.value.length),r.literalBrackets===!0){O.output+=de,F.value=de;continue}F.value=`(${s}${de}|${F.value})`,O.output+=F.value;continue}if(D==="{"&&r.nobrace!==!0){N("braces");let V={type:"brace",value:D,output:"(",outputIndex:O.output.length,tokensIndex:O.tokens.length};j.push(V),U(V);continue}if(D==="}"){let V=j[j.length-1];if(r.nobrace===!0||!V){U({type:"text",value:D,output:D});continue}let de=")";if(V.dots===!0){let qe=a.slice(),At=[];for(let nt=qe.length-1;nt>=0&&(a.pop(),qe[nt].type!=="brace");nt--)qe[nt].type!=="dots"&&At.unshift(qe[nt].value);de=j9(At,r),O.backtrack=!0}if(V.comma!==!0&&V.dots!==!0){let qe=O.output.slice(0,V.outputIndex),At=O.tokens.slice(V.tokensIndex);V.value=V.output="\\{",D=de="\\}",O.output=qe;for(let nt of At)O.output+=nt.output||nt.value}U({type:"brace",value:D,output:de}),X("braces"),j.pop();continue}if(D==="|"){q.length>0&&q[q.length-1].conditions++,U({type:"text",value:D});continue}if(D===","){let V=D,de=j[j.length-1];de&&Z[Z.length-1]==="braces"&&(de.comma=!0,V="|"),U({type:"comma",value:D,output:V});continue}if(D==="/"){if(F.type==="dot"&&O.index===O.start+1){O.start=O.index+1,O.consumed="",O.output="",a.pop(),F=i;continue}U({type:"slash",value:D,output:h});continue}if(D==="."){if(O.braces>0&&F.type==="dot"){F.value==="."&&(F.output=d);let V=j[j.length-1];F.type="dots",F.output+=D,F.value+=D,V.dots=!0;continue}if(O.braces+O.parens===0&&F.type!=="bos"&&F.type!=="slash"){U({type:"text",value:D,output:d});continue}U({type:"dot",value:D,output:d});continue}if(D==="?"){if(!(F&&F.value==="(")&&r.noextglob!==!0&&C()==="("&&C(2)!=="?"){oe("qmark",D);continue}if(F&&F.type==="paren"){let de=C(),qe=D;if(de==="<"&&!ar.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(F.value==="("&&!/[!=<:]/.test(de)||de==="<"&&!/<([!=]|\w+>)/.test(R()))&&(qe=`\\${D}`),U({type:"text",value:D,output:qe});continue}if(r.dot!==!0&&(F.type==="slash"||F.type==="bos")){U({type:"qmark",value:D,output:_});continue}U({type:"qmark",value:D,output:g});continue}if(D==="!"){if(r.noextglob!==!0&&C()==="("&&(C(2)!=="?"||!/[!=<:]/.test(C(3)))){oe("negate",D);continue}if(r.nonegate!==!0&&O.index===0){$();continue}}if(D==="+"){if(r.noextglob!==!0&&C()==="("&&C(2)!=="?"){oe("plus",D);continue}if(F&&F.value==="("||r.regex===!1){U({type:"plus",value:D,output:p});continue}if(F&&(F.type==="bracket"||F.type==="paren"||F.type==="brace")||O.parens>0){U({type:"plus",value:D});continue}U({type:"plus",value:p});continue}if(D==="@"){if(r.noextglob!==!0&&C()==="("&&C(2)!=="?"){U({type:"at",extglob:!0,value:D,output:""});continue}U({type:"text",value:D});continue}if(D!=="*"){(D==="$"||D==="^")&&(D=`\\${D}`);let V=N9.exec(R());V&&(D+=V[0],O.index+=V[0].length),U({type:"text",value:D});continue}if(F&&(F.type==="globstar"||F.star===!0)){F.type="star",F.star=!0,F.value+=D,F.output=L,O.backtrack=!0,O.globstar=!0,I(D);continue}let z=R();if(r.noextglob!==!0&&/^\([^?]/.test(z)){oe("star",D);continue}if(F.type==="star"){if(r.noglobstar===!0){I(D);continue}let V=F.prev,de=V.prev,qe=V.type==="slash"||V.type==="bos",At=de&&(de.type==="star"||de.type==="globstar");if(r.bash===!0&&(!qe||z[0]&&z[0]!=="/")){U({type:"star",value:D,output:""});continue}let nt=O.braces>0&&(V.type==="comma"||V.type==="brace"),Ff=q.length&&(V.type==="pipe"||V.type==="paren");if(!qe&&V.type!=="paren"&&!nt&&!Ff){U({type:"star",value:D,output:""});continue}for(;z.slice(0,3)==="/**";){let Zs=t[O.index+4];if(Zs&&Zs!=="/")break;z=z.slice(3),I("/**",3)}if(V.type==="bos"&&w()){F.type="globstar",F.value+=D,F.output=k(r),O.output=F.output,O.globstar=!0,I(D);continue}if(V.type==="slash"&&V.prev.type!=="bos"&&!At&&w()){O.output=O.output.slice(0,-(V.output+F.output).length),V.output=`(?:${V.output}`,F.type="globstar",F.output=k(r)+(r.strictSlashes?")":"|$)"),F.value+=D,O.globstar=!0,O.output+=V.output+F.output,I(D);continue}if(V.type==="slash"&&V.prev.type!=="bos"&&z[0]==="/"){let Zs=z[1]!==void 0?"|$":"";O.output=O.output.slice(0,-(V.output+F.output).length),V.output=`(?:${V.output}`,F.type="globstar",F.output=`${k(r)}${h}|${h}${Zs})`,F.value+=D,O.output+=V.output+F.output,O.globstar=!0,I(D+A()),U({type:"slash",value:"/",output:""});continue}if(V.type==="bos"&&z[0]==="/"){F.type="globstar",F.value+=D,F.output=`(?:^|${h}|${k(r)}${h})`,O.output=F.output,O.globstar=!0,I(D+A()),U({type:"slash",value:"/",output:""});continue}O.output=O.output.slice(0,-F.output.length),F.type="globstar",F.output=k(r),F.value+=D,O.output+=F.output,O.globstar=!0,I(D);continue}let Se={type:"star",value:D,output:L};if(r.bash===!0){Se.output=".*?",(F.type==="bos"||F.type==="slash")&&(Se.output=B+Se.output),U(Se);continue}if(F&&(F.type==="bracket"||F.type==="paren")&&r.regex===!0){Se.output=D,U(Se);continue}(O.index===O.start||F.type==="slash"||F.type==="dot")&&(F.type==="dot"?(O.output+=v,F.output+=v):r.dot===!0?(O.output+=E,F.output+=E):(O.output+=B,F.output+=B),C()!=="*"&&(O.output+=m,F.output+=m)),U(Se)}for(;O.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(ga("closing","]"));O.output=ar.escapeLast(O.output,"["),X("brackets")}for(;O.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(ga("closing",")"));O.output=ar.escapeLast(O.output,"("),X("parens")}for(;O.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(ga("closing","}"));O.output=ar.escapeLast(O.output,"{"),X("braces")}if(r.strictSlashes!==!0&&(F.type==="star"||F.type==="bracket")&&U({type:"maybe_slash",value:"",output:`${h}?`}),O.backtrack===!0){O.output="";for(let z of O.tokens)O.output+=z.output!=null?z.output:z.value,z.suffix&&(O.output+=z.suffix)}return O};ly.fastpaths=(t,e)=>{let r={...e},n=typeof r.maxLength=="number"?Math.min(Df,r.maxLength):Df,o=t.length;if(o>n)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${n}`);t=ZO[t]||t;let i=ar.isWindows(e),{DOT_LITERAL:a,SLASH_LITERAL:s,ONE_CHAR:u,DOTS_SLASH:c,NO_DOT:f,NO_DOTS:d,NO_DOTS_SLASH:p,STAR:h,START_ANCHOR:m}=yf.globChars(i),y=r.dot?d:f,b=r.dot?p:f,v=r.capture?"":"?:",E={negated:!1,prefix:""},g=r.bash===!0?".*?":h;r.capture&&(g=`(${g})`);let _=B=>B.noglobstar===!0?g:`(${v}(?:(?!${m}${B.dot?c:a}).)*?)`,S=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}${b}${g}`;case"**":return y+_(r);case"**/*":return`(?:${y}${_(r)}${s})?${b}${u}${g}`;case"**/*.*":return`(?:${y}${_(r)}${s})?${b}${g}${a}${u}${g}`;case"**/.*":return`(?:${y}${_(r)}${s})?${a}${u}${g}`;default:{let T=/^(.*?)\.(\w+)$/.exec(B);if(!T)return;let L=S(T[1]);return L?L+a+T[2]:void 0}}},P=ar.removePrefix(t,E),k=S(P);return k&&r.strictSlashes!==!0&&(k+=`${s}?`),k};QO.exports=ly});var rF=x((vX,tF)=>{"use strict";var U9=require("path"),M9=XO(),fy=eF(),dy=zs(),q9=Vs(),H9=t=>t&&typeof t=="object"&&!Array.isArray(t),tt=(t,e,r=!1)=>{if(Array.isArray(t)){let f=t.map(p=>tt(p,e,r));return p=>{for(let h of f){let m=h(p);if(m)return m}return!1}}let n=H9(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=dy.isWindows(e),a=n?tt.compileRe(t,e):tt.makeRe(t,e,!1,!0),s=a.state;delete a.state;let u=()=>!1;if(o.ignore){let f={...e,ignore:null,onMatch:null,onResult:null};u=tt(o.ignore,f,r)}let c=(f,d=!1)=>{let{isMatch:p,match:h,output:m}=tt.test(f,a,e,{glob:t,posix:i}),y={glob:t,state:s,regex:a,posix:i,input:f,output:m,match:h,isMatch:p};return typeof o.onResult=="function"&&o.onResult(y),p===!1?(y.isMatch=!1,d?y:!1):u(f)?(typeof o.onIgnore=="function"&&o.onIgnore(y),y.isMatch=!1,d?y:!1):(typeof o.onMatch=="function"&&o.onMatch(y),d?y:!0)};return r&&(c.state=s),c};tt.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?dy.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=tt.matchBase(t,e,r,o):s=e.exec(u)),{isMatch:!!s,match:s,output:u}};tt.matchBase=(t,e,r,n=dy.isWindows(r))=>(e instanceof RegExp?e:tt.makeRe(e,r)).test(U9.basename(t));tt.isMatch=(t,e,r)=>tt(e,r)(t);tt.parse=(t,e)=>Array.isArray(t)?t.map(r=>tt.parse(r,e)):fy(t,{...e,fastpaths:!1});tt.scan=(t,e)=>M9(t,e);tt.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=tt.toRegex(s,e);return n===!0&&(u.state=t),u};tt.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=fy.fastpaths(t,e)),o.output||(o=fy(t,e)),tt.compileRe(o,e,r,n)};tt.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/$^/}};tt.constants=q9;tF.exports=tt});var oF=x((CX,nF)=>{"use strict";nF.exports=rF()});var lF=x((EX,cF)=>{"use strict";var aF=require("util"),sF=LO(),Gr=oF(),py=zs(),iF=t=>t===""||t==="./",uF=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=f=>{i.add(f.output),r&&r.onResult&&r.onResult(f)};for(let f=0;f<e.length;f++){let d=Gr(String(e[f]),{...r,onResult:s},!0),p=d.state.negated||d.state.negatedExtglob;p&&a++;for(let h of t){let m=d(h,!0);(p?!m.isMatch:m.isMatch)&&(p?n.add(m.output):(n.delete(m.output),o.add(m.output)))}}let c=(a===e.length?[...i]:[...o]).filter(f=>!n.has(f));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(f=>f.replace(/\\/g,"")):e}return c};Le.match=Le;Le.matcher=(t,e)=>Gr(t,e);Le.isMatch=(t,e,r)=>Gr(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(iF(t)||iF(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(!py.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=Gr(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=Gr(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=>Gr(n,r)(t))};Le.capture=(t,e,r)=>{let n=py.isWindows(r),i=Gr.makeRe(String(t),{...r,capture:!0}).exec(n?py.toPosixSlashes(e):e);if(i)return i.slice(1).map(a=>a===void 0?"":a)};Le.makeRe=(...t)=>Gr.makeRe(...t);Le.scan=(...t)=>Gr.scan(...t);Le.parse=(t,e)=>{let r=[];for(let n of[].concat(t||[]))for(let o of sF(String(n),e))r.push(Gr.parse(o,e));return r};Le.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!uF(t)?[t]:sF(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=uF;cF.exports=Le});var WF=x((EZ,bn)=>{var Ie=require("fs"),Sf=require("os"),bt=require("path"),PF=require("crypto"),Yr={fs:Ie.constants,os:Sf.constants},$F="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",BF=/XXXXXX/,g7=3,NF=(Yr.O_CREAT||Yr.fs.O_CREAT)|(Yr.O_EXCL||Yr.fs.O_EXCL)|(Yr.O_RDWR||Yr.fs.O_RDWR),y7=Sf.platform()==="win32",D7=Yr.EBADF||Yr.os.errno.EBADF,b7=Yr.ENOENT||Yr.os.errno.ENOENT,LF=448,jF=384,w7="exit",Da=[],UF=Ie.rmdirSync.bind(Ie),MF=!1;function v7(t,e){return Ie.rm(t,{recursive:!0},e)}function qF(t){return Ie.rmSync(t,{recursive:!0})}function Dy(t,e){let r=ba(t,e),n=r[0],o=r[1];P7(n,function(i,a){if(i)return o(i);let s=a.tries;(function u(){try{let c=VF(a);Ie.stat(c,function(f){if(!f)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 by(t){let e=ba(t),r=e[0],n=$7(r),o=n.tries;do{let i=VF(n);try{Ie.statSync(i)}catch{return i}}while(o-- >0);throw new Error("Could not get a unique tmp filename, max tries reached")}function C7(t,e){let r=ba(t,e),n=r[0],o=r[1];Dy(n,function(a,s){if(a)return o(a);Ie.open(s,NF,n.mode||jF,function(c,f){if(c)return o(c);if(n.discardDescriptor)return Ie.close(f,function(p){return o(p,s,void 0,gy(s,-1,n,!1))});{let d=n.discardDescriptor||n.detachDescriptor;o(null,s,f,gy(s,d?-1:f,n,!1))}})})}function E7(t){let e=ba(t),r=e[0],n=r.discardDescriptor||r.detachDescriptor,o=by(r),i=Ie.openSync(o,NF,r.mode||jF);return r.discardDescriptor&&(Ie.closeSync(i),i=void 0),{name:o,fd:i,removeCallback:gy(o,n?-1:i,r,!0)}}function _7(t,e){let r=ba(t,e),n=r[0],o=r[1];Dy(n,function(a,s){if(a)return o(a);Ie.mkdir(s,n.mode||LF,function(c){if(c)return o(c);o(null,s,HF(s,n,!1))})})}function S7(t){let e=ba(t),r=e[0],n=by(r);return Ie.mkdirSync(n,r.mode||LF),{name:n,removeCallback:HF(n,r,!0)}}function x7(t,e){let r=function(n){if(n&&!yy(n))return e(n);e()};0<=t[0]?Ie.close(t[0],function(){Ie.unlink(t[1],r)}):Ie.unlink(t[1],r)}function A7(t){let e=null;try{0<=t[0]&&Ie.closeSync(t[0])}catch(r){if(!I7(r)&&!yy(r))throw r}finally{try{Ie.unlinkSync(t[1])}catch(r){yy(r)||(e=r)}}if(e!==null)throw e}function gy(t,e,r,n){let o=_f(A7,[e,t],n),i=_f(x7,[e,t],n,o);return r.keep||Da.unshift(o),n?o:i}function HF(t,e,r){let n=e.unsafeCleanup?v7:Ie.rmdir.bind(Ie),o=e.unsafeCleanup?qF:UF,i=_f(o,t,r),a=_f(n,t,r,i);return e.keep||Da.unshift(i),r?i:a}function _f(t,e,r,n){let o=!1;return function i(a){if(!o){let s=n||i,u=Da.indexOf(s);return u>=0&&Da.splice(u,1),o=!0,r||t===UF||t===qF?t(e):t(e,a||function(){})}}}function O7(){if(MF)for(;Da.length;)try{Da[0]()}catch{}}function IF(t){let e=[],r=null;try{r=PF.randomBytes(t)}catch{r=PF.pseudoRandomBytes(t)}for(let n=0;n<t;n++)e.push($F[r[n]%$F.length]);return e.join("")}function sr(t){return typeof t>"u"}function ba(t,e){if(typeof t=="function")return[{},t];if(sr(t))return[{},e];let r={};for(let n of Object.getOwnPropertyNames(t))r[n]=t[n];return[r,e]}function F7(t,e,r){let n=bt.isAbsolute(t)?t:bt.join(e,t);Ie.stat(n,function(o){o?Ie.realpath(bt.dirname(n),function(i,a){if(i)return r(i);r(null,bt.join(a,bt.basename(n)))}):Ie.realpath(n,r)})}function k7(t,e){let r=bt.isAbsolute(t)?t:bt.join(e,t);try{return Ie.statSync(r),Ie.realpathSync(r)}catch{let o=Ie.realpathSync(bt.dirname(r));return bt.join(o,bt.basename(r))}}function VF(t){let e=t.tmpdir;if(!sr(t.name))return bt.join(e,t.dir,t.name);if(!sr(t.template))return bt.join(e,t.dir,t.template).replace(BF,IF(6));let r=[t.prefix?t.prefix:"tmp","-",process.pid,"-",IF(12),t.postfix?"-"+t.postfix:""].join("");return bt.join(e,t.dir,r)}function zF(t){if(!sr(t.name)){let e=t.name;if(bt.isAbsolute(e))throw new Error(`name option must not contain an absolute path, found "${e}".`);let r=bt.basename(e);if(r===".."||r==="."||r!==e)throw new Error(`name option must not contain a path, found "${e}".`)}if(!sr(t.template)&&!t.template.match(BF))throw new Error(`Invalid template, found "${t.template}".`);if(!sr(t.tries)&&isNaN(t.tries)||t.tries<0)throw new Error(`Invalid tries, found "${t.tries}".`);t.tries=sr(t.name)?t.tries||g7:1,t.keep=!!t.keep,t.detachDescriptor=!!t.detachDescriptor,t.discardDescriptor=!!t.discardDescriptor,t.unsafeCleanup=!!t.unsafeCleanup,t.prefix=sr(t.prefix)?"":t.prefix,t.postfix=sr(t.postfix)?"":t.postfix}function TF(t,e,r,n){if(sr(e))return n(null);F7(e,r,function(o,i){if(o)return n(o);let a=bt.relative(r,i);if(!i.startsWith(r))return n(new Error(`${t} option must be relative to "${r}", found "${a}".`));n(null,a)})}function RF(t,e,r){if(sr(e))return;let n=k7(e,r),o=bt.relative(r,n);if(!n.startsWith(r))throw new Error(`${t} option must be relative to "${r}", found "${o}".`);return o}function P7(t,e){R7(t,function(r,n){if(r)return e(r);t.tmpdir=n;try{zF(t,n)}catch(o){return e(o)}TF("dir",t.dir,n,function(o,i){if(o)return e(o);t.dir=sr(i)?"":i,TF("template",t.template,n,function(a,s){if(a)return e(a);t.template=s,e(null,t)})})})}function $7(t){let e=t.tmpdir=GF(t);zF(t,e);let r=RF("dir",t.dir,e);return t.dir=sr(r)?"":r,t.template=RF("template",t.template,e),t}function I7(t){return KF(t,-D7,"EBADF")}function yy(t){return KF(t,-b7,"ENOENT")}function KF(t,e,r){return y7?t.code===r:t.code===r&&t.errno===e}function T7(){MF=!0}function R7(t,e){return Ie.realpath(t&&t.tmpdir||Sf.tmpdir(),e)}function GF(t){return Ie.realpathSync(t&&t.tmpdir||Sf.tmpdir())}process.addListener(w7,O7);Object.defineProperty(bn.exports,"tmpdir",{enumerable:!0,configurable:!1,get:function(){return GF()}});bn.exports.dir=_7;bn.exports.dirSync=S7;bn.exports.file=C7;bn.exports.fileSync=E7;bn.exports.tmpName=Dy;bn.exports.tmpNameSync=by;bn.exports.setGracefulCleanup=T7});var Af=require("node:process");var Vy=fe(Hy(),1),{program:it,createCommand:bq,createArgument:wq,createOption:vq,CommanderError:Cq,InvalidArgumentError:Eq,InvalidOptionArgumentError:_q,Command:Sq,Argument:xq,Option:Aq,Help:Oq}=Vy.default;var Cr={name:"@capgo/cli",version:"7.49.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:version-detection":"node test/test-get-installed-version.mjs","test:version-detection:setup":"./test/fixtures/setup-test-projects.sh",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 && bun run test:version-detection"},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.27.0",eslint:"^9.38.0","git-format-staged":"3.1.1",husky:"^9.1.7","is-wsl":"^3.1.0",open:"^11.0.0",prettyjson:"^1.2.5",tmp:"^0.2.5","tus-js-client":"^4.3.1",typescript:"^5.9.3"}};var ca=require("node:fs");var wt=fe(Wf(),1),Ko=require("node:process"),vn=fe(require("node:readline"),1),Qf=fe(require("node:readline"),1),tD=require("node:stream"),rD=fe(Jf(),1);function P2({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 $2=P2();function nD(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace($2,"")}function oD(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var iD={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 f=u[c],d=e.length(f);if(s>=o-(d==2?1:0))if(s+d<=i)a+=f;else break;s+=d}return a}})(iD);var I2=iD.exports,T2=oD(I2),R2=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},B2=oD(R2);function Ea(t,e={}){if(typeof t!="string"||t.length===0||(e={ambiguousIsNarrow:!0,...e},t=nD(t),t.length===0))return 0;t=t.replace(B2()," ");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(T2.eastAsianWidth(o)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}var Xf=10,Wy=(t=0)=>e=>`\x1B[${e+t}m`,Yy=(t=0)=>e=>`\x1B[${38+t};5;${e}m`,Jy=(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 N2=Object.keys(je.color),L2=Object.keys(je.bgColor);[...N2,...L2];function j2(){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=Wy(),je.color.ansi256=Yy(),je.color.ansi16m=Jy(),je.bgColor.ansi=Wy(Xf),je.bgColor.ansi256=Yy(Xf),je.bgColor.ansi16m=Jy(Xf),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 U2=j2(),lu=new Set(["\x1B","\x9B"]),M2=39,td="\x07",aD="[",q2="]",sD="m",rd=`${q2}8;;`,Xy=t=>`${lu.values().next().value}${aD}${t}${sD}`,Zy=t=>`${lu.values().next().value}${rd}${t}${td}`,H2=t=>t.split(" ").map(e=>Ea(e)),Zf=(t,e,r)=>{let n=[...e],o=!1,i=!1,a=Ea(nD(t[t.length-1]));for(let[s,u]of n.entries()){let c=Ea(u);if(a+c<=r?t[t.length-1]+=u:(t.push(u),a=0),lu.has(u)&&(o=!0,i=n.slice(s+1).join("").startsWith(rd)),o){i?u===td&&(o=!1,i=!1):u===sD&&(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())},V2=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!(Ea(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},z2=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let n="",o,i,a=H2(t),s=[""];for(let[c,f]of t.split(" ").entries()){r.trim!==!1&&(s[s.length-1]=s[s.length-1].trimStart());let d=Ea(s[s.length-1]);if(c!==0&&(d>=e&&(r.wordWrap===!1||r.trim===!1)&&(s.push(""),d=0),(d>0||r.trim===!1)&&(s[s.length-1]+=" ",d++)),r.hard&&a[c]>e){let p=e-d,h=1+Math.floor((a[c]-p-1)/e);Math.floor((a[c]-1)/e)<h&&s.push(""),Zf(s,f,e);continue}if(d+a[c]>e&&d>0&&a[c]>0){if(r.wordWrap===!1&&d<e){Zf(s,f,e);continue}s.push("")}if(d+a[c]>e&&r.wordWrap===!1){Zf(s,f,e);continue}s[s.length-1]+=f}r.trim!==!1&&(s=s.map(c=>V2(c)));let u=[...s.join(`
|
|
107
|
+
`,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 RO=x((mX,TO)=>{"use strict";var YM=pf(),{MAX_LENGTH:PO,CHAR_BACKSLASH:ry,CHAR_BACKTICK:JM,CHAR_COMMA:XM,CHAR_DOT:ZM,CHAR_LEFT_PARENTHESES:QM,CHAR_RIGHT_PARENTHESES:e9,CHAR_LEFT_CURLY_BRACE:t9,CHAR_RIGHT_CURLY_BRACE:r9,CHAR_LEFT_SQUARE_BRACKET:$O,CHAR_RIGHT_SQUARE_BRACKET:IO,CHAR_DOUBLE_QUOTE:n9,CHAR_SINGLE_QUOTE:o9,CHAR_NO_BREAK_SPACE:i9,CHAR_ZERO_WIDTH_NOBREAK_SPACE:a9}=kO(),s9=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},n=typeof r.maxLength=="number"?Math.min(PO,r.maxLength):PO;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,f=0,d=0,p,h=()=>t[f++],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"});f<c;)if(a=i[i.length-1],p=h(),!(p===a9||p===i9)){if(p===ry){m({type:"text",value:(e.keepEscaping?p:"")+h()});continue}if(p===IO){m({type:"text",value:"\\"+p});continue}if(p===$O){u++;let y;for(;f<c&&(y=h());){if(p+=y,y===$O){u++;continue}if(y===ry){p+=h();continue}if(y===IO&&(u--,u===0))break}m({type:"text",value:p});continue}if(p===QM){a=m({type:"paren",nodes:[]}),i.push(a),m({type:"text",value:p});continue}if(p===e9){if(a.type!=="paren"){m({type:"text",value:p});continue}a=i.pop(),m({type:"text",value:p}),a=i[i.length-1];continue}if(p===n9||p===o9||p===JM){let y=p,b;for(e.keepQuotes!==!0&&(p="");f<c&&(b=h());){if(b===ry){p+=b+h();continue}if(b===y){e.keepQuotes===!0&&(p+=b);break}p+=b}m({type:"text",value:p});continue}if(p===t9){d++;let b={type:"brace",open:!0,close:!1,dollar:s.value&&s.value.slice(-1)==="$"||a.dollar===!0,depth:d,commas:0,ranges:0,nodes:[]};a=m(b),i.push(a),m({type:"open",value:p});continue}if(p===r9){if(a.type!=="brace"){m({type:"text",value:p});continue}let y="close";a=i.pop(),a.close=!0,m({type:y,value:p}),d--,a=i[i.length-1];continue}if(p===XM&&d>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:p}),a.commas++;continue}if(p===ZM&&d>0&&a.commas===0){let y=a.nodes;if(d===0||y.length===0){m({type:"text",value:p});continue}if(s.type==="dot"){if(a.range=[],s.value+=p,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 b=y[y.length-1];b.value+=s.value+p,s=b,a.ranges--;continue}m({type:"dot",value:p});continue}m({type:"text",value:p})}do if(a=i.pop(),a.type!=="root"){a.nodes.forEach(v=>{v.nodes||(v.type==="open"&&(v.isOpen=!0),v.type==="close"&&(v.isClose=!0),v.nodes||(v.type="text"),v.invalid=!0)});let y=i[i.length-1],b=y.nodes.indexOf(a);y.nodes.splice(b,1,...a.nodes)}while(i.length>0);return m({type:"eos"}),o};TO.exports=s9});var LO=x((gX,NO)=>{"use strict";var BO=pf(),u9=SO(),c9=OO(),l9=RO(),ir=(t,e={})=>{let r=[];if(Array.isArray(t))for(let n of t){let o=ir.create(n,e);Array.isArray(o)?r.push(...o):r.push(o)}else r=[].concat(ir.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};ir.parse=(t,e={})=>l9(t,e);ir.stringify=(t,e={})=>BO(typeof t=="string"?ir.parse(t,e):t,e);ir.compile=(t,e={})=>(typeof t=="string"&&(t=ir.parse(t,e)),u9(t,e));ir.expand=(t,e={})=>{typeof t=="string"&&(t=ir.parse(t,e));let r=c9(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};ir.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?ir.compile(t,e):ir.expand(t,e);NO.exports=ir});var Vs=x((yX,HO)=>{"use strict";var f9=require("path"),Kr="\\\\/",jO=`[^${Kr}]`,Dn="\\.",d9="\\+",p9="\\?",gf="\\/",h9="(?=.)",UO="[^/]",ny=`(?:${gf}|$)`,MO=`(?:^|${gf})`,oy=`${Dn}{1,2}${ny}`,m9=`(?!${Dn})`,g9=`(?!${MO}${oy})`,y9=`(?!${Dn}{0,1}${ny})`,D9=`(?!${oy})`,b9=`[^.${gf}]`,w9=`${UO}*?`,qO={DOT_LITERAL:Dn,PLUS_LITERAL:d9,QMARK_LITERAL:p9,SLASH_LITERAL:gf,ONE_CHAR:h9,QMARK:UO,END_ANCHOR:ny,DOTS_SLASH:oy,NO_DOT:m9,NO_DOTS:g9,NO_DOT_SLASH:y9,NO_DOTS_SLASH:D9,QMARK_NO_DOT:b9,STAR:w9,START_ANCHOR:MO},v9={...qO,SLASH_LITERAL:`[${Kr}]`,QMARK:jO,STAR:`${jO}*?`,DOTS_SLASH:`${Dn}{1,2}(?:[${Kr}]|$)`,NO_DOT:`(?!${Dn})`,NO_DOTS:`(?!(?:^|[${Kr}])${Dn}{1,2}(?:[${Kr}]|$))`,NO_DOT_SLASH:`(?!${Dn}{0,1}(?:[${Kr}]|$))`,NO_DOTS_SLASH:`(?!${Dn}{1,2}(?:[${Kr}]|$))`,QMARK_NO_DOT:`[^.${Kr}]`,START_ANCHOR:`(?:^|[${Kr}])`,END_ANCHOR:`(?:[${Kr}]|$)`},C9={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"};HO.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:C9,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:f9.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?v9:qO}}});var zs=x(Jt=>{"use strict";var E9=require("path"),_9=process.platform==="win32",{REGEX_BACKSLASH:S9,REGEX_REMOVE_BACKSLASH:x9,REGEX_SPECIAL_CHARS:A9,REGEX_SPECIAL_CHARS_GLOBAL:O9}=Vs();Jt.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);Jt.hasRegexChars=t=>A9.test(t);Jt.isRegexChar=t=>t.length===1&&Jt.hasRegexChars(t);Jt.escapeRegex=t=>t.replace(O9,"\\$1");Jt.toPosixSlashes=t=>t.replace(S9,"/");Jt.removeBackslashes=t=>t.replace(x9,e=>e==="\\"?"":e);Jt.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};Jt.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:_9===!0||E9.sep==="\\";Jt.escapeLast=(t,e,r)=>{let n=t.lastIndexOf(e,r);return n===-1?t:t[n-1]==="\\"?Jt.escapeLast(t,e,n-1):`${t.slice(0,n)}\\${t.slice(n)}`};Jt.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};Jt.wrapOutput=(t,e={},r={})=>{let n=r.contains?"":"^",o=r.contains?"":"$",i=`${n}(?:${t})${o}`;return e.negated===!0&&(i=`(?:^(?!${i}).*$)`),i}});var XO=x((bX,JO)=>{"use strict";var VO=zs(),{CHAR_ASTERISK:iy,CHAR_AT:F9,CHAR_BACKWARD_SLASH:Ks,CHAR_COMMA:k9,CHAR_DOT:ay,CHAR_EXCLAMATION_MARK:sy,CHAR_FORWARD_SLASH:YO,CHAR_LEFT_CURLY_BRACE:uy,CHAR_LEFT_PARENTHESES:cy,CHAR_LEFT_SQUARE_BRACKET:P9,CHAR_PLUS:$9,CHAR_QUESTION_MARK:zO,CHAR_RIGHT_CURLY_BRACE:I9,CHAR_RIGHT_PARENTHESES:KO,CHAR_RIGHT_SQUARE_BRACKET:T9}=Vs(),GO=t=>t===YO||t===Ks,WO=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?1/0:1)},R9=(t,e)=>{let r=e||{},n=t.length-1,o=r.parts===!0||r.scanToEnd===!0,i=[],a=[],s=[],u=t,c=-1,f=0,d=0,p=!1,h=!1,m=!1,y=!1,b=!1,v=!1,E=!1,g=!1,_=!1,S=!1,P=0,k,B,T={value:"",depth:0,isGlob:!1},L=()=>c>=n,O=()=>u.charCodeAt(c+1),q=()=>(k=B,u.charCodeAt(++c));for(;c<n;){B=q();let w;if(B===Ks){E=T.backslashes=!0,B=q(),B===uy&&(v=!0);continue}if(v===!0||B===uy){for(P++;L()!==!0&&(B=q());){if(B===Ks){E=T.backslashes=!0,q();continue}if(B===uy){P++;continue}if(v!==!0&&B===ay&&(B=q())===ay){if(p=T.isBrace=!0,m=T.isGlob=!0,S=!0,o===!0)continue;break}if(v!==!0&&B===k9){if(p=T.isBrace=!0,m=T.isGlob=!0,S=!0,o===!0)continue;break}if(B===I9&&(P--,P===0)){v=!1,p=T.isBrace=!0,S=!0;break}}if(o===!0)continue;break}if(B===YO){if(i.push(c),a.push(T),T={value:"",depth:0,isGlob:!1},S===!0)continue;if(k===ay&&c===f+1){f+=2;continue}d=c+1;continue}if(r.noext!==!0&&(B===$9||B===F9||B===iy||B===zO||B===sy)===!0&&O()===cy){if(m=T.isGlob=!0,y=T.isExtglob=!0,S=!0,B===sy&&c===f&&(_=!0),o===!0){for(;L()!==!0&&(B=q());){if(B===Ks){E=T.backslashes=!0,B=q();continue}if(B===KO){m=T.isGlob=!0,S=!0;break}}continue}break}if(B===iy){if(k===iy&&(b=T.isGlobstar=!0),m=T.isGlob=!0,S=!0,o===!0)continue;break}if(B===zO){if(m=T.isGlob=!0,S=!0,o===!0)continue;break}if(B===P9){for(;L()!==!0&&(w=q());){if(w===Ks){E=T.backslashes=!0,q();continue}if(w===T9){h=T.isBracket=!0,m=T.isGlob=!0,S=!0;break}}if(o===!0)continue;break}if(r.nonegate!==!0&&B===sy&&c===f){g=T.negated=!0,f++;continue}if(r.noparen!==!0&&B===cy){if(m=T.isGlob=!0,o===!0){for(;L()!==!0&&(B=q());){if(B===cy){E=T.backslashes=!0,B=q();continue}if(B===KO){S=!0;break}}continue}break}if(m===!0){if(S=!0,o===!0)continue;break}}r.noext===!0&&(y=!1,m=!1);let j=u,Z="",F="";f>0&&(Z=u.slice(0,f),u=u.slice(f),d-=f),j&&m===!0&&d>0?(j=u.slice(0,d),F=u.slice(d)):m===!0?(j="",F=u):j=u,j&&j!==""&&j!=="/"&&j!==u&&GO(j.charCodeAt(j.length-1))&&(j=j.slice(0,-1)),r.unescape===!0&&(F&&(F=VO.removeBackslashes(F)),j&&E===!0&&(j=VO.removeBackslashes(j)));let D={prefix:Z,input:t,start:f,base:j,glob:F,isBrace:p,isBracket:h,isGlob:m,isExtglob:y,isGlobstar:b,negated:g,negatedExtglob:_};if(r.tokens===!0&&(D.maxDepth=0,GO(B)||a.push(T),D.tokens=a),r.parts===!0||r.tokens===!0){let w;for(let C=0;C<i.length;C++){let A=w?w+1:f,R=i[C],I=t.slice(A,R);r.tokens&&(C===0&&f!==0?(a[C].isPrefix=!0,a[C].value=Z):a[C].value=I,WO(a[C]),D.maxDepth+=a[C].depth),(C!==0||I!=="")&&s.push(I),w=R}if(w&&w+1<t.length){let C=t.slice(w+1);s.push(C),r.tokens&&(a[a.length-1].value=C,WO(a[a.length-1]),D.maxDepth+=a[a.length-1].depth)}D.slashes=i,D.parts=s}return D};JO.exports=R9});var eF=x((wX,QO)=>{"use strict";var yf=Vs(),ar=zs(),{MAX_LENGTH:Df,POSIX_REGEX_SOURCE:B9,REGEX_NON_SPECIAL_CHARS:N9,REGEX_SPECIAL_CHARS_BACKREF:L9,REPLACEMENTS:ZO}=yf,j9=(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=>ar.escapeRegex(o)).join("..")}return r},ga=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,ly=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=ZO[t]||t;let r={...e},n=typeof r.maxLength=="number"?Math.min(Df,r.maxLength):Df,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=ar.isWindows(e),c=yf.globChars(u),f=yf.extglobChars(c),{DOT_LITERAL:d,PLUS_LITERAL:p,SLASH_LITERAL:h,ONE_CHAR:m,DOTS_SLASH:y,NO_DOT:b,NO_DOT_SLASH:v,NO_DOTS_SLASH:E,QMARK:g,QMARK_NO_DOT:_,STAR:S,START_ANCHOR:P}=c,k=z=>`(${s}(?:(?!${P}${z.dot?y:d}).)*?)`,B=r.dot?"":b,T=r.dot?g:_,L=r.bash===!0?k(r):S;r.capture&&(L=`(${L})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let O={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=ar.removePrefix(t,O),o=t.length;let q=[],j=[],Z=[],F=i,D,w=()=>O.index===o-1,C=O.peek=(z=1)=>t[O.index+z],A=O.advance=()=>t[++O.index]||"",R=()=>t.slice(O.index+1),I=(z="",Se=0)=>{O.consumed+=z,O.index+=Se},H=z=>{O.output+=z.output!=null?z.output:z.value,I(z.value)},$=()=>{let z=1;for(;C()==="!"&&(C(2)!=="("||C(3)==="?");)A(),O.start++,z++;return z%2===0?!1:(O.negated=!0,O.start++,!0)},N=z=>{O[z]++,Z.push(z)},X=z=>{O[z]--,Z.pop()},U=z=>{if(F.type==="globstar"){let Se=O.braces>0&&(z.type==="comma"||z.type==="brace"),V=z.extglob===!0||q.length&&(z.type==="pipe"||z.type==="paren");z.type!=="slash"&&z.type!=="paren"&&!Se&&!V&&(O.output=O.output.slice(0,-F.output.length),F.type="star",F.value="*",F.output=L,O.output+=F.output)}if(q.length&&z.type!=="paren"&&(q[q.length-1].inner+=z.value),(z.value||z.output)&&H(z),F&&F.type==="text"&&z.type==="text"){F.value+=z.value,F.output=(F.output||"")+z.value;return}z.prev=F,a.push(z),F=z},oe=(z,Se)=>{let V={...f[Se],conditions:1,inner:""};V.prev=F,V.parens=O.parens,V.output=O.output;let de=(r.capture?"(":"")+V.open;N("parens"),U({type:z,value:Se,output:O.output?"":m}),U({type:"paren",extglob:!0,value:A(),output:de}),q.push(V)},Xt=z=>{let Se=z.close+(r.capture?")":""),V;if(z.type==="negate"){let de=L;if(z.inner&&z.inner.length>1&&z.inner.includes("/")&&(de=k(r)),(de!==L||w()||/^\)+$/.test(R()))&&(Se=z.close=`)$))${de}`),z.inner.includes("*")&&(V=R())&&/^\.[^\\/.]+$/.test(V)){let qe=ly(V,{...e,fastpaths:!1}).output;Se=z.close=`)${qe})${de})`}z.prev.type==="bos"&&(O.negatedExtglob=!0)}U({type:"paren",extglob:!0,value:D,output:Se}),X("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let z=!1,Se=t.replace(L9,(V,de,qe,At,nt,Ff)=>At==="\\"?(z=!0,V):At==="?"?de?de+At+(nt?g.repeat(nt.length):""):Ff===0?T+(nt?g.repeat(nt.length):""):g.repeat(qe.length):At==="."?d.repeat(qe.length):At==="*"?de?de+At+(nt?L:""):L:de?V:`\\${V}`);return z===!0&&(r.unescape===!0?Se=Se.replace(/\\/g,""):Se=Se.replace(/\\+/g,V=>V.length%2===0?"\\\\":V?"\\":"")),Se===t&&r.contains===!0?(O.output=t,O):(O.output=ar.wrapOutput(Se,O,e),O)}for(;!w();){if(D=A(),D==="\0")continue;if(D==="\\"){let V=C();if(V==="/"&&r.bash!==!0||V==="."||V===";")continue;if(!V){D+="\\",U({type:"text",value:D});continue}let de=/^\\+/.exec(R()),qe=0;if(de&&de[0].length>2&&(qe=de[0].length,O.index+=qe,qe%2!==0&&(D+="\\")),r.unescape===!0?D=A():D+=A(),O.brackets===0){U({type:"text",value:D});continue}}if(O.brackets>0&&(D!=="]"||F.value==="["||F.value==="[^")){if(r.posix!==!1&&D===":"){let V=F.value.slice(1);if(V.includes("[")&&(F.posix=!0,V.includes(":"))){let de=F.value.lastIndexOf("["),qe=F.value.slice(0,de),At=F.value.slice(de+2),nt=B9[At];if(nt){F.value=qe+nt,O.backtrack=!0,A(),!i.output&&a.indexOf(F)===1&&(i.output=m);continue}}}(D==="["&&C()!==":"||D==="-"&&C()==="]")&&(D=`\\${D}`),D==="]"&&(F.value==="["||F.value==="[^")&&(D=`\\${D}`),r.posix===!0&&D==="!"&&F.value==="["&&(D="^"),F.value+=D,H({value:D});continue}if(O.quotes===1&&D!=='"'){D=ar.escapeRegex(D),F.value+=D,H({value:D});continue}if(D==='"'){O.quotes=O.quotes===1?0:1,r.keepQuotes===!0&&U({type:"text",value:D});continue}if(D==="("){N("parens"),U({type:"paren",value:D});continue}if(D===")"){if(O.parens===0&&r.strictBrackets===!0)throw new SyntaxError(ga("opening","("));let V=q[q.length-1];if(V&&O.parens===V.parens+1){Xt(q.pop());continue}U({type:"paren",value:D,output:O.parens?")":"\\)"}),X("parens");continue}if(D==="["){if(r.nobracket===!0||!R().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(ga("closing","]"));D=`\\${D}`}else N("brackets");U({type:"bracket",value:D});continue}if(D==="]"){if(r.nobracket===!0||F&&F.type==="bracket"&&F.value.length===1){U({type:"text",value:D,output:`\\${D}`});continue}if(O.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(ga("opening","["));U({type:"text",value:D,output:`\\${D}`});continue}X("brackets");let V=F.value.slice(1);if(F.posix!==!0&&V[0]==="^"&&!V.includes("/")&&(D=`/${D}`),F.value+=D,H({value:D}),r.literalBrackets===!1||ar.hasRegexChars(V))continue;let de=ar.escapeRegex(F.value);if(O.output=O.output.slice(0,-F.value.length),r.literalBrackets===!0){O.output+=de,F.value=de;continue}F.value=`(${s}${de}|${F.value})`,O.output+=F.value;continue}if(D==="{"&&r.nobrace!==!0){N("braces");let V={type:"brace",value:D,output:"(",outputIndex:O.output.length,tokensIndex:O.tokens.length};j.push(V),U(V);continue}if(D==="}"){let V=j[j.length-1];if(r.nobrace===!0||!V){U({type:"text",value:D,output:D});continue}let de=")";if(V.dots===!0){let qe=a.slice(),At=[];for(let nt=qe.length-1;nt>=0&&(a.pop(),qe[nt].type!=="brace");nt--)qe[nt].type!=="dots"&&At.unshift(qe[nt].value);de=j9(At,r),O.backtrack=!0}if(V.comma!==!0&&V.dots!==!0){let qe=O.output.slice(0,V.outputIndex),At=O.tokens.slice(V.tokensIndex);V.value=V.output="\\{",D=de="\\}",O.output=qe;for(let nt of At)O.output+=nt.output||nt.value}U({type:"brace",value:D,output:de}),X("braces"),j.pop();continue}if(D==="|"){q.length>0&&q[q.length-1].conditions++,U({type:"text",value:D});continue}if(D===","){let V=D,de=j[j.length-1];de&&Z[Z.length-1]==="braces"&&(de.comma=!0,V="|"),U({type:"comma",value:D,output:V});continue}if(D==="/"){if(F.type==="dot"&&O.index===O.start+1){O.start=O.index+1,O.consumed="",O.output="",a.pop(),F=i;continue}U({type:"slash",value:D,output:h});continue}if(D==="."){if(O.braces>0&&F.type==="dot"){F.value==="."&&(F.output=d);let V=j[j.length-1];F.type="dots",F.output+=D,F.value+=D,V.dots=!0;continue}if(O.braces+O.parens===0&&F.type!=="bos"&&F.type!=="slash"){U({type:"text",value:D,output:d});continue}U({type:"dot",value:D,output:d});continue}if(D==="?"){if(!(F&&F.value==="(")&&r.noextglob!==!0&&C()==="("&&C(2)!=="?"){oe("qmark",D);continue}if(F&&F.type==="paren"){let de=C(),qe=D;if(de==="<"&&!ar.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(F.value==="("&&!/[!=<:]/.test(de)||de==="<"&&!/<([!=]|\w+>)/.test(R()))&&(qe=`\\${D}`),U({type:"text",value:D,output:qe});continue}if(r.dot!==!0&&(F.type==="slash"||F.type==="bos")){U({type:"qmark",value:D,output:_});continue}U({type:"qmark",value:D,output:g});continue}if(D==="!"){if(r.noextglob!==!0&&C()==="("&&(C(2)!=="?"||!/[!=<:]/.test(C(3)))){oe("negate",D);continue}if(r.nonegate!==!0&&O.index===0){$();continue}}if(D==="+"){if(r.noextglob!==!0&&C()==="("&&C(2)!=="?"){oe("plus",D);continue}if(F&&F.value==="("||r.regex===!1){U({type:"plus",value:D,output:p});continue}if(F&&(F.type==="bracket"||F.type==="paren"||F.type==="brace")||O.parens>0){U({type:"plus",value:D});continue}U({type:"plus",value:p});continue}if(D==="@"){if(r.noextglob!==!0&&C()==="("&&C(2)!=="?"){U({type:"at",extglob:!0,value:D,output:""});continue}U({type:"text",value:D});continue}if(D!=="*"){(D==="$"||D==="^")&&(D=`\\${D}`);let V=N9.exec(R());V&&(D+=V[0],O.index+=V[0].length),U({type:"text",value:D});continue}if(F&&(F.type==="globstar"||F.star===!0)){F.type="star",F.star=!0,F.value+=D,F.output=L,O.backtrack=!0,O.globstar=!0,I(D);continue}let z=R();if(r.noextglob!==!0&&/^\([^?]/.test(z)){oe("star",D);continue}if(F.type==="star"){if(r.noglobstar===!0){I(D);continue}let V=F.prev,de=V.prev,qe=V.type==="slash"||V.type==="bos",At=de&&(de.type==="star"||de.type==="globstar");if(r.bash===!0&&(!qe||z[0]&&z[0]!=="/")){U({type:"star",value:D,output:""});continue}let nt=O.braces>0&&(V.type==="comma"||V.type==="brace"),Ff=q.length&&(V.type==="pipe"||V.type==="paren");if(!qe&&V.type!=="paren"&&!nt&&!Ff){U({type:"star",value:D,output:""});continue}for(;z.slice(0,3)==="/**";){let Zs=t[O.index+4];if(Zs&&Zs!=="/")break;z=z.slice(3),I("/**",3)}if(V.type==="bos"&&w()){F.type="globstar",F.value+=D,F.output=k(r),O.output=F.output,O.globstar=!0,I(D);continue}if(V.type==="slash"&&V.prev.type!=="bos"&&!At&&w()){O.output=O.output.slice(0,-(V.output+F.output).length),V.output=`(?:${V.output}`,F.type="globstar",F.output=k(r)+(r.strictSlashes?")":"|$)"),F.value+=D,O.globstar=!0,O.output+=V.output+F.output,I(D);continue}if(V.type==="slash"&&V.prev.type!=="bos"&&z[0]==="/"){let Zs=z[1]!==void 0?"|$":"";O.output=O.output.slice(0,-(V.output+F.output).length),V.output=`(?:${V.output}`,F.type="globstar",F.output=`${k(r)}${h}|${h}${Zs})`,F.value+=D,O.output+=V.output+F.output,O.globstar=!0,I(D+A()),U({type:"slash",value:"/",output:""});continue}if(V.type==="bos"&&z[0]==="/"){F.type="globstar",F.value+=D,F.output=`(?:^|${h}|${k(r)}${h})`,O.output=F.output,O.globstar=!0,I(D+A()),U({type:"slash",value:"/",output:""});continue}O.output=O.output.slice(0,-F.output.length),F.type="globstar",F.output=k(r),F.value+=D,O.output+=F.output,O.globstar=!0,I(D);continue}let Se={type:"star",value:D,output:L};if(r.bash===!0){Se.output=".*?",(F.type==="bos"||F.type==="slash")&&(Se.output=B+Se.output),U(Se);continue}if(F&&(F.type==="bracket"||F.type==="paren")&&r.regex===!0){Se.output=D,U(Se);continue}(O.index===O.start||F.type==="slash"||F.type==="dot")&&(F.type==="dot"?(O.output+=v,F.output+=v):r.dot===!0?(O.output+=E,F.output+=E):(O.output+=B,F.output+=B),C()!=="*"&&(O.output+=m,F.output+=m)),U(Se)}for(;O.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(ga("closing","]"));O.output=ar.escapeLast(O.output,"["),X("brackets")}for(;O.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(ga("closing",")"));O.output=ar.escapeLast(O.output,"("),X("parens")}for(;O.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(ga("closing","}"));O.output=ar.escapeLast(O.output,"{"),X("braces")}if(r.strictSlashes!==!0&&(F.type==="star"||F.type==="bracket")&&U({type:"maybe_slash",value:"",output:`${h}?`}),O.backtrack===!0){O.output="";for(let z of O.tokens)O.output+=z.output!=null?z.output:z.value,z.suffix&&(O.output+=z.suffix)}return O};ly.fastpaths=(t,e)=>{let r={...e},n=typeof r.maxLength=="number"?Math.min(Df,r.maxLength):Df,o=t.length;if(o>n)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${n}`);t=ZO[t]||t;let i=ar.isWindows(e),{DOT_LITERAL:a,SLASH_LITERAL:s,ONE_CHAR:u,DOTS_SLASH:c,NO_DOT:f,NO_DOTS:d,NO_DOTS_SLASH:p,STAR:h,START_ANCHOR:m}=yf.globChars(i),y=r.dot?d:f,b=r.dot?p:f,v=r.capture?"":"?:",E={negated:!1,prefix:""},g=r.bash===!0?".*?":h;r.capture&&(g=`(${g})`);let _=B=>B.noglobstar===!0?g:`(${v}(?:(?!${m}${B.dot?c:a}).)*?)`,S=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}${b}${g}`;case"**":return y+_(r);case"**/*":return`(?:${y}${_(r)}${s})?${b}${u}${g}`;case"**/*.*":return`(?:${y}${_(r)}${s})?${b}${g}${a}${u}${g}`;case"**/.*":return`(?:${y}${_(r)}${s})?${a}${u}${g}`;default:{let T=/^(.*?)\.(\w+)$/.exec(B);if(!T)return;let L=S(T[1]);return L?L+a+T[2]:void 0}}},P=ar.removePrefix(t,E),k=S(P);return k&&r.strictSlashes!==!0&&(k+=`${s}?`),k};QO.exports=ly});var rF=x((vX,tF)=>{"use strict";var U9=require("path"),M9=XO(),fy=eF(),dy=zs(),q9=Vs(),H9=t=>t&&typeof t=="object"&&!Array.isArray(t),tt=(t,e,r=!1)=>{if(Array.isArray(t)){let f=t.map(p=>tt(p,e,r));return p=>{for(let h of f){let m=h(p);if(m)return m}return!1}}let n=H9(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=dy.isWindows(e),a=n?tt.compileRe(t,e):tt.makeRe(t,e,!1,!0),s=a.state;delete a.state;let u=()=>!1;if(o.ignore){let f={...e,ignore:null,onMatch:null,onResult:null};u=tt(o.ignore,f,r)}let c=(f,d=!1)=>{let{isMatch:p,match:h,output:m}=tt.test(f,a,e,{glob:t,posix:i}),y={glob:t,state:s,regex:a,posix:i,input:f,output:m,match:h,isMatch:p};return typeof o.onResult=="function"&&o.onResult(y),p===!1?(y.isMatch=!1,d?y:!1):u(f)?(typeof o.onIgnore=="function"&&o.onIgnore(y),y.isMatch=!1,d?y:!1):(typeof o.onMatch=="function"&&o.onMatch(y),d?y:!0)};return r&&(c.state=s),c};tt.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?dy.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=tt.matchBase(t,e,r,o):s=e.exec(u)),{isMatch:!!s,match:s,output:u}};tt.matchBase=(t,e,r,n=dy.isWindows(r))=>(e instanceof RegExp?e:tt.makeRe(e,r)).test(U9.basename(t));tt.isMatch=(t,e,r)=>tt(e,r)(t);tt.parse=(t,e)=>Array.isArray(t)?t.map(r=>tt.parse(r,e)):fy(t,{...e,fastpaths:!1});tt.scan=(t,e)=>M9(t,e);tt.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=tt.toRegex(s,e);return n===!0&&(u.state=t),u};tt.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=fy.fastpaths(t,e)),o.output||(o=fy(t,e)),tt.compileRe(o,e,r,n)};tt.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/$^/}};tt.constants=q9;tF.exports=tt});var oF=x((CX,nF)=>{"use strict";nF.exports=rF()});var lF=x((EX,cF)=>{"use strict";var aF=require("util"),sF=LO(),Gr=oF(),py=zs(),iF=t=>t===""||t==="./",uF=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=f=>{i.add(f.output),r&&r.onResult&&r.onResult(f)};for(let f=0;f<e.length;f++){let d=Gr(String(e[f]),{...r,onResult:s},!0),p=d.state.negated||d.state.negatedExtglob;p&&a++;for(let h of t){let m=d(h,!0);(p?!m.isMatch:m.isMatch)&&(p?n.add(m.output):(n.delete(m.output),o.add(m.output)))}}let c=(a===e.length?[...i]:[...o]).filter(f=>!n.has(f));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(f=>f.replace(/\\/g,"")):e}return c};Le.match=Le;Le.matcher=(t,e)=>Gr(t,e);Le.isMatch=(t,e,r)=>Gr(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(iF(t)||iF(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(!py.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=Gr(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=Gr(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=>Gr(n,r)(t))};Le.capture=(t,e,r)=>{let n=py.isWindows(r),i=Gr.makeRe(String(t),{...r,capture:!0}).exec(n?py.toPosixSlashes(e):e);if(i)return i.slice(1).map(a=>a===void 0?"":a)};Le.makeRe=(...t)=>Gr.makeRe(...t);Le.scan=(...t)=>Gr.scan(...t);Le.parse=(t,e)=>{let r=[];for(let n of[].concat(t||[]))for(let o of sF(String(n),e))r.push(Gr.parse(o,e));return r};Le.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!uF(t)?[t]:sF(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=uF;cF.exports=Le});var WF=x((EZ,bn)=>{var Ie=require("fs"),Sf=require("os"),bt=require("path"),PF=require("crypto"),Yr={fs:Ie.constants,os:Sf.constants},$F="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",BF=/XXXXXX/,g7=3,NF=(Yr.O_CREAT||Yr.fs.O_CREAT)|(Yr.O_EXCL||Yr.fs.O_EXCL)|(Yr.O_RDWR||Yr.fs.O_RDWR),y7=Sf.platform()==="win32",D7=Yr.EBADF||Yr.os.errno.EBADF,b7=Yr.ENOENT||Yr.os.errno.ENOENT,LF=448,jF=384,w7="exit",Da=[],UF=Ie.rmdirSync.bind(Ie),MF=!1;function v7(t,e){return Ie.rm(t,{recursive:!0},e)}function qF(t){return Ie.rmSync(t,{recursive:!0})}function Dy(t,e){let r=ba(t,e),n=r[0],o=r[1];P7(n,function(i,a){if(i)return o(i);let s=a.tries;(function u(){try{let c=VF(a);Ie.stat(c,function(f){if(!f)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 by(t){let e=ba(t),r=e[0],n=$7(r),o=n.tries;do{let i=VF(n);try{Ie.statSync(i)}catch{return i}}while(o-- >0);throw new Error("Could not get a unique tmp filename, max tries reached")}function C7(t,e){let r=ba(t,e),n=r[0],o=r[1];Dy(n,function(a,s){if(a)return o(a);Ie.open(s,NF,n.mode||jF,function(c,f){if(c)return o(c);if(n.discardDescriptor)return Ie.close(f,function(p){return o(p,s,void 0,gy(s,-1,n,!1))});{let d=n.discardDescriptor||n.detachDescriptor;o(null,s,f,gy(s,d?-1:f,n,!1))}})})}function E7(t){let e=ba(t),r=e[0],n=r.discardDescriptor||r.detachDescriptor,o=by(r),i=Ie.openSync(o,NF,r.mode||jF);return r.discardDescriptor&&(Ie.closeSync(i),i=void 0),{name:o,fd:i,removeCallback:gy(o,n?-1:i,r,!0)}}function _7(t,e){let r=ba(t,e),n=r[0],o=r[1];Dy(n,function(a,s){if(a)return o(a);Ie.mkdir(s,n.mode||LF,function(c){if(c)return o(c);o(null,s,HF(s,n,!1))})})}function S7(t){let e=ba(t),r=e[0],n=by(r);return Ie.mkdirSync(n,r.mode||LF),{name:n,removeCallback:HF(n,r,!0)}}function x7(t,e){let r=function(n){if(n&&!yy(n))return e(n);e()};0<=t[0]?Ie.close(t[0],function(){Ie.unlink(t[1],r)}):Ie.unlink(t[1],r)}function A7(t){let e=null;try{0<=t[0]&&Ie.closeSync(t[0])}catch(r){if(!I7(r)&&!yy(r))throw r}finally{try{Ie.unlinkSync(t[1])}catch(r){yy(r)||(e=r)}}if(e!==null)throw e}function gy(t,e,r,n){let o=_f(A7,[e,t],n),i=_f(x7,[e,t],n,o);return r.keep||Da.unshift(o),n?o:i}function HF(t,e,r){let n=e.unsafeCleanup?v7:Ie.rmdir.bind(Ie),o=e.unsafeCleanup?qF:UF,i=_f(o,t,r),a=_f(n,t,r,i);return e.keep||Da.unshift(i),r?i:a}function _f(t,e,r,n){let o=!1;return function i(a){if(!o){let s=n||i,u=Da.indexOf(s);return u>=0&&Da.splice(u,1),o=!0,r||t===UF||t===qF?t(e):t(e,a||function(){})}}}function O7(){if(MF)for(;Da.length;)try{Da[0]()}catch{}}function IF(t){let e=[],r=null;try{r=PF.randomBytes(t)}catch{r=PF.pseudoRandomBytes(t)}for(let n=0;n<t;n++)e.push($F[r[n]%$F.length]);return e.join("")}function sr(t){return typeof t>"u"}function ba(t,e){if(typeof t=="function")return[{},t];if(sr(t))return[{},e];let r={};for(let n of Object.getOwnPropertyNames(t))r[n]=t[n];return[r,e]}function F7(t,e,r){let n=bt.isAbsolute(t)?t:bt.join(e,t);Ie.stat(n,function(o){o?Ie.realpath(bt.dirname(n),function(i,a){if(i)return r(i);r(null,bt.join(a,bt.basename(n)))}):Ie.realpath(n,r)})}function k7(t,e){let r=bt.isAbsolute(t)?t:bt.join(e,t);try{return Ie.statSync(r),Ie.realpathSync(r)}catch{let o=Ie.realpathSync(bt.dirname(r));return bt.join(o,bt.basename(r))}}function VF(t){let e=t.tmpdir;if(!sr(t.name))return bt.join(e,t.dir,t.name);if(!sr(t.template))return bt.join(e,t.dir,t.template).replace(BF,IF(6));let r=[t.prefix?t.prefix:"tmp","-",process.pid,"-",IF(12),t.postfix?"-"+t.postfix:""].join("");return bt.join(e,t.dir,r)}function zF(t){if(!sr(t.name)){let e=t.name;if(bt.isAbsolute(e))throw new Error(`name option must not contain an absolute path, found "${e}".`);let r=bt.basename(e);if(r===".."||r==="."||r!==e)throw new Error(`name option must not contain a path, found "${e}".`)}if(!sr(t.template)&&!t.template.match(BF))throw new Error(`Invalid template, found "${t.template}".`);if(!sr(t.tries)&&isNaN(t.tries)||t.tries<0)throw new Error(`Invalid tries, found "${t.tries}".`);t.tries=sr(t.name)?t.tries||g7:1,t.keep=!!t.keep,t.detachDescriptor=!!t.detachDescriptor,t.discardDescriptor=!!t.discardDescriptor,t.unsafeCleanup=!!t.unsafeCleanup,t.prefix=sr(t.prefix)?"":t.prefix,t.postfix=sr(t.postfix)?"":t.postfix}function TF(t,e,r,n){if(sr(e))return n(null);F7(e,r,function(o,i){if(o)return n(o);let a=bt.relative(r,i);if(!i.startsWith(r))return n(new Error(`${t} option must be relative to "${r}", found "${a}".`));n(null,a)})}function RF(t,e,r){if(sr(e))return;let n=k7(e,r),o=bt.relative(r,n);if(!n.startsWith(r))throw new Error(`${t} option must be relative to "${r}", found "${o}".`);return o}function P7(t,e){R7(t,function(r,n){if(r)return e(r);t.tmpdir=n;try{zF(t,n)}catch(o){return e(o)}TF("dir",t.dir,n,function(o,i){if(o)return e(o);t.dir=sr(i)?"":i,TF("template",t.template,n,function(a,s){if(a)return e(a);t.template=s,e(null,t)})})})}function $7(t){let e=t.tmpdir=GF(t);zF(t,e);let r=RF("dir",t.dir,e);return t.dir=sr(r)?"":r,t.template=RF("template",t.template,e),t}function I7(t){return KF(t,-D7,"EBADF")}function yy(t){return KF(t,-b7,"ENOENT")}function KF(t,e,r){return y7?t.code===r:t.code===r&&t.errno===e}function T7(){MF=!0}function R7(t,e){return Ie.realpath(t&&t.tmpdir||Sf.tmpdir(),e)}function GF(t){return Ie.realpathSync(t&&t.tmpdir||Sf.tmpdir())}process.addListener(w7,O7);Object.defineProperty(bn.exports,"tmpdir",{enumerable:!0,configurable:!1,get:function(){return GF()}});bn.exports.dir=_7;bn.exports.dirSync=S7;bn.exports.file=C7;bn.exports.fileSync=E7;bn.exports.tmpName=Dy;bn.exports.tmpNameSync=by;bn.exports.setGracefulCleanup=T7});var Af=require("node:process");var Vy=fe(Hy(),1),{program:it,createCommand:bq,createArgument:wq,createOption:vq,CommanderError:Cq,InvalidArgumentError:Eq,InvalidOptionArgumentError:_q,Command:Sq,Argument:xq,Option:Aq,Help:Oq}=Vy.default;var Cr={name:"@capgo/cli",version:"7.50.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:version-detection":"node test/test-get-installed-version.mjs","test:version-detection:setup":"./test/fixtures/setup-test-projects.sh",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 && bun run test:version-detection"},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.27.0",eslint:"^9.38.0","git-format-staged":"3.1.1",husky:"^9.1.7","is-wsl":"^3.1.0",open:"^11.0.0",prettyjson:"^1.2.5",tmp:"^0.2.5","tus-js-client":"^4.3.1",typescript:"^5.9.3"}};var ca=require("node:fs");var wt=fe(Wf(),1),Ko=require("node:process"),vn=fe(require("node:readline"),1),Qf=fe(require("node:readline"),1),tD=require("node:stream"),rD=fe(Jf(),1);function P2({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 $2=P2();function nD(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace($2,"")}function oD(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var iD={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 f=u[c],d=e.length(f);if(s>=o-(d==2?1:0))if(s+d<=i)a+=f;else break;s+=d}return a}})(iD);var I2=iD.exports,T2=oD(I2),R2=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},B2=oD(R2);function Ea(t,e={}){if(typeof t!="string"||t.length===0||(e={ambiguousIsNarrow:!0,...e},t=nD(t),t.length===0))return 0;t=t.replace(B2()," ");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(T2.eastAsianWidth(o)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}var Xf=10,Wy=(t=0)=>e=>`\x1B[${e+t}m`,Yy=(t=0)=>e=>`\x1B[${38+t};5;${e}m`,Jy=(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 N2=Object.keys(je.color),L2=Object.keys(je.bgColor);[...N2,...L2];function j2(){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=Wy(),je.color.ansi256=Yy(),je.color.ansi16m=Jy(),je.bgColor.ansi=Wy(Xf),je.bgColor.ansi256=Yy(Xf),je.bgColor.ansi16m=Jy(Xf),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 U2=j2(),lu=new Set(["\x1B","\x9B"]),M2=39,td="\x07",aD="[",q2="]",sD="m",rd=`${q2}8;;`,Xy=t=>`${lu.values().next().value}${aD}${t}${sD}`,Zy=t=>`${lu.values().next().value}${rd}${t}${td}`,H2=t=>t.split(" ").map(e=>Ea(e)),Zf=(t,e,r)=>{let n=[...e],o=!1,i=!1,a=Ea(nD(t[t.length-1]));for(let[s,u]of n.entries()){let c=Ea(u);if(a+c<=r?t[t.length-1]+=u:(t.push(u),a=0),lu.has(u)&&(o=!0,i=n.slice(s+1).join("").startsWith(rd)),o){i?u===td&&(o=!1,i=!1):u===sD&&(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())},V2=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!(Ea(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},z2=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let n="",o,i,a=H2(t),s=[""];for(let[c,f]of t.split(" ").entries()){r.trim!==!1&&(s[s.length-1]=s[s.length-1].trimStart());let d=Ea(s[s.length-1]);if(c!==0&&(d>=e&&(r.wordWrap===!1||r.trim===!1)&&(s.push(""),d=0),(d>0||r.trim===!1)&&(s[s.length-1]+=" ",d++)),r.hard&&a[c]>e){let p=e-d,h=1+Math.floor((a[c]-p-1)/e);Math.floor((a[c]-1)/e)<h&&s.push(""),Zf(s,f,e);continue}if(d+a[c]>e&&d>0&&a[c]>0){if(r.wordWrap===!1&&d<e){Zf(s,f,e);continue}s.push("")}if(d+a[c]>e&&r.wordWrap===!1){Zf(s,f,e);continue}s[s.length-1]+=f}r.trim!==!1&&(s=s.map(c=>V2(c)));let u=[...s.join(`
|
|
108
108
|
`)];for(let[c,f]of u.entries()){if(n+=f,lu.has(f)){let{groups:p}=new RegExp(`(?:\\${aD}(?<code>\\d+)m|\\${rd}(?<uri>.*)${td})`).exec(u.slice(c).join(""))||{groups:{}};if(p.code!==void 0){let h=Number.parseFloat(p.code);o=h===M2?void 0:h}else p.uri!==void 0&&(i=p.uri.length===0?void 0:p.uri)}let d=U2.codes.get(Number(o));u[c+1]===`
|
|
109
109
|
`?(i&&(n+=Zy("")),o&&d&&(n+=Xy(d))):f===`
|
|
110
110
|
`&&(o&&d&&(n+=Xy(o)),i&&(n+=Zy(i)))}return n};function Qy(t,e,r){return String(t).normalize().replace(/\r\n/g,`
|
|
@@ -179,8 +179,8 @@ PS: You can ignore this check with "--ignore-checksum-check"`),new Error("Cannot
|
|
|
179
179
|
Location: ~/.capgo-credentials/credentials.json`),l.info(`
|
|
180
180
|
\u{1F512} These credentials are stored locally on your machine only.`),l.info(" When building, they are sent to Capgo but NEVER stored there."),l.info(" They are auto-deleted after build completion (max 24 hours)."),l.info(` Builds sent directly to app stores - Capgo keeps nothing.
|
|
181
181
|
`)}catch(e){l.error(`Failed to list credentials: ${e instanceof Error?e.message:String(e)}`),or.default.exit(1)}}async function b1(t){try{let e=await te(),r=t.appId||pe(void 0,e?.config);if(r&&t.platform){if(!await g1(r,t.platform)){l.info(`No ${t.platform.toUpperCase()} credentials found for ${r}.`);return}await Zl(r,t.platform),l.success(`\u2705 ${t.platform.toUpperCase()} credentials cleared for ${r}!`)}else if(r){let n=await Is(r);if(!n||!n.ios&&!n.android){l.info(`No credentials found for ${r}.`);return}await Zl(r),l.success(`\u2705 All credentials cleared for ${r}!`)}else{if((await Ug()).length===0){l.info("No saved credentials found.");return}await Zl(),l.success("\u2705 All credentials cleared for all apps!")}l.info(` Location: ~/.capgo-credentials/credentials.json
|
|
182
|
-
`)}catch(e){l.error(`Failed to clear credentials: ${e instanceof Error?e.message:String(e)}`),or.default.exit(1)}}var dn=require("node:fs"),kr=require("node:fs/promises"),v1=require("node:os"),Pr=require("node:path"),Mg=fe(require("node:process"));var C1=fe(Zp()),Ql=fe(Qc());async function sM(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){l.warn("Could not stream logs, continuing...");return}let a=i.body?.getReader();if(!a)return;let s=new TextDecoder;for(;;){let{done:
|
|
183
|
-
`);for(let p of d)if(p.startsWith("data: ")){let h=p.slice(6);h.trim()&&l.
|
|
182
|
+
`)}catch(e){l.error(`Failed to clear credentials: ${e instanceof Error?e.message:String(e)}`),or.default.exit(1)}}var dn=require("node:fs"),kr=require("node:fs/promises"),v1=require("node:os"),Pr=require("node:path"),Mg=fe(require("node:process"));var C1=fe(Zp()),Ql=fe(Qc());async function sM(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){l.warn("Could not stream logs, continuing...");return}let a=i.body?.getReader();if(!a)return;let s=new TextDecoder,u="";for(;;){let{done:c,value:f}=await a.read();if(c)break;u+=s.decode(f,{stream:!0});let d=u.split(`
|
|
183
|
+
`);u=d.pop()||"";for(let p of d)if(p.startsWith("data: ")){let h=p.slice(6);h.trim()&&l.info(h)}}if(u.startsWith("data: ")){let c=u.slice(6);c.trim()&&l.info(c)}}catch(i){o||l.warn(`Log streaming interrupted${i instanceof Error?`: ${i.message}`:""}`)}}async function uM(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||l.warn(`Status check failed: ${u.status}`),await new Promise(f=>setTimeout(f,5e3)),s++;continue}let c=await u.json();if(c.status==="succeeded"||c.status==="failed")return c.status;await new Promise(f=>setTimeout(f,5e3)),s++}catch(u){i||l.warn(`Status check error: ${u}`),await new Promise(c=>setTimeout(c,5e3)),s++}return i||l.warn("Build status polling timed out"),"timeout"}async function cM(t,e){let r=new Set;if(e==="ios"){let n=(0,Pr.join)(t,"ios/App/Podfile");if((0,dn.existsSync)(n)){let i=(await(0,kr.readFile)(n,"utf-8")).matchAll(/pod\s+['"][^'"]+['"],\s*:path\s*=>\s*['"]\.\.\/\.\.\/node_modules\/([^'"]+)['"]/g);for(let a of i){let s=a[1];r.add(`node_modules/${s}/Package.swift`),r.add(`node_modules/${s}/*.podspec`),r.add(`node_modules/${s}/ios/`)}}}else if(e==="android"){let n=(0,Pr.join)(t,"android/capacitor.settings.gradle");if((0,dn.existsSync)(n)){let i=(await(0,kr.readFile)(n,"utf-8")).matchAll(/new\s+File\s*\(\s*['"]\.\.\/node_modules\/([^'"]+)['"]\s*\)/g);for(let a of i){let u=a[1].replace(/\/android$/,"");r.add(`node_modules/${u}/android/`)}}}return r}function w1(t,e,r){let n=t.replace(/\\/g,"/");if(n.startsWith(`${e}/`)||n==="package.json"||n==="package-lock.json"||n.startsWith("capacitor.config.")||n.startsWith("resources/")||e==="ios"&&n.startsWith("node_modules/@capacitor/ios/")||e==="android"&&n.startsWith("node_modules/@capacitor/android/"))return!0;for(let o of r)if(n.startsWith(o))return!0;return!1}function Ts(t,e,r,n,o){let i=(0,dn.readdirSync)(e);for(let a of i){let s=(0,Pr.join)(e,a),u=r?`${r}/${a}`:a,c=(0,dn.statSync)(s);if(c.isDirectory()){if(a===".git"||a==="dist"||a==="build"||a===".angular"||a===".vite")continue;if(a===n){Ts(t,s,u,n,o);continue}if(a==="node_modules"){Ts(t,s,u,n,o);continue}if(a==="resources"){Ts(t,s,u,n,o);continue}let f=u.replace(/\\/g,"/");(w1(u,n,o)||Array.from(o).some(p=>p.startsWith(`${f}/`)))&&Ts(t,s,u,n,o)}else if(c.isFile()){if(a===".DS_Store"||a.endsWith(".log"))continue;w1(u,n,o)&&t.addLocalFile(s,r||void 0)}}}async function lM(t,e,r){let n=await cM(t,r),o=new C1.default;Ts(o,t,"",r,n),await(0,kr.writeFile)(e,o.toBuffer())}async function fM(t,e,r=!1){let n=Date.now(),o=e.verbose??!1;try{e.apikey=e.apikey||ne(r);let i=await te();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 a=(0,Pr.resolve)(e.path||Mg.default.cwd()),s=e.supaHost||"https://api.capgo.app",u=await re(e.apikey,e.supaHost,e.supaAnon);await ae(u,e.apikey,["write","all"]);let c=await Ct(u,t);r||(l.info(`Requesting native build for ${t}`),l.info(`Platform: ${e.platform}`),l.info(`Project: ${a}`),l.info(`
|
|
184
184
|
\u{1F512} Security: Credentials are never stored on Capgo servers`),l.info(" They are used only during build and deleted after (max 24h)"),l.info(` Builds sent directly to app stores - Capgo keeps nothing
|
|
185
185
|
`)),o&&l.info(`API host: ${s}`);let f={};e.buildCertificateBase64&&(f.BUILD_CERTIFICATE_BASE64=e.buildCertificateBase64),e.buildProvisionProfileBase64&&(f.BUILD_PROVISION_PROFILE_BASE64=e.buildProvisionProfileBase64),e.buildProvisionProfileBase64Prod&&(f.BUILD_PROVISION_PROFILE_BASE64_PROD=e.buildProvisionProfileBase64Prod),e.p12Password&&(f.P12_PASSWORD=e.p12Password),e.appleKeyId&&(f.APPLE_KEY_ID=e.appleKeyId),e.appleIssuerId&&(f.APPLE_ISSUER_ID=e.appleIssuerId),e.appleKeyContent&&(f.APPLE_KEY_CONTENT=e.appleKeyContent),e.appleProfileName&&(f.APPLE_PROFILE_NAME=e.appleProfileName),e.appStoreConnectTeamId&&(f.APP_STORE_CONNECT_TEAM_ID=e.appStoreConnectTeamId),e.androidKeystoreFile&&(f.ANDROID_KEYSTORE_FILE=e.androidKeystoreFile),e.keystoreKeyAlias&&(f.KEYSTORE_KEY_ALIAS=e.keystoreKeyAlias);let d=!!e.keystoreKeyPassword,p=!!e.keystoreStorePassword;d&&!p?(f.KEYSTORE_KEY_PASSWORD=e.keystoreKeyPassword,f.KEYSTORE_STORE_PASSWORD=e.keystoreKeyPassword):!d&&p?(f.KEYSTORE_KEY_PASSWORD=e.keystoreStorePassword,f.KEYSTORE_STORE_PASSWORD=e.keystoreStorePassword):d&&p&&(f.KEYSTORE_KEY_PASSWORD=e.keystoreKeyPassword,f.KEYSTORE_STORE_PASSWORD=e.keystoreStorePassword),e.playConfigJson&&(f.PLAY_CONFIG_JSON=e.playConfigJson);let h=await p1(t,e.platform,Object.keys(f).length>0?f:void 0),m={app_id:t,platform:e.platform};if(!h)throw r||(l.error("\u274C No credentials found for this app and platform"),l.error(""),l.error("You must provide credentials via:"),l.error(" 1. CLI arguments (--apple-key-id, --p12-password, etc.)"),l.error(" 2. Environment variables (APPLE_KEY_ID, P12_PASSWORD, etc.)"),l.error(" 3. Saved credentials file:"),l.error(` npx @capgo/cli build credentials save --appId ${t} --platform ${e.platform}`),l.error(""),l.error("Documentation:"),l.error(" https://capgo.app/docs/cli/cloud-build/credentials/")),new Error("No credentials found. Please provide credentials before building.");let y=[];if(e.platform==="ios"?(h.BUILD_CERTIFICATE_BASE64||y.push("BUILD_CERTIFICATE_BASE64 (or --build-certificate-base64)"),!h.P12_PASSWORD&&!r&&(l.warn("\u26A0\uFE0F P12_PASSWORD not provided - assuming certificate has no password"),l.warn(" If your certificate requires a password, provide it with --p12-password")),h.BUILD_PROVISION_PROFILE_BASE64||y.push("BUILD_PROVISION_PROFILE_BASE64 (or --build-provision-profile-base64)"),h.APPLE_KEY_ID||y.push("APPLE_KEY_ID (or --apple-key-id)"),h.APPLE_ISSUER_ID||y.push("APPLE_ISSUER_ID (or --apple-issuer-id)"),h.APPLE_KEY_CONTENT||y.push("APPLE_KEY_CONTENT (or --apple-key-content)"),h.APP_STORE_CONNECT_TEAM_ID||y.push("APP_STORE_CONNECT_TEAM_ID (or --apple-team-id)")):e.platform==="android"&&(h.ANDROID_KEYSTORE_FILE||y.push("ANDROID_KEYSTORE_FILE (or --android-keystore-file)"),h.KEYSTORE_KEY_ALIAS||y.push("KEYSTORE_KEY_ALIAS (or --keystore-key-alias)"),!h.KEYSTORE_KEY_PASSWORD&&!h.KEYSTORE_STORE_PASSWORD&&y.push("KEYSTORE_KEY_PASSWORD or KEYSTORE_STORE_PASSWORD (at least one password required)"),!h.PLAY_CONFIG_JSON&&!r&&l.warn("\u26A0\uFE0F PLAY_CONFIG_JSON not provided - build will succeed but cannot auto-upload to Play Store")),y.length>0){if(!r){l.error(`\u274C Missing required credentials for ${e.platform}:`),l.error("");for(let _ of y)l.error(` \u2022 ${_}`);l.error(""),l.error("Provide credentials via:"),l.error(' 1. CLI arguments: npx @capgo/cli build request --platform ios --apple-id "..." --p12-password "..."'),l.error(' 2. Environment variables: export APPLE_ID="..." P12_PASSWORD="..."'),l.error(" 3. Saved credentials: npx @capgo/cli build credentials save --platform ios ..."),l.error(""),l.error("Documentation:"),l.error(` https://capgo.app/docs/cli/cloud-build/${e.platform}/`)}throw new Error(`Missing required credentials for ${e.platform}: ${y.join(", ")}`)}if(m.credentials=h,r||l.info("\u2713 Using credentials (merged from CLI args, env vars, and saved file)"),o){let _=Object.keys(h).filter(S=>h[S]);l.info(`Credentials provided: ${_.join(", ")}`)}r||l.info("Requesting build from Capgo...");let b=await fetch(`${s}/build/request`,{method:"POST",headers:{"Content-Type":"application/json",authorization:e.apikey},body:JSON.stringify(m)});if(!b.ok){let _=await b.text();throw new Error(`Failed to request build: ${b.status} - ${_}`)}let v=await b.json();r||(l.success(`Build job created: ${v.job_id}`),l.info(`Status: ${v.status}`)),o&&(l.info(`Upload URL: ${v.upload_url}`),l.info(`Upload expires: ${v.upload_expires_at}`)),await me(e.apikey,{channel:"native-builder",event:"Build requested",icon:"\u{1F3D7}\uFE0F",user_id:c,tags:{"app-id":t,platform:e.platform},notify:!1}).catch();let E=(0,Pr.join)((0,v1.tmpdir)(),`capgo-build-${Date.now()}`);await(0,kr.mkdir)(E,{recursive:!0});let g=(0,Pr.join)(E,`${(0,Pr.basename)(a)}.zip`);try{r||l.info(`Zipping ${e.platform} project from ${a}...`),await lM(a,g,e.platform);let S=((await(0,kr.stat)(g)).size/1024/1024).toFixed(2);r||l.success(`Created zip: ${g} (${S} MB)`),r||l.info("Uploading to builder..."),o&&(l.info(`Upload endpoint: ${v.upload_url}`),l.info(`File size: ${S} MB`),l.info(`Job ID: ${v.job_id}`));let P=(0,dn.readFileSync)(g),k=Ee();r||k.start("Uploading bundle"),await new Promise((q,j)=>{let Z=new Ql.Upload(P,{endpoint:v.upload_url,chunkSize:5242880,metadata:{filename:(0,Pr.basename)(g),filetype:"application/zip"},headers:{authorization:e.apikey},onBeforeRequest(F){if(o){l.info(`[TUS] ${F.getMethod()} ${F.getURL()}`);let D=F.getHeader("authorization");l.info(`[TUS] Authorization header present: ${!!D}`)}},onAfterResponse(F,D){if(o){l.info(`[TUS] Response status: ${D.getStatus()}`);let w=D.getHeader("upload-offset"),C=D.getHeader("tus-resumable");l.info(`[TUS] Upload-Offset: ${w}, Tus-Resumable: ${C}`)}},onError(F){if(r||(k.stop("Upload failed"),l.error(`Upload error: ${F.message}`)),F instanceof Ql.DetailedError){let D=F.originalResponse?.getBody(),w=F.originalResponse?.getStatus(),C=F.originalRequest?.getURL();o&&(l.error(`[TUS] Request URL: ${C}`),l.error(`[TUS] Response status: ${w}`),l.error(`[TUS] Response body: ${D}`));let A="Unknown error";try{let R=JSON.parse(D||'{"error": "unknown error"}');A=R.status||R.error||R.message||"unknown error"}catch{A=D||F.message}j(new Error(`TUS upload failed: ${A}`))}else j(new Error(`TUS upload failed: ${F.message||F.toString()}`))},onProgress(F,D){let w=(F/D*100).toFixed(2);r||k.message(`Uploading ${w}%`)},onSuccess(){r||k.stop("Upload complete!"),o&&l.success("TUS upload completed successfully"),q()}});o&&l.info("[TUS] Starting upload..."),Z.start()}),r||l.info("Starting build job...");let B=await fetch(`${s}/build/start/${v.job_id}`,{method:"POST",headers:{"Content-Type":"application/json",authorization:e.apikey},body:JSON.stringify({app_id:t})});if(!B.ok){let q=await B.text();throw new Error(`Failed to start build: ${B.status} - ${q}`)}let T=await B.json();r||(l.success("Build started successfully!"),l.info(`Job ID: ${v.job_id}`),l.info(`Streaming build logs...
|
|
186
186
|
`)),await sM(s,v.job_id,t,e.apikey,r);let L=await uM(s,v.job_id,t,e.platform,e.apikey,r);r||(L==="succeeded"?l.success("Build completed successfully!"):L==="failed"?l.error("Build failed"):l.warn(`Build finished with status: ${L}`));let O=((Date.now()-n)/1e3).toFixed(2);return await me(e.apikey,{channel:"native-builder",event:L==="succeeded"?"Build succeeded":"Build failed",icon:L==="succeeded"?"\u2705":"\u274C",user_id:c,tags:{"app-id":t,platform:e.platform,status:L||"unknown",time:O},notify:!1}).catch(),{success:L==="succeeded",jobId:v.job_id,uploadUrl:v.upload_url,status:L||T.status||v.status}}finally{await(0,kr.rm)(E,{recursive:!0,force:!0})}}catch(i){let a=i instanceof Error?i.message:String(i);return r||l.error(a),{success:!1,error:a}}}async function E1(t,e){(await fM(t,e,!1)).success||Mg.default.exit(1)}async function _1(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||l.error(`Cannot check Version ${e}@${r.name}: ${M(s)}`),new Error(`Cannot check version ${e}@${r.name}: ${M(s)}`);if(!a?.length)return;if(o)throw new Error(`Version ${e}@${r.name} is used in ${a.length} channel(s)`);ee(`\u274C Version ${e}@${r.name} is used in ${a.length} channel${a.length>1?"s":""}`);let u=i;if(i||(u=await ue({message:"unlink it?"})===!0),!u)throw l.error("Unlink it first"),new Error(`Version ${e}@${r.name} is still linked to channel(s)`);for(let c of a){let f=Ee();f.start(`Unlinking channel ${c.name}`);let d=await qg(t,e,{silent:o});if(!d)throw f.stop(`Cannot find unknown version for ${e}`),new Error(`Cannot find unknown version for ${e}`);let{error:p}=await t.from("channels").update({version:d.id}).eq("id",c.id);if(p)throw f.stop(`Cannot update channel ${c.name} ${M(p)}`),new Error(`Cannot update channel ${c.name}: ${M(p)}`);f.stop(`\u2705 Channel ${c.name} unlinked`)}K(`Version unlinked from ${a.length} channel${a.length>1?"s":""}`)}async function qg(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||l.error(`Cannot call findUnknownVersion as it returned an error.
|
package/dist/package.json
CHANGED
|
@@ -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;AAY3C;;;;;;;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;IAGvB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;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;
|
|
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;AAY3C;;;;;;;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;IAGvB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;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;AAiRD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgcnI;AAED,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAMpG"}
|
package/dist/src/sdk.js
CHANGED
|
@@ -283,7 +283,7 @@ ${J.default.gray(mu)} ${t}
|
|
|
283
283
|
`);let w=0,S=0;f(),s=setInterval(()=>{if(n&&a===u)return;y(),u=a;let F=J.default.magenta(e[w]);if(n)process.stdout.write(`${F} ${a}...`);else if(t==="timer")process.stdout.write(`${F} ${a} ${E(c)}`);else{let _=".".repeat(Math.floor(S)).slice(0,3);process.stdout.write(`${F} ${a}${_}`)}w=w+1<e.length?w+1:0,S=S<e.length?S+.125:0},r)},p=(D="",w=0)=>{o=!1,clearInterval(s),y();let S=w===0?J.default.green(Bm):w===1?J.default.red(h_):J.default.red(d_);a=v(D??a),t==="timer"?process.stdout.write(`${S} ${a} ${E(c)}
|
|
284
284
|
`):process.stdout.write(`${S} ${a}
|
|
285
285
|
`),m(),i()};return{start:A,stop:p,message:(D="")=>{a=v(D??a)}}};function p_(t,e){let n=["normal","bold","dim","italic","underline","strikethrough"].indexOf(t),i="\x1B[";return i+n+"m"+e+i+"0m"}var zt=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?p_("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))+p_("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(`
|
|
286
|
-
`)}};var f8=require("node:child_process"),Te=require("node:fs"),zp=require("node:os"),xe=ve(require("node:path")),Un=require("node:process"),os=ve($l());var Zt=require("fs"),yu=(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},Ll=(t=yu(),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"}},m_=(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 Bl(t,e){if(isNaN(t)||isNaN(e))throw new Error("Cannot compare against non-numbers");return t===e?0:t<e?-1:1}function D_(t=[],e=[]){return t.length&&!e.length?-1:!t.length&&e.length?1:0}function Hm(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 Co="0|[1-9]\\d*",n4="\\d*[a-zA-Z-][a-zA-Z0-9-]*",i4=`(?<major>${Co})\\.(?<minor>${Co})\\.(?<patch>${Co})`,g_=`(?:${Co}|${n4})`,w_=`(?:-(?<prerelease>${g_}(?:\\.${g_})*))`,y_="[0-9A-Za-z-]+",v_=`(?:\\+(?<buildmetadata>${y_}(?:\\.${y_})*))`,E_=`v?${i4}${w_}?${v_}?`,b_=new RegExp(`^${E_}$`),__="(?:<|>)?=?",s4="x|X|\\*",qm=`${Co}|${s4}`,jl=`[v=\\s]*(?<major>${qm})(?:\\.(?<minor>${qm})(?:\\.(?<patch>${qm})${w_}?${v_}?)?)?`,C_=new RegExp(`^(?<operator>~>?|\\^|${__})\\s*${jl}$`),S_=new RegExp(`^(?<operator>${__})\\s*(${E_})$|^$`);function Vm(t){return typeof t=="number"&&!Number.isNaN(t)&&(!Number.isFinite(t)||0<=t&&t<=Number.MAX_SAFE_INTEGER)}var zm=256;var o4=new RegExp(`^${Co}$`);function Qt(t){return t.split(".").filter(Boolean).map(e=>{if(o4.test(e)){let r=Number(e);if(Vm(r))return r}return e})}function tn(t){return t.split(".").filter(Boolean)}function Ii(t,e){let r=Number(t);if(!Vm(r))throw new TypeError(e);return r}function Gn(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:Bl(t.major,e.major)||Bl(t.minor,e.minor)||Bl(t.patch,e.patch)||D_(t.prerelease,e.prerelease)||Hm(t.prerelease,e.prerelease)}function Km(t){return t.toFixed(0)}function rn(t){let e=Km(t.major),r=Km(t.minor),n=Km(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 a4(t,e){if(Gn(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 Ml(t,e){for(let r of e)if(!a4(t,r))return!1;if(t.prerelease&&t.prerelease.length>0){for(let r of e){if(Gn(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=>Ml(t,r))}function u4(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 wu(t=[],e){let r=u4(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 vu(t,e,r={}){let n=r.build!==void 0?tn(r.build):t.build??[];switch(e){case"premajor":return{major:t.major+1,minor:0,patch:0,prerelease:wu(t.prerelease,r.prerelease),build:n};case"preminor":return{major:t.major,minor:t.minor+1,patch:0,prerelease:wu(t.prerelease,r.prerelease),build:n};case"prepatch":return{major:t.major,minor:t.minor,patch:t.patch+1,prerelease:wu(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:wu(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:wu(t.prerelease,r.prerelease),build:n};default:throw new TypeError(`Cannot increment version: invalid argument ${e}`)}}var Ul={major:Number.NaN,minor:Number.NaN,patch:Number.NaN,prerelease:[],build:[]},So={operator:void 0,...Ul};function Gm(t,e){return er(t,e)>0}function ds(t,e){return er(t,e)<0}function c4(t){let r=t.match(S_)?.groups;if(!r)return null;let{operator:n,prerelease:i,buildmetadata:s}=r,o=r.major?{major:Ii(r.major,`Cannot parse comparator ${t}: invalid major version`),minor:Ii(r.minor,`Cannot parse comparator ${t}: invalid minor version`),patch:Ii(r.patch,`Cannot parse comparator ${t}: invalid patch version`),prerelease:i?Qt(i):[],build:s?tn(s):[]}:Ul;return{operator:n||void 0,...o}}function ze(t){return!t||t.toLowerCase()==="x"||t==="*"}function l4(t){if(!ze(t.major))return ze(t.minor)?{operator:">=",major:+t.major,minor:0,patch:0,prerelease:[],build:[]}:ze(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 f4(t){if(!ze(t.major))return ze(t.minor)?{operator:"<",major:+t.major+1,minor:0,patch:0,prerelease:[],build:[]}:ze(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 h4(t){let e=t.match(new RegExp(`^${jl}`)),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(`^${jl}\\s*$`))?.groups;if(!a)return null;let u=l4(r),c=f4(a);return[u,c].filter(Boolean)}function d4(t){let e=ze(t.major),r=ze(t.minor),n=ze(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[So];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 p4(t){let e=ze(t.major),r=ze(t.minor),n=ze(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[So];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 m4(t){let e=ze(t.major),r=ze(t.minor),n=ze(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=tn(t.build??"");return[{operator:"<",major:i,minor:s,patch:o,prerelease:a,build:u}]}function g4(t){let e=ze(t.minor),r=ze(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=tn(t.build??"");return[{operator:"<=",major:n,minor:i,patch:s,prerelease:o,build:a}]}function y4(t){let e=ze(t.major),r=ze(t.minor),n=ze(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=tn(t.build??"");return[{operator:">",major:i,minor:s,patch:o,prerelease:a,build:u}]}function D4(t){let e=ze(t.major),r=ze(t.minor),n=ze(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[So];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=tn(t.build??"");return[{operator:">=",major:i,minor:s,patch:o,prerelease:a,build:u}]}function w4(t){let e=ze(t.major),r=ze(t.minor),n=ze(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[So];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=tn(t.build??"");return[{operator:void 0,major:i,minor:s,patch:o,prerelease:a,build:u}]}function v4(t){let e=t.match(C_)?.groups;if(!e)return c4(t);switch(e.operator){case"^":return d4(e);case"~":case"~>":return p4(e);case"<":return m4(e);case"<=":return g4(e);case">":return y4(e);case">=":return D4(e);case"=":case"":return w4(e);default:throw new Error(`Cannot parse version range: '${e.operator}' is not a valid operator`)}}function E4(t){return t.split(/\s+/).flatMap(v4)}function ql(t){let e=t.replaceAll(/(?<=<|>|=|~|\^)(\s+)/g,"").split(/\s*\|\|\s*/).map(r=>h4(r)||E4(r));if(e.some(r=>r.includes(null)))throw new TypeError(`Cannot parse version range: range "${t}" is invalid`);return e}function lt(t){if(typeof t!="string")throw new TypeError(`Cannot parse version as version must be a string: received ${typeof t}`);if(t.length>zm)throw new TypeError(`Cannot parse version as version length is too long: length is ${t.length}, max length is ${zm}`);t=t.trim();let e=t.match(b_)?.groups;if(!e)throw new TypeError(`Cannot parse version: ${t}`);let r=Ii(e.major,`Cannot parse version ${t}: invalid major version`),n=Ii(e.minor,`Cannot parse version ${t}: invalid minor version`),i=Ii(e.patch,`Cannot parse version ${t}: invalid patch version`),s=e.prerelease?Qt(e.prerelease):[],o=e.buildmetadata?tn(e.buildmetadata):[];return{major:r,minor:n,patch:i,prerelease:s,build:o}}function A_(t,e){let r=t.operator,n=e.operator;if(r===void 0)return Gn(t)?!0:Du(t,[[e]]);if(n===void 0)return Gn(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 b4(t){return t.every(e=>e.some(r=>_4(r)))}function _4(t){for(let e=0;e<t.length-1;e++){let r=t[e];for(let n of t.slice(e+1))if(!A_(r,n))return!1}return!0}function O_(t,e){return b4([t,e])&&t.some(r=>e.some(n=>r.every(i=>n.every(s=>A_(i,s)))))}function x_(t){try{return lt(t),!0}catch{return!1}}function T_(t,e){return er(t,e)>=0}var Za=ve(AS()),hb=ve(uD()),h8=ve(NA()),Kp=ve(zh());var Mi={name:"@capgo/cli",version:"7.49.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:version-detection":"node test/test-get-installed-version.mjs","test:version-detection:setup":"./test/fixtures/setup-test-projects.sh",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 && bun run test:version-detection"},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.27.0",eslint:"^9.38.0","git-format-staged":"3.1.1",husky:"^9.1.7","is-wsl":"^3.1.0",open:"^11.0.0",prettyjson:"^1.2.5",tmp:"^0.2.5","tus-js-client":"^4.3.1",typescript:"^5.9.3"}};async function Kh(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 Xe(){let t=await Kh("@capgo/cli")??"",e=t?.split(".")[0];t!==Mi.version&&g.warning(`\u{1F6A8} You are using @capgo/cli@${Mi.version} it's not the latest version.
|
|
286
|
+
`)}};var f8=require("node:child_process"),Te=require("node:fs"),zp=require("node:os"),xe=ve(require("node:path")),Un=require("node:process"),os=ve($l());var Zt=require("fs"),yu=(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},Ll=(t=yu(),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"}},m_=(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 Bl(t,e){if(isNaN(t)||isNaN(e))throw new Error("Cannot compare against non-numbers");return t===e?0:t<e?-1:1}function D_(t=[],e=[]){return t.length&&!e.length?-1:!t.length&&e.length?1:0}function Hm(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 Co="0|[1-9]\\d*",n4="\\d*[a-zA-Z-][a-zA-Z0-9-]*",i4=`(?<major>${Co})\\.(?<minor>${Co})\\.(?<patch>${Co})`,g_=`(?:${Co}|${n4})`,w_=`(?:-(?<prerelease>${g_}(?:\\.${g_})*))`,y_="[0-9A-Za-z-]+",v_=`(?:\\+(?<buildmetadata>${y_}(?:\\.${y_})*))`,E_=`v?${i4}${w_}?${v_}?`,b_=new RegExp(`^${E_}$`),__="(?:<|>)?=?",s4="x|X|\\*",qm=`${Co}|${s4}`,jl=`[v=\\s]*(?<major>${qm})(?:\\.(?<minor>${qm})(?:\\.(?<patch>${qm})${w_}?${v_}?)?)?`,C_=new RegExp(`^(?<operator>~>?|\\^|${__})\\s*${jl}$`),S_=new RegExp(`^(?<operator>${__})\\s*(${E_})$|^$`);function Vm(t){return typeof t=="number"&&!Number.isNaN(t)&&(!Number.isFinite(t)||0<=t&&t<=Number.MAX_SAFE_INTEGER)}var zm=256;var o4=new RegExp(`^${Co}$`);function Qt(t){return t.split(".").filter(Boolean).map(e=>{if(o4.test(e)){let r=Number(e);if(Vm(r))return r}return e})}function tn(t){return t.split(".").filter(Boolean)}function Ii(t,e){let r=Number(t);if(!Vm(r))throw new TypeError(e);return r}function Gn(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:Bl(t.major,e.major)||Bl(t.minor,e.minor)||Bl(t.patch,e.patch)||D_(t.prerelease,e.prerelease)||Hm(t.prerelease,e.prerelease)}function Km(t){return t.toFixed(0)}function rn(t){let e=Km(t.major),r=Km(t.minor),n=Km(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 a4(t,e){if(Gn(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 Ml(t,e){for(let r of e)if(!a4(t,r))return!1;if(t.prerelease&&t.prerelease.length>0){for(let r of e){if(Gn(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=>Ml(t,r))}function u4(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 wu(t=[],e){let r=u4(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 vu(t,e,r={}){let n=r.build!==void 0?tn(r.build):t.build??[];switch(e){case"premajor":return{major:t.major+1,minor:0,patch:0,prerelease:wu(t.prerelease,r.prerelease),build:n};case"preminor":return{major:t.major,minor:t.minor+1,patch:0,prerelease:wu(t.prerelease,r.prerelease),build:n};case"prepatch":return{major:t.major,minor:t.minor,patch:t.patch+1,prerelease:wu(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:wu(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:wu(t.prerelease,r.prerelease),build:n};default:throw new TypeError(`Cannot increment version: invalid argument ${e}`)}}var Ul={major:Number.NaN,minor:Number.NaN,patch:Number.NaN,prerelease:[],build:[]},So={operator:void 0,...Ul};function Gm(t,e){return er(t,e)>0}function ds(t,e){return er(t,e)<0}function c4(t){let r=t.match(S_)?.groups;if(!r)return null;let{operator:n,prerelease:i,buildmetadata:s}=r,o=r.major?{major:Ii(r.major,`Cannot parse comparator ${t}: invalid major version`),minor:Ii(r.minor,`Cannot parse comparator ${t}: invalid minor version`),patch:Ii(r.patch,`Cannot parse comparator ${t}: invalid patch version`),prerelease:i?Qt(i):[],build:s?tn(s):[]}:Ul;return{operator:n||void 0,...o}}function ze(t){return!t||t.toLowerCase()==="x"||t==="*"}function l4(t){if(!ze(t.major))return ze(t.minor)?{operator:">=",major:+t.major,minor:0,patch:0,prerelease:[],build:[]}:ze(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 f4(t){if(!ze(t.major))return ze(t.minor)?{operator:"<",major:+t.major+1,minor:0,patch:0,prerelease:[],build:[]}:ze(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 h4(t){let e=t.match(new RegExp(`^${jl}`)),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(`^${jl}\\s*$`))?.groups;if(!a)return null;let u=l4(r),c=f4(a);return[u,c].filter(Boolean)}function d4(t){let e=ze(t.major),r=ze(t.minor),n=ze(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[So];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 p4(t){let e=ze(t.major),r=ze(t.minor),n=ze(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[So];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 m4(t){let e=ze(t.major),r=ze(t.minor),n=ze(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=tn(t.build??"");return[{operator:"<",major:i,minor:s,patch:o,prerelease:a,build:u}]}function g4(t){let e=ze(t.minor),r=ze(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=tn(t.build??"");return[{operator:"<=",major:n,minor:i,patch:s,prerelease:o,build:a}]}function y4(t){let e=ze(t.major),r=ze(t.minor),n=ze(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=tn(t.build??"");return[{operator:">",major:i,minor:s,patch:o,prerelease:a,build:u}]}function D4(t){let e=ze(t.major),r=ze(t.minor),n=ze(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[So];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=tn(t.build??"");return[{operator:">=",major:i,minor:s,patch:o,prerelease:a,build:u}]}function w4(t){let e=ze(t.major),r=ze(t.minor),n=ze(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[So];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=tn(t.build??"");return[{operator:void 0,major:i,minor:s,patch:o,prerelease:a,build:u}]}function v4(t){let e=t.match(C_)?.groups;if(!e)return c4(t);switch(e.operator){case"^":return d4(e);case"~":case"~>":return p4(e);case"<":return m4(e);case"<=":return g4(e);case">":return y4(e);case">=":return D4(e);case"=":case"":return w4(e);default:throw new Error(`Cannot parse version range: '${e.operator}' is not a valid operator`)}}function E4(t){return t.split(/\s+/).flatMap(v4)}function ql(t){let e=t.replaceAll(/(?<=<|>|=|~|\^)(\s+)/g,"").split(/\s*\|\|\s*/).map(r=>h4(r)||E4(r));if(e.some(r=>r.includes(null)))throw new TypeError(`Cannot parse version range: range "${t}" is invalid`);return e}function lt(t){if(typeof t!="string")throw new TypeError(`Cannot parse version as version must be a string: received ${typeof t}`);if(t.length>zm)throw new TypeError(`Cannot parse version as version length is too long: length is ${t.length}, max length is ${zm}`);t=t.trim();let e=t.match(b_)?.groups;if(!e)throw new TypeError(`Cannot parse version: ${t}`);let r=Ii(e.major,`Cannot parse version ${t}: invalid major version`),n=Ii(e.minor,`Cannot parse version ${t}: invalid minor version`),i=Ii(e.patch,`Cannot parse version ${t}: invalid patch version`),s=e.prerelease?Qt(e.prerelease):[],o=e.buildmetadata?tn(e.buildmetadata):[];return{major:r,minor:n,patch:i,prerelease:s,build:o}}function A_(t,e){let r=t.operator,n=e.operator;if(r===void 0)return Gn(t)?!0:Du(t,[[e]]);if(n===void 0)return Gn(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 b4(t){return t.every(e=>e.some(r=>_4(r)))}function _4(t){for(let e=0;e<t.length-1;e++){let r=t[e];for(let n of t.slice(e+1))if(!A_(r,n))return!1}return!0}function O_(t,e){return b4([t,e])&&t.some(r=>e.some(n=>r.every(i=>n.every(s=>A_(i,s)))))}function x_(t){try{return lt(t),!0}catch{return!1}}function T_(t,e){return er(t,e)>=0}var Za=ve(AS()),hb=ve(uD()),h8=ve(NA()),Kp=ve(zh());var Mi={name:"@capgo/cli",version:"7.50.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:version-detection":"node test/test-get-installed-version.mjs","test:version-detection:setup":"./test/fixtures/setup-test-projects.sh",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 && bun run test:version-detection"},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.27.0",eslint:"^9.38.0","git-format-staged":"3.1.1",husky:"^9.1.7","is-wsl":"^3.1.0",open:"^11.0.0",prettyjson:"^1.2.5",tmp:"^0.2.5","tus-js-client":"^4.3.1",typescript:"^5.9.3"}};async function Kh(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 Xe(){let t=await Kh("@capgo/cli")??"",e=t?.split(".")[0];t!==Mi.version&&g.warning(`\u{1F6A8} You are using @capgo/cli@${Mi.version} it's not the latest version.
|
|
287
287
|
Please use @capgo/cli@${t}" or @capgo/cli@${e} to keep up to date with the latest features and bug fixes.`)}async function GT(t,e,r,n,i,s="\u2705"){await _e(r,{channel:t,event:n,icon:s,user_id:e,...i?{tags:{"app-id":i}}:{},notify:!1})}var E0=require("node:buffer"),WT=require("node:crypto"),FY=(()=>{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=FY[(e^n)&255]^e>>>8}return e=e^4294967295,(e>>>0).toString(16).padStart(8,"0")}async function ri(t,e="sha256"){let r=E0.Buffer.isBuffer(t)?t:E0.Buffer.from(t);if(e==="crc32")return RY(r);let n=(0,WT.createHash)(e);return n.update(r),n.digest("hex")}var ol=ve(yM());async function DM(){let t=await(0,ol.loadConfig)();return{config:t.app.extConfig,path:t.app.extConfigFilePath}}async function qE(t,e,r=!1){let n=await(0,ol.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,ol.writeConfig)(i,n.app.extConfigFilePath))}async function Wa(t,e=!1){await qE("CapacitorUpdater",t,e)}var eu=".capgo_key",$r=".capgo_key_v2",Gp=`${eu}.pub`,wi=`${$r}.pub`,s8="https://capgo.app",o8="https://files.capgo.app",a8="https://api.capgo.app",u8="https://console.capgo.app",db=12e4,Yle=1024*1024*20,Jle=1024*1024*1024,Zle=1024*1024*99,Qa="package.json",tu=/^(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?`
|
|
288
288
|
${h8.default.render(t)}`:"";function Vp(t){return new Promise(e=>{setTimeout(e,t)})}function Lr(t){return(0,os.isMonorepo)(t)?(0,os.findMonorepoRoot)(t):(0,os.isNXMonorepo)(t)?(0,os.findNXMonorepoRoot)(t):t}function Qle(t=Lr((0,Un.cwd)()),e=void 0){let r=e?.split(",")[0];if(r&&!(0,Te.existsSync)(r)){let i=`Package.json at ${r} does not exist`;throw g.error(i),new Error(i)}let n=(0,Te.readFileSync)(r??(0,xe.join)(t,Qa));return JSON.parse(n)}function as(t=Lr((0,Un.cwd)()),e=void 0){return Qle(t,e).version??""}function c8(t){let e=t.replace("^","").replace("~","");if(x_(e))try{let r=lt(e);return rn(r)}catch{return e}return e}async function us(t,e=(0,Un.cwd)(),r){if(t!=="@capgo/capacitor-updater")return null;let n=r?(0,xe.dirname)(r):e;try{let u=`${t}/package.json`,{createRequire:c}=await import("node:module"),h=c((0,xe.join)(n,"package.json")).resolve(u),d=JSON.parse((0,Te.readFileSync)(h,"utf-8"));if(d.version)return d.version}catch{}let i=n,s=xe.default.parse(i).root;for(;i!==s;){let u=(0,xe.join)(i,"node_modules",t,Qa);if((0,Te.existsSync)(u))try{let l=JSON.parse((0,Te.readFileSync)(u,"utf-8"));if(l.version)return l.version}catch{}let c=(0,xe.dirname)(i);if(c===i)break;i=c}let o=null,a=(0,xe.join)(e,"ios","App","Podfile");if((0,Te.existsSync)(a))try{let c=(0,Te.readFileSync)(a,"utf-8").match(/pod\s+['"]CapgoCapacitorUpdater['"],\s*:path\s*=>\s*['"]([^'"]+)['"]/);c?.[1]&&(o=(0,xe.resolve)((0,xe.join)(e,"ios","App",c[1])))}catch{}if(!o){let u=(0,xe.join)(e,"android","capacitor.settings.gradle");if((0,Te.existsSync)(u))try{let l=(0,Te.readFileSync)(u,"utf-8").match(/project\(':capgo-capacitor-updater'\)\.projectDir\s*=\s*new\s+File\(['"]([^'"]+)['"]/);l?.[1]&&(o=(0,xe.resolve)((0,xe.join)(e,"android",l[1])).replace(/\/android$/,""))}catch{}}if(o){let u=(0,xe.join)(o,Qa);if((0,Te.existsSync)(u))try{let c=JSON.parse((0,Te.readFileSync)(u,"utf-8"));if(c.version)return c.version}catch{}}try{let c=(await Wp(e)).get(t);if(c)return c}catch{}return null}async function Wp(t=Lr((0,Un.cwd)()),e=void 0){let r=e?.split(",");if(r??=[(0,xe.join)(t,Qa)],r){for(let i of r)if(!(0,Te.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,Te.readFileSync)(i),o=JSON.parse(s);for(let a in o.dependencies)n.set(a,c8(o.dependencies[a]));for(let a in o.devDependencies)n.set(a,c8(o.devDependencies[a]))}return n}async function de(){try{let t=await DM();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 efe(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 qE(t,r)),r}async function d8(t){return efe("CapacitorUpdater",t)}async function Sn(){try{let t=await de(),e={host:t?.config?.plugins?.CapacitorUpdater?.localHost||s8,hostWeb:t?.config?.plugins?.CapacitorUpdater?.localWebHost||u8,hostFilesApi:t?.config?.plugins?.CapacitorUpdater?.localApiFiles||o8,hostApi:t?.config?.plugins?.CapacitorUpdater?.localApi||a8};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:s8,hostWeb:u8,hostFilesApi:o8,hostApi:a8}}}var tfe=/([A-Za-z0-9]+)\.(java|swift|kt|scala)$/;async function Xp(){let t=await Sn();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 p8(){let t=await Sn();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:Jle,maxChunkSize:Zle,alertUploadSize:Yle}}}async function pe(t,e,r){let n=await Xp();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,Za.createClient)(n.supaHost,n.supaKey,{auth:{persistSession:!1},global:{headers:{capgkey:t}}})}async function rfe(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 m8(t,e){let{data:r}=await t.rpc("is_paying_org",{orgid:e}).single();return r||!1}async function g8(t,e){let{data:r}=await t.rpc("is_trial_org",{orgid:e}).single();return r||0}async function nfe(t,e){let{data:r}=await t.rpc("is_allowed_action_org",{orgid:e}).single();return!!r}async function ife(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||{}),ru=(t,e)=>t>=e;async function y8(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 D8(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",`
|
|
289
289
|
`)}`),s=new Error(a.message)):g.warn(`${a.message.replaceAll("\\n",`
|
|
@@ -319,8 +319,8 @@ ${W(s)}`),new Error(`Cannot retrieve unknown version for app ${e}: ${W(s)}`)}fun
|
|
|
319
319
|
created_by,
|
|
320
320
|
app_id,
|
|
321
321
|
version (id, name)
|
|
322
|
-
`).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 Db(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 em(t,e,r,n={}){let{silent:i=!1,autoUnlink:s=!1}=n,o=await cfe(t,e,r,{silent:i});await F8(t,e,o,{silent:i,autoUnlink:s}),await Db(t,e,r,{silent:i})}function M8(t,e=!1){if(e)return;if(!t.length)throw new Error("No bundle found");let r=new zt;r.theme=zt.roundTheme,r.headers=["Version","Created","Keep"],r.rows=[];for(let n of t.toReversed())r.rows.push([n.name,iu(n.created_at),n.keep??""]);g.success("Bundles"),g.success(r.toString())}async function tm(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 U8(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 cfe(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 su=require("node:fs");async function q8(t,e){let{data:r}=await t.rpc("exist_app_v2",{appid:e}).single();return!!r}async function Et(t,e,r,n,i=!1){let s=qn(),o=await y8(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 Qr="assets/icon.png";var lfe=/^[a-z0-9]+(\.[\w-]+)+$/i;function ffe(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(!lfe.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 hfe(t,e,r){if(await q8(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 H8(t,e,r,n=!1){n||ae("Adding"),await Xe(),e.apikey=e.apikey||re();let i=await de(),s=$e(t,i?.config);ffe(s,e,n);let o=await pe(e.apikey,e.supaHost,e.supaAnon),a=await De(o,e.apikey,["write","all"]);await hfe(o,s,n),r||(r=await Zp(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,su.existsSync)(l)?(h=(0,su.readFileSync)(l),d=nu(l)||"image/png",n||g.warn(`Found app icon ${l}`)):(0,su.existsSync)(Qr)?(h=(0,su.readFileSync)(Qr),d=nu(Qr)||"image/png",n||g.warn(`Found app icon ${Qr}`)):n||g.warn(`Cannot find app icon in any of the following locations: ${l}, ${Qr}`);let f="icon",m="https://xvwzpoazmxkqosrdewyv.supabase.co/storage/v1/object/public/images/capgo.png";if(h&&d){let{error:v}=await o.storage.from(`images/org/${u}/${s}`).upload(f,h,{contentType:d});if(v)throw n||console.error(v),n||g.error(`Could not add app ${W(v)}`),new Error(`Could not add app ${W(v)}`);let{data:E}=await o.storage.from(`images/org/${u}/${s}`).getPublicUrl(f);m=E?.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`),le("Done \u2705")),{appId:s,organizationUid:u,userId:a,name:c,signedURL:m}}async function V8(t,e,r=!1,n=!1){r||ae("Deleting"),e.apikey=e.apikey||re();let i=await de(),s=$e(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 Et(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 gn({message:"Do you want to continue?",options:[{label:"Yes",value:"yes"},{label:"No",value:"no"}]});if(st(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 Rr(o,s);return await _e(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"),le("Done \u2705")),!0}var rm=require("node:os"),K8=require("node:process");async function z8(t){let e={},r=Object.keys(t);return(await Promise.all(r.map(i=>Kh(i)))).forEach((i,s)=>{i&&(e[r[s]]=i)}),e}async function dfe(){let t=await Wp(),e={"@capgo/cli":Mi.version};for(let[r,n]of t)(r.startsWith("@capgo/")||r.startsWith("@capawesome/")||r.startsWith("capacitor"))&&(e[r]=n);return e}async function G8(t,e=!1){e||g.warn(" \u{1F48A} Capgo Doctor \u{1F48A}");let r=await de(),n=as("",t.packageJson),i=r?.config?.plugins?.CapacitorUpdater?.version||n,s=r?.config?.appName||"",o=$e("",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,rm.platform)()} ${(0,rm.version)()}`),g.info(` Node: ${K8.version}`),g.info(" Installed Dependencies:"));let u=await dfe();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 z8(u);else{let l=xt();l.start("Running: Loading latest dependencies"),c=await z8(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 pfe(t){let e=new zt;e.headers=["Name","id","Created"],e.rows=[];for(let r of t.toReversed())e.rows.push([r.name??"",r.app_id,iu(r.created_at)]);g.success("Apps"),g.success(e.toString())}async function mfe(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 W8(t,e=!1){e||ae("List apps in Capgo"),await Xe(),t.apikey=t.apikey||re();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 mfe(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}`),pfe(n),le("Done \u2705")),n}var X8=require("node:crypto"),ou=require("node:fs");async function Y8(t,e,r=!1){r||ae("Set app"),e.apikey=e.apikey||re();let n=await de();if(t=$e(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 Zp(i,["admin","super_admin"])).gid,a=await De(i,e.apikey,["write","all"]);await Et(i,e.apikey,t,4,r);let{name:u,icon:c,retention:l,exposeMetadata:h}=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 d,f,m=`icon_${(0,X8.randomUUID)()}`,y="https://xvwzpoazmxkqosrdewyv.supabase.co/storage/v1/object/public/images/capgo.png";if(c&&(0,ou.existsSync)(c)?(d=(0,ou.readFileSync)(c),f=nu(c)||"image/png",r||g.warn(`Found app icon ${c}`)):(0,ou.existsSync)(Qr)?(d=(0,ou.readFileSync)(Qr),f=nu(Qr)||"image/png",r||g.warn(`Found app icon ${Qr}`)):r||g.warn(`Cannot find app icon in any of the following locations: ${c}, ${Qr}`),d&&f){let{error:E}=await i.storage.from(`images/org/${o}/${t}`).upload(m,d,{contentType:f});if(E)throw r||g.error(`Could not set app ${W(E)}`),new Error(`Could not set app: ${W(E)}`);let{data:A}=await i.storage.from(`images/org/${o}/${t}`).getPublicUrl(m);y=A?.publicUrl||y}let{error:v}=await i.from("apps").update({icon_url:y,name:u,retention:l?l*24*60*60:void 0,expose_metadata:h}).eq("app_id",t).eq("user_id",a);if(v)throw r||g.error(`Could not set app ${W(v)}`),new Error(`Could not set app: ${W(v)}`);return r||le("Done \u2705"),!0}async function J8(t,e,r=!1){if(r||ae("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 Wa(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||le("Done \u2705")}var vi=require("node:fs"),pn=require("node:fs/promises"),t6=require("node:os"),mn=require("node:path"),r6=ve(require("node:process"));var n6=ve(uD()),im=ve(zh());var nm=require("node:fs/promises"),Z8=require("node:os"),wb=require("node:path"),je=require("node:process"),gfe=(0,wb.join)((0,Z8.homedir)(),".capgo-credentials"),yfe=(0,wb.join)(gfe,"credentials.json");async function Dfe(){try{let t=await(0,nm.readFile)(yfe,"utf-8");return JSON.parse(t)}catch{return{}}}async function wfe(t){let e=await Dfe();if(!t){let r=Object.keys(e);return r.length===0?null:e[r[0]]||null}return e[t]||null}function vfe(){let t={};return je.env.BUILD_CERTIFICATE_BASE64&&(t.BUILD_CERTIFICATE_BASE64=je.env.BUILD_CERTIFICATE_BASE64),je.env.BUILD_PROVISION_PROFILE_BASE64&&(t.BUILD_PROVISION_PROFILE_BASE64=je.env.BUILD_PROVISION_PROFILE_BASE64),je.env.BUILD_PROVISION_PROFILE_BASE64_PROD&&(t.BUILD_PROVISION_PROFILE_BASE64_PROD=je.env.BUILD_PROVISION_PROFILE_BASE64_PROD),je.env.P12_PASSWORD&&(t.P12_PASSWORD=je.env.P12_PASSWORD),je.env.APPLE_KEY_ID&&(t.APPLE_KEY_ID=je.env.APPLE_KEY_ID),je.env.APPLE_ISSUER_ID&&(t.APPLE_ISSUER_ID=je.env.APPLE_ISSUER_ID),je.env.APPLE_KEY_CONTENT&&(t.APPLE_KEY_CONTENT=je.env.APPLE_KEY_CONTENT),je.env.APPLE_PROFILE_NAME&&(t.APPLE_PROFILE_NAME=je.env.APPLE_PROFILE_NAME),je.env.APP_STORE_CONNECT_TEAM_ID&&(t.APP_STORE_CONNECT_TEAM_ID=je.env.APP_STORE_CONNECT_TEAM_ID),je.env.ANDROID_KEYSTORE_FILE&&(t.ANDROID_KEYSTORE_FILE=je.env.ANDROID_KEYSTORE_FILE),je.env.KEYSTORE_KEY_ALIAS&&(t.KEYSTORE_KEY_ALIAS=je.env.KEYSTORE_KEY_ALIAS),je.env.KEYSTORE_KEY_PASSWORD&&(t.KEYSTORE_KEY_PASSWORD=je.env.KEYSTORE_KEY_PASSWORD),je.env.KEYSTORE_STORE_PASSWORD&&(t.KEYSTORE_STORE_PASSWORD=je.env.KEYSTORE_STORE_PASSWORD),je.env.PLAY_CONFIG_JSON&&(t.PLAY_CONFIG_JSON=je.env.PLAY_CONFIG_JSON),t}async function Q8(t,e,r){let n=await wfe(t),i=vfe(),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 Efe(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(`
|
|
323
|
-
`);for(let d of h)if(d.startsWith("data: ")){let f=d.slice(6);f.trim()&&g.
|
|
322
|
+
`).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 Db(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 em(t,e,r,n={}){let{silent:i=!1,autoUnlink:s=!1}=n,o=await cfe(t,e,r,{silent:i});await F8(t,e,o,{silent:i,autoUnlink:s}),await Db(t,e,r,{silent:i})}function M8(t,e=!1){if(e)return;if(!t.length)throw new Error("No bundle found");let r=new zt;r.theme=zt.roundTheme,r.headers=["Version","Created","Keep"],r.rows=[];for(let n of t.toReversed())r.rows.push([n.name,iu(n.created_at),n.keep??""]);g.success("Bundles"),g.success(r.toString())}async function tm(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 U8(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 cfe(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 su=require("node:fs");async function q8(t,e){let{data:r}=await t.rpc("exist_app_v2",{appid:e}).single();return!!r}async function Et(t,e,r,n,i=!1){let s=qn(),o=await y8(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 Qr="assets/icon.png";var lfe=/^[a-z0-9]+(\.[\w-]+)+$/i;function ffe(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(!lfe.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 hfe(t,e,r){if(await q8(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 H8(t,e,r,n=!1){n||ae("Adding"),await Xe(),e.apikey=e.apikey||re();let i=await de(),s=$e(t,i?.config);ffe(s,e,n);let o=await pe(e.apikey,e.supaHost,e.supaAnon),a=await De(o,e.apikey,["write","all"]);await hfe(o,s,n),r||(r=await Zp(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,su.existsSync)(l)?(h=(0,su.readFileSync)(l),d=nu(l)||"image/png",n||g.warn(`Found app icon ${l}`)):(0,su.existsSync)(Qr)?(h=(0,su.readFileSync)(Qr),d=nu(Qr)||"image/png",n||g.warn(`Found app icon ${Qr}`)):n||g.warn(`Cannot find app icon in any of the following locations: ${l}, ${Qr}`);let f="icon",m="https://xvwzpoazmxkqosrdewyv.supabase.co/storage/v1/object/public/images/capgo.png";if(h&&d){let{error:v}=await o.storage.from(`images/org/${u}/${s}`).upload(f,h,{contentType:d});if(v)throw n||console.error(v),n||g.error(`Could not add app ${W(v)}`),new Error(`Could not add app ${W(v)}`);let{data:E}=await o.storage.from(`images/org/${u}/${s}`).getPublicUrl(f);m=E?.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`),le("Done \u2705")),{appId:s,organizationUid:u,userId:a,name:c,signedURL:m}}async function V8(t,e,r=!1,n=!1){r||ae("Deleting"),e.apikey=e.apikey||re();let i=await de(),s=$e(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 Et(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 gn({message:"Do you want to continue?",options:[{label:"Yes",value:"yes"},{label:"No",value:"no"}]});if(st(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 Rr(o,s);return await _e(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"),le("Done \u2705")),!0}var rm=require("node:os"),K8=require("node:process");async function z8(t){let e={},r=Object.keys(t);return(await Promise.all(r.map(i=>Kh(i)))).forEach((i,s)=>{i&&(e[r[s]]=i)}),e}async function dfe(){let t=await Wp(),e={"@capgo/cli":Mi.version};for(let[r,n]of t)(r.startsWith("@capgo/")||r.startsWith("@capawesome/")||r.startsWith("capacitor"))&&(e[r]=n);return e}async function G8(t,e=!1){e||g.warn(" \u{1F48A} Capgo Doctor \u{1F48A}");let r=await de(),n=as("",t.packageJson),i=r?.config?.plugins?.CapacitorUpdater?.version||n,s=r?.config?.appName||"",o=$e("",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,rm.platform)()} ${(0,rm.version)()}`),g.info(` Node: ${K8.version}`),g.info(" Installed Dependencies:"));let u=await dfe();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 z8(u);else{let l=xt();l.start("Running: Loading latest dependencies"),c=await z8(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 pfe(t){let e=new zt;e.headers=["Name","id","Created"],e.rows=[];for(let r of t.toReversed())e.rows.push([r.name??"",r.app_id,iu(r.created_at)]);g.success("Apps"),g.success(e.toString())}async function mfe(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 W8(t,e=!1){e||ae("List apps in Capgo"),await Xe(),t.apikey=t.apikey||re();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 mfe(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}`),pfe(n),le("Done \u2705")),n}var X8=require("node:crypto"),ou=require("node:fs");async function Y8(t,e,r=!1){r||ae("Set app"),e.apikey=e.apikey||re();let n=await de();if(t=$e(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 Zp(i,["admin","super_admin"])).gid,a=await De(i,e.apikey,["write","all"]);await Et(i,e.apikey,t,4,r);let{name:u,icon:c,retention:l,exposeMetadata:h}=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 d,f,m=`icon_${(0,X8.randomUUID)()}`,y="https://xvwzpoazmxkqosrdewyv.supabase.co/storage/v1/object/public/images/capgo.png";if(c&&(0,ou.existsSync)(c)?(d=(0,ou.readFileSync)(c),f=nu(c)||"image/png",r||g.warn(`Found app icon ${c}`)):(0,ou.existsSync)(Qr)?(d=(0,ou.readFileSync)(Qr),f=nu(Qr)||"image/png",r||g.warn(`Found app icon ${Qr}`)):r||g.warn(`Cannot find app icon in any of the following locations: ${c}, ${Qr}`),d&&f){let{error:E}=await i.storage.from(`images/org/${o}/${t}`).upload(m,d,{contentType:f});if(E)throw r||g.error(`Could not set app ${W(E)}`),new Error(`Could not set app: ${W(E)}`);let{data:A}=await i.storage.from(`images/org/${o}/${t}`).getPublicUrl(m);y=A?.publicUrl||y}let{error:v}=await i.from("apps").update({icon_url:y,name:u,retention:l?l*24*60*60:void 0,expose_metadata:h}).eq("app_id",t).eq("user_id",a);if(v)throw r||g.error(`Could not set app ${W(v)}`),new Error(`Could not set app: ${W(v)}`);return r||le("Done \u2705"),!0}async function J8(t,e,r=!1){if(r||ae("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 Wa(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||le("Done \u2705")}var vi=require("node:fs"),pn=require("node:fs/promises"),t6=require("node:os"),mn=require("node:path"),r6=ve(require("node:process"));var n6=ve(uD()),im=ve(zh());var nm=require("node:fs/promises"),Z8=require("node:os"),wb=require("node:path"),je=require("node:process"),gfe=(0,wb.join)((0,Z8.homedir)(),".capgo-credentials"),yfe=(0,wb.join)(gfe,"credentials.json");async function Dfe(){try{let t=await(0,nm.readFile)(yfe,"utf-8");return JSON.parse(t)}catch{return{}}}async function wfe(t){let e=await Dfe();if(!t){let r=Object.keys(e);return r.length===0?null:e[r[0]]||null}return e[t]||null}function vfe(){let t={};return je.env.BUILD_CERTIFICATE_BASE64&&(t.BUILD_CERTIFICATE_BASE64=je.env.BUILD_CERTIFICATE_BASE64),je.env.BUILD_PROVISION_PROFILE_BASE64&&(t.BUILD_PROVISION_PROFILE_BASE64=je.env.BUILD_PROVISION_PROFILE_BASE64),je.env.BUILD_PROVISION_PROFILE_BASE64_PROD&&(t.BUILD_PROVISION_PROFILE_BASE64_PROD=je.env.BUILD_PROVISION_PROFILE_BASE64_PROD),je.env.P12_PASSWORD&&(t.P12_PASSWORD=je.env.P12_PASSWORD),je.env.APPLE_KEY_ID&&(t.APPLE_KEY_ID=je.env.APPLE_KEY_ID),je.env.APPLE_ISSUER_ID&&(t.APPLE_ISSUER_ID=je.env.APPLE_ISSUER_ID),je.env.APPLE_KEY_CONTENT&&(t.APPLE_KEY_CONTENT=je.env.APPLE_KEY_CONTENT),je.env.APPLE_PROFILE_NAME&&(t.APPLE_PROFILE_NAME=je.env.APPLE_PROFILE_NAME),je.env.APP_STORE_CONNECT_TEAM_ID&&(t.APP_STORE_CONNECT_TEAM_ID=je.env.APP_STORE_CONNECT_TEAM_ID),je.env.ANDROID_KEYSTORE_FILE&&(t.ANDROID_KEYSTORE_FILE=je.env.ANDROID_KEYSTORE_FILE),je.env.KEYSTORE_KEY_ALIAS&&(t.KEYSTORE_KEY_ALIAS=je.env.KEYSTORE_KEY_ALIAS),je.env.KEYSTORE_KEY_PASSWORD&&(t.KEYSTORE_KEY_PASSWORD=je.env.KEYSTORE_KEY_PASSWORD),je.env.KEYSTORE_STORE_PASSWORD&&(t.KEYSTORE_STORE_PASSWORD=je.env.KEYSTORE_STORE_PASSWORD),je.env.PLAY_CONFIG_JSON&&(t.PLAY_CONFIG_JSON=je.env.PLAY_CONFIG_JSON),t}async function Q8(t,e,r){let n=await wfe(t),i=vfe(),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 Efe(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,u="";for(;;){let{done:c,value:l}=await o.read();if(c)break;u+=a.decode(l,{stream:!0});let h=u.split(`
|
|
323
|
+
`);u=h.pop()||"";for(let d of h)if(d.startsWith("data: ")){let f=d.slice(6);f.trim()&&g.info(f)}}if(u.startsWith("data: ")){let c=u.slice(6);c.trim()&&g.info(c)}}catch(s){i||g.warn(`Log streaming interrupted${s instanceof Error?`: ${s.message}`:""}`)}}async function bfe(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 _fe(t,e){let r=new Set;if(e==="ios"){let n=(0,mn.join)(t,"ios/App/Podfile");if((0,vi.existsSync)(n)){let s=(await(0,pn.readFile)(n,"utf-8")).matchAll(/pod\s+['"][^'"]+['"],\s*:path\s*=>\s*['"]\.\.\/\.\.\/node_modules\/([^'"]+)['"]/g);for(let o of s){let a=o[1];r.add(`node_modules/${a}/Package.swift`),r.add(`node_modules/${a}/*.podspec`),r.add(`node_modules/${a}/ios/`)}}}else if(e==="android"){let n=(0,mn.join)(t,"android/capacitor.settings.gradle");if((0,vi.existsSync)(n)){let s=(await(0,pn.readFile)(n,"utf-8")).matchAll(/new\s+File\s*\(\s*['"]\.\.\/node_modules\/([^'"]+)['"]\s*\)/g);for(let o of s){let u=o[1].replace(/\/android$/,"");r.add(`node_modules/${u}/android/`)}}}return r}function e6(t,e,r){let n=t.replace(/\\/g,"/");if(n.startsWith(`${e}/`)||n==="package.json"||n==="package-lock.json"||n.startsWith("capacitor.config.")||n.startsWith("resources/")||e==="ios"&&n.startsWith("node_modules/@capacitor/ios/")||e==="android"&&n.startsWith("node_modules/@capacitor/android/"))return!0;for(let i of r)if(n.startsWith(i))return!0;return!1}function fl(t,e,r,n,i){let s=(0,vi.readdirSync)(e);for(let o of s){let a=(0,mn.join)(e,o),u=r?`${r}/${o}`:o,c=(0,vi.statSync)(a);if(c.isDirectory()){if(o===".git"||o==="dist"||o==="build"||o===".angular"||o===".vite")continue;if(o===n){fl(t,a,u,n,i);continue}if(o==="node_modules"){fl(t,a,u,n,i);continue}if(o==="resources"){fl(t,a,u,n,i);continue}let l=u.replace(/\\/g,"/");(e6(u,n,i)||Array.from(i).some(d=>d.startsWith(`${l}/`)))&&fl(t,a,u,n,i)}else if(c.isFile()){if(o===".DS_Store"||o.endsWith(".log"))continue;e6(u,n,i)&&t.addLocalFile(a,r||void 0)}}}async function Cfe(t,e,r){let n=await _fe(t,r),i=new n6.default;fl(i,t,"",r,n),await(0,pn.writeFile)(e,i.toBuffer())}async function i6(t,e,r=!1){let n=Date.now(),i=e.verbose??!1;try{e.apikey=e.apikey||re(r);let s=await de();if(t=t||s?.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 o=(0,mn.resolve)(e.path||r6.default.cwd()),a=e.supaHost||"https://api.capgo.app",u=await pe(e.apikey,e.supaHost,e.supaAnon);await De(u,e.apikey,["write","all"]);let c=await Rr(u,t);r||(g.info(`Requesting native build for ${t}`),g.info(`Platform: ${e.platform}`),g.info(`Project: ${o}`),g.info(`
|
|
324
324
|
\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
|
|
325
325
|
`)),i&&g.info(`API host: ${a}`);let l={};e.buildCertificateBase64&&(l.BUILD_CERTIFICATE_BASE64=e.buildCertificateBase64),e.buildProvisionProfileBase64&&(l.BUILD_PROVISION_PROFILE_BASE64=e.buildProvisionProfileBase64),e.buildProvisionProfileBase64Prod&&(l.BUILD_PROVISION_PROFILE_BASE64_PROD=e.buildProvisionProfileBase64Prod),e.p12Password&&(l.P12_PASSWORD=e.p12Password),e.appleKeyId&&(l.APPLE_KEY_ID=e.appleKeyId),e.appleIssuerId&&(l.APPLE_ISSUER_ID=e.appleIssuerId),e.appleKeyContent&&(l.APPLE_KEY_CONTENT=e.appleKeyContent),e.appleProfileName&&(l.APPLE_PROFILE_NAME=e.appleProfileName),e.appStoreConnectTeamId&&(l.APP_STORE_CONNECT_TEAM_ID=e.appStoreConnectTeamId),e.androidKeystoreFile&&(l.ANDROID_KEYSTORE_FILE=e.androidKeystoreFile),e.keystoreKeyAlias&&(l.KEYSTORE_KEY_ALIAS=e.keystoreKeyAlias);let h=!!e.keystoreKeyPassword,d=!!e.keystoreStorePassword;h&&!d?(l.KEYSTORE_KEY_PASSWORD=e.keystoreKeyPassword,l.KEYSTORE_STORE_PASSWORD=e.keystoreKeyPassword):!h&&d?(l.KEYSTORE_KEY_PASSWORD=e.keystoreStorePassword,l.KEYSTORE_STORE_PASSWORD=e.keystoreStorePassword):h&&d&&(l.KEYSTORE_KEY_PASSWORD=e.keystoreKeyPassword,l.KEYSTORE_STORE_PASSWORD=e.keystoreStorePassword),e.playConfigJson&&(l.PLAY_CONFIG_JSON=e.playConfigJson);let f=await Q8(t,e.platform,Object.keys(l).length>0?l:void 0),m={app_id:t,platform:e.platform};if(!f)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 y=[];if(e.platform==="ios"?(f.BUILD_CERTIFICATE_BASE64||y.push("BUILD_CERTIFICATE_BASE64 (or --build-certificate-base64)"),!f.P12_PASSWORD&&!r&&(g.warn("\u26A0\uFE0F P12_PASSWORD not provided - assuming certificate has no password"),g.warn(" If your certificate requires a password, provide it with --p12-password")),f.BUILD_PROVISION_PROFILE_BASE64||y.push("BUILD_PROVISION_PROFILE_BASE64 (or --build-provision-profile-base64)"),f.APPLE_KEY_ID||y.push("APPLE_KEY_ID (or --apple-key-id)"),f.APPLE_ISSUER_ID||y.push("APPLE_ISSUER_ID (or --apple-issuer-id)"),f.APPLE_KEY_CONTENT||y.push("APPLE_KEY_CONTENT (or --apple-key-content)"),f.APP_STORE_CONNECT_TEAM_ID||y.push("APP_STORE_CONNECT_TEAM_ID (or --apple-team-id)")):e.platform==="android"&&(f.ANDROID_KEYSTORE_FILE||y.push("ANDROID_KEYSTORE_FILE (or --android-keystore-file)"),f.KEYSTORE_KEY_ALIAS||y.push("KEYSTORE_KEY_ALIAS (or --keystore-key-alias)"),!f.KEYSTORE_KEY_PASSWORD&&!f.KEYSTORE_STORE_PASSWORD&&y.push("KEYSTORE_KEY_PASSWORD or KEYSTORE_STORE_PASSWORD (at least one password required)"),!f.PLAY_CONFIG_JSON&&!r&&g.warn("\u26A0\uFE0F PLAY_CONFIG_JSON not provided - build will succeed but cannot auto-upload to Play Store")),y.length>0){if(!r){g.error(`\u274C Missing required credentials for ${e.platform}:`),g.error("");for(let D of y)g.error(` \u2022 ${D}`);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}: ${y.join(", ")}`)}if(m.credentials=f,r||g.info("\u2713 Using credentials (merged from CLI args, env vars, and saved file)"),i){let D=Object.keys(f).filter(w=>f[w]);g.info(`Credentials provided: ${D.join(", ")}`)}r||g.info("Requesting build from Capgo...");let v=await fetch(`${a}/build/request`,{method:"POST",headers:{"Content-Type":"application/json",authorization:e.apikey},body:JSON.stringify(m)});if(!v.ok){let D=await v.text();throw new Error(`Failed to request build: ${v.status} - ${D}`)}let E=await v.json();r||(g.success(`Build job created: ${E.job_id}`),g.info(`Status: ${E.status}`)),i&&(g.info(`Upload URL: ${E.upload_url}`),g.info(`Upload expires: ${E.upload_expires_at}`)),await _e(e.apikey,{channel:"native-builder",event:"Build requested",icon:"\u{1F3D7}\uFE0F",user_id:c,tags:{"app-id":t,platform:e.platform},notify:!1}).catch();let A=(0,mn.join)((0,t6.tmpdir)(),`capgo-build-${Date.now()}`);await(0,pn.mkdir)(A,{recursive:!0});let p=(0,mn.join)(A,`${(0,mn.basename)(o)}.zip`);try{r||g.info(`Zipping ${e.platform} project from ${o}...`),await Cfe(o,p,e.platform);let w=((await(0,pn.stat)(p)).size/1024/1024).toFixed(2);r||g.success(`Created zip: ${p} (${w} MB)`),r||g.info("Uploading to builder..."),i&&(g.info(`Upload endpoint: ${E.upload_url}`),g.info(`File size: ${w} MB`),g.info(`Job ID: ${E.job_id}`));let S=(0,vi.readFileSync)(p),F=xt();r||F.start("Uploading bundle"),await new Promise((B,j)=>{let K=new im.Upload(S,{endpoint:E.upload_url,chunkSize:5242880,metadata:{filename:(0,mn.basename)(p),filetype:"application/zip"},headers:{authorization:e.apikey},onBeforeRequest($){if(i){g.info(`[TUS] ${$.getMethod()} ${$.getURL()}`);let b=$.getHeader("authorization");g.info(`[TUS] Authorization header present: ${!!b}`)}},onAfterResponse($,b){if(i){g.info(`[TUS] Response status: ${b.getStatus()}`);let T=b.getHeader("upload-offset"),P=b.getHeader("tus-resumable");g.info(`[TUS] Upload-Offset: ${T}, Tus-Resumable: ${P}`)}},onError($){if(r||(F.stop("Upload failed"),g.error(`Upload error: ${$.message}`)),$ instanceof im.DetailedError){let b=$.originalResponse?.getBody(),T=$.originalResponse?.getStatus(),P=$.originalRequest?.getURL();i&&(g.error(`[TUS] Request URL: ${P}`),g.error(`[TUS] Response status: ${T}`),g.error(`[TUS] Response body: ${b}`));let L="Unknown error";try{let q=JSON.parse(b||'{"error": "unknown error"}');L=q.status||q.error||q.message||"unknown error"}catch{L=b||$.message}j(new Error(`TUS upload failed: ${L}`))}else j(new Error(`TUS upload failed: ${$.message||$.toString()}`))},onProgress($,b){let T=($/b*100).toFixed(2);r||F.message(`Uploading ${T}%`)},onSuccess(){r||F.stop("Upload complete!"),i&&g.success("TUS upload completed successfully"),B()}});i&&g.info("[TUS] Starting upload..."),K.start()}),r||g.info("Starting build job...");let _=await fetch(`${a}/build/start/${E.job_id}`,{method:"POST",headers:{"Content-Type":"application/json",authorization:e.apikey},body:JSON.stringify({app_id:t})});if(!_.ok){let B=await _.text();throw new Error(`Failed to start build: ${_.status} - ${B}`)}let k=await _.json();r||(g.success("Build started successfully!"),g.info(`Job ID: ${E.job_id}`),g.info(`Streaming build logs...
|
|
326
326
|
`)),await Efe(a,E.job_id,t,e.apikey,r);let R=await bfe(a,E.job_id,t,e.platform,e.apikey,r);r||(R==="succeeded"?g.success("Build completed successfully!"):R==="failed"?g.error("Build failed"):g.warn(`Build finished with status: ${R}`));let I=((Date.now()-n)/1e3).toFixed(2);return await _e(e.apikey,{channel:"native-builder",event:R==="succeeded"?"Build succeeded":"Build failed",icon:R==="succeeded"?"\u2705":"\u274C",user_id:c,tags:{"app-id":t,platform:e.platform,status:R||"unknown",time:I},notify:!1}).catch(),{success:R==="succeeded",jobId:E.job_id,uploadUrl:E.upload_url,status:R||k.status||E.status}}finally{await(0,pn.rm)(A,{recursive:!0,force:!0})}}catch(s){let o=s instanceof Error?s.message:String(s);return r||g.error(o),{success:!1,error:o}}}async function Sfe(t,e,r,n){for await(let i of t)n||g.warn(`Removing ${i.name} created on ${iu(i.created_at)}`),await em(e,r,i.name)}function Afe(t,e,r){let n=[];for(let i of t??[]){let s=lt(i.name);Gm(s,e)&&ds(s,r)&&n.push(i)}return n}async function s6(t,e,r=!1){r||ae("Cleanup versions in Capgo"),await Xe(),e.apikey=e.apikey||re();let{bundle:n,keep:i=4}=e,s=e.force||!1,o=e.ignoreChannel||!1,a=await de();if(t=$e(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 Et(u,e.apikey,t,3,r),r||g.info("Querying all available versions in Capgo");let c=await tm(u,t),l=await U8(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=lt(n),m=vu(f,"major");r||g.info(`Querying available versions in Capgo between ${rn(f)} and ${rn(m)}`),c=Afe(c,f,m),r||g.info(`Active versions in Capgo between ${rn(f)} and ${rn(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||M8(c),!s){if(r)throw new Error("Cleanup requires force=true in SDK mode to prevent accidental deletions");{let f=await Pr({message:"Do you want to continue removing the versions specified?"});if(st(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 Sfe(h,u,t,r),r||le("Done \u2705"),{removed:h.length,kept:d}}async function o6(t,e,r=!1){r||ae("Check compatibility");let n={...e,apikey:e.apikey||re()},i=await de(),s=$e(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 Et(a,n.apikey,s,1,r);let u=await Qp(a,s,o,n.packageJson,n.nodeModules);if(!r){let c=new zt;c.headers=["Package","Local version","Remote version","Compatible"],c.theme=zt.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,v=fo(d)?l:h;c.rows.push([f,m,y,v])}g.success("Compatibility"),g.success(c.toString())}return{finalCompatibility:u.finalCompatibility}}var _i=require("node:fs");var Ei=require("node:buffer"),Ut=require("node:crypto"),u6="aes-128-cbc",bi="base64",a6="hex",hl=Ut.constants.RSA_PKCS1_PADDING;function sm(t){let e=(0,Ut.randomBytes)(16),r=(0,Ut.randomBytes)(16),n=e.toString(bi),i=(0,Ut.privateEncrypt)({key:t,padding:hl},r).toString(bi);return{sessionKey:r,ivSessionKey:`${n}:${i}`}}function au(t,e,r){let[n]=r.split(":"),i=Ei.Buffer.from(n,bi),s=(0,Ut.createCipheriv)(u6,e,i);return s.setAutoPadding(!0),Ei.Buffer.concat([s.update(t),s.final()])}function c6(t,e,r){let[n,i]=e.split(":"),s=(0,Ut.publicDecrypt)({key:r,padding:hl},Ei.Buffer.from(i,bi)),o=Ei.Buffer.from(n,bi),a=(0,Ut.createDecipheriv)(u6,s,o);return a.setAutoPadding(!0),Ei.Buffer.concat([a.update(t),a.final()])}function uu(t,e){return(0,Ut.privateEncrypt)({key:e,padding:hl},Ei.Buffer.from(t,bi)).toString(bi)}function om(t,e){return(0,Ut.privateEncrypt)({key:e,padding:hl},Ei.Buffer.from(t,a6)).toString(a6)}function l6(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 f6(t,e){return(0,Ut.publicDecrypt)({key:e,padding:hl},Ei.Buffer.from(t,bi)).toString(bi)}function h6(t){return t?t.replace(/-----BEGIN RSA PUBLIC KEY-----/g,"").replace(/-----END RSA PUBLIC KEY-----/g,"").replace(/\n/g,"").replace(/\r/g,"").replace(/ /g,"").substring(0,4):""}function Ofe(t,e){let r=t.key||wi,n=e.config.plugins?.CapacitorUpdater?.publicKey;return(0,_i.existsSync)(r)?n=(0,_i.readFileSync)(r,"utf8"):!n&&t.keyData&&(n=t.keyData),{publicKey:n,fallbackKeyPath:r}}async function d6(t,e,r,n=!1){n||ae("Decrypt zip file");try{if(await Xe(),!(0,_i.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,_i.existsSync)(wi)&&!i.config.plugins?.CapacitorUpdater?.publicKey){let h=`Public Key not found at the path ${wi} or in ${i.path}`;throw n||g.error(h),new Error(h)}let{publicKey:s,fallbackKeyPath:o}=Ofe(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,_i.readFileSync)(t),u=c6(a,e,r.keyData??s),c=`${t}_decrypted.zip`;(0,_i.writeFileSync)(c,u),n||g.info(`Decrypted zip file at ${c}`);let l;if(r.checksum){let h=await ri(u,"sha256"),d=f6(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||le("\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 p6(t,e,r,n=!1){n||ae("Delete bundle"),r.apikey=r.apikey||re();let i=await de();if(e=$e(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 Et(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 em(s,e,t),n||(g.success(`Bundle ${e}@${t} deleted in Capgo`),le("Done")),!0}var Ci=require("node:fs");function dl(t){console.error(W(t))}async function m6(t,e,r,n=!1){let{json:i}=r,s=!i&&!n;s&&(ae("Encryption"),await Xe());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,Ci.existsSync)(t)){let E=`Zip not found at the path ${t}`;throw n||(i?dl({error:"zip_not_found"}):g.error(`Error: ${E}`)),new Error(E)}if(!u)throw n||(i?dl({error:"missing_public_key"}):g.warning("Warning: Missing Public Key in config")),new Error("Missing public key in config");let c=r.key||$r,l=r.keyData||"";if(!(0,Ci.existsSync)(c)&&!l)throw n||(i?dl({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,Ci.existsSync)(c)&&(l=(0,Ci.readFileSync)(c,"utf8")),l&&!l.startsWith("-----BEGIN RSA PRIVATE KEY-----"))throw n||(i?dl({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,Ci.readFileSync)(t),{sessionKey:d,ivSessionKey:f}=sm(l),m=au(h,d,f),y=uu(e,l),v=`${t}_encrypted.zip`;return(0,Ci.writeFileSync)(v,m),n||(i?console.log(JSON.stringify({checksum:y,filename:v,ivSessionKey:f},null,2)):(g.success(`Encoded Checksum: ${y}`),g.success(`ivSessionKey: ${f}`),g.success(`Encrypted zip saved at ${v}`),le("Done \u2705"))),{checksum:y,filename:v,ivSessionKey:f}}catch(o){throw n||(r.json?dl(o):g.error(`Error encrypting zip file ${W(o)}`)),o instanceof Error?o:new Error(String(o))}}var zU=require("node:crypto"),Eo=require("node:fs"),Em=require("node:process");var am=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 ls(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("<","<").replaceAll(">",">").replaceAll("&","&")}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 Hn=class extends Error{};var Jt=class extends Hn{},pl=class extends Hn{},um=class extends Hn{bucketName;constructor(e){super(`Invalid bucket name: ${e}`),this.bucketName=e}},Vn=class extends Hn{objectName;constructor(e){super(`Invalid object name: ${e}`),this.objectName=e}},fs=class extends Hn{constructor(){super("accessKey is required")}},cu=class extends Hn{constructor(){super("secretKey is required")}},ml=class extends Hn{constructor(){super("expirySeconds cannot be less than 1 second or more than 7 days")}},Si=class extends Hn{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 g6(t){try{let r=ls(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 Si(t.status,n,i,{key:s,bucketName:o,resource:a,region:u})}catch{return new Si(t.status,"UnrecognizedError",`Error: Unexpected response code ${t.status} ${t.statusText}. Unable to parse response as XML.`)}}function y6(t){return typeof t!="number"||isNaN(t)?!1:t>=1&&t<=65535}function D6(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 hs(t){return!(!xfe(t)||t.length===0)}function xfe(t){return!(typeof t!="string"||t.length>1024)}function gl(t){return Array.from(t).map(e=>e.toString(16).padStart(2,"0")).join("")}function ho(t=""){let e={'"':"",""":"",""":"",""":"",""":""};return t.replace(/^("|"|")|("|"|")$/g,r=>e[r])}function Eb(t){return t.get("x-amz-version-id")??null}function po(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 bb(t){return po(t).slice(0,8)}function _b(t,e){return`${bb(e)}/${t}/s3/aws4_request`}async function cm(t){return t instanceof Uint8Array||(t=new TextEncoder().encode(t)),gl(new Uint8Array(await crypto.subtle.digest("SHA-256",t)))}var Tfe=["x-amz-server-side-encryption-customer-algorithm","x-amz-server-side-encryption-customer-key","x-amz-server-side-encryption-customer-key-MD5"],lm=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:ho(A.headers.get("etag")??void 0),versionId:Eb(A.headers)};return}y===1&&(u=(await Ife({client:e,bucketName:r,objectName:n,metadata:s})).uploadId);let v={"Content-Length":String(d.length)};for(let A of Tfe){let p=s[A];p&&(v[A]=p)}let E=e.makeRequest({method:"PUT",query:{partNumber:y.toString(),uploadId:u},headers:new Headers(v),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(E.catch(A=>{l||(l=A)}))}catch(v){throw v}},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 Pfe({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 Ife(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=ls(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 Pfe({client:t,bucketName:e,objectName:r,uploadId:n,etags:i}){let s=`
|