@capgo/cli 7.56.3 → 7.56.4
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 +2 -2
- package/dist/package.json +1 -1
- package/dist/src/sdk.js +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -104,7 +104,7 @@ const config: CapacitorConfig = ${(0,lM.formatJSObject)(t)};
|
|
|
104
104
|
export default config;
|
|
105
105
|
`}});function AM(){try{return pg.default.statSync("/.dockerenv"),!0}catch{return!1}}function OM(){try{return pg.default.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}function hg(){return dg===void 0&&(dg=AM()||OM()),dg}var pg,dg,Vx=Qe(()=>{pg=pe(require("node:fs"),1)});function Qi(){return mg===void 0&&(mg=FM()||hg()),mg}var zx,mg,FM,gg=Qe(()=>{zx=pe(require("node:fs"),1);Vx();FM=()=>{try{return zx.default.statSync("/run/.containerenv"),!0}catch{return!1}}});var yg,Gx,Wx,Kx,pn,Dg=Qe(()=>{yg=pe(require("node:process"),1),Gx=pe(require("node:os"),1),Wx=pe(require("node:fs"),1);gg();Kx=()=>{if(yg.default.platform!=="linux")return!1;if(Gx.default.release().toLowerCase().includes("microsoft"))return!Qi();try{return Wx.default.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft")?!Qi():!1}catch{return!1}},pn=yg.default.env.__IS_WSL_TEST__?Kx:Kx()});var bg,Yx,Jx,Xx,kM,wg,rr,vg=Qe(()=>{bg=pe(require("node:process"),1),Yx=require("node:buffer"),Jx=require("node:util"),Xx=pe(require("node:child_process"),1),kM=(0,Jx.promisify)(Xx.default.execFile),wg=()=>`${bg.default.env.SYSTEMROOT||bg.default.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`,rr=async(t,e={})=>{let{powerShellPath:r,...n}=e,o=rr.encodeCommand(t);return kM(r??wg(),[...rr.argumentsPrefix,o],{encoding:"utf8",...n})};rr.argumentsPrefix=["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand"];rr.encodeCommand=t=>Yx.Buffer.from(t,"utf16le").toString("base64");rr.escapeArgument=t=>`'${String(t).replaceAll("'","''")}'`});var Qx,eA,$o,PM,$M,IM,Nl,Zx,tA,rA,nA,oA=Qe(()=>{Qx=require("node:util"),eA=pe(require("node:child_process"),1),$o=pe(require("node:fs/promises"),1);Dg();vg();Dg();PM=(0,Qx.promisify)(eA.default.execFile),$M=(()=>{let t="/mnt/",e;return async function(){if(e)return e;let r="/etc/wsl.conf",n=!1;try{await $o.default.access(r,$o.constants.F_OK),n=!0}catch{}if(!n)return t;let o=await $o.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}})(),IM=async()=>`${await $M()}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`,Nl=pn?IM:wg,tA=async()=>(Zx??=(async()=>{try{let t=await Nl();return await $o.default.access(t,$o.constants.X_OK),!0}catch{return!1}})(),Zx),rA=async()=>{let t=await Nl(),e=String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`,{stdout:r}=await rr(e,{powerShellPath:t});return r.trim()},nA=async t=>{if(/^[a-z]+:\/\//i.test(t))return t;try{let{stdout:e}=await PM("wslpath",["-aw",t],{encoding:"utf8"});return e.trim()}catch{return t}}});function Io(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 iA=Qe(()=>{});async function Cg(){if(sA.default.platform!=="darwin")throw new Error("macOS only");let{stdout:t}=await TM("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 aA,sA,uA,TM,cA=Qe(()=>{aA=require("node:util"),sA=pe(require("node:process"),1),uA=require("node:child_process"),TM=(0,aA.promisify)(uA.execFile)});async function dA(t,{humanReadableOutput:e=!0,signal:r}={}){if(lA.default.platform!=="darwin")throw new Error("macOS only");let n=e?[]:["-ss"],o={};r&&(o.signal=r);let{stdout:i}=await RM("osascript",["-e",t,n],o);return i.trim()}var lA,fA,Eg,RM,pA=Qe(()=>{lA=pe(require("node:process"),1),fA=require("node:util"),Eg=require("node:child_process"),RM=(0,fA.promisify)(Eg.execFile)});async function _g(t){return dA(`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 hA=Qe(()=>{pA()});async function xg(t=BM){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 Ll(`Cannot find Windows browser in stdout: ${JSON.stringify(e)}`);let{id:n}=r.groups,o=yA[n];if(!o)throw new Ll(`Unknown browser ID: ${n}`);return o}var mA,gA,BM,yA,Sg,Ll,Ag=Qe(()=>{mA=require("node:util"),gA=require("node:child_process"),BM=(0,mA.promisify)(gA.execFile),yA={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"}},Sg=new Map(Object.entries(yA)),Ll=class extends Error{}});async function Og(){if(jl.default.platform==="darwin"){let t=await Cg();return{name:await _g(t),id:t}}if(jl.default.platform==="linux"){let{stdout:t}=await NM("xdg-mime",["query","default","x-scheme-handler/http"]),e=t.trim();return{name:LM(e.replace(/.desktop$/,"").replace("-"," ")),id:e}}if(jl.default.platform==="win32")return xg();throw new Error("Only macOS, Linux, and Windows are supported")}var DA,jl,bA,NM,LM,wA=Qe(()=>{DA=require("node:util"),jl=pe(require("node:process"),1),bA=require("node:child_process");cA();hA();Ag();Ag();NM=(0,DA.promisify)(bA.execFile),LM=t=>t.toLowerCase().replaceAll(/(?:^|\s|-)\S/g,e=>e.toUpperCase())});var Ul,jM,vA,CA=Qe(()=>{Ul=pe(require("node:process"),1),jM=!!(Ul.default.env.SSH_CONNECTION||Ul.default.env.SSH_CLIENT||Ul.default.env.SSH_TTY),vA=jM});var $g={};Qr($g,{apps:()=>To,default:()=>qM,openApp:()=>MM});function xA(t){if(typeof t=="string"||Array.isArray(t))return t;let{[_A]:e}=t;if(!e)throw new Error(`${_A} is not supported`);return e}function ks({[ea]:t},{wsl:e}={}){if(e&&pn)return xA(e);if(!t)throw new Error(`${ea} is not supported`);return xA(t)}var kg,Pg,OA,FA,ql,AA,Ml,Fg,EA,ea,_A,SA,Fs,UM,MM,To,qM,Ig=Qe(()=>{kg=pe(require("node:process"),1),Pg=pe(require("node:path"),1),OA=require("node:url"),FA=pe(require("node:child_process"),1),ql=pe(require("node:fs/promises"),1);oA();vg();iA();wA();gg();CA();AA={},Ml=Symbol("fallbackAttempt"),Fg=AA.url?Pg.default.dirname((0,OA.fileURLToPath)(AA.url)):"",EA=Pg.default.join(Fg,"xdg-open"),{platform:ea,arch:_A}=kg.default,SA=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")},Fs=async t=>{t={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...t};let e=t[Ml]===!0;if(delete t[Ml],Array.isArray(t.app))return SA(t.app,c=>Fs({...t,app:c,[Ml]:!0}));let{name:r,arguments:n=[]}=t.app??{};if(n=[...n],Array.isArray(r))return SA(r,c=>Fs({...t,app:{name:c,arguments:n},[Ml]:!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(pn){let p=await rA();d=Sg.get(p)??{}}else d=await Og();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 Fs({...t,app:{name:To[p],arguments:n}})}throw new Error(`${d.name} is not supported as a default browser`)}let o,i=[],a={},s=!1;if(pn&&!Qi()&&!vA&&!r&&(s=await tA()),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 Nl(),i.push(...rr.argumentsPrefix),pn||(a.windowsVerbatimArguments=!0),pn&&t.target&&(t.target=await nA(t.target));let c=["$ProgressPreference = 'SilentlyContinue';","Start"];t.wait&&c.push("-Wait"),r?(c.push(rr.escapeArgument(r)),t.target&&n.push(t.target)):t.target&&c.push(rr.escapeArgument(t.target)),n.length>0&&(n=n.map(f=>rr.escapeArgument(f)),c.push("-ArgumentList",n.join(","))),t.target=rr.encodeCommand(c.join(" ")),t.wait||(a.stdio="ignore")}else{if(r)o=r;else{let c=!Fg||Fg==="/",f=!1;try{await ql.default.access(EA,ql.constants.X_OK),f=!0}catch{}o=kg.default.versions.electron??(ea==="android"||c||!f)?"xdg-open":EA}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=FA.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)})}))},UM=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a `target`");return Fs({...e,target:t})},MM=(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 Fs({...e,app:{name:t,arguments:r}})};To={browser:"browser",browserPrivate:"browserPrivate"};Io(To,"chrome",()=>ks({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"]}}));Io(To,"brave",()=>ks({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"]}}));Io(To,"firefox",()=>ks({darwin:"firefox",win32:String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,linux:"firefox"},{wsl:"/mnt/c/Program Files/Mozilla Firefox/firefox.exe"}));Io(To,"edge",()=>ks({darwin:"microsoft edge",win32:"msedge",linux:["microsoft-edge","microsoft-edge-dev"]},{wsl:"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"}));Io(To,"safari",()=>ks({darwin:"Safari"}));qM=UM});var yf=x(Sr=>{"use strict";Sr.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;Sr.find=(t,e)=>t.nodes.find(r=>r.type===e);Sr.exceedsLimit=(t,e,r=1,n)=>n===!1||!Sr.isInteger(t)||!Sr.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=n;Sr.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)};Sr.encloseBrace=t=>t.type!=="brace"?!1:t.commas>>0+t.ranges>>0===0?(t.invalid=!0,!0):!1;Sr.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;Sr.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;Sr.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);Sr.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 Df=x((hX,c1)=>{"use strict";var u1=yf();c1.exports=(t,e={})=>{let r=(n,o={})=>{let i=e.escapeInvalid&&u1.isInvalidBrace(o),a=n.invalid===!0&&e.escapeInvalid===!0,s="";if(n.value)return(i||a)&&u1.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 f1=x((mX,l1)=>{"use strict";l1.exports=function(t){return typeof t=="number"?t-t===0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var w1=x((gX,b1)=>{"use strict";var d1=f1(),qo=(t,e,r)=>{if(d1(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(d1(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=D1(t)||D1(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=p1(y,Math.abs(c),p,n),c=p.a=0}return f>=0&&(h=p1(c,f,p,n)),p.negatives=m,p.positives=h,p.result=B5(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 B5(t,e,r){let n=oy(t,e,"-",!1,r)||[],o=oy(e,t,"",!1,r)||[],i=oy(t,e,"-?",!0,r)||[];return n.concat(i).concat(o).join("|")}function N5(t,e){let r=1,n=1,o=m1(t,r),i=new Set([e]);for(;t<=o&&o<=e;)i.add(o),r+=1,o=m1(t,r);for(o=g1(e+1,n)-1;t<o&&o<=e;)i.add(o),n+=1,o=g1(e+1,n)-1;return i=[...i],i.sort(U5),i}function L5(t,e,r){if(t===e)return{pattern:t,count:[],digits:0};let n=j5(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+=M5(u,c,r):a++}return a&&(i+=r.shorthand===!0?"\\d":"[0-9]"),{pattern:i,count:[a],digits:o}}function p1(t,e,r,n){let o=N5(t,e),i=[],a=t,s;for(let u=0;u<o.length;u++){let c=o[u],f=L5(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+y1(s.count),a=c+1;continue}r.isPadded&&(d=q5(c,r,n)),f.string=d+f.pattern+y1(f.count),i.push(f),a=c+1,s=f}return i}function oy(t,e,r,n,o){let i=[];for(let a of t){let{string:s}=a;!n&&!h1(e,"string",s)&&i.push(r+s),n&&h1(e,"string",s)&&i.push(r+s)}return i}function j5(t,e){let r=[];for(let n=0;n<t.length;n++)r.push([t[n],e[n]]);return r}function U5(t,e){return t>e?1:e>t?-1:0}function h1(t,e,r){return t.some(n=>n[e]===r)}function m1(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function g1(t,e){return t-t%Math.pow(10,e)}function y1(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function M5(t,e,r){return`[${t}${e-t===1?"":"-"}${e}]`}function D1(t){return/^-?(0+)\d/.test(t)}function q5(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={};b1.exports=qo});var sy=x((yX,A1)=>{"use strict";var H5=require("util"),C1=w1(),v1=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),V5=t=>e=>t===!0?Number(e):String(e),iy=t=>typeof t=="number"||typeof t=="string"&&t!=="",Gs=t=>Number.isInteger(+t),ay=t=>{let e=`${t}`,r=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++r]==="0";);return r>0},z5=(t,e,r)=>typeof t=="string"||typeof e=="string"?!0:r.stringify===!0,K5=(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},wf=(t,e)=>{let r=t[0]==="-"?"-":"";for(r&&(t=t.slice(1),e--);t.length<e;)t="0"+t;return r?"-"+t:t},G5=(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=>wf(String(s),r)).join("|")),t.negatives.length&&(i=`-(${n}${t.negatives.map(s=>wf(String(s),r)).join("|")})`),o&&i?a=`${o}|${i}`:a=o||i,e.wrap?`(${n}${a})`:a},E1=(t,e,r,n)=>{if(r)return C1(t,e,{wrap:!1,...n});let o=String.fromCharCode(t);if(t===e)return o;let i=String.fromCharCode(e);return`[${o}-${i}]`},_1=(t,e,r)=>{if(Array.isArray(t)){let n=r.wrap===!0,o=r.capture?"":"?:";return n?`(${o}${t.join("|")})`:t.join("|")}return C1(t,e,r)},S1=(...t)=>new RangeError("Invalid range arguments: "+H5.inspect(...t)),x1=(t,e,r)=>{if(r.strictRanges===!0)throw S1([t,e]);return[]},W5=(t,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${t}" to be a number`);return[]},Y5=(t,e,r=1,n={})=>{let o=Number(t),i=Number(e);if(!Number.isInteger(o)||!Number.isInteger(i)){if(n.strictRanges===!0)throw S1([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=ay(s)||ay(u)||ay(c),d=f?Math.max(s.length,u.length,c.length):0,p=f===!1&&z5(t,e,n)===!1,h=n.transform||V5(p);if(n.toRegex&&r===1)return E1(wf(t,d),wf(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(K5(h(o,v),d,p)),o=a?o-r:o+r,v++;return n.toRegex===!0?r>1?G5(m,n,d):_1(b,null,{wrap:!1,...n}):b},J5=(t,e,r=1,n={})=>{if(!Gs(t)&&t.length>1||!Gs(e)&&e.length>1)return x1(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 E1(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?_1(f,null,{wrap:!1,options:n}):f},bf=(t,e,r,n={})=>{if(e==null&&iy(t))return[t];if(!iy(t)||!iy(e))return x1(t,e,n);if(typeof r=="function")return bf(t,e,1,{transform:r});if(v1(r))return bf(t,e,0,r);let o={...n};return o.capture===!0&&(o.wrap=!0),r=r||o.step||1,Gs(r)?Gs(t)&&Gs(e)?Y5(t,e,r,o):J5(t,e,Math.max(Math.abs(r),1),o):r!=null&&!v1(r)?W5(r,o):bf(t,e,1,r)};A1.exports=bf});var k1=x((DX,F1)=>{"use strict";var X5=sy(),O1=yf(),Z5=(t,e={})=>{let r=(n,o={})=>{let i=O1.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=O1.reduce(n.nodes),d=X5(...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)};F1.exports=Z5});var I1=x((bX,$1)=>{"use strict";var Q5=sy(),P1=Df(),ga=yf(),Ho=(t="",e="",r=!1)=>{let n=[];if(t=[].concat(t),e=[].concat(e),!e.length)return t;if(!t.length)return r?ga.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 ga.flatten(n)},e9=(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(),P1(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=ga.reduce(o.nodes);if(ga.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=Q5(...d,e);p.length===0&&(p=P1(o,e)),s.push(Ho(s.pop(),p)),o.nodes=[];return}let u=ga.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 ga.flatten(n(t))};$1.exports=e9});var R1=x((wX,T1)=>{"use strict";T1.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 U1=x((vX,j1)=>{"use strict";var t9=Df(),{MAX_LENGTH:B1,CHAR_BACKSLASH:uy,CHAR_BACKTICK:r9,CHAR_COMMA:n9,CHAR_DOT:o9,CHAR_LEFT_PARENTHESES:i9,CHAR_RIGHT_PARENTHESES:a9,CHAR_LEFT_CURLY_BRACE:s9,CHAR_RIGHT_CURLY_BRACE:u9,CHAR_LEFT_SQUARE_BRACKET:N1,CHAR_RIGHT_SQUARE_BRACKET:L1,CHAR_DOUBLE_QUOTE:c9,CHAR_SINGLE_QUOTE:l9,CHAR_NO_BREAK_SPACE:f9,CHAR_ZERO_WIDTH_NOBREAK_SPACE:d9}=R1(),p9=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},n=typeof r.maxLength=="number"?Math.min(B1,r.maxLength):B1;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===d9||p===f9)){if(p===uy){m({type:"text",value:(e.keepEscaping?p:"")+h()});continue}if(p===L1){m({type:"text",value:"\\"+p});continue}if(p===N1){u++;let y;for(;f<c&&(y=h());){if(p+=y,y===N1){u++;continue}if(y===uy){p+=h();continue}if(y===L1&&(u--,u===0))break}m({type:"text",value:p});continue}if(p===i9){a=m({type:"paren",nodes:[]}),i.push(a),m({type:"text",value:p});continue}if(p===a9){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===c9||p===l9||p===r9){let y=p,b;for(e.keepQuotes!==!0&&(p="");f<c&&(b=h());){if(b===uy){p+=b+h();continue}if(b===y){e.keepQuotes===!0&&(p+=b);break}p+=b}m({type:"text",value:p});continue}if(p===s9){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===u9){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===n9&&d>0){if(a.ranges>0){a.ranges=0;let y=a.nodes.shift();a.nodes=[y,{type:"text",value:t9(a)}]}m({type:"comma",value:p}),a.commas++;continue}if(p===o9&&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};j1.exports=p9});var H1=x((CX,q1)=>{"use strict";var M1=Df(),h9=k1(),m9=I1(),g9=U1(),sr=(t,e={})=>{let r=[];if(Array.isArray(t))for(let n of t){let o=sr.create(n,e);Array.isArray(o)?r.push(...o):r.push(o)}else r=[].concat(sr.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};sr.parse=(t,e={})=>g9(t,e);sr.stringify=(t,e={})=>M1(typeof t=="string"?sr.parse(t,e):t,e);sr.compile=(t,e={})=>(typeof t=="string"&&(t=sr.parse(t,e)),h9(t,e));sr.expand=(t,e={})=>{typeof t=="string"&&(t=sr.parse(t,e));let r=m9(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};sr.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?sr.compile(t,e):sr.expand(t,e);q1.exports=sr});var Ws=x((EX,W1)=>{"use strict";var y9=require("path"),Yr="\\\\/",V1=`[^${Yr}]`,wn="\\.",D9="\\+",b9="\\?",vf="\\/",w9="(?=.)",z1="[^/]",cy=`(?:${vf}|$)`,K1=`(?:^|${vf})`,ly=`${wn}{1,2}${cy}`,v9=`(?!${wn})`,C9=`(?!${K1}${ly})`,E9=`(?!${wn}{0,1}${cy})`,_9=`(?!${ly})`,S9=`[^.${vf}]`,x9=`${z1}*?`,G1={DOT_LITERAL:wn,PLUS_LITERAL:D9,QMARK_LITERAL:b9,SLASH_LITERAL:vf,ONE_CHAR:w9,QMARK:z1,END_ANCHOR:cy,DOTS_SLASH:ly,NO_DOT:v9,NO_DOTS:C9,NO_DOT_SLASH:E9,NO_DOTS_SLASH:_9,QMARK_NO_DOT:S9,STAR:x9,START_ANCHOR:K1},A9={...G1,SLASH_LITERAL:`[${Yr}]`,QMARK:V1,STAR:`${V1}*?`,DOTS_SLASH:`${wn}{1,2}(?:[${Yr}]|$)`,NO_DOT:`(?!${wn})`,NO_DOTS:`(?!(?:^|[${Yr}])${wn}{1,2}(?:[${Yr}]|$))`,NO_DOT_SLASH:`(?!${wn}{0,1}(?:[${Yr}]|$))`,NO_DOTS_SLASH:`(?!${wn}{1,2}(?:[${Yr}]|$))`,QMARK_NO_DOT:`[^.${Yr}]`,START_ANCHOR:`(?:^|[${Yr}])`,END_ANCHOR:`(?:[${Yr}]|$)`},O9={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"};W1.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:O9,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:y9.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?A9:G1}}});var Ys=x(Xt=>{"use strict";var F9=require("path"),k9=process.platform==="win32",{REGEX_BACKSLASH:P9,REGEX_REMOVE_BACKSLASH:$9,REGEX_SPECIAL_CHARS:I9,REGEX_SPECIAL_CHARS_GLOBAL:T9}=Ws();Xt.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);Xt.hasRegexChars=t=>I9.test(t);Xt.isRegexChar=t=>t.length===1&&Xt.hasRegexChars(t);Xt.escapeRegex=t=>t.replace(T9,"\\$1");Xt.toPosixSlashes=t=>t.replace(P9,"/");Xt.removeBackslashes=t=>t.replace($9,e=>e==="\\"?"":e);Xt.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};Xt.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:k9===!0||F9.sep==="\\";Xt.escapeLast=(t,e,r)=>{let n=t.lastIndexOf(e,r);return n===-1?t:t[n-1]==="\\"?Xt.escapeLast(t,e,n-1):`${t.slice(0,n)}\\${t.slice(n)}`};Xt.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};Xt.wrapOutput=(t,e={},r={})=>{let n=r.contains?"":"^",o=r.contains?"":"$",i=`${n}(?:${t})${o}`;return e.negated===!0&&(i=`(?:^(?!${i}).*$)`),i}});var rF=x((SX,tF)=>{"use strict";var Y1=Ys(),{CHAR_ASTERISK:fy,CHAR_AT:R9,CHAR_BACKWARD_SLASH:Js,CHAR_COMMA:B9,CHAR_DOT:dy,CHAR_EXCLAMATION_MARK:py,CHAR_FORWARD_SLASH:eF,CHAR_LEFT_CURLY_BRACE:hy,CHAR_LEFT_PARENTHESES:my,CHAR_LEFT_SQUARE_BRACKET:N9,CHAR_PLUS:L9,CHAR_QUESTION_MARK:J1,CHAR_RIGHT_CURLY_BRACE:j9,CHAR_RIGHT_PARENTHESES:X1,CHAR_RIGHT_SQUARE_BRACKET:U9}=Ws(),Z1=t=>t===eF||t===Js,Q1=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?1/0:1)},M9=(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,F,B,T={value:"",depth:0,isGlob:!1},L=()=>c>=n,A=()=>u.charCodeAt(c+1),q=()=>(F=B,u.charCodeAt(++c));for(;c<n;){B=q();let w;if(B===Js){E=T.backslashes=!0,B=q(),B===hy&&(v=!0);continue}if(v===!0||B===hy){for(P++;L()!==!0&&(B=q());){if(B===Js){E=T.backslashes=!0,q();continue}if(B===hy){P++;continue}if(v!==!0&&B===dy&&(B=q())===dy){if(p=T.isBrace=!0,m=T.isGlob=!0,S=!0,o===!0)continue;break}if(v!==!0&&B===B9){if(p=T.isBrace=!0,m=T.isGlob=!0,S=!0,o===!0)continue;break}if(B===j9&&(P--,P===0)){v=!1,p=T.isBrace=!0,S=!0;break}}if(o===!0)continue;break}if(B===eF){if(i.push(c),a.push(T),T={value:"",depth:0,isGlob:!1},S===!0)continue;if(F===dy&&c===f+1){f+=2;continue}d=c+1;continue}if(r.noext!==!0&&(B===L9||B===R9||B===fy||B===J1||B===py)===!0&&A()===my){if(m=T.isGlob=!0,y=T.isExtglob=!0,S=!0,B===py&&c===f&&(_=!0),o===!0){for(;L()!==!0&&(B=q());){if(B===Js){E=T.backslashes=!0,B=q();continue}if(B===X1){m=T.isGlob=!0,S=!0;break}}continue}break}if(B===fy){if(F===fy&&(b=T.isGlobstar=!0),m=T.isGlob=!0,S=!0,o===!0)continue;break}if(B===J1){if(m=T.isGlob=!0,S=!0,o===!0)continue;break}if(B===N9){for(;L()!==!0&&(w=q());){if(w===Js){E=T.backslashes=!0,q();continue}if(w===U9){h=T.isBracket=!0,m=T.isGlob=!0,S=!0;break}}if(o===!0)continue;break}if(r.nonegate!==!0&&B===py&&c===f){g=T.negated=!0,f++;continue}if(r.noparen!==!0&&B===my){if(m=T.isGlob=!0,o===!0){for(;L()!==!0&&(B=q());){if(B===my){E=T.backslashes=!0,B=q();continue}if(B===X1){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="",k="";f>0&&(Z=u.slice(0,f),u=u.slice(f),d-=f),j&&m===!0&&d>0?(j=u.slice(0,d),k=u.slice(d)):m===!0?(j="",k=u):j=u,j&&j!==""&&j!=="/"&&j!==u&&Z1(j.charCodeAt(j.length-1))&&(j=j.slice(0,-1)),r.unescape===!0&&(k&&(k=Y1.removeBackslashes(k)),j&&E===!0&&(j=Y1.removeBackslashes(j)));let D={prefix:Z,input:t,start:f,base:j,glob:k,isBrace:p,isBracket:h,isGlob:m,isExtglob:y,isGlobstar:b,negated:g,negatedExtglob:_};if(r.tokens===!0&&(D.maxDepth=0,Z1(B)||a.push(T),D.tokens=a),r.parts===!0||r.tokens===!0){let w;for(let C=0;C<i.length;C++){let O=w?w+1:f,R=i[C],$=t.slice(O,R);r.tokens&&(C===0&&f!==0?(a[C].isPrefix=!0,a[C].value=Z):a[C].value=$,Q1(a[C]),D.maxDepth+=a[C].depth),(C!==0||$!=="")&&s.push($),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,Q1(a[a.length-1]),D.maxDepth+=a[a.length-1].depth)}D.slashes=i,D.parts=s}return D};tF.exports=M9});var iF=x((xX,oF)=>{"use strict";var Cf=Ws(),ur=Ys(),{MAX_LENGTH:Ef,POSIX_REGEX_SOURCE:q9,REGEX_NON_SPECIAL_CHARS:H9,REGEX_SPECIAL_CHARS_BACKREF:V9,REPLACEMENTS:nF}=Cf,z9=(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=>ur.escapeRegex(o)).join("..")}return r},ya=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,gy=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=nF[t]||t;let r={...e},n=typeof r.maxLength=="number"?Math.min(Ef,r.maxLength):Ef,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=ur.isWindows(e),c=Cf.globChars(u),f=Cf.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,F=z=>`(${s}(?:(?!${P}${z.dot?y:d}).)*?)`,B=r.dot?"":b,T=r.dot?g:_,L=r.bash===!0?F(r):S;r.capture&&(L=`(${L})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let A={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=ur.removePrefix(t,A),o=t.length;let q=[],j=[],Z=[],k=i,D,w=()=>A.index===o-1,C=A.peek=(z=1)=>t[A.index+z],O=A.advance=()=>t[++A.index]||"",R=()=>t.slice(A.index+1),$=(z="",Se=0)=>{A.consumed+=z,A.index+=Se},H=z=>{A.output+=z.output!=null?z.output:z.value,$(z.value)},I=()=>{let z=1;for(;C()==="!"&&(C(2)!=="("||C(3)==="?");)O(),A.start++,z++;return z%2===0?!1:(A.negated=!0,A.start++,!0)},N=z=>{A[z]++,Z.push(z)},X=z=>{A[z]--,Z.pop()},U=z=>{if(k.type==="globstar"){let Se=A.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&&(A.output=A.output.slice(0,-k.output.length),k.type="star",k.value="*",k.output=L,A.output+=k.output)}if(q.length&&z.type!=="paren"&&(q[q.length-1].inner+=z.value),(z.value||z.output)&&H(z),k&&k.type==="text"&&z.type==="text"){k.value+=z.value,k.output=(k.output||"")+z.value;return}z.prev=k,a.push(z),k=z},oe=(z,Se)=>{let V={...f[Se],conditions:1,inner:""};V.prev=k,V.parens=A.parens,V.output=A.output;let de=(r.capture?"(":"")+V.open;N("parens"),U({type:z,value:Se,output:A.output?"":m}),U({type:"paren",extglob:!0,value:O(),output:de}),q.push(V)},Zt=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=F(r)),(de!==L||w()||/^\)+$/.test(R()))&&(Se=z.close=`)$))${de}`),z.inner.includes("*")&&(V=R())&&/^\.[^\\/.]+$/.test(V)){let He=gy(V,{...e,fastpaths:!1}).output;Se=z.close=`)${He})${de})`}z.prev.type==="bos"&&(A.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(V9,(V,de,He,Ot,ot,Rf)=>Ot==="\\"?(z=!0,V):Ot==="?"?de?de+Ot+(ot?g.repeat(ot.length):""):Rf===0?T+(ot?g.repeat(ot.length):""):g.repeat(He.length):Ot==="."?d.repeat(He.length):Ot==="*"?de?de+Ot+(ot?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?(A.output=t,A):(A.output=ur.wrapOutput(Se,A,e),A)}for(;!w();){if(D=O(),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()),He=0;if(de&&de[0].length>2&&(He=de[0].length,A.index+=He,He%2!==0&&(D+="\\")),r.unescape===!0?D=O():D+=O(),A.brackets===0){U({type:"text",value:D});continue}}if(A.brackets>0&&(D!=="]"||k.value==="["||k.value==="[^")){if(r.posix!==!1&&D===":"){let V=k.value.slice(1);if(V.includes("[")&&(k.posix=!0,V.includes(":"))){let de=k.value.lastIndexOf("["),He=k.value.slice(0,de),Ot=k.value.slice(de+2),ot=q9[Ot];if(ot){k.value=He+ot,A.backtrack=!0,O(),!i.output&&a.indexOf(k)===1&&(i.output=m);continue}}}(D==="["&&C()!==":"||D==="-"&&C()==="]")&&(D=`\\${D}`),D==="]"&&(k.value==="["||k.value==="[^")&&(D=`\\${D}`),r.posix===!0&&D==="!"&&k.value==="["&&(D="^"),k.value+=D,H({value:D});continue}if(A.quotes===1&&D!=='"'){D=ur.escapeRegex(D),k.value+=D,H({value:D});continue}if(D==='"'){A.quotes=A.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(A.parens===0&&r.strictBrackets===!0)throw new SyntaxError(ya("opening","("));let V=q[q.length-1];if(V&&A.parens===V.parens+1){Zt(q.pop());continue}U({type:"paren",value:D,output:A.parens?")":"\\)"}),X("parens");continue}if(D==="["){if(r.nobracket===!0||!R().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(ya("closing","]"));D=`\\${D}`}else N("brackets");U({type:"bracket",value:D});continue}if(D==="]"){if(r.nobracket===!0||k&&k.type==="bracket"&&k.value.length===1){U({type:"text",value:D,output:`\\${D}`});continue}if(A.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(ya("opening","["));U({type:"text",value:D,output:`\\${D}`});continue}X("brackets");let V=k.value.slice(1);if(k.posix!==!0&&V[0]==="^"&&!V.includes("/")&&(D=`/${D}`),k.value+=D,H({value:D}),r.literalBrackets===!1||ur.hasRegexChars(V))continue;let de=ur.escapeRegex(k.value);if(A.output=A.output.slice(0,-k.value.length),r.literalBrackets===!0){A.output+=de,k.value=de;continue}k.value=`(${s}${de}|${k.value})`,A.output+=k.value;continue}if(D==="{"&&r.nobrace!==!0){N("braces");let V={type:"brace",value:D,output:"(",outputIndex:A.output.length,tokensIndex:A.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 He=a.slice(),Ot=[];for(let ot=He.length-1;ot>=0&&(a.pop(),He[ot].type!=="brace");ot--)He[ot].type!=="dots"&&Ot.unshift(He[ot].value);de=z9(Ot,r),A.backtrack=!0}if(V.comma!==!0&&V.dots!==!0){let He=A.output.slice(0,V.outputIndex),Ot=A.tokens.slice(V.tokensIndex);V.value=V.output="\\{",D=de="\\}",A.output=He;for(let ot of Ot)A.output+=ot.output||ot.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(k.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",a.pop(),k=i;continue}U({type:"slash",value:D,output:h});continue}if(D==="."){if(A.braces>0&&k.type==="dot"){k.value==="."&&(k.output=d);let V=j[j.length-1];k.type="dots",k.output+=D,k.value+=D,V.dots=!0;continue}if(A.braces+A.parens===0&&k.type!=="bos"&&k.type!=="slash"){U({type:"text",value:D,output:d});continue}U({type:"dot",value:D,output:d});continue}if(D==="?"){if(!(k&&k.value==="(")&&r.noextglob!==!0&&C()==="("&&C(2)!=="?"){oe("qmark",D);continue}if(k&&k.type==="paren"){let de=C(),He=D;if(de==="<"&&!ur.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(k.value==="("&&!/[!=<:]/.test(de)||de==="<"&&!/<([!=]|\w+>)/.test(R()))&&(He=`\\${D}`),U({type:"text",value:D,output:He});continue}if(r.dot!==!0&&(k.type==="slash"||k.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&&A.index===0){I();continue}}if(D==="+"){if(r.noextglob!==!0&&C()==="("&&C(2)!=="?"){oe("plus",D);continue}if(k&&k.value==="("||r.regex===!1){U({type:"plus",value:D,output:p});continue}if(k&&(k.type==="bracket"||k.type==="paren"||k.type==="brace")||A.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=H9.exec(R());V&&(D+=V[0],A.index+=V[0].length),U({type:"text",value:D});continue}if(k&&(k.type==="globstar"||k.star===!0)){k.type="star",k.star=!0,k.value+=D,k.output=L,A.backtrack=!0,A.globstar=!0,$(D);continue}let z=R();if(r.noextglob!==!0&&/^\([^?]/.test(z)){oe("star",D);continue}if(k.type==="star"){if(r.noglobstar===!0){$(D);continue}let V=k.prev,de=V.prev,He=V.type==="slash"||V.type==="bos",Ot=de&&(de.type==="star"||de.type==="globstar");if(r.bash===!0&&(!He||z[0]&&z[0]!=="/")){U({type:"star",value:D,output:""});continue}let ot=A.braces>0&&(V.type==="comma"||V.type==="brace"),Rf=q.length&&(V.type==="pipe"||V.type==="paren");if(!He&&V.type!=="paren"&&!ot&&!Rf){U({type:"star",value:D,output:""});continue}for(;z.slice(0,3)==="/**";){let ru=t[A.index+4];if(ru&&ru!=="/")break;z=z.slice(3),$("/**",3)}if(V.type==="bos"&&w()){k.type="globstar",k.value+=D,k.output=F(r),A.output=k.output,A.globstar=!0,$(D);continue}if(V.type==="slash"&&V.prev.type!=="bos"&&!Ot&&w()){A.output=A.output.slice(0,-(V.output+k.output).length),V.output=`(?:${V.output}`,k.type="globstar",k.output=F(r)+(r.strictSlashes?")":"|$)"),k.value+=D,A.globstar=!0,A.output+=V.output+k.output,$(D);continue}if(V.type==="slash"&&V.prev.type!=="bos"&&z[0]==="/"){let ru=z[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(V.output+k.output).length),V.output=`(?:${V.output}`,k.type="globstar",k.output=`${F(r)}${h}|${h}${ru})`,k.value+=D,A.output+=V.output+k.output,A.globstar=!0,$(D+O()),U({type:"slash",value:"/",output:""});continue}if(V.type==="bos"&&z[0]==="/"){k.type="globstar",k.value+=D,k.output=`(?:^|${h}|${F(r)}${h})`,A.output=k.output,A.globstar=!0,$(D+O()),U({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-k.output.length),k.type="globstar",k.output=F(r),k.value+=D,A.output+=k.output,A.globstar=!0,$(D);continue}let Se={type:"star",value:D,output:L};if(r.bash===!0){Se.output=".*?",(k.type==="bos"||k.type==="slash")&&(Se.output=B+Se.output),U(Se);continue}if(k&&(k.type==="bracket"||k.type==="paren")&&r.regex===!0){Se.output=D,U(Se);continue}(A.index===A.start||k.type==="slash"||k.type==="dot")&&(k.type==="dot"?(A.output+=v,k.output+=v):r.dot===!0?(A.output+=E,k.output+=E):(A.output+=B,k.output+=B),C()!=="*"&&(A.output+=m,k.output+=m)),U(Se)}for(;A.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(ya("closing","]"));A.output=ur.escapeLast(A.output,"["),X("brackets")}for(;A.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(ya("closing",")"));A.output=ur.escapeLast(A.output,"("),X("parens")}for(;A.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(ya("closing","}"));A.output=ur.escapeLast(A.output,"{"),X("braces")}if(r.strictSlashes!==!0&&(k.type==="star"||k.type==="bracket")&&U({type:"maybe_slash",value:"",output:`${h}?`}),A.backtrack===!0){A.output="";for(let z of A.tokens)A.output+=z.output!=null?z.output:z.value,z.suffix&&(A.output+=z.suffix)}return A};gy.fastpaths=(t,e)=>{let r={...e},n=typeof r.maxLength=="number"?Math.min(Ef,r.maxLength):Ef,o=t.length;if(o>n)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${n}`);t=nF[t]||t;let i=ur.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}=Cf.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=ur.removePrefix(t,E),F=S(P);return F&&r.strictSlashes!==!0&&(F+=`${s}?`),F};oF.exports=gy});var sF=x((AX,aF)=>{"use strict";var K9=require("path"),G9=rF(),yy=iF(),Dy=Ys(),W9=Ws(),Y9=t=>t&&typeof t=="object"&&!Array.isArray(t),rt=(t,e,r=!1)=>{if(Array.isArray(t)){let f=t.map(p=>rt(p,e,r));return p=>{for(let h of f){let m=h(p);if(m)return m}return!1}}let n=Y9(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?rt.compileRe(t,e):rt.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=rt(o.ignore,f,r)}let c=(f,d=!1)=>{let{isMatch:p,match:h,output:m}=rt.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};rt.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=rt.matchBase(t,e,r,o):s=e.exec(u)),{isMatch:!!s,match:s,output:u}};rt.matchBase=(t,e,r,n=Dy.isWindows(r))=>(e instanceof RegExp?e:rt.makeRe(e,r)).test(K9.basename(t));rt.isMatch=(t,e,r)=>rt(e,r)(t);rt.parse=(t,e)=>Array.isArray(t)?t.map(r=>rt.parse(r,e)):yy(t,{...e,fastpaths:!1});rt.scan=(t,e)=>G9(t,e);rt.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=rt.toRegex(s,e);return n===!0&&(u.state=t),u};rt.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=yy.fastpaths(t,e)),o.output||(o=yy(t,e)),rt.compileRe(o,e,r,n)};rt.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/$^/}};rt.constants=W9;aF.exports=rt});var cF=x((OX,uF)=>{"use strict";uF.exports=sF()});var mF=x((FX,hF)=>{"use strict";var fF=require("util"),dF=H1(),Jr=cF(),by=Ys(),lF=t=>t===""||t==="./",pF=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=Jr(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)=>Jr(t,e);Le.isMatch=(t,e,r)=>Jr(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: "${fF.inspect(t)}"`);if(Array.isArray(e))return e.some(n=>Le.contains(t,n,r));if(typeof e=="string"){if(lF(t)||lF(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(!by.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=Jr(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=Jr(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: "${fF.inspect(t)}"`);return[].concat(e).every(n=>Jr(n,r)(t))};Le.capture=(t,e,r)=>{let n=by.isWindows(r),i=Jr.makeRe(String(t),{...r,capture:!0}).exec(n?by.toPosixSlashes(e):e);if(i)return i.slice(1).map(a=>a===void 0?"":a)};Le.makeRe=(...t)=>Jr.makeRe(...t);Le.scan=(...t)=>Jr.scan(...t);Le.parse=(t,e)=>{let r=[];for(let n of[].concat(t||[]))for(let o of dF(String(n),e))r.push(Jr.parse(o,e));return r};Le.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!pF(t)?[t]:dF(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=pF;hF.exports=Le});var QF=x((FZ,vn)=>{var Ie=require("fs"),kf=require("os"),wt=require("path"),BF=require("crypto"),Zr={fs:Ie.constants,os:kf.constants},NF="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",MF=/XXXXXX/,C7=3,qF=(Zr.O_CREAT||Zr.fs.O_CREAT)|(Zr.O_EXCL||Zr.fs.O_EXCL)|(Zr.O_RDWR||Zr.fs.O_RDWR),E7=kf.platform()==="win32",_7=Zr.EBADF||Zr.os.errno.EBADF,S7=Zr.ENOENT||Zr.os.errno.ENOENT,HF=448,VF=384,x7="exit",ba=[],zF=Ie.rmdirSync.bind(Ie),KF=!1;function A7(t,e){return Ie.rm(t,{recursive:!0},e)}function GF(t){return Ie.rmSync(t,{recursive:!0})}function _y(t,e){let r=wa(t,e),n=r[0],o=r[1];N7(n,function(i,a){if(i)return o(i);let s=a.tries;(function u(){try{let c=YF(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 Sy(t){let e=wa(t),r=e[0],n=L7(r),o=n.tries;do{let i=YF(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 O7(t,e){let r=wa(t,e),n=r[0],o=r[1];_y(n,function(a,s){if(a)return o(a);Ie.open(s,qF,n.mode||VF,function(c,f){if(c)return o(c);if(n.discardDescriptor)return Ie.close(f,function(p){return o(p,s,void 0,Cy(s,-1,n,!1))});{let d=n.discardDescriptor||n.detachDescriptor;o(null,s,f,Cy(s,d?-1:f,n,!1))}})})}function F7(t){let e=wa(t),r=e[0],n=r.discardDescriptor||r.detachDescriptor,o=Sy(r),i=Ie.openSync(o,qF,r.mode||VF);return r.discardDescriptor&&(Ie.closeSync(i),i=void 0),{name:o,fd:i,removeCallback:Cy(o,n?-1:i,r,!0)}}function k7(t,e){let r=wa(t,e),n=r[0],o=r[1];_y(n,function(a,s){if(a)return o(a);Ie.mkdir(s,n.mode||HF,function(c){if(c)return o(c);o(null,s,WF(s,n,!1))})})}function P7(t){let e=wa(t),r=e[0],n=Sy(r);return Ie.mkdirSync(n,r.mode||HF),{name:n,removeCallback:WF(n,r,!0)}}function $7(t,e){let r=function(n){if(n&&!Ey(n))return e(n);e()};0<=t[0]?Ie.close(t[0],function(){Ie.unlink(t[1],r)}):Ie.unlink(t[1],r)}function I7(t){let e=null;try{0<=t[0]&&Ie.closeSync(t[0])}catch(r){if(!j7(r)&&!Ey(r))throw r}finally{try{Ie.unlinkSync(t[1])}catch(r){Ey(r)||(e=r)}}if(e!==null)throw e}function Cy(t,e,r,n){let o=Ff(I7,[e,t],n),i=Ff($7,[e,t],n,o);return r.keep||ba.unshift(o),n?o:i}function WF(t,e,r){let n=e.unsafeCleanup?A7:Ie.rmdir.bind(Ie),o=e.unsafeCleanup?GF:zF,i=Ff(o,t,r),a=Ff(n,t,r,i);return e.keep||ba.unshift(i),r?i:a}function Ff(t,e,r,n){let o=!1;return function i(a){if(!o){let s=n||i,u=ba.indexOf(s);return u>=0&&ba.splice(u,1),o=!0,r||t===zF||t===GF?t(e):t(e,a||function(){})}}}function T7(){if(KF)for(;ba.length;)try{ba[0]()}catch{}}function LF(t){let e=[],r=null;try{r=BF.randomBytes(t)}catch{r=BF.pseudoRandomBytes(t)}for(let n=0;n<t;n++)e.push(NF[r[n]%NF.length]);return e.join("")}function cr(t){return typeof t>"u"}function wa(t,e){if(typeof t=="function")return[{},t];if(cr(t))return[{},e];let r={};for(let n of Object.getOwnPropertyNames(t))r[n]=t[n];return[r,e]}function R7(t,e,r){let n=wt.isAbsolute(t)?t:wt.join(e,t);Ie.stat(n,function(o){o?Ie.realpath(wt.dirname(n),function(i,a){if(i)return r(i);r(null,wt.join(a,wt.basename(n)))}):Ie.realpath(n,r)})}function B7(t,e){let r=wt.isAbsolute(t)?t:wt.join(e,t);try{return Ie.statSync(r),Ie.realpathSync(r)}catch{let o=Ie.realpathSync(wt.dirname(r));return wt.join(o,wt.basename(r))}}function YF(t){let e=t.tmpdir;if(!cr(t.name))return wt.join(e,t.dir,t.name);if(!cr(t.template))return wt.join(e,t.dir,t.template).replace(MF,LF(6));let r=[t.prefix?t.prefix:"tmp","-",process.pid,"-",LF(12),t.postfix?"-"+t.postfix:""].join("");return wt.join(e,t.dir,r)}function JF(t){if(!cr(t.name)){let e=t.name;if(wt.isAbsolute(e))throw new Error(`name option must not contain an absolute path, found "${e}".`);let r=wt.basename(e);if(r===".."||r==="."||r!==e)throw new Error(`name option must not contain a path, found "${e}".`)}if(!cr(t.template)&&!t.template.match(MF))throw new Error(`Invalid template, found "${t.template}".`);if(!cr(t.tries)&&isNaN(t.tries)||t.tries<0)throw new Error(`Invalid tries, found "${t.tries}".`);t.tries=cr(t.name)?t.tries||C7:1,t.keep=!!t.keep,t.detachDescriptor=!!t.detachDescriptor,t.discardDescriptor=!!t.discardDescriptor,t.unsafeCleanup=!!t.unsafeCleanup,t.prefix=cr(t.prefix)?"":t.prefix,t.postfix=cr(t.postfix)?"":t.postfix}function jF(t,e,r,n){if(cr(e))return n(null);R7(e,r,function(o,i){if(o)return n(o);let a=wt.relative(r,i);if(!i.startsWith(r))return n(new Error(`${t} option must be relative to "${r}", found "${a}".`));n(null,a)})}function UF(t,e,r){if(cr(e))return;let n=B7(e,r),o=wt.relative(r,n);if(!n.startsWith(r))throw new Error(`${t} option must be relative to "${r}", found "${o}".`);return o}function N7(t,e){M7(t,function(r,n){if(r)return e(r);t.tmpdir=n;try{JF(t,n)}catch(o){return e(o)}jF("dir",t.dir,n,function(o,i){if(o)return e(o);t.dir=cr(i)?"":i,jF("template",t.template,n,function(a,s){if(a)return e(a);t.template=s,e(null,t)})})})}function L7(t){let e=t.tmpdir=ZF(t);JF(t,e);let r=UF("dir",t.dir,e);return t.dir=cr(r)?"":r,t.template=UF("template",t.template,e),t}function j7(t){return XF(t,-_7,"EBADF")}function Ey(t){return XF(t,-S7,"ENOENT")}function XF(t,e,r){return E7?t.code===r:t.code===r&&t.errno===e}function U7(){KF=!0}function M7(t,e){return Ie.realpath(t&&t.tmpdir||kf.tmpdir(),e)}function ZF(t){return Ie.realpathSync(t&&t.tmpdir||kf.tmpdir())}process.addListener(x7,T7);Object.defineProperty(vn.exports,"tmpdir",{enumerable:!0,configurable:!1,get:function(){return ZF()}});vn.exports.dir=k7;vn.exports.dirSync=P7;vn.exports.file=O7;vn.exports.fileSync=F7;vn.exports.tmpName=_y;vn.exports.tmpNameSync=Sy;vn.exports.setGracefulCleanup=U7});var $f=require("node:process");var Yy=pe(Wy(),1),{program:at,createCommand:Sq,createArgument:xq,createOption:Aq,CommanderError:Oq,InvalidArgumentError:Fq,InvalidOptionArgumentError:kq,Command:Pq,Argument:$q,Option:Iq,Help:Tq}=Yy.default;var xr={name:"@capgo/cli",version:"7.56.3",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 vt=pe(ed(),1),Ko=require("node:process"),En=pe(require("node:readline"),1),id=pe(require("node:readline"),1),aD=require("node:stream"),sD=pe(rd(),1);function B2({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 N2=B2();function uD(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(N2,"")}function cD(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var lD={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}})(lD);var L2=lD.exports,j2=cD(L2),U2=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},M2=cD(U2);function _a(t,e={}){if(typeof t!="string"||t.length===0||(e={ambiguousIsNarrow:!0,...e},t=uD(t),t.length===0))return 0;t=t.replace(M2()," ");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(j2.eastAsianWidth(o)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}var nd=10,Qy=(t=0)=>e=>`\x1B[${e+t}m`,eD=(t=0)=>e=>`\x1B[${38+t};5;${e}m`,tD=(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 q2=Object.keys(je.color),H2=Object.keys(je.bgColor);[...q2,...H2];function V2(){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=Qy(),je.color.ansi256=eD(),je.color.ansi16m=tD(),je.bgColor.ansi=Qy(nd),je.bgColor.ansi256=eD(nd),je.bgColor.ansi16m=tD(nd),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 z2=V2(),hu=new Set(["\x1B","\x9B"]),K2=39,sd="\x07",fD="[",G2="]",dD="m",ud=`${G2}8;;`,rD=t=>`${hu.values().next().value}${fD}${t}${dD}`,nD=t=>`${hu.values().next().value}${ud}${t}${sd}`,W2=t=>t.split(" ").map(e=>_a(e)),od=(t,e,r)=>{let n=[...e],o=!1,i=!1,a=_a(uD(t[t.length-1]));for(let[s,u]of n.entries()){let c=_a(u);if(a+c<=r?t[t.length-1]+=u:(t.push(u),a=0),hu.has(u)&&(o=!0,i=n.slice(s+1).join("").startsWith(ud)),o){i?u===sd&&(o=!1,i=!1):u===dD&&(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())},Y2=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!(_a(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},J2=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let n="",o,i,a=W2(t),s=[""];for(let[c,f]of t.split(" ").entries()){r.trim!==!1&&(s[s.length-1]=s[s.length-1].trimStart());let d=_a(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(""),od(s,f,e);continue}if(d+a[c]>e&&d>0&&a[c]>0){if(r.wordWrap===!1&&d<e){od(s,f,e);continue}s.push("")}if(d+a[c]>e&&r.wordWrap===!1){od(s,f,e);continue}s[s.length-1]+=f}r.trim!==!1&&(s=s.map(c=>Y2(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 U1=x((vX,j1)=>{"use strict";var t9=Df(),{MAX_LENGTH:B1,CHAR_BACKSLASH:uy,CHAR_BACKTICK:r9,CHAR_COMMA:n9,CHAR_DOT:o9,CHAR_LEFT_PARENTHESES:i9,CHAR_RIGHT_PARENTHESES:a9,CHAR_LEFT_CURLY_BRACE:s9,CHAR_RIGHT_CURLY_BRACE:u9,CHAR_LEFT_SQUARE_BRACKET:N1,CHAR_RIGHT_SQUARE_BRACKET:L1,CHAR_DOUBLE_QUOTE:c9,CHAR_SINGLE_QUOTE:l9,CHAR_NO_BREAK_SPACE:f9,CHAR_ZERO_WIDTH_NOBREAK_SPACE:d9}=R1(),p9=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},n=typeof r.maxLength=="number"?Math.min(B1,r.maxLength):B1;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===d9||p===f9)){if(p===uy){m({type:"text",value:(e.keepEscaping?p:"")+h()});continue}if(p===L1){m({type:"text",value:"\\"+p});continue}if(p===N1){u++;let y;for(;f<c&&(y=h());){if(p+=y,y===N1){u++;continue}if(y===uy){p+=h();continue}if(y===L1&&(u--,u===0))break}m({type:"text",value:p});continue}if(p===i9){a=m({type:"paren",nodes:[]}),i.push(a),m({type:"text",value:p});continue}if(p===a9){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===c9||p===l9||p===r9){let y=p,b;for(e.keepQuotes!==!0&&(p="");f<c&&(b=h());){if(b===uy){p+=b+h();continue}if(b===y){e.keepQuotes===!0&&(p+=b);break}p+=b}m({type:"text",value:p});continue}if(p===s9){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===u9){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===n9&&d>0){if(a.ranges>0){a.ranges=0;let y=a.nodes.shift();a.nodes=[y,{type:"text",value:t9(a)}]}m({type:"comma",value:p}),a.commas++;continue}if(p===o9&&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};j1.exports=p9});var H1=x((CX,q1)=>{"use strict";var M1=Df(),h9=k1(),m9=I1(),g9=U1(),sr=(t,e={})=>{let r=[];if(Array.isArray(t))for(let n of t){let o=sr.create(n,e);Array.isArray(o)?r.push(...o):r.push(o)}else r=[].concat(sr.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};sr.parse=(t,e={})=>g9(t,e);sr.stringify=(t,e={})=>M1(typeof t=="string"?sr.parse(t,e):t,e);sr.compile=(t,e={})=>(typeof t=="string"&&(t=sr.parse(t,e)),h9(t,e));sr.expand=(t,e={})=>{typeof t=="string"&&(t=sr.parse(t,e));let r=m9(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};sr.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?sr.compile(t,e):sr.expand(t,e);q1.exports=sr});var Ws=x((EX,W1)=>{"use strict";var y9=require("path"),Yr="\\\\/",V1=`[^${Yr}]`,wn="\\.",D9="\\+",b9="\\?",vf="\\/",w9="(?=.)",z1="[^/]",cy=`(?:${vf}|$)`,K1=`(?:^|${vf})`,ly=`${wn}{1,2}${cy}`,v9=`(?!${wn})`,C9=`(?!${K1}${ly})`,E9=`(?!${wn}{0,1}${cy})`,_9=`(?!${ly})`,S9=`[^.${vf}]`,x9=`${z1}*?`,G1={DOT_LITERAL:wn,PLUS_LITERAL:D9,QMARK_LITERAL:b9,SLASH_LITERAL:vf,ONE_CHAR:w9,QMARK:z1,END_ANCHOR:cy,DOTS_SLASH:ly,NO_DOT:v9,NO_DOTS:C9,NO_DOT_SLASH:E9,NO_DOTS_SLASH:_9,QMARK_NO_DOT:S9,STAR:x9,START_ANCHOR:K1},A9={...G1,SLASH_LITERAL:`[${Yr}]`,QMARK:V1,STAR:`${V1}*?`,DOTS_SLASH:`${wn}{1,2}(?:[${Yr}]|$)`,NO_DOT:`(?!${wn})`,NO_DOTS:`(?!(?:^|[${Yr}])${wn}{1,2}(?:[${Yr}]|$))`,NO_DOT_SLASH:`(?!${wn}{0,1}(?:[${Yr}]|$))`,NO_DOTS_SLASH:`(?!${wn}{1,2}(?:[${Yr}]|$))`,QMARK_NO_DOT:`[^.${Yr}]`,START_ANCHOR:`(?:^|[${Yr}])`,END_ANCHOR:`(?:[${Yr}]|$)`},O9={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"};W1.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:O9,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:y9.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?A9:G1}}});var Ys=x(Xt=>{"use strict";var F9=require("path"),k9=process.platform==="win32",{REGEX_BACKSLASH:P9,REGEX_REMOVE_BACKSLASH:$9,REGEX_SPECIAL_CHARS:I9,REGEX_SPECIAL_CHARS_GLOBAL:T9}=Ws();Xt.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);Xt.hasRegexChars=t=>I9.test(t);Xt.isRegexChar=t=>t.length===1&&Xt.hasRegexChars(t);Xt.escapeRegex=t=>t.replace(T9,"\\$1");Xt.toPosixSlashes=t=>t.replace(P9,"/");Xt.removeBackslashes=t=>t.replace($9,e=>e==="\\"?"":e);Xt.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};Xt.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:k9===!0||F9.sep==="\\";Xt.escapeLast=(t,e,r)=>{let n=t.lastIndexOf(e,r);return n===-1?t:t[n-1]==="\\"?Xt.escapeLast(t,e,n-1):`${t.slice(0,n)}\\${t.slice(n)}`};Xt.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};Xt.wrapOutput=(t,e={},r={})=>{let n=r.contains?"":"^",o=r.contains?"":"$",i=`${n}(?:${t})${o}`;return e.negated===!0&&(i=`(?:^(?!${i}).*$)`),i}});var rF=x((SX,tF)=>{"use strict";var Y1=Ys(),{CHAR_ASTERISK:fy,CHAR_AT:R9,CHAR_BACKWARD_SLASH:Js,CHAR_COMMA:B9,CHAR_DOT:dy,CHAR_EXCLAMATION_MARK:py,CHAR_FORWARD_SLASH:eF,CHAR_LEFT_CURLY_BRACE:hy,CHAR_LEFT_PARENTHESES:my,CHAR_LEFT_SQUARE_BRACKET:N9,CHAR_PLUS:L9,CHAR_QUESTION_MARK:J1,CHAR_RIGHT_CURLY_BRACE:j9,CHAR_RIGHT_PARENTHESES:X1,CHAR_RIGHT_SQUARE_BRACKET:U9}=Ws(),Z1=t=>t===eF||t===Js,Q1=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?1/0:1)},M9=(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,F,B,T={value:"",depth:0,isGlob:!1},L=()=>c>=n,A=()=>u.charCodeAt(c+1),q=()=>(F=B,u.charCodeAt(++c));for(;c<n;){B=q();let w;if(B===Js){E=T.backslashes=!0,B=q(),B===hy&&(v=!0);continue}if(v===!0||B===hy){for(P++;L()!==!0&&(B=q());){if(B===Js){E=T.backslashes=!0,q();continue}if(B===hy){P++;continue}if(v!==!0&&B===dy&&(B=q())===dy){if(p=T.isBrace=!0,m=T.isGlob=!0,S=!0,o===!0)continue;break}if(v!==!0&&B===B9){if(p=T.isBrace=!0,m=T.isGlob=!0,S=!0,o===!0)continue;break}if(B===j9&&(P--,P===0)){v=!1,p=T.isBrace=!0,S=!0;break}}if(o===!0)continue;break}if(B===eF){if(i.push(c),a.push(T),T={value:"",depth:0,isGlob:!1},S===!0)continue;if(F===dy&&c===f+1){f+=2;continue}d=c+1;continue}if(r.noext!==!0&&(B===L9||B===R9||B===fy||B===J1||B===py)===!0&&A()===my){if(m=T.isGlob=!0,y=T.isExtglob=!0,S=!0,B===py&&c===f&&(_=!0),o===!0){for(;L()!==!0&&(B=q());){if(B===Js){E=T.backslashes=!0,B=q();continue}if(B===X1){m=T.isGlob=!0,S=!0;break}}continue}break}if(B===fy){if(F===fy&&(b=T.isGlobstar=!0),m=T.isGlob=!0,S=!0,o===!0)continue;break}if(B===J1){if(m=T.isGlob=!0,S=!0,o===!0)continue;break}if(B===N9){for(;L()!==!0&&(w=q());){if(w===Js){E=T.backslashes=!0,q();continue}if(w===U9){h=T.isBracket=!0,m=T.isGlob=!0,S=!0;break}}if(o===!0)continue;break}if(r.nonegate!==!0&&B===py&&c===f){g=T.negated=!0,f++;continue}if(r.noparen!==!0&&B===my){if(m=T.isGlob=!0,o===!0){for(;L()!==!0&&(B=q());){if(B===my){E=T.backslashes=!0,B=q();continue}if(B===X1){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="",k="";f>0&&(Z=u.slice(0,f),u=u.slice(f),d-=f),j&&m===!0&&d>0?(j=u.slice(0,d),k=u.slice(d)):m===!0?(j="",k=u):j=u,j&&j!==""&&j!=="/"&&j!==u&&Z1(j.charCodeAt(j.length-1))&&(j=j.slice(0,-1)),r.unescape===!0&&(k&&(k=Y1.removeBackslashes(k)),j&&E===!0&&(j=Y1.removeBackslashes(j)));let D={prefix:Z,input:t,start:f,base:j,glob:k,isBrace:p,isBracket:h,isGlob:m,isExtglob:y,isGlobstar:b,negated:g,negatedExtglob:_};if(r.tokens===!0&&(D.maxDepth=0,Z1(B)||a.push(T),D.tokens=a),r.parts===!0||r.tokens===!0){let w;for(let C=0;C<i.length;C++){let O=w?w+1:f,R=i[C],$=t.slice(O,R);r.tokens&&(C===0&&f!==0?(a[C].isPrefix=!0,a[C].value=Z):a[C].value=$,Q1(a[C]),D.maxDepth+=a[C].depth),(C!==0||$!=="")&&s.push($),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,Q1(a[a.length-1]),D.maxDepth+=a[a.length-1].depth)}D.slashes=i,D.parts=s}return D};tF.exports=M9});var iF=x((xX,oF)=>{"use strict";var Cf=Ws(),ur=Ys(),{MAX_LENGTH:Ef,POSIX_REGEX_SOURCE:q9,REGEX_NON_SPECIAL_CHARS:H9,REGEX_SPECIAL_CHARS_BACKREF:V9,REPLACEMENTS:nF}=Cf,z9=(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=>ur.escapeRegex(o)).join("..")}return r},ya=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,gy=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=nF[t]||t;let r={...e},n=typeof r.maxLength=="number"?Math.min(Ef,r.maxLength):Ef,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=ur.isWindows(e),c=Cf.globChars(u),f=Cf.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,F=z=>`(${s}(?:(?!${P}${z.dot?y:d}).)*?)`,B=r.dot?"":b,T=r.dot?g:_,L=r.bash===!0?F(r):S;r.capture&&(L=`(${L})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let A={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=ur.removePrefix(t,A),o=t.length;let q=[],j=[],Z=[],k=i,D,w=()=>A.index===o-1,C=A.peek=(z=1)=>t[A.index+z],O=A.advance=()=>t[++A.index]||"",R=()=>t.slice(A.index+1),$=(z="",Se=0)=>{A.consumed+=z,A.index+=Se},H=z=>{A.output+=z.output!=null?z.output:z.value,$(z.value)},I=()=>{let z=1;for(;C()==="!"&&(C(2)!=="("||C(3)==="?");)O(),A.start++,z++;return z%2===0?!1:(A.negated=!0,A.start++,!0)},N=z=>{A[z]++,Z.push(z)},X=z=>{A[z]--,Z.pop()},U=z=>{if(k.type==="globstar"){let Se=A.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&&(A.output=A.output.slice(0,-k.output.length),k.type="star",k.value="*",k.output=L,A.output+=k.output)}if(q.length&&z.type!=="paren"&&(q[q.length-1].inner+=z.value),(z.value||z.output)&&H(z),k&&k.type==="text"&&z.type==="text"){k.value+=z.value,k.output=(k.output||"")+z.value;return}z.prev=k,a.push(z),k=z},oe=(z,Se)=>{let V={...f[Se],conditions:1,inner:""};V.prev=k,V.parens=A.parens,V.output=A.output;let de=(r.capture?"(":"")+V.open;N("parens"),U({type:z,value:Se,output:A.output?"":m}),U({type:"paren",extglob:!0,value:O(),output:de}),q.push(V)},Zt=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=F(r)),(de!==L||w()||/^\)+$/.test(R()))&&(Se=z.close=`)$))${de}`),z.inner.includes("*")&&(V=R())&&/^\.[^\\/.]+$/.test(V)){let He=gy(V,{...e,fastpaths:!1}).output;Se=z.close=`)${He})${de})`}z.prev.type==="bos"&&(A.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(V9,(V,de,He,Ot,ot,Rf)=>Ot==="\\"?(z=!0,V):Ot==="?"?de?de+Ot+(ot?g.repeat(ot.length):""):Rf===0?T+(ot?g.repeat(ot.length):""):g.repeat(He.length):Ot==="."?d.repeat(He.length):Ot==="*"?de?de+Ot+(ot?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?(A.output=t,A):(A.output=ur.wrapOutput(Se,A,e),A)}for(;!w();){if(D=O(),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()),He=0;if(de&&de[0].length>2&&(He=de[0].length,A.index+=He,He%2!==0&&(D+="\\")),r.unescape===!0?D=O():D+=O(),A.brackets===0){U({type:"text",value:D});continue}}if(A.brackets>0&&(D!=="]"||k.value==="["||k.value==="[^")){if(r.posix!==!1&&D===":"){let V=k.value.slice(1);if(V.includes("[")&&(k.posix=!0,V.includes(":"))){let de=k.value.lastIndexOf("["),He=k.value.slice(0,de),Ot=k.value.slice(de+2),ot=q9[Ot];if(ot){k.value=He+ot,A.backtrack=!0,O(),!i.output&&a.indexOf(k)===1&&(i.output=m);continue}}}(D==="["&&C()!==":"||D==="-"&&C()==="]")&&(D=`\\${D}`),D==="]"&&(k.value==="["||k.value==="[^")&&(D=`\\${D}`),r.posix===!0&&D==="!"&&k.value==="["&&(D="^"),k.value+=D,H({value:D});continue}if(A.quotes===1&&D!=='"'){D=ur.escapeRegex(D),k.value+=D,H({value:D});continue}if(D==='"'){A.quotes=A.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(A.parens===0&&r.strictBrackets===!0)throw new SyntaxError(ya("opening","("));let V=q[q.length-1];if(V&&A.parens===V.parens+1){Zt(q.pop());continue}U({type:"paren",value:D,output:A.parens?")":"\\)"}),X("parens");continue}if(D==="["){if(r.nobracket===!0||!R().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(ya("closing","]"));D=`\\${D}`}else N("brackets");U({type:"bracket",value:D});continue}if(D==="]"){if(r.nobracket===!0||k&&k.type==="bracket"&&k.value.length===1){U({type:"text",value:D,output:`\\${D}`});continue}if(A.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(ya("opening","["));U({type:"text",value:D,output:`\\${D}`});continue}X("brackets");let V=k.value.slice(1);if(k.posix!==!0&&V[0]==="^"&&!V.includes("/")&&(D=`/${D}`),k.value+=D,H({value:D}),r.literalBrackets===!1||ur.hasRegexChars(V))continue;let de=ur.escapeRegex(k.value);if(A.output=A.output.slice(0,-k.value.length),r.literalBrackets===!0){A.output+=de,k.value=de;continue}k.value=`(${s}${de}|${k.value})`,A.output+=k.value;continue}if(D==="{"&&r.nobrace!==!0){N("braces");let V={type:"brace",value:D,output:"(",outputIndex:A.output.length,tokensIndex:A.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 He=a.slice(),Ot=[];for(let ot=He.length-1;ot>=0&&(a.pop(),He[ot].type!=="brace");ot--)He[ot].type!=="dots"&&Ot.unshift(He[ot].value);de=z9(Ot,r),A.backtrack=!0}if(V.comma!==!0&&V.dots!==!0){let He=A.output.slice(0,V.outputIndex),Ot=A.tokens.slice(V.tokensIndex);V.value=V.output="\\{",D=de="\\}",A.output=He;for(let ot of Ot)A.output+=ot.output||ot.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(k.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",a.pop(),k=i;continue}U({type:"slash",value:D,output:h});continue}if(D==="."){if(A.braces>0&&k.type==="dot"){k.value==="."&&(k.output=d);let V=j[j.length-1];k.type="dots",k.output+=D,k.value+=D,V.dots=!0;continue}if(A.braces+A.parens===0&&k.type!=="bos"&&k.type!=="slash"){U({type:"text",value:D,output:d});continue}U({type:"dot",value:D,output:d});continue}if(D==="?"){if(!(k&&k.value==="(")&&r.noextglob!==!0&&C()==="("&&C(2)!=="?"){oe("qmark",D);continue}if(k&&k.type==="paren"){let de=C(),He=D;if(de==="<"&&!ur.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(k.value==="("&&!/[!=<:]/.test(de)||de==="<"&&!/<([!=]|\w+>)/.test(R()))&&(He=`\\${D}`),U({type:"text",value:D,output:He});continue}if(r.dot!==!0&&(k.type==="slash"||k.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&&A.index===0){I();continue}}if(D==="+"){if(r.noextglob!==!0&&C()==="("&&C(2)!=="?"){oe("plus",D);continue}if(k&&k.value==="("||r.regex===!1){U({type:"plus",value:D,output:p});continue}if(k&&(k.type==="bracket"||k.type==="paren"||k.type==="brace")||A.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=H9.exec(R());V&&(D+=V[0],A.index+=V[0].length),U({type:"text",value:D});continue}if(k&&(k.type==="globstar"||k.star===!0)){k.type="star",k.star=!0,k.value+=D,k.output=L,A.backtrack=!0,A.globstar=!0,$(D);continue}let z=R();if(r.noextglob!==!0&&/^\([^?]/.test(z)){oe("star",D);continue}if(k.type==="star"){if(r.noglobstar===!0){$(D);continue}let V=k.prev,de=V.prev,He=V.type==="slash"||V.type==="bos",Ot=de&&(de.type==="star"||de.type==="globstar");if(r.bash===!0&&(!He||z[0]&&z[0]!=="/")){U({type:"star",value:D,output:""});continue}let ot=A.braces>0&&(V.type==="comma"||V.type==="brace"),Rf=q.length&&(V.type==="pipe"||V.type==="paren");if(!He&&V.type!=="paren"&&!ot&&!Rf){U({type:"star",value:D,output:""});continue}for(;z.slice(0,3)==="/**";){let ru=t[A.index+4];if(ru&&ru!=="/")break;z=z.slice(3),$("/**",3)}if(V.type==="bos"&&w()){k.type="globstar",k.value+=D,k.output=F(r),A.output=k.output,A.globstar=!0,$(D);continue}if(V.type==="slash"&&V.prev.type!=="bos"&&!Ot&&w()){A.output=A.output.slice(0,-(V.output+k.output).length),V.output=`(?:${V.output}`,k.type="globstar",k.output=F(r)+(r.strictSlashes?")":"|$)"),k.value+=D,A.globstar=!0,A.output+=V.output+k.output,$(D);continue}if(V.type==="slash"&&V.prev.type!=="bos"&&z[0]==="/"){let ru=z[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(V.output+k.output).length),V.output=`(?:${V.output}`,k.type="globstar",k.output=`${F(r)}${h}|${h}${ru})`,k.value+=D,A.output+=V.output+k.output,A.globstar=!0,$(D+O()),U({type:"slash",value:"/",output:""});continue}if(V.type==="bos"&&z[0]==="/"){k.type="globstar",k.value+=D,k.output=`(?:^|${h}|${F(r)}${h})`,A.output=k.output,A.globstar=!0,$(D+O()),U({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-k.output.length),k.type="globstar",k.output=F(r),k.value+=D,A.output+=k.output,A.globstar=!0,$(D);continue}let Se={type:"star",value:D,output:L};if(r.bash===!0){Se.output=".*?",(k.type==="bos"||k.type==="slash")&&(Se.output=B+Se.output),U(Se);continue}if(k&&(k.type==="bracket"||k.type==="paren")&&r.regex===!0){Se.output=D,U(Se);continue}(A.index===A.start||k.type==="slash"||k.type==="dot")&&(k.type==="dot"?(A.output+=v,k.output+=v):r.dot===!0?(A.output+=E,k.output+=E):(A.output+=B,k.output+=B),C()!=="*"&&(A.output+=m,k.output+=m)),U(Se)}for(;A.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(ya("closing","]"));A.output=ur.escapeLast(A.output,"["),X("brackets")}for(;A.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(ya("closing",")"));A.output=ur.escapeLast(A.output,"("),X("parens")}for(;A.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(ya("closing","}"));A.output=ur.escapeLast(A.output,"{"),X("braces")}if(r.strictSlashes!==!0&&(k.type==="star"||k.type==="bracket")&&U({type:"maybe_slash",value:"",output:`${h}?`}),A.backtrack===!0){A.output="";for(let z of A.tokens)A.output+=z.output!=null?z.output:z.value,z.suffix&&(A.output+=z.suffix)}return A};gy.fastpaths=(t,e)=>{let r={...e},n=typeof r.maxLength=="number"?Math.min(Ef,r.maxLength):Ef,o=t.length;if(o>n)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${n}`);t=nF[t]||t;let i=ur.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}=Cf.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=ur.removePrefix(t,E),F=S(P);return F&&r.strictSlashes!==!0&&(F+=`${s}?`),F};oF.exports=gy});var sF=x((AX,aF)=>{"use strict";var K9=require("path"),G9=rF(),yy=iF(),Dy=Ys(),W9=Ws(),Y9=t=>t&&typeof t=="object"&&!Array.isArray(t),rt=(t,e,r=!1)=>{if(Array.isArray(t)){let f=t.map(p=>rt(p,e,r));return p=>{for(let h of f){let m=h(p);if(m)return m}return!1}}let n=Y9(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?rt.compileRe(t,e):rt.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=rt(o.ignore,f,r)}let c=(f,d=!1)=>{let{isMatch:p,match:h,output:m}=rt.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};rt.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=rt.matchBase(t,e,r,o):s=e.exec(u)),{isMatch:!!s,match:s,output:u}};rt.matchBase=(t,e,r,n=Dy.isWindows(r))=>(e instanceof RegExp?e:rt.makeRe(e,r)).test(K9.basename(t));rt.isMatch=(t,e,r)=>rt(e,r)(t);rt.parse=(t,e)=>Array.isArray(t)?t.map(r=>rt.parse(r,e)):yy(t,{...e,fastpaths:!1});rt.scan=(t,e)=>G9(t,e);rt.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=rt.toRegex(s,e);return n===!0&&(u.state=t),u};rt.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=yy.fastpaths(t,e)),o.output||(o=yy(t,e)),rt.compileRe(o,e,r,n)};rt.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/$^/}};rt.constants=W9;aF.exports=rt});var cF=x((OX,uF)=>{"use strict";uF.exports=sF()});var mF=x((FX,hF)=>{"use strict";var fF=require("util"),dF=H1(),Jr=cF(),by=Ys(),lF=t=>t===""||t==="./",pF=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=Jr(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)=>Jr(t,e);Le.isMatch=(t,e,r)=>Jr(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: "${fF.inspect(t)}"`);if(Array.isArray(e))return e.some(n=>Le.contains(t,n,r));if(typeof e=="string"){if(lF(t)||lF(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(!by.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=Jr(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=Jr(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: "${fF.inspect(t)}"`);return[].concat(e).every(n=>Jr(n,r)(t))};Le.capture=(t,e,r)=>{let n=by.isWindows(r),i=Jr.makeRe(String(t),{...r,capture:!0}).exec(n?by.toPosixSlashes(e):e);if(i)return i.slice(1).map(a=>a===void 0?"":a)};Le.makeRe=(...t)=>Jr.makeRe(...t);Le.scan=(...t)=>Jr.scan(...t);Le.parse=(t,e)=>{let r=[];for(let n of[].concat(t||[]))for(let o of dF(String(n),e))r.push(Jr.parse(o,e));return r};Le.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!pF(t)?[t]:dF(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=pF;hF.exports=Le});var QF=x((FZ,vn)=>{var Ie=require("fs"),kf=require("os"),wt=require("path"),BF=require("crypto"),Zr={fs:Ie.constants,os:kf.constants},NF="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",MF=/XXXXXX/,C7=3,qF=(Zr.O_CREAT||Zr.fs.O_CREAT)|(Zr.O_EXCL||Zr.fs.O_EXCL)|(Zr.O_RDWR||Zr.fs.O_RDWR),E7=kf.platform()==="win32",_7=Zr.EBADF||Zr.os.errno.EBADF,S7=Zr.ENOENT||Zr.os.errno.ENOENT,HF=448,VF=384,x7="exit",ba=[],zF=Ie.rmdirSync.bind(Ie),KF=!1;function A7(t,e){return Ie.rm(t,{recursive:!0},e)}function GF(t){return Ie.rmSync(t,{recursive:!0})}function _y(t,e){let r=wa(t,e),n=r[0],o=r[1];N7(n,function(i,a){if(i)return o(i);let s=a.tries;(function u(){try{let c=YF(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 Sy(t){let e=wa(t),r=e[0],n=L7(r),o=n.tries;do{let i=YF(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 O7(t,e){let r=wa(t,e),n=r[0],o=r[1];_y(n,function(a,s){if(a)return o(a);Ie.open(s,qF,n.mode||VF,function(c,f){if(c)return o(c);if(n.discardDescriptor)return Ie.close(f,function(p){return o(p,s,void 0,Cy(s,-1,n,!1))});{let d=n.discardDescriptor||n.detachDescriptor;o(null,s,f,Cy(s,d?-1:f,n,!1))}})})}function F7(t){let e=wa(t),r=e[0],n=r.discardDescriptor||r.detachDescriptor,o=Sy(r),i=Ie.openSync(o,qF,r.mode||VF);return r.discardDescriptor&&(Ie.closeSync(i),i=void 0),{name:o,fd:i,removeCallback:Cy(o,n?-1:i,r,!0)}}function k7(t,e){let r=wa(t,e),n=r[0],o=r[1];_y(n,function(a,s){if(a)return o(a);Ie.mkdir(s,n.mode||HF,function(c){if(c)return o(c);o(null,s,WF(s,n,!1))})})}function P7(t){let e=wa(t),r=e[0],n=Sy(r);return Ie.mkdirSync(n,r.mode||HF),{name:n,removeCallback:WF(n,r,!0)}}function $7(t,e){let r=function(n){if(n&&!Ey(n))return e(n);e()};0<=t[0]?Ie.close(t[0],function(){Ie.unlink(t[1],r)}):Ie.unlink(t[1],r)}function I7(t){let e=null;try{0<=t[0]&&Ie.closeSync(t[0])}catch(r){if(!j7(r)&&!Ey(r))throw r}finally{try{Ie.unlinkSync(t[1])}catch(r){Ey(r)||(e=r)}}if(e!==null)throw e}function Cy(t,e,r,n){let o=Ff(I7,[e,t],n),i=Ff($7,[e,t],n,o);return r.keep||ba.unshift(o),n?o:i}function WF(t,e,r){let n=e.unsafeCleanup?A7:Ie.rmdir.bind(Ie),o=e.unsafeCleanup?GF:zF,i=Ff(o,t,r),a=Ff(n,t,r,i);return e.keep||ba.unshift(i),r?i:a}function Ff(t,e,r,n){let o=!1;return function i(a){if(!o){let s=n||i,u=ba.indexOf(s);return u>=0&&ba.splice(u,1),o=!0,r||t===zF||t===GF?t(e):t(e,a||function(){})}}}function T7(){if(KF)for(;ba.length;)try{ba[0]()}catch{}}function LF(t){let e=[],r=null;try{r=BF.randomBytes(t)}catch{r=BF.pseudoRandomBytes(t)}for(let n=0;n<t;n++)e.push(NF[r[n]%NF.length]);return e.join("")}function cr(t){return typeof t>"u"}function wa(t,e){if(typeof t=="function")return[{},t];if(cr(t))return[{},e];let r={};for(let n of Object.getOwnPropertyNames(t))r[n]=t[n];return[r,e]}function R7(t,e,r){let n=wt.isAbsolute(t)?t:wt.join(e,t);Ie.stat(n,function(o){o?Ie.realpath(wt.dirname(n),function(i,a){if(i)return r(i);r(null,wt.join(a,wt.basename(n)))}):Ie.realpath(n,r)})}function B7(t,e){let r=wt.isAbsolute(t)?t:wt.join(e,t);try{return Ie.statSync(r),Ie.realpathSync(r)}catch{let o=Ie.realpathSync(wt.dirname(r));return wt.join(o,wt.basename(r))}}function YF(t){let e=t.tmpdir;if(!cr(t.name))return wt.join(e,t.dir,t.name);if(!cr(t.template))return wt.join(e,t.dir,t.template).replace(MF,LF(6));let r=[t.prefix?t.prefix:"tmp","-",process.pid,"-",LF(12),t.postfix?"-"+t.postfix:""].join("");return wt.join(e,t.dir,r)}function JF(t){if(!cr(t.name)){let e=t.name;if(wt.isAbsolute(e))throw new Error(`name option must not contain an absolute path, found "${e}".`);let r=wt.basename(e);if(r===".."||r==="."||r!==e)throw new Error(`name option must not contain a path, found "${e}".`)}if(!cr(t.template)&&!t.template.match(MF))throw new Error(`Invalid template, found "${t.template}".`);if(!cr(t.tries)&&isNaN(t.tries)||t.tries<0)throw new Error(`Invalid tries, found "${t.tries}".`);t.tries=cr(t.name)?t.tries||C7:1,t.keep=!!t.keep,t.detachDescriptor=!!t.detachDescriptor,t.discardDescriptor=!!t.discardDescriptor,t.unsafeCleanup=!!t.unsafeCleanup,t.prefix=cr(t.prefix)?"":t.prefix,t.postfix=cr(t.postfix)?"":t.postfix}function jF(t,e,r,n){if(cr(e))return n(null);R7(e,r,function(o,i){if(o)return n(o);let a=wt.relative(r,i);if(!i.startsWith(r))return n(new Error(`${t} option must be relative to "${r}", found "${a}".`));n(null,a)})}function UF(t,e,r){if(cr(e))return;let n=B7(e,r),o=wt.relative(r,n);if(!n.startsWith(r))throw new Error(`${t} option must be relative to "${r}", found "${o}".`);return o}function N7(t,e){M7(t,function(r,n){if(r)return e(r);t.tmpdir=n;try{JF(t,n)}catch(o){return e(o)}jF("dir",t.dir,n,function(o,i){if(o)return e(o);t.dir=cr(i)?"":i,jF("template",t.template,n,function(a,s){if(a)return e(a);t.template=s,e(null,t)})})})}function L7(t){let e=t.tmpdir=ZF(t);JF(t,e);let r=UF("dir",t.dir,e);return t.dir=cr(r)?"":r,t.template=UF("template",t.template,e),t}function j7(t){return XF(t,-_7,"EBADF")}function Ey(t){return XF(t,-S7,"ENOENT")}function XF(t,e,r){return E7?t.code===r:t.code===r&&t.errno===e}function U7(){KF=!0}function M7(t,e){return Ie.realpath(t&&t.tmpdir||kf.tmpdir(),e)}function ZF(t){return Ie.realpathSync(t&&t.tmpdir||kf.tmpdir())}process.addListener(x7,T7);Object.defineProperty(vn.exports,"tmpdir",{enumerable:!0,configurable:!1,get:function(){return ZF()}});vn.exports.dir=k7;vn.exports.dirSync=P7;vn.exports.file=O7;vn.exports.fileSync=F7;vn.exports.tmpName=_y;vn.exports.tmpNameSync=Sy;vn.exports.setGracefulCleanup=U7});var $f=require("node:process");var Yy=pe(Wy(),1),{program:at,createCommand:Sq,createArgument:xq,createOption:Aq,CommanderError:Oq,InvalidArgumentError:Fq,InvalidOptionArgumentError:kq,Command:Pq,Argument:$q,Option:Iq,Help:Tq}=Yy.default;var xr={name:"@capgo/cli",version:"7.56.4",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 vt=pe(ed(),1),Ko=require("node:process"),En=pe(require("node:readline"),1),id=pe(require("node:readline"),1),aD=require("node:stream"),sD=pe(rd(),1);function B2({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 N2=B2();function uD(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(N2,"")}function cD(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var lD={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}})(lD);var L2=lD.exports,j2=cD(L2),U2=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},M2=cD(U2);function _a(t,e={}){if(typeof t!="string"||t.length===0||(e={ambiguousIsNarrow:!0,...e},t=uD(t),t.length===0))return 0;t=t.replace(M2()," ");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(j2.eastAsianWidth(o)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}var nd=10,Qy=(t=0)=>e=>`\x1B[${e+t}m`,eD=(t=0)=>e=>`\x1B[${38+t};5;${e}m`,tD=(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 q2=Object.keys(je.color),H2=Object.keys(je.bgColor);[...q2,...H2];function V2(){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=Qy(),je.color.ansi256=eD(),je.color.ansi16m=tD(),je.bgColor.ansi=Qy(nd),je.bgColor.ansi256=eD(nd),je.bgColor.ansi16m=tD(nd),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 z2=V2(),hu=new Set(["\x1B","\x9B"]),K2=39,sd="\x07",fD="[",G2="]",dD="m",ud=`${G2}8;;`,rD=t=>`${hu.values().next().value}${fD}${t}${dD}`,nD=t=>`${hu.values().next().value}${ud}${t}${sd}`,W2=t=>t.split(" ").map(e=>_a(e)),od=(t,e,r)=>{let n=[...e],o=!1,i=!1,a=_a(uD(t[t.length-1]));for(let[s,u]of n.entries()){let c=_a(u);if(a+c<=r?t[t.length-1]+=u:(t.push(u),a=0),hu.has(u)&&(o=!0,i=n.slice(s+1).join("").startsWith(ud)),o){i?u===sd&&(o=!1,i=!1):u===dD&&(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())},Y2=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!(_a(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},J2=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let n="",o,i,a=W2(t),s=[""];for(let[c,f]of t.split(" ").entries()){r.trim!==!1&&(s[s.length-1]=s[s.length-1].trimStart());let d=_a(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(""),od(s,f,e);continue}if(d+a[c]>e&&d>0&&a[c]>0){if(r.wordWrap===!1&&d<e){od(s,f,e);continue}s.push("")}if(d+a[c]>e&&r.wordWrap===!1){od(s,f,e);continue}s[s.length-1]+=f}r.trim!==!1&&(s=s.map(c=>Y2(c)));let u=[...s.join(`
|
|
108
108
|
`)];for(let[c,f]of u.entries()){if(n+=f,hu.has(f)){let{groups:p}=new RegExp(`(?:\\${fD}(?<code>\\d+)m|\\${ud}(?<uri>.*)${sd})`).exec(u.slice(c).join(""))||{groups:{}};if(p.code!==void 0){let h=Number.parseFloat(p.code);o=h===K2?void 0:h}else p.uri!==void 0&&(i=p.uri.length===0?void 0:p.uri)}let d=z2.codes.get(Number(o));u[c+1]===`
|
|
109
109
|
`?(i&&(n+=nD("")),o&&d&&(n+=rD(d))):f===`
|
|
110
110
|
`&&(o&&d&&(n+=rD(o)),i&&(n+=nD(i)))}return n};function oD(t,e,r){return String(t).normalize().replace(/\r\n/g,`
|
|
@@ -183,7 +183,7 @@ Global: ${Ns()}`),l.info(`Local: ${Bs()}`),l.info(`
|
|
|
183
183
|
\u2705 ${n.toUpperCase()} credentials updated for ${i}!`),l.info(` Location: ${f}
|
|
184
184
|
`)}catch(e){l.error(`Failed to update credentials: ${e instanceof Error?e.message:String(e)}`),(0,qe.exit)(1)}}var Kr=require("node:fs"),Er=require("node:fs/promises"),xO=require("node:os"),_r=require("node:path"),nf=require("node:process");var AO=pe(oh()),of=pe(nl());async function p5(t,e,r,n,o,i=!1){if(o)return null;let a=null,s=!1,u=`${t}/build/logs/${e}?app_id=${encodeURIComponent(r)}`;l.info(`Connecting to log stream: ${u}`);try{let c=await fetch(u,{headers:{authorization:n}});if(l.info(`Log stream response: ${c.status}`),!c.ok){let m=await c.text().catch(()=>"unknown error");return l.warn(`Could not stream logs (${c.status}): ${m}`),null}let f=c.body?.getReader();if(!f)return l.warn("No response body for log stream"),null;l.info("Reading log stream...");let d=new TextDecoder,p="",h=m=>{if(!m.trim())return;let y=m.match(/^(?:Build|Job already) (succeeded|failed|expired|released|cancelled)$/i);if(y){a=y[1].toLowerCase();return}a||(s||(s=!0,l.info("")),l.info(m))};for(;;){let{done:m,value:y}=await f.read();if(m)break;p+=d.decode(y,{stream:!0});let b=p.split(`
|
|
185
185
|
`);p=b.pop()||"";for(let v of b)if(v.startsWith("data: ")){let E=v.slice(6);h(E)}}if(p.startsWith("data: ")){let m=p.slice(6);h(m)}return a}catch(c){return o||l.warn(`Log streaming interrupted${c instanceof Error?`: ${c.message}`:""}`),null}}async function h5(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 m5(t,e){let r=new Set,n=!1;if(e==="ios"){let o=(0,_r.join)(t,"ios/App/CapApp-SPM/Package.swift");if((0,Kr.existsSync)(o)){n=!0;let a=(await(0,Er.readFile)(o,"utf-8")).matchAll(/\.package\s*\([^)]*path:\s*["'](?:\.\.\/)*node_modules\/([^"']+)["']\s*\)/g);for(let s of a)r.add(s[1])}else{let i=(0,_r.join)(t,"ios/App/Podfile");if((0,Kr.existsSync)(i)){let s=(await(0,Er.readFile)(i,"utf-8")).matchAll(/pod\s+['"][^'"]+['"],\s*:path\s*=>\s*['"]\.\.\/\.\.\/node_modules\/([^'"]+)['"]/g);for(let u of s)r.add(u[1])}}}else if(e==="android"){let o=(0,_r.join)(t,"android/capacitor.settings.gradle");if((0,Kr.existsSync)(o)){let a=(await(0,Er.readFile)(o,"utf-8")).matchAll(/new\s+File\s*\(\s*['"]\.\.\/node_modules\/([^'"]+)['"]\s*\)/g);for(let s of a){let c=s[1].replace(/\/android$/,"");r.add(c)}}}return{packages:r,usesSPM:n}}function SO(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.packages){let i=`node_modules/${o}/`;if(e==="android"){if(n.startsWith(`${i}android/`))return!0}else if(e==="ios"){if(n.startsWith(`${i}ios/`))return!0;if(r.usesSPM){if(n===`${i}Package.swift`)return!0}else if(n.startsWith(i)&&n.endsWith(".podspec"))return!0}}return!1}function Ls(t,e,r,n,o){let i=(0,Kr.readdirSync)(e);for(let a of i){let s=(0,_r.join)(e,a),u=r?`${r}/${a}`:a,c=(0,Kr.statSync)(s);if(c.isDirectory()){if(a===".git"||a==="dist"||a==="build"||a===".angular"||a===".vite"||a===".gradle"||a===".idea"||a===".swiftpm")continue;if(a===n){Ls(t,s,u,n,o);continue}if(a==="node_modules"){Ls(t,s,u,n,o);continue}if(a==="resources"){Ls(t,s,u,n,o);continue}let f=u.replace(/\\/g,"/");(SO(u,n,o)||Array.from(o.packages).some(p=>`node_modules/${p}/`.startsWith(`${f}/`)||f.startsWith(`node_modules/${p}`)))&&Ls(t,s,u,n,o)}else if(c.isFile()){if(a===".DS_Store"||a.endsWith(".log"))continue;SO(u,n,o)&&t.addLocalFile(s,r||void 0)}}}async function g5(t,e,r){let n=await m5(t,r),o=new AO.default;Ls(o,t,"",r,n),await(0,Er.writeFile)(e,o.toBuffer())}async function y5(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,_r.resolve)(e.path||(0,nf.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 Et(u,t);r||(l.info(`Requesting native build for ${t}`),l.info(`Platform: ${e.platform}`),l.info(`Project: ${a}`),l.info(`
|
|
186
|
-
\u{1F512} Security: Credentials are never stored on Capgo servers`),l.info(" They are used only during build and deleted after
|
|
186
|
+
\u{1F512} Security: Credentials are never stored on Capgo servers`),l.info(" They are used only during build and deleted after"),l.info(` Builds sent directly to app stores - Capgo keeps nothing
|
|
187
187
|
`)),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 wO(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,_r.join)((0,xO.tmpdir)(),`capgo-build-${Date.now()}`);await(0,Er.mkdir)(E,{recursive:!0});let g=(0,_r.join)(E,`${(0,_r.basename)(a)}.zip`);try{r||l.info(`Zipping ${e.platform} project from ${a}...`),await g5(a,g,e.platform);let S=((await(0,Er.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,Kr.readFileSync)(g),F=Ee();r||F.start("Uploading bundle"),await new Promise((j,Z)=>{let k=new of.Upload(P,{endpoint:v.upload_url,chunkSize:5242880,metadata:{filename:(0,_r.basename)(g),filetype:"application/zip"},headers:{authorization:e.apikey},onBeforeRequest(D){if(o){l.info(`[TUS] ${D.getMethod()} ${D.getURL()}`);let w=D.getHeader("authorization");l.info(`[TUS] Authorization header present: ${!!w}`)}},onAfterResponse(D,w){if(o){l.info(`[TUS] Response status: ${w.getStatus()}`);let C=w.getHeader("upload-offset"),O=w.getHeader("tus-resumable");l.info(`[TUS] Upload-Offset: ${C}, Tus-Resumable: ${O}`)}},onError(D){if(r||(F.stop("Upload failed"),l.error(`Upload error: ${D.message}`)),D instanceof of.DetailedError){let w=D.originalResponse?.getBody(),C=D.originalResponse?.getStatus(),O=D.originalRequest?.getURL();o&&(l.error(`[TUS] Request URL: ${O}`),l.error(`[TUS] Response status: ${C}`),l.error(`[TUS] Response body: ${w}`));let R="Unknown error";try{let $=JSON.parse(w||'{"error": "unknown error"}');R=$.status||$.error||$.message||"unknown error"}catch{R=w||D.message}Z(new Error(`TUS upload failed: ${R}`))}else Z(new Error(`TUS upload failed: ${D.message||D.toString()}`))},onProgress(D,w){let C=(D/w*100).toFixed(2);r||F.message(`Uploading ${C}%`)},onSuccess(){r||F.stop("Upload complete!"),o&&l.success("TUS upload completed successfully"),j()}});o&&l.info("[TUS] Starting upload..."),k.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 j=await B.text();throw new Error(`Failed to start build: ${B.status} - ${j}`)}let T=await B.json();r||(l.success("Build started!"),l.info("Streaming build logs..."));let L,A=await p5(s,v.job_id,t,e.apikey,r,o);A?L=A:L=await h5(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 q=((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:q},notify:!1}).catch(),{success:L==="succeeded",jobId:v.job_id,uploadUrl:v.upload_url,status:L||T.status||v.status}}finally{await(0,Er.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 OO(t,e){(await y5(t,e,!1)).success||(0,nf.exit)(1)}async function FO(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 Wg(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 Wg(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.
|
|
188
188
|
${M(i)}`),new Error(`Cannot retrieve unknown version for app ${e}: ${M(i)}`)}function kO(t,e){return t.from("channels").insert(e).select().single()}function PO(t,e,r,n){return t.from("channels").delete().eq("name",e).eq("app_id",r).single()}function $O(t,e,r){return t.from("channels").select().eq("app_id",e).eq("name",r).single()}function IO(t,e,r){return t.from("channel_devices").delete().eq("app_id",e).eq("channel_id",r)}function TO(t,e,r){return t.from("channels").select(`
|
|
189
189
|
id,
|
package/dist/package.json
CHANGED
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;g(),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)},m=(D="",w=0)=>{o=!1,clearInterval(s),g();let S=w===0?J.default.green(jm):w===1?J.default.red(p_):J.default.red(m_);a=v(D??a),t==="timer"?process.stdout.write(`${S} ${a} ${E(c)}
|
|
284
284
|
`):process.stdout.write(`${S} ${a}
|
|
285
285
|
`),p(),i()};return{start:A,stop:m,message:(D="")=>{a=v(D??a)}}};function g_(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?g_("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))+g_("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 d8=require("node:child_process"),Te=require("node:fs"),zp=require("node:os"),xe=Ee(require("node:path")),Un=require("node:process"),os=Ee($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"}},y_=(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 v_(t=[],e=[]){return t.length&&!e.length?-1:!t.length&&e.length?1:0}function Vm(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*",i4="\\d*[a-zA-Z-][a-zA-Z0-9-]*",s4=`(?<major>${Co})\\.(?<minor>${Co})\\.(?<patch>${Co})`,D_=`(?:${Co}|${i4})`,E_=`(?:-(?<prerelease>${D_}(?:\\.${D_})*))`,w_="[0-9A-Za-z-]+",b_=`(?:\\+(?<buildmetadata>${w_}(?:\\.${w_})*))`,__=`v?${s4}${E_}?${b_}?`,C_=new RegExp(`^${__}$`),S_="(?:<|>)?=?",o4="x|X|\\*",Hm=`${Co}|${o4}`,jl=`[v=\\s]*(?<major>${Hm})(?:\\.(?<minor>${Hm})(?:\\.(?<patch>${Hm})${E_}?${b_}?)?)?`,A_=new RegExp(`^(?<operator>~>?|\\^|${S_})\\s*${jl}$`),O_=new RegExp(`^(?<operator>${S_})\\s*(${__})$|^$`);function zm(t){return typeof t=="number"&&!Number.isNaN(t)&&(!Number.isFinite(t)||0<=t&&t<=Number.MAX_SAFE_INTEGER)}var Km=256;var a4=new RegExp(`^${Co}$`);function Qt(t){return t.split(".").filter(Boolean).map(e=>{if(a4.test(e)){let r=Number(e);if(zm(r))return r}return e})}function nn(t){return t.split(".").filter(Boolean)}function Ii(t,e){let r=Number(t);if(!zm(r))throw new TypeError(e);return r}function Wn(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)||v_(t.prerelease,e.prerelease)||Vm(t.prerelease,e.prerelease)}function Gm(t){return t.toFixed(0)}function sn(t){let e=Gm(t.major),r=Gm(t.minor),n=Gm(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 u4(t,e){if(Wn(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(!u4(t,r))return!1;if(t.prerelease&&t.prerelease.length>0){for(let r of e){if(Wn(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 c4(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=c4(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?nn(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 Wm(t,e){return er(t,e)>0}function ds(t,e){return er(t,e)<0}function l4(t){let r=t.match(O_)?.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?nn(s):[]}:Ul;return{operator:n||void 0,...o}}function ze(t){return!t||t.toLowerCase()==="x"||t==="*"}function f4(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 h4(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 d4(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=f4(r),c=h4(a);return[u,c].filter(Boolean)}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 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 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[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 g4(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=nn(t.build??"");return[{operator:"<",major:i,minor:s,patch:o,prerelease:a,build:u}]}function y4(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=nn(t.build??"");return[{operator:"<=",major:n,minor:i,patch:s,prerelease:o,build:a}]}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[{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=nn(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 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=nn(t.build??"");return[{operator:">=",major:i,minor:s,patch:o,prerelease:a,build:u}]}function v4(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=nn(t.build??"");return[{operator:void 0,major:i,minor:s,patch:o,prerelease:a,build:u}]}function E4(t){let e=t.match(A_)?.groups;if(!e)return l4(t);switch(e.operator){case"^":return p4(e);case"~":case"~>":return m4(e);case"<":return g4(e);case"<=":return y4(e);case">":return D4(e);case">=":return w4(e);case"=":case"":return v4(e);default:throw new Error(`Cannot parse version range: '${e.operator}' is not a valid operator`)}}function b4(t){return t.split(/\s+/).flatMap(E4)}function ql(t){let e=t.replaceAll(/(?<=<|>|=|~|\^)(\s+)/g,"").split(/\s*\|\|\s*/).map(r=>d4(r)||b4(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>Km)throw new TypeError(`Cannot parse version as version length is too long: length is ${t.length}, max length is ${Km}`);t=t.trim();let e=t.match(C_)?.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?nn(e.buildmetadata):[];return{major:r,minor:n,patch:i,prerelease:s,build:o}}function x_(t,e){let r=t.operator,n=e.operator;if(r===void 0)return Wn(t)?!0:Du(t,[[e]]);if(n===void 0)return Wn(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 _4(t){return t.every(e=>e.some(r=>C4(r)))}function C4(t){for(let e=0;e<t.length-1;e++){let r=t[e];for(let n of t.slice(e+1))if(!x_(r,n))return!1}return!0}function T_(t,e){return _4([t,e])&&t.some(r=>e.some(n=>r.every(i=>n.every(s=>x_(i,s)))))}function I_(t){try{return lt(t),!0}catch{return!1}}function P_(t,e){return er(t,e)>=0}var Za=Ee(xS()),db=Ee(cD()),p8=Ee(LA()),Kp=Ee(zh());var Mi={name:"@capgo/cli",version:"7.56.3",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&&y.warning(`\u{1F6A8} You are using @capgo/cli@${Mi.version} it's not the latest version.
|
|
286
|
+
`)}};var d8=require("node:child_process"),Te=require("node:fs"),zp=require("node:os"),xe=Ee(require("node:path")),Un=require("node:process"),os=Ee($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"}},y_=(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 v_(t=[],e=[]){return t.length&&!e.length?-1:!t.length&&e.length?1:0}function Vm(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*",i4="\\d*[a-zA-Z-][a-zA-Z0-9-]*",s4=`(?<major>${Co})\\.(?<minor>${Co})\\.(?<patch>${Co})`,D_=`(?:${Co}|${i4})`,E_=`(?:-(?<prerelease>${D_}(?:\\.${D_})*))`,w_="[0-9A-Za-z-]+",b_=`(?:\\+(?<buildmetadata>${w_}(?:\\.${w_})*))`,__=`v?${s4}${E_}?${b_}?`,C_=new RegExp(`^${__}$`),S_="(?:<|>)?=?",o4="x|X|\\*",Hm=`${Co}|${o4}`,jl=`[v=\\s]*(?<major>${Hm})(?:\\.(?<minor>${Hm})(?:\\.(?<patch>${Hm})${E_}?${b_}?)?)?`,A_=new RegExp(`^(?<operator>~>?|\\^|${S_})\\s*${jl}$`),O_=new RegExp(`^(?<operator>${S_})\\s*(${__})$|^$`);function zm(t){return typeof t=="number"&&!Number.isNaN(t)&&(!Number.isFinite(t)||0<=t&&t<=Number.MAX_SAFE_INTEGER)}var Km=256;var a4=new RegExp(`^${Co}$`);function Qt(t){return t.split(".").filter(Boolean).map(e=>{if(a4.test(e)){let r=Number(e);if(zm(r))return r}return e})}function nn(t){return t.split(".").filter(Boolean)}function Ii(t,e){let r=Number(t);if(!zm(r))throw new TypeError(e);return r}function Wn(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)||v_(t.prerelease,e.prerelease)||Vm(t.prerelease,e.prerelease)}function Gm(t){return t.toFixed(0)}function sn(t){let e=Gm(t.major),r=Gm(t.minor),n=Gm(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 u4(t,e){if(Wn(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(!u4(t,r))return!1;if(t.prerelease&&t.prerelease.length>0){for(let r of e){if(Wn(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 c4(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=c4(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?nn(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 Wm(t,e){return er(t,e)>0}function ds(t,e){return er(t,e)<0}function l4(t){let r=t.match(O_)?.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?nn(s):[]}:Ul;return{operator:n||void 0,...o}}function ze(t){return!t||t.toLowerCase()==="x"||t==="*"}function f4(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 h4(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 d4(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=f4(r),c=h4(a);return[u,c].filter(Boolean)}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 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 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[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 g4(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=nn(t.build??"");return[{operator:"<",major:i,minor:s,patch:o,prerelease:a,build:u}]}function y4(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=nn(t.build??"");return[{operator:"<=",major:n,minor:i,patch:s,prerelease:o,build:a}]}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[{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=nn(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 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=nn(t.build??"");return[{operator:">=",major:i,minor:s,patch:o,prerelease:a,build:u}]}function v4(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=nn(t.build??"");return[{operator:void 0,major:i,minor:s,patch:o,prerelease:a,build:u}]}function E4(t){let e=t.match(A_)?.groups;if(!e)return l4(t);switch(e.operator){case"^":return p4(e);case"~":case"~>":return m4(e);case"<":return g4(e);case"<=":return y4(e);case">":return D4(e);case">=":return w4(e);case"=":case"":return v4(e);default:throw new Error(`Cannot parse version range: '${e.operator}' is not a valid operator`)}}function b4(t){return t.split(/\s+/).flatMap(E4)}function ql(t){let e=t.replaceAll(/(?<=<|>|=|~|\^)(\s+)/g,"").split(/\s*\|\|\s*/).map(r=>d4(r)||b4(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>Km)throw new TypeError(`Cannot parse version as version length is too long: length is ${t.length}, max length is ${Km}`);t=t.trim();let e=t.match(C_)?.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?nn(e.buildmetadata):[];return{major:r,minor:n,patch:i,prerelease:s,build:o}}function x_(t,e){let r=t.operator,n=e.operator;if(r===void 0)return Wn(t)?!0:Du(t,[[e]]);if(n===void 0)return Wn(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 _4(t){return t.every(e=>e.some(r=>C4(r)))}function C4(t){for(let e=0;e<t.length-1;e++){let r=t[e];for(let n of t.slice(e+1))if(!x_(r,n))return!1}return!0}function T_(t,e){return _4([t,e])&&t.some(r=>e.some(n=>r.every(i=>n.every(s=>x_(i,s)))))}function I_(t){try{return lt(t),!0}catch{return!1}}function P_(t,e){return er(t,e)>=0}var Za=Ee(xS()),db=Ee(cD()),p8=Ee(LA()),Kp=Ee(zh());var Mi={name:"@capgo/cli",version:"7.56.4",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&&y.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 XT(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 b0=require("node:buffer"),YT=require("node:crypto"),RY=(()=>{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 kY(t){let e=4294967295;for(let r=0;r<t.length;r++){let n=t[r];e=RY[(e^n)&255]^e>>>8}return e=e^4294967295,(e>>>0).toString(16).padStart(8,"0")}async function ni(t,e="sha256"){let r=b0.Buffer.isBuffer(t)?t:b0.Buffer.from(t);if(e==="crc32")return kY(r);let n=(0,YT.createHash)(e);return n.update(r),n.digest("hex")}var ol=Ee(wM());async function vM(){let t=await(0,ol.loadConfig)();return{config:t.app.extConfig,path:t.app.extConfigFilePath}}async function HE(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 HE("CapacitorUpdater",t,e)}var eu=".capgo_key",$r=".capgo_key_v2",Gp=`${eu}.pub`,vi=`${$r}.pub`,a8="https://capgo.app",u8="https://files.capgo.app",c8="https://api.capgo.app",l8="https://console.capgo.app",pb=12e4,Jle=1024*1024*20,Zle=1024*1024*1024,Qle=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
|
${p8.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 efe(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 y.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 efe(t,e).version??""}function f8(t){let e=t.replace("^","").replace("~","");if(I_(e))try{let r=lt(e);return sn(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 y.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,f8(o.dependencies[a]));for(let a in o.devDependencies)n.set(a,f8(o.devDependencies[a]))}return n}async function de(){try{let t=await vM();if(!t){let e="No capacitor config file found, run `cap init` first";throw y.error(e),new Error(e)}return t}catch(t){let e=`No capacitor config file found, run \`cap init\` first ${W(t)}`;throw y.error(e),new Error(e)}}async function tfe(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 HE(t,r)),r}async function m8(t){return tfe("CapacitorUpdater",t)}async function Sn(){try{let t=await de(),e={host:t?.config?.plugins?.CapacitorUpdater?.localHost||a8,hostWeb:t?.config?.plugins?.CapacitorUpdater?.localWebHost||l8,hostFilesApi:t?.config?.plugins?.CapacitorUpdater?.localApiFiles||u8,hostApi:t?.config?.plugins?.CapacitorUpdater?.localApi||c8};return t?.config?.plugins?.CapacitorUpdater?.localSupa&&t?.config?.plugins?.CapacitorUpdater?.localSupaAnon&&(y.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:a8,hostWeb:l8,hostFilesApi:u8,hostApi:c8}}}var rfe=/([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 y.info(`Local config ${W(t)}`),t}}async function g8(){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:Zle,maxChunkSize:Qle,alertUploadSize:Jle}}}async function pe(t,e,r){let n=await Xp();if(e&&r&&(y.info("Using custom supabase instance from provided options"),n.supaHost=e,n.supaKey=r),!n.supaHost||!n.supaKey)throw y.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 nfe(t,e,r){let{data:n}=await t.rpc("is_allowed_capgkey",{apikey:e,keymode:r}).single();if(!n){y.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 y.error(s),new Error("Invalid API key or insufficient permissions.")}}async function y8(t,e){let{data:r}=await t.rpc("is_paying_org",{orgid:e}).single();return r||!1}async function D8(t,e){let{data:r}=await t.rpc("is_trial_org",{orgid:e}).single();return r||0}async function ife(t,e){let{data:r}=await t.rpc("is_allowed_action_org",{orgid:e}).single();return!!r}async function sfe(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 w8(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 y.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")?(y.info("Please accept/deny the organization invitation before trying to access the app"),new Error("Organization invitation pending")):(y.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 y.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 v8(t,e,r){let{data:n,error:i}=await t.rpc("get_organization_cli_warnings",{orgid:e,cli_version:r});if(i){y.error(`Cannot get cli warnings: ${W(i)}`);return}if(n.length>0){y.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"){y.error(`Invalid cli warning: ${o}`);continue}let a=o;a.fatal?(y.error(`${a.message.replaceAll("\\n",`
|
|
289
289
|
`)}`),s=new Error(a.message)):y.warn(`${a.message.replaceAll("\\n",`
|
|
@@ -321,7 +321,7 @@ ${W(s)}`),new Error(`Cannot retrieve unknown version for app ${e}: ${W(s)}`)}fun
|
|
|
321
321
|
version (id, name)
|
|
322
322
|
`).eq("app_id",e).order("created_at",{ascending:!1});if(i)throw r||y.error(`App ${e} not found in database`),new Error(`App ${e} not found in database: ${W(i)}`);return n}async function wb(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||y.error(o),new Error(`${o}: ${W(s)}`)}}async function em(t,e,r,n={}){let{silent:i=!1,autoUnlink:s=!1}=n,o=await lfe(t,e,r,{silent:i});await k8(t,e,o,{silent:i,autoUnlink:s}),await wb(t,e,r,{silent:i})}function q8(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??""]);y.success("Bundles"),y.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||y.error(o),new Error(`${o}: ${W(s)}`)}return i??[]}async function H8(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||y.error(o),new Error(`${o}: ${W(s)}`)}return(i??[]).map(o=>o.version)}async function lfe(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||y.error(a),new Error(`${a}${o?`: ${W(o)}`:""}`)}return s}var su=require("node:fs");async function V8(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 w8(t,e,r);if(!o.okay)switch(o.error){case"INVALID_APIKEY":{let c="Invalid apikey, such apikey does not exists!";throw i||y.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||y.error(c),new Error(c)}case"NO_ORG":{let c="Could not find organization, please contact support to resolve this!";throw i||y.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||y.error(c),new Error(c)}return o.data}var Qr="assets/icon.png";var ffe=/^[a-z0-9]+(\.[\w-]+)+$/i;function hfe(t,e,r){if(!e.apikey)throw r||y.error("Missing API key, you need to provide an API key to upload your bundle"),new Error("Missing API key");if(!t)throw r||y.error("Missing argument, you need to provide a appId, or be in a capacitor project"),new Error("Missing appId");if(t.includes("--"))throw r||y.error('The app id includes illegal symbols. You cannot use "--" in the app id'),new Error("App id includes illegal symbols");if(!ffe.test(t))throw r||(y.error(`Invalid app ID format: "${t}"`),y.info("App ID must be in reverse domain notation (e.g., com.example.app)"),y.info("Valid format: lowercase letters, numbers, dots, hyphens, and underscores"),y.info("Examples: com.mycompany.myapp, io.capgo.app, com.example.my-app")),new Error("Invalid app ID format")}async function dfe(t,e,r){if(await V8(t,e))throw e==="io.ionic.starter"?(r||y.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||y.error(`App ${e} already exist`),new Error(`App ${e} already exists`))}async function z8(t,e,r,n=!1){n||ae("Adding"),await Xe(),e.apikey=e.apikey||re();let i=await de(),s=Le(t,i?.config);hfe(s,e,n);let o=await pe(e.apikey,e.supaHost,e.supaAnon),a=await De(o,e.apikey,["write","all"]);await dfe(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||y.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||y.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||y.warn(`Found app icon ${l}`)):(0,su.existsSync)(Qr)?(h=(0,su.readFileSync)(Qr),d=nu(Qr)||"image/png",n||y.warn(`Found app icon ${Qr}`)):n||y.warn(`Cannot find app icon in any of the following locations: ${l}, ${Qr}`);let f="icon",p="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||y.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);p=E?.publicUrl||p}let{error:g}=await o.from("apps").insert({icon_url:p,owner_org:u,user_id:a,name:c,app_id:s});if(g)throw n||y.error(`Could not add app ${W(g)}`),new Error(`Could not add app ${W(g)}`);return n||(y.success(`App ${s} added to Capgo. You can upload a bundle now`),le("Done \u2705")),{appId:s,organizationUid:u,userId:a,name:c,signedURL:p}}async function K8(t,e,r=!1,n=!1){r||ae("Deleting"),e.apikey=e.apikey||re();let i=await de(),s=Le(t,i?.config);if(!e.apikey)throw r||y.error("Missing API key, you need to provide an API key to upload your bundle"),new Error("Missing API key");if(!s)throw r||y.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");{y.warn("Deleting the app is not recommended for users that are not the organization owner"),y.warn("You are invited as a super_admin but your are not the owner"),y.warn("It's strongly recommended that you do not continue!");let g=await gn({message:"Do you want to continue?",options:[{label:"Yes",value:"yes"},{label:"No",value:"no"}]});if(st(g)||g==="no")throw y.error("Canceled deleting the app, exiting"),new Error("App deletion cancelled")}}else c&&!r&&y.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&&y.error("Could not delete app logo");let{error:d}=await o.storage.from(`apps/${s}/${a}`).remove(["versions"]);d&&!r&&y.error("Could not delete app version");let{error:f}=await o.from("apps").delete().eq("app_id",s);if(f)throw r||y.error("Could not delete app"),new Error(`Could not delete app: ${W(f)}`);let p=await Rr(o,s);return await _e(e.apikey,{channel:"app",event:"App Deleted",icon:"\u{1F5D1}\uFE0F",user_id:p,tags:{"app-id":s},notify:!1}).catch(()=>{}),r||(y.success("App deleted in Capgo"),le("Done \u2705")),!0}var rm=require("node:os"),W8=require("node:process");async function G8(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 pfe(){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 X8(t,e=!1){e||y.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=Le("",r?.config),a=r?.config?.webDir||"";e||(y.info(` App Name: ${s}`),y.info(` App ID: ${o}`),y.info(` App Version: ${i}`),y.info(` Web Dir: ${a}`),y.info(` OS: ${(0,rm.platform)()} ${(0,rm.version)()}`),y.info(` Node: ${W8.version}`),y.info(" Installed Dependencies:"));let u=await pfe();if(Object.keys(u).length===0)throw e||y.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))y.info(` ${l}: ${u[l]}`);let c={};if(e)c=await G8(u);else{let l=xt();l.start("Running: Loading latest dependencies"),c=await G8(u),l.stop("Latest Dependencies:");for(let h of Object.keys(c))y.info(` ${h}: ${c[h]}`)}if(JSON.stringify(u)!==JSON.stringify(c))throw e||y.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||y.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 mfe(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)]);y.success("Apps"),y.success(e.toString())}async function gfe(t,e){let{data:r,error:n}=await t.from("apps").select().order("created_at",{ascending:!1});if(n)throw e||y.error("Apps not found"),new Error("Apps not found");return r??[]}async function Y8(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||y.info("Getting active bundle in Capgo");let n=await gfe(r,e);if(!n.length)throw e||y.error("No apps found"),new Error("No apps found");return e||(y.info(`Active app in Capgo: ${n.length}`),mfe(n),le("Done \u2705")),n}var J8=require("node:crypto"),ou=require("node:fs");async function Z8(t,e,r=!1){r||ae("Set app"),e.apikey=e.apikey||re();let n=await de();if(t=Le(t,n?.config),!e.apikey)throw r||y.error("Missing API key, you need to provide an API key to upload your bundle"),new Error("Missing API key");if(!t)throw r||y.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||y.error("retention value must be a number"),new Error("Retention value must be a number");if(l&&l<0)throw r||y.error("retention value cannot be less than 0"),new Error("Retention value cannot be less than 0");if(l&&l>=63113904)throw r||y.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,p=`icon_${(0,J8.randomUUID)()}`,g="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||y.warn(`Found app icon ${c}`)):(0,ou.existsSync)(Qr)?(d=(0,ou.readFileSync)(Qr),f=nu(Qr)||"image/png",r||y.warn(`Found app icon ${Qr}`)):r||y.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(p,d,{contentType:f});if(E)throw r||y.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(p);g=A?.publicUrl||g}let{error:v}=await i.from("apps").update({icon_url:g,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||y.error(`Could not set app ${W(v)}`),new Error(`Could not set app: ${W(v)}`);return r||le("Done \u2705"),!0}async function Q8(t,e,r=!1){if(r||ae("Set a specific setting in capacitor config"),e.bool&&e.string)throw r||y.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||y.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||y.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||y.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||y.success(`Set "${t}" to "${o}"`)}catch(n){throw r||y.error(`Cannot set config in capacitor settings ${W(n)}`),new Error(`Cannot set capacitor config: ${W(n)}`)}r||le("Done \u2705")}var Hn=require("node:fs"),en=require("node:fs/promises"),n6=require("node:os"),tn=require("node:path"),Eb=require("node:process");var i6=Ee(cD()),sm=Ee(zh());var nm=require("node:fs/promises"),e6=require("node:os"),im=require("node:path"),Ie=require("node:process"),yfe=(0,im.join)((0,e6.homedir)(),".capgo-credentials"),Dfe=(0,im.join)(yfe,"credentials.json"),wfe=".capgo-credentials.json";function vfe(t){return t?(0,im.join)((0,Ie.cwd)(),wfe):Dfe}async function vb(t){try{let e=vfe(t),r=await(0,nm.readFile)(e,"utf-8");return JSON.parse(r)}catch{return{}}}async function Efe(t,e){if(e!==void 0){let i=await vb(e);if(!t){let s=Object.keys(i);return s.length===0?null:i[s[0]]||null}return i[t]||null}let r=await vb(!0),n=await vb(!1);if(!t){let i=Object.keys(r);if(i.length>0)return r[i[0]]||null;let s=Object.keys(n);return s.length===0?null:n[s[0]]||null}return r[t]||n[t]||null}function bfe(){let t={};return Ie.env.BUILD_CERTIFICATE_BASE64&&(t.BUILD_CERTIFICATE_BASE64=Ie.env.BUILD_CERTIFICATE_BASE64),Ie.env.BUILD_PROVISION_PROFILE_BASE64&&(t.BUILD_PROVISION_PROFILE_BASE64=Ie.env.BUILD_PROVISION_PROFILE_BASE64),Ie.env.BUILD_PROVISION_PROFILE_BASE64_PROD&&(t.BUILD_PROVISION_PROFILE_BASE64_PROD=Ie.env.BUILD_PROVISION_PROFILE_BASE64_PROD),Ie.env.P12_PASSWORD&&(t.P12_PASSWORD=Ie.env.P12_PASSWORD),Ie.env.APPLE_KEY_ID&&(t.APPLE_KEY_ID=Ie.env.APPLE_KEY_ID),Ie.env.APPLE_ISSUER_ID&&(t.APPLE_ISSUER_ID=Ie.env.APPLE_ISSUER_ID),Ie.env.APPLE_KEY_CONTENT&&(t.APPLE_KEY_CONTENT=Ie.env.APPLE_KEY_CONTENT),Ie.env.APPLE_PROFILE_NAME&&(t.APPLE_PROFILE_NAME=Ie.env.APPLE_PROFILE_NAME),Ie.env.APP_STORE_CONNECT_TEAM_ID&&(t.APP_STORE_CONNECT_TEAM_ID=Ie.env.APP_STORE_CONNECT_TEAM_ID),Ie.env.ANDROID_KEYSTORE_FILE&&(t.ANDROID_KEYSTORE_FILE=Ie.env.ANDROID_KEYSTORE_FILE),Ie.env.KEYSTORE_KEY_ALIAS&&(t.KEYSTORE_KEY_ALIAS=Ie.env.KEYSTORE_KEY_ALIAS),Ie.env.KEYSTORE_KEY_PASSWORD&&(t.KEYSTORE_KEY_PASSWORD=Ie.env.KEYSTORE_KEY_PASSWORD),Ie.env.KEYSTORE_STORE_PASSWORD&&(t.KEYSTORE_STORE_PASSWORD=Ie.env.KEYSTORE_STORE_PASSWORD),Ie.env.PLAY_CONFIG_JSON&&(t.PLAY_CONFIG_JSON=Ie.env.PLAY_CONFIG_JSON),t}async function t6(t,e,r){let n=await Efe(t),i=bfe(),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 _fe(t,e,r,n,i,s=!1){if(i)return null;let o=null,a=!1,u=`${t}/build/logs/${e}?app_id=${encodeURIComponent(r)}`;y.info(`Connecting to log stream: ${u}`);try{let c=await fetch(u,{headers:{authorization:n}});if(y.info(`Log stream response: ${c.status}`),!c.ok){let p=await c.text().catch(()=>"unknown error");return y.warn(`Could not stream logs (${c.status}): ${p}`),null}let l=c.body?.getReader();if(!l)return y.warn("No response body for log stream"),null;y.info("Reading log stream...");let h=new TextDecoder,d="",f=p=>{if(!p.trim())return;let g=p.match(/^(?:Build|Job already) (succeeded|failed|expired|released|cancelled)$/i);if(g){o=g[1].toLowerCase();return}o||(a||(a=!0,y.info("")),y.info(p))};for(;;){let{done:p,value:g}=await l.read();if(p)break;d+=h.decode(g,{stream:!0});let v=d.split(`
|
|
323
323
|
`);d=v.pop()||"";for(let E of v)if(E.startsWith("data: ")){let A=E.slice(6);f(A)}}if(d.startsWith("data: ")){let p=d.slice(6);f(p)}return o}catch(c){return i||y.warn(`Log streaming interrupted${c instanceof Error?`: ${c.message}`:""}`),null}}async function Cfe(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||y.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||y.warn(`Status check error: ${u}`),await new Promise(c=>setTimeout(c,5e3)),a++}return s||y.warn("Build status polling timed out"),"timeout"}async function Sfe(t,e){let r=new Set,n=!1;if(e==="ios"){let i=(0,tn.join)(t,"ios/App/CapApp-SPM/Package.swift");if((0,Hn.existsSync)(i)){n=!0;let o=(await(0,en.readFile)(i,"utf-8")).matchAll(/\.package\s*\([^)]*path:\s*["'](?:\.\.\/)*node_modules\/([^"']+)["']\s*\)/g);for(let a of o)r.add(a[1])}else{let s=(0,tn.join)(t,"ios/App/Podfile");if((0,Hn.existsSync)(s)){let a=(await(0,en.readFile)(s,"utf-8")).matchAll(/pod\s+['"][^'"]+['"],\s*:path\s*=>\s*['"]\.\.\/\.\.\/node_modules\/([^'"]+)['"]/g);for(let u of a)r.add(u[1])}}}else if(e==="android"){let i=(0,tn.join)(t,"android/capacitor.settings.gradle");if((0,Hn.existsSync)(i)){let o=(await(0,en.readFile)(i,"utf-8")).matchAll(/new\s+File\s*\(\s*['"]\.\.\/node_modules\/([^'"]+)['"]\s*\)/g);for(let a of o){let c=a[1].replace(/\/android$/,"");r.add(c)}}}return{packages:r,usesSPM:n}}function r6(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.packages){let s=`node_modules/${i}/`;if(e==="android"){if(n.startsWith(`${s}android/`))return!0}else if(e==="ios"){if(n.startsWith(`${s}ios/`))return!0;if(r.usesSPM){if(n===`${s}Package.swift`)return!0}else if(n.startsWith(s)&&n.endsWith(".podspec"))return!0}}return!1}function fl(t,e,r,n,i){let s=(0,Hn.readdirSync)(e);for(let o of s){let a=(0,tn.join)(e,o),u=r?`${r}/${o}`:o,c=(0,Hn.statSync)(a);if(c.isDirectory()){if(o===".git"||o==="dist"||o==="build"||o===".angular"||o===".vite"||o===".gradle"||o===".idea"||o===".swiftpm")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,"/");(r6(u,n,i)||Array.from(i.packages).some(d=>`node_modules/${d}/`.startsWith(`${l}/`)||l.startsWith(`node_modules/${d}`)))&&fl(t,a,u,n,i)}else if(c.isFile()){if(o===".DS_Store"||o.endsWith(".log"))continue;r6(u,n,i)&&t.addLocalFile(a,r||void 0)}}}async function Afe(t,e,r){let n=await Sfe(t,r),i=new i6.default;fl(i,t,"",r,n),await(0,en.writeFile)(e,i.toBuffer())}async function s6(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,tn.resolve)(e.path||(0,Eb.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||(y.info(`Requesting native build for ${t}`),y.info(`Platform: ${e.platform}`),y.info(`Project: ${o}`),y.info(`
|
|
324
|
-
\u{1F512} Security: Credentials are never stored on Capgo servers`),y.info(" They are used only during build and deleted after
|
|
324
|
+
\u{1F512} Security: Credentials are never stored on Capgo servers`),y.info(" They are used only during build and deleted after"),y.info(` Builds sent directly to app stores - Capgo keeps nothing
|
|
325
325
|
`)),i&&y.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 t6(t,e.platform,Object.keys(l).length>0?l:void 0),p={app_id:t,platform:e.platform};if(!f)throw r||(y.error("\u274C No credentials found for this app and platform"),y.error(""),y.error("You must provide credentials via:"),y.error(" 1. CLI arguments (--apple-key-id, --p12-password, etc.)"),y.error(" 2. Environment variables (APPLE_KEY_ID, P12_PASSWORD, etc.)"),y.error(" 3. Saved credentials file:"),y.error(` npx @capgo/cli build credentials save --appId ${t} --platform ${e.platform}`),y.error(""),y.error("Documentation:"),y.error(" https://capgo.app/docs/cli/cloud-build/credentials/")),new Error("No credentials found. Please provide credentials before building.");let g=[];if(e.platform==="ios"?(f.BUILD_CERTIFICATE_BASE64||g.push("BUILD_CERTIFICATE_BASE64 (or --build-certificate-base64)"),!f.P12_PASSWORD&&!r&&(y.warn("\u26A0\uFE0F P12_PASSWORD not provided - assuming certificate has no password"),y.warn(" If your certificate requires a password, provide it with --p12-password")),f.BUILD_PROVISION_PROFILE_BASE64||g.push("BUILD_PROVISION_PROFILE_BASE64 (or --build-provision-profile-base64)"),f.APPLE_KEY_ID||g.push("APPLE_KEY_ID (or --apple-key-id)"),f.APPLE_ISSUER_ID||g.push("APPLE_ISSUER_ID (or --apple-issuer-id)"),f.APPLE_KEY_CONTENT||g.push("APPLE_KEY_CONTENT (or --apple-key-content)"),f.APP_STORE_CONNECT_TEAM_ID||g.push("APP_STORE_CONNECT_TEAM_ID (or --apple-team-id)")):e.platform==="android"&&(f.ANDROID_KEYSTORE_FILE||g.push("ANDROID_KEYSTORE_FILE (or --android-keystore-file)"),f.KEYSTORE_KEY_ALIAS||g.push("KEYSTORE_KEY_ALIAS (or --keystore-key-alias)"),!f.KEYSTORE_KEY_PASSWORD&&!f.KEYSTORE_STORE_PASSWORD&&g.push("KEYSTORE_KEY_PASSWORD or KEYSTORE_STORE_PASSWORD (at least one password required)"),!f.PLAY_CONFIG_JSON&&!r&&y.warn("\u26A0\uFE0F PLAY_CONFIG_JSON not provided - build will succeed but cannot auto-upload to Play Store")),g.length>0){if(!r){y.error(`\u274C Missing required credentials for ${e.platform}:`),y.error("");for(let D of g)y.error(` \u2022 ${D}`);y.error(""),y.error("Provide credentials via:"),y.error(' 1. CLI arguments: npx @capgo/cli build request --platform ios --apple-id "..." --p12-password "..."'),y.error(' 2. Environment variables: export APPLE_ID="..." P12_PASSWORD="..."'),y.error(" 3. Saved credentials: npx @capgo/cli build credentials save --platform ios ..."),y.error(""),y.error("Documentation:"),y.error(` https://capgo.app/docs/cli/cloud-build/${e.platform}/`)}throw new Error(`Missing required credentials for ${e.platform}: ${g.join(", ")}`)}if(p.credentials=f,r||y.info("\u2713 Using credentials (merged from CLI args, env vars, and saved file)"),i){let D=Object.keys(f).filter(w=>f[w]);y.info(`Credentials provided: ${D.join(", ")}`)}r||y.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(p)});if(!v.ok){let D=await v.text();throw new Error(`Failed to request build: ${v.status} - ${D}`)}let E=await v.json();r||(y.success(`Build job created: ${E.job_id}`),y.info(`Status: ${E.status}`)),i&&(y.info(`Upload URL: ${E.upload_url}`),y.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,tn.join)((0,n6.tmpdir)(),`capgo-build-${Date.now()}`);await(0,en.mkdir)(A,{recursive:!0});let m=(0,tn.join)(A,`${(0,tn.basename)(o)}.zip`);try{r||y.info(`Zipping ${e.platform} project from ${o}...`),await Afe(o,m,e.platform);let w=((await(0,en.stat)(m)).size/1024/1024).toFixed(2);r||y.success(`Created zip: ${m} (${w} MB)`),r||y.info("Uploading to builder..."),i&&(y.info(`Upload endpoint: ${E.upload_url}`),y.info(`File size: ${w} MB`),y.info(`Job ID: ${E.job_id}`));let S=(0,Hn.readFileSync)(m),F=xt();r||F.start("Uploading bundle"),await new Promise((j,K)=>{let L=new sm.Upload(S,{endpoint:E.upload_url,chunkSize:5242880,metadata:{filename:(0,tn.basename)(m),filetype:"application/zip"},headers:{authorization:e.apikey},onBeforeRequest(b){if(i){y.info(`[TUS] ${b.getMethod()} ${b.getURL()}`);let T=b.getHeader("authorization");y.info(`[TUS] Authorization header present: ${!!T}`)}},onAfterResponse(b,T){if(i){y.info(`[TUS] Response status: ${T.getStatus()}`);let P=T.getHeader("upload-offset"),$=T.getHeader("tus-resumable");y.info(`[TUS] Upload-Offset: ${P}, Tus-Resumable: ${$}`)}},onError(b){if(r||(F.stop("Upload failed"),y.error(`Upload error: ${b.message}`)),b instanceof sm.DetailedError){let T=b.originalResponse?.getBody(),P=b.originalResponse?.getStatus(),$=b.originalRequest?.getURL();i&&(y.error(`[TUS] Request URL: ${$}`),y.error(`[TUS] Response status: ${P}`),y.error(`[TUS] Response body: ${T}`));let q="Unknown error";try{let M=JSON.parse(T||'{"error": "unknown error"}');q=M.status||M.error||M.message||"unknown error"}catch{q=T||b.message}K(new Error(`TUS upload failed: ${q}`))}else K(new Error(`TUS upload failed: ${b.message||b.toString()}`))},onProgress(b,T){let P=(b/T*100).toFixed(2);r||F.message(`Uploading ${P}%`)},onSuccess(){r||F.stop("Upload complete!"),i&&y.success("TUS upload completed successfully"),j()}});i&&y.info("[TUS] Starting upload..."),L.start()}),r||y.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 j=await _.text();throw new Error(`Failed to start build: ${_.status} - ${j}`)}let k=await _.json();r||(y.success("Build started!"),y.info("Streaming build logs..."));let R,I=await _fe(a,E.job_id,t,e.apikey,r,i);I?R=I:R=await Cfe(a,E.job_id,t,e.platform,e.apikey,r),r||(R==="succeeded"?y.success("Build completed successfully!"):R==="failed"?y.error("Build failed"):y.warn(`Build finished with status: ${R}`));let B=((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:B},notify:!1}).catch(),{success:R==="succeeded",jobId:E.job_id,uploadUrl:E.upload_url,status:R||k.status||E.status}}finally{await(0,en.rm)(A,{recursive:!0,force:!0})}}catch(s){let o=s instanceof Error?s.message:String(s);return r||y.error(o),{success:!1,error:o}}}async function Ofe(t,e,r,n){for await(let i of t)n||y.warn(`Removing ${i.name} created on ${iu(i.created_at)}`),await em(e,r,i.name)}function xfe(t,e,r){let n=[];for(let i of t??[]){let s=lt(i.name);Wm(s,e)&&ds(s,r)&&n.push(i)}return n}async function o6(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=Le(t,a?.config),!e.apikey)throw r||y.error("Missing API key, you need to provide an API key to delete your app"),new Error("Missing API key");if(!t)throw r||y.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||y.info("Querying all available versions in Capgo");let c=await tm(u,t),l=await H8(u,t);if(r||y.info(`Total active versions in Capgo: ${c?.length??0}`),!c?.length)throw r||y.error("No versions found, aborting cleanup"),new Error("No versions found");if(n){let f=lt(n),p=vu(f,"major");r||y.info(`Querying available versions in Capgo between ${sn(f)} and ${sn(p)}`),c=xfe(c,f,p),r||y.info(`Active versions in Capgo between ${sn(f)} and ${sn(p)}: ${c?.length??0}`)}let h=[],d=0;for(let f of c){let p=l.find(g=>g===f.id);d<i||p&&!o?(f.keep=p?"\u2705 (Linked to channel)":"\u2705",d+=1):(f.keep="\u274C",h.push(f))}if(!h.length)return r||y.warn("Nothing to be removed, aborting removal..."),{removed:0,kept:d};if(r||q8(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 y.warn("Not confirmed, aborting removal..."),new Error("Cleanup cancelled by user")}}return r||y.success("You have confirmed removal, removing versions now"),await Ofe(h,u,t,r),r||le("Done \u2705"),{removed:h.length,kept:d}}async function a6(t,e,r=!1){r||ae("Check compatibility");let n={...e,apikey:e.apikey||re()},i=await de(),s=Le(t,i?.config),o=n.channel;if(!o)throw r||y.error("Missing argument, you need to provide a channel"),new Error("Missing channel");if(!n.apikey)throw r||y.error("Missing API key, you need to provide an API key to upload your bundle"),new Error("Missing API key");if(!s)throw r||y.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:p,remoteVersion:g}=d,v=fo(d)?l:h;c.rows.push([f,p,g,v])}y.success("Compatibility"),y.success(c.toString())}return{finalCompatibility:u.finalCompatibility}}var _i=require("node:fs");var Ei=require("node:buffer"),Ut=require("node:crypto"),c6="aes-128-cbc",bi="base64",u6="hex",hl=Ut.constants.RSA_PKCS1_PADDING;function om(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)(c6,e,i);return s.setAutoPadding(!0),Ei.Buffer.concat([s.update(t),s.final()])}function l6(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)(c6,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 am(t,e){return(0,Ut.privateEncrypt)({key:e,padding:hl},Ei.Buffer.from(t,u6)).toString(u6)}function f6(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 h6(t,e){return(0,Ut.publicDecrypt)({key:e,padding:hl},Ei.Buffer.from(t,bi)).toString(bi)}function d6(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 Tfe(t,e){let r=t.key||vi,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 p6(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||y.error(h),new Error(h)}let i=await de();if(!r.key&&!(0,_i.existsSync)(vi)&&!i.config.plugins?.CapacitorUpdater?.publicKey){let h=`Public Key not found at the path ${vi} or in ${i.path}`;throw n||y.error(h),new Error(h)}let{publicKey:s,fallbackKeyPath:o}=Tfe(r,i);if(!s){let h=`Cannot find public key ${o} or as keyData option or in ${i.path}`;throw n||y.error(h),new Error(h)}let a=(0,_i.readFileSync)(t),u=l6(a,e,r.keyData??s),c=`${t}_decrypted.zip`;(0,_i.writeFileSync)(c,u),n||y.info(`Decrypted zip file at ${c}`);let l;if(r.checksum){let h=await ni(u,"sha256"),d=h6(r.checksum,r.keyData??s);if(l=h===d,!l){let f=`Checksum does not match ${h} !== ${d}`;throw n||y.error(f),new Error(f)}n||y.info("Checksum matches")}return n||le("\u2705 done"),{outputPath:c,checksumMatches:l}}catch(i){throw n||y.error(`Error decrypting zip file ${W(i)}`),i instanceof Error?i:new Error(String(i))}}async function m6(t,e,r,n=!1){n||ae("Delete bundle"),r.apikey=r.apikey||re();let i=await de();if(e=Le(e,i?.config),!r.apikey)throw n||y.error("Missing API key, you need to provide an API key to upload your bundle"),new Error("Missing API key");if(!e)throw n||y.error("Missing argument, you need to provide a appId, or be in a capacitor project"),new Error("Missing appId");if(!t)throw n||y.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||(y.info(`Deleting bundle ${e}@${t} from Capgo`),y.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||(y.success(`Bundle ${e}@${t} deleted in Capgo`),le("Done")),!0}var Ci=require("node:fs");function dl(t){console.error(W(t))}async function g6(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&&y.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"}):y.error(`Error: ${E}`)),new Error(E)}if(!u)throw n||(i?dl({error:"missing_public_key"}):y.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"}):(y.warning(`Cannot find a private key at ${c} or as a keyData option`),y.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"}):y.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}=om(l),p=au(h,d,f),g=uu(e,l),v=`${t}_encrypted.zip`;return(0,Ci.writeFileSync)(v,p),n||(i?console.log(JSON.stringify({checksum:g,filename:v,ivSessionKey:f},null,2)):(y.success(`Encoded Checksum: ${g}`),y.success(`ivSessionKey: ${f}`),y.success(`Encrypted zip saved at ${v}`),le("Done \u2705"))),{checksum:g,filename:v,ivSessionKey:f}}catch(o){throw n||(r.json?dl(o):y.error(`Error encrypting zip file ${W(o)}`)),o instanceof Error?o:new Error(String(o))}}var KU=require("node:crypto"),Eo=require("node:fs"),bm=require("node:process");var um=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 p=s();if(!p)return d;d.attributes[p.name]=p.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 Vn=class extends Error{};var Jt=class extends Vn{},pl=class extends Vn{},cm=class extends Vn{bucketName;constructor(e){super(`Invalid bucket name: ${e}`),this.bucketName=e}},zn=class extends Vn{objectName;constructor(e){super(`Invalid object name: ${e}`),this.objectName=e}},fs=class extends Vn{constructor(){super("accessKey is required")}},cu=class extends Vn{constructor(){super("secretKey is required")}},ml=class extends Vn{constructor(){super("expirySeconds cannot be less than 1 second or more than 7 days")}},Si=class extends Vn{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 y6(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 D6(t){return typeof t!="number"||isNaN(t)?!1:t>=1&&t<=65535}function w6(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!(!Ife(t)||t.length===0)}function Ife(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 _b(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 Cb(t){return po(t).slice(0,8)}function Sb(t,e){return`${Cb(e)}/${t}/s3/aws4_request`}async function lm(t){return t instanceof Uint8Array||(t=new TextEncoder().encode(t)),gl(new Uint8Array(await crypto.subtle.digest("SHA-256",t)))}var Pfe=["x-amz-server-side-encryption-customer-algorithm","x-amz-server-side-encryption-customer-key","x-amz-server-side-encryption-customer-key-MD5"],fm=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 g=a++;try{if(g==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:_b(A.headers)};return}g===1&&(u=(await Ffe({client:e,bucketName:r,objectName:n,metadata:s})).uploadId);let v={"Content-Length":String(d.length)};for(let A of Pfe){let m=s[A];m&&(v[A]=m)}let E=e.makeRequest({method:"PUT",query:{partNumber:g.toString(),uploadId:u},headers:new Headers(v),bucketName:r,objectName:n,payload:d}).then(A=>{let m=A.headers.get("etag")??"";return m&&(m=m.replace(/^"/,"").replace(/"$/,"")),c.push({part:g,etag:m}),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 Rfe({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 Ffe(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 Rfe({client:t,bucketName:e,objectName:r,uploadId:n,etags:i}){let s=`
|
|
326
326
|
<CompleteMultipartUpload xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
|
327
327
|
${i.map(h=>` <Part><PartNumber>${h.part}</PartNumber><ETag>${h.etag}</ETag></Part>`).join(`
|