@capgo/cli 8.0.0-alpha.2 → 8.0.0-alpha.3
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/bundle/partial.d.ts.map +1 -1
- package/dist/src/sdk.js +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -101,7 +101,7 @@ const config: CapacitorConfig = ${(0,e5.formatJSObject)(t)};
|
|
|
101
101
|
export default config;
|
|
102
102
|
`}});function D5(){try{return Rm.default.statSync("/.dockerenv"),!0}catch{return!1}}function y5(){try{return Rm.default.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}function Bm(){return Im===void 0&&(Im=D5()||y5()),Im}var Rm,Im,l1=tt(()=>{Rm=ge(require("node:fs"),1)});function Mi(){return jm===void 0&&(jm=b5()||Bm()),jm}var f1,jm,b5,Nm=tt(()=>{f1=ge(require("node:fs"),1);l1();b5=()=>{try{return f1.default.statSync("/run/.containerenv"),!0}catch{return!1}}});var Lm,d1,h1,p1,kn,Um=tt(()=>{Lm=ge(require("node:process"),1),d1=ge(require("node:os"),1),h1=ge(require("node:fs"),1);Nm();p1=()=>{if(Lm.default.platform!=="linux")return!1;if(d1.default.release().toLowerCase().includes("microsoft"))return!Mi();try{return h1.default.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft")?!Mi():!1}catch{return!1}},kn=Lm.default.env.__IS_WSL_TEST__?p1:p1()});var Mm,gs,v5,w5,qm,m1=tt(()=>{Mm=ge(require("node:process"),1),gs=ge(require("node:fs/promises"),1);Um();Um();v5=(()=>{let t="/mnt/",e;return async function(){if(e)return e;let r="/etc/wsl.conf",n=!1;try{await gs.default.access(r,gs.constants.F_OK),n=!0}catch{}if(!n)return t;let o=await gs.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}})(),w5=async()=>`${await v5()}c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe`,qm=async()=>kn?w5():`${Mm.default.env.SYSTEMROOT||Mm.default.env.windir||String.raw`C:\Windows`}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`});function $n(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 g1=tt(()=>{});async function Hm(){if(y1.default.platform!=="darwin")throw new Error("macOS only");let{stdout:t}=await C5("defaults",["read","com.apple.LaunchServices/com.apple.launchservices.secure","LSHandlers"]);return/LSHandlerRoleAll = "(?!-)(?<id>[^"]+?)";\s+?LSHandlerURLScheme = (?:http|https);/.exec(t)?.groups.id??"com.apple.Safari"}var D1,y1,b1,C5,v1=tt(()=>{D1=require("node:util"),y1=ge(require("node:process"),1),b1=require("node:child_process"),C5=(0,D1.promisify)(b1.execFile)});async function E1(t,{humanReadableOutput:e=!0,signal:r}={}){if(w1.default.platform!=="darwin")throw new Error("macOS only");let n=e?[]:["-ss"],o={};r&&(o.signal=r);let{stdout:i}=await E5("osascript",["-e",t,n],o);return i.trim()}var w1,C1,Vm,E5,_1=tt(()=>{w1=ge(require("node:process"),1),C1=require("node:util"),Vm=require("node:child_process"),E5=(0,C1.promisify)(Vm.execFile)});async function zm(t){return E1(`tell application "Finder" to set app_path to application file id "${t}" as string
|
|
103
103
|
tell application "System Events" to get value of property list item "CFBundleName" of property list file (app_path & ":Contents:Info.plist")`)}var x1=tt(()=>{_1()});async function Gm(t=_5){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 ml(`Cannot find Windows browser in stdout: ${JSON.stringify(e)}`);let{id:n}=r.groups,o=x5[n];if(!o)throw new ml(`Unknown browser ID: ${n}`);return o}var S1,F1,_5,x5,ml,A1=tt(()=>{S1=require("node:util"),F1=require("node:child_process"),_5=(0,S1.promisify)(F1.execFile),x5={AppXq0fevzme2pys62n3e0fbqa7peapykr8v:{name:"Edge",id:"com.microsoft.edge.old"},MSEdgeDHTML:{name:"Edge",id:"com.microsoft.edge"},MSEdgeHTM:{name:"Edge",id:"com.microsoft.edge"},"IE.HTTP":{name:"Internet Explorer",id:"com.microsoft.ie"},FirefoxURL:{name:"Firefox",id:"org.mozilla.firefox"},ChromeHTML:{name:"Chrome",id:"com.google.chrome"},BraveHTML:{name:"Brave",id:"com.brave.Browser"},BraveBHTML:{name:"Brave Beta",id:"com.brave.Browser.beta"},BraveSSHTM:{name:"Brave Nightly",id:"com.brave.Browser.nightly"}},ml=class extends Error{}});async function Wm(){if(gl.default.platform==="darwin"){let t=await Hm();return{name:await zm(t),id:t}}if(gl.default.platform==="linux"){let{stdout:t}=await S5("xdg-mime",["query","default","x-scheme-handler/http"]),e=t.trim();return{name:F5(e.replace(/.desktop$/,"").replace("-"," ")),id:e}}if(gl.default.platform==="win32")return Gm();throw new Error("Only macOS, Linux, and Windows are supported")}var O1,gl,k1,S5,F5,$1=tt(()=>{O1=require("node:util"),gl=ge(require("node:process"),1),k1=require("node:child_process");v1();x1();A1();S5=(0,O1.promisify)(k1.execFile),F5=t=>t.toLowerCase().replaceAll(/(?:^|\s|-)\S/g,e=>e.toUpperCase())});var Qm={};qr(Qm,{apps:()=>Pn,default:()=>P5,openApp:()=>$5});async function O5(){let t=await qm(),e=String.raw`(Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice").ProgId`,r=Jm.Buffer.from(e,"utf16le").toString("base64"),{stdout:n}=await A5(t,["-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand",r],{encoding:"utf8"}),o=n.trim(),i={ChromeHTML:"com.google.chrome",BraveHTML:"com.brave.Browser",MSEdgeHTM:"com.microsoft.edge",FirefoxURL:"org.mozilla.firefox"};return i[o]?{id:i[o]}:{}}function R1(t){if(typeof t=="string"||Array.isArray(t))return t;let{[T1]:e}=t;if(!e)throw new Error(`${T1} is not supported`);return e}function yl({[qi]:t},{wsl:e}){if(e&&kn)return R1(e);if(!t)throw new Error(`${qi} is not supported`);return R1(t)}var Ym,Jm,Xm,B1,j1,Zm,Dl,T5,A5,Km,P1,qi,T1,I1,Ds,k5,$5,Pn,P5,eg=tt(()=>{Ym=ge(require("node:process"),1),Jm=require("node:buffer"),Xm=ge(require("node:path"),1),B1=require("node:url"),j1=require("node:util"),Zm=ge(require("node:child_process"),1),Dl=ge(require("node:fs/promises"),1);m1();g1();$1();Nm();T5={},A5=(0,j1.promisify)(Zm.default.execFile),Km=Xm.default.dirname((0,B1.fileURLToPath)(T5.url)),P1=Xm.default.join(Km,"xdg-open"),{platform:qi,arch:T1}=Ym.default;I1=async(t,e)=>{let r;for(let n of t)try{return await e(n)}catch(o){r=o}throw r},Ds=async t=>{if(t={wait:!1,background:!1,newInstance:!1,allowNonzeroExitCode:!1,...t},Array.isArray(t.app))return I1(t.app,s=>Ds({...t,app:s}));let{name:e,arguments:r=[]}=t.app??{};if(r=[...r],Array.isArray(e))return I1(e,s=>Ds({...t,app:{name:s,arguments:r}}));if(e==="browser"||e==="browserPrivate"){let s={"com.google.chrome":"chrome","google-chrome.desktop":"chrome","com.brave.Browser":"brave","org.mozilla.firefox":"firefox","firefox.desktop":"firefox","com.microsoft.msedge":"edge","com.microsoft.edge":"edge","com.microsoft.edgemac":"edge","microsoft-edge.desktop":"edge"},u={chrome:"--incognito",brave:"--incognito",firefox:"--private-window",edge:"--inPrivate"},c=kn?await O5():await Wm();if(c.id in s){let l=s[c.id];return e==="browserPrivate"&&r.push(u[l]),Ds({...t,app:{name:Pn[l],arguments:r}})}throw new Error(`${c.name} is not supported as a default browser`)}let n,o=[],i={};if(qi==="darwin")n="open",t.wait&&o.push("--wait-apps"),t.background&&o.push("--background"),t.newInstance&&o.push("--new"),e&&o.push("-a",e);else if(qi==="win32"||kn&&!Mi()&&!e){n=await qm(),o.push("-NoProfile","-NonInteractive","-ExecutionPolicy","Bypass","-EncodedCommand"),kn||(i.windowsVerbatimArguments=!0);let s=["Start"];t.wait&&s.push("-Wait"),e?(s.push(`"\`"${e}\`""`),t.target&&r.push(t.target)):t.target&&s.push(`"${t.target}"`),r.length>0&&(r=r.map(u=>`"\`"${u}\`""`),s.push("-ArgumentList",r.join(","))),t.target=Jm.Buffer.from(s.join(" "),"utf16le").toString("base64")}else{if(e)n=e;else{let s=!Km||Km==="/",u=!1;try{await Dl.default.access(P1,Dl.constants.X_OK),u=!0}catch{}n=Ym.default.versions.electron??(qi==="android"||s||!u)?"xdg-open":P1}r.length>0&&o.push(...r),t.wait||(i.stdio="ignore",i.detached=!0)}qi==="darwin"&&r.length>0&&o.push("--args",...r),t.target&&o.push(t.target);let a=Zm.default.spawn(n,o,i);return t.wait?new Promise((s,u)=>{a.once("error",u),a.once("close",c=>{if(!t.allowNonzeroExitCode&&c>0){u(new Error(`Exited with code ${c}`));return}s(a)})}):(a.unref(),a)},k5=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a `target`");return Ds({...e,target:t})},$5=(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 Ds({...e,app:{name:t,arguments:r}})};Pn={};$n(Pn,"chrome",()=>yl({darwin:"google chrome",win32:"chrome",linux:["google-chrome","google-chrome-stable","chromium"]},{wsl:{ia32:"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe",x64:["/mnt/c/Program Files/Google/Chrome/Application/chrome.exe","/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe"]}}));$n(Pn,"brave",()=>yl({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"]}}));$n(Pn,"firefox",()=>yl({darwin:"firefox",win32:String.raw`C:\Program Files\Mozilla Firefox\firefox.exe`,linux:"firefox"},{wsl:"/mnt/c/Program Files/Mozilla Firefox/firefox.exe"}));$n(Pn,"edge",()=>yl({darwin:"microsoft edge",win32:"msedge",linux:["microsoft-edge","microsoft-edge-dev"]},{wsl:"/mnt/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe"}));$n(Pn,"browser",()=>"browser");$n(Pn,"browserPrivate",()=>"browserPrivate");P5=k5});var Ml=x(fr=>{"use strict";fr.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;fr.find=(t,e)=>t.nodes.find(r=>r.type===e);fr.exceedsLimit=(t,e,r=1,n)=>n===!1||!fr.isInteger(t)||!fr.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=n;fr.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)};fr.encloseBrace=t=>t.type!=="brace"?!1:t.commas>>0+t.ranges>>0===0?(t.invalid=!0,!0):!1;fr.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;fr.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;fr.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);fr.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 ql=x((kY,J2)=>{"use strict";var Y2=Ml();J2.exports=(t,e={})=>{let r=(n,o={})=>{let i=e.escapeInvalid&&Y2.isInvalidBrace(o),a=n.invalid===!0&&e.escapeInvalid===!0,s="";if(n.value)return(i||a)&&Y2.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 Z2=x(($Y,X2)=>{"use strict";X2.exports=function(t){return typeof t=="number"?t-t===0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var sS=x((PY,aS)=>{"use strict";var Q2=Z2(),Po=(t,e,r)=>{if(Q2(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(Q2(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(Po.cache.hasOwnProperty(u))return Po.cache[u].result;let c=Math.min(t,e),l=Math.max(t,e);if(Math.abs(c-l)===1){let b=t+"|"+e;return n.capture?`(${b})`:n.wrap===!1?b:`(?:${b})`}let f=iS(t)||iS(e),d={min:t,max:e,a:c,b:l},h=[],m=[];if(f&&(d.isPadded=f,d.maxLen=String(d.max).length),c<0){let b=l<0?Math.abs(l):1;m=eS(b,Math.abs(c),d,n),c=d.a=0}return l>=0&&(h=eS(c,l,d,n)),d.negatives=m,d.positives=h,d.result=vU(m,h,n),n.capture===!0?d.result=`(${d.result})`:n.wrap!==!1&&h.length+m.length>1&&(d.result=`(?:${d.result})`),Po.cache[u]=d,d.result};function vU(t,e,r){let n=Cg(t,e,"-",!1,r)||[],o=Cg(e,t,"",!1,r)||[],i=Cg(t,e,"-?",!0,r)||[];return n.concat(i).concat(o).join("|")}function wU(t,e){let r=1,n=1,o=rS(t,r),i=new Set([e]);for(;t<=o&&o<=e;)i.add(o),r+=1,o=rS(t,r);for(o=nS(e+1,n)-1;t<o&&o<=e;)i.add(o),n+=1,o=nS(e+1,n)-1;return i=[...i],i.sort(_U),i}function CU(t,e,r){if(t===e)return{pattern:t,count:[],digits:0};let n=EU(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+=xU(u,c,r):a++}return a&&(i+=r.shorthand===!0?"\\d":"[0-9]"),{pattern:i,count:[a],digits:o}}function eS(t,e,r,n){let o=wU(t,e),i=[],a=t,s;for(let u=0;u<o.length;u++){let c=o[u],l=CU(String(a),String(c),n),f="";if(!r.isPadded&&s&&s.pattern===l.pattern){s.count.length>1&&s.count.pop(),s.count.push(l.count[0]),s.string=s.pattern+oS(s.count),a=c+1;continue}r.isPadded&&(f=SU(c,r,n)),l.string=f+l.pattern+oS(l.count),i.push(l),a=c+1,s=l}return i}function Cg(t,e,r,n,o){let i=[];for(let a of t){let{string:s}=a;!n&&!tS(e,"string",s)&&i.push(r+s),n&&tS(e,"string",s)&&i.push(r+s)}return i}function EU(t,e){let r=[];for(let n=0;n<t.length;n++)r.push([t[n],e[n]]);return r}function _U(t,e){return t>e?1:e>t?-1:0}function tS(t,e,r){return t.some(n=>n[e]===r)}function rS(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function nS(t,e){return t-t%Math.pow(10,e)}function oS(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function xU(t,e,r){return`[${t}${e-t===1?"":"-"}${e}]`}function iS(t){return/^-?(0+)\d/.test(t)}function SU(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}}`}}Po.cache={};Po.clearCache=()=>Po.cache={};aS.exports=Po});var xg=x((TY,hS)=>{"use strict";var FU=require("util"),cS=sS(),uS=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),AU=t=>e=>t===!0?Number(e):String(e),Eg=t=>typeof t=="number"||typeof t=="string"&&t!=="",Fs=t=>Number.isInteger(+t),_g=t=>{let e=`${t}`,r=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++r]==="0";);return r>0},OU=(t,e,r)=>typeof t=="string"||typeof e=="string"?!0:r.stringify===!0,kU=(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},Vl=(t,e)=>{let r=t[0]==="-"?"-":"";for(r&&(t=t.slice(1),e--);t.length<e;)t="0"+t;return r?"-"+t:t},$U=(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=>Vl(String(s),r)).join("|")),t.negatives.length&&(i=`-(${n}${t.negatives.map(s=>Vl(String(s),r)).join("|")})`),o&&i?a=`${o}|${i}`:a=o||i,e.wrap?`(${n}${a})`:a},lS=(t,e,r,n)=>{if(r)return cS(t,e,{wrap:!1,...n});let o=String.fromCharCode(t);if(t===e)return o;let i=String.fromCharCode(e);return`[${o}-${i}]`},fS=(t,e,r)=>{if(Array.isArray(t)){let n=r.wrap===!0,o=r.capture?"":"?:";return n?`(${o}${t.join("|")})`:t.join("|")}return cS(t,e,r)},pS=(...t)=>new RangeError("Invalid range arguments: "+FU.inspect(...t)),dS=(t,e,r)=>{if(r.strictRanges===!0)throw pS([t,e]);return[]},PU=(t,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${t}" to be a number`);return[]},TU=(t,e,r=1,n={})=>{let o=Number(t),i=Number(e);if(!Number.isInteger(o)||!Number.isInteger(i)){if(n.strictRanges===!0)throw pS([t,e]);return[]}o===0&&(o=0),i===0&&(i=0);let a=o>i,s=String(t),u=String(e),c=String(r);r=Math.max(Math.abs(r),1);let l=_g(s)||_g(u)||_g(c),f=l?Math.max(s.length,u.length,c.length):0,d=l===!1&&OU(t,e,n)===!1,h=n.transform||AU(d);if(n.toRegex&&r===1)return lS(Vl(t,f),Vl(e,f),!0,n);let m={negatives:[],positives:[]},b=E=>m[E<0?"negatives":"positives"].push(Math.abs(E)),D=[],C=0;for(;a?o>=i:o<=i;)n.toRegex===!0&&r>1?b(o):D.push(kU(h(o,C),f,d)),o=a?o-r:o+r,C++;return n.toRegex===!0?r>1?$U(m,n,f):fS(D,null,{wrap:!1,...n}):D},IU=(t,e,r=1,n={})=>{if(!Fs(t)&&t.length>1||!Fs(e)&&e.length>1)return dS(t,e,n);let o=n.transform||(d=>String.fromCharCode(d)),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 lS(u,c,!1,n);let l=[],f=0;for(;s?i>=a:i<=a;)l.push(o(i,f)),i=s?i-r:i+r,f++;return n.toRegex===!0?fS(l,null,{wrap:!1,options:n}):l},Hl=(t,e,r,n={})=>{if(e==null&&Eg(t))return[t];if(!Eg(t)||!Eg(e))return dS(t,e,n);if(typeof r=="function")return Hl(t,e,1,{transform:r});if(uS(r))return Hl(t,e,0,r);let o={...n};return o.capture===!0&&(o.wrap=!0),r=r||o.step||1,Fs(r)?Fs(t)&&Fs(e)?TU(t,e,r,o):IU(t,e,Math.max(Math.abs(r),1),o):r!=null&&!uS(r)?PU(r,o):Hl(t,e,1,r)};hS.exports=Hl});var DS=x((IY,gS)=>{"use strict";var RU=xg(),mS=Ml(),BU=(t,e={})=>{let r=(n,o={})=>{let i=mS.isInvalidBrace(o),a=n.invalid===!0&&e.escapeInvalid===!0,s=i===!0||a===!0,u=e.escapeInvalid===!0?"\\":"",c="";if(n.isOpen===!0)return u+n.value;if(n.isClose===!0)return console.log("node.isClose",u,n.value),u+n.value;if(n.type==="open")return s?u+n.value:"(";if(n.type==="close")return s?u+n.value:")";if(n.type==="comma")return n.prev.type==="comma"?"":s?n.value:"|";if(n.value)return n.value;if(n.nodes&&n.ranges>0){let l=mS.reduce(n.nodes),f=RU(...l,{...e,wrap:!1,toRegex:!0,strictZeros:!0});if(f.length!==0)return l.length>1&&f.length>1?`(${f})`:f}if(n.nodes)for(let l of n.nodes)c+=r(l,n);return c};return r(t)};gS.exports=BU});var vS=x((RY,bS)=>{"use strict";var jU=xg(),yS=ql(),ra=Ml(),To=(t="",e="",r=!1)=>{let n=[];if(t=[].concat(t),e=[].concat(e),!e.length)return t;if(!t.length)return r?ra.flatten(e).map(o=>`{${o}}`):e;for(let o of t)if(Array.isArray(o))for(let i of o)n.push(To(i,e,r));else for(let i of e)r===!0&&typeof i=="string"&&(i=`{${i}}`),n.push(Array.isArray(i)?To(o,i,r):o+i);return ra.flatten(n)},NU=(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(To(s.pop(),yS(o,e)));return}if(o.type==="brace"&&o.invalid!==!0&&o.nodes.length===2){s.push(To(s.pop(),["{}"]));return}if(o.nodes&&o.ranges>0){let f=ra.reduce(o.nodes);if(ra.exceedsLimit(...f,e.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let d=jU(...f,e);d.length===0&&(d=yS(o,e)),s.push(To(s.pop(),d)),o.nodes=[];return}let u=ra.encloseBrace(o),c=o.queue,l=o;for(;l.type!=="brace"&&l.type!=="root"&&l.parent;)l=l.parent,c=l.queue;for(let f=0;f<o.nodes.length;f++){let d=o.nodes[f];if(d.type==="comma"&&o.type==="brace"){f===1&&c.push(""),c.push("");continue}if(d.type==="close"){s.push(To(s.pop(),c,u));continue}if(d.value&&d.type!=="open"){c.push(To(c.pop(),d.value));continue}d.nodes&&n(d,o)}return c};return ra.flatten(n(t))};bS.exports=NU});var CS=x((BY,wS)=>{"use strict";wS.exports={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:`
|
|
104
|
-
`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var FS=x((jY,SS)=>{"use strict";var LU=ql(),{MAX_LENGTH:ES,CHAR_BACKSLASH:Sg,CHAR_BACKTICK:UU,CHAR_COMMA:MU,CHAR_DOT:qU,CHAR_LEFT_PARENTHESES:HU,CHAR_RIGHT_PARENTHESES:VU,CHAR_LEFT_CURLY_BRACE:zU,CHAR_RIGHT_CURLY_BRACE:GU,CHAR_LEFT_SQUARE_BRACKET:_S,CHAR_RIGHT_SQUARE_BRACKET:xS,CHAR_DOUBLE_QUOTE:WU,CHAR_SINGLE_QUOTE:KU,CHAR_NO_BREAK_SPACE:YU,CHAR_ZERO_WIDTH_NOBREAK_SPACE:JU}=CS(),XU=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},n=typeof r.maxLength=="number"?Math.min(ES,r.maxLength):ES;if(t.length>n)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${n})`);let o={type:"root",input:t,nodes:[]},i=[o],a=o,s=o,u=0,c=t.length,l=0,f=0,d,h=()=>t[l++],m=b=>{if(b.type==="text"&&s.type==="dot"&&(s.type="text"),s&&s.type==="text"&&b.type==="text"){s.value+=b.value;return}return a.nodes.push(b),b.parent=a,b.prev=s,s=b,b};for(m({type:"bos"});l<c;)if(a=i[i.length-1],d=h(),!(d===JU||d===YU)){if(d===Sg){m({type:"text",value:(e.keepEscaping?d:"")+h()});continue}if(d===xS){m({type:"text",value:"\\"+d});continue}if(d===_S){u++;let b;for(;l<c&&(b=h());){if(d+=b,b===_S){u++;continue}if(b===Sg){d+=h();continue}if(b===xS&&(u--,u===0))break}m({type:"text",value:d});continue}if(d===HU){a=m({type:"paren",nodes:[]}),i.push(a),m({type:"text",value:d});continue}if(d===VU){if(a.type!=="paren"){m({type:"text",value:d});continue}a=i.pop(),m({type:"text",value:d}),a=i[i.length-1];continue}if(d===WU||d===KU||d===UU){let b=d,D;for(e.keepQuotes!==!0&&(d="");l<c&&(D=h());){if(D===Sg){d+=D+h();continue}if(D===b){e.keepQuotes===!0&&(d+=D);break}d+=D}m({type:"text",value:d});continue}if(d===zU){f++;let D={type:"brace",open:!0,close:!1,dollar:s.value&&s.value.slice(-1)==="$"||a.dollar===!0,depth:f,commas:0,ranges:0,nodes:[]};a=m(D),i.push(a),m({type:"open",value:d});continue}if(d===GU){if(a.type!=="brace"){m({type:"text",value:d});continue}let b="close";a=i.pop(),a.close=!0,m({type:b,value:d}),f--,a=i[i.length-1];continue}if(d===MU&&f>0){if(a.ranges>0){a.ranges=0;let b=a.nodes.shift();a.nodes=[b,{type:"text",value:LU(a)}]}m({type:"comma",value:d}),a.commas++;continue}if(d===qU&&f>0&&a.commas===0){let b=a.nodes;if(f===0||b.length===0){m({type:"text",value:d});continue}if(s.type==="dot"){if(a.range=[],s.value+=d,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"){b.pop();let D=b[b.length-1];D.value+=s.value+d,s=D,a.ranges--;continue}m({type:"dot",value:d});continue}m({type:"text",value:d})}do if(a=i.pop(),a.type!=="root"){a.nodes.forEach(C=>{C.nodes||(C.type==="open"&&(C.isOpen=!0),C.type==="close"&&(C.isClose=!0),C.nodes||(C.type="text"),C.invalid=!0)});let b=i[i.length-1],D=b.nodes.indexOf(a);b.nodes.splice(D,1,...a.nodes)}while(i.length>0);return m({type:"eos"}),o};SS.exports=XU});var kS=x((NY,OS)=>{"use strict";var AS=ql(),ZU=DS(),QU=vS(),eM=FS(),Kt=(t,e={})=>{let r=[];if(Array.isArray(t))for(let n of t){let o=Kt.create(n,e);Array.isArray(o)?r.push(...o):r.push(o)}else r=[].concat(Kt.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};Kt.parse=(t,e={})=>eM(t,e);Kt.stringify=(t,e={})=>AS(typeof t=="string"?Kt.parse(t,e):t,e);Kt.compile=(t,e={})=>(typeof t=="string"&&(t=Kt.parse(t,e)),ZU(t,e));Kt.expand=(t,e={})=>{typeof t=="string"&&(t=Kt.parse(t,e));let r=QU(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};Kt.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?Kt.compile(t,e):Kt.expand(t,e);OS.exports=Kt});var As=x((LY,RS)=>{"use strict";var tM=require("path"),Nr="\\\\/",$S=`[^${Nr}]`,sn="\\.",rM="\\+",nM="\\?",zl="\\/",oM="(?=.)",PS="[^/]",Fg=`(?:${zl}|$)`,TS=`(?:^|${zl})`,Ag=`${sn}{1,2}${Fg}`,iM=`(?!${sn})`,aM=`(?!${TS}${Ag})`,sM=`(?!${sn}{0,1}${Fg})`,uM=`(?!${Ag})`,cM=`[^.${zl}]`,lM=`${PS}*?`,IS={DOT_LITERAL:sn,PLUS_LITERAL:rM,QMARK_LITERAL:nM,SLASH_LITERAL:zl,ONE_CHAR:oM,QMARK:PS,END_ANCHOR:Fg,DOTS_SLASH:Ag,NO_DOT:iM,NO_DOTS:aM,NO_DOT_SLASH:sM,NO_DOTS_SLASH:uM,QMARK_NO_DOT:cM,STAR:lM,START_ANCHOR:TS},fM={...IS,SLASH_LITERAL:`[${Nr}]`,QMARK:$S,STAR:`${$S}*?`,DOTS_SLASH:`${sn}{1,2}(?:[${Nr}]|$)`,NO_DOT:`(?!${sn})`,NO_DOTS:`(?!(?:^|[${Nr}])${sn}{1,2}(?:[${Nr}]|$))`,NO_DOT_SLASH:`(?!${sn}{0,1}(?:[${Nr}]|$))`,NO_DOTS_SLASH:`(?!${sn}{1,2}(?:[${Nr}]|$))`,QMARK_NO_DOT:`[^.${Nr}]`,START_ANCHOR:`(?:^|[${Nr}])`,END_ANCHOR:`(?:[${Nr}]|$)`},pM={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"};RS.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:pM,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:tM.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?fM:IS}}});var Os=x(Ht=>{"use strict";var dM=require("path"),hM=process.platform==="win32",{REGEX_BACKSLASH:mM,REGEX_REMOVE_BACKSLASH:gM,REGEX_SPECIAL_CHARS:DM,REGEX_SPECIAL_CHARS_GLOBAL:yM}=As();Ht.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);Ht.hasRegexChars=t=>DM.test(t);Ht.isRegexChar=t=>t.length===1&&Ht.hasRegexChars(t);Ht.escapeRegex=t=>t.replace(yM,"\\$1");Ht.toPosixSlashes=t=>t.replace(mM,"/");Ht.removeBackslashes=t=>t.replace(gM,e=>e==="\\"?"":e);Ht.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};Ht.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:hM===!0||dM.sep==="\\";Ht.escapeLast=(t,e,r)=>{let n=t.lastIndexOf(e,r);return n===-1?t:t[n-1]==="\\"?Ht.escapeLast(t,e,n-1):`${t.slice(0,n)}\\${t.slice(n)}`};Ht.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};Ht.wrapOutput=(t,e={},r={})=>{let n=r.contains?"":"^",o=r.contains?"":"$",i=`${n}(?:${t})${o}`;return e.negated===!0&&(i=`(?:^(?!${i}).*$)`),i}});var HS=x((MY,qS)=>{"use strict";var BS=Os(),{CHAR_ASTERISK:Og,CHAR_AT:bM,CHAR_BACKWARD_SLASH:ks,CHAR_COMMA:vM,CHAR_DOT:kg,CHAR_EXCLAMATION_MARK:$g,CHAR_FORWARD_SLASH:MS,CHAR_LEFT_CURLY_BRACE:Pg,CHAR_LEFT_PARENTHESES:Tg,CHAR_LEFT_SQUARE_BRACKET:wM,CHAR_PLUS:CM,CHAR_QUESTION_MARK:jS,CHAR_RIGHT_CURLY_BRACE:EM,CHAR_RIGHT_PARENTHESES:NS,CHAR_RIGHT_SQUARE_BRACKET:_M}=As(),LS=t=>t===MS||t===ks,US=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?1/0:1)},xM=(t,e)=>{let r=e||{},n=t.length-1,o=r.parts===!0||r.scanToEnd===!0,i=[],a=[],s=[],u=t,c=-1,l=0,f=0,d=!1,h=!1,m=!1,b=!1,D=!1,C=!1,E=!1,g=!1,_=!1,S=!1,I=0,O,B,R={value:"",depth:0,isGlob:!1},N=()=>c>=n,A=()=>u.charCodeAt(c+1),L=()=>(O=B,u.charCodeAt(++c));for(;c<n;){B=L();let v;if(B===ks){E=R.backslashes=!0,B=L(),B===Pg&&(C=!0);continue}if(C===!0||B===Pg){for(I++;N()!==!0&&(B=L());){if(B===ks){E=R.backslashes=!0,L();continue}if(B===Pg){I++;continue}if(C!==!0&&B===kg&&(B=L())===kg){if(d=R.isBrace=!0,m=R.isGlob=!0,S=!0,o===!0)continue;break}if(C!==!0&&B===vM){if(d=R.isBrace=!0,m=R.isGlob=!0,S=!0,o===!0)continue;break}if(B===EM&&(I--,I===0)){C=!1,d=R.isBrace=!0,S=!0;break}}if(o===!0)continue;break}if(B===MS){if(i.push(c),a.push(R),R={value:"",depth:0,isGlob:!1},S===!0)continue;if(O===kg&&c===l+1){l+=2;continue}f=c+1;continue}if(r.noext!==!0&&(B===CM||B===bM||B===Og||B===jS||B===$g)===!0&&A()===Tg){if(m=R.isGlob=!0,b=R.isExtglob=!0,S=!0,B===$g&&c===l&&(_=!0),o===!0){for(;N()!==!0&&(B=L());){if(B===ks){E=R.backslashes=!0,B=L();continue}if(B===NS){m=R.isGlob=!0,S=!0;break}}continue}break}if(B===Og){if(O===Og&&(D=R.isGlobstar=!0),m=R.isGlob=!0,S=!0,o===!0)continue;break}if(B===jS){if(m=R.isGlob=!0,S=!0,o===!0)continue;break}if(B===wM){for(;N()!==!0&&(v=L());){if(v===ks){E=R.backslashes=!0,L();continue}if(v===_M){h=R.isBracket=!0,m=R.isGlob=!0,S=!0;break}}if(o===!0)continue;break}if(r.nonegate!==!0&&B===$g&&c===l){g=R.negated=!0,l++;continue}if(r.noparen!==!0&&B===Tg){if(m=R.isGlob=!0,o===!0){for(;N()!==!0&&(B=L());){if(B===Tg){E=R.backslashes=!0,B=L();continue}if(B===NS){S=!0;break}}continue}break}if(m===!0){if(S=!0,o===!0)continue;break}}r.noext===!0&&(b=!1,m=!1);let q=u,Q="",$="";l>0&&(Q=u.slice(0,l),u=u.slice(l),f-=l),q&&m===!0&&f>0?(q=u.slice(0,f),$=u.slice(f)):m===!0?(q="",$=u):q=u,q&&q!==""&&q!=="/"&&q!==u&&LS(q.charCodeAt(q.length-1))&&(q=q.slice(0,-1)),r.unescape===!0&&($&&($=BS.removeBackslashes($)),q&&E===!0&&(q=BS.removeBackslashes(q)));let y={prefix:Q,input:t,start:l,base:q,glob:$,isBrace:d,isBracket:h,isGlob:m,isExtglob:b,isGlobstar:D,negated:g,negatedExtglob:_};if(r.tokens===!0&&(y.maxDepth=0,LS(B)||a.push(R),y.tokens=a),r.parts===!0||r.tokens===!0){let v;for(let w=0;w<i.length;w++){let F=v?v+1:l,T=i[w],k=t.slice(F,T);r.tokens&&(w===0&&l!==0?(a[w].isPrefix=!0,a[w].value=Q):a[w].value=k,US(a[w]),y.maxDepth+=a[w].depth),(w!==0||k!=="")&&s.push(k),v=T}if(v&&v+1<t.length){let w=t.slice(v+1);s.push(w),r.tokens&&(a[a.length-1].value=w,US(a[a.length-1]),y.maxDepth+=a[a.length-1].depth)}y.slashes=i,y.parts=s}return y};qS.exports=xM});var GS=x((qY,zS)=>{"use strict";var Gl=As(),Yt=Os(),{MAX_LENGTH:Wl,POSIX_REGEX_SOURCE:SM,REGEX_NON_SPECIAL_CHARS:FM,REGEX_SPECIAL_CHARS_BACKREF:AM,REPLACEMENTS:VS}=Gl,OM=(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=>Yt.escapeRegex(o)).join("..")}return r},na=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,Ig=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=VS[t]||t;let r={...e},n=typeof r.maxLength=="number"?Math.min(Wl,r.maxLength):Wl,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=Yt.isWindows(e),c=Gl.globChars(u),l=Gl.extglobChars(c),{DOT_LITERAL:f,PLUS_LITERAL:d,SLASH_LITERAL:h,ONE_CHAR:m,DOTS_SLASH:b,NO_DOT:D,NO_DOT_SLASH:C,NO_DOTS_SLASH:E,QMARK:g,QMARK_NO_DOT:_,STAR:S,START_ANCHOR:I}=c,O=z=>`(${s}(?:(?!${I}${z.dot?b:f}).)*?)`,B=r.dot?"":D,R=r.dot?g:_,N=r.bash===!0?O(r):S;r.capture&&(N=`(${N})`),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=Yt.removePrefix(t,A),o=t.length;let L=[],q=[],Q=[],$=i,y,v=()=>A.index===o-1,w=A.peek=(z=1)=>t[A.index+z],F=A.advance=()=>t[++A.index]||"",T=()=>t.slice(A.index+1),k=(z="",Ee=0)=>{A.consumed+=z,A.index+=Ee},M=z=>{A.output+=z.output!=null?z.output:z.value,k(z.value)},P=()=>{let z=1;for(;w()==="!"&&(w(2)!=="("||w(3)==="?");)F(),A.start++,z++;return z%2===0?!1:(A.negated=!0,A.start++,!0)},j=z=>{A[z]++,Q.push(z)},ee=z=>{A[z]--,Q.pop()},V=z=>{if($.type==="globstar"){let Ee=A.braces>0&&(z.type==="comma"||z.type==="brace"),H=z.extglob===!0||L.length&&(z.type==="pipe"||z.type==="paren");z.type!=="slash"&&z.type!=="paren"&&!Ee&&!H&&(A.output=A.output.slice(0,-$.output.length),$.type="star",$.value="*",$.output=N,A.output+=$.output)}if(L.length&&z.type!=="paren"&&(L[L.length-1].inner+=z.value),(z.value||z.output)&&M(z),$&&$.type==="text"&&z.type==="text"){$.value+=z.value,$.output=($.output||"")+z.value;return}z.prev=$,a.push(z),$=z},se=(z,Ee)=>{let H={...l[Ee],conditions:1,inner:""};H.prev=$,H.parens=A.parens,H.output=A.output;let ue=(r.capture?"(":"")+H.open;j("parens"),V({type:z,value:Ee,output:A.output?"":m}),V({type:"paren",extglob:!0,value:F(),output:ue}),L.push(H)},hr=z=>{let Ee=z.close+(r.capture?")":""),H;if(z.type==="negate"){let ue=N;if(z.inner&&z.inner.length>1&&z.inner.includes("/")&&(ue=O(r)),(ue!==N||v()||/^\)+$/.test(T()))&&(Ee=z.close=`)$))${ue}`),z.inner.includes("*")&&(H=T())&&/^\.[^\\/.]+$/.test(H)){let Le=Ig(H,{...e,fastpaths:!1}).output;Ee=z.close=`)${Le})${ue})`}z.prev.type==="bos"&&(A.negatedExtglob=!0)}V({type:"paren",extglob:!0,value:y,output:Ee}),ee("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let z=!1,Ee=t.replace(AM,(H,ue,Le,Et,et,rf)=>Et==="\\"?(z=!0,H):Et==="?"?ue?ue+Et+(et?g.repeat(et.length):""):rf===0?R+(et?g.repeat(et.length):""):g.repeat(Le.length):Et==="."?f.repeat(Le.length):Et==="*"?ue?ue+Et+(et?N:""):N:ue?H:`\\${H}`);return z===!0&&(r.unescape===!0?Ee=Ee.replace(/\\/g,""):Ee=Ee.replace(/\\+/g,H=>H.length%2===0?"\\\\":H?"\\":"")),Ee===t&&r.contains===!0?(A.output=t,A):(A.output=Yt.wrapOutput(Ee,A,e),A)}for(;!v();){if(y=F(),y==="\0")continue;if(y==="\\"){let H=w();if(H==="/"&&r.bash!==!0||H==="."||H===";")continue;if(!H){y+="\\",V({type:"text",value:y});continue}let ue=/^\\+/.exec(T()),Le=0;if(ue&&ue[0].length>2&&(Le=ue[0].length,A.index+=Le,Le%2!==0&&(y+="\\")),r.unescape===!0?y=F():y+=F(),A.brackets===0){V({type:"text",value:y});continue}}if(A.brackets>0&&(y!=="]"||$.value==="["||$.value==="[^")){if(r.posix!==!1&&y===":"){let H=$.value.slice(1);if(H.includes("[")&&($.posix=!0,H.includes(":"))){let ue=$.value.lastIndexOf("["),Le=$.value.slice(0,ue),Et=$.value.slice(ue+2),et=SM[Et];if(et){$.value=Le+et,A.backtrack=!0,F(),!i.output&&a.indexOf($)===1&&(i.output=m);continue}}}(y==="["&&w()!==":"||y==="-"&&w()==="]")&&(y=`\\${y}`),y==="]"&&($.value==="["||$.value==="[^")&&(y=`\\${y}`),r.posix===!0&&y==="!"&&$.value==="["&&(y="^"),$.value+=y,M({value:y});continue}if(A.quotes===1&&y!=='"'){y=Yt.escapeRegex(y),$.value+=y,M({value:y});continue}if(y==='"'){A.quotes=A.quotes===1?0:1,r.keepQuotes===!0&&V({type:"text",value:y});continue}if(y==="("){j("parens"),V({type:"paren",value:y});continue}if(y===")"){if(A.parens===0&&r.strictBrackets===!0)throw new SyntaxError(na("opening","("));let H=L[L.length-1];if(H&&A.parens===H.parens+1){hr(L.pop());continue}V({type:"paren",value:y,output:A.parens?")":"\\)"}),ee("parens");continue}if(y==="["){if(r.nobracket===!0||!T().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(na("closing","]"));y=`\\${y}`}else j("brackets");V({type:"bracket",value:y});continue}if(y==="]"){if(r.nobracket===!0||$&&$.type==="bracket"&&$.value.length===1){V({type:"text",value:y,output:`\\${y}`});continue}if(A.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(na("opening","["));V({type:"text",value:y,output:`\\${y}`});continue}ee("brackets");let H=$.value.slice(1);if($.posix!==!0&&H[0]==="^"&&!H.includes("/")&&(y=`/${y}`),$.value+=y,M({value:y}),r.literalBrackets===!1||Yt.hasRegexChars(H))continue;let ue=Yt.escapeRegex($.value);if(A.output=A.output.slice(0,-$.value.length),r.literalBrackets===!0){A.output+=ue,$.value=ue;continue}$.value=`(${s}${ue}|${$.value})`,A.output+=$.value;continue}if(y==="{"&&r.nobrace!==!0){j("braces");let H={type:"brace",value:y,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};q.push(H),V(H);continue}if(y==="}"){let H=q[q.length-1];if(r.nobrace===!0||!H){V({type:"text",value:y,output:y});continue}let ue=")";if(H.dots===!0){let Le=a.slice(),Et=[];for(let et=Le.length-1;et>=0&&(a.pop(),Le[et].type!=="brace");et--)Le[et].type!=="dots"&&Et.unshift(Le[et].value);ue=OM(Et,r),A.backtrack=!0}if(H.comma!==!0&&H.dots!==!0){let Le=A.output.slice(0,H.outputIndex),Et=A.tokens.slice(H.tokensIndex);H.value=H.output="\\{",y=ue="\\}",A.output=Le;for(let et of Et)A.output+=et.output||et.value}V({type:"brace",value:y,output:ue}),ee("braces"),q.pop();continue}if(y==="|"){L.length>0&&L[L.length-1].conditions++,V({type:"text",value:y});continue}if(y===","){let H=y,ue=q[q.length-1];ue&&Q[Q.length-1]==="braces"&&(ue.comma=!0,H="|"),V({type:"comma",value:y,output:H});continue}if(y==="/"){if($.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",a.pop(),$=i;continue}V({type:"slash",value:y,output:h});continue}if(y==="."){if(A.braces>0&&$.type==="dot"){$.value==="."&&($.output=f);let H=q[q.length-1];$.type="dots",$.output+=y,$.value+=y,H.dots=!0;continue}if(A.braces+A.parens===0&&$.type!=="bos"&&$.type!=="slash"){V({type:"text",value:y,output:f});continue}V({type:"dot",value:y,output:f});continue}if(y==="?"){if(!($&&$.value==="(")&&r.noextglob!==!0&&w()==="("&&w(2)!=="?"){se("qmark",y);continue}if($&&$.type==="paren"){let ue=w(),Le=y;if(ue==="<"&&!Yt.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");($.value==="("&&!/[!=<:]/.test(ue)||ue==="<"&&!/<([!=]|\w+>)/.test(T()))&&(Le=`\\${y}`),V({type:"text",value:y,output:Le});continue}if(r.dot!==!0&&($.type==="slash"||$.type==="bos")){V({type:"qmark",value:y,output:_});continue}V({type:"qmark",value:y,output:g});continue}if(y==="!"){if(r.noextglob!==!0&&w()==="("&&(w(2)!=="?"||!/[!=<:]/.test(w(3)))){se("negate",y);continue}if(r.nonegate!==!0&&A.index===0){P();continue}}if(y==="+"){if(r.noextglob!==!0&&w()==="("&&w(2)!=="?"){se("plus",y);continue}if($&&$.value==="("||r.regex===!1){V({type:"plus",value:y,output:d});continue}if($&&($.type==="bracket"||$.type==="paren"||$.type==="brace")||A.parens>0){V({type:"plus",value:y});continue}V({type:"plus",value:d});continue}if(y==="@"){if(r.noextglob!==!0&&w()==="("&&w(2)!=="?"){V({type:"at",extglob:!0,value:y,output:""});continue}V({type:"text",value:y});continue}if(y!=="*"){(y==="$"||y==="^")&&(y=`\\${y}`);let H=FM.exec(T());H&&(y+=H[0],A.index+=H[0].length),V({type:"text",value:y});continue}if($&&($.type==="globstar"||$.star===!0)){$.type="star",$.star=!0,$.value+=y,$.output=N,A.backtrack=!0,A.globstar=!0,k(y);continue}let z=T();if(r.noextglob!==!0&&/^\([^?]/.test(z)){se("star",y);continue}if($.type==="star"){if(r.noglobstar===!0){k(y);continue}let H=$.prev,ue=H.prev,Le=H.type==="slash"||H.type==="bos",Et=ue&&(ue.type==="star"||ue.type==="globstar");if(r.bash===!0&&(!Le||z[0]&&z[0]!=="/")){V({type:"star",value:y,output:""});continue}let et=A.braces>0&&(H.type==="comma"||H.type==="brace"),rf=L.length&&(H.type==="pipe"||H.type==="paren");if(!Le&&H.type!=="paren"&&!et&&!rf){V({type:"star",value:y,output:""});continue}for(;z.slice(0,3)==="/**";){let Rs=t[A.index+4];if(Rs&&Rs!=="/")break;z=z.slice(3),k("/**",3)}if(H.type==="bos"&&v()){$.type="globstar",$.value+=y,$.output=O(r),A.output=$.output,A.globstar=!0,k(y);continue}if(H.type==="slash"&&H.prev.type!=="bos"&&!Et&&v()){A.output=A.output.slice(0,-(H.output+$.output).length),H.output=`(?:${H.output}`,$.type="globstar",$.output=O(r)+(r.strictSlashes?")":"|$)"),$.value+=y,A.globstar=!0,A.output+=H.output+$.output,k(y);continue}if(H.type==="slash"&&H.prev.type!=="bos"&&z[0]==="/"){let Rs=z[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(H.output+$.output).length),H.output=`(?:${H.output}`,$.type="globstar",$.output=`${O(r)}${h}|${h}${Rs})`,$.value+=y,A.output+=H.output+$.output,A.globstar=!0,k(y+F()),V({type:"slash",value:"/",output:""});continue}if(H.type==="bos"&&z[0]==="/"){$.type="globstar",$.value+=y,$.output=`(?:^|${h}|${O(r)}${h})`,A.output=$.output,A.globstar=!0,k(y+F()),V({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-$.output.length),$.type="globstar",$.output=O(r),$.value+=y,A.output+=$.output,A.globstar=!0,k(y);continue}let Ee={type:"star",value:y,output:N};if(r.bash===!0){Ee.output=".*?",($.type==="bos"||$.type==="slash")&&(Ee.output=B+Ee.output),V(Ee);continue}if($&&($.type==="bracket"||$.type==="paren")&&r.regex===!0){Ee.output=y,V(Ee);continue}(A.index===A.start||$.type==="slash"||$.type==="dot")&&($.type==="dot"?(A.output+=C,$.output+=C):r.dot===!0?(A.output+=E,$.output+=E):(A.output+=B,$.output+=B),w()!=="*"&&(A.output+=m,$.output+=m)),V(Ee)}for(;A.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(na("closing","]"));A.output=Yt.escapeLast(A.output,"["),ee("brackets")}for(;A.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(na("closing",")"));A.output=Yt.escapeLast(A.output,"("),ee("parens")}for(;A.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(na("closing","}"));A.output=Yt.escapeLast(A.output,"{"),ee("braces")}if(r.strictSlashes!==!0&&($.type==="star"||$.type==="bracket")&&V({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};Ig.fastpaths=(t,e)=>{let r={...e},n=typeof r.maxLength=="number"?Math.min(Wl,r.maxLength):Wl,o=t.length;if(o>n)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${n}`);t=VS[t]||t;let i=Yt.isWindows(e),{DOT_LITERAL:a,SLASH_LITERAL:s,ONE_CHAR:u,DOTS_SLASH:c,NO_DOT:l,NO_DOTS:f,NO_DOTS_SLASH:d,STAR:h,START_ANCHOR:m}=Gl.globChars(i),b=r.dot?f:l,D=r.dot?d:l,C=r.capture?"":"?:",E={negated:!1,prefix:""},g=r.bash===!0?".*?":h;r.capture&&(g=`(${g})`);let _=B=>B.noglobstar===!0?g:`(${C}(?:(?!${m}${B.dot?c:a}).)*?)`,S=B=>{switch(B){case"*":return`${b}${u}${g}`;case".*":return`${a}${u}${g}`;case"*.*":return`${b}${g}${a}${u}${g}`;case"*/*":return`${b}${g}${s}${u}${D}${g}`;case"**":return b+_(r);case"**/*":return`(?:${b}${_(r)}${s})?${D}${u}${g}`;case"**/*.*":return`(?:${b}${_(r)}${s})?${D}${g}${a}${u}${g}`;case"**/.*":return`(?:${b}${_(r)}${s})?${a}${u}${g}`;default:{let R=/^(.*?)\.(\w+)$/.exec(B);if(!R)return;let N=S(R[1]);return N?N+a+R[2]:void 0}}},I=Yt.removePrefix(t,E),O=S(I);return O&&r.strictSlashes!==!0&&(O+=`${s}?`),O};zS.exports=Ig});var KS=x((HY,WS)=>{"use strict";var kM=require("path"),$M=HS(),Rg=GS(),Bg=Os(),PM=As(),TM=t=>t&&typeof t=="object"&&!Array.isArray(t),Ze=(t,e,r=!1)=>{if(Array.isArray(t)){let l=t.map(d=>Ze(d,e,r));return d=>{for(let h of l){let m=h(d);if(m)return m}return!1}}let n=TM(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=Bg.isWindows(e),a=n?Ze.compileRe(t,e):Ze.makeRe(t,e,!1,!0),s=a.state;delete a.state;let u=()=>!1;if(o.ignore){let l={...e,ignore:null,onMatch:null,onResult:null};u=Ze(o.ignore,l,r)}let c=(l,f=!1)=>{let{isMatch:d,match:h,output:m}=Ze.test(l,a,e,{glob:t,posix:i}),b={glob:t,state:s,regex:a,posix:i,input:l,output:m,match:h,isMatch:d};return typeof o.onResult=="function"&&o.onResult(b),d===!1?(b.isMatch=!1,f?b:!1):u(l)?(typeof o.onIgnore=="function"&&o.onIgnore(b),b.isMatch=!1,f?b:!1):(typeof o.onMatch=="function"&&o.onMatch(b),f?b:!0)};return r&&(c.state=s),c};Ze.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?Bg.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=Ze.matchBase(t,e,r,o):s=e.exec(u)),{isMatch:!!s,match:s,output:u}};Ze.matchBase=(t,e,r,n=Bg.isWindows(r))=>(e instanceof RegExp?e:Ze.makeRe(e,r)).test(kM.basename(t));Ze.isMatch=(t,e,r)=>Ze(e,r)(t);Ze.parse=(t,e)=>Array.isArray(t)?t.map(r=>Ze.parse(r,e)):Rg(t,{...e,fastpaths:!1});Ze.scan=(t,e)=>$M(t,e);Ze.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=Ze.toRegex(s,e);return n===!0&&(u.state=t),u};Ze.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=Rg.fastpaths(t,e)),o.output||(o=Rg(t,e)),Ze.compileRe(o,e,r,n)};Ze.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/$^/}};Ze.constants=PM;WS.exports=Ze});var JS=x((VY,YS)=>{"use strict";YS.exports=KS()});var rF=x((zY,tF)=>{"use strict";var ZS=require("util"),QS=kS(),Lr=JS(),jg=Os(),XS=t=>t===""||t==="./",eF=t=>{let e=t.indexOf("{");return e>-1&&t.indexOf("}",e)>-1},Re=(t,e,r)=>{e=[].concat(e),t=[].concat(t);let n=new Set,o=new Set,i=new Set,a=0,s=l=>{i.add(l.output),r&&r.onResult&&r.onResult(l)};for(let l=0;l<e.length;l++){let f=Lr(String(e[l]),{...r,onResult:s},!0),d=f.state.negated||f.state.negatedExtglob;d&&a++;for(let h of t){let m=f(h,!0);(d?!m.isMatch:m.isMatch)&&(d?n.add(m.output):(n.delete(m.output),o.add(m.output)))}}let c=(a===e.length?[...i]:[...o]).filter(l=>!n.has(l));if(r&&c.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?e.map(l=>l.replace(/\\/g,"")):e}return c};Re.match=Re;Re.matcher=(t,e)=>Lr(t,e);Re.isMatch=(t,e,r)=>Lr(e,r)(t);Re.any=Re.isMatch;Re.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(Re(t,e,{...r,onResult:i}));for(let s of o)a.has(s)||n.add(s);return[...n]};Re.contains=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${ZS.inspect(t)}"`);if(Array.isArray(e))return e.some(n=>Re.contains(t,n,r));if(typeof e=="string"){if(XS(t)||XS(e))return!1;if(t.includes(e)||t.startsWith("./")&&t.slice(2).includes(e))return!0}return Re.isMatch(t,e,{...r,contains:!0})};Re.matchKeys=(t,e,r)=>{if(!jg.isObject(t))throw new TypeError("Expected the first argument to be an object");let n=Re(Object.keys(t),e,r),o={};for(let i of n)o[i]=t[i];return o};Re.some=(t,e,r)=>{let n=[].concat(t);for(let o of[].concat(e)){let i=Lr(String(o),r);if(n.some(a=>i(a)))return!0}return!1};Re.every=(t,e,r)=>{let n=[].concat(t);for(let o of[].concat(e)){let i=Lr(String(o),r);if(!n.every(a=>i(a)))return!1}return!0};Re.all=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${ZS.inspect(t)}"`);return[].concat(e).every(n=>Lr(n,r)(t))};Re.capture=(t,e,r)=>{let n=jg.isWindows(r),i=Lr.makeRe(String(t),{...r,capture:!0}).exec(n?jg.toPosixSlashes(e):e);if(i)return i.slice(1).map(a=>a===void 0?"":a)};Re.makeRe=(...t)=>Lr.makeRe(...t);Re.scan=(...t)=>Lr.scan(...t);Re.parse=(t,e)=>{let r=[];for(let n of[].concat(t||[]))for(let o of QS(String(n),e))r.push(Lr.parse(o,e));return r};Re.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!eF(t)?[t]:QS(t,e)};Re.braceExpand=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return Re.braces(t,{...e,expand:!0})};Re.hasBraces=eF;tF.exports=Re});var HF=x((HJ,un)=>{var Oe=require("fs"),Xl=require("os"),gt=require("path"),SF=require("crypto"),Mr={fs:Oe.constants,os:Xl.constants},FF="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",$F=/XXXXXX/,a9=3,PF=(Mr.O_CREAT||Mr.fs.O_CREAT)|(Mr.O_EXCL||Mr.fs.O_EXCL)|(Mr.O_RDWR||Mr.fs.O_RDWR),s9=Xl.platform()==="win32",u9=Mr.EBADF||Mr.os.errno.EBADF,c9=Mr.ENOENT||Mr.os.errno.ENOENT,TF=448,IF=384,l9="exit",ia=[],RF=Oe.rmdirSync.bind(Oe),BF=!1;function f9(t,e){return Oe.rm(t,{recursive:!0},e)}function jF(t){return Oe.rmSync(t,{recursive:!0})}function zg(t,e){let r=aa(t,e),n=r[0],o=r[1];w9(n,function(i,a){if(i)return o(i);let s=a.tries;(function u(){try{let c=LF(a);Oe.stat(c,function(l){if(!l)return s-- >0?u():o(new Error("Could not get a unique tmp filename, max tries reached "+c));o(null,c)})}catch(c){o(c)}})()})}function Gg(t){let e=aa(t),r=e[0],n=C9(r),o=n.tries;do{let i=LF(n);try{Oe.statSync(i)}catch{return i}}while(o-- >0);throw new Error("Could not get a unique tmp filename, max tries reached")}function p9(t,e){let r=aa(t,e),n=r[0],o=r[1];zg(n,function(a,s){if(a)return o(a);Oe.open(s,PF,n.mode||IF,function(c,l){if(c)return o(c);if(n.discardDescriptor)return Oe.close(l,function(d){return o(d,s,void 0,Hg(s,-1,n,!1))});{let f=n.discardDescriptor||n.detachDescriptor;o(null,s,l,Hg(s,f?-1:l,n,!1))}})})}function d9(t){let e=aa(t),r=e[0],n=r.discardDescriptor||r.detachDescriptor,o=Gg(r),i=Oe.openSync(o,PF,r.mode||IF);return r.discardDescriptor&&(Oe.closeSync(i),i=void 0),{name:o,fd:i,removeCallback:Hg(o,n?-1:i,r,!0)}}function h9(t,e){let r=aa(t,e),n=r[0],o=r[1];zg(n,function(a,s){if(a)return o(a);Oe.mkdir(s,n.mode||TF,function(c){if(c)return o(c);o(null,s,NF(s,n,!1))})})}function m9(t){let e=aa(t),r=e[0],n=Gg(r);return Oe.mkdirSync(n,r.mode||TF),{name:n,removeCallback:NF(n,r,!0)}}function g9(t,e){let r=function(n){if(n&&!Vg(n))return e(n);e()};0<=t[0]?Oe.close(t[0],function(){Oe.unlink(t[1],r)}):Oe.unlink(t[1],r)}function D9(t){let e=null;try{0<=t[0]&&Oe.closeSync(t[0])}catch(r){if(!E9(r)&&!Vg(r))throw r}finally{try{Oe.unlinkSync(t[1])}catch(r){Vg(r)||(e=r)}}if(e!==null)throw e}function Hg(t,e,r,n){let o=Jl(D9,[e,t],n),i=Jl(g9,[e,t],n,o);return r.keep||ia.unshift(o),n?o:i}function NF(t,e,r){let n=e.unsafeCleanup?f9:Oe.rmdir.bind(Oe),o=e.unsafeCleanup?jF:RF,i=Jl(o,t,r),a=Jl(n,t,r,i);return e.keep||ia.unshift(i),r?i:a}function Jl(t,e,r,n){let o=!1;return function i(a){if(!o){let s=n||i,u=ia.indexOf(s);return u>=0&&ia.splice(u,1),o=!0,r||t===RF||t===jF?t(e):t(e,a||function(){})}}}function y9(){if(BF)for(;ia.length;)try{ia[0]()}catch{}}function AF(t){let e=[],r=null;try{r=SF.randomBytes(t)}catch{r=SF.pseudoRandomBytes(t)}for(let n=0;n<t;n++)e.push(FF[r[n]%FF.length]);return e.join("")}function Jt(t){return typeof t>"u"}function aa(t,e){if(typeof t=="function")return[{},t];if(Jt(t))return[{},e];let r={};for(let n of Object.getOwnPropertyNames(t))r[n]=t[n];return[r,e]}function b9(t,e,r){let n=gt.isAbsolute(t)?t:gt.join(e,t);Oe.stat(n,function(o){o?Oe.realpath(gt.dirname(n),function(i,a){if(i)return r(i);r(null,gt.join(a,gt.basename(n)))}):Oe.realpath(n,r)})}function v9(t,e){let r=gt.isAbsolute(t)?t:gt.join(e,t);try{return Oe.statSync(r),Oe.realpathSync(r)}catch{let o=Oe.realpathSync(gt.dirname(r));return gt.join(o,gt.basename(r))}}function LF(t){let e=t.tmpdir;if(!Jt(t.name))return gt.join(e,t.dir,t.name);if(!Jt(t.template))return gt.join(e,t.dir,t.template).replace($F,AF(6));let r=[t.prefix?t.prefix:"tmp","-",process.pid,"-",AF(12),t.postfix?"-"+t.postfix:""].join("");return gt.join(e,t.dir,r)}function UF(t){if(!Jt(t.name)){let e=t.name;if(gt.isAbsolute(e))throw new Error(`name option must not contain an absolute path, found "${e}".`);let r=gt.basename(e);if(r===".."||r==="."||r!==e)throw new Error(`name option must not contain a path, found "${e}".`)}if(!Jt(t.template)&&!t.template.match($F))throw new Error(`Invalid template, found "${t.template}".`);if(!Jt(t.tries)&&isNaN(t.tries)||t.tries<0)throw new Error(`Invalid tries, found "${t.tries}".`);t.tries=Jt(t.name)?t.tries||a9:1,t.keep=!!t.keep,t.detachDescriptor=!!t.detachDescriptor,t.discardDescriptor=!!t.discardDescriptor,t.unsafeCleanup=!!t.unsafeCleanup,t.prefix=Jt(t.prefix)?"":t.prefix,t.postfix=Jt(t.postfix)?"":t.postfix}function OF(t,e,r,n){if(Jt(e))return n(null);b9(e,r,function(o,i){if(o)return n(o);let a=gt.relative(r,i);if(!i.startsWith(r))return n(new Error(`${t} option must be relative to "${r}", found "${a}".`));n(null,a)})}function kF(t,e,r){if(Jt(e))return;let n=v9(e,r),o=gt.relative(r,n);if(!n.startsWith(r))throw new Error(`${t} option must be relative to "${r}", found "${o}".`);return o}function w9(t,e){x9(t,function(r,n){if(r)return e(r);t.tmpdir=n;try{UF(t,n)}catch(o){return e(o)}OF("dir",t.dir,n,function(o,i){if(o)return e(o);t.dir=Jt(i)?"":i,OF("template",t.template,n,function(a,s){if(a)return e(a);t.template=s,e(null,t)})})})}function C9(t){let e=t.tmpdir=qF(t);UF(t,e);let r=kF("dir",t.dir,e);return t.dir=Jt(r)?"":r,t.template=kF("template",t.template,e),t}function E9(t){return MF(t,-u9,"EBADF")}function Vg(t){return MF(t,-c9,"ENOENT")}function MF(t,e,r){return s9?t.code===r:t.code===r&&t.errno===e}function _9(){BF=!0}function x9(t,e){return Oe.realpath(t&&t.tmpdir||Xl.tmpdir(),e)}function qF(t){return Oe.realpathSync(t&&t.tmpdir||Xl.tmpdir())}process.addListener(l9,y9);Object.defineProperty(un.exports,"tmpdir",{enumerable:!0,configurable:!1,get:function(){return qF()}});un.exports.dir=h9;un.exports.dirSync=m9;un.exports.file=p9;un.exports.fileSync=d9;un.exports.tmpName=zg;un.exports.tmpNameSync=Gg;un.exports.setGracefulCleanup=_9});var ef=require("node:process");var mD=ge(hD(),1),{program:pt,createCommand:i7,createArgument:a7,createOption:s7,CommanderError:u7,InvalidArgumentError:c7,InvalidOptionArgumentError:l7,Command:f7,Argument:p7,Option:d7,Help:h7}=mD.default;var mr={name:"@capgo/cli",version:"8.0.0-alpha.2",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",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:"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"},devDependencies:{"@antfu/eslint-config":"^6.1.0","@bradenmacdonald/s3-lite-client":"npm:@jsr/bradenmacdonald__s3-lite-client@0.9.4","@capacitor/cli":"^7.4.4","@capgo/find-package-manager":"^0.0.18","@clack/prompts":"^0.11.0","@sauber/table":"npm:@jsr/sauber__table","@std/semver":"npm:@jsr/std__semver@1.0.6","@supabase/supabase-js":"^2.79.0","@types/adm-zip":"^0.5.7","@types/node":"^24.9.1","@types/prettyjson":"^0.0.33","@types/tmp":"^0.2.6","@vercel/ncc":"^0.38.4","adm-zip":"^0.5.16","ci-info":"^4.3.1",commander:"^14.0.2",esbuild:"^0.25.11",eslint:"^9.38.0","git-format-staged":"3.1.1",husky:"^9.1.7","is-wsl":"^3.1.0",open:"^10.1.2",prettyjson:"^1.2.5",tmp:"^0.2.5","tus-js-client":"^4.3.1",typescript:"^5.9.3"}};var Xi=require("node:fs");var Dt=ge(Cf(),1),Ro=require("node:process"),ln=ge(require("node:readline"),1),Ff=ge(require("node:readline"),1),SD=require("node:stream"),FD=ge(_f(),1);function SA({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 FA=SA();function AD(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(FA,"")}function OD(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var kD={exports:{}};(function(t){var e={};t.exports=e,e.eastAsianWidth=function(n){var o=n.charCodeAt(0),i=n.length==2?n.charCodeAt(1):0,a=o;return 55296<=o&&o<=56319&&56320<=i&&i<=57343&&(o&=1023,i&=1023,a=o<<10|i,a+=65536),a==12288||65281<=a&&a<=65376||65504<=a&&a<=65510?"F":a==8361||65377<=a&&a<=65470||65474<=a&&a<=65479||65482<=a&&a<=65487||65490<=a&&a<=65495||65498<=a&&a<=65500||65512<=a&&a<=65518?"H":4352<=a&&a<=4447||4515<=a&&a<=4519||4602<=a&&a<=4607||9001<=a&&a<=9002||11904<=a&&a<=11929||11931<=a&&a<=12019||12032<=a&&a<=12245||12272<=a&&a<=12283||12289<=a&&a<=12350||12353<=a&&a<=12438||12441<=a&&a<=12543||12549<=a&&a<=12589||12593<=a&&a<=12686||12688<=a&&a<=12730||12736<=a&&a<=12771||12784<=a&&a<=12830||12832<=a&&a<=12871||12880<=a&&a<=13054||13056<=a&&a<=19903||19968<=a&&a<=42124||42128<=a&&a<=42182||43360<=a&&a<=43388||44032<=a&&a<=55203||55216<=a&&a<=55238||55243<=a&&a<=55291||63744<=a&&a<=64255||65040<=a&&a<=65049||65072<=a&&a<=65106||65108<=a&&a<=65126||65128<=a&&a<=65131||110592<=a&&a<=110593||127488<=a&&a<=127490||127504<=a&&a<=127546||127552<=a&&a<=127560||127568<=a&&a<=127569||131072<=a&&a<=194367||177984<=a&&a<=196605||196608<=a&&a<=262141?"W":32<=a&&a<=126||162<=a&&a<=163||165<=a&&a<=166||a==172||a==175||10214<=a&&a<=10221||10629<=a&&a<=10630?"Na":a==161||a==164||167<=a&&a<=168||a==170||173<=a&&a<=174||176<=a&&a<=180||182<=a&&a<=186||188<=a&&a<=191||a==198||a==208||215<=a&&a<=216||222<=a&&a<=225||a==230||232<=a&&a<=234||236<=a&&a<=237||a==240||242<=a&&a<=243||247<=a&&a<=250||a==252||a==254||a==257||a==273||a==275||a==283||294<=a&&a<=295||a==299||305<=a&&a<=307||a==312||319<=a&&a<=322||a==324||328<=a&&a<=331||a==333||338<=a&&a<=339||358<=a&&a<=359||a==363||a==462||a==464||a==466||a==468||a==470||a==472||a==474||a==476||a==593||a==609||a==708||a==711||713<=a&&a<=715||a==717||a==720||728<=a&&a<=731||a==733||a==735||768<=a&&a<=879||913<=a&&a<=929||931<=a&&a<=937||945<=a&&a<=961||963<=a&&a<=969||a==1025||1040<=a&&a<=1103||a==1105||a==8208||8211<=a&&a<=8214||8216<=a&&a<=8217||8220<=a&&a<=8221||8224<=a&&a<=8226||8228<=a&&a<=8231||a==8240||8242<=a&&a<=8243||a==8245||a==8251||a==8254||a==8308||a==8319||8321<=a&&a<=8324||a==8364||a==8451||a==8453||a==8457||a==8467||a==8470||8481<=a&&a<=8482||a==8486||a==8491||8531<=a&&a<=8532||8539<=a&&a<=8542||8544<=a&&a<=8555||8560<=a&&a<=8569||a==8585||8592<=a&&a<=8601||8632<=a&&a<=8633||a==8658||a==8660||a==8679||a==8704||8706<=a&&a<=8707||8711<=a&&a<=8712||a==8715||a==8719||a==8721||a==8725||a==8730||8733<=a&&a<=8736||a==8739||a==8741||8743<=a&&a<=8748||a==8750||8756<=a&&a<=8759||8764<=a&&a<=8765||a==8776||a==8780||a==8786||8800<=a&&a<=8801||8804<=a&&a<=8807||8810<=a&&a<=8811||8814<=a&&a<=8815||8834<=a&&a<=8835||8838<=a&&a<=8839||a==8853||a==8857||a==8869||a==8895||a==8978||9312<=a&&a<=9449||9451<=a&&a<=9547||9552<=a&&a<=9587||9600<=a&&a<=9615||9618<=a&&a<=9621||9632<=a&&a<=9633||9635<=a&&a<=9641||9650<=a&&a<=9651||9654<=a&&a<=9655||9660<=a&&a<=9661||9664<=a&&a<=9665||9670<=a&&a<=9672||a==9675||9678<=a&&a<=9681||9698<=a&&a<=9701||a==9711||9733<=a&&a<=9734||a==9737||9742<=a&&a<=9743||9748<=a&&a<=9749||a==9756||a==9758||a==9792||a==9794||9824<=a&&a<=9825||9827<=a&&a<=9829||9831<=a&&a<=9834||9836<=a&&a<=9837||a==9839||9886<=a&&a<=9887||9918<=a&&a<=9919||9924<=a&&a<=9933||9935<=a&&a<=9953||a==9955||9960<=a&&a<=9983||a==10045||a==10071||10102<=a&&a<=10111||11093<=a&&a<=11097||12872<=a&&a<=12879||57344<=a&&a<=63743||65024<=a&&a<=65039||a==65533||127232<=a&&a<=127242||127248<=a&&a<=127277||127280<=a&&a<=127337||127344<=a&&a<=127386||917760<=a&&a<=917999||983040<=a&&a<=1048573||1048576<=a&&a<=1114109?"A":"N"},e.characterLength=function(n){var o=this.eastAsianWidth(n);return o=="F"||o=="W"||o=="A"?2:1};function r(n){return n.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}e.length=function(n){for(var o=r(n),i=0,a=0;a<o.length;a++)i=i+this.characterLength(o[a]);return i},e.slice=function(n,o,i){textLen=e.length(n),o=o||0,i=i||1,o<0&&(o=textLen+o),i<0&&(i=textLen+i);for(var a="",s=0,u=r(n),c=0;c<u.length;c++){var l=u[c],f=e.length(l);if(s>=o-(f==2?1:0))if(s+f<=i)a+=l;else break;s+=f}return a}})(kD);var AA=kD.exports,OA=OD(AA),kA=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},$A=OD(kA);function la(t,e={}){if(typeof t!="string"||t.length===0||(e={ambiguousIsNarrow:!0,...e},t=AD(t),t.length===0))return 0;t=t.replace($A()," ");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(OA.eastAsianWidth(o)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}var xf=10,bD=(t=0)=>e=>`\x1B[${e+t}m`,vD=(t=0)=>e=>`\x1B[${38+t};5;${e}m`,wD=(t=0)=>(e,r,n)=>`\x1B[${38+t};2;${e};${r};${n}m`,Be={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(Be.modifier);var PA=Object.keys(Be.color),TA=Object.keys(Be.bgColor);[...PA,...TA];function IA(){let t=new Map;for(let[e,r]of Object.entries(Be)){for(let[n,o]of Object.entries(r))Be[n]={open:`\x1B[${o[0]}m`,close:`\x1B[${o[1]}m`},r[n]=Be[n],t.set(o[0],o[1]);Object.defineProperty(Be,e,{value:r,enumerable:!1})}return Object.defineProperty(Be,"codes",{value:t,enumerable:!1}),Be.color.close="\x1B[39m",Be.bgColor.close="\x1B[49m",Be.color.ansi=bD(),Be.color.ansi256=vD(),Be.color.ansi16m=wD(),Be.bgColor.ansi=bD(xf),Be.bgColor.ansi256=vD(xf),Be.bgColor.ansi16m=wD(xf),Object.defineProperties(Be,{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=>Be.rgbToAnsi256(...Be.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)=>Be.ansi256ToAnsi(Be.rgbToAnsi256(e,r,n)),enumerable:!1},hexToAnsi:{value:e=>Be.ansi256ToAnsi(Be.hexToAnsi256(e)),enumerable:!1}}),Be}var RA=IA(),Ws=new Set(["\x1B","\x9B"]),BA=39,Of="\x07",$D="[",jA="]",PD="m",kf=`${jA}8;;`,CD=t=>`${Ws.values().next().value}${$D}${t}${PD}`,ED=t=>`${Ws.values().next().value}${kf}${t}${Of}`,NA=t=>t.split(" ").map(e=>la(e)),Sf=(t,e,r)=>{let n=[...e],o=!1,i=!1,a=la(AD(t[t.length-1]));for(let[s,u]of n.entries()){let c=la(u);if(a+c<=r?t[t.length-1]+=u:(t.push(u),a=0),Ws.has(u)&&(o=!0,i=n.slice(s+1).join("").startsWith(kf)),o){i?u===Of&&(o=!1,i=!1):u===PD&&(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())},LA=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!(la(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},UA=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let n="",o,i,a=NA(t),s=[""];for(let[c,l]of t.split(" ").entries()){r.trim!==!1&&(s[s.length-1]=s[s.length-1].trimStart());let f=la(s[s.length-1]);if(c!==0&&(f>=e&&(r.wordWrap===!1||r.trim===!1)&&(s.push(""),f=0),(f>0||r.trim===!1)&&(s[s.length-1]+=" ",f++)),r.hard&&a[c]>e){let d=e-f,h=1+Math.floor((a[c]-d-1)/e);Math.floor((a[c]-1)/e)<h&&s.push(""),Sf(s,l,e);continue}if(f+a[c]>e&&f>0&&a[c]>0){if(r.wordWrap===!1&&f<e){Sf(s,l,e);continue}s.push("")}if(f+a[c]>e&&r.wordWrap===!1){Sf(s,l,e);continue}s[s.length-1]+=l}r.trim!==!1&&(s=s.map(c=>LA(c)));let u=[...s.join(`
|
|
104
|
+
`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var FS=x((jY,SS)=>{"use strict";var LU=ql(),{MAX_LENGTH:ES,CHAR_BACKSLASH:Sg,CHAR_BACKTICK:UU,CHAR_COMMA:MU,CHAR_DOT:qU,CHAR_LEFT_PARENTHESES:HU,CHAR_RIGHT_PARENTHESES:VU,CHAR_LEFT_CURLY_BRACE:zU,CHAR_RIGHT_CURLY_BRACE:GU,CHAR_LEFT_SQUARE_BRACKET:_S,CHAR_RIGHT_SQUARE_BRACKET:xS,CHAR_DOUBLE_QUOTE:WU,CHAR_SINGLE_QUOTE:KU,CHAR_NO_BREAK_SPACE:YU,CHAR_ZERO_WIDTH_NOBREAK_SPACE:JU}=CS(),XU=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},n=typeof r.maxLength=="number"?Math.min(ES,r.maxLength):ES;if(t.length>n)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${n})`);let o={type:"root",input:t,nodes:[]},i=[o],a=o,s=o,u=0,c=t.length,l=0,f=0,d,h=()=>t[l++],m=b=>{if(b.type==="text"&&s.type==="dot"&&(s.type="text"),s&&s.type==="text"&&b.type==="text"){s.value+=b.value;return}return a.nodes.push(b),b.parent=a,b.prev=s,s=b,b};for(m({type:"bos"});l<c;)if(a=i[i.length-1],d=h(),!(d===JU||d===YU)){if(d===Sg){m({type:"text",value:(e.keepEscaping?d:"")+h()});continue}if(d===xS){m({type:"text",value:"\\"+d});continue}if(d===_S){u++;let b;for(;l<c&&(b=h());){if(d+=b,b===_S){u++;continue}if(b===Sg){d+=h();continue}if(b===xS&&(u--,u===0))break}m({type:"text",value:d});continue}if(d===HU){a=m({type:"paren",nodes:[]}),i.push(a),m({type:"text",value:d});continue}if(d===VU){if(a.type!=="paren"){m({type:"text",value:d});continue}a=i.pop(),m({type:"text",value:d}),a=i[i.length-1];continue}if(d===WU||d===KU||d===UU){let b=d,D;for(e.keepQuotes!==!0&&(d="");l<c&&(D=h());){if(D===Sg){d+=D+h();continue}if(D===b){e.keepQuotes===!0&&(d+=D);break}d+=D}m({type:"text",value:d});continue}if(d===zU){f++;let D={type:"brace",open:!0,close:!1,dollar:s.value&&s.value.slice(-1)==="$"||a.dollar===!0,depth:f,commas:0,ranges:0,nodes:[]};a=m(D),i.push(a),m({type:"open",value:d});continue}if(d===GU){if(a.type!=="brace"){m({type:"text",value:d});continue}let b="close";a=i.pop(),a.close=!0,m({type:b,value:d}),f--,a=i[i.length-1];continue}if(d===MU&&f>0){if(a.ranges>0){a.ranges=0;let b=a.nodes.shift();a.nodes=[b,{type:"text",value:LU(a)}]}m({type:"comma",value:d}),a.commas++;continue}if(d===qU&&f>0&&a.commas===0){let b=a.nodes;if(f===0||b.length===0){m({type:"text",value:d});continue}if(s.type==="dot"){if(a.range=[],s.value+=d,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"){b.pop();let D=b[b.length-1];D.value+=s.value+d,s=D,a.ranges--;continue}m({type:"dot",value:d});continue}m({type:"text",value:d})}do if(a=i.pop(),a.type!=="root"){a.nodes.forEach(C=>{C.nodes||(C.type==="open"&&(C.isOpen=!0),C.type==="close"&&(C.isClose=!0),C.nodes||(C.type="text"),C.invalid=!0)});let b=i[i.length-1],D=b.nodes.indexOf(a);b.nodes.splice(D,1,...a.nodes)}while(i.length>0);return m({type:"eos"}),o};SS.exports=XU});var kS=x((NY,OS)=>{"use strict";var AS=ql(),ZU=DS(),QU=vS(),eM=FS(),Kt=(t,e={})=>{let r=[];if(Array.isArray(t))for(let n of t){let o=Kt.create(n,e);Array.isArray(o)?r.push(...o):r.push(o)}else r=[].concat(Kt.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};Kt.parse=(t,e={})=>eM(t,e);Kt.stringify=(t,e={})=>AS(typeof t=="string"?Kt.parse(t,e):t,e);Kt.compile=(t,e={})=>(typeof t=="string"&&(t=Kt.parse(t,e)),ZU(t,e));Kt.expand=(t,e={})=>{typeof t=="string"&&(t=Kt.parse(t,e));let r=QU(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};Kt.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?Kt.compile(t,e):Kt.expand(t,e);OS.exports=Kt});var As=x((LY,RS)=>{"use strict";var tM=require("path"),Nr="\\\\/",$S=`[^${Nr}]`,sn="\\.",rM="\\+",nM="\\?",zl="\\/",oM="(?=.)",PS="[^/]",Fg=`(?:${zl}|$)`,TS=`(?:^|${zl})`,Ag=`${sn}{1,2}${Fg}`,iM=`(?!${sn})`,aM=`(?!${TS}${Ag})`,sM=`(?!${sn}{0,1}${Fg})`,uM=`(?!${Ag})`,cM=`[^.${zl}]`,lM=`${PS}*?`,IS={DOT_LITERAL:sn,PLUS_LITERAL:rM,QMARK_LITERAL:nM,SLASH_LITERAL:zl,ONE_CHAR:oM,QMARK:PS,END_ANCHOR:Fg,DOTS_SLASH:Ag,NO_DOT:iM,NO_DOTS:aM,NO_DOT_SLASH:sM,NO_DOTS_SLASH:uM,QMARK_NO_DOT:cM,STAR:lM,START_ANCHOR:TS},fM={...IS,SLASH_LITERAL:`[${Nr}]`,QMARK:$S,STAR:`${$S}*?`,DOTS_SLASH:`${sn}{1,2}(?:[${Nr}]|$)`,NO_DOT:`(?!${sn})`,NO_DOTS:`(?!(?:^|[${Nr}])${sn}{1,2}(?:[${Nr}]|$))`,NO_DOT_SLASH:`(?!${sn}{0,1}(?:[${Nr}]|$))`,NO_DOTS_SLASH:`(?!${sn}{1,2}(?:[${Nr}]|$))`,QMARK_NO_DOT:`[^.${Nr}]`,START_ANCHOR:`(?:^|[${Nr}])`,END_ANCHOR:`(?:[${Nr}]|$)`},pM={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"};RS.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:pM,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:tM.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?fM:IS}}});var Os=x(Ht=>{"use strict";var dM=require("path"),hM=process.platform==="win32",{REGEX_BACKSLASH:mM,REGEX_REMOVE_BACKSLASH:gM,REGEX_SPECIAL_CHARS:DM,REGEX_SPECIAL_CHARS_GLOBAL:yM}=As();Ht.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);Ht.hasRegexChars=t=>DM.test(t);Ht.isRegexChar=t=>t.length===1&&Ht.hasRegexChars(t);Ht.escapeRegex=t=>t.replace(yM,"\\$1");Ht.toPosixSlashes=t=>t.replace(mM,"/");Ht.removeBackslashes=t=>t.replace(gM,e=>e==="\\"?"":e);Ht.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};Ht.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:hM===!0||dM.sep==="\\";Ht.escapeLast=(t,e,r)=>{let n=t.lastIndexOf(e,r);return n===-1?t:t[n-1]==="\\"?Ht.escapeLast(t,e,n-1):`${t.slice(0,n)}\\${t.slice(n)}`};Ht.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};Ht.wrapOutput=(t,e={},r={})=>{let n=r.contains?"":"^",o=r.contains?"":"$",i=`${n}(?:${t})${o}`;return e.negated===!0&&(i=`(?:^(?!${i}).*$)`),i}});var HS=x((MY,qS)=>{"use strict";var BS=Os(),{CHAR_ASTERISK:Og,CHAR_AT:bM,CHAR_BACKWARD_SLASH:ks,CHAR_COMMA:vM,CHAR_DOT:kg,CHAR_EXCLAMATION_MARK:$g,CHAR_FORWARD_SLASH:MS,CHAR_LEFT_CURLY_BRACE:Pg,CHAR_LEFT_PARENTHESES:Tg,CHAR_LEFT_SQUARE_BRACKET:wM,CHAR_PLUS:CM,CHAR_QUESTION_MARK:jS,CHAR_RIGHT_CURLY_BRACE:EM,CHAR_RIGHT_PARENTHESES:NS,CHAR_RIGHT_SQUARE_BRACKET:_M}=As(),LS=t=>t===MS||t===ks,US=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?1/0:1)},xM=(t,e)=>{let r=e||{},n=t.length-1,o=r.parts===!0||r.scanToEnd===!0,i=[],a=[],s=[],u=t,c=-1,l=0,f=0,d=!1,h=!1,m=!1,b=!1,D=!1,C=!1,E=!1,g=!1,_=!1,S=!1,I=0,O,B,R={value:"",depth:0,isGlob:!1},N=()=>c>=n,A=()=>u.charCodeAt(c+1),L=()=>(O=B,u.charCodeAt(++c));for(;c<n;){B=L();let v;if(B===ks){E=R.backslashes=!0,B=L(),B===Pg&&(C=!0);continue}if(C===!0||B===Pg){for(I++;N()!==!0&&(B=L());){if(B===ks){E=R.backslashes=!0,L();continue}if(B===Pg){I++;continue}if(C!==!0&&B===kg&&(B=L())===kg){if(d=R.isBrace=!0,m=R.isGlob=!0,S=!0,o===!0)continue;break}if(C!==!0&&B===vM){if(d=R.isBrace=!0,m=R.isGlob=!0,S=!0,o===!0)continue;break}if(B===EM&&(I--,I===0)){C=!1,d=R.isBrace=!0,S=!0;break}}if(o===!0)continue;break}if(B===MS){if(i.push(c),a.push(R),R={value:"",depth:0,isGlob:!1},S===!0)continue;if(O===kg&&c===l+1){l+=2;continue}f=c+1;continue}if(r.noext!==!0&&(B===CM||B===bM||B===Og||B===jS||B===$g)===!0&&A()===Tg){if(m=R.isGlob=!0,b=R.isExtglob=!0,S=!0,B===$g&&c===l&&(_=!0),o===!0){for(;N()!==!0&&(B=L());){if(B===ks){E=R.backslashes=!0,B=L();continue}if(B===NS){m=R.isGlob=!0,S=!0;break}}continue}break}if(B===Og){if(O===Og&&(D=R.isGlobstar=!0),m=R.isGlob=!0,S=!0,o===!0)continue;break}if(B===jS){if(m=R.isGlob=!0,S=!0,o===!0)continue;break}if(B===wM){for(;N()!==!0&&(v=L());){if(v===ks){E=R.backslashes=!0,L();continue}if(v===_M){h=R.isBracket=!0,m=R.isGlob=!0,S=!0;break}}if(o===!0)continue;break}if(r.nonegate!==!0&&B===$g&&c===l){g=R.negated=!0,l++;continue}if(r.noparen!==!0&&B===Tg){if(m=R.isGlob=!0,o===!0){for(;N()!==!0&&(B=L());){if(B===Tg){E=R.backslashes=!0,B=L();continue}if(B===NS){S=!0;break}}continue}break}if(m===!0){if(S=!0,o===!0)continue;break}}r.noext===!0&&(b=!1,m=!1);let q=u,Q="",$="";l>0&&(Q=u.slice(0,l),u=u.slice(l),f-=l),q&&m===!0&&f>0?(q=u.slice(0,f),$=u.slice(f)):m===!0?(q="",$=u):q=u,q&&q!==""&&q!=="/"&&q!==u&&LS(q.charCodeAt(q.length-1))&&(q=q.slice(0,-1)),r.unescape===!0&&($&&($=BS.removeBackslashes($)),q&&E===!0&&(q=BS.removeBackslashes(q)));let y={prefix:Q,input:t,start:l,base:q,glob:$,isBrace:d,isBracket:h,isGlob:m,isExtglob:b,isGlobstar:D,negated:g,negatedExtglob:_};if(r.tokens===!0&&(y.maxDepth=0,LS(B)||a.push(R),y.tokens=a),r.parts===!0||r.tokens===!0){let v;for(let w=0;w<i.length;w++){let F=v?v+1:l,T=i[w],k=t.slice(F,T);r.tokens&&(w===0&&l!==0?(a[w].isPrefix=!0,a[w].value=Q):a[w].value=k,US(a[w]),y.maxDepth+=a[w].depth),(w!==0||k!=="")&&s.push(k),v=T}if(v&&v+1<t.length){let w=t.slice(v+1);s.push(w),r.tokens&&(a[a.length-1].value=w,US(a[a.length-1]),y.maxDepth+=a[a.length-1].depth)}y.slashes=i,y.parts=s}return y};qS.exports=xM});var GS=x((qY,zS)=>{"use strict";var Gl=As(),Yt=Os(),{MAX_LENGTH:Wl,POSIX_REGEX_SOURCE:SM,REGEX_NON_SPECIAL_CHARS:FM,REGEX_SPECIAL_CHARS_BACKREF:AM,REPLACEMENTS:VS}=Gl,OM=(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=>Yt.escapeRegex(o)).join("..")}return r},na=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,Ig=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=VS[t]||t;let r={...e},n=typeof r.maxLength=="number"?Math.min(Wl,r.maxLength):Wl,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=Yt.isWindows(e),c=Gl.globChars(u),l=Gl.extglobChars(c),{DOT_LITERAL:f,PLUS_LITERAL:d,SLASH_LITERAL:h,ONE_CHAR:m,DOTS_SLASH:b,NO_DOT:D,NO_DOT_SLASH:C,NO_DOTS_SLASH:E,QMARK:g,QMARK_NO_DOT:_,STAR:S,START_ANCHOR:I}=c,O=z=>`(${s}(?:(?!${I}${z.dot?b:f}).)*?)`,B=r.dot?"":D,R=r.dot?g:_,N=r.bash===!0?O(r):S;r.capture&&(N=`(${N})`),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=Yt.removePrefix(t,A),o=t.length;let L=[],q=[],Q=[],$=i,y,v=()=>A.index===o-1,w=A.peek=(z=1)=>t[A.index+z],F=A.advance=()=>t[++A.index]||"",T=()=>t.slice(A.index+1),k=(z="",Ee=0)=>{A.consumed+=z,A.index+=Ee},M=z=>{A.output+=z.output!=null?z.output:z.value,k(z.value)},P=()=>{let z=1;for(;w()==="!"&&(w(2)!=="("||w(3)==="?");)F(),A.start++,z++;return z%2===0?!1:(A.negated=!0,A.start++,!0)},j=z=>{A[z]++,Q.push(z)},ee=z=>{A[z]--,Q.pop()},V=z=>{if($.type==="globstar"){let Ee=A.braces>0&&(z.type==="comma"||z.type==="brace"),H=z.extglob===!0||L.length&&(z.type==="pipe"||z.type==="paren");z.type!=="slash"&&z.type!=="paren"&&!Ee&&!H&&(A.output=A.output.slice(0,-$.output.length),$.type="star",$.value="*",$.output=N,A.output+=$.output)}if(L.length&&z.type!=="paren"&&(L[L.length-1].inner+=z.value),(z.value||z.output)&&M(z),$&&$.type==="text"&&z.type==="text"){$.value+=z.value,$.output=($.output||"")+z.value;return}z.prev=$,a.push(z),$=z},se=(z,Ee)=>{let H={...l[Ee],conditions:1,inner:""};H.prev=$,H.parens=A.parens,H.output=A.output;let ue=(r.capture?"(":"")+H.open;j("parens"),V({type:z,value:Ee,output:A.output?"":m}),V({type:"paren",extglob:!0,value:F(),output:ue}),L.push(H)},hr=z=>{let Ee=z.close+(r.capture?")":""),H;if(z.type==="negate"){let ue=N;if(z.inner&&z.inner.length>1&&z.inner.includes("/")&&(ue=O(r)),(ue!==N||v()||/^\)+$/.test(T()))&&(Ee=z.close=`)$))${ue}`),z.inner.includes("*")&&(H=T())&&/^\.[^\\/.]+$/.test(H)){let Le=Ig(H,{...e,fastpaths:!1}).output;Ee=z.close=`)${Le})${ue})`}z.prev.type==="bos"&&(A.negatedExtglob=!0)}V({type:"paren",extglob:!0,value:y,output:Ee}),ee("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let z=!1,Ee=t.replace(AM,(H,ue,Le,Et,et,rf)=>Et==="\\"?(z=!0,H):Et==="?"?ue?ue+Et+(et?g.repeat(et.length):""):rf===0?R+(et?g.repeat(et.length):""):g.repeat(Le.length):Et==="."?f.repeat(Le.length):Et==="*"?ue?ue+Et+(et?N:""):N:ue?H:`\\${H}`);return z===!0&&(r.unescape===!0?Ee=Ee.replace(/\\/g,""):Ee=Ee.replace(/\\+/g,H=>H.length%2===0?"\\\\":H?"\\":"")),Ee===t&&r.contains===!0?(A.output=t,A):(A.output=Yt.wrapOutput(Ee,A,e),A)}for(;!v();){if(y=F(),y==="\0")continue;if(y==="\\"){let H=w();if(H==="/"&&r.bash!==!0||H==="."||H===";")continue;if(!H){y+="\\",V({type:"text",value:y});continue}let ue=/^\\+/.exec(T()),Le=0;if(ue&&ue[0].length>2&&(Le=ue[0].length,A.index+=Le,Le%2!==0&&(y+="\\")),r.unescape===!0?y=F():y+=F(),A.brackets===0){V({type:"text",value:y});continue}}if(A.brackets>0&&(y!=="]"||$.value==="["||$.value==="[^")){if(r.posix!==!1&&y===":"){let H=$.value.slice(1);if(H.includes("[")&&($.posix=!0,H.includes(":"))){let ue=$.value.lastIndexOf("["),Le=$.value.slice(0,ue),Et=$.value.slice(ue+2),et=SM[Et];if(et){$.value=Le+et,A.backtrack=!0,F(),!i.output&&a.indexOf($)===1&&(i.output=m);continue}}}(y==="["&&w()!==":"||y==="-"&&w()==="]")&&(y=`\\${y}`),y==="]"&&($.value==="["||$.value==="[^")&&(y=`\\${y}`),r.posix===!0&&y==="!"&&$.value==="["&&(y="^"),$.value+=y,M({value:y});continue}if(A.quotes===1&&y!=='"'){y=Yt.escapeRegex(y),$.value+=y,M({value:y});continue}if(y==='"'){A.quotes=A.quotes===1?0:1,r.keepQuotes===!0&&V({type:"text",value:y});continue}if(y==="("){j("parens"),V({type:"paren",value:y});continue}if(y===")"){if(A.parens===0&&r.strictBrackets===!0)throw new SyntaxError(na("opening","("));let H=L[L.length-1];if(H&&A.parens===H.parens+1){hr(L.pop());continue}V({type:"paren",value:y,output:A.parens?")":"\\)"}),ee("parens");continue}if(y==="["){if(r.nobracket===!0||!T().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(na("closing","]"));y=`\\${y}`}else j("brackets");V({type:"bracket",value:y});continue}if(y==="]"){if(r.nobracket===!0||$&&$.type==="bracket"&&$.value.length===1){V({type:"text",value:y,output:`\\${y}`});continue}if(A.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(na("opening","["));V({type:"text",value:y,output:`\\${y}`});continue}ee("brackets");let H=$.value.slice(1);if($.posix!==!0&&H[0]==="^"&&!H.includes("/")&&(y=`/${y}`),$.value+=y,M({value:y}),r.literalBrackets===!1||Yt.hasRegexChars(H))continue;let ue=Yt.escapeRegex($.value);if(A.output=A.output.slice(0,-$.value.length),r.literalBrackets===!0){A.output+=ue,$.value=ue;continue}$.value=`(${s}${ue}|${$.value})`,A.output+=$.value;continue}if(y==="{"&&r.nobrace!==!0){j("braces");let H={type:"brace",value:y,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};q.push(H),V(H);continue}if(y==="}"){let H=q[q.length-1];if(r.nobrace===!0||!H){V({type:"text",value:y,output:y});continue}let ue=")";if(H.dots===!0){let Le=a.slice(),Et=[];for(let et=Le.length-1;et>=0&&(a.pop(),Le[et].type!=="brace");et--)Le[et].type!=="dots"&&Et.unshift(Le[et].value);ue=OM(Et,r),A.backtrack=!0}if(H.comma!==!0&&H.dots!==!0){let Le=A.output.slice(0,H.outputIndex),Et=A.tokens.slice(H.tokensIndex);H.value=H.output="\\{",y=ue="\\}",A.output=Le;for(let et of Et)A.output+=et.output||et.value}V({type:"brace",value:y,output:ue}),ee("braces"),q.pop();continue}if(y==="|"){L.length>0&&L[L.length-1].conditions++,V({type:"text",value:y});continue}if(y===","){let H=y,ue=q[q.length-1];ue&&Q[Q.length-1]==="braces"&&(ue.comma=!0,H="|"),V({type:"comma",value:y,output:H});continue}if(y==="/"){if($.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",a.pop(),$=i;continue}V({type:"slash",value:y,output:h});continue}if(y==="."){if(A.braces>0&&$.type==="dot"){$.value==="."&&($.output=f);let H=q[q.length-1];$.type="dots",$.output+=y,$.value+=y,H.dots=!0;continue}if(A.braces+A.parens===0&&$.type!=="bos"&&$.type!=="slash"){V({type:"text",value:y,output:f});continue}V({type:"dot",value:y,output:f});continue}if(y==="?"){if(!($&&$.value==="(")&&r.noextglob!==!0&&w()==="("&&w(2)!=="?"){se("qmark",y);continue}if($&&$.type==="paren"){let ue=w(),Le=y;if(ue==="<"&&!Yt.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");($.value==="("&&!/[!=<:]/.test(ue)||ue==="<"&&!/<([!=]|\w+>)/.test(T()))&&(Le=`\\${y}`),V({type:"text",value:y,output:Le});continue}if(r.dot!==!0&&($.type==="slash"||$.type==="bos")){V({type:"qmark",value:y,output:_});continue}V({type:"qmark",value:y,output:g});continue}if(y==="!"){if(r.noextglob!==!0&&w()==="("&&(w(2)!=="?"||!/[!=<:]/.test(w(3)))){se("negate",y);continue}if(r.nonegate!==!0&&A.index===0){P();continue}}if(y==="+"){if(r.noextglob!==!0&&w()==="("&&w(2)!=="?"){se("plus",y);continue}if($&&$.value==="("||r.regex===!1){V({type:"plus",value:y,output:d});continue}if($&&($.type==="bracket"||$.type==="paren"||$.type==="brace")||A.parens>0){V({type:"plus",value:y});continue}V({type:"plus",value:d});continue}if(y==="@"){if(r.noextglob!==!0&&w()==="("&&w(2)!=="?"){V({type:"at",extglob:!0,value:y,output:""});continue}V({type:"text",value:y});continue}if(y!=="*"){(y==="$"||y==="^")&&(y=`\\${y}`);let H=FM.exec(T());H&&(y+=H[0],A.index+=H[0].length),V({type:"text",value:y});continue}if($&&($.type==="globstar"||$.star===!0)){$.type="star",$.star=!0,$.value+=y,$.output=N,A.backtrack=!0,A.globstar=!0,k(y);continue}let z=T();if(r.noextglob!==!0&&/^\([^?]/.test(z)){se("star",y);continue}if($.type==="star"){if(r.noglobstar===!0){k(y);continue}let H=$.prev,ue=H.prev,Le=H.type==="slash"||H.type==="bos",Et=ue&&(ue.type==="star"||ue.type==="globstar");if(r.bash===!0&&(!Le||z[0]&&z[0]!=="/")){V({type:"star",value:y,output:""});continue}let et=A.braces>0&&(H.type==="comma"||H.type==="brace"),rf=L.length&&(H.type==="pipe"||H.type==="paren");if(!Le&&H.type!=="paren"&&!et&&!rf){V({type:"star",value:y,output:""});continue}for(;z.slice(0,3)==="/**";){let Rs=t[A.index+4];if(Rs&&Rs!=="/")break;z=z.slice(3),k("/**",3)}if(H.type==="bos"&&v()){$.type="globstar",$.value+=y,$.output=O(r),A.output=$.output,A.globstar=!0,k(y);continue}if(H.type==="slash"&&H.prev.type!=="bos"&&!Et&&v()){A.output=A.output.slice(0,-(H.output+$.output).length),H.output=`(?:${H.output}`,$.type="globstar",$.output=O(r)+(r.strictSlashes?")":"|$)"),$.value+=y,A.globstar=!0,A.output+=H.output+$.output,k(y);continue}if(H.type==="slash"&&H.prev.type!=="bos"&&z[0]==="/"){let Rs=z[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(H.output+$.output).length),H.output=`(?:${H.output}`,$.type="globstar",$.output=`${O(r)}${h}|${h}${Rs})`,$.value+=y,A.output+=H.output+$.output,A.globstar=!0,k(y+F()),V({type:"slash",value:"/",output:""});continue}if(H.type==="bos"&&z[0]==="/"){$.type="globstar",$.value+=y,$.output=`(?:^|${h}|${O(r)}${h})`,A.output=$.output,A.globstar=!0,k(y+F()),V({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-$.output.length),$.type="globstar",$.output=O(r),$.value+=y,A.output+=$.output,A.globstar=!0,k(y);continue}let Ee={type:"star",value:y,output:N};if(r.bash===!0){Ee.output=".*?",($.type==="bos"||$.type==="slash")&&(Ee.output=B+Ee.output),V(Ee);continue}if($&&($.type==="bracket"||$.type==="paren")&&r.regex===!0){Ee.output=y,V(Ee);continue}(A.index===A.start||$.type==="slash"||$.type==="dot")&&($.type==="dot"?(A.output+=C,$.output+=C):r.dot===!0?(A.output+=E,$.output+=E):(A.output+=B,$.output+=B),w()!=="*"&&(A.output+=m,$.output+=m)),V(Ee)}for(;A.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(na("closing","]"));A.output=Yt.escapeLast(A.output,"["),ee("brackets")}for(;A.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(na("closing",")"));A.output=Yt.escapeLast(A.output,"("),ee("parens")}for(;A.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(na("closing","}"));A.output=Yt.escapeLast(A.output,"{"),ee("braces")}if(r.strictSlashes!==!0&&($.type==="star"||$.type==="bracket")&&V({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};Ig.fastpaths=(t,e)=>{let r={...e},n=typeof r.maxLength=="number"?Math.min(Wl,r.maxLength):Wl,o=t.length;if(o>n)throw new SyntaxError(`Input length: ${o}, exceeds maximum allowed length: ${n}`);t=VS[t]||t;let i=Yt.isWindows(e),{DOT_LITERAL:a,SLASH_LITERAL:s,ONE_CHAR:u,DOTS_SLASH:c,NO_DOT:l,NO_DOTS:f,NO_DOTS_SLASH:d,STAR:h,START_ANCHOR:m}=Gl.globChars(i),b=r.dot?f:l,D=r.dot?d:l,C=r.capture?"":"?:",E={negated:!1,prefix:""},g=r.bash===!0?".*?":h;r.capture&&(g=`(${g})`);let _=B=>B.noglobstar===!0?g:`(${C}(?:(?!${m}${B.dot?c:a}).)*?)`,S=B=>{switch(B){case"*":return`${b}${u}${g}`;case".*":return`${a}${u}${g}`;case"*.*":return`${b}${g}${a}${u}${g}`;case"*/*":return`${b}${g}${s}${u}${D}${g}`;case"**":return b+_(r);case"**/*":return`(?:${b}${_(r)}${s})?${D}${u}${g}`;case"**/*.*":return`(?:${b}${_(r)}${s})?${D}${g}${a}${u}${g}`;case"**/.*":return`(?:${b}${_(r)}${s})?${a}${u}${g}`;default:{let R=/^(.*?)\.(\w+)$/.exec(B);if(!R)return;let N=S(R[1]);return N?N+a+R[2]:void 0}}},I=Yt.removePrefix(t,E),O=S(I);return O&&r.strictSlashes!==!0&&(O+=`${s}?`),O};zS.exports=Ig});var KS=x((HY,WS)=>{"use strict";var kM=require("path"),$M=HS(),Rg=GS(),Bg=Os(),PM=As(),TM=t=>t&&typeof t=="object"&&!Array.isArray(t),Ze=(t,e,r=!1)=>{if(Array.isArray(t)){let l=t.map(d=>Ze(d,e,r));return d=>{for(let h of l){let m=h(d);if(m)return m}return!1}}let n=TM(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=Bg.isWindows(e),a=n?Ze.compileRe(t,e):Ze.makeRe(t,e,!1,!0),s=a.state;delete a.state;let u=()=>!1;if(o.ignore){let l={...e,ignore:null,onMatch:null,onResult:null};u=Ze(o.ignore,l,r)}let c=(l,f=!1)=>{let{isMatch:d,match:h,output:m}=Ze.test(l,a,e,{glob:t,posix:i}),b={glob:t,state:s,regex:a,posix:i,input:l,output:m,match:h,isMatch:d};return typeof o.onResult=="function"&&o.onResult(b),d===!1?(b.isMatch=!1,f?b:!1):u(l)?(typeof o.onIgnore=="function"&&o.onIgnore(b),b.isMatch=!1,f?b:!1):(typeof o.onMatch=="function"&&o.onMatch(b),f?b:!0)};return r&&(c.state=s),c};Ze.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?Bg.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=Ze.matchBase(t,e,r,o):s=e.exec(u)),{isMatch:!!s,match:s,output:u}};Ze.matchBase=(t,e,r,n=Bg.isWindows(r))=>(e instanceof RegExp?e:Ze.makeRe(e,r)).test(kM.basename(t));Ze.isMatch=(t,e,r)=>Ze(e,r)(t);Ze.parse=(t,e)=>Array.isArray(t)?t.map(r=>Ze.parse(r,e)):Rg(t,{...e,fastpaths:!1});Ze.scan=(t,e)=>$M(t,e);Ze.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=Ze.toRegex(s,e);return n===!0&&(u.state=t),u};Ze.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=Rg.fastpaths(t,e)),o.output||(o=Rg(t,e)),Ze.compileRe(o,e,r,n)};Ze.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/$^/}};Ze.constants=PM;WS.exports=Ze});var JS=x((VY,YS)=>{"use strict";YS.exports=KS()});var rF=x((zY,tF)=>{"use strict";var ZS=require("util"),QS=kS(),Lr=JS(),jg=Os(),XS=t=>t===""||t==="./",eF=t=>{let e=t.indexOf("{");return e>-1&&t.indexOf("}",e)>-1},Re=(t,e,r)=>{e=[].concat(e),t=[].concat(t);let n=new Set,o=new Set,i=new Set,a=0,s=l=>{i.add(l.output),r&&r.onResult&&r.onResult(l)};for(let l=0;l<e.length;l++){let f=Lr(String(e[l]),{...r,onResult:s},!0),d=f.state.negated||f.state.negatedExtglob;d&&a++;for(let h of t){let m=f(h,!0);(d?!m.isMatch:m.isMatch)&&(d?n.add(m.output):(n.delete(m.output),o.add(m.output)))}}let c=(a===e.length?[...i]:[...o]).filter(l=>!n.has(l));if(r&&c.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?e.map(l=>l.replace(/\\/g,"")):e}return c};Re.match=Re;Re.matcher=(t,e)=>Lr(t,e);Re.isMatch=(t,e,r)=>Lr(e,r)(t);Re.any=Re.isMatch;Re.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(Re(t,e,{...r,onResult:i}));for(let s of o)a.has(s)||n.add(s);return[...n]};Re.contains=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${ZS.inspect(t)}"`);if(Array.isArray(e))return e.some(n=>Re.contains(t,n,r));if(typeof e=="string"){if(XS(t)||XS(e))return!1;if(t.includes(e)||t.startsWith("./")&&t.slice(2).includes(e))return!0}return Re.isMatch(t,e,{...r,contains:!0})};Re.matchKeys=(t,e,r)=>{if(!jg.isObject(t))throw new TypeError("Expected the first argument to be an object");let n=Re(Object.keys(t),e,r),o={};for(let i of n)o[i]=t[i];return o};Re.some=(t,e,r)=>{let n=[].concat(t);for(let o of[].concat(e)){let i=Lr(String(o),r);if(n.some(a=>i(a)))return!0}return!1};Re.every=(t,e,r)=>{let n=[].concat(t);for(let o of[].concat(e)){let i=Lr(String(o),r);if(!n.every(a=>i(a)))return!1}return!0};Re.all=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${ZS.inspect(t)}"`);return[].concat(e).every(n=>Lr(n,r)(t))};Re.capture=(t,e,r)=>{let n=jg.isWindows(r),i=Lr.makeRe(String(t),{...r,capture:!0}).exec(n?jg.toPosixSlashes(e):e);if(i)return i.slice(1).map(a=>a===void 0?"":a)};Re.makeRe=(...t)=>Lr.makeRe(...t);Re.scan=(...t)=>Lr.scan(...t);Re.parse=(t,e)=>{let r=[];for(let n of[].concat(t||[]))for(let o of QS(String(n),e))r.push(Lr.parse(o,e));return r};Re.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!eF(t)?[t]:QS(t,e)};Re.braceExpand=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return Re.braces(t,{...e,expand:!0})};Re.hasBraces=eF;tF.exports=Re});var HF=x((HJ,un)=>{var Oe=require("fs"),Xl=require("os"),gt=require("path"),SF=require("crypto"),Mr={fs:Oe.constants,os:Xl.constants},FF="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",$F=/XXXXXX/,a9=3,PF=(Mr.O_CREAT||Mr.fs.O_CREAT)|(Mr.O_EXCL||Mr.fs.O_EXCL)|(Mr.O_RDWR||Mr.fs.O_RDWR),s9=Xl.platform()==="win32",u9=Mr.EBADF||Mr.os.errno.EBADF,c9=Mr.ENOENT||Mr.os.errno.ENOENT,TF=448,IF=384,l9="exit",ia=[],RF=Oe.rmdirSync.bind(Oe),BF=!1;function f9(t,e){return Oe.rm(t,{recursive:!0},e)}function jF(t){return Oe.rmSync(t,{recursive:!0})}function zg(t,e){let r=aa(t,e),n=r[0],o=r[1];w9(n,function(i,a){if(i)return o(i);let s=a.tries;(function u(){try{let c=LF(a);Oe.stat(c,function(l){if(!l)return s-- >0?u():o(new Error("Could not get a unique tmp filename, max tries reached "+c));o(null,c)})}catch(c){o(c)}})()})}function Gg(t){let e=aa(t),r=e[0],n=C9(r),o=n.tries;do{let i=LF(n);try{Oe.statSync(i)}catch{return i}}while(o-- >0);throw new Error("Could not get a unique tmp filename, max tries reached")}function p9(t,e){let r=aa(t,e),n=r[0],o=r[1];zg(n,function(a,s){if(a)return o(a);Oe.open(s,PF,n.mode||IF,function(c,l){if(c)return o(c);if(n.discardDescriptor)return Oe.close(l,function(d){return o(d,s,void 0,Hg(s,-1,n,!1))});{let f=n.discardDescriptor||n.detachDescriptor;o(null,s,l,Hg(s,f?-1:l,n,!1))}})})}function d9(t){let e=aa(t),r=e[0],n=r.discardDescriptor||r.detachDescriptor,o=Gg(r),i=Oe.openSync(o,PF,r.mode||IF);return r.discardDescriptor&&(Oe.closeSync(i),i=void 0),{name:o,fd:i,removeCallback:Hg(o,n?-1:i,r,!0)}}function h9(t,e){let r=aa(t,e),n=r[0],o=r[1];zg(n,function(a,s){if(a)return o(a);Oe.mkdir(s,n.mode||TF,function(c){if(c)return o(c);o(null,s,NF(s,n,!1))})})}function m9(t){let e=aa(t),r=e[0],n=Gg(r);return Oe.mkdirSync(n,r.mode||TF),{name:n,removeCallback:NF(n,r,!0)}}function g9(t,e){let r=function(n){if(n&&!Vg(n))return e(n);e()};0<=t[0]?Oe.close(t[0],function(){Oe.unlink(t[1],r)}):Oe.unlink(t[1],r)}function D9(t){let e=null;try{0<=t[0]&&Oe.closeSync(t[0])}catch(r){if(!E9(r)&&!Vg(r))throw r}finally{try{Oe.unlinkSync(t[1])}catch(r){Vg(r)||(e=r)}}if(e!==null)throw e}function Hg(t,e,r,n){let o=Jl(D9,[e,t],n),i=Jl(g9,[e,t],n,o);return r.keep||ia.unshift(o),n?o:i}function NF(t,e,r){let n=e.unsafeCleanup?f9:Oe.rmdir.bind(Oe),o=e.unsafeCleanup?jF:RF,i=Jl(o,t,r),a=Jl(n,t,r,i);return e.keep||ia.unshift(i),r?i:a}function Jl(t,e,r,n){let o=!1;return function i(a){if(!o){let s=n||i,u=ia.indexOf(s);return u>=0&&ia.splice(u,1),o=!0,r||t===RF||t===jF?t(e):t(e,a||function(){})}}}function y9(){if(BF)for(;ia.length;)try{ia[0]()}catch{}}function AF(t){let e=[],r=null;try{r=SF.randomBytes(t)}catch{r=SF.pseudoRandomBytes(t)}for(let n=0;n<t;n++)e.push(FF[r[n]%FF.length]);return e.join("")}function Jt(t){return typeof t>"u"}function aa(t,e){if(typeof t=="function")return[{},t];if(Jt(t))return[{},e];let r={};for(let n of Object.getOwnPropertyNames(t))r[n]=t[n];return[r,e]}function b9(t,e,r){let n=gt.isAbsolute(t)?t:gt.join(e,t);Oe.stat(n,function(o){o?Oe.realpath(gt.dirname(n),function(i,a){if(i)return r(i);r(null,gt.join(a,gt.basename(n)))}):Oe.realpath(n,r)})}function v9(t,e){let r=gt.isAbsolute(t)?t:gt.join(e,t);try{return Oe.statSync(r),Oe.realpathSync(r)}catch{let o=Oe.realpathSync(gt.dirname(r));return gt.join(o,gt.basename(r))}}function LF(t){let e=t.tmpdir;if(!Jt(t.name))return gt.join(e,t.dir,t.name);if(!Jt(t.template))return gt.join(e,t.dir,t.template).replace($F,AF(6));let r=[t.prefix?t.prefix:"tmp","-",process.pid,"-",AF(12),t.postfix?"-"+t.postfix:""].join("");return gt.join(e,t.dir,r)}function UF(t){if(!Jt(t.name)){let e=t.name;if(gt.isAbsolute(e))throw new Error(`name option must not contain an absolute path, found "${e}".`);let r=gt.basename(e);if(r===".."||r==="."||r!==e)throw new Error(`name option must not contain a path, found "${e}".`)}if(!Jt(t.template)&&!t.template.match($F))throw new Error(`Invalid template, found "${t.template}".`);if(!Jt(t.tries)&&isNaN(t.tries)||t.tries<0)throw new Error(`Invalid tries, found "${t.tries}".`);t.tries=Jt(t.name)?t.tries||a9:1,t.keep=!!t.keep,t.detachDescriptor=!!t.detachDescriptor,t.discardDescriptor=!!t.discardDescriptor,t.unsafeCleanup=!!t.unsafeCleanup,t.prefix=Jt(t.prefix)?"":t.prefix,t.postfix=Jt(t.postfix)?"":t.postfix}function OF(t,e,r,n){if(Jt(e))return n(null);b9(e,r,function(o,i){if(o)return n(o);let a=gt.relative(r,i);if(!i.startsWith(r))return n(new Error(`${t} option must be relative to "${r}", found "${a}".`));n(null,a)})}function kF(t,e,r){if(Jt(e))return;let n=v9(e,r),o=gt.relative(r,n);if(!n.startsWith(r))throw new Error(`${t} option must be relative to "${r}", found "${o}".`);return o}function w9(t,e){x9(t,function(r,n){if(r)return e(r);t.tmpdir=n;try{UF(t,n)}catch(o){return e(o)}OF("dir",t.dir,n,function(o,i){if(o)return e(o);t.dir=Jt(i)?"":i,OF("template",t.template,n,function(a,s){if(a)return e(a);t.template=s,e(null,t)})})})}function C9(t){let e=t.tmpdir=qF(t);UF(t,e);let r=kF("dir",t.dir,e);return t.dir=Jt(r)?"":r,t.template=kF("template",t.template,e),t}function E9(t){return MF(t,-u9,"EBADF")}function Vg(t){return MF(t,-c9,"ENOENT")}function MF(t,e,r){return s9?t.code===r:t.code===r&&t.errno===e}function _9(){BF=!0}function x9(t,e){return Oe.realpath(t&&t.tmpdir||Xl.tmpdir(),e)}function qF(t){return Oe.realpathSync(t&&t.tmpdir||Xl.tmpdir())}process.addListener(l9,y9);Object.defineProperty(un.exports,"tmpdir",{enumerable:!0,configurable:!1,get:function(){return qF()}});un.exports.dir=h9;un.exports.dirSync=m9;un.exports.file=p9;un.exports.fileSync=d9;un.exports.tmpName=zg;un.exports.tmpNameSync=Gg;un.exports.setGracefulCleanup=_9});var ef=require("node:process");var mD=ge(hD(),1),{program:pt,createCommand:i7,createArgument:a7,createOption:s7,CommanderError:u7,InvalidArgumentError:c7,InvalidOptionArgumentError:l7,Command:f7,Argument:p7,Option:d7,Help:h7}=mD.default;var mr={name:"@capgo/cli",version:"8.0.0-alpha.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",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:"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"},devDependencies:{"@antfu/eslint-config":"^6.1.0","@bradenmacdonald/s3-lite-client":"npm:@jsr/bradenmacdonald__s3-lite-client@0.9.4","@capacitor/cli":"^7.4.4","@capgo/find-package-manager":"^0.0.18","@clack/prompts":"^0.11.0","@sauber/table":"npm:@jsr/sauber__table","@std/semver":"npm:@jsr/std__semver@1.0.6","@supabase/supabase-js":"^2.79.0","@types/adm-zip":"^0.5.7","@types/node":"^24.9.1","@types/prettyjson":"^0.0.33","@types/tmp":"^0.2.6","@vercel/ncc":"^0.38.4","adm-zip":"^0.5.16","ci-info":"^4.3.1",commander:"^14.0.2",esbuild:"^0.25.11",eslint:"^9.38.0","git-format-staged":"3.1.1",husky:"^9.1.7","is-wsl":"^3.1.0",open:"^10.1.2",prettyjson:"^1.2.5",tmp:"^0.2.5","tus-js-client":"^4.3.1",typescript:"^5.9.3"}};var Xi=require("node:fs");var Dt=ge(Cf(),1),Ro=require("node:process"),ln=ge(require("node:readline"),1),Ff=ge(require("node:readline"),1),SD=require("node:stream"),FD=ge(_f(),1);function SA({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 FA=SA();function AD(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(FA,"")}function OD(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var kD={exports:{}};(function(t){var e={};t.exports=e,e.eastAsianWidth=function(n){var o=n.charCodeAt(0),i=n.length==2?n.charCodeAt(1):0,a=o;return 55296<=o&&o<=56319&&56320<=i&&i<=57343&&(o&=1023,i&=1023,a=o<<10|i,a+=65536),a==12288||65281<=a&&a<=65376||65504<=a&&a<=65510?"F":a==8361||65377<=a&&a<=65470||65474<=a&&a<=65479||65482<=a&&a<=65487||65490<=a&&a<=65495||65498<=a&&a<=65500||65512<=a&&a<=65518?"H":4352<=a&&a<=4447||4515<=a&&a<=4519||4602<=a&&a<=4607||9001<=a&&a<=9002||11904<=a&&a<=11929||11931<=a&&a<=12019||12032<=a&&a<=12245||12272<=a&&a<=12283||12289<=a&&a<=12350||12353<=a&&a<=12438||12441<=a&&a<=12543||12549<=a&&a<=12589||12593<=a&&a<=12686||12688<=a&&a<=12730||12736<=a&&a<=12771||12784<=a&&a<=12830||12832<=a&&a<=12871||12880<=a&&a<=13054||13056<=a&&a<=19903||19968<=a&&a<=42124||42128<=a&&a<=42182||43360<=a&&a<=43388||44032<=a&&a<=55203||55216<=a&&a<=55238||55243<=a&&a<=55291||63744<=a&&a<=64255||65040<=a&&a<=65049||65072<=a&&a<=65106||65108<=a&&a<=65126||65128<=a&&a<=65131||110592<=a&&a<=110593||127488<=a&&a<=127490||127504<=a&&a<=127546||127552<=a&&a<=127560||127568<=a&&a<=127569||131072<=a&&a<=194367||177984<=a&&a<=196605||196608<=a&&a<=262141?"W":32<=a&&a<=126||162<=a&&a<=163||165<=a&&a<=166||a==172||a==175||10214<=a&&a<=10221||10629<=a&&a<=10630?"Na":a==161||a==164||167<=a&&a<=168||a==170||173<=a&&a<=174||176<=a&&a<=180||182<=a&&a<=186||188<=a&&a<=191||a==198||a==208||215<=a&&a<=216||222<=a&&a<=225||a==230||232<=a&&a<=234||236<=a&&a<=237||a==240||242<=a&&a<=243||247<=a&&a<=250||a==252||a==254||a==257||a==273||a==275||a==283||294<=a&&a<=295||a==299||305<=a&&a<=307||a==312||319<=a&&a<=322||a==324||328<=a&&a<=331||a==333||338<=a&&a<=339||358<=a&&a<=359||a==363||a==462||a==464||a==466||a==468||a==470||a==472||a==474||a==476||a==593||a==609||a==708||a==711||713<=a&&a<=715||a==717||a==720||728<=a&&a<=731||a==733||a==735||768<=a&&a<=879||913<=a&&a<=929||931<=a&&a<=937||945<=a&&a<=961||963<=a&&a<=969||a==1025||1040<=a&&a<=1103||a==1105||a==8208||8211<=a&&a<=8214||8216<=a&&a<=8217||8220<=a&&a<=8221||8224<=a&&a<=8226||8228<=a&&a<=8231||a==8240||8242<=a&&a<=8243||a==8245||a==8251||a==8254||a==8308||a==8319||8321<=a&&a<=8324||a==8364||a==8451||a==8453||a==8457||a==8467||a==8470||8481<=a&&a<=8482||a==8486||a==8491||8531<=a&&a<=8532||8539<=a&&a<=8542||8544<=a&&a<=8555||8560<=a&&a<=8569||a==8585||8592<=a&&a<=8601||8632<=a&&a<=8633||a==8658||a==8660||a==8679||a==8704||8706<=a&&a<=8707||8711<=a&&a<=8712||a==8715||a==8719||a==8721||a==8725||a==8730||8733<=a&&a<=8736||a==8739||a==8741||8743<=a&&a<=8748||a==8750||8756<=a&&a<=8759||8764<=a&&a<=8765||a==8776||a==8780||a==8786||8800<=a&&a<=8801||8804<=a&&a<=8807||8810<=a&&a<=8811||8814<=a&&a<=8815||8834<=a&&a<=8835||8838<=a&&a<=8839||a==8853||a==8857||a==8869||a==8895||a==8978||9312<=a&&a<=9449||9451<=a&&a<=9547||9552<=a&&a<=9587||9600<=a&&a<=9615||9618<=a&&a<=9621||9632<=a&&a<=9633||9635<=a&&a<=9641||9650<=a&&a<=9651||9654<=a&&a<=9655||9660<=a&&a<=9661||9664<=a&&a<=9665||9670<=a&&a<=9672||a==9675||9678<=a&&a<=9681||9698<=a&&a<=9701||a==9711||9733<=a&&a<=9734||a==9737||9742<=a&&a<=9743||9748<=a&&a<=9749||a==9756||a==9758||a==9792||a==9794||9824<=a&&a<=9825||9827<=a&&a<=9829||9831<=a&&a<=9834||9836<=a&&a<=9837||a==9839||9886<=a&&a<=9887||9918<=a&&a<=9919||9924<=a&&a<=9933||9935<=a&&a<=9953||a==9955||9960<=a&&a<=9983||a==10045||a==10071||10102<=a&&a<=10111||11093<=a&&a<=11097||12872<=a&&a<=12879||57344<=a&&a<=63743||65024<=a&&a<=65039||a==65533||127232<=a&&a<=127242||127248<=a&&a<=127277||127280<=a&&a<=127337||127344<=a&&a<=127386||917760<=a&&a<=917999||983040<=a&&a<=1048573||1048576<=a&&a<=1114109?"A":"N"},e.characterLength=function(n){var o=this.eastAsianWidth(n);return o=="F"||o=="W"||o=="A"?2:1};function r(n){return n.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}e.length=function(n){for(var o=r(n),i=0,a=0;a<o.length;a++)i=i+this.characterLength(o[a]);return i},e.slice=function(n,o,i){textLen=e.length(n),o=o||0,i=i||1,o<0&&(o=textLen+o),i<0&&(i=textLen+i);for(var a="",s=0,u=r(n),c=0;c<u.length;c++){var l=u[c],f=e.length(l);if(s>=o-(f==2?1:0))if(s+f<=i)a+=l;else break;s+=f}return a}})(kD);var AA=kD.exports,OA=OD(AA),kA=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},$A=OD(kA);function la(t,e={}){if(typeof t!="string"||t.length===0||(e={ambiguousIsNarrow:!0,...e},t=AD(t),t.length===0))return 0;t=t.replace($A()," ");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(OA.eastAsianWidth(o)){case"F":case"W":n+=2;break;case"A":n+=r;break;default:n+=1}}return n}var xf=10,bD=(t=0)=>e=>`\x1B[${e+t}m`,vD=(t=0)=>e=>`\x1B[${38+t};5;${e}m`,wD=(t=0)=>(e,r,n)=>`\x1B[${38+t};2;${e};${r};${n}m`,Be={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(Be.modifier);var PA=Object.keys(Be.color),TA=Object.keys(Be.bgColor);[...PA,...TA];function IA(){let t=new Map;for(let[e,r]of Object.entries(Be)){for(let[n,o]of Object.entries(r))Be[n]={open:`\x1B[${o[0]}m`,close:`\x1B[${o[1]}m`},r[n]=Be[n],t.set(o[0],o[1]);Object.defineProperty(Be,e,{value:r,enumerable:!1})}return Object.defineProperty(Be,"codes",{value:t,enumerable:!1}),Be.color.close="\x1B[39m",Be.bgColor.close="\x1B[49m",Be.color.ansi=bD(),Be.color.ansi256=vD(),Be.color.ansi16m=wD(),Be.bgColor.ansi=bD(xf),Be.bgColor.ansi256=vD(xf),Be.bgColor.ansi16m=wD(xf),Object.defineProperties(Be,{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=>Be.rgbToAnsi256(...Be.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)=>Be.ansi256ToAnsi(Be.rgbToAnsi256(e,r,n)),enumerable:!1},hexToAnsi:{value:e=>Be.ansi256ToAnsi(Be.hexToAnsi256(e)),enumerable:!1}}),Be}var RA=IA(),Ws=new Set(["\x1B","\x9B"]),BA=39,Of="\x07",$D="[",jA="]",PD="m",kf=`${jA}8;;`,CD=t=>`${Ws.values().next().value}${$D}${t}${PD}`,ED=t=>`${Ws.values().next().value}${kf}${t}${Of}`,NA=t=>t.split(" ").map(e=>la(e)),Sf=(t,e,r)=>{let n=[...e],o=!1,i=!1,a=la(AD(t[t.length-1]));for(let[s,u]of n.entries()){let c=la(u);if(a+c<=r?t[t.length-1]+=u:(t.push(u),a=0),Ws.has(u)&&(o=!0,i=n.slice(s+1).join("").startsWith(kf)),o){i?u===Of&&(o=!1,i=!1):u===PD&&(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())},LA=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!(la(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},UA=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let n="",o,i,a=NA(t),s=[""];for(let[c,l]of t.split(" ").entries()){r.trim!==!1&&(s[s.length-1]=s[s.length-1].trimStart());let f=la(s[s.length-1]);if(c!==0&&(f>=e&&(r.wordWrap===!1||r.trim===!1)&&(s.push(""),f=0),(f>0||r.trim===!1)&&(s[s.length-1]+=" ",f++)),r.hard&&a[c]>e){let d=e-f,h=1+Math.floor((a[c]-d-1)/e);Math.floor((a[c]-1)/e)<h&&s.push(""),Sf(s,l,e);continue}if(f+a[c]>e&&f>0&&a[c]>0){if(r.wordWrap===!1&&f<e){Sf(s,l,e);continue}s.push("")}if(f+a[c]>e&&r.wordWrap===!1){Sf(s,l,e);continue}s[s.length-1]+=l}r.trim!==!1&&(s=s.map(c=>LA(c)));let u=[...s.join(`
|
|
105
105
|
`)];for(let[c,l]of u.entries()){if(n+=l,Ws.has(l)){let{groups:d}=new RegExp(`(?:\\${$D}(?<code>\\d+)m|\\${kf}(?<uri>.*)${Of})`).exec(u.slice(c).join(""))||{groups:{}};if(d.code!==void 0){let h=Number.parseFloat(d.code);o=h===BA?void 0:h}else d.uri!==void 0&&(i=d.uri.length===0?void 0:d.uri)}let f=RA.codes.get(Number(o));u[c+1]===`
|
|
106
106
|
`?(i&&(n+=ED("")),o&&f&&(n+=CD(f))):l===`
|
|
107
107
|
`&&(o&&f&&(n+=CD(o)),i&&(n+=ED(i)))}return n};function _D(t,e,r){return String(t).normalize().replace(/\r\n/g,`
|
|
@@ -193,7 +193,7 @@ ${U(i)}`),new Error(`Cannot retrieve unknown version for app ${e}: ${U(i)}`)}fun
|
|
|
193
193
|
`)+`
|
|
194
194
|
`,n.join(";").toLowerCase(),o].join(`
|
|
195
195
|
`)}async function W2(t,e,r){let n=await jl(t),o=Dg(r,e);return[_s,Ao(e),o,n].join(`
|
|
196
|
-
`)}async function bg(t,e,r){let n=gg(t),o=await ko("AWS4"+r,n),i=await ko(o,e),a=await ko(i,"s3");return await ko(a,"aws4_request")}function vg(t,e,r){return`${t}/${Dg(e,r)}`}async function ko(t,e){let r=new TextEncoder,n=await crypto.subtle.importKey("raw",t instanceof Uint8Array?t:r.encode(t),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"]),o=await crypto.subtle.sign("HMAC",n,e instanceof Uint8Array?e:r.encode(e));return new Uint8Array(o)}async function K2(t){if(!t.accessKey)throw new Rn;if(!t.secretKey)throw new ta;if(t.expirySeconds<1||t.expirySeconds>604800)throw new Cs;let e=new Date(t.date);e.setSeconds(e.getSeconds()+t.expirySeconds);let r=vg(t.accessKey,t.region,t.date),n=Ao(t.date),o={"X-Amz-Algorithm":_s,"X-Amz-Credential":r,"X-Amz-Date":n,key:t.objectKey,...t.fields},i=[{bucket:t.bucket},{key:t.objectKey},{"X-Amz-Algorithm":_s},{"X-Amz-Credential":r},{"X-Amz-Date":n}];t.conditions&&i.push(...t.conditions);for(let[h,m]of Object.entries(t.fields||{}))["key","X-Amz-Algorithm","X-Amz-Credential","X-Amz-Date"].includes(h)||i.push({[h]:m});let a={expiration:e.toISOString(),conditions:i},s=new TextEncoder().encode(JSON.stringify(a)),u=btoa(String.fromCharCode(...s));o.policy=u;let c=u,l=await bg(t.date,t.region,t.secretKey),f=Es(await ko(l,c)).toLowerCase();return o["X-Amz-Signature"]=f,{url:`${t.protocol}//${t.host}/${t.bucket}`,fields:o}}var gU=["Content-Type","Cache-Control","Content-Disposition","Content-Encoding","Content-Language","Expires","x-amz-checksum-sha256","x-amz-grant-full-control","x-amz-grant-read","x-amz-grant-read-acp","x-amz-grant-write-acp","x-amz-server-side-encryption","x-amz-storage-class","x-amz-website-redirect-location","x-amz-server-side-encryption-customer-algorithm","x-amz-server-side-encryption-customer-key","x-amz-server-side-encryption-customer-key-MD5","x-amz-server-side-encryption-aws-kms-key-id","x-amz-server-side-encryption-context","x-amz-server-side-encryption-bucket-key-enabled","x-amz-request-payer","x-amz-tagging","x-amz-object-lock-mode","x-amz-object-lock-retain-until-date","x-amz-object-lock-legal-hold","x-amz-expected-bucket-owner"],DU=5*1024*1024,yU=5*1024*1024*1024,wg=5*1024*1024*1024*1024,xs=class{host;port;protocol;accessKey;#e;sessionToken;defaultBucket;region;userAgent="s3-lite-client";pathStyle;pathPrefix;constructor({endPoint:e,useSSL:r,port:n,pathPrefix:o,...i}){if(/^https?:\/\//i.test(e)){if(r!==void 0||n!==void 0||o!==void 0)throw new Ct("useSSL/port/pathPrefix cannot be specified if endPoint is a URL.");try{let s=new URL(e);e=s.hostname,r=s.protocol==="https:",n=s.port?parseInt(s.port,10):r?443:80,s.pathname&&s.pathname!=="/"&&(o=s.pathname.endsWith("/")?s.pathname.slice(0,-1):s.pathname)}catch{throw new ws(`Invalid endPoint URL: ${e}`)}}if(typeof e!="string"||e.length===0)throw new ws(`Invalid endPoint: ${e}`);if(r===void 0&&(r=!0),n!==void 0&&!M2(n))throw new Ct(`Invalid port: ${n}`);if(i.accessKey&&!i.secretKey)throw new Ct("If specifying access key, secret key must also be provided.");if(i.accessKey&&i.accessKey.startsWith("ASIA")&&!i.sessionToken)throw new Ct("If specifying temporary access key, session token must also be provided.");let a=r?443:80;if(this.port=n??a,this.host=e.toLowerCase()+(this.port!==a?`:${this.port}`:""),this.protocol=r?"https:":"http:",this.accessKey=i.accessKey,this.#e=i.secretKey??"",this.sessionToken=i.sessionToken,this.pathStyle=i.pathStyle??!0,this.pathPrefix=o??"",this.defaultBucket=i.bucket,this.region=i.region,this.pathPrefix){if(!this.pathStyle)throw new Ct("pathPrefix is incompatible with pathStyle=false");if(!this.pathPrefix.startsWith("/"))throw new Ct("pathPrefix should start with /");if(this.pathPrefix.endsWith("/"))throw new Ct("pathPrefix should not end with /")}}getBucketName(e){let r=e?.bucketName??this.defaultBucket;if(r===void 0||!q2(r))throw new Bl(r??"");return r}buildRequestOptions(e){let r=this.getBucketName(e),n=this.pathStyle?this.host:`${r}.${this.host}`,o=e.headers??new Headers;o.set("host",n);let i=typeof e.query=="object"?new URLSearchParams(e.query).toString().replace("+","%20"):e.query,a=this.pathStyle?`${this.pathPrefix}/${r}/${e.objectName}`:`/${e.objectName}`,s=i?`?${i}`:"",u=a+s,c=a.split("/").map(l=>encodeURIComponent(l)).join("/")+s;return{headers:o,host:n,path:u,encodedPath:c}}async makeRequest({method:e,payload:r,...n}){let o=new Date,{headers:i,host:a,path:s,encodedPath:u}=this.buildRequestOptions(n),c=n.statusCode??200;if(e==="POST"||e==="PUT"||e==="DELETE")r===void 0?r=new Uint8Array:typeof r=="string"&&(r=new TextEncoder().encode(r)),i.set("Content-Length",String(r.length));else if(r)throw new Error(`Unexpected payload on ${e} request.`);let l=await jl(r??new Uint8Array);i.set("x-amz-date",Ao(o)),i.set("x-amz-content-sha256",l),this.accessKey&&(this.sessionToken&&i.set("x-amz-security-token",this.sessionToken),i.set("authorization",await H2({headers:i,method:e,path:s,accessKey:this.accessKey,secretKey:this.#e,region:this.region,date:o})));let f=`${this.protocol}//${a}${u}`,d=await fetch(f,{method:e,headers:i,body:r});if(d.status!==c)throw d.status>=400?await U2(d):d.status===301?new an(d.status,"UnexpectedRedirect",'The server unexpectedly returned a redirect response. With AWS S3, this usually means you need to use a region-specific endpoint like "s3.us-west-2.amazonaws.com" instead of "s3.amazonaws.com"'):new an(d.status,"UnexpectedStatusCode",`Unexpected response code from the server (expected ${c}, got ${d.status} ${d.statusText}).`);return n.returnBody||await d.body?.getReader().read(),d}async deleteObject(e,r={}){let n=this.getBucketName(r);if(!Bn(e))throw new jr(e);let o=r.versionId?{versionId:r.versionId}:{},i=new Headers;r.governanceBypass&&i.set("X-Amz-Bypass-Governance-Retention","true"),await this.makeRequest({method:"DELETE",bucketName:n,objectName:e,headers:i,query:o,statusCode:204})}async exists(e,r){try{return await this.statObject(e,r),!0}catch(n){if(n instanceof an&&n.statusCode===404)return!1;throw n}}getObject(e,r){return this.getPartialObject(e,{...r,offset:0,length:0})}async getPartialObject(e,{offset:r,length:n,...o}){let i=this.getBucketName(o);if(!Bn(e))throw new jr(e);let a=new Headers(Object.entries(o.metadata??{})),s=200;if(r||n){let c="";r?c=`bytes=${+r}-`:(c="bytes=0-",r=0),n&&(c+=`${+n+r-1}`),a.set("Range",c),s=206}let u={...o.responseParams,...o.versionId?{versionId:o.versionId}:{}};return await this.makeRequest({method:"GET",bucketName:i,objectName:e,headers:a,query:u,statusCode:s,returnBody:!0})}getPresignedUrl(e,r,n={}){if(!this.accessKey)throw new Rn;if(!Bn(r))throw new jr(r);let{headers:o,path:i}=this.buildRequestOptions({objectName:r,bucketName:n.bucketName,query:n.parameters}),a=n.requestDate??new Date,s=n.expirySeconds??1440*60*7;return V2({protocol:this.protocol,headers:o,method:e,path:i,accessKey:this.accessKey,secretKey:this.#e,sessionToken:this.sessionToken,region:this.region,date:a,expirySeconds:s})}presignedGetObject(e,r={}){let{versionId:n,responseParams:o,...i}=r,a={...o,...n?{versionId:n}:{}};return this.getPresignedUrl("GET",e,{parameters:a,...i})}async*listObjects(e={}){for await(let r of this.listObjectsGrouped({...e,delimiter:""}))if(r.type==="Object")yield r;else throw new Error(`Unexpected result from listObjectsGrouped(): ${r}`)}async*listObjectsGrouped(e){let r=this.getBucketName(e),n="",o=e.pageSize??1e3;if(o<1||o>1e3)throw new Ct("pageSize must be between 1 and 1,000.");let i=0;for(;;){let a=e.maxResults?Math.min(o,e.maxResults-i):o;if(a===0)return;let u=await(await this.makeRequest({method:"GET",bucketName:r,objectName:"",query:{"list-type":"2",prefix:e.prefix??"",delimiter:e.delimiter,"max-keys":String(a),...n?{"continuation-token":n}:{}},returnBody:!0})).text(),c=In(u).root;if(!c||c.name!=="ListBucketResult")throw new Error(`Unexpected response: ${u}`);let l=c.children.filter(h=>h.name==="CommonPrefixes").flatMap(h=>h.children),f=[];for(let h of l)f.push({type:"CommonPrefix",prefix:h.content??""}),i++;for(let h of c.children.filter(m=>m.name==="Contents"))f.push({type:"Object",key:h.children.find(m=>m.name==="Key")?.content??"",etag:Fo(h.children.find(m=>m.name==="ETag")?.content??""),size:parseInt(h.children.find(m=>m.name==="Size")?.content??"",10),lastModified:new Date(h.children.find(m=>m.name==="LastModified")?.content??"invalid")}),i++;f.sort((h,m)=>{let b=h.type==="Object"?h.key:h.prefix,D=m.type==="Object"?m.key:m.prefix;return b>D?1:b<D?-1:0});for(let h of f)yield h;if(c.children.find(h=>h.name==="IsTruncated")?.content==="true"){let h=c.children.find(m=>m.name==="NextContinuationToken")?.content;if(!h)throw new Error("Unexpectedly missing continuation token, but server said there are more results.");n=h}else return}}async putObject(e,r,n){let o=this.getBucketName(n);if(!Bn(e))throw new jr(e);let i,a;if(typeof r=="string"){let l=new TextEncoder().encode(r);typeof ReadableStream.from<"u"?a=ReadableStream.from([l]):a=new ReadableStream({start(f){f.enqueue(l),f.close()}}),i=l.length}else if(r instanceof Uint8Array)typeof ReadableStream.from<"u"?a=ReadableStream.from([r]):a=new ReadableStream({start(l){l.enqueue(r),l.close()}}),i=r.byteLength;else if(r instanceof ReadableStream)a=r;else throw new Ct("Invalid stream/data type provided.");if(n?.size!==void 0){if(i!==void 0&&n?.size!==i)throw new Ct(`size was specified (${n.size}) but doesn't match auto-detected size (${i}).`);if(typeof n.size!="number"||n.size<0||isNaN(n.size))throw new Ct(`invalid size specified: ${n.size}`);i=n.size}let s=n?.partSize??this.calculatePartSize(i);if(s<DU)throw new Ct("Part size should be greater than 5MB");if(s>yU)throw new Ct("Part size should be less than 6MB");let u=new Rl(s),c=new Nl({client:this,bucketName:o,objectName:e,partSize:s,metadata:n?.metadata??{}});return await a.pipeThrough(u).pipeTo(c),c.getResult()}calculatePartSize(e){if(e===void 0&&(e=wg),e>wg)throw new TypeError(`size should not be more than ${wg}`);let r=64*1024*1024;for(;;){if(r*1e4>e)return r;r+=16*1024*1024}}async statObject(e,r){let n=this.getBucketName(r);if(!Bn(e))throw new jr(e);let o={};r?.versionId&&(o.versionId=r.versionId);let i=await this.makeRequest({method:"HEAD",bucketName:n,objectName:e,query:o,headers:new Headers(r?.headers)}),a={};for(let s of gU)i.headers.has(s)&&(a[s]=i.headers.get(s));return i.headers.forEach((s,u)=>{u.startsWith("x-amz-meta-")&&(a[u]=i.headers.get(u))}),{type:"Object",key:e,size:parseInt(i.headers.get("content-length")??"",10),metadata:a,lastModified:new Date(i.headers.get("Last-Modified")??"error: missing last modified"),versionId:i.headers.get("x-amz-version-id")||null,etag:Fo(i.headers.get("ETag")??"")}}async copyObject(e,r,n){let o=this.getBucketName(n),i=e.sourceBucketName??o;if(!Bn(r))throw new jr(r);let a=`${i}/${e.sourceKey}`;e.sourceVersionId&&(a+=`?versionId=${e.sourceVersionId}`);let s=new Headers(n?.metadata);n?.metadata!==void 0&&s.set("x-amz-metadata-directive","REPLACE"),s.set("x-amz-copy-source",a);let u=await this.makeRequest({method:"PUT",bucketName:o,objectName:r,headers:s,returnBody:!0}),c=await u.text(),l=In(c).root;if(!l||l.name!=="CopyObjectResult")throw new Error(`Unexpected response: ${c}`);let f=l.children.find(h=>h.name==="ETag")?.content??"",d=l.children.find(h=>h.name==="LastModified")?.content;if(d===void 0)throw new Error("Unable to find <LastModified>...</LastModified> from the server.");return{copySourceVersionId:u.headers.get("x-amz-copy-source-version-id")||null,etag:Fo(f),lastModified:new Date(d),versionId:u.headers.get("x-amz-version-id")||null}}async bucketExists(e){try{return await this.listObjects({bucketName:e}).next(),!0}catch(r){if(r instanceof an&&r.statusCode===404)return!1;throw r}}async makeBucket(e){await this.makeRequest({method:"PUT",bucketName:this.getBucketName({bucketName:e}),objectName:"",statusCode:200})}async removeBucket(e){await this.makeRequest({method:"DELETE",bucketName:this.getBucketName({bucketName:e}),objectName:"",statusCode:204})}presignedPostObject(e,r={}){if(!Bn(e))throw new jr(e);let n=this.getBucketName(r);if(!n)throw new Error("Bucket name is required for presignedPost, but none was provided either to this method nor to the client constructor");let o=r.requestDate||new Date,i=r.expirySeconds??3600;return K2({protocol:this.protocol,host:this.host,bucket:n,objectKey:e,accessKey:this.accessKey||"",secretKey:this.#e||"",region:this.region,date:o,expirySeconds:i,conditions:r.conditions,fields:r.fields})}};var $o=require("node:fs"),Ll=require("node:path");function bU(t,e){return(0,$o.readFileSync)(t,"utf8").includes(e)}function Ss(t,e){let r=(0,$o.readdirSync)(t);for(let n of r){let o=(0,Ll.join)(t,n),i=(0,$o.statSync)(o);if(i.isDirectory()){if(Ss(o,e))return!0}else if(i.isFile()&&(0,Ll.extname)(o)===".js"&&bU(o,e))return!0}return!1}function Ul(t){return(0,$o.readdirSync)(t).indexOf("index.html")>-1}var oa=require("node:fs"),nF=require("node:os"),jn=require("node:path"),oF=require("node:process"),Kl=require("node:stream/consumers"),iF=require("node:zlib");var aF=ge(rF()),sF=ge(Lh());async function IM(t,e){try{return(await fetch(`${t.hostFilesApi}/files/read/attachments/${encodeURIComponent(e)}`,{method:"HEAD"})).ok}catch{return!1}}var uF=8192,cF="6.25.0",lF="7.0.35";async function RM(t){let e=(0,jn.join)(vt((0,oF.cwd)()),bt),n=(await ft(void 0,t.packageJson||e)).get("@capgo/capacitor-updater"),o;try{o=n?_e(n):void 0}catch{o=void 0}if(!n||!o)return{version:null,supportsBrotliV2:!1};let i=o.major===6&&dn(o,_e(cF)),a=o.major>=7&&dn(o,_e(lF)),s=i||a;return{version:`${o.major}.${o.minor}.${o.patch}`,supportsBrotliV2:s}}function BM(t,e){if(!e)return!1;let r=e.split(",").map(n=>n.trim()).filter(n=>!!n);return r.length===0?!1:aF.isMatch(t,r)}async function jM(t,e,r){let o=(0,oa.statSync)(t).size,i=await(0,Kl.buffer)((0,oa.createReadStream)(t));if(o===0)return{buffer:i,useBrotli:!1};if(BM(e,r.noBrotliPatterns))return p.info(`Skipping brotli for excluded file: ${e}`),{buffer:i,useBrotli:!1};if(o<uF)return{buffer:i,useBrotli:!1};try{let a=await(0,Kl.buffer)((0,oa.createReadStream)(t).pipe((0,iF.createBrotliCompress)({})));return a.length>=o-10?(p.info(`Brotli not effective for ${e} (${o} bytes), using original file`),{buffer:i,useBrotli:!1}):{buffer:a,useBrotli:!0}}catch(a){return p.warn(`Brotli compression failed for ${t}: ${a}, using original file`),{buffer:i,useBrotli:!1}}}async function fF(t,e,r,n,o,i){let a=we();a.start(o!=="v2"?"Generating the update manifest":"Generating the update manifest with v2 encryption");let s=await i2(t);if(o==="v2")for(let u of s)u.hash=ea(u.hash,i);return a.stop("Manifest generated successfully"),await be(e,{channel:"partial-update",event:"Generate manifest",icon:"\u{1F4C2}",user_id:r,tags:{"app-id":n},notify:!1}),s}function NM(t){return(0,nF.platform)()!=="win32"?t:jn.win32.normalize(t).split(jn.win32.sep).join(jn.posix.sep)}function LM(t){let e=t.split("/").map(r=>encodeURIComponent(r)).join("/");return t.includes(" ")&&p.warn(`File "${t}" contains spaces in its name.`),e}async function pF(t,e,r,n,o,i,a){let s=we();s.start("Preparing partial update with TUS protocol");let u=performance.now(),c=await ir(),l=!!(a.partial||a.delta||a.partialOnly||a.deltaOnly),{version:f,supportsBrotliV2:d}=await RM(a);if(d)a.disableBrotli?p.info("Brotli compression disabled by user request"):(s.message(`Using .br extension for compatible files (updater ${f})`),a.noBrotliPatterns&&p.info(`Files matching patterns (${a.noBrotliPatterns}) will be excluded from brotli compression`),p.info(`Files smaller than ${uF} bytes will be excluded from brotli compression (Brotli RFC minimum)`));else throw new Error(`Your project is using an older version of @capgo/capacitor-updater (${f||"unknown"}). To use Delta updates, please upgrade to version ${cF} (v6) or ${lF} (v7) or higher.`);let h=e.filter(C=>C.file.includes(" "));if(h.length>0)throw new Error(`Files with spaces in their names (${h.map(C=>C.file).join(", ")}). Please rename the files.`);let m=0,b=e.length,D=0;try{let C=e.map(async S=>{let I=(0,jn.join)(r,S.file),O=NM(S.file),B,R=!1;if(a.disableBrotli)B=await(0,Kl.buffer)((0,oa.createReadStream)(I)),R=!1;else{let Q=await jM(I,O,a);B=Q.buffer,R=Q.useBrotli}let N=B;i&&(N=Qi(B,i.sessionKey,i.ivSessionKey));let A=O;R&&(A=`${O}.br`,D++);let L=LM(A),q=`orgs/${o}/apps/${n}/delta/${S.hash}_${L}`;return await IM(c,q)?(m++,Promise.resolve({file_name:L,s3_path:q,file_hash:S.hash})):new Promise((Q,$)=>{let y=0,v=3,w=()=>{new sF.Upload(N,{endpoint:`${c.hostFilesApi}/files/upload/attachments/`,chunkSize:a.tusChunkSize,retryDelays:[0,1e3,3e3,5e3],removeFingerprintOnSuccess:!0,metadata:{filename:q},headers:{Authorization:t},onError:async T=>{let k=T.toString();if(k.includes("offset")||k.includes("409")||k.includes("conflict"))if(y++,y<=v){p.warn(`Offset mismatch for ${O}, retrying (attempt ${y}/${v})...`),await new Promise(M=>setTimeout(M,1e3*y)),w();return}else p.error(`Failed to upload ${O} after ${v} retries due to offset errors`),p.info("This may happen if the upload expired or there was a network issue. The file will be skipped.");else p.error(`Failed to upload ${O}: ${k}`);$(T)},onProgress(){let T=(m/b*100).toFixed(2);s.message(`Uploading partial update: ${T}%`)},onSuccess(){m++,Q({file_name:L,s3_path:q,file_hash:S.hash})}}).start()};w()})}),E=await Promise.all(C),_=((performance.now()-u)/1e3).toFixed(2);return s.stop(`Partial update uploaded successfully \u{1F4AA} in (${_} seconds)`),D>0&&p.info(`${D} of ${b} files were compressed with brotli and use .br extension`),await be(t,{channel:"app",event:`App Partial TUS done${D>0?" with .br extension":""}`,icon:"\u23EB",user_id:o,tags:{"app-id":n},notify:!1}),await be(t,{channel:"performance",event:"Partial upload performance",icon:"\u{1F684}",user_id:o,tags:{"app-id":n,time:_},notify:!1}),E}catch(C){let g=((performance.now()-u)/1e3).toFixed(2);if(s.stop(`Failed to upload Partial bundle (after ${g} seconds)`),l)throw p.error(`Error uploading partial update: ${C}`),p.error("Delta/partial upload was explicitly requested but failed. Upload aborted."),C;return p.info(`Error uploading partial update: ${C}, This is not a critical error, the bundle has been uploaded without the partial files`),null}}function me(t){throw p.error(t),new Error(t)}async function UM(t,e){let r=xr("",e.packageJson),n=e.bundle||t?.plugins?.CapacitorUpdater?.version||r||`0.0.1-beta.${(0,dF.randomUUID)().split("-")[0]}`;return Gi.test(n)||me(`Your bundle name ${n}, is not valid it should follow semver convention : https://semver.org/`),n}function MM(t){let e=t.apikey||ie();return e||me("Missing API key, you need to provide an API key to upload your bundle"),e}function qM(t,e,r){let n=he(t,r),o=e.path||r?.webDir;return n||me("Missing argument, you need to provide a appid or be in a capacitor project"),o||me("Missing argument, you need to provide a path (--path), or be in a capacitor project"),(0,Io.existsSync)(o)||me(`Path ${o} does not exist, build your app first, or provide a valid path`),{appid:n,path:o}}function HM(t,e){let r=t.codeCheck;(typeof r>"u"||r)&&(Ss(e,"notifyAppReady")||me(`notifyAppReady() is missing in the build folder of your app. see: https://capgo.app/docs/plugin/api/#notifyappready
|
|
196
|
+
`)}async function bg(t,e,r){let n=gg(t),o=await ko("AWS4"+r,n),i=await ko(o,e),a=await ko(i,"s3");return await ko(a,"aws4_request")}function vg(t,e,r){return`${t}/${Dg(e,r)}`}async function ko(t,e){let r=new TextEncoder,n=await crypto.subtle.importKey("raw",t instanceof Uint8Array?t:r.encode(t),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"]),o=await crypto.subtle.sign("HMAC",n,e instanceof Uint8Array?e:r.encode(e));return new Uint8Array(o)}async function K2(t){if(!t.accessKey)throw new Rn;if(!t.secretKey)throw new ta;if(t.expirySeconds<1||t.expirySeconds>604800)throw new Cs;let e=new Date(t.date);e.setSeconds(e.getSeconds()+t.expirySeconds);let r=vg(t.accessKey,t.region,t.date),n=Ao(t.date),o={"X-Amz-Algorithm":_s,"X-Amz-Credential":r,"X-Amz-Date":n,key:t.objectKey,...t.fields},i=[{bucket:t.bucket},{key:t.objectKey},{"X-Amz-Algorithm":_s},{"X-Amz-Credential":r},{"X-Amz-Date":n}];t.conditions&&i.push(...t.conditions);for(let[h,m]of Object.entries(t.fields||{}))["key","X-Amz-Algorithm","X-Amz-Credential","X-Amz-Date"].includes(h)||i.push({[h]:m});let a={expiration:e.toISOString(),conditions:i},s=new TextEncoder().encode(JSON.stringify(a)),u=btoa(String.fromCharCode(...s));o.policy=u;let c=u,l=await bg(t.date,t.region,t.secretKey),f=Es(await ko(l,c)).toLowerCase();return o["X-Amz-Signature"]=f,{url:`${t.protocol}//${t.host}/${t.bucket}`,fields:o}}var gU=["Content-Type","Cache-Control","Content-Disposition","Content-Encoding","Content-Language","Expires","x-amz-checksum-sha256","x-amz-grant-full-control","x-amz-grant-read","x-amz-grant-read-acp","x-amz-grant-write-acp","x-amz-server-side-encryption","x-amz-storage-class","x-amz-website-redirect-location","x-amz-server-side-encryption-customer-algorithm","x-amz-server-side-encryption-customer-key","x-amz-server-side-encryption-customer-key-MD5","x-amz-server-side-encryption-aws-kms-key-id","x-amz-server-side-encryption-context","x-amz-server-side-encryption-bucket-key-enabled","x-amz-request-payer","x-amz-tagging","x-amz-object-lock-mode","x-amz-object-lock-retain-until-date","x-amz-object-lock-legal-hold","x-amz-expected-bucket-owner"],DU=5*1024*1024,yU=5*1024*1024*1024,wg=5*1024*1024*1024*1024,xs=class{host;port;protocol;accessKey;#e;sessionToken;defaultBucket;region;userAgent="s3-lite-client";pathStyle;pathPrefix;constructor({endPoint:e,useSSL:r,port:n,pathPrefix:o,...i}){if(/^https?:\/\//i.test(e)){if(r!==void 0||n!==void 0||o!==void 0)throw new Ct("useSSL/port/pathPrefix cannot be specified if endPoint is a URL.");try{let s=new URL(e);e=s.hostname,r=s.protocol==="https:",n=s.port?parseInt(s.port,10):r?443:80,s.pathname&&s.pathname!=="/"&&(o=s.pathname.endsWith("/")?s.pathname.slice(0,-1):s.pathname)}catch{throw new ws(`Invalid endPoint URL: ${e}`)}}if(typeof e!="string"||e.length===0)throw new ws(`Invalid endPoint: ${e}`);if(r===void 0&&(r=!0),n!==void 0&&!M2(n))throw new Ct(`Invalid port: ${n}`);if(i.accessKey&&!i.secretKey)throw new Ct("If specifying access key, secret key must also be provided.");if(i.accessKey&&i.accessKey.startsWith("ASIA")&&!i.sessionToken)throw new Ct("If specifying temporary access key, session token must also be provided.");let a=r?443:80;if(this.port=n??a,this.host=e.toLowerCase()+(this.port!==a?`:${this.port}`:""),this.protocol=r?"https:":"http:",this.accessKey=i.accessKey,this.#e=i.secretKey??"",this.sessionToken=i.sessionToken,this.pathStyle=i.pathStyle??!0,this.pathPrefix=o??"",this.defaultBucket=i.bucket,this.region=i.region,this.pathPrefix){if(!this.pathStyle)throw new Ct("pathPrefix is incompatible with pathStyle=false");if(!this.pathPrefix.startsWith("/"))throw new Ct("pathPrefix should start with /");if(this.pathPrefix.endsWith("/"))throw new Ct("pathPrefix should not end with /")}}getBucketName(e){let r=e?.bucketName??this.defaultBucket;if(r===void 0||!q2(r))throw new Bl(r??"");return r}buildRequestOptions(e){let r=this.getBucketName(e),n=this.pathStyle?this.host:`${r}.${this.host}`,o=e.headers??new Headers;o.set("host",n);let i=typeof e.query=="object"?new URLSearchParams(e.query).toString().replace("+","%20"):e.query,a=this.pathStyle?`${this.pathPrefix}/${r}/${e.objectName}`:`/${e.objectName}`,s=i?`?${i}`:"",u=a+s,c=a.split("/").map(l=>encodeURIComponent(l)).join("/")+s;return{headers:o,host:n,path:u,encodedPath:c}}async makeRequest({method:e,payload:r,...n}){let o=new Date,{headers:i,host:a,path:s,encodedPath:u}=this.buildRequestOptions(n),c=n.statusCode??200;if(e==="POST"||e==="PUT"||e==="DELETE")r===void 0?r=new Uint8Array:typeof r=="string"&&(r=new TextEncoder().encode(r)),i.set("Content-Length",String(r.length));else if(r)throw new Error(`Unexpected payload on ${e} request.`);let l=await jl(r??new Uint8Array);i.set("x-amz-date",Ao(o)),i.set("x-amz-content-sha256",l),this.accessKey&&(this.sessionToken&&i.set("x-amz-security-token",this.sessionToken),i.set("authorization",await H2({headers:i,method:e,path:s,accessKey:this.accessKey,secretKey:this.#e,region:this.region,date:o})));let f=`${this.protocol}//${a}${u}`,d=await fetch(f,{method:e,headers:i,body:r});if(d.status!==c)throw d.status>=400?await U2(d):d.status===301?new an(d.status,"UnexpectedRedirect",'The server unexpectedly returned a redirect response. With AWS S3, this usually means you need to use a region-specific endpoint like "s3.us-west-2.amazonaws.com" instead of "s3.amazonaws.com"'):new an(d.status,"UnexpectedStatusCode",`Unexpected response code from the server (expected ${c}, got ${d.status} ${d.statusText}).`);return n.returnBody||await d.body?.getReader().read(),d}async deleteObject(e,r={}){let n=this.getBucketName(r);if(!Bn(e))throw new jr(e);let o=r.versionId?{versionId:r.versionId}:{},i=new Headers;r.governanceBypass&&i.set("X-Amz-Bypass-Governance-Retention","true"),await this.makeRequest({method:"DELETE",bucketName:n,objectName:e,headers:i,query:o,statusCode:204})}async exists(e,r){try{return await this.statObject(e,r),!0}catch(n){if(n instanceof an&&n.statusCode===404)return!1;throw n}}getObject(e,r){return this.getPartialObject(e,{...r,offset:0,length:0})}async getPartialObject(e,{offset:r,length:n,...o}){let i=this.getBucketName(o);if(!Bn(e))throw new jr(e);let a=new Headers(Object.entries(o.metadata??{})),s=200;if(r||n){let c="";r?c=`bytes=${+r}-`:(c="bytes=0-",r=0),n&&(c+=`${+n+r-1}`),a.set("Range",c),s=206}let u={...o.responseParams,...o.versionId?{versionId:o.versionId}:{}};return await this.makeRequest({method:"GET",bucketName:i,objectName:e,headers:a,query:u,statusCode:s,returnBody:!0})}getPresignedUrl(e,r,n={}){if(!this.accessKey)throw new Rn;if(!Bn(r))throw new jr(r);let{headers:o,path:i}=this.buildRequestOptions({objectName:r,bucketName:n.bucketName,query:n.parameters}),a=n.requestDate??new Date,s=n.expirySeconds??1440*60*7;return V2({protocol:this.protocol,headers:o,method:e,path:i,accessKey:this.accessKey,secretKey:this.#e,sessionToken:this.sessionToken,region:this.region,date:a,expirySeconds:s})}presignedGetObject(e,r={}){let{versionId:n,responseParams:o,...i}=r,a={...o,...n?{versionId:n}:{}};return this.getPresignedUrl("GET",e,{parameters:a,...i})}async*listObjects(e={}){for await(let r of this.listObjectsGrouped({...e,delimiter:""}))if(r.type==="Object")yield r;else throw new Error(`Unexpected result from listObjectsGrouped(): ${r}`)}async*listObjectsGrouped(e){let r=this.getBucketName(e),n="",o=e.pageSize??1e3;if(o<1||o>1e3)throw new Ct("pageSize must be between 1 and 1,000.");let i=0;for(;;){let a=e.maxResults?Math.min(o,e.maxResults-i):o;if(a===0)return;let u=await(await this.makeRequest({method:"GET",bucketName:r,objectName:"",query:{"list-type":"2",prefix:e.prefix??"",delimiter:e.delimiter,"max-keys":String(a),...n?{"continuation-token":n}:{}},returnBody:!0})).text(),c=In(u).root;if(!c||c.name!=="ListBucketResult")throw new Error(`Unexpected response: ${u}`);let l=c.children.filter(h=>h.name==="CommonPrefixes").flatMap(h=>h.children),f=[];for(let h of l)f.push({type:"CommonPrefix",prefix:h.content??""}),i++;for(let h of c.children.filter(m=>m.name==="Contents"))f.push({type:"Object",key:h.children.find(m=>m.name==="Key")?.content??"",etag:Fo(h.children.find(m=>m.name==="ETag")?.content??""),size:parseInt(h.children.find(m=>m.name==="Size")?.content??"",10),lastModified:new Date(h.children.find(m=>m.name==="LastModified")?.content??"invalid")}),i++;f.sort((h,m)=>{let b=h.type==="Object"?h.key:h.prefix,D=m.type==="Object"?m.key:m.prefix;return b>D?1:b<D?-1:0});for(let h of f)yield h;if(c.children.find(h=>h.name==="IsTruncated")?.content==="true"){let h=c.children.find(m=>m.name==="NextContinuationToken")?.content;if(!h)throw new Error("Unexpectedly missing continuation token, but server said there are more results.");n=h}else return}}async putObject(e,r,n){let o=this.getBucketName(n);if(!Bn(e))throw new jr(e);let i,a;if(typeof r=="string"){let l=new TextEncoder().encode(r);typeof ReadableStream.from<"u"?a=ReadableStream.from([l]):a=new ReadableStream({start(f){f.enqueue(l),f.close()}}),i=l.length}else if(r instanceof Uint8Array)typeof ReadableStream.from<"u"?a=ReadableStream.from([r]):a=new ReadableStream({start(l){l.enqueue(r),l.close()}}),i=r.byteLength;else if(r instanceof ReadableStream)a=r;else throw new Ct("Invalid stream/data type provided.");if(n?.size!==void 0){if(i!==void 0&&n?.size!==i)throw new Ct(`size was specified (${n.size}) but doesn't match auto-detected size (${i}).`);if(typeof n.size!="number"||n.size<0||isNaN(n.size))throw new Ct(`invalid size specified: ${n.size}`);i=n.size}let s=n?.partSize??this.calculatePartSize(i);if(s<DU)throw new Ct("Part size should be greater than 5MB");if(s>yU)throw new Ct("Part size should be less than 6MB");let u=new Rl(s),c=new Nl({client:this,bucketName:o,objectName:e,partSize:s,metadata:n?.metadata??{}});return await a.pipeThrough(u).pipeTo(c),c.getResult()}calculatePartSize(e){if(e===void 0&&(e=wg),e>wg)throw new TypeError(`size should not be more than ${wg}`);let r=64*1024*1024;for(;;){if(r*1e4>e)return r;r+=16*1024*1024}}async statObject(e,r){let n=this.getBucketName(r);if(!Bn(e))throw new jr(e);let o={};r?.versionId&&(o.versionId=r.versionId);let i=await this.makeRequest({method:"HEAD",bucketName:n,objectName:e,query:o,headers:new Headers(r?.headers)}),a={};for(let s of gU)i.headers.has(s)&&(a[s]=i.headers.get(s));return i.headers.forEach((s,u)=>{u.startsWith("x-amz-meta-")&&(a[u]=i.headers.get(u))}),{type:"Object",key:e,size:parseInt(i.headers.get("content-length")??"",10),metadata:a,lastModified:new Date(i.headers.get("Last-Modified")??"error: missing last modified"),versionId:i.headers.get("x-amz-version-id")||null,etag:Fo(i.headers.get("ETag")??"")}}async copyObject(e,r,n){let o=this.getBucketName(n),i=e.sourceBucketName??o;if(!Bn(r))throw new jr(r);let a=`${i}/${e.sourceKey}`;e.sourceVersionId&&(a+=`?versionId=${e.sourceVersionId}`);let s=new Headers(n?.metadata);n?.metadata!==void 0&&s.set("x-amz-metadata-directive","REPLACE"),s.set("x-amz-copy-source",a);let u=await this.makeRequest({method:"PUT",bucketName:o,objectName:r,headers:s,returnBody:!0}),c=await u.text(),l=In(c).root;if(!l||l.name!=="CopyObjectResult")throw new Error(`Unexpected response: ${c}`);let f=l.children.find(h=>h.name==="ETag")?.content??"",d=l.children.find(h=>h.name==="LastModified")?.content;if(d===void 0)throw new Error("Unable to find <LastModified>...</LastModified> from the server.");return{copySourceVersionId:u.headers.get("x-amz-copy-source-version-id")||null,etag:Fo(f),lastModified:new Date(d),versionId:u.headers.get("x-amz-version-id")||null}}async bucketExists(e){try{return await this.listObjects({bucketName:e}).next(),!0}catch(r){if(r instanceof an&&r.statusCode===404)return!1;throw r}}async makeBucket(e){await this.makeRequest({method:"PUT",bucketName:this.getBucketName({bucketName:e}),objectName:"",statusCode:200})}async removeBucket(e){await this.makeRequest({method:"DELETE",bucketName:this.getBucketName({bucketName:e}),objectName:"",statusCode:204})}presignedPostObject(e,r={}){if(!Bn(e))throw new jr(e);let n=this.getBucketName(r);if(!n)throw new Error("Bucket name is required for presignedPost, but none was provided either to this method nor to the client constructor");let o=r.requestDate||new Date,i=r.expirySeconds??3600;return K2({protocol:this.protocol,host:this.host,bucket:n,objectKey:e,accessKey:this.accessKey||"",secretKey:this.#e||"",region:this.region,date:o,expirySeconds:i,conditions:r.conditions,fields:r.fields})}};var $o=require("node:fs"),Ll=require("node:path");function bU(t,e){return(0,$o.readFileSync)(t,"utf8").includes(e)}function Ss(t,e){let r=(0,$o.readdirSync)(t);for(let n of r){let o=(0,Ll.join)(t,n),i=(0,$o.statSync)(o);if(i.isDirectory()){if(Ss(o,e))return!0}else if(i.isFile()&&(0,Ll.extname)(o)===".js"&&bU(o,e))return!0}return!1}function Ul(t){return(0,$o.readdirSync)(t).indexOf("index.html")>-1}var oa=require("node:fs"),nF=require("node:os"),jn=require("node:path"),oF=require("node:process"),Kl=require("node:stream/consumers"),iF=require("node:zlib");var aF=ge(rF()),sF=ge(Lh());async function IM(t,e){try{return(await fetch(`${t.hostFilesApi}/files/read/attachments/${encodeURIComponent(e)}`,{method:"HEAD"})).ok}catch{return!1}}var uF=8192,cF="6.25.0",lF="7.0.35";async function RM(t){let e=(0,jn.join)(vt((0,oF.cwd)()),bt),n=(await ft(void 0,t.packageJson||e)).get("@capgo/capacitor-updater"),o;try{o=n?_e(n):void 0}catch{o=void 0}if(!n||!o)return{version:null,supportsBrotliV2:!1};let i=o.major===6&&dn(o,_e(cF)),a=o.major>=7&&dn(o,_e(lF)),s=i||a;return{version:`${o.major}.${o.minor}.${o.patch}`,supportsBrotliV2:s}}function BM(t,e){if(!e)return!1;let r=e.split(",").map(n=>n.trim()).filter(n=>!!n);return r.length===0?!1:aF.isMatch(t,r)}async function jM(t,e,r){let o=(0,oa.statSync)(t).size,i=await(0,Kl.buffer)((0,oa.createReadStream)(t));if(o===0)return{buffer:i,useBrotli:!1};if(BM(e,r.noBrotliPatterns))return{buffer:i,useBrotli:!1};if(o<uF)return{buffer:i,useBrotli:!1};try{let a=await(0,Kl.buffer)((0,oa.createReadStream)(t).pipe((0,iF.createBrotliCompress)({})));return a.length>=o-10?(p.info(`Brotli not effective for ${e} (${o} bytes), using original file`),{buffer:i,useBrotli:!1}):{buffer:a,useBrotli:!0}}catch(a){return p.warn(`Brotli compression failed for ${t}: ${a}, using original file`),{buffer:i,useBrotli:!1}}}async function fF(t,e,r,n,o,i){let a=we();a.start(o!=="v2"?"Generating the update manifest":"Generating the update manifest with v2 encryption");let s=await i2(t);if(o==="v2")for(let u of s)u.hash=ea(u.hash,i);return a.stop("Manifest generated successfully"),await be(e,{channel:"partial-update",event:"Generate manifest",icon:"\u{1F4C2}",user_id:r,tags:{"app-id":n},notify:!1}),s}function NM(t){return(0,nF.platform)()!=="win32"?t:jn.win32.normalize(t).split(jn.win32.sep).join(jn.posix.sep)}function LM(t){let e=t.split("/").map(r=>encodeURIComponent(r)).join("/");return t.includes(" ")&&p.warn(`File "${t}" contains spaces in its name.`),e}async function pF(t,e,r,n,o,i,a){let s=we();s.start("Preparing partial update with TUS protocol");let u=performance.now(),c=await ir(),l=!!(a.partial||a.delta||a.partialOnly||a.deltaOnly),{version:f,supportsBrotliV2:d}=await RM(a);if(d)a.disableBrotli?p.info("Brotli compression disabled by user request"):(s.message(`Using .br extension for compatible files (updater ${f})`),a.noBrotliPatterns&&p.info(`Files matching patterns (${a.noBrotliPatterns}) will be excluded from brotli compression`),p.info(`Files smaller than ${uF} bytes will be excluded from brotli compression (Brotli RFC minimum)`));else throw new Error(`Your project is using an older version of @capgo/capacitor-updater (${f||"unknown"}). To use Delta updates, please upgrade to version ${cF} (v6) or ${lF} (v7) or higher.`);let h=e.filter(C=>C.file.includes(" "));if(h.length>0)throw new Error(`Files with spaces in their names (${h.map(C=>C.file).join(", ")}). Please rename the files.`);let m=0,b=e.length,D=0;try{let C=e.map(async S=>{let I=(0,jn.join)(r,S.file),O=NM(S.file),B,R=!1;if(a.disableBrotli)B=await(0,Kl.buffer)((0,oa.createReadStream)(I)),R=!1;else{let Q=await jM(I,O,a);B=Q.buffer,R=Q.useBrotli}let N=B;i&&(N=Qi(B,i.sessionKey,i.ivSessionKey));let A=O;R&&(A=`${O}.br`,D++);let L=LM(A),q=`orgs/${o}/apps/${n}/delta/${S.hash}_${L}`;return await IM(c,q)?(m++,Promise.resolve({file_name:L,s3_path:q,file_hash:S.hash})):new Promise((Q,$)=>{let y=0,v=3,w=()=>{new sF.Upload(N,{endpoint:`${c.hostFilesApi}/files/upload/attachments/`,chunkSize:a.tusChunkSize,retryDelays:[0,1e3,3e3,5e3],removeFingerprintOnSuccess:!0,metadata:{filename:q},headers:{Authorization:t},onError:async T=>{let k=T.toString();if(k.includes("offset")||k.includes("409")||k.includes("conflict"))if(y++,y<=v){p.warn(`Offset mismatch for ${O}, retrying (attempt ${y}/${v})...`),await new Promise(M=>setTimeout(M,1e3*y)),w();return}else p.error(`Failed to upload ${O} after ${v} retries due to offset errors`),p.info("This may happen if the upload expired or there was a network issue. The file will be skipped.");else p.error(`Failed to upload ${O}: ${k}`);$(T)},onProgress(){let T=(m/b*100).toFixed(2);s.message(`Uploading partial update: ${T}%`)},onSuccess(){m++,Q({file_name:L,s3_path:q,file_hash:S.hash})}}).start()};w()})}),E=await Promise.all(C),_=((performance.now()-u)/1e3).toFixed(2);return s.stop(`Partial update uploaded successfully \u{1F4AA} in (${_} seconds)`),D>0&&p.info(`${D} of ${b} files were compressed with brotli and use .br extension`),await be(t,{channel:"app",event:`App Partial TUS done${D>0?" with .br extension":""}`,icon:"\u23EB",user_id:o,tags:{"app-id":n},notify:!1}),await be(t,{channel:"performance",event:"Partial upload performance",icon:"\u{1F684}",user_id:o,tags:{"app-id":n,time:_},notify:!1}),E}catch(C){let g=((performance.now()-u)/1e3).toFixed(2);if(s.stop(`Failed to upload Partial bundle (after ${g} seconds)`),l)throw p.error(`Error uploading partial update: ${C}`),p.error("Delta/partial upload was explicitly requested but failed. Upload aborted."),C;return p.info(`Error uploading partial update: ${C}, This is not a critical error, the bundle has been uploaded without the partial files`),null}}function me(t){throw p.error(t),new Error(t)}async function UM(t,e){let r=xr("",e.packageJson),n=e.bundle||t?.plugins?.CapacitorUpdater?.version||r||`0.0.1-beta.${(0,dF.randomUUID)().split("-")[0]}`;return Gi.test(n)||me(`Your bundle name ${n}, is not valid it should follow semver convention : https://semver.org/`),n}function MM(t){let e=t.apikey||ie();return e||me("Missing API key, you need to provide an API key to upload your bundle"),e}function qM(t,e,r){let n=he(t,r),o=e.path||r?.webDir;return n||me("Missing argument, you need to provide a appid or be in a capacitor project"),o||me("Missing argument, you need to provide a path (--path), or be in a capacitor project"),(0,Io.existsSync)(o)||me(`Path ${o} does not exist, build your app first, or provide a valid path`),{appid:n,path:o}}function HM(t,e){let r=t.codeCheck;(typeof r>"u"||r)&&(Ss(e,"notifyAppReady")||me(`notifyAppReady() is missing in the build folder of your app. see: https://capgo.app/docs/plugin/api/#notifyappready
|
|
197
197
|
If you are sure your app has this code, you can use the --no-code-check option`),Ul(e)||me(`index.html is missing in the root folder of ${e}`))}async function VM(t,e,r,n,o,i){let a=r.ignoreMetadataCheck,s=r.autoMinUpdateVersion,u=r.minUpdateVersion,{data:c,error:l}=await t.from("channels").select("disable_auto_update, version ( min_update_version, native_packages )").eq("name",n).eq("app_id",o).single(),f=!!c&&c.disable_auto_update==="version_number",d,h;if(!l&&c&&c.version&&c.version.native_packages&&!a){let D=we();D.start(`Checking bundle compatibility with channel ${n}`);let{finalCompatibility:C,localDependencies:E}=await Fl(t,o,n,r.packageJson,r.nodeModules);if(h=C,d=E,h.find(g=>!So(g)))D.stop(`Bundle NOT compatible with ${n} channel`),p.warn(`You can check compatibility with "${e.runner} @capgo/cli bundle compatibility"`),s&&(u=i,p.info(`Auto set min-update-version to ${u}`));else if(s)try{let{min_update_version:g}=c.version;(!g||!Gi.test(g))&&me("Invalid remote min update version, skipping auto setting compatibility"),u=g,D.stop(`Auto set min-update-version to ${u}`)}catch{me(`Cannot auto set compatibility, invalid data ${c}`)}else D.stop(`Bundle compatible with ${n} channel`)}else a||(p.warn(`Channel ${n} is new or it's your first upload with compatibility check, it will be ignored this time`),d=await cg(r.packageJson,r.nodeModules),s&&(u=i,p.info(`Auto set min-update-version to ${u}`)));f&&!u&&!a&&me("You need to provide a min-update-version to upload a bundle to this channel"),u&&(Gi.test(u)||me(`Your minimal version update ${u}, is not valid it should follow semver convention : https://semver.org/`));let m=d?new Map(d.filter(D=>!!D.native&&D.native!==void 0).map(D=>[D.name,D])):new Map;return{nativePackages:m.size>0||!r.ignoreMetadataCheck?Array.from(m,([D,C])=>({name:D,version:C.version})):void 0,minUpdateVersion:u}}async function zM(t,e,r){let{data:n,error:o}=await t.rpc("is_trial_org",{orgid:e}).single();(n&&n>0||o)&&(p.warn(`WARNING !!
|
|
198
198
|
Trial expires in ${n} days`),p.warn(`Upgrade here: ${r.hostWeb}/dashboard/settings/plans?oid=${e}`))}async function GM(t,e,r,n=!1){let{data:o,error:i}=await t.rpc("exist_app_versions",{appid:e,name_version:r}).single();if(o||i){if(n)return p.warn(`Version ${r} already exists - exiting gracefully due to --silent-fail option`),J("Bundle version already exists - exiting gracefully \u{1F389}"),!0;me(`Version ${r} already exists ${U(i)}`)}return!1}async function WM(t,e,r,n,o,i,a){let s,u,c="",l=null,f="none",d="",h=e.keyV2,m=e.key===!1;l=await xl(t);let b=we();b.start("Calculating checksum");let D=(0,Ng.join)(vt((0,Lg.cwd)()),bt),E=(await ft(void 0,e.packageJson||D)).get("@capgo/capacitor-updater"),g=!1,_;try{_=E?_e(E):void 0}catch{_=void 0}if(E?_?g=dn(_,_e("6.25.0")):(E==="link:@capgo/capacitor-updater"||E==="file:.."||E==="file:../")&&(p.warn("Using local @capgo/capacitor-updater. Assuming latest version for checksum calculation."),g=!0):me("Cannot find @capgo/capacitor-updater in ./package.json, provide the package.json path with --package-json it's required for v7 CLI to work"),(h||e.keyDataV2||(0,Io.existsSync)(Wt))&&!m||g?c=await Xr(l,"sha256"):c=await Xr(l,"crc32"),b.stop(`Checksum ${g?"SHA256":"CRC32"}: ${c}`),m)p.info("Encryption ignored");else if((h||(0,Io.existsSync)(Wt)||e.keyDataV2)&&!e.oldEncryption){let O=typeof h=="string"?h:Wt,B=e.keyDataV2||"";!B&&!(0,Io.existsSync)(O)&&me(`Cannot find private key ${O}`),await be(r,{channel:"app",event:"App encryption v2",icon:"\u{1F511}",user_id:n,tags:{"app-id":o},notify:!1},e.verbose),B||(B=(0,Io.readFileSync)(O).toString()),p.info("Encrypting your bundle with V2");let{sessionKey:R,ivSessionKey:N}=Il(B),A=Qi(l,R,N);c=ea(c,B),s=N,u=R,f="v2",d=B,e.displayIvSession&&p.info(`Your Iv Session key is ${s},
|
|
199
199
|
keep it safe, you will need it to decrypt your bundle.
|
package/dist/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"partial.d.ts","sourceRoot":"","sources":["../../../src/bundle/partial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"partial.d.ts","sourceRoot":"","sources":["../../../src/bundle/partial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAwHvD,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,EACtC,YAAY,EAAE,MAAM;;;KA0BrB;AAoBD,UAAU,wBAAwB;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,iBAAiB,EAAE,wBAAwB,GAAG,SAAS,EACvD,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CA0MvB"}
|
package/dist/src/sdk.js
CHANGED
|
@@ -280,7 +280,7 @@ ${Y.default.gray(uu)} ${t}
|
|
|
280
280
|
`);let y=0,C=0;f(),s=setInterval(()=>{if(n&&a===u)return;g(),u=a;let k=Y.default.magenta(e[y]);if(n)process.stdout.write(`${k} ${a}...`);else if(t==="timer")process.stdout.write(`${k} ${a} ${S(c)}`);else{let v=".".repeat(Math.floor(C)).slice(0,3);process.stdout.write(`${k} ${a}${v}`)}y=y+1<e.length?y+1:0,C=C<e.length?C+.125:0},r)},p=(D="",y=0)=>{o=!1,clearInterval(s),g();let C=y===0?Y.default.green(bm):y===1?Y.default.red(WE):Y.default.red(XE);a=b(D??a),t==="timer"?process.stdout.write(`${C} ${a} ${S(c)}
|
|
281
281
|
`):process.stdout.write(`${C} ${a}
|
|
282
282
|
`),m(),i()};return{start:A,stop:p,message:(D="")=>{a=b(D??a)}}};function YE(t,e){let n=["normal","bold","dim","italic","underline","strikethrough"].indexOf(t),i="\x1B[";return i+n+"m"+e+i+"0m"}var Ht=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?YE("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))+YE("italic",i)+a.repeat(Math.floor(o/2));default:return a.repeat(o)}}renderRow(e,r=!1){let n=this.theme.row,i=this.columnWidth();return n[0]+e.map((s,o)=>this.renderCell(s,i[o],r)).join(n[2])+n[3]}toString(){let e=this.theme,r=this.headers.length>0,n=this.rows.length>0;return[this.title?this.renderTitle():"",r||n?this.renderLine(e.top):"",r?this.renderRow(this.headers,!0):"",r&&n?this.renderLine(e.div):"",...this.rows.map(i=>this.renderRow(i)),r||n?this.renderLine(e.bot):""].filter(i=>i.length>0).join(`
|
|
283
|
-
`)}};var $8=require("node:child_process"),At=require("node:fs"),Ip=require("node:os"),Tt=xe(require("node:path")),di=require("node:process"),ns=xe(Sl());var Jt=require("fs"),lu=(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,Jt.existsSync)(r)||(0,Jt.existsSync)(n)?"bun":(0,Jt.existsSync)(i)||(0,Jt.existsSync)(s)?"pnpm":(0,Jt.existsSync)(o)?"yarn":(0,Jt.existsSync)(a)||(0,Jt.existsSync)(u)?"npm":e},Al=(t=lu(),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"}},JE=(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,Jt.existsSync)(r)||(0,Jt.existsSync)(n)?"bunx":(0,Jt.existsSync)(i)||(0,Jt.existsSync)(s)?"pnpm exec":(0,Jt.existsSync)(o)?"yarn dlx":(0,Jt.existsSync)(a)||(0,Jt.existsSync)(u)?"npx":e};function Ol(t,e){if(isNaN(t)||isNaN(e))throw new Error("Cannot compare against non-numbers");return t===e?0:t<e?-1:1}function e_(t=[],e=[]){return t.length&&!e.length?-1:!t.length&&e.length?1:0}function Sm(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 wo="0|[1-9]\\d*",yU="\\d*[a-zA-Z-][a-zA-Z0-9-]*",DU=`(?<major>${wo})\\.(?<minor>${wo})\\.(?<patch>${wo})`,ZE=`(?:${wo}|${yU})`,t_=`(?:-(?<prerelease>${ZE}(?:\\.${ZE})*))`,QE="[0-9A-Za-z-]+",r_=`(?:\\+(?<buildmetadata>${QE}(?:\\.${QE})*))`,n_=`v?${DU}${t_}?${r_}?`,i_=new RegExp(`^${n_}$`),s_="(?:<|>)?=?",wU="x|X|\\*",Cm=`${wo}|${wU}`,xl=`[v=\\s]*(?<major>${Cm})(?:\\.(?<minor>${Cm})(?:\\.(?<patch>${Cm})${t_}?${r_}?)?)?`,o_=new RegExp(`^(?<operator>~>?|\\^|${s_})\\s*${xl}$`),a_=new RegExp(`^(?<operator>${s_})\\s*(${n_})$|^$`);function Am(t){return typeof t=="number"&&!Number.isNaN(t)&&(!Number.isFinite(t)||0<=t&&t<=Number.MAX_SAFE_INTEGER)}var Om=256;var bU=new RegExp(`^${wo}$`);function Zt(t){return t.split(".").filter(Boolean).map(e=>{if(bU.test(e)){let r=Number(e);if(Am(r))return r}return e})}function Zr(t){return t.split(".").filter(Boolean)}function Ei(t,e){let r=Number(t);if(!Am(r))throw new TypeError(e);return r}function Un(t){return Number.isNaN(t.major)&&Number.isNaN(t.minor)&&Number.isNaN(t.patch)&&(t.prerelease===void 0||t.prerelease.length===0)&&(t.build===void 0||t.build.length===0)}function Qt(t,e){return t===e?0:Ol(t.major,e.major)||Ol(t.minor,e.minor)||Ol(t.patch,e.patch)||e_(t.prerelease,e.prerelease)||Sm(t.prerelease,e.prerelease)}function xm(t){return t.toFixed(0)}function _i(t){let e=xm(t.major),r=xm(t.minor),n=xm(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 vU(t,e){if(Un(e))return!0;let r=Qt(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 Tl(t,e){for(let r of e)if(!vU(t,r))return!1;if(t.prerelease&&t.prerelease.length>0){for(let r of e){if(Un(r))continue;let{major:n,minor:i,patch:s,prerelease:o}=r;if(o&&o.length>0&&t.major===n&&t.minor===i&&t.patch===s)return!0}return!1}return!0}function fu(t,e){return e.some(r=>Tl(t,r))}function EU(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 hu(t=[],e){let r=EU(t);if(!e)return r;let n=Zt(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 u_(t,e,r={}){let n=r.build!==void 0?Zr(r.build):t.build??[];switch(e){case"premajor":return{major:t.major+1,minor:0,patch:0,prerelease:hu(t.prerelease,r.prerelease),build:n};case"preminor":return{major:t.major,minor:t.minor+1,patch:0,prerelease:hu(t.prerelease,r.prerelease),build:n};case"prepatch":return{major:t.major,minor:t.minor,patch:t.patch+1,prerelease:hu(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:hu(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:hu(t.prerelease,r.prerelease),build:n};default:throw new TypeError(`Cannot increment version: invalid argument ${e}`)}}var Fl={major:Number.NaN,minor:Number.NaN,patch:Number.NaN,prerelease:[],build:[]},bo={operator:void 0,...Fl};function Tm(t,e){return Qt(t,e)>0}function Fm(t,e){return Qt(t,e)<0}function _U(t){let r=t.match(a_)?.groups;if(!r)return null;let{operator:n,prerelease:i,buildmetadata:s}=r,o=r.major?{major:Ei(r.major,`Cannot parse comparator ${t}: invalid major version`),minor:Ei(r.minor,`Cannot parse comparator ${t}: invalid minor version`),patch:Ei(r.patch,`Cannot parse comparator ${t}: invalid patch version`),prerelease:i?Zt(i):[],build:s?Zr(s):[]}:Fl;return{operator:n||void 0,...o}}function qe(t){return!t||t.toLowerCase()==="x"||t==="*"}function CU(t){if(!qe(t.major))return qe(t.minor)?{operator:">=",major:+t.major,minor:0,patch:0,prerelease:[],build:[]}:qe(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?Zt(t.prerelease):[],build:[]}}function SU(t){if(!qe(t.major))return qe(t.minor)?{operator:"<",major:+t.major+1,minor:0,patch:0,prerelease:[],build:[]}:qe(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:Zt(t.prerelease),build:[]}:{operator:"<=",major:+t.major,minor:+t.minor,patch:+t.patch,prerelease:[],build:[]}}function AU(t){let e=t.match(new RegExp(`^${xl}`)),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(`^${xl}\\s*$`))?.groups;if(!a)return null;let u=CU(r),c=SU(a);return[u,c].filter(Boolean)}function OU(t){let e=qe(t.major),r=qe(t.minor),n=qe(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[bo];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=Zt(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 xU(t){let e=qe(t.major),r=qe(t.minor),n=qe(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[bo];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=Zt(t.prerelease??"");return[{operator:">=",major:i,minor:s,patch:o,prerelease:a},{operator:"<",major:i,minor:s+1,patch:0}]}function TU(t){let e=qe(t.major),r=qe(t.minor),n=qe(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=Zt(t.prerelease??""),u=Zr(t.build??"");return[{operator:"<",major:i,minor:s,patch:o,prerelease:a,build:u}]}function FU(t){let e=qe(t.minor),r=qe(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=Zt(t.prerelease??""),a=Zr(t.build??"");return[{operator:"<=",major:n,minor:i,patch:s,prerelease:o,build:a}]}function IU(t){let e=qe(t.major),r=qe(t.minor),n=qe(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=Zt(t.prerelease??""),u=Zr(t.build??"");return[{operator:">",major:i,minor:s,patch:o,prerelease:a,build:u}]}function kU(t){let e=qe(t.major),r=qe(t.minor),n=qe(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[bo];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=Zt(t.prerelease??""),u=Zr(t.build??"");return[{operator:">=",major:i,minor:s,patch:o,prerelease:a,build:u}]}function PU(t){let e=qe(t.major),r=qe(t.minor),n=qe(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[bo];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=Zt(t.prerelease??""),u=Zr(t.build??"");return[{operator:void 0,major:i,minor:s,patch:o,prerelease:a,build:u}]}function RU(t){let e=t.match(o_)?.groups;if(!e)return _U(t);switch(e.operator){case"^":return OU(e);case"~":case"~>":return xU(e);case"<":return TU(e);case"<=":return FU(e);case">":return IU(e);case">=":return kU(e);case"=":case"":return PU(e);default:throw new Error(`Cannot parse version range: '${e.operator}' is not a valid operator`)}}function NU(t){return t.split(/\s+/).flatMap(RU)}function Il(t){let e=t.replaceAll(/(?<=<|>|=|~|\^)(\s+)/g,"").split(/\s*\|\|\s*/).map(r=>AU(r)||NU(r));if(e.some(r=>r.includes(null)))throw new TypeError(`Cannot parse version range: range "${t}" is invalid`);return e}function Et(t){if(typeof t!="string")throw new TypeError(`Cannot parse version as version must be a string: received ${typeof t}`);if(t.length>Om)throw new TypeError(`Cannot parse version as version length is too long: length is ${t.length}, max length is ${Om}`);t=t.trim();let e=t.match(i_)?.groups;if(!e)throw new TypeError(`Cannot parse version: ${t}`);let r=Ei(e.major,`Cannot parse version ${t}: invalid major version`),n=Ei(e.minor,`Cannot parse version ${t}: invalid minor version`),i=Ei(e.patch,`Cannot parse version ${t}: invalid patch version`),s=e.prerelease?Zt(e.prerelease):[],o=e.buildmetadata?Zr(e.buildmetadata):[];return{major:r,minor:n,patch:i,prerelease:s,build:o}}function c_(t,e){let r=t.operator,n=e.operator;if(r===void 0)return Un(t)?!0:fu(t,[[e]]);if(n===void 0)return Un(e)?!0:fu(e,[[t]]);let i=Qt(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 $U(t){return t.every(e=>e.some(r=>LU(r)))}function LU(t){for(let e=0;e<t.length-1;e++){let r=t[e];for(let n of t.slice(e+1))if(!c_(r,n))return!1}return!0}function l_(t,e){return $U([t,e])&&t.some(r=>e.some(n=>r.every(i=>n.every(s=>c_(i,s)))))}function f_(t){try{return Et(t),!0}catch{return!1}}function Ci(t,e){return Qt(t,e)>=0}var Ga=xe(uS()),Wv=xe(qS()),L8=xe(DA()),kp=xe(n0());var Ri={name:"@capgo/cli",version:"8.0.0-alpha.2",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",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:"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"},devDependencies:{"@antfu/eslint-config":"^6.1.0","@bradenmacdonald/s3-lite-client":"npm:@jsr/bradenmacdonald__s3-lite-client@0.9.4","@capacitor/cli":"^7.4.4","@capgo/find-package-manager":"^0.0.18","@clack/prompts":"^0.11.0","@sauber/table":"npm:@jsr/sauber__table","@std/semver":"npm:@jsr/std__semver@1.0.6","@supabase/supabase-js":"^2.79.0","@types/adm-zip":"^0.5.7","@types/node":"^24.9.1","@types/prettyjson":"^0.0.33","@types/tmp":"^0.2.6","@vercel/ncc":"^0.38.4","adm-zip":"^0.5.16","ci-info":"^4.3.1",commander:"^14.0.2",esbuild:"^0.25.11",eslint:"^9.38.0","git-format-staged":"3.1.1",husky:"^9.1.7","is-wsl":"^3.1.0",open:"^10.1.2",prettyjson:"^1.2.5",tmp:"^0.2.5","tus-js-client":"^4.3.1",typescript:"^5.9.3"}};async function Rh(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 ze(){let t=await Rh("@capgo/cli")??"",e=t?.split(".")[0];t!==Ri.version&&w.warning(`\u{1F6A8} You are using @capgo/cli@${Ri.version} it's not the latest version.
|
|
283
|
+
`)}};var $8=require("node:child_process"),At=require("node:fs"),Ip=require("node:os"),Tt=xe(require("node:path")),di=require("node:process"),ns=xe(Sl());var Jt=require("fs"),lu=(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,Jt.existsSync)(r)||(0,Jt.existsSync)(n)?"bun":(0,Jt.existsSync)(i)||(0,Jt.existsSync)(s)?"pnpm":(0,Jt.existsSync)(o)?"yarn":(0,Jt.existsSync)(a)||(0,Jt.existsSync)(u)?"npm":e},Al=(t=lu(),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"}},JE=(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,Jt.existsSync)(r)||(0,Jt.existsSync)(n)?"bunx":(0,Jt.existsSync)(i)||(0,Jt.existsSync)(s)?"pnpm exec":(0,Jt.existsSync)(o)?"yarn dlx":(0,Jt.existsSync)(a)||(0,Jt.existsSync)(u)?"npx":e};function Ol(t,e){if(isNaN(t)||isNaN(e))throw new Error("Cannot compare against non-numbers");return t===e?0:t<e?-1:1}function e_(t=[],e=[]){return t.length&&!e.length?-1:!t.length&&e.length?1:0}function Sm(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 wo="0|[1-9]\\d*",yU="\\d*[a-zA-Z-][a-zA-Z0-9-]*",DU=`(?<major>${wo})\\.(?<minor>${wo})\\.(?<patch>${wo})`,ZE=`(?:${wo}|${yU})`,t_=`(?:-(?<prerelease>${ZE}(?:\\.${ZE})*))`,QE="[0-9A-Za-z-]+",r_=`(?:\\+(?<buildmetadata>${QE}(?:\\.${QE})*))`,n_=`v?${DU}${t_}?${r_}?`,i_=new RegExp(`^${n_}$`),s_="(?:<|>)?=?",wU="x|X|\\*",Cm=`${wo}|${wU}`,xl=`[v=\\s]*(?<major>${Cm})(?:\\.(?<minor>${Cm})(?:\\.(?<patch>${Cm})${t_}?${r_}?)?)?`,o_=new RegExp(`^(?<operator>~>?|\\^|${s_})\\s*${xl}$`),a_=new RegExp(`^(?<operator>${s_})\\s*(${n_})$|^$`);function Am(t){return typeof t=="number"&&!Number.isNaN(t)&&(!Number.isFinite(t)||0<=t&&t<=Number.MAX_SAFE_INTEGER)}var Om=256;var bU=new RegExp(`^${wo}$`);function Zt(t){return t.split(".").filter(Boolean).map(e=>{if(bU.test(e)){let r=Number(e);if(Am(r))return r}return e})}function Zr(t){return t.split(".").filter(Boolean)}function Ei(t,e){let r=Number(t);if(!Am(r))throw new TypeError(e);return r}function Un(t){return Number.isNaN(t.major)&&Number.isNaN(t.minor)&&Number.isNaN(t.patch)&&(t.prerelease===void 0||t.prerelease.length===0)&&(t.build===void 0||t.build.length===0)}function Qt(t,e){return t===e?0:Ol(t.major,e.major)||Ol(t.minor,e.minor)||Ol(t.patch,e.patch)||e_(t.prerelease,e.prerelease)||Sm(t.prerelease,e.prerelease)}function xm(t){return t.toFixed(0)}function _i(t){let e=xm(t.major),r=xm(t.minor),n=xm(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 vU(t,e){if(Un(e))return!0;let r=Qt(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 Tl(t,e){for(let r of e)if(!vU(t,r))return!1;if(t.prerelease&&t.prerelease.length>0){for(let r of e){if(Un(r))continue;let{major:n,minor:i,patch:s,prerelease:o}=r;if(o&&o.length>0&&t.major===n&&t.minor===i&&t.patch===s)return!0}return!1}return!0}function fu(t,e){return e.some(r=>Tl(t,r))}function EU(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 hu(t=[],e){let r=EU(t);if(!e)return r;let n=Zt(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 u_(t,e,r={}){let n=r.build!==void 0?Zr(r.build):t.build??[];switch(e){case"premajor":return{major:t.major+1,minor:0,patch:0,prerelease:hu(t.prerelease,r.prerelease),build:n};case"preminor":return{major:t.major,minor:t.minor+1,patch:0,prerelease:hu(t.prerelease,r.prerelease),build:n};case"prepatch":return{major:t.major,minor:t.minor,patch:t.patch+1,prerelease:hu(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:hu(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:hu(t.prerelease,r.prerelease),build:n};default:throw new TypeError(`Cannot increment version: invalid argument ${e}`)}}var Fl={major:Number.NaN,minor:Number.NaN,patch:Number.NaN,prerelease:[],build:[]},bo={operator:void 0,...Fl};function Tm(t,e){return Qt(t,e)>0}function Fm(t,e){return Qt(t,e)<0}function _U(t){let r=t.match(a_)?.groups;if(!r)return null;let{operator:n,prerelease:i,buildmetadata:s}=r,o=r.major?{major:Ei(r.major,`Cannot parse comparator ${t}: invalid major version`),minor:Ei(r.minor,`Cannot parse comparator ${t}: invalid minor version`),patch:Ei(r.patch,`Cannot parse comparator ${t}: invalid patch version`),prerelease:i?Zt(i):[],build:s?Zr(s):[]}:Fl;return{operator:n||void 0,...o}}function qe(t){return!t||t.toLowerCase()==="x"||t==="*"}function CU(t){if(!qe(t.major))return qe(t.minor)?{operator:">=",major:+t.major,minor:0,patch:0,prerelease:[],build:[]}:qe(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?Zt(t.prerelease):[],build:[]}}function SU(t){if(!qe(t.major))return qe(t.minor)?{operator:"<",major:+t.major+1,minor:0,patch:0,prerelease:[],build:[]}:qe(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:Zt(t.prerelease),build:[]}:{operator:"<=",major:+t.major,minor:+t.minor,patch:+t.patch,prerelease:[],build:[]}}function AU(t){let e=t.match(new RegExp(`^${xl}`)),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(`^${xl}\\s*$`))?.groups;if(!a)return null;let u=CU(r),c=SU(a);return[u,c].filter(Boolean)}function OU(t){let e=qe(t.major),r=qe(t.minor),n=qe(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[bo];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=Zt(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 xU(t){let e=qe(t.major),r=qe(t.minor),n=qe(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[bo];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=Zt(t.prerelease??"");return[{operator:">=",major:i,minor:s,patch:o,prerelease:a},{operator:"<",major:i,minor:s+1,patch:0}]}function TU(t){let e=qe(t.major),r=qe(t.minor),n=qe(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=Zt(t.prerelease??""),u=Zr(t.build??"");return[{operator:"<",major:i,minor:s,patch:o,prerelease:a,build:u}]}function FU(t){let e=qe(t.minor),r=qe(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=Zt(t.prerelease??""),a=Zr(t.build??"");return[{operator:"<=",major:n,minor:i,patch:s,prerelease:o,build:a}]}function IU(t){let e=qe(t.major),r=qe(t.minor),n=qe(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=Zt(t.prerelease??""),u=Zr(t.build??"");return[{operator:">",major:i,minor:s,patch:o,prerelease:a,build:u}]}function kU(t){let e=qe(t.major),r=qe(t.minor),n=qe(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[bo];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=Zt(t.prerelease??""),u=Zr(t.build??"");return[{operator:">=",major:i,minor:s,patch:o,prerelease:a,build:u}]}function PU(t){let e=qe(t.major),r=qe(t.minor),n=qe(t.patch),i=+t.major,s=+t.minor,o=+t.patch;if(e)return[bo];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=Zt(t.prerelease??""),u=Zr(t.build??"");return[{operator:void 0,major:i,minor:s,patch:o,prerelease:a,build:u}]}function RU(t){let e=t.match(o_)?.groups;if(!e)return _U(t);switch(e.operator){case"^":return OU(e);case"~":case"~>":return xU(e);case"<":return TU(e);case"<=":return FU(e);case">":return IU(e);case">=":return kU(e);case"=":case"":return PU(e);default:throw new Error(`Cannot parse version range: '${e.operator}' is not a valid operator`)}}function NU(t){return t.split(/\s+/).flatMap(RU)}function Il(t){let e=t.replaceAll(/(?<=<|>|=|~|\^)(\s+)/g,"").split(/\s*\|\|\s*/).map(r=>AU(r)||NU(r));if(e.some(r=>r.includes(null)))throw new TypeError(`Cannot parse version range: range "${t}" is invalid`);return e}function Et(t){if(typeof t!="string")throw new TypeError(`Cannot parse version as version must be a string: received ${typeof t}`);if(t.length>Om)throw new TypeError(`Cannot parse version as version length is too long: length is ${t.length}, max length is ${Om}`);t=t.trim();let e=t.match(i_)?.groups;if(!e)throw new TypeError(`Cannot parse version: ${t}`);let r=Ei(e.major,`Cannot parse version ${t}: invalid major version`),n=Ei(e.minor,`Cannot parse version ${t}: invalid minor version`),i=Ei(e.patch,`Cannot parse version ${t}: invalid patch version`),s=e.prerelease?Zt(e.prerelease):[],o=e.buildmetadata?Zr(e.buildmetadata):[];return{major:r,minor:n,patch:i,prerelease:s,build:o}}function c_(t,e){let r=t.operator,n=e.operator;if(r===void 0)return Un(t)?!0:fu(t,[[e]]);if(n===void 0)return Un(e)?!0:fu(e,[[t]]);let i=Qt(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 $U(t){return t.every(e=>e.some(r=>LU(r)))}function LU(t){for(let e=0;e<t.length-1;e++){let r=t[e];for(let n of t.slice(e+1))if(!c_(r,n))return!1}return!0}function l_(t,e){return $U([t,e])&&t.some(r=>e.some(n=>r.every(i=>n.every(s=>c_(i,s)))))}function f_(t){try{return Et(t),!0}catch{return!1}}function Ci(t,e){return Qt(t,e)>=0}var Ga=xe(uS()),Wv=xe(qS()),L8=xe(DA()),kp=xe(n0());var Ri={name:"@capgo/cli",version:"8.0.0-alpha.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",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:"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"},devDependencies:{"@antfu/eslint-config":"^6.1.0","@bradenmacdonald/s3-lite-client":"npm:@jsr/bradenmacdonald__s3-lite-client@0.9.4","@capacitor/cli":"^7.4.4","@capgo/find-package-manager":"^0.0.18","@clack/prompts":"^0.11.0","@sauber/table":"npm:@jsr/sauber__table","@std/semver":"npm:@jsr/std__semver@1.0.6","@supabase/supabase-js":"^2.79.0","@types/adm-zip":"^0.5.7","@types/node":"^24.9.1","@types/prettyjson":"^0.0.33","@types/tmp":"^0.2.6","@vercel/ncc":"^0.38.4","adm-zip":"^0.5.16","ci-info":"^4.3.1",commander:"^14.0.2",esbuild:"^0.25.11",eslint:"^9.38.0","git-format-staged":"3.1.1",husky:"^9.1.7","is-wsl":"^3.1.0",open:"^10.1.2",prettyjson:"^1.2.5",tmp:"^0.2.5","tus-js-client":"^4.3.1",typescript:"^5.9.3"}};async function Rh(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 ze(){let t=await Rh("@capgo/cli")??"",e=t?.split(".")[0];t!==Ri.version&&w.warning(`\u{1F6A8} You are using @capgo/cli@${Ri.version} it's not the latest version.
|
|
284
284
|
Please use @capgo/cli@${t}" or @capgo/cli@${e} to keep up to date with the latest features and bug fixes.`)}async function F1(t,e,r,n,i,s="\u2705"){await Ae(r,{channel:t,event:n,icon:s,user_id:e,...i?{tags:{"app-id":i}}:{},notify:!1})}var i0=require("node:buffer"),I1=require("node:crypto"),GX=(()=>{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 KX(t){let e=4294967295;for(let r=0;r<t.length;r++){let n=t[r];e=GX[(e^n)&255]^e>>>8}return e=e^4294967295,(e>>>0).toString(16).padStart(8,"0")}async function Jn(t,e="sha256"){let r=i0.Buffer.isBuffer(t)?t:i0.Buffer.from(t);if(e==="crc32")return KX(r);let n=(0,I1.createHash)(e);return n.update(r),n.digest("hex")}var Zc=xe(e8());async function t8(){let t=await(0,Zc.loadConfig)();return{config:t.app.extConfig,path:t.app.extConfigFilePath}}async function Sv(t,e,r=!1){let n=await(0,Zc.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,Zc.writeConfig)(i,n.app.extConfigFilePath))}async function Ua(t,e=!1){await Sv("CapacitorUpdater",t,e)}var Ka=".capgo_key",Ir=".capgo_key_v2",Pp=`${Ka}.pub`,pi=`${Ir}.pub`,F8="https://capgo.app",I8="https://files.capgo.app",k8="https://api.capgo.app",P8="https://console.capgo.app",Xv=12e4,fle=1024*1024*20,hle=1024*1024*1024,dle=1024*1024*99,$n="package.json",Wa=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-z-][0-9a-z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-z-][0-9a-z-]*))*))?(?:\+([0-9a-z-]+(?:\.[0-9a-z-]+)*))?$/i,W=t=>t?`
|
|
285
285
|
${L8.default.render(t)}`:"";function Fp(t){return new Promise(e=>{setTimeout(e,t)})}function Xr(t){return(0,ns.isMonorepo)(t)?(0,ns.findMonorepoRoot)(t):(0,ns.isNXMonorepo)(t)?(0,ns.findNXMonorepoRoot)(t):t}function ple(t=Xr((0,di.cwd)()),e=void 0){let r=e?.split(",")[0];if(r&&!(0,At.existsSync)(r)){let i=`Package.json at ${r} does not exist`;throw w.error(i),new Error(i)}let n=(0,At.readFileSync)(r??(0,Tt.join)(t,$n));return JSON.parse(n)}function is(t=Xr((0,di.cwd)()),e=void 0){return ple(t,e).version??""}function R8(t){let e=t.replace("^","").replace("~","");if(f_(e))try{let r=Et(e);return _i(r)}catch{return e}return e}async function Ln(t=Xr((0,di.cwd)()),e=void 0){let r=e?.split(",");if(r??=[(0,Tt.join)(t,$n)],r){for(let i of r)if(!(0,At.existsSync)(i)){let s=`Package.json at ${i} does not exist`;throw w.error(s),new Error(s)}}let n=new Map;for(let i of r){let s=(0,At.readFileSync)(i),o=JSON.parse(s);for(let a in o.dependencies)n.set(a,R8(o.dependencies[a]));for(let a in o.devDependencies)n.set(a,R8(o.devDependencies[a]))}return n}async function de(){try{let t=await t8();if(!t){let e="No capacitor config file found, run `cap init` first";throw w.error(e),new Error(e)}return t}catch(t){let e=`No capacitor config file found, run \`cap init\` first ${W(t)}`;throw w.error(e),new Error(e)}}async function mle(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 Sv(t,r)),r}async function j8(t){return mle("CapacitorUpdater",t)}async function wn(){try{let t=await de(),e={host:t?.config?.plugins?.CapacitorUpdater?.localHost||F8,hostWeb:t?.config?.plugins?.CapacitorUpdater?.localWebHost||P8,hostFilesApi:t?.config?.plugins?.CapacitorUpdater?.localApiFiles||I8,hostApi:t?.config?.plugins?.CapacitorUpdater?.localApi||k8};return t?.config?.plugins?.CapacitorUpdater?.localSupa&&t?.config?.plugins?.CapacitorUpdater?.localSupaAnon&&(w.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:F8,hostWeb:P8,hostFilesApi:I8,hostApi:k8}}}var gle=/([A-Za-z0-9]+)\.(java|swift|kt|scala)$/;async function Rp(){let t=await wn();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 w.info(`Local config ${W(t)}`),t}}async function B8(){let t=await wn();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:hle,maxChunkSize:dle,alertUploadSize:fle}}}async function pe(t,e,r){let n=await Rp();if(e&&r&&(w.info("Using custom supabase instance from provided options"),n.supaHost=e,n.supaKey=r),!n.supaHost||!n.supaKey)throw w.error("Cannot connect to server please try again later"),new Error("Cannot connect to server please try again later");return(0,Ga.createClient)(n.supaHost,n.supaKey,{auth:{persistSession:!1},global:{headers:{capgkey:t}}})}async function yle(t,e,r){let{data:n}=await t.rpc("is_allowed_capgkey",{apikey:e,keymode:r}).single();if(!n){w.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 w.error(s),new Error("Invalid API key or insufficient permissions.")}}async function M8(t,e){let{data:r}=await t.rpc("is_paying_org",{orgid:e}).single();return r||!1}async function q8(t,e){let{data:r}=await t.rpc("is_trial_org",{orgid:e}).single();return r||0}async function Dle(t,e){let{data:r}=await t.rpc("is_allowed_action_org",{orgid:e}).single();return!!r}async function wle(t,e,r){let{data:n}=await t.rpc("is_allowed_action",{apikey:r,appid:e}).single();return!!n}var fr=(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))(fr||{}),Xa=(t,e)=>t>=e;async function U8(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 w.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")?(w.info("Please accept/deny the organization invitation before trying to access the app"),new Error("Organization invitation pending")):(w.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 w.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 H8(t,e,r){let{data:n,error:i}=await t.rpc("get_organization_cli_warnings",{orgid:e,cli_version:r});if(i){w.error(`Cannot get cli warnings: ${W(i)}`);return}if(n.length>0){w.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"){w.error(`Invalid cli warning: ${o}`);continue}let a=o;a.fatal?(w.error(`${a.message.replaceAll("\\n",`
|
|
286
286
|
`)}`),s=new Error(a.message)):w.warn(`${a.message.replaceAll("\\n",`
|
|
@@ -325,7 +325,7 @@ ${W(s)}`),new Error(`Cannot retrieve unknown version for app ${e}: ${W(s)}`)}fun
|
|
|
325
325
|
`)+`
|
|
326
326
|
`,n.join(";").toLowerCase(),i].join(`
|
|
327
327
|
`)}async function LM(t,e,r){let n=await Gp(t),i=iE(r,e);return[ol,ao(e),i,n].join(`
|
|
328
|
-
`)}async function oE(t,e,r){let n=nE(t),i=await co("AWS4"+r,n),s=await co(i,e),o=await co(s,"s3");return await co(o,"aws4_request")}function aE(t,e,r){return`${t}/${iE(e,r)}`}async function co(t,e){let r=new TextEncoder,n=await crypto.subtle.importKey("raw",t instanceof Uint8Array?t:r.encode(t),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"]),i=await crypto.subtle.sign("HMAC",n,e instanceof Uint8Array?e:r.encode(e));return new Uint8Array(i)}async function jM(t){if(!t.accessKey)throw new as;if(!t.secretKey)throw new ru;if(t.expirySeconds<1||t.expirySeconds>604800)throw new il;let e=new Date(t.date);e.setSeconds(e.getSeconds()+t.expirySeconds);let r=aE(t.accessKey,t.region,t.date),n=ao(t.date),i={"X-Amz-Algorithm":ol,"X-Amz-Credential":r,"X-Amz-Date":n,key:t.objectKey,...t.fields},s=[{bucket:t.bucket},{key:t.objectKey},{"X-Amz-Algorithm":ol},{"X-Amz-Credential":r},{"X-Amz-Date":n}];t.conditions&&s.push(...t.conditions);for(let[f,m]of Object.entries(t.fields||{}))["key","X-Amz-Algorithm","X-Amz-Credential","X-Amz-Date"].includes(f)||s.push({[f]:m});let o={expiration:e.toISOString(),conditions:s},a=new TextEncoder().encode(JSON.stringify(o)),u=btoa(String.fromCharCode(...a));i.policy=u;let c=u,l=await oE(t.date,t.region,t.secretKey),h=sl(await co(l,c)).toLowerCase();return i["X-Amz-Signature"]=h,{url:`${t.protocol}//${t.host}/${t.bucket}`,fields:i}}var Ble=["Content-Type","Cache-Control","Content-Disposition","Content-Encoding","Content-Language","Expires","x-amz-checksum-sha256","x-amz-grant-full-control","x-amz-grant-read","x-amz-grant-read-acp","x-amz-grant-write-acp","x-amz-server-side-encryption","x-amz-storage-class","x-amz-website-redirect-location","x-amz-server-side-encryption-customer-algorithm","x-amz-server-side-encryption-customer-key","x-amz-server-side-encryption-customer-key-MD5","x-amz-server-side-encryption-aws-kms-key-id","x-amz-server-side-encryption-context","x-amz-server-side-encryption-bucket-key-enabled","x-amz-request-payer","x-amz-tagging","x-amz-object-lock-mode","x-amz-object-lock-retain-until-date","x-amz-object-lock-legal-hold","x-amz-expected-bucket-owner"],Mle=5*1024*1024,qle=5*1024*1024*1024,uE=5*1024*1024*1024*1024,al=class{host;port;protocol;accessKey;#e;sessionToken;defaultBucket;region;userAgent="s3-lite-client";pathStyle;pathPrefix;constructor({endPoint:e,useSSL:r,port:n,pathPrefix:i,...s}){if(/^https?:\/\//i.test(e)){if(r!==void 0||n!==void 0||i!==void 0)throw new Yt("useSSL/port/pathPrefix cannot be specified if endPoint is a URL.");try{let a=new URL(e);e=a.hostname,r=a.protocol==="https:",n=a.port?parseInt(a.port,10):r?443:80,a.pathname&&a.pathname!=="/"&&(i=a.pathname.endsWith("/")?a.pathname.slice(0,-1):a.pathname)}catch{throw new nl(`Invalid endPoint URL: ${e}`)}}if(typeof e!="string"||e.length===0)throw new nl(`Invalid endPoint: ${e}`);if(r===void 0&&(r=!0),n!==void 0&&!IM(n))throw new Yt(`Invalid port: ${n}`);if(s.accessKey&&!s.secretKey)throw new Yt("If specifying access key, secret key must also be provided.");if(s.accessKey&&s.accessKey.startsWith("ASIA")&&!s.sessionToken)throw new Yt("If specifying temporary access key, session token must also be provided.");let o=r?443:80;if(this.port=n??o,this.host=e.toLowerCase()+(this.port!==o?`:${this.port}`:""),this.protocol=r?"https:":"http:",this.accessKey=s.accessKey,this.#e=s.secretKey??"",this.sessionToken=s.sessionToken,this.pathStyle=s.pathStyle??!0,this.pathPrefix=i??"",this.defaultBucket=s.bucket,this.region=s.region,this.pathPrefix){if(!this.pathStyle)throw new Yt("pathPrefix is incompatible with pathStyle=false");if(!this.pathPrefix.startsWith("/"))throw new Yt("pathPrefix should start with /");if(this.pathPrefix.endsWith("/"))throw new Yt("pathPrefix should not end with /")}}getBucketName(e){let r=e?.bucketName??this.defaultBucket;if(r===void 0||!kM(r))throw new zp(r??"");return r}buildRequestOptions(e){let r=this.getBucketName(e),n=this.pathStyle?this.host:`${r}.${this.host}`,i=e.headers??new Headers;i.set("host",n);let s=typeof e.query=="object"?new URLSearchParams(e.query).toString().replace("+","%20"):e.query,o=this.pathStyle?`${this.pathPrefix}/${r}/${e.objectName}`:`/${e.objectName}`,a=s?`?${s}`:"",u=o+a,c=o.split("/").map(l=>encodeURIComponent(l)).join("/")+a;return{headers:i,host:n,path:u,encodedPath:c}}async makeRequest({method:e,payload:r,...n}){let i=new Date,{headers:s,host:o,path:a,encodedPath:u}=this.buildRequestOptions(n),c=n.statusCode??200;if(e==="POST"||e==="PUT"||e==="DELETE")r===void 0?r=new Uint8Array:typeof r=="string"&&(r=new TextEncoder().encode(r)),s.set("Content-Length",String(r.length));else if(r)throw new Error(`Unexpected payload on ${e} request.`);let l=await Gp(r??new Uint8Array);s.set("x-amz-date",ao(i)),s.set("x-amz-content-sha256",l),this.accessKey&&(this.sessionToken&&s.set("x-amz-security-token",this.sessionToken),s.set("authorization",await PM({headers:s,method:e,path:a,accessKey:this.accessKey,secretKey:this.#e,region:this.region,date:i})));let h=`${this.protocol}//${o}${u}`,d=await fetch(h,{method:e,headers:s,body:r});if(d.status!==c)throw d.status>=400?await FM(d):d.status===301?new Di(d.status,"UnexpectedRedirect",'The server unexpectedly returned a redirect response. With AWS S3, this usually means you need to use a region-specific endpoint like "s3.us-west-2.amazonaws.com" instead of "s3.amazonaws.com"'):new Di(d.status,"UnexpectedStatusCode",`Unexpected response code from the server (expected ${c}, got ${d.status} ${d.statusText}).`);return n.returnBody||await d.body?.getReader().read(),d}async deleteObject(e,r={}){let n=this.getBucketName(r);if(!us(e))throw new Bn(e);let i=r.versionId?{versionId:r.versionId}:{},s=new Headers;r.governanceBypass&&s.set("X-Amz-Bypass-Governance-Retention","true"),await this.makeRequest({method:"DELETE",bucketName:n,objectName:e,headers:s,query:i,statusCode:204})}async exists(e,r){try{return await this.statObject(e,r),!0}catch(n){if(n instanceof Di&&n.statusCode===404)return!1;throw n}}getObject(e,r){return this.getPartialObject(e,{...r,offset:0,length:0})}async getPartialObject(e,{offset:r,length:n,...i}){let s=this.getBucketName(i);if(!us(e))throw new Bn(e);let o=new Headers(Object.entries(i.metadata??{})),a=200;if(r||n){let c="";r?c=`bytes=${+r}-`:(c="bytes=0-",r=0),n&&(c+=`${+n+r-1}`),o.set("Range",c),a=206}let u={...i.responseParams,...i.versionId?{versionId:i.versionId}:{}};return await this.makeRequest({method:"GET",bucketName:s,objectName:e,headers:o,query:u,statusCode:a,returnBody:!0})}getPresignedUrl(e,r,n={}){if(!this.accessKey)throw new as;if(!us(r))throw new Bn(r);let{headers:i,path:s}=this.buildRequestOptions({objectName:r,bucketName:n.bucketName,query:n.parameters}),o=n.requestDate??new Date,a=n.expirySeconds??1440*60*7;return RM({protocol:this.protocol,headers:i,method:e,path:s,accessKey:this.accessKey,secretKey:this.#e,sessionToken:this.sessionToken,region:this.region,date:o,expirySeconds:a})}presignedGetObject(e,r={}){let{versionId:n,responseParams:i,...s}=r,o={...i,...n?{versionId:n}:{}};return this.getPresignedUrl("GET",e,{parameters:o,...s})}async*listObjects(e={}){for await(let r of this.listObjectsGrouped({...e,delimiter:""}))if(r.type==="Object")yield r;else throw new Error(`Unexpected result from listObjectsGrouped(): ${r}`)}async*listObjectsGrouped(e){let r=this.getBucketName(e),n="",i=e.pageSize??1e3;if(i<1||i>1e3)throw new Yt("pageSize must be between 1 and 1,000.");let s=0;for(;;){let o=e.maxResults?Math.min(i,e.maxResults-s):i;if(o===0)return;let u=await(await this.makeRequest({method:"GET",bucketName:r,objectName:"",query:{"list-type":"2",prefix:e.prefix??"",delimiter:e.delimiter,"max-keys":String(o),...n?{"continuation-token":n}:{}},returnBody:!0})).text(),c=os(u).root;if(!c||c.name!=="ListBucketResult")throw new Error(`Unexpected response: ${u}`);let l=c.children.filter(f=>f.name==="CommonPrefixes").flatMap(f=>f.children),h=[];for(let f of l)h.push({type:"CommonPrefix",prefix:f.content??""}),s++;for(let f of c.children.filter(m=>m.name==="Contents"))h.push({type:"Object",key:f.children.find(m=>m.name==="Key")?.content??"",etag:oo(f.children.find(m=>m.name==="ETag")?.content??""),size:parseInt(f.children.find(m=>m.name==="Size")?.content??"",10),lastModified:new Date(f.children.find(m=>m.name==="LastModified")?.content??"invalid")}),s++;h.sort((f,m)=>{let g=f.type==="Object"?f.key:f.prefix,b=m.type==="Object"?m.key:m.prefix;return g>b?1:g<b?-1:0});for(let f of h)yield f;if(c.children.find(f=>f.name==="IsTruncated")?.content==="true"){let f=c.children.find(m=>m.name==="NextContinuationToken")?.content;if(!f)throw new Error("Unexpectedly missing continuation token, but server said there are more results.");n=f}else return}}async putObject(e,r,n){let i=this.getBucketName(n);if(!us(e))throw new Bn(e);let s,o;if(typeof r=="string"){let l=new TextEncoder().encode(r);typeof ReadableStream.from<"u"?o=ReadableStream.from([l]):o=new ReadableStream({start(h){h.enqueue(l),h.close()}}),s=l.length}else if(r instanceof Uint8Array)typeof ReadableStream.from<"u"?o=ReadableStream.from([r]):o=new ReadableStream({start(l){l.enqueue(r),l.close()}}),s=r.byteLength;else if(r instanceof ReadableStream)o=r;else throw new Yt("Invalid stream/data type provided.");if(n?.size!==void 0){if(s!==void 0&&n?.size!==s)throw new Yt(`size was specified (${n.size}) but doesn't match auto-detected size (${s}).`);if(typeof n.size!="number"||n.size<0||isNaN(n.size))throw new Yt(`invalid size specified: ${n.size}`);s=n.size}let a=n?.partSize??this.calculatePartSize(s);if(a<Mle)throw new Yt("Part size should be greater than 5MB");if(a>qle)throw new Yt("Part size should be less than 6MB");let u=new Vp(a),c=new Kp({client:this,bucketName:i,objectName:e,partSize:a,metadata:n?.metadata??{}});return await o.pipeThrough(u).pipeTo(c),c.getResult()}calculatePartSize(e){if(e===void 0&&(e=uE),e>uE)throw new TypeError(`size should not be more than ${uE}`);let r=64*1024*1024;for(;;){if(r*1e4>e)return r;r+=16*1024*1024}}async statObject(e,r){let n=this.getBucketName(r);if(!us(e))throw new Bn(e);let i={};r?.versionId&&(i.versionId=r.versionId);let s=await this.makeRequest({method:"HEAD",bucketName:n,objectName:e,query:i,headers:new Headers(r?.headers)}),o={};for(let a of Ble)s.headers.has(a)&&(o[a]=s.headers.get(a));return s.headers.forEach((a,u)=>{u.startsWith("x-amz-meta-")&&(o[u]=s.headers.get(u))}),{type:"Object",key:e,size:parseInt(s.headers.get("content-length")??"",10),metadata:o,lastModified:new Date(s.headers.get("Last-Modified")??"error: missing last modified"),versionId:s.headers.get("x-amz-version-id")||null,etag:oo(s.headers.get("ETag")??"")}}async copyObject(e,r,n){let i=this.getBucketName(n),s=e.sourceBucketName??i;if(!us(r))throw new Bn(r);let o=`${s}/${e.sourceKey}`;e.sourceVersionId&&(o+=`?versionId=${e.sourceVersionId}`);let a=new Headers(n?.metadata);n?.metadata!==void 0&&a.set("x-amz-metadata-directive","REPLACE"),a.set("x-amz-copy-source",o);let u=await this.makeRequest({method:"PUT",bucketName:i,objectName:r,headers:a,returnBody:!0}),c=await u.text(),l=os(c).root;if(!l||l.name!=="CopyObjectResult")throw new Error(`Unexpected response: ${c}`);let h=l.children.find(f=>f.name==="ETag")?.content??"",d=l.children.find(f=>f.name==="LastModified")?.content;if(d===void 0)throw new Error("Unable to find <LastModified>...</LastModified> from the server.");return{copySourceVersionId:u.headers.get("x-amz-copy-source-version-id")||null,etag:oo(h),lastModified:new Date(d),versionId:u.headers.get("x-amz-version-id")||null}}async bucketExists(e){try{return await this.listObjects({bucketName:e}).next(),!0}catch(r){if(r instanceof Di&&r.statusCode===404)return!1;throw r}}async makeBucket(e){await this.makeRequest({method:"PUT",bucketName:this.getBucketName({bucketName:e}),objectName:"",statusCode:200})}async removeBucket(e){await this.makeRequest({method:"DELETE",bucketName:this.getBucketName({bucketName:e}),objectName:"",statusCode:204})}presignedPostObject(e,r={}){if(!us(e))throw new Bn(e);let n=this.getBucketName(r);if(!n)throw new Error("Bucket name is required for presignedPost, but none was provided either to this method nor to the client constructor");let i=r.requestDate||new Date,s=r.expirySeconds??3600;return jM({protocol:this.protocol,host:this.host,bucket:n,objectKey:e,accessKey:this.accessKey||"",secretKey:this.#e||"",region:this.region,date:i,expirySeconds:s,conditions:r.conditions,fields:r.fields})}};var lo=require("node:fs"),Wp=require("node:path");function Ule(t,e){return(0,lo.readFileSync)(t,"utf8").includes(e)}function ul(t,e){let r=(0,lo.readdirSync)(t);for(let n of r){let i=(0,Wp.join)(t,n),s=(0,lo.statSync)(i);if(s.isDirectory()){if(ul(i,e))return!0}else if(s.isFile()&&(0,Wp.extname)(i)===".js"&&Ule(i,e))return!0}return!1}function Xp(t){return(0,lo.readdirSync)(t).indexOf("index.html")>-1}var su=require("node:fs"),K6=require("node:os"),cs=require("node:path"),W6=require("node:process"),nm=require("node:stream/consumers"),X6=require("node:zlib");var Y6=xe(G6()),J6=xe(n0());async function nhe(t,e){try{return(await fetch(`${t.hostFilesApi}/files/read/attachments/${encodeURIComponent(e)}`,{method:"HEAD"})).ok}catch{return!1}}var Z6=8192,Q6="6.25.0",eq="7.0.35";async function ihe(t){let e=(0,cs.join)(Xr((0,W6.cwd)()),$n),n=(await Ln(void 0,t.packageJson||e)).get("@capgo/capacitor-updater"),i;try{i=n?Et(n):void 0}catch{i=void 0}if(!n||!i)return{version:null,supportsBrotliV2:!1};let s=i.major===6&&Ci(i,Et(Q6)),o=i.major>=7&&Ci(i,Et(eq)),a=s||o;return{version:`${i.major}.${i.minor}.${i.patch}`,supportsBrotliV2:a}}function she(t,e){if(!e)return!1;let r=e.split(",").map(n=>n.trim()).filter(n=>!!n);return r.length===0?!1:Y6.isMatch(t,r)}async function ohe(t,e,r){let i=(0,su.statSync)(t).size,s=await(0,nm.buffer)((0,su.createReadStream)(t));if(i===0)return{buffer:s,useBrotli:!1};if(she(e,r.noBrotliPatterns))return w.info(`Skipping brotli for excluded file: ${e}`),{buffer:s,useBrotli:!1};if(i<Z6)return{buffer:s,useBrotli:!1};try{let o=await(0,nm.buffer)((0,su.createReadStream)(t).pipe((0,X6.createBrotliCompress)({})));return o.length>=i-10?(w.info(`Brotli not effective for ${e} (${i} bytes), using original file`),{buffer:s,useBrotli:!1}):{buffer:o,useBrotli:!0}}catch(o){return w.warn(`Brotli compression failed for ${t}: ${o}, using original file`),{buffer:s,useBrotli:!1}}}async function tq(t,e,r,n,i,s){let o=Ft();o.start(i!=="v2"?"Generating the update manifest":"Generating the update manifest with v2 encryption");let a=await W8(t);if(i==="v2")for(let u of a)u.hash=tu(u.hash,s);return o.stop("Manifest generated successfully"),await Ae(e,{channel:"partial-update",event:"Generate manifest",icon:"\u{1F4C2}",user_id:r,tags:{"app-id":n},notify:!1}),a}function ahe(t){return(0,K6.platform)()!=="win32"?t:cs.win32.normalize(t).split(cs.win32.sep).join(cs.posix.sep)}function uhe(t){let e=t.split("/").map(r=>encodeURIComponent(r)).join("/");return t.includes(" ")&&w.warn(`File "${t}" contains spaces in its name.`),e}async function rq(t,e,r,n,i,s,o){let a=Ft();a.start("Preparing partial update with TUS protocol");let u=performance.now(),c=await wn(),l=!!(o.partial||o.delta||o.partialOnly||o.deltaOnly),{version:h,supportsBrotliV2:d}=await ihe(o);if(d)o.disableBrotli?w.info("Brotli compression disabled by user request"):(a.message(`Using .br extension for compatible files (updater ${h})`),o.noBrotliPatterns&&w.info(`Files matching patterns (${o.noBrotliPatterns}) will be excluded from brotli compression`),w.info(`Files smaller than ${Z6} bytes will be excluded from brotli compression (Brotli RFC minimum)`));else throw new Error(`Your project is using an older version of @capgo/capacitor-updater (${h||"unknown"}). To use Delta updates, please upgrade to version ${Q6} (v6) or ${eq} (v7) or higher.`);let f=e.filter(S=>S.file.includes(" "));if(f.length>0)throw new Error(`Files with spaces in their names (${f.map(S=>S.file).join(", ")}). Please rename the files.`);let m=0,g=e.length,b=0;try{let S=e.map(async y=>{let C=(0,cs.join)(r,y.file),k=ahe(y.file),v,R=!1;if(o.disableBrotli)v=await(0,nm.buffer)((0,su.createReadStream)(C)),R=!1;else{let G=await ohe(C,k,o);v=G.buffer,R=G.useBrotli}let P=v;s&&(P=eu(v,s.sessionKey,s.ivSessionKey));let F=k;R&&(F=`${k}.br`,b++);let j=uhe(F),U=`orgs/${i}/apps/${n}/delta/${y.hash}_${j}`;return await nhe(c,U)?(m++,Promise.resolve({file_name:j,s3_path:U,file_hash:y.hash})):new Promise((G,L)=>{let _=0,T=3,I=()=>{new J6.Upload(P,{endpoint:`${c.hostFilesApi}/files/upload/attachments/`,chunkSize:o.tusChunkSize,retryDelays:[0,1e3,3e3,5e3],removeFingerprintOnSuccess:!0,metadata:{filename:U},headers:{Authorization:t},onError:async M=>{let B=M.toString();if(B.includes("offset")||B.includes("409")||B.includes("conflict"))if(_++,_<=T){w.warn(`Offset mismatch for ${k}, retrying (attempt ${_}/${T})...`),await new Promise(K=>setTimeout(K,1e3*_)),I();return}else w.error(`Failed to upload ${k} after ${T} retries due to offset errors`),w.info("This may happen if the upload expired or there was a network issue. The file will be skipped.");else w.error(`Failed to upload ${k}: ${B}`);L(M)},onProgress(){let M=(m/g*100).toFixed(2);a.message(`Uploading partial update: ${M}%`)},onSuccess(){m++,G({file_name:j,s3_path:U,file_hash:y.hash})}}).start()};I()})}),A=await Promise.all(S),D=((performance.now()-u)/1e3).toFixed(2);return a.stop(`Partial update uploaded successfully \u{1F4AA} in (${D} seconds)`),b>0&&w.info(`${b} of ${g} files were compressed with brotli and use .br extension`),await Ae(t,{channel:"app",event:`App Partial TUS done${b>0?" with .br extension":""}`,icon:"\u23EB",user_id:i,tags:{"app-id":n},notify:!1}),await Ae(t,{channel:"performance",event:"Partial upload performance",icon:"\u{1F684}",user_id:i,tags:{"app-id":n,time:D},notify:!1}),A}catch(S){let p=((performance.now()-u)/1e3).toFixed(2);if(a.stop(`Failed to upload Partial bundle (after ${p} seconds)`),l)throw w.error(`Error uploading partial update: ${S}`),w.error("Delta/partial upload was explicitly requested but failed. Upload aborted."),S;return w.info(`Error uploading partial update: ${S}, This is not a critical error, the bundle has been uploaded without the partial files`),null}}function gt(t){throw w.error(t),new Error(t)}async function che(t,e){let r=is("",e.packageJson),n=e.bundle||t?.plugins?.CapacitorUpdater?.version||r||`0.0.1-beta.${(0,nq.randomUUID)().split("-")[0]}`;return Wa.test(n)||gt(`Your bundle name ${n}, is not valid it should follow semver convention : https://semver.org/`),n}function lhe(t){let e=t.apikey||ne();return e||gt("Missing API key, you need to provide an API key to upload your bundle"),e}function fhe(t,e,r){let n=Pe(t,r),i=e.path||r?.webDir;return n||gt("Missing argument, you need to provide a appid or be in a capacitor project"),i||gt("Missing argument, you need to provide a path (--path), or be in a capacitor project"),(0,po.existsSync)(i)||gt(`Path ${i} does not exist, build your app first, or provide a valid path`),{appid:n,path:i}}function hhe(t,e){let r=t.codeCheck;(typeof r>"u"||r)&&(ul(e,"notifyAppReady")||gt(`notifyAppReady() is missing in the build folder of your app. see: https://capgo.app/docs/plugin/api/#notifyappready
|
|
328
|
+
`)}async function oE(t,e,r){let n=nE(t),i=await co("AWS4"+r,n),s=await co(i,e),o=await co(s,"s3");return await co(o,"aws4_request")}function aE(t,e,r){return`${t}/${iE(e,r)}`}async function co(t,e){let r=new TextEncoder,n=await crypto.subtle.importKey("raw",t instanceof Uint8Array?t:r.encode(t),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"]),i=await crypto.subtle.sign("HMAC",n,e instanceof Uint8Array?e:r.encode(e));return new Uint8Array(i)}async function jM(t){if(!t.accessKey)throw new as;if(!t.secretKey)throw new ru;if(t.expirySeconds<1||t.expirySeconds>604800)throw new il;let e=new Date(t.date);e.setSeconds(e.getSeconds()+t.expirySeconds);let r=aE(t.accessKey,t.region,t.date),n=ao(t.date),i={"X-Amz-Algorithm":ol,"X-Amz-Credential":r,"X-Amz-Date":n,key:t.objectKey,...t.fields},s=[{bucket:t.bucket},{key:t.objectKey},{"X-Amz-Algorithm":ol},{"X-Amz-Credential":r},{"X-Amz-Date":n}];t.conditions&&s.push(...t.conditions);for(let[f,m]of Object.entries(t.fields||{}))["key","X-Amz-Algorithm","X-Amz-Credential","X-Amz-Date"].includes(f)||s.push({[f]:m});let o={expiration:e.toISOString(),conditions:s},a=new TextEncoder().encode(JSON.stringify(o)),u=btoa(String.fromCharCode(...a));i.policy=u;let c=u,l=await oE(t.date,t.region,t.secretKey),h=sl(await co(l,c)).toLowerCase();return i["X-Amz-Signature"]=h,{url:`${t.protocol}//${t.host}/${t.bucket}`,fields:i}}var Ble=["Content-Type","Cache-Control","Content-Disposition","Content-Encoding","Content-Language","Expires","x-amz-checksum-sha256","x-amz-grant-full-control","x-amz-grant-read","x-amz-grant-read-acp","x-amz-grant-write-acp","x-amz-server-side-encryption","x-amz-storage-class","x-amz-website-redirect-location","x-amz-server-side-encryption-customer-algorithm","x-amz-server-side-encryption-customer-key","x-amz-server-side-encryption-customer-key-MD5","x-amz-server-side-encryption-aws-kms-key-id","x-amz-server-side-encryption-context","x-amz-server-side-encryption-bucket-key-enabled","x-amz-request-payer","x-amz-tagging","x-amz-object-lock-mode","x-amz-object-lock-retain-until-date","x-amz-object-lock-legal-hold","x-amz-expected-bucket-owner"],Mle=5*1024*1024,qle=5*1024*1024*1024,uE=5*1024*1024*1024*1024,al=class{host;port;protocol;accessKey;#e;sessionToken;defaultBucket;region;userAgent="s3-lite-client";pathStyle;pathPrefix;constructor({endPoint:e,useSSL:r,port:n,pathPrefix:i,...s}){if(/^https?:\/\//i.test(e)){if(r!==void 0||n!==void 0||i!==void 0)throw new Yt("useSSL/port/pathPrefix cannot be specified if endPoint is a URL.");try{let a=new URL(e);e=a.hostname,r=a.protocol==="https:",n=a.port?parseInt(a.port,10):r?443:80,a.pathname&&a.pathname!=="/"&&(i=a.pathname.endsWith("/")?a.pathname.slice(0,-1):a.pathname)}catch{throw new nl(`Invalid endPoint URL: ${e}`)}}if(typeof e!="string"||e.length===0)throw new nl(`Invalid endPoint: ${e}`);if(r===void 0&&(r=!0),n!==void 0&&!IM(n))throw new Yt(`Invalid port: ${n}`);if(s.accessKey&&!s.secretKey)throw new Yt("If specifying access key, secret key must also be provided.");if(s.accessKey&&s.accessKey.startsWith("ASIA")&&!s.sessionToken)throw new Yt("If specifying temporary access key, session token must also be provided.");let o=r?443:80;if(this.port=n??o,this.host=e.toLowerCase()+(this.port!==o?`:${this.port}`:""),this.protocol=r?"https:":"http:",this.accessKey=s.accessKey,this.#e=s.secretKey??"",this.sessionToken=s.sessionToken,this.pathStyle=s.pathStyle??!0,this.pathPrefix=i??"",this.defaultBucket=s.bucket,this.region=s.region,this.pathPrefix){if(!this.pathStyle)throw new Yt("pathPrefix is incompatible with pathStyle=false");if(!this.pathPrefix.startsWith("/"))throw new Yt("pathPrefix should start with /");if(this.pathPrefix.endsWith("/"))throw new Yt("pathPrefix should not end with /")}}getBucketName(e){let r=e?.bucketName??this.defaultBucket;if(r===void 0||!kM(r))throw new zp(r??"");return r}buildRequestOptions(e){let r=this.getBucketName(e),n=this.pathStyle?this.host:`${r}.${this.host}`,i=e.headers??new Headers;i.set("host",n);let s=typeof e.query=="object"?new URLSearchParams(e.query).toString().replace("+","%20"):e.query,o=this.pathStyle?`${this.pathPrefix}/${r}/${e.objectName}`:`/${e.objectName}`,a=s?`?${s}`:"",u=o+a,c=o.split("/").map(l=>encodeURIComponent(l)).join("/")+a;return{headers:i,host:n,path:u,encodedPath:c}}async makeRequest({method:e,payload:r,...n}){let i=new Date,{headers:s,host:o,path:a,encodedPath:u}=this.buildRequestOptions(n),c=n.statusCode??200;if(e==="POST"||e==="PUT"||e==="DELETE")r===void 0?r=new Uint8Array:typeof r=="string"&&(r=new TextEncoder().encode(r)),s.set("Content-Length",String(r.length));else if(r)throw new Error(`Unexpected payload on ${e} request.`);let l=await Gp(r??new Uint8Array);s.set("x-amz-date",ao(i)),s.set("x-amz-content-sha256",l),this.accessKey&&(this.sessionToken&&s.set("x-amz-security-token",this.sessionToken),s.set("authorization",await PM({headers:s,method:e,path:a,accessKey:this.accessKey,secretKey:this.#e,region:this.region,date:i})));let h=`${this.protocol}//${o}${u}`,d=await fetch(h,{method:e,headers:s,body:r});if(d.status!==c)throw d.status>=400?await FM(d):d.status===301?new Di(d.status,"UnexpectedRedirect",'The server unexpectedly returned a redirect response. With AWS S3, this usually means you need to use a region-specific endpoint like "s3.us-west-2.amazonaws.com" instead of "s3.amazonaws.com"'):new Di(d.status,"UnexpectedStatusCode",`Unexpected response code from the server (expected ${c}, got ${d.status} ${d.statusText}).`);return n.returnBody||await d.body?.getReader().read(),d}async deleteObject(e,r={}){let n=this.getBucketName(r);if(!us(e))throw new Bn(e);let i=r.versionId?{versionId:r.versionId}:{},s=new Headers;r.governanceBypass&&s.set("X-Amz-Bypass-Governance-Retention","true"),await this.makeRequest({method:"DELETE",bucketName:n,objectName:e,headers:s,query:i,statusCode:204})}async exists(e,r){try{return await this.statObject(e,r),!0}catch(n){if(n instanceof Di&&n.statusCode===404)return!1;throw n}}getObject(e,r){return this.getPartialObject(e,{...r,offset:0,length:0})}async getPartialObject(e,{offset:r,length:n,...i}){let s=this.getBucketName(i);if(!us(e))throw new Bn(e);let o=new Headers(Object.entries(i.metadata??{})),a=200;if(r||n){let c="";r?c=`bytes=${+r}-`:(c="bytes=0-",r=0),n&&(c+=`${+n+r-1}`),o.set("Range",c),a=206}let u={...i.responseParams,...i.versionId?{versionId:i.versionId}:{}};return await this.makeRequest({method:"GET",bucketName:s,objectName:e,headers:o,query:u,statusCode:a,returnBody:!0})}getPresignedUrl(e,r,n={}){if(!this.accessKey)throw new as;if(!us(r))throw new Bn(r);let{headers:i,path:s}=this.buildRequestOptions({objectName:r,bucketName:n.bucketName,query:n.parameters}),o=n.requestDate??new Date,a=n.expirySeconds??1440*60*7;return RM({protocol:this.protocol,headers:i,method:e,path:s,accessKey:this.accessKey,secretKey:this.#e,sessionToken:this.sessionToken,region:this.region,date:o,expirySeconds:a})}presignedGetObject(e,r={}){let{versionId:n,responseParams:i,...s}=r,o={...i,...n?{versionId:n}:{}};return this.getPresignedUrl("GET",e,{parameters:o,...s})}async*listObjects(e={}){for await(let r of this.listObjectsGrouped({...e,delimiter:""}))if(r.type==="Object")yield r;else throw new Error(`Unexpected result from listObjectsGrouped(): ${r}`)}async*listObjectsGrouped(e){let r=this.getBucketName(e),n="",i=e.pageSize??1e3;if(i<1||i>1e3)throw new Yt("pageSize must be between 1 and 1,000.");let s=0;for(;;){let o=e.maxResults?Math.min(i,e.maxResults-s):i;if(o===0)return;let u=await(await this.makeRequest({method:"GET",bucketName:r,objectName:"",query:{"list-type":"2",prefix:e.prefix??"",delimiter:e.delimiter,"max-keys":String(o),...n?{"continuation-token":n}:{}},returnBody:!0})).text(),c=os(u).root;if(!c||c.name!=="ListBucketResult")throw new Error(`Unexpected response: ${u}`);let l=c.children.filter(f=>f.name==="CommonPrefixes").flatMap(f=>f.children),h=[];for(let f of l)h.push({type:"CommonPrefix",prefix:f.content??""}),s++;for(let f of c.children.filter(m=>m.name==="Contents"))h.push({type:"Object",key:f.children.find(m=>m.name==="Key")?.content??"",etag:oo(f.children.find(m=>m.name==="ETag")?.content??""),size:parseInt(f.children.find(m=>m.name==="Size")?.content??"",10),lastModified:new Date(f.children.find(m=>m.name==="LastModified")?.content??"invalid")}),s++;h.sort((f,m)=>{let g=f.type==="Object"?f.key:f.prefix,b=m.type==="Object"?m.key:m.prefix;return g>b?1:g<b?-1:0});for(let f of h)yield f;if(c.children.find(f=>f.name==="IsTruncated")?.content==="true"){let f=c.children.find(m=>m.name==="NextContinuationToken")?.content;if(!f)throw new Error("Unexpectedly missing continuation token, but server said there are more results.");n=f}else return}}async putObject(e,r,n){let i=this.getBucketName(n);if(!us(e))throw new Bn(e);let s,o;if(typeof r=="string"){let l=new TextEncoder().encode(r);typeof ReadableStream.from<"u"?o=ReadableStream.from([l]):o=new ReadableStream({start(h){h.enqueue(l),h.close()}}),s=l.length}else if(r instanceof Uint8Array)typeof ReadableStream.from<"u"?o=ReadableStream.from([r]):o=new ReadableStream({start(l){l.enqueue(r),l.close()}}),s=r.byteLength;else if(r instanceof ReadableStream)o=r;else throw new Yt("Invalid stream/data type provided.");if(n?.size!==void 0){if(s!==void 0&&n?.size!==s)throw new Yt(`size was specified (${n.size}) but doesn't match auto-detected size (${s}).`);if(typeof n.size!="number"||n.size<0||isNaN(n.size))throw new Yt(`invalid size specified: ${n.size}`);s=n.size}let a=n?.partSize??this.calculatePartSize(s);if(a<Mle)throw new Yt("Part size should be greater than 5MB");if(a>qle)throw new Yt("Part size should be less than 6MB");let u=new Vp(a),c=new Kp({client:this,bucketName:i,objectName:e,partSize:a,metadata:n?.metadata??{}});return await o.pipeThrough(u).pipeTo(c),c.getResult()}calculatePartSize(e){if(e===void 0&&(e=uE),e>uE)throw new TypeError(`size should not be more than ${uE}`);let r=64*1024*1024;for(;;){if(r*1e4>e)return r;r+=16*1024*1024}}async statObject(e,r){let n=this.getBucketName(r);if(!us(e))throw new Bn(e);let i={};r?.versionId&&(i.versionId=r.versionId);let s=await this.makeRequest({method:"HEAD",bucketName:n,objectName:e,query:i,headers:new Headers(r?.headers)}),o={};for(let a of Ble)s.headers.has(a)&&(o[a]=s.headers.get(a));return s.headers.forEach((a,u)=>{u.startsWith("x-amz-meta-")&&(o[u]=s.headers.get(u))}),{type:"Object",key:e,size:parseInt(s.headers.get("content-length")??"",10),metadata:o,lastModified:new Date(s.headers.get("Last-Modified")??"error: missing last modified"),versionId:s.headers.get("x-amz-version-id")||null,etag:oo(s.headers.get("ETag")??"")}}async copyObject(e,r,n){let i=this.getBucketName(n),s=e.sourceBucketName??i;if(!us(r))throw new Bn(r);let o=`${s}/${e.sourceKey}`;e.sourceVersionId&&(o+=`?versionId=${e.sourceVersionId}`);let a=new Headers(n?.metadata);n?.metadata!==void 0&&a.set("x-amz-metadata-directive","REPLACE"),a.set("x-amz-copy-source",o);let u=await this.makeRequest({method:"PUT",bucketName:i,objectName:r,headers:a,returnBody:!0}),c=await u.text(),l=os(c).root;if(!l||l.name!=="CopyObjectResult")throw new Error(`Unexpected response: ${c}`);let h=l.children.find(f=>f.name==="ETag")?.content??"",d=l.children.find(f=>f.name==="LastModified")?.content;if(d===void 0)throw new Error("Unable to find <LastModified>...</LastModified> from the server.");return{copySourceVersionId:u.headers.get("x-amz-copy-source-version-id")||null,etag:oo(h),lastModified:new Date(d),versionId:u.headers.get("x-amz-version-id")||null}}async bucketExists(e){try{return await this.listObjects({bucketName:e}).next(),!0}catch(r){if(r instanceof Di&&r.statusCode===404)return!1;throw r}}async makeBucket(e){await this.makeRequest({method:"PUT",bucketName:this.getBucketName({bucketName:e}),objectName:"",statusCode:200})}async removeBucket(e){await this.makeRequest({method:"DELETE",bucketName:this.getBucketName({bucketName:e}),objectName:"",statusCode:204})}presignedPostObject(e,r={}){if(!us(e))throw new Bn(e);let n=this.getBucketName(r);if(!n)throw new Error("Bucket name is required for presignedPost, but none was provided either to this method nor to the client constructor");let i=r.requestDate||new Date,s=r.expirySeconds??3600;return jM({protocol:this.protocol,host:this.host,bucket:n,objectKey:e,accessKey:this.accessKey||"",secretKey:this.#e||"",region:this.region,date:i,expirySeconds:s,conditions:r.conditions,fields:r.fields})}};var lo=require("node:fs"),Wp=require("node:path");function Ule(t,e){return(0,lo.readFileSync)(t,"utf8").includes(e)}function ul(t,e){let r=(0,lo.readdirSync)(t);for(let n of r){let i=(0,Wp.join)(t,n),s=(0,lo.statSync)(i);if(s.isDirectory()){if(ul(i,e))return!0}else if(s.isFile()&&(0,Wp.extname)(i)===".js"&&Ule(i,e))return!0}return!1}function Xp(t){return(0,lo.readdirSync)(t).indexOf("index.html")>-1}var su=require("node:fs"),K6=require("node:os"),cs=require("node:path"),W6=require("node:process"),nm=require("node:stream/consumers"),X6=require("node:zlib");var Y6=xe(G6()),J6=xe(n0());async function nhe(t,e){try{return(await fetch(`${t.hostFilesApi}/files/read/attachments/${encodeURIComponent(e)}`,{method:"HEAD"})).ok}catch{return!1}}var Z6=8192,Q6="6.25.0",eq="7.0.35";async function ihe(t){let e=(0,cs.join)(Xr((0,W6.cwd)()),$n),n=(await Ln(void 0,t.packageJson||e)).get("@capgo/capacitor-updater"),i;try{i=n?Et(n):void 0}catch{i=void 0}if(!n||!i)return{version:null,supportsBrotliV2:!1};let s=i.major===6&&Ci(i,Et(Q6)),o=i.major>=7&&Ci(i,Et(eq)),a=s||o;return{version:`${i.major}.${i.minor}.${i.patch}`,supportsBrotliV2:a}}function she(t,e){if(!e)return!1;let r=e.split(",").map(n=>n.trim()).filter(n=>!!n);return r.length===0?!1:Y6.isMatch(t,r)}async function ohe(t,e,r){let i=(0,su.statSync)(t).size,s=await(0,nm.buffer)((0,su.createReadStream)(t));if(i===0)return{buffer:s,useBrotli:!1};if(she(e,r.noBrotliPatterns))return{buffer:s,useBrotli:!1};if(i<Z6)return{buffer:s,useBrotli:!1};try{let o=await(0,nm.buffer)((0,su.createReadStream)(t).pipe((0,X6.createBrotliCompress)({})));return o.length>=i-10?(w.info(`Brotli not effective for ${e} (${i} bytes), using original file`),{buffer:s,useBrotli:!1}):{buffer:o,useBrotli:!0}}catch(o){return w.warn(`Brotli compression failed for ${t}: ${o}, using original file`),{buffer:s,useBrotli:!1}}}async function tq(t,e,r,n,i,s){let o=Ft();o.start(i!=="v2"?"Generating the update manifest":"Generating the update manifest with v2 encryption");let a=await W8(t);if(i==="v2")for(let u of a)u.hash=tu(u.hash,s);return o.stop("Manifest generated successfully"),await Ae(e,{channel:"partial-update",event:"Generate manifest",icon:"\u{1F4C2}",user_id:r,tags:{"app-id":n},notify:!1}),a}function ahe(t){return(0,K6.platform)()!=="win32"?t:cs.win32.normalize(t).split(cs.win32.sep).join(cs.posix.sep)}function uhe(t){let e=t.split("/").map(r=>encodeURIComponent(r)).join("/");return t.includes(" ")&&w.warn(`File "${t}" contains spaces in its name.`),e}async function rq(t,e,r,n,i,s,o){let a=Ft();a.start("Preparing partial update with TUS protocol");let u=performance.now(),c=await wn(),l=!!(o.partial||o.delta||o.partialOnly||o.deltaOnly),{version:h,supportsBrotliV2:d}=await ihe(o);if(d)o.disableBrotli?w.info("Brotli compression disabled by user request"):(a.message(`Using .br extension for compatible files (updater ${h})`),o.noBrotliPatterns&&w.info(`Files matching patterns (${o.noBrotliPatterns}) will be excluded from brotli compression`),w.info(`Files smaller than ${Z6} bytes will be excluded from brotli compression (Brotli RFC minimum)`));else throw new Error(`Your project is using an older version of @capgo/capacitor-updater (${h||"unknown"}). To use Delta updates, please upgrade to version ${Q6} (v6) or ${eq} (v7) or higher.`);let f=e.filter(S=>S.file.includes(" "));if(f.length>0)throw new Error(`Files with spaces in their names (${f.map(S=>S.file).join(", ")}). Please rename the files.`);let m=0,g=e.length,b=0;try{let S=e.map(async y=>{let C=(0,cs.join)(r,y.file),k=ahe(y.file),v,R=!1;if(o.disableBrotli)v=await(0,nm.buffer)((0,su.createReadStream)(C)),R=!1;else{let G=await ohe(C,k,o);v=G.buffer,R=G.useBrotli}let P=v;s&&(P=eu(v,s.sessionKey,s.ivSessionKey));let F=k;R&&(F=`${k}.br`,b++);let j=uhe(F),U=`orgs/${i}/apps/${n}/delta/${y.hash}_${j}`;return await nhe(c,U)?(m++,Promise.resolve({file_name:j,s3_path:U,file_hash:y.hash})):new Promise((G,L)=>{let _=0,T=3,I=()=>{new J6.Upload(P,{endpoint:`${c.hostFilesApi}/files/upload/attachments/`,chunkSize:o.tusChunkSize,retryDelays:[0,1e3,3e3,5e3],removeFingerprintOnSuccess:!0,metadata:{filename:U},headers:{Authorization:t},onError:async M=>{let B=M.toString();if(B.includes("offset")||B.includes("409")||B.includes("conflict"))if(_++,_<=T){w.warn(`Offset mismatch for ${k}, retrying (attempt ${_}/${T})...`),await new Promise(K=>setTimeout(K,1e3*_)),I();return}else w.error(`Failed to upload ${k} after ${T} retries due to offset errors`),w.info("This may happen if the upload expired or there was a network issue. The file will be skipped.");else w.error(`Failed to upload ${k}: ${B}`);L(M)},onProgress(){let M=(m/g*100).toFixed(2);a.message(`Uploading partial update: ${M}%`)},onSuccess(){m++,G({file_name:j,s3_path:U,file_hash:y.hash})}}).start()};I()})}),A=await Promise.all(S),D=((performance.now()-u)/1e3).toFixed(2);return a.stop(`Partial update uploaded successfully \u{1F4AA} in (${D} seconds)`),b>0&&w.info(`${b} of ${g} files were compressed with brotli and use .br extension`),await Ae(t,{channel:"app",event:`App Partial TUS done${b>0?" with .br extension":""}`,icon:"\u23EB",user_id:i,tags:{"app-id":n},notify:!1}),await Ae(t,{channel:"performance",event:"Partial upload performance",icon:"\u{1F684}",user_id:i,tags:{"app-id":n,time:D},notify:!1}),A}catch(S){let p=((performance.now()-u)/1e3).toFixed(2);if(a.stop(`Failed to upload Partial bundle (after ${p} seconds)`),l)throw w.error(`Error uploading partial update: ${S}`),w.error("Delta/partial upload was explicitly requested but failed. Upload aborted."),S;return w.info(`Error uploading partial update: ${S}, This is not a critical error, the bundle has been uploaded without the partial files`),null}}function gt(t){throw w.error(t),new Error(t)}async function che(t,e){let r=is("",e.packageJson),n=e.bundle||t?.plugins?.CapacitorUpdater?.version||r||`0.0.1-beta.${(0,nq.randomUUID)().split("-")[0]}`;return Wa.test(n)||gt(`Your bundle name ${n}, is not valid it should follow semver convention : https://semver.org/`),n}function lhe(t){let e=t.apikey||ne();return e||gt("Missing API key, you need to provide an API key to upload your bundle"),e}function fhe(t,e,r){let n=Pe(t,r),i=e.path||r?.webDir;return n||gt("Missing argument, you need to provide a appid or be in a capacitor project"),i||gt("Missing argument, you need to provide a path (--path), or be in a capacitor project"),(0,po.existsSync)(i)||gt(`Path ${i} does not exist, build your app first, or provide a valid path`),{appid:n,path:i}}function hhe(t,e){let r=t.codeCheck;(typeof r>"u"||r)&&(ul(e,"notifyAppReady")||gt(`notifyAppReady() is missing in the build folder of your app. see: https://capgo.app/docs/plugin/api/#notifyappready
|
|
329
329
|
If you are sure your app has this code, you can use the --no-code-check option`),Xp(e)||gt(`index.html is missing in the root folder of ${e}`))}async function dhe(t,e,r,n,i,s){let o=r.ignoreMetadataCheck,a=r.autoMinUpdateVersion,u=r.minUpdateVersion,{data:c,error:l}=await t.from("channels").select("disable_auto_update, version ( min_update_version, native_packages )").eq("name",n).eq("app_id",i).single(),h=!!c&&c.disable_auto_update==="version_number",d,f;if(!l&&c&&c.version&&c.version.native_packages&&!o){let b=Ft();b.start(`Checking bundle compatibility with channel ${n}`);let{finalCompatibility:S,localDependencies:A}=await jp(t,i,n,r.packageJson,r.nodeModules);if(f=S,d=A,f.find(p=>!so(p)))b.stop(`Bundle NOT compatible with ${n} channel`),w.warn(`You can check compatibility with "${e.runner} @capgo/cli bundle compatibility"`),a&&(u=s,w.info(`Auto set min-update-version to ${u}`));else if(a)try{let{min_update_version:p}=c.version;(!p||!Wa.test(p))&>("Invalid remote min update version, skipping auto setting compatibility"),u=p,b.stop(`Auto set min-update-version to ${u}`)}catch{gt(`Cannot auto set compatibility, invalid data ${c}`)}else b.stop(`Bundle compatible with ${n} channel`)}else o||(w.warn(`Channel ${n} is new or it's your first upload with compatibility check, it will be ignored this time`),d=await Jv(r.packageJson,r.nodeModules),a&&(u=s,w.info(`Auto set min-update-version to ${u}`)));h&&!u&&!o&>("You need to provide a min-update-version to upload a bundle to this channel"),u&&(Wa.test(u)||gt(`Your minimal version update ${u}, is not valid it should follow semver convention : https://semver.org/`));let m=d?new Map(d.filter(b=>!!b.native&&b.native!==void 0).map(b=>[b.name,b])):new Map;return{nativePackages:m.size>0||!r.ignoreMetadataCheck?Array.from(m,([b,S])=>({name:b,version:S.version})):void 0,minUpdateVersion:u}}async function phe(t,e,r){let{data:n,error:i}=await t.rpc("is_trial_org",{orgid:e}).single();(n&&n>0||i)&&(w.warn(`WARNING !!
|
|
330
330
|
Trial expires in ${n} days`),w.warn(`Upgrade here: ${r.hostWeb}/dashboard/settings/plans?oid=${e}`))}async function mhe(t,e,r,n=!1){let{data:i,error:s}=await t.rpc("exist_app_versions",{appid:e,name_version:r}).single();if(i||s){if(n)return w.warn(`Version ${r} already exists - exiting gracefully due to --silent-fail option`),ce("Bundle version already exists - exiting gracefully \u{1F389}"),!0;gt(`Version ${r} already exists ${W(s)}`)}return!1}async function ghe(t,e,r,n,i,s,o){let a,u,c="",l=null,h="none",d="",f=e.keyV2,m=e.key===!1;l=await Np(t);let g=Ft();g.start("Calculating checksum");let b=(0,SE.join)(Xr((0,AE.cwd)()),$n),A=(await Ln(void 0,e.packageJson||b)).get("@capgo/capacitor-updater"),p=!1,D;try{D=A?Et(A):void 0}catch{D=void 0}if(A?D?p=Ci(D,Et("6.25.0")):(A==="link:@capgo/capacitor-updater"||A==="file:.."||A==="file:../")&&(w.warn("Using local @capgo/capacitor-updater. Assuming latest version for checksum calculation."),p=!0):gt("Cannot find @capgo/capacitor-updater in ./package.json, provide the package.json path with --package-json it's required for v7 CLI to work"),(f||e.keyDataV2||(0,po.existsSync)(Ir))&&!m||p?c=await Jn(l,"sha256"):c=await Jn(l,"crc32"),g.stop(`Checksum ${p?"SHA256":"CRC32"}: ${c}`),m)w.info("Encryption ignored");else if((f||(0,po.existsSync)(Ir)||e.keyDataV2)&&!e.oldEncryption){let k=typeof f=="string"?f:Ir,v=e.keyDataV2||"";!v&&!(0,po.existsSync)(k)&>(`Cannot find private key ${k}`),await Ae(r,{channel:"app",event:"App encryption v2",icon:"\u{1F511}",user_id:n,tags:{"app-id":i},notify:!1},e.verbose),v||(v=(0,po.readFileSync)(k).toString()),w.info("Encrypting your bundle with V2");let{sessionKey:R,ivSessionKey:P}=Hp(v),F=eu(l,R,P);c=tu(c,v),a=P,u=R,h="v2",d=v,e.displayIvSession&&w.info(`Your Iv Session key is ${a},
|
|
331
331
|
keep it safe, you will need it to decrypt your bundle.
|