@capgo/cli 7.71.10 → 7.71.11

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/src/sdk.js CHANGED
@@ -21,7 +21,7 @@ Option 2: Install and provide the "ws" package:
21
21
  ...options,
22
22
  transport: ws
23
23
  })`);throw Error(`WebSocket not available: ${X}`)}this._setupConnectionHandlers()}endpointURL(){return this._appendParams(this.endPoint,Object.assign({},this.params,{vsn:this.vsn}))}disconnect(D,X){if(this.isDisconnecting())return;if(this._setConnectionState("disconnecting",!0),this.conn){let Y=setTimeout(()=>{this._setConnectionState("disconnected")},100);if(this.conn.onclose=()=>{clearTimeout(Y),this._setConnectionState("disconnected")},typeof this.conn.close==="function")if(D)this.conn.close(D,X!==null&&X!==void 0?X:"");else this.conn.close();this._teardownConnection()}else this._setConnectionState("disconnected")}getChannels(){return this.channels}async removeChannel(D){let X=await D.unsubscribe();if(this.channels.length===0)this.disconnect();return X}async removeAllChannels(){let D=await Promise.all(this.channels.map((X)=>X.unsubscribe()));return this.channels=[],this.disconnect(),D}log(D,X,Y){this.logger(D,X,Y)}connectionState(){switch(this.conn&&this.conn.readyState){case LD.SOCKET_STATES.connecting:return LD.CONNECTION_STATE.Connecting;case LD.SOCKET_STATES.open:return LD.CONNECTION_STATE.Open;case LD.SOCKET_STATES.closing:return LD.CONNECTION_STATE.Closing;default:return LD.CONNECTION_STATE.Closed}}isConnected(){return this.connectionState()===LD.CONNECTION_STATE.Open}isConnecting(){return this._connectionState==="connecting"}isDisconnecting(){return this._connectionState==="disconnecting"}channel(D,X={config:{}}){let Y=`realtime:${D}`,Z=this.getChannels().find((J)=>J.topic===Y);if(!Z){let J=new Gv.default(`realtime:${D}`,X,this);return this.channels.push(J),J}else return Z}push(D){let{topic:X,event:Y,payload:Z,ref:J}=D,Q=()=>{this.encode(D,(w)=>{var F;(F=this.conn)===null||F===void 0||F.send(w)})};if(this.log("push",`${X} ${Y} (${J})`,Z),this.isConnected())Q();else this.sendBuffer.push(Q)}async setAuth(D=null){this._authPromise=this._performAuth(D);try{await this._authPromise}finally{this._authPromise=null}}_isManualToken(){return this._manuallySetToken}async sendHeartbeat(){var D;if(!this.isConnected()){try{this.heartbeatCallback("disconnected")}catch(X){this.log("error","error in heartbeat callback",X)}return}if(this.pendingHeartbeatRef){this.pendingHeartbeatRef=null,this.log("transport","heartbeat timeout. Attempting to re-establish connection");try{this.heartbeatCallback("timeout")}catch(X){this.log("error","error in heartbeat callback",X)}this._wasManualDisconnect=!1,(D=this.conn)===null||D===void 0||D.close(LD.WS_CLOSE_NORMAL,"heartbeat timeout"),setTimeout(()=>{var X;if(!this.isConnected())(X=this.reconnectTimer)===null||X===void 0||X.scheduleTimeout()},gX.HEARTBEAT_TIMEOUT_FALLBACK);return}this.pendingHeartbeatRef=this._makeRef(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef});try{this.heartbeatCallback("sent")}catch(X){this.log("error","error in heartbeat callback",X)}this._setAuthSafely("heartbeat")}onHeartbeat(D){this.heartbeatCallback=D}flushSendBuffer(){if(this.isConnected()&&this.sendBuffer.length>0)this.sendBuffer.forEach((D)=>D()),this.sendBuffer=[]}_makeRef(){let D=this.ref+1;if(D===this.ref)this.ref=0;else this.ref=D;return this.ref.toString()}_leaveOpenTopic(D){let X=this.channels.find((Y)=>Y.topic===D&&(Y._isJoined()||Y._isJoining()));if(X)this.log("transport",`leaving duplicate topic "${D}"`),X.unsubscribe()}_remove(D){this.channels=this.channels.filter((X)=>X.topic!==D.topic)}_onConnMessage(D){this.decode(D.data,(X)=>{if(X.topic==="phoenix"&&X.event==="phx_reply")try{this.heartbeatCallback(X.payload.status==="ok"?"ok":"error")}catch(B){this.log("error","error in heartbeat callback",B)}if(X.ref&&X.ref===this.pendingHeartbeatRef)this.pendingHeartbeatRef=null;let{topic:Y,event:Z,payload:J,ref:Q}=X,w=Q?`(${Q})`:"",F=J.status||"";this.log("receive",`${F} ${Y} ${Z} ${w}`.trim(),J),this.channels.filter((B)=>B._isMember(Y)).forEach((B)=>B._trigger(Z,J,Q)),this._triggerStateCallbacks("message",X)})}_clearTimer(D){var X;if(D==="heartbeat"&&this.heartbeatTimer)clearInterval(this.heartbeatTimer),this.heartbeatTimer=void 0;else if(D==="reconnect")(X=this.reconnectTimer)===null||X===void 0||X.reset()}_clearAllTimers(){this._clearTimer("heartbeat"),this._clearTimer("reconnect")}_setupConnectionHandlers(){if(!this.conn)return;if("binaryType"in this.conn)this.conn.binaryType="arraybuffer";if(this.conn.onopen=()=>this._onConnOpen(),this.conn.onerror=(D)=>this._onConnError(D),this.conn.onmessage=(D)=>this._onConnMessage(D),this.conn.onclose=(D)=>this._onConnClose(D),this.conn.readyState===LD.SOCKET_STATES.open)this._onConnOpen()}_teardownConnection(){if(this.conn){if(this.conn.readyState===LD.SOCKET_STATES.open||this.conn.readyState===LD.SOCKET_STATES.connecting)try{this.conn.close()}catch(D){this.log("error","Error closing connection",D)}this.conn.onopen=null,this.conn.onerror=null,this.conn.onmessage=null,this.conn.onclose=null,this.conn=null}this._clearAllTimers(),this._terminateWorker(),this.channels.forEach((D)=>D.teardown())}_onConnOpen(){if(this._setConnectionState("connected"),this.log("transport",`connected to ${this.endpointURL()}`),(this._authPromise||(this.accessToken&&!this.accessTokenValue?this.setAuth():Promise.resolve())).then(()=>{this.flushSendBuffer()}).catch((X)=>{this.log("error","error waiting for auth on connect",X),this.flushSendBuffer()}),this._clearTimer("reconnect"),!this.worker)this._startHeartbeat();else if(!this.workerRef)this._startWorkerHeartbeat();this._triggerStateCallbacks("open")}_startHeartbeat(){this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.heartbeatTimer=setInterval(()=>this.sendHeartbeat(),this.heartbeatIntervalMs)}_startWorkerHeartbeat(){if(this.workerUrl)this.log("worker",`starting worker for from ${this.workerUrl}`);else this.log("worker","starting default worker");let D=this._workerObjectUrl(this.workerUrl);this.workerRef=new Worker(D),this.workerRef.onerror=(X)=>{this.log("worker","worker error",X.message),this._terminateWorker()},this.workerRef.onmessage=(X)=>{if(X.data.event==="keepAlive")this.sendHeartbeat()},this.workerRef.postMessage({event:"start",interval:this.heartbeatIntervalMs})}_terminateWorker(){if(this.workerRef)this.log("worker","terminating worker"),this.workerRef.terminate(),this.workerRef=void 0}_onConnClose(D){var X;if(this._setConnectionState("disconnected"),this.log("transport","close",D),this._triggerChanError(),this._clearTimer("heartbeat"),!this._wasManualDisconnect)(X=this.reconnectTimer)===null||X===void 0||X.scheduleTimeout();this._triggerStateCallbacks("close",D)}_onConnError(D){this._setConnectionState("disconnected"),this.log("transport",`${D}`),this._triggerChanError(),this._triggerStateCallbacks("error",D)}_triggerChanError(){this.channels.forEach((D)=>D._trigger(LD.CHANNEL_EVENTS.error))}_appendParams(D,X){if(Object.keys(X).length===0)return D;let Y=D.match(/\?/)?"&":"?",Z=new URLSearchParams(X);return`${D}${Y}${Z}`}_workerObjectUrl(D){let X;if(D)X=D;else{let Y=new Blob([Hv],{type:"application/javascript"});X=URL.createObjectURL(Y)}return X}_setConnectionState(D,X=!1){if(this._connectionState=D,D==="connecting")this._wasManualDisconnect=!1;else if(D==="disconnecting")this._wasManualDisconnect=X}async _performAuth(D=null){let X,Y=!1;if(D)X=D,Y=!0;else if(this.accessToken)try{X=await this.accessToken()}catch(Z){this.log("error","Error fetching access token from callback",Z),X=this.accessTokenValue}else X=this.accessTokenValue;if(Y)this._manuallySetToken=!0;else if(this.accessToken)this._manuallySetToken=!1;if(this.accessTokenValue!=X)this.accessTokenValue=X,this.channels.forEach((Z)=>{let J={access_token:X,version:LD.DEFAULT_VERSION};if(X&&Z.updateJoinPayload(J),Z.joinedOnce&&Z._isJoined())Z._push(LD.CHANNEL_EVENTS.access_token,{access_token:X})})}async _waitForAuthIfNeeded(){if(this._authPromise)await this._authPromise}_setAuthSafely(D="general"){if(!this._isManualToken())this.setAuth().catch((X)=>{this.log("error",`Error setting auth in ${D}`,X)})}_triggerStateCallbacks(D,X){try{this.stateChangeCallbacks[D].forEach((Y)=>{try{Y(X)}catch(Z){this.log("error",`error in ${D} callback`,Z)}})}catch(Y){this.log("error",`error triggering ${D} callbacks`,Y)}}_setupReconnectionTimer(){this.reconnectTimer=new qv.default(async()=>{setTimeout(async()=>{if(await this._waitForAuthIfNeeded(),!this.isConnected())this.connect()},gX.RECONNECT_DELAY)},this.reconnectAfterMs)}_initializeOptions(D){var X,Y,Z,J,Q,w,F,B,q,$,G,W;if(this.transport=(X=D===null||D===void 0?void 0:D.transport)!==null&&X!==void 0?X:null,this.timeout=(Y=D===null||D===void 0?void 0:D.timeout)!==null&&Y!==void 0?Y:LD.DEFAULT_TIMEOUT,this.heartbeatIntervalMs=(Z=D===null||D===void 0?void 0:D.heartbeatIntervalMs)!==null&&Z!==void 0?Z:gX.HEARTBEAT_INTERVAL,this.worker=(J=D===null||D===void 0?void 0:D.worker)!==null&&J!==void 0?J:!1,this.accessToken=(Q=D===null||D===void 0?void 0:D.accessToken)!==null&&Q!==void 0?Q:null,this.heartbeatCallback=(w=D===null||D===void 0?void 0:D.heartbeatCallback)!==null&&w!==void 0?w:fQ,this.vsn=(F=D===null||D===void 0?void 0:D.vsn)!==null&&F!==void 0?F:LD.DEFAULT_VSN,D===null||D===void 0?void 0:D.params)this.params=D.params;if(D===null||D===void 0?void 0:D.logger)this.logger=D.logger;if((D===null||D===void 0?void 0:D.logLevel)||(D===null||D===void 0?void 0:D.log_level))this.logLevel=D.logLevel||D.log_level,this.params=Object.assign(Object.assign({},this.params),{log_level:this.logLevel});switch(this.reconnectAfterMs=(B=D===null||D===void 0?void 0:D.reconnectAfterMs)!==null&&B!==void 0?B:(O)=>{return Ov[O-1]||Wv},this.vsn){case LD.VSN_1_0_0:this.encode=(q=D===null||D===void 0?void 0:D.encode)!==null&&q!==void 0?q:(O,H)=>{return H(JSON.stringify(O))},this.decode=($=D===null||D===void 0?void 0:D.decode)!==null&&$!==void 0?$:(O,H)=>{return H(JSON.parse(O))};break;case LD.VSN_2_0_0:this.encode=(G=D===null||D===void 0?void 0:D.encode)!==null&&G!==void 0?G:this.serializer.encode.bind(this.serializer),this.decode=(W=D===null||D===void 0?void 0:D.decode)!==null&&W!==void 0?W:this.serializer.decode.bind(this.serializer);break;default:throw Error(`Unsupported serializer version: ${this.vsn}`)}if(this.worker){if(typeof window<"u"&&!window.Worker)throw Error("Web Worker is not supported");this.workerUrl=D===null||D===void 0?void 0:D.workerUrl}}}yQ.default=eO});var kQ=T((fD)=>{Object.defineProperty(fD,"__esModule",{value:!0});fD.WebSocketFactory=fD.REALTIME_CHANNEL_STATES=fD.REALTIME_SUBSCRIBE_STATES=fD.REALTIME_PRESENCE_LISTEN_EVENTS=fD.REALTIME_POSTGRES_CHANGES_LISTEN_EVENT=fD.REALTIME_LISTEN_TYPES=fD.RealtimeClient=fD.RealtimeChannel=fD.RealtimePresence=void 0;var dX=h0(),Kv=dX.__importDefault(DW());fD.RealtimeClient=Kv.default;var z4=dX.__importStar(xQ());fD.RealtimeChannel=z4.default;Object.defineProperty(fD,"REALTIME_LISTEN_TYPES",{enumerable:!0,get:function(){return z4.REALTIME_LISTEN_TYPES}});Object.defineProperty(fD,"REALTIME_POSTGRES_CHANGES_LISTEN_EVENT",{enumerable:!0,get:function(){return z4.REALTIME_POSTGRES_CHANGES_LISTEN_EVENT}});Object.defineProperty(fD,"REALTIME_SUBSCRIBE_STATES",{enumerable:!0,get:function(){return z4.REALTIME_SUBSCRIBE_STATES}});Object.defineProperty(fD,"REALTIME_CHANNEL_STATES",{enumerable:!0,get:function(){return z4.REALTIME_CHANNEL_STATES}});var XW=dX.__importStar(PQ());fD.RealtimePresence=XW.default;Object.defineProperty(fD,"REALTIME_PRESENCE_LISTEN_EVENTS",{enumerable:!0,get:function(){return XW.REALTIME_PRESENCE_LISTEN_EVENTS}});var zv=dX.__importDefault(AQ());fD.WebSocketFactory=zv.default});var cQ=T((pX)=>{Object.defineProperty(pX,"__esModule",{value:!0});pX.version=void 0;pX.version="2.89.0"});var aX=T((l0)=>{Object.defineProperty(l0,"__esModule",{value:!0});l0.JWKS_TTL=l0.BASE64URL_REGEX=l0.API_VERSIONS=l0.API_VERSION_HEADER_NAME=l0.NETWORK_FAILURE=l0.DEFAULT_HEADERS=l0.AUDIENCE=l0.STORAGE_KEY=l0.GOTRUE_URL=l0.EXPIRY_MARGIN_MS=l0.AUTO_REFRESH_TICK_THRESHOLD=l0.AUTO_REFRESH_TICK_DURATION_MS=void 0;var cv=cQ();l0.AUTO_REFRESH_TICK_DURATION_MS=30000;l0.AUTO_REFRESH_TICK_THRESHOLD=3;l0.EXPIRY_MARGIN_MS=l0.AUTO_REFRESH_TICK_THRESHOLD*l0.AUTO_REFRESH_TICK_DURATION_MS;l0.GOTRUE_URL="http://localhost:9999";l0.STORAGE_KEY="supabase.auth.token";l0.AUDIENCE="";l0.DEFAULT_HEADERS={"X-Client-Info":`gotrue-js/${cv.version}`};l0.NETWORK_FAILURE={MAX_RETRIES:10,RETRY_INTERVAL:2};l0.API_VERSION_HEADER_NAME="X-Supabase-Api-Version";l0.API_VERSIONS={"2024-01-01":{timestamp:Date.parse("2024-01-01T00:00:00.0Z"),name:"2024-01-01"}};l0.BASE64URL_REGEX=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}$|[a-z0-9_-]{2}$)$/i;l0.JWKS_TTL=600000});var G9=T((j0)=>{Object.defineProperty(j0,"__esModule",{value:!0});j0.AuthInvalidJwtError=j0.AuthWeakPasswordError=j0.AuthRetryableFetchError=j0.AuthPKCECodeVerifierMissingError=j0.AuthPKCEGrantCodeExchangeError=j0.AuthImplicitGrantRedirectError=j0.AuthInvalidCredentialsError=j0.AuthInvalidTokenResponseError=j0.AuthSessionMissingError=j0.CustomAuthError=j0.AuthUnknownError=j0.AuthApiError=j0.AuthError=void 0;j0.isAuthError=$9;j0.isAuthApiError=lv;j0.isAuthSessionMissingError=nv;j0.isAuthImplicitGrantRedirectError=iv;j0.isAuthPKCECodeVerifierMissingError=pv;j0.isAuthRetryableFetchError=av;j0.isAuthWeakPasswordError=tv;class R4 extends Error{constructor(D,X,Y){super(D);this.__isAuthError=!0,this.name="AuthError",this.status=X,this.code=Y}}j0.AuthError=R4;function $9(D){return typeof D==="object"&&D!==null&&"__isAuthError"in D}class UW extends R4{constructor(D,X,Y){super(D,X,Y);this.name="AuthApiError",this.status=X,this.code=Y}}j0.AuthApiError=UW;function lv(D){return $9(D)&&D.name==="AuthApiError"}class NW extends R4{constructor(D,X){super(D);this.name="AuthUnknownError",this.originalError=X}}j0.AuthUnknownError=NW;class B8 extends R4{constructor(D,X,Y,Z){super(D,Y,Z);this.name=X,this.status=Y}}j0.CustomAuthError=B8;class RW extends B8{constructor(){super("Auth session missing!","AuthSessionMissingError",400,void 0)}}j0.AuthSessionMissingError=RW;function nv(D){return $9(D)&&D.name==="AuthSessionMissingError"}class AW extends B8{constructor(){super("Auth session or user missing","AuthInvalidTokenResponseError",500,void 0)}}j0.AuthInvalidTokenResponseError=AW;class EW extends B8{constructor(D){super(D,"AuthInvalidCredentialsError",400,void 0)}}j0.AuthInvalidCredentialsError=EW;class CW extends B8{constructor(D,X=null){super(D,"AuthImplicitGrantRedirectError",500,void 0);this.details=null,this.details=X}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}}j0.AuthImplicitGrantRedirectError=CW;function iv(D){return $9(D)&&D.name==="AuthImplicitGrantRedirectError"}class jW extends B8{constructor(D,X=null){super(D,"AuthPKCEGrantCodeExchangeError",500,void 0);this.details=null,this.details=X}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}}j0.AuthPKCEGrantCodeExchangeError=jW;class TW extends B8{constructor(){super("PKCE code verifier not found in storage. This can happen if the auth flow was initiated in a different browser or device, or if the storage was cleared. For SSR frameworks (Next.js, SvelteKit, etc.), use @supabase/ssr on both the server and client to store the code verifier in cookies.","AuthPKCECodeVerifierMissingError",400,"pkce_code_verifier_not_found")}}j0.AuthPKCECodeVerifierMissingError=TW;function pv(D){return $9(D)&&D.name==="AuthPKCECodeVerifierMissingError"}class IW extends B8{constructor(D,X){super(D,"AuthRetryableFetchError",X,void 0)}}j0.AuthRetryableFetchError=IW;function av(D){return $9(D)&&D.name==="AuthRetryableFetchError"}class PW extends B8{constructor(D,X,Y){super(D,"AuthWeakPasswordError",X,"weak_password");this.reasons=Y}}j0.AuthWeakPasswordError=PW;function tv(D){return $9(D)&&D.name==="AuthWeakPasswordError"}class SW extends B8{constructor(D){super(D,"AuthInvalidJwtError",400,"invalid_jwt")}}j0.AuthInvalidJwtError=SW});var rX=T((l1)=>{Object.defineProperty(l1,"__esModule",{value:!0});l1.byteToBase64URL=A4;l1.byteFromBase64URL=lQ;l1.stringToBase64URL=sv;l1.stringFromBase64URL=ov;l1.codepointToUTF8=fW;l1.stringToUTF8=nQ;l1.stringFromUTF8=yW;l1.base64UrlToUint8Array=ev;l1.stringToUint8Array=Db;l1.bytesToBase64URL=Xb;var tX="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".split(""),xW=`
24
- \r=`.split(""),rv=(()=>{let D=Array(128);for(let X=0;X<D.length;X+=1)D[X]=-1;for(let X=0;X<xW.length;X+=1)D[xW[X].charCodeAt(0)]=-2;for(let X=0;X<tX.length;X+=1)D[tX[X].charCodeAt(0)]=X;return D})();function A4(D,X,Y){if(D!==null){X.queue=X.queue<<8|D,X.queuedBits+=8;while(X.queuedBits>=6){let Z=X.queue>>X.queuedBits-6&63;Y(tX[Z]),X.queuedBits-=6}}else if(X.queuedBits>0){X.queue=X.queue<<6-X.queuedBits,X.queuedBits=6;while(X.queuedBits>=6){let Z=X.queue>>X.queuedBits-6&63;Y(tX[Z]),X.queuedBits-=6}}}function lQ(D,X,Y){let Z=rv[D];if(Z>-1){X.queue=X.queue<<6|Z,X.queuedBits+=6;while(X.queuedBits>=8)Y(X.queue>>X.queuedBits-8&255),X.queuedBits-=8}else if(Z===-2)return;else throw Error(`Invalid Base64-URL character "${String.fromCharCode(D)}"`)}function sv(D){let X=[],Y=(J)=>{X.push(J)},Z={queue:0,queuedBits:0};return nQ(D,(J)=>{A4(J,Z,Y)}),A4(null,Z,Y),X.join("")}function ov(D){let X=[],Y=(w)=>{X.push(String.fromCodePoint(w))},Z={utf8seq:0,codepoint:0},J={queue:0,queuedBits:0},Q=(w)=>{yW(w,Z,Y)};for(let w=0;w<D.length;w+=1)lQ(D.charCodeAt(w),J,Q);return X.join("")}function fW(D,X){if(D<=127){X(D);return}else if(D<=2047){X(192|D>>6),X(128|D&63);return}else if(D<=65535){X(224|D>>12),X(128|D>>6&63),X(128|D&63);return}else if(D<=1114111){X(240|D>>18),X(128|D>>12&63),X(128|D>>6&63),X(128|D&63);return}throw Error(`Unrecognized Unicode codepoint: ${D.toString(16)}`)}function nQ(D,X){for(let Y=0;Y<D.length;Y+=1){let Z=D.charCodeAt(Y);if(Z>55295&&Z<=56319){let J=(Z-55296)*1024&65535;Z=(D.charCodeAt(Y+1)-56320&65535|J)+65536,Y+=1}fW(Z,X)}}function yW(D,X,Y){if(X.utf8seq===0){if(D<=127){Y(D);return}for(let Z=1;Z<6;Z+=1)if((D>>7-Z&1)===0){X.utf8seq=Z;break}if(X.utf8seq===2)X.codepoint=D&31;else if(X.utf8seq===3)X.codepoint=D&15;else if(X.utf8seq===4)X.codepoint=D&7;else throw Error("Invalid UTF-8 sequence");X.utf8seq-=1}else if(X.utf8seq>0){if(D<=127)throw Error("Invalid UTF-8 sequence");if(X.codepoint=X.codepoint<<6|D&63,X.utf8seq-=1,X.utf8seq===0)Y(X.codepoint)}}function ev(D){let X=[],Y={queue:0,queuedBits:0},Z=(J)=>{X.push(J)};for(let J=0;J<D.length;J+=1)lQ(D.charCodeAt(J),Y,Z);return new Uint8Array(X)}function Db(D){let X=[];return nQ(D,(Y)=>X.push(Y)),new Uint8Array(X)}function Xb(D){let X=[],Y={queue:0,queuedBits:0},Z=(J)=>{X.push(J)};return D.forEach((J)=>A4(J,Y,Z)),A4(null,Y,Z),X.join("")}});var P5=T((C0)=>{Object.defineProperty(C0,"__esModule",{value:!0});C0.Deferred=C0.removeItemAsync=C0.getItemAsync=C0.setItemAsync=C0.looksLikeFetchResponse=C0.resolveFetch=C0.supportsLocalStorage=C0.isBrowser=void 0;C0.expiresAt=Yb;C0.generateCallbackId=Zb;C0.parseParametersFromURL=wb;C0.decodeJWT=Ob;C0.sleep=Wb;C0.retryable=Hb;C0.generatePKCEVerifier=hW;C0.generatePKCEChallenge=_W;C0.getCodeChallengeAndMethod=Mb;C0.parseResponseAPIVersion=Vb;C0.validateExp=Ub;C0.getAlgorithm=Nb;C0.validateUUID=Ab;C0.userNotAvailableProxy=Eb;C0.insecureUserWarningProxy=Cb;C0.deepClone=jb;var uW=aX(),kW=G9(),iQ=rX();function Yb(D){return Math.round(Date.now()/1000)+D}function Zb(){return Symbol("auth-callback")}var Jb=()=>typeof window<"u"&&typeof document<"u";C0.isBrowser=Jb;var O9={tested:!1,writable:!1},Qb=()=>{if(!(0,C0.isBrowser)())return!1;try{if(typeof globalThis.localStorage!=="object")return!1}catch(X){return!1}if(O9.tested)return O9.writable;let D=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(D,D),globalThis.localStorage.removeItem(D),O9.tested=!0,O9.writable=!0}catch(X){O9.tested=!0,O9.writable=!1}return O9.writable};C0.supportsLocalStorage=Qb;function wb(D){let X={},Y=new URL(D);if(Y.hash&&Y.hash[0]==="#")try{new URLSearchParams(Y.hash.substring(1)).forEach((J,Q)=>{X[Q]=J})}catch(Z){}return Y.searchParams.forEach((Z,J)=>{X[J]=Z}),X}var Fb=(D)=>{if(D)return(...X)=>D(...X);return(...X)=>fetch(...X)};C0.resolveFetch=Fb;var Bb=(D)=>{return typeof D==="object"&&D!==null&&"status"in D&&"ok"in D&&"json"in D&&typeof D.json==="function"};C0.looksLikeFetchResponse=Bb;var qb=async(D,X,Y)=>{await D.setItem(X,JSON.stringify(Y))};C0.setItemAsync=qb;var $b=async(D,X)=>{let Y=await D.getItem(X);if(!Y)return null;try{return JSON.parse(Y)}catch(Z){return Y}};C0.getItemAsync=$b;var Gb=async(D,X)=>{await D.removeItem(X)};C0.removeItemAsync=Gb;class sX{constructor(){this.promise=new sX.promiseConstructor((D,X)=>{this.resolve=D,this.reject=X})}}C0.Deferred=sX;sX.promiseConstructor=Promise;function Ob(D){let X=D.split(".");if(X.length!==3)throw new kW.AuthInvalidJwtError("Invalid JWT structure");for(let Z=0;Z<X.length;Z++)if(!uW.BASE64URL_REGEX.test(X[Z]))throw new kW.AuthInvalidJwtError("JWT not in base64url format");return{header:JSON.parse((0,iQ.stringFromBase64URL)(X[0])),payload:JSON.parse((0,iQ.stringFromBase64URL)(X[1])),signature:(0,iQ.base64UrlToUint8Array)(X[2]),raw:{header:X[0],payload:X[1]}}}async function Wb(D){return await new Promise((X)=>{setTimeout(()=>X(null),D)})}function Hb(D,X){return new Promise((Z,J)=>{(async()=>{for(let Q=0;Q<1/0;Q++)try{let w=await D(Q);if(!X(Q,null,w)){Z(w);return}}catch(w){if(!X(Q,w)){J(w);return}}})()})}function Kb(D){return("0"+D.toString(16)).substr(-2)}function hW(){let X=new Uint32Array(56);if(typeof crypto>"u"){let J="";for(let Q=0;Q<56;Q++)J+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~".charAt(Math.floor(Math.random()*66));return J}return crypto.getRandomValues(X),Array.from(X,Kb).join("")}async function zb(D){let Y=new TextEncoder().encode(D),Z=await crypto.subtle.digest("SHA-256",Y),J=new Uint8Array(Z);return Array.from(J).map((Q)=>String.fromCharCode(Q)).join("")}async function _W(D){if(!(typeof crypto<"u"&&typeof crypto.subtle<"u"&&typeof TextEncoder<"u"))return console.warn("WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256."),D;let Y=await zb(D);return btoa(Y).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Mb(D,X,Y=!1){let Z=hW(),J=Z;if(Y)J+="/PASSWORD_RECOVERY";await(0,C0.setItemAsync)(D,`${X}-code-verifier`,J);let Q=await _W(Z);return[Q,Z===Q?"plain":"s256"]}var Lb=/^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;function Vb(D){let X=D.headers.get(uW.API_VERSION_HEADER_NAME);if(!X)return null;if(!X.match(Lb))return null;try{return new Date(`${X}T00:00:00.0Z`)}catch(Y){return null}}function Ub(D){if(!D)throw Error("Missing exp claim");let X=Math.floor(Date.now()/1000);if(D<=X)throw Error("JWT has expired")}function Nb(D){switch(D){case"RS256":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case"ES256":return{name:"ECDSA",namedCurve:"P-256",hash:{name:"SHA-256"}};default:throw Error("Invalid alg claim")}}var Rb=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;function Ab(D){if(!Rb.test(D))throw Error("@supabase/auth-js: Expected parameter to be UUID but is not")}function Eb(){return new Proxy({},{get:(X,Y)=>{if(Y==="__isUserNotAvailableProxy")return!0;if(typeof Y==="symbol"){let Z=Y.toString();if(Z==="Symbol(Symbol.toPrimitive)"||Z==="Symbol(Symbol.toStringTag)"||Z==="Symbol(util.inspect.custom)")return}throw Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Accessing the "${Y}" property of the session object is not supported. Please use getUser() instead.`)},set:(X,Y)=>{throw Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Setting the "${Y}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)},deleteProperty:(X,Y)=>{throw Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Deleting the "${Y}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)}})}function Cb(D,X){return new Proxy(D,{get:(Y,Z,J)=>{if(Z==="__isInsecureUserWarningProxy")return!0;if(typeof Z==="symbol"){let Q=Z.toString();if(Q==="Symbol(Symbol.toPrimitive)"||Q==="Symbol(Symbol.toStringTag)"||Q==="Symbol(util.inspect.custom)"||Q==="Symbol(nodejs.util.inspect.custom)")return Reflect.get(Y,Z,J)}if(!X.value&&typeof Z==="string")console.warn("Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server."),X.value=!0;return Reflect.get(Y,Z,J)}})}function jb(D){return JSON.parse(JSON.stringify(D))}});var tQ=T((L8)=>{Object.defineProperty(L8,"__esModule",{value:!0});L8.handleError=aQ;L8._request=Sb;L8._sessionResponse=vW;L8._sessionResponsePassword=fb;L8._userResponse=yb;L8._ssoResponse=kb;L8._generateLinkResponse=ub;L8._noResolveJsonResponse=hb;var Tb=h0(),oX=aX(),pQ=P5(),j6=G9(),W9=(D)=>D.msg||D.message||D.error_description||D.error||JSON.stringify(D),Ib=[502,503,504];async function aQ(D){var X;if(!(0,pQ.looksLikeFetchResponse)(D))throw new j6.AuthRetryableFetchError(W9(D),0);if(Ib.includes(D.status))throw new j6.AuthRetryableFetchError(W9(D),D.status);let Y;try{Y=await D.json()}catch(Q){throw new j6.AuthUnknownError(W9(Q),Q)}let Z=void 0,J=(0,pQ.parseResponseAPIVersion)(D);if(J&&J.getTime()>=oX.API_VERSIONS["2024-01-01"].timestamp&&typeof Y==="object"&&Y&&typeof Y.code==="string")Z=Y.code;else if(typeof Y==="object"&&Y&&typeof Y.error_code==="string")Z=Y.error_code;if(!Z){if(typeof Y==="object"&&Y&&typeof Y.weak_password==="object"&&Y.weak_password&&Array.isArray(Y.weak_password.reasons)&&Y.weak_password.reasons.length&&Y.weak_password.reasons.reduce((Q,w)=>Q&&typeof w==="string",!0))throw new j6.AuthWeakPasswordError(W9(Y),D.status,Y.weak_password.reasons)}else if(Z==="weak_password")throw new j6.AuthWeakPasswordError(W9(Y),D.status,((X=Y.weak_password)===null||X===void 0?void 0:X.reasons)||[]);else if(Z==="session_not_found")throw new j6.AuthSessionMissingError;throw new j6.AuthApiError(W9(Y),D.status||500,Z)}var Pb=(D,X,Y,Z)=>{let J={method:D,headers:(X===null||X===void 0?void 0:X.headers)||{}};if(D==="GET")return J;return J.headers=Object.assign({"Content-Type":"application/json;charset=UTF-8"},X===null||X===void 0?void 0:X.headers),J.body=JSON.stringify(Z),Object.assign(Object.assign({},J),Y)};async function Sb(D,X,Y,Z){var J;let Q=Object.assign({},Z===null||Z===void 0?void 0:Z.headers);if(!Q[oX.API_VERSION_HEADER_NAME])Q[oX.API_VERSION_HEADER_NAME]=oX.API_VERSIONS["2024-01-01"].name;if(Z===null||Z===void 0?void 0:Z.jwt)Q.Authorization=`Bearer ${Z.jwt}`;let w=(J=Z===null||Z===void 0?void 0:Z.query)!==null&&J!==void 0?J:{};if(Z===null||Z===void 0?void 0:Z.redirectTo)w.redirect_to=Z.redirectTo;let F=Object.keys(w).length?"?"+new URLSearchParams(w).toString():"",B=await xb(D,X,Y+F,{headers:Q,noResolveJson:Z===null||Z===void 0?void 0:Z.noResolveJson},{},Z===null||Z===void 0?void 0:Z.body);return(Z===null||Z===void 0?void 0:Z.xform)?Z===null||Z===void 0?void 0:Z.xform(B):{data:Object.assign({},B),error:null}}async function xb(D,X,Y,Z,J,Q){let w=Pb(X,Z,J,Q),F;try{F=await D(Y,Object.assign({},w))}catch(B){throw console.error(B),new j6.AuthRetryableFetchError(W9(B),0)}if(!F.ok)await aQ(F);if(Z===null||Z===void 0?void 0:Z.noResolveJson)return F;try{return await F.json()}catch(B){await aQ(B)}}function vW(D){var X;let Y=null;if(_b(D)){if(Y=Object.assign({},D),!D.expires_at)Y.expires_at=(0,pQ.expiresAt)(D.expires_in)}let Z=(X=D.user)!==null&&X!==void 0?X:D;return{data:{session:Y,user:Z},error:null}}function fb(D){let X=vW(D);if(!X.error&&D.weak_password&&typeof D.weak_password==="object"&&Array.isArray(D.weak_password.reasons)&&D.weak_password.reasons.length&&D.weak_password.message&&typeof D.weak_password.message==="string"&&D.weak_password.reasons.reduce((Y,Z)=>Y&&typeof Z==="string",!0))X.data.weak_password=D.weak_password;return X}function yb(D){var X;return{data:{user:(X=D.user)!==null&&X!==void 0?X:D},error:null}}function kb(D){return{data:D,error:null}}function ub(D){let{action_link:X,email_otp:Y,hashed_token:Z,redirect_to:J,verification_type:Q}=D,w=Tb.__rest(D,["action_link","email_otp","hashed_token","redirect_to","verification_type"]),F={action_link:X,email_otp:Y,hashed_token:Z,redirect_to:J,verification_type:Q},B=Object.assign({},w);return{data:{properties:F,user:B},error:null}}function hb(D){return D}function _b(D){return D.access_token&&D.refresh_token&&D.expires_in}});var rQ=T((eX)=>{Object.defineProperty(eX,"__esModule",{value:!0});eX.SIGN_OUT_SCOPES=void 0;eX.SIGN_OUT_SCOPES=["global","local","others"]});var DY=T((oQ)=>{Object.defineProperty(oQ,"__esModule",{value:!0});var vb=h0(),BD=tQ(),H9=P5(),sQ=rQ(),eD=G9();class bW{constructor({url:D="",headers:X={},fetch:Y}){this.url=D,this.headers=X,this.fetch=(0,H9.resolveFetch)(Y),this.mfa={listFactors:this._listFactors.bind(this),deleteFactor:this._deleteFactor.bind(this)},this.oauth={listClients:this._listOAuthClients.bind(this),createClient:this._createOAuthClient.bind(this),getClient:this._getOAuthClient.bind(this),updateClient:this._updateOAuthClient.bind(this),deleteClient:this._deleteOAuthClient.bind(this),regenerateClientSecret:this._regenerateOAuthClientSecret.bind(this)}}async signOut(D,X=sQ.SIGN_OUT_SCOPES[0]){if(sQ.SIGN_OUT_SCOPES.indexOf(X)<0)throw Error(`@supabase/auth-js: Parameter scope must be one of ${sQ.SIGN_OUT_SCOPES.join(", ")}`);try{return await(0,BD._request)(this.fetch,"POST",`${this.url}/logout?scope=${X}`,{headers:this.headers,jwt:D,noResolveJson:!0}),{data:null,error:null}}catch(Y){if((0,eD.isAuthError)(Y))return{data:null,error:Y};throw Y}}async inviteUserByEmail(D,X={}){try{return await(0,BD._request)(this.fetch,"POST",`${this.url}/invite`,{body:{email:D,data:X.data},headers:this.headers,redirectTo:X.redirectTo,xform:BD._userResponse})}catch(Y){if((0,eD.isAuthError)(Y))return{data:{user:null},error:Y};throw Y}}async generateLink(D){try{let{options:X}=D,Y=vb.__rest(D,["options"]),Z=Object.assign(Object.assign({},Y),X);if("newEmail"in Y)Z.new_email=Y===null||Y===void 0?void 0:Y.newEmail,delete Z.newEmail;return await(0,BD._request)(this.fetch,"POST",`${this.url}/admin/generate_link`,{body:Z,headers:this.headers,xform:BD._generateLinkResponse,redirectTo:X===null||X===void 0?void 0:X.redirectTo})}catch(X){if((0,eD.isAuthError)(X))return{data:{properties:null,user:null},error:X};throw X}}async createUser(D){try{return await(0,BD._request)(this.fetch,"POST",`${this.url}/admin/users`,{body:D,headers:this.headers,xform:BD._userResponse})}catch(X){if((0,eD.isAuthError)(X))return{data:{user:null},error:X};throw X}}async listUsers(D){var X,Y,Z,J,Q,w,F;try{let B={nextPage:null,lastPage:0,total:0},q=await(0,BD._request)(this.fetch,"GET",`${this.url}/admin/users`,{headers:this.headers,noResolveJson:!0,query:{page:(Y=(X=D===null||D===void 0?void 0:D.page)===null||X===void 0?void 0:X.toString())!==null&&Y!==void 0?Y:"",per_page:(J=(Z=D===null||D===void 0?void 0:D.perPage)===null||Z===void 0?void 0:Z.toString())!==null&&J!==void 0?J:""},xform:BD._noResolveJsonResponse});if(q.error)throw q.error;let $=await q.json(),G=(Q=q.headers.get("x-total-count"))!==null&&Q!==void 0?Q:0,W=(F=(w=q.headers.get("link"))===null||w===void 0?void 0:w.split(","))!==null&&F!==void 0?F:[];if(W.length>0)W.forEach((O)=>{let H=parseInt(O.split(";")[0].split("=")[1].substring(0,1)),M=JSON.parse(O.split(";")[1].split("=")[1]);B[`${M}Page`]=H}),B.total=parseInt(G);return{data:Object.assign(Object.assign({},$),B),error:null}}catch(B){if((0,eD.isAuthError)(B))return{data:{users:[]},error:B};throw B}}async getUserById(D){(0,H9.validateUUID)(D);try{return await(0,BD._request)(this.fetch,"GET",`${this.url}/admin/users/${D}`,{headers:this.headers,xform:BD._userResponse})}catch(X){if((0,eD.isAuthError)(X))return{data:{user:null},error:X};throw X}}async updateUserById(D,X){(0,H9.validateUUID)(D);try{return await(0,BD._request)(this.fetch,"PUT",`${this.url}/admin/users/${D}`,{body:X,headers:this.headers,xform:BD._userResponse})}catch(Y){if((0,eD.isAuthError)(Y))return{data:{user:null},error:Y};throw Y}}async deleteUser(D,X=!1){(0,H9.validateUUID)(D);try{return await(0,BD._request)(this.fetch,"DELETE",`${this.url}/admin/users/${D}`,{headers:this.headers,body:{should_soft_delete:X},xform:BD._userResponse})}catch(Y){if((0,eD.isAuthError)(Y))return{data:{user:null},error:Y};throw Y}}async _listFactors(D){(0,H9.validateUUID)(D.userId);try{let{data:X,error:Y}=await(0,BD._request)(this.fetch,"GET",`${this.url}/admin/users/${D.userId}/factors`,{headers:this.headers,xform:(Z)=>{return{data:{factors:Z},error:null}}});return{data:X,error:Y}}catch(X){if((0,eD.isAuthError)(X))return{data:null,error:X};throw X}}async _deleteFactor(D){(0,H9.validateUUID)(D.userId),(0,H9.validateUUID)(D.id);try{return{data:await(0,BD._request)(this.fetch,"DELETE",`${this.url}/admin/users/${D.userId}/factors/${D.id}`,{headers:this.headers}),error:null}}catch(X){if((0,eD.isAuthError)(X))return{data:null,error:X};throw X}}async _listOAuthClients(D){var X,Y,Z,J,Q,w,F;try{let B={nextPage:null,lastPage:0,total:0},q=await(0,BD._request)(this.fetch,"GET",`${this.url}/admin/oauth/clients`,{headers:this.headers,noResolveJson:!0,query:{page:(Y=(X=D===null||D===void 0?void 0:D.page)===null||X===void 0?void 0:X.toString())!==null&&Y!==void 0?Y:"",per_page:(J=(Z=D===null||D===void 0?void 0:D.perPage)===null||Z===void 0?void 0:Z.toString())!==null&&J!==void 0?J:""},xform:BD._noResolveJsonResponse});if(q.error)throw q.error;let $=await q.json(),G=(Q=q.headers.get("x-total-count"))!==null&&Q!==void 0?Q:0,W=(F=(w=q.headers.get("link"))===null||w===void 0?void 0:w.split(","))!==null&&F!==void 0?F:[];if(W.length>0)W.forEach((O)=>{let H=parseInt(O.split(";")[0].split("=")[1].substring(0,1)),M=JSON.parse(O.split(";")[1].split("=")[1]);B[`${M}Page`]=H}),B.total=parseInt(G);return{data:Object.assign(Object.assign({},$),B),error:null}}catch(B){if((0,eD.isAuthError)(B))return{data:{clients:[]},error:B};throw B}}async _createOAuthClient(D){try{return await(0,BD._request)(this.fetch,"POST",`${this.url}/admin/oauth/clients`,{body:D,headers:this.headers,xform:(X)=>{return{data:X,error:null}}})}catch(X){if((0,eD.isAuthError)(X))return{data:null,error:X};throw X}}async _getOAuthClient(D){try{return await(0,BD._request)(this.fetch,"GET",`${this.url}/admin/oauth/clients/${D}`,{headers:this.headers,xform:(X)=>{return{data:X,error:null}}})}catch(X){if((0,eD.isAuthError)(X))return{data:null,error:X};throw X}}async _updateOAuthClient(D,X){try{return await(0,BD._request)(this.fetch,"PUT",`${this.url}/admin/oauth/clients/${D}`,{body:X,headers:this.headers,xform:(Y)=>{return{data:Y,error:null}}})}catch(Y){if((0,eD.isAuthError)(Y))return{data:null,error:Y};throw Y}}async _deleteOAuthClient(D){try{return await(0,BD._request)(this.fetch,"DELETE",`${this.url}/admin/oauth/clients/${D}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(X){if((0,eD.isAuthError)(X))return{data:null,error:X};throw X}}async _regenerateOAuthClientSecret(D){try{return await(0,BD._request)(this.fetch,"POST",`${this.url}/admin/oauth/clients/${D}/regenerate_secret`,{headers:this.headers,xform:(X)=>{return{data:X,error:null}}})}catch(X){if((0,eD.isAuthError)(X))return{data:null,error:X};throw X}}}oQ.default=bW});var gW=T((eQ)=>{Object.defineProperty(eQ,"__esModule",{value:!0});eQ.memoryLocalStorageAdapter=bb;function bb(D={}){return{getItem:(X)=>{return D[X]||null},setItem:(X,Y)=>{D[X]=Y},removeItem:(X)=>{delete D[X]}}}});var Yw=T((gD)=>{Object.defineProperty(gD,"__esModule",{value:!0});gD.ProcessLockAcquireTimeoutError=gD.NavigatorLockAcquireTimeoutError=gD.LockAcquireTimeoutError=gD.internals=void 0;gD.navigatorLock=mb;gD.processLock=db;var gb=P5();gD.internals={debug:!!(globalThis&&(0,gb.supportsLocalStorage)()&&globalThis.localStorage&&globalThis.localStorage.getItem("supabase.gotrue-js.locks.debug")==="true")};class XY extends Error{constructor(D){super(D);this.isAcquireTimeout=!0}}gD.LockAcquireTimeoutError=XY;class Dw extends XY{}gD.NavigatorLockAcquireTimeoutError=Dw;class Xw extends XY{}gD.ProcessLockAcquireTimeoutError=Xw;async function mb(D,X,Y){if(gD.internals.debug)console.log("@supabase/gotrue-js: navigatorLock: acquire lock",D,X);let Z=new globalThis.AbortController;if(X>0)setTimeout(()=>{if(Z.abort(),gD.internals.debug)console.log("@supabase/gotrue-js: navigatorLock acquire timed out",D)},X);return await Promise.resolve().then(()=>globalThis.navigator.locks.request(D,X===0?{mode:"exclusive",ifAvailable:!0}:{mode:"exclusive",signal:Z.signal},async(J)=>{if(J){if(gD.internals.debug)console.log("@supabase/gotrue-js: navigatorLock: acquired",D,J.name);try{return await Y()}finally{if(gD.internals.debug)console.log("@supabase/gotrue-js: navigatorLock: released",D,J.name)}}else if(X===0){if(gD.internals.debug)console.log("@supabase/gotrue-js: navigatorLock: not immediately available",D);throw new Dw(`Acquiring an exclusive Navigator LockManager lock "${D}" immediately failed`)}else{if(gD.internals.debug)try{let Q=await globalThis.navigator.locks.query();console.log("@supabase/gotrue-js: Navigator LockManager state",JSON.stringify(Q,null," "))}catch(Q){console.warn("@supabase/gotrue-js: Error when querying Navigator LockManager state",Q)}return console.warn("@supabase/gotrue-js: Navigator LockManager returned a null lock when using #request without ifAvailable set to true, it appears this browser is not following the LockManager spec https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request"),await Y()}}))}var mW={};async function db(D,X,Y){var Z;let J=(Z=mW[D])!==null&&Z!==void 0?Z:Promise.resolve(),Q=Promise.race([J.catch(()=>{return null}),X>=0?new Promise((w,F)=>{setTimeout(()=>{F(new Xw(`Acquiring process lock with name "${D}" timed out`))},X)}):null].filter((w)=>w)).catch((w)=>{if(w&&w.isAcquireTimeout)throw w;return null}).then(async()=>{return await Y()});return mW[D]=Q.catch(async(w)=>{if(w&&w.isAcquireTimeout)return await J,null;throw w}),await Q}});var dW=T((Zw)=>{Object.defineProperty(Zw,"__esModule",{value:!0});Zw.polyfillGlobalThis=cb;function cb(){if(typeof globalThis==="object")return;try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch(D){if(typeof self<"u")self.globalThis=self}}});var lW=T((S5)=>{Object.defineProperty(S5,"__esModule",{value:!0});S5.getAddress=cW;S5.fromHex=lb;S5.toHex=nb;S5.createSiweMessage=ib;function cW(D){if(!/^0x[a-fA-F0-9]{40}$/.test(D))throw Error(`@supabase/auth-js: Address "${D}" is invalid.`);return D.toLowerCase()}function lb(D){return parseInt(D,16)}function nb(D){let X=new TextEncoder().encode(D);return"0x"+Array.from(X,(Z)=>Z.toString(16).padStart(2,"0")).join("")}function ib(D){var X;let{chainId:Y,domain:Z,expirationTime:J,issuedAt:Q=new Date,nonce:w,notBefore:F,requestId:B,resources:q,scheme:$,uri:G,version:W}=D;{if(!Number.isInteger(Y))throw Error(`@supabase/auth-js: Invalid SIWE message field "chainId". Chain ID must be a EIP-155 chain ID. Provided value: ${Y}`);if(!Z)throw Error('@supabase/auth-js: Invalid SIWE message field "domain". Domain must be provided.');if(w&&w.length<8)throw Error(`@supabase/auth-js: Invalid SIWE message field "nonce". Nonce must be at least 8 characters. Provided value: ${w}`);if(!G)throw Error('@supabase/auth-js: Invalid SIWE message field "uri". URI must be provided.');if(W!=="1")throw Error(`@supabase/auth-js: Invalid SIWE message field "version". Version must be '1'. Provided value: ${W}`);if((X=D.statement)===null||X===void 0?void 0:X.includes(`
24
+ \r=`.split(""),rv=(()=>{let D=Array(128);for(let X=0;X<D.length;X+=1)D[X]=-1;for(let X=0;X<xW.length;X+=1)D[xW[X].charCodeAt(0)]=-2;for(let X=0;X<tX.length;X+=1)D[tX[X].charCodeAt(0)]=X;return D})();function A4(D,X,Y){if(D!==null){X.queue=X.queue<<8|D,X.queuedBits+=8;while(X.queuedBits>=6){let Z=X.queue>>X.queuedBits-6&63;Y(tX[Z]),X.queuedBits-=6}}else if(X.queuedBits>0){X.queue=X.queue<<6-X.queuedBits,X.queuedBits=6;while(X.queuedBits>=6){let Z=X.queue>>X.queuedBits-6&63;Y(tX[Z]),X.queuedBits-=6}}}function lQ(D,X,Y){let Z=rv[D];if(Z>-1){X.queue=X.queue<<6|Z,X.queuedBits+=6;while(X.queuedBits>=8)Y(X.queue>>X.queuedBits-8&255),X.queuedBits-=8}else if(Z===-2)return;else throw Error(`Invalid Base64-URL character "${String.fromCharCode(D)}"`)}function sv(D){let X=[],Y=(J)=>{X.push(J)},Z={queue:0,queuedBits:0};return nQ(D,(J)=>{A4(J,Z,Y)}),A4(null,Z,Y),X.join("")}function ov(D){let X=[],Y=(w)=>{X.push(String.fromCodePoint(w))},Z={utf8seq:0,codepoint:0},J={queue:0,queuedBits:0},Q=(w)=>{yW(w,Z,Y)};for(let w=0;w<D.length;w+=1)lQ(D.charCodeAt(w),J,Q);return X.join("")}function fW(D,X){if(D<=127){X(D);return}else if(D<=2047){X(192|D>>6),X(128|D&63);return}else if(D<=65535){X(224|D>>12),X(128|D>>6&63),X(128|D&63);return}else if(D<=1114111){X(240|D>>18),X(128|D>>12&63),X(128|D>>6&63),X(128|D&63);return}throw Error(`Unrecognized Unicode codepoint: ${D.toString(16)}`)}function nQ(D,X){for(let Y=0;Y<D.length;Y+=1){let Z=D.charCodeAt(Y);if(Z>55295&&Z<=56319){let J=(Z-55296)*1024&65535;Z=(D.charCodeAt(Y+1)-56320&65535|J)+65536,Y+=1}fW(Z,X)}}function yW(D,X,Y){if(X.utf8seq===0){if(D<=127){Y(D);return}for(let Z=1;Z<6;Z+=1)if((D>>7-Z&1)===0){X.utf8seq=Z;break}if(X.utf8seq===2)X.codepoint=D&31;else if(X.utf8seq===3)X.codepoint=D&15;else if(X.utf8seq===4)X.codepoint=D&7;else throw Error("Invalid UTF-8 sequence");X.utf8seq-=1}else if(X.utf8seq>0){if(D<=127)throw Error("Invalid UTF-8 sequence");if(X.codepoint=X.codepoint<<6|D&63,X.utf8seq-=1,X.utf8seq===0)Y(X.codepoint)}}function ev(D){let X=[],Y={queue:0,queuedBits:0},Z=(J)=>{X.push(J)};for(let J=0;J<D.length;J+=1)lQ(D.charCodeAt(J),Y,Z);return new Uint8Array(X)}function Db(D){let X=[];return nQ(D,(Y)=>X.push(Y)),new Uint8Array(X)}function Xb(D){let X=[],Y={queue:0,queuedBits:0},Z=(J)=>{X.push(J)};return D.forEach((J)=>A4(J,Y,Z)),A4(null,Y,Z),X.join("")}});var P5=T((C0)=>{Object.defineProperty(C0,"__esModule",{value:!0});C0.Deferred=C0.removeItemAsync=C0.getItemAsync=C0.setItemAsync=C0.looksLikeFetchResponse=C0.resolveFetch=C0.supportsLocalStorage=C0.isBrowser=void 0;C0.expiresAt=Yb;C0.generateCallbackId=Zb;C0.parseParametersFromURL=wb;C0.decodeJWT=Ob;C0.sleep=Wb;C0.retryable=Hb;C0.generatePKCEVerifier=hW;C0.generatePKCEChallenge=_W;C0.getCodeChallengeAndMethod=Mb;C0.parseResponseAPIVersion=Vb;C0.validateExp=Ub;C0.getAlgorithm=Nb;C0.validateUUID=Ab;C0.userNotAvailableProxy=Eb;C0.insecureUserWarningProxy=Cb;C0.deepClone=jb;var uW=aX(),kW=G9(),iQ=rX();function Yb(D){return Math.round(Date.now()/1000)+D}function Zb(){return Symbol("auth-callback")}var Jb=()=>typeof window<"u"&&typeof document<"u";C0.isBrowser=Jb;var O9={tested:!1,writable:!1},Qb=()=>{if(!(0,C0.isBrowser)())return!1;try{if(typeof globalThis.localStorage!=="object")return!1}catch(X){return!1}if(O9.tested)return O9.writable;let D=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(D,D),globalThis.localStorage.removeItem(D),O9.tested=!0,O9.writable=!0}catch(X){O9.tested=!0,O9.writable=!1}return O9.writable};C0.supportsLocalStorage=Qb;function wb(D){let X={},Y=new URL(D);if(Y.hash&&Y.hash[0]==="#")try{new URLSearchParams(Y.hash.substring(1)).forEach((J,Q)=>{X[Q]=J})}catch(Z){}return Y.searchParams.forEach((Z,J)=>{X[J]=Z}),X}var Fb=(D)=>{if(D)return(...X)=>D(...X);return(...X)=>fetch(...X)};C0.resolveFetch=Fb;var Bb=(D)=>{return typeof D==="object"&&D!==null&&"status"in D&&"ok"in D&&"json"in D&&typeof D.json==="function"};C0.looksLikeFetchResponse=Bb;var qb=async(D,X,Y)=>{await D.setItem(X,JSON.stringify(Y))};C0.setItemAsync=qb;var $b=async(D,X)=>{let Y=await D.getItem(X);if(!Y)return null;try{return JSON.parse(Y)}catch(Z){return Y}};C0.getItemAsync=$b;var Gb=async(D,X)=>{await D.removeItem(X)};C0.removeItemAsync=Gb;class sX{constructor(){this.promise=new sX.promiseConstructor((D,X)=>{this.resolve=D,this.reject=X})}}C0.Deferred=sX;sX.promiseConstructor=Promise;function Ob(D){let X=D.split(".");if(X.length!==3)throw new kW.AuthInvalidJwtError("Invalid JWT structure");for(let Z=0;Z<X.length;Z++)if(!uW.BASE64URL_REGEX.test(X[Z]))throw new kW.AuthInvalidJwtError("JWT not in base64url format");return{header:JSON.parse((0,iQ.stringFromBase64URL)(X[0])),payload:JSON.parse((0,iQ.stringFromBase64URL)(X[1])),signature:(0,iQ.base64UrlToUint8Array)(X[2]),raw:{header:X[0],payload:X[1]}}}async function Wb(D){return await new Promise((X)=>{setTimeout(()=>X(null),D)})}function Hb(D,X){return new Promise((Z,J)=>{(async()=>{for(let Q=0;Q<1/0;Q++)try{let w=await D(Q);if(!X(Q,null,w)){Z(w);return}}catch(w){if(!X(Q,w)){J(w);return}}})()})}function Kb(D){return("0"+D.toString(16)).substr(-2)}function hW(){let X=new Uint32Array(56);if(typeof crypto>"u"){let J="";for(let Q=0;Q<56;Q++)J+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~".charAt(Math.floor(Math.random()*66));return J}return crypto.getRandomValues(X),Array.from(X,Kb).join("")}async function zb(D){let Y=new TextEncoder().encode(D),Z=await crypto.subtle.digest("SHA-256",Y),J=new Uint8Array(Z);return Array.from(J).map((Q)=>String.fromCharCode(Q)).join("")}async function _W(D){if(!(typeof crypto<"u"&&typeof crypto.subtle<"u"&&typeof TextEncoder<"u"))return console.warn("WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256."),D;let Y=await zb(D);return btoa(Y).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Mb(D,X,Y=!1){let Z=hW(),J=Z;if(Y)J+="/PASSWORD_RECOVERY";await(0,C0.setItemAsync)(D,`${X}-code-verifier`,J);let Q=await _W(Z);return[Q,Z===Q?"plain":"s256"]}var Lb=/^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;function Vb(D){let X=D.headers.get(uW.API_VERSION_HEADER_NAME);if(!X)return null;if(!X.match(Lb))return null;try{return new Date(`${X}T00:00:00.0Z`)}catch(Y){return null}}function Ub(D){if(!D)throw Error("Missing exp claim");let X=Math.floor(Date.now()/1000);if(D<=X)throw Error("JWT has expired")}function Nb(D){switch(D){case"RS256":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case"ES256":return{name:"ECDSA",namedCurve:"P-256",hash:{name:"SHA-256"}};default:throw Error("Invalid alg claim")}}var Rb=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;function Ab(D){if(!Rb.test(D))throw Error("@supabase/auth-js: Expected parameter to be UUID but is not")}function Eb(){return new Proxy({},{get:(X,Y)=>{if(Y==="__isUserNotAvailableProxy")return!0;if(typeof Y==="symbol"){let Z=Y.toString();if(Z==="Symbol(Symbol.toPrimitive)"||Z==="Symbol(Symbol.toStringTag)"||Z==="Symbol(util.inspect.custom)")return}throw Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Accessing the "${Y}" property of the session object is not supported. Please use getUser() instead.`)},set:(X,Y)=>{throw Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Setting the "${Y}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)},deleteProperty:(X,Y)=>{throw Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Deleting the "${Y}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)}})}function Cb(D,X){return new Proxy(D,{get:(Y,Z,J)=>{if(Z==="__isInsecureUserWarningProxy")return!0;if(typeof Z==="symbol"){let Q=Z.toString();if(Q==="Symbol(Symbol.toPrimitive)"||Q==="Symbol(Symbol.toStringTag)"||Q==="Symbol(util.inspect.custom)"||Q==="Symbol(nodejs.util.inspect.custom)")return Reflect.get(Y,Z,J)}if(!X.value&&typeof Z==="string")console.warn("Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server."),X.value=!0;return Reflect.get(Y,Z,J)}})}function jb(D){return JSON.parse(JSON.stringify(D))}});var tQ=T((L8)=>{Object.defineProperty(L8,"__esModule",{value:!0});L8.handleError=aQ;L8._request=Sb;L8._sessionResponse=vW;L8._sessionResponsePassword=fb;L8._userResponse=yb;L8._ssoResponse=kb;L8._generateLinkResponse=ub;L8._noResolveJsonResponse=hb;var Tb=h0(),oX=aX(),pQ=P5(),j6=G9(),W9=(D)=>D.msg||D.message||D.error_description||D.error||JSON.stringify(D),Ib=[502,503,504];async function aQ(D){var X;if(!(0,pQ.looksLikeFetchResponse)(D))throw new j6.AuthRetryableFetchError(W9(D),0);if(Ib.includes(D.status))throw new j6.AuthRetryableFetchError(W9(D),D.status);let Y;try{Y=await D.json()}catch(Q){throw new j6.AuthUnknownError(W9(Q),Q)}let Z=void 0,J=(0,pQ.parseResponseAPIVersion)(D);if(J&&J.getTime()>=oX.API_VERSIONS["2024-01-01"].timestamp&&typeof Y==="object"&&Y&&typeof Y.code==="string")Z=Y.code;else if(typeof Y==="object"&&Y&&typeof Y.error_code==="string")Z=Y.error_code;if(!Z){if(typeof Y==="object"&&Y&&typeof Y.weak_password==="object"&&Y.weak_password&&Array.isArray(Y.weak_password.reasons)&&Y.weak_password.reasons.length&&Y.weak_password.reasons.reduce((Q,w)=>Q&&typeof w==="string",!0))throw new j6.AuthWeakPasswordError(W9(Y),D.status,Y.weak_password.reasons)}else if(Z==="weak_password")throw new j6.AuthWeakPasswordError(W9(Y),D.status,((X=Y.weak_password)===null||X===void 0?void 0:X.reasons)||[]);else if(Z==="session_not_found")throw new j6.AuthSessionMissingError;throw new j6.AuthApiError(W9(Y),D.status||500,Z)}var Pb=(D,X,Y,Z)=>{let J={method:D,headers:(X===null||X===void 0?void 0:X.headers)||{}};if(D==="GET")return J;return J.headers=Object.assign({"Content-Type":"application/json;charset=UTF-8"},X===null||X===void 0?void 0:X.headers),J.body=JSON.stringify(Z),Object.assign(Object.assign({},J),Y)};async function Sb(D,X,Y,Z){var J;let Q=Object.assign({},Z===null||Z===void 0?void 0:Z.headers);if(!Q[oX.API_VERSION_HEADER_NAME])Q[oX.API_VERSION_HEADER_NAME]=oX.API_VERSIONS["2024-01-01"].name;if(Z===null||Z===void 0?void 0:Z.jwt)Q.Authorization=`Bearer ${Z.jwt}`;let w=(J=Z===null||Z===void 0?void 0:Z.query)!==null&&J!==void 0?J:{};if(Z===null||Z===void 0?void 0:Z.redirectTo)w.redirect_to=Z.redirectTo;let F=Object.keys(w).length?"?"+new URLSearchParams(w).toString():"",B=await xb(D,X,Y+F,{headers:Q,noResolveJson:Z===null||Z===void 0?void 0:Z.noResolveJson},{},Z===null||Z===void 0?void 0:Z.body);return(Z===null||Z===void 0?void 0:Z.xform)?Z===null||Z===void 0?void 0:Z.xform(B):{data:Object.assign({},B),error:null}}async function xb(D,X,Y,Z,J,Q){let w=Pb(X,Z,J,Q),F;try{F=await D(Y,Object.assign({},w))}catch(B){throw console.error(B),new j6.AuthRetryableFetchError(W9(B),0)}if(!F.ok)await aQ(F);if(Z===null||Z===void 0?void 0:Z.noResolveJson)return F;try{return await F.json()}catch(B){await aQ(B)}}function vW(D){var X;let Y=null;if(_b(D)){if(Y=Object.assign({},D),!D.expires_at)Y.expires_at=(0,pQ.expiresAt)(D.expires_in)}let Z=(X=D.user)!==null&&X!==void 0?X:D;return{data:{session:Y,user:Z},error:null}}function fb(D){let X=vW(D);if(!X.error&&D.weak_password&&typeof D.weak_password==="object"&&Array.isArray(D.weak_password.reasons)&&D.weak_password.reasons.length&&D.weak_password.message&&typeof D.weak_password.message==="string"&&D.weak_password.reasons.reduce((Y,Z)=>Y&&typeof Z==="string",!0))X.data.weak_password=D.weak_password;return X}function yb(D){var X;return{data:{user:(X=D.user)!==null&&X!==void 0?X:D},error:null}}function kb(D){return{data:D,error:null}}function ub(D){let{action_link:X,email_otp:Y,hashed_token:Z,redirect_to:J,verification_type:Q}=D,w=Tb.__rest(D,["action_link","email_otp","hashed_token","redirect_to","verification_type"]),F={action_link:X,email_otp:Y,hashed_token:Z,redirect_to:J,verification_type:Q},B=Object.assign({},w);return{data:{properties:F,user:B},error:null}}function hb(D){return D}function _b(D){return D.access_token&&D.refresh_token&&D.expires_in}});var rQ=T((eX)=>{Object.defineProperty(eX,"__esModule",{value:!0});eX.SIGN_OUT_SCOPES=void 0;eX.SIGN_OUT_SCOPES=["global","local","others"]});var DY=T((oQ)=>{Object.defineProperty(oQ,"__esModule",{value:!0});var vb=h0(),BD=tQ(),H9=P5(),sQ=rQ(),eD=G9();class bW{constructor({url:D="",headers:X={},fetch:Y}){this.url=D,this.headers=X,this.fetch=(0,H9.resolveFetch)(Y),this.mfa={listFactors:this._listFactors.bind(this),deleteFactor:this._deleteFactor.bind(this)},this.oauth={listClients:this._listOAuthClients.bind(this),createClient:this._createOAuthClient.bind(this),getClient:this._getOAuthClient.bind(this),updateClient:this._updateOAuthClient.bind(this),deleteClient:this._deleteOAuthClient.bind(this),regenerateClientSecret:this._regenerateOAuthClientSecret.bind(this)}}async signOut(D,X=sQ.SIGN_OUT_SCOPES[0]){if(sQ.SIGN_OUT_SCOPES.indexOf(X)<0)throw Error(`@supabase/auth-js: Parameter scope must be one of ${sQ.SIGN_OUT_SCOPES.join(", ")}`);try{return await(0,BD._request)(this.fetch,"POST",`${this.url}/logout?scope=${X}`,{headers:this.headers,jwt:D,noResolveJson:!0}),{data:null,error:null}}catch(Y){if((0,eD.isAuthError)(Y))return{data:null,error:Y};throw Y}}async inviteUserByEmail(D,X={}){try{return await(0,BD._request)(this.fetch,"POST",`${this.url}/invite`,{body:{email:D,data:X.data},headers:this.headers,redirectTo:X.redirectTo,xform:BD._userResponse})}catch(Y){if((0,eD.isAuthError)(Y))return{data:{user:null},error:Y};throw Y}}async generateLink(D){try{let{options:X}=D,Y=vb.__rest(D,["options"]),Z=Object.assign(Object.assign({},Y),X);if("newEmail"in Y)Z.new_email=Y===null||Y===void 0?void 0:Y.newEmail,delete Z.newEmail;return await(0,BD._request)(this.fetch,"POST",`${this.url}/admin/generate_link`,{body:Z,headers:this.headers,xform:BD._generateLinkResponse,redirectTo:X===null||X===void 0?void 0:X.redirectTo})}catch(X){if((0,eD.isAuthError)(X))return{data:{properties:null,user:null},error:X};throw X}}async createUser(D){try{return await(0,BD._request)(this.fetch,"POST",`${this.url}/admin/users`,{body:D,headers:this.headers,xform:BD._userResponse})}catch(X){if((0,eD.isAuthError)(X))return{data:{user:null},error:X};throw X}}async listUsers(D){var X,Y,Z,J,Q,w,F;try{let B={nextPage:null,lastPage:0,total:0},q=await(0,BD._request)(this.fetch,"GET",`${this.url}/admin/users`,{headers:this.headers,noResolveJson:!0,query:{page:(Y=(X=D===null||D===void 0?void 0:D.page)===null||X===void 0?void 0:X.toString())!==null&&Y!==void 0?Y:"",per_page:(J=(Z=D===null||D===void 0?void 0:D.perPage)===null||Z===void 0?void 0:Z.toString())!==null&&J!==void 0?J:""},xform:BD._noResolveJsonResponse});if(q.error)throw q.error;let $=await q.json(),G=(Q=q.headers.get("x-total-count"))!==null&&Q!==void 0?Q:0,W=(F=(w=q.headers.get("link"))===null||w===void 0?void 0:w.split(","))!==null&&F!==void 0?F:[];if(W.length>0)W.forEach((O)=>{let H=parseInt(O.split(";")[0].split("=")[1].substring(0,1)),M=JSON.parse(O.split(";")[1].split("=")[1]);B[`${M}Page`]=H}),B.total=parseInt(G);return{data:Object.assign(Object.assign({},$),B),error:null}}catch(B){if((0,eD.isAuthError)(B))return{data:{users:[]},error:B};throw B}}async getUserById(D){(0,H9.validateUUID)(D);try{return await(0,BD._request)(this.fetch,"GET",`${this.url}/admin/users/${D}`,{headers:this.headers,xform:BD._userResponse})}catch(X){if((0,eD.isAuthError)(X))return{data:{user:null},error:X};throw X}}async updateUserById(D,X){(0,H9.validateUUID)(D);try{return await(0,BD._request)(this.fetch,"PUT",`${this.url}/admin/users/${D}`,{body:X,headers:this.headers,xform:BD._userResponse})}catch(Y){if((0,eD.isAuthError)(Y))return{data:{user:null},error:Y};throw Y}}async deleteUser(D,X=!1){(0,H9.validateUUID)(D);try{return await(0,BD._request)(this.fetch,"DELETE",`${this.url}/admin/users/${D}`,{headers:this.headers,body:{should_soft_delete:X},xform:BD._userResponse})}catch(Y){if((0,eD.isAuthError)(Y))return{data:{user:null},error:Y};throw Y}}async _listFactors(D){(0,H9.validateUUID)(D.userId);try{let{data:X,error:Y}=await(0,BD._request)(this.fetch,"GET",`${this.url}/admin/users/${D.userId}/factors`,{headers:this.headers,xform:(Z)=>{return{data:{factors:Z},error:null}}});return{data:X,error:Y}}catch(X){if((0,eD.isAuthError)(X))return{data:null,error:X};throw X}}async _deleteFactor(D){(0,H9.validateUUID)(D.userId),(0,H9.validateUUID)(D.id);try{return{data:await(0,BD._request)(this.fetch,"DELETE",`${this.url}/admin/users/${D.userId}/factors/${D.id}`,{headers:this.headers}),error:null}}catch(X){if((0,eD.isAuthError)(X))return{data:null,error:X};throw X}}async _listOAuthClients(D){var X,Y,Z,J,Q,w,F;try{let B={nextPage:null,lastPage:0,total:0},q=await(0,BD._request)(this.fetch,"GET",`${this.url}/admin/oauth/clients`,{headers:this.headers,noResolveJson:!0,query:{page:(Y=(X=D===null||D===void 0?void 0:D.page)===null||X===void 0?void 0:X.toString())!==null&&Y!==void 0?Y:"",per_page:(J=(Z=D===null||D===void 0?void 0:D.perPage)===null||Z===void 0?void 0:Z.toString())!==null&&J!==void 0?J:""},xform:BD._noResolveJsonResponse});if(q.error)throw q.error;let $=await q.json(),G=(Q=q.headers.get("x-total-count"))!==null&&Q!==void 0?Q:0,W=(F=(w=q.headers.get("link"))===null||w===void 0?void 0:w.split(","))!==null&&F!==void 0?F:[];if(W.length>0)W.forEach((O)=>{let H=parseInt(O.split(";")[0].split("=")[1].substring(0,1)),M=JSON.parse(O.split(";")[1].split("=")[1]);B[`${M}Page`]=H}),B.total=parseInt(G);return{data:Object.assign(Object.assign({},$),B),error:null}}catch(B){if((0,eD.isAuthError)(B))return{data:{clients:[]},error:B};throw B}}async _createOAuthClient(D){try{return await(0,BD._request)(this.fetch,"POST",`${this.url}/admin/oauth/clients`,{body:D,headers:this.headers,xform:(X)=>{return{data:X,error:null}}})}catch(X){if((0,eD.isAuthError)(X))return{data:null,error:X};throw X}}async _getOAuthClient(D){try{return await(0,BD._request)(this.fetch,"GET",`${this.url}/admin/oauth/clients/${D}`,{headers:this.headers,xform:(X)=>{return{data:X,error:null}}})}catch(X){if((0,eD.isAuthError)(X))return{data:null,error:X};throw X}}async _updateOAuthClient(D,X){try{return await(0,BD._request)(this.fetch,"PUT",`${this.url}/admin/oauth/clients/${D}`,{body:X,headers:this.headers,xform:(Y)=>{return{data:Y,error:null}}})}catch(Y){if((0,eD.isAuthError)(Y))return{data:null,error:Y};throw Y}}async _deleteOAuthClient(D){try{return await(0,BD._request)(this.fetch,"DELETE",`${this.url}/admin/oauth/clients/${D}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(X){if((0,eD.isAuthError)(X))return{data:null,error:X};throw X}}async _regenerateOAuthClientSecret(D){try{return await(0,BD._request)(this.fetch,"POST",`${this.url}/admin/oauth/clients/${D}/regenerate_secret`,{headers:this.headers,xform:(X)=>{return{data:X,error:null}}})}catch(X){if((0,eD.isAuthError)(X))return{data:null,error:X};throw X}}}oQ.default=bW});var gW=T((eQ)=>{Object.defineProperty(eQ,"__esModule",{value:!0});eQ.memoryLocalStorageAdapter=bb;function bb(D={}){return{getItem:(X)=>{return D[X]||null},setItem:(X,Y)=>{D[X]=Y},removeItem:(X)=>{delete D[X]}}}});var Yw=T((bD)=>{Object.defineProperty(bD,"__esModule",{value:!0});bD.ProcessLockAcquireTimeoutError=bD.NavigatorLockAcquireTimeoutError=bD.LockAcquireTimeoutError=bD.internals=void 0;bD.navigatorLock=mb;bD.processLock=db;var gb=P5();bD.internals={debug:!!(globalThis&&(0,gb.supportsLocalStorage)()&&globalThis.localStorage&&globalThis.localStorage.getItem("supabase.gotrue-js.locks.debug")==="true")};class XY extends Error{constructor(D){super(D);this.isAcquireTimeout=!0}}bD.LockAcquireTimeoutError=XY;class Dw extends XY{}bD.NavigatorLockAcquireTimeoutError=Dw;class Xw extends XY{}bD.ProcessLockAcquireTimeoutError=Xw;async function mb(D,X,Y){if(bD.internals.debug)console.log("@supabase/gotrue-js: navigatorLock: acquire lock",D,X);let Z=new globalThis.AbortController;if(X>0)setTimeout(()=>{if(Z.abort(),bD.internals.debug)console.log("@supabase/gotrue-js: navigatorLock acquire timed out",D)},X);return await Promise.resolve().then(()=>globalThis.navigator.locks.request(D,X===0?{mode:"exclusive",ifAvailable:!0}:{mode:"exclusive",signal:Z.signal},async(J)=>{if(J){if(bD.internals.debug)console.log("@supabase/gotrue-js: navigatorLock: acquired",D,J.name);try{return await Y()}finally{if(bD.internals.debug)console.log("@supabase/gotrue-js: navigatorLock: released",D,J.name)}}else if(X===0){if(bD.internals.debug)console.log("@supabase/gotrue-js: navigatorLock: not immediately available",D);throw new Dw(`Acquiring an exclusive Navigator LockManager lock "${D}" immediately failed`)}else{if(bD.internals.debug)try{let Q=await globalThis.navigator.locks.query();console.log("@supabase/gotrue-js: Navigator LockManager state",JSON.stringify(Q,null," "))}catch(Q){console.warn("@supabase/gotrue-js: Error when querying Navigator LockManager state",Q)}return console.warn("@supabase/gotrue-js: Navigator LockManager returned a null lock when using #request without ifAvailable set to true, it appears this browser is not following the LockManager spec https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request"),await Y()}}))}var mW={};async function db(D,X,Y){var Z;let J=(Z=mW[D])!==null&&Z!==void 0?Z:Promise.resolve(),Q=Promise.race([J.catch(()=>{return null}),X>=0?new Promise((w,F)=>{setTimeout(()=>{F(new Xw(`Acquiring process lock with name "${D}" timed out`))},X)}):null].filter((w)=>w)).catch((w)=>{if(w&&w.isAcquireTimeout)throw w;return null}).then(async()=>{return await Y()});return mW[D]=Q.catch(async(w)=>{if(w&&w.isAcquireTimeout)return await J,null;throw w}),await Q}});var dW=T((Zw)=>{Object.defineProperty(Zw,"__esModule",{value:!0});Zw.polyfillGlobalThis=cb;function cb(){if(typeof globalThis==="object")return;try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch(D){if(typeof self<"u")self.globalThis=self}}});var lW=T((S5)=>{Object.defineProperty(S5,"__esModule",{value:!0});S5.getAddress=cW;S5.fromHex=lb;S5.toHex=nb;S5.createSiweMessage=ib;function cW(D){if(!/^0x[a-fA-F0-9]{40}$/.test(D))throw Error(`@supabase/auth-js: Address "${D}" is invalid.`);return D.toLowerCase()}function lb(D){return parseInt(D,16)}function nb(D){let X=new TextEncoder().encode(D);return"0x"+Array.from(X,(Z)=>Z.toString(16).padStart(2,"0")).join("")}function ib(D){var X;let{chainId:Y,domain:Z,expirationTime:J,issuedAt:Q=new Date,nonce:w,notBefore:F,requestId:B,resources:q,scheme:$,uri:G,version:W}=D;{if(!Number.isInteger(Y))throw Error(`@supabase/auth-js: Invalid SIWE message field "chainId". Chain ID must be a EIP-155 chain ID. Provided value: ${Y}`);if(!Z)throw Error('@supabase/auth-js: Invalid SIWE message field "domain". Domain must be provided.');if(w&&w.length<8)throw Error(`@supabase/auth-js: Invalid SIWE message field "nonce". Nonce must be at least 8 characters. Provided value: ${w}`);if(!G)throw Error('@supabase/auth-js: Invalid SIWE message field "uri". URI must be provided.');if(W!=="1")throw Error(`@supabase/auth-js: Invalid SIWE message field "version". Version must be '1'. Provided value: ${W}`);if((X=D.statement)===null||X===void 0?void 0:X.includes(`
25
25
  `))throw Error(`@supabase/auth-js: Invalid SIWE message field "statement". Statement must not include '\\n'. Provided value: ${D.statement}`)}let O=cW(D.address),H=$?`${$}://${Z}`:Z,M=D.statement?`${D.statement}
26
26
  `:"",U=`${H} wants you to sign in with your Ethereum account:
27
27
  ${O}
@@ -37,7 +37,7 @@ Request ID: ${B}`;if(q){let R=`
37
37
  Resources:`;for(let z of q){if(!z||typeof z!=="string")throw Error(`@supabase/auth-js: Invalid SIWE message field "resources". Every resource must be a valid string. Provided value: ${z}`);R+=`
38
38
  - ${z}`}N+=R}return`${U}
39
39
  ${N}`}});var pW=T((p8)=>{Object.defineProperty(p8,"__esModule",{value:!0});p8.WebAuthnUnknownError=p8.WebAuthnError=void 0;p8.isWebAuthnError=pb;p8.identifyRegistrationError=ab;p8.identifyAuthenticationError=tb;var nW=Jw();class VD extends Error{constructor({message:D,code:X,cause:Y,name:Z}){var J;super(D,{cause:Y});this.__isWebAuthnError=!0,this.name=(J=Z!==null&&Z!==void 0?Z:Y instanceof Error?Y.name:void 0)!==null&&J!==void 0?J:"Unknown Error",this.code=X}}p8.WebAuthnError=VD;class iW extends VD{constructor(D,X){super({code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:X,message:D});this.name="WebAuthnUnknownError",this.originalError=X}}p8.WebAuthnUnknownError=iW;function pb(D){return typeof D==="object"&&D!==null&&"__isWebAuthnError"in D}function ab({error:D,options:X}){var Y,Z,J;let{publicKey:Q}=X;if(!Q)throw Error("options was missing required publicKey property");if(D.name==="AbortError"){if(X.signal instanceof AbortSignal)return new VD({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:D})}else if(D.name==="ConstraintError"){if(((Y=Q.authenticatorSelection)===null||Y===void 0?void 0:Y.requireResidentKey)===!0)return new VD({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:D});else if(X.mediation==="conditional"&&((Z=Q.authenticatorSelection)===null||Z===void 0?void 0:Z.userVerification)==="required")return new VD({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:D});else if(((J=Q.authenticatorSelection)===null||J===void 0?void 0:J.userVerification)==="required")return new VD({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:D})}else if(D.name==="InvalidStateError")return new VD({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:D});else if(D.name==="NotAllowedError")return new VD({message:D.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:D});else if(D.name==="NotSupportedError"){if(Q.pubKeyCredParams.filter((F)=>F.type==="public-key").length===0)return new VD({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:D});return new VD({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:D})}else if(D.name==="SecurityError"){let w=window.location.hostname;if(!(0,nW.isValidDomain)(w))return new VD({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:D});else if(Q.rp.id!==w)return new VD({message:`The RP ID "${Q.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:D})}else if(D.name==="TypeError"){if(Q.user.id.byteLength<1||Q.user.id.byteLength>64)return new VD({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:D})}else if(D.name==="UnknownError")return new VD({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:D});return new VD({message:"a Non-Webauthn related error has occurred",code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:D})}function tb({error:D,options:X}){let{publicKey:Y}=X;if(!Y)throw Error("options was missing required publicKey property");if(D.name==="AbortError"){if(X.signal instanceof AbortSignal)return new VD({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:D})}else if(D.name==="NotAllowedError")return new VD({message:D.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:D});else if(D.name==="SecurityError"){let Z=window.location.hostname;if(!(0,nW.isValidDomain)(Z))return new VD({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:D});else if(Y.rpId!==Z)return new VD({message:`The RP ID "${Y.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:D})}else if(D.name==="UnknownError")return new VD({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:D});return new VD({message:"a Non-Webauthn related error has occurred",code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:D})}});var Jw=T((I0)=>{Object.defineProperty(I0,"__esModule",{value:!0});I0.WebAuthnApi=I0.DEFAULT_REQUEST_OPTIONS=I0.DEFAULT_CREATION_OPTIONS=I0.webAuthnAbortService=I0.WebAuthnAbortService=I0.identifyAuthenticationError=I0.identifyRegistrationError=I0.isWebAuthnError=I0.WebAuthnError=void 0;I0.deserializeCredentialCreationOptions=sb;I0.deserializeCredentialRequestOptions=ob;I0.serializeCredentialCreationResponse=eb;I0.serializeCredentialRequestResponse=Dg;I0.isValidDomain=Xg;I0.createCredential=rW;I0.getCredential=sW;I0.mergeCredentialCreationOptions=oW;I0.mergeCredentialRequestOptions=eW;var tW=h0(),q8=rX(),V8=G9(),rb=P5(),U8=pW();Object.defineProperty(I0,"identifyAuthenticationError",{enumerable:!0,get:function(){return U8.identifyAuthenticationError}});Object.defineProperty(I0,"identifyRegistrationError",{enumerable:!0,get:function(){return U8.identifyRegistrationError}});Object.defineProperty(I0,"isWebAuthnError",{enumerable:!0,get:function(){return U8.isWebAuthnError}});Object.defineProperty(I0,"WebAuthnError",{enumerable:!0,get:function(){return U8.WebAuthnError}});class Qw{createNewAbortSignal(){if(this.controller){let X=Error("Cancelling existing WebAuthn API call for new one");X.name="AbortError",this.controller.abort(X)}let D=new AbortController;return this.controller=D,D.signal}cancelCeremony(){if(this.controller){let D=Error("Manually cancelling existing WebAuthn API call");D.name="AbortError",this.controller.abort(D),this.controller=void 0}}}I0.WebAuthnAbortService=Qw;I0.webAuthnAbortService=new Qw;function sb(D){if(!D)throw Error("Credential creation options are required");if(typeof PublicKeyCredential<"u"&&"parseCreationOptionsFromJSON"in PublicKeyCredential&&typeof PublicKeyCredential.parseCreationOptionsFromJSON==="function")return PublicKeyCredential.parseCreationOptionsFromJSON(D);let{challenge:X,user:Y,excludeCredentials:Z}=D,J=tW.__rest(D,["challenge","user","excludeCredentials"]),Q=(0,q8.base64UrlToUint8Array)(X).buffer,w=Object.assign(Object.assign({},Y),{id:(0,q8.base64UrlToUint8Array)(Y.id).buffer}),F=Object.assign(Object.assign({},J),{challenge:Q,user:w});if(Z&&Z.length>0){F.excludeCredentials=Array(Z.length);for(let B=0;B<Z.length;B++){let q=Z[B];F.excludeCredentials[B]=Object.assign(Object.assign({},q),{id:(0,q8.base64UrlToUint8Array)(q.id).buffer,type:q.type||"public-key",transports:q.transports})}}return F}function ob(D){if(!D)throw Error("Credential request options are required");if(typeof PublicKeyCredential<"u"&&"parseRequestOptionsFromJSON"in PublicKeyCredential&&typeof PublicKeyCredential.parseRequestOptionsFromJSON==="function")return PublicKeyCredential.parseRequestOptionsFromJSON(D);let{challenge:X,allowCredentials:Y}=D,Z=tW.__rest(D,["challenge","allowCredentials"]),J=(0,q8.base64UrlToUint8Array)(X).buffer,Q=Object.assign(Object.assign({},Z),{challenge:J});if(Y&&Y.length>0){Q.allowCredentials=Array(Y.length);for(let w=0;w<Y.length;w++){let F=Y[w];Q.allowCredentials[w]=Object.assign(Object.assign({},F),{id:(0,q8.base64UrlToUint8Array)(F.id).buffer,type:F.type||"public-key",transports:F.transports})}}return Q}function eb(D){var X;if("toJSON"in D&&typeof D.toJSON==="function")return D.toJSON();let Y=D;return{id:D.id,rawId:D.id,response:{attestationObject:(0,q8.bytesToBase64URL)(new Uint8Array(D.response.attestationObject)),clientDataJSON:(0,q8.bytesToBase64URL)(new Uint8Array(D.response.clientDataJSON))},type:"public-key",clientExtensionResults:D.getClientExtensionResults(),authenticatorAttachment:(X=Y.authenticatorAttachment)!==null&&X!==void 0?X:void 0}}function Dg(D){var X;if("toJSON"in D&&typeof D.toJSON==="function")return D.toJSON();let Y=D,Z=D.getClientExtensionResults(),J=D.response;return{id:D.id,rawId:D.id,response:{authenticatorData:(0,q8.bytesToBase64URL)(new Uint8Array(J.authenticatorData)),clientDataJSON:(0,q8.bytesToBase64URL)(new Uint8Array(J.clientDataJSON)),signature:(0,q8.bytesToBase64URL)(new Uint8Array(J.signature)),userHandle:J.userHandle?(0,q8.bytesToBase64URL)(new Uint8Array(J.userHandle)):void 0},type:"public-key",clientExtensionResults:Z,authenticatorAttachment:(X=Y.authenticatorAttachment)!==null&&X!==void 0?X:void 0}}function Xg(D){return D==="localhost"||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(D)}function aW(){var D,X;return!!((0,rb.isBrowser)()&&("PublicKeyCredential"in window)&&window.PublicKeyCredential&&("credentials"in navigator)&&typeof((D=navigator===null||navigator===void 0?void 0:navigator.credentials)===null||D===void 0?void 0:D.create)==="function"&&typeof((X=navigator===null||navigator===void 0?void 0:navigator.credentials)===null||X===void 0?void 0:X.get)==="function")}async function rW(D){try{let X=await navigator.credentials.create(D);if(!X)return{data:null,error:new U8.WebAuthnUnknownError("Empty credential response",X)};if(!(X instanceof PublicKeyCredential))return{data:null,error:new U8.WebAuthnUnknownError("Browser returned unexpected credential type",X)};return{data:X,error:null}}catch(X){return{data:null,error:(0,U8.identifyRegistrationError)({error:X,options:D})}}}async function sW(D){try{let X=await navigator.credentials.get(D);if(!X)return{data:null,error:new U8.WebAuthnUnknownError("Empty credential response",X)};if(!(X instanceof PublicKeyCredential))return{data:null,error:new U8.WebAuthnUnknownError("Browser returned unexpected credential type",X)};return{data:X,error:null}}catch(X){return{data:null,error:(0,U8.identifyAuthenticationError)({error:X,options:D})}}}I0.DEFAULT_CREATION_OPTIONS={hints:["security-key"],authenticatorSelection:{authenticatorAttachment:"cross-platform",requireResidentKey:!1,userVerification:"preferred",residentKey:"discouraged"},attestation:"direct"};I0.DEFAULT_REQUEST_OPTIONS={userVerification:"preferred",hints:["security-key"],attestation:"direct"};function YY(...D){let X=(J)=>J!==null&&typeof J==="object"&&!Array.isArray(J),Y=(J)=>J instanceof ArrayBuffer||ArrayBuffer.isView(J),Z={};for(let J of D){if(!J)continue;for(let Q in J){let w=J[Q];if(w===void 0)continue;if(Array.isArray(w))Z[Q]=w;else if(Y(w))Z[Q]=w;else if(X(w)){let F=Z[Q];if(X(F))Z[Q]=YY(F,w);else Z[Q]=YY(w)}else Z[Q]=w}}return Z}function oW(D,X){return YY(I0.DEFAULT_CREATION_OPTIONS,D,X||{})}function eW(D,X){return YY(I0.DEFAULT_REQUEST_OPTIONS,D,X||{})}class DH{constructor(D){this.client=D,this.enroll=this._enroll.bind(this),this.challenge=this._challenge.bind(this),this.verify=this._verify.bind(this),this.authenticate=this._authenticate.bind(this),this.register=this._register.bind(this)}async _enroll(D){return this.client.mfa.enroll(Object.assign(Object.assign({},D),{factorType:"webauthn"}))}async _challenge({factorId:D,webauthn:X,friendlyName:Y,signal:Z},J){try{let{data:Q,error:w}=await this.client.mfa.challenge({factorId:D,webauthn:X});if(!Q)return{data:null,error:w};let F=Z!==null&&Z!==void 0?Z:I0.webAuthnAbortService.createNewAbortSignal();if(Q.webauthn.type==="create"){let{user:B}=Q.webauthn.credential_options.publicKey;if(!B.name)B.name=`${B.id}:${Y}`;if(!B.displayName)B.displayName=B.name}switch(Q.webauthn.type){case"create":{let B=oW(Q.webauthn.credential_options.publicKey,J===null||J===void 0?void 0:J.create),{data:q,error:$}=await rW({publicKey:B,signal:F});if(q)return{data:{factorId:D,challengeId:Q.id,webauthn:{type:Q.webauthn.type,credential_response:q}},error:null};return{data:null,error:$}}case"request":{let B=eW(Q.webauthn.credential_options.publicKey,J===null||J===void 0?void 0:J.request),{data:q,error:$}=await sW(Object.assign(Object.assign({},Q.webauthn.credential_options),{publicKey:B,signal:F}));if(q)return{data:{factorId:D,challengeId:Q.id,webauthn:{type:Q.webauthn.type,credential_response:q}},error:null};return{data:null,error:$}}}}catch(Q){if((0,V8.isAuthError)(Q))return{data:null,error:Q};return{data:null,error:new V8.AuthUnknownError("Unexpected error in challenge",Q)}}}async _verify({challengeId:D,factorId:X,webauthn:Y}){return this.client.mfa.verify({factorId:X,challengeId:D,webauthn:Y})}async _authenticate({factorId:D,webauthn:{rpId:X=typeof window<"u"?window.location.hostname:void 0,rpOrigins:Y=typeof window<"u"?[window.location.origin]:void 0,signal:Z}={}},J){if(!X)return{data:null,error:new V8.AuthError("rpId is required for WebAuthn authentication")};try{if(!aW())return{data:null,error:new V8.AuthUnknownError("Browser does not support WebAuthn",null)};let{data:Q,error:w}=await this.challenge({factorId:D,webauthn:{rpId:X,rpOrigins:Y},signal:Z},{request:J});if(!Q)return{data:null,error:w};let{webauthn:F}=Q;return this._verify({factorId:D,challengeId:Q.challengeId,webauthn:{type:F.type,rpId:X,rpOrigins:Y,credential_response:F.credential_response}})}catch(Q){if((0,V8.isAuthError)(Q))return{data:null,error:Q};return{data:null,error:new V8.AuthUnknownError("Unexpected error in authenticate",Q)}}}async _register({friendlyName:D,webauthn:{rpId:X=typeof window<"u"?window.location.hostname:void 0,rpOrigins:Y=typeof window<"u"?[window.location.origin]:void 0,signal:Z}={}},J){if(!X)return{data:null,error:new V8.AuthError("rpId is required for WebAuthn registration")};try{if(!aW())return{data:null,error:new V8.AuthUnknownError("Browser does not support WebAuthn",null)};let{data:Q,error:w}=await this._enroll({friendlyName:D});if(!Q)return await this.client.mfa.listFactors().then((q)=>{var $;return($=q.data)===null||$===void 0?void 0:$.all.find((G)=>G.factor_type==="webauthn"&&G.friendly_name===D&&G.status!=="unverified")}).then((q)=>q?this.client.mfa.unenroll({factorId:q===null||q===void 0?void 0:q.id}):void 0),{data:null,error:w};let{data:F,error:B}=await this._challenge({factorId:Q.id,friendlyName:Q.friendly_name,webauthn:{rpId:X,rpOrigins:Y},signal:Z},{create:J});if(!F)return{data:null,error:B};return this._verify({factorId:Q.id,challengeId:F.challengeId,webauthn:{rpId:X,rpOrigins:Y,type:F.webauthn.type,credential_response:F.webauthn.credential_response}})}catch(Q){if((0,V8.isAuthError)(Q))return{data:null,error:Q};return{data:null,error:new V8.AuthUnknownError("Unexpected error in register",Q)}}}}I0.WebAuthnApi=DH});var Fw=T((ww)=>{Object.defineProperty(ww,"__esModule",{value:!0});var Yg=h0(),Zg=Yg.__importDefault(DY()),C1=aX(),r=G9(),O0=tQ(),e=P5(),XH=gW(),YH=Yw(),Jg=dW(),Qg=cQ(),ZH=rX(),ZY=lW(),E4=Jw();(0,Jg.polyfillGlobalThis)();var wg={url:C1.GOTRUE_URL,storageKey:C1.STORAGE_KEY,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:C1.DEFAULT_HEADERS,flowType:"implicit",debug:!1,hasCustomAuthorizationHeader:!1,throwOnError:!1};async function JH(D,X,Y){return await Y()}var x5={};class C4{get jwks(){var D,X;return(X=(D=x5[this.storageKey])===null||D===void 0?void 0:D.jwks)!==null&&X!==void 0?X:{keys:[]}}set jwks(D){x5[this.storageKey]=Object.assign(Object.assign({},x5[this.storageKey]),{jwks:D})}get jwks_cached_at(){var D,X;return(X=(D=x5[this.storageKey])===null||D===void 0?void 0:D.cachedAt)!==null&&X!==void 0?X:Number.MIN_SAFE_INTEGER}set jwks_cached_at(D){x5[this.storageKey]=Object.assign(Object.assign({},x5[this.storageKey]),{cachedAt:D})}constructor(D){var X,Y,Z;this.userStorage=null,this.memoryStorage=null,this.stateChangeEmitters=new Map,this.autoRefreshTicker=null,this.visibilityChangedCallback=null,this.refreshingDeferred=null,this.initializePromise=null,this.detectSessionInUrl=!0,this.hasCustomAuthorizationHeader=!1,this.suppressGetSessionWarning=!1,this.lockAcquired=!1,this.pendingInLock=[],this.broadcastChannel=null,this.logger=console.log;let J=Object.assign(Object.assign({},wg),D);if(this.storageKey=J.storageKey,this.instanceID=(X=C4.nextInstanceID[this.storageKey])!==null&&X!==void 0?X:0,C4.nextInstanceID[this.storageKey]=this.instanceID+1,this.logDebugMessages=!!J.debug,typeof J.debug==="function")this.logger=J.debug;if(this.instanceID>0&&(0,e.isBrowser)()){let Q=`${this._logPrefix()} Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.`;if(console.warn(Q),this.logDebugMessages)console.trace(Q)}if(this.persistSession=J.persistSession,this.autoRefreshToken=J.autoRefreshToken,this.admin=new Zg.default({url:J.url,headers:J.headers,fetch:J.fetch}),this.url=J.url,this.headers=J.headers,this.fetch=(0,e.resolveFetch)(J.fetch),this.lock=J.lock||JH,this.detectSessionInUrl=J.detectSessionInUrl,this.flowType=J.flowType,this.hasCustomAuthorizationHeader=J.hasCustomAuthorizationHeader,this.throwOnError=J.throwOnError,J.lock)this.lock=J.lock;else if(this.persistSession&&(0,e.isBrowser)()&&((Y=globalThis===null||globalThis===void 0?void 0:globalThis.navigator)===null||Y===void 0?void 0:Y.locks))this.lock=YH.navigatorLock;else this.lock=JH;if(!this.jwks)this.jwks={keys:[]},this.jwks_cached_at=Number.MIN_SAFE_INTEGER;if(this.mfa={verify:this._verify.bind(this),enroll:this._enroll.bind(this),unenroll:this._unenroll.bind(this),challenge:this._challenge.bind(this),listFactors:this._listFactors.bind(this),challengeAndVerify:this._challengeAndVerify.bind(this),getAuthenticatorAssuranceLevel:this._getAuthenticatorAssuranceLevel.bind(this),webauthn:new E4.WebAuthnApi(this)},this.oauth={getAuthorizationDetails:this._getAuthorizationDetails.bind(this),approveAuthorization:this._approveAuthorization.bind(this),denyAuthorization:this._denyAuthorization.bind(this),listGrants:this._listOAuthGrants.bind(this),revokeGrant:this._revokeOAuthGrant.bind(this)},this.persistSession){if(J.storage)this.storage=J.storage;else if((0,e.supportsLocalStorage)())this.storage=globalThis.localStorage;else this.memoryStorage={},this.storage=(0,XH.memoryLocalStorageAdapter)(this.memoryStorage);if(J.userStorage)this.userStorage=J.userStorage}else this.memoryStorage={},this.storage=(0,XH.memoryLocalStorageAdapter)(this.memoryStorage);if((0,e.isBrowser)()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(Q){console.error("Failed to create a new BroadcastChannel, multi-tab state changes will not be available",Q)}(Z=this.broadcastChannel)===null||Z===void 0||Z.addEventListener("message",async(Q)=>{this._debug("received broadcast notification from other tab or client",Q),await this._notifyAllSubscribers(Q.data.event,Q.data.session,!1)})}this.initialize()}isThrowOnErrorEnabled(){return this.throwOnError}_returnResult(D){if(this.throwOnError&&D&&D.error)throw D.error;return D}_logPrefix(){return`GoTrueClient@${this.storageKey}:${this.instanceID} (${Qg.version}) ${new Date().toISOString()}`}_debug(...D){if(this.logDebugMessages)this.logger(this._logPrefix(),...D);return this}async initialize(){if(this.initializePromise)return await this.initializePromise;return this.initializePromise=(async()=>{return await this._acquireLock(-1,async()=>{return await this._initialize()})})(),await this.initializePromise}async _initialize(){var D;try{let X={},Y="none";if((0,e.isBrowser)()){if(X=(0,e.parseParametersFromURL)(window.location.href),this._isImplicitGrantCallback(X))Y="implicit";else if(await this._isPKCECallback(X))Y="pkce"}if((0,e.isBrowser)()&&this.detectSessionInUrl&&Y!=="none"){let{data:Z,error:J}=await this._getSessionFromURL(X,Y);if(J){if(this._debug("#_initialize()","error detecting session from URL",J),(0,r.isAuthImplicitGrantRedirectError)(J)){let F=(D=J.details)===null||D===void 0?void 0:D.code;if(F==="identity_already_exists"||F==="identity_not_found"||F==="single_identity_not_deletable")return{error:J}}return await this._removeSession(),{error:J}}let{session:Q,redirectType:w}=Z;return this._debug("#_initialize()","detected session in URL",Q,"redirect type",w),await this._saveSession(Q),setTimeout(async()=>{if(w==="recovery")await this._notifyAllSubscribers("PASSWORD_RECOVERY",Q);else await this._notifyAllSubscribers("SIGNED_IN",Q)},0),{error:null}}return await this._recoverAndRefresh(),{error:null}}catch(X){if((0,r.isAuthError)(X))return this._returnResult({error:X});return this._returnResult({error:new r.AuthUnknownError("Unexpected error during initialization",X)})}finally{await this._handleVisibilityChange(),this._debug("#_initialize()","end")}}async signInAnonymously(D){var X,Y,Z;try{let J=await(0,O0._request)(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{data:(Y=(X=D===null||D===void 0?void 0:D.options)===null||X===void 0?void 0:X.data)!==null&&Y!==void 0?Y:{},gotrue_meta_security:{captcha_token:(Z=D===null||D===void 0?void 0:D.options)===null||Z===void 0?void 0:Z.captchaToken}},xform:O0._sessionResponse}),{data:Q,error:w}=J;if(w||!Q)return this._returnResult({data:{user:null,session:null},error:w});let{session:F,user:B}=Q;if(Q.session)await this._saveSession(Q.session),await this._notifyAllSubscribers("SIGNED_IN",F);return this._returnResult({data:{user:B,session:F},error:null})}catch(J){if((0,r.isAuthError)(J))return this._returnResult({data:{user:null,session:null},error:J});throw J}}async signUp(D){var X,Y,Z;try{let J;if("email"in D){let{email:q,password:$,options:G}=D,W=null,O=null;if(this.flowType==="pkce")[W,O]=await(0,e.getCodeChallengeAndMethod)(this.storage,this.storageKey);J=await(0,O0._request)(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,redirectTo:G===null||G===void 0?void 0:G.emailRedirectTo,body:{email:q,password:$,data:(X=G===null||G===void 0?void 0:G.data)!==null&&X!==void 0?X:{},gotrue_meta_security:{captcha_token:G===null||G===void 0?void 0:G.captchaToken},code_challenge:W,code_challenge_method:O},xform:O0._sessionResponse})}else if("phone"in D){let{phone:q,password:$,options:G}=D;J=await(0,O0._request)(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{phone:q,password:$,data:(Y=G===null||G===void 0?void 0:G.data)!==null&&Y!==void 0?Y:{},channel:(Z=G===null||G===void 0?void 0:G.channel)!==null&&Z!==void 0?Z:"sms",gotrue_meta_security:{captcha_token:G===null||G===void 0?void 0:G.captchaToken}},xform:O0._sessionResponse})}else throw new r.AuthInvalidCredentialsError("You must provide either an email or phone number and a password");let{data:Q,error:w}=J;if(w||!Q)return await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`),this._returnResult({data:{user:null,session:null},error:w});let{session:F,user:B}=Q;if(Q.session)await this._saveSession(Q.session),await this._notifyAllSubscribers("SIGNED_IN",F);return this._returnResult({data:{user:B,session:F},error:null})}catch(J){if(await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`),(0,r.isAuthError)(J))return this._returnResult({data:{user:null,session:null},error:J});throw J}}async signInWithPassword(D){try{let X;if("email"in D){let{email:J,password:Q,options:w}=D;X=await(0,O0._request)(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:J,password:Q,gotrue_meta_security:{captcha_token:w===null||w===void 0?void 0:w.captchaToken}},xform:O0._sessionResponsePassword})}else if("phone"in D){let{phone:J,password:Q,options:w}=D;X=await(0,O0._request)(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:J,password:Q,gotrue_meta_security:{captcha_token:w===null||w===void 0?void 0:w.captchaToken}},xform:O0._sessionResponsePassword})}else throw new r.AuthInvalidCredentialsError("You must provide either an email or phone number and a password");let{data:Y,error:Z}=X;if(Z)return this._returnResult({data:{user:null,session:null},error:Z});else if(!Y||!Y.session||!Y.user){let J=new r.AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:J})}if(Y.session)await this._saveSession(Y.session),await this._notifyAllSubscribers("SIGNED_IN",Y.session);return this._returnResult({data:Object.assign({user:Y.user,session:Y.session},Y.weak_password?{weakPassword:Y.weak_password}:null),error:Z})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:{user:null,session:null},error:X});throw X}}async signInWithOAuth(D){var X,Y,Z,J;return await this._handleProviderSignIn(D.provider,{redirectTo:(X=D.options)===null||X===void 0?void 0:X.redirectTo,scopes:(Y=D.options)===null||Y===void 0?void 0:Y.scopes,queryParams:(Z=D.options)===null||Z===void 0?void 0:Z.queryParams,skipBrowserRedirect:(J=D.options)===null||J===void 0?void 0:J.skipBrowserRedirect})}async exchangeCodeForSession(D){return await this.initializePromise,this._acquireLock(-1,async()=>{return this._exchangeCodeForSession(D)})}async signInWithWeb3(D){let{chain:X}=D;switch(X){case"ethereum":return await this.signInWithEthereum(D);case"solana":return await this.signInWithSolana(D);default:throw Error(`@supabase/auth-js: Unsupported chain "${X}"`)}}async signInWithEthereum(D){var X,Y,Z,J,Q,w,F,B,q,$,G;let W,O;if("message"in D)W=D.message,O=D.signature;else{let{chain:H,wallet:M,statement:U,options:N}=D,R;if(!(0,e.isBrowser)()){if(typeof M!=="object"||!(N===null||N===void 0?void 0:N.url))throw Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");R=M}else if(typeof M==="object")R=M;else{let A=window;if("ethereum"in A&&typeof A.ethereum==="object"&&"request"in A.ethereum&&typeof A.ethereum.request==="function")R=A.ethereum;else throw Error("@supabase/auth-js: No compatible Ethereum wallet interface on the window object (window.ethereum) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'ethereum', wallet: resolvedUserWallet }) instead.")}let z=new URL((X=N===null||N===void 0?void 0:N.url)!==null&&X!==void 0?X:window.location.href),V=await R.request({method:"eth_requestAccounts"}).then((A)=>A).catch(()=>{throw Error("@supabase/auth-js: Wallet method eth_requestAccounts is missing or invalid")});if(!V||V.length===0)throw Error("@supabase/auth-js: No accounts available. Please ensure the wallet is connected.");let L=(0,ZY.getAddress)(V[0]),C=(Y=N===null||N===void 0?void 0:N.signInWithEthereum)===null||Y===void 0?void 0:Y.chainId;if(!C){let A=await R.request({method:"eth_chainId"});C=(0,ZY.fromHex)(A)}let y={domain:z.host,address:L,statement:U,uri:z.href,version:"1",chainId:C,nonce:(Z=N===null||N===void 0?void 0:N.signInWithEthereum)===null||Z===void 0?void 0:Z.nonce,issuedAt:(Q=(J=N===null||N===void 0?void 0:N.signInWithEthereum)===null||J===void 0?void 0:J.issuedAt)!==null&&Q!==void 0?Q:new Date,expirationTime:(w=N===null||N===void 0?void 0:N.signInWithEthereum)===null||w===void 0?void 0:w.expirationTime,notBefore:(F=N===null||N===void 0?void 0:N.signInWithEthereum)===null||F===void 0?void 0:F.notBefore,requestId:(B=N===null||N===void 0?void 0:N.signInWithEthereum)===null||B===void 0?void 0:B.requestId,resources:(q=N===null||N===void 0?void 0:N.signInWithEthereum)===null||q===void 0?void 0:q.resources};W=(0,ZY.createSiweMessage)(y),O=await R.request({method:"personal_sign",params:[(0,ZY.toHex)(W),L]})}try{let{data:H,error:M}=await(0,O0._request)(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"ethereum",message:W,signature:O},(($=D.options)===null||$===void 0?void 0:$.captchaToken)?{gotrue_meta_security:{captcha_token:(G=D.options)===null||G===void 0?void 0:G.captchaToken}}:null),xform:O0._sessionResponse});if(M)throw M;if(!H||!H.session||!H.user){let U=new r.AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:U})}if(H.session)await this._saveSession(H.session),await this._notifyAllSubscribers("SIGNED_IN",H.session);return this._returnResult({data:Object.assign({},H),error:M})}catch(H){if((0,r.isAuthError)(H))return this._returnResult({data:{user:null,session:null},error:H});throw H}}async signInWithSolana(D){var X,Y,Z,J,Q,w,F,B,q,$,G,W;let O,H;if("message"in D)O=D.message,H=D.signature;else{let{chain:M,wallet:U,statement:N,options:R}=D,z;if(!(0,e.isBrowser)()){if(typeof U!=="object"||!(R===null||R===void 0?void 0:R.url))throw Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");z=U}else if(typeof U==="object")z=U;else{let L=window;if("solana"in L&&typeof L.solana==="object"&&(("signIn"in L.solana)&&typeof L.solana.signIn==="function"||("signMessage"in L.solana)&&typeof L.solana.signMessage==="function"))z=L.solana;else throw Error("@supabase/auth-js: No compatible Solana wallet interface on the window object (window.solana) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'solana', wallet: resolvedUserWallet }) instead.")}let V=new URL((X=R===null||R===void 0?void 0:R.url)!==null&&X!==void 0?X:window.location.href);if("signIn"in z&&z.signIn){let L=await z.signIn(Object.assign(Object.assign(Object.assign({issuedAt:new Date().toISOString()},R===null||R===void 0?void 0:R.signInWithSolana),{version:"1",domain:V.host,uri:V.href}),N?{statement:N}:null)),C;if(Array.isArray(L)&&L[0]&&typeof L[0]==="object")C=L[0];else if(L&&typeof L==="object"&&"signedMessage"in L&&"signature"in L)C=L;else throw Error("@supabase/auth-js: Wallet method signIn() returned unrecognized value");if("signedMessage"in C&&"signature"in C&&(typeof C.signedMessage==="string"||C.signedMessage instanceof Uint8Array)&&C.signature instanceof Uint8Array)O=typeof C.signedMessage==="string"?C.signedMessage:new TextDecoder().decode(C.signedMessage),H=C.signature;else throw Error("@supabase/auth-js: Wallet method signIn() API returned object without signedMessage and signature fields")}else{if(!("signMessage"in z)||typeof z.signMessage!=="function"||!("publicKey"in z)||typeof z!=="object"||!z.publicKey||!("toBase58"in z.publicKey)||typeof z.publicKey.toBase58!=="function")throw Error("@supabase/auth-js: Wallet does not have a compatible signMessage() and publicKey.toBase58() API");O=[`${V.host} wants you to sign in with your Solana account:`,z.publicKey.toBase58(),...N?["",N,""]:[""],"Version: 1",`URI: ${V.href}`,`Issued At: ${(Z=(Y=R===null||R===void 0?void 0:R.signInWithSolana)===null||Y===void 0?void 0:Y.issuedAt)!==null&&Z!==void 0?Z:new Date().toISOString()}`,...((J=R===null||R===void 0?void 0:R.signInWithSolana)===null||J===void 0?void 0:J.notBefore)?[`Not Before: ${R.signInWithSolana.notBefore}`]:[],...((Q=R===null||R===void 0?void 0:R.signInWithSolana)===null||Q===void 0?void 0:Q.expirationTime)?[`Expiration Time: ${R.signInWithSolana.expirationTime}`]:[],...((w=R===null||R===void 0?void 0:R.signInWithSolana)===null||w===void 0?void 0:w.chainId)?[`Chain ID: ${R.signInWithSolana.chainId}`]:[],...((F=R===null||R===void 0?void 0:R.signInWithSolana)===null||F===void 0?void 0:F.nonce)?[`Nonce: ${R.signInWithSolana.nonce}`]:[],...((B=R===null||R===void 0?void 0:R.signInWithSolana)===null||B===void 0?void 0:B.requestId)?[`Request ID: ${R.signInWithSolana.requestId}`]:[],...(($=(q=R===null||R===void 0?void 0:R.signInWithSolana)===null||q===void 0?void 0:q.resources)===null||$===void 0?void 0:$.length)?["Resources",...R.signInWithSolana.resources.map((C)=>`- ${C}`)]:[]].join(`
40
- `);let L=await z.signMessage(new TextEncoder().encode(O),"utf8");if(!L||!(L instanceof Uint8Array))throw Error("@supabase/auth-js: Wallet signMessage() API returned an recognized value");H=L}}try{let{data:M,error:U}=await(0,O0._request)(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"solana",message:O,signature:(0,ZH.bytesToBase64URL)(H)},((G=D.options)===null||G===void 0?void 0:G.captchaToken)?{gotrue_meta_security:{captcha_token:(W=D.options)===null||W===void 0?void 0:W.captchaToken}}:null),xform:O0._sessionResponse});if(U)throw U;if(!M||!M.session||!M.user){let N=new r.AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:N})}if(M.session)await this._saveSession(M.session),await this._notifyAllSubscribers("SIGNED_IN",M.session);return this._returnResult({data:Object.assign({},M),error:U})}catch(M){if((0,r.isAuthError)(M))return this._returnResult({data:{user:null,session:null},error:M});throw M}}async _exchangeCodeForSession(D){let X=await(0,e.getItemAsync)(this.storage,`${this.storageKey}-code-verifier`),[Y,Z]=(X!==null&&X!==void 0?X:"").split("/");try{if(!Y&&this.flowType==="pkce")throw new r.AuthPKCECodeVerifierMissingError;let{data:J,error:Q}=await(0,O0._request)(this.fetch,"POST",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:D,code_verifier:Y},xform:O0._sessionResponse});if(await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`),Q)throw Q;if(!J||!J.session||!J.user){let w=new r.AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null,redirectType:null},error:w})}if(J.session)await this._saveSession(J.session),await this._notifyAllSubscribers("SIGNED_IN",J.session);return this._returnResult({data:Object.assign(Object.assign({},J),{redirectType:Z!==null&&Z!==void 0?Z:null}),error:Q})}catch(J){if(await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`),(0,r.isAuthError)(J))return this._returnResult({data:{user:null,session:null,redirectType:null},error:J});throw J}}async signInWithIdToken(D){try{let{options:X,provider:Y,token:Z,access_token:J,nonce:Q}=D,w=await(0,O0._request)(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:Y,id_token:Z,access_token:J,nonce:Q,gotrue_meta_security:{captcha_token:X===null||X===void 0?void 0:X.captchaToken}},xform:O0._sessionResponse}),{data:F,error:B}=w;if(B)return this._returnResult({data:{user:null,session:null},error:B});else if(!F||!F.session||!F.user){let q=new r.AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:q})}if(F.session)await this._saveSession(F.session),await this._notifyAllSubscribers("SIGNED_IN",F.session);return this._returnResult({data:F,error:B})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:{user:null,session:null},error:X});throw X}}async signInWithOtp(D){var X,Y,Z,J,Q;try{if("email"in D){let{email:w,options:F}=D,B=null,q=null;if(this.flowType==="pkce")[B,q]=await(0,e.getCodeChallengeAndMethod)(this.storage,this.storageKey);let{error:$}=await(0,O0._request)(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{email:w,data:(X=F===null||F===void 0?void 0:F.data)!==null&&X!==void 0?X:{},create_user:(Y=F===null||F===void 0?void 0:F.shouldCreateUser)!==null&&Y!==void 0?Y:!0,gotrue_meta_security:{captcha_token:F===null||F===void 0?void 0:F.captchaToken},code_challenge:B,code_challenge_method:q},redirectTo:F===null||F===void 0?void 0:F.emailRedirectTo});return this._returnResult({data:{user:null,session:null},error:$})}if("phone"in D){let{phone:w,options:F}=D,{data:B,error:q}=await(0,O0._request)(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{phone:w,data:(Z=F===null||F===void 0?void 0:F.data)!==null&&Z!==void 0?Z:{},create_user:(J=F===null||F===void 0?void 0:F.shouldCreateUser)!==null&&J!==void 0?J:!0,gotrue_meta_security:{captcha_token:F===null||F===void 0?void 0:F.captchaToken},channel:(Q=F===null||F===void 0?void 0:F.channel)!==null&&Q!==void 0?Q:"sms"}});return this._returnResult({data:{user:null,session:null,messageId:B===null||B===void 0?void 0:B.message_id},error:q})}throw new r.AuthInvalidCredentialsError("You must provide either an email or phone number.")}catch(w){if(await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`),(0,r.isAuthError)(w))return this._returnResult({data:{user:null,session:null},error:w});throw w}}async verifyOtp(D){var X,Y;try{let Z=void 0,J=void 0;if("options"in D)Z=(X=D.options)===null||X===void 0?void 0:X.redirectTo,J=(Y=D.options)===null||Y===void 0?void 0:Y.captchaToken;let{data:Q,error:w}=await(0,O0._request)(this.fetch,"POST",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},D),{gotrue_meta_security:{captcha_token:J}}),redirectTo:Z,xform:O0._sessionResponse});if(w)throw w;if(!Q)throw Error("An error occurred on token verification.");let{session:F,user:B}=Q;if(F===null||F===void 0?void 0:F.access_token)await this._saveSession(F),await this._notifyAllSubscribers(D.type=="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",F);return this._returnResult({data:{user:B,session:F},error:null})}catch(Z){if((0,r.isAuthError)(Z))return this._returnResult({data:{user:null,session:null},error:Z});throw Z}}async signInWithSSO(D){var X,Y,Z,J,Q;try{let w=null,F=null;if(this.flowType==="pkce")[w,F]=await(0,e.getCodeChallengeAndMethod)(this.storage,this.storageKey);let B=await(0,O0._request)(this.fetch,"POST",`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},"providerId"in D?{provider_id:D.providerId}:null),"domain"in D?{domain:D.domain}:null),{redirect_to:(Y=(X=D.options)===null||X===void 0?void 0:X.redirectTo)!==null&&Y!==void 0?Y:void 0}),((Z=D===null||D===void 0?void 0:D.options)===null||Z===void 0?void 0:Z.captchaToken)?{gotrue_meta_security:{captcha_token:D.options.captchaToken}}:null),{skip_http_redirect:!0,code_challenge:w,code_challenge_method:F}),headers:this.headers,xform:O0._ssoResponse});if(((J=B.data)===null||J===void 0?void 0:J.url)&&(0,e.isBrowser)()&&!((Q=D.options)===null||Q===void 0?void 0:Q.skipBrowserRedirect))window.location.assign(B.data.url);return this._returnResult(B)}catch(w){if(await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`),(0,r.isAuthError)(w))return this._returnResult({data:null,error:w});throw w}}async reauthenticate(){return await this.initializePromise,await this._acquireLock(-1,async()=>{return await this._reauthenticate()})}async _reauthenticate(){try{return await this._useSession(async(D)=>{let{data:{session:X},error:Y}=D;if(Y)throw Y;if(!X)throw new r.AuthSessionMissingError;let{error:Z}=await(0,O0._request)(this.fetch,"GET",`${this.url}/reauthenticate`,{headers:this.headers,jwt:X.access_token});return this._returnResult({data:{user:null,session:null},error:Z})})}catch(D){if((0,r.isAuthError)(D))return this._returnResult({data:{user:null,session:null},error:D});throw D}}async resend(D){try{let X=`${this.url}/resend`;if("email"in D){let{email:Y,type:Z,options:J}=D,{error:Q}=await(0,O0._request)(this.fetch,"POST",X,{headers:this.headers,body:{email:Y,type:Z,gotrue_meta_security:{captcha_token:J===null||J===void 0?void 0:J.captchaToken}},redirectTo:J===null||J===void 0?void 0:J.emailRedirectTo});return this._returnResult({data:{user:null,session:null},error:Q})}else if("phone"in D){let{phone:Y,type:Z,options:J}=D,{data:Q,error:w}=await(0,O0._request)(this.fetch,"POST",X,{headers:this.headers,body:{phone:Y,type:Z,gotrue_meta_security:{captcha_token:J===null||J===void 0?void 0:J.captchaToken}}});return this._returnResult({data:{user:null,session:null,messageId:Q===null||Q===void 0?void 0:Q.message_id},error:w})}throw new r.AuthInvalidCredentialsError("You must provide either an email or phone number and a type")}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:{user:null,session:null},error:X});throw X}}async getSession(){return await this.initializePromise,await this._acquireLock(-1,async()=>{return this._useSession(async(X)=>{return X})})}async _acquireLock(D,X){this._debug("#_acquireLock","begin",D);try{if(this.lockAcquired){let Y=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve(),Z=(async()=>{return await Y,await X()})();return this.pendingInLock.push((async()=>{try{await Z}catch(J){}})()),Z}return await this.lock(`lock:${this.storageKey}`,D,async()=>{this._debug("#_acquireLock","lock acquired for storage key",this.storageKey);try{this.lockAcquired=!0;let Y=X();this.pendingInLock.push((async()=>{try{await Y}catch(Z){}})()),await Y;while(this.pendingInLock.length){let Z=[...this.pendingInLock];await Promise.all(Z),this.pendingInLock.splice(0,Z.length)}return await Y}finally{this._debug("#_acquireLock","lock released for storage key",this.storageKey),this.lockAcquired=!1}})}finally{this._debug("#_acquireLock","end")}}async _useSession(D){this._debug("#_useSession","begin");try{let X=await this.__loadSession();return await D(X)}finally{this._debug("#_useSession","end")}}async __loadSession(){if(this._debug("#__loadSession()","begin"),!this.lockAcquired)this._debug("#__loadSession()","used outside of an acquired lock!",Error().stack);try{let D=null,X=await(0,e.getItemAsync)(this.storage,this.storageKey);if(this._debug("#getSession()","session from storage",X),X!==null)if(this._isValidSession(X))D=X;else this._debug("#getSession()","session from storage is not valid"),await this._removeSession();if(!D)return{data:{session:null},error:null};let Y=D.expires_at?D.expires_at*1000-Date.now()<C1.EXPIRY_MARGIN_MS:!1;if(this._debug("#__loadSession()",`session has${Y?"":" not"} expired`,"expires_at",D.expires_at),!Y){if(this.userStorage){let Q=await(0,e.getItemAsync)(this.userStorage,this.storageKey+"-user");if(Q===null||Q===void 0?void 0:Q.user)D.user=Q.user;else D.user=(0,e.userNotAvailableProxy)()}if(this.storage.isServer&&D.user&&!D.user.__isUserNotAvailableProxy){let Q={value:this.suppressGetSessionWarning};if(D.user=(0,e.insecureUserWarningProxy)(D.user,Q),Q.value)this.suppressGetSessionWarning=!0}return{data:{session:D},error:null}}let{data:Z,error:J}=await this._callRefreshToken(D.refresh_token);if(J)return this._returnResult({data:{session:null},error:J});return this._returnResult({data:{session:Z},error:null})}finally{this._debug("#__loadSession()","end")}}async getUser(D){if(D)return await this._getUser(D);await this.initializePromise;let X=await this._acquireLock(-1,async()=>{return await this._getUser()});if(X.data.user)this.suppressGetSessionWarning=!0;return X}async _getUser(D){try{if(D)return await(0,O0._request)(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:D,xform:O0._userResponse});return await this._useSession(async(X)=>{var Y,Z,J;let{data:Q,error:w}=X;if(w)throw w;if(!((Y=Q.session)===null||Y===void 0?void 0:Y.access_token)&&!this.hasCustomAuthorizationHeader)return{data:{user:null},error:new r.AuthSessionMissingError};return await(0,O0._request)(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:(J=(Z=Q.session)===null||Z===void 0?void 0:Z.access_token)!==null&&J!==void 0?J:void 0,xform:O0._userResponse})})}catch(X){if((0,r.isAuthError)(X)){if((0,r.isAuthSessionMissingError)(X))await this._removeSession(),await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`);return this._returnResult({data:{user:null},error:X})}throw X}}async updateUser(D,X={}){return await this.initializePromise,await this._acquireLock(-1,async()=>{return await this._updateUser(D,X)})}async _updateUser(D,X={}){try{return await this._useSession(async(Y)=>{let{data:Z,error:J}=Y;if(J)throw J;if(!Z.session)throw new r.AuthSessionMissingError;let Q=Z.session,w=null,F=null;if(this.flowType==="pkce"&&D.email!=null)[w,F]=await(0,e.getCodeChallengeAndMethod)(this.storage,this.storageKey);let{data:B,error:q}=await(0,O0._request)(this.fetch,"PUT",`${this.url}/user`,{headers:this.headers,redirectTo:X===null||X===void 0?void 0:X.emailRedirectTo,body:Object.assign(Object.assign({},D),{code_challenge:w,code_challenge_method:F}),jwt:Q.access_token,xform:O0._userResponse});if(q)throw q;return Q.user=B.user,await this._saveSession(Q),await this._notifyAllSubscribers("USER_UPDATED",Q),this._returnResult({data:{user:Q.user},error:null})})}catch(Y){if(await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`),(0,r.isAuthError)(Y))return this._returnResult({data:{user:null},error:Y});throw Y}}async setSession(D){return await this.initializePromise,await this._acquireLock(-1,async()=>{return await this._setSession(D)})}async _setSession(D){try{if(!D.access_token||!D.refresh_token)throw new r.AuthSessionMissingError;let X=Date.now()/1000,Y=X,Z=!0,J=null,{payload:Q}=(0,e.decodeJWT)(D.access_token);if(Q.exp)Y=Q.exp,Z=Y<=X;if(Z){let{data:w,error:F}=await this._callRefreshToken(D.refresh_token);if(F)return this._returnResult({data:{user:null,session:null},error:F});if(!w)return{data:{user:null,session:null},error:null};J=w}else{let{data:w,error:F}=await this._getUser(D.access_token);if(F)throw F;J={access_token:D.access_token,refresh_token:D.refresh_token,user:w.user,token_type:"bearer",expires_in:Y-X,expires_at:Y},await this._saveSession(J),await this._notifyAllSubscribers("SIGNED_IN",J)}return this._returnResult({data:{user:J.user,session:J},error:null})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:{session:null,user:null},error:X});throw X}}async refreshSession(D){return await this.initializePromise,await this._acquireLock(-1,async()=>{return await this._refreshSession(D)})}async _refreshSession(D){try{return await this._useSession(async(X)=>{var Y;if(!D){let{data:Q,error:w}=X;if(w)throw w;D=(Y=Q.session)!==null&&Y!==void 0?Y:void 0}if(!(D===null||D===void 0?void 0:D.refresh_token))throw new r.AuthSessionMissingError;let{data:Z,error:J}=await this._callRefreshToken(D.refresh_token);if(J)return this._returnResult({data:{user:null,session:null},error:J});if(!Z)return this._returnResult({data:{user:null,session:null},error:null});return this._returnResult({data:{user:Z.user,session:Z},error:null})})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:{user:null,session:null},error:X});throw X}}async _getSessionFromURL(D,X){try{if(!(0,e.isBrowser)())throw new r.AuthImplicitGrantRedirectError("No browser detected.");if(D.error||D.error_description||D.error_code)throw new r.AuthImplicitGrantRedirectError(D.error_description||"Error in URL with unspecified error_description",{error:D.error||"unspecified_error",code:D.error_code||"unspecified_code"});switch(X){case"implicit":if(this.flowType==="pkce")throw new r.AuthPKCEGrantCodeExchangeError("Not a valid PKCE flow url.");break;case"pkce":if(this.flowType==="implicit")throw new r.AuthImplicitGrantRedirectError("Not a valid implicit grant flow url.");break;default:}if(X==="pkce"){if(this._debug("#_initialize()","begin","is PKCE flow",!0),!D.code)throw new r.AuthPKCEGrantCodeExchangeError("No code detected.");let{data:N,error:R}=await this._exchangeCodeForSession(D.code);if(R)throw R;let z=new URL(window.location.href);return z.searchParams.delete("code"),window.history.replaceState(window.history.state,"",z.toString()),{data:{session:N.session,redirectType:null},error:null}}let{provider_token:Y,provider_refresh_token:Z,access_token:J,refresh_token:Q,expires_in:w,expires_at:F,token_type:B}=D;if(!J||!w||!Q||!B)throw new r.AuthImplicitGrantRedirectError("No session defined in URL");let q=Math.round(Date.now()/1000),$=parseInt(w),G=q+$;if(F)G=parseInt(F);let W=G-q;if(W*1000<=C1.AUTO_REFRESH_TICK_DURATION_MS)console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${W}s, should have been closer to ${$}s`);let O=G-$;if(q-O>=120)console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale",O,G,q);else if(q-O<0)console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew",O,G,q);let{data:H,error:M}=await this._getUser(J);if(M)throw M;let U={provider_token:Y,provider_refresh_token:Z,access_token:J,expires_in:$,expires_at:G,refresh_token:Q,token_type:B,user:H.user};return window.location.hash="",this._debug("#_getSessionFromURL()","clearing window.location.hash"),this._returnResult({data:{session:U,redirectType:D.type},error:null})}catch(Y){if((0,r.isAuthError)(Y))return this._returnResult({data:{session:null,redirectType:null},error:Y});throw Y}}_isImplicitGrantCallback(D){if(typeof this.detectSessionInUrl==="function")return this.detectSessionInUrl(new URL(window.location.href),D);return Boolean(D.access_token||D.error_description)}async _isPKCECallback(D){let X=await(0,e.getItemAsync)(this.storage,`${this.storageKey}-code-verifier`);return!!(D.code&&X)}async signOut(D={scope:"global"}){return await this.initializePromise,await this._acquireLock(-1,async()=>{return await this._signOut(D)})}async _signOut({scope:D}={scope:"global"}){return await this._useSession(async(X)=>{var Y;let{data:Z,error:J}=X;if(J)return this._returnResult({error:J});let Q=(Y=Z.session)===null||Y===void 0?void 0:Y.access_token;if(Q){let{error:w}=await this.admin.signOut(Q,D);if(w){if(!((0,r.isAuthApiError)(w)&&(w.status===404||w.status===401||w.status===403)))return this._returnResult({error:w})}}if(D!=="others")await this._removeSession(),await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`);return this._returnResult({error:null})})}onAuthStateChange(D){let X=(0,e.generateCallbackId)(),Y={id:X,callback:D,unsubscribe:()=>{this._debug("#unsubscribe()","state change callback with id removed",X),this.stateChangeEmitters.delete(X)}};return this._debug("#onAuthStateChange()","registered callback with id",X),this.stateChangeEmitters.set(X,Y),(async()=>{await this.initializePromise,await this._acquireLock(-1,async()=>{this._emitInitialSession(X)})})(),{data:{subscription:Y}}}async _emitInitialSession(D){return await this._useSession(async(X)=>{var Y,Z;try{let{data:{session:J},error:Q}=X;if(Q)throw Q;await((Y=this.stateChangeEmitters.get(D))===null||Y===void 0?void 0:Y.callback("INITIAL_SESSION",J)),this._debug("INITIAL_SESSION","callback id",D,"session",J)}catch(J){await((Z=this.stateChangeEmitters.get(D))===null||Z===void 0?void 0:Z.callback("INITIAL_SESSION",null)),this._debug("INITIAL_SESSION","callback id",D,"error",J),console.error(J)}})}async resetPasswordForEmail(D,X={}){let Y=null,Z=null;if(this.flowType==="pkce")[Y,Z]=await(0,e.getCodeChallengeAndMethod)(this.storage,this.storageKey,!0);try{return await(0,O0._request)(this.fetch,"POST",`${this.url}/recover`,{body:{email:D,code_challenge:Y,code_challenge_method:Z,gotrue_meta_security:{captcha_token:X.captchaToken}},headers:this.headers,redirectTo:X.redirectTo})}catch(J){if(await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`),(0,r.isAuthError)(J))return this._returnResult({data:null,error:J});throw J}}async getUserIdentities(){var D;try{let{data:X,error:Y}=await this.getUser();if(Y)throw Y;return this._returnResult({data:{identities:(D=X.user.identities)!==null&&D!==void 0?D:[]},error:null})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:null,error:X});throw X}}async linkIdentity(D){if("token"in D)return this.linkIdentityIdToken(D);return this.linkIdentityOAuth(D)}async linkIdentityOAuth(D){var X;try{let{data:Y,error:Z}=await this._useSession(async(J)=>{var Q,w,F,B,q;let{data:$,error:G}=J;if(G)throw G;let W=await this._getUrlForProvider(`${this.url}/user/identities/authorize`,D.provider,{redirectTo:(Q=D.options)===null||Q===void 0?void 0:Q.redirectTo,scopes:(w=D.options)===null||w===void 0?void 0:w.scopes,queryParams:(F=D.options)===null||F===void 0?void 0:F.queryParams,skipBrowserRedirect:!0});return await(0,O0._request)(this.fetch,"GET",W,{headers:this.headers,jwt:(q=(B=$.session)===null||B===void 0?void 0:B.access_token)!==null&&q!==void 0?q:void 0})});if(Z)throw Z;if((0,e.isBrowser)()&&!((X=D.options)===null||X===void 0?void 0:X.skipBrowserRedirect))window.location.assign(Y===null||Y===void 0?void 0:Y.url);return this._returnResult({data:{provider:D.provider,url:Y===null||Y===void 0?void 0:Y.url},error:null})}catch(Y){if((0,r.isAuthError)(Y))return this._returnResult({data:{provider:D.provider,url:null},error:Y});throw Y}}async linkIdentityIdToken(D){return await this._useSession(async(X)=>{var Y;try{let{error:Z,data:{session:J}}=X;if(Z)throw Z;let{options:Q,provider:w,token:F,access_token:B,nonce:q}=D,$=await(0,O0._request)(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,jwt:(Y=J===null||J===void 0?void 0:J.access_token)!==null&&Y!==void 0?Y:void 0,body:{provider:w,id_token:F,access_token:B,nonce:q,link_identity:!0,gotrue_meta_security:{captcha_token:Q===null||Q===void 0?void 0:Q.captchaToken}},xform:O0._sessionResponse}),{data:G,error:W}=$;if(W)return this._returnResult({data:{user:null,session:null},error:W});else if(!G||!G.session||!G.user)return this._returnResult({data:{user:null,session:null},error:new r.AuthInvalidTokenResponseError});if(G.session)await this._saveSession(G.session),await this._notifyAllSubscribers("USER_UPDATED",G.session);return this._returnResult({data:G,error:W})}catch(Z){if(await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`),(0,r.isAuthError)(Z))return this._returnResult({data:{user:null,session:null},error:Z});throw Z}})}async unlinkIdentity(D){try{return await this._useSession(async(X)=>{var Y,Z;let{data:J,error:Q}=X;if(Q)throw Q;return await(0,O0._request)(this.fetch,"DELETE",`${this.url}/user/identities/${D.identity_id}`,{headers:this.headers,jwt:(Z=(Y=J.session)===null||Y===void 0?void 0:Y.access_token)!==null&&Z!==void 0?Z:void 0})})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:null,error:X});throw X}}async _refreshAccessToken(D){let X=`#_refreshAccessToken(${D.substring(0,5)}...)`;this._debug(X,"begin");try{let Y=Date.now();return await(0,e.retryable)(async(Z)=>{if(Z>0)await(0,e.sleep)(200*Math.pow(2,Z-1));return this._debug(X,"refreshing attempt",Z),await(0,O0._request)(this.fetch,"POST",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:D},headers:this.headers,xform:O0._sessionResponse})},(Z,J)=>{let Q=200*Math.pow(2,Z);return J&&(0,r.isAuthRetryableFetchError)(J)&&Date.now()+Q-Y<C1.AUTO_REFRESH_TICK_DURATION_MS})}catch(Y){if(this._debug(X,"error",Y),(0,r.isAuthError)(Y))return this._returnResult({data:{session:null,user:null},error:Y});throw Y}finally{this._debug(X,"end")}}_isValidSession(D){return typeof D==="object"&&D!==null&&"access_token"in D&&"refresh_token"in D&&"expires_at"in D}async _handleProviderSignIn(D,X){let Y=await this._getUrlForProvider(`${this.url}/authorize`,D,{redirectTo:X.redirectTo,scopes:X.scopes,queryParams:X.queryParams});if(this._debug("#_handleProviderSignIn()","provider",D,"options",X,"url",Y),(0,e.isBrowser)()&&!X.skipBrowserRedirect)window.location.assign(Y);return{data:{provider:D,url:Y},error:null}}async _recoverAndRefresh(){var D,X;let Y="#_recoverAndRefresh()";this._debug("#_recoverAndRefresh()","begin");try{let Z=await(0,e.getItemAsync)(this.storage,this.storageKey);if(Z&&this.userStorage){let Q=await(0,e.getItemAsync)(this.userStorage,this.storageKey+"-user");if(!this.storage.isServer&&Object.is(this.storage,this.userStorage)&&!Q)Q={user:Z.user},await(0,e.setItemAsync)(this.userStorage,this.storageKey+"-user",Q);Z.user=(D=Q===null||Q===void 0?void 0:Q.user)!==null&&D!==void 0?D:(0,e.userNotAvailableProxy)()}else if(Z&&!Z.user){if(!Z.user){let Q=await(0,e.getItemAsync)(this.storage,this.storageKey+"-user");if(Q&&(Q===null||Q===void 0?void 0:Q.user))Z.user=Q.user,await(0,e.removeItemAsync)(this.storage,this.storageKey+"-user"),await(0,e.setItemAsync)(this.storage,this.storageKey,Z);else Z.user=(0,e.userNotAvailableProxy)()}}if(this._debug("#_recoverAndRefresh()","session from storage",Z),!this._isValidSession(Z)){if(this._debug("#_recoverAndRefresh()","session is not valid"),Z!==null)await this._removeSession();return}let J=((X=Z.expires_at)!==null&&X!==void 0?X:1/0)*1000-Date.now()<C1.EXPIRY_MARGIN_MS;if(this._debug("#_recoverAndRefresh()",`session has${J?"":" not"} expired with margin of ${C1.EXPIRY_MARGIN_MS}s`),J){if(this.autoRefreshToken&&Z.refresh_token){let{error:Q}=await this._callRefreshToken(Z.refresh_token);if(Q){if(console.error(Q),!(0,r.isAuthRetryableFetchError)(Q))this._debug("#_recoverAndRefresh()","refresh failed with a non-retryable error, removing the session",Q),await this._removeSession()}}}else if(Z.user&&Z.user.__isUserNotAvailableProxy===!0)try{let{data:Q,error:w}=await this._getUser(Z.access_token);if(!w&&(Q===null||Q===void 0?void 0:Q.user))Z.user=Q.user,await this._saveSession(Z),await this._notifyAllSubscribers("SIGNED_IN",Z);else this._debug("#_recoverAndRefresh()","could not get user data, skipping SIGNED_IN notification")}catch(Q){console.error("Error getting user data:",Q),this._debug("#_recoverAndRefresh()","error getting user data, skipping SIGNED_IN notification",Q)}else await this._notifyAllSubscribers("SIGNED_IN",Z)}catch(Z){this._debug("#_recoverAndRefresh()","error",Z),console.error(Z);return}finally{this._debug("#_recoverAndRefresh()","end")}}async _callRefreshToken(D){var X,Y;if(!D)throw new r.AuthSessionMissingError;if(this.refreshingDeferred)return this.refreshingDeferred.promise;let Z=`#_callRefreshToken(${D.substring(0,5)}...)`;this._debug(Z,"begin");try{this.refreshingDeferred=new e.Deferred;let{data:J,error:Q}=await this._refreshAccessToken(D);if(Q)throw Q;if(!J.session)throw new r.AuthSessionMissingError;await this._saveSession(J.session),await this._notifyAllSubscribers("TOKEN_REFRESHED",J.session);let w={data:J.session,error:null};return this.refreshingDeferred.resolve(w),w}catch(J){if(this._debug(Z,"error",J),(0,r.isAuthError)(J)){let Q={data:null,error:J};if(!(0,r.isAuthRetryableFetchError)(J))await this._removeSession();return(X=this.refreshingDeferred)===null||X===void 0||X.resolve(Q),Q}throw(Y=this.refreshingDeferred)===null||Y===void 0||Y.reject(J),J}finally{this.refreshingDeferred=null,this._debug(Z,"end")}}async _notifyAllSubscribers(D,X,Y=!0){let Z=`#_notifyAllSubscribers(${D})`;this._debug(Z,"begin",X,`broadcast = ${Y}`);try{if(this.broadcastChannel&&Y)this.broadcastChannel.postMessage({event:D,session:X});let J=[],Q=Array.from(this.stateChangeEmitters.values()).map(async(w)=>{try{await w.callback(D,X)}catch(F){J.push(F)}});if(await Promise.all(Q),J.length>0){for(let w=0;w<J.length;w+=1)console.error(J[w]);throw J[0]}}finally{this._debug(Z,"end")}}async _saveSession(D){this._debug("#_saveSession()",D),this.suppressGetSessionWarning=!0,await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`);let X=Object.assign({},D),Y=X.user&&X.user.__isUserNotAvailableProxy===!0;if(this.userStorage){if(!Y&&X.user)await(0,e.setItemAsync)(this.userStorage,this.storageKey+"-user",{user:X.user});let Z=Object.assign({},X);delete Z.user;let J=(0,e.deepClone)(Z);await(0,e.setItemAsync)(this.storage,this.storageKey,J)}else{let Z=(0,e.deepClone)(X);await(0,e.setItemAsync)(this.storage,this.storageKey,Z)}}async _removeSession(){if(this._debug("#_removeSession()"),this.suppressGetSessionWarning=!1,await(0,e.removeItemAsync)(this.storage,this.storageKey),await(0,e.removeItemAsync)(this.storage,this.storageKey+"-code-verifier"),await(0,e.removeItemAsync)(this.storage,this.storageKey+"-user"),this.userStorage)await(0,e.removeItemAsync)(this.userStorage,this.storageKey+"-user");await this._notifyAllSubscribers("SIGNED_OUT",null)}_removeVisibilityChangedCallback(){this._debug("#_removeVisibilityChangedCallback()");let D=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{if(D&&(0,e.isBrowser)()&&(window===null||window===void 0?void 0:window.removeEventListener))window.removeEventListener("visibilitychange",D)}catch(X){console.error("removing visibilitychange callback failed",X)}}async _startAutoRefresh(){await this._stopAutoRefresh(),this._debug("#_startAutoRefresh()");let D=setInterval(()=>this._autoRefreshTokenTick(),C1.AUTO_REFRESH_TICK_DURATION_MS);if(this.autoRefreshTicker=D,D&&typeof D==="object"&&typeof D.unref==="function")D.unref();else if(typeof Deno<"u"&&typeof Deno.unrefTimer==="function")Deno.unrefTimer(D);setTimeout(async()=>{await this.initializePromise,await this._autoRefreshTokenTick()},0)}async _stopAutoRefresh(){this._debug("#_stopAutoRefresh()");let D=this.autoRefreshTicker;if(this.autoRefreshTicker=null,D)clearInterval(D)}async startAutoRefresh(){this._removeVisibilityChangedCallback(),await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback(),await this._stopAutoRefresh()}async _autoRefreshTokenTick(){this._debug("#_autoRefreshTokenTick()","begin");try{await this._acquireLock(0,async()=>{try{let D=Date.now();try{return await this._useSession(async(X)=>{let{data:{session:Y}}=X;if(!Y||!Y.refresh_token||!Y.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}let Z=Math.floor((Y.expires_at*1000-D)/C1.AUTO_REFRESH_TICK_DURATION_MS);if(this._debug("#_autoRefreshTokenTick()",`access token expires in ${Z} ticks, a tick lasts ${C1.AUTO_REFRESH_TICK_DURATION_MS}ms, refresh threshold is ${C1.AUTO_REFRESH_TICK_THRESHOLD} ticks`),Z<=C1.AUTO_REFRESH_TICK_THRESHOLD)await this._callRefreshToken(Y.refresh_token)})}catch(X){console.error("Auto refresh tick failed with error. This is likely a transient error.",X)}}finally{this._debug("#_autoRefreshTokenTick()","end")}})}catch(D){if(D.isAcquireTimeout||D instanceof YH.LockAcquireTimeoutError)this._debug("auto refresh token tick lock not available");else throw D}}async _handleVisibilityChange(){if(this._debug("#_handleVisibilityChange()"),!(0,e.isBrowser)()||!(window===null||window===void 0?void 0:window.addEventListener)){if(this.autoRefreshToken)this.startAutoRefresh();return!1}try{this.visibilityChangedCallback=async()=>await this._onVisibilityChanged(!1),window===null||window===void 0||window.addEventListener("visibilitychange",this.visibilityChangedCallback),await this._onVisibilityChanged(!0)}catch(D){console.error("_handleVisibilityChange",D)}}async _onVisibilityChanged(D){let X=`#_onVisibilityChanged(${D})`;if(this._debug(X,"visibilityState",document.visibilityState),document.visibilityState==="visible"){if(this.autoRefreshToken)this._startAutoRefresh();if(!D)await this.initializePromise,await this._acquireLock(-1,async()=>{if(document.visibilityState!=="visible"){this._debug(X,"acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting");return}await this._recoverAndRefresh()})}else if(document.visibilityState==="hidden"){if(this.autoRefreshToken)this._stopAutoRefresh()}}async _getUrlForProvider(D,X,Y){let Z=[`provider=${encodeURIComponent(X)}`];if(Y===null||Y===void 0?void 0:Y.redirectTo)Z.push(`redirect_to=${encodeURIComponent(Y.redirectTo)}`);if(Y===null||Y===void 0?void 0:Y.scopes)Z.push(`scopes=${encodeURIComponent(Y.scopes)}`);if(this.flowType==="pkce"){let[J,Q]=await(0,e.getCodeChallengeAndMethod)(this.storage,this.storageKey),w=new URLSearchParams({code_challenge:`${encodeURIComponent(J)}`,code_challenge_method:`${encodeURIComponent(Q)}`});Z.push(w.toString())}if(Y===null||Y===void 0?void 0:Y.queryParams){let J=new URLSearchParams(Y.queryParams);Z.push(J.toString())}if(Y===null||Y===void 0?void 0:Y.skipBrowserRedirect)Z.push(`skip_http_redirect=${Y.skipBrowserRedirect}`);return`${D}?${Z.join("&")}`}async _unenroll(D){try{return await this._useSession(async(X)=>{var Y;let{data:Z,error:J}=X;if(J)return this._returnResult({data:null,error:J});return await(0,O0._request)(this.fetch,"DELETE",`${this.url}/factors/${D.factorId}`,{headers:this.headers,jwt:(Y=Z===null||Z===void 0?void 0:Z.session)===null||Y===void 0?void 0:Y.access_token})})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:null,error:X});throw X}}async _enroll(D){try{return await this._useSession(async(X)=>{var Y,Z;let{data:J,error:Q}=X;if(Q)return this._returnResult({data:null,error:Q});let w=Object.assign({friendly_name:D.friendlyName,factor_type:D.factorType},D.factorType==="phone"?{phone:D.phone}:D.factorType==="totp"?{issuer:D.issuer}:{}),{data:F,error:B}=await(0,O0._request)(this.fetch,"POST",`${this.url}/factors`,{body:w,headers:this.headers,jwt:(Y=J===null||J===void 0?void 0:J.session)===null||Y===void 0?void 0:Y.access_token});if(B)return this._returnResult({data:null,error:B});if(D.factorType==="totp"&&F.type==="totp"&&((Z=F===null||F===void 0?void 0:F.totp)===null||Z===void 0?void 0:Z.qr_code))F.totp.qr_code=`data:image/svg+xml;utf-8,${F.totp.qr_code}`;return this._returnResult({data:F,error:null})})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:null,error:X});throw X}}async _verify(D){return this._acquireLock(-1,async()=>{try{return await this._useSession(async(X)=>{var Y;let{data:Z,error:J}=X;if(J)return this._returnResult({data:null,error:J});let Q=Object.assign({challenge_id:D.challengeId},"webauthn"in D?{webauthn:Object.assign(Object.assign({},D.webauthn),{credential_response:D.webauthn.type==="create"?(0,E4.serializeCredentialCreationResponse)(D.webauthn.credential_response):(0,E4.serializeCredentialRequestResponse)(D.webauthn.credential_response)})}:{code:D.code}),{data:w,error:F}=await(0,O0._request)(this.fetch,"POST",`${this.url}/factors/${D.factorId}/verify`,{body:Q,headers:this.headers,jwt:(Y=Z===null||Z===void 0?void 0:Z.session)===null||Y===void 0?void 0:Y.access_token});if(F)return this._returnResult({data:null,error:F});return await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1000)+w.expires_in},w)),await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",w),this._returnResult({data:w,error:F})})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:null,error:X});throw X}})}async _challenge(D){return this._acquireLock(-1,async()=>{try{return await this._useSession(async(X)=>{var Y;let{data:Z,error:J}=X;if(J)return this._returnResult({data:null,error:J});let Q=await(0,O0._request)(this.fetch,"POST",`${this.url}/factors/${D.factorId}/challenge`,{body:D,headers:this.headers,jwt:(Y=Z===null||Z===void 0?void 0:Z.session)===null||Y===void 0?void 0:Y.access_token});if(Q.error)return Q;let{data:w}=Q;if(w.type!=="webauthn")return{data:w,error:null};switch(w.webauthn.type){case"create":return{data:Object.assign(Object.assign({},w),{webauthn:Object.assign(Object.assign({},w.webauthn),{credential_options:Object.assign(Object.assign({},w.webauthn.credential_options),{publicKey:(0,E4.deserializeCredentialCreationOptions)(w.webauthn.credential_options.publicKey)})})}),error:null};case"request":return{data:Object.assign(Object.assign({},w),{webauthn:Object.assign(Object.assign({},w.webauthn),{credential_options:Object.assign(Object.assign({},w.webauthn.credential_options),{publicKey:(0,E4.deserializeCredentialRequestOptions)(w.webauthn.credential_options.publicKey)})})}),error:null}}})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:null,error:X});throw X}})}async _challengeAndVerify(D){let{data:X,error:Y}=await this._challenge({factorId:D.factorId});if(Y)return this._returnResult({data:null,error:Y});return await this._verify({factorId:D.factorId,challengeId:X.id,code:D.code})}async _listFactors(){var D;let{data:{user:X},error:Y}=await this.getUser();if(Y)return{data:null,error:Y};let Z={all:[],phone:[],totp:[],webauthn:[]};for(let J of(D=X===null||X===void 0?void 0:X.factors)!==null&&D!==void 0?D:[])if(Z.all.push(J),J.status==="verified")Z[J.factor_type].push(J);return{data:Z,error:null}}async _getAuthenticatorAssuranceLevel(){var D,X;let{data:{session:Y},error:Z}=await this.getSession();if(Z)return this._returnResult({data:null,error:Z});if(!Y)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};let{payload:J}=(0,e.decodeJWT)(Y.access_token),Q=null;if(J.aal)Q=J.aal;let w=Q;if(((X=(D=Y.user.factors)===null||D===void 0?void 0:D.filter((q)=>q.status==="verified"))!==null&&X!==void 0?X:[]).length>0)w="aal2";let B=J.amr||[];return{data:{currentLevel:Q,nextLevel:w,currentAuthenticationMethods:B},error:null}}async _getAuthorizationDetails(D){try{return await this._useSession(async(X)=>{let{data:{session:Y},error:Z}=X;if(Z)return this._returnResult({data:null,error:Z});if(!Y)return this._returnResult({data:null,error:new r.AuthSessionMissingError});return await(0,O0._request)(this.fetch,"GET",`${this.url}/oauth/authorizations/${D}`,{headers:this.headers,jwt:Y.access_token,xform:(J)=>({data:J,error:null})})})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:null,error:X});throw X}}async _approveAuthorization(D,X){try{return await this._useSession(async(Y)=>{let{data:{session:Z},error:J}=Y;if(J)return this._returnResult({data:null,error:J});if(!Z)return this._returnResult({data:null,error:new r.AuthSessionMissingError});let Q=await(0,O0._request)(this.fetch,"POST",`${this.url}/oauth/authorizations/${D}/consent`,{headers:this.headers,jwt:Z.access_token,body:{action:"approve"},xform:(w)=>({data:w,error:null})});if(Q.data&&Q.data.redirect_url){if((0,e.isBrowser)()&&!(X===null||X===void 0?void 0:X.skipBrowserRedirect))window.location.assign(Q.data.redirect_url)}return Q})}catch(Y){if((0,r.isAuthError)(Y))return this._returnResult({data:null,error:Y});throw Y}}async _denyAuthorization(D,X){try{return await this._useSession(async(Y)=>{let{data:{session:Z},error:J}=Y;if(J)return this._returnResult({data:null,error:J});if(!Z)return this._returnResult({data:null,error:new r.AuthSessionMissingError});let Q=await(0,O0._request)(this.fetch,"POST",`${this.url}/oauth/authorizations/${D}/consent`,{headers:this.headers,jwt:Z.access_token,body:{action:"deny"},xform:(w)=>({data:w,error:null})});if(Q.data&&Q.data.redirect_url){if((0,e.isBrowser)()&&!(X===null||X===void 0?void 0:X.skipBrowserRedirect))window.location.assign(Q.data.redirect_url)}return Q})}catch(Y){if((0,r.isAuthError)(Y))return this._returnResult({data:null,error:Y});throw Y}}async _listOAuthGrants(){try{return await this._useSession(async(D)=>{let{data:{session:X},error:Y}=D;if(Y)return this._returnResult({data:null,error:Y});if(!X)return this._returnResult({data:null,error:new r.AuthSessionMissingError});return await(0,O0._request)(this.fetch,"GET",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:X.access_token,xform:(Z)=>({data:Z,error:null})})})}catch(D){if((0,r.isAuthError)(D))return this._returnResult({data:null,error:D});throw D}}async _revokeOAuthGrant(D){try{return await this._useSession(async(X)=>{let{data:{session:Y},error:Z}=X;if(Z)return this._returnResult({data:null,error:Z});if(!Y)return this._returnResult({data:null,error:new r.AuthSessionMissingError});return await(0,O0._request)(this.fetch,"DELETE",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:Y.access_token,query:{client_id:D.clientId},noResolveJson:!0}),{data:{},error:null}})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:null,error:X});throw X}}async fetchJwk(D,X={keys:[]}){let Y=X.keys.find((w)=>w.kid===D);if(Y)return Y;let Z=Date.now();if(Y=this.jwks.keys.find((w)=>w.kid===D),Y&&this.jwks_cached_at+C1.JWKS_TTL>Z)return Y;let{data:J,error:Q}=await(0,O0._request)(this.fetch,"GET",`${this.url}/.well-known/jwks.json`,{headers:this.headers});if(Q)throw Q;if(!J.keys||J.keys.length===0)return null;if(this.jwks=J,this.jwks_cached_at=Z,Y=J.keys.find((w)=>w.kid===D),!Y)return null;return Y}async getClaims(D,X={}){try{let Y=D;if(!Y){let{data:W,error:O}=await this.getSession();if(O||!W.session)return this._returnResult({data:null,error:O});Y=W.session.access_token}let{header:Z,payload:J,signature:Q,raw:{header:w,payload:F}}=(0,e.decodeJWT)(Y);if(!(X===null||X===void 0?void 0:X.allowExpired))(0,e.validateExp)(J.exp);let B=!Z.alg||Z.alg.startsWith("HS")||!Z.kid||!(("crypto"in globalThis)&&("subtle"in globalThis.crypto))?null:await this.fetchJwk(Z.kid,(X===null||X===void 0?void 0:X.keys)?{keys:X.keys}:X===null||X===void 0?void 0:X.jwks);if(!B){let{error:W}=await this.getUser(Y);if(W)throw W;return{data:{claims:J,header:Z,signature:Q},error:null}}let q=(0,e.getAlgorithm)(Z.alg),$=await crypto.subtle.importKey("jwk",B,q,!0,["verify"]);if(!await crypto.subtle.verify(q,$,Q,(0,ZH.stringToUint8Array)(`${w}.${F}`)))throw new r.AuthInvalidJwtError("Invalid JWT signature");return{data:{claims:J,header:Z,signature:Q},error:null}}catch(Y){if((0,r.isAuthError)(Y))return this._returnResult({data:null,error:Y});throw Y}}}C4.nextInstanceID={};ww.default=C4});var QH=T((Bw)=>{Object.defineProperty(Bw,"__esModule",{value:!0});var Fg=h0(),Bg=Fg.__importDefault(DY()),qg=Bg.default;Bw.default=qg});var wH=T((qw)=>{Object.defineProperty(qw,"__esModule",{value:!0});var $g=h0(),Gg=$g.__importDefault(Fw()),Og=Gg.default;qw.default=Og});var $w=T((yD)=>{Object.defineProperty(yD,"__esModule",{value:!0});yD.processLock=yD.lockInternals=yD.NavigatorLockAcquireTimeoutError=yD.navigatorLock=yD.AuthClient=yD.AuthAdminApi=yD.GoTrueClient=yD.GoTrueAdminApi=void 0;var f5=h0(),Wg=f5.__importDefault(DY());yD.GoTrueAdminApi=Wg.default;var Hg=f5.__importDefault(Fw());yD.GoTrueClient=Hg.default;var Kg=f5.__importDefault(QH());yD.AuthAdminApi=Kg.default;var zg=f5.__importDefault(wH());yD.AuthClient=zg.default;f5.__exportStar(rQ(),yD);f5.__exportStar(G9(),yD);var JY=Yw();Object.defineProperty(yD,"navigatorLock",{enumerable:!0,get:function(){return JY.navigatorLock}});Object.defineProperty(yD,"NavigatorLockAcquireTimeoutError",{enumerable:!0,get:function(){return JY.NavigatorLockAcquireTimeoutError}});Object.defineProperty(yD,"lockInternals",{enumerable:!0,get:function(){return JY.internals}});Object.defineProperty(yD,"processLock",{enumerable:!0,get:function(){return JY.processLock}})});var Ow=T((cJ0,GH)=>{GH.exports={LOCHDR:30,LOCSIG:67324752,LOCVER:4,LOCFLG:6,LOCHOW:8,LOCTIM:10,LOCCRC:14,LOCSIZ:18,LOCLEN:22,LOCNAM:26,LOCEXT:28,EXTSIG:134695760,EXTHDR:16,EXTCRC:4,EXTSIZ:8,EXTLEN:12,CENHDR:46,CENSIG:33639248,CENVEM:4,CENVER:6,CENFLG:8,CENHOW:10,CENTIM:12,CENCRC:16,CENSIZ:20,CENLEN:24,CENNAM:28,CENEXT:30,CENCOM:32,CENDSK:34,CENATT:36,CENATX:38,CENOFF:42,ENDHDR:22,ENDSIG:101010256,ENDSUB:8,ENDTOT:10,ENDSIZ:12,ENDOFF:16,ENDCOM:20,END64HDR:20,END64SIG:117853008,END64START:4,END64OFF:8,END64NUMDISKS:16,ZIP64SIG:101075792,ZIP64HDR:56,ZIP64LEAD:12,ZIP64SIZE:4,ZIP64VEM:12,ZIP64VER:14,ZIP64DSK:16,ZIP64DSKDIR:20,ZIP64SUB:24,ZIP64TOT:32,ZIP64SIZB:40,ZIP64OFF:48,ZIP64EXTRA:56,STORED:0,SHRUNK:1,REDUCED1:2,REDUCED2:3,REDUCED3:4,REDUCED4:5,IMPLODED:6,DEFLATED:8,ENHANCED_DEFLATED:9,PKWARE:10,BZIP2:12,LZMA:14,IBM_TERSE:18,IBM_LZ77:19,AES_ENCRYPT:99,FLG_ENC:1,FLG_COMP1:2,FLG_COMP2:4,FLG_DESC:8,FLG_ENH:16,FLG_PATCH:32,FLG_STR:64,FLG_EFS:2048,FLG_MSK:4096,FILE:2,BUFFER:1,NONE:0,EF_ID:0,EF_SIZE:2,ID_ZIP64:1,ID_AVINFO:7,ID_PFS:8,ID_OS2:9,ID_NTFS:10,ID_OPENVMS:12,ID_UNIX:13,ID_FORK:14,ID_PATCH:15,ID_X509_PKCS7:20,ID_X509_CERTID_F:21,ID_X509_CERTID_C:22,ID_STRONGENC:23,ID_RECORD_MGT:24,ID_X509_PKCS7_RL:25,ID_IBM1:101,ID_IBM2:102,ID_POSZIP:18064,EF_ZIP64_OR_32:4294967295,EF_ZIP64_OR_16:65535,EF_ZIP64_SUNCOMP:0,EF_ZIP64_SCOMP:8,EF_ZIP64_RHO:16,EF_ZIP64_DSN:24}});var QY=T((WH)=>{var OH={INVALID_LOC:"Invalid LOC header (bad signature)",INVALID_CEN:"Invalid CEN header (bad signature)",INVALID_END:"Invalid END header (bad signature)",DESCRIPTOR_NOT_EXIST:"No descriptor present",DESCRIPTOR_UNKNOWN:"Unknown descriptor format",DESCRIPTOR_FAULTY:"Descriptor data is malformed",NO_DATA:"Nothing to decompress",BAD_CRC:"CRC32 checksum failed {0}",FILE_IN_THE_WAY:"There is a file in the way: {0}",UNKNOWN_METHOD:"Invalid/unsupported compression method",AVAIL_DATA:"inflate::Available inflate data did not terminate",INVALID_DISTANCE:"inflate::Invalid literal/length or distance code in fixed or dynamic block",TO_MANY_CODES:"inflate::Dynamic block code description: too many length or distance codes",INVALID_REPEAT_LEN:"inflate::Dynamic block code description: repeat more than specified lengths",INVALID_REPEAT_FIRST:"inflate::Dynamic block code description: repeat lengths with no first length",INCOMPLETE_CODES:"inflate::Dynamic block code description: code lengths codes incomplete",INVALID_DYN_DISTANCE:"inflate::Dynamic block code description: invalid distance code lengths",INVALID_CODES_LEN:"inflate::Dynamic block code description: invalid literal/length code lengths",INVALID_STORE_BLOCK:"inflate::Stored block length did not match one's complement",INVALID_BLOCK_TYPE:"inflate::Invalid block type (type == 3)",CANT_EXTRACT_FILE:"Could not extract the file",CANT_OVERRIDE:"Target file already exists",DISK_ENTRY_TOO_LARGE:"Number of disk entries is too large",NO_ZIP:"No zip file was loaded",NO_ENTRY:"Entry doesn't exist",DIRECTORY_CONTENT_ERROR:"A directory cannot have content",FILE_NOT_FOUND:'File not found: "{0}"',NOT_IMPLEMENTED:"Not implemented",INVALID_FILENAME:"Invalid filename",INVALID_FORMAT:"Invalid or unsupported zip format. No END header found",INVALID_PASS_PARAM:"Incompatible password parameter",WRONG_PASSWORD:"Wrong Password",COMMENT_TOO_LONG:"Comment is too long",EXTRA_FIELD_PARSE_ERROR:"Extra field parsing error"};function kg(D){return function(...X){if(X.length)D=D.replace(/\{(\d)\}/g,(Y,Z)=>X[Z]||"");return Error("ADM-ZIP: "+D)}}for(let D of Object.keys(OH))WH[D]=kg(OH[D])});var LH=T((nJ0,MH)=>{var ug=require("fs"),uD=require("path"),HH=Ow(),hg=QY(),_g=typeof process==="object"&&process.platform==="win32",KH=(D)=>typeof D==="object"&&D!==null,zH=new Uint32Array(256).map((D,X)=>{for(let Y=0;Y<8;Y++)if((X&1)!==0)X=3988292384^X>>>1;else X>>>=1;return X>>>0});function ND(D){if(this.sep=uD.sep,this.fs=ug,KH(D)){if(KH(D.fs)&&typeof D.fs.statSync==="function")this.fs=D.fs}}MH.exports=ND;ND.prototype.makeDir=function(D){let X=this;function Y(Z){let J=Z.split(X.sep)[0];Z.split(X.sep).forEach(function(Q){if(!Q||Q.substr(-1,1)===":")return;J+=X.sep+Q;var w;try{w=X.fs.statSync(J)}catch(F){X.fs.mkdirSync(J)}if(w&&w.isFile())throw hg.FILE_IN_THE_WAY(`"${J}"`)})}Y(D)};ND.prototype.writeFileTo=function(D,X,Y,Z){let J=this;if(J.fs.existsSync(D)){if(!Y)return!1;var Q=J.fs.statSync(D);if(Q.isDirectory())return!1}var w=uD.dirname(D);if(!J.fs.existsSync(w))J.makeDir(w);var F;try{F=J.fs.openSync(D,"w",438)}catch(B){J.fs.chmodSync(D,438),F=J.fs.openSync(D,"w",438)}if(F)try{J.fs.writeSync(F,X,0,X.length,0)}finally{J.fs.closeSync(F)}return J.fs.chmodSync(D,Z||438),!0};ND.prototype.writeFileToAsync=function(D,X,Y,Z,J){if(typeof Z==="function")J=Z,Z=void 0;let Q=this;Q.fs.exists(D,function(w){if(w&&!Y)return J(!1);Q.fs.stat(D,function(F,B){if(w&&B.isDirectory())return J(!1);var q=uD.dirname(D);Q.fs.exists(q,function($){if(!$)Q.makeDir(q);Q.fs.open(D,"w",438,function(G,W){if(G)Q.fs.chmod(D,438,function(){Q.fs.open(D,"w",438,function(O,H){Q.fs.write(H,X,0,X.length,0,function(){Q.fs.close(H,function(){Q.fs.chmod(D,Z||438,function(){J(!0)})})})})});else if(W)Q.fs.write(W,X,0,X.length,0,function(){Q.fs.close(W,function(){Q.fs.chmod(D,Z||438,function(){J(!0)})})});else Q.fs.chmod(D,Z||438,function(){J(!0)})})})})})};ND.prototype.findFiles=function(D){let X=this;function Y(Z,J,Q){if(typeof J==="boolean")Q=J,J=void 0;let w=[];return X.fs.readdirSync(Z).forEach(function(F){let B=uD.join(Z,F),q=X.fs.statSync(B);if(!J||J.test(B))w.push(uD.normalize(B)+(q.isDirectory()?X.sep:""));if(q.isDirectory()&&Q)w=w.concat(Y(B,J,Q))}),w}return Y(D,void 0,!0)};ND.prototype.findFilesAsync=function(D,X){let Y=this,Z=[];Y.fs.readdir(D,function(J,Q){if(J)return X(J);let w=Q.length;if(!w)return X(null,Z);Q.forEach(function(F){F=uD.join(D,F),Y.fs.stat(F,function(B,q){if(B)return X(B);if(q){if(Z.push(uD.normalize(F)+(q.isDirectory()?Y.sep:"")),q.isDirectory())Y.findFilesAsync(F,function($,G){if($)return X($);if(Z=Z.concat(G),!--w)X(null,Z)});else if(!--w)X(null,Z)}})})})};ND.prototype.getAttributes=function(){};ND.prototype.setAttributes=function(){};ND.crc32update=function(D,X){return zH[(D^X)&255]^D>>>8};ND.crc32=function(D){if(typeof D==="string")D=Buffer.from(D,"utf8");let X=D.length,Y=-1;for(let Z=0;Z<X;)Y=ND.crc32update(Y,D[Z++]);return~Y>>>0};ND.methodToString=function(D){switch(D){case HH.STORED:return"STORED ("+D+")";case HH.DEFLATED:return"DEFLATED ("+D+")";default:return"UNSUPPORTED ("+D+")"}};ND.canonical=function(D){if(!D)return"";let X=uD.posix.normalize("/"+D.split("\\").join("/"));return uD.join(".",X)};ND.zipnamefix=function(D){if(!D)return"";let X=uD.posix.normalize("/"+D.split("\\").join("/"));return uD.posix.join(".",X)};ND.findLast=function(D,X){if(!Array.isArray(D))throw TypeError("arr is not array");let Y=D.length>>>0;for(let Z=Y-1;Z>=0;Z--)if(X(D[Z],Z,D))return D[Z];return};ND.sanitize=function(D,X){D=uD.resolve(uD.normalize(D));var Y=X.split("/");for(var Z=0,J=Y.length;Z<J;Z++){var Q=uD.normalize(uD.join(D,Y.slice(Z,J).join(uD.sep)));if(Q.indexOf(D)===0)return Q}return uD.normalize(uD.join(D,uD.basename(X)))};ND.toBuffer=function(X,Y){if(Buffer.isBuffer(X))return X;else if(X instanceof Uint8Array)return Buffer.from(X);else return typeof X==="string"?Y(X):Buffer.alloc(0)};ND.readBigUInt64LE=function(D,X){var Y=Buffer.from(D.slice(X,X+8));return Y.swap64(),parseInt(`0x${Y.toString("hex")}`)};ND.fromDOS2Date=function(D){return new Date((D>>25&127)+1980,Math.max((D>>21&15)-1,0),Math.max(D>>16&31,1),D>>11&31,D>>5&63,(D&31)<<1)};ND.fromDate2DOS=function(D){let X=0,Y=0;if(D.getFullYear()>1979)X=(D.getFullYear()-1980&127)<<9|D.getMonth()+1<<5|D.getDate(),Y=D.getHours()<<11|D.getMinutes()<<5|D.getSeconds()>>1;return X<<16|Y};ND.isWin=_g;ND.crcTable=zH});var UH=T((iJ0,VH)=>{var vg=require("path");VH.exports=function(D,{fs:X}){var Y=D||"",Z=Q(),J=null;function Q(){return{directory:!1,readonly:!1,hidden:!1,executable:!1,mtime:0,atime:0}}if(Y&&X.existsSync(Y))J=X.statSync(Y),Z.directory=J.isDirectory(),Z.mtime=J.mtime,Z.atime=J.atime,Z.executable=(73&J.mode)!==0,Z.readonly=(128&J.mode)===0,Z.hidden=vg.basename(Y)[0]===".";else console.warn("Invalid path: "+Y);return{get directory(){return Z.directory},get readOnly(){return Z.readonly},get hidden(){return Z.hidden},get mtime(){return Z.mtime},get atime(){return Z.atime},get executable(){return Z.executable},decodeAttributes:function(){},encodeAttributes:function(){},toJSON:function(){return{path:Y,isDirectory:Z.directory,isReadOnly:Z.readonly,isHidden:Z.hidden,isExecutable:Z.executable,mTime:Z.mtime,aTime:Z.atime}},toString:function(){return JSON.stringify(this.toJSON(),null,"\t")}}}});var RH=T((pJ0,NH)=>{NH.exports={efs:!0,encode:(D)=>Buffer.from(D,"utf8"),decode:(D)=>D.toString("utf8")}});var k5=T((aJ0,y5)=>{y5.exports=LH();y5.exports.Constants=Ow();y5.exports.Errors=QY();y5.exports.FileAttr=UH();y5.exports.decoder=RH()});var EH=T((tJ0,AH)=>{var T6=k5(),s=T6.Constants;AH.exports=function(){var D=20,X=10,Y=0,Z=0,J=0,Q=0,w=0,F=0,B=0,q=0,$=0,G=0,W=0,O=0,H=0;D|=T6.isWin?2560:768,Y|=s.FLG_EFS;let M={extraLen:0},U=(z)=>Math.max(0,z)>>>0,N=(z)=>Math.max(0,z)&65535,R=(z)=>Math.max(0,z)&255;return J=T6.fromDate2DOS(new Date),{get made(){return D},set made(z){D=z},get version(){return X},set version(z){X=z},get flags(){return Y},set flags(z){Y=z},get flags_efs(){return(Y&s.FLG_EFS)>0},set flags_efs(z){if(z)Y|=s.FLG_EFS;else Y&=~s.FLG_EFS},get flags_desc(){return(Y&s.FLG_DESC)>0},set flags_desc(z){if(z)Y|=s.FLG_DESC;else Y&=~s.FLG_DESC},get method(){return Z},set method(z){switch(z){case s.STORED:this.version=10;case s.DEFLATED:default:this.version=20}Z=z},get time(){return T6.fromDOS2Date(this.timeval)},set time(z){this.timeval=T6.fromDate2DOS(z)},get timeval(){return J},set timeval(z){J=U(z)},get timeHighByte(){return R(J>>>8)},get crc(){return Q},set crc(z){Q=U(z)},get compressedSize(){return w},set compressedSize(z){w=U(z)},get size(){return F},set size(z){F=U(z)},get fileNameLength(){return B},set fileNameLength(z){B=z},get extraLength(){return q},set extraLength(z){q=z},get extraLocalLength(){return M.extraLen},set extraLocalLength(z){M.extraLen=z},get commentLength(){return $},set commentLength(z){$=z},get diskNumStart(){return G},set diskNumStart(z){G=U(z)},get inAttr(){return W},set inAttr(z){W=U(z)},get attr(){return O},set attr(z){O=U(z)},get fileAttr(){return(O||0)>>16&4095},get offset(){return H},set offset(z){H=U(z)},get encrypted(){return(Y&s.FLG_ENC)===s.FLG_ENC},get centralHeaderSize(){return s.CENHDR+B+q+$},get realDataOffset(){return H+s.LOCHDR+M.fnameLen+M.extraLen},get localHeader(){return M},loadLocalHeaderFromBinary:function(z){var V=z.slice(H,H+s.LOCHDR);if(V.readUInt32LE(0)!==s.LOCSIG)throw T6.Errors.INVALID_LOC();M.version=V.readUInt16LE(s.LOCVER),M.flags=V.readUInt16LE(s.LOCFLG),M.method=V.readUInt16LE(s.LOCHOW),M.time=V.readUInt32LE(s.LOCTIM),M.crc=V.readUInt32LE(s.LOCCRC),M.compressedSize=V.readUInt32LE(s.LOCSIZ),M.size=V.readUInt32LE(s.LOCLEN),M.fnameLen=V.readUInt16LE(s.LOCNAM),M.extraLen=V.readUInt16LE(s.LOCEXT);let L=H+s.LOCHDR+M.fnameLen,C=L+M.extraLen;return z.slice(L,C)},loadFromBinary:function(z){if(z.length!==s.CENHDR||z.readUInt32LE(0)!==s.CENSIG)throw T6.Errors.INVALID_CEN();D=z.readUInt16LE(s.CENVEM),X=z.readUInt16LE(s.CENVER),Y=z.readUInt16LE(s.CENFLG),Z=z.readUInt16LE(s.CENHOW),J=z.readUInt32LE(s.CENTIM),Q=z.readUInt32LE(s.CENCRC),w=z.readUInt32LE(s.CENSIZ),F=z.readUInt32LE(s.CENLEN),B=z.readUInt16LE(s.CENNAM),q=z.readUInt16LE(s.CENEXT),$=z.readUInt16LE(s.CENCOM),G=z.readUInt16LE(s.CENDSK),W=z.readUInt16LE(s.CENATT),O=z.readUInt32LE(s.CENATX),H=z.readUInt32LE(s.CENOFF)},localHeaderToBinary:function(){var z=Buffer.alloc(s.LOCHDR);return z.writeUInt32LE(s.LOCSIG,0),z.writeUInt16LE(X,s.LOCVER),z.writeUInt16LE(Y,s.LOCFLG),z.writeUInt16LE(Z,s.LOCHOW),z.writeUInt32LE(J,s.LOCTIM),z.writeUInt32LE(Q,s.LOCCRC),z.writeUInt32LE(w,s.LOCSIZ),z.writeUInt32LE(F,s.LOCLEN),z.writeUInt16LE(B,s.LOCNAM),z.writeUInt16LE(M.extraLen,s.LOCEXT),z},centralHeaderToBinary:function(){var z=Buffer.alloc(s.CENHDR+B+q+$);return z.writeUInt32LE(s.CENSIG,0),z.writeUInt16LE(D,s.CENVEM),z.writeUInt16LE(X,s.CENVER),z.writeUInt16LE(Y,s.CENFLG),z.writeUInt16LE(Z,s.CENHOW),z.writeUInt32LE(J,s.CENTIM),z.writeUInt32LE(Q,s.CENCRC),z.writeUInt32LE(w,s.CENSIZ),z.writeUInt32LE(F,s.CENLEN),z.writeUInt16LE(B,s.CENNAM),z.writeUInt16LE(q,s.CENEXT),z.writeUInt16LE($,s.CENCOM),z.writeUInt16LE(G,s.CENDSK),z.writeUInt16LE(W,s.CENATT),z.writeUInt32LE(O,s.CENATX),z.writeUInt32LE(H,s.CENOFF),z},toJSON:function(){let z=function(V){return V+" bytes"};return{made:D,version:X,flags:Y,method:T6.methodToString(Z),time:this.time,crc:"0x"+Q.toString(16).toUpperCase(),compressedSize:z(w),size:z(F),fileNameLength:z(B),extraLength:z(q),commentLength:z($),diskNumStart:G,inAttr:W,attr:O,offset:H,centralHeaderSize:z(s.CENHDR+B+q+$)}},toString:function(){return JSON.stringify(this.toJSON(),null,"\t")}}}});var jH=T((rJ0,CH)=>{var u5=k5(),OD=u5.Constants;CH.exports=function(){var D=0,X=0,Y=0,Z=0,J=0;return{get diskEntries(){return D},set diskEntries(Q){D=X=Q},get totalEntries(){return X},set totalEntries(Q){X=D=Q},get size(){return Y},set size(Q){Y=Q},get offset(){return Z},set offset(Q){Z=Q},get commentLength(){return J},set commentLength(Q){J=Q},get mainHeaderSize(){return OD.ENDHDR+J},loadFromBinary:function(Q){if((Q.length!==OD.ENDHDR||Q.readUInt32LE(0)!==OD.ENDSIG)&&(Q.length<OD.ZIP64HDR||Q.readUInt32LE(0)!==OD.ZIP64SIG))throw u5.Errors.INVALID_END();if(Q.readUInt32LE(0)===OD.ENDSIG)D=Q.readUInt16LE(OD.ENDSUB),X=Q.readUInt16LE(OD.ENDTOT),Y=Q.readUInt32LE(OD.ENDSIZ),Z=Q.readUInt32LE(OD.ENDOFF),J=Q.readUInt16LE(OD.ENDCOM);else D=u5.readBigUInt64LE(Q,OD.ZIP64SUB),X=u5.readBigUInt64LE(Q,OD.ZIP64TOT),Y=u5.readBigUInt64LE(Q,OD.ZIP64SIZE),Z=u5.readBigUInt64LE(Q,OD.ZIP64OFF),J=0},toBinary:function(){var Q=Buffer.alloc(OD.ENDHDR+J);return Q.writeUInt32LE(OD.ENDSIG,0),Q.writeUInt32LE(0,4),Q.writeUInt16LE(D,OD.ENDSUB),Q.writeUInt16LE(X,OD.ENDTOT),Q.writeUInt32LE(Y,OD.ENDSIZ),Q.writeUInt32LE(Z,OD.ENDOFF),Q.writeUInt16LE(J,OD.ENDCOM),Q.fill(" ",OD.ENDHDR),Q},toJSON:function(){let Q=function(w,F){let B=w.toString(16).toUpperCase();while(B.length<F)B="0"+B;return"0x"+B};return{diskEntries:D,totalEntries:X,size:Y+" bytes",offset:Q(Z,4),commentLength:J}},toString:function(){return JSON.stringify(this.toJSON(),null,"\t")}}}});var Hw=T((Ww)=>{Ww.EntryHeader=EH();Ww.MainHeader=jH()});var IH=T((oJ0,TH)=>{TH.exports=function(D){var X=require("zlib"),Y={chunkSize:(parseInt(D.length/1024)+1)*1024};return{deflate:function(){return X.deflateRawSync(D,Y)},deflateAsync:function(Z){var J=X.createDeflateRaw(Y),Q=[],w=0;J.on("data",function(F){Q.push(F),w+=F.length}),J.on("end",function(){var F=Buffer.alloc(w),B=0;F.fill(0);for(var q=0;q<Q.length;q++){var $=Q[q];$.copy(F,B),B+=$.length}Z&&Z(F)}),J.end(D)}}}});var SH=T((eJ0,PH)=>{var bg=+(process.versions?process.versions.node:"").split(".")[0]||0;PH.exports=function(D,X){var Y=require("zlib");let Z=bg>=15&&X>0?{maxOutputLength:X}:{};return{inflate:function(){return Y.inflateRawSync(D,Z)},inflateAsync:function(J){var Q=Y.createInflateRaw(Z),w=[],F=0;Q.on("data",function(B){w.push(B),F+=B.length}),Q.on("end",function(){var B=Buffer.alloc(F),q=0;B.fill(0);for(var $=0;$<w.length;$++){var G=w[$];G.copy(B,q),q+=G.length}J&&J(B)}),Q.end(D)}}}});var uH=T((DQ0,kH)=>{var{randomFillSync:xH}=require("crypto"),gg=QY(),mg=new Uint32Array(256).map((D,X)=>{for(let Y=0;Y<8;Y++)if((X&1)!==0)X=X>>>1^3988292384;else X>>>=1;return X>>>0}),yH=(D,X)=>Math.imul(D,X)>>>0,fH=(D,X)=>{return mg[(D^X)&255]^D>>>8},I4=()=>{if(typeof xH==="function")return xH(Buffer.alloc(12));else return I4.node()};I4.node=()=>{let D=Buffer.alloc(12),X=D.length;for(let Y=0;Y<X;Y++)D[Y]=Math.random()*256&255;return D};var wY={genSalt:I4};function FY(D){let X=Buffer.isBuffer(D)?D:Buffer.from(D);this.keys=new Uint32Array([305419896,591751049,878082192]);for(let Y=0;Y<X.length;Y++)this.updateKeys(X[Y])}FY.prototype.updateKeys=function(D){let X=this.keys;return X[0]=fH(X[0],D),X[1]+=X[0]&255,X[1]=yH(X[1],134775813)+1,X[2]=fH(X[2],X[1]>>>24),D};FY.prototype.next=function(){let D=(this.keys[2]|2)>>>0;return yH(D,D^1)>>8&255};function dg(D){let X=new FY(D);return function(Y){let Z=Buffer.alloc(Y.length),J=0;for(let Q of Y)Z[J++]=X.updateKeys(Q^X.next());return Z}}function cg(D){let X=new FY(D);return function(Y,Z,J=0){if(!Z)Z=Buffer.alloc(Y.length);for(let Q of Y){let w=X.next();Z[J++]=Q^w,X.updateKeys(Q)}return Z}}function lg(D,X,Y){if(!D||!Buffer.isBuffer(D)||D.length<12)return Buffer.alloc(0);let Z=dg(Y),J=Z(D.slice(0,12)),Q=(X.flags&8)===8?X.timeHighByte:X.crc>>>24;if(J[11]!==Q)throw gg.WRONG_PASSWORD();return Z(D.slice(12))}function ng(D){if(Buffer.isBuffer(D)&&D.length>=12)wY.genSalt=function(){return D.slice(0,12)};else if(D==="node")wY.genSalt=I4.node;else wY.genSalt=I4}function ig(D,X,Y,Z=!1){if(D==null)D=Buffer.alloc(0);if(!Buffer.isBuffer(D))D=Buffer.from(D.toString());let J=cg(Y),Q=wY.genSalt();if(Q[11]=X.crc>>>24&255,Z)Q[10]=X.crc>>>16&255;let w=Buffer.alloc(D.length+12);return J(Q,w),J(D,w,12)}kH.exports={decrypt:lg,encrypt:ig,_salter:ng}});var hH=T((BY)=>{BY.Deflater=IH();BY.Inflater=SH();BY.ZipCrypto=uH()});var zw=T((YQ0,_H)=>{var v0=k5(),pg=Hw(),RD=v0.Constants,Kw=hH();_H.exports=function(D,X){var Y=new pg.EntryHeader,Z=Buffer.alloc(0),J=Buffer.alloc(0),Q=!1,w=null,F=Buffer.alloc(0),B=Buffer.alloc(0),q=!0;let $=D,G=typeof $.decoder==="object"?$.decoder:v0.decoder;q=G.hasOwnProperty("efs")?G.efs:!1;function W(){if(!X||!(X instanceof Uint8Array))return Buffer.alloc(0);return B=Y.loadLocalHeaderFromBinary(X),X.slice(Y.realDataOffset,Y.realDataOffset+Y.compressedSize)}function O(z){if(!Y.flags_desc){if(v0.crc32(z)!==Y.localHeader.crc)return!1}else{let V={},L=Y.realDataOffset+Y.compressedSize;if(X.readUInt32LE(L)==RD.LOCSIG||X.readUInt32LE(L)==RD.CENSIG)throw v0.Errors.DESCRIPTOR_NOT_EXIST();if(X.readUInt32LE(L)==RD.EXTSIG)V.crc=X.readUInt32LE(L+RD.EXTCRC),V.compressedSize=X.readUInt32LE(L+RD.EXTSIZ),V.size=X.readUInt32LE(L+RD.EXTLEN);else if(X.readUInt16LE(L+12)===19280)V.crc=X.readUInt32LE(L+RD.EXTCRC-4),V.compressedSize=X.readUInt32LE(L+RD.EXTSIZ-4),V.size=X.readUInt32LE(L+RD.EXTLEN-4);else throw v0.Errors.DESCRIPTOR_UNKNOWN();if(V.compressedSize!==Y.compressedSize||V.size!==Y.size||V.crc!==Y.crc)throw v0.Errors.DESCRIPTOR_FAULTY();if(v0.crc32(z)!==V.crc)return!1}return!0}function H(z,V,L){if(typeof V>"u"&&typeof z==="string")L=z,z=void 0;if(Q){if(z&&V)V(Buffer.alloc(0),v0.Errors.DIRECTORY_CONTENT_ERROR());return Buffer.alloc(0)}var C=W();if(C.length===0){if(z&&V)V(C);return C}if(Y.encrypted){if(typeof L!=="string"&&!Buffer.isBuffer(L))throw v0.Errors.INVALID_PASS_PARAM();C=Kw.ZipCrypto.decrypt(C,Y,L)}var y=Buffer.alloc(Y.size);switch(Y.method){case v0.Constants.STORED:if(C.copy(y),!O(y)){if(z&&V)V(y,v0.Errors.BAD_CRC());throw v0.Errors.BAD_CRC()}else{if(z&&V)V(y);return y}case v0.Constants.DEFLATED:var A=new Kw.Inflater(C,Y.size);if(!z){if(A.inflate(y).copy(y,0),!O(y))throw v0.Errors.BAD_CRC(`"${G.decode(Z)}"`);return y}else A.inflateAsync(function(k){if(k.copy(k,0),V)if(!O(k))V(k,v0.Errors.BAD_CRC());else V(k)});break;default:if(z&&V)V(Buffer.alloc(0),v0.Errors.UNKNOWN_METHOD());throw v0.Errors.UNKNOWN_METHOD()}}function M(z,V){if((!w||!w.length)&&Buffer.isBuffer(X)){if(z&&V)V(W());return W()}if(w.length&&!Q){var L;switch(Y.method){case v0.Constants.STORED:if(Y.compressedSize=Y.size,L=Buffer.alloc(w.length),w.copy(L),z&&V)V(L);return L;default:case v0.Constants.DEFLATED:var C=new Kw.Deflater(w);if(!z){var y=C.deflate();return Y.compressedSize=y.length,y}else C.deflateAsync(function(A){L=Buffer.alloc(A.length),Y.compressedSize=A.length,A.copy(L),V&&V(L)});C=null;break}}else if(z&&V)V(Buffer.alloc(0));else return Buffer.alloc(0)}function U(z,V){return(z.readUInt32LE(V+4)<<4)+z.readUInt32LE(V)}function N(z){try{var V=0,L,C,y;while(V+4<z.length)if(L=z.readUInt16LE(V),V+=2,C=z.readUInt16LE(V),V+=2,y=z.slice(V,V+C),V+=C,RD.ID_ZIP64===L)R(y)}catch(A){throw v0.Errors.EXTRA_FIELD_PARSE_ERROR()}}function R(z){var V,L,C,y;if(z.length>=RD.EF_ZIP64_SCOMP){if(V=U(z,RD.EF_ZIP64_SUNCOMP),Y.size===RD.EF_ZIP64_OR_32)Y.size=V}if(z.length>=RD.EF_ZIP64_RHO){if(L=U(z,RD.EF_ZIP64_SCOMP),Y.compressedSize===RD.EF_ZIP64_OR_32)Y.compressedSize=L}if(z.length>=RD.EF_ZIP64_DSN){if(C=U(z,RD.EF_ZIP64_RHO),Y.offset===RD.EF_ZIP64_OR_32)Y.offset=C}if(z.length>=RD.EF_ZIP64_DSN+4){if(y=z.readUInt32LE(RD.EF_ZIP64_DSN),Y.diskNumStart===RD.EF_ZIP64_OR_16)Y.diskNumStart=y}}return{get entryName(){return G.decode(Z)},get rawEntryName(){return Z},set entryName(z){Z=v0.toBuffer(z,G.encode);var V=Z[Z.length-1];Q=V===47||V===92,Y.fileNameLength=Z.length},get efs(){if(typeof q==="function")return q(this.entryName);else return q},get extra(){return F},set extra(z){F=z,Y.extraLength=z.length,N(z)},get comment(){return G.decode(J)},set comment(z){if(J=v0.toBuffer(z,G.encode),Y.commentLength=J.length,J.length>65535)throw v0.Errors.COMMENT_TOO_LONG()},get name(){var z=G.decode(Z);return Q?z.substr(z.length-1).split("/").pop():z.split("/").pop()},get isDirectory(){return Q},getCompressedData:function(){return M(!1,null)},getCompressedDataAsync:function(z){M(!0,z)},setData:function(z){if(w=v0.toBuffer(z,v0.decoder.encode),!Q&&w.length)Y.size=w.length,Y.method=v0.Constants.DEFLATED,Y.crc=v0.crc32(z),Y.changed=!0;else Y.method=v0.Constants.STORED},getData:function(z){if(Y.changed)return w;else return H(!1,null,z)},getDataAsync:function(z,V){if(Y.changed)z(w);else H(!0,z,V)},set attr(z){Y.attr=z},get attr(){return Y.attr},set header(z){Y.loadFromBinary(z)},get header(){return Y},packCentralHeader:function(){Y.flags_efs=this.efs,Y.extraLength=F.length;var z=Y.centralHeaderToBinary(),V=v0.Constants.CENHDR;return Z.copy(z,V),V+=Z.length,F.copy(z,V),V+=Y.extraLength,J.copy(z,V),z},packLocalHeader:function(){let z=0;Y.flags_efs=this.efs,Y.extraLocalLength=B.length;let V=Y.localHeaderToBinary(),L=Buffer.alloc(V.length+Z.length+Y.extraLocalLength);return V.copy(L,z),z+=V.length,Z.copy(L,z),z+=Z.length,B.copy(L,z),z+=B.length,L},toJSON:function(){let z=function(V){return"<"+(V&&V.length+" bytes buffer"||"null")+">"};return{entryName:this.entryName,name:this.name,comment:this.comment,isDirectory:this.isDirectory,header:Y.toJSON(),compressedData:z(X),data:z(w)}},toString:function(){return JSON.stringify(this.toJSON(),null,"\t")}}}});var gH=T((ZQ0,bH)=>{var vH=zw(),ag=Hw(),iD=k5();bH.exports=function(D,X){var Y=[],Z={},J=Buffer.alloc(0),Q=new ag.MainHeader,w=!1,F=null;let B=new Set,q=X,{noSort:$,decoder:G}=q;if(D)H(q.readEntries);else w=!0;function W(){let U=new Set;for(let N of Object.keys(Z)){let R=N.split("/");if(R.pop(),!R.length)continue;for(let z=0;z<R.length;z++){let V=R.slice(0,z+1).join("/")+"/";U.add(V)}}for(let N of U)if(!(N in Z)){let R=new vH(q);R.entryName=N,R.attr=16,R.temporary=!0,Y.push(R),Z[R.entryName]=R,B.add(R)}}function O(){if(w=!0,Z={},Q.diskEntries>(D.length-Q.offset)/iD.Constants.CENHDR)throw iD.Errors.DISK_ENTRY_TOO_LARGE();Y=Array(Q.diskEntries);var U=Q.offset;for(var N=0;N<Y.length;N++){var R=U,z=new vH(q,D);if(z.header=D.slice(R,R+=iD.Constants.CENHDR),z.entryName=D.slice(R,R+=z.header.fileNameLength),z.header.extraLength)z.extra=D.slice(R,R+=z.header.extraLength);if(z.header.commentLength)z.comment=D.slice(R,R+z.header.commentLength);U+=z.header.centralHeaderSize,Y[N]=z,Z[z.entryName]=z}B.clear(),W()}function H(U){var N=D.length-iD.Constants.ENDHDR,R=Math.max(0,N-65535),z=R,V=D.length,L=-1,C=0;if(typeof q.trailingSpace==="boolean"?q.trailingSpace:!1)R=0;for(N;N>=z;N--){if(D[N]!==80)continue;if(D.readUInt32LE(N)===iD.Constants.ENDSIG){L=N,C=N,V=N+iD.Constants.ENDHDR,z=N-iD.Constants.END64HDR;continue}if(D.readUInt32LE(N)===iD.Constants.END64SIG){z=R;continue}if(D.readUInt32LE(N)===iD.Constants.ZIP64SIG){L=N,V=N+iD.readBigUInt64LE(D,N+iD.Constants.ZIP64SIZE)+iD.Constants.ZIP64LEAD;break}}if(L==-1)throw iD.Errors.INVALID_FORMAT();if(Q.loadFromBinary(D.slice(L,V)),Q.commentLength)J=D.slice(C+iD.Constants.ENDHDR);if(U)O()}function M(){if(Y.length>1&&!$)Y.sort((U,N)=>U.entryName.toLowerCase().localeCompare(N.entryName.toLowerCase()))}return{get entries(){if(!w)O();return Y.filter((U)=>!B.has(U))},get comment(){return G.decode(J)},set comment(U){J=iD.toBuffer(U,G.encode),Q.commentLength=J.length},getEntryCount:function(){if(!w)return Q.diskEntries;return Y.length},forEach:function(U){this.entries.forEach(U)},getEntry:function(U){if(!w)O();return Z[U]||null},setEntry:function(U){if(!w)O();Y.push(U),Z[U.entryName]=U,Q.totalEntries=Y.length},deleteFile:function(U,N=!0){if(!w)O();let R=Z[U];this.getEntryChildren(R,N).map((V)=>V.entryName).forEach(this.deleteEntry)},deleteEntry:function(U){if(!w)O();let N=Z[U],R=Y.indexOf(N);if(R>=0)Y.splice(R,1),delete Z[U],Q.totalEntries=Y.length},getEntryChildren:function(U,N=!0){if(!w)O();if(typeof U==="object")if(U.isDirectory&&N){let R=[],z=U.entryName;for(let V of Y)if(V.entryName.startsWith(z))R.push(V);return R}else return[U];return[]},getChildCount:function(U){if(U&&U.isDirectory){let N=this.getEntryChildren(U);return N.includes(U)?N.length-1:N.length}return 0},compressToBuffer:function(){if(!w)O();M();let U=[],N=[],R=0,z=0;Q.size=0,Q.offset=0;let V=0;for(let y of this.entries){let A=y.getCompressedData();y.header.offset=z;let k=y.packLocalHeader(),f=k.length+A.length;z+=f,U.push(k),U.push(A);let S=y.packCentralHeader();N.push(S),Q.size+=S.length,R+=f+S.length,V++}R+=Q.mainHeaderSize,Q.offset=z,Q.totalEntries=V,z=0;let L=Buffer.alloc(R);for(let y of U)y.copy(L,z),z+=y.length;for(let y of N)y.copy(L,z),z+=y.length;let C=Q.toBinary();if(J)J.copy(C,iD.Constants.ENDHDR);return C.copy(L,z),D=L,w=!1,L},toAsyncBuffer:function(U,N,R,z){try{if(!w)O();M();let V=[],L=[],C=0,y=0,A=0;Q.size=0,Q.offset=0;let k=function(f){if(f.length>0){let S=f.shift(),v=S.entryName+S.extra.toString();if(R)R(v);S.getCompressedDataAsync(function(b){if(z)z(v);S.header.offset=y;let n=S.packLocalHeader(),h=n.length+b.length;y+=h,V.push(n),V.push(b);let E=S.packCentralHeader();L.push(E),Q.size+=E.length,C+=h+E.length,A++,k(f)})}else{C+=Q.mainHeaderSize,Q.offset=y,Q.totalEntries=A,y=0;let S=Buffer.alloc(C);V.forEach(function(b){b.copy(S,y),y+=b.length}),L.forEach(function(b){b.copy(S,y),y+=b.length});let v=Q.toBinary();if(J)J.copy(v,iD.Constants.ENDHDR);v.copy(S,y),D=S,w=!1,U(S)}};k(Array.from(this.entries))}catch(V){N(V)}}}}});var Mw=T((JQ0,dH)=>{var WD=k5(),AD=require("path"),tg=zw(),rg=gH(),K9=(...D)=>WD.findLast(D,(X)=>typeof X==="boolean"),mH=(...D)=>WD.findLast(D,(X)=>typeof X==="string"),sg=(...D)=>WD.findLast(D,(X)=>typeof X==="function"),og={noSort:!1,readEntries:!1,method:WD.Constants.NONE,fs:null};dH.exports=function(D,X){let Y=null,Z=Object.assign(Object.create(null),og);if(D&&typeof D==="object"){if(!(D instanceof Uint8Array)){if(Object.assign(Z,D),D=Z.input?Z.input:void 0,Z.input)delete Z.input}if(Buffer.isBuffer(D))Y=D,Z.method=WD.Constants.BUFFER,D=void 0}Object.assign(Z,X);let J=new WD(Z);if(typeof Z.decoder!=="object"||typeof Z.decoder.encode!=="function"||typeof Z.decoder.decode!=="function")Z.decoder=WD.decoder;if(D&&typeof D==="string")if(J.fs.existsSync(D))Z.method=WD.Constants.FILE,Z.filename=D,Y=J.fs.readFileSync(D);else throw WD.Errors.INVALID_FILENAME();let Q=new rg(Y,Z),{canonical:w,sanitize:F,zipnamefix:B}=WD;function q(O){if(O&&Q){var H;if(typeof O==="string")H=Q.getEntry(AD.posix.normalize(O));if(typeof O==="object"&&typeof O.entryName<"u"&&typeof O.header<"u")H=Q.getEntry(O.entryName);if(H)return H}return null}function $(O){let{join:H,normalize:M,sep:U}=AD.posix;return H(".",M(U+O.split("\\").join(U)+U))}function G(O){if(O instanceof RegExp)return function(H){return function(M){return H.test(M)}}(O);else if(typeof O!=="function")return()=>!0;return O}let W=(O,H)=>{let M=H.slice(-1);return M=M===J.sep?J.sep:"",AD.relative(O,H)+M};return{readFile:function(O,H){var M=q(O);return M&&M.getData(H)||null},childCount:function(O){let H=q(O);if(H)return Q.getChildCount(H)},readFileAsync:function(O,H){var M=q(O);if(M)M.getDataAsync(H);else H(null,"getEntry failed for:"+O)},readAsText:function(O,H){var M=q(O);if(M){var U=M.getData();if(U&&U.length)return U.toString(H||"utf8")}return""},readAsTextAsync:function(O,H,M){var U=q(O);if(U)U.getDataAsync(function(N,R){if(R){H(N,R);return}if(N&&N.length)H(N.toString(M||"utf8"));else H("")});else H("")},deleteFile:function(O,H=!0){var M=q(O);if(M)Q.deleteFile(M.entryName,H)},deleteEntry:function(O){var H=q(O);if(H)Q.deleteEntry(H.entryName)},addZipComment:function(O){Q.comment=O},getZipComment:function(){return Q.comment||""},addZipEntryComment:function(O,H){var M=q(O);if(M)M.comment=H},getZipEntryComment:function(O){var H=q(O);if(H)return H.comment||"";return""},updateFile:function(O,H){var M=q(O);if(M)M.setData(H)},addLocalFile:function(O,H,M,U){if(J.fs.existsSync(O)){H=H?$(H):"";let N=AD.win32.basename(AD.win32.normalize(O));H+=M?M:N;let R=J.fs.statSync(O),z=R.isFile()?J.fs.readFileSync(O):Buffer.alloc(0);if(R.isDirectory())H+=J.sep;this.addFile(H,z,U,R)}else throw WD.Errors.FILE_NOT_FOUND(O)},addLocalFileAsync:function(O,H){O=typeof O==="object"?O:{localPath:O};let M=AD.resolve(O.localPath),{comment:U}=O,{zipPath:N,zipName:R}=O,z=this;J.fs.stat(M,function(V,L){if(V)return H(V,!1);N=N?$(N):"";let C=AD.win32.basename(AD.win32.normalize(M));if(N+=R?R:C,L.isFile())J.fs.readFile(M,function(y,A){if(y)return H(y,!1);return z.addFile(N,A,U,L),setImmediate(H,void 0,!0)});else if(L.isDirectory())return N+=J.sep,z.addFile(N,Buffer.alloc(0),U,L),setImmediate(H,void 0,!0)})},addLocalFolder:function(O,H,M){if(M=G(M),H=H?$(H):"",O=AD.normalize(O),J.fs.existsSync(O)){let U=J.findFiles(O),N=this;if(U.length)for(let R of U){let z=AD.join(H,W(O,R));if(M(z))N.addLocalFile(R,AD.dirname(z))}}else throw WD.Errors.FILE_NOT_FOUND(O)},addLocalFolderAsync:function(O,H,M,U){U=G(U),M=M?$(M):"",O=AD.normalize(O);var N=this;J.fs.open(O,"r",function(R){if(R&&R.code==="ENOENT")H(void 0,WD.Errors.FILE_NOT_FOUND(O));else if(R)H(void 0,R);else{var z=J.findFiles(O),V=-1,L=function(){if(V+=1,V<z.length){var C=z[V],y=W(O,C).split("\\").join("/");if(y=y.normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^\x20-\x7E]/g,""),U(y))J.fs.stat(C,function(A,k){if(A)H(void 0,A);if(k.isFile())J.fs.readFile(C,function(f,S){if(f)H(void 0,f);else N.addFile(M+y,S,"",k),L()});else N.addFile(M+y+"/",Buffer.alloc(0),"",k),L()});else process.nextTick(()=>{L()})}else H(!0,void 0)};L()}})},addLocalFolderAsync2:function(O,H){let M=this;O=typeof O==="object"?O:{localPath:O},localPath=AD.resolve($(O.localPath));let{zipPath:U,filter:N,namefix:R}=O;if(N instanceof RegExp)N=function(L){return function(C){return L.test(C)}}(N);else if(typeof N!=="function")N=function(){return!0};if(U=U?$(U):"",R=="latin1")R=(L)=>L.normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^\x20-\x7E]/g,"");if(typeof R!=="function")R=(L)=>L;let z=(L)=>AD.join(U,R(W(localPath,L))),V=(L)=>AD.win32.basename(AD.win32.normalize(R(L)));J.fs.open(localPath,"r",function(L){if(L&&L.code==="ENOENT")H(void 0,WD.Errors.FILE_NOT_FOUND(localPath));else if(L)H(void 0,L);else J.findFilesAsync(localPath,function(C,y){if(C)return H(C);if(y=y.filter((A)=>N(z(A))),!y.length)H(void 0,!1);setImmediate(y.reverse().reduce(function(A,k){return function(f,S){if(f||S===!1)return setImmediate(A,f,!1);M.addLocalFileAsync({localPath:k,zipPath:AD.dirname(z(k)),zipName:V(k)},A)}},H))})})},addLocalFolderPromise:function(O,H){return new Promise((M,U)=>{this.addLocalFolderAsync2(Object.assign({localPath:O},H),(N,R)=>{if(N)U(N);if(R)M(this)})})},addFile:function(O,H,M,U){O=B(O);let N=q(O),R=N!=null;if(!R)N=new tg(Z),N.entryName=O;N.comment=M||"";let z=typeof U==="object"&&U instanceof J.fs.Stats;if(z)N.header.time=U.mtime;var V=N.isDirectory?16:0;let L=N.isDirectory?16384:32768;if(z)L|=4095&U.mode;else if(typeof U==="number")L|=4095&U;else L|=N.isDirectory?493:420;if(V=(V|L<<16)>>>0,N.attr=V,N.setData(H),!R)Q.setEntry(N);return N},getEntries:function(O){return Q.password=O,Q?Q.entries:[]},getEntry:function(O){return q(O)},getEntryCount:function(){return Q.getEntryCount()},forEach:function(O){return Q.forEach(O)},extractEntryTo:function(O,H,M,U,N,R){U=K9(!1,U),N=K9(!1,N),M=K9(!0,M),R=mH(N,R);var z=q(O);if(!z)throw WD.Errors.NO_ENTRY();var V=w(z.entryName),L=F(H,R&&!z.isDirectory?R:M?V:AD.basename(V));if(z.isDirectory){var C=Q.getEntryChildren(z);return C.forEach(function(k){if(k.isDirectory)return;var f=k.getData();if(!f)throw WD.Errors.CANT_EXTRACT_FILE();var S=w(k.entryName),v=F(H,M?S:AD.basename(S));let b=N?k.header.fileAttr:void 0;J.writeFileTo(v,f,U,b)}),!0}var y=z.getData(Q.password);if(!y)throw WD.Errors.CANT_EXTRACT_FILE();if(J.fs.existsSync(L)&&!U)throw WD.Errors.CANT_OVERRIDE();let A=N?O.header.fileAttr:void 0;return J.writeFileTo(L,y,U,A),!0},test:function(O){if(!Q)return!1;for(var H in Q.entries)try{if(H.isDirectory)continue;var M=Q.entries[H].getData(O);if(!M)return!1}catch(U){return!1}return!0},extractAllTo:function(O,H,M,U){if(M=K9(!1,M),U=mH(M,U),H=K9(!1,H),!Q)throw WD.Errors.NO_ZIP();Q.entries.forEach(function(N){var R=F(O,w(N.entryName));if(N.isDirectory){J.makeDir(R);return}var z=N.getData(U);if(!z)throw WD.Errors.CANT_EXTRACT_FILE();let V=M?N.header.fileAttr:void 0;J.writeFileTo(R,z,H,V);try{J.fs.utimesSync(R,N.header.time,N.header.time)}catch(L){throw WD.Errors.CANT_EXTRACT_FILE()}})},extractAllToAsync:function(O,H,M,U){if(U=sg(H,M,U),M=K9(!1,M),H=K9(!1,H),!U)return new Promise((L,C)=>{this.extractAllToAsync(O,H,M,function(y){if(y)C(y);else L(this)})});if(!Q){U(WD.Errors.NO_ZIP());return}O=AD.resolve(O);let N=(L)=>F(O,AD.normalize(w(L.entryName))),R=(L,C)=>Error(L+': "'+C+'"'),z=[],V=[];Q.entries.forEach((L)=>{if(L.isDirectory)z.push(L);else V.push(L)});for(let L of z){let C=N(L),y=M?L.header.fileAttr:void 0;try{if(J.makeDir(C),y)J.fs.chmodSync(C,y);J.fs.utimesSync(C,L.header.time,L.header.time)}catch(A){U(R("Unable to create folder",C))}}V.reverse().reduce(function(L,C){return function(y){if(y)L(y);else{let A=AD.normalize(w(C.entryName)),k=F(O,A);C.getDataAsync(function(f,S){if(S)L(S);else if(!f)L(WD.Errors.CANT_EXTRACT_FILE());else{let v=M?C.header.fileAttr:void 0;J.writeFileToAsync(k,f,H,v,function(b){if(!b)L(R("Unable to write file",k));J.fs.utimes(k,C.header.time,C.header.time,function(n){if(n)L(R("Unable to set times",k));else L()})})}})}}},U)()},writeZip:function(O,H){if(arguments.length===1){if(typeof O==="function")H=O,O=""}if(!O&&Z.filename)O=Z.filename;if(!O)return;var M=Q.compressToBuffer();if(M){var U=J.writeFileTo(O,M,!0);if(typeof H==="function")H(!U?Error("failed"):null,"")}},writeZipPromise:function(O,H){let{overwrite:M,perm:U}=Object.assign({overwrite:!0},H);return new Promise((N,R)=>{if(!O&&Z.filename)O=Z.filename;if(!O)R("ADM-ZIP: ZIP File Name Missing");this.toBufferPromise().then((z)=>{let V=(L)=>L?N(L):R("ADM-ZIP: Wasn't able to write zip file");J.writeFileToAsync(O,z,M,U,V)},R)})},toBufferPromise:function(){return new Promise((O,H)=>{Q.toAsyncBuffer(O,H)})},toBuffer:function(O,H,M,U){if(typeof O==="function")return Q.toAsyncBuffer(O,H,M,U),null;return Q.compressToBuffer()}}}});var iH=T((QQ0,nH)=>{var lH={};nH.exports=lH;var cH={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],grey:[90,39],brightRed:[91,39],brightGreen:[92,39],brightYellow:[93,39],brightBlue:[94,39],brightMagenta:[95,39],brightCyan:[96,39],brightWhite:[97,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgGray:[100,49],bgGrey:[100,49],bgBrightRed:[101,49],bgBrightGreen:[102,49],bgBrightYellow:[103,49],bgBrightBlue:[104,49],bgBrightMagenta:[105,49],bgBrightCyan:[106,49],bgBrightWhite:[107,49],blackBG:[40,49],redBG:[41,49],greenBG:[42,49],yellowBG:[43,49],blueBG:[44,49],magentaBG:[45,49],cyanBG:[46,49],whiteBG:[47,49]};Object.keys(cH).forEach(function(D){var X=cH[D],Y=lH[D]=[];Y.open="\x1B["+X[0]+"m",Y.close="\x1B["+X[1]+"m"})});var aH=T((wQ0,pH)=>{pH.exports=function(D,X){X=X||process.argv;var Y=X.indexOf("--"),Z=/^-{1,2}/.test(D)?"":"--",J=X.indexOf(Z+D);return J!==-1&&(Y===-1?!0:J<Y)}});var rH=T((FQ0,tH)=>{var eg=require("os"),$8=aH(),B1=process.env,h5=void 0;if($8("no-color")||$8("no-colors")||$8("color=false"))h5=!1;else if($8("color")||$8("colors")||$8("color=true")||$8("color=always"))h5=!0;if("FORCE_COLOR"in B1)h5=B1.FORCE_COLOR.length===0||parseInt(B1.FORCE_COLOR,10)!==0;function Dm(D){if(D===0)return!1;return{level:D,hasBasic:!0,has256:D>=2,has16m:D>=3}}function Xm(D){if(h5===!1)return 0;if($8("color=16m")||$8("color=full")||$8("color=truecolor"))return 3;if($8("color=256"))return 2;if(D&&!D.isTTY&&h5!==!0)return 0;var X=h5?1:0;if(process.platform==="win32"){var Y=eg.release().split(".");if(Number(process.versions.node.split(".")[0])>=8&&Number(Y[0])>=10&&Number(Y[2])>=10586)return Number(Y[2])>=14931?3:2;return 1}if("CI"in B1){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(function(J){return J in B1})||B1.CI_NAME==="codeship")return 1;return X}if("TEAMCITY_VERSION"in B1)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(B1.TEAMCITY_VERSION)?1:0;if("TERM_PROGRAM"in B1){var Z=parseInt((B1.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(B1.TERM_PROGRAM){case"iTerm.app":return Z>=3?3:2;case"Hyper":return 3;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(B1.TERM))return 2;if(/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(B1.TERM))return 1;if("COLORTERM"in B1)return 1;if(B1.TERM==="dumb")return X;return X}function Lw(D){var X=Xm(D);return Dm(X)}tH.exports={supportsColor:Lw,stdout:Lw(process.stdout),stderr:Lw(process.stderr)}});var oH=T((BQ0,sH)=>{sH.exports=function(X,Y){var Z="";X=X||"Run the trap, drop the bass",X=X.split("");var J={a:["@","Ą","Ⱥ","Ʌ","Δ","Λ","Д"],b:["ß","Ɓ","Ƀ","ɮ","β","฿"],c:["©","Ȼ","Ͼ"],d:["Ð","Ɗ","Ԁ","ԁ","Ԃ","ԃ"],e:["Ë","ĕ","Ǝ","ɘ","Σ","ξ","Ҽ","੬"],f:["Ӻ"],g:["ɢ"],h:["Ħ","ƕ","Ң","Һ","Ӈ","Ԋ"],i:["༏"],j:["Ĵ"],k:["ĸ","Ҡ","Ӄ","Ԟ"],l:["Ĺ"],m:["ʍ","Ӎ","ӎ","Ԡ","ԡ","൩"],n:["Ñ","ŋ","Ɲ","Ͷ","Π","Ҋ"],o:["Ø","õ","ø","Ǿ","ʘ","Ѻ","ם","۝","๏"],p:["Ƿ","Ҏ"],q:["্"],r:["®","Ʀ","Ȑ","Ɍ","ʀ","Я"],s:["§","Ϟ","ϟ","Ϩ"],t:["Ł","Ŧ","ͳ"],u:["Ʊ","Ս"],v:["ט"],w:["Ш","Ѡ","Ѽ","൰"],x:["Ҳ","Ӿ","Ӽ","ӽ"],y:["¥","Ұ","Ӌ"],z:["Ƶ","ɀ"]};return X.forEach(function(Q){Q=Q.toLowerCase();var w=J[Q]||[" "],F=Math.floor(Math.random()*w.length);if(typeof J[Q]<"u")Z+=J[Q][F];else Z+=Q}),Z}});var DK=T((qQ0,eH)=>{eH.exports=function(X,Y){X=X||" he is here ";var Z={up:["̍","̎","̄","̅","̿","̑","̆","̐","͒","͗","͑","̇","̈","̊","͂","̓","̈","͊","͋","͌","̃","̂","̌","͐","̀","́","̋","̏","̒","̓","̔","̽","̉","ͣ","ͤ","ͥ","ͦ","ͧ","ͨ","ͩ","ͪ","ͫ","ͬ","ͭ","ͮ","ͯ","̾","͛","͆","̚"],down:["̖","̗","̘","̙","̜","̝","̞","̟","̠","̤","̥","̦","̩","̪","̫","̬","̭","̮","̯","̰","̱","̲","̳","̹","̺","̻","̼","ͅ","͇","͈","͉","͍","͎","͓","͔","͕","͖","͙","͚","̣"],mid:["̕","̛","̀","́","͘","̡","̢","̧","̨","̴","̵","̶","͜","͝","͞","͟","͠","͢","̸","̷","͡"," ҉"]},J=[].concat(Z.up,Z.down,Z.mid);function Q(B){var q=Math.floor(Math.random()*B);return q}function w(B){var q=!1;return J.filter(function($){q=$===B}),q}function F(B,q){var $="",G,W;q=q||{},q.up=typeof q.up<"u"?q.up:!0,q.mid=typeof q.mid<"u"?q.mid:!0,q.down=typeof q.down<"u"?q.down:!0,q.size=typeof q.size<"u"?q.size:"maxi",B=B.split("");for(W in B){if(w(W))continue;switch($=$+B[W],G={up:0,down:0,mid:0},q.size){case"mini":G.up=Q(8),G.mid=Q(2),G.down=Q(8);break;case"maxi":G.up=Q(16)+3,G.mid=Q(4)+1,G.down=Q(64)+3;break;default:G.up=Q(8)+1,G.mid=Q(6)/2,G.down=Q(8)+1;break}var O=["up","mid","down"];for(var H in O){var M=O[H];for(var U=0;U<=G[M];U++)if(q[M])$=$+Z[M][Q(Z[M].length)]}}return $}return F(X,Y)}});var YK=T(($Q0,XK)=>{XK.exports=function(D){return function(X,Y,Z){if(X===" ")return X;switch(Y%3){case 0:return D.red(X);case 1:return D.white(X);case 2:return D.blue(X)}}}});var JK=T((GQ0,ZK)=>{ZK.exports=function(D){return function(X,Y,Z){return Y%2===0?X:D.inverse(X)}}});var wK=T((OQ0,QK)=>{QK.exports=function(D){var X=["red","yellow","green","blue","magenta"];return function(Y,Z,J){if(Y===" ")return Y;else return D[X[Z++%X.length]](Y)}}});var BK=T((WQ0,FK)=>{FK.exports=function(D){var X=["underline","inverse","grey","yellow","red","green","blue","white","cyan","magenta","brightYellow","brightRed","brightGreen","brightBlue","brightWhite","brightCyan","brightMagenta"];return function(Y,Z,J){return Y===" "?Y:D[X[Math.round(Math.random()*(X.length-2))]](Y)}}});var WK=T((KQ0,OK)=>{var E0={};OK.exports=E0;E0.themes={};var Ym=require("util"),z9=E0.styles=iH(),qK=Object.defineProperties,Zm=new RegExp(/[\r\n]+/g);E0.supportsColor=rH().supportsColor;if(typeof E0.enabled>"u")E0.enabled=E0.supportsColor()!==!1;E0.enable=function(){E0.enabled=!0};E0.disable=function(){E0.enabled=!1};E0.stripColors=E0.strip=function(D){return(""+D).replace(/\x1B\[\d+m/g,"")};var HQ0=E0.stylize=function(X,Y){if(!E0.enabled)return X+"";var Z=z9[Y];if(!Z&&Y in E0)return E0[Y](X);return Z.open+X+Z.close},Jm=/[|\\{}()[\]^$+*?.]/g,Qm=function(D){if(typeof D!=="string")throw TypeError("Expected a string");return D.replace(Jm,"\\$&")};function $K(D){var X=function Y(){return Fm.apply(Y,arguments)};return X._styles=D,X.__proto__=wm,X}var GK=function(){var D={};return z9.grey=z9.gray,Object.keys(z9).forEach(function(X){z9[X].closeRe=new RegExp(Qm(z9[X].close),"g"),D[X]={get:function(){return $K(this._styles.concat(X))}}}),D}(),wm=qK(function(){},GK);function Fm(){var D=Array.prototype.slice.call(arguments),X=D.map(function(w){if(w!=null&&w.constructor===String)return w;else return Ym.inspect(w)}).join(" ");if(!E0.enabled||!X)return X;var Y=X.indexOf(`
40
+ `);let L=await z.signMessage(new TextEncoder().encode(O),"utf8");if(!L||!(L instanceof Uint8Array))throw Error("@supabase/auth-js: Wallet signMessage() API returned an recognized value");H=L}}try{let{data:M,error:U}=await(0,O0._request)(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"solana",message:O,signature:(0,ZH.bytesToBase64URL)(H)},((G=D.options)===null||G===void 0?void 0:G.captchaToken)?{gotrue_meta_security:{captcha_token:(W=D.options)===null||W===void 0?void 0:W.captchaToken}}:null),xform:O0._sessionResponse});if(U)throw U;if(!M||!M.session||!M.user){let N=new r.AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:N})}if(M.session)await this._saveSession(M.session),await this._notifyAllSubscribers("SIGNED_IN",M.session);return this._returnResult({data:Object.assign({},M),error:U})}catch(M){if((0,r.isAuthError)(M))return this._returnResult({data:{user:null,session:null},error:M});throw M}}async _exchangeCodeForSession(D){let X=await(0,e.getItemAsync)(this.storage,`${this.storageKey}-code-verifier`),[Y,Z]=(X!==null&&X!==void 0?X:"").split("/");try{if(!Y&&this.flowType==="pkce")throw new r.AuthPKCECodeVerifierMissingError;let{data:J,error:Q}=await(0,O0._request)(this.fetch,"POST",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:D,code_verifier:Y},xform:O0._sessionResponse});if(await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`),Q)throw Q;if(!J||!J.session||!J.user){let w=new r.AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null,redirectType:null},error:w})}if(J.session)await this._saveSession(J.session),await this._notifyAllSubscribers("SIGNED_IN",J.session);return this._returnResult({data:Object.assign(Object.assign({},J),{redirectType:Z!==null&&Z!==void 0?Z:null}),error:Q})}catch(J){if(await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`),(0,r.isAuthError)(J))return this._returnResult({data:{user:null,session:null,redirectType:null},error:J});throw J}}async signInWithIdToken(D){try{let{options:X,provider:Y,token:Z,access_token:J,nonce:Q}=D,w=await(0,O0._request)(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:Y,id_token:Z,access_token:J,nonce:Q,gotrue_meta_security:{captcha_token:X===null||X===void 0?void 0:X.captchaToken}},xform:O0._sessionResponse}),{data:F,error:B}=w;if(B)return this._returnResult({data:{user:null,session:null},error:B});else if(!F||!F.session||!F.user){let q=new r.AuthInvalidTokenResponseError;return this._returnResult({data:{user:null,session:null},error:q})}if(F.session)await this._saveSession(F.session),await this._notifyAllSubscribers("SIGNED_IN",F.session);return this._returnResult({data:F,error:B})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:{user:null,session:null},error:X});throw X}}async signInWithOtp(D){var X,Y,Z,J,Q;try{if("email"in D){let{email:w,options:F}=D,B=null,q=null;if(this.flowType==="pkce")[B,q]=await(0,e.getCodeChallengeAndMethod)(this.storage,this.storageKey);let{error:$}=await(0,O0._request)(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{email:w,data:(X=F===null||F===void 0?void 0:F.data)!==null&&X!==void 0?X:{},create_user:(Y=F===null||F===void 0?void 0:F.shouldCreateUser)!==null&&Y!==void 0?Y:!0,gotrue_meta_security:{captcha_token:F===null||F===void 0?void 0:F.captchaToken},code_challenge:B,code_challenge_method:q},redirectTo:F===null||F===void 0?void 0:F.emailRedirectTo});return this._returnResult({data:{user:null,session:null},error:$})}if("phone"in D){let{phone:w,options:F}=D,{data:B,error:q}=await(0,O0._request)(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{phone:w,data:(Z=F===null||F===void 0?void 0:F.data)!==null&&Z!==void 0?Z:{},create_user:(J=F===null||F===void 0?void 0:F.shouldCreateUser)!==null&&J!==void 0?J:!0,gotrue_meta_security:{captcha_token:F===null||F===void 0?void 0:F.captchaToken},channel:(Q=F===null||F===void 0?void 0:F.channel)!==null&&Q!==void 0?Q:"sms"}});return this._returnResult({data:{user:null,session:null,messageId:B===null||B===void 0?void 0:B.message_id},error:q})}throw new r.AuthInvalidCredentialsError("You must provide either an email or phone number.")}catch(w){if(await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`),(0,r.isAuthError)(w))return this._returnResult({data:{user:null,session:null},error:w});throw w}}async verifyOtp(D){var X,Y;try{let Z=void 0,J=void 0;if("options"in D)Z=(X=D.options)===null||X===void 0?void 0:X.redirectTo,J=(Y=D.options)===null||Y===void 0?void 0:Y.captchaToken;let{data:Q,error:w}=await(0,O0._request)(this.fetch,"POST",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},D),{gotrue_meta_security:{captcha_token:J}}),redirectTo:Z,xform:O0._sessionResponse});if(w)throw w;if(!Q)throw Error("An error occurred on token verification.");let{session:F,user:B}=Q;if(F===null||F===void 0?void 0:F.access_token)await this._saveSession(F),await this._notifyAllSubscribers(D.type=="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",F);return this._returnResult({data:{user:B,session:F},error:null})}catch(Z){if((0,r.isAuthError)(Z))return this._returnResult({data:{user:null,session:null},error:Z});throw Z}}async signInWithSSO(D){var X,Y,Z,J,Q;try{let w=null,F=null;if(this.flowType==="pkce")[w,F]=await(0,e.getCodeChallengeAndMethod)(this.storage,this.storageKey);let B=await(0,O0._request)(this.fetch,"POST",`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},"providerId"in D?{provider_id:D.providerId}:null),"domain"in D?{domain:D.domain}:null),{redirect_to:(Y=(X=D.options)===null||X===void 0?void 0:X.redirectTo)!==null&&Y!==void 0?Y:void 0}),((Z=D===null||D===void 0?void 0:D.options)===null||Z===void 0?void 0:Z.captchaToken)?{gotrue_meta_security:{captcha_token:D.options.captchaToken}}:null),{skip_http_redirect:!0,code_challenge:w,code_challenge_method:F}),headers:this.headers,xform:O0._ssoResponse});if(((J=B.data)===null||J===void 0?void 0:J.url)&&(0,e.isBrowser)()&&!((Q=D.options)===null||Q===void 0?void 0:Q.skipBrowserRedirect))window.location.assign(B.data.url);return this._returnResult(B)}catch(w){if(await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`),(0,r.isAuthError)(w))return this._returnResult({data:null,error:w});throw w}}async reauthenticate(){return await this.initializePromise,await this._acquireLock(-1,async()=>{return await this._reauthenticate()})}async _reauthenticate(){try{return await this._useSession(async(D)=>{let{data:{session:X},error:Y}=D;if(Y)throw Y;if(!X)throw new r.AuthSessionMissingError;let{error:Z}=await(0,O0._request)(this.fetch,"GET",`${this.url}/reauthenticate`,{headers:this.headers,jwt:X.access_token});return this._returnResult({data:{user:null,session:null},error:Z})})}catch(D){if((0,r.isAuthError)(D))return this._returnResult({data:{user:null,session:null},error:D});throw D}}async resend(D){try{let X=`${this.url}/resend`;if("email"in D){let{email:Y,type:Z,options:J}=D,{error:Q}=await(0,O0._request)(this.fetch,"POST",X,{headers:this.headers,body:{email:Y,type:Z,gotrue_meta_security:{captcha_token:J===null||J===void 0?void 0:J.captchaToken}},redirectTo:J===null||J===void 0?void 0:J.emailRedirectTo});return this._returnResult({data:{user:null,session:null},error:Q})}else if("phone"in D){let{phone:Y,type:Z,options:J}=D,{data:Q,error:w}=await(0,O0._request)(this.fetch,"POST",X,{headers:this.headers,body:{phone:Y,type:Z,gotrue_meta_security:{captcha_token:J===null||J===void 0?void 0:J.captchaToken}}});return this._returnResult({data:{user:null,session:null,messageId:Q===null||Q===void 0?void 0:Q.message_id},error:w})}throw new r.AuthInvalidCredentialsError("You must provide either an email or phone number and a type")}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:{user:null,session:null},error:X});throw X}}async getSession(){return await this.initializePromise,await this._acquireLock(-1,async()=>{return this._useSession(async(X)=>{return X})})}async _acquireLock(D,X){this._debug("#_acquireLock","begin",D);try{if(this.lockAcquired){let Y=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve(),Z=(async()=>{return await Y,await X()})();return this.pendingInLock.push((async()=>{try{await Z}catch(J){}})()),Z}return await this.lock(`lock:${this.storageKey}`,D,async()=>{this._debug("#_acquireLock","lock acquired for storage key",this.storageKey);try{this.lockAcquired=!0;let Y=X();this.pendingInLock.push((async()=>{try{await Y}catch(Z){}})()),await Y;while(this.pendingInLock.length){let Z=[...this.pendingInLock];await Promise.all(Z),this.pendingInLock.splice(0,Z.length)}return await Y}finally{this._debug("#_acquireLock","lock released for storage key",this.storageKey),this.lockAcquired=!1}})}finally{this._debug("#_acquireLock","end")}}async _useSession(D){this._debug("#_useSession","begin");try{let X=await this.__loadSession();return await D(X)}finally{this._debug("#_useSession","end")}}async __loadSession(){if(this._debug("#__loadSession()","begin"),!this.lockAcquired)this._debug("#__loadSession()","used outside of an acquired lock!",Error().stack);try{let D=null,X=await(0,e.getItemAsync)(this.storage,this.storageKey);if(this._debug("#getSession()","session from storage",X),X!==null)if(this._isValidSession(X))D=X;else this._debug("#getSession()","session from storage is not valid"),await this._removeSession();if(!D)return{data:{session:null},error:null};let Y=D.expires_at?D.expires_at*1000-Date.now()<C1.EXPIRY_MARGIN_MS:!1;if(this._debug("#__loadSession()",`session has${Y?"":" not"} expired`,"expires_at",D.expires_at),!Y){if(this.userStorage){let Q=await(0,e.getItemAsync)(this.userStorage,this.storageKey+"-user");if(Q===null||Q===void 0?void 0:Q.user)D.user=Q.user;else D.user=(0,e.userNotAvailableProxy)()}if(this.storage.isServer&&D.user&&!D.user.__isUserNotAvailableProxy){let Q={value:this.suppressGetSessionWarning};if(D.user=(0,e.insecureUserWarningProxy)(D.user,Q),Q.value)this.suppressGetSessionWarning=!0}return{data:{session:D},error:null}}let{data:Z,error:J}=await this._callRefreshToken(D.refresh_token);if(J)return this._returnResult({data:{session:null},error:J});return this._returnResult({data:{session:Z},error:null})}finally{this._debug("#__loadSession()","end")}}async getUser(D){if(D)return await this._getUser(D);await this.initializePromise;let X=await this._acquireLock(-1,async()=>{return await this._getUser()});if(X.data.user)this.suppressGetSessionWarning=!0;return X}async _getUser(D){try{if(D)return await(0,O0._request)(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:D,xform:O0._userResponse});return await this._useSession(async(X)=>{var Y,Z,J;let{data:Q,error:w}=X;if(w)throw w;if(!((Y=Q.session)===null||Y===void 0?void 0:Y.access_token)&&!this.hasCustomAuthorizationHeader)return{data:{user:null},error:new r.AuthSessionMissingError};return await(0,O0._request)(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:(J=(Z=Q.session)===null||Z===void 0?void 0:Z.access_token)!==null&&J!==void 0?J:void 0,xform:O0._userResponse})})}catch(X){if((0,r.isAuthError)(X)){if((0,r.isAuthSessionMissingError)(X))await this._removeSession(),await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`);return this._returnResult({data:{user:null},error:X})}throw X}}async updateUser(D,X={}){return await this.initializePromise,await this._acquireLock(-1,async()=>{return await this._updateUser(D,X)})}async _updateUser(D,X={}){try{return await this._useSession(async(Y)=>{let{data:Z,error:J}=Y;if(J)throw J;if(!Z.session)throw new r.AuthSessionMissingError;let Q=Z.session,w=null,F=null;if(this.flowType==="pkce"&&D.email!=null)[w,F]=await(0,e.getCodeChallengeAndMethod)(this.storage,this.storageKey);let{data:B,error:q}=await(0,O0._request)(this.fetch,"PUT",`${this.url}/user`,{headers:this.headers,redirectTo:X===null||X===void 0?void 0:X.emailRedirectTo,body:Object.assign(Object.assign({},D),{code_challenge:w,code_challenge_method:F}),jwt:Q.access_token,xform:O0._userResponse});if(q)throw q;return Q.user=B.user,await this._saveSession(Q),await this._notifyAllSubscribers("USER_UPDATED",Q),this._returnResult({data:{user:Q.user},error:null})})}catch(Y){if(await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`),(0,r.isAuthError)(Y))return this._returnResult({data:{user:null},error:Y});throw Y}}async setSession(D){return await this.initializePromise,await this._acquireLock(-1,async()=>{return await this._setSession(D)})}async _setSession(D){try{if(!D.access_token||!D.refresh_token)throw new r.AuthSessionMissingError;let X=Date.now()/1000,Y=X,Z=!0,J=null,{payload:Q}=(0,e.decodeJWT)(D.access_token);if(Q.exp)Y=Q.exp,Z=Y<=X;if(Z){let{data:w,error:F}=await this._callRefreshToken(D.refresh_token);if(F)return this._returnResult({data:{user:null,session:null},error:F});if(!w)return{data:{user:null,session:null},error:null};J=w}else{let{data:w,error:F}=await this._getUser(D.access_token);if(F)throw F;J={access_token:D.access_token,refresh_token:D.refresh_token,user:w.user,token_type:"bearer",expires_in:Y-X,expires_at:Y},await this._saveSession(J),await this._notifyAllSubscribers("SIGNED_IN",J)}return this._returnResult({data:{user:J.user,session:J},error:null})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:{session:null,user:null},error:X});throw X}}async refreshSession(D){return await this.initializePromise,await this._acquireLock(-1,async()=>{return await this._refreshSession(D)})}async _refreshSession(D){try{return await this._useSession(async(X)=>{var Y;if(!D){let{data:Q,error:w}=X;if(w)throw w;D=(Y=Q.session)!==null&&Y!==void 0?Y:void 0}if(!(D===null||D===void 0?void 0:D.refresh_token))throw new r.AuthSessionMissingError;let{data:Z,error:J}=await this._callRefreshToken(D.refresh_token);if(J)return this._returnResult({data:{user:null,session:null},error:J});if(!Z)return this._returnResult({data:{user:null,session:null},error:null});return this._returnResult({data:{user:Z.user,session:Z},error:null})})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:{user:null,session:null},error:X});throw X}}async _getSessionFromURL(D,X){try{if(!(0,e.isBrowser)())throw new r.AuthImplicitGrantRedirectError("No browser detected.");if(D.error||D.error_description||D.error_code)throw new r.AuthImplicitGrantRedirectError(D.error_description||"Error in URL with unspecified error_description",{error:D.error||"unspecified_error",code:D.error_code||"unspecified_code"});switch(X){case"implicit":if(this.flowType==="pkce")throw new r.AuthPKCEGrantCodeExchangeError("Not a valid PKCE flow url.");break;case"pkce":if(this.flowType==="implicit")throw new r.AuthImplicitGrantRedirectError("Not a valid implicit grant flow url.");break;default:}if(X==="pkce"){if(this._debug("#_initialize()","begin","is PKCE flow",!0),!D.code)throw new r.AuthPKCEGrantCodeExchangeError("No code detected.");let{data:N,error:R}=await this._exchangeCodeForSession(D.code);if(R)throw R;let z=new URL(window.location.href);return z.searchParams.delete("code"),window.history.replaceState(window.history.state,"",z.toString()),{data:{session:N.session,redirectType:null},error:null}}let{provider_token:Y,provider_refresh_token:Z,access_token:J,refresh_token:Q,expires_in:w,expires_at:F,token_type:B}=D;if(!J||!w||!Q||!B)throw new r.AuthImplicitGrantRedirectError("No session defined in URL");let q=Math.round(Date.now()/1000),$=parseInt(w),G=q+$;if(F)G=parseInt(F);let W=G-q;if(W*1000<=C1.AUTO_REFRESH_TICK_DURATION_MS)console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${W}s, should have been closer to ${$}s`);let O=G-$;if(q-O>=120)console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale",O,G,q);else if(q-O<0)console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew",O,G,q);let{data:H,error:M}=await this._getUser(J);if(M)throw M;let U={provider_token:Y,provider_refresh_token:Z,access_token:J,expires_in:$,expires_at:G,refresh_token:Q,token_type:B,user:H.user};return window.location.hash="",this._debug("#_getSessionFromURL()","clearing window.location.hash"),this._returnResult({data:{session:U,redirectType:D.type},error:null})}catch(Y){if((0,r.isAuthError)(Y))return this._returnResult({data:{session:null,redirectType:null},error:Y});throw Y}}_isImplicitGrantCallback(D){if(typeof this.detectSessionInUrl==="function")return this.detectSessionInUrl(new URL(window.location.href),D);return Boolean(D.access_token||D.error_description)}async _isPKCECallback(D){let X=await(0,e.getItemAsync)(this.storage,`${this.storageKey}-code-verifier`);return!!(D.code&&X)}async signOut(D={scope:"global"}){return await this.initializePromise,await this._acquireLock(-1,async()=>{return await this._signOut(D)})}async _signOut({scope:D}={scope:"global"}){return await this._useSession(async(X)=>{var Y;let{data:Z,error:J}=X;if(J)return this._returnResult({error:J});let Q=(Y=Z.session)===null||Y===void 0?void 0:Y.access_token;if(Q){let{error:w}=await this.admin.signOut(Q,D);if(w){if(!((0,r.isAuthApiError)(w)&&(w.status===404||w.status===401||w.status===403)))return this._returnResult({error:w})}}if(D!=="others")await this._removeSession(),await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`);return this._returnResult({error:null})})}onAuthStateChange(D){let X=(0,e.generateCallbackId)(),Y={id:X,callback:D,unsubscribe:()=>{this._debug("#unsubscribe()","state change callback with id removed",X),this.stateChangeEmitters.delete(X)}};return this._debug("#onAuthStateChange()","registered callback with id",X),this.stateChangeEmitters.set(X,Y),(async()=>{await this.initializePromise,await this._acquireLock(-1,async()=>{this._emitInitialSession(X)})})(),{data:{subscription:Y}}}async _emitInitialSession(D){return await this._useSession(async(X)=>{var Y,Z;try{let{data:{session:J},error:Q}=X;if(Q)throw Q;await((Y=this.stateChangeEmitters.get(D))===null||Y===void 0?void 0:Y.callback("INITIAL_SESSION",J)),this._debug("INITIAL_SESSION","callback id",D,"session",J)}catch(J){await((Z=this.stateChangeEmitters.get(D))===null||Z===void 0?void 0:Z.callback("INITIAL_SESSION",null)),this._debug("INITIAL_SESSION","callback id",D,"error",J),console.error(J)}})}async resetPasswordForEmail(D,X={}){let Y=null,Z=null;if(this.flowType==="pkce")[Y,Z]=await(0,e.getCodeChallengeAndMethod)(this.storage,this.storageKey,!0);try{return await(0,O0._request)(this.fetch,"POST",`${this.url}/recover`,{body:{email:D,code_challenge:Y,code_challenge_method:Z,gotrue_meta_security:{captcha_token:X.captchaToken}},headers:this.headers,redirectTo:X.redirectTo})}catch(J){if(await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`),(0,r.isAuthError)(J))return this._returnResult({data:null,error:J});throw J}}async getUserIdentities(){var D;try{let{data:X,error:Y}=await this.getUser();if(Y)throw Y;return this._returnResult({data:{identities:(D=X.user.identities)!==null&&D!==void 0?D:[]},error:null})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:null,error:X});throw X}}async linkIdentity(D){if("token"in D)return this.linkIdentityIdToken(D);return this.linkIdentityOAuth(D)}async linkIdentityOAuth(D){var X;try{let{data:Y,error:Z}=await this._useSession(async(J)=>{var Q,w,F,B,q;let{data:$,error:G}=J;if(G)throw G;let W=await this._getUrlForProvider(`${this.url}/user/identities/authorize`,D.provider,{redirectTo:(Q=D.options)===null||Q===void 0?void 0:Q.redirectTo,scopes:(w=D.options)===null||w===void 0?void 0:w.scopes,queryParams:(F=D.options)===null||F===void 0?void 0:F.queryParams,skipBrowserRedirect:!0});return await(0,O0._request)(this.fetch,"GET",W,{headers:this.headers,jwt:(q=(B=$.session)===null||B===void 0?void 0:B.access_token)!==null&&q!==void 0?q:void 0})});if(Z)throw Z;if((0,e.isBrowser)()&&!((X=D.options)===null||X===void 0?void 0:X.skipBrowserRedirect))window.location.assign(Y===null||Y===void 0?void 0:Y.url);return this._returnResult({data:{provider:D.provider,url:Y===null||Y===void 0?void 0:Y.url},error:null})}catch(Y){if((0,r.isAuthError)(Y))return this._returnResult({data:{provider:D.provider,url:null},error:Y});throw Y}}async linkIdentityIdToken(D){return await this._useSession(async(X)=>{var Y;try{let{error:Z,data:{session:J}}=X;if(Z)throw Z;let{options:Q,provider:w,token:F,access_token:B,nonce:q}=D,$=await(0,O0._request)(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,jwt:(Y=J===null||J===void 0?void 0:J.access_token)!==null&&Y!==void 0?Y:void 0,body:{provider:w,id_token:F,access_token:B,nonce:q,link_identity:!0,gotrue_meta_security:{captcha_token:Q===null||Q===void 0?void 0:Q.captchaToken}},xform:O0._sessionResponse}),{data:G,error:W}=$;if(W)return this._returnResult({data:{user:null,session:null},error:W});else if(!G||!G.session||!G.user)return this._returnResult({data:{user:null,session:null},error:new r.AuthInvalidTokenResponseError});if(G.session)await this._saveSession(G.session),await this._notifyAllSubscribers("USER_UPDATED",G.session);return this._returnResult({data:G,error:W})}catch(Z){if(await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`),(0,r.isAuthError)(Z))return this._returnResult({data:{user:null,session:null},error:Z});throw Z}})}async unlinkIdentity(D){try{return await this._useSession(async(X)=>{var Y,Z;let{data:J,error:Q}=X;if(Q)throw Q;return await(0,O0._request)(this.fetch,"DELETE",`${this.url}/user/identities/${D.identity_id}`,{headers:this.headers,jwt:(Z=(Y=J.session)===null||Y===void 0?void 0:Y.access_token)!==null&&Z!==void 0?Z:void 0})})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:null,error:X});throw X}}async _refreshAccessToken(D){let X=`#_refreshAccessToken(${D.substring(0,5)}...)`;this._debug(X,"begin");try{let Y=Date.now();return await(0,e.retryable)(async(Z)=>{if(Z>0)await(0,e.sleep)(200*Math.pow(2,Z-1));return this._debug(X,"refreshing attempt",Z),await(0,O0._request)(this.fetch,"POST",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:D},headers:this.headers,xform:O0._sessionResponse})},(Z,J)=>{let Q=200*Math.pow(2,Z);return J&&(0,r.isAuthRetryableFetchError)(J)&&Date.now()+Q-Y<C1.AUTO_REFRESH_TICK_DURATION_MS})}catch(Y){if(this._debug(X,"error",Y),(0,r.isAuthError)(Y))return this._returnResult({data:{session:null,user:null},error:Y});throw Y}finally{this._debug(X,"end")}}_isValidSession(D){return typeof D==="object"&&D!==null&&"access_token"in D&&"refresh_token"in D&&"expires_at"in D}async _handleProviderSignIn(D,X){let Y=await this._getUrlForProvider(`${this.url}/authorize`,D,{redirectTo:X.redirectTo,scopes:X.scopes,queryParams:X.queryParams});if(this._debug("#_handleProviderSignIn()","provider",D,"options",X,"url",Y),(0,e.isBrowser)()&&!X.skipBrowserRedirect)window.location.assign(Y);return{data:{provider:D,url:Y},error:null}}async _recoverAndRefresh(){var D,X;let Y="#_recoverAndRefresh()";this._debug("#_recoverAndRefresh()","begin");try{let Z=await(0,e.getItemAsync)(this.storage,this.storageKey);if(Z&&this.userStorage){let Q=await(0,e.getItemAsync)(this.userStorage,this.storageKey+"-user");if(!this.storage.isServer&&Object.is(this.storage,this.userStorage)&&!Q)Q={user:Z.user},await(0,e.setItemAsync)(this.userStorage,this.storageKey+"-user",Q);Z.user=(D=Q===null||Q===void 0?void 0:Q.user)!==null&&D!==void 0?D:(0,e.userNotAvailableProxy)()}else if(Z&&!Z.user){if(!Z.user){let Q=await(0,e.getItemAsync)(this.storage,this.storageKey+"-user");if(Q&&(Q===null||Q===void 0?void 0:Q.user))Z.user=Q.user,await(0,e.removeItemAsync)(this.storage,this.storageKey+"-user"),await(0,e.setItemAsync)(this.storage,this.storageKey,Z);else Z.user=(0,e.userNotAvailableProxy)()}}if(this._debug("#_recoverAndRefresh()","session from storage",Z),!this._isValidSession(Z)){if(this._debug("#_recoverAndRefresh()","session is not valid"),Z!==null)await this._removeSession();return}let J=((X=Z.expires_at)!==null&&X!==void 0?X:1/0)*1000-Date.now()<C1.EXPIRY_MARGIN_MS;if(this._debug("#_recoverAndRefresh()",`session has${J?"":" not"} expired with margin of ${C1.EXPIRY_MARGIN_MS}s`),J){if(this.autoRefreshToken&&Z.refresh_token){let{error:Q}=await this._callRefreshToken(Z.refresh_token);if(Q){if(console.error(Q),!(0,r.isAuthRetryableFetchError)(Q))this._debug("#_recoverAndRefresh()","refresh failed with a non-retryable error, removing the session",Q),await this._removeSession()}}}else if(Z.user&&Z.user.__isUserNotAvailableProxy===!0)try{let{data:Q,error:w}=await this._getUser(Z.access_token);if(!w&&(Q===null||Q===void 0?void 0:Q.user))Z.user=Q.user,await this._saveSession(Z),await this._notifyAllSubscribers("SIGNED_IN",Z);else this._debug("#_recoverAndRefresh()","could not get user data, skipping SIGNED_IN notification")}catch(Q){console.error("Error getting user data:",Q),this._debug("#_recoverAndRefresh()","error getting user data, skipping SIGNED_IN notification",Q)}else await this._notifyAllSubscribers("SIGNED_IN",Z)}catch(Z){this._debug("#_recoverAndRefresh()","error",Z),console.error(Z);return}finally{this._debug("#_recoverAndRefresh()","end")}}async _callRefreshToken(D){var X,Y;if(!D)throw new r.AuthSessionMissingError;if(this.refreshingDeferred)return this.refreshingDeferred.promise;let Z=`#_callRefreshToken(${D.substring(0,5)}...)`;this._debug(Z,"begin");try{this.refreshingDeferred=new e.Deferred;let{data:J,error:Q}=await this._refreshAccessToken(D);if(Q)throw Q;if(!J.session)throw new r.AuthSessionMissingError;await this._saveSession(J.session),await this._notifyAllSubscribers("TOKEN_REFRESHED",J.session);let w={data:J.session,error:null};return this.refreshingDeferred.resolve(w),w}catch(J){if(this._debug(Z,"error",J),(0,r.isAuthError)(J)){let Q={data:null,error:J};if(!(0,r.isAuthRetryableFetchError)(J))await this._removeSession();return(X=this.refreshingDeferred)===null||X===void 0||X.resolve(Q),Q}throw(Y=this.refreshingDeferred)===null||Y===void 0||Y.reject(J),J}finally{this.refreshingDeferred=null,this._debug(Z,"end")}}async _notifyAllSubscribers(D,X,Y=!0){let Z=`#_notifyAllSubscribers(${D})`;this._debug(Z,"begin",X,`broadcast = ${Y}`);try{if(this.broadcastChannel&&Y)this.broadcastChannel.postMessage({event:D,session:X});let J=[],Q=Array.from(this.stateChangeEmitters.values()).map(async(w)=>{try{await w.callback(D,X)}catch(F){J.push(F)}});if(await Promise.all(Q),J.length>0){for(let w=0;w<J.length;w+=1)console.error(J[w]);throw J[0]}}finally{this._debug(Z,"end")}}async _saveSession(D){this._debug("#_saveSession()",D),this.suppressGetSessionWarning=!0,await(0,e.removeItemAsync)(this.storage,`${this.storageKey}-code-verifier`);let X=Object.assign({},D),Y=X.user&&X.user.__isUserNotAvailableProxy===!0;if(this.userStorage){if(!Y&&X.user)await(0,e.setItemAsync)(this.userStorage,this.storageKey+"-user",{user:X.user});let Z=Object.assign({},X);delete Z.user;let J=(0,e.deepClone)(Z);await(0,e.setItemAsync)(this.storage,this.storageKey,J)}else{let Z=(0,e.deepClone)(X);await(0,e.setItemAsync)(this.storage,this.storageKey,Z)}}async _removeSession(){if(this._debug("#_removeSession()"),this.suppressGetSessionWarning=!1,await(0,e.removeItemAsync)(this.storage,this.storageKey),await(0,e.removeItemAsync)(this.storage,this.storageKey+"-code-verifier"),await(0,e.removeItemAsync)(this.storage,this.storageKey+"-user"),this.userStorage)await(0,e.removeItemAsync)(this.userStorage,this.storageKey+"-user");await this._notifyAllSubscribers("SIGNED_OUT",null)}_removeVisibilityChangedCallback(){this._debug("#_removeVisibilityChangedCallback()");let D=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{if(D&&(0,e.isBrowser)()&&(window===null||window===void 0?void 0:window.removeEventListener))window.removeEventListener("visibilitychange",D)}catch(X){console.error("removing visibilitychange callback failed",X)}}async _startAutoRefresh(){await this._stopAutoRefresh(),this._debug("#_startAutoRefresh()");let D=setInterval(()=>this._autoRefreshTokenTick(),C1.AUTO_REFRESH_TICK_DURATION_MS);if(this.autoRefreshTicker=D,D&&typeof D==="object"&&typeof D.unref==="function")D.unref();else if(typeof Deno<"u"&&typeof Deno.unrefTimer==="function")Deno.unrefTimer(D);setTimeout(async()=>{await this.initializePromise,await this._autoRefreshTokenTick()},0)}async _stopAutoRefresh(){this._debug("#_stopAutoRefresh()");let D=this.autoRefreshTicker;if(this.autoRefreshTicker=null,D)clearInterval(D)}async startAutoRefresh(){this._removeVisibilityChangedCallback(),await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback(),await this._stopAutoRefresh()}async _autoRefreshTokenTick(){this._debug("#_autoRefreshTokenTick()","begin");try{await this._acquireLock(0,async()=>{try{let D=Date.now();try{return await this._useSession(async(X)=>{let{data:{session:Y}}=X;if(!Y||!Y.refresh_token||!Y.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}let Z=Math.floor((Y.expires_at*1000-D)/C1.AUTO_REFRESH_TICK_DURATION_MS);if(this._debug("#_autoRefreshTokenTick()",`access token expires in ${Z} ticks, a tick lasts ${C1.AUTO_REFRESH_TICK_DURATION_MS}ms, refresh threshold is ${C1.AUTO_REFRESH_TICK_THRESHOLD} ticks`),Z<=C1.AUTO_REFRESH_TICK_THRESHOLD)await this._callRefreshToken(Y.refresh_token)})}catch(X){console.error("Auto refresh tick failed with error. This is likely a transient error.",X)}}finally{this._debug("#_autoRefreshTokenTick()","end")}})}catch(D){if(D.isAcquireTimeout||D instanceof YH.LockAcquireTimeoutError)this._debug("auto refresh token tick lock not available");else throw D}}async _handleVisibilityChange(){if(this._debug("#_handleVisibilityChange()"),!(0,e.isBrowser)()||!(window===null||window===void 0?void 0:window.addEventListener)){if(this.autoRefreshToken)this.startAutoRefresh();return!1}try{this.visibilityChangedCallback=async()=>await this._onVisibilityChanged(!1),window===null||window===void 0||window.addEventListener("visibilitychange",this.visibilityChangedCallback),await this._onVisibilityChanged(!0)}catch(D){console.error("_handleVisibilityChange",D)}}async _onVisibilityChanged(D){let X=`#_onVisibilityChanged(${D})`;if(this._debug(X,"visibilityState",document.visibilityState),document.visibilityState==="visible"){if(this.autoRefreshToken)this._startAutoRefresh();if(!D)await this.initializePromise,await this._acquireLock(-1,async()=>{if(document.visibilityState!=="visible"){this._debug(X,"acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting");return}await this._recoverAndRefresh()})}else if(document.visibilityState==="hidden"){if(this.autoRefreshToken)this._stopAutoRefresh()}}async _getUrlForProvider(D,X,Y){let Z=[`provider=${encodeURIComponent(X)}`];if(Y===null||Y===void 0?void 0:Y.redirectTo)Z.push(`redirect_to=${encodeURIComponent(Y.redirectTo)}`);if(Y===null||Y===void 0?void 0:Y.scopes)Z.push(`scopes=${encodeURIComponent(Y.scopes)}`);if(this.flowType==="pkce"){let[J,Q]=await(0,e.getCodeChallengeAndMethod)(this.storage,this.storageKey),w=new URLSearchParams({code_challenge:`${encodeURIComponent(J)}`,code_challenge_method:`${encodeURIComponent(Q)}`});Z.push(w.toString())}if(Y===null||Y===void 0?void 0:Y.queryParams){let J=new URLSearchParams(Y.queryParams);Z.push(J.toString())}if(Y===null||Y===void 0?void 0:Y.skipBrowserRedirect)Z.push(`skip_http_redirect=${Y.skipBrowserRedirect}`);return`${D}?${Z.join("&")}`}async _unenroll(D){try{return await this._useSession(async(X)=>{var Y;let{data:Z,error:J}=X;if(J)return this._returnResult({data:null,error:J});return await(0,O0._request)(this.fetch,"DELETE",`${this.url}/factors/${D.factorId}`,{headers:this.headers,jwt:(Y=Z===null||Z===void 0?void 0:Z.session)===null||Y===void 0?void 0:Y.access_token})})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:null,error:X});throw X}}async _enroll(D){try{return await this._useSession(async(X)=>{var Y,Z;let{data:J,error:Q}=X;if(Q)return this._returnResult({data:null,error:Q});let w=Object.assign({friendly_name:D.friendlyName,factor_type:D.factorType},D.factorType==="phone"?{phone:D.phone}:D.factorType==="totp"?{issuer:D.issuer}:{}),{data:F,error:B}=await(0,O0._request)(this.fetch,"POST",`${this.url}/factors`,{body:w,headers:this.headers,jwt:(Y=J===null||J===void 0?void 0:J.session)===null||Y===void 0?void 0:Y.access_token});if(B)return this._returnResult({data:null,error:B});if(D.factorType==="totp"&&F.type==="totp"&&((Z=F===null||F===void 0?void 0:F.totp)===null||Z===void 0?void 0:Z.qr_code))F.totp.qr_code=`data:image/svg+xml;utf-8,${F.totp.qr_code}`;return this._returnResult({data:F,error:null})})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:null,error:X});throw X}}async _verify(D){return this._acquireLock(-1,async()=>{try{return await this._useSession(async(X)=>{var Y;let{data:Z,error:J}=X;if(J)return this._returnResult({data:null,error:J});let Q=Object.assign({challenge_id:D.challengeId},"webauthn"in D?{webauthn:Object.assign(Object.assign({},D.webauthn),{credential_response:D.webauthn.type==="create"?(0,E4.serializeCredentialCreationResponse)(D.webauthn.credential_response):(0,E4.serializeCredentialRequestResponse)(D.webauthn.credential_response)})}:{code:D.code}),{data:w,error:F}=await(0,O0._request)(this.fetch,"POST",`${this.url}/factors/${D.factorId}/verify`,{body:Q,headers:this.headers,jwt:(Y=Z===null||Z===void 0?void 0:Z.session)===null||Y===void 0?void 0:Y.access_token});if(F)return this._returnResult({data:null,error:F});return await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1000)+w.expires_in},w)),await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",w),this._returnResult({data:w,error:F})})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:null,error:X});throw X}})}async _challenge(D){return this._acquireLock(-1,async()=>{try{return await this._useSession(async(X)=>{var Y;let{data:Z,error:J}=X;if(J)return this._returnResult({data:null,error:J});let Q=await(0,O0._request)(this.fetch,"POST",`${this.url}/factors/${D.factorId}/challenge`,{body:D,headers:this.headers,jwt:(Y=Z===null||Z===void 0?void 0:Z.session)===null||Y===void 0?void 0:Y.access_token});if(Q.error)return Q;let{data:w}=Q;if(w.type!=="webauthn")return{data:w,error:null};switch(w.webauthn.type){case"create":return{data:Object.assign(Object.assign({},w),{webauthn:Object.assign(Object.assign({},w.webauthn),{credential_options:Object.assign(Object.assign({},w.webauthn.credential_options),{publicKey:(0,E4.deserializeCredentialCreationOptions)(w.webauthn.credential_options.publicKey)})})}),error:null};case"request":return{data:Object.assign(Object.assign({},w),{webauthn:Object.assign(Object.assign({},w.webauthn),{credential_options:Object.assign(Object.assign({},w.webauthn.credential_options),{publicKey:(0,E4.deserializeCredentialRequestOptions)(w.webauthn.credential_options.publicKey)})})}),error:null}}})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:null,error:X});throw X}})}async _challengeAndVerify(D){let{data:X,error:Y}=await this._challenge({factorId:D.factorId});if(Y)return this._returnResult({data:null,error:Y});return await this._verify({factorId:D.factorId,challengeId:X.id,code:D.code})}async _listFactors(){var D;let{data:{user:X},error:Y}=await this.getUser();if(Y)return{data:null,error:Y};let Z={all:[],phone:[],totp:[],webauthn:[]};for(let J of(D=X===null||X===void 0?void 0:X.factors)!==null&&D!==void 0?D:[])if(Z.all.push(J),J.status==="verified")Z[J.factor_type].push(J);return{data:Z,error:null}}async _getAuthenticatorAssuranceLevel(){var D,X;let{data:{session:Y},error:Z}=await this.getSession();if(Z)return this._returnResult({data:null,error:Z});if(!Y)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};let{payload:J}=(0,e.decodeJWT)(Y.access_token),Q=null;if(J.aal)Q=J.aal;let w=Q;if(((X=(D=Y.user.factors)===null||D===void 0?void 0:D.filter((q)=>q.status==="verified"))!==null&&X!==void 0?X:[]).length>0)w="aal2";let B=J.amr||[];return{data:{currentLevel:Q,nextLevel:w,currentAuthenticationMethods:B},error:null}}async _getAuthorizationDetails(D){try{return await this._useSession(async(X)=>{let{data:{session:Y},error:Z}=X;if(Z)return this._returnResult({data:null,error:Z});if(!Y)return this._returnResult({data:null,error:new r.AuthSessionMissingError});return await(0,O0._request)(this.fetch,"GET",`${this.url}/oauth/authorizations/${D}`,{headers:this.headers,jwt:Y.access_token,xform:(J)=>({data:J,error:null})})})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:null,error:X});throw X}}async _approveAuthorization(D,X){try{return await this._useSession(async(Y)=>{let{data:{session:Z},error:J}=Y;if(J)return this._returnResult({data:null,error:J});if(!Z)return this._returnResult({data:null,error:new r.AuthSessionMissingError});let Q=await(0,O0._request)(this.fetch,"POST",`${this.url}/oauth/authorizations/${D}/consent`,{headers:this.headers,jwt:Z.access_token,body:{action:"approve"},xform:(w)=>({data:w,error:null})});if(Q.data&&Q.data.redirect_url){if((0,e.isBrowser)()&&!(X===null||X===void 0?void 0:X.skipBrowserRedirect))window.location.assign(Q.data.redirect_url)}return Q})}catch(Y){if((0,r.isAuthError)(Y))return this._returnResult({data:null,error:Y});throw Y}}async _denyAuthorization(D,X){try{return await this._useSession(async(Y)=>{let{data:{session:Z},error:J}=Y;if(J)return this._returnResult({data:null,error:J});if(!Z)return this._returnResult({data:null,error:new r.AuthSessionMissingError});let Q=await(0,O0._request)(this.fetch,"POST",`${this.url}/oauth/authorizations/${D}/consent`,{headers:this.headers,jwt:Z.access_token,body:{action:"deny"},xform:(w)=>({data:w,error:null})});if(Q.data&&Q.data.redirect_url){if((0,e.isBrowser)()&&!(X===null||X===void 0?void 0:X.skipBrowserRedirect))window.location.assign(Q.data.redirect_url)}return Q})}catch(Y){if((0,r.isAuthError)(Y))return this._returnResult({data:null,error:Y});throw Y}}async _listOAuthGrants(){try{return await this._useSession(async(D)=>{let{data:{session:X},error:Y}=D;if(Y)return this._returnResult({data:null,error:Y});if(!X)return this._returnResult({data:null,error:new r.AuthSessionMissingError});return await(0,O0._request)(this.fetch,"GET",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:X.access_token,xform:(Z)=>({data:Z,error:null})})})}catch(D){if((0,r.isAuthError)(D))return this._returnResult({data:null,error:D});throw D}}async _revokeOAuthGrant(D){try{return await this._useSession(async(X)=>{let{data:{session:Y},error:Z}=X;if(Z)return this._returnResult({data:null,error:Z});if(!Y)return this._returnResult({data:null,error:new r.AuthSessionMissingError});return await(0,O0._request)(this.fetch,"DELETE",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:Y.access_token,query:{client_id:D.clientId},noResolveJson:!0}),{data:{},error:null}})}catch(X){if((0,r.isAuthError)(X))return this._returnResult({data:null,error:X});throw X}}async fetchJwk(D,X={keys:[]}){let Y=X.keys.find((w)=>w.kid===D);if(Y)return Y;let Z=Date.now();if(Y=this.jwks.keys.find((w)=>w.kid===D),Y&&this.jwks_cached_at+C1.JWKS_TTL>Z)return Y;let{data:J,error:Q}=await(0,O0._request)(this.fetch,"GET",`${this.url}/.well-known/jwks.json`,{headers:this.headers});if(Q)throw Q;if(!J.keys||J.keys.length===0)return null;if(this.jwks=J,this.jwks_cached_at=Z,Y=J.keys.find((w)=>w.kid===D),!Y)return null;return Y}async getClaims(D,X={}){try{let Y=D;if(!Y){let{data:W,error:O}=await this.getSession();if(O||!W.session)return this._returnResult({data:null,error:O});Y=W.session.access_token}let{header:Z,payload:J,signature:Q,raw:{header:w,payload:F}}=(0,e.decodeJWT)(Y);if(!(X===null||X===void 0?void 0:X.allowExpired))(0,e.validateExp)(J.exp);let B=!Z.alg||Z.alg.startsWith("HS")||!Z.kid||!(("crypto"in globalThis)&&("subtle"in globalThis.crypto))?null:await this.fetchJwk(Z.kid,(X===null||X===void 0?void 0:X.keys)?{keys:X.keys}:X===null||X===void 0?void 0:X.jwks);if(!B){let{error:W}=await this.getUser(Y);if(W)throw W;return{data:{claims:J,header:Z,signature:Q},error:null}}let q=(0,e.getAlgorithm)(Z.alg),$=await crypto.subtle.importKey("jwk",B,q,!0,["verify"]);if(!await crypto.subtle.verify(q,$,Q,(0,ZH.stringToUint8Array)(`${w}.${F}`)))throw new r.AuthInvalidJwtError("Invalid JWT signature");return{data:{claims:J,header:Z,signature:Q},error:null}}catch(Y){if((0,r.isAuthError)(Y))return this._returnResult({data:null,error:Y});throw Y}}}C4.nextInstanceID={};ww.default=C4});var QH=T((Bw)=>{Object.defineProperty(Bw,"__esModule",{value:!0});var Fg=h0(),Bg=Fg.__importDefault(DY()),qg=Bg.default;Bw.default=qg});var wH=T((qw)=>{Object.defineProperty(qw,"__esModule",{value:!0});var $g=h0(),Gg=$g.__importDefault(Fw()),Og=Gg.default;qw.default=Og});var $w=T((yD)=>{Object.defineProperty(yD,"__esModule",{value:!0});yD.processLock=yD.lockInternals=yD.NavigatorLockAcquireTimeoutError=yD.navigatorLock=yD.AuthClient=yD.AuthAdminApi=yD.GoTrueClient=yD.GoTrueAdminApi=void 0;var f5=h0(),Wg=f5.__importDefault(DY());yD.GoTrueAdminApi=Wg.default;var Hg=f5.__importDefault(Fw());yD.GoTrueClient=Hg.default;var Kg=f5.__importDefault(QH());yD.AuthAdminApi=Kg.default;var zg=f5.__importDefault(wH());yD.AuthClient=zg.default;f5.__exportStar(rQ(),yD);f5.__exportStar(G9(),yD);var JY=Yw();Object.defineProperty(yD,"navigatorLock",{enumerable:!0,get:function(){return JY.navigatorLock}});Object.defineProperty(yD,"NavigatorLockAcquireTimeoutError",{enumerable:!0,get:function(){return JY.NavigatorLockAcquireTimeoutError}});Object.defineProperty(yD,"lockInternals",{enumerable:!0,get:function(){return JY.internals}});Object.defineProperty(yD,"processLock",{enumerable:!0,get:function(){return JY.processLock}})});var Ow=T((cJ0,GH)=>{GH.exports={LOCHDR:30,LOCSIG:67324752,LOCVER:4,LOCFLG:6,LOCHOW:8,LOCTIM:10,LOCCRC:14,LOCSIZ:18,LOCLEN:22,LOCNAM:26,LOCEXT:28,EXTSIG:134695760,EXTHDR:16,EXTCRC:4,EXTSIZ:8,EXTLEN:12,CENHDR:46,CENSIG:33639248,CENVEM:4,CENVER:6,CENFLG:8,CENHOW:10,CENTIM:12,CENCRC:16,CENSIZ:20,CENLEN:24,CENNAM:28,CENEXT:30,CENCOM:32,CENDSK:34,CENATT:36,CENATX:38,CENOFF:42,ENDHDR:22,ENDSIG:101010256,ENDSUB:8,ENDTOT:10,ENDSIZ:12,ENDOFF:16,ENDCOM:20,END64HDR:20,END64SIG:117853008,END64START:4,END64OFF:8,END64NUMDISKS:16,ZIP64SIG:101075792,ZIP64HDR:56,ZIP64LEAD:12,ZIP64SIZE:4,ZIP64VEM:12,ZIP64VER:14,ZIP64DSK:16,ZIP64DSKDIR:20,ZIP64SUB:24,ZIP64TOT:32,ZIP64SIZB:40,ZIP64OFF:48,ZIP64EXTRA:56,STORED:0,SHRUNK:1,REDUCED1:2,REDUCED2:3,REDUCED3:4,REDUCED4:5,IMPLODED:6,DEFLATED:8,ENHANCED_DEFLATED:9,PKWARE:10,BZIP2:12,LZMA:14,IBM_TERSE:18,IBM_LZ77:19,AES_ENCRYPT:99,FLG_ENC:1,FLG_COMP1:2,FLG_COMP2:4,FLG_DESC:8,FLG_ENH:16,FLG_PATCH:32,FLG_STR:64,FLG_EFS:2048,FLG_MSK:4096,FILE:2,BUFFER:1,NONE:0,EF_ID:0,EF_SIZE:2,ID_ZIP64:1,ID_AVINFO:7,ID_PFS:8,ID_OS2:9,ID_NTFS:10,ID_OPENVMS:12,ID_UNIX:13,ID_FORK:14,ID_PATCH:15,ID_X509_PKCS7:20,ID_X509_CERTID_F:21,ID_X509_CERTID_C:22,ID_STRONGENC:23,ID_RECORD_MGT:24,ID_X509_PKCS7_RL:25,ID_IBM1:101,ID_IBM2:102,ID_POSZIP:18064,EF_ZIP64_OR_32:4294967295,EF_ZIP64_OR_16:65535,EF_ZIP64_SUNCOMP:0,EF_ZIP64_SCOMP:8,EF_ZIP64_RHO:16,EF_ZIP64_DSN:24}});var QY=T((WH)=>{var OH={INVALID_LOC:"Invalid LOC header (bad signature)",INVALID_CEN:"Invalid CEN header (bad signature)",INVALID_END:"Invalid END header (bad signature)",DESCRIPTOR_NOT_EXIST:"No descriptor present",DESCRIPTOR_UNKNOWN:"Unknown descriptor format",DESCRIPTOR_FAULTY:"Descriptor data is malformed",NO_DATA:"Nothing to decompress",BAD_CRC:"CRC32 checksum failed {0}",FILE_IN_THE_WAY:"There is a file in the way: {0}",UNKNOWN_METHOD:"Invalid/unsupported compression method",AVAIL_DATA:"inflate::Available inflate data did not terminate",INVALID_DISTANCE:"inflate::Invalid literal/length or distance code in fixed or dynamic block",TO_MANY_CODES:"inflate::Dynamic block code description: too many length or distance codes",INVALID_REPEAT_LEN:"inflate::Dynamic block code description: repeat more than specified lengths",INVALID_REPEAT_FIRST:"inflate::Dynamic block code description: repeat lengths with no first length",INCOMPLETE_CODES:"inflate::Dynamic block code description: code lengths codes incomplete",INVALID_DYN_DISTANCE:"inflate::Dynamic block code description: invalid distance code lengths",INVALID_CODES_LEN:"inflate::Dynamic block code description: invalid literal/length code lengths",INVALID_STORE_BLOCK:"inflate::Stored block length did not match one's complement",INVALID_BLOCK_TYPE:"inflate::Invalid block type (type == 3)",CANT_EXTRACT_FILE:"Could not extract the file",CANT_OVERRIDE:"Target file already exists",DISK_ENTRY_TOO_LARGE:"Number of disk entries is too large",NO_ZIP:"No zip file was loaded",NO_ENTRY:"Entry doesn't exist",DIRECTORY_CONTENT_ERROR:"A directory cannot have content",FILE_NOT_FOUND:'File not found: "{0}"',NOT_IMPLEMENTED:"Not implemented",INVALID_FILENAME:"Invalid filename",INVALID_FORMAT:"Invalid or unsupported zip format. No END header found",INVALID_PASS_PARAM:"Incompatible password parameter",WRONG_PASSWORD:"Wrong Password",COMMENT_TOO_LONG:"Comment is too long",EXTRA_FIELD_PARSE_ERROR:"Extra field parsing error"};function kg(D){return function(...X){if(X.length)D=D.replace(/\{(\d)\}/g,(Y,Z)=>X[Z]||"");return Error("ADM-ZIP: "+D)}}for(let D of Object.keys(OH))WH[D]=kg(OH[D])});var LH=T((nJ0,MH)=>{var ug=require("fs"),uD=require("path"),HH=Ow(),hg=QY(),_g=typeof process==="object"&&process.platform==="win32",KH=(D)=>typeof D==="object"&&D!==null,zH=new Uint32Array(256).map((D,X)=>{for(let Y=0;Y<8;Y++)if((X&1)!==0)X=3988292384^X>>>1;else X>>>=1;return X>>>0});function ND(D){if(this.sep=uD.sep,this.fs=ug,KH(D)){if(KH(D.fs)&&typeof D.fs.statSync==="function")this.fs=D.fs}}MH.exports=ND;ND.prototype.makeDir=function(D){let X=this;function Y(Z){let J=Z.split(X.sep)[0];Z.split(X.sep).forEach(function(Q){if(!Q||Q.substr(-1,1)===":")return;J+=X.sep+Q;var w;try{w=X.fs.statSync(J)}catch(F){X.fs.mkdirSync(J)}if(w&&w.isFile())throw hg.FILE_IN_THE_WAY(`"${J}"`)})}Y(D)};ND.prototype.writeFileTo=function(D,X,Y,Z){let J=this;if(J.fs.existsSync(D)){if(!Y)return!1;var Q=J.fs.statSync(D);if(Q.isDirectory())return!1}var w=uD.dirname(D);if(!J.fs.existsSync(w))J.makeDir(w);var F;try{F=J.fs.openSync(D,"w",438)}catch(B){J.fs.chmodSync(D,438),F=J.fs.openSync(D,"w",438)}if(F)try{J.fs.writeSync(F,X,0,X.length,0)}finally{J.fs.closeSync(F)}return J.fs.chmodSync(D,Z||438),!0};ND.prototype.writeFileToAsync=function(D,X,Y,Z,J){if(typeof Z==="function")J=Z,Z=void 0;let Q=this;Q.fs.exists(D,function(w){if(w&&!Y)return J(!1);Q.fs.stat(D,function(F,B){if(w&&B.isDirectory())return J(!1);var q=uD.dirname(D);Q.fs.exists(q,function($){if(!$)Q.makeDir(q);Q.fs.open(D,"w",438,function(G,W){if(G)Q.fs.chmod(D,438,function(){Q.fs.open(D,"w",438,function(O,H){Q.fs.write(H,X,0,X.length,0,function(){Q.fs.close(H,function(){Q.fs.chmod(D,Z||438,function(){J(!0)})})})})});else if(W)Q.fs.write(W,X,0,X.length,0,function(){Q.fs.close(W,function(){Q.fs.chmod(D,Z||438,function(){J(!0)})})});else Q.fs.chmod(D,Z||438,function(){J(!0)})})})})})};ND.prototype.findFiles=function(D){let X=this;function Y(Z,J,Q){if(typeof J==="boolean")Q=J,J=void 0;let w=[];return X.fs.readdirSync(Z).forEach(function(F){let B=uD.join(Z,F),q=X.fs.statSync(B);if(!J||J.test(B))w.push(uD.normalize(B)+(q.isDirectory()?X.sep:""));if(q.isDirectory()&&Q)w=w.concat(Y(B,J,Q))}),w}return Y(D,void 0,!0)};ND.prototype.findFilesAsync=function(D,X){let Y=this,Z=[];Y.fs.readdir(D,function(J,Q){if(J)return X(J);let w=Q.length;if(!w)return X(null,Z);Q.forEach(function(F){F=uD.join(D,F),Y.fs.stat(F,function(B,q){if(B)return X(B);if(q){if(Z.push(uD.normalize(F)+(q.isDirectory()?Y.sep:"")),q.isDirectory())Y.findFilesAsync(F,function($,G){if($)return X($);if(Z=Z.concat(G),!--w)X(null,Z)});else if(!--w)X(null,Z)}})})})};ND.prototype.getAttributes=function(){};ND.prototype.setAttributes=function(){};ND.crc32update=function(D,X){return zH[(D^X)&255]^D>>>8};ND.crc32=function(D){if(typeof D==="string")D=Buffer.from(D,"utf8");let X=D.length,Y=-1;for(let Z=0;Z<X;)Y=ND.crc32update(Y,D[Z++]);return~Y>>>0};ND.methodToString=function(D){switch(D){case HH.STORED:return"STORED ("+D+")";case HH.DEFLATED:return"DEFLATED ("+D+")";default:return"UNSUPPORTED ("+D+")"}};ND.canonical=function(D){if(!D)return"";let X=uD.posix.normalize("/"+D.split("\\").join("/"));return uD.join(".",X)};ND.zipnamefix=function(D){if(!D)return"";let X=uD.posix.normalize("/"+D.split("\\").join("/"));return uD.posix.join(".",X)};ND.findLast=function(D,X){if(!Array.isArray(D))throw TypeError("arr is not array");let Y=D.length>>>0;for(let Z=Y-1;Z>=0;Z--)if(X(D[Z],Z,D))return D[Z];return};ND.sanitize=function(D,X){D=uD.resolve(uD.normalize(D));var Y=X.split("/");for(var Z=0,J=Y.length;Z<J;Z++){var Q=uD.normalize(uD.join(D,Y.slice(Z,J).join(uD.sep)));if(Q.indexOf(D)===0)return Q}return uD.normalize(uD.join(D,uD.basename(X)))};ND.toBuffer=function(X,Y){if(Buffer.isBuffer(X))return X;else if(X instanceof Uint8Array)return Buffer.from(X);else return typeof X==="string"?Y(X):Buffer.alloc(0)};ND.readBigUInt64LE=function(D,X){var Y=Buffer.from(D.slice(X,X+8));return Y.swap64(),parseInt(`0x${Y.toString("hex")}`)};ND.fromDOS2Date=function(D){return new Date((D>>25&127)+1980,Math.max((D>>21&15)-1,0),Math.max(D>>16&31,1),D>>11&31,D>>5&63,(D&31)<<1)};ND.fromDate2DOS=function(D){let X=0,Y=0;if(D.getFullYear()>1979)X=(D.getFullYear()-1980&127)<<9|D.getMonth()+1<<5|D.getDate(),Y=D.getHours()<<11|D.getMinutes()<<5|D.getSeconds()>>1;return X<<16|Y};ND.isWin=_g;ND.crcTable=zH});var UH=T((iJ0,VH)=>{var vg=require("path");VH.exports=function(D,{fs:X}){var Y=D||"",Z=Q(),J=null;function Q(){return{directory:!1,readonly:!1,hidden:!1,executable:!1,mtime:0,atime:0}}if(Y&&X.existsSync(Y))J=X.statSync(Y),Z.directory=J.isDirectory(),Z.mtime=J.mtime,Z.atime=J.atime,Z.executable=(73&J.mode)!==0,Z.readonly=(128&J.mode)===0,Z.hidden=vg.basename(Y)[0]===".";else console.warn("Invalid path: "+Y);return{get directory(){return Z.directory},get readOnly(){return Z.readonly},get hidden(){return Z.hidden},get mtime(){return Z.mtime},get atime(){return Z.atime},get executable(){return Z.executable},decodeAttributes:function(){},encodeAttributes:function(){},toJSON:function(){return{path:Y,isDirectory:Z.directory,isReadOnly:Z.readonly,isHidden:Z.hidden,isExecutable:Z.executable,mTime:Z.mtime,aTime:Z.atime}},toString:function(){return JSON.stringify(this.toJSON(),null,"\t")}}}});var RH=T((pJ0,NH)=>{NH.exports={efs:!0,encode:(D)=>Buffer.from(D,"utf8"),decode:(D)=>D.toString("utf8")}});var k5=T((aJ0,y5)=>{y5.exports=LH();y5.exports.Constants=Ow();y5.exports.Errors=QY();y5.exports.FileAttr=UH();y5.exports.decoder=RH()});var EH=T((tJ0,AH)=>{var T6=k5(),s=T6.Constants;AH.exports=function(){var D=20,X=10,Y=0,Z=0,J=0,Q=0,w=0,F=0,B=0,q=0,$=0,G=0,W=0,O=0,H=0;D|=T6.isWin?2560:768,Y|=s.FLG_EFS;let M={extraLen:0},U=(z)=>Math.max(0,z)>>>0,N=(z)=>Math.max(0,z)&65535,R=(z)=>Math.max(0,z)&255;return J=T6.fromDate2DOS(new Date),{get made(){return D},set made(z){D=z},get version(){return X},set version(z){X=z},get flags(){return Y},set flags(z){Y=z},get flags_efs(){return(Y&s.FLG_EFS)>0},set flags_efs(z){if(z)Y|=s.FLG_EFS;else Y&=~s.FLG_EFS},get flags_desc(){return(Y&s.FLG_DESC)>0},set flags_desc(z){if(z)Y|=s.FLG_DESC;else Y&=~s.FLG_DESC},get method(){return Z},set method(z){switch(z){case s.STORED:this.version=10;case s.DEFLATED:default:this.version=20}Z=z},get time(){return T6.fromDOS2Date(this.timeval)},set time(z){this.timeval=T6.fromDate2DOS(z)},get timeval(){return J},set timeval(z){J=U(z)},get timeHighByte(){return R(J>>>8)},get crc(){return Q},set crc(z){Q=U(z)},get compressedSize(){return w},set compressedSize(z){w=U(z)},get size(){return F},set size(z){F=U(z)},get fileNameLength(){return B},set fileNameLength(z){B=z},get extraLength(){return q},set extraLength(z){q=z},get extraLocalLength(){return M.extraLen},set extraLocalLength(z){M.extraLen=z},get commentLength(){return $},set commentLength(z){$=z},get diskNumStart(){return G},set diskNumStart(z){G=U(z)},get inAttr(){return W},set inAttr(z){W=U(z)},get attr(){return O},set attr(z){O=U(z)},get fileAttr(){return(O||0)>>16&4095},get offset(){return H},set offset(z){H=U(z)},get encrypted(){return(Y&s.FLG_ENC)===s.FLG_ENC},get centralHeaderSize(){return s.CENHDR+B+q+$},get realDataOffset(){return H+s.LOCHDR+M.fnameLen+M.extraLen},get localHeader(){return M},loadLocalHeaderFromBinary:function(z){var V=z.slice(H,H+s.LOCHDR);if(V.readUInt32LE(0)!==s.LOCSIG)throw T6.Errors.INVALID_LOC();M.version=V.readUInt16LE(s.LOCVER),M.flags=V.readUInt16LE(s.LOCFLG),M.method=V.readUInt16LE(s.LOCHOW),M.time=V.readUInt32LE(s.LOCTIM),M.crc=V.readUInt32LE(s.LOCCRC),M.compressedSize=V.readUInt32LE(s.LOCSIZ),M.size=V.readUInt32LE(s.LOCLEN),M.fnameLen=V.readUInt16LE(s.LOCNAM),M.extraLen=V.readUInt16LE(s.LOCEXT);let L=H+s.LOCHDR+M.fnameLen,C=L+M.extraLen;return z.slice(L,C)},loadFromBinary:function(z){if(z.length!==s.CENHDR||z.readUInt32LE(0)!==s.CENSIG)throw T6.Errors.INVALID_CEN();D=z.readUInt16LE(s.CENVEM),X=z.readUInt16LE(s.CENVER),Y=z.readUInt16LE(s.CENFLG),Z=z.readUInt16LE(s.CENHOW),J=z.readUInt32LE(s.CENTIM),Q=z.readUInt32LE(s.CENCRC),w=z.readUInt32LE(s.CENSIZ),F=z.readUInt32LE(s.CENLEN),B=z.readUInt16LE(s.CENNAM),q=z.readUInt16LE(s.CENEXT),$=z.readUInt16LE(s.CENCOM),G=z.readUInt16LE(s.CENDSK),W=z.readUInt16LE(s.CENATT),O=z.readUInt32LE(s.CENATX),H=z.readUInt32LE(s.CENOFF)},localHeaderToBinary:function(){var z=Buffer.alloc(s.LOCHDR);return z.writeUInt32LE(s.LOCSIG,0),z.writeUInt16LE(X,s.LOCVER),z.writeUInt16LE(Y,s.LOCFLG),z.writeUInt16LE(Z,s.LOCHOW),z.writeUInt32LE(J,s.LOCTIM),z.writeUInt32LE(Q,s.LOCCRC),z.writeUInt32LE(w,s.LOCSIZ),z.writeUInt32LE(F,s.LOCLEN),z.writeUInt16LE(B,s.LOCNAM),z.writeUInt16LE(M.extraLen,s.LOCEXT),z},centralHeaderToBinary:function(){var z=Buffer.alloc(s.CENHDR+B+q+$);return z.writeUInt32LE(s.CENSIG,0),z.writeUInt16LE(D,s.CENVEM),z.writeUInt16LE(X,s.CENVER),z.writeUInt16LE(Y,s.CENFLG),z.writeUInt16LE(Z,s.CENHOW),z.writeUInt32LE(J,s.CENTIM),z.writeUInt32LE(Q,s.CENCRC),z.writeUInt32LE(w,s.CENSIZ),z.writeUInt32LE(F,s.CENLEN),z.writeUInt16LE(B,s.CENNAM),z.writeUInt16LE(q,s.CENEXT),z.writeUInt16LE($,s.CENCOM),z.writeUInt16LE(G,s.CENDSK),z.writeUInt16LE(W,s.CENATT),z.writeUInt32LE(O,s.CENATX),z.writeUInt32LE(H,s.CENOFF),z},toJSON:function(){let z=function(V){return V+" bytes"};return{made:D,version:X,flags:Y,method:T6.methodToString(Z),time:this.time,crc:"0x"+Q.toString(16).toUpperCase(),compressedSize:z(w),size:z(F),fileNameLength:z(B),extraLength:z(q),commentLength:z($),diskNumStart:G,inAttr:W,attr:O,offset:H,centralHeaderSize:z(s.CENHDR+B+q+$)}},toString:function(){return JSON.stringify(this.toJSON(),null,"\t")}}}});var jH=T((rJ0,CH)=>{var u5=k5(),OD=u5.Constants;CH.exports=function(){var D=0,X=0,Y=0,Z=0,J=0;return{get diskEntries(){return D},set diskEntries(Q){D=X=Q},get totalEntries(){return X},set totalEntries(Q){X=D=Q},get size(){return Y},set size(Q){Y=Q},get offset(){return Z},set offset(Q){Z=Q},get commentLength(){return J},set commentLength(Q){J=Q},get mainHeaderSize(){return OD.ENDHDR+J},loadFromBinary:function(Q){if((Q.length!==OD.ENDHDR||Q.readUInt32LE(0)!==OD.ENDSIG)&&(Q.length<OD.ZIP64HDR||Q.readUInt32LE(0)!==OD.ZIP64SIG))throw u5.Errors.INVALID_END();if(Q.readUInt32LE(0)===OD.ENDSIG)D=Q.readUInt16LE(OD.ENDSUB),X=Q.readUInt16LE(OD.ENDTOT),Y=Q.readUInt32LE(OD.ENDSIZ),Z=Q.readUInt32LE(OD.ENDOFF),J=Q.readUInt16LE(OD.ENDCOM);else D=u5.readBigUInt64LE(Q,OD.ZIP64SUB),X=u5.readBigUInt64LE(Q,OD.ZIP64TOT),Y=u5.readBigUInt64LE(Q,OD.ZIP64SIZE),Z=u5.readBigUInt64LE(Q,OD.ZIP64OFF),J=0},toBinary:function(){var Q=Buffer.alloc(OD.ENDHDR+J);return Q.writeUInt32LE(OD.ENDSIG,0),Q.writeUInt32LE(0,4),Q.writeUInt16LE(D,OD.ENDSUB),Q.writeUInt16LE(X,OD.ENDTOT),Q.writeUInt32LE(Y,OD.ENDSIZ),Q.writeUInt32LE(Z,OD.ENDOFF),Q.writeUInt16LE(J,OD.ENDCOM),Q.fill(" ",OD.ENDHDR),Q},toJSON:function(){let Q=function(w,F){let B=w.toString(16).toUpperCase();while(B.length<F)B="0"+B;return"0x"+B};return{diskEntries:D,totalEntries:X,size:Y+" bytes",offset:Q(Z,4),commentLength:J}},toString:function(){return JSON.stringify(this.toJSON(),null,"\t")}}}});var Hw=T((Ww)=>{Ww.EntryHeader=EH();Ww.MainHeader=jH()});var IH=T((oJ0,TH)=>{TH.exports=function(D){var X=require("zlib"),Y={chunkSize:(parseInt(D.length/1024)+1)*1024};return{deflate:function(){return X.deflateRawSync(D,Y)},deflateAsync:function(Z){var J=X.createDeflateRaw(Y),Q=[],w=0;J.on("data",function(F){Q.push(F),w+=F.length}),J.on("end",function(){var F=Buffer.alloc(w),B=0;F.fill(0);for(var q=0;q<Q.length;q++){var $=Q[q];$.copy(F,B),B+=$.length}Z&&Z(F)}),J.end(D)}}}});var SH=T((eJ0,PH)=>{var bg=+(process.versions?process.versions.node:"").split(".")[0]||0;PH.exports=function(D,X){var Y=require("zlib");let Z=bg>=15&&X>0?{maxOutputLength:X}:{};return{inflate:function(){return Y.inflateRawSync(D,Z)},inflateAsync:function(J){var Q=Y.createInflateRaw(Z),w=[],F=0;Q.on("data",function(B){w.push(B),F+=B.length}),Q.on("end",function(){var B=Buffer.alloc(F),q=0;B.fill(0);for(var $=0;$<w.length;$++){var G=w[$];G.copy(B,q),q+=G.length}J&&J(B)}),Q.end(D)}}}});var uH=T((DQ0,kH)=>{var{randomFillSync:xH}=require("crypto"),gg=QY(),mg=new Uint32Array(256).map((D,X)=>{for(let Y=0;Y<8;Y++)if((X&1)!==0)X=X>>>1^3988292384;else X>>>=1;return X>>>0}),yH=(D,X)=>Math.imul(D,X)>>>0,fH=(D,X)=>{return mg[(D^X)&255]^D>>>8},I4=()=>{if(typeof xH==="function")return xH(Buffer.alloc(12));else return I4.node()};I4.node=()=>{let D=Buffer.alloc(12),X=D.length;for(let Y=0;Y<X;Y++)D[Y]=Math.random()*256&255;return D};var wY={genSalt:I4};function FY(D){let X=Buffer.isBuffer(D)?D:Buffer.from(D);this.keys=new Uint32Array([305419896,591751049,878082192]);for(let Y=0;Y<X.length;Y++)this.updateKeys(X[Y])}FY.prototype.updateKeys=function(D){let X=this.keys;return X[0]=fH(X[0],D),X[1]+=X[0]&255,X[1]=yH(X[1],134775813)+1,X[2]=fH(X[2],X[1]>>>24),D};FY.prototype.next=function(){let D=(this.keys[2]|2)>>>0;return yH(D,D^1)>>8&255};function dg(D){let X=new FY(D);return function(Y){let Z=Buffer.alloc(Y.length),J=0;for(let Q of Y)Z[J++]=X.updateKeys(Q^X.next());return Z}}function cg(D){let X=new FY(D);return function(Y,Z,J=0){if(!Z)Z=Buffer.alloc(Y.length);for(let Q of Y){let w=X.next();Z[J++]=Q^w,X.updateKeys(Q)}return Z}}function lg(D,X,Y){if(!D||!Buffer.isBuffer(D)||D.length<12)return Buffer.alloc(0);let Z=dg(Y),J=Z(D.slice(0,12)),Q=(X.flags&8)===8?X.timeHighByte:X.crc>>>24;if(J[11]!==Q)throw gg.WRONG_PASSWORD();return Z(D.slice(12))}function ng(D){if(Buffer.isBuffer(D)&&D.length>=12)wY.genSalt=function(){return D.slice(0,12)};else if(D==="node")wY.genSalt=I4.node;else wY.genSalt=I4}function ig(D,X,Y,Z=!1){if(D==null)D=Buffer.alloc(0);if(!Buffer.isBuffer(D))D=Buffer.from(D.toString());let J=cg(Y),Q=wY.genSalt();if(Q[11]=X.crc>>>24&255,Z)Q[10]=X.crc>>>16&255;let w=Buffer.alloc(D.length+12);return J(Q,w),J(D,w,12)}kH.exports={decrypt:lg,encrypt:ig,_salter:ng}});var hH=T((BY)=>{BY.Deflater=IH();BY.Inflater=SH();BY.ZipCrypto=uH()});var zw=T((YQ0,_H)=>{var v0=k5(),pg=Hw(),RD=v0.Constants,Kw=hH();_H.exports=function(D,X){var Y=new pg.EntryHeader,Z=Buffer.alloc(0),J=Buffer.alloc(0),Q=!1,w=null,F=Buffer.alloc(0),B=Buffer.alloc(0),q=!0;let $=D,G=typeof $.decoder==="object"?$.decoder:v0.decoder;q=G.hasOwnProperty("efs")?G.efs:!1;function W(){if(!X||!(X instanceof Uint8Array))return Buffer.alloc(0);return B=Y.loadLocalHeaderFromBinary(X),X.slice(Y.realDataOffset,Y.realDataOffset+Y.compressedSize)}function O(z){if(!Y.flags_desc){if(v0.crc32(z)!==Y.localHeader.crc)return!1}else{let V={},L=Y.realDataOffset+Y.compressedSize;if(X.readUInt32LE(L)==RD.LOCSIG||X.readUInt32LE(L)==RD.CENSIG)throw v0.Errors.DESCRIPTOR_NOT_EXIST();if(X.readUInt32LE(L)==RD.EXTSIG)V.crc=X.readUInt32LE(L+RD.EXTCRC),V.compressedSize=X.readUInt32LE(L+RD.EXTSIZ),V.size=X.readUInt32LE(L+RD.EXTLEN);else if(X.readUInt16LE(L+12)===19280)V.crc=X.readUInt32LE(L+RD.EXTCRC-4),V.compressedSize=X.readUInt32LE(L+RD.EXTSIZ-4),V.size=X.readUInt32LE(L+RD.EXTLEN-4);else throw v0.Errors.DESCRIPTOR_UNKNOWN();if(V.compressedSize!==Y.compressedSize||V.size!==Y.size||V.crc!==Y.crc)throw v0.Errors.DESCRIPTOR_FAULTY();if(v0.crc32(z)!==V.crc)return!1}return!0}function H(z,V,L){if(typeof V>"u"&&typeof z==="string")L=z,z=void 0;if(Q){if(z&&V)V(Buffer.alloc(0),v0.Errors.DIRECTORY_CONTENT_ERROR());return Buffer.alloc(0)}var C=W();if(C.length===0){if(z&&V)V(C);return C}if(Y.encrypted){if(typeof L!=="string"&&!Buffer.isBuffer(L))throw v0.Errors.INVALID_PASS_PARAM();C=Kw.ZipCrypto.decrypt(C,Y,L)}var y=Buffer.alloc(Y.size);switch(Y.method){case v0.Constants.STORED:if(C.copy(y),!O(y)){if(z&&V)V(y,v0.Errors.BAD_CRC());throw v0.Errors.BAD_CRC()}else{if(z&&V)V(y);return y}case v0.Constants.DEFLATED:var A=new Kw.Inflater(C,Y.size);if(!z){if(A.inflate(y).copy(y,0),!O(y))throw v0.Errors.BAD_CRC(`"${G.decode(Z)}"`);return y}else A.inflateAsync(function(k){if(k.copy(k,0),V)if(!O(k))V(k,v0.Errors.BAD_CRC());else V(k)});break;default:if(z&&V)V(Buffer.alloc(0),v0.Errors.UNKNOWN_METHOD());throw v0.Errors.UNKNOWN_METHOD()}}function M(z,V){if((!w||!w.length)&&Buffer.isBuffer(X)){if(z&&V)V(W());return W()}if(w.length&&!Q){var L;switch(Y.method){case v0.Constants.STORED:if(Y.compressedSize=Y.size,L=Buffer.alloc(w.length),w.copy(L),z&&V)V(L);return L;default:case v0.Constants.DEFLATED:var C=new Kw.Deflater(w);if(!z){var y=C.deflate();return Y.compressedSize=y.length,y}else C.deflateAsync(function(A){L=Buffer.alloc(A.length),Y.compressedSize=A.length,A.copy(L),V&&V(L)});C=null;break}}else if(z&&V)V(Buffer.alloc(0));else return Buffer.alloc(0)}function U(z,V){return(z.readUInt32LE(V+4)<<4)+z.readUInt32LE(V)}function N(z){try{var V=0,L,C,y;while(V+4<z.length)if(L=z.readUInt16LE(V),V+=2,C=z.readUInt16LE(V),V+=2,y=z.slice(V,V+C),V+=C,RD.ID_ZIP64===L)R(y)}catch(A){throw v0.Errors.EXTRA_FIELD_PARSE_ERROR()}}function R(z){var V,L,C,y;if(z.length>=RD.EF_ZIP64_SCOMP){if(V=U(z,RD.EF_ZIP64_SUNCOMP),Y.size===RD.EF_ZIP64_OR_32)Y.size=V}if(z.length>=RD.EF_ZIP64_RHO){if(L=U(z,RD.EF_ZIP64_SCOMP),Y.compressedSize===RD.EF_ZIP64_OR_32)Y.compressedSize=L}if(z.length>=RD.EF_ZIP64_DSN){if(C=U(z,RD.EF_ZIP64_RHO),Y.offset===RD.EF_ZIP64_OR_32)Y.offset=C}if(z.length>=RD.EF_ZIP64_DSN+4){if(y=z.readUInt32LE(RD.EF_ZIP64_DSN),Y.diskNumStart===RD.EF_ZIP64_OR_16)Y.diskNumStart=y}}return{get entryName(){return G.decode(Z)},get rawEntryName(){return Z},set entryName(z){Z=v0.toBuffer(z,G.encode);var V=Z[Z.length-1];Q=V===47||V===92,Y.fileNameLength=Z.length},get efs(){if(typeof q==="function")return q(this.entryName);else return q},get extra(){return F},set extra(z){F=z,Y.extraLength=z.length,N(z)},get comment(){return G.decode(J)},set comment(z){if(J=v0.toBuffer(z,G.encode),Y.commentLength=J.length,J.length>65535)throw v0.Errors.COMMENT_TOO_LONG()},get name(){var z=G.decode(Z);return Q?z.substr(z.length-1).split("/").pop():z.split("/").pop()},get isDirectory(){return Q},getCompressedData:function(){return M(!1,null)},getCompressedDataAsync:function(z){M(!0,z)},setData:function(z){if(w=v0.toBuffer(z,v0.decoder.encode),!Q&&w.length)Y.size=w.length,Y.method=v0.Constants.DEFLATED,Y.crc=v0.crc32(z),Y.changed=!0;else Y.method=v0.Constants.STORED},getData:function(z){if(Y.changed)return w;else return H(!1,null,z)},getDataAsync:function(z,V){if(Y.changed)z(w);else H(!0,z,V)},set attr(z){Y.attr=z},get attr(){return Y.attr},set header(z){Y.loadFromBinary(z)},get header(){return Y},packCentralHeader:function(){Y.flags_efs=this.efs,Y.extraLength=F.length;var z=Y.centralHeaderToBinary(),V=v0.Constants.CENHDR;return Z.copy(z,V),V+=Z.length,F.copy(z,V),V+=Y.extraLength,J.copy(z,V),z},packLocalHeader:function(){let z=0;Y.flags_efs=this.efs,Y.extraLocalLength=B.length;let V=Y.localHeaderToBinary(),L=Buffer.alloc(V.length+Z.length+Y.extraLocalLength);return V.copy(L,z),z+=V.length,Z.copy(L,z),z+=Z.length,B.copy(L,z),z+=B.length,L},toJSON:function(){let z=function(V){return"<"+(V&&V.length+" bytes buffer"||"null")+">"};return{entryName:this.entryName,name:this.name,comment:this.comment,isDirectory:this.isDirectory,header:Y.toJSON(),compressedData:z(X),data:z(w)}},toString:function(){return JSON.stringify(this.toJSON(),null,"\t")}}}});var gH=T((ZQ0,bH)=>{var vH=zw(),ag=Hw(),nD=k5();bH.exports=function(D,X){var Y=[],Z={},J=Buffer.alloc(0),Q=new ag.MainHeader,w=!1,F=null;let B=new Set,q=X,{noSort:$,decoder:G}=q;if(D)H(q.readEntries);else w=!0;function W(){let U=new Set;for(let N of Object.keys(Z)){let R=N.split("/");if(R.pop(),!R.length)continue;for(let z=0;z<R.length;z++){let V=R.slice(0,z+1).join("/")+"/";U.add(V)}}for(let N of U)if(!(N in Z)){let R=new vH(q);R.entryName=N,R.attr=16,R.temporary=!0,Y.push(R),Z[R.entryName]=R,B.add(R)}}function O(){if(w=!0,Z={},Q.diskEntries>(D.length-Q.offset)/nD.Constants.CENHDR)throw nD.Errors.DISK_ENTRY_TOO_LARGE();Y=Array(Q.diskEntries);var U=Q.offset;for(var N=0;N<Y.length;N++){var R=U,z=new vH(q,D);if(z.header=D.slice(R,R+=nD.Constants.CENHDR),z.entryName=D.slice(R,R+=z.header.fileNameLength),z.header.extraLength)z.extra=D.slice(R,R+=z.header.extraLength);if(z.header.commentLength)z.comment=D.slice(R,R+z.header.commentLength);U+=z.header.centralHeaderSize,Y[N]=z,Z[z.entryName]=z}B.clear(),W()}function H(U){var N=D.length-nD.Constants.ENDHDR,R=Math.max(0,N-65535),z=R,V=D.length,L=-1,C=0;if(typeof q.trailingSpace==="boolean"?q.trailingSpace:!1)R=0;for(N;N>=z;N--){if(D[N]!==80)continue;if(D.readUInt32LE(N)===nD.Constants.ENDSIG){L=N,C=N,V=N+nD.Constants.ENDHDR,z=N-nD.Constants.END64HDR;continue}if(D.readUInt32LE(N)===nD.Constants.END64SIG){z=R;continue}if(D.readUInt32LE(N)===nD.Constants.ZIP64SIG){L=N,V=N+nD.readBigUInt64LE(D,N+nD.Constants.ZIP64SIZE)+nD.Constants.ZIP64LEAD;break}}if(L==-1)throw nD.Errors.INVALID_FORMAT();if(Q.loadFromBinary(D.slice(L,V)),Q.commentLength)J=D.slice(C+nD.Constants.ENDHDR);if(U)O()}function M(){if(Y.length>1&&!$)Y.sort((U,N)=>U.entryName.toLowerCase().localeCompare(N.entryName.toLowerCase()))}return{get entries(){if(!w)O();return Y.filter((U)=>!B.has(U))},get comment(){return G.decode(J)},set comment(U){J=nD.toBuffer(U,G.encode),Q.commentLength=J.length},getEntryCount:function(){if(!w)return Q.diskEntries;return Y.length},forEach:function(U){this.entries.forEach(U)},getEntry:function(U){if(!w)O();return Z[U]||null},setEntry:function(U){if(!w)O();Y.push(U),Z[U.entryName]=U,Q.totalEntries=Y.length},deleteFile:function(U,N=!0){if(!w)O();let R=Z[U];this.getEntryChildren(R,N).map((V)=>V.entryName).forEach(this.deleteEntry)},deleteEntry:function(U){if(!w)O();let N=Z[U],R=Y.indexOf(N);if(R>=0)Y.splice(R,1),delete Z[U],Q.totalEntries=Y.length},getEntryChildren:function(U,N=!0){if(!w)O();if(typeof U==="object")if(U.isDirectory&&N){let R=[],z=U.entryName;for(let V of Y)if(V.entryName.startsWith(z))R.push(V);return R}else return[U];return[]},getChildCount:function(U){if(U&&U.isDirectory){let N=this.getEntryChildren(U);return N.includes(U)?N.length-1:N.length}return 0},compressToBuffer:function(){if(!w)O();M();let U=[],N=[],R=0,z=0;Q.size=0,Q.offset=0;let V=0;for(let y of this.entries){let A=y.getCompressedData();y.header.offset=z;let k=y.packLocalHeader(),f=k.length+A.length;z+=f,U.push(k),U.push(A);let S=y.packCentralHeader();N.push(S),Q.size+=S.length,R+=f+S.length,V++}R+=Q.mainHeaderSize,Q.offset=z,Q.totalEntries=V,z=0;let L=Buffer.alloc(R);for(let y of U)y.copy(L,z),z+=y.length;for(let y of N)y.copy(L,z),z+=y.length;let C=Q.toBinary();if(J)J.copy(C,nD.Constants.ENDHDR);return C.copy(L,z),D=L,w=!1,L},toAsyncBuffer:function(U,N,R,z){try{if(!w)O();M();let V=[],L=[],C=0,y=0,A=0;Q.size=0,Q.offset=0;let k=function(f){if(f.length>0){let S=f.shift(),v=S.entryName+S.extra.toString();if(R)R(v);S.getCompressedDataAsync(function(b){if(z)z(v);S.header.offset=y;let n=S.packLocalHeader(),h=n.length+b.length;y+=h,V.push(n),V.push(b);let E=S.packCentralHeader();L.push(E),Q.size+=E.length,C+=h+E.length,A++,k(f)})}else{C+=Q.mainHeaderSize,Q.offset=y,Q.totalEntries=A,y=0;let S=Buffer.alloc(C);V.forEach(function(b){b.copy(S,y),y+=b.length}),L.forEach(function(b){b.copy(S,y),y+=b.length});let v=Q.toBinary();if(J)J.copy(v,nD.Constants.ENDHDR);v.copy(S,y),D=S,w=!1,U(S)}};k(Array.from(this.entries))}catch(V){N(V)}}}}});var Mw=T((JQ0,dH)=>{var WD=k5(),AD=require("path"),tg=zw(),rg=gH(),K9=(...D)=>WD.findLast(D,(X)=>typeof X==="boolean"),mH=(...D)=>WD.findLast(D,(X)=>typeof X==="string"),sg=(...D)=>WD.findLast(D,(X)=>typeof X==="function"),og={noSort:!1,readEntries:!1,method:WD.Constants.NONE,fs:null};dH.exports=function(D,X){let Y=null,Z=Object.assign(Object.create(null),og);if(D&&typeof D==="object"){if(!(D instanceof Uint8Array)){if(Object.assign(Z,D),D=Z.input?Z.input:void 0,Z.input)delete Z.input}if(Buffer.isBuffer(D))Y=D,Z.method=WD.Constants.BUFFER,D=void 0}Object.assign(Z,X);let J=new WD(Z);if(typeof Z.decoder!=="object"||typeof Z.decoder.encode!=="function"||typeof Z.decoder.decode!=="function")Z.decoder=WD.decoder;if(D&&typeof D==="string")if(J.fs.existsSync(D))Z.method=WD.Constants.FILE,Z.filename=D,Y=J.fs.readFileSync(D);else throw WD.Errors.INVALID_FILENAME();let Q=new rg(Y,Z),{canonical:w,sanitize:F,zipnamefix:B}=WD;function q(O){if(O&&Q){var H;if(typeof O==="string")H=Q.getEntry(AD.posix.normalize(O));if(typeof O==="object"&&typeof O.entryName<"u"&&typeof O.header<"u")H=Q.getEntry(O.entryName);if(H)return H}return null}function $(O){let{join:H,normalize:M,sep:U}=AD.posix;return H(".",M(U+O.split("\\").join(U)+U))}function G(O){if(O instanceof RegExp)return function(H){return function(M){return H.test(M)}}(O);else if(typeof O!=="function")return()=>!0;return O}let W=(O,H)=>{let M=H.slice(-1);return M=M===J.sep?J.sep:"",AD.relative(O,H)+M};return{readFile:function(O,H){var M=q(O);return M&&M.getData(H)||null},childCount:function(O){let H=q(O);if(H)return Q.getChildCount(H)},readFileAsync:function(O,H){var M=q(O);if(M)M.getDataAsync(H);else H(null,"getEntry failed for:"+O)},readAsText:function(O,H){var M=q(O);if(M){var U=M.getData();if(U&&U.length)return U.toString(H||"utf8")}return""},readAsTextAsync:function(O,H,M){var U=q(O);if(U)U.getDataAsync(function(N,R){if(R){H(N,R);return}if(N&&N.length)H(N.toString(M||"utf8"));else H("")});else H("")},deleteFile:function(O,H=!0){var M=q(O);if(M)Q.deleteFile(M.entryName,H)},deleteEntry:function(O){var H=q(O);if(H)Q.deleteEntry(H.entryName)},addZipComment:function(O){Q.comment=O},getZipComment:function(){return Q.comment||""},addZipEntryComment:function(O,H){var M=q(O);if(M)M.comment=H},getZipEntryComment:function(O){var H=q(O);if(H)return H.comment||"";return""},updateFile:function(O,H){var M=q(O);if(M)M.setData(H)},addLocalFile:function(O,H,M,U){if(J.fs.existsSync(O)){H=H?$(H):"";let N=AD.win32.basename(AD.win32.normalize(O));H+=M?M:N;let R=J.fs.statSync(O),z=R.isFile()?J.fs.readFileSync(O):Buffer.alloc(0);if(R.isDirectory())H+=J.sep;this.addFile(H,z,U,R)}else throw WD.Errors.FILE_NOT_FOUND(O)},addLocalFileAsync:function(O,H){O=typeof O==="object"?O:{localPath:O};let M=AD.resolve(O.localPath),{comment:U}=O,{zipPath:N,zipName:R}=O,z=this;J.fs.stat(M,function(V,L){if(V)return H(V,!1);N=N?$(N):"";let C=AD.win32.basename(AD.win32.normalize(M));if(N+=R?R:C,L.isFile())J.fs.readFile(M,function(y,A){if(y)return H(y,!1);return z.addFile(N,A,U,L),setImmediate(H,void 0,!0)});else if(L.isDirectory())return N+=J.sep,z.addFile(N,Buffer.alloc(0),U,L),setImmediate(H,void 0,!0)})},addLocalFolder:function(O,H,M){if(M=G(M),H=H?$(H):"",O=AD.normalize(O),J.fs.existsSync(O)){let U=J.findFiles(O),N=this;if(U.length)for(let R of U){let z=AD.join(H,W(O,R));if(M(z))N.addLocalFile(R,AD.dirname(z))}}else throw WD.Errors.FILE_NOT_FOUND(O)},addLocalFolderAsync:function(O,H,M,U){U=G(U),M=M?$(M):"",O=AD.normalize(O);var N=this;J.fs.open(O,"r",function(R){if(R&&R.code==="ENOENT")H(void 0,WD.Errors.FILE_NOT_FOUND(O));else if(R)H(void 0,R);else{var z=J.findFiles(O),V=-1,L=function(){if(V+=1,V<z.length){var C=z[V],y=W(O,C).split("\\").join("/");if(y=y.normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^\x20-\x7E]/g,""),U(y))J.fs.stat(C,function(A,k){if(A)H(void 0,A);if(k.isFile())J.fs.readFile(C,function(f,S){if(f)H(void 0,f);else N.addFile(M+y,S,"",k),L()});else N.addFile(M+y+"/",Buffer.alloc(0),"",k),L()});else process.nextTick(()=>{L()})}else H(!0,void 0)};L()}})},addLocalFolderAsync2:function(O,H){let M=this;O=typeof O==="object"?O:{localPath:O},localPath=AD.resolve($(O.localPath));let{zipPath:U,filter:N,namefix:R}=O;if(N instanceof RegExp)N=function(L){return function(C){return L.test(C)}}(N);else if(typeof N!=="function")N=function(){return!0};if(U=U?$(U):"",R=="latin1")R=(L)=>L.normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[^\x20-\x7E]/g,"");if(typeof R!=="function")R=(L)=>L;let z=(L)=>AD.join(U,R(W(localPath,L))),V=(L)=>AD.win32.basename(AD.win32.normalize(R(L)));J.fs.open(localPath,"r",function(L){if(L&&L.code==="ENOENT")H(void 0,WD.Errors.FILE_NOT_FOUND(localPath));else if(L)H(void 0,L);else J.findFilesAsync(localPath,function(C,y){if(C)return H(C);if(y=y.filter((A)=>N(z(A))),!y.length)H(void 0,!1);setImmediate(y.reverse().reduce(function(A,k){return function(f,S){if(f||S===!1)return setImmediate(A,f,!1);M.addLocalFileAsync({localPath:k,zipPath:AD.dirname(z(k)),zipName:V(k)},A)}},H))})})},addLocalFolderPromise:function(O,H){return new Promise((M,U)=>{this.addLocalFolderAsync2(Object.assign({localPath:O},H),(N,R)=>{if(N)U(N);if(R)M(this)})})},addFile:function(O,H,M,U){O=B(O);let N=q(O),R=N!=null;if(!R)N=new tg(Z),N.entryName=O;N.comment=M||"";let z=typeof U==="object"&&U instanceof J.fs.Stats;if(z)N.header.time=U.mtime;var V=N.isDirectory?16:0;let L=N.isDirectory?16384:32768;if(z)L|=4095&U.mode;else if(typeof U==="number")L|=4095&U;else L|=N.isDirectory?493:420;if(V=(V|L<<16)>>>0,N.attr=V,N.setData(H),!R)Q.setEntry(N);return N},getEntries:function(O){return Q.password=O,Q?Q.entries:[]},getEntry:function(O){return q(O)},getEntryCount:function(){return Q.getEntryCount()},forEach:function(O){return Q.forEach(O)},extractEntryTo:function(O,H,M,U,N,R){U=K9(!1,U),N=K9(!1,N),M=K9(!0,M),R=mH(N,R);var z=q(O);if(!z)throw WD.Errors.NO_ENTRY();var V=w(z.entryName),L=F(H,R&&!z.isDirectory?R:M?V:AD.basename(V));if(z.isDirectory){var C=Q.getEntryChildren(z);return C.forEach(function(k){if(k.isDirectory)return;var f=k.getData();if(!f)throw WD.Errors.CANT_EXTRACT_FILE();var S=w(k.entryName),v=F(H,M?S:AD.basename(S));let b=N?k.header.fileAttr:void 0;J.writeFileTo(v,f,U,b)}),!0}var y=z.getData(Q.password);if(!y)throw WD.Errors.CANT_EXTRACT_FILE();if(J.fs.existsSync(L)&&!U)throw WD.Errors.CANT_OVERRIDE();let A=N?O.header.fileAttr:void 0;return J.writeFileTo(L,y,U,A),!0},test:function(O){if(!Q)return!1;for(var H in Q.entries)try{if(H.isDirectory)continue;var M=Q.entries[H].getData(O);if(!M)return!1}catch(U){return!1}return!0},extractAllTo:function(O,H,M,U){if(M=K9(!1,M),U=mH(M,U),H=K9(!1,H),!Q)throw WD.Errors.NO_ZIP();Q.entries.forEach(function(N){var R=F(O,w(N.entryName));if(N.isDirectory){J.makeDir(R);return}var z=N.getData(U);if(!z)throw WD.Errors.CANT_EXTRACT_FILE();let V=M?N.header.fileAttr:void 0;J.writeFileTo(R,z,H,V);try{J.fs.utimesSync(R,N.header.time,N.header.time)}catch(L){throw WD.Errors.CANT_EXTRACT_FILE()}})},extractAllToAsync:function(O,H,M,U){if(U=sg(H,M,U),M=K9(!1,M),H=K9(!1,H),!U)return new Promise((L,C)=>{this.extractAllToAsync(O,H,M,function(y){if(y)C(y);else L(this)})});if(!Q){U(WD.Errors.NO_ZIP());return}O=AD.resolve(O);let N=(L)=>F(O,AD.normalize(w(L.entryName))),R=(L,C)=>Error(L+': "'+C+'"'),z=[],V=[];Q.entries.forEach((L)=>{if(L.isDirectory)z.push(L);else V.push(L)});for(let L of z){let C=N(L),y=M?L.header.fileAttr:void 0;try{if(J.makeDir(C),y)J.fs.chmodSync(C,y);J.fs.utimesSync(C,L.header.time,L.header.time)}catch(A){U(R("Unable to create folder",C))}}V.reverse().reduce(function(L,C){return function(y){if(y)L(y);else{let A=AD.normalize(w(C.entryName)),k=F(O,A);C.getDataAsync(function(f,S){if(S)L(S);else if(!f)L(WD.Errors.CANT_EXTRACT_FILE());else{let v=M?C.header.fileAttr:void 0;J.writeFileToAsync(k,f,H,v,function(b){if(!b)L(R("Unable to write file",k));J.fs.utimes(k,C.header.time,C.header.time,function(n){if(n)L(R("Unable to set times",k));else L()})})}})}}},U)()},writeZip:function(O,H){if(arguments.length===1){if(typeof O==="function")H=O,O=""}if(!O&&Z.filename)O=Z.filename;if(!O)return;var M=Q.compressToBuffer();if(M){var U=J.writeFileTo(O,M,!0);if(typeof H==="function")H(!U?Error("failed"):null,"")}},writeZipPromise:function(O,H){let{overwrite:M,perm:U}=Object.assign({overwrite:!0},H);return new Promise((N,R)=>{if(!O&&Z.filename)O=Z.filename;if(!O)R("ADM-ZIP: ZIP File Name Missing");this.toBufferPromise().then((z)=>{let V=(L)=>L?N(L):R("ADM-ZIP: Wasn't able to write zip file");J.writeFileToAsync(O,z,M,U,V)},R)})},toBufferPromise:function(){return new Promise((O,H)=>{Q.toAsyncBuffer(O,H)})},toBuffer:function(O,H,M,U){if(typeof O==="function")return Q.toAsyncBuffer(O,H,M,U),null;return Q.compressToBuffer()}}}});var iH=T((QQ0,nH)=>{var lH={};nH.exports=lH;var cH={reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29],black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],grey:[90,39],brightRed:[91,39],brightGreen:[92,39],brightYellow:[93,39],brightBlue:[94,39],brightMagenta:[95,39],brightCyan:[96,39],brightWhite:[97,39],bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgGray:[100,49],bgGrey:[100,49],bgBrightRed:[101,49],bgBrightGreen:[102,49],bgBrightYellow:[103,49],bgBrightBlue:[104,49],bgBrightMagenta:[105,49],bgBrightCyan:[106,49],bgBrightWhite:[107,49],blackBG:[40,49],redBG:[41,49],greenBG:[42,49],yellowBG:[43,49],blueBG:[44,49],magentaBG:[45,49],cyanBG:[46,49],whiteBG:[47,49]};Object.keys(cH).forEach(function(D){var X=cH[D],Y=lH[D]=[];Y.open="\x1B["+X[0]+"m",Y.close="\x1B["+X[1]+"m"})});var aH=T((wQ0,pH)=>{pH.exports=function(D,X){X=X||process.argv;var Y=X.indexOf("--"),Z=/^-{1,2}/.test(D)?"":"--",J=X.indexOf(Z+D);return J!==-1&&(Y===-1?!0:J<Y)}});var rH=T((FQ0,tH)=>{var eg=require("os"),$8=aH(),B1=process.env,h5=void 0;if($8("no-color")||$8("no-colors")||$8("color=false"))h5=!1;else if($8("color")||$8("colors")||$8("color=true")||$8("color=always"))h5=!0;if("FORCE_COLOR"in B1)h5=B1.FORCE_COLOR.length===0||parseInt(B1.FORCE_COLOR,10)!==0;function Dm(D){if(D===0)return!1;return{level:D,hasBasic:!0,has256:D>=2,has16m:D>=3}}function Xm(D){if(h5===!1)return 0;if($8("color=16m")||$8("color=full")||$8("color=truecolor"))return 3;if($8("color=256"))return 2;if(D&&!D.isTTY&&h5!==!0)return 0;var X=h5?1:0;if(process.platform==="win32"){var Y=eg.release().split(".");if(Number(process.versions.node.split(".")[0])>=8&&Number(Y[0])>=10&&Number(Y[2])>=10586)return Number(Y[2])>=14931?3:2;return 1}if("CI"in B1){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(function(J){return J in B1})||B1.CI_NAME==="codeship")return 1;return X}if("TEAMCITY_VERSION"in B1)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(B1.TEAMCITY_VERSION)?1:0;if("TERM_PROGRAM"in B1){var Z=parseInt((B1.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(B1.TERM_PROGRAM){case"iTerm.app":return Z>=3?3:2;case"Hyper":return 3;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(B1.TERM))return 2;if(/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(B1.TERM))return 1;if("COLORTERM"in B1)return 1;if(B1.TERM==="dumb")return X;return X}function Lw(D){var X=Xm(D);return Dm(X)}tH.exports={supportsColor:Lw,stdout:Lw(process.stdout),stderr:Lw(process.stderr)}});var oH=T((BQ0,sH)=>{sH.exports=function(X,Y){var Z="";X=X||"Run the trap, drop the bass",X=X.split("");var J={a:["@","Ą","Ⱥ","Ʌ","Δ","Λ","Д"],b:["ß","Ɓ","Ƀ","ɮ","β","฿"],c:["©","Ȼ","Ͼ"],d:["Ð","Ɗ","Ԁ","ԁ","Ԃ","ԃ"],e:["Ë","ĕ","Ǝ","ɘ","Σ","ξ","Ҽ","੬"],f:["Ӻ"],g:["ɢ"],h:["Ħ","ƕ","Ң","Һ","Ӈ","Ԋ"],i:["༏"],j:["Ĵ"],k:["ĸ","Ҡ","Ӄ","Ԟ"],l:["Ĺ"],m:["ʍ","Ӎ","ӎ","Ԡ","ԡ","൩"],n:["Ñ","ŋ","Ɲ","Ͷ","Π","Ҋ"],o:["Ø","õ","ø","Ǿ","ʘ","Ѻ","ם","۝","๏"],p:["Ƿ","Ҏ"],q:["্"],r:["®","Ʀ","Ȑ","Ɍ","ʀ","Я"],s:["§","Ϟ","ϟ","Ϩ"],t:["Ł","Ŧ","ͳ"],u:["Ʊ","Ս"],v:["ט"],w:["Ш","Ѡ","Ѽ","൰"],x:["Ҳ","Ӿ","Ӽ","ӽ"],y:["¥","Ұ","Ӌ"],z:["Ƶ","ɀ"]};return X.forEach(function(Q){Q=Q.toLowerCase();var w=J[Q]||[" "],F=Math.floor(Math.random()*w.length);if(typeof J[Q]<"u")Z+=J[Q][F];else Z+=Q}),Z}});var DK=T((qQ0,eH)=>{eH.exports=function(X,Y){X=X||" he is here ";var Z={up:["̍","̎","̄","̅","̿","̑","̆","̐","͒","͗","͑","̇","̈","̊","͂","̓","̈","͊","͋","͌","̃","̂","̌","͐","̀","́","̋","̏","̒","̓","̔","̽","̉","ͣ","ͤ","ͥ","ͦ","ͧ","ͨ","ͩ","ͪ","ͫ","ͬ","ͭ","ͮ","ͯ","̾","͛","͆","̚"],down:["̖","̗","̘","̙","̜","̝","̞","̟","̠","̤","̥","̦","̩","̪","̫","̬","̭","̮","̯","̰","̱","̲","̳","̹","̺","̻","̼","ͅ","͇","͈","͉","͍","͎","͓","͔","͕","͖","͙","͚","̣"],mid:["̕","̛","̀","́","͘","̡","̢","̧","̨","̴","̵","̶","͜","͝","͞","͟","͠","͢","̸","̷","͡"," ҉"]},J=[].concat(Z.up,Z.down,Z.mid);function Q(B){var q=Math.floor(Math.random()*B);return q}function w(B){var q=!1;return J.filter(function($){q=$===B}),q}function F(B,q){var $="",G,W;q=q||{},q.up=typeof q.up<"u"?q.up:!0,q.mid=typeof q.mid<"u"?q.mid:!0,q.down=typeof q.down<"u"?q.down:!0,q.size=typeof q.size<"u"?q.size:"maxi",B=B.split("");for(W in B){if(w(W))continue;switch($=$+B[W],G={up:0,down:0,mid:0},q.size){case"mini":G.up=Q(8),G.mid=Q(2),G.down=Q(8);break;case"maxi":G.up=Q(16)+3,G.mid=Q(4)+1,G.down=Q(64)+3;break;default:G.up=Q(8)+1,G.mid=Q(6)/2,G.down=Q(8)+1;break}var O=["up","mid","down"];for(var H in O){var M=O[H];for(var U=0;U<=G[M];U++)if(q[M])$=$+Z[M][Q(Z[M].length)]}}return $}return F(X,Y)}});var YK=T(($Q0,XK)=>{XK.exports=function(D){return function(X,Y,Z){if(X===" ")return X;switch(Y%3){case 0:return D.red(X);case 1:return D.white(X);case 2:return D.blue(X)}}}});var JK=T((GQ0,ZK)=>{ZK.exports=function(D){return function(X,Y,Z){return Y%2===0?X:D.inverse(X)}}});var wK=T((OQ0,QK)=>{QK.exports=function(D){var X=["red","yellow","green","blue","magenta"];return function(Y,Z,J){if(Y===" ")return Y;else return D[X[Z++%X.length]](Y)}}});var BK=T((WQ0,FK)=>{FK.exports=function(D){var X=["underline","inverse","grey","yellow","red","green","blue","white","cyan","magenta","brightYellow","brightRed","brightGreen","brightBlue","brightWhite","brightCyan","brightMagenta"];return function(Y,Z,J){return Y===" "?Y:D[X[Math.round(Math.random()*(X.length-2))]](Y)}}});var WK=T((KQ0,OK)=>{var E0={};OK.exports=E0;E0.themes={};var Ym=require("util"),z9=E0.styles=iH(),qK=Object.defineProperties,Zm=new RegExp(/[\r\n]+/g);E0.supportsColor=rH().supportsColor;if(typeof E0.enabled>"u")E0.enabled=E0.supportsColor()!==!1;E0.enable=function(){E0.enabled=!0};E0.disable=function(){E0.enabled=!1};E0.stripColors=E0.strip=function(D){return(""+D).replace(/\x1B\[\d+m/g,"")};var HQ0=E0.stylize=function(X,Y){if(!E0.enabled)return X+"";var Z=z9[Y];if(!Z&&Y in E0)return E0[Y](X);return Z.open+X+Z.close},Jm=/[|\\{}()[\]^$+*?.]/g,Qm=function(D){if(typeof D!=="string")throw TypeError("Expected a string");return D.replace(Jm,"\\$&")};function $K(D){var X=function Y(){return Fm.apply(Y,arguments)};return X._styles=D,X.__proto__=wm,X}var GK=function(){var D={};return z9.grey=z9.gray,Object.keys(z9).forEach(function(X){z9[X].closeRe=new RegExp(Qm(z9[X].close),"g"),D[X]={get:function(){return $K(this._styles.concat(X))}}}),D}(),wm=qK(function(){},GK);function Fm(){var D=Array.prototype.slice.call(arguments),X=D.map(function(w){if(w!=null&&w.constructor===String)return w;else return Ym.inspect(w)}).join(" ");if(!E0.enabled||!X)return X;var Y=X.indexOf(`
41
41
  `)!=-1,Z=this._styles,J=Z.length;while(J--){var Q=z9[Z[J]];if(X=Q.open+X.replace(Q.closeRe,Q.open)+Q.close,Y)X=X.replace(Zm,function(w){return Q.close+w+Q.open})}return X}E0.setTheme=function(D){if(typeof D==="string"){console.log("colors.setTheme now only accepts an object, not a string. If you are trying to set a theme from a file, it is now your (the caller's) responsibility to require the file. The old syntax looked like colors.setTheme(__dirname + '/../themes/generic-logging.js'); The new syntax looks like colors.setTheme(require(__dirname + '/../themes/generic-logging.js'));");return}for(var X in D)(function(Y){E0[Y]=function(Z){if(typeof D[Y]==="object"){var J=Z;for(var Q in D[Y])J=E0[D[Y][Q]](J);return J}return E0[D[Y]](Z)}})(X)};function Bm(){var D={};return Object.keys(GK).forEach(function(X){D[X]={get:function(){return $K([X])}}}),D}var qm=function(X,Y){var Z=Y.split("");return Z=Z.map(X),Z.join("")};E0.trap=oH();E0.zalgo=DK();E0.maps={};E0.maps.america=YK()(E0);E0.maps.zebra=JK()(E0);E0.maps.rainbow=wK()(E0);E0.maps.random=BK()(E0);for(Vw in E0.maps)(function(D){E0[D]=function(X){return qm(E0.maps[D],X)}})(Vw);var Vw;qK(E0,Bm())});var KK=T((zQ0,HK)=>{var $m=WK();HK.exports=$m});var zK=T((Uw)=>{Uw.indent=function(X){return Array(X+1).join(" ")};Uw.getMaxIndexLength=function(D){var X=0;return Object.getOwnPropertyNames(D).forEach(function(Y){if(D[Y]===void 0)return;X=Math.max(X,Y.length)}),X}});var MK=T((LQ0,Gm)=>{Gm.exports={author:"Rafael de Oleza <rafeca@gmail.com> (https://github.com/rafeca)",name:"prettyjson",description:"Package for formatting JSON data in a coloured YAML-style, perfect for CLI output",version:"1.2.5",homepage:"http://rafeca.com/prettyjson",keywords:["json","cli","formatting","colors"],repository:{type:"git",url:"https://github.com/rafeca/prettyjson.git"},bugs:{url:"https://github.com/rafeca/prettyjson/issues"},main:"./lib/prettyjson",files:["bin/prettyjson","lib/*.js"],license:"MIT",scripts:{test:"npm run jshint && mocha --reporter spec",testwin:"node ./node_modules/mocha/bin/mocha --reporter spec",jshint:"jshint lib/*.js test/*.js",coverage:"istanbul cover _mocha --report lcovonly -- -R spec",coveralls:"npm run coverage && cat ./coverage/lcov.info | coveralls && rm -rf ./coverage",changelog:"git log $(git describe --tags --abbrev=0)..HEAD --pretty='* %s' --first-parent"},bin:{prettyjson:"./bin/prettyjson"},dependencies:{colors:"1.4.0",minimist:"^1.2.0"},devDependencies:{coveralls:"^2.11.15",istanbul:"^0.4.5",jshint:"^2.9.4",mocha:"^3.1.2","mocha-lcov-reporter":"^1.2.0",should:"^11.1.1"}}});var LK=T((P4)=>{var N8=KK(),I6=zK(),Om=/[^\w\s\n\r\v\t\.,]/i;P4.version=MK().version;var Nw=function(D,X){return D!==void 0||X.renderUndefined},qY=function(D,X,Y){if(typeof D==="boolean"||typeof D==="number"||typeof D==="function"||D===null||D===void 0||D instanceof Date)return!0;if(typeof D==="string"&&D.indexOf(`
42
42
  `)===-1)return!0;if(Y.inlineArrays&&!X){if(Array.isArray(D)&&qY(D[0],!0,Y))return!0}return!1},Wm=function(D,X){if(X.noColor)return D;if(typeof D==="string")return X.stringColor?N8[X.stringColor](D):D;var Y=D+"";if(D===!0)return N8.green(Y);if(D===!1)return N8.red(Y);if(D===null||D===void 0)return N8.grey(Y);if(typeof D==="number")if(D>=0)return N8[X.positiveNumberColor](Y);else return N8[X.negativeNumberColor](Y);if(typeof D==="function")return"function() {}";if(Array.isArray(D))return D.join(", ");return Y},Rw=function(D,X){if(D.multilineStringColor===null||D.noColor)return X;else return N8[D.multilineStringColor](X)},Hm=function(D,X,Y){var Z=D.split(`
43
43
  `);return Z=Z.map(function(J){return I6.indent(X)+Rw(Y,J)}),Z.join(`
@@ -53,12 +53,12 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
53
53
 
54
54
  `)}),X.__defineSetter__("stack",function(Y){return[Y].concat(X.stack).join(`
55
55
 
56
- `)}),X}});var dM=T((tQ0,mM)=>{var S6=require("constants"),Gp=process.cwd,sY=null,Op=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){if(!sY)sY=Gp.call(process);return sY};try{process.cwd()}catch(D){}if(typeof process.chdir==="function"){if(oY=process.chdir,process.chdir=function(D){sY=null,oY.call(process,D)},Object.setPrototypeOf)Object.setPrototypeOf(process.chdir,oY)}var oY;mM.exports=Wp;function Wp(D){if(S6.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./))X(D);if(!D.lutimes)Y(D);if(D.chown=Q(D.chown),D.fchown=Q(D.fchown),D.lchown=Q(D.lchown),D.chmod=Z(D.chmod),D.fchmod=Z(D.fchmod),D.lchmod=Z(D.lchmod),D.chownSync=w(D.chownSync),D.fchownSync=w(D.fchownSync),D.lchownSync=w(D.lchownSync),D.chmodSync=J(D.chmodSync),D.fchmodSync=J(D.fchmodSync),D.lchmodSync=J(D.lchmodSync),D.stat=F(D.stat),D.fstat=F(D.fstat),D.lstat=F(D.lstat),D.statSync=B(D.statSync),D.fstatSync=B(D.fstatSync),D.lstatSync=B(D.lstatSync),D.chmod&&!D.lchmod)D.lchmod=function($,G,W){if(W)process.nextTick(W)},D.lchmodSync=function(){};if(D.chown&&!D.lchown)D.lchown=function($,G,W,O){if(O)process.nextTick(O)},D.lchownSync=function(){};if(Op==="win32")D.rename=typeof D.rename!=="function"?D.rename:function($){function G(W,O,H){var M=Date.now(),U=0;$(W,O,function N(R){if(R&&(R.code==="EACCES"||R.code==="EPERM"||R.code==="EBUSY")&&Date.now()-M<60000){if(setTimeout(function(){D.stat(O,function(z,V){if(z&&z.code==="ENOENT")$(W,O,N);else H(R)})},U),U<100)U+=10;return}if(H)H(R)})}if(Object.setPrototypeOf)Object.setPrototypeOf(G,$);return G}(D.rename);D.read=typeof D.read!=="function"?D.read:function($){function G(W,O,H,M,U,N){var R;if(N&&typeof N==="function"){var z=0;R=function(V,L,C){if(V&&V.code==="EAGAIN"&&z<10)return z++,$.call(D,W,O,H,M,U,R);N.apply(this,arguments)}}return $.call(D,W,O,H,M,U,R)}if(Object.setPrototypeOf)Object.setPrototypeOf(G,$);return G}(D.read),D.readSync=typeof D.readSync!=="function"?D.readSync:function($){return function(G,W,O,H,M){var U=0;while(!0)try{return $.call(D,G,W,O,H,M)}catch(N){if(N.code==="EAGAIN"&&U<10){U++;continue}throw N}}}(D.readSync);function X($){$.lchmod=function(G,W,O){$.open(G,S6.O_WRONLY|S6.O_SYMLINK,W,function(H,M){if(H){if(O)O(H);return}$.fchmod(M,W,function(U){$.close(M,function(N){if(O)O(U||N)})})})},$.lchmodSync=function(G,W){var O=$.openSync(G,S6.O_WRONLY|S6.O_SYMLINK,W),H=!0,M;try{M=$.fchmodSync(O,W),H=!1}finally{if(H)try{$.closeSync(O)}catch(U){}else $.closeSync(O)}return M}}function Y($){if(S6.hasOwnProperty("O_SYMLINK")&&$.futimes)$.lutimes=function(G,W,O,H){$.open(G,S6.O_SYMLINK,function(M,U){if(M){if(H)H(M);return}$.futimes(U,W,O,function(N){$.close(U,function(R){if(H)H(N||R)})})})},$.lutimesSync=function(G,W,O){var H=$.openSync(G,S6.O_SYMLINK),M,U=!0;try{M=$.futimesSync(H,W,O),U=!1}finally{if(U)try{$.closeSync(H)}catch(N){}else $.closeSync(H)}return M};else if($.futimes)$.lutimes=function(G,W,O,H){if(H)process.nextTick(H)},$.lutimesSync=function(){}}function Z($){if(!$)return $;return function(G,W,O){return $.call(D,G,W,function(H){if(q(H))H=null;if(O)O.apply(this,arguments)})}}function J($){if(!$)return $;return function(G,W){try{return $.call(D,G,W)}catch(O){if(!q(O))throw O}}}function Q($){if(!$)return $;return function(G,W,O,H){return $.call(D,G,W,O,function(M){if(q(M))M=null;if(H)H.apply(this,arguments)})}}function w($){if(!$)return $;return function(G,W,O){try{return $.call(D,G,W,O)}catch(H){if(!q(H))throw H}}}function F($){if(!$)return $;return function(G,W,O){if(typeof W==="function")O=W,W=null;function H(M,U){if(U){if(U.uid<0)U.uid+=4294967296;if(U.gid<0)U.gid+=4294967296}if(O)O.apply(this,arguments)}return W?$.call(D,G,W,H):$.call(D,G,H)}}function B($){if(!$)return $;return function(G,W){var O=W?$.call(D,G,W):$.call(D,G);if(O){if(O.uid<0)O.uid+=4294967296;if(O.gid<0)O.gid+=4294967296}return O}}function q($){if(!$)return!0;if($.code==="ENOSYS")return!0;var G=!process.getuid||process.getuid()!==0;if(G){if($.code==="EINVAL"||$.code==="EPERM")return!0}return!1}}});var nM=T((rQ0,lM)=>{var cM=require("stream").Stream;lM.exports=Hp;function Hp(D){return{ReadStream:X,WriteStream:Y};function X(Z,J){if(!(this instanceof X))return new X(Z,J);cM.call(this);var Q=this;this.path=Z,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=65536,J=J||{};var w=Object.keys(J);for(var F=0,B=w.length;F<B;F++){var q=w[F];this[q]=J[q]}if(this.encoding)this.setEncoding(this.encoding);if(this.start!==void 0){if(typeof this.start!=="number")throw TypeError("start must be a Number");if(this.end===void 0)this.end=1/0;else if(typeof this.end!=="number")throw TypeError("end must be a Number");if(this.start>this.end)throw Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){Q._read()});return}D.open(this.path,this.flags,this.mode,function($,G){if($){Q.emit("error",$),Q.readable=!1;return}Q.fd=G,Q.emit("open",G),Q._read()})}function Y(Z,J){if(!(this instanceof Y))return new Y(Z,J);cM.call(this),this.path=Z,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,J=J||{};var Q=Object.keys(J);for(var w=0,F=Q.length;w<F;w++){var B=Q[w];this[B]=J[B]}if(this.start!==void 0){if(typeof this.start!=="number")throw TypeError("start must be a Number");if(this.start<0)throw Error("start must be >= zero");this.pos=this.start}if(this.busy=!1,this._queue=[],this.fd===null)this._open=D.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush()}}});var pM=T((sQ0,iM)=>{iM.exports=zp;var Kp=Object.getPrototypeOf||function(D){return D.__proto__};function zp(D){if(D===null||typeof D!=="object")return D;if(D instanceof Object)var X={__proto__:Kp(D)};else var X=Object.create(null);return Object.getOwnPropertyNames(D).forEach(function(Y){Object.defineProperty(X,Y,Object.getOwnPropertyDescriptor(D,Y))}),X}});var ED=T((oQ0,UF)=>{var HD=require("fs"),Mp=dM(),Lp=nM(),Vp=pM(),eY=require("util"),pD,XZ;if(typeof Symbol==="function"&&typeof Symbol.for==="function")pD=Symbol.for("graceful-fs.queue"),XZ=Symbol.for("graceful-fs.previous");else pD="___graceful-fs.queue",XZ="___graceful-fs.previous";function Up(){}function tM(D,X){Object.defineProperty(D,pD,{get:function(){return X}})}var h9=Up;if(eY.debuglog)h9=eY.debuglog("gfs4");else if(/\bgfs4\b/i.test(process.env.NODE_DEBUG||""))h9=function(){var D=eY.format.apply(eY,arguments);D="GFS4: "+D.split(/\n/).join(`
57
- GFS4: `),console.error(D)};if(!HD[pD]){if(MF=global[pD]||[],tM(HD,MF),HD.close=function(D){function X(Y,Z){return D.call(HD,Y,function(J){if(!J)aM();if(typeof Z==="function")Z.apply(this,arguments)})}return Object.defineProperty(X,XZ,{value:D}),X}(HD.close),HD.closeSync=function(D){function X(Y){D.apply(HD,arguments),aM()}return Object.defineProperty(X,XZ,{value:D}),X}(HD.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||""))process.on("exit",function(){h9(HD[pD]),require("assert").equal(HD[pD].length,0)})}var MF;if(!global[pD])tM(global,HD[pD]);UF.exports=LF(Vp(HD));if(process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!HD.__patched)UF.exports=LF(HD),HD.__patched=!0;function LF(D){Mp(D),D.gracefulify=LF,D.createReadStream=L,D.createWriteStream=C;var X=D.readFile;D.readFile=Y;function Y(k,f,S){if(typeof f==="function")S=f,f=null;return v(k,f,S);function v(b,n,h,E){return X(b,n,function(P){if(P&&(P.code==="EMFILE"||P.code==="ENFILE"))e5([v,[b,n,h],P,E||Date.now(),Date.now()]);else if(typeof h==="function")h.apply(this,arguments)})}}var Z=D.writeFile;D.writeFile=J;function J(k,f,S,v){if(typeof S==="function")v=S,S=null;return b(k,f,S,v);function b(n,h,E,P,x){return Z(n,h,E,function(_){if(_&&(_.code==="EMFILE"||_.code==="ENFILE"))e5([b,[n,h,E,P],_,x||Date.now(),Date.now()]);else if(typeof P==="function")P.apply(this,arguments)})}}var Q=D.appendFile;if(Q)D.appendFile=w;function w(k,f,S,v){if(typeof S==="function")v=S,S=null;return b(k,f,S,v);function b(n,h,E,P,x){return Q(n,h,E,function(_){if(_&&(_.code==="EMFILE"||_.code==="ENFILE"))e5([b,[n,h,E,P],_,x||Date.now(),Date.now()]);else if(typeof P==="function")P.apply(this,arguments)})}}var F=D.copyFile;if(F)D.copyFile=B;function B(k,f,S,v){if(typeof S==="function")v=S,S=0;return b(k,f,S,v);function b(n,h,E,P,x){return F(n,h,E,function(_){if(_&&(_.code==="EMFILE"||_.code==="ENFILE"))e5([b,[n,h,E,P],_,x||Date.now(),Date.now()]);else if(typeof P==="function")P.apply(this,arguments)})}}var q=D.readdir;D.readdir=G;var $=/^v[0-5]\./;function G(k,f,S){if(typeof f==="function")S=f,f=null;var v=$.test(process.version)?function(h,E,P,x){return q(h,b(h,E,P,x))}:function(h,E,P,x){return q(h,E,b(h,E,P,x))};return v(k,f,S);function b(n,h,E,P){return function(x,_){if(x&&(x.code==="EMFILE"||x.code==="ENFILE"))e5([v,[n,h,E],x,P||Date.now(),Date.now()]);else{if(_&&_.sort)_.sort();if(typeof E==="function")E.call(this,x,_)}}}}if(process.version.substr(0,4)==="v0.8"){var W=Lp(D);N=W.ReadStream,z=W.WriteStream}var O=D.ReadStream;if(O)N.prototype=Object.create(O.prototype),N.prototype.open=R;var H=D.WriteStream;if(H)z.prototype=Object.create(H.prototype),z.prototype.open=V;Object.defineProperty(D,"ReadStream",{get:function(){return N},set:function(k){N=k},enumerable:!0,configurable:!0}),Object.defineProperty(D,"WriteStream",{get:function(){return z},set:function(k){z=k},enumerable:!0,configurable:!0});var M=N;Object.defineProperty(D,"FileReadStream",{get:function(){return M},set:function(k){M=k},enumerable:!0,configurable:!0});var U=z;Object.defineProperty(D,"FileWriteStream",{get:function(){return U},set:function(k){U=k},enumerable:!0,configurable:!0});function N(k,f){if(this instanceof N)return O.apply(this,arguments),this;else return N.apply(Object.create(N.prototype),arguments)}function R(){var k=this;A(k.path,k.flags,k.mode,function(f,S){if(f){if(k.autoClose)k.destroy();k.emit("error",f)}else k.fd=S,k.emit("open",S),k.read()})}function z(k,f){if(this instanceof z)return H.apply(this,arguments),this;else return z.apply(Object.create(z.prototype),arguments)}function V(){var k=this;A(k.path,k.flags,k.mode,function(f,S){if(f)k.destroy(),k.emit("error",f);else k.fd=S,k.emit("open",S)})}function L(k,f){return new D.ReadStream(k,f)}function C(k,f){return new D.WriteStream(k,f)}var y=D.open;D.open=A;function A(k,f,S,v){if(typeof S==="function")v=S,S=null;return b(k,f,S,v);function b(n,h,E,P,x){return y(n,h,E,function(_,g){if(_&&(_.code==="EMFILE"||_.code==="ENFILE"))e5([b,[n,h,E,P],_,x||Date.now(),Date.now()]);else if(typeof P==="function")P.apply(this,arguments)})}}return D}function e5(D){h9("ENQUEUE",D[0].name,D[1]),HD[pD].push(D),VF()}var DZ;function aM(){var D=Date.now();for(var X=0;X<HD[pD].length;++X)if(HD[pD][X].length>2)HD[pD][X][3]=D,HD[pD][X][4]=D;VF()}function VF(){if(clearTimeout(DZ),DZ=void 0,HD[pD].length===0)return;var D=HD[pD].shift(),X=D[0],Y=D[1],Z=D[2],J=D[3],Q=D[4];if(J===void 0)h9("RETRY",X.name,Y),X.apply(null,Y);else if(Date.now()-J>=60000){h9("TIMEOUT",X.name,Y);var w=Y.pop();if(typeof w==="function")w.call(null,Z)}else{var F=Date.now()-Q,B=Math.max(Q-J,1),q=Math.min(B*1.2,100);if(F>=q)h9("RETRY",X.name,Y),X.apply(null,Y.concat([J]));else HD[pD].push(D)}if(DZ===void 0)DZ=setTimeout(VF,0)}});var sM=T((eQ0,rM)=>{function n1(D,X){if(typeof X==="boolean")X={forever:X};if(this._originalTimeouts=JSON.parse(JSON.stringify(D)),this._timeouts=D,this._options=X||{},this._maxRetryTime=X&&X.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever)this._cachedTimeouts=this._timeouts.slice(0)}rM.exports=n1;n1.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts};n1.prototype.stop=function(){if(this._timeout)clearTimeout(this._timeout);this._timeouts=[],this._cachedTimeouts=null};n1.prototype.retry=function(D){if(this._timeout)clearTimeout(this._timeout);if(!D)return!1;var X=new Date().getTime();if(D&&X-this._operationStart>=this._maxRetryTime)return this._errors.unshift(Error("RetryOperation timeout occurred")),!1;this._errors.push(D);var Y=this._timeouts.shift();if(Y===void 0)if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),Y=this._timeouts.shift();else return!1;var Z=this,J=setTimeout(function(){if(Z._attempts++,Z._operationTimeoutCb){if(Z._timeout=setTimeout(function(){Z._operationTimeoutCb(Z._attempts)},Z._operationTimeout),Z._options.unref)Z._timeout.unref()}Z._fn(Z._attempts)},Y);if(this._options.unref)J.unref();return!0};n1.prototype.attempt=function(D,X){if(this._fn=D,X){if(X.timeout)this._operationTimeout=X.timeout;if(X.cb)this._operationTimeoutCb=X.cb}var Y=this;if(this._operationTimeoutCb)this._timeout=setTimeout(function(){Y._operationTimeoutCb()},Y._operationTimeout);this._operationStart=new Date().getTime(),this._fn(this._attempts)};n1.prototype.try=function(D){console.log("Using RetryOperation.try() is deprecated"),this.attempt(D)};n1.prototype.start=function(D){console.log("Using RetryOperation.start() is deprecated"),this.attempt(D)};n1.prototype.start=n1.prototype.try;n1.prototype.errors=function(){return this._errors};n1.prototype.attempts=function(){return this._attempts};n1.prototype.mainError=function(){if(this._errors.length===0)return null;var D={},X=null,Y=0;for(var Z=0;Z<this._errors.length;Z++){var J=this._errors[Z],Q=J.message,w=(D[Q]||0)+1;if(D[Q]=w,w>=Y)X=J,Y=w}return X}});var oM=T((_9)=>{var Np=sM();_9.operation=function(D){var X=_9.timeouts(D);return new Np(X,{forever:D&&D.forever,unref:D&&D.unref,maxRetryTime:D&&D.maxRetryTime})};_9.timeouts=function(D){if(D instanceof Array)return[].concat(D);var X={retries:10,factor:2,minTimeout:1000,maxTimeout:1/0,randomize:!1};for(var Y in D)X[Y]=D[Y];if(X.minTimeout>X.maxTimeout)throw Error("minTimeout is greater than maxTimeout");var Z=[];for(var J=0;J<X.retries;J++)Z.push(this.createTimeout(J,X));if(D&&D.forever&&!Z.length)Z.push(this.createTimeout(J,X));return Z.sort(function(Q,w){return Q-w}),Z};_9.createTimeout=function(D,X){var Y=X.randomize?Math.random()+1:1,Z=Math.round(Y*X.minTimeout*Math.pow(X.factor,D));return Z=Math.min(Z,X.maxTimeout),Z};_9.wrap=function(D,X,Y){if(X instanceof Array)Y=X,X=null;if(!Y){Y=[];for(var Z in D)if(typeof D[Z]==="function")Y.push(Z)}for(var J=0;J<Y.length;J++){var Q=Y[J],w=D[Q];D[Q]=function(B){var q=_9.operation(X),$=Array.prototype.slice.call(arguments,1),G=$.pop();$.push(function(W){if(q.retry(W))return;if(W)arguments[0]=q.mainError();G.apply(this,arguments)}),q.attempt(function(){B.apply(D,$)})}.bind(D,w),D[Q].options=X}}});var DL=T((Xw0,eM)=>{eM.exports=oM()});var XL=T((Yw0,YZ)=>{YZ.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];if(process.platform!=="win32")YZ.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");if(process.platform==="linux")YZ.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var QZ=T((Zw0,X7)=>{var qD=global.process,v9=function(D){return D&&typeof D==="object"&&typeof D.removeListener==="function"&&typeof D.emit==="function"&&typeof D.reallyExit==="function"&&typeof D.listeners==="function"&&typeof D.kill==="function"&&typeof D.pid==="number"&&typeof D.on==="function"};if(!v9(qD))X7.exports=function(){return function(){}};else{if(NF=require("assert"),b9=XL(),RF=/^win/i.test(qD.platform),D7=require("events"),typeof D7!=="function")D7=D7.EventEmitter;if(qD.__signal_exit_emitter__)hD=qD.__signal_exit_emitter__;else hD=qD.__signal_exit_emitter__=new D7,hD.count=0,hD.emitted={};if(!hD.infinite)hD.setMaxListeners(1/0),hD.infinite=!0;X7.exports=function(D,X){if(!v9(global.process))return function(){};if(NF.equal(typeof D,"function","a callback must be provided for exit handler"),g9===!1)ZZ();var Y="exit";if(X&&X.alwaysLast)Y="afterexit";var Z=function(){if(hD.removeListener(Y,D),hD.listeners("exit").length===0&&hD.listeners("afterexit").length===0)t4()};return hD.on(Y,D),Z},t4=function(){if(!g9||!v9(global.process))return;g9=!1,b9.forEach(function(X){try{qD.removeListener(X,r4[X])}catch(Y){}}),qD.emit=s4,qD.reallyExit=JZ,hD.count-=1},X7.exports.unload=t4,x6=function(X,Y,Z){if(hD.emitted[X])return;hD.emitted[X]=!0,hD.emit(X,Y,Z)},r4={},b9.forEach(function(D){r4[D]=function(){if(!v9(global.process))return;var Y=qD.listeners(D);if(Y.length===hD.count){if(t4(),x6("exit",null,D),x6("afterexit",null,D),RF&&D==="SIGHUP")D="SIGINT";qD.kill(qD.pid,D)}}}),X7.exports.signals=function(){return b9},g9=!1,ZZ=function(){if(g9||!v9(global.process))return;g9=!0,hD.count+=1,b9=b9.filter(function(X){try{return qD.on(X,r4[X]),!0}catch(Y){return!1}}),qD.emit=EF,qD.reallyExit=AF},X7.exports.load=ZZ,JZ=qD.reallyExit,AF=function(X){if(!v9(global.process))return;qD.exitCode=X||0,x6("exit",qD.exitCode,null),x6("afterexit",qD.exitCode,null),JZ.call(qD,qD.exitCode)},s4=qD.emit,EF=function(X,Y){if(X==="exit"&&v9(global.process)){if(Y!==void 0)qD.exitCode=Y;var Z=s4.apply(this,arguments);return x6("exit",qD.exitCode,null),x6("afterexit",qD.exitCode,null),Z}else return s4.apply(this,arguments)}}var NF,b9,RF,D7,hD,t4,x6,r4,g9,ZZ,JZ,AF,s4,EF});var ZL=T((Jw0,CF)=>{var YL=Symbol();function Rp(D,X,Y){let Z=X[YL];if(Z)return X.stat(D,(Q,w)=>{if(Q)return Y(Q);Y(null,w.mtime,Z)});let J=new Date(Math.ceil(Date.now()/1000)*1000+5);X.utimes(D,J,J,(Q)=>{if(Q)return Y(Q);X.stat(D,(w,F)=>{if(w)return Y(w);let B=F.mtime.getTime()%1000===0?"s":"ms";Object.defineProperty(X,YL,{value:B}),Y(null,F.mtime,B)})})}function Ap(D){let X=Date.now();if(D==="s")X=Math.ceil(X/1000)*1000;return new Date(X)}CF.exports.probe=Rp;CF.exports.getMtime=Ap});var BL=T((Qw0,e4)=>{var Ep=require("path"),IF=ED(),Cp=DL(),jp=QZ(),JL=ZL(),s8={};function o4(D,X){return X.lockfilePath||`${D}.lock`}function PF(D,X,Y){if(!X.realpath)return Y(null,Ep.resolve(D));X.fs.realpath(D,Y)}function TF(D,X,Y){let Z=o4(D,X);X.fs.mkdir(Z,(J)=>{if(!J)return JL.probe(Z,X.fs,(Q,w,F)=>{if(Q)return X.fs.rmdir(Z,()=>{}),Y(Q);Y(null,w,F)});if(J.code!=="EEXIST")return Y(J);if(X.stale<=0)return Y(Object.assign(Error("Lock file is already being held"),{code:"ELOCKED",file:D}));X.fs.stat(Z,(Q,w)=>{if(Q){if(Q.code==="ENOENT")return TF(D,{...X,stale:0},Y);return Y(Q)}if(!QL(w,X))return Y(Object.assign(Error("Lock file is already being held"),{code:"ELOCKED",file:D}));wL(D,X,(F)=>{if(F)return Y(F);TF(D,{...X,stale:0},Y)})})})}function QL(D,X){return D.mtime.getTime()<Date.now()-X.stale}function wL(D,X,Y){X.fs.rmdir(o4(D,X),(Z)=>{if(Z&&Z.code!=="ENOENT")return Y(Z);Y()})}function wZ(D,X){let Y=s8[D];if(Y.updateTimeout)return;if(Y.updateDelay=Y.updateDelay||X.update,Y.updateTimeout=setTimeout(()=>{Y.updateTimeout=null,X.fs.stat(Y.lockfilePath,(Z,J)=>{let Q=Y.lastUpdate+X.stale<Date.now();if(Z){if(Z.code==="ENOENT"||Q)return jF(D,Y,Object.assign(Z,{code:"ECOMPROMISED"}));return Y.updateDelay=1000,wZ(D,X)}if(Y.mtime.getTime()!==J.mtime.getTime())return jF(D,Y,Object.assign(Error("Unable to update lock within the stale threshold"),{code:"ECOMPROMISED"}));let F=JL.getMtime(Y.mtimePrecision);X.fs.utimes(Y.lockfilePath,F,F,(B)=>{let q=Y.lastUpdate+X.stale<Date.now();if(Y.released)return;if(B){if(B.code==="ENOENT"||q)return jF(D,Y,Object.assign(B,{code:"ECOMPROMISED"}));return Y.updateDelay=1000,wZ(D,X)}Y.mtime=F,Y.lastUpdate=Date.now(),Y.updateDelay=null,wZ(D,X)})})},Y.updateDelay),Y.updateTimeout.unref)Y.updateTimeout.unref()}function jF(D,X,Y){if(X.released=!0,X.updateTimeout)clearTimeout(X.updateTimeout);if(s8[D]===X)delete s8[D];X.options.onCompromised(Y)}function Tp(D,X,Y){X={stale:1e4,update:null,realpath:!0,retries:0,fs:IF,onCompromised:(Z)=>{throw Z},...X},X.retries=X.retries||0,X.retries=typeof X.retries==="number"?{retries:X.retries}:X.retries,X.stale=Math.max(X.stale||0,2000),X.update=X.update==null?X.stale/2:X.update||0,X.update=Math.max(Math.min(X.update,X.stale/2),1000),PF(D,X,(Z,J)=>{if(Z)return Y(Z);let Q=Cp.operation(X.retries);Q.attempt(()=>{TF(J,X,(w,F,B)=>{if(Q.retry(w))return;if(w)return Y(Q.mainError());let q=s8[J]={lockfilePath:o4(J,X),mtime:F,mtimePrecision:B,options:X,lastUpdate:Date.now()};wZ(J,X),Y(null,($)=>{if(q.released)return $&&$(Object.assign(Error("Lock is already released"),{code:"ERELEASED"}));FL(J,{...X,realpath:!1},$)})})})})}function FL(D,X,Y){X={fs:IF,realpath:!0,...X},PF(D,X,(Z,J)=>{if(Z)return Y(Z);let Q=s8[J];if(!Q)return Y(Object.assign(Error("Lock is not acquired/owned by you"),{code:"ENOTACQUIRED"}));Q.updateTimeout&&clearTimeout(Q.updateTimeout),Q.released=!0,delete s8[J],wL(J,X,Y)})}function Ip(D,X,Y){X={stale:1e4,realpath:!0,fs:IF,...X},X.stale=Math.max(X.stale||0,2000),PF(D,X,(Z,J)=>{if(Z)return Y(Z);X.fs.stat(o4(J,X),(Q,w)=>{if(Q)return Q.code==="ENOENT"?Y(null,!1):Y(Q);return Y(null,!QL(w,X))})})}function Pp(){return s8}jp(()=>{for(let D in s8){let X=s8[D].options;try{X.fs.rmdirSync(o4(D,X))}catch(Y){}}});e4.exports.lock=Tp;e4.exports.unlock=FL;e4.exports.check=Ip;e4.exports.getLocks=Pp});var $L=T((ww0,qL)=>{var Sp=ED();function xp(D){let X=["mkdir","realpath","stat","rmdir","utimes"],Y={...D};return X.forEach((Z)=>{Y[Z]=(...J)=>{let Q=J.pop(),w;try{w=D[`${Z}Sync`](...J)}catch(F){return Q(F)}Q(null,w)}}),Y}function fp(D){return(...X)=>new Promise((Y,Z)=>{X.push((J,Q)=>{if(J)Z(J);else Y(Q)}),D(...X)})}function yp(D){return(...X)=>{let Y,Z;if(X.push((J,Q)=>{Y=J,Z=Q}),D(...X),Y)throw Y;return Z}}function kp(D){if(D={...D},D.fs=xp(D.fs||Sp),typeof D.retries==="number"&&D.retries>0||D.retries&&typeof D.retries.retries==="number"&&D.retries.retries>0)throw Object.assign(Error("Cannot use retries with the sync api"),{code:"ESYNC"});return D}qL.exports={toPromise:fp,toSync:yp,toSyncOptions:kp}});var OL=T((Fw0,f6)=>{var Y7=BL(),{toPromise:FZ,toSync:BZ,toSyncOptions:SF}=$L();async function GL(D,X){let Y=await FZ(Y7.lock)(D,X);return FZ(Y)}function up(D,X){let Y=BZ(Y7.lock)(D,SF(X));return BZ(Y)}function hp(D,X){return FZ(Y7.unlock)(D,X)}function _p(D,X){return BZ(Y7.unlock)(D,SF(X))}function vp(D,X){return FZ(Y7.check)(D,X)}function bp(D,X){return BZ(Y7.check)(D,SF(X))}f6.exports=GL;f6.exports.lock=GL;f6.exports.unlock=hp;f6.exports.lockSync=up;f6.exports.unlockSync=_p;f6.exports.check=vp;f6.exports.checkSync=bp});var ML=T((Z7)=>{Object.defineProperty(Z7,"__esModule",{value:!0});Z7.canStoreURLs=Z7.FileUrlStorage=void 0;var WL=require("fs"),gp=dp(gM()),HL=mp(OL());function zL(D){if(typeof WeakMap!="function")return null;var X=new WeakMap,Y=new WeakMap;return(zL=function(Z){return Z?Y:X})(D)}function mp(D,X){if(!X&&D&&D.__esModule)return D;if(D===null||typeof D!="object"&&typeof D!="function")return{default:D};var Y=zL(X);if(Y&&Y.has(D))return Y.get(D);var Z={__proto__:null},J=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var Q in D)if(Q!=="default"&&{}.hasOwnProperty.call(D,Q)){var w=J?Object.getOwnPropertyDescriptor(D,Q):null;w&&(w.get||w.set)?Object.defineProperty(Z,Q,w):Z[Q]=D[Q]}return Z.default=D,Y&&Y.set(D,Z),Z}function dp(D){return D&&D.__esModule?D:{default:D}}function D3(D){return D3=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(X){return typeof X}:function(X){return X&&typeof Symbol=="function"&&X.constructor===Symbol&&X!==Symbol.prototype?"symbol":typeof X},D3(D)}function cp(D,X){if(!(D instanceof X))throw TypeError("Cannot call a class as a function")}function KL(D,X){for(var Y=0;Y<X.length;Y++){var Z=X[Y];if(Z.enumerable=Z.enumerable||!1,Z.configurable=!0,"value"in Z)Z.writable=!0;Object.defineProperty(D,np(Z.key),Z)}}function lp(D,X,Y){if(X)KL(D.prototype,X);if(Y)KL(D,Y);return Object.defineProperty(D,"prototype",{writable:!1}),D}function np(D){var X=ip(D,"string");return D3(X)=="symbol"?X:X+""}function ip(D,X){if(D3(D)!="object"||!D)return D;var Y=D[Symbol.toPrimitive];if(Y!==void 0){var Z=Y.call(D,X||"default");if(D3(Z)!="object")return Z;throw TypeError("@@toPrimitive must return a primitive value.")}return(X==="string"?String:Number)(D)}var Bw0=Z7.canStoreURLs=!0,qw0=Z7.FileUrlStorage=function(){function D(X){cp(this,D),this.path=X}return lp(D,[{key:"findAllUploads",value:function(){var Y=this;return new Promise(function(Z,J){Y._getItems("tus::",function(Q,w){if(Q)J(Q);else Z(w)})})}},{key:"findUploadsByFingerprint",value:function(Y){var Z=this;return new Promise(function(J,Q){Z._getItems("tus::".concat(Y),function(w,F){if(w)Q(w);else J(F)})})}},{key:"removeUpload",value:function(Y){var Z=this;return new Promise(function(J,Q){Z._removeItem(Y,function(w){if(w)Q(w);else J()})})}},{key:"addUpload",value:function(Y,Z){var J=this,Q=Math.round(Math.random()*1000000000000),w="tus::".concat(Y,"::").concat(Q);return new Promise(function(F,B){J._setItem(w,Z,function(q){if(q)B(q);else F(w)})})}},{key:"_setItem",value:function(Y,Z,J){var Q=this;HL.lock(this.path,this._lockfileOptions()).then(function(w){J=Q._releaseAndCb(w,J),Q._getData(function(F,B){if(F){J(F);return}B[Y]=Z,Q._writeData(B,function(q){return J(q)})})}).catch(J)}},{key:"_getItems",value:function(Y,Z){this._getData(function(J,Q){if(J){Z(J);return}var w=Object.keys(Q).filter(function(F){return F.startsWith(Y)}).map(function(F){var B=Q[F];return B.urlStorageKey=F,B});Z(null,w)})}},{key:"_removeItem",value:function(Y,Z){var J=this;HL.lock(this.path,this._lockfileOptions()).then(function(Q){Z=J._releaseAndCb(Q,Z),J._getData(function(w,F){if(w){Z(w);return}delete F[Y],J._writeData(F,function(B){return Z(B)})})}).catch(Z)}},{key:"_lockfileOptions",value:function(){return{realpath:!1,retries:{retries:5,minTimeout:20}}}},{key:"_releaseAndCb",value:function(Y,Z){return function(J){if(J){Y().then(function(){return Z(J)}).catch(function(Q){return Z((0,gp.default)([J,Q]))});return}Y().then(Z).catch(Z)}}},{key:"_writeData",value:function(Y,Z){var J={encoding:"utf8",mode:432,flag:"w"};(0,WL.writeFile)(this.path,JSON.stringify(Y),J,function(Q){return Z(Q)})}},{key:"_getData",value:function(Y){(0,WL.readFile)(this.path,"utf8",function(Z,J){if(Z){if(Z.code==="ENOENT")Y(null,{});else Y(Z);return}try{J=!J.trim().length?{}:JSON.parse(J)}catch(Q){Y(Q);return}Y(null,J)})}}])}()});var $Z=T((j1)=>{Object.defineProperty(j1,"__esModule",{value:!0});Object.defineProperty(j1,"DefaultHttpStack",{enumerable:!0,get:function(){return NL.default}});Object.defineProperty(j1,"DetailedError",{enumerable:!0,get:function(){return pp.default}});Object.defineProperty(j1,"FileUrlStorage",{enumerable:!0,get:function(){return RL.FileUrlStorage}});Object.defineProperty(j1,"StreamSource",{enumerable:!0,get:function(){return op.default}});j1.Upload=void 0;Object.defineProperty(j1,"canStoreURLs",{enumerable:!0,get:function(){return RL.canStoreURLs}});j1.defaultOptions=void 0;Object.defineProperty(j1,"enableDebugLog",{enumerable:!0,get:function(){return ap.enableDebugLog}});j1.isSupported=void 0;var pp=m9(Cw()),ap=jw(),tp=m9(RK()),xF=m9(oK()),rp=m9(Gz()),sp=m9(Kz()),NL=m9(Pz()),op=m9(gw()),RL=ML();function m9(D){return D&&D.__esModule?D:{default:D}}function Q7(D){return Q7=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(X){return typeof X}:function(X){return X&&typeof Symbol=="function"&&X.constructor===Symbol&&X!==Symbol.prototype?"symbol":typeof X},Q7(D)}function ep(D,X){if(!(D instanceof X))throw TypeError("Cannot call a class as a function")}function LL(D,X){for(var Y=0;Y<X.length;Y++){var Z=X[Y];if(Z.enumerable=Z.enumerable||!1,Z.configurable=!0,"value"in Z)Z.writable=!0;Object.defineProperty(D,EL(Z.key),Z)}}function Da(D,X,Y){if(X)LL(D.prototype,X);if(Y)LL(D,Y);return Object.defineProperty(D,"prototype",{writable:!1}),D}function Xa(D,X,Y){return X=qZ(X),Ya(D,AL()?Reflect.construct(X,Y||[],qZ(D).constructor):X.apply(D,Y))}function Ya(D,X){if(X&&(Q7(X)==="object"||typeof X==="function"))return X;else if(X!==void 0)throw TypeError("Derived constructors may only return object or undefined");return Za(D)}function Za(D){if(D===void 0)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return D}function AL(){try{var D=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(X){}return(AL=function(){return!!D})()}function qZ(D){return qZ=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(Y){return Y.__proto__||Object.getPrototypeOf(Y)},qZ(D)}function Ja(D,X){if(typeof X!=="function"&&X!==null)throw TypeError("Super expression must either be null or a function");if(D.prototype=Object.create(X&&X.prototype,{constructor:{value:D,writable:!0,configurable:!0}}),Object.defineProperty(D,"prototype",{writable:!1}),X)fF(D,X)}function fF(D,X){return fF=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(Z,J){return Z.__proto__=J,Z},fF(D,X)}function VL(D,X){var Y=Object.keys(D);if(Object.getOwnPropertySymbols){var Z=Object.getOwnPropertySymbols(D);X&&(Z=Z.filter(function(J){return Object.getOwnPropertyDescriptor(D,J).enumerable})),Y.push.apply(Y,Z)}return Y}function J7(D){for(var X=1;X<arguments.length;X++){var Y=arguments[X]!=null?arguments[X]:{};X%2?VL(Object(Y),!0).forEach(function(Z){Qa(D,Z,Y[Z])}):Object.getOwnPropertyDescriptors?Object.defineProperties(D,Object.getOwnPropertyDescriptors(Y)):VL(Object(Y)).forEach(function(Z){Object.defineProperty(D,Z,Object.getOwnPropertyDescriptor(Y,Z))})}return D}function Qa(D,X,Y){if(X=EL(X),X in D)Object.defineProperty(D,X,{value:Y,enumerable:!0,configurable:!0,writable:!0});else D[X]=Y;return D}function EL(D){var X=wa(D,"string");return Q7(X)=="symbol"?X:X+""}function wa(D,X){if(Q7(D)!="object"||!D)return D;var Y=D[Symbol.toPrimitive];if(Y!==void 0){var Z=Y.call(D,X||"default");if(Q7(Z)!="object")return Z;throw TypeError("@@toPrimitive must return a primitive value.")}return(X==="string"?String:Number)(D)}var UL=j1.defaultOptions=J7(J7({},xF.default.defaultOptions),{},{httpStack:new NL.default,fileReader:new rp.default,urlStorage:new tp.default,fingerprint:sp.default}),Gw0=j1.Upload=function(D){function X(){var Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,Z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return ep(this,X),Z=J7(J7({},UL),Z),Xa(this,X,[Y,Z])}return Ja(X,D),Da(X,null,[{key:"terminate",value:function(Z){var J=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return J=J7(J7({},UL),J),xF.default.terminate(Z,J)}}])}(xF.default),Ow0=j1.isSupported=!0});var IL=T((jw0,TL)=>{var w7=1000,F7=w7*60,B7=F7*60,d9=B7*24,$a=d9*7,Ga=d9*365.25;TL.exports=function(D,X){X=X||{};var Y=typeof D;if(Y==="string"&&D.length>0)return Oa(D);else if(Y==="number"&&isFinite(D))return X.long?Ha(D):Wa(D);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(D))};function Oa(D){if(D=String(D),D.length>100)return;var X=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(D);if(!X)return;var Y=parseFloat(X[1]),Z=(X[2]||"ms").toLowerCase();switch(Z){case"years":case"year":case"yrs":case"yr":case"y":return Y*Ga;case"weeks":case"week":case"w":return Y*$a;case"days":case"day":case"d":return Y*d9;case"hours":case"hour":case"hrs":case"hr":case"h":return Y*B7;case"minutes":case"minute":case"mins":case"min":case"m":return Y*F7;case"seconds":case"second":case"secs":case"sec":case"s":return Y*w7;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return Y;default:return}}function Wa(D){var X=Math.abs(D);if(X>=d9)return Math.round(D/d9)+"d";if(X>=B7)return Math.round(D/B7)+"h";if(X>=F7)return Math.round(D/F7)+"m";if(X>=w7)return Math.round(D/w7)+"s";return D+"ms"}function Ha(D){var X=Math.abs(D);if(X>=d9)return OZ(D,X,d9,"day");if(X>=B7)return OZ(D,X,B7,"hour");if(X>=F7)return OZ(D,X,F7,"minute");if(X>=w7)return OZ(D,X,w7,"second");return D+" ms"}function OZ(D,X,Y,Z){var J=X>=Y*1.5;return Math.round(D/Y)+" "+Z+(J?"s":"")}});var kF=T((Tw0,PL)=>{function Ka(D){Y.debug=Y,Y.default=Y,Y.coerce=B,Y.disable=w,Y.enable=J,Y.enabled=F,Y.humanize=IL(),Y.destroy=q,Object.keys(D).forEach(($)=>{Y[$]=D[$]}),Y.names=[],Y.skips=[],Y.formatters={};function X($){let G=0;for(let W=0;W<$.length;W++)G=(G<<5)-G+$.charCodeAt(W),G|=0;return Y.colors[Math.abs(G)%Y.colors.length]}Y.selectColor=X;function Y($){let G,W=null,O,H;function M(...U){if(!M.enabled)return;let N=M,R=Number(new Date),z=R-(G||R);if(N.diff=z,N.prev=G,N.curr=R,G=R,U[0]=Y.coerce(U[0]),typeof U[0]!=="string")U.unshift("%O");let V=0;U[0]=U[0].replace(/%([a-zA-Z%])/g,(C,y)=>{if(C==="%%")return"%";V++;let A=Y.formatters[y];if(typeof A==="function"){let k=U[V];C=A.call(N,k),U.splice(V,1),V--}return C}),Y.formatArgs.call(N,U),(N.log||Y.log).apply(N,U)}if(M.namespace=$,M.useColors=Y.useColors(),M.color=Y.selectColor($),M.extend=Z,M.destroy=Y.destroy,Object.defineProperty(M,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(W!==null)return W;if(O!==Y.namespaces)O=Y.namespaces,H=Y.enabled($);return H},set:(U)=>{W=U}}),typeof Y.init==="function")Y.init(M);return M}function Z($,G){let W=Y(this.namespace+(typeof G>"u"?":":G)+$);return W.log=this.log,W}function J($){Y.save($),Y.namespaces=$,Y.names=[],Y.skips=[];let G=(typeof $==="string"?$:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let W of G)if(W[0]==="-")Y.skips.push(W.slice(1));else Y.names.push(W)}function Q($,G){let W=0,O=0,H=-1,M=0;while(W<$.length)if(O<G.length&&(G[O]===$[W]||G[O]==="*"))if(G[O]==="*")H=O,M=W,O++;else W++,O++;else if(H!==-1)O=H+1,M++,W=M;else return!1;while(O<G.length&&G[O]==="*")O++;return O===G.length}function w(){let $=[...Y.names,...Y.skips.map((G)=>"-"+G)].join(",");return Y.enable(""),$}function F($){for(let G of Y.skips)if(Q($,G))return!1;for(let G of Y.names)if(Q($,G))return!0;return!1}function B($){if($ instanceof Error)return $.stack||$.message;return $}function q(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return Y.enable(Y.load()),Y}PL.exports=Ka});var SL=T((T1,WZ)=>{T1.formatArgs=Ma;T1.save=La;T1.load=Va;T1.useColors=za;T1.storage=Ua();T1.destroy=(()=>{let D=!1;return()=>{if(!D)D=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();T1.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function za(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let D;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(D=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(D[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Ma(D){if(D[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+D[0]+(this.useColors?"%c ":" ")+"+"+WZ.exports.humanize(this.diff),!this.useColors)return;let X="color: "+this.color;D.splice(1,0,X,"color: inherit");let Y=0,Z=0;D[0].replace(/%[a-zA-Z%]/g,(J)=>{if(J==="%%")return;if(Y++,J==="%c")Z=Y}),D.splice(Z,0,X)}T1.log=console.debug||console.log||(()=>{});function La(D){try{if(D)T1.storage.setItem("debug",D);else T1.storage.removeItem("debug")}catch(X){}}function Va(){let D;try{D=T1.storage.getItem("debug")||T1.storage.getItem("DEBUG")}catch(X){}if(!D&&typeof process<"u"&&"env"in process)D=process.env.DEBUG;return D}function Ua(){try{return localStorage}catch(D){}}WZ.exports=kF()(T1);var{formatters:Na}=WZ.exports;Na.j=function(D){try{return JSON.stringify(D)}catch(X){return"[UnexpectedJSONParseError]: "+X.message}}});var fL=T((Iw0,xL)=>{xL.exports=(D,X=process.argv)=>{let Y=D.startsWith("-")?"":D.length===1?"-":"--",Z=X.indexOf(Y+D),J=X.indexOf("--");return Z!==-1&&(J===-1||Z<J)}});var uL=T((Pw0,kL)=>{var Ra=require("os"),yL=require("tty"),i1=fL(),{env:mD}=process,k6;if(i1("no-color")||i1("no-colors")||i1("color=false")||i1("color=never"))k6=0;else if(i1("color")||i1("colors")||i1("color=true")||i1("color=always"))k6=1;if("FORCE_COLOR"in mD)if(mD.FORCE_COLOR==="true")k6=1;else if(mD.FORCE_COLOR==="false")k6=0;else k6=mD.FORCE_COLOR.length===0?1:Math.min(parseInt(mD.FORCE_COLOR,10),3);function uF(D){if(D===0)return!1;return{level:D,hasBasic:!0,has256:D>=2,has16m:D>=3}}function hF(D,X){if(k6===0)return 0;if(i1("color=16m")||i1("color=full")||i1("color=truecolor"))return 3;if(i1("color=256"))return 2;if(D&&!X&&k6===void 0)return 0;let Y=k6||0;if(mD.TERM==="dumb")return Y;if(process.platform==="win32"){let Z=Ra.release().split(".");if(Number(Z[0])>=10&&Number(Z[2])>=10586)return Number(Z[2])>=14931?3:2;return 1}if("CI"in mD){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((Z)=>(Z in mD))||mD.CI_NAME==="codeship")return 1;return Y}if("TEAMCITY_VERSION"in mD)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(mD.TEAMCITY_VERSION)?1:0;if(mD.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in mD){let Z=parseInt((mD.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(mD.TERM_PROGRAM){case"iTerm.app":return Z>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(mD.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(mD.TERM))return 1;if("COLORTERM"in mD)return 1;return Y}function Aa(D){let X=hF(D,D&&D.isTTY);return uF(X)}kL.exports={supportsColor:Aa,stdout:uF(hF(!0,yL.isatty(1))),stderr:uF(hF(!0,yL.isatty(2)))}});var _L=T((dD,KZ)=>{var Ea=require("tty"),HZ=require("util");dD.init=xa;dD.log=Ia;dD.formatArgs=ja;dD.save=Pa;dD.load=Sa;dD.useColors=Ca;dD.destroy=HZ.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");dD.colors=[6,2,3,4,5,1];try{let D=uL();if(D&&(D.stderr||D).level>=2)dD.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch(D){}dD.inspectOpts=Object.keys(process.env).filter((D)=>{return/^debug_/i.test(D)}).reduce((D,X)=>{let Y=X.substring(6).toLowerCase().replace(/_([a-z])/g,(J,Q)=>{return Q.toUpperCase()}),Z=process.env[X];if(/^(yes|on|true|enabled)$/i.test(Z))Z=!0;else if(/^(no|off|false|disabled)$/i.test(Z))Z=!1;else if(Z==="null")Z=null;else Z=Number(Z);return D[Y]=Z,D},{});function Ca(){return"colors"in dD.inspectOpts?Boolean(dD.inspectOpts.colors):Ea.isatty(process.stderr.fd)}function ja(D){let{namespace:X,useColors:Y}=this;if(Y){let Z=this.color,J="\x1B[3"+(Z<8?Z:"8;5;"+Z),Q=` ${J};1m${X} \x1B[0m`;D[0]=Q+D[0].split(`
56
+ `)}),X}});var dM=T((tQ0,mM)=>{var S6=require("constants"),Gp=process.cwd,sY=null,Op=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){if(!sY)sY=Gp.call(process);return sY};try{process.cwd()}catch(D){}if(typeof process.chdir==="function"){if(oY=process.chdir,process.chdir=function(D){sY=null,oY.call(process,D)},Object.setPrototypeOf)Object.setPrototypeOf(process.chdir,oY)}var oY;mM.exports=Wp;function Wp(D){if(S6.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./))X(D);if(!D.lutimes)Y(D);if(D.chown=Q(D.chown),D.fchown=Q(D.fchown),D.lchown=Q(D.lchown),D.chmod=Z(D.chmod),D.fchmod=Z(D.fchmod),D.lchmod=Z(D.lchmod),D.chownSync=w(D.chownSync),D.fchownSync=w(D.fchownSync),D.lchownSync=w(D.lchownSync),D.chmodSync=J(D.chmodSync),D.fchmodSync=J(D.fchmodSync),D.lchmodSync=J(D.lchmodSync),D.stat=F(D.stat),D.fstat=F(D.fstat),D.lstat=F(D.lstat),D.statSync=B(D.statSync),D.fstatSync=B(D.fstatSync),D.lstatSync=B(D.lstatSync),D.chmod&&!D.lchmod)D.lchmod=function($,G,W){if(W)process.nextTick(W)},D.lchmodSync=function(){};if(D.chown&&!D.lchown)D.lchown=function($,G,W,O){if(O)process.nextTick(O)},D.lchownSync=function(){};if(Op==="win32")D.rename=typeof D.rename!=="function"?D.rename:function($){function G(W,O,H){var M=Date.now(),U=0;$(W,O,function N(R){if(R&&(R.code==="EACCES"||R.code==="EPERM"||R.code==="EBUSY")&&Date.now()-M<60000){if(setTimeout(function(){D.stat(O,function(z,V){if(z&&z.code==="ENOENT")$(W,O,N);else H(R)})},U),U<100)U+=10;return}if(H)H(R)})}if(Object.setPrototypeOf)Object.setPrototypeOf(G,$);return G}(D.rename);D.read=typeof D.read!=="function"?D.read:function($){function G(W,O,H,M,U,N){var R;if(N&&typeof N==="function"){var z=0;R=function(V,L,C){if(V&&V.code==="EAGAIN"&&z<10)return z++,$.call(D,W,O,H,M,U,R);N.apply(this,arguments)}}return $.call(D,W,O,H,M,U,R)}if(Object.setPrototypeOf)Object.setPrototypeOf(G,$);return G}(D.read),D.readSync=typeof D.readSync!=="function"?D.readSync:function($){return function(G,W,O,H,M){var U=0;while(!0)try{return $.call(D,G,W,O,H,M)}catch(N){if(N.code==="EAGAIN"&&U<10){U++;continue}throw N}}}(D.readSync);function X($){$.lchmod=function(G,W,O){$.open(G,S6.O_WRONLY|S6.O_SYMLINK,W,function(H,M){if(H){if(O)O(H);return}$.fchmod(M,W,function(U){$.close(M,function(N){if(O)O(U||N)})})})},$.lchmodSync=function(G,W){var O=$.openSync(G,S6.O_WRONLY|S6.O_SYMLINK,W),H=!0,M;try{M=$.fchmodSync(O,W),H=!1}finally{if(H)try{$.closeSync(O)}catch(U){}else $.closeSync(O)}return M}}function Y($){if(S6.hasOwnProperty("O_SYMLINK")&&$.futimes)$.lutimes=function(G,W,O,H){$.open(G,S6.O_SYMLINK,function(M,U){if(M){if(H)H(M);return}$.futimes(U,W,O,function(N){$.close(U,function(R){if(H)H(N||R)})})})},$.lutimesSync=function(G,W,O){var H=$.openSync(G,S6.O_SYMLINK),M,U=!0;try{M=$.futimesSync(H,W,O),U=!1}finally{if(U)try{$.closeSync(H)}catch(N){}else $.closeSync(H)}return M};else if($.futimes)$.lutimes=function(G,W,O,H){if(H)process.nextTick(H)},$.lutimesSync=function(){}}function Z($){if(!$)return $;return function(G,W,O){return $.call(D,G,W,function(H){if(q(H))H=null;if(O)O.apply(this,arguments)})}}function J($){if(!$)return $;return function(G,W){try{return $.call(D,G,W)}catch(O){if(!q(O))throw O}}}function Q($){if(!$)return $;return function(G,W,O,H){return $.call(D,G,W,O,function(M){if(q(M))M=null;if(H)H.apply(this,arguments)})}}function w($){if(!$)return $;return function(G,W,O){try{return $.call(D,G,W,O)}catch(H){if(!q(H))throw H}}}function F($){if(!$)return $;return function(G,W,O){if(typeof W==="function")O=W,W=null;function H(M,U){if(U){if(U.uid<0)U.uid+=4294967296;if(U.gid<0)U.gid+=4294967296}if(O)O.apply(this,arguments)}return W?$.call(D,G,W,H):$.call(D,G,H)}}function B($){if(!$)return $;return function(G,W){var O=W?$.call(D,G,W):$.call(D,G);if(O){if(O.uid<0)O.uid+=4294967296;if(O.gid<0)O.gid+=4294967296}return O}}function q($){if(!$)return!0;if($.code==="ENOSYS")return!0;var G=!process.getuid||process.getuid()!==0;if(G){if($.code==="EINVAL"||$.code==="EPERM")return!0}return!1}}});var nM=T((rQ0,lM)=>{var cM=require("stream").Stream;lM.exports=Hp;function Hp(D){return{ReadStream:X,WriteStream:Y};function X(Z,J){if(!(this instanceof X))return new X(Z,J);cM.call(this);var Q=this;this.path=Z,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=65536,J=J||{};var w=Object.keys(J);for(var F=0,B=w.length;F<B;F++){var q=w[F];this[q]=J[q]}if(this.encoding)this.setEncoding(this.encoding);if(this.start!==void 0){if(typeof this.start!=="number")throw TypeError("start must be a Number");if(this.end===void 0)this.end=1/0;else if(typeof this.end!=="number")throw TypeError("end must be a Number");if(this.start>this.end)throw Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){Q._read()});return}D.open(this.path,this.flags,this.mode,function($,G){if($){Q.emit("error",$),Q.readable=!1;return}Q.fd=G,Q.emit("open",G),Q._read()})}function Y(Z,J){if(!(this instanceof Y))return new Y(Z,J);cM.call(this),this.path=Z,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,J=J||{};var Q=Object.keys(J);for(var w=0,F=Q.length;w<F;w++){var B=Q[w];this[B]=J[B]}if(this.start!==void 0){if(typeof this.start!=="number")throw TypeError("start must be a Number");if(this.start<0)throw Error("start must be >= zero");this.pos=this.start}if(this.busy=!1,this._queue=[],this.fd===null)this._open=D.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush()}}});var pM=T((sQ0,iM)=>{iM.exports=zp;var Kp=Object.getPrototypeOf||function(D){return D.__proto__};function zp(D){if(D===null||typeof D!=="object")return D;if(D instanceof Object)var X={__proto__:Kp(D)};else var X=Object.create(null);return Object.getOwnPropertyNames(D).forEach(function(Y){Object.defineProperty(X,Y,Object.getOwnPropertyDescriptor(D,Y))}),X}});var ED=T((oQ0,UF)=>{var HD=require("fs"),Mp=dM(),Lp=nM(),Vp=pM(),eY=require("util"),iD,XZ;if(typeof Symbol==="function"&&typeof Symbol.for==="function")iD=Symbol.for("graceful-fs.queue"),XZ=Symbol.for("graceful-fs.previous");else iD="___graceful-fs.queue",XZ="___graceful-fs.previous";function Up(){}function tM(D,X){Object.defineProperty(D,iD,{get:function(){return X}})}var h9=Up;if(eY.debuglog)h9=eY.debuglog("gfs4");else if(/\bgfs4\b/i.test(process.env.NODE_DEBUG||""))h9=function(){var D=eY.format.apply(eY,arguments);D="GFS4: "+D.split(/\n/).join(`
57
+ GFS4: `),console.error(D)};if(!HD[iD]){if(MF=global[iD]||[],tM(HD,MF),HD.close=function(D){function X(Y,Z){return D.call(HD,Y,function(J){if(!J)aM();if(typeof Z==="function")Z.apply(this,arguments)})}return Object.defineProperty(X,XZ,{value:D}),X}(HD.close),HD.closeSync=function(D){function X(Y){D.apply(HD,arguments),aM()}return Object.defineProperty(X,XZ,{value:D}),X}(HD.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||""))process.on("exit",function(){h9(HD[iD]),require("assert").equal(HD[iD].length,0)})}var MF;if(!global[iD])tM(global,HD[iD]);UF.exports=LF(Vp(HD));if(process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!HD.__patched)UF.exports=LF(HD),HD.__patched=!0;function LF(D){Mp(D),D.gracefulify=LF,D.createReadStream=L,D.createWriteStream=C;var X=D.readFile;D.readFile=Y;function Y(k,f,S){if(typeof f==="function")S=f,f=null;return v(k,f,S);function v(b,n,h,E){return X(b,n,function(P){if(P&&(P.code==="EMFILE"||P.code==="ENFILE"))e5([v,[b,n,h],P,E||Date.now(),Date.now()]);else if(typeof h==="function")h.apply(this,arguments)})}}var Z=D.writeFile;D.writeFile=J;function J(k,f,S,v){if(typeof S==="function")v=S,S=null;return b(k,f,S,v);function b(n,h,E,P,x){return Z(n,h,E,function(_){if(_&&(_.code==="EMFILE"||_.code==="ENFILE"))e5([b,[n,h,E,P],_,x||Date.now(),Date.now()]);else if(typeof P==="function")P.apply(this,arguments)})}}var Q=D.appendFile;if(Q)D.appendFile=w;function w(k,f,S,v){if(typeof S==="function")v=S,S=null;return b(k,f,S,v);function b(n,h,E,P,x){return Q(n,h,E,function(_){if(_&&(_.code==="EMFILE"||_.code==="ENFILE"))e5([b,[n,h,E,P],_,x||Date.now(),Date.now()]);else if(typeof P==="function")P.apply(this,arguments)})}}var F=D.copyFile;if(F)D.copyFile=B;function B(k,f,S,v){if(typeof S==="function")v=S,S=0;return b(k,f,S,v);function b(n,h,E,P,x){return F(n,h,E,function(_){if(_&&(_.code==="EMFILE"||_.code==="ENFILE"))e5([b,[n,h,E,P],_,x||Date.now(),Date.now()]);else if(typeof P==="function")P.apply(this,arguments)})}}var q=D.readdir;D.readdir=G;var $=/^v[0-5]\./;function G(k,f,S){if(typeof f==="function")S=f,f=null;var v=$.test(process.version)?function(h,E,P,x){return q(h,b(h,E,P,x))}:function(h,E,P,x){return q(h,E,b(h,E,P,x))};return v(k,f,S);function b(n,h,E,P){return function(x,_){if(x&&(x.code==="EMFILE"||x.code==="ENFILE"))e5([v,[n,h,E],x,P||Date.now(),Date.now()]);else{if(_&&_.sort)_.sort();if(typeof E==="function")E.call(this,x,_)}}}}if(process.version.substr(0,4)==="v0.8"){var W=Lp(D);N=W.ReadStream,z=W.WriteStream}var O=D.ReadStream;if(O)N.prototype=Object.create(O.prototype),N.prototype.open=R;var H=D.WriteStream;if(H)z.prototype=Object.create(H.prototype),z.prototype.open=V;Object.defineProperty(D,"ReadStream",{get:function(){return N},set:function(k){N=k},enumerable:!0,configurable:!0}),Object.defineProperty(D,"WriteStream",{get:function(){return z},set:function(k){z=k},enumerable:!0,configurable:!0});var M=N;Object.defineProperty(D,"FileReadStream",{get:function(){return M},set:function(k){M=k},enumerable:!0,configurable:!0});var U=z;Object.defineProperty(D,"FileWriteStream",{get:function(){return U},set:function(k){U=k},enumerable:!0,configurable:!0});function N(k,f){if(this instanceof N)return O.apply(this,arguments),this;else return N.apply(Object.create(N.prototype),arguments)}function R(){var k=this;A(k.path,k.flags,k.mode,function(f,S){if(f){if(k.autoClose)k.destroy();k.emit("error",f)}else k.fd=S,k.emit("open",S),k.read()})}function z(k,f){if(this instanceof z)return H.apply(this,arguments),this;else return z.apply(Object.create(z.prototype),arguments)}function V(){var k=this;A(k.path,k.flags,k.mode,function(f,S){if(f)k.destroy(),k.emit("error",f);else k.fd=S,k.emit("open",S)})}function L(k,f){return new D.ReadStream(k,f)}function C(k,f){return new D.WriteStream(k,f)}var y=D.open;D.open=A;function A(k,f,S,v){if(typeof S==="function")v=S,S=null;return b(k,f,S,v);function b(n,h,E,P,x){return y(n,h,E,function(_,g){if(_&&(_.code==="EMFILE"||_.code==="ENFILE"))e5([b,[n,h,E,P],_,x||Date.now(),Date.now()]);else if(typeof P==="function")P.apply(this,arguments)})}}return D}function e5(D){h9("ENQUEUE",D[0].name,D[1]),HD[iD].push(D),VF()}var DZ;function aM(){var D=Date.now();for(var X=0;X<HD[iD].length;++X)if(HD[iD][X].length>2)HD[iD][X][3]=D,HD[iD][X][4]=D;VF()}function VF(){if(clearTimeout(DZ),DZ=void 0,HD[iD].length===0)return;var D=HD[iD].shift(),X=D[0],Y=D[1],Z=D[2],J=D[3],Q=D[4];if(J===void 0)h9("RETRY",X.name,Y),X.apply(null,Y);else if(Date.now()-J>=60000){h9("TIMEOUT",X.name,Y);var w=Y.pop();if(typeof w==="function")w.call(null,Z)}else{var F=Date.now()-Q,B=Math.max(Q-J,1),q=Math.min(B*1.2,100);if(F>=q)h9("RETRY",X.name,Y),X.apply(null,Y.concat([J]));else HD[iD].push(D)}if(DZ===void 0)DZ=setTimeout(VF,0)}});var sM=T((eQ0,rM)=>{function n1(D,X){if(typeof X==="boolean")X={forever:X};if(this._originalTimeouts=JSON.parse(JSON.stringify(D)),this._timeouts=D,this._options=X||{},this._maxRetryTime=X&&X.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever)this._cachedTimeouts=this._timeouts.slice(0)}rM.exports=n1;n1.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts};n1.prototype.stop=function(){if(this._timeout)clearTimeout(this._timeout);this._timeouts=[],this._cachedTimeouts=null};n1.prototype.retry=function(D){if(this._timeout)clearTimeout(this._timeout);if(!D)return!1;var X=new Date().getTime();if(D&&X-this._operationStart>=this._maxRetryTime)return this._errors.unshift(Error("RetryOperation timeout occurred")),!1;this._errors.push(D);var Y=this._timeouts.shift();if(Y===void 0)if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),Y=this._timeouts.shift();else return!1;var Z=this,J=setTimeout(function(){if(Z._attempts++,Z._operationTimeoutCb){if(Z._timeout=setTimeout(function(){Z._operationTimeoutCb(Z._attempts)},Z._operationTimeout),Z._options.unref)Z._timeout.unref()}Z._fn(Z._attempts)},Y);if(this._options.unref)J.unref();return!0};n1.prototype.attempt=function(D,X){if(this._fn=D,X){if(X.timeout)this._operationTimeout=X.timeout;if(X.cb)this._operationTimeoutCb=X.cb}var Y=this;if(this._operationTimeoutCb)this._timeout=setTimeout(function(){Y._operationTimeoutCb()},Y._operationTimeout);this._operationStart=new Date().getTime(),this._fn(this._attempts)};n1.prototype.try=function(D){console.log("Using RetryOperation.try() is deprecated"),this.attempt(D)};n1.prototype.start=function(D){console.log("Using RetryOperation.start() is deprecated"),this.attempt(D)};n1.prototype.start=n1.prototype.try;n1.prototype.errors=function(){return this._errors};n1.prototype.attempts=function(){return this._attempts};n1.prototype.mainError=function(){if(this._errors.length===0)return null;var D={},X=null,Y=0;for(var Z=0;Z<this._errors.length;Z++){var J=this._errors[Z],Q=J.message,w=(D[Q]||0)+1;if(D[Q]=w,w>=Y)X=J,Y=w}return X}});var oM=T((_9)=>{var Np=sM();_9.operation=function(D){var X=_9.timeouts(D);return new Np(X,{forever:D&&D.forever,unref:D&&D.unref,maxRetryTime:D&&D.maxRetryTime})};_9.timeouts=function(D){if(D instanceof Array)return[].concat(D);var X={retries:10,factor:2,minTimeout:1000,maxTimeout:1/0,randomize:!1};for(var Y in D)X[Y]=D[Y];if(X.minTimeout>X.maxTimeout)throw Error("minTimeout is greater than maxTimeout");var Z=[];for(var J=0;J<X.retries;J++)Z.push(this.createTimeout(J,X));if(D&&D.forever&&!Z.length)Z.push(this.createTimeout(J,X));return Z.sort(function(Q,w){return Q-w}),Z};_9.createTimeout=function(D,X){var Y=X.randomize?Math.random()+1:1,Z=Math.round(Y*X.minTimeout*Math.pow(X.factor,D));return Z=Math.min(Z,X.maxTimeout),Z};_9.wrap=function(D,X,Y){if(X instanceof Array)Y=X,X=null;if(!Y){Y=[];for(var Z in D)if(typeof D[Z]==="function")Y.push(Z)}for(var J=0;J<Y.length;J++){var Q=Y[J],w=D[Q];D[Q]=function(B){var q=_9.operation(X),$=Array.prototype.slice.call(arguments,1),G=$.pop();$.push(function(W){if(q.retry(W))return;if(W)arguments[0]=q.mainError();G.apply(this,arguments)}),q.attempt(function(){B.apply(D,$)})}.bind(D,w),D[Q].options=X}}});var DL=T((Xw0,eM)=>{eM.exports=oM()});var XL=T((Yw0,YZ)=>{YZ.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];if(process.platform!=="win32")YZ.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");if(process.platform==="linux")YZ.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var QZ=T((Zw0,X7)=>{var qD=global.process,v9=function(D){return D&&typeof D==="object"&&typeof D.removeListener==="function"&&typeof D.emit==="function"&&typeof D.reallyExit==="function"&&typeof D.listeners==="function"&&typeof D.kill==="function"&&typeof D.pid==="number"&&typeof D.on==="function"};if(!v9(qD))X7.exports=function(){return function(){}};else{if(NF=require("assert"),b9=XL(),RF=/^win/i.test(qD.platform),D7=require("events"),typeof D7!=="function")D7=D7.EventEmitter;if(qD.__signal_exit_emitter__)hD=qD.__signal_exit_emitter__;else hD=qD.__signal_exit_emitter__=new D7,hD.count=0,hD.emitted={};if(!hD.infinite)hD.setMaxListeners(1/0),hD.infinite=!0;X7.exports=function(D,X){if(!v9(global.process))return function(){};if(NF.equal(typeof D,"function","a callback must be provided for exit handler"),g9===!1)ZZ();var Y="exit";if(X&&X.alwaysLast)Y="afterexit";var Z=function(){if(hD.removeListener(Y,D),hD.listeners("exit").length===0&&hD.listeners("afterexit").length===0)t4()};return hD.on(Y,D),Z},t4=function(){if(!g9||!v9(global.process))return;g9=!1,b9.forEach(function(X){try{qD.removeListener(X,r4[X])}catch(Y){}}),qD.emit=s4,qD.reallyExit=JZ,hD.count-=1},X7.exports.unload=t4,x6=function(X,Y,Z){if(hD.emitted[X])return;hD.emitted[X]=!0,hD.emit(X,Y,Z)},r4={},b9.forEach(function(D){r4[D]=function(){if(!v9(global.process))return;var Y=qD.listeners(D);if(Y.length===hD.count){if(t4(),x6("exit",null,D),x6("afterexit",null,D),RF&&D==="SIGHUP")D="SIGINT";qD.kill(qD.pid,D)}}}),X7.exports.signals=function(){return b9},g9=!1,ZZ=function(){if(g9||!v9(global.process))return;g9=!0,hD.count+=1,b9=b9.filter(function(X){try{return qD.on(X,r4[X]),!0}catch(Y){return!1}}),qD.emit=EF,qD.reallyExit=AF},X7.exports.load=ZZ,JZ=qD.reallyExit,AF=function(X){if(!v9(global.process))return;qD.exitCode=X||0,x6("exit",qD.exitCode,null),x6("afterexit",qD.exitCode,null),JZ.call(qD,qD.exitCode)},s4=qD.emit,EF=function(X,Y){if(X==="exit"&&v9(global.process)){if(Y!==void 0)qD.exitCode=Y;var Z=s4.apply(this,arguments);return x6("exit",qD.exitCode,null),x6("afterexit",qD.exitCode,null),Z}else return s4.apply(this,arguments)}}var NF,b9,RF,D7,hD,t4,x6,r4,g9,ZZ,JZ,AF,s4,EF});var ZL=T((Jw0,CF)=>{var YL=Symbol();function Rp(D,X,Y){let Z=X[YL];if(Z)return X.stat(D,(Q,w)=>{if(Q)return Y(Q);Y(null,w.mtime,Z)});let J=new Date(Math.ceil(Date.now()/1000)*1000+5);X.utimes(D,J,J,(Q)=>{if(Q)return Y(Q);X.stat(D,(w,F)=>{if(w)return Y(w);let B=F.mtime.getTime()%1000===0?"s":"ms";Object.defineProperty(X,YL,{value:B}),Y(null,F.mtime,B)})})}function Ap(D){let X=Date.now();if(D==="s")X=Math.ceil(X/1000)*1000;return new Date(X)}CF.exports.probe=Rp;CF.exports.getMtime=Ap});var BL=T((Qw0,e4)=>{var Ep=require("path"),IF=ED(),Cp=DL(),jp=QZ(),JL=ZL(),s8={};function o4(D,X){return X.lockfilePath||`${D}.lock`}function PF(D,X,Y){if(!X.realpath)return Y(null,Ep.resolve(D));X.fs.realpath(D,Y)}function TF(D,X,Y){let Z=o4(D,X);X.fs.mkdir(Z,(J)=>{if(!J)return JL.probe(Z,X.fs,(Q,w,F)=>{if(Q)return X.fs.rmdir(Z,()=>{}),Y(Q);Y(null,w,F)});if(J.code!=="EEXIST")return Y(J);if(X.stale<=0)return Y(Object.assign(Error("Lock file is already being held"),{code:"ELOCKED",file:D}));X.fs.stat(Z,(Q,w)=>{if(Q){if(Q.code==="ENOENT")return TF(D,{...X,stale:0},Y);return Y(Q)}if(!QL(w,X))return Y(Object.assign(Error("Lock file is already being held"),{code:"ELOCKED",file:D}));wL(D,X,(F)=>{if(F)return Y(F);TF(D,{...X,stale:0},Y)})})})}function QL(D,X){return D.mtime.getTime()<Date.now()-X.stale}function wL(D,X,Y){X.fs.rmdir(o4(D,X),(Z)=>{if(Z&&Z.code!=="ENOENT")return Y(Z);Y()})}function wZ(D,X){let Y=s8[D];if(Y.updateTimeout)return;if(Y.updateDelay=Y.updateDelay||X.update,Y.updateTimeout=setTimeout(()=>{Y.updateTimeout=null,X.fs.stat(Y.lockfilePath,(Z,J)=>{let Q=Y.lastUpdate+X.stale<Date.now();if(Z){if(Z.code==="ENOENT"||Q)return jF(D,Y,Object.assign(Z,{code:"ECOMPROMISED"}));return Y.updateDelay=1000,wZ(D,X)}if(Y.mtime.getTime()!==J.mtime.getTime())return jF(D,Y,Object.assign(Error("Unable to update lock within the stale threshold"),{code:"ECOMPROMISED"}));let F=JL.getMtime(Y.mtimePrecision);X.fs.utimes(Y.lockfilePath,F,F,(B)=>{let q=Y.lastUpdate+X.stale<Date.now();if(Y.released)return;if(B){if(B.code==="ENOENT"||q)return jF(D,Y,Object.assign(B,{code:"ECOMPROMISED"}));return Y.updateDelay=1000,wZ(D,X)}Y.mtime=F,Y.lastUpdate=Date.now(),Y.updateDelay=null,wZ(D,X)})})},Y.updateDelay),Y.updateTimeout.unref)Y.updateTimeout.unref()}function jF(D,X,Y){if(X.released=!0,X.updateTimeout)clearTimeout(X.updateTimeout);if(s8[D]===X)delete s8[D];X.options.onCompromised(Y)}function Tp(D,X,Y){X={stale:1e4,update:null,realpath:!0,retries:0,fs:IF,onCompromised:(Z)=>{throw Z},...X},X.retries=X.retries||0,X.retries=typeof X.retries==="number"?{retries:X.retries}:X.retries,X.stale=Math.max(X.stale||0,2000),X.update=X.update==null?X.stale/2:X.update||0,X.update=Math.max(Math.min(X.update,X.stale/2),1000),PF(D,X,(Z,J)=>{if(Z)return Y(Z);let Q=Cp.operation(X.retries);Q.attempt(()=>{TF(J,X,(w,F,B)=>{if(Q.retry(w))return;if(w)return Y(Q.mainError());let q=s8[J]={lockfilePath:o4(J,X),mtime:F,mtimePrecision:B,options:X,lastUpdate:Date.now()};wZ(J,X),Y(null,($)=>{if(q.released)return $&&$(Object.assign(Error("Lock is already released"),{code:"ERELEASED"}));FL(J,{...X,realpath:!1},$)})})})})}function FL(D,X,Y){X={fs:IF,realpath:!0,...X},PF(D,X,(Z,J)=>{if(Z)return Y(Z);let Q=s8[J];if(!Q)return Y(Object.assign(Error("Lock is not acquired/owned by you"),{code:"ENOTACQUIRED"}));Q.updateTimeout&&clearTimeout(Q.updateTimeout),Q.released=!0,delete s8[J],wL(J,X,Y)})}function Ip(D,X,Y){X={stale:1e4,realpath:!0,fs:IF,...X},X.stale=Math.max(X.stale||0,2000),PF(D,X,(Z,J)=>{if(Z)return Y(Z);X.fs.stat(o4(J,X),(Q,w)=>{if(Q)return Q.code==="ENOENT"?Y(null,!1):Y(Q);return Y(null,!QL(w,X))})})}function Pp(){return s8}jp(()=>{for(let D in s8){let X=s8[D].options;try{X.fs.rmdirSync(o4(D,X))}catch(Y){}}});e4.exports.lock=Tp;e4.exports.unlock=FL;e4.exports.check=Ip;e4.exports.getLocks=Pp});var $L=T((ww0,qL)=>{var Sp=ED();function xp(D){let X=["mkdir","realpath","stat","rmdir","utimes"],Y={...D};return X.forEach((Z)=>{Y[Z]=(...J)=>{let Q=J.pop(),w;try{w=D[`${Z}Sync`](...J)}catch(F){return Q(F)}Q(null,w)}}),Y}function fp(D){return(...X)=>new Promise((Y,Z)=>{X.push((J,Q)=>{if(J)Z(J);else Y(Q)}),D(...X)})}function yp(D){return(...X)=>{let Y,Z;if(X.push((J,Q)=>{Y=J,Z=Q}),D(...X),Y)throw Y;return Z}}function kp(D){if(D={...D},D.fs=xp(D.fs||Sp),typeof D.retries==="number"&&D.retries>0||D.retries&&typeof D.retries.retries==="number"&&D.retries.retries>0)throw Object.assign(Error("Cannot use retries with the sync api"),{code:"ESYNC"});return D}qL.exports={toPromise:fp,toSync:yp,toSyncOptions:kp}});var OL=T((Fw0,f6)=>{var Y7=BL(),{toPromise:FZ,toSync:BZ,toSyncOptions:SF}=$L();async function GL(D,X){let Y=await FZ(Y7.lock)(D,X);return FZ(Y)}function up(D,X){let Y=BZ(Y7.lock)(D,SF(X));return BZ(Y)}function hp(D,X){return FZ(Y7.unlock)(D,X)}function _p(D,X){return BZ(Y7.unlock)(D,SF(X))}function vp(D,X){return FZ(Y7.check)(D,X)}function bp(D,X){return BZ(Y7.check)(D,SF(X))}f6.exports=GL;f6.exports.lock=GL;f6.exports.unlock=hp;f6.exports.lockSync=up;f6.exports.unlockSync=_p;f6.exports.check=vp;f6.exports.checkSync=bp});var ML=T((Z7)=>{Object.defineProperty(Z7,"__esModule",{value:!0});Z7.canStoreURLs=Z7.FileUrlStorage=void 0;var WL=require("fs"),gp=dp(gM()),HL=mp(OL());function zL(D){if(typeof WeakMap!="function")return null;var X=new WeakMap,Y=new WeakMap;return(zL=function(Z){return Z?Y:X})(D)}function mp(D,X){if(!X&&D&&D.__esModule)return D;if(D===null||typeof D!="object"&&typeof D!="function")return{default:D};var Y=zL(X);if(Y&&Y.has(D))return Y.get(D);var Z={__proto__:null},J=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var Q in D)if(Q!=="default"&&{}.hasOwnProperty.call(D,Q)){var w=J?Object.getOwnPropertyDescriptor(D,Q):null;w&&(w.get||w.set)?Object.defineProperty(Z,Q,w):Z[Q]=D[Q]}return Z.default=D,Y&&Y.set(D,Z),Z}function dp(D){return D&&D.__esModule?D:{default:D}}function D3(D){return D3=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(X){return typeof X}:function(X){return X&&typeof Symbol=="function"&&X.constructor===Symbol&&X!==Symbol.prototype?"symbol":typeof X},D3(D)}function cp(D,X){if(!(D instanceof X))throw TypeError("Cannot call a class as a function")}function KL(D,X){for(var Y=0;Y<X.length;Y++){var Z=X[Y];if(Z.enumerable=Z.enumerable||!1,Z.configurable=!0,"value"in Z)Z.writable=!0;Object.defineProperty(D,np(Z.key),Z)}}function lp(D,X,Y){if(X)KL(D.prototype,X);if(Y)KL(D,Y);return Object.defineProperty(D,"prototype",{writable:!1}),D}function np(D){var X=ip(D,"string");return D3(X)=="symbol"?X:X+""}function ip(D,X){if(D3(D)!="object"||!D)return D;var Y=D[Symbol.toPrimitive];if(Y!==void 0){var Z=Y.call(D,X||"default");if(D3(Z)!="object")return Z;throw TypeError("@@toPrimitive must return a primitive value.")}return(X==="string"?String:Number)(D)}var Bw0=Z7.canStoreURLs=!0,qw0=Z7.FileUrlStorage=function(){function D(X){cp(this,D),this.path=X}return lp(D,[{key:"findAllUploads",value:function(){var Y=this;return new Promise(function(Z,J){Y._getItems("tus::",function(Q,w){if(Q)J(Q);else Z(w)})})}},{key:"findUploadsByFingerprint",value:function(Y){var Z=this;return new Promise(function(J,Q){Z._getItems("tus::".concat(Y),function(w,F){if(w)Q(w);else J(F)})})}},{key:"removeUpload",value:function(Y){var Z=this;return new Promise(function(J,Q){Z._removeItem(Y,function(w){if(w)Q(w);else J()})})}},{key:"addUpload",value:function(Y,Z){var J=this,Q=Math.round(Math.random()*1000000000000),w="tus::".concat(Y,"::").concat(Q);return new Promise(function(F,B){J._setItem(w,Z,function(q){if(q)B(q);else F(w)})})}},{key:"_setItem",value:function(Y,Z,J){var Q=this;HL.lock(this.path,this._lockfileOptions()).then(function(w){J=Q._releaseAndCb(w,J),Q._getData(function(F,B){if(F){J(F);return}B[Y]=Z,Q._writeData(B,function(q){return J(q)})})}).catch(J)}},{key:"_getItems",value:function(Y,Z){this._getData(function(J,Q){if(J){Z(J);return}var w=Object.keys(Q).filter(function(F){return F.startsWith(Y)}).map(function(F){var B=Q[F];return B.urlStorageKey=F,B});Z(null,w)})}},{key:"_removeItem",value:function(Y,Z){var J=this;HL.lock(this.path,this._lockfileOptions()).then(function(Q){Z=J._releaseAndCb(Q,Z),J._getData(function(w,F){if(w){Z(w);return}delete F[Y],J._writeData(F,function(B){return Z(B)})})}).catch(Z)}},{key:"_lockfileOptions",value:function(){return{realpath:!1,retries:{retries:5,minTimeout:20}}}},{key:"_releaseAndCb",value:function(Y,Z){return function(J){if(J){Y().then(function(){return Z(J)}).catch(function(Q){return Z((0,gp.default)([J,Q]))});return}Y().then(Z).catch(Z)}}},{key:"_writeData",value:function(Y,Z){var J={encoding:"utf8",mode:432,flag:"w"};(0,WL.writeFile)(this.path,JSON.stringify(Y),J,function(Q){return Z(Q)})}},{key:"_getData",value:function(Y){(0,WL.readFile)(this.path,"utf8",function(Z,J){if(Z){if(Z.code==="ENOENT")Y(null,{});else Y(Z);return}try{J=!J.trim().length?{}:JSON.parse(J)}catch(Q){Y(Q);return}Y(null,J)})}}])}()});var $Z=T((j1)=>{Object.defineProperty(j1,"__esModule",{value:!0});Object.defineProperty(j1,"DefaultHttpStack",{enumerable:!0,get:function(){return NL.default}});Object.defineProperty(j1,"DetailedError",{enumerable:!0,get:function(){return pp.default}});Object.defineProperty(j1,"FileUrlStorage",{enumerable:!0,get:function(){return RL.FileUrlStorage}});Object.defineProperty(j1,"StreamSource",{enumerable:!0,get:function(){return op.default}});j1.Upload=void 0;Object.defineProperty(j1,"canStoreURLs",{enumerable:!0,get:function(){return RL.canStoreURLs}});j1.defaultOptions=void 0;Object.defineProperty(j1,"enableDebugLog",{enumerable:!0,get:function(){return ap.enableDebugLog}});j1.isSupported=void 0;var pp=m9(Cw()),ap=jw(),tp=m9(RK()),xF=m9(oK()),rp=m9(Gz()),sp=m9(Kz()),NL=m9(Pz()),op=m9(gw()),RL=ML();function m9(D){return D&&D.__esModule?D:{default:D}}function Q7(D){return Q7=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(X){return typeof X}:function(X){return X&&typeof Symbol=="function"&&X.constructor===Symbol&&X!==Symbol.prototype?"symbol":typeof X},Q7(D)}function ep(D,X){if(!(D instanceof X))throw TypeError("Cannot call a class as a function")}function LL(D,X){for(var Y=0;Y<X.length;Y++){var Z=X[Y];if(Z.enumerable=Z.enumerable||!1,Z.configurable=!0,"value"in Z)Z.writable=!0;Object.defineProperty(D,EL(Z.key),Z)}}function Da(D,X,Y){if(X)LL(D.prototype,X);if(Y)LL(D,Y);return Object.defineProperty(D,"prototype",{writable:!1}),D}function Xa(D,X,Y){return X=qZ(X),Ya(D,AL()?Reflect.construct(X,Y||[],qZ(D).constructor):X.apply(D,Y))}function Ya(D,X){if(X&&(Q7(X)==="object"||typeof X==="function"))return X;else if(X!==void 0)throw TypeError("Derived constructors may only return object or undefined");return Za(D)}function Za(D){if(D===void 0)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return D}function AL(){try{var D=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(X){}return(AL=function(){return!!D})()}function qZ(D){return qZ=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(Y){return Y.__proto__||Object.getPrototypeOf(Y)},qZ(D)}function Ja(D,X){if(typeof X!=="function"&&X!==null)throw TypeError("Super expression must either be null or a function");if(D.prototype=Object.create(X&&X.prototype,{constructor:{value:D,writable:!0,configurable:!0}}),Object.defineProperty(D,"prototype",{writable:!1}),X)fF(D,X)}function fF(D,X){return fF=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(Z,J){return Z.__proto__=J,Z},fF(D,X)}function VL(D,X){var Y=Object.keys(D);if(Object.getOwnPropertySymbols){var Z=Object.getOwnPropertySymbols(D);X&&(Z=Z.filter(function(J){return Object.getOwnPropertyDescriptor(D,J).enumerable})),Y.push.apply(Y,Z)}return Y}function J7(D){for(var X=1;X<arguments.length;X++){var Y=arguments[X]!=null?arguments[X]:{};X%2?VL(Object(Y),!0).forEach(function(Z){Qa(D,Z,Y[Z])}):Object.getOwnPropertyDescriptors?Object.defineProperties(D,Object.getOwnPropertyDescriptors(Y)):VL(Object(Y)).forEach(function(Z){Object.defineProperty(D,Z,Object.getOwnPropertyDescriptor(Y,Z))})}return D}function Qa(D,X,Y){if(X=EL(X),X in D)Object.defineProperty(D,X,{value:Y,enumerable:!0,configurable:!0,writable:!0});else D[X]=Y;return D}function EL(D){var X=wa(D,"string");return Q7(X)=="symbol"?X:X+""}function wa(D,X){if(Q7(D)!="object"||!D)return D;var Y=D[Symbol.toPrimitive];if(Y!==void 0){var Z=Y.call(D,X||"default");if(Q7(Z)!="object")return Z;throw TypeError("@@toPrimitive must return a primitive value.")}return(X==="string"?String:Number)(D)}var UL=j1.defaultOptions=J7(J7({},xF.default.defaultOptions),{},{httpStack:new NL.default,fileReader:new rp.default,urlStorage:new tp.default,fingerprint:sp.default}),Gw0=j1.Upload=function(D){function X(){var Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,Z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return ep(this,X),Z=J7(J7({},UL),Z),Xa(this,X,[Y,Z])}return Ja(X,D),Da(X,null,[{key:"terminate",value:function(Z){var J=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return J=J7(J7({},UL),J),xF.default.terminate(Z,J)}}])}(xF.default),Ow0=j1.isSupported=!0});var IL=T((jw0,TL)=>{var w7=1000,F7=w7*60,B7=F7*60,d9=B7*24,$a=d9*7,Ga=d9*365.25;TL.exports=function(D,X){X=X||{};var Y=typeof D;if(Y==="string"&&D.length>0)return Oa(D);else if(Y==="number"&&isFinite(D))return X.long?Ha(D):Wa(D);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(D))};function Oa(D){if(D=String(D),D.length>100)return;var X=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(D);if(!X)return;var Y=parseFloat(X[1]),Z=(X[2]||"ms").toLowerCase();switch(Z){case"years":case"year":case"yrs":case"yr":case"y":return Y*Ga;case"weeks":case"week":case"w":return Y*$a;case"days":case"day":case"d":return Y*d9;case"hours":case"hour":case"hrs":case"hr":case"h":return Y*B7;case"minutes":case"minute":case"mins":case"min":case"m":return Y*F7;case"seconds":case"second":case"secs":case"sec":case"s":return Y*w7;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return Y;default:return}}function Wa(D){var X=Math.abs(D);if(X>=d9)return Math.round(D/d9)+"d";if(X>=B7)return Math.round(D/B7)+"h";if(X>=F7)return Math.round(D/F7)+"m";if(X>=w7)return Math.round(D/w7)+"s";return D+"ms"}function Ha(D){var X=Math.abs(D);if(X>=d9)return OZ(D,X,d9,"day");if(X>=B7)return OZ(D,X,B7,"hour");if(X>=F7)return OZ(D,X,F7,"minute");if(X>=w7)return OZ(D,X,w7,"second");return D+" ms"}function OZ(D,X,Y,Z){var J=X>=Y*1.5;return Math.round(D/Y)+" "+Z+(J?"s":"")}});var kF=T((Tw0,PL)=>{function Ka(D){Y.debug=Y,Y.default=Y,Y.coerce=B,Y.disable=w,Y.enable=J,Y.enabled=F,Y.humanize=IL(),Y.destroy=q,Object.keys(D).forEach(($)=>{Y[$]=D[$]}),Y.names=[],Y.skips=[],Y.formatters={};function X($){let G=0;for(let W=0;W<$.length;W++)G=(G<<5)-G+$.charCodeAt(W),G|=0;return Y.colors[Math.abs(G)%Y.colors.length]}Y.selectColor=X;function Y($){let G,W=null,O,H;function M(...U){if(!M.enabled)return;let N=M,R=Number(new Date),z=R-(G||R);if(N.diff=z,N.prev=G,N.curr=R,G=R,U[0]=Y.coerce(U[0]),typeof U[0]!=="string")U.unshift("%O");let V=0;U[0]=U[0].replace(/%([a-zA-Z%])/g,(C,y)=>{if(C==="%%")return"%";V++;let A=Y.formatters[y];if(typeof A==="function"){let k=U[V];C=A.call(N,k),U.splice(V,1),V--}return C}),Y.formatArgs.call(N,U),(N.log||Y.log).apply(N,U)}if(M.namespace=$,M.useColors=Y.useColors(),M.color=Y.selectColor($),M.extend=Z,M.destroy=Y.destroy,Object.defineProperty(M,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(W!==null)return W;if(O!==Y.namespaces)O=Y.namespaces,H=Y.enabled($);return H},set:(U)=>{W=U}}),typeof Y.init==="function")Y.init(M);return M}function Z($,G){let W=Y(this.namespace+(typeof G>"u"?":":G)+$);return W.log=this.log,W}function J($){Y.save($),Y.namespaces=$,Y.names=[],Y.skips=[];let G=(typeof $==="string"?$:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let W of G)if(W[0]==="-")Y.skips.push(W.slice(1));else Y.names.push(W)}function Q($,G){let W=0,O=0,H=-1,M=0;while(W<$.length)if(O<G.length&&(G[O]===$[W]||G[O]==="*"))if(G[O]==="*")H=O,M=W,O++;else W++,O++;else if(H!==-1)O=H+1,M++,W=M;else return!1;while(O<G.length&&G[O]==="*")O++;return O===G.length}function w(){let $=[...Y.names,...Y.skips.map((G)=>"-"+G)].join(",");return Y.enable(""),$}function F($){for(let G of Y.skips)if(Q($,G))return!1;for(let G of Y.names)if(Q($,G))return!0;return!1}function B($){if($ instanceof Error)return $.stack||$.message;return $}function q(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return Y.enable(Y.load()),Y}PL.exports=Ka});var SL=T((T1,WZ)=>{T1.formatArgs=Ma;T1.save=La;T1.load=Va;T1.useColors=za;T1.storage=Ua();T1.destroy=(()=>{let D=!1;return()=>{if(!D)D=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}})();T1.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function za(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let D;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(D=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(D[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Ma(D){if(D[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+D[0]+(this.useColors?"%c ":" ")+"+"+WZ.exports.humanize(this.diff),!this.useColors)return;let X="color: "+this.color;D.splice(1,0,X,"color: inherit");let Y=0,Z=0;D[0].replace(/%[a-zA-Z%]/g,(J)=>{if(J==="%%")return;if(Y++,J==="%c")Z=Y}),D.splice(Z,0,X)}T1.log=console.debug||console.log||(()=>{});function La(D){try{if(D)T1.storage.setItem("debug",D);else T1.storage.removeItem("debug")}catch(X){}}function Va(){let D;try{D=T1.storage.getItem("debug")||T1.storage.getItem("DEBUG")}catch(X){}if(!D&&typeof process<"u"&&"env"in process)D=process.env.DEBUG;return D}function Ua(){try{return localStorage}catch(D){}}WZ.exports=kF()(T1);var{formatters:Na}=WZ.exports;Na.j=function(D){try{return JSON.stringify(D)}catch(X){return"[UnexpectedJSONParseError]: "+X.message}}});var fL=T((Iw0,xL)=>{xL.exports=(D,X=process.argv)=>{let Y=D.startsWith("-")?"":D.length===1?"-":"--",Z=X.indexOf(Y+D),J=X.indexOf("--");return Z!==-1&&(J===-1||Z<J)}});var uL=T((Pw0,kL)=>{var Ra=require("os"),yL=require("tty"),i1=fL(),{env:gD}=process,k6;if(i1("no-color")||i1("no-colors")||i1("color=false")||i1("color=never"))k6=0;else if(i1("color")||i1("colors")||i1("color=true")||i1("color=always"))k6=1;if("FORCE_COLOR"in gD)if(gD.FORCE_COLOR==="true")k6=1;else if(gD.FORCE_COLOR==="false")k6=0;else k6=gD.FORCE_COLOR.length===0?1:Math.min(parseInt(gD.FORCE_COLOR,10),3);function uF(D){if(D===0)return!1;return{level:D,hasBasic:!0,has256:D>=2,has16m:D>=3}}function hF(D,X){if(k6===0)return 0;if(i1("color=16m")||i1("color=full")||i1("color=truecolor"))return 3;if(i1("color=256"))return 2;if(D&&!X&&k6===void 0)return 0;let Y=k6||0;if(gD.TERM==="dumb")return Y;if(process.platform==="win32"){let Z=Ra.release().split(".");if(Number(Z[0])>=10&&Number(Z[2])>=10586)return Number(Z[2])>=14931?3:2;return 1}if("CI"in gD){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((Z)=>(Z in gD))||gD.CI_NAME==="codeship")return 1;return Y}if("TEAMCITY_VERSION"in gD)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(gD.TEAMCITY_VERSION)?1:0;if(gD.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in gD){let Z=parseInt((gD.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(gD.TERM_PROGRAM){case"iTerm.app":return Z>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(gD.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(gD.TERM))return 1;if("COLORTERM"in gD)return 1;return Y}function Aa(D){let X=hF(D,D&&D.isTTY);return uF(X)}kL.exports={supportsColor:Aa,stdout:uF(hF(!0,yL.isatty(1))),stderr:uF(hF(!0,yL.isatty(2)))}});var _L=T((mD,KZ)=>{var Ea=require("tty"),HZ=require("util");mD.init=xa;mD.log=Ia;mD.formatArgs=ja;mD.save=Pa;mD.load=Sa;mD.useColors=Ca;mD.destroy=HZ.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");mD.colors=[6,2,3,4,5,1];try{let D=uL();if(D&&(D.stderr||D).level>=2)mD.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch(D){}mD.inspectOpts=Object.keys(process.env).filter((D)=>{return/^debug_/i.test(D)}).reduce((D,X)=>{let Y=X.substring(6).toLowerCase().replace(/_([a-z])/g,(J,Q)=>{return Q.toUpperCase()}),Z=process.env[X];if(/^(yes|on|true|enabled)$/i.test(Z))Z=!0;else if(/^(no|off|false|disabled)$/i.test(Z))Z=!1;else if(Z==="null")Z=null;else Z=Number(Z);return D[Y]=Z,D},{});function Ca(){return"colors"in mD.inspectOpts?Boolean(mD.inspectOpts.colors):Ea.isatty(process.stderr.fd)}function ja(D){let{namespace:X,useColors:Y}=this;if(Y){let Z=this.color,J="\x1B[3"+(Z<8?Z:"8;5;"+Z),Q=` ${J};1m${X} \x1B[0m`;D[0]=Q+D[0].split(`
58
58
  `).join(`
59
- `+Q),D.push(J+"m+"+KZ.exports.humanize(this.diff)+"\x1B[0m")}else D[0]=Ta()+X+" "+D[0]}function Ta(){if(dD.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function Ia(...D){return process.stderr.write(HZ.formatWithOptions(dD.inspectOpts,...D)+`
60
- `)}function Pa(D){if(D)process.env.DEBUG=D;else delete process.env.DEBUG}function Sa(){return process.env.DEBUG}function xa(D){D.inspectOpts={};let X=Object.keys(dD.inspectOpts);for(let Y=0;Y<X.length;Y++)D.inspectOpts[X[Y]]=dD.inspectOpts[X[Y]]}KZ.exports=kF()(dD);var{formatters:hL}=KZ.exports;hL.o=function(D){return this.inspectOpts.colors=this.useColors,HZ.inspect(D,this.inspectOpts).split(`
61
- `).map((X)=>X.trim()).join(" ")};hL.O=function(D){return this.inspectOpts.colors=this.useColors,HZ.inspect(D,this.inspectOpts)}});var zZ=T((Sw0,_F)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)_F.exports=SL();else _F.exports=_L()});var f0=T((vF)=>{vF.fromCallback=function(D){return Object.defineProperty(function(...X){if(typeof X[X.length-1]==="function")D.apply(this,X);else return new Promise((Y,Z)=>{X.push((J,Q)=>J!=null?Z(J):Y(Q)),D.apply(this,X)})},"name",{value:D.name})};vF.fromPromise=function(D){return Object.defineProperty(function(...X){let Y=X[X.length-1];if(typeof Y!=="function")return D.apply(this,X);else X.pop(),D.apply(this,X).then((Z)=>Y(null,Z),Y)},"name",{value:D.name})}});var $1=T((e8)=>{var vL=f0().fromCallback,q1=ED(),fa=["access","appendFile","chmod","chown","close","copyFile","cp","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","glob","lchmod","lchown","lutimes","link","lstat","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rm","rmdir","stat","statfs","symlink","truncate","unlink","utimes","writeFile"].filter((D)=>{return typeof q1[D]==="function"});Object.assign(e8,q1);fa.forEach((D)=>{e8[D]=vL(q1[D])});e8.exists=function(D,X){if(typeof X==="function")return q1.exists(D,X);return new Promise((Y)=>{return q1.exists(D,Y)})};e8.read=function(D,X,Y,Z,J,Q){if(typeof Q==="function")return q1.read(D,X,Y,Z,J,Q);return new Promise((w,F)=>{q1.read(D,X,Y,Z,J,(B,q,$)=>{if(B)return F(B);w({bytesRead:q,buffer:$})})})};e8.write=function(D,X,...Y){if(typeof Y[Y.length-1]==="function")return q1.write(D,X,...Y);return new Promise((Z,J)=>{q1.write(D,X,...Y,(Q,w,F)=>{if(Q)return J(Q);Z({bytesWritten:w,buffer:F})})})};e8.readv=function(D,X,...Y){if(typeof Y[Y.length-1]==="function")return q1.readv(D,X,...Y);return new Promise((Z,J)=>{q1.readv(D,X,...Y,(Q,w,F)=>{if(Q)return J(Q);Z({bytesRead:w,buffers:F})})})};e8.writev=function(D,X,...Y){if(typeof Y[Y.length-1]==="function")return q1.writev(D,X,...Y);return new Promise((Z,J)=>{q1.writev(D,X,...Y,(Q,w,F)=>{if(Q)return J(Q);Z({bytesWritten:w,buffers:F})})})};if(typeof q1.realpath.native==="function")e8.realpath.native=vL(q1.realpath.native);else process.emitWarning("fs.realpath.native is not a function. Is fs being monkey-patched?","Warning","fs-extra-WARN0003")});var gL=T((yw0,bL)=>{var ya=require("path");bL.exports.checkPath=function(X){if(process.platform==="win32"){if(/[<>:"|?*]/.test(X.replace(ya.parse(X).root,""))){let Z=Error(`Path contains invalid characters: ${X}`);throw Z.code="EINVAL",Z}}}});var lL=T((kw0,bF)=>{var mL=$1(),{checkPath:dL}=gL(),cL=(D)=>{let X={mode:511};if(typeof D==="number")return D;return{...X,...D}.mode};bF.exports.makeDir=async(D,X)=>{return dL(D),mL.mkdir(D,{mode:cL(X),recursive:!0})};bF.exports.makeDirSync=(D,X)=>{return dL(D),mL.mkdirSync(D,{mode:cL(X),recursive:!0})}});var G8=T((uw0,nL)=>{var ka=f0().fromPromise,{makeDir:ua,makeDirSync:gF}=lL(),mF=ka(ua);nL.exports={mkdirs:mF,mkdirsSync:gF,mkdirp:mF,mkdirpSync:gF,ensureDir:mF,ensureDirSync:gF}});var u6=T((hw0,pL)=>{var ha=f0().fromPromise,iL=$1();function _a(D){return iL.access(D).then(()=>!0).catch(()=>!1)}pL.exports={pathExists:ha(_a),pathExistsSync:iL.existsSync}});var dF=T((_w0,aL)=>{var q7=$1(),va=f0().fromPromise;async function ba(D,X,Y){let Z=await q7.open(D,"r+"),J=null;try{await q7.futimes(Z,X,Y)}finally{try{await q7.close(Z)}catch(Q){J=Q}}if(J)throw J}function ga(D,X,Y){let Z=q7.openSync(D,"r+");return q7.futimesSync(Z,X,Y),q7.closeSync(Z)}aL.exports={utimesMillis:va(ba),utimesMillisSync:ga}});var c9=T((vw0,oL)=>{var $7=$1(),cD=require("path"),tL=f0().fromPromise;function ma(D,X,Y){let Z=Y.dereference?(J)=>$7.stat(J,{bigint:!0}):(J)=>$7.lstat(J,{bigint:!0});return Promise.all([Z(D),Z(X).catch((J)=>{if(J.code==="ENOENT")return null;throw J})]).then(([J,Q])=>({srcStat:J,destStat:Q}))}function da(D,X,Y){let Z,J=Y.dereference?(w)=>$7.statSync(w,{bigint:!0}):(w)=>$7.lstatSync(w,{bigint:!0}),Q=J(D);try{Z=J(X)}catch(w){if(w.code==="ENOENT")return{srcStat:Q,destStat:null};throw w}return{srcStat:Q,destStat:Z}}async function ca(D,X,Y,Z){let{srcStat:J,destStat:Q}=await ma(D,X,Z);if(Q){if(X3(J,Q)){let w=cD.basename(D),F=cD.basename(X);if(Y==="move"&&w!==F&&w.toLowerCase()===F.toLowerCase())return{srcStat:J,destStat:Q,isChangingCase:!0};throw Error("Source and destination must not be the same.")}if(J.isDirectory()&&!Q.isDirectory())throw Error(`Cannot overwrite non-directory '${X}' with directory '${D}'.`);if(!J.isDirectory()&&Q.isDirectory())throw Error(`Cannot overwrite directory '${X}' with non-directory '${D}'.`)}if(J.isDirectory()&&cF(D,X))throw Error(MZ(D,X,Y));return{srcStat:J,destStat:Q}}function la(D,X,Y,Z){let{srcStat:J,destStat:Q}=da(D,X,Z);if(Q){if(X3(J,Q)){let w=cD.basename(D),F=cD.basename(X);if(Y==="move"&&w!==F&&w.toLowerCase()===F.toLowerCase())return{srcStat:J,destStat:Q,isChangingCase:!0};throw Error("Source and destination must not be the same.")}if(J.isDirectory()&&!Q.isDirectory())throw Error(`Cannot overwrite non-directory '${X}' with directory '${D}'.`);if(!J.isDirectory()&&Q.isDirectory())throw Error(`Cannot overwrite directory '${X}' with non-directory '${D}'.`)}if(J.isDirectory()&&cF(D,X))throw Error(MZ(D,X,Y));return{srcStat:J,destStat:Q}}async function rL(D,X,Y,Z){let J=cD.resolve(cD.dirname(D)),Q=cD.resolve(cD.dirname(Y));if(Q===J||Q===cD.parse(Q).root)return;let w;try{w=await $7.stat(Q,{bigint:!0})}catch(F){if(F.code==="ENOENT")return;throw F}if(X3(X,w))throw Error(MZ(D,Y,Z));return rL(D,X,Q,Z)}function sL(D,X,Y,Z){let J=cD.resolve(cD.dirname(D)),Q=cD.resolve(cD.dirname(Y));if(Q===J||Q===cD.parse(Q).root)return;let w;try{w=$7.statSync(Q,{bigint:!0})}catch(F){if(F.code==="ENOENT")return;throw F}if(X3(X,w))throw Error(MZ(D,Y,Z));return sL(D,X,Q,Z)}function X3(D,X){return X.ino!==void 0&&X.dev!==void 0&&X.ino===D.ino&&X.dev===D.dev}function cF(D,X){let Y=cD.resolve(D).split(cD.sep).filter((J)=>J),Z=cD.resolve(X).split(cD.sep).filter((J)=>J);return Y.every((J,Q)=>Z[Q]===J)}function MZ(D,X,Y){return`Cannot ${Y} '${D}' to a subdirectory of itself, '${X}'.`}oL.exports={checkPaths:tL(ca),checkPathsSync:la,checkParentPaths:tL(rL),checkParentPathsSync:sL,isSrcSubdir:cF,areIdentical:X3}});var DV=T((bw0,eL)=>{async function na(D,X){let Y=[];for await(let Z of D)Y.push(X(Z).then(()=>null,(J)=>J??Error("unknown error")));await Promise.all(Y.map((Z)=>Z.then((J)=>{if(J!==null)throw J})))}eL.exports={asyncIteratorConcurrentProcess:na}});var QV=T((gw0,JV)=>{var X1=$1(),Y3=require("path"),{mkdirs:ia}=G8(),{pathExists:pa}=u6(),{utimesMillis:aa}=dF(),Z3=c9(),{asyncIteratorConcurrentProcess:ta}=DV();async function ra(D,X,Y={}){if(typeof Y==="function")Y={filter:Y};if(Y.clobber="clobber"in Y?!!Y.clobber:!0,Y.overwrite="overwrite"in Y?!!Y.overwrite:Y.clobber,Y.preserveTimestamps&&process.arch==="ia32")process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended;
59
+ `+Q),D.push(J+"m+"+KZ.exports.humanize(this.diff)+"\x1B[0m")}else D[0]=Ta()+X+" "+D[0]}function Ta(){if(mD.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function Ia(...D){return process.stderr.write(HZ.formatWithOptions(mD.inspectOpts,...D)+`
60
+ `)}function Pa(D){if(D)process.env.DEBUG=D;else delete process.env.DEBUG}function Sa(){return process.env.DEBUG}function xa(D){D.inspectOpts={};let X=Object.keys(mD.inspectOpts);for(let Y=0;Y<X.length;Y++)D.inspectOpts[X[Y]]=mD.inspectOpts[X[Y]]}KZ.exports=kF()(mD);var{formatters:hL}=KZ.exports;hL.o=function(D){return this.inspectOpts.colors=this.useColors,HZ.inspect(D,this.inspectOpts).split(`
61
+ `).map((X)=>X.trim()).join(" ")};hL.O=function(D){return this.inspectOpts.colors=this.useColors,HZ.inspect(D,this.inspectOpts)}});var zZ=T((Sw0,_F)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)_F.exports=SL();else _F.exports=_L()});var f0=T((vF)=>{vF.fromCallback=function(D){return Object.defineProperty(function(...X){if(typeof X[X.length-1]==="function")D.apply(this,X);else return new Promise((Y,Z)=>{X.push((J,Q)=>J!=null?Z(J):Y(Q)),D.apply(this,X)})},"name",{value:D.name})};vF.fromPromise=function(D){return Object.defineProperty(function(...X){let Y=X[X.length-1];if(typeof Y!=="function")return D.apply(this,X);else X.pop(),D.apply(this,X).then((Z)=>Y(null,Z),Y)},"name",{value:D.name})}});var $1=T((e8)=>{var vL=f0().fromCallback,q1=ED(),fa=["access","appendFile","chmod","chown","close","copyFile","cp","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","glob","lchmod","lchown","lutimes","link","lstat","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rm","rmdir","stat","statfs","symlink","truncate","unlink","utimes","writeFile"].filter((D)=>{return typeof q1[D]==="function"});Object.assign(e8,q1);fa.forEach((D)=>{e8[D]=vL(q1[D])});e8.exists=function(D,X){if(typeof X==="function")return q1.exists(D,X);return new Promise((Y)=>{return q1.exists(D,Y)})};e8.read=function(D,X,Y,Z,J,Q){if(typeof Q==="function")return q1.read(D,X,Y,Z,J,Q);return new Promise((w,F)=>{q1.read(D,X,Y,Z,J,(B,q,$)=>{if(B)return F(B);w({bytesRead:q,buffer:$})})})};e8.write=function(D,X,...Y){if(typeof Y[Y.length-1]==="function")return q1.write(D,X,...Y);return new Promise((Z,J)=>{q1.write(D,X,...Y,(Q,w,F)=>{if(Q)return J(Q);Z({bytesWritten:w,buffer:F})})})};e8.readv=function(D,X,...Y){if(typeof Y[Y.length-1]==="function")return q1.readv(D,X,...Y);return new Promise((Z,J)=>{q1.readv(D,X,...Y,(Q,w,F)=>{if(Q)return J(Q);Z({bytesRead:w,buffers:F})})})};e8.writev=function(D,X,...Y){if(typeof Y[Y.length-1]==="function")return q1.writev(D,X,...Y);return new Promise((Z,J)=>{q1.writev(D,X,...Y,(Q,w,F)=>{if(Q)return J(Q);Z({bytesWritten:w,buffers:F})})})};if(typeof q1.realpath.native==="function")e8.realpath.native=vL(q1.realpath.native);else process.emitWarning("fs.realpath.native is not a function. Is fs being monkey-patched?","Warning","fs-extra-WARN0003")});var gL=T((yw0,bL)=>{var ya=require("path");bL.exports.checkPath=function(X){if(process.platform==="win32"){if(/[<>:"|?*]/.test(X.replace(ya.parse(X).root,""))){let Z=Error(`Path contains invalid characters: ${X}`);throw Z.code="EINVAL",Z}}}});var lL=T((kw0,bF)=>{var mL=$1(),{checkPath:dL}=gL(),cL=(D)=>{let X={mode:511};if(typeof D==="number")return D;return{...X,...D}.mode};bF.exports.makeDir=async(D,X)=>{return dL(D),mL.mkdir(D,{mode:cL(X),recursive:!0})};bF.exports.makeDirSync=(D,X)=>{return dL(D),mL.mkdirSync(D,{mode:cL(X),recursive:!0})}});var G8=T((uw0,nL)=>{var ka=f0().fromPromise,{makeDir:ua,makeDirSync:gF}=lL(),mF=ka(ua);nL.exports={mkdirs:mF,mkdirsSync:gF,mkdirp:mF,mkdirpSync:gF,ensureDir:mF,ensureDirSync:gF}});var u6=T((hw0,pL)=>{var ha=f0().fromPromise,iL=$1();function _a(D){return iL.access(D).then(()=>!0).catch(()=>!1)}pL.exports={pathExists:ha(_a),pathExistsSync:iL.existsSync}});var dF=T((_w0,aL)=>{var q7=$1(),va=f0().fromPromise;async function ba(D,X,Y){let Z=await q7.open(D,"r+"),J=null;try{await q7.futimes(Z,X,Y)}finally{try{await q7.close(Z)}catch(Q){J=Q}}if(J)throw J}function ga(D,X,Y){let Z=q7.openSync(D,"r+");return q7.futimesSync(Z,X,Y),q7.closeSync(Z)}aL.exports={utimesMillis:va(ba),utimesMillisSync:ga}});var c9=T((vw0,oL)=>{var $7=$1(),dD=require("path"),tL=f0().fromPromise;function ma(D,X,Y){let Z=Y.dereference?(J)=>$7.stat(J,{bigint:!0}):(J)=>$7.lstat(J,{bigint:!0});return Promise.all([Z(D),Z(X).catch((J)=>{if(J.code==="ENOENT")return null;throw J})]).then(([J,Q])=>({srcStat:J,destStat:Q}))}function da(D,X,Y){let Z,J=Y.dereference?(w)=>$7.statSync(w,{bigint:!0}):(w)=>$7.lstatSync(w,{bigint:!0}),Q=J(D);try{Z=J(X)}catch(w){if(w.code==="ENOENT")return{srcStat:Q,destStat:null};throw w}return{srcStat:Q,destStat:Z}}async function ca(D,X,Y,Z){let{srcStat:J,destStat:Q}=await ma(D,X,Z);if(Q){if(X3(J,Q)){let w=dD.basename(D),F=dD.basename(X);if(Y==="move"&&w!==F&&w.toLowerCase()===F.toLowerCase())return{srcStat:J,destStat:Q,isChangingCase:!0};throw Error("Source and destination must not be the same.")}if(J.isDirectory()&&!Q.isDirectory())throw Error(`Cannot overwrite non-directory '${X}' with directory '${D}'.`);if(!J.isDirectory()&&Q.isDirectory())throw Error(`Cannot overwrite directory '${X}' with non-directory '${D}'.`)}if(J.isDirectory()&&cF(D,X))throw Error(MZ(D,X,Y));return{srcStat:J,destStat:Q}}function la(D,X,Y,Z){let{srcStat:J,destStat:Q}=da(D,X,Z);if(Q){if(X3(J,Q)){let w=dD.basename(D),F=dD.basename(X);if(Y==="move"&&w!==F&&w.toLowerCase()===F.toLowerCase())return{srcStat:J,destStat:Q,isChangingCase:!0};throw Error("Source and destination must not be the same.")}if(J.isDirectory()&&!Q.isDirectory())throw Error(`Cannot overwrite non-directory '${X}' with directory '${D}'.`);if(!J.isDirectory()&&Q.isDirectory())throw Error(`Cannot overwrite directory '${X}' with non-directory '${D}'.`)}if(J.isDirectory()&&cF(D,X))throw Error(MZ(D,X,Y));return{srcStat:J,destStat:Q}}async function rL(D,X,Y,Z){let J=dD.resolve(dD.dirname(D)),Q=dD.resolve(dD.dirname(Y));if(Q===J||Q===dD.parse(Q).root)return;let w;try{w=await $7.stat(Q,{bigint:!0})}catch(F){if(F.code==="ENOENT")return;throw F}if(X3(X,w))throw Error(MZ(D,Y,Z));return rL(D,X,Q,Z)}function sL(D,X,Y,Z){let J=dD.resolve(dD.dirname(D)),Q=dD.resolve(dD.dirname(Y));if(Q===J||Q===dD.parse(Q).root)return;let w;try{w=$7.statSync(Q,{bigint:!0})}catch(F){if(F.code==="ENOENT")return;throw F}if(X3(X,w))throw Error(MZ(D,Y,Z));return sL(D,X,Q,Z)}function X3(D,X){return X.ino!==void 0&&X.dev!==void 0&&X.ino===D.ino&&X.dev===D.dev}function cF(D,X){let Y=dD.resolve(D).split(dD.sep).filter((J)=>J),Z=dD.resolve(X).split(dD.sep).filter((J)=>J);return Y.every((J,Q)=>Z[Q]===J)}function MZ(D,X,Y){return`Cannot ${Y} '${D}' to a subdirectory of itself, '${X}'.`}oL.exports={checkPaths:tL(ca),checkPathsSync:la,checkParentPaths:tL(rL),checkParentPathsSync:sL,isSrcSubdir:cF,areIdentical:X3}});var DV=T((bw0,eL)=>{async function na(D,X){let Y=[];for await(let Z of D)Y.push(X(Z).then(()=>null,(J)=>J??Error("unknown error")));await Promise.all(Y.map((Z)=>Z.then((J)=>{if(J!==null)throw J})))}eL.exports={asyncIteratorConcurrentProcess:na}});var QV=T((gw0,JV)=>{var X1=$1(),Y3=require("path"),{mkdirs:ia}=G8(),{pathExists:pa}=u6(),{utimesMillis:aa}=dF(),Z3=c9(),{asyncIteratorConcurrentProcess:ta}=DV();async function ra(D,X,Y={}){if(typeof Y==="function")Y={filter:Y};if(Y.clobber="clobber"in Y?!!Y.clobber:!0,Y.overwrite="overwrite"in Y?!!Y.overwrite:Y.clobber,Y.preserveTimestamps&&process.arch==="ia32")process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended;
62
62
 
63
63
  see https://github.com/jprichardson/node-fs-extra/issues/269`,"Warning","fs-extra-WARN0001");let{srcStat:Z,destStat:J}=await Z3.checkPaths(D,X,"copy",Y);if(await Z3.checkParentPaths(D,Z,X,"copy"),!await YV(D,X,Y))return;let w=Y3.dirname(X);if(!await pa(w))await ia(w);await ZV(J,D,X,Y)}async function YV(D,X,Y){if(!Y.filter)return!0;return Y.filter(D,X)}async function ZV(D,X,Y,Z){let Q=await(Z.dereference?X1.stat:X1.lstat)(X);if(Q.isDirectory())return Dt(Q,D,X,Y,Z);if(Q.isFile()||Q.isCharacterDevice()||Q.isBlockDevice())return sa(Q,D,X,Y,Z);if(Q.isSymbolicLink())return Xt(D,X,Y,Z);if(Q.isSocket())throw Error(`Cannot copy a socket file: ${X}`);if(Q.isFIFO())throw Error(`Cannot copy a FIFO pipe: ${X}`);throw Error(`Unknown file: ${X}`)}async function sa(D,X,Y,Z,J){if(!X)return XV(D,Y,Z,J);if(J.overwrite)return await X1.unlink(Z),XV(D,Y,Z,J);if(J.errorOnExist)throw Error(`'${Z}' already exists`)}async function XV(D,X,Y,Z){if(await X1.copyFile(X,Y),Z.preserveTimestamps){if(oa(D.mode))await ea(Y,D.mode);let J=await X1.stat(X);await aa(Y,J.atime,J.mtime)}return X1.chmod(Y,D.mode)}function oa(D){return(D&128)===0}function ea(D,X){return X1.chmod(D,X|128)}async function Dt(D,X,Y,Z,J){if(!X)await X1.mkdir(Z);if(await ta(await X1.opendir(Y),async(Q)=>{let w=Y3.join(Y,Q.name),F=Y3.join(Z,Q.name);if(await YV(w,F,J)){let{destStat:q}=await Z3.checkPaths(w,F,"copy",J);await ZV(q,w,F,J)}}),!X)await X1.chmod(Z,D.mode)}async function Xt(D,X,Y,Z){let J=await X1.readlink(X);if(Z.dereference)J=Y3.resolve(process.cwd(),J);if(!D)return X1.symlink(J,Y);let Q=null;try{Q=await X1.readlink(Y)}catch(w){if(w.code==="EINVAL"||w.code==="UNKNOWN")return X1.symlink(J,Y);throw w}if(Z.dereference)Q=Y3.resolve(process.cwd(),Q);if(J!==Q){if(Z3.isSrcSubdir(J,Q))throw Error(`Cannot copy '${J}' to a subdirectory of itself, '${Q}'.`);if(Z3.isSrcSubdir(Q,J))throw Error(`Cannot overwrite '${Q}' with '${J}'.`)}return await X1.unlink(Y),X1.symlink(J,Y)}JV.exports=ra});var $V=T((mw0,qV)=>{var G1=ED(),J3=require("path"),Yt=G8().mkdirsSync,Zt=dF().utimesMillisSync,Q3=c9();function Jt(D,X,Y){if(typeof Y==="function")Y={filter:Y};if(Y=Y||{},Y.clobber="clobber"in Y?!!Y.clobber:!0,Y.overwrite="overwrite"in Y?!!Y.overwrite:Y.clobber,Y.preserveTimestamps&&process.arch==="ia32")process.emitWarning(`Using the preserveTimestamps option in 32-bit node is not recommended;
64
64
 
@@ -196,7 +196,7 @@ Are you sure ${C7.default.strong(X)} is installed?`);let Z=(0,Dq.dirname)(Y),J=a
196
196
  `;break;case"incompatible":Z=`Found ${D.length} incompatible Cordova plugin${J} for ${C7.default.strong(X)}, skipped install:
197
197
  `;break;case"capacitor":Z=`Found ${D.length} Capacitor plugin${J} for ${C7.default.strong(X)}:
198
198
  `;break}Z+=D.map((Q)=>`${Q.id}${C7.default.weak(`@${Q.version}`)}`).join(`
199
- `),DD0.logger.info(Z)}n0.printPlugins=ZD0;function Yq(D,X){if(D.xml.platform)return D.xml.platform.filter(function(J){return J.$.name===X})[0];return[]}n0.getPluginPlatform=Yq;function JD0(D,X,Y){let Z=Yq(D,X);if(Z){let J=Z[Y];if(J)return J}return[]}n0.getPlatformElement=JD0;function QD0(D,X){var Y,Z,J,Q;switch(X){case"ios":return(Z=(Y=D.ios)===null||Y===void 0?void 0:Y.type)!==null&&Z!==void 0?Z:0;case"android":return(Q=(J=D.android)===null||J===void 0?void 0:J.type)!==null&&Q!==void 0?Q:0}return 0}n0.getPluginType=QD0;function wD0(D,X){return Zq(D,X,"js-module")}n0.getJSModules=wD0;function FD0(D,X){return Zq(D,X,"asset")}n0.getAssets=FD0;function BD0(D,X,Y){if(Y.startsWith("node_modules")){let Z=Y.split("/").slice(1);if(Z[0].startsWith("@"))Z=[Z[0]+"/"+Z[1],...Z.slice(2)];let J=(0,$T.resolveNode)(D.app.rootDir,...Z);if(!J)throw Error(`Can't resolve module ${Z[0]}`);return J}return(0,Dq.join)(X.rootPath,Y)}n0.getFilePath=BD0;function Zq(D,X,Y){let Z=[];if(D.xml[Y])Z=Z.concat(D.xml[Y]);let J=Yq(D,X);if(J===null||J===void 0?void 0:J[Y])Z=Z.concat(J[Y]);return Z}n0.getAllElements=Zq});var KT=T((lD)=>{Object.defineProperty(lD,"__esModule",{value:!0});lD.replace=lD.move=lD.splice=lD.reduce=lD.map=lD.filter=lD.concurrentFilter=lD.conform=void 0;function qD0(D){if(typeof D>"u")return[];if(!Array.isArray(D))return[D];return D}lD.conform=qD0;async function $D0(D,X){let Y=async(J)=>[J,await X(J)];return(await Promise.all(D.map(Y))).filter(([,J])=>J).map(([J])=>J)}lD.concurrentFilter=$D0;async function GD0(D,X){return Jq(D,async(Z,J,Q,w)=>{if(await X(J,Q,w))Z.push(J);return Z},[])}lD.filter=GD0;async function OD0(D,X){return Jq(D,async(Z,J,Q,w)=>{return Z.push(await X(J,Q,w)),Z},[])}lD.map=OD0;async function Jq(D,X,Y){let J=typeof Y>"u"?1:0;if(typeof Y>"u"){if(D.length===0)throw TypeError("Reduce of empty array with no initial value");Y=D[0]}let Q=Y;for(let w=J;w<D.length;w++)Q=await X(Q,D[w],w,D);return Q}lD.reduce=Jq;function V2(D,X,Y=D.length-X,...Z){let J=[...D];return J.splice(X,Y,...Z),J}lD.splice=V2;function WD0(D,X,Y){let Z=D[X];if(X<0||Y<0||X>=D.length||Y>=D.length)return[...D];return V2(V2(D,X,1),Y,0,Z)}lD.move=WD0;function HD0(D,X,Y){if(X<0||X>D.length)return[...D];return V2(D,X,1,Y)}lD.replace=HD0});var I3=T((i6)=>{var zT=f0().fromCallback,W1=ED(),KD0=["access","appendFile","chmod","chown","close","copyFile","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","lchmod","lchown","link","lstat","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rm","rmdir","stat","symlink","truncate","unlink","utimes","writeFile"].filter((D)=>{return typeof W1[D]==="function"});Object.keys(W1).forEach((D)=>{if(D==="promises")return;i6[D]=W1[D]});KD0.forEach((D)=>{i6[D]=zT(W1[D])});i6.exists=function(D,X){if(typeof X==="function")return W1.exists(D,X);return new Promise((Y)=>{return W1.exists(D,Y)})};i6.read=function(D,X,Y,Z,J,Q){if(typeof Q==="function")return W1.read(D,X,Y,Z,J,Q);return new Promise((w,F)=>{W1.read(D,X,Y,Z,J,(B,q,$)=>{if(B)return F(B);w({bytesRead:q,buffer:$})})})};i6.write=function(D,X,...Y){if(typeof Y[Y.length-1]==="function")return W1.write(D,X,...Y);return new Promise((Z,J)=>{W1.write(D,X,...Y,(Q,w,F)=>{if(Q)return J(Q);Z({bytesWritten:w,buffer:F})})})};if(typeof W1.writev==="function")i6.writev=function(D,X,...Y){if(typeof Y[Y.length-1]==="function")return W1.writev(D,X,...Y);return new Promise((Z,J)=>{W1.writev(D,X,...Y,(Q,w,F)=>{if(Q)return J(Q);Z({bytesWritten:w,buffers:F})})})};if(typeof W1.realpath.native==="function")i6.realpath.native=zT(W1.realpath.native)});var Qq=T((qq0,MT)=>{MT.exports=(D)=>{let X=process.versions.node.split(".").map((Y)=>parseInt(Y,10));return D=D.split(".").map((Y)=>parseInt(Y,10)),X[0]>D[0]||X[0]===D[0]&&(X[1]>D[1]||X[1]===D[1]&&X[2]>=D[2])}});var RT=T(($q0,wq)=>{var j7=I3(),G6=require("path"),zD0=Qq(),LT=zD0("10.12.0"),VT=(D)=>{if(process.platform==="win32"){if(/[<>:"|?*]/.test(D.replace(G6.parse(D).root,""))){let Y=Error(`Path contains invalid characters: ${D}`);throw Y.code="EINVAL",Y}}},UT=(D)=>{let X={mode:511};if(typeof D==="number")D={mode:D};return{...X,...D}},NT=(D)=>{let X=Error(`operation not permitted, mkdir '${D}'`);return X.code="EPERM",X.errno=-4048,X.path=D,X.syscall="mkdir",X};wq.exports.makeDir=async(D,X)=>{if(VT(D),X=UT(X),LT){let Z=G6.resolve(D);return j7.mkdir(Z,{mode:X.mode,recursive:!0})}let Y=async(Z)=>{try{await j7.mkdir(Z,X.mode)}catch(J){if(J.code==="EPERM")throw J;if(J.code==="ENOENT"){if(G6.dirname(Z)===Z)throw NT(Z);if(J.message.includes("null bytes"))throw J;return await Y(G6.dirname(Z)),Y(Z)}try{if(!(await j7.stat(Z)).isDirectory())throw Error("The path is not a directory")}catch{throw J}}};return Y(G6.resolve(D))};wq.exports.makeDirSync=(D,X)=>{if(VT(D),X=UT(X),LT){let Z=G6.resolve(D);return j7.mkdirSync(Z,{mode:X.mode,recursive:!0})}let Y=(Z)=>{try{j7.mkdirSync(Z,X.mode)}catch(J){if(J.code==="EPERM")throw J;if(J.code==="ENOENT"){if(G6.dirname(Z)===Z)throw NT(Z);if(J.message.includes("null bytes"))throw J;return Y(G6.dirname(Z)),Y(Z)}try{if(!j7.statSync(Z).isDirectory())throw Error("The path is not a directory")}catch{throw J}}};return Y(G6.resolve(D))}});var K8=T((Gq0,AT)=>{var MD0=f0().fromPromise,{makeDir:LD0,makeDirSync:Fq}=RT(),Bq=MD0(LD0);AT.exports={mkdirs:Bq,mkdirsSync:Fq,mkdirp:Bq,mkdirpSync:Fq,ensureDir:Bq,ensureDirSync:Fq}});var qq=T((Oq0,ET)=>{var T7=ED();function VD0(D,X,Y,Z){T7.open(D,"r+",(J,Q)=>{if(J)return Z(J);T7.futimes(Q,X,Y,(w)=>{T7.close(Q,(F)=>{if(Z)Z(w||F)})})})}function UD0(D,X,Y){let Z=T7.openSync(D,"r+");return T7.futimesSync(Z,X,Y),T7.closeSync(Z)}ET.exports={utimesMillis:VD0,utimesMillisSync:UD0}});var P3=T((Wq0,IT)=>{var I7=I3(),x1=require("path"),ND0=require("util"),RD0=Qq(),U2=RD0("10.5.0"),CT=(D)=>U2?I7.stat(D,{bigint:!0}):I7.stat(D),$q=(D)=>U2?I7.statSync(D,{bigint:!0}):I7.statSync(D);function AD0(D,X){return Promise.all([CT(D),CT(X).catch((Y)=>{if(Y.code==="ENOENT")return null;throw Y})]).then(([Y,Z])=>({srcStat:Y,destStat:Z}))}function ED0(D,X){let Y,Z=$q(D);try{Y=$q(X)}catch(J){if(J.code==="ENOENT")return{srcStat:Z,destStat:null};throw J}return{srcStat:Z,destStat:Y}}function CD0(D,X,Y,Z){ND0.callbackify(AD0)(D,X,(J,Q)=>{if(J)return Z(J);let{srcStat:w,destStat:F}=Q;if(F&&N2(w,F))return Z(Error("Source and destination must not be the same."));if(w.isDirectory()&&Gq(D,X))return Z(Error(R2(D,X,Y)));return Z(null,{srcStat:w,destStat:F})})}function jD0(D,X,Y){let{srcStat:Z,destStat:J}=ED0(D,X);if(J&&N2(Z,J))throw Error("Source and destination must not be the same.");if(Z.isDirectory()&&Gq(D,X))throw Error(R2(D,X,Y));return{srcStat:Z,destStat:J}}function jT(D,X,Y,Z,J){let Q=x1.resolve(x1.dirname(D)),w=x1.resolve(x1.dirname(Y));if(w===Q||w===x1.parse(w).root)return J();let F=(B,q)=>{if(B){if(B.code==="ENOENT")return J();return J(B)}if(N2(X,q))return J(Error(R2(D,Y,Z)));return jT(D,X,w,Z,J)};if(U2)I7.stat(w,{bigint:!0},F);else I7.stat(w,F)}function TT(D,X,Y,Z){let J=x1.resolve(x1.dirname(D)),Q=x1.resolve(x1.dirname(Y));if(Q===J||Q===x1.parse(Q).root)return;let w;try{w=$q(Q)}catch(F){if(F.code==="ENOENT")return;throw F}if(N2(X,w))throw Error(R2(D,Y,Z));return TT(D,X,Q,Z)}function N2(D,X){if(X.ino&&X.dev&&X.ino===D.ino&&X.dev===D.dev){if(U2||X.ino<Number.MAX_SAFE_INTEGER)return!0;if(X.size===D.size&&X.mode===D.mode&&X.nlink===D.nlink&&X.atimeMs===D.atimeMs&&X.mtimeMs===D.mtimeMs&&X.ctimeMs===D.ctimeMs&&X.birthtimeMs===D.birthtimeMs)return!0}return!1}function Gq(D,X){let Y=x1.resolve(D).split(x1.sep).filter((J)=>J),Z=x1.resolve(X).split(x1.sep).filter((J)=>J);return Y.reduce((J,Q,w)=>J&&Z[w]===Q,!0)}function R2(D,X,Y){return`Cannot ${Y} '${D}' to a subdirectory of itself, '${X}'.`}IT.exports={checkPaths:CD0,checkPathsSync:jD0,checkParentPaths:jT,checkParentPathsSync:TT,isSrcSubdir:Gq}});var yT=T((Hq0,fT)=>{var Y1=ED(),S3=require("path"),TD0=K8().mkdirsSync,ID0=qq().utimesMillisSync,x3=P3();function PD0(D,X,Y){if(typeof Y==="function")Y={filter:Y};if(Y=Y||{},Y.clobber="clobber"in Y?!!Y.clobber:!0,Y.overwrite="overwrite"in Y?!!Y.overwrite:Y.clobber,Y.preserveTimestamps&&process.arch==="ia32")console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;
199
+ `),DD0.logger.info(Z)}n0.printPlugins=ZD0;function Yq(D,X){if(D.xml.platform)return D.xml.platform.filter(function(J){return J.$.name===X})[0];return[]}n0.getPluginPlatform=Yq;function JD0(D,X,Y){let Z=Yq(D,X);if(Z){let J=Z[Y];if(J)return J}return[]}n0.getPlatformElement=JD0;function QD0(D,X){var Y,Z,J,Q;switch(X){case"ios":return(Z=(Y=D.ios)===null||Y===void 0?void 0:Y.type)!==null&&Z!==void 0?Z:0;case"android":return(Q=(J=D.android)===null||J===void 0?void 0:J.type)!==null&&Q!==void 0?Q:0}return 0}n0.getPluginType=QD0;function wD0(D,X){return Zq(D,X,"js-module")}n0.getJSModules=wD0;function FD0(D,X){return Zq(D,X,"asset")}n0.getAssets=FD0;function BD0(D,X,Y){if(Y.startsWith("node_modules")){let Z=Y.split("/").slice(1);if(Z[0].startsWith("@"))Z=[Z[0]+"/"+Z[1],...Z.slice(2)];let J=(0,$T.resolveNode)(D.app.rootDir,...Z);if(!J)throw Error(`Can't resolve module ${Z[0]}`);return J}return(0,Dq.join)(X.rootPath,Y)}n0.getFilePath=BD0;function Zq(D,X,Y){let Z=[];if(D.xml[Y])Z=Z.concat(D.xml[Y]);let J=Yq(D,X);if(J===null||J===void 0?void 0:J[Y])Z=Z.concat(J[Y]);return Z}n0.getAllElements=Zq});var KT=T((cD)=>{Object.defineProperty(cD,"__esModule",{value:!0});cD.replace=cD.move=cD.splice=cD.reduce=cD.map=cD.filter=cD.concurrentFilter=cD.conform=void 0;function qD0(D){if(typeof D>"u")return[];if(!Array.isArray(D))return[D];return D}cD.conform=qD0;async function $D0(D,X){let Y=async(J)=>[J,await X(J)];return(await Promise.all(D.map(Y))).filter(([,J])=>J).map(([J])=>J)}cD.concurrentFilter=$D0;async function GD0(D,X){return Jq(D,async(Z,J,Q,w)=>{if(await X(J,Q,w))Z.push(J);return Z},[])}cD.filter=GD0;async function OD0(D,X){return Jq(D,async(Z,J,Q,w)=>{return Z.push(await X(J,Q,w)),Z},[])}cD.map=OD0;async function Jq(D,X,Y){let J=typeof Y>"u"?1:0;if(typeof Y>"u"){if(D.length===0)throw TypeError("Reduce of empty array with no initial value");Y=D[0]}let Q=Y;for(let w=J;w<D.length;w++)Q=await X(Q,D[w],w,D);return Q}cD.reduce=Jq;function V2(D,X,Y=D.length-X,...Z){let J=[...D];return J.splice(X,Y,...Z),J}cD.splice=V2;function WD0(D,X,Y){let Z=D[X];if(X<0||Y<0||X>=D.length||Y>=D.length)return[...D];return V2(V2(D,X,1),Y,0,Z)}cD.move=WD0;function HD0(D,X,Y){if(X<0||X>D.length)return[...D];return V2(D,X,1,Y)}cD.replace=HD0});var I3=T((i6)=>{var zT=f0().fromCallback,W1=ED(),KD0=["access","appendFile","chmod","chown","close","copyFile","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","lchmod","lchown","link","lstat","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rm","rmdir","stat","symlink","truncate","unlink","utimes","writeFile"].filter((D)=>{return typeof W1[D]==="function"});Object.keys(W1).forEach((D)=>{if(D==="promises")return;i6[D]=W1[D]});KD0.forEach((D)=>{i6[D]=zT(W1[D])});i6.exists=function(D,X){if(typeof X==="function")return W1.exists(D,X);return new Promise((Y)=>{return W1.exists(D,Y)})};i6.read=function(D,X,Y,Z,J,Q){if(typeof Q==="function")return W1.read(D,X,Y,Z,J,Q);return new Promise((w,F)=>{W1.read(D,X,Y,Z,J,(B,q,$)=>{if(B)return F(B);w({bytesRead:q,buffer:$})})})};i6.write=function(D,X,...Y){if(typeof Y[Y.length-1]==="function")return W1.write(D,X,...Y);return new Promise((Z,J)=>{W1.write(D,X,...Y,(Q,w,F)=>{if(Q)return J(Q);Z({bytesWritten:w,buffer:F})})})};if(typeof W1.writev==="function")i6.writev=function(D,X,...Y){if(typeof Y[Y.length-1]==="function")return W1.writev(D,X,...Y);return new Promise((Z,J)=>{W1.writev(D,X,...Y,(Q,w,F)=>{if(Q)return J(Q);Z({bytesWritten:w,buffers:F})})})};if(typeof W1.realpath.native==="function")i6.realpath.native=zT(W1.realpath.native)});var Qq=T((qq0,MT)=>{MT.exports=(D)=>{let X=process.versions.node.split(".").map((Y)=>parseInt(Y,10));return D=D.split(".").map((Y)=>parseInt(Y,10)),X[0]>D[0]||X[0]===D[0]&&(X[1]>D[1]||X[1]===D[1]&&X[2]>=D[2])}});var RT=T(($q0,wq)=>{var j7=I3(),G6=require("path"),zD0=Qq(),LT=zD0("10.12.0"),VT=(D)=>{if(process.platform==="win32"){if(/[<>:"|?*]/.test(D.replace(G6.parse(D).root,""))){let Y=Error(`Path contains invalid characters: ${D}`);throw Y.code="EINVAL",Y}}},UT=(D)=>{let X={mode:511};if(typeof D==="number")D={mode:D};return{...X,...D}},NT=(D)=>{let X=Error(`operation not permitted, mkdir '${D}'`);return X.code="EPERM",X.errno=-4048,X.path=D,X.syscall="mkdir",X};wq.exports.makeDir=async(D,X)=>{if(VT(D),X=UT(X),LT){let Z=G6.resolve(D);return j7.mkdir(Z,{mode:X.mode,recursive:!0})}let Y=async(Z)=>{try{await j7.mkdir(Z,X.mode)}catch(J){if(J.code==="EPERM")throw J;if(J.code==="ENOENT"){if(G6.dirname(Z)===Z)throw NT(Z);if(J.message.includes("null bytes"))throw J;return await Y(G6.dirname(Z)),Y(Z)}try{if(!(await j7.stat(Z)).isDirectory())throw Error("The path is not a directory")}catch{throw J}}};return Y(G6.resolve(D))};wq.exports.makeDirSync=(D,X)=>{if(VT(D),X=UT(X),LT){let Z=G6.resolve(D);return j7.mkdirSync(Z,{mode:X.mode,recursive:!0})}let Y=(Z)=>{try{j7.mkdirSync(Z,X.mode)}catch(J){if(J.code==="EPERM")throw J;if(J.code==="ENOENT"){if(G6.dirname(Z)===Z)throw NT(Z);if(J.message.includes("null bytes"))throw J;return Y(G6.dirname(Z)),Y(Z)}try{if(!j7.statSync(Z).isDirectory())throw Error("The path is not a directory")}catch{throw J}}};return Y(G6.resolve(D))}});var K8=T((Gq0,AT)=>{var MD0=f0().fromPromise,{makeDir:LD0,makeDirSync:Fq}=RT(),Bq=MD0(LD0);AT.exports={mkdirs:Bq,mkdirsSync:Fq,mkdirp:Bq,mkdirpSync:Fq,ensureDir:Bq,ensureDirSync:Fq}});var qq=T((Oq0,ET)=>{var T7=ED();function VD0(D,X,Y,Z){T7.open(D,"r+",(J,Q)=>{if(J)return Z(J);T7.futimes(Q,X,Y,(w)=>{T7.close(Q,(F)=>{if(Z)Z(w||F)})})})}function UD0(D,X,Y){let Z=T7.openSync(D,"r+");return T7.futimesSync(Z,X,Y),T7.closeSync(Z)}ET.exports={utimesMillis:VD0,utimesMillisSync:UD0}});var P3=T((Wq0,IT)=>{var I7=I3(),x1=require("path"),ND0=require("util"),RD0=Qq(),U2=RD0("10.5.0"),CT=(D)=>U2?I7.stat(D,{bigint:!0}):I7.stat(D),$q=(D)=>U2?I7.statSync(D,{bigint:!0}):I7.statSync(D);function AD0(D,X){return Promise.all([CT(D),CT(X).catch((Y)=>{if(Y.code==="ENOENT")return null;throw Y})]).then(([Y,Z])=>({srcStat:Y,destStat:Z}))}function ED0(D,X){let Y,Z=$q(D);try{Y=$q(X)}catch(J){if(J.code==="ENOENT")return{srcStat:Z,destStat:null};throw J}return{srcStat:Z,destStat:Y}}function CD0(D,X,Y,Z){ND0.callbackify(AD0)(D,X,(J,Q)=>{if(J)return Z(J);let{srcStat:w,destStat:F}=Q;if(F&&N2(w,F))return Z(Error("Source and destination must not be the same."));if(w.isDirectory()&&Gq(D,X))return Z(Error(R2(D,X,Y)));return Z(null,{srcStat:w,destStat:F})})}function jD0(D,X,Y){let{srcStat:Z,destStat:J}=ED0(D,X);if(J&&N2(Z,J))throw Error("Source and destination must not be the same.");if(Z.isDirectory()&&Gq(D,X))throw Error(R2(D,X,Y));return{srcStat:Z,destStat:J}}function jT(D,X,Y,Z,J){let Q=x1.resolve(x1.dirname(D)),w=x1.resolve(x1.dirname(Y));if(w===Q||w===x1.parse(w).root)return J();let F=(B,q)=>{if(B){if(B.code==="ENOENT")return J();return J(B)}if(N2(X,q))return J(Error(R2(D,Y,Z)));return jT(D,X,w,Z,J)};if(U2)I7.stat(w,{bigint:!0},F);else I7.stat(w,F)}function TT(D,X,Y,Z){let J=x1.resolve(x1.dirname(D)),Q=x1.resolve(x1.dirname(Y));if(Q===J||Q===x1.parse(Q).root)return;let w;try{w=$q(Q)}catch(F){if(F.code==="ENOENT")return;throw F}if(N2(X,w))throw Error(R2(D,Y,Z));return TT(D,X,Q,Z)}function N2(D,X){if(X.ino&&X.dev&&X.ino===D.ino&&X.dev===D.dev){if(U2||X.ino<Number.MAX_SAFE_INTEGER)return!0;if(X.size===D.size&&X.mode===D.mode&&X.nlink===D.nlink&&X.atimeMs===D.atimeMs&&X.mtimeMs===D.mtimeMs&&X.ctimeMs===D.ctimeMs&&X.birthtimeMs===D.birthtimeMs)return!0}return!1}function Gq(D,X){let Y=x1.resolve(D).split(x1.sep).filter((J)=>J),Z=x1.resolve(X).split(x1.sep).filter((J)=>J);return Y.reduce((J,Q,w)=>J&&Z[w]===Q,!0)}function R2(D,X,Y){return`Cannot ${Y} '${D}' to a subdirectory of itself, '${X}'.`}IT.exports={checkPaths:CD0,checkPathsSync:jD0,checkParentPaths:jT,checkParentPathsSync:TT,isSrcSubdir:Gq}});var yT=T((Hq0,fT)=>{var Y1=ED(),S3=require("path"),TD0=K8().mkdirsSync,ID0=qq().utimesMillisSync,x3=P3();function PD0(D,X,Y){if(typeof Y==="function")Y={filter:Y};if(Y=Y||{},Y.clobber="clobber"in Y?!!Y.clobber:!0,Y.overwrite="overwrite"in Y?!!Y.overwrite:Y.clobber,Y.preserveTimestamps&&process.arch==="ia32")console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;
200
200
 
201
201
  see https://github.com/jprichardson/node-fs-extra/issues/269`);let{srcStat:Z,destStat:J}=x3.checkPathsSync(D,X,"copy");return x3.checkParentPathsSync(D,Z,X,"copy"),SD0(J,D,X,Y)}function SD0(D,X,Y,Z){if(Z.filter&&!Z.filter(X,Y))return;let J=S3.dirname(Y);if(!Y1.existsSync(J))TD0(J);return PT(D,X,Y,Z)}function PT(D,X,Y,Z){if(Z.filter&&!Z.filter(X,Y))return;return xD0(D,X,Y,Z)}function xD0(D,X,Y,Z){let Q=(Z.dereference?Y1.statSync:Y1.lstatSync)(X);if(Q.isDirectory())return vD0(Q,D,X,Y,Z);else if(Q.isFile()||Q.isCharacterDevice()||Q.isBlockDevice())return fD0(Q,D,X,Y,Z);else if(Q.isSymbolicLink())return mD0(D,X,Y,Z)}function fD0(D,X,Y,Z,J){if(!X)return ST(D,Y,Z,J);return yD0(D,Y,Z,J)}function yD0(D,X,Y,Z){if(Z.overwrite)return Y1.unlinkSync(Y),ST(D,X,Y,Z);else if(Z.errorOnExist)throw Error(`'${Y}' already exists`)}function ST(D,X,Y,Z){if(Y1.copyFileSync(X,Y),Z.preserveTimestamps)kD0(D.mode,X,Y);return Oq(Y,D.mode)}function kD0(D,X,Y){if(uD0(D))hD0(Y,D);return _D0(X,Y)}function uD0(D){return(D&128)===0}function hD0(D,X){return Oq(D,X|128)}function Oq(D,X){return Y1.chmodSync(D,X)}function _D0(D,X){let Y=Y1.statSync(D);return ID0(X,Y.atime,Y.mtime)}function vD0(D,X,Y,Z,J){if(!X)return bD0(D.mode,Y,Z,J);if(X&&!X.isDirectory())throw Error(`Cannot overwrite non-directory '${Z}' with directory '${Y}'.`);return xT(Y,Z,J)}function bD0(D,X,Y,Z){return Y1.mkdirSync(Y),xT(X,Y,Z),Oq(Y,D)}function xT(D,X,Y){Y1.readdirSync(D).forEach((Z)=>gD0(Z,D,X,Y))}function gD0(D,X,Y,Z){let J=S3.join(X,D),Q=S3.join(Y,D),{destStat:w}=x3.checkPathsSync(J,Q,"copy");return PT(w,J,Q,Z)}function mD0(D,X,Y,Z){let J=Y1.readlinkSync(X);if(Z.dereference)J=S3.resolve(process.cwd(),J);if(!D)return Y1.symlinkSync(J,Y);else{let Q;try{Q=Y1.readlinkSync(Y)}catch(w){if(w.code==="EINVAL"||w.code==="UNKNOWN")return Y1.symlinkSync(J,Y);throw w}if(Z.dereference)Q=S3.resolve(process.cwd(),Q);if(x3.isSrcSubdir(J,Q))throw Error(`Cannot copy '${J}' to a subdirectory of itself, '${Q}'.`);if(Y1.statSync(Y).isDirectory()&&x3.isSrcSubdir(Q,J))throw Error(`Cannot overwrite '${Q}' with '${J}'.`);return dD0(J,Y)}}function dD0(D,X){return Y1.unlinkSync(X),Y1.symlinkSync(D,X)}fT.exports=PD0});var Wq=T((Kq0,kT)=>{kT.exports={copySync:yT()}});var p6=T((zq0,hT)=>{var cD0=f0().fromPromise,uT=I3();function lD0(D){return uT.access(D).then(()=>!0).catch(()=>!1)}hT.exports={pathExists:cD0(lD0),pathExistsSync:uT.existsSync}});var nT=T((Mq0,lT)=>{var f1=ED(),f3=require("path"),nD0=K8().mkdirs,iD0=p6().pathExists,pD0=qq().utimesMillis,y3=P3();function aD0(D,X,Y,Z){if(typeof Y==="function"&&!Z)Z=Y,Y={};else if(typeof Y==="function")Y={filter:Y};if(Z=Z||function(){},Y=Y||{},Y.clobber="clobber"in Y?!!Y.clobber:!0,Y.overwrite="overwrite"in Y?!!Y.overwrite:Y.clobber,Y.preserveTimestamps&&process.arch==="ia32")console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;
202
202
 
@@ -227,12 +227,12 @@ Valid targets are:
227
227
  Valid targets are:
228
228
  ${D.map((B)=>B.id).join(`
229
229
  `)}`)}return F}Y0.promptForPlatformTarget=P70;function If(D){var X,Y,Z;return`${(Z=(Y=(X=D.name)!==null&&X!==void 0?X:D.model)!==null&&Y!==void 0?Y:D.id)!==null&&Z!==void 0?Z:"?"}${D.virtual?` (${D.platform==="ios"?"simulator":"emulator"})`:""}`}Y0.getPlatformTargetName=If;async function Pf(D){let X=[];if(await r2(D,D.android.name))X.push(D.android.name);if(await r2(D,D.ios.name))X.push(D.ios.name);return X.push(D.web.name),X}Y0.getAddedPlatforms=Pf;async function S70(D,X){let Y=await Promise.resolve().then(()=>t3.__importStar(Lf())),Z=await Cf(D),J=await s2(D,X);if(Y.diff(Z,J)==="minor"||Y.diff(Z,J)==="major")Nf.logger.warn(`${d0.default.strong("@capacitor/core")}${d0.default.weak(`@${Z}`)} version doesn't match ${d0.default.strong(`@capacitor/${X}`)}${d0.default.weak(`@${J}`)} version.
230
- Consider updating to a matching version, e.g. w/ ${d0.default.input(`npm install @capacitor/core@${J}`)}`)}Y0.checkPlatformVersions=S70;function x70(D,X){if(X[0]!=="@"){let Z=(0,a3.resolveNode)(D.app.rootDir,`@capacitor/${X}`,"package.json");if(Z)return(0,X5.dirname)(Z);let J=(0,a3.resolveNode)(D.app.rootDir,`@capacitor-community/${X}`,"package.json");if(J)return(0,X5.dirname)(J);let Q=(0,a3.resolveNode)(D.app.rootDir,`@ionic-enterprise/capacitor-${X}`,"package.json");if(Q)return(0,X5.dirname)(Q)}let Y=(0,a3.resolveNode)(D.app.rootDir,X,"package.json");if(Y)return(0,X5.dirname)(Y);return null}Y0.resolvePlatform=x70;async function f70(){try{let D=await(0,W70.runCommand)("java",["--version"]),Y=RegExp(/([0-9]+)\.?([0-9]*)\.?([0-9]*)/).exec(D);if(Y===null)return-1;let Z=parseInt(Y[1]),J=parseInt(Y[2]);if(typeof Z==="number"&&Z!=1)return Z;else if(typeof J==="number"&&Z==1&&J<9)return J;else return-1}catch(D){return-1}}Y0.checkJDKMajorVersion=f70;function y70(D){let X=D.replace(/([A-Z])/g,"-$1").toLowerCase();if(X.startsWith("-"))X=X.replace("-","");return`app-${X?`${X}-`:""}debug.apk`}Y0.parseApkNameFromFlavor=y70});var xf=T((o2)=>{Object.defineProperty(o2,"__esModule",{value:!0});o2.tryFn=void 0;var k70=async(D,...X)=>{try{return await D(...X)}catch{}return null};o2.tryFn=k70});var ff=T((e2)=>{Object.defineProperty(e2,"__esModule",{value:!0});e2.formatJSObject=void 0;var u70=h0(),h70=u70.__importDefault(require("util"));function _70(D){try{D=JSON.parse(JSON.stringify(D))}catch(X){throw Error(`Cannot parse object as JSON: ${X.stack?X.stack:X}`)}return h70.default.inspect(D,{compact:!1,breakLength:1/0,depth:1/0,maxArrayLength:1/0,maxStringLength:1/0})}e2.formatJSObject=_70});var yf=T((o6)=>{Object.defineProperty(o6,"__esModule",{value:!0});o6.lazy=o6.LazyPromise=o6.allSerial=void 0;function v70(D){return D.reduce((X,Y)=>X.then((Z)=>Y().then((J)=>Z.concat(J))),Promise.resolve([]))}o6.allSerial=v70;class J$ extends Promise{constructor(D){super(()=>{});this._executor=D}then(D,X){return this._promise=this._promise||new Promise(this._executor),this._promise.then(D,X)}catch(D){return this._promise=this._promise||new Promise(this._executor),this._promise.catch(D)}}o6.LazyPromise=J$;function b70(D){return new J$(async(X,Y)=>{try{X(await D())}catch(Z){Y(Z)}})}o6.lazy=b70});var hf=T((nD)=>{var __dirname="/home/runner/work/CLI/CLI/node_modules/@capacitor/cli/dist";Object.defineProperty(nD,"__esModule",{value:!0});nD.writeConfig=nD.loadConfig=nD.CONFIG_FILE_NAME_JSON=nD.CONFIG_FILE_NAME_JS=nD.CONFIG_FILE_NAME_TS=void 0;var F$=h0(),g70=F$.__importDefault(zZ()),M1=W7(),U0=require("path"),Z5=F$.__importDefault(H7()),m70=Sf(),DJ=fZ(),d70=W3(),Q$=xf(),c70=ff(),kf=AX(),uf=Y2(),u7=yf(),l70=h2(),w$=(0,g70.default)("capacitor:config");nD.CONFIG_FILE_NAME_TS="capacitor.config.ts";nD.CONFIG_FILE_NAME_JS="capacitor.config.js";nD.CONFIG_FILE_NAME_JSON="capacitor.config.json";async function n70(){var D,X,Y,Z;let J=process.cwd(),Q=(0,U0.dirname)(__dirname),w=await t70(J),F=await(async()=>{var O,H;if((0,kf.isNXMonorepo)(J)){let M=(0,kf.findNXMonorepoRoot)(J),U=await(0,Q$.tryFn)(M1.readJSON,(0,U0.resolve)(M,"package.json")),N=(O=U===null||U===void 0?void 0:U.devDependencies)!==null&&O!==void 0?O:{},R=(H=U===null||U===void 0?void 0:U.dependencies)!==null&&H!==void 0?H:{};return{devDependencies:N,dependencies:R}}return{}})(),B=(D=w.extConfig.appId)!==null&&D!==void 0?D:"",q=(X=w.extConfig.appName)!==null&&X!==void 0?X:"",$=(Y=w.extConfig.webDir)!==null&&Y!==void 0?Y:"www",G=await r70(Q),W={android:await s70(J,w.extConfig,G),ios:await o70(J,w.extConfig),web:await e70(J,$),cli:G,app:{rootDir:J,appId:B,appName:q,webDir:$,webDirAbs:(0,U0.resolve)(J,$),package:(Z=await(0,Q$.tryFn)(M1.readJSON,(0,U0.resolve)(J,"package.json")))!==null&&Z!==void 0?Z:{name:q,version:"1.0.0",...F},...w}};return w$("config: %O",W),W}nD.loadConfig=n70;async function i70(D,X){switch((0,U0.extname)(X)){case".json":{await(0,M1.writeJSON)(X,D,{spaces:2});break}case".ts":{await(0,M1.writeFile)(X,Q40(D));break}}}nD.writeConfig=i70;async function p70(D,X,Y){var Z;try{let J=(0,uf.resolveNode)(D,"typescript");if(!J)(0,DJ.fatal)(`Could not find installation of TypeScript.
230
+ Consider updating to a matching version, e.g. w/ ${d0.default.input(`npm install @capacitor/core@${J}`)}`)}Y0.checkPlatformVersions=S70;function x70(D,X){if(X[0]!=="@"){let Z=(0,a3.resolveNode)(D.app.rootDir,`@capacitor/${X}`,"package.json");if(Z)return(0,X5.dirname)(Z);let J=(0,a3.resolveNode)(D.app.rootDir,`@capacitor-community/${X}`,"package.json");if(J)return(0,X5.dirname)(J);let Q=(0,a3.resolveNode)(D.app.rootDir,`@ionic-enterprise/capacitor-${X}`,"package.json");if(Q)return(0,X5.dirname)(Q)}let Y=(0,a3.resolveNode)(D.app.rootDir,X,"package.json");if(Y)return(0,X5.dirname)(Y);return null}Y0.resolvePlatform=x70;async function f70(){try{let D=await(0,W70.runCommand)("java",["--version"]),Y=RegExp(/([0-9]+)\.?([0-9]*)\.?([0-9]*)/).exec(D);if(Y===null)return-1;let Z=parseInt(Y[1]),J=parseInt(Y[2]);if(typeof Z==="number"&&Z!=1)return Z;else if(typeof J==="number"&&Z==1&&J<9)return J;else return-1}catch(D){return-1}}Y0.checkJDKMajorVersion=f70;function y70(D){let X=D.replace(/([A-Z])/g,"-$1").toLowerCase();if(X.startsWith("-"))X=X.replace("-","");return`app-${X?`${X}-`:""}debug.apk`}Y0.parseApkNameFromFlavor=y70});var xf=T((o2)=>{Object.defineProperty(o2,"__esModule",{value:!0});o2.tryFn=void 0;var k70=async(D,...X)=>{try{return await D(...X)}catch{}return null};o2.tryFn=k70});var ff=T((e2)=>{Object.defineProperty(e2,"__esModule",{value:!0});e2.formatJSObject=void 0;var u70=h0(),h70=u70.__importDefault(require("util"));function _70(D){try{D=JSON.parse(JSON.stringify(D))}catch(X){throw Error(`Cannot parse object as JSON: ${X.stack?X.stack:X}`)}return h70.default.inspect(D,{compact:!1,breakLength:1/0,depth:1/0,maxArrayLength:1/0,maxStringLength:1/0})}e2.formatJSObject=_70});var yf=T((o6)=>{Object.defineProperty(o6,"__esModule",{value:!0});o6.lazy=o6.LazyPromise=o6.allSerial=void 0;function v70(D){return D.reduce((X,Y)=>X.then((Z)=>Y().then((J)=>Z.concat(J))),Promise.resolve([]))}o6.allSerial=v70;class J$ extends Promise{constructor(D){super(()=>{});this._executor=D}then(D,X){return this._promise=this._promise||new Promise(this._executor),this._promise.then(D,X)}catch(D){return this._promise=this._promise||new Promise(this._executor),this._promise.catch(D)}}o6.LazyPromise=J$;function b70(D){return new J$(async(X,Y)=>{try{X(await D())}catch(Z){Y(Z)}})}o6.lazy=b70});var hf=T((lD)=>{var __dirname="/home/runner/work/CLI/CLI/node_modules/@capacitor/cli/dist";Object.defineProperty(lD,"__esModule",{value:!0});lD.writeConfig=lD.loadConfig=lD.CONFIG_FILE_NAME_JSON=lD.CONFIG_FILE_NAME_JS=lD.CONFIG_FILE_NAME_TS=void 0;var F$=h0(),g70=F$.__importDefault(zZ()),M1=W7(),U0=require("path"),Z5=F$.__importDefault(H7()),m70=Sf(),DJ=fZ(),d70=W3(),Q$=xf(),c70=ff(),kf=AX(),uf=Y2(),u7=yf(),l70=h2(),w$=(0,g70.default)("capacitor:config");lD.CONFIG_FILE_NAME_TS="capacitor.config.ts";lD.CONFIG_FILE_NAME_JS="capacitor.config.js";lD.CONFIG_FILE_NAME_JSON="capacitor.config.json";async function n70(){var D,X,Y,Z;let J=process.cwd(),Q=(0,U0.dirname)(__dirname),w=await t70(J),F=await(async()=>{var O,H;if((0,kf.isNXMonorepo)(J)){let M=(0,kf.findNXMonorepoRoot)(J),U=await(0,Q$.tryFn)(M1.readJSON,(0,U0.resolve)(M,"package.json")),N=(O=U===null||U===void 0?void 0:U.devDependencies)!==null&&O!==void 0?O:{},R=(H=U===null||U===void 0?void 0:U.dependencies)!==null&&H!==void 0?H:{};return{devDependencies:N,dependencies:R}}return{}})(),B=(D=w.extConfig.appId)!==null&&D!==void 0?D:"",q=(X=w.extConfig.appName)!==null&&X!==void 0?X:"",$=(Y=w.extConfig.webDir)!==null&&Y!==void 0?Y:"www",G=await r70(Q),W={android:await s70(J,w.extConfig,G),ios:await o70(J,w.extConfig),web:await e70(J,$),cli:G,app:{rootDir:J,appId:B,appName:q,webDir:$,webDirAbs:(0,U0.resolve)(J,$),package:(Z=await(0,Q$.tryFn)(M1.readJSON,(0,U0.resolve)(J,"package.json")))!==null&&Z!==void 0?Z:{name:q,version:"1.0.0",...F},...w}};return w$("config: %O",W),W}lD.loadConfig=n70;async function i70(D,X){switch((0,U0.extname)(X)){case".json":{await(0,M1.writeJSON)(X,D,{spaces:2});break}case".ts":{await(0,M1.writeFile)(X,Q40(D));break}}}lD.writeConfig=i70;async function p70(D,X,Y){var Z;try{let J=(0,uf.resolveNode)(D,"typescript");if(!J)(0,DJ.fatal)(`Could not find installation of TypeScript.
231
231
  To use ${Z5.default.strong(X)} files, you must install TypeScript in your project, e.g. w/ ${Z5.default.input("npm install -D typescript")}`);let Q=require(J),w=(0,uf.requireTS)(Q,Y),F=w.default?await w.default:w;return{extConfigType:"ts",extConfigName:X,extConfigFilePath:Y,extConfig:F}}catch(J){if(!(0,DJ.isFatal)(J))(0,DJ.fatal)(`Parsing ${Z5.default.strong(X)} failed.
232
232
 
233
233
  ${(Z=J.stack)!==null&&Z!==void 0?Z:J}`);throw J}}async function a70(D,X,Y){var Z;try{return{extConfigType:"js",extConfigName:X,extConfigFilePath:Y,extConfig:await require(Y)}}catch(J){(0,DJ.fatal)(`Parsing ${Z5.default.strong(X)} failed.
234
234
 
235
- ${(Z=J.stack)!==null&&Z!==void 0?Z:J}`)}}async function t70(D){var X;let Y=(0,U0.resolve)(D,nD.CONFIG_FILE_NAME_TS);if(await(0,M1.pathExists)(Y))return p70(D,nD.CONFIG_FILE_NAME_TS,Y);let Z=(0,U0.resolve)(D,nD.CONFIG_FILE_NAME_JS);if(await(0,M1.pathExists)(Z))return a70(D,nD.CONFIG_FILE_NAME_JS,Z);let J=(0,U0.resolve)(D,nD.CONFIG_FILE_NAME_JSON);return{extConfigType:"json",extConfigName:nD.CONFIG_FILE_NAME_JSON,extConfigFilePath:J,extConfig:(X=await(0,Q$.tryFn)(M1.readJSON,J))!==null&&X!==void 0?X:{}}}async function r70(D){let Y=(0,U0.join)(D,"assets"),Z="ios-spm-template.tar.gz",J="capacitor-cordova-ios-plugins.tar.gz",Q="android-template.tar.gz",w="capacitor-cordova-android-plugins.tar.gz";return{rootDir:D,assetsDir:"assets",assetsDirAbs:Y,assets:{ios:{platformTemplateArchive:"ios-spm-template.tar.gz",platformTemplateArchiveAbs:(0,U0.resolve)(Y,"ios-spm-template.tar.gz"),cordovaPluginsTemplateArchive:"capacitor-cordova-ios-plugins.tar.gz",cordovaPluginsTemplateArchiveAbs:(0,U0.resolve)(Y,"capacitor-cordova-ios-plugins.tar.gz")},android:{platformTemplateArchive:"android-template.tar.gz",platformTemplateArchiveAbs:(0,U0.resolve)(Y,"android-template.tar.gz"),cordovaPluginsTemplateArchive:"capacitor-cordova-android-plugins.tar.gz",cordovaPluginsTemplateArchiveAbs:(0,U0.resolve)(Y,"capacitor-cordova-android-plugins.tar.gz")}},package:await(0,M1.readJSON)((0,U0.resolve)(D,"package.json")),os:D40(process.platform)}}async function s70(D,X,Y){var Z,J,Q,w,F,B,q,$,G,W,O,H,M,U,N,R,z;let V="android",L=(J=(Z=X.android)===null||Z===void 0?void 0:Z.path)!==null&&J!==void 0?J:"android",C=(0,U0.resolve)(D,L),y="app",A="app/src",k="app/src/main",f="app/src/main/assets",S="app/src/main/assets/public",v="app/src/main/res",b="app/build/outputs/apk/",n=((Q=X.android)===null||Q===void 0?void 0:Q.flavor)||"";if((w=X.android)===null||w===void 0?void 0:w.flavor)b=`${b}/${(F=X.android)===null||F===void 0?void 0:F.flavor}`;let h=(0,m70.parseApkNameFromFlavor)(n),E=`${b}/debug`,P="capacitor-cordova-android-plugins",x=(0,u7.lazy)(()=>Z40(Y.os)),_={keystorePath:(q=(B=X.android)===null||B===void 0?void 0:B.buildOptions)===null||q===void 0?void 0:q.keystorePath,keystorePassword:(G=($=X.android)===null||$===void 0?void 0:$.buildOptions)===null||G===void 0?void 0:G.keystorePassword,keystoreAlias:(O=(W=X.android)===null||W===void 0?void 0:W.buildOptions)===null||O===void 0?void 0:O.keystoreAlias,keystoreAliasPassword:(M=(H=X.android)===null||H===void 0?void 0:H.buildOptions)===null||M===void 0?void 0:M.keystoreAliasPassword,signingType:(N=(U=X.android)===null||U===void 0?void 0:U.buildOptions)===null||N===void 0?void 0:N.signingType,releaseType:(z=(R=X.android)===null||R===void 0?void 0:R.buildOptions)===null||z===void 0?void 0:z.releaseType};return{name:"android",minVersion:"24",studioPath:x,platformDir:L,platformDirAbs:C,cordovaPluginsDir:P,cordovaPluginsDirAbs:(0,U0.resolve)(C,P),appDir:"app",appDirAbs:(0,U0.resolve)(C,"app"),srcDir:"app/src",srcDirAbs:(0,U0.resolve)(C,"app/src"),srcMainDir:"app/src/main",srcMainDirAbs:(0,U0.resolve)(C,"app/src/main"),assetsDir:"app/src/main/assets",assetsDirAbs:(0,U0.resolve)(C,"app/src/main/assets"),webDir:"app/src/main/assets/public",webDirAbs:(0,U0.resolve)(C,"app/src/main/assets/public"),resDir:"app/src/main/res",resDirAbs:(0,U0.resolve)(C,"app/src/main/res"),apkName:h,buildOutputDir:E,buildOutputDirAbs:(0,U0.resolve)(C,E),flavor:n,buildOptions:_}}async function o70(D,X){var Y,Z,J,Q,w,F,B,q,$,G,W,O;let H="ios",M=(Z=(Y=X.ios)===null||Y===void 0?void 0:Y.path)!==null&&Z!==void 0?Z:"ios",U=(0,U0.resolve)(D,M),N=(Q=(J=X.ios)===null||J===void 0?void 0:J.scheme)!==null&&Q!==void 0?Q:"App",R="App",z=(0,U0.resolve)(U,"App"),V="App/App",L=(0,U0.resolve)(U,"App/App"),C="App/App.xcodeproj",y=(0,U0.resolve)(U,"App/App.xcodeproj"),A=(0,u7.lazy)(()=>X40(z)),k=(0,u7.lazy)(()=>J40(D,U,z)),f=(0,u7.lazy)(()=>Y40(z,L,y)),S="capacitor-cordova-ios-plugins",v={exportMethod:(F=(w=X.ios)===null||w===void 0?void 0:w.buildOptions)===null||F===void 0?void 0:F.exportMethod,xcodeSigningStyle:(q=(B=X.ios)===null||B===void 0?void 0:B.buildOptions)===null||q===void 0?void 0:q.signingStyle,signingCertificate:(G=($=X.ios)===null||$===void 0?void 0:$.buildOptions)===null||G===void 0?void 0:G.signingCertificate,provisioningProfile:(O=(W=X.ios)===null||W===void 0?void 0:W.buildOptions)===null||O===void 0?void 0:O.provisioningProfile};return{name:"ios",minVersion:"15.0",platformDir:M,platformDirAbs:U,scheme:N,cordovaPluginsDir:"capacitor-cordova-ios-plugins",cordovaPluginsDirAbs:(0,U0.resolve)(U,"capacitor-cordova-ios-plugins"),nativeProjectDir:"App",nativeProjectDirAbs:z,nativeTargetDir:"App/App",nativeTargetDirAbs:L,nativeXcodeProjDir:"App/App.xcodeproj",nativeXcodeProjDirAbs:y,nativeXcodeWorkspaceDir:(0,u7.lazy)(async()=>(0,U0.relative)(U,await A)),nativeXcodeWorkspaceDirAbs:A,webDir:(0,u7.lazy)(async()=>(0,U0.relative)(U,await f)),webDirAbs:f,podPath:k,buildOptions:v}}async function e70(D,X){let Y=X,Z=(0,U0.resolve)(D,Y);return{name:"web",platformDir:Y,platformDirAbs:Z}}function D40(D){switch(D){case"darwin":return"mac";case"win32":return"windows";case"linux":return"linux"}return"unknown"}async function X40(D){return(0,U0.resolve)(D,"App.xcworkspace")}async function Y40(D,X,Y){let Z=/path\s=\spublic[\s\S]+?sourceTree\s=\s([^;]+)/,J=(0,U0.resolve)(Y,"project.pbxproj");try{let w=(await(0,M1.readFile)(J,{encoding:"utf8"})).match(Z);if(w&&w[1]==="SOURCE_ROOT")return d70.logger.warn(`Using the iOS project root for the ${Z5.default.strong("public")} directory is deprecated.
235
+ ${(Z=J.stack)!==null&&Z!==void 0?Z:J}`)}}async function t70(D){var X;let Y=(0,U0.resolve)(D,lD.CONFIG_FILE_NAME_TS);if(await(0,M1.pathExists)(Y))return p70(D,lD.CONFIG_FILE_NAME_TS,Y);let Z=(0,U0.resolve)(D,lD.CONFIG_FILE_NAME_JS);if(await(0,M1.pathExists)(Z))return a70(D,lD.CONFIG_FILE_NAME_JS,Z);let J=(0,U0.resolve)(D,lD.CONFIG_FILE_NAME_JSON);return{extConfigType:"json",extConfigName:lD.CONFIG_FILE_NAME_JSON,extConfigFilePath:J,extConfig:(X=await(0,Q$.tryFn)(M1.readJSON,J))!==null&&X!==void 0?X:{}}}async function r70(D){let Y=(0,U0.join)(D,"assets"),Z="ios-spm-template.tar.gz",J="capacitor-cordova-ios-plugins.tar.gz",Q="android-template.tar.gz",w="capacitor-cordova-android-plugins.tar.gz";return{rootDir:D,assetsDir:"assets",assetsDirAbs:Y,assets:{ios:{platformTemplateArchive:"ios-spm-template.tar.gz",platformTemplateArchiveAbs:(0,U0.resolve)(Y,"ios-spm-template.tar.gz"),cordovaPluginsTemplateArchive:"capacitor-cordova-ios-plugins.tar.gz",cordovaPluginsTemplateArchiveAbs:(0,U0.resolve)(Y,"capacitor-cordova-ios-plugins.tar.gz")},android:{platformTemplateArchive:"android-template.tar.gz",platformTemplateArchiveAbs:(0,U0.resolve)(Y,"android-template.tar.gz"),cordovaPluginsTemplateArchive:"capacitor-cordova-android-plugins.tar.gz",cordovaPluginsTemplateArchiveAbs:(0,U0.resolve)(Y,"capacitor-cordova-android-plugins.tar.gz")}},package:await(0,M1.readJSON)((0,U0.resolve)(D,"package.json")),os:D40(process.platform)}}async function s70(D,X,Y){var Z,J,Q,w,F,B,q,$,G,W,O,H,M,U,N,R,z;let V="android",L=(J=(Z=X.android)===null||Z===void 0?void 0:Z.path)!==null&&J!==void 0?J:"android",C=(0,U0.resolve)(D,L),y="app",A="app/src",k="app/src/main",f="app/src/main/assets",S="app/src/main/assets/public",v="app/src/main/res",b="app/build/outputs/apk/",n=((Q=X.android)===null||Q===void 0?void 0:Q.flavor)||"";if((w=X.android)===null||w===void 0?void 0:w.flavor)b=`${b}/${(F=X.android)===null||F===void 0?void 0:F.flavor}`;let h=(0,m70.parseApkNameFromFlavor)(n),E=`${b}/debug`,P="capacitor-cordova-android-plugins",x=(0,u7.lazy)(()=>Z40(Y.os)),_={keystorePath:(q=(B=X.android)===null||B===void 0?void 0:B.buildOptions)===null||q===void 0?void 0:q.keystorePath,keystorePassword:(G=($=X.android)===null||$===void 0?void 0:$.buildOptions)===null||G===void 0?void 0:G.keystorePassword,keystoreAlias:(O=(W=X.android)===null||W===void 0?void 0:W.buildOptions)===null||O===void 0?void 0:O.keystoreAlias,keystoreAliasPassword:(M=(H=X.android)===null||H===void 0?void 0:H.buildOptions)===null||M===void 0?void 0:M.keystoreAliasPassword,signingType:(N=(U=X.android)===null||U===void 0?void 0:U.buildOptions)===null||N===void 0?void 0:N.signingType,releaseType:(z=(R=X.android)===null||R===void 0?void 0:R.buildOptions)===null||z===void 0?void 0:z.releaseType};return{name:"android",minVersion:"24",studioPath:x,platformDir:L,platformDirAbs:C,cordovaPluginsDir:P,cordovaPluginsDirAbs:(0,U0.resolve)(C,P),appDir:"app",appDirAbs:(0,U0.resolve)(C,"app"),srcDir:"app/src",srcDirAbs:(0,U0.resolve)(C,"app/src"),srcMainDir:"app/src/main",srcMainDirAbs:(0,U0.resolve)(C,"app/src/main"),assetsDir:"app/src/main/assets",assetsDirAbs:(0,U0.resolve)(C,"app/src/main/assets"),webDir:"app/src/main/assets/public",webDirAbs:(0,U0.resolve)(C,"app/src/main/assets/public"),resDir:"app/src/main/res",resDirAbs:(0,U0.resolve)(C,"app/src/main/res"),apkName:h,buildOutputDir:E,buildOutputDirAbs:(0,U0.resolve)(C,E),flavor:n,buildOptions:_}}async function o70(D,X){var Y,Z,J,Q,w,F,B,q,$,G,W,O;let H="ios",M=(Z=(Y=X.ios)===null||Y===void 0?void 0:Y.path)!==null&&Z!==void 0?Z:"ios",U=(0,U0.resolve)(D,M),N=(Q=(J=X.ios)===null||J===void 0?void 0:J.scheme)!==null&&Q!==void 0?Q:"App",R="App",z=(0,U0.resolve)(U,"App"),V="App/App",L=(0,U0.resolve)(U,"App/App"),C="App/App.xcodeproj",y=(0,U0.resolve)(U,"App/App.xcodeproj"),A=(0,u7.lazy)(()=>X40(z)),k=(0,u7.lazy)(()=>J40(D,U,z)),f=(0,u7.lazy)(()=>Y40(z,L,y)),S="capacitor-cordova-ios-plugins",v={exportMethod:(F=(w=X.ios)===null||w===void 0?void 0:w.buildOptions)===null||F===void 0?void 0:F.exportMethod,xcodeSigningStyle:(q=(B=X.ios)===null||B===void 0?void 0:B.buildOptions)===null||q===void 0?void 0:q.signingStyle,signingCertificate:(G=($=X.ios)===null||$===void 0?void 0:$.buildOptions)===null||G===void 0?void 0:G.signingCertificate,provisioningProfile:(O=(W=X.ios)===null||W===void 0?void 0:W.buildOptions)===null||O===void 0?void 0:O.provisioningProfile};return{name:"ios",minVersion:"15.0",platformDir:M,platformDirAbs:U,scheme:N,cordovaPluginsDir:"capacitor-cordova-ios-plugins",cordovaPluginsDirAbs:(0,U0.resolve)(U,"capacitor-cordova-ios-plugins"),nativeProjectDir:"App",nativeProjectDirAbs:z,nativeTargetDir:"App/App",nativeTargetDirAbs:L,nativeXcodeProjDir:"App/App.xcodeproj",nativeXcodeProjDirAbs:y,nativeXcodeWorkspaceDir:(0,u7.lazy)(async()=>(0,U0.relative)(U,await A)),nativeXcodeWorkspaceDirAbs:A,webDir:(0,u7.lazy)(async()=>(0,U0.relative)(U,await f)),webDirAbs:f,podPath:k,buildOptions:v}}async function e70(D,X){let Y=X,Z=(0,U0.resolve)(D,Y);return{name:"web",platformDir:Y,platformDirAbs:Z}}function D40(D){switch(D){case"darwin":return"mac";case"win32":return"windows";case"linux":return"linux"}return"unknown"}async function X40(D){return(0,U0.resolve)(D,"App.xcworkspace")}async function Y40(D,X,Y){let Z=/path\s=\spublic[\s\S]+?sourceTree\s=\s([^;]+)/,J=(0,U0.resolve)(Y,"project.pbxproj");try{let w=(await(0,M1.readFile)(J,{encoding:"utf8"})).match(Z);if(w&&w[1]==="SOURCE_ROOT")return d70.logger.warn(`Using the iOS project root for the ${Z5.default.strong("public")} directory is deprecated.
236
236
  Please follow the Upgrade Guide to move ${Z5.default.strong("public")} inside the iOS target directory: ${Z5.default.strong("https://capacitorjs.com/docs/updating/3-0#move-public-into-the-ios-target-directory")}`),(0,U0.resolve)(D,"public")}catch(Q){}return(0,U0.resolve)(X,"public")}async function Z40(D){if(process.env.CAPACITOR_ANDROID_STUDIO_PATH)return process.env.CAPACITOR_ANDROID_STUDIO_PATH;switch(D){case"mac":return"/Applications/Android Studio.app";case"windows":{let{runCommand:X}=await Promise.resolve().then(()=>F$.__importStar(h2())),Y="C:\\Program Files\\Android\\Android Studio\\bin\\studio64.exe";try{if(!await(0,M1.pathExists)(Y)){let Z=await X("REG",["QUERY","HKEY_LOCAL_MACHINE\\SOFTWARE\\Android Studio","/v","Path"]);Z=Z.replace(/(\r\n|\n|\r)/gm,"");let J=Z.indexOf("REG_SZ");if(J>0)Y=Z.substring(J+6).trim()+"\\bin\\studio64.exe"}}catch(Z){w$("Error checking registry for Android Studio path: %O",Z);break}return Y}case"linux":{try{if(await(0,M1.pathExists)("/usr/local/android-studio/bin/studio"))return"/usr/local/android-studio/bin/studio"}catch(Z){w$("Error checking for studio executable: %O",Z)}return"/usr/local/android-studio/bin/studio.sh"}}return""}async function J40(D,X,Y){if(process.env.CAPACITOR_COCOAPODS_PATH)return process.env.CAPACITOR_COCOAPODS_PATH;let Z="";if(await(0,M1.pathExists)((0,U0.resolve)(D,"Gemfile")))Z=(0,U0.resolve)(D,"Gemfile");else if(await(0,M1.pathExists)((0,U0.resolve)(X,"Gemfile")))Z=(0,U0.resolve)(X,"Gemfile");else if(await(0,M1.pathExists)((0,U0.resolve)(Y,"Gemfile")))Z=(0,U0.resolve)(Y,"Gemfile");if(Z=="")try{let Q=await(0,l70.getCommandOutput)("git",["rev-parse","--show-toplevel"],{cwd:D});if(Q!=null)Z=(0,U0.resolve)(Q,"Gemfile")}catch(Q){}try{let Q=(await(0,M1.readFile)(Z)).toString();if(!Q)return"pod";if(new RegExp(/gem\s+['"]cocoapods/).test(Q))return"bundle exec pod";else return"pod"}catch{return"pod"}}function Q40(D){return`import type { CapacitorConfig } from '@capacitor/cli';
237
237
 
238
238
  const config: CapacitorConfig = ${(0,c70.formatJSObject)(D)};
@@ -255,7 +255,7 @@ tell application "System Events" to get value of property list item "CFBundleNam
255
255
  * Copyright (c) 2014-present, Jon Schlinkert.
256
256
  * Licensed under the MIT License.
257
257
  */var T30=require("util"),Fu=Qu(),wu=(D)=>D!==null&&typeof D==="object"&&!Array.isArray(D),I30=(D)=>{return(X)=>D===!0?Number(X):String(X)},DG=(D)=>{return typeof D==="number"||typeof D==="string"&&D!==""},BX=(D)=>Number.isInteger(+D),XG=(D)=>{let X=`${D}`,Y=-1;if(X[0]==="-")X=X.slice(1);if(X==="0")return!1;while(X[++Y]==="0");return Y>0},P30=(D,X,Y)=>{if(typeof D==="string"||typeof X==="string")return!0;return Y.stringify===!0},S30=(D,X,Y)=>{if(X>0){let Z=D[0]==="-"?"-":"";if(Z)D=D.slice(1);D=Z+D.padStart(Z?X-1:X,"0")}if(Y===!1)return String(D);return D},bJ=(D,X)=>{let Y=D[0]==="-"?"-":"";if(Y)D=D.slice(1),X--;while(D.length<X)D="0"+D;return Y?"-"+D:D},x30=(D,X,Y)=>{D.negatives.sort((F,B)=>F<B?-1:F>B?1:0),D.positives.sort((F,B)=>F<B?-1:F>B?1:0);let Z=X.capture?"":"?:",J="",Q="",w;if(D.positives.length)J=D.positives.map((F)=>bJ(String(F),Y)).join("|");if(D.negatives.length)Q=`-(${Z}${D.negatives.map((F)=>bJ(String(F),Y)).join("|")})`;if(J&&Q)w=`${J}|${Q}`;else w=J||Q;if(X.wrap)return`(${Z}${w})`;return w},Bu=(D,X,Y,Z)=>{if(Y)return Fu(D,X,{wrap:!1,...Z});let J=String.fromCharCode(D);if(D===X)return J;let Q=String.fromCharCode(X);return`[${J}-${Q}]`},qu=(D,X,Y)=>{if(Array.isArray(D)){let Z=Y.wrap===!0,J=Y.capture?"":"?:";return Z?`(${J}${D.join("|")})`:D.join("|")}return Fu(D,X,Y)},$u=(...D)=>{return RangeError("Invalid range arguments: "+T30.inspect(...D))},Gu=(D,X,Y)=>{if(Y.strictRanges===!0)throw $u([D,X]);return[]},f30=(D,X)=>{if(X.strictRanges===!0)throw TypeError(`Expected step "${D}" to be a number`);return[]},y30=(D,X,Y=1,Z={})=>{let J=Number(D),Q=Number(X);if(!Number.isInteger(J)||!Number.isInteger(Q)){if(Z.strictRanges===!0)throw $u([D,X]);return[]}if(J===0)J=0;if(Q===0)Q=0;let w=J>Q,F=String(D),B=String(X),q=String(Y);Y=Math.max(Math.abs(Y),1);let $=XG(F)||XG(B)||XG(q),G=$?Math.max(F.length,B.length,q.length):0,W=$===!1&&P30(D,X,Z)===!1,O=Z.transform||I30(W);if(Z.toRegex&&Y===1)return Bu(bJ(D,G),bJ(X,G),!0,Z);let H={negatives:[],positives:[]},M=(R)=>H[R<0?"negatives":"positives"].push(Math.abs(R)),U=[],N=0;while(w?J>=Q:J<=Q){if(Z.toRegex===!0&&Y>1)M(J);else U.push(S30(O(J,N),G,W));J=w?J-Y:J+Y,N++}if(Z.toRegex===!0)return Y>1?x30(H,Z,G):qu(U,null,{wrap:!1,...Z});return U},k30=(D,X,Y=1,Z={})=>{if(!BX(D)&&D.length>1||!BX(X)&&X.length>1)return Gu(D,X,Z);let J=Z.transform||((W)=>String.fromCharCode(W)),Q=`${D}`.charCodeAt(0),w=`${X}`.charCodeAt(0),F=Q>w,B=Math.min(Q,w),q=Math.max(Q,w);if(Z.toRegex&&Y===1)return Bu(B,q,!1,Z);let $=[],G=0;while(F?Q>=w:Q<=w)$.push(J(Q,G)),Q=F?Q-Y:Q+Y,G++;if(Z.toRegex===!0)return qu($,null,{wrap:!1,options:Z});return $},vJ=(D,X,Y,Z={})=>{if(X==null&&DG(D))return[D];if(!DG(D)||!DG(X))return Gu(D,X,Z);if(typeof Y==="function")return vJ(D,X,1,{transform:Y});if(wu(Y))return vJ(D,X,0,Y);let J={...Z};if(J.capture===!0)J.wrap=!0;if(Y=Y||J.step||1,!BX(Y)){if(Y!=null&&!wu(Y))return f30(Y,J);return vJ(D,X,1,Y)}if(BX(D)&&BX(X))return y30(D,X,Y,J);return k30(D,X,Math.max(Math.abs(Y),1),J)};Ou.exports=vJ});var Ku=T((yW0,Hu)=>{var u30=YG(),Wu=hJ(),h30=(D,X={})=>{let Y=(Z,J={})=>{let Q=Wu.isInvalidBrace(J),w=Z.invalid===!0&&X.escapeInvalid===!0,F=Q===!0||w===!0,B=X.escapeInvalid===!0?"\\":"",q="";if(Z.isOpen===!0)return B+Z.value;if(Z.isClose===!0)return console.log("node.isClose",B,Z.value),B+Z.value;if(Z.type==="open")return F?B+Z.value:"(";if(Z.type==="close")return F?B+Z.value:")";if(Z.type==="comma")return Z.prev.type==="comma"?"":F?Z.value:"|";if(Z.value)return Z.value;if(Z.nodes&&Z.ranges>0){let $=Wu.reduce(Z.nodes),G=u30(...$,{...X,wrap:!1,toRegex:!0,strictZeros:!0});if(G.length!==0)return $.length>1&&G.length>1?`(${G})`:G}if(Z.nodes)for(let $ of Z.nodes)q+=Y($,Z);return q};return Y(D)};Hu.exports=h30});var Lu=T((kW0,Mu)=>{var _30=YG(),zu=_J(),s7=hJ(),L5=(D="",X="",Y=!1)=>{let Z=[];if(D=[].concat(D),X=[].concat(X),!X.length)return D;if(!D.length)return Y?s7.flatten(X).map((J)=>`{${J}}`):X;for(let J of D)if(Array.isArray(J))for(let Q of J)Z.push(L5(Q,X,Y));else for(let Q of X){if(Y===!0&&typeof Q==="string")Q=`{${Q}}`;Z.push(Array.isArray(Q)?L5(J,Q,Y):J+Q)}return s7.flatten(Z)},v30=(D,X={})=>{let Y=X.rangeLimit===void 0?1000:X.rangeLimit,Z=(J,Q={})=>{J.queue=[];let w=Q,F=Q.queue;while(w.type!=="brace"&&w.type!=="root"&&w.parent)w=w.parent,F=w.queue;if(J.invalid||J.dollar){F.push(L5(F.pop(),zu(J,X)));return}if(J.type==="brace"&&J.invalid!==!0&&J.nodes.length===2){F.push(L5(F.pop(),["{}"]));return}if(J.nodes&&J.ranges>0){let G=s7.reduce(J.nodes);if(s7.exceedsLimit(...G,X.step,Y))throw RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let W=_30(...G,X);if(W.length===0)W=zu(J,X);F.push(L5(F.pop(),W)),J.nodes=[];return}let B=s7.encloseBrace(J),q=J.queue,$=J;while($.type!=="brace"&&$.type!=="root"&&$.parent)$=$.parent,q=$.queue;for(let G=0;G<J.nodes.length;G++){let W=J.nodes[G];if(W.type==="comma"&&J.type==="brace"){if(G===1)q.push("");q.push("");continue}if(W.type==="close"){F.push(L5(F.pop(),q,B));continue}if(W.value&&W.type!=="open"){q.push(L5(q.pop(),W.value));continue}if(W.nodes)Z(W,J)}return q};return s7.flatten(Z(D))};Mu.exports=v30});var Uu=T((uW0,Vu)=>{Vu.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:`
258
- `,CHAR_NO_BREAK_SPACE:" ",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:"\t",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var Cu=T((hW0,Eu)=>{var b30=_J(),{MAX_LENGTH:Nu,CHAR_BACKSLASH:ZG,CHAR_BACKTICK:g30,CHAR_COMMA:m30,CHAR_DOT:d30,CHAR_LEFT_PARENTHESES:c30,CHAR_RIGHT_PARENTHESES:l30,CHAR_LEFT_CURLY_BRACE:n30,CHAR_RIGHT_CURLY_BRACE:i30,CHAR_LEFT_SQUARE_BRACKET:Ru,CHAR_RIGHT_SQUARE_BRACKET:Au,CHAR_DOUBLE_QUOTE:p30,CHAR_SINGLE_QUOTE:a30,CHAR_NO_BREAK_SPACE:t30,CHAR_ZERO_WIDTH_NOBREAK_SPACE:r30}=Uu(),s30=(D,X={})=>{if(typeof D!=="string")throw TypeError("Expected a string");let Y=X||{},Z=typeof Y.maxLength==="number"?Math.min(Nu,Y.maxLength):Nu;if(D.length>Z)throw SyntaxError(`Input length (${D.length}), exceeds max characters (${Z})`);let J={type:"root",input:D,nodes:[]},Q=[J],w=J,F=J,B=0,q=D.length,$=0,G=0,W,O=()=>D[$++],H=(M)=>{if(M.type==="text"&&F.type==="dot")F.type="text";if(F&&F.type==="text"&&M.type==="text"){F.value+=M.value;return}return w.nodes.push(M),M.parent=w,M.prev=F,F=M,M};H({type:"bos"});while($<q){if(w=Q[Q.length-1],W=O(),W===r30||W===t30)continue;if(W===ZG){H({type:"text",value:(X.keepEscaping?W:"")+O()});continue}if(W===Au){H({type:"text",value:"\\"+W});continue}if(W===Ru){B++;let M;while($<q&&(M=O())){if(W+=M,M===Ru){B++;continue}if(M===ZG){W+=O();continue}if(M===Au){if(B--,B===0)break}}H({type:"text",value:W});continue}if(W===c30){w=H({type:"paren",nodes:[]}),Q.push(w),H({type:"text",value:W});continue}if(W===l30){if(w.type!=="paren"){H({type:"text",value:W});continue}w=Q.pop(),H({type:"text",value:W}),w=Q[Q.length-1];continue}if(W===p30||W===a30||W===g30){let M=W,U;if(X.keepQuotes!==!0)W="";while($<q&&(U=O())){if(U===ZG){W+=U+O();continue}if(U===M){if(X.keepQuotes===!0)W+=U;break}W+=U}H({type:"text",value:W});continue}if(W===n30){G++;let U={type:"brace",open:!0,close:!1,dollar:F.value&&F.value.slice(-1)==="$"||w.dollar===!0,depth:G,commas:0,ranges:0,nodes:[]};w=H(U),Q.push(w),H({type:"open",value:W});continue}if(W===i30){if(w.type!=="brace"){H({type:"text",value:W});continue}let M="close";w=Q.pop(),w.close=!0,H({type:M,value:W}),G--,w=Q[Q.length-1];continue}if(W===m30&&G>0){if(w.ranges>0){w.ranges=0;let M=w.nodes.shift();w.nodes=[M,{type:"text",value:b30(w)}]}H({type:"comma",value:W}),w.commas++;continue}if(W===d30&&G>0&&w.commas===0){let M=w.nodes;if(G===0||M.length===0){H({type:"text",value:W});continue}if(F.type==="dot"){if(w.range=[],F.value+=W,F.type="range",w.nodes.length!==3&&w.nodes.length!==5){w.invalid=!0,w.ranges=0,F.type="text";continue}w.ranges++,w.args=[];continue}if(F.type==="range"){M.pop();let U=M[M.length-1];U.value+=F.value+W,F=U,w.ranges--;continue}H({type:"dot",value:W});continue}H({type:"text",value:W})}do if(w=Q.pop(),w.type!=="root"){w.nodes.forEach((N)=>{if(!N.nodes){if(N.type==="open")N.isOpen=!0;if(N.type==="close")N.isClose=!0;if(!N.nodes)N.type="text";N.invalid=!0}});let M=Q[Q.length-1],U=M.nodes.indexOf(w);M.nodes.splice(U,1,...w.nodes)}while(Q.length>0);return H({type:"eos"}),J};Eu.exports=s30});var Iu=T((_W0,Tu)=>{var ju=_J(),o30=Ku(),e30=Lu(),DX0=Cu(),b1=(D,X={})=>{let Y=[];if(Array.isArray(D))for(let Z of D){let J=b1.create(Z,X);if(Array.isArray(J))Y.push(...J);else Y.push(J)}else Y=[].concat(b1.create(D,X));if(X&&X.expand===!0&&X.nodupes===!0)Y=[...new Set(Y)];return Y};b1.parse=(D,X={})=>DX0(D,X);b1.stringify=(D,X={})=>{if(typeof D==="string")return ju(b1.parse(D,X),X);return ju(D,X)};b1.compile=(D,X={})=>{if(typeof D==="string")D=b1.parse(D,X);return o30(D,X)};b1.expand=(D,X={})=>{if(typeof D==="string")D=b1.parse(D,X);let Y=e30(D,X);if(X.noempty===!0)Y=Y.filter(Boolean);if(X.nodupes===!0)Y=[...new Set(Y)];return Y};b1.create=(D,X={})=>{if(D===""||D.length<3)return[D];return X.expand!==!0?b1.compile(D,X):b1.expand(D,X)};Tu.exports=b1});var qX=T((vW0,Su)=>{var XX0=require("path"),Pu={DOT_LITERAL:"\\.",PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:"\\/",ONE_CHAR:"(?=.)",QMARK:"[^/]",END_ANCHOR:"(?:\\/|$)",DOTS_SLASH:"\\.{1,2}(?:\\/|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|\\/)\\.{1,2}(?:\\/|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:\\/|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:\\/|$))",QMARK_NO_DOT:"[^.\\/]",STAR:"[^/]*?",START_ANCHOR:"(?:^|\\/)"},YX0={...Pu,SLASH_LITERAL:"[\\\\/]",QMARK:"[^\\\\/]",STAR:"[^\\\\/]*?",DOTS_SLASH:"\\.{1,2}(?:[\\\\/]|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|[\\\\/])\\.{1,2}(?:[\\\\/]|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:[\\\\/]|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:[\\\\/]|$))",QMARK_NO_DOT:"[^.\\\\/]",START_ANCHOR:"(?:^|[\\\\/])",END_ANCHOR:"(?:[\\\\/]|$)"},ZX0={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"};Su.exports={MAX_LENGTH:65536,POSIX_REGEX_SOURCE:ZX0,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:XX0.sep,extglobChars(D){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${D.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(D){return D===!0?YX0:Pu}}});var $X=T((y1)=>{var JX0=require("path"),QX0=process.platform==="win32",{REGEX_BACKSLASH:wX0,REGEX_REMOVE_BACKSLASH:FX0,REGEX_SPECIAL_CHARS:BX0,REGEX_SPECIAL_CHARS_GLOBAL:qX0}=qX();y1.isObject=(D)=>D!==null&&typeof D==="object"&&!Array.isArray(D);y1.hasRegexChars=(D)=>BX0.test(D);y1.isRegexChar=(D)=>D.length===1&&y1.hasRegexChars(D);y1.escapeRegex=(D)=>D.replace(qX0,"\\$1");y1.toPosixSlashes=(D)=>D.replace(wX0,"/");y1.removeBackslashes=(D)=>{return D.replace(FX0,(X)=>{return X==="\\"?"":X})};y1.supportsLookbehinds=()=>{let D=process.version.slice(1).split(".").map(Number);if(D.length===3&&D[0]>=9||D[0]===8&&D[1]>=10)return!0;return!1};y1.isWindows=(D)=>{if(D&&typeof D.windows==="boolean")return D.windows;return QX0===!0||JX0.sep==="\\"};y1.escapeLast=(D,X,Y)=>{let Z=D.lastIndexOf(X,Y);if(Z===-1)return D;if(D[Z-1]==="\\")return y1.escapeLast(D,X,Z-1);return`${D.slice(0,Z)}\\${D.slice(Z)}`};y1.removePrefix=(D,X={})=>{let Y=D;if(Y.startsWith("./"))Y=Y.slice(2),X.prefix="./";return Y};y1.wrapOutput=(D,X={},Y={})=>{let Z=Y.contains?"":"^",J=Y.contains?"":"$",Q=`${Z}(?:${D})${J}`;if(X.negated===!0)Q=`(?:^(?!${Q}).*$)`;return Q}});var vu=T((gW0,_u)=>{var xu=$X(),{CHAR_ASTERISK:JG,CHAR_AT:$X0,CHAR_BACKWARD_SLASH:GX,CHAR_COMMA:GX0,CHAR_DOT:QG,CHAR_EXCLAMATION_MARK:wG,CHAR_FORWARD_SLASH:hu,CHAR_LEFT_CURLY_BRACE:FG,CHAR_LEFT_PARENTHESES:BG,CHAR_LEFT_SQUARE_BRACKET:OX0,CHAR_PLUS:WX0,CHAR_QUESTION_MARK:fu,CHAR_RIGHT_CURLY_BRACE:HX0,CHAR_RIGHT_PARENTHESES:yu,CHAR_RIGHT_SQUARE_BRACKET:KX0}=qX(),ku=(D)=>{return D===hu||D===GX},uu=(D)=>{if(D.isPrefix!==!0)D.depth=D.isGlobstar?1/0:1},zX0=(D,X)=>{let Y=X||{},Z=D.length-1,J=Y.parts===!0||Y.scanToEnd===!0,Q=[],w=[],F=[],B=D,q=-1,$=0,G=0,W=!1,O=!1,H=!1,M=!1,U=!1,N=!1,R=!1,z=!1,V=!1,L=!1,C=0,y,A,k={value:"",depth:0,isGlob:!1},f=()=>q>=Z,S=()=>B.charCodeAt(q+1),v=()=>{return y=A,B.charCodeAt(++q)};while(q<Z){A=v();let P;if(A===GX){if(R=k.backslashes=!0,A=v(),A===FG)N=!0;continue}if(N===!0||A===FG){C++;while(f()!==!0&&(A=v())){if(A===GX){R=k.backslashes=!0,v();continue}if(A===FG){C++;continue}if(N!==!0&&A===QG&&(A=v())===QG){if(W=k.isBrace=!0,H=k.isGlob=!0,L=!0,J===!0)continue;break}if(N!==!0&&A===GX0){if(W=k.isBrace=!0,H=k.isGlob=!0,L=!0,J===!0)continue;break}if(A===HX0){if(C--,C===0){N=!1,W=k.isBrace=!0,L=!0;break}}}if(J===!0)continue;break}if(A===hu){if(Q.push(q),w.push(k),k={value:"",depth:0,isGlob:!1},L===!0)continue;if(y===QG&&q===$+1){$+=2;continue}G=q+1;continue}if(Y.noext!==!0){if((A===WX0||A===$X0||A===JG||A===fu||A===wG)===!0&&S()===BG){if(H=k.isGlob=!0,M=k.isExtglob=!0,L=!0,A===wG&&q===$)V=!0;if(J===!0){while(f()!==!0&&(A=v())){if(A===GX){R=k.backslashes=!0,A=v();continue}if(A===yu){H=k.isGlob=!0,L=!0;break}}continue}break}}if(A===JG){if(y===JG)U=k.isGlobstar=!0;if(H=k.isGlob=!0,L=!0,J===!0)continue;break}if(A===fu){if(H=k.isGlob=!0,L=!0,J===!0)continue;break}if(A===OX0){while(f()!==!0&&(P=v())){if(P===GX){R=k.backslashes=!0,v();continue}if(P===KX0){O=k.isBracket=!0,H=k.isGlob=!0,L=!0;break}}if(J===!0)continue;break}if(Y.nonegate!==!0&&A===wG&&q===$){z=k.negated=!0,$++;continue}if(Y.noparen!==!0&&A===BG){if(H=k.isGlob=!0,J===!0){while(f()!==!0&&(A=v())){if(A===BG){R=k.backslashes=!0,A=v();continue}if(A===yu){L=!0;break}}continue}break}if(H===!0){if(L=!0,J===!0)continue;break}}if(Y.noext===!0)M=!1,H=!1;let b=B,n="",h="";if($>0)n=B.slice(0,$),B=B.slice($),G-=$;if(b&&H===!0&&G>0)b=B.slice(0,G),h=B.slice(G);else if(H===!0)b="",h=B;else b=B;if(b&&b!==""&&b!=="/"&&b!==B){if(ku(b.charCodeAt(b.length-1)))b=b.slice(0,-1)}if(Y.unescape===!0){if(h)h=xu.removeBackslashes(h);if(b&&R===!0)b=xu.removeBackslashes(b)}let E={prefix:n,input:D,start:$,base:b,glob:h,isBrace:W,isBracket:O,isGlob:H,isExtglob:M,isGlobstar:U,negated:z,negatedExtglob:V};if(Y.tokens===!0){if(E.maxDepth=0,!ku(A))w.push(k);E.tokens=w}if(Y.parts===!0||Y.tokens===!0){let P;for(let x=0;x<Q.length;x++){let _=P?P+1:$,g=Q[x],m=D.slice(_,g);if(Y.tokens){if(x===0&&$!==0)w[x].isPrefix=!0,w[x].value=n;else w[x].value=m;uu(w[x]),E.maxDepth+=w[x].depth}if(x!==0||m!=="")F.push(m);P=g}if(P&&P+1<D.length){let x=D.slice(P+1);if(F.push(x),Y.tokens)w[w.length-1].value=x,uu(w[w.length-1]),E.maxDepth+=w[w.length-1].depth}E.slashes=Q,E.parts=F}return E};_u.exports=zX0});var mu=T((mW0,gu)=>{var gJ=qX(),g1=$X(),{MAX_LENGTH:mJ,POSIX_REGEX_SOURCE:MX0,REGEX_NON_SPECIAL_CHARS:LX0,REGEX_SPECIAL_CHARS_BACKREF:VX0,REPLACEMENTS:bu}=gJ,UX0=(D,X)=>{if(typeof X.expandRange==="function")return X.expandRange(...D,X);D.sort();let Y=`[${D.join("-")}]`;try{new RegExp(Y)}catch(Z){return D.map((J)=>g1.escapeRegex(J)).join("..")}return Y},o7=(D,X)=>{return`Missing ${D}: "${X}" - use "\\\\${X}" to match literal characters`},qG=(D,X)=>{if(typeof D!=="string")throw TypeError("Expected a string");D=bu[D]||D;let Y={...X},Z=typeof Y.maxLength==="number"?Math.min(mJ,Y.maxLength):mJ,J=D.length;if(J>Z)throw SyntaxError(`Input length: ${J}, exceeds maximum allowed length: ${Z}`);let Q={type:"bos",value:"",output:Y.prepend||""},w=[Q],F=Y.capture?"":"?:",B=g1.isWindows(X),q=gJ.globChars(B),$=gJ.extglobChars(q),{DOT_LITERAL:G,PLUS_LITERAL:W,SLASH_LITERAL:O,ONE_CHAR:H,DOTS_SLASH:M,NO_DOT:U,NO_DOT_SLASH:N,NO_DOTS_SLASH:R,QMARK:z,QMARK_NO_DOT:V,STAR:L,START_ANCHOR:C}=q,y=(u)=>{return`(${F}(?:(?!${C}${u.dot?M:G}).)*?)`},A=Y.dot?"":U,k=Y.dot?z:V,f=Y.bash===!0?y(Y):L;if(Y.capture)f=`(${f})`;if(typeof Y.noext==="boolean")Y.noextglob=Y.noext;let S={input:D,index:-1,start:0,dot:Y.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:w};D=g1.removePrefix(D,S),J=D.length;let v=[],b=[],n=[],h=Q,E,P=()=>S.index===J-1,x=S.peek=(u=1)=>D[S.index+u],_=S.advance=()=>D[++S.index]||"",g=()=>D.slice(S.index+1),m=(u="",w0=0)=>{S.consumed+=u,S.index+=w0},a=(u)=>{S.output+=u.output!=null?u.output:u.value,m(u.value)},d=()=>{let u=1;while(x()==="!"&&(x(2)!=="("||x(3)==="?"))_(),S.start++,u++;if(u%2===0)return!1;return S.negated=!0,S.start++,!0},c=(u)=>{S[u]++,n.push(u)},o=(u)=>{S[u]--,n.pop()},I=(u)=>{if(h.type==="globstar"){let w0=S.braces>0&&(u.type==="comma"||u.type==="brace"),i=u.extglob===!0||v.length&&(u.type==="pipe"||u.type==="paren");if(u.type!=="slash"&&u.type!=="paren"&&!w0&&!i)S.output=S.output.slice(0,-h.output.length),h.type="star",h.value="*",h.output=f,S.output+=h.output}if(v.length&&u.type!=="paren")v[v.length-1].inner+=u.value;if(u.value||u.output)a(u);if(h&&h.type==="text"&&u.type==="text"){h.value+=u.value,h.output=(h.output||"")+u.value;return}u.prev=h,w.push(u),h=u},j=(u,w0)=>{let i={...$[w0],conditions:1,inner:""};i.prev=h,i.parens=S.parens,i.output=S.output;let B0=(Y.capture?"(":"")+i.open;c("parens"),I({type:u,value:w0,output:S.output?"":H}),I({type:"paren",extglob:!0,value:_(),output:B0}),v.push(i)},l=(u)=>{let w0=u.close+(Y.capture?")":""),i;if(u.type==="negate"){let B0=f;if(u.inner&&u.inner.length>1&&u.inner.includes("/"))B0=y(Y);if(B0!==f||P()||/^\)+$/.test(g()))w0=u.close=`)$))${B0}`;if(u.inner.includes("*")&&(i=g())&&/^\.[^\\/.]+$/.test(i)){let A0=qG(i,{...X,fastpaths:!1}).output;w0=u.close=`)${A0})${B0})`}if(u.prev.type==="bos")S.negatedExtglob=!0}I({type:"paren",extglob:!0,value:E,output:w0}),o("parens")};if(Y.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(D)){let u=!1,w0=D.replace(VX0,(i,B0,A0,S0,a0,jD)=>{if(S0==="\\")return u=!0,i;if(S0==="?"){if(B0)return B0+S0+(a0?z.repeat(a0.length):"");if(jD===0)return k+(a0?z.repeat(a0.length):"");return z.repeat(A0.length)}if(S0===".")return G.repeat(A0.length);if(S0==="*"){if(B0)return B0+S0+(a0?f:"");return f}return B0?i:`\\${i}`});if(u===!0)if(Y.unescape===!0)w0=w0.replace(/\\/g,"");else w0=w0.replace(/\\+/g,(i)=>{return i.length%2===0?"\\\\":i?"\\":""});if(w0===D&&Y.contains===!0)return S.output=D,S;return S.output=g1.wrapOutput(w0,S,X),S}while(!P()){if(E=_(),E==="\x00")continue;if(E==="\\"){let i=x();if(i==="/"&&Y.bash!==!0)continue;if(i==="."||i===";")continue;if(!i){E+="\\",I({type:"text",value:E});continue}let B0=/^\\+/.exec(g()),A0=0;if(B0&&B0[0].length>2){if(A0=B0[0].length,S.index+=A0,A0%2!==0)E+="\\"}if(Y.unescape===!0)E=_();else E+=_();if(S.brackets===0){I({type:"text",value:E});continue}}if(S.brackets>0&&(E!=="]"||h.value==="["||h.value==="[^")){if(Y.posix!==!1&&E===":"){let i=h.value.slice(1);if(i.includes("[")){if(h.posix=!0,i.includes(":")){let B0=h.value.lastIndexOf("["),A0=h.value.slice(0,B0),S0=h.value.slice(B0+2),a0=MX0[S0];if(a0){if(h.value=A0+a0,S.backtrack=!0,_(),!Q.output&&w.indexOf(h)===1)Q.output=H;continue}}}}if(E==="["&&x()!==":"||E==="-"&&x()==="]")E=`\\${E}`;if(E==="]"&&(h.value==="["||h.value==="[^"))E=`\\${E}`;if(Y.posix===!0&&E==="!"&&h.value==="[")E="^";h.value+=E,a({value:E});continue}if(S.quotes===1&&E!=='"'){E=g1.escapeRegex(E),h.value+=E,a({value:E});continue}if(E==='"'){if(S.quotes=S.quotes===1?0:1,Y.keepQuotes===!0)I({type:"text",value:E});continue}if(E==="("){c("parens"),I({type:"paren",value:E});continue}if(E===")"){if(S.parens===0&&Y.strictBrackets===!0)throw SyntaxError(o7("opening","("));let i=v[v.length-1];if(i&&S.parens===i.parens+1){l(v.pop());continue}I({type:"paren",value:E,output:S.parens?")":"\\)"}),o("parens");continue}if(E==="["){if(Y.nobracket===!0||!g().includes("]")){if(Y.nobracket!==!0&&Y.strictBrackets===!0)throw SyntaxError(o7("closing","]"));E=`\\${E}`}else c("brackets");I({type:"bracket",value:E});continue}if(E==="]"){if(Y.nobracket===!0||h&&h.type==="bracket"&&h.value.length===1){I({type:"text",value:E,output:`\\${E}`});continue}if(S.brackets===0){if(Y.strictBrackets===!0)throw SyntaxError(o7("opening","["));I({type:"text",value:E,output:`\\${E}`});continue}o("brackets");let i=h.value.slice(1);if(h.posix!==!0&&i[0]==="^"&&!i.includes("/"))E=`/${E}`;if(h.value+=E,a({value:E}),Y.literalBrackets===!1||g1.hasRegexChars(i))continue;let B0=g1.escapeRegex(h.value);if(S.output=S.output.slice(0,-h.value.length),Y.literalBrackets===!0){S.output+=B0,h.value=B0;continue}h.value=`(${F}${B0}|${h.value})`,S.output+=h.value;continue}if(E==="{"&&Y.nobrace!==!0){c("braces");let i={type:"brace",value:E,output:"(",outputIndex:S.output.length,tokensIndex:S.tokens.length};b.push(i),I(i);continue}if(E==="}"){let i=b[b.length-1];if(Y.nobrace===!0||!i){I({type:"text",value:E,output:E});continue}let B0=")";if(i.dots===!0){let A0=w.slice(),S0=[];for(let a0=A0.length-1;a0>=0;a0--){if(w.pop(),A0[a0].type==="brace")break;if(A0[a0].type!=="dots")S0.unshift(A0[a0].value)}B0=UX0(S0,Y),S.backtrack=!0}if(i.comma!==!0&&i.dots!==!0){let A0=S.output.slice(0,i.outputIndex),S0=S.tokens.slice(i.tokensIndex);i.value=i.output="\\{",E=B0="\\}",S.output=A0;for(let a0 of S0)S.output+=a0.output||a0.value}I({type:"brace",value:E,output:B0}),o("braces"),b.pop();continue}if(E==="|"){if(v.length>0)v[v.length-1].conditions++;I({type:"text",value:E});continue}if(E===","){let i=E,B0=b[b.length-1];if(B0&&n[n.length-1]==="braces")B0.comma=!0,i="|";I({type:"comma",value:E,output:i});continue}if(E==="/"){if(h.type==="dot"&&S.index===S.start+1){S.start=S.index+1,S.consumed="",S.output="",w.pop(),h=Q;continue}I({type:"slash",value:E,output:O});continue}if(E==="."){if(S.braces>0&&h.type==="dot"){if(h.value===".")h.output=G;let i=b[b.length-1];h.type="dots",h.output+=E,h.value+=E,i.dots=!0;continue}if(S.braces+S.parens===0&&h.type!=="bos"&&h.type!=="slash"){I({type:"text",value:E,output:G});continue}I({type:"dot",value:E,output:G});continue}if(E==="?"){if(!(h&&h.value==="(")&&Y.noextglob!==!0&&x()==="("&&x(2)!=="?"){j("qmark",E);continue}if(h&&h.type==="paren"){let B0=x(),A0=E;if(B0==="<"&&!g1.supportsLookbehinds())throw Error("Node.js v10 or higher is required for regex lookbehinds");if(h.value==="("&&!/[!=<:]/.test(B0)||B0==="<"&&!/<([!=]|\w+>)/.test(g()))A0=`\\${E}`;I({type:"text",value:E,output:A0});continue}if(Y.dot!==!0&&(h.type==="slash"||h.type==="bos")){I({type:"qmark",value:E,output:V});continue}I({type:"qmark",value:E,output:z});continue}if(E==="!"){if(Y.noextglob!==!0&&x()==="("){if(x(2)!=="?"||!/[!=<:]/.test(x(3))){j("negate",E);continue}}if(Y.nonegate!==!0&&S.index===0){d();continue}}if(E==="+"){if(Y.noextglob!==!0&&x()==="("&&x(2)!=="?"){j("plus",E);continue}if(h&&h.value==="("||Y.regex===!1){I({type:"plus",value:E,output:W});continue}if(h&&(h.type==="bracket"||h.type==="paren"||h.type==="brace")||S.parens>0){I({type:"plus",value:E});continue}I({type:"plus",value:W});continue}if(E==="@"){if(Y.noextglob!==!0&&x()==="("&&x(2)!=="?"){I({type:"at",extglob:!0,value:E,output:""});continue}I({type:"text",value:E});continue}if(E!=="*"){if(E==="$"||E==="^")E=`\\${E}`;let i=LX0.exec(g());if(i)E+=i[0],S.index+=i[0].length;I({type:"text",value:E});continue}if(h&&(h.type==="globstar"||h.star===!0)){h.type="star",h.star=!0,h.value+=E,h.output=f,S.backtrack=!0,S.globstar=!0,m(E);continue}let u=g();if(Y.noextglob!==!0&&/^\([^?]/.test(u)){j("star",E);continue}if(h.type==="star"){if(Y.noglobstar===!0){m(E);continue}let i=h.prev,B0=i.prev,A0=i.type==="slash"||i.type==="bos",S0=B0&&(B0.type==="star"||B0.type==="globstar");if(Y.bash===!0&&(!A0||u[0]&&u[0]!=="/")){I({type:"star",value:E,output:""});continue}let a0=S.braces>0&&(i.type==="comma"||i.type==="brace"),jD=v.length&&(i.type==="pipe"||i.type==="paren");if(!A0&&i.type!=="paren"&&!a0&&!jD){I({type:"star",value:E,output:""});continue}while(u.slice(0,3)==="/**"){let N1=D[S.index+4];if(N1&&N1!=="/")break;u=u.slice(3),m("/**",3)}if(i.type==="bos"&&P()){h.type="globstar",h.value+=E,h.output=y(Y),S.output=h.output,S.globstar=!0,m(E);continue}if(i.type==="slash"&&i.prev.type!=="bos"&&!S0&&P()){S.output=S.output.slice(0,-(i.output+h.output).length),i.output=`(?:${i.output}`,h.type="globstar",h.output=y(Y)+(Y.strictSlashes?")":"|$)"),h.value+=E,S.globstar=!0,S.output+=i.output+h.output,m(E);continue}if(i.type==="slash"&&i.prev.type!=="bos"&&u[0]==="/"){let N1=u[1]!==void 0?"|$":"";S.output=S.output.slice(0,-(i.output+h.output).length),i.output=`(?:${i.output}`,h.type="globstar",h.output=`${y(Y)}${O}|${O}${N1})`,h.value+=E,S.output+=i.output+h.output,S.globstar=!0,m(E+_()),I({type:"slash",value:"/",output:""});continue}if(i.type==="bos"&&u[0]==="/"){h.type="globstar",h.value+=E,h.output=`(?:^|${O}|${y(Y)}${O})`,S.output=h.output,S.globstar=!0,m(E+_()),I({type:"slash",value:"/",output:""});continue}S.output=S.output.slice(0,-h.output.length),h.type="globstar",h.output=y(Y),h.value+=E,S.output+=h.output,S.globstar=!0,m(E);continue}let w0={type:"star",value:E,output:f};if(Y.bash===!0){if(w0.output=".*?",h.type==="bos"||h.type==="slash")w0.output=A+w0.output;I(w0);continue}if(h&&(h.type==="bracket"||h.type==="paren")&&Y.regex===!0){w0.output=E,I(w0);continue}if(S.index===S.start||h.type==="slash"||h.type==="dot"){if(h.type==="dot")S.output+=N,h.output+=N;else if(Y.dot===!0)S.output+=R,h.output+=R;else S.output+=A,h.output+=A;if(x()!=="*")S.output+=H,h.output+=H}I(w0)}while(S.brackets>0){if(Y.strictBrackets===!0)throw SyntaxError(o7("closing","]"));S.output=g1.escapeLast(S.output,"["),o("brackets")}while(S.parens>0){if(Y.strictBrackets===!0)throw SyntaxError(o7("closing",")"));S.output=g1.escapeLast(S.output,"("),o("parens")}while(S.braces>0){if(Y.strictBrackets===!0)throw SyntaxError(o7("closing","}"));S.output=g1.escapeLast(S.output,"{"),o("braces")}if(Y.strictSlashes!==!0&&(h.type==="star"||h.type==="bracket"))I({type:"maybe_slash",value:"",output:`${O}?`});if(S.backtrack===!0){S.output="";for(let u of S.tokens)if(S.output+=u.output!=null?u.output:u.value,u.suffix)S.output+=u.suffix}return S};qG.fastpaths=(D,X)=>{let Y={...X},Z=typeof Y.maxLength==="number"?Math.min(mJ,Y.maxLength):mJ,J=D.length;if(J>Z)throw SyntaxError(`Input length: ${J}, exceeds maximum allowed length: ${Z}`);D=bu[D]||D;let Q=g1.isWindows(X),{DOT_LITERAL:w,SLASH_LITERAL:F,ONE_CHAR:B,DOTS_SLASH:q,NO_DOT:$,NO_DOTS:G,NO_DOTS_SLASH:W,STAR:O,START_ANCHOR:H}=gJ.globChars(Q),M=Y.dot?G:$,U=Y.dot?W:$,N=Y.capture?"":"?:",R={negated:!1,prefix:""},z=Y.bash===!0?".*?":O;if(Y.capture)z=`(${z})`;let V=(A)=>{if(A.noglobstar===!0)return z;return`(${N}(?:(?!${H}${A.dot?q:w}).)*?)`},L=(A)=>{switch(A){case"*":return`${M}${B}${z}`;case".*":return`${w}${B}${z}`;case"*.*":return`${M}${z}${w}${B}${z}`;case"*/*":return`${M}${z}${F}${B}${U}${z}`;case"**":return M+V(Y);case"**/*":return`(?:${M}${V(Y)}${F})?${U}${B}${z}`;case"**/*.*":return`(?:${M}${V(Y)}${F})?${U}${z}${w}${B}${z}`;case"**/.*":return`(?:${M}${V(Y)}${F})?${w}${B}${z}`;default:{let k=/^(.*?)\.(\w+)$/.exec(A);if(!k)return;let f=L(k[1]);if(!f)return;return f+w+k[2]}}},C=g1.removePrefix(D,R),y=L(C);if(y&&Y.strictSlashes!==!0)y+=`${F}?`;return y};gu.exports=qG});var cu=T((dW0,du)=>{var NX0=require("path"),RX0=vu(),$G=mu(),GG=$X(),AX0=qX(),EX0=(D)=>D&&typeof D==="object"&&!Array.isArray(D),SD=(D,X,Y=!1)=>{if(Array.isArray(D)){let $=D.map((W)=>SD(W,X,Y));return(W)=>{for(let O of $){let H=O(W);if(H)return H}return!1}}let Z=EX0(D)&&D.tokens&&D.input;if(D===""||typeof D!=="string"&&!Z)throw TypeError("Expected pattern to be a non-empty string");let J=X||{},Q=GG.isWindows(X),w=Z?SD.compileRe(D,X):SD.makeRe(D,X,!1,!0),F=w.state;delete w.state;let B=()=>!1;if(J.ignore){let $={...X,ignore:null,onMatch:null,onResult:null};B=SD(J.ignore,$,Y)}let q=($,G=!1)=>{let{isMatch:W,match:O,output:H}=SD.test($,w,X,{glob:D,posix:Q}),M={glob:D,state:F,regex:w,posix:Q,input:$,output:H,match:O,isMatch:W};if(typeof J.onResult==="function")J.onResult(M);if(W===!1)return M.isMatch=!1,G?M:!1;if(B($)){if(typeof J.onIgnore==="function")J.onIgnore(M);return M.isMatch=!1,G?M:!1}if(typeof J.onMatch==="function")J.onMatch(M);return G?M:!0};if(Y)q.state=F;return q};SD.test=(D,X,Y,{glob:Z,posix:J}={})=>{if(typeof D!=="string")throw TypeError("Expected input to be a string");if(D==="")return{isMatch:!1,output:""};let Q=Y||{},w=Q.format||(J?GG.toPosixSlashes:null),F=D===Z,B=F&&w?w(D):D;if(F===!1)B=w?w(D):D,F=B===Z;if(F===!1||Q.capture===!0)if(Q.matchBase===!0||Q.basename===!0)F=SD.matchBase(D,X,Y,J);else F=X.exec(B);return{isMatch:Boolean(F),match:F,output:B}};SD.matchBase=(D,X,Y,Z=GG.isWindows(Y))=>{return(X instanceof RegExp?X:SD.makeRe(X,Y)).test(NX0.basename(D))};SD.isMatch=(D,X,Y)=>SD(X,Y)(D);SD.parse=(D,X)=>{if(Array.isArray(D))return D.map((Y)=>SD.parse(Y,X));return $G(D,{...X,fastpaths:!1})};SD.scan=(D,X)=>RX0(D,X);SD.compileRe=(D,X,Y=!1,Z=!1)=>{if(Y===!0)return D.output;let J=X||{},Q=J.contains?"":"^",w=J.contains?"":"$",F=`${Q}(?:${D.output})${w}`;if(D&&D.negated===!0)F=`^(?!${F}).*$`;let B=SD.toRegex(F,X);if(Z===!0)B.state=D;return B};SD.makeRe=(D,X={},Y=!1,Z=!1)=>{if(!D||typeof D!=="string")throw TypeError("Expected a non-empty string");let J={negated:!1,fastpaths:!0};if(X.fastpaths!==!1&&(D[0]==="."||D[0]==="*"))J.output=$G.fastpaths(D,X);if(!J.output)J=$G(D,X);return SD.compileRe(J,X,Y,Z)};SD.toRegex=(D,X)=>{try{let Y=X||{};return new RegExp(D,Y.flags||(Y.nocase?"i":""))}catch(Y){if(X&&X.debug===!0)throw Y;return/$^/}};SD.constants=AX0;du.exports=SD});var nu=T((cW0,lu)=>{lu.exports=cu()});var su=T((lW0,ru)=>{var pu=require("util"),au=Iu(),l8=nu(),OG=$X(),iu=(D)=>D===""||D==="./",tu=(D)=>{let X=D.indexOf("{");return X>-1&&D.indexOf("}",X)>-1},QD=(D,X,Y)=>{X=[].concat(X),D=[].concat(D);let Z=new Set,J=new Set,Q=new Set,w=0,F=($)=>{if(Q.add($.output),Y&&Y.onResult)Y.onResult($)};for(let $=0;$<X.length;$++){let G=l8(String(X[$]),{...Y,onResult:F},!0),W=G.state.negated||G.state.negatedExtglob;if(W)w++;for(let O of D){let H=G(O,!0);if(!(W?!H.isMatch:H.isMatch))continue;if(W)Z.add(H.output);else Z.delete(H.output),J.add(H.output)}}let q=(w===X.length?[...Q]:[...J]).filter(($)=>!Z.has($));if(Y&&q.length===0){if(Y.failglob===!0)throw Error(`No matches found for "${X.join(", ")}"`);if(Y.nonull===!0||Y.nullglob===!0)return Y.unescape?X.map(($)=>$.replace(/\\/g,"")):X}return q};QD.match=QD;QD.matcher=(D,X)=>l8(D,X);QD.isMatch=(D,X,Y)=>l8(X,Y)(D);QD.any=QD.isMatch;QD.not=(D,X,Y={})=>{X=[].concat(X).map(String);let Z=new Set,J=[],w=new Set(QD(D,X,{...Y,onResult:(F)=>{if(Y.onResult)Y.onResult(F);J.push(F.output)}}));for(let F of J)if(!w.has(F))Z.add(F);return[...Z]};QD.contains=(D,X,Y)=>{if(typeof D!=="string")throw TypeError(`Expected a string: "${pu.inspect(D)}"`);if(Array.isArray(X))return X.some((Z)=>QD.contains(D,Z,Y));if(typeof X==="string"){if(iu(D)||iu(X))return!1;if(D.includes(X)||D.startsWith("./")&&D.slice(2).includes(X))return!0}return QD.isMatch(D,X,{...Y,contains:!0})};QD.matchKeys=(D,X,Y)=>{if(!OG.isObject(D))throw TypeError("Expected the first argument to be an object");let Z=QD(Object.keys(D),X,Y),J={};for(let Q of Z)J[Q]=D[Q];return J};QD.some=(D,X,Y)=>{let Z=[].concat(D);for(let J of[].concat(X)){let Q=l8(String(J),Y);if(Z.some((w)=>Q(w)))return!0}return!1};QD.every=(D,X,Y)=>{let Z=[].concat(D);for(let J of[].concat(X)){let Q=l8(String(J),Y);if(!Z.every((w)=>Q(w)))return!1}return!0};QD.all=(D,X,Y)=>{if(typeof D!=="string")throw TypeError(`Expected a string: "${pu.inspect(D)}"`);return[].concat(X).every((Z)=>l8(Z,Y)(D))};QD.capture=(D,X,Y)=>{let Z=OG.isWindows(Y),Q=l8.makeRe(String(D),{...Y,capture:!0}).exec(Z?OG.toPosixSlashes(X):X);if(Q)return Q.slice(1).map((w)=>w===void 0?"":w)};QD.makeRe=(...D)=>l8.makeRe(...D);QD.scan=(...D)=>l8.scan(...D);QD.parse=(D,X)=>{let Y=[];for(let Z of[].concat(D||[]))for(let J of au(String(Z),X))Y.push(l8.parse(J,X));return Y};QD.braces=(D,X)=>{if(typeof D!=="string")throw TypeError("Expected a string");if(X&&X.nobrace===!0||!tu(D))return[D];return au(D,X)};QD.braceExpand=(D,X)=>{if(typeof D!=="string")throw TypeError("Expected a string");return QD.braces(D,{...X,expand:!0})};QD.hasBraces=tu;ru.exports=QD});var zY0={};D4(zY0,{zipBundle:()=>eX0,uploadBundle:()=>pX0,updateOrganization:()=>BY0,updateAppSetting:()=>JY0,saveEncryptionKey:()=>XY0,requestBuild:()=>WY0,parseSecurityPolicyError:()=>J5,login:()=>aX0,listOrganizations:()=>wY0,listBundles:()=>GY0,isSecurityPolicyError:()=>q$,getStats:()=>HY0,getSecurityPolicyMessage:()=>vf,getCurrentBundle:()=>ZY0,getCapacitorConfig:()=>KY0,getAccountId:()=>QY0,generateEncryptionKeys:()=>DY0,formatApiErrorForCli:()=>XJ,encryptBundle:()=>sX0,doctor:()=>tX0,deleteOrganization:()=>qY0,deleteLegacyEncryptionKey:()=>YY0,decryptBundle:()=>oX0,createSupabaseClient:()=>z0,checkBundleCompatibility:()=>rX0,addOrganization:()=>FY0,addChannel:()=>OY0,addApp:()=>$Y0,SECURITY_POLICY_MESSAGES:()=>s3,SECURITY_POLICY_ERRORS:()=>_7,CapgoSDK:()=>GD});module.exports=yh(zY0);var sD=R0(XD(),1),R5=require("node:process"),N6=R0(require("node:readline")),rJ=R0(require("node:readline")),IG=require("node:stream"),X4=R0(pJ(),1);function bh({onlyFirst:D=!1}={}){let X=["[\\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(X,D?void 0:"g")}var gh=bh();function PG(D){if(typeof D!="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(gh,"")}function SG(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}var xG={exports:{}};(function(D){var X={};D.exports=X,X.eastAsianWidth=function(Z){var J=Z.charCodeAt(0),Q=Z.length==2?Z.charCodeAt(1):0,w=J;return 55296<=J&&J<=56319&&56320<=Q&&Q<=57343&&(J&=1023,Q&=1023,w=J<<10|Q,w+=65536),w==12288||65281<=w&&w<=65376||65504<=w&&w<=65510?"F":w==8361||65377<=w&&w<=65470||65474<=w&&w<=65479||65482<=w&&w<=65487||65490<=w&&w<=65495||65498<=w&&w<=65500||65512<=w&&w<=65518?"H":4352<=w&&w<=4447||4515<=w&&w<=4519||4602<=w&&w<=4607||9001<=w&&w<=9002||11904<=w&&w<=11929||11931<=w&&w<=12019||12032<=w&&w<=12245||12272<=w&&w<=12283||12289<=w&&w<=12350||12353<=w&&w<=12438||12441<=w&&w<=12543||12549<=w&&w<=12589||12593<=w&&w<=12686||12688<=w&&w<=12730||12736<=w&&w<=12771||12784<=w&&w<=12830||12832<=w&&w<=12871||12880<=w&&w<=13054||13056<=w&&w<=19903||19968<=w&&w<=42124||42128<=w&&w<=42182||43360<=w&&w<=43388||44032<=w&&w<=55203||55216<=w&&w<=55238||55243<=w&&w<=55291||63744<=w&&w<=64255||65040<=w&&w<=65049||65072<=w&&w<=65106||65108<=w&&w<=65126||65128<=w&&w<=65131||110592<=w&&w<=110593||127488<=w&&w<=127490||127504<=w&&w<=127546||127552<=w&&w<=127560||127568<=w&&w<=127569||131072<=w&&w<=194367||177984<=w&&w<=196605||196608<=w&&w<=262141?"W":32<=w&&w<=126||162<=w&&w<=163||165<=w&&w<=166||w==172||w==175||10214<=w&&w<=10221||10629<=w&&w<=10630?"Na":w==161||w==164||167<=w&&w<=168||w==170||173<=w&&w<=174||176<=w&&w<=180||182<=w&&w<=186||188<=w&&w<=191||w==198||w==208||215<=w&&w<=216||222<=w&&w<=225||w==230||232<=w&&w<=234||236<=w&&w<=237||w==240||242<=w&&w<=243||247<=w&&w<=250||w==252||w==254||w==257||w==273||w==275||w==283||294<=w&&w<=295||w==299||305<=w&&w<=307||w==312||319<=w&&w<=322||w==324||328<=w&&w<=331||w==333||338<=w&&w<=339||358<=w&&w<=359||w==363||w==462||w==464||w==466||w==468||w==470||w==472||w==474||w==476||w==593||w==609||w==708||w==711||713<=w&&w<=715||w==717||w==720||728<=w&&w<=731||w==733||w==735||768<=w&&w<=879||913<=w&&w<=929||931<=w&&w<=937||945<=w&&w<=961||963<=w&&w<=969||w==1025||1040<=w&&w<=1103||w==1105||w==8208||8211<=w&&w<=8214||8216<=w&&w<=8217||8220<=w&&w<=8221||8224<=w&&w<=8226||8228<=w&&w<=8231||w==8240||8242<=w&&w<=8243||w==8245||w==8251||w==8254||w==8308||w==8319||8321<=w&&w<=8324||w==8364||w==8451||w==8453||w==8457||w==8467||w==8470||8481<=w&&w<=8482||w==8486||w==8491||8531<=w&&w<=8532||8539<=w&&w<=8542||8544<=w&&w<=8555||8560<=w&&w<=8569||w==8585||8592<=w&&w<=8601||8632<=w&&w<=8633||w==8658||w==8660||w==8679||w==8704||8706<=w&&w<=8707||8711<=w&&w<=8712||w==8715||w==8719||w==8721||w==8725||w==8730||8733<=w&&w<=8736||w==8739||w==8741||8743<=w&&w<=8748||w==8750||8756<=w&&w<=8759||8764<=w&&w<=8765||w==8776||w==8780||w==8786||8800<=w&&w<=8801||8804<=w&&w<=8807||8810<=w&&w<=8811||8814<=w&&w<=8815||8834<=w&&w<=8835||8838<=w&&w<=8839||w==8853||w==8857||w==8869||w==8895||w==8978||9312<=w&&w<=9449||9451<=w&&w<=9547||9552<=w&&w<=9587||9600<=w&&w<=9615||9618<=w&&w<=9621||9632<=w&&w<=9633||9635<=w&&w<=9641||9650<=w&&w<=9651||9654<=w&&w<=9655||9660<=w&&w<=9661||9664<=w&&w<=9665||9670<=w&&w<=9672||w==9675||9678<=w&&w<=9681||9698<=w&&w<=9701||w==9711||9733<=w&&w<=9734||w==9737||9742<=w&&w<=9743||9748<=w&&w<=9749||w==9756||w==9758||w==9792||w==9794||9824<=w&&w<=9825||9827<=w&&w<=9829||9831<=w&&w<=9834||9836<=w&&w<=9837||w==9839||9886<=w&&w<=9887||9918<=w&&w<=9919||9924<=w&&w<=9933||9935<=w&&w<=9953||w==9955||9960<=w&&w<=9983||w==10045||w==10071||10102<=w&&w<=10111||11093<=w&&w<=11097||12872<=w&&w<=12879||57344<=w&&w<=63743||65024<=w&&w<=65039||w==65533||127232<=w&&w<=127242||127248<=w&&w<=127277||127280<=w&&w<=127337||127344<=w&&w<=127386||917760<=w&&w<=917999||983040<=w&&w<=1048573||1048576<=w&&w<=1114109?"A":"N"},X.characterLength=function(Z){var J=this.eastAsianWidth(Z);return J=="F"||J=="W"||J=="A"?2:1};function Y(Z){return Z.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}X.length=function(Z){for(var J=Y(Z),Q=0,w=0;w<J.length;w++)Q=Q+this.characterLength(J[w]);return Q},X.slice=function(Z,J,Q){textLen=X.length(Z),J=J||0,Q=Q||1,J<0&&(J=textLen+J),Q<0&&(Q=textLen+Q);for(var w="",F=0,B=Y(Z),q=0;q<B.length;q++){var $=B[q],G=X.length($);if(F>=J-(G==2?1:0))if(F+G<=Q)w+=$;else break;F+=G}return w}})(xG);var mh=xG.exports,dh=SG(mh),ch=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},lh=SG(ch);function Y4(D,X={}){if(typeof D!="string"||D.length===0||(X={ambiguousIsNarrow:!0,...X},D=PG(D),D.length===0))return 0;D=D.replace(lh()," ");let Y=X.ambiguousIsNarrow?1:2,Z=0;for(let J of D){let Q=J.codePointAt(0);if(Q<=31||Q>=127&&Q<=159||Q>=768&&Q<=879)continue;switch(dh.eastAsianWidth(J)){case"F":case"W":Z+=2;break;case"A":Z+=Y;break;default:Z+=1}}return Z}var aJ=10,UG=(D=0)=>(X)=>`\x1B[${X+D}m`,NG=(D=0)=>(X)=>`\x1B[${38+D};5;${X}m`,RG=(D=0)=>(X,Y,Z)=>`\x1B[${38+D};2;${X};${Y};${Z}m`,wD={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(wD.modifier);var nh=Object.keys(wD.color),ih=Object.keys(wD.bgColor);[...nh,...ih];function ph(){let D=new Map;for(let[X,Y]of Object.entries(wD)){for(let[Z,J]of Object.entries(Y))wD[Z]={open:`\x1B[${J[0]}m`,close:`\x1B[${J[1]}m`},Y[Z]=wD[Z],D.set(J[0],J[1]);Object.defineProperty(wD,X,{value:Y,enumerable:!1})}return Object.defineProperty(wD,"codes",{value:D,enumerable:!1}),wD.color.close="\x1B[39m",wD.bgColor.close="\x1B[49m",wD.color.ansi=UG(),wD.color.ansi256=NG(),wD.color.ansi16m=RG(),wD.bgColor.ansi=UG(aJ),wD.bgColor.ansi256=NG(aJ),wD.bgColor.ansi16m=RG(aJ),Object.defineProperties(wD,{rgbToAnsi256:{value:(X,Y,Z)=>X===Y&&Y===Z?X<8?16:X>248?231:Math.round((X-8)/247*24)+232:16+36*Math.round(X/255*5)+6*Math.round(Y/255*5)+Math.round(Z/255*5),enumerable:!1},hexToRgb:{value:(X)=>{let Y=/[a-f\d]{6}|[a-f\d]{3}/i.exec(X.toString(16));if(!Y)return[0,0,0];let[Z]=Y;Z.length===3&&(Z=[...Z].map((Q)=>Q+Q).join(""));let J=Number.parseInt(Z,16);return[J>>16&255,J>>8&255,J&255]},enumerable:!1},hexToAnsi256:{value:(X)=>wD.rgbToAnsi256(...wD.hexToRgb(X)),enumerable:!1},ansi256ToAnsi:{value:(X)=>{if(X<8)return 30+X;if(X<16)return 90+(X-8);let Y,Z,J;if(X>=232)Y=((X-232)*10+8)/255,Z=Y,J=Y;else{X-=16;let F=X%36;Y=Math.floor(X/36)/5,Z=Math.floor(F/6)/5,J=F%6/5}let Q=Math.max(Y,Z,J)*2;if(Q===0)return 30;let w=30+(Math.round(J)<<2|Math.round(Z)<<1|Math.round(Y));return Q===2&&(w+=60),w},enumerable:!1},rgbToAnsi:{value:(X,Y,Z)=>wD.ansi256ToAnsi(wD.rgbToAnsi256(X,Y,Z)),enumerable:!1},hexToAnsi:{value:(X)=>wD.ansi256ToAnsi(wD.hexToAnsi256(X)),enumerable:!1}}),wD}var ah=ph(),VX=new Set(["\x1B","›"]),th=39,oJ="\x07",fG="[",rh="]",yG="m",eJ=`${rh}8;;`,AG=(D)=>`${VX.values().next().value}${fG}${D}${yG}`,EG=(D)=>`${VX.values().next().value}${eJ}${D}${oJ}`,sh=(D)=>D.split(" ").map((X)=>Y4(X)),tJ=(D,X,Y)=>{let Z=[...X],J=!1,Q=!1,w=Y4(PG(D[D.length-1]));for(let[F,B]of Z.entries()){let q=Y4(B);if(w+q<=Y?D[D.length-1]+=B:(D.push(B),w=0),VX.has(B)&&(J=!0,Q=Z.slice(F+1).join("").startsWith(eJ)),J){Q?B===oJ&&(J=!1,Q=!1):B===yG&&(J=!1);continue}w+=q,w===Y&&F<Z.length-1&&(D.push(""),w=0)}!w&&D[D.length-1].length>0&&D.length>1&&(D[D.length-2]+=D.pop())},oh=(D)=>{let X=D.split(" "),Y=X.length;for(;Y>0&&!(Y4(X[Y-1])>0);)Y--;return Y===X.length?D:X.slice(0,Y).join(" ")+X.slice(Y).join("")},eh=(D,X,Y={})=>{if(Y.trim!==!1&&D.trim()==="")return"";let Z="",J,Q,w=sh(D),F=[""];for(let[q,$]of D.split(" ").entries()){Y.trim!==!1&&(F[F.length-1]=F[F.length-1].trimStart());let G=Y4(F[F.length-1]);if(q!==0&&(G>=X&&(Y.wordWrap===!1||Y.trim===!1)&&(F.push(""),G=0),(G>0||Y.trim===!1)&&(F[F.length-1]+=" ",G++)),Y.hard&&w[q]>X){let W=X-G,O=1+Math.floor((w[q]-W-1)/X);Math.floor((w[q]-1)/X)<O&&F.push(""),tJ(F,$,X);continue}if(G+w[q]>X&&G>0&&w[q]>0){if(Y.wordWrap===!1&&G<X){tJ(F,$,X);continue}F.push("")}if(G+w[q]>X&&Y.wordWrap===!1){tJ(F,$,X);continue}F[F.length-1]+=$}Y.trim!==!1&&(F=F.map((q)=>oh(q)));let B=[...F.join(`
258
+ `,CHAR_NO_BREAK_SPACE:" ",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:"\t",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var Cu=T((hW0,Eu)=>{var b30=_J(),{MAX_LENGTH:Nu,CHAR_BACKSLASH:ZG,CHAR_BACKTICK:g30,CHAR_COMMA:m30,CHAR_DOT:d30,CHAR_LEFT_PARENTHESES:c30,CHAR_RIGHT_PARENTHESES:l30,CHAR_LEFT_CURLY_BRACE:n30,CHAR_RIGHT_CURLY_BRACE:i30,CHAR_LEFT_SQUARE_BRACKET:Ru,CHAR_RIGHT_SQUARE_BRACKET:Au,CHAR_DOUBLE_QUOTE:p30,CHAR_SINGLE_QUOTE:a30,CHAR_NO_BREAK_SPACE:t30,CHAR_ZERO_WIDTH_NOBREAK_SPACE:r30}=Uu(),s30=(D,X={})=>{if(typeof D!=="string")throw TypeError("Expected a string");let Y=X||{},Z=typeof Y.maxLength==="number"?Math.min(Nu,Y.maxLength):Nu;if(D.length>Z)throw SyntaxError(`Input length (${D.length}), exceeds max characters (${Z})`);let J={type:"root",input:D,nodes:[]},Q=[J],w=J,F=J,B=0,q=D.length,$=0,G=0,W,O=()=>D[$++],H=(M)=>{if(M.type==="text"&&F.type==="dot")F.type="text";if(F&&F.type==="text"&&M.type==="text"){F.value+=M.value;return}return w.nodes.push(M),M.parent=w,M.prev=F,F=M,M};H({type:"bos"});while($<q){if(w=Q[Q.length-1],W=O(),W===r30||W===t30)continue;if(W===ZG){H({type:"text",value:(X.keepEscaping?W:"")+O()});continue}if(W===Au){H({type:"text",value:"\\"+W});continue}if(W===Ru){B++;let M;while($<q&&(M=O())){if(W+=M,M===Ru){B++;continue}if(M===ZG){W+=O();continue}if(M===Au){if(B--,B===0)break}}H({type:"text",value:W});continue}if(W===c30){w=H({type:"paren",nodes:[]}),Q.push(w),H({type:"text",value:W});continue}if(W===l30){if(w.type!=="paren"){H({type:"text",value:W});continue}w=Q.pop(),H({type:"text",value:W}),w=Q[Q.length-1];continue}if(W===p30||W===a30||W===g30){let M=W,U;if(X.keepQuotes!==!0)W="";while($<q&&(U=O())){if(U===ZG){W+=U+O();continue}if(U===M){if(X.keepQuotes===!0)W+=U;break}W+=U}H({type:"text",value:W});continue}if(W===n30){G++;let U={type:"brace",open:!0,close:!1,dollar:F.value&&F.value.slice(-1)==="$"||w.dollar===!0,depth:G,commas:0,ranges:0,nodes:[]};w=H(U),Q.push(w),H({type:"open",value:W});continue}if(W===i30){if(w.type!=="brace"){H({type:"text",value:W});continue}let M="close";w=Q.pop(),w.close=!0,H({type:M,value:W}),G--,w=Q[Q.length-1];continue}if(W===m30&&G>0){if(w.ranges>0){w.ranges=0;let M=w.nodes.shift();w.nodes=[M,{type:"text",value:b30(w)}]}H({type:"comma",value:W}),w.commas++;continue}if(W===d30&&G>0&&w.commas===0){let M=w.nodes;if(G===0||M.length===0){H({type:"text",value:W});continue}if(F.type==="dot"){if(w.range=[],F.value+=W,F.type="range",w.nodes.length!==3&&w.nodes.length!==5){w.invalid=!0,w.ranges=0,F.type="text";continue}w.ranges++,w.args=[];continue}if(F.type==="range"){M.pop();let U=M[M.length-1];U.value+=F.value+W,F=U,w.ranges--;continue}H({type:"dot",value:W});continue}H({type:"text",value:W})}do if(w=Q.pop(),w.type!=="root"){w.nodes.forEach((N)=>{if(!N.nodes){if(N.type==="open")N.isOpen=!0;if(N.type==="close")N.isClose=!0;if(!N.nodes)N.type="text";N.invalid=!0}});let M=Q[Q.length-1],U=M.nodes.indexOf(w);M.nodes.splice(U,1,...w.nodes)}while(Q.length>0);return H({type:"eos"}),J};Eu.exports=s30});var Iu=T((_W0,Tu)=>{var ju=_J(),o30=Ku(),e30=Lu(),DX0=Cu(),b1=(D,X={})=>{let Y=[];if(Array.isArray(D))for(let Z of D){let J=b1.create(Z,X);if(Array.isArray(J))Y.push(...J);else Y.push(J)}else Y=[].concat(b1.create(D,X));if(X&&X.expand===!0&&X.nodupes===!0)Y=[...new Set(Y)];return Y};b1.parse=(D,X={})=>DX0(D,X);b1.stringify=(D,X={})=>{if(typeof D==="string")return ju(b1.parse(D,X),X);return ju(D,X)};b1.compile=(D,X={})=>{if(typeof D==="string")D=b1.parse(D,X);return o30(D,X)};b1.expand=(D,X={})=>{if(typeof D==="string")D=b1.parse(D,X);let Y=e30(D,X);if(X.noempty===!0)Y=Y.filter(Boolean);if(X.nodupes===!0)Y=[...new Set(Y)];return Y};b1.create=(D,X={})=>{if(D===""||D.length<3)return[D];return X.expand!==!0?b1.compile(D,X):b1.expand(D,X)};Tu.exports=b1});var qX=T((vW0,Su)=>{var XX0=require("path"),Pu={DOT_LITERAL:"\\.",PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:"\\/",ONE_CHAR:"(?=.)",QMARK:"[^/]",END_ANCHOR:"(?:\\/|$)",DOTS_SLASH:"\\.{1,2}(?:\\/|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|\\/)\\.{1,2}(?:\\/|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:\\/|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:\\/|$))",QMARK_NO_DOT:"[^.\\/]",STAR:"[^/]*?",START_ANCHOR:"(?:^|\\/)"},YX0={...Pu,SLASH_LITERAL:"[\\\\/]",QMARK:"[^\\\\/]",STAR:"[^\\\\/]*?",DOTS_SLASH:"\\.{1,2}(?:[\\\\/]|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|[\\\\/])\\.{1,2}(?:[\\\\/]|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:[\\\\/]|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:[\\\\/]|$))",QMARK_NO_DOT:"[^.\\\\/]",START_ANCHOR:"(?:^|[\\\\/])",END_ANCHOR:"(?:[\\\\/]|$)"},ZX0={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"};Su.exports={MAX_LENGTH:65536,POSIX_REGEX_SOURCE:ZX0,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:XX0.sep,extglobChars(D){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${D.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(D){return D===!0?YX0:Pu}}});var $X=T((y1)=>{var JX0=require("path"),QX0=process.platform==="win32",{REGEX_BACKSLASH:wX0,REGEX_REMOVE_BACKSLASH:FX0,REGEX_SPECIAL_CHARS:BX0,REGEX_SPECIAL_CHARS_GLOBAL:qX0}=qX();y1.isObject=(D)=>D!==null&&typeof D==="object"&&!Array.isArray(D);y1.hasRegexChars=(D)=>BX0.test(D);y1.isRegexChar=(D)=>D.length===1&&y1.hasRegexChars(D);y1.escapeRegex=(D)=>D.replace(qX0,"\\$1");y1.toPosixSlashes=(D)=>D.replace(wX0,"/");y1.removeBackslashes=(D)=>{return D.replace(FX0,(X)=>{return X==="\\"?"":X})};y1.supportsLookbehinds=()=>{let D=process.version.slice(1).split(".").map(Number);if(D.length===3&&D[0]>=9||D[0]===8&&D[1]>=10)return!0;return!1};y1.isWindows=(D)=>{if(D&&typeof D.windows==="boolean")return D.windows;return QX0===!0||JX0.sep==="\\"};y1.escapeLast=(D,X,Y)=>{let Z=D.lastIndexOf(X,Y);if(Z===-1)return D;if(D[Z-1]==="\\")return y1.escapeLast(D,X,Z-1);return`${D.slice(0,Z)}\\${D.slice(Z)}`};y1.removePrefix=(D,X={})=>{let Y=D;if(Y.startsWith("./"))Y=Y.slice(2),X.prefix="./";return Y};y1.wrapOutput=(D,X={},Y={})=>{let Z=Y.contains?"":"^",J=Y.contains?"":"$",Q=`${Z}(?:${D})${J}`;if(X.negated===!0)Q=`(?:^(?!${Q}).*$)`;return Q}});var vu=T((gW0,_u)=>{var xu=$X(),{CHAR_ASTERISK:JG,CHAR_AT:$X0,CHAR_BACKWARD_SLASH:GX,CHAR_COMMA:GX0,CHAR_DOT:QG,CHAR_EXCLAMATION_MARK:wG,CHAR_FORWARD_SLASH:hu,CHAR_LEFT_CURLY_BRACE:FG,CHAR_LEFT_PARENTHESES:BG,CHAR_LEFT_SQUARE_BRACKET:OX0,CHAR_PLUS:WX0,CHAR_QUESTION_MARK:fu,CHAR_RIGHT_CURLY_BRACE:HX0,CHAR_RIGHT_PARENTHESES:yu,CHAR_RIGHT_SQUARE_BRACKET:KX0}=qX(),ku=(D)=>{return D===hu||D===GX},uu=(D)=>{if(D.isPrefix!==!0)D.depth=D.isGlobstar?1/0:1},zX0=(D,X)=>{let Y=X||{},Z=D.length-1,J=Y.parts===!0||Y.scanToEnd===!0,Q=[],w=[],F=[],B=D,q=-1,$=0,G=0,W=!1,O=!1,H=!1,M=!1,U=!1,N=!1,R=!1,z=!1,V=!1,L=!1,C=0,y,A,k={value:"",depth:0,isGlob:!1},f=()=>q>=Z,S=()=>B.charCodeAt(q+1),v=()=>{return y=A,B.charCodeAt(++q)};while(q<Z){A=v();let P;if(A===GX){if(R=k.backslashes=!0,A=v(),A===FG)N=!0;continue}if(N===!0||A===FG){C++;while(f()!==!0&&(A=v())){if(A===GX){R=k.backslashes=!0,v();continue}if(A===FG){C++;continue}if(N!==!0&&A===QG&&(A=v())===QG){if(W=k.isBrace=!0,H=k.isGlob=!0,L=!0,J===!0)continue;break}if(N!==!0&&A===GX0){if(W=k.isBrace=!0,H=k.isGlob=!0,L=!0,J===!0)continue;break}if(A===HX0){if(C--,C===0){N=!1,W=k.isBrace=!0,L=!0;break}}}if(J===!0)continue;break}if(A===hu){if(Q.push(q),w.push(k),k={value:"",depth:0,isGlob:!1},L===!0)continue;if(y===QG&&q===$+1){$+=2;continue}G=q+1;continue}if(Y.noext!==!0){if((A===WX0||A===$X0||A===JG||A===fu||A===wG)===!0&&S()===BG){if(H=k.isGlob=!0,M=k.isExtglob=!0,L=!0,A===wG&&q===$)V=!0;if(J===!0){while(f()!==!0&&(A=v())){if(A===GX){R=k.backslashes=!0,A=v();continue}if(A===yu){H=k.isGlob=!0,L=!0;break}}continue}break}}if(A===JG){if(y===JG)U=k.isGlobstar=!0;if(H=k.isGlob=!0,L=!0,J===!0)continue;break}if(A===fu){if(H=k.isGlob=!0,L=!0,J===!0)continue;break}if(A===OX0){while(f()!==!0&&(P=v())){if(P===GX){R=k.backslashes=!0,v();continue}if(P===KX0){O=k.isBracket=!0,H=k.isGlob=!0,L=!0;break}}if(J===!0)continue;break}if(Y.nonegate!==!0&&A===wG&&q===$){z=k.negated=!0,$++;continue}if(Y.noparen!==!0&&A===BG){if(H=k.isGlob=!0,J===!0){while(f()!==!0&&(A=v())){if(A===BG){R=k.backslashes=!0,A=v();continue}if(A===yu){L=!0;break}}continue}break}if(H===!0){if(L=!0,J===!0)continue;break}}if(Y.noext===!0)M=!1,H=!1;let b=B,n="",h="";if($>0)n=B.slice(0,$),B=B.slice($),G-=$;if(b&&H===!0&&G>0)b=B.slice(0,G),h=B.slice(G);else if(H===!0)b="",h=B;else b=B;if(b&&b!==""&&b!=="/"&&b!==B){if(ku(b.charCodeAt(b.length-1)))b=b.slice(0,-1)}if(Y.unescape===!0){if(h)h=xu.removeBackslashes(h);if(b&&R===!0)b=xu.removeBackslashes(b)}let E={prefix:n,input:D,start:$,base:b,glob:h,isBrace:W,isBracket:O,isGlob:H,isExtglob:M,isGlobstar:U,negated:z,negatedExtglob:V};if(Y.tokens===!0){if(E.maxDepth=0,!ku(A))w.push(k);E.tokens=w}if(Y.parts===!0||Y.tokens===!0){let P;for(let x=0;x<Q.length;x++){let _=P?P+1:$,g=Q[x],m=D.slice(_,g);if(Y.tokens){if(x===0&&$!==0)w[x].isPrefix=!0,w[x].value=n;else w[x].value=m;uu(w[x]),E.maxDepth+=w[x].depth}if(x!==0||m!=="")F.push(m);P=g}if(P&&P+1<D.length){let x=D.slice(P+1);if(F.push(x),Y.tokens)w[w.length-1].value=x,uu(w[w.length-1]),E.maxDepth+=w[w.length-1].depth}E.slashes=Q,E.parts=F}return E};_u.exports=zX0});var mu=T((mW0,gu)=>{var gJ=qX(),g1=$X(),{MAX_LENGTH:mJ,POSIX_REGEX_SOURCE:MX0,REGEX_NON_SPECIAL_CHARS:LX0,REGEX_SPECIAL_CHARS_BACKREF:VX0,REPLACEMENTS:bu}=gJ,UX0=(D,X)=>{if(typeof X.expandRange==="function")return X.expandRange(...D,X);D.sort();let Y=`[${D.join("-")}]`;try{new RegExp(Y)}catch(Z){return D.map((J)=>g1.escapeRegex(J)).join("..")}return Y},o7=(D,X)=>{return`Missing ${D}: "${X}" - use "\\\\${X}" to match literal characters`},qG=(D,X)=>{if(typeof D!=="string")throw TypeError("Expected a string");D=bu[D]||D;let Y={...X},Z=typeof Y.maxLength==="number"?Math.min(mJ,Y.maxLength):mJ,J=D.length;if(J>Z)throw SyntaxError(`Input length: ${J}, exceeds maximum allowed length: ${Z}`);let Q={type:"bos",value:"",output:Y.prepend||""},w=[Q],F=Y.capture?"":"?:",B=g1.isWindows(X),q=gJ.globChars(B),$=gJ.extglobChars(q),{DOT_LITERAL:G,PLUS_LITERAL:W,SLASH_LITERAL:O,ONE_CHAR:H,DOTS_SLASH:M,NO_DOT:U,NO_DOT_SLASH:N,NO_DOTS_SLASH:R,QMARK:z,QMARK_NO_DOT:V,STAR:L,START_ANCHOR:C}=q,y=(u)=>{return`(${F}(?:(?!${C}${u.dot?M:G}).)*?)`},A=Y.dot?"":U,k=Y.dot?z:V,f=Y.bash===!0?y(Y):L;if(Y.capture)f=`(${f})`;if(typeof Y.noext==="boolean")Y.noextglob=Y.noext;let S={input:D,index:-1,start:0,dot:Y.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:w};D=g1.removePrefix(D,S),J=D.length;let v=[],b=[],n=[],h=Q,E,P=()=>S.index===J-1,x=S.peek=(u=1)=>D[S.index+u],_=S.advance=()=>D[++S.index]||"",g=()=>D.slice(S.index+1),m=(u="",w0=0)=>{S.consumed+=u,S.index+=w0},a=(u)=>{S.output+=u.output!=null?u.output:u.value,m(u.value)},d=()=>{let u=1;while(x()==="!"&&(x(2)!=="("||x(3)==="?"))_(),S.start++,u++;if(u%2===0)return!1;return S.negated=!0,S.start++,!0},c=(u)=>{S[u]++,n.push(u)},o=(u)=>{S[u]--,n.pop()},I=(u)=>{if(h.type==="globstar"){let w0=S.braces>0&&(u.type==="comma"||u.type==="brace"),i=u.extglob===!0||v.length&&(u.type==="pipe"||u.type==="paren");if(u.type!=="slash"&&u.type!=="paren"&&!w0&&!i)S.output=S.output.slice(0,-h.output.length),h.type="star",h.value="*",h.output=f,S.output+=h.output}if(v.length&&u.type!=="paren")v[v.length-1].inner+=u.value;if(u.value||u.output)a(u);if(h&&h.type==="text"&&u.type==="text"){h.value+=u.value,h.output=(h.output||"")+u.value;return}u.prev=h,w.push(u),h=u},j=(u,w0)=>{let i={...$[w0],conditions:1,inner:""};i.prev=h,i.parens=S.parens,i.output=S.output;let B0=(Y.capture?"(":"")+i.open;c("parens"),I({type:u,value:w0,output:S.output?"":H}),I({type:"paren",extglob:!0,value:_(),output:B0}),v.push(i)},l=(u)=>{let w0=u.close+(Y.capture?")":""),i;if(u.type==="negate"){let B0=f;if(u.inner&&u.inner.length>1&&u.inner.includes("/"))B0=y(Y);if(B0!==f||P()||/^\)+$/.test(g()))w0=u.close=`)$))${B0}`;if(u.inner.includes("*")&&(i=g())&&/^\.[^\\/.]+$/.test(i)){let A0=qG(i,{...X,fastpaths:!1}).output;w0=u.close=`)${A0})${B0})`}if(u.prev.type==="bos")S.negatedExtglob=!0}I({type:"paren",extglob:!0,value:E,output:w0}),o("parens")};if(Y.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(D)){let u=!1,w0=D.replace(VX0,(i,B0,A0,S0,a0,jD)=>{if(S0==="\\")return u=!0,i;if(S0==="?"){if(B0)return B0+S0+(a0?z.repeat(a0.length):"");if(jD===0)return k+(a0?z.repeat(a0.length):"");return z.repeat(A0.length)}if(S0===".")return G.repeat(A0.length);if(S0==="*"){if(B0)return B0+S0+(a0?f:"");return f}return B0?i:`\\${i}`});if(u===!0)if(Y.unescape===!0)w0=w0.replace(/\\/g,"");else w0=w0.replace(/\\+/g,(i)=>{return i.length%2===0?"\\\\":i?"\\":""});if(w0===D&&Y.contains===!0)return S.output=D,S;return S.output=g1.wrapOutput(w0,S,X),S}while(!P()){if(E=_(),E==="\x00")continue;if(E==="\\"){let i=x();if(i==="/"&&Y.bash!==!0)continue;if(i==="."||i===";")continue;if(!i){E+="\\",I({type:"text",value:E});continue}let B0=/^\\+/.exec(g()),A0=0;if(B0&&B0[0].length>2){if(A0=B0[0].length,S.index+=A0,A0%2!==0)E+="\\"}if(Y.unescape===!0)E=_();else E+=_();if(S.brackets===0){I({type:"text",value:E});continue}}if(S.brackets>0&&(E!=="]"||h.value==="["||h.value==="[^")){if(Y.posix!==!1&&E===":"){let i=h.value.slice(1);if(i.includes("[")){if(h.posix=!0,i.includes(":")){let B0=h.value.lastIndexOf("["),A0=h.value.slice(0,B0),S0=h.value.slice(B0+2),a0=MX0[S0];if(a0){if(h.value=A0+a0,S.backtrack=!0,_(),!Q.output&&w.indexOf(h)===1)Q.output=H;continue}}}}if(E==="["&&x()!==":"||E==="-"&&x()==="]")E=`\\${E}`;if(E==="]"&&(h.value==="["||h.value==="[^"))E=`\\${E}`;if(Y.posix===!0&&E==="!"&&h.value==="[")E="^";h.value+=E,a({value:E});continue}if(S.quotes===1&&E!=='"'){E=g1.escapeRegex(E),h.value+=E,a({value:E});continue}if(E==='"'){if(S.quotes=S.quotes===1?0:1,Y.keepQuotes===!0)I({type:"text",value:E});continue}if(E==="("){c("parens"),I({type:"paren",value:E});continue}if(E===")"){if(S.parens===0&&Y.strictBrackets===!0)throw SyntaxError(o7("opening","("));let i=v[v.length-1];if(i&&S.parens===i.parens+1){l(v.pop());continue}I({type:"paren",value:E,output:S.parens?")":"\\)"}),o("parens");continue}if(E==="["){if(Y.nobracket===!0||!g().includes("]")){if(Y.nobracket!==!0&&Y.strictBrackets===!0)throw SyntaxError(o7("closing","]"));E=`\\${E}`}else c("brackets");I({type:"bracket",value:E});continue}if(E==="]"){if(Y.nobracket===!0||h&&h.type==="bracket"&&h.value.length===1){I({type:"text",value:E,output:`\\${E}`});continue}if(S.brackets===0){if(Y.strictBrackets===!0)throw SyntaxError(o7("opening","["));I({type:"text",value:E,output:`\\${E}`});continue}o("brackets");let i=h.value.slice(1);if(h.posix!==!0&&i[0]==="^"&&!i.includes("/"))E=`/${E}`;if(h.value+=E,a({value:E}),Y.literalBrackets===!1||g1.hasRegexChars(i))continue;let B0=g1.escapeRegex(h.value);if(S.output=S.output.slice(0,-h.value.length),Y.literalBrackets===!0){S.output+=B0,h.value=B0;continue}h.value=`(${F}${B0}|${h.value})`,S.output+=h.value;continue}if(E==="{"&&Y.nobrace!==!0){c("braces");let i={type:"brace",value:E,output:"(",outputIndex:S.output.length,tokensIndex:S.tokens.length};b.push(i),I(i);continue}if(E==="}"){let i=b[b.length-1];if(Y.nobrace===!0||!i){I({type:"text",value:E,output:E});continue}let B0=")";if(i.dots===!0){let A0=w.slice(),S0=[];for(let a0=A0.length-1;a0>=0;a0--){if(w.pop(),A0[a0].type==="brace")break;if(A0[a0].type!=="dots")S0.unshift(A0[a0].value)}B0=UX0(S0,Y),S.backtrack=!0}if(i.comma!==!0&&i.dots!==!0){let A0=S.output.slice(0,i.outputIndex),S0=S.tokens.slice(i.tokensIndex);i.value=i.output="\\{",E=B0="\\}",S.output=A0;for(let a0 of S0)S.output+=a0.output||a0.value}I({type:"brace",value:E,output:B0}),o("braces"),b.pop();continue}if(E==="|"){if(v.length>0)v[v.length-1].conditions++;I({type:"text",value:E});continue}if(E===","){let i=E,B0=b[b.length-1];if(B0&&n[n.length-1]==="braces")B0.comma=!0,i="|";I({type:"comma",value:E,output:i});continue}if(E==="/"){if(h.type==="dot"&&S.index===S.start+1){S.start=S.index+1,S.consumed="",S.output="",w.pop(),h=Q;continue}I({type:"slash",value:E,output:O});continue}if(E==="."){if(S.braces>0&&h.type==="dot"){if(h.value===".")h.output=G;let i=b[b.length-1];h.type="dots",h.output+=E,h.value+=E,i.dots=!0;continue}if(S.braces+S.parens===0&&h.type!=="bos"&&h.type!=="slash"){I({type:"text",value:E,output:G});continue}I({type:"dot",value:E,output:G});continue}if(E==="?"){if(!(h&&h.value==="(")&&Y.noextglob!==!0&&x()==="("&&x(2)!=="?"){j("qmark",E);continue}if(h&&h.type==="paren"){let B0=x(),A0=E;if(B0==="<"&&!g1.supportsLookbehinds())throw Error("Node.js v10 or higher is required for regex lookbehinds");if(h.value==="("&&!/[!=<:]/.test(B0)||B0==="<"&&!/<([!=]|\w+>)/.test(g()))A0=`\\${E}`;I({type:"text",value:E,output:A0});continue}if(Y.dot!==!0&&(h.type==="slash"||h.type==="bos")){I({type:"qmark",value:E,output:V});continue}I({type:"qmark",value:E,output:z});continue}if(E==="!"){if(Y.noextglob!==!0&&x()==="("){if(x(2)!=="?"||!/[!=<:]/.test(x(3))){j("negate",E);continue}}if(Y.nonegate!==!0&&S.index===0){d();continue}}if(E==="+"){if(Y.noextglob!==!0&&x()==="("&&x(2)!=="?"){j("plus",E);continue}if(h&&h.value==="("||Y.regex===!1){I({type:"plus",value:E,output:W});continue}if(h&&(h.type==="bracket"||h.type==="paren"||h.type==="brace")||S.parens>0){I({type:"plus",value:E});continue}I({type:"plus",value:W});continue}if(E==="@"){if(Y.noextglob!==!0&&x()==="("&&x(2)!=="?"){I({type:"at",extglob:!0,value:E,output:""});continue}I({type:"text",value:E});continue}if(E!=="*"){if(E==="$"||E==="^")E=`\\${E}`;let i=LX0.exec(g());if(i)E+=i[0],S.index+=i[0].length;I({type:"text",value:E});continue}if(h&&(h.type==="globstar"||h.star===!0)){h.type="star",h.star=!0,h.value+=E,h.output=f,S.backtrack=!0,S.globstar=!0,m(E);continue}let u=g();if(Y.noextglob!==!0&&/^\([^?]/.test(u)){j("star",E);continue}if(h.type==="star"){if(Y.noglobstar===!0){m(E);continue}let i=h.prev,B0=i.prev,A0=i.type==="slash"||i.type==="bos",S0=B0&&(B0.type==="star"||B0.type==="globstar");if(Y.bash===!0&&(!A0||u[0]&&u[0]!=="/")){I({type:"star",value:E,output:""});continue}let a0=S.braces>0&&(i.type==="comma"||i.type==="brace"),jD=v.length&&(i.type==="pipe"||i.type==="paren");if(!A0&&i.type!=="paren"&&!a0&&!jD){I({type:"star",value:E,output:""});continue}while(u.slice(0,3)==="/**"){let N1=D[S.index+4];if(N1&&N1!=="/")break;u=u.slice(3),m("/**",3)}if(i.type==="bos"&&P()){h.type="globstar",h.value+=E,h.output=y(Y),S.output=h.output,S.globstar=!0,m(E);continue}if(i.type==="slash"&&i.prev.type!=="bos"&&!S0&&P()){S.output=S.output.slice(0,-(i.output+h.output).length),i.output=`(?:${i.output}`,h.type="globstar",h.output=y(Y)+(Y.strictSlashes?")":"|$)"),h.value+=E,S.globstar=!0,S.output+=i.output+h.output,m(E);continue}if(i.type==="slash"&&i.prev.type!=="bos"&&u[0]==="/"){let N1=u[1]!==void 0?"|$":"";S.output=S.output.slice(0,-(i.output+h.output).length),i.output=`(?:${i.output}`,h.type="globstar",h.output=`${y(Y)}${O}|${O}${N1})`,h.value+=E,S.output+=i.output+h.output,S.globstar=!0,m(E+_()),I({type:"slash",value:"/",output:""});continue}if(i.type==="bos"&&u[0]==="/"){h.type="globstar",h.value+=E,h.output=`(?:^|${O}|${y(Y)}${O})`,S.output=h.output,S.globstar=!0,m(E+_()),I({type:"slash",value:"/",output:""});continue}S.output=S.output.slice(0,-h.output.length),h.type="globstar",h.output=y(Y),h.value+=E,S.output+=h.output,S.globstar=!0,m(E);continue}let w0={type:"star",value:E,output:f};if(Y.bash===!0){if(w0.output=".*?",h.type==="bos"||h.type==="slash")w0.output=A+w0.output;I(w0);continue}if(h&&(h.type==="bracket"||h.type==="paren")&&Y.regex===!0){w0.output=E,I(w0);continue}if(S.index===S.start||h.type==="slash"||h.type==="dot"){if(h.type==="dot")S.output+=N,h.output+=N;else if(Y.dot===!0)S.output+=R,h.output+=R;else S.output+=A,h.output+=A;if(x()!=="*")S.output+=H,h.output+=H}I(w0)}while(S.brackets>0){if(Y.strictBrackets===!0)throw SyntaxError(o7("closing","]"));S.output=g1.escapeLast(S.output,"["),o("brackets")}while(S.parens>0){if(Y.strictBrackets===!0)throw SyntaxError(o7("closing",")"));S.output=g1.escapeLast(S.output,"("),o("parens")}while(S.braces>0){if(Y.strictBrackets===!0)throw SyntaxError(o7("closing","}"));S.output=g1.escapeLast(S.output,"{"),o("braces")}if(Y.strictSlashes!==!0&&(h.type==="star"||h.type==="bracket"))I({type:"maybe_slash",value:"",output:`${O}?`});if(S.backtrack===!0){S.output="";for(let u of S.tokens)if(S.output+=u.output!=null?u.output:u.value,u.suffix)S.output+=u.suffix}return S};qG.fastpaths=(D,X)=>{let Y={...X},Z=typeof Y.maxLength==="number"?Math.min(mJ,Y.maxLength):mJ,J=D.length;if(J>Z)throw SyntaxError(`Input length: ${J}, exceeds maximum allowed length: ${Z}`);D=bu[D]||D;let Q=g1.isWindows(X),{DOT_LITERAL:w,SLASH_LITERAL:F,ONE_CHAR:B,DOTS_SLASH:q,NO_DOT:$,NO_DOTS:G,NO_DOTS_SLASH:W,STAR:O,START_ANCHOR:H}=gJ.globChars(Q),M=Y.dot?G:$,U=Y.dot?W:$,N=Y.capture?"":"?:",R={negated:!1,prefix:""},z=Y.bash===!0?".*?":O;if(Y.capture)z=`(${z})`;let V=(A)=>{if(A.noglobstar===!0)return z;return`(${N}(?:(?!${H}${A.dot?q:w}).)*?)`},L=(A)=>{switch(A){case"*":return`${M}${B}${z}`;case".*":return`${w}${B}${z}`;case"*.*":return`${M}${z}${w}${B}${z}`;case"*/*":return`${M}${z}${F}${B}${U}${z}`;case"**":return M+V(Y);case"**/*":return`(?:${M}${V(Y)}${F})?${U}${B}${z}`;case"**/*.*":return`(?:${M}${V(Y)}${F})?${U}${z}${w}${B}${z}`;case"**/.*":return`(?:${M}${V(Y)}${F})?${w}${B}${z}`;default:{let k=/^(.*?)\.(\w+)$/.exec(A);if(!k)return;let f=L(k[1]);if(!f)return;return f+w+k[2]}}},C=g1.removePrefix(D,R),y=L(C);if(y&&Y.strictSlashes!==!0)y+=`${F}?`;return y};gu.exports=qG});var cu=T((dW0,du)=>{var NX0=require("path"),RX0=vu(),$G=mu(),GG=$X(),AX0=qX(),EX0=(D)=>D&&typeof D==="object"&&!Array.isArray(D),SD=(D,X,Y=!1)=>{if(Array.isArray(D)){let $=D.map((W)=>SD(W,X,Y));return(W)=>{for(let O of $){let H=O(W);if(H)return H}return!1}}let Z=EX0(D)&&D.tokens&&D.input;if(D===""||typeof D!=="string"&&!Z)throw TypeError("Expected pattern to be a non-empty string");let J=X||{},Q=GG.isWindows(X),w=Z?SD.compileRe(D,X):SD.makeRe(D,X,!1,!0),F=w.state;delete w.state;let B=()=>!1;if(J.ignore){let $={...X,ignore:null,onMatch:null,onResult:null};B=SD(J.ignore,$,Y)}let q=($,G=!1)=>{let{isMatch:W,match:O,output:H}=SD.test($,w,X,{glob:D,posix:Q}),M={glob:D,state:F,regex:w,posix:Q,input:$,output:H,match:O,isMatch:W};if(typeof J.onResult==="function")J.onResult(M);if(W===!1)return M.isMatch=!1,G?M:!1;if(B($)){if(typeof J.onIgnore==="function")J.onIgnore(M);return M.isMatch=!1,G?M:!1}if(typeof J.onMatch==="function")J.onMatch(M);return G?M:!0};if(Y)q.state=F;return q};SD.test=(D,X,Y,{glob:Z,posix:J}={})=>{if(typeof D!=="string")throw TypeError("Expected input to be a string");if(D==="")return{isMatch:!1,output:""};let Q=Y||{},w=Q.format||(J?GG.toPosixSlashes:null),F=D===Z,B=F&&w?w(D):D;if(F===!1)B=w?w(D):D,F=B===Z;if(F===!1||Q.capture===!0)if(Q.matchBase===!0||Q.basename===!0)F=SD.matchBase(D,X,Y,J);else F=X.exec(B);return{isMatch:Boolean(F),match:F,output:B}};SD.matchBase=(D,X,Y,Z=GG.isWindows(Y))=>{return(X instanceof RegExp?X:SD.makeRe(X,Y)).test(NX0.basename(D))};SD.isMatch=(D,X,Y)=>SD(X,Y)(D);SD.parse=(D,X)=>{if(Array.isArray(D))return D.map((Y)=>SD.parse(Y,X));return $G(D,{...X,fastpaths:!1})};SD.scan=(D,X)=>RX0(D,X);SD.compileRe=(D,X,Y=!1,Z=!1)=>{if(Y===!0)return D.output;let J=X||{},Q=J.contains?"":"^",w=J.contains?"":"$",F=`${Q}(?:${D.output})${w}`;if(D&&D.negated===!0)F=`^(?!${F}).*$`;let B=SD.toRegex(F,X);if(Z===!0)B.state=D;return B};SD.makeRe=(D,X={},Y=!1,Z=!1)=>{if(!D||typeof D!=="string")throw TypeError("Expected a non-empty string");let J={negated:!1,fastpaths:!0};if(X.fastpaths!==!1&&(D[0]==="."||D[0]==="*"))J.output=$G.fastpaths(D,X);if(!J.output)J=$G(D,X);return SD.compileRe(J,X,Y,Z)};SD.toRegex=(D,X)=>{try{let Y=X||{};return new RegExp(D,Y.flags||(Y.nocase?"i":""))}catch(Y){if(X&&X.debug===!0)throw Y;return/$^/}};SD.constants=AX0;du.exports=SD});var nu=T((cW0,lu)=>{lu.exports=cu()});var su=T((lW0,ru)=>{var pu=require("util"),au=Iu(),l8=nu(),OG=$X(),iu=(D)=>D===""||D==="./",tu=(D)=>{let X=D.indexOf("{");return X>-1&&D.indexOf("}",X)>-1},QD=(D,X,Y)=>{X=[].concat(X),D=[].concat(D);let Z=new Set,J=new Set,Q=new Set,w=0,F=($)=>{if(Q.add($.output),Y&&Y.onResult)Y.onResult($)};for(let $=0;$<X.length;$++){let G=l8(String(X[$]),{...Y,onResult:F},!0),W=G.state.negated||G.state.negatedExtglob;if(W)w++;for(let O of D){let H=G(O,!0);if(!(W?!H.isMatch:H.isMatch))continue;if(W)Z.add(H.output);else Z.delete(H.output),J.add(H.output)}}let q=(w===X.length?[...Q]:[...J]).filter(($)=>!Z.has($));if(Y&&q.length===0){if(Y.failglob===!0)throw Error(`No matches found for "${X.join(", ")}"`);if(Y.nonull===!0||Y.nullglob===!0)return Y.unescape?X.map(($)=>$.replace(/\\/g,"")):X}return q};QD.match=QD;QD.matcher=(D,X)=>l8(D,X);QD.isMatch=(D,X,Y)=>l8(X,Y)(D);QD.any=QD.isMatch;QD.not=(D,X,Y={})=>{X=[].concat(X).map(String);let Z=new Set,J=[],w=new Set(QD(D,X,{...Y,onResult:(F)=>{if(Y.onResult)Y.onResult(F);J.push(F.output)}}));for(let F of J)if(!w.has(F))Z.add(F);return[...Z]};QD.contains=(D,X,Y)=>{if(typeof D!=="string")throw TypeError(`Expected a string: "${pu.inspect(D)}"`);if(Array.isArray(X))return X.some((Z)=>QD.contains(D,Z,Y));if(typeof X==="string"){if(iu(D)||iu(X))return!1;if(D.includes(X)||D.startsWith("./")&&D.slice(2).includes(X))return!0}return QD.isMatch(D,X,{...Y,contains:!0})};QD.matchKeys=(D,X,Y)=>{if(!OG.isObject(D))throw TypeError("Expected the first argument to be an object");let Z=QD(Object.keys(D),X,Y),J={};for(let Q of Z)J[Q]=D[Q];return J};QD.some=(D,X,Y)=>{let Z=[].concat(D);for(let J of[].concat(X)){let Q=l8(String(J),Y);if(Z.some((w)=>Q(w)))return!0}return!1};QD.every=(D,X,Y)=>{let Z=[].concat(D);for(let J of[].concat(X)){let Q=l8(String(J),Y);if(!Z.every((w)=>Q(w)))return!1}return!0};QD.all=(D,X,Y)=>{if(typeof D!=="string")throw TypeError(`Expected a string: "${pu.inspect(D)}"`);return[].concat(X).every((Z)=>l8(Z,Y)(D))};QD.capture=(D,X,Y)=>{let Z=OG.isWindows(Y),Q=l8.makeRe(String(D),{...Y,capture:!0}).exec(Z?OG.toPosixSlashes(X):X);if(Q)return Q.slice(1).map((w)=>w===void 0?"":w)};QD.makeRe=(...D)=>l8.makeRe(...D);QD.scan=(...D)=>l8.scan(...D);QD.parse=(D,X)=>{let Y=[];for(let Z of[].concat(D||[]))for(let J of au(String(Z),X))Y.push(l8.parse(J,X));return Y};QD.braces=(D,X)=>{if(typeof D!=="string")throw TypeError("Expected a string");if(X&&X.nobrace===!0||!tu(D))return[D];return au(D,X)};QD.braceExpand=(D,X)=>{if(typeof D!=="string")throw TypeError("Expected a string");return QD.braces(D,{...X,expand:!0})};QD.hasBraces=tu;ru.exports=QD});var zY0={};D4(zY0,{zipBundle:()=>eX0,uploadBundle:()=>pX0,updateOrganization:()=>BY0,updateAppSetting:()=>JY0,saveEncryptionKey:()=>XY0,requestBuild:()=>WY0,parseSecurityPolicyError:()=>J5,login:()=>aX0,listOrganizations:()=>wY0,listBundles:()=>GY0,isSecurityPolicyError:()=>q$,getStats:()=>HY0,getSecurityPolicyMessage:()=>vf,getCurrentBundle:()=>ZY0,getCapacitorConfig:()=>KY0,getAccountId:()=>QY0,generateEncryptionKeys:()=>DY0,formatApiErrorForCli:()=>XJ,encryptBundle:()=>sX0,doctor:()=>tX0,deleteOrganization:()=>qY0,deleteLegacyEncryptionKey:()=>YY0,decryptBundle:()=>oX0,createSupabaseClient:()=>K0,checkBundleCompatibility:()=>rX0,addOrganization:()=>FY0,addChannel:()=>OY0,addApp:()=>$Y0,SECURITY_POLICY_MESSAGES:()=>s3,SECURITY_POLICY_ERRORS:()=>_7,CapgoSDK:()=>GD});module.exports=yh(zY0);var sD=R0(XD(),1),R5=require("node:process"),N6=R0(require("node:readline")),rJ=R0(require("node:readline")),IG=require("node:stream"),X4=R0(pJ(),1);function bh({onlyFirst:D=!1}={}){let X=["[\\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(X,D?void 0:"g")}var gh=bh();function PG(D){if(typeof D!="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(gh,"")}function SG(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}var xG={exports:{}};(function(D){var X={};D.exports=X,X.eastAsianWidth=function(Z){var J=Z.charCodeAt(0),Q=Z.length==2?Z.charCodeAt(1):0,w=J;return 55296<=J&&J<=56319&&56320<=Q&&Q<=57343&&(J&=1023,Q&=1023,w=J<<10|Q,w+=65536),w==12288||65281<=w&&w<=65376||65504<=w&&w<=65510?"F":w==8361||65377<=w&&w<=65470||65474<=w&&w<=65479||65482<=w&&w<=65487||65490<=w&&w<=65495||65498<=w&&w<=65500||65512<=w&&w<=65518?"H":4352<=w&&w<=4447||4515<=w&&w<=4519||4602<=w&&w<=4607||9001<=w&&w<=9002||11904<=w&&w<=11929||11931<=w&&w<=12019||12032<=w&&w<=12245||12272<=w&&w<=12283||12289<=w&&w<=12350||12353<=w&&w<=12438||12441<=w&&w<=12543||12549<=w&&w<=12589||12593<=w&&w<=12686||12688<=w&&w<=12730||12736<=w&&w<=12771||12784<=w&&w<=12830||12832<=w&&w<=12871||12880<=w&&w<=13054||13056<=w&&w<=19903||19968<=w&&w<=42124||42128<=w&&w<=42182||43360<=w&&w<=43388||44032<=w&&w<=55203||55216<=w&&w<=55238||55243<=w&&w<=55291||63744<=w&&w<=64255||65040<=w&&w<=65049||65072<=w&&w<=65106||65108<=w&&w<=65126||65128<=w&&w<=65131||110592<=w&&w<=110593||127488<=w&&w<=127490||127504<=w&&w<=127546||127552<=w&&w<=127560||127568<=w&&w<=127569||131072<=w&&w<=194367||177984<=w&&w<=196605||196608<=w&&w<=262141?"W":32<=w&&w<=126||162<=w&&w<=163||165<=w&&w<=166||w==172||w==175||10214<=w&&w<=10221||10629<=w&&w<=10630?"Na":w==161||w==164||167<=w&&w<=168||w==170||173<=w&&w<=174||176<=w&&w<=180||182<=w&&w<=186||188<=w&&w<=191||w==198||w==208||215<=w&&w<=216||222<=w&&w<=225||w==230||232<=w&&w<=234||236<=w&&w<=237||w==240||242<=w&&w<=243||247<=w&&w<=250||w==252||w==254||w==257||w==273||w==275||w==283||294<=w&&w<=295||w==299||305<=w&&w<=307||w==312||319<=w&&w<=322||w==324||328<=w&&w<=331||w==333||338<=w&&w<=339||358<=w&&w<=359||w==363||w==462||w==464||w==466||w==468||w==470||w==472||w==474||w==476||w==593||w==609||w==708||w==711||713<=w&&w<=715||w==717||w==720||728<=w&&w<=731||w==733||w==735||768<=w&&w<=879||913<=w&&w<=929||931<=w&&w<=937||945<=w&&w<=961||963<=w&&w<=969||w==1025||1040<=w&&w<=1103||w==1105||w==8208||8211<=w&&w<=8214||8216<=w&&w<=8217||8220<=w&&w<=8221||8224<=w&&w<=8226||8228<=w&&w<=8231||w==8240||8242<=w&&w<=8243||w==8245||w==8251||w==8254||w==8308||w==8319||8321<=w&&w<=8324||w==8364||w==8451||w==8453||w==8457||w==8467||w==8470||8481<=w&&w<=8482||w==8486||w==8491||8531<=w&&w<=8532||8539<=w&&w<=8542||8544<=w&&w<=8555||8560<=w&&w<=8569||w==8585||8592<=w&&w<=8601||8632<=w&&w<=8633||w==8658||w==8660||w==8679||w==8704||8706<=w&&w<=8707||8711<=w&&w<=8712||w==8715||w==8719||w==8721||w==8725||w==8730||8733<=w&&w<=8736||w==8739||w==8741||8743<=w&&w<=8748||w==8750||8756<=w&&w<=8759||8764<=w&&w<=8765||w==8776||w==8780||w==8786||8800<=w&&w<=8801||8804<=w&&w<=8807||8810<=w&&w<=8811||8814<=w&&w<=8815||8834<=w&&w<=8835||8838<=w&&w<=8839||w==8853||w==8857||w==8869||w==8895||w==8978||9312<=w&&w<=9449||9451<=w&&w<=9547||9552<=w&&w<=9587||9600<=w&&w<=9615||9618<=w&&w<=9621||9632<=w&&w<=9633||9635<=w&&w<=9641||9650<=w&&w<=9651||9654<=w&&w<=9655||9660<=w&&w<=9661||9664<=w&&w<=9665||9670<=w&&w<=9672||w==9675||9678<=w&&w<=9681||9698<=w&&w<=9701||w==9711||9733<=w&&w<=9734||w==9737||9742<=w&&w<=9743||9748<=w&&w<=9749||w==9756||w==9758||w==9792||w==9794||9824<=w&&w<=9825||9827<=w&&w<=9829||9831<=w&&w<=9834||9836<=w&&w<=9837||w==9839||9886<=w&&w<=9887||9918<=w&&w<=9919||9924<=w&&w<=9933||9935<=w&&w<=9953||w==9955||9960<=w&&w<=9983||w==10045||w==10071||10102<=w&&w<=10111||11093<=w&&w<=11097||12872<=w&&w<=12879||57344<=w&&w<=63743||65024<=w&&w<=65039||w==65533||127232<=w&&w<=127242||127248<=w&&w<=127277||127280<=w&&w<=127337||127344<=w&&w<=127386||917760<=w&&w<=917999||983040<=w&&w<=1048573||1048576<=w&&w<=1114109?"A":"N"},X.characterLength=function(Z){var J=this.eastAsianWidth(Z);return J=="F"||J=="W"||J=="A"?2:1};function Y(Z){return Z.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}X.length=function(Z){for(var J=Y(Z),Q=0,w=0;w<J.length;w++)Q=Q+this.characterLength(J[w]);return Q},X.slice=function(Z,J,Q){textLen=X.length(Z),J=J||0,Q=Q||1,J<0&&(J=textLen+J),Q<0&&(Q=textLen+Q);for(var w="",F=0,B=Y(Z),q=0;q<B.length;q++){var $=B[q],G=X.length($);if(F>=J-(G==2?1:0))if(F+G<=Q)w+=$;else break;F+=G}return w}})(xG);var mh=xG.exports,dh=SG(mh),ch=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},lh=SG(ch);function Y4(D,X={}){if(typeof D!="string"||D.length===0||(X={ambiguousIsNarrow:!0,...X},D=PG(D),D.length===0))return 0;D=D.replace(lh()," ");let Y=X.ambiguousIsNarrow?1:2,Z=0;for(let J of D){let Q=J.codePointAt(0);if(Q<=31||Q>=127&&Q<=159||Q>=768&&Q<=879)continue;switch(dh.eastAsianWidth(J)){case"F":case"W":Z+=2;break;case"A":Z+=Y;break;default:Z+=1}}return Z}var aJ=10,UG=(D=0)=>(X)=>`\x1B[${X+D}m`,NG=(D=0)=>(X)=>`\x1B[${38+D};5;${X}m`,RG=(D=0)=>(X,Y,Z)=>`\x1B[${38+D};2;${X};${Y};${Z}m`,wD={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(wD.modifier);var nh=Object.keys(wD.color),ih=Object.keys(wD.bgColor);[...nh,...ih];function ph(){let D=new Map;for(let[X,Y]of Object.entries(wD)){for(let[Z,J]of Object.entries(Y))wD[Z]={open:`\x1B[${J[0]}m`,close:`\x1B[${J[1]}m`},Y[Z]=wD[Z],D.set(J[0],J[1]);Object.defineProperty(wD,X,{value:Y,enumerable:!1})}return Object.defineProperty(wD,"codes",{value:D,enumerable:!1}),wD.color.close="\x1B[39m",wD.bgColor.close="\x1B[49m",wD.color.ansi=UG(),wD.color.ansi256=NG(),wD.color.ansi16m=RG(),wD.bgColor.ansi=UG(aJ),wD.bgColor.ansi256=NG(aJ),wD.bgColor.ansi16m=RG(aJ),Object.defineProperties(wD,{rgbToAnsi256:{value:(X,Y,Z)=>X===Y&&Y===Z?X<8?16:X>248?231:Math.round((X-8)/247*24)+232:16+36*Math.round(X/255*5)+6*Math.round(Y/255*5)+Math.round(Z/255*5),enumerable:!1},hexToRgb:{value:(X)=>{let Y=/[a-f\d]{6}|[a-f\d]{3}/i.exec(X.toString(16));if(!Y)return[0,0,0];let[Z]=Y;Z.length===3&&(Z=[...Z].map((Q)=>Q+Q).join(""));let J=Number.parseInt(Z,16);return[J>>16&255,J>>8&255,J&255]},enumerable:!1},hexToAnsi256:{value:(X)=>wD.rgbToAnsi256(...wD.hexToRgb(X)),enumerable:!1},ansi256ToAnsi:{value:(X)=>{if(X<8)return 30+X;if(X<16)return 90+(X-8);let Y,Z,J;if(X>=232)Y=((X-232)*10+8)/255,Z=Y,J=Y;else{X-=16;let F=X%36;Y=Math.floor(X/36)/5,Z=Math.floor(F/6)/5,J=F%6/5}let Q=Math.max(Y,Z,J)*2;if(Q===0)return 30;let w=30+(Math.round(J)<<2|Math.round(Z)<<1|Math.round(Y));return Q===2&&(w+=60),w},enumerable:!1},rgbToAnsi:{value:(X,Y,Z)=>wD.ansi256ToAnsi(wD.rgbToAnsi256(X,Y,Z)),enumerable:!1},hexToAnsi:{value:(X)=>wD.ansi256ToAnsi(wD.hexToAnsi256(X)),enumerable:!1}}),wD}var ah=ph(),VX=new Set(["\x1B","›"]),th=39,oJ="\x07",fG="[",rh="]",yG="m",eJ=`${rh}8;;`,AG=(D)=>`${VX.values().next().value}${fG}${D}${yG}`,EG=(D)=>`${VX.values().next().value}${eJ}${D}${oJ}`,sh=(D)=>D.split(" ").map((X)=>Y4(X)),tJ=(D,X,Y)=>{let Z=[...X],J=!1,Q=!1,w=Y4(PG(D[D.length-1]));for(let[F,B]of Z.entries()){let q=Y4(B);if(w+q<=Y?D[D.length-1]+=B:(D.push(B),w=0),VX.has(B)&&(J=!0,Q=Z.slice(F+1).join("").startsWith(eJ)),J){Q?B===oJ&&(J=!1,Q=!1):B===yG&&(J=!1);continue}w+=q,w===Y&&F<Z.length-1&&(D.push(""),w=0)}!w&&D[D.length-1].length>0&&D.length>1&&(D[D.length-2]+=D.pop())},oh=(D)=>{let X=D.split(" "),Y=X.length;for(;Y>0&&!(Y4(X[Y-1])>0);)Y--;return Y===X.length?D:X.slice(0,Y).join(" ")+X.slice(Y).join("")},eh=(D,X,Y={})=>{if(Y.trim!==!1&&D.trim()==="")return"";let Z="",J,Q,w=sh(D),F=[""];for(let[q,$]of D.split(" ").entries()){Y.trim!==!1&&(F[F.length-1]=F[F.length-1].trimStart());let G=Y4(F[F.length-1]);if(q!==0&&(G>=X&&(Y.wordWrap===!1||Y.trim===!1)&&(F.push(""),G=0),(G>0||Y.trim===!1)&&(F[F.length-1]+=" ",G++)),Y.hard&&w[q]>X){let W=X-G,O=1+Math.floor((w[q]-W-1)/X);Math.floor((w[q]-1)/X)<O&&F.push(""),tJ(F,$,X);continue}if(G+w[q]>X&&G>0&&w[q]>0){if(Y.wordWrap===!1&&G<X){tJ(F,$,X);continue}F.push("")}if(G+w[q]>X&&Y.wordWrap===!1){tJ(F,$,X);continue}F[F.length-1]+=$}Y.trim!==!1&&(F=F.map((q)=>oh(q)));let B=[...F.join(`
259
259
  `)];for(let[q,$]of B.entries()){if(Z+=$,VX.has($)){let{groups:W}=new RegExp(`(?:\\${fG}(?<code>\\d+)m|\\${eJ}(?<uri>.*)${oJ})`).exec(B.slice(q).join(""))||{groups:{}};if(W.code!==void 0){let O=Number.parseFloat(W.code);J=O===th?void 0:O}else W.uri!==void 0&&(Q=W.uri.length===0?void 0:W.uri)}let G=ah.codes.get(Number(J));B[q+1]===`
260
260
  `?(Q&&(Z+=EG("")),J&&G&&(Z+=AG(G))):$===`
261
261
  `&&(J&&G&&(Z+=AG(J)),Q&&(Z+=EG(Q)))}return Z};function CG(D,X,Y){return String(D).normalize().replace(/\r\n/g,`
@@ -311,8 +311,8 @@ ${t.default.gray(B9)} ${D}
311
311
  `)}}var Py=require("node:child_process"),V0=require("node:fs"),$J=require("node:os"),W0=R0(require("node:path")),m8=require("node:process"),e6=R0(AX(),1);var Q1=require("fs"),Q4=(D=".",X="unknown")=>{let Y=`${D}/bun.lockb`,Z=`${D}/bun.lock`,J=`${D}/pnpm-lock.yaml`,Q=`${D}/shrinkwrap.yaml`,w=`${D}/yarn.lock`,F=`${D}/package-lock.json`,B=`${D}/npm-shrinkwrap.json`;if(Q1.existsSync(Y)||Q1.existsSync(Z))return"bun";if(Q1.existsSync(J)||Q1.existsSync(Q))return"pnpm";if(Q1.existsSync(w))return"yarn";if(Q1.existsSync(F)||Q1.existsSync(B))return"npm";return X},EX=(D=Q4(),X=!1)=>{switch(D){case"bun":return X?"bun install":"install";case"pnpm":return X?"pnpm install":"install";case"yarn":return X?"yarn install":"install";case"npm":return X?"npm install":"install";case"unknown":return X?"unknown unknown":"unknown";default:return X?"npm install":"install"}},bG=(D=".",X="npx")=>{let Y=`${D}/bun.lockb`,Z=`${D}/bun.lock`,J=`${D}/pnpm-lock.yaml`,Q=`${D}/shrinkwrap.yaml`,w=`${D}/yarn.lock`,F=`${D}/package-lock.json`,B=`${D}/npm-shrinkwrap.json`;if(Q1.existsSync(Y)||Q1.existsSync(Z))return"bunx";if(Q1.existsSync(J)||Q1.existsSync(Q))return"pnpm exec";if(Q1.existsSync(w))return"yarn dlx";if(Q1.existsSync(F)||Q1.existsSync(B))return"npx";return X};function CX(D,X){if(isNaN(D)||isNaN(X))throw Error("Cannot compare against non-numbers");return D===X?0:D<X?-1:1}function dG(D=[],X=[]){if(D.length&&!X.length)return-1;if(!D.length&&X.length)return 1;return 0}function OQ(D=[],X=[]){let Y=Math.max(D.length,X.length);for(let Z=0;Z<Y;Z++){let J=D[Z],Q=X[Z];if(J===void 0&&Q===void 0)return 0;if(Q===void 0)return 1;if(J===void 0)return-1;if(typeof J==="string"&&typeof Q==="number")return 1;if(typeof J==="number"&&typeof Q==="string")return-1;if(J<Q)return-1;if(J>Q)return 1}return 0}var A5="0|[1-9]\\d*",R_="\\d*[a-zA-Z-][a-zA-Z0-9-]*",A_=`(?<major>${A5})\\.(?<minor>${A5})\\.(?<patch>${A5})`,gG=`(?:${A5}|${R_})`,cG=`(?:-(?<prerelease>${gG}(?:\\.${gG})*))`,mG="[0-9A-Za-z-]+",lG=`(?:\\+(?<buildmetadata>${mG}(?:\\.${mG})*))`,nG=`v?${A_}${cG}?${lG}?`,iG=new RegExp(`^${nG}$`),pG="(?:<|>)?=?",E_="x|X|\\*",GQ=`${A5}|${E_}`,jX=`[v=\\s]*(?<major>${GQ})(?:\\.(?<minor>${GQ})(?:\\.(?<patch>${GQ})${cG}?${lG}?)?)?`,aG=new RegExp(`^(?<operator>~>?|\\^|${pG})\\s*${jX}$`),tG=new RegExp(`^(?<operator>${pG})\\s*(${nG})$|^$`);function WQ(D){return typeof D==="number"&&!Number.isNaN(D)&&(!Number.isFinite(D)||0<=D&&D<=Number.MAX_SAFE_INTEGER)}var HQ=256;var C_=new RegExp(`^${A5}$`);function w1(D){return D.split(".").filter(Boolean).map((X)=>{if(C_.test(X)){let Y=Number(X);if(WQ(Y))return Y}return X})}function J8(D){return D.split(".").filter(Boolean)}function E6(D,X){let Y=Number(D);if(!WQ(Y))throw TypeError(X);return Y}function n8(D){return Number.isNaN(D.major)&&Number.isNaN(D.minor)&&Number.isNaN(D.patch)&&(D.prerelease===void 0||D.prerelease.length===0)&&(D.build===void 0||D.build.length===0)}function F1(D,X){if(D===X)return 0;return CX(D.major,X.major)||CX(D.minor,X.minor)||CX(D.patch,X.patch)||dG(D.prerelease,X.prerelease)||OQ(D.prerelease,X.prerelease)}function KQ(D){return D.toFixed(0)}function Q8(D){let X=KQ(D.major),Y=KQ(D.minor),Z=KQ(D.patch),J=D.prerelease?.join(".")??"",Q=D.build?.join(".")??"";return[[`${X}.${Y}.${Z}`,J].filter((B)=>B).join("-"),Q].filter((B)=>B).join("+")}function j_(D,X){if(n8(X))return!0;let Y=F1(D,X);switch(X.operator){case"=":case void 0:return Y===0;case"!=":return Y!==0;case">":return Y>0;case"<":return Y<0;case">=":return Y>=0;case"<=":return Y<=0}}function TX(D,X){for(let Y of X)if(!j_(D,Y))return!1;if(D.prerelease&&D.prerelease.length>0){for(let Y of X){if(n8(Y))continue;let{major:Z,minor:J,patch:Q,prerelease:w}=Y;if(w&&w.length>0){if(D.major===Z&&D.minor===J&&D.patch===Q)return!0}}return!1}return!0}function w4(D,X){return X.some((Y)=>TX(D,Y))}function T_(D=[]){let X=[...D],Y=X.length;while(Y>=0){let Z=X[Y];if(typeof Z==="number"){X[Y]=Z+1;break}Y-=1}if(Y===-1)X.push(0);return X}function F4(D=[],X){let Y=T_(D);if(!X)return Y;let Z=w1(X);if(Z.every((J)=>typeof J==="string")){if(Z.every((J,Q)=>J===Y[Q])&&typeof Y[Z.length]==="number")return Y;Z=[...Z,0]}return Z}function B4(D,X,Y={}){let Z=Y.build!==void 0?J8(Y.build):D.build??[];switch(X){case"premajor":return{major:D.major+1,minor:0,patch:0,prerelease:F4(D.prerelease,Y.prerelease),build:Z};case"preminor":return{major:D.major,minor:D.minor+1,patch:0,prerelease:F4(D.prerelease,Y.prerelease),build:Z};case"prepatch":return{major:D.major,minor:D.minor,patch:D.patch+1,prerelease:F4(D.prerelease,Y.prerelease),build:Z};case"prerelease":{let Q=(D.prerelease??[]).length===0?D.patch+1:D.patch;return{major:D.major,minor:D.minor,patch:Q,prerelease:F4(D.prerelease,Y.prerelease),build:Z}}case"major":return{major:(D.prerelease??[]).length===0||D.minor!==0||D.patch!==0?D.major+1:D.major,minor:0,patch:0,prerelease:[],build:Z};case"minor":{let Q=(D.prerelease??[]).length===0||D.patch!==0?D.minor+1:D.minor;return{major:D.major,minor:Q,patch:0,prerelease:[],build:Z}}case"patch":{let Q=(D.prerelease??[]).length===0?D.patch+1:D.patch;return{major:D.major,minor:D.minor,patch:Q,prerelease:[],build:Z}}case"pre":return{major:D.major,minor:D.minor,patch:D.patch,prerelease:F4(D.prerelease,Y.prerelease),build:Z};default:throw TypeError(`Cannot increment version: invalid argument ${X}`)}}var IX={major:Number.NaN,minor:Number.NaN,patch:Number.NaN,prerelease:[],build:[]},E5={operator:void 0,...IX};function zQ(D,X){return F1(D,X)>0}function q9(D,X){return F1(D,X)<0}function I_(D){let Y=D.match(tG)?.groups;if(!Y)return null;let{operator:Z,prerelease:J,buildmetadata:Q}=Y,w=Y.major?{major:E6(Y.major,`Cannot parse comparator ${D}: invalid major version`),minor:E6(Y.minor,`Cannot parse comparator ${D}: invalid minor version`),patch:E6(Y.patch,`Cannot parse comparator ${D}: invalid patch version`),prerelease:J?w1(J):[],build:Q?J8(Q):[]}:IX;return{operator:Z||void 0,...w}}function t0(D){return!D||D.toLowerCase()==="x"||D==="*"}function P_(D){if(t0(D.major))return;if(t0(D.minor))return{operator:">=",major:+D.major,minor:0,patch:0,prerelease:[],build:[]};if(t0(D.patch))return{operator:">=",major:+D.major,minor:+D.minor,patch:0,prerelease:[],build:[]};return{operator:">=",major:+D.major,minor:+D.minor,patch:+D.patch,prerelease:D.prerelease?w1(D.prerelease):[],build:[]}}function S_(D){if(t0(D.major))return;if(t0(D.minor))return{operator:"<",major:+D.major+1,minor:0,patch:0,prerelease:[],build:[]};if(t0(D.patch))return{operator:"<",major:+D.major,minor:+D.minor+1,patch:0,prerelease:[],build:[]};if(D.prerelease)return{operator:"<=",major:+D.major,minor:+D.minor,patch:+D.patch,prerelease:w1(D.prerelease),build:[]};return{operator:"<=",major:+D.major,minor:+D.minor,patch:+D.patch,prerelease:[],build:[]}}function x_(D){let X=D.match(new RegExp(`^${jX}`)),Y=X?.groups;if(!Y)return null;let Z=X[0].length,J=D.slice(Z).match(/^\s+-\s+/);if(!J)return null;let Q=J[0].length,F=D.slice(Z+Q).match(new RegExp(`^${jX}\\s*$`))?.groups;if(!F)return null;let B=P_(Y),q=S_(F);return[B,q].filter(Boolean)}function f_(D){let X=t0(D.major),Y=t0(D.minor),Z=t0(D.patch),J=+D.major,Q=+D.minor,w=+D.patch;if(X)return[E5];if(Y)return[{operator:">=",major:J,minor:0,patch:0},{operator:"<",major:J+1,minor:0,patch:0}];if(Z){if(J===0)return[{operator:">=",major:J,minor:Q,patch:0},{operator:"<",major:J,minor:Q+1,patch:0}];return[{operator:">=",major:J,minor:Q,patch:0},{operator:"<",major:J+1,minor:0,patch:0}]}let F=w1(D.prerelease??"");if(J===0){if(Q===0)return[{operator:">=",major:J,minor:Q,patch:w,prerelease:F},{operator:"<",major:J,minor:Q,patch:w+1}];return[{operator:">=",major:J,minor:Q,patch:w,prerelease:F},{operator:"<",major:J,minor:Q+1,patch:0}]}return[{operator:">=",major:J,minor:Q,patch:w,prerelease:F},{operator:"<",major:J+1,minor:0,patch:0}]}function y_(D){let X=t0(D.major),Y=t0(D.minor),Z=t0(D.patch),J=+D.major,Q=+D.minor,w=+D.patch;if(X)return[E5];if(Y)return[{operator:">=",major:J,minor:0,patch:0},{operator:"<",major:J+1,minor:0,patch:0}];if(Z)return[{operator:">=",major:J,minor:Q,patch:0},{operator:"<",major:J,minor:Q+1,patch:0}];let F=w1(D.prerelease??"");return[{operator:">=",major:J,minor:Q,patch:w,prerelease:F},{operator:"<",major:J,minor:Q+1,patch:0}]}function k_(D){let X=t0(D.major),Y=t0(D.minor),Z=t0(D.patch),J=+D.major,Q=+D.minor,w=+D.patch;if(X)return[{operator:"<",major:0,minor:0,patch:0}];if(Y){if(Z)return[{operator:"<",major:J,minor:0,patch:0}];return[{operator:"<",major:J,minor:0,patch:0}]}if(Z)return[{operator:"<",major:J,minor:Q,patch:0}];let F=w1(D.prerelease??""),B=J8(D.build??"");return[{operator:"<",major:J,minor:Q,patch:w,prerelease:F,build:B}]}function u_(D){let X=t0(D.minor),Y=t0(D.patch),Z=+D.major,J=+D.minor,Q=+D.patch;if(X){if(Y)return[{operator:"<",major:Z+1,minor:0,patch:0}];return[{operator:"<",major:Z,minor:J+1,patch:0}]}if(Y)return[{operator:"<",major:Z,minor:J+1,patch:0}];let w=w1(D.prerelease??""),F=J8(D.build??"");return[{operator:"<=",major:Z,minor:J,patch:Q,prerelease:w,build:F}]}function h_(D){let X=t0(D.major),Y=t0(D.minor),Z=t0(D.patch),J=+D.major,Q=+D.minor,w=+D.patch;if(X)return[{operator:"<",major:0,minor:0,patch:0}];if(Y)return[{operator:">=",major:J+1,minor:0,patch:0}];if(Z)return[{operator:">=",major:J,minor:Q+1,patch:0}];let F=w1(D.prerelease??""),B=J8(D.build??"");return[{operator:">",major:J,minor:Q,patch:w,prerelease:F,build:B}]}function __(D){let X=t0(D.major),Y=t0(D.minor),Z=t0(D.patch),J=+D.major,Q=+D.minor,w=+D.patch;if(X)return[E5];if(Y){if(Z)return[{operator:">=",major:J,minor:0,patch:0}];return[{operator:">=",major:J,minor:0,patch:0}]}if(Z)return[{operator:">=",major:J,minor:Q,patch:0}];let F=w1(D.prerelease??""),B=J8(D.build??"");return[{operator:">=",major:J,minor:Q,patch:w,prerelease:F,build:B}]}function v_(D){let X=t0(D.major),Y=t0(D.minor),Z=t0(D.patch),J=+D.major,Q=+D.minor,w=+D.patch;if(X)return[E5];if(Y)return[{operator:">=",major:J,minor:0,patch:0},{operator:"<",major:J+1,minor:0,patch:0}];if(Z)return[{operator:">=",major:J,minor:Q,patch:0},{operator:"<",major:J,minor:Q+1,patch:0}];let F=w1(D.prerelease??""),B=J8(D.build??"");return[{operator:void 0,major:J,minor:Q,patch:w,prerelease:F,build:B}]}function b_(D){let X=D.match(aG)?.groups;if(!X)return I_(D);switch(X.operator){case"^":return f_(X);case"~":case"~>":return y_(X);case"<":return k_(X);case"<=":return u_(X);case">":return h_(X);case">=":return __(X);case"=":case"":return v_(X);default:throw Error(`Cannot parse version range: '${X.operator}' is not a valid operator`)}}function g_(D){return D.split(/\s+/).flatMap(b_)}function PX(D){let X=D.replaceAll(/(?<=<|>|=|~|\^)(\s+)/g,"").split(/\s*\|\|\s*/).map((Y)=>x_(Y)||g_(Y));if(X.some((Y)=>Y.includes(null)))throw TypeError(`Cannot parse version range: range "${D}" is invalid`);return X}function i0(D){if(typeof D!=="string")throw TypeError(`Cannot parse version as version must be a string: received ${typeof D}`);if(D.length>HQ)throw TypeError(`Cannot parse version as version length is too long: length is ${D.length}, max length is ${HQ}`);D=D.trim();let X=D.match(iG)?.groups;if(!X)throw TypeError(`Cannot parse version: ${D}`);let Y=E6(X.major,`Cannot parse version ${D}: invalid major version`),Z=E6(X.minor,`Cannot parse version ${D}: invalid minor version`),J=E6(X.patch,`Cannot parse version ${D}: invalid patch version`),Q=X.prerelease?w1(X.prerelease):[],w=X.buildmetadata?J8(X.buildmetadata):[];return{major:Y,minor:Z,patch:J,prerelease:Q,build:w}}function rG(D,X){let Y=D.operator,Z=X.operator;if(Y===void 0){if(n8(D))return!0;return w4(D,[[X]])}if(Z===void 0){if(n8(X))return!0;return w4(X,[[D]])}let J=F1(D,X);return(Y===">="||Y===">")&&(Z===">="||Z===">")||(Y==="<="||Y==="<")&&(Z==="<="||Z==="<")||J===0&&((Y===">="||Y==="<=")&&(Z===">="||Z==="<="))||J===-1&&(Y===">="||Y===">")&&(Z==="<="||Z==="<")||J===1&&(Y==="<="||Y==="<")&&(Z===">="||Z===">")}function m_(D){return D.every((X)=>{return X.some((Y)=>d_(Y))})}function d_(D){for(let X=0;X<D.length-1;X++){let Y=D[X];for(let Z of D.slice(X+1))if(!rG(Y,Z))return!1}return!0}function sG(D,X){return m_([D,X])&&D.some((Y)=>{return X.some((Z)=>{return Y.every((J)=>{return Z.every((Q)=>rG(J,Q))})})})}function oG(D){try{return i0(D),!0}catch{return!1}}function eG(D,X){return F1(D,X)>=0}var Z0={};D4(Z0,{createClient:()=>Gw,SupabaseClient:()=>$H,PostgrestError:()=>G4,FunctionsRelayError:()=>D1.FunctionsRelayError,FunctionsHttpError:()=>D1.FunctionsHttpError,FunctionsFetchError:()=>D1.FunctionsFetchError,FunctionsError:()=>D1.FunctionsError,FunctionRegion:()=>D1.FunctionRegion});var D1=R0(uO(),1);var _O={};D4(_O,{default:()=>p_,PostgrestTransformBuilder:()=>UQ,PostgrestQueryBuilder:()=>NQ,PostgrestFilterBuilder:()=>C6,PostgrestError:()=>G4,PostgrestClient:()=>uX,PostgrestBuilder:()=>VQ});var G4=class extends Error{constructor(D){super(D.message);this.name="PostgrestError",this.details=D.details,this.hint=D.hint,this.code=D.code}},VQ=class{constructor(D){var X,Y;if(this.shouldThrowOnError=!1,this.method=D.method,this.url=D.url,this.headers=new Headers(D.headers),this.schema=D.schema,this.body=D.body,this.shouldThrowOnError=(X=D.shouldThrowOnError)!==null&&X!==void 0?X:!1,this.signal=D.signal,this.isMaybeSingle=(Y=D.isMaybeSingle)!==null&&Y!==void 0?Y:!1,D.fetch)this.fetch=D.fetch;else this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(D,X){return this.headers=new Headers(this.headers),this.headers.set(D,X),this}then(D,X){var Y=this;if(this.schema===void 0);else if(["GET","HEAD"].includes(this.method))this.headers.set("Accept-Profile",this.schema);else this.headers.set("Content-Profile",this.schema);if(this.method!=="GET"&&this.method!=="HEAD")this.headers.set("Content-Type","application/json");let Z=this.fetch,J=Z(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(async(Q)=>{let w=null,F=null,B=null,q=Q.status,$=Q.statusText;if(Q.ok){var G,W;if(Y.method!=="HEAD"){var O;let N=await Q.text();if(N==="");else if(Y.headers.get("Accept")==="text/csv")F=N;else if(Y.headers.get("Accept")&&((O=Y.headers.get("Accept"))===null||O===void 0?void 0:O.includes("application/vnd.pgrst.plan+text")))F=N;else F=JSON.parse(N)}let M=(G=Y.headers.get("Prefer"))===null||G===void 0?void 0:G.match(/count=(exact|planned|estimated)/),U=(W=Q.headers.get("content-range"))===null||W===void 0?void 0:W.split("/");if(M&&U&&U.length>1)B=parseInt(U[1]);if(Y.isMaybeSingle&&Y.method==="GET"&&Array.isArray(F))if(F.length>1)w={code:"PGRST116",details:`Results contain ${F.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},F=null,B=null,q=406,$="Not Acceptable";else if(F.length===1)F=F[0];else F=null}else{var H;let M=await Q.text();try{if(w=JSON.parse(M),Array.isArray(w)&&Q.status===404)F=[],w=null,q=200,$="OK"}catch(U){if(Q.status===404&&M==="")q=204,$="No Content";else w={message:M}}if(w&&Y.isMaybeSingle&&(w===null||w===void 0||(H=w.details)===null||H===void 0?void 0:H.includes("0 rows")))w=null,q=200,$="OK";if(w&&Y.shouldThrowOnError)throw new G4(w)}return{error:w,data:F,count:B,status:q,statusText:$}});if(!this.shouldThrowOnError)J=J.catch((Q)=>{var w;let F="",B=Q===null||Q===void 0?void 0:Q.cause;if(B){var q,$,G,W;let H=(q=B===null||B===void 0?void 0:B.message)!==null&&q!==void 0?q:"",M=($=B===null||B===void 0?void 0:B.code)!==null&&$!==void 0?$:"";if(F=`${(G=Q===null||Q===void 0?void 0:Q.name)!==null&&G!==void 0?G:"FetchError"}: ${Q===null||Q===void 0?void 0:Q.message}`,F+=`
312
312
 
313
313
  Caused by: ${(W=B===null||B===void 0?void 0:B.name)!==null&&W!==void 0?W:"Error"}: ${H}`,M)F+=` (${M})`;if(B===null||B===void 0?void 0:B.stack)F+=`
314
- ${B.stack}`}else{var O;F=(O=Q===null||Q===void 0?void 0:Q.stack)!==null&&O!==void 0?O:""}return{error:{message:`${(w=Q===null||Q===void 0?void 0:Q.name)!==null&&w!==void 0?w:"FetchError"}: ${Q===null||Q===void 0?void 0:Q.message}`,details:F,hint:"",code:""},data:null,count:null,status:0,statusText:""}});return J.then(D,X)}returns(){return this}overrideTypes(){return this}},UQ=class extends VQ{select(D){let X=!1,Y=(D!==null&&D!==void 0?D:"*").split("").map((Z)=>{if(/\s/.test(Z)&&!X)return"";if(Z==='"')X=!X;return Z}).join("");return this.url.searchParams.set("select",Y),this.headers.append("Prefer","return=representation"),this}order(D,{ascending:X=!0,nullsFirst:Y,foreignTable:Z,referencedTable:J=Z}={}){let Q=J?`${J}.order`:"order",w=this.url.searchParams.get(Q);return this.url.searchParams.set(Q,`${w?`${w},`:""}${D}.${X?"asc":"desc"}${Y===void 0?"":Y?".nullsfirst":".nullslast"}`),this}limit(D,{foreignTable:X,referencedTable:Y=X}={}){let Z=typeof Y>"u"?"limit":`${Y}.limit`;return this.url.searchParams.set(Z,`${D}`),this}range(D,X,{foreignTable:Y,referencedTable:Z=Y}={}){let J=typeof Z>"u"?"offset":`${Z}.offset`,Q=typeof Z>"u"?"limit":`${Z}.limit`;return this.url.searchParams.set(J,`${D}`),this.url.searchParams.set(Q,`${X-D+1}`),this}abortSignal(D){return this.signal=D,this}single(){return this.headers.set("Accept","application/vnd.pgrst.object+json"),this}maybeSingle(){if(this.method==="GET")this.headers.set("Accept","application/json");else this.headers.set("Accept","application/vnd.pgrst.object+json");return this.isMaybeSingle=!0,this}csv(){return this.headers.set("Accept","text/csv"),this}geojson(){return this.headers.set("Accept","application/geo+json"),this}explain({analyze:D=!1,verbose:X=!1,settings:Y=!1,buffers:Z=!1,wal:J=!1,format:Q="text"}={}){var w;let F=[D?"analyze":null,X?"verbose":null,Y?"settings":null,Z?"buffers":null,J?"wal":null].filter(Boolean).join("|"),B=(w=this.headers.get("Accept"))!==null&&w!==void 0?w:"application/json";if(this.headers.set("Accept",`application/vnd.pgrst.plan+${Q}; for="${B}"; options=${F};`),Q==="json")return this;else return this}rollback(){return this.headers.append("Prefer","tx=rollback"),this}returns(){return this}maxAffected(D){return this.headers.append("Prefer","handling=strict"),this.headers.append("Prefer",`max-affected=${D}`),this}},hO=new RegExp("[,()]"),C6=class extends UQ{eq(D,X){return this.url.searchParams.append(D,`eq.${X}`),this}neq(D,X){return this.url.searchParams.append(D,`neq.${X}`),this}gt(D,X){return this.url.searchParams.append(D,`gt.${X}`),this}gte(D,X){return this.url.searchParams.append(D,`gte.${X}`),this}lt(D,X){return this.url.searchParams.append(D,`lt.${X}`),this}lte(D,X){return this.url.searchParams.append(D,`lte.${X}`),this}like(D,X){return this.url.searchParams.append(D,`like.${X}`),this}likeAllOf(D,X){return this.url.searchParams.append(D,`like(all).{${X.join(",")}}`),this}likeAnyOf(D,X){return this.url.searchParams.append(D,`like(any).{${X.join(",")}}`),this}ilike(D,X){return this.url.searchParams.append(D,`ilike.${X}`),this}ilikeAllOf(D,X){return this.url.searchParams.append(D,`ilike(all).{${X.join(",")}}`),this}ilikeAnyOf(D,X){return this.url.searchParams.append(D,`ilike(any).{${X.join(",")}}`),this}regexMatch(D,X){return this.url.searchParams.append(D,`match.${X}`),this}regexIMatch(D,X){return this.url.searchParams.append(D,`imatch.${X}`),this}is(D,X){return this.url.searchParams.append(D,`is.${X}`),this}isDistinct(D,X){return this.url.searchParams.append(D,`isdistinct.${X}`),this}in(D,X){let Y=Array.from(new Set(X)).map((Z)=>{if(typeof Z==="string"&&hO.test(Z))return`"${Z}"`;else return`${Z}`}).join(",");return this.url.searchParams.append(D,`in.(${Y})`),this}notIn(D,X){let Y=Array.from(new Set(X)).map((Z)=>{if(typeof Z==="string"&&hO.test(Z))return`"${Z}"`;else return`${Z}`}).join(",");return this.url.searchParams.append(D,`not.in.(${Y})`),this}contains(D,X){if(typeof X==="string")this.url.searchParams.append(D,`cs.${X}`);else if(Array.isArray(X))this.url.searchParams.append(D,`cs.{${X.join(",")}}`);else this.url.searchParams.append(D,`cs.${JSON.stringify(X)}`);return this}containedBy(D,X){if(typeof X==="string")this.url.searchParams.append(D,`cd.${X}`);else if(Array.isArray(X))this.url.searchParams.append(D,`cd.{${X.join(",")}}`);else this.url.searchParams.append(D,`cd.${JSON.stringify(X)}`);return this}rangeGt(D,X){return this.url.searchParams.append(D,`sr.${X}`),this}rangeGte(D,X){return this.url.searchParams.append(D,`nxl.${X}`),this}rangeLt(D,X){return this.url.searchParams.append(D,`sl.${X}`),this}rangeLte(D,X){return this.url.searchParams.append(D,`nxr.${X}`),this}rangeAdjacent(D,X){return this.url.searchParams.append(D,`adj.${X}`),this}overlaps(D,X){if(typeof X==="string")this.url.searchParams.append(D,`ov.${X}`);else this.url.searchParams.append(D,`ov.{${X.join(",")}}`);return this}textSearch(D,X,{config:Y,type:Z}={}){let J="";if(Z==="plain")J="pl";else if(Z==="phrase")J="ph";else if(Z==="websearch")J="w";let Q=Y===void 0?"":`(${Y})`;return this.url.searchParams.append(D,`${J}fts${Q}.${X}`),this}match(D){return Object.entries(D).forEach(([X,Y])=>{this.url.searchParams.append(X,`eq.${Y}`)}),this}not(D,X,Y){return this.url.searchParams.append(D,`not.${X}.${Y}`),this}or(D,{foreignTable:X,referencedTable:Y=X}={}){let Z=Y?`${Y}.or`:"or";return this.url.searchParams.append(Z,`(${D})`),this}filter(D,X,Y){return this.url.searchParams.append(D,`${X}.${Y}`),this}},NQ=class{constructor(D,{headers:X={},schema:Y,fetch:Z}){this.url=D,this.headers=new Headers(X),this.schema=Y,this.fetch=Z}select(D,X){let{head:Y=!1,count:Z}=X!==null&&X!==void 0?X:{},J=Y?"HEAD":"GET",Q=!1,w=(D!==null&&D!==void 0?D:"*").split("").map((F)=>{if(/\s/.test(F)&&!Q)return"";if(F==='"')Q=!Q;return F}).join("");if(this.url.searchParams.set("select",w),Z)this.headers.append("Prefer",`count=${Z}`);return new C6({method:J,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch})}insert(D,{count:X,defaultToNull:Y=!0}={}){var Z;let J="POST";if(X)this.headers.append("Prefer",`count=${X}`);if(!Y)this.headers.append("Prefer","missing=default");if(Array.isArray(D)){let Q=D.reduce((w,F)=>w.concat(Object.keys(F)),[]);if(Q.length>0){let w=[...new Set(Q)].map((F)=>`"${F}"`);this.url.searchParams.set("columns",w.join(","))}}return new C6({method:"POST",url:this.url,headers:this.headers,schema:this.schema,body:D,fetch:(Z=this.fetch)!==null&&Z!==void 0?Z:fetch})}upsert(D,{onConflict:X,ignoreDuplicates:Y=!1,count:Z,defaultToNull:J=!0}={}){var Q;let w="POST";if(this.headers.append("Prefer",`resolution=${Y?"ignore":"merge"}-duplicates`),X!==void 0)this.url.searchParams.set("on_conflict",X);if(Z)this.headers.append("Prefer",`count=${Z}`);if(!J)this.headers.append("Prefer","missing=default");if(Array.isArray(D)){let F=D.reduce((B,q)=>B.concat(Object.keys(q)),[]);if(F.length>0){let B=[...new Set(F)].map((q)=>`"${q}"`);this.url.searchParams.set("columns",B.join(","))}}return new C6({method:"POST",url:this.url,headers:this.headers,schema:this.schema,body:D,fetch:(Q=this.fetch)!==null&&Q!==void 0?Q:fetch})}update(D,{count:X}={}){var Y;let Z="PATCH";if(X)this.headers.append("Prefer",`count=${X}`);return new C6({method:"PATCH",url:this.url,headers:this.headers,schema:this.schema,body:D,fetch:(Y=this.fetch)!==null&&Y!==void 0?Y:fetch})}delete({count:D}={}){var X;let Y="DELETE";if(D)this.headers.append("Prefer",`count=${D}`);return new C6({method:"DELETE",url:this.url,headers:this.headers,schema:this.schema,fetch:(X=this.fetch)!==null&&X!==void 0?X:fetch})}},uX=class D{constructor(X,{headers:Y={},schema:Z,fetch:J}={}){this.url=X,this.headers=new Headers(Y),this.schemaName=Z,this.fetch=J}from(X){if(!X||typeof X!=="string"||X.trim()==="")throw Error("Invalid relation name: relation must be a non-empty string.");return new NQ(new URL(`${this.url}/${X}`),{headers:new Headers(this.headers),schema:this.schemaName,fetch:this.fetch})}schema(X){return new D(this.url,{headers:this.headers,schema:X,fetch:this.fetch})}rpc(X,Y={},{head:Z=!1,get:J=!1,count:Q}={}){var w;let F,B=new URL(`${this.url}/rpc/${X}`),q;if(Z||J)F=Z?"HEAD":"GET",Object.entries(Y).filter(([G,W])=>W!==void 0).map(([G,W])=>[G,Array.isArray(W)?`{${W.join(",")}}`:`${W}`]).forEach(([G,W])=>{B.searchParams.append(G,W)});else F="POST",q=Y;let $=new Headers(this.headers);if(Q)$.set("Prefer",`count=${Q}`);return new C6({method:F,url:B,headers:$,schema:this.schemaName,body:q,fetch:(w=this.fetch)!==null&&w!==void 0?w:fetch})}},p_={PostgrestClient:uX,PostgrestQueryBuilder:NQ,PostgrestFilterBuilder:C6,PostgrestTransformBuilder:UQ,PostgrestBuilder:VQ,PostgrestError:G4};var BH=R0(kQ(),1);var VW={};D4(VW,{validateVectorDimension:()=>bv,resolveResponse:()=>_v,resolveFetch:()=>iX,normalizeToFloat32:()=>vv,isStorageVectorsError:()=>E1,isStorageError:()=>FD,isPlainObject:()=>OW,VectorIndexScope:()=>LW,VectorIndexApi:()=>WW,VectorDataApi:()=>HW,VectorBucketScope:()=>MW,VectorBucketApi:()=>KW,StorageVectorsUnknownError:()=>GW,StorageVectorsErrorCode:()=>hv,StorageVectorsError:()=>mQ,StorageVectorsClient:()=>zW,StorageVectorsApiError:()=>lX,StorageUnknownError:()=>nX,StorageError:()=>U4,StorageClient:()=>dQ,StorageApiError:()=>wW,StorageAnalyticsClient:()=>$W});var M4=class extends Error{constructor(D,X){super(D);this.name="IcebergError",this.status=X.status,this.icebergType=X.icebergType,this.icebergCode=X.icebergCode,this.details=X.details,this.isCommitStateUnknown=X.icebergType==="CommitStateUnknownException"||[500,502,504].includes(X.status)&&X.icebergType?.includes("CommitState")===!0}isNotFound(){return this.status===404}isConflict(){return this.status===409}isAuthenticationTimeout(){return this.status===419}};function Mv(D,X,Y){let Z=new URL(X,D);if(Y){for(let[J,Q]of Object.entries(Y))if(Q!==void 0)Z.searchParams.set(J,Q)}return Z.toString()}async function Lv(D){if(!D||D.type==="none")return{};if(D.type==="bearer")return{Authorization:`Bearer ${D.token}`};if(D.type==="header")return{[D.name]:D.value};if(D.type==="custom")return await D.getHeaders();return{}}function Vv(D){let X=D.fetchImpl??globalThis.fetch;return{async request({method:Y,path:Z,query:J,body:Q,headers:w}){let F=Mv(D.baseUrl,Z,J),B=await Lv(D.auth),q=await X(F,{method:Y,headers:{...Q?{"Content-Type":"application/json"}:{},...B,...w},body:Q?JSON.stringify(Q):void 0}),$=await q.text(),G=(q.headers.get("content-type")||"").includes("application/json"),W=G&&$?JSON.parse($):$;if(!q.ok){let O=G?W:void 0,H=O?.error;throw new M4(H?.message??`Request failed with status ${q.status}`,{status:q.status,icebergType:H?.type,icebergCode:H?.code,details:O})}return{status:q.status,headers:q.headers,data:W}}}}function cX(D){return D.join("\x1F")}var Uv=class{constructor(D,X=""){this.client=D,this.prefix=X}async listNamespaces(D){let X=D?{parent:cX(D.namespace)}:void 0;return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces`,query:X})).data.namespaces.map((Z)=>({namespace:Z}))}async createNamespace(D,X){let Y={namespace:D.namespace,properties:X?.properties};return(await this.client.request({method:"POST",path:`${this.prefix}/namespaces`,body:Y})).data}async dropNamespace(D){await this.client.request({method:"DELETE",path:`${this.prefix}/namespaces/${cX(D.namespace)}`})}async loadNamespaceMetadata(D){return{properties:(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${cX(D.namespace)}`})).data.properties}}async namespaceExists(D){try{return await this.client.request({method:"HEAD",path:`${this.prefix}/namespaces/${cX(D.namespace)}`}),!0}catch(X){if(X instanceof M4&&X.status===404)return!1;throw X}}async createNamespaceIfNotExists(D,X){try{return await this.createNamespace(D,X)}catch(Y){if(Y instanceof M4&&Y.status===409)return;throw Y}}};function I5(D){return D.join("\x1F")}var Nv=class{constructor(D,X="",Y){this.client=D,this.prefix=X,this.accessDelegation=Y}async listTables(D){return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${I5(D.namespace)}/tables`})).data.identifiers}async createTable(D,X){let Y={};if(this.accessDelegation)Y["X-Iceberg-Access-Delegation"]=this.accessDelegation;return(await this.client.request({method:"POST",path:`${this.prefix}/namespaces/${I5(D.namespace)}/tables`,body:X,headers:Y})).data.metadata}async updateTable(D,X){let Y=await this.client.request({method:"POST",path:`${this.prefix}/namespaces/${I5(D.namespace)}/tables/${D.name}`,body:X});return{"metadata-location":Y.data["metadata-location"],metadata:Y.data.metadata}}async dropTable(D,X){await this.client.request({method:"DELETE",path:`${this.prefix}/namespaces/${I5(D.namespace)}/tables/${D.name}`,query:{purgeRequested:String(X?.purge??!1)}})}async loadTable(D){let X={};if(this.accessDelegation)X["X-Iceberg-Access-Delegation"]=this.accessDelegation;return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${I5(D.namespace)}/tables/${D.name}`,headers:X})).data.metadata}async tableExists(D){let X={};if(this.accessDelegation)X["X-Iceberg-Access-Delegation"]=this.accessDelegation;try{return await this.client.request({method:"HEAD",path:`${this.prefix}/namespaces/${I5(D.namespace)}/tables/${D.name}`,headers:X}),!0}catch(Y){if(Y instanceof M4&&Y.status===404)return!1;throw Y}}async createTableIfNotExists(D,X){try{return await this.createTable(D,X)}catch(Y){if(Y instanceof M4&&Y.status===409)return await this.loadTable({namespace:D.namespace,name:X.name});throw Y}}},YW=class{constructor(D){let X="v1";if(D.catalogName)X+=`/${D.catalogName}`;let Y=D.baseUrl.endsWith("/")?D.baseUrl:`${D.baseUrl}/`;this.client=Vv({baseUrl:Y,auth:D.auth,fetchImpl:D.fetch}),this.accessDelegation=D.accessDelegation?.join(","),this.namespaceOps=new Uv(this.client,X),this.tableOps=new Nv(this.client,X,this.accessDelegation)}async listNamespaces(D){return this.namespaceOps.listNamespaces(D)}async createNamespace(D,X){return this.namespaceOps.createNamespace(D,X)}async dropNamespace(D){await this.namespaceOps.dropNamespace(D)}async loadNamespaceMetadata(D){return this.namespaceOps.loadNamespaceMetadata(D)}async listTables(D){return this.tableOps.listTables(D)}async createTable(D,X){return this.tableOps.createTable(D,X)}async updateTable(D,X){return this.tableOps.updateTable(D,X)}async dropTable(D,X){await this.tableOps.dropTable(D,X)}async loadTable(D){return this.tableOps.loadTable(D)}async namespaceExists(D){return this.namespaceOps.namespaceExists(D)}async tableExists(D){return this.tableOps.tableExists(D)}async createNamespaceIfNotExists(D,X){return this.namespaceOps.createNamespaceIfNotExists(D,X)}async createTableIfNotExists(D,X){return this.tableOps.createTableIfNotExists(D,X)}};var U4=class extends Error{constructor(D){super(D);this.__isStorageError=!0,this.name="StorageError"}};function FD(D){return typeof D==="object"&&D!==null&&"__isStorageError"in D}var wW=class extends U4{constructor(D,X,Y){super(D);this.name="StorageApiError",this.status=X,this.statusCode=Y}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}},nX=class extends U4{constructor(D,X){super(D);this.name="StorageUnknownError",this.originalError=X}},vQ=(D)=>{if(D)return(...X)=>D(...X);return(...X)=>fetch(...X)},Rv=()=>{return Response},hQ=(D)=>{if(Array.isArray(D))return D.map((Y)=>hQ(Y));else if(typeof D==="function"||D!==Object(D))return D;let X={};return Object.entries(D).forEach(([Y,Z])=>{let J=Y.replace(/([-_][a-z])/gi,(Q)=>Q.toUpperCase().replace(/[-_]/g,""));X[J]=hQ(Z)}),X},Av=(D)=>{if(typeof D!=="object"||D===null)return!1;let X=Object.getPrototypeOf(D);return(X===null||X===Object.prototype||Object.getPrototypeOf(X)===null)&&!(Symbol.toStringTag in D)&&!(Symbol.iterator in D)},Ev=(D)=>{if(!D||typeof D!=="string")return!1;if(D.length===0||D.length>100)return!1;if(D.trim()!==D)return!1;if(D.includes("/")||D.includes("\\"))return!1;return/^[\w!.\*'() &$@=;:+,?-]+$/.test(D)};function L4(D){return L4=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(X){return typeof X}:function(X){return X&&typeof Symbol=="function"&&X.constructor===Symbol&&X!==Symbol.prototype?"symbol":typeof X},L4(D)}function Cv(D,X){if(L4(D)!="object"||!D)return D;var Y=D[Symbol.toPrimitive];if(Y!==void 0){var Z=Y.call(D,X||"default");if(L4(Z)!="object")return Z;throw TypeError("@@toPrimitive must return a primitive value.")}return(X==="string"?String:Number)(D)}function jv(D){var X=Cv(D,"string");return L4(X)=="symbol"?X:X+""}function Tv(D,X,Y){return(X=jv(X))in D?Object.defineProperty(D,X,{value:Y,enumerable:!0,configurable:!0,writable:!0}):D[X]=Y,D}function ZW(D,X){var Y=Object.keys(D);if(Object.getOwnPropertySymbols){var Z=Object.getOwnPropertySymbols(D);X&&(Z=Z.filter(function(J){return Object.getOwnPropertyDescriptor(D,J).enumerable})),Y.push.apply(Y,Z)}return Y}function G0(D){for(var X=1;X<arguments.length;X++){var Y=arguments[X]!=null?arguments[X]:{};X%2?ZW(Object(Y),!0).forEach(function(Z){Tv(D,Z,Y[Z])}):Object.getOwnPropertyDescriptors?Object.defineProperties(D,Object.getOwnPropertyDescriptors(Y)):ZW(Object(Y)).forEach(function(Z){Object.defineProperty(D,Z,Object.getOwnPropertyDescriptor(Y,Z))})}return D}var uQ=(D)=>{var X;return D.msg||D.message||D.error_description||(typeof D.error==="string"?D.error:(X=D.error)===null||X===void 0?void 0:X.message)||JSON.stringify(D)},Iv=async(D,X,Y)=>{if(D instanceof await Rv()&&!(Y===null||Y===void 0?void 0:Y.noResolveJson))D.json().then((Z)=>{let J=D.status||500,Q=(Z===null||Z===void 0?void 0:Z.statusCode)||J+"";X(new wW(uQ(Z),J,Q))}).catch((Z)=>{X(new nX(uQ(Z),Z))});else X(new nX(uQ(D),D))},Pv=(D,X,Y,Z)=>{let J={method:D,headers:(X===null||X===void 0?void 0:X.headers)||{}};if(D==="GET"||!Z)return J;if(Av(Z))J.headers=G0({"Content-Type":"application/json"},X===null||X===void 0?void 0:X.headers),J.body=JSON.stringify(Z);else J.body=Z;if(X===null||X===void 0?void 0:X.duplex)J.duplex=X.duplex;return G0(G0({},J),Y)};async function N4(D,X,Y,Z,J,Q){return new Promise((w,F)=>{D(Y,Pv(X,Z,J,Q)).then((B)=>{if(!B.ok)throw B;if(Z===null||Z===void 0?void 0:Z.noResolveJson)return B;return B.json()}).then((B)=>w(B)).catch((B)=>Iv(B,F,Z))})}async function V4(D,X,Y,Z){return N4(D,"GET",X,Y,Z)}async function F8(D,X,Y,Z,J){return N4(D,"POST",X,Z,J,Y)}async function _Q(D,X,Y,Z,J){return N4(D,"PUT",X,Z,J,Y)}async function Sv(D,X,Y,Z){return N4(D,"HEAD",X,G0(G0({},Y),{},{noResolveJson:!0}),Z)}async function bQ(D,X,Y,Z,J){return N4(D,"DELETE",X,Z,J,Y)}var xv=class{constructor(D,X){this.downloadFn=D,this.shouldThrowOnError=X}then(D,X){return this.execute().then(D,X)}async execute(){var D=this;try{return{data:(await D.downloadFn()).body,error:null}}catch(X){if(D.shouldThrowOnError)throw X;if(FD(X))return{data:null,error:X};throw X}}},FW;FW=Symbol.toStringTag;var fv=class{constructor(D,X){this.downloadFn=D,this.shouldThrowOnError=X,this[FW]="BlobDownloadBuilder",this.promise=null}asStream(){return new xv(this.downloadFn,this.shouldThrowOnError)}then(D,X){return this.getPromise().then(D,X)}catch(D){return this.getPromise().catch(D)}finally(D){return this.getPromise().finally(D)}getPromise(){if(!this.promise)this.promise=this.execute();return this.promise}async execute(){var D=this;try{return{data:await(await D.downloadFn()).blob(),error:null}}catch(X){if(D.shouldThrowOnError)throw X;if(FD(X))return{data:null,error:X};throw X}}},yv={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},JW={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1},kv=class{constructor(D,X={},Y,Z){this.shouldThrowOnError=!1,this.url=D,this.headers=X,this.bucketId=Y,this.fetch=vQ(Z)}throwOnError(){return this.shouldThrowOnError=!0,this}async uploadOrUpdate(D,X,Y,Z){var J=this;try{let Q,w=G0(G0({},JW),Z),F=G0(G0({},J.headers),D==="POST"&&{"x-upsert":String(w.upsert)}),B=w.metadata;if(typeof Blob<"u"&&Y instanceof Blob){if(Q=new FormData,Q.append("cacheControl",w.cacheControl),B)Q.append("metadata",J.encodeMetadata(B));Q.append("",Y)}else if(typeof FormData<"u"&&Y instanceof FormData){if(Q=Y,!Q.has("cacheControl"))Q.append("cacheControl",w.cacheControl);if(B&&!Q.has("metadata"))Q.append("metadata",J.encodeMetadata(B))}else{if(Q=Y,F["cache-control"]=`max-age=${w.cacheControl}`,F["content-type"]=w.contentType,B)F["x-metadata"]=J.toBase64(J.encodeMetadata(B));if((typeof ReadableStream<"u"&&Q instanceof ReadableStream||Q&&typeof Q==="object"&&("pipe"in Q)&&typeof Q.pipe==="function")&&!w.duplex)w.duplex="half"}if(Z===null||Z===void 0?void 0:Z.headers)F=G0(G0({},F),Z.headers);let q=J._removeEmptyFolders(X),$=J._getFinalPath(q),G=await(D=="PUT"?_Q:F8)(J.fetch,`${J.url}/object/${$}`,Q,G0({headers:F},(w===null||w===void 0?void 0:w.duplex)?{duplex:w.duplex}:{}));return{data:{path:q,id:G.Id,fullPath:G.Key},error:null}}catch(Q){if(J.shouldThrowOnError)throw Q;if(FD(Q))return{data:null,error:Q};throw Q}}async upload(D,X,Y){return this.uploadOrUpdate("POST",D,X,Y)}async uploadToSignedUrl(D,X,Y,Z){var J=this;let Q=J._removeEmptyFolders(D),w=J._getFinalPath(Q),F=new URL(J.url+`/object/upload/sign/${w}`);F.searchParams.set("token",X);try{let B,q=G0({upsert:JW.upsert},Z),$=G0(G0({},J.headers),{"x-upsert":String(q.upsert)});if(typeof Blob<"u"&&Y instanceof Blob)B=new FormData,B.append("cacheControl",q.cacheControl),B.append("",Y);else if(typeof FormData<"u"&&Y instanceof FormData)B=Y,B.append("cacheControl",q.cacheControl);else B=Y,$["cache-control"]=`max-age=${q.cacheControl}`,$["content-type"]=q.contentType;return{data:{path:Q,fullPath:(await _Q(J.fetch,F.toString(),B,{headers:$})).Key},error:null}}catch(B){if(J.shouldThrowOnError)throw B;if(FD(B))return{data:null,error:B};throw B}}async createSignedUploadUrl(D,X){var Y=this;try{let Z=Y._getFinalPath(D),J=G0({},Y.headers);if(X===null||X===void 0?void 0:X.upsert)J["x-upsert"]="true";let Q=await F8(Y.fetch,`${Y.url}/object/upload/sign/${Z}`,{},{headers:J}),w=new URL(Y.url+Q.url),F=w.searchParams.get("token");if(!F)throw new U4("No token returned by API");return{data:{signedUrl:w.toString(),path:D,token:F},error:null}}catch(Z){if(Y.shouldThrowOnError)throw Z;if(FD(Z))return{data:null,error:Z};throw Z}}async update(D,X,Y){return this.uploadOrUpdate("PUT",D,X,Y)}async move(D,X,Y){var Z=this;try{return{data:await F8(Z.fetch,`${Z.url}/object/move`,{bucketId:Z.bucketId,sourceKey:D,destinationKey:X,destinationBucket:Y===null||Y===void 0?void 0:Y.destinationBucket},{headers:Z.headers}),error:null}}catch(J){if(Z.shouldThrowOnError)throw J;if(FD(J))return{data:null,error:J};throw J}}async copy(D,X,Y){var Z=this;try{return{data:{path:(await F8(Z.fetch,`${Z.url}/object/copy`,{bucketId:Z.bucketId,sourceKey:D,destinationKey:X,destinationBucket:Y===null||Y===void 0?void 0:Y.destinationBucket},{headers:Z.headers})).Key},error:null}}catch(J){if(Z.shouldThrowOnError)throw J;if(FD(J))return{data:null,error:J};throw J}}async createSignedUrl(D,X,Y){var Z=this;try{let J=Z._getFinalPath(D),Q=await F8(Z.fetch,`${Z.url}/object/sign/${J}`,G0({expiresIn:X},(Y===null||Y===void 0?void 0:Y.transform)?{transform:Y.transform}:{}),{headers:Z.headers}),w=(Y===null||Y===void 0?void 0:Y.download)?`&download=${Y.download===!0?"":Y.download}`:"";return Q={signedUrl:encodeURI(`${Z.url}${Q.signedURL}${w}`)},{data:Q,error:null}}catch(J){if(Z.shouldThrowOnError)throw J;if(FD(J))return{data:null,error:J};throw J}}async createSignedUrls(D,X,Y){var Z=this;try{let J=await F8(Z.fetch,`${Z.url}/object/sign/${Z.bucketId}`,{expiresIn:X,paths:D},{headers:Z.headers}),Q=(Y===null||Y===void 0?void 0:Y.download)?`&download=${Y.download===!0?"":Y.download}`:"";return{data:J.map((w)=>G0(G0({},w),{},{signedUrl:w.signedURL?encodeURI(`${Z.url}${w.signedURL}${Q}`):null})),error:null}}catch(J){if(Z.shouldThrowOnError)throw J;if(FD(J))return{data:null,error:J};throw J}}download(D,X){let Y=typeof(X===null||X===void 0?void 0:X.transform)<"u"?"render/image/authenticated":"object",Z=this.transformOptsToQueryString((X===null||X===void 0?void 0:X.transform)||{}),J=Z?`?${Z}`:"",Q=this._getFinalPath(D);return new fv(()=>V4(this.fetch,`${this.url}/${Y}/${Q}${J}`,{headers:this.headers,noResolveJson:!0}),this.shouldThrowOnError)}async info(D){var X=this;let Y=X._getFinalPath(D);try{return{data:hQ(await V4(X.fetch,`${X.url}/object/info/${Y}`,{headers:X.headers})),error:null}}catch(Z){if(X.shouldThrowOnError)throw Z;if(FD(Z))return{data:null,error:Z};throw Z}}async exists(D){var X=this;let Y=X._getFinalPath(D);try{return await Sv(X.fetch,`${X.url}/object/${Y}`,{headers:X.headers}),{data:!0,error:null}}catch(Z){if(X.shouldThrowOnError)throw Z;if(FD(Z)&&Z instanceof nX){let J=Z.originalError;if([400,404].includes(J===null||J===void 0?void 0:J.status))return{data:!1,error:Z}}throw Z}}getPublicUrl(D,X){let Y=this._getFinalPath(D),Z=[],J=(X===null||X===void 0?void 0:X.download)?`download=${X.download===!0?"":X.download}`:"";if(J!=="")Z.push(J);let Q=typeof(X===null||X===void 0?void 0:X.transform)<"u"?"render/image":"object",w=this.transformOptsToQueryString((X===null||X===void 0?void 0:X.transform)||{});if(w!=="")Z.push(w);let F=Z.join("&");if(F!=="")F=`?${F}`;return{data:{publicUrl:encodeURI(`${this.url}/${Q}/public/${Y}${F}`)}}}async remove(D){var X=this;try{return{data:await bQ(X.fetch,`${X.url}/object/${X.bucketId}`,{prefixes:D},{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(FD(Y))return{data:null,error:Y};throw Y}}async list(D,X,Y){var Z=this;try{let J=G0(G0(G0({},yv),X),{},{prefix:D||""});return{data:await F8(Z.fetch,`${Z.url}/object/list/${Z.bucketId}`,J,{headers:Z.headers},Y),error:null}}catch(J){if(Z.shouldThrowOnError)throw J;if(FD(J))return{data:null,error:J};throw J}}async listV2(D,X){var Y=this;try{let Z=G0({},D);return{data:await F8(Y.fetch,`${Y.url}/object/list-v2/${Y.bucketId}`,Z,{headers:Y.headers},X),error:null}}catch(Z){if(Y.shouldThrowOnError)throw Z;if(FD(Z))return{data:null,error:Z};throw Z}}encodeMetadata(D){return JSON.stringify(D)}toBase64(D){if(typeof Buffer<"u")return Buffer.from(D).toString("base64");return btoa(D)}_getFinalPath(D){return`${this.bucketId}/${D.replace(/^\/+/,"")}`}_removeEmptyFolders(D){return D.replace(/^\/|\/$/g,"").replace(/\/+/g,"/")}transformOptsToQueryString(D){let X=[];if(D.width)X.push(`width=${D.width}`);if(D.height)X.push(`height=${D.height}`);if(D.resize)X.push(`resize=${D.resize}`);if(D.format)X.push(`format=${D.format}`);if(D.quality)X.push(`quality=${D.quality}`);return X.join("&")}},BW="2.89.0",qW={"X-Client-Info":`storage-js/${BW}`},uv=class{constructor(D,X={},Y,Z){this.shouldThrowOnError=!1;let J=new URL(D);if(Z===null||Z===void 0?void 0:Z.useNewHostname){if(/supabase\.(co|in|red)$/.test(J.hostname)&&!J.hostname.includes("storage.supabase."))J.hostname=J.hostname.replace("supabase.","storage.supabase.")}this.url=J.href.replace(/\/$/,""),this.headers=G0(G0({},qW),X),this.fetch=vQ(Y)}throwOnError(){return this.shouldThrowOnError=!0,this}async listBuckets(D){var X=this;try{let Y=X.listBucketOptionsToQueryString(D);return{data:await V4(X.fetch,`${X.url}/bucket${Y}`,{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(FD(Y))return{data:null,error:Y};throw Y}}async getBucket(D){var X=this;try{return{data:await V4(X.fetch,`${X.url}/bucket/${D}`,{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(FD(Y))return{data:null,error:Y};throw Y}}async createBucket(D,X={public:!1}){var Y=this;try{return{data:await F8(Y.fetch,`${Y.url}/bucket`,{id:D,name:D,type:X.type,public:X.public,file_size_limit:X.fileSizeLimit,allowed_mime_types:X.allowedMimeTypes},{headers:Y.headers}),error:null}}catch(Z){if(Y.shouldThrowOnError)throw Z;if(FD(Z))return{data:null,error:Z};throw Z}}async updateBucket(D,X){var Y=this;try{return{data:await _Q(Y.fetch,`${Y.url}/bucket/${D}`,{id:D,name:D,public:X.public,file_size_limit:X.fileSizeLimit,allowed_mime_types:X.allowedMimeTypes},{headers:Y.headers}),error:null}}catch(Z){if(Y.shouldThrowOnError)throw Z;if(FD(Z))return{data:null,error:Z};throw Z}}async emptyBucket(D){var X=this;try{return{data:await F8(X.fetch,`${X.url}/bucket/${D}/empty`,{},{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(FD(Y))return{data:null,error:Y};throw Y}}async deleteBucket(D){var X=this;try{return{data:await bQ(X.fetch,`${X.url}/bucket/${D}`,{},{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(FD(Y))return{data:null,error:Y};throw Y}}listBucketOptionsToQueryString(D){let X={};if(D){if("limit"in D)X.limit=String(D.limit);if("offset"in D)X.offset=String(D.offset);if(D.search)X.search=D.search;if(D.sortColumn)X.sortColumn=D.sortColumn;if(D.sortOrder)X.sortOrder=D.sortOrder}return Object.keys(X).length>0?"?"+new URLSearchParams(X).toString():""}},$W=class{constructor(D,X={},Y){this.shouldThrowOnError=!1,this.url=D.replace(/\/$/,""),this.headers=G0(G0({},qW),X),this.fetch=vQ(Y)}throwOnError(){return this.shouldThrowOnError=!0,this}async createBucket(D){var X=this;try{return{data:await F8(X.fetch,`${X.url}/bucket`,{name:D},{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(FD(Y))return{data:null,error:Y};throw Y}}async listBuckets(D){var X=this;try{let Y=new URLSearchParams;if((D===null||D===void 0?void 0:D.limit)!==void 0)Y.set("limit",D.limit.toString());if((D===null||D===void 0?void 0:D.offset)!==void 0)Y.set("offset",D.offset.toString());if(D===null||D===void 0?void 0:D.sortColumn)Y.set("sortColumn",D.sortColumn);if(D===null||D===void 0?void 0:D.sortOrder)Y.set("sortOrder",D.sortOrder);if(D===null||D===void 0?void 0:D.search)Y.set("search",D.search);let Z=Y.toString(),J=Z?`${X.url}/bucket?${Z}`:`${X.url}/bucket`;return{data:await V4(X.fetch,J,{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(FD(Y))return{data:null,error:Y};throw Y}}async deleteBucket(D){var X=this;try{return{data:await bQ(X.fetch,`${X.url}/bucket/${D}`,{},{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(FD(Y))return{data:null,error:Y};throw Y}}from(D){var X=this;if(!Ev(D))throw new U4("Invalid bucket name: File, folder, and bucket names must follow AWS object key naming guidelines and should avoid the use of any other characters.");let Y=new YW({baseUrl:this.url,catalogName:D,auth:{type:"custom",getHeaders:async()=>X.headers},fetch:this.fetch}),Z=this.shouldThrowOnError;return new Proxy(Y,{get(J,Q){let w=J[Q];if(typeof w!=="function")return w;return async(...F)=>{try{return{data:await w.apply(J,F),error:null}}catch(B){if(Z)throw B;return{data:null,error:B}}}}})}},gQ={"X-Client-Info":`storage-js/${BW}`,"Content-Type":"application/json"},mQ=class extends Error{constructor(D){super(D);this.__isStorageVectorsError=!0,this.name="StorageVectorsError"}};function E1(D){return typeof D==="object"&&D!==null&&"__isStorageVectorsError"in D}var lX=class extends mQ{constructor(D,X,Y){super(D);this.name="StorageVectorsApiError",this.status=X,this.statusCode=Y}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}},GW=class extends mQ{constructor(D,X){super(D);this.name="StorageVectorsUnknownError",this.originalError=X}},hv=function(D){return D.InternalError="InternalError",D.S3VectorConflictException="S3VectorConflictException",D.S3VectorNotFoundException="S3VectorNotFoundException",D.S3VectorBucketNotEmpty="S3VectorBucketNotEmpty",D.S3VectorMaxBucketsExceeded="S3VectorMaxBucketsExceeded",D.S3VectorMaxIndexesExceeded="S3VectorMaxIndexesExceeded",D}({}),iX=(D)=>{if(D)return(...X)=>D(...X);return(...X)=>fetch(...X)},_v=()=>{return Response},OW=(D)=>{if(typeof D!=="object"||D===null)return!1;let X=Object.getPrototypeOf(D);return(X===null||X===Object.prototype||Object.getPrototypeOf(X)===null)&&!(Symbol.toStringTag in D)&&!(Symbol.iterator in D)},vv=(D)=>{return Array.from(new Float32Array(D))},bv=(D,X)=>{if(X!==void 0&&D.float32.length!==X)throw Error(`Vector dimension mismatch: expected ${X}, got ${D.float32.length}`)},QW=(D)=>D.msg||D.message||D.error_description||D.error||JSON.stringify(D),gv=async(D,X,Y)=>{if(D&&typeof D==="object"&&"status"in D&&"ok"in D&&typeof D.status==="number"&&!(Y===null||Y===void 0?void 0:Y.noResolveJson)){let Z=D.status||500,J=D;if(typeof J.json==="function")J.json().then((Q)=>{let w=(Q===null||Q===void 0?void 0:Q.statusCode)||(Q===null||Q===void 0?void 0:Q.code)||Z+"";X(new lX(QW(Q),Z,w))}).catch(()=>{let Q=Z+"";X(new lX(J.statusText||`HTTP ${Z} error`,Z,Q))});else{let Q=Z+"";X(new lX(J.statusText||`HTTP ${Z} error`,Z,Q))}}else X(new GW(QW(D),D))},mv=(D,X,Y,Z)=>{let J={method:D,headers:(X===null||X===void 0?void 0:X.headers)||{}};if(D==="GET"||!Z)return J;if(OW(Z))J.headers=G0({"Content-Type":"application/json"},X===null||X===void 0?void 0:X.headers),J.body=JSON.stringify(Z);else J.body=Z;return G0(G0({},J),Y)};async function dv(D,X,Y,Z,J,Q){return new Promise((w,F)=>{D(Y,mv(X,Z,J,Q)).then((B)=>{if(!B.ok)throw B;if(Z===null||Z===void 0?void 0:Z.noResolveJson)return B;let q=B.headers.get("content-type");if(!q||!q.includes("application/json"))return{};return B.json()}).then((B)=>w(B)).catch((B)=>gv(B,F,Z))})}async function u1(D,X,Y,Z,J){return dv(D,"POST",X,Z,J,Y)}var WW=class{constructor(D,X={},Y){this.shouldThrowOnError=!1,this.url=D.replace(/\/$/,""),this.headers=G0(G0({},gQ),X),this.fetch=iX(Y)}throwOnError(){return this.shouldThrowOnError=!0,this}async createIndex(D){var X=this;try{return{data:await u1(X.fetch,`${X.url}/CreateIndex`,D,{headers:X.headers})||{},error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}async getIndex(D,X){var Y=this;try{return{data:await u1(Y.fetch,`${Y.url}/GetIndex`,{vectorBucketName:D,indexName:X},{headers:Y.headers}),error:null}}catch(Z){if(Y.shouldThrowOnError)throw Z;if(E1(Z))return{data:null,error:Z};throw Z}}async listIndexes(D){var X=this;try{return{data:await u1(X.fetch,`${X.url}/ListIndexes`,D,{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}async deleteIndex(D,X){var Y=this;try{return{data:await u1(Y.fetch,`${Y.url}/DeleteIndex`,{vectorBucketName:D,indexName:X},{headers:Y.headers})||{},error:null}}catch(Z){if(Y.shouldThrowOnError)throw Z;if(E1(Z))return{data:null,error:Z};throw Z}}},HW=class{constructor(D,X={},Y){this.shouldThrowOnError=!1,this.url=D.replace(/\/$/,""),this.headers=G0(G0({},gQ),X),this.fetch=iX(Y)}throwOnError(){return this.shouldThrowOnError=!0,this}async putVectors(D){var X=this;try{if(D.vectors.length<1||D.vectors.length>500)throw Error("Vector batch size must be between 1 and 500 items");return{data:await u1(X.fetch,`${X.url}/PutVectors`,D,{headers:X.headers})||{},error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}async getVectors(D){var X=this;try{return{data:await u1(X.fetch,`${X.url}/GetVectors`,D,{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}async listVectors(D){var X=this;try{if(D.segmentCount!==void 0){if(D.segmentCount<1||D.segmentCount>16)throw Error("segmentCount must be between 1 and 16");if(D.segmentIndex!==void 0){if(D.segmentIndex<0||D.segmentIndex>=D.segmentCount)throw Error(`segmentIndex must be between 0 and ${D.segmentCount-1}`)}}return{data:await u1(X.fetch,`${X.url}/ListVectors`,D,{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}async queryVectors(D){var X=this;try{return{data:await u1(X.fetch,`${X.url}/QueryVectors`,D,{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}async deleteVectors(D){var X=this;try{if(D.keys.length<1||D.keys.length>500)throw Error("Keys batch size must be between 1 and 500 items");return{data:await u1(X.fetch,`${X.url}/DeleteVectors`,D,{headers:X.headers})||{},error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}},KW=class{constructor(D,X={},Y){this.shouldThrowOnError=!1,this.url=D.replace(/\/$/,""),this.headers=G0(G0({},gQ),X),this.fetch=iX(Y)}throwOnError(){return this.shouldThrowOnError=!0,this}async createBucket(D){var X=this;try{return{data:await u1(X.fetch,`${X.url}/CreateVectorBucket`,{vectorBucketName:D},{headers:X.headers})||{},error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}async getBucket(D){var X=this;try{return{data:await u1(X.fetch,`${X.url}/GetVectorBucket`,{vectorBucketName:D},{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}async listBuckets(D={}){var X=this;try{return{data:await u1(X.fetch,`${X.url}/ListVectorBuckets`,D,{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}async deleteBucket(D){var X=this;try{return{data:await u1(X.fetch,`${X.url}/DeleteVectorBucket`,{vectorBucketName:D},{headers:X.headers})||{},error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}},zW=class extends KW{constructor(D,X={}){super(D,X.headers||{},X.fetch)}from(D){return new MW(this.url,this.headers,D,this.fetch)}async createBucket(D){var X=()=>super.createBucket,Y=this;return X().call(Y,D)}async getBucket(D){var X=()=>super.getBucket,Y=this;return X().call(Y,D)}async listBuckets(D={}){var X=()=>super.listBuckets,Y=this;return X().call(Y,D)}async deleteBucket(D){var X=()=>super.deleteBucket,Y=this;return X().call(Y,D)}},MW=class extends WW{constructor(D,X,Y,Z){super(D,X,Z);this.vectorBucketName=Y}async createIndex(D){var X=()=>super.createIndex,Y=this;return X().call(Y,G0(G0({},D),{},{vectorBucketName:Y.vectorBucketName}))}async listIndexes(D={}){var X=()=>super.listIndexes,Y=this;return X().call(Y,G0(G0({},D),{},{vectorBucketName:Y.vectorBucketName}))}async getIndex(D){var X=()=>super.getIndex,Y=this;return X().call(Y,Y.vectorBucketName,D)}async deleteIndex(D){var X=()=>super.deleteIndex,Y=this;return X().call(Y,Y.vectorBucketName,D)}index(D){return new LW(this.url,this.headers,this.vectorBucketName,D,this.fetch)}},LW=class extends HW{constructor(D,X,Y,Z,J){super(D,X,J);this.vectorBucketName=Y,this.indexName=Z}async putVectors(D){var X=()=>super.putVectors,Y=this;return X().call(Y,G0(G0({},D),{},{vectorBucketName:Y.vectorBucketName,indexName:Y.indexName}))}async getVectors(D){var X=()=>super.getVectors,Y=this;return X().call(Y,G0(G0({},D),{},{vectorBucketName:Y.vectorBucketName,indexName:Y.indexName}))}async listVectors(D={}){var X=()=>super.listVectors,Y=this;return X().call(Y,G0(G0({},D),{},{vectorBucketName:Y.vectorBucketName,indexName:Y.indexName}))}async queryVectors(D){var X=()=>super.queryVectors,Y=this;return X().call(Y,G0(G0({},D),{},{vectorBucketName:Y.vectorBucketName,indexName:Y.indexName}))}async deleteVectors(D){var X=()=>super.deleteVectors,Y=this;return X().call(Y,G0(G0({},D),{},{vectorBucketName:Y.vectorBucketName,indexName:Y.indexName}))}},dQ=class extends uv{constructor(D,X={},Y,Z){super(D,X,Y,Z)}from(D){return new kv(this.url,this.headers,D,this.fetch)}get vectors(){return new zW(this.url+"/vector",{headers:this.headers,fetch:this.fetch})}get analytics(){return new $W(this.url+"/iceberg",this.headers,this.fetch)}};var qH=R0($w(),1);J0(Z0,R0(kQ(),1),module.exports);J0(Z0,R0($w(),1),module.exports);var Mg="2.89.0",j4="";if(typeof Deno<"u")j4="deno";else if(typeof document<"u")j4="web";else if(typeof navigator<"u"&&navigator.product==="ReactNative")j4="react-native";else j4="node";var Lg={"X-Client-Info":`supabase-js-${j4}/${Mg}`},Vg={headers:Lg},Ug={schema:"public"},Ng={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:"implicit"},Rg={};function T4(D){return T4=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(X){return typeof X}:function(X){return X&&typeof Symbol=="function"&&X.constructor===Symbol&&X!==Symbol.prototype?"symbol":typeof X},T4(D)}function Ag(D,X){if(T4(D)!="object"||!D)return D;var Y=D[Symbol.toPrimitive];if(Y!==void 0){var Z=Y.call(D,X||"default");if(T4(Z)!="object")return Z;throw TypeError("@@toPrimitive must return a primitive value.")}return(X==="string"?String:Number)(D)}function Eg(D){var X=Ag(D,"string");return T4(X)=="symbol"?X:X+""}function Cg(D,X,Y){return(X=Eg(X))in D?Object.defineProperty(D,X,{value:Y,enumerable:!0,configurable:!0,writable:!0}):D[X]=Y,D}function FH(D,X){var Y=Object.keys(D);if(Object.getOwnPropertySymbols){var Z=Object.getOwnPropertySymbols(D);X&&(Z=Z.filter(function(J){return Object.getOwnPropertyDescriptor(D,J).enumerable})),Y.push.apply(Y,Z)}return Y}function UD(D){for(var X=1;X<arguments.length;X++){var Y=arguments[X]!=null?arguments[X]:{};X%2?FH(Object(Y),!0).forEach(function(Z){Cg(D,Z,Y[Z])}):Object.getOwnPropertyDescriptors?Object.defineProperties(D,Object.getOwnPropertyDescriptors(Y)):FH(Object(Y)).forEach(function(Z){Object.defineProperty(D,Z,Object.getOwnPropertyDescriptor(Y,Z))})}return D}var jg=(D)=>{if(D)return(...X)=>D(...X);return(...X)=>fetch(...X)},Tg=()=>{return Headers},Ig=(D,X,Y)=>{let Z=jg(Y),J=Tg();return async(Q,w)=>{var F;let B=(F=await X())!==null&&F!==void 0?F:D,q=new J(w===null||w===void 0?void 0:w.headers);if(!q.has("apikey"))q.set("apikey",D);if(!q.has("Authorization"))q.set("Authorization",`Bearer ${B}`);return Z(Q,UD(UD({},w),{},{headers:q}))}};function Pg(D){return D.endsWith("/")?D:D+"/"}function Sg(D,X){var Y,Z;let{db:J,auth:Q,realtime:w,global:F}=D,{db:B,auth:q,realtime:$,global:G}=X,W={db:UD(UD({},B),J),auth:UD(UD({},q),Q),realtime:UD(UD({},$),w),storage:{},global:UD(UD(UD({},G),F),{},{headers:UD(UD({},(Y=G===null||G===void 0?void 0:G.headers)!==null&&Y!==void 0?Y:{}),(Z=F===null||F===void 0?void 0:F.headers)!==null&&Z!==void 0?Z:{})}),accessToken:async()=>""};if(D.accessToken)W.accessToken=D.accessToken;else delete W.accessToken;return W}function xg(D){let X=D===null||D===void 0?void 0:D.trim();if(!X)throw Error("supabaseUrl is required.");if(!X.match(/^https?:\/\//i))throw Error("Invalid supabaseUrl: Must be a valid HTTP or HTTPS URL.");try{return new URL(Pg(X))}catch(Y){throw Error("Invalid supabaseUrl: Provided URL is malformed.")}}var fg=class extends qH.AuthClient{constructor(D){super(D)}},$H=class{constructor(D,X,Y){var Z,J;this.supabaseUrl=D,this.supabaseKey=X;let Q=xg(D);if(!X)throw Error("supabaseKey is required.");this.realtimeUrl=new URL("realtime/v1",Q),this.realtimeUrl.protocol=this.realtimeUrl.protocol.replace("http","ws"),this.authUrl=new URL("auth/v1",Q),this.storageUrl=new URL("storage/v1",Q),this.functionsUrl=new URL("functions/v1",Q);let w=`sb-${Q.hostname.split(".")[0]}-auth-token`,F={db:Ug,realtime:Rg,auth:UD(UD({},Ng),{},{storageKey:w}),global:Vg},B=Sg(Y!==null&&Y!==void 0?Y:{},F);if(this.storageKey=(Z=B.auth.storageKey)!==null&&Z!==void 0?Z:"",this.headers=(J=B.global.headers)!==null&&J!==void 0?J:{},!B.accessToken){var q;this.auth=this._initSupabaseAuthClient((q=B.auth)!==null&&q!==void 0?q:{},this.headers,B.global.fetch)}else this.accessToken=B.accessToken,this.auth=new Proxy({},{get:($,G)=>{throw Error(`@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(G)} is not possible`)}});if(this.fetch=Ig(X,this._getAccessToken.bind(this),B.global.fetch),this.realtime=this._initRealtimeClient(UD({headers:this.headers,accessToken:this._getAccessToken.bind(this)},B.realtime)),this.accessToken)this.accessToken().then(($)=>this.realtime.setAuth($)).catch(($)=>console.warn("Failed to set initial Realtime auth token:",$));if(this.rest=new uX(new URL("rest/v1",Q).href,{headers:this.headers,schema:B.db.schema,fetch:this.fetch}),this.storage=new dQ(this.storageUrl.href,this.headers,this.fetch,Y===null||Y===void 0?void 0:Y.storage),!B.accessToken)this._listenForAuthEvents()}get functions(){return new D1.FunctionsClient(this.functionsUrl.href,{headers:this.headers,customFetch:this.fetch})}from(D){return this.rest.from(D)}schema(D){return this.rest.schema(D)}rpc(D,X={},Y={head:!1,get:!1,count:void 0}){return this.rest.rpc(D,X,Y)}channel(D,X={config:{}}){return this.realtime.channel(D,X)}getChannels(){return this.realtime.getChannels()}removeChannel(D){return this.realtime.removeChannel(D)}removeAllChannels(){return this.realtime.removeAllChannels()}async _getAccessToken(){var D=this,X,Y;if(D.accessToken)return await D.accessToken();let{data:Z}=await D.auth.getSession();return(X=(Y=Z.session)===null||Y===void 0?void 0:Y.access_token)!==null&&X!==void 0?X:D.supabaseKey}_initSupabaseAuthClient({autoRefreshToken:D,persistSession:X,detectSessionInUrl:Y,storage:Z,userStorage:J,storageKey:Q,flowType:w,lock:F,debug:B,throwOnError:q},$,G){let W={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new fg({url:this.authUrl.href,headers:UD(UD({},W),$),storageKey:Q,autoRefreshToken:D,persistSession:X,detectSessionInUrl:Y,storage:Z,userStorage:J,flowType:w,lock:F,debug:B,throwOnError:q,fetch:G,hasCustomAuthorizationHeader:Object.keys(this.headers).some((O)=>O.toLowerCase()==="authorization")})}_initRealtimeClient(D){return new BH.RealtimeClient(this.realtimeUrl.href,UD(UD({},D),{},{params:UD(UD({},{apikey:this.supabaseKey}),D===null||D===void 0?void 0:D.params)}))}_listenForAuthEvents(){return this.auth.onAuthStateChange((D,X)=>{this._handleTokenChanged(D,"CLIENT",X===null||X===void 0?void 0:X.access_token)})}_handleTokenChanged(D,X,Y){if((D==="TOKEN_REFRESHED"||D==="SIGNED_IN")&&this.changedAccessToken!==Y)this.changedAccessToken=Y,this.realtime.setAuth(Y);else if(D==="SIGNED_OUT"){if(this.realtime.setAuth(),X=="STORAGE")this.auth.signOut();this.changedAccessToken=void 0}}},Gw=(D,X,Y)=>{return new $H(D,X,Y)};function yg(){if(typeof window<"u")return!1;if(typeof process>"u")return!1;let D=process.version;if(D===void 0||D===null)return!1;let X=D.match(/^v(\d+)\./);if(!X)return!1;return parseInt(X[1],10)<=18}if(yg())console.warn("⚠️ Node.js 18 and below are deprecated and will no longer be supported in future versions of @supabase/supabase-js. Please upgrade to Node.js 20 or later. For more information, visit: https://github.com/orgs/supabase/discussions/37217");var f$=R0(Mw(),1),Sy=R0(LK(),1),GJ=R0($Z(),1);var o8={name:"@capgo/cli",type:"module",version:"7.71.10",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 && bun build.mjs",dev:"NODE_ENV=development ncc build","no-debug":"node dist/index.js","dev-build":"SUPA_DB=development ncc build",pack:"pkg",types:"npx --yes supabase gen types typescript --project-id=xvwzpoazmxkqosrdewyv > src/types/supabase.types.ts",typecheck:"tsc --noEmit",lint:'eslint "src/**/*.ts" --fix',"check-posix-paths":"node test/check-posix-paths.js","generate-docs":"node dist/index.js generate-docs README.md","test:bundle":"bun test/test-bundle.mjs","test:functional":"bun test/test-functional.mjs","test:semver":"bun test/test-semver-validation.mjs","test:version-edge-cases":"bun test/test-version-validation.mjs","test:regex":"bun test/test-regex-validation.mjs","test:upload":"bun test/test-upload-validation.mjs","test:credentials":"bun test/test-credentials.mjs","test:credentials-validation":"bun test/test-credentials-validation.mjs","test:checksum":"bun test/test-checksum-algorithm.mjs","test:version-detection":"node test/test-get-installed-version.mjs","test:version-detection:setup":"./test/fixtures/setup-test-projects.sh",test:"bun run test:bundle && bun run test:functional && bun run test:semver && bun run test:version-edge-cases && bun run test:regex && bun run test:upload && bun run test:credentials && bun run test:credentials-validation && bun run test:checksum && bun run test:version-detection"},devDependencies:{"@antfu/eslint-config":"^6.1.0","@bradenmacdonald/s3-lite-client":"npm:@jsr/bradenmacdonald__s3-lite-client@0.9.4","@capacitor/cli":"^8.0.0","@capgo/find-package-manager":"^0.0.18","@clack/prompts":"^0.11.0","@modelcontextprotocol/sdk":"^1.0.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","@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",eslint:"^9.38.0","git-format-staged":"3.1.3",husky:"^9.1.7","is-wsl":"^3.1.0",micromatch:"^4.0.8",open:"^11.0.0",prettyjson:"^1.2.5",tmp:"^0.2.5","tus-js-client":"^4.3.1",typescript:"^5.9.3",zod:"^3.24.0"}};async function GZ(D){try{let Y=`https://registry.npmjs.org/${encodeURIComponent(D.toLowerCase())}`,Z=await fetch(Y,{headers:{accept:"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"}});if(!Z.ok)return null;return(await Z.json())["dist-tags"]?.latest||null}catch{return null}}async function o0(){let D=await GZ("@capgo/cli")??"",X=D?.split(".")[0];if(D!==o8.version)K.warning(`\uD83D\uDEA8 You are using @capgo/cli@${o8.version} it's not the latest version.
315
- Please use @capgo/cli@${D}" or @capgo/cli@${X} to keep up to date with the latest features and bug fixes.`)}async function CL(D,X,Y,Z,J,Q="✅"){await H0(Y,{channel:D,event:Z,icon:Q,user_id:X,...J?{tags:{"app-id":J}}:{},notify:!1})}var yF=require("node:buffer"),jL=require("node:crypto"),Ba=(()=>{let D=[];for(let X=0;X<256;X++){let Y=X;for(let Z=0;Z<8;Z++)Y=Y&1?3988292384^Y>>>1:Y>>>1;D[X]=Y}return D})();function qa(D){let X=4294967295;for(let Y=0;Y<D.length;Y++){let Z=D[Y];X=Ba[(X^Z)&255]^X>>>8}return X=X^4294967295,(X>>>0).toString(16).padStart(8,"0")}async function y6(D,X="sha256"){let Y=yF.Buffer.isBuffer(D)?D:yF.Buffer.from(D);if(X==="crc32")return qa(Y);let Z=jL.createHash(X);return Z.update(Y),Z.digest("hex")}var r3=R0(hf(),1);async function _f(){let D=await r3.loadConfig();return{config:D.app.extConfig,path:D.app.extConfigFilePath}}async function B$(D,X,Y=!1){let Z=await r3.loadConfig(),{extConfig:J}=Z.app;if(J){if(!J.plugins)J.plugins={extConfig:{},[D]:{}};if(!J.plugins[D])J.plugins[D]={};if(!Y)J.plugins[D]=X.config.plugins?.[D];else J=X.config;r3.writeConfig(J,Z.app.extConfigFilePath)}}async function h7(D,X=!1){await B$("CapacitorUpdater",D,X)}var _7={ORG_REQUIRES_EXPIRING_KEY:"org_requires_expiring_key",EXPIRATION_REQUIRED:"expiration_required",EXPIRATION_EXCEEDS_MAX:"expiration_exceeds_max"},s3={[_7.ORG_REQUIRES_EXPIRING_KEY]:`This organization requires API keys with expiration dates.
314
+ ${B.stack}`}else{var O;F=(O=Q===null||Q===void 0?void 0:Q.stack)!==null&&O!==void 0?O:""}return{error:{message:`${(w=Q===null||Q===void 0?void 0:Q.name)!==null&&w!==void 0?w:"FetchError"}: ${Q===null||Q===void 0?void 0:Q.message}`,details:F,hint:"",code:""},data:null,count:null,status:0,statusText:""}});return J.then(D,X)}returns(){return this}overrideTypes(){return this}},UQ=class extends VQ{select(D){let X=!1,Y=(D!==null&&D!==void 0?D:"*").split("").map((Z)=>{if(/\s/.test(Z)&&!X)return"";if(Z==='"')X=!X;return Z}).join("");return this.url.searchParams.set("select",Y),this.headers.append("Prefer","return=representation"),this}order(D,{ascending:X=!0,nullsFirst:Y,foreignTable:Z,referencedTable:J=Z}={}){let Q=J?`${J}.order`:"order",w=this.url.searchParams.get(Q);return this.url.searchParams.set(Q,`${w?`${w},`:""}${D}.${X?"asc":"desc"}${Y===void 0?"":Y?".nullsfirst":".nullslast"}`),this}limit(D,{foreignTable:X,referencedTable:Y=X}={}){let Z=typeof Y>"u"?"limit":`${Y}.limit`;return this.url.searchParams.set(Z,`${D}`),this}range(D,X,{foreignTable:Y,referencedTable:Z=Y}={}){let J=typeof Z>"u"?"offset":`${Z}.offset`,Q=typeof Z>"u"?"limit":`${Z}.limit`;return this.url.searchParams.set(J,`${D}`),this.url.searchParams.set(Q,`${X-D+1}`),this}abortSignal(D){return this.signal=D,this}single(){return this.headers.set("Accept","application/vnd.pgrst.object+json"),this}maybeSingle(){if(this.method==="GET")this.headers.set("Accept","application/json");else this.headers.set("Accept","application/vnd.pgrst.object+json");return this.isMaybeSingle=!0,this}csv(){return this.headers.set("Accept","text/csv"),this}geojson(){return this.headers.set("Accept","application/geo+json"),this}explain({analyze:D=!1,verbose:X=!1,settings:Y=!1,buffers:Z=!1,wal:J=!1,format:Q="text"}={}){var w;let F=[D?"analyze":null,X?"verbose":null,Y?"settings":null,Z?"buffers":null,J?"wal":null].filter(Boolean).join("|"),B=(w=this.headers.get("Accept"))!==null&&w!==void 0?w:"application/json";if(this.headers.set("Accept",`application/vnd.pgrst.plan+${Q}; for="${B}"; options=${F};`),Q==="json")return this;else return this}rollback(){return this.headers.append("Prefer","tx=rollback"),this}returns(){return this}maxAffected(D){return this.headers.append("Prefer","handling=strict"),this.headers.append("Prefer",`max-affected=${D}`),this}},hO=new RegExp("[,()]"),C6=class extends UQ{eq(D,X){return this.url.searchParams.append(D,`eq.${X}`),this}neq(D,X){return this.url.searchParams.append(D,`neq.${X}`),this}gt(D,X){return this.url.searchParams.append(D,`gt.${X}`),this}gte(D,X){return this.url.searchParams.append(D,`gte.${X}`),this}lt(D,X){return this.url.searchParams.append(D,`lt.${X}`),this}lte(D,X){return this.url.searchParams.append(D,`lte.${X}`),this}like(D,X){return this.url.searchParams.append(D,`like.${X}`),this}likeAllOf(D,X){return this.url.searchParams.append(D,`like(all).{${X.join(",")}}`),this}likeAnyOf(D,X){return this.url.searchParams.append(D,`like(any).{${X.join(",")}}`),this}ilike(D,X){return this.url.searchParams.append(D,`ilike.${X}`),this}ilikeAllOf(D,X){return this.url.searchParams.append(D,`ilike(all).{${X.join(",")}}`),this}ilikeAnyOf(D,X){return this.url.searchParams.append(D,`ilike(any).{${X.join(",")}}`),this}regexMatch(D,X){return this.url.searchParams.append(D,`match.${X}`),this}regexIMatch(D,X){return this.url.searchParams.append(D,`imatch.${X}`),this}is(D,X){return this.url.searchParams.append(D,`is.${X}`),this}isDistinct(D,X){return this.url.searchParams.append(D,`isdistinct.${X}`),this}in(D,X){let Y=Array.from(new Set(X)).map((Z)=>{if(typeof Z==="string"&&hO.test(Z))return`"${Z}"`;else return`${Z}`}).join(",");return this.url.searchParams.append(D,`in.(${Y})`),this}notIn(D,X){let Y=Array.from(new Set(X)).map((Z)=>{if(typeof Z==="string"&&hO.test(Z))return`"${Z}"`;else return`${Z}`}).join(",");return this.url.searchParams.append(D,`not.in.(${Y})`),this}contains(D,X){if(typeof X==="string")this.url.searchParams.append(D,`cs.${X}`);else if(Array.isArray(X))this.url.searchParams.append(D,`cs.{${X.join(",")}}`);else this.url.searchParams.append(D,`cs.${JSON.stringify(X)}`);return this}containedBy(D,X){if(typeof X==="string")this.url.searchParams.append(D,`cd.${X}`);else if(Array.isArray(X))this.url.searchParams.append(D,`cd.{${X.join(",")}}`);else this.url.searchParams.append(D,`cd.${JSON.stringify(X)}`);return this}rangeGt(D,X){return this.url.searchParams.append(D,`sr.${X}`),this}rangeGte(D,X){return this.url.searchParams.append(D,`nxl.${X}`),this}rangeLt(D,X){return this.url.searchParams.append(D,`sl.${X}`),this}rangeLte(D,X){return this.url.searchParams.append(D,`nxr.${X}`),this}rangeAdjacent(D,X){return this.url.searchParams.append(D,`adj.${X}`),this}overlaps(D,X){if(typeof X==="string")this.url.searchParams.append(D,`ov.${X}`);else this.url.searchParams.append(D,`ov.{${X.join(",")}}`);return this}textSearch(D,X,{config:Y,type:Z}={}){let J="";if(Z==="plain")J="pl";else if(Z==="phrase")J="ph";else if(Z==="websearch")J="w";let Q=Y===void 0?"":`(${Y})`;return this.url.searchParams.append(D,`${J}fts${Q}.${X}`),this}match(D){return Object.entries(D).forEach(([X,Y])=>{this.url.searchParams.append(X,`eq.${Y}`)}),this}not(D,X,Y){return this.url.searchParams.append(D,`not.${X}.${Y}`),this}or(D,{foreignTable:X,referencedTable:Y=X}={}){let Z=Y?`${Y}.or`:"or";return this.url.searchParams.append(Z,`(${D})`),this}filter(D,X,Y){return this.url.searchParams.append(D,`${X}.${Y}`),this}},NQ=class{constructor(D,{headers:X={},schema:Y,fetch:Z}){this.url=D,this.headers=new Headers(X),this.schema=Y,this.fetch=Z}select(D,X){let{head:Y=!1,count:Z}=X!==null&&X!==void 0?X:{},J=Y?"HEAD":"GET",Q=!1,w=(D!==null&&D!==void 0?D:"*").split("").map((F)=>{if(/\s/.test(F)&&!Q)return"";if(F==='"')Q=!Q;return F}).join("");if(this.url.searchParams.set("select",w),Z)this.headers.append("Prefer",`count=${Z}`);return new C6({method:J,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch})}insert(D,{count:X,defaultToNull:Y=!0}={}){var Z;let J="POST";if(X)this.headers.append("Prefer",`count=${X}`);if(!Y)this.headers.append("Prefer","missing=default");if(Array.isArray(D)){let Q=D.reduce((w,F)=>w.concat(Object.keys(F)),[]);if(Q.length>0){let w=[...new Set(Q)].map((F)=>`"${F}"`);this.url.searchParams.set("columns",w.join(","))}}return new C6({method:"POST",url:this.url,headers:this.headers,schema:this.schema,body:D,fetch:(Z=this.fetch)!==null&&Z!==void 0?Z:fetch})}upsert(D,{onConflict:X,ignoreDuplicates:Y=!1,count:Z,defaultToNull:J=!0}={}){var Q;let w="POST";if(this.headers.append("Prefer",`resolution=${Y?"ignore":"merge"}-duplicates`),X!==void 0)this.url.searchParams.set("on_conflict",X);if(Z)this.headers.append("Prefer",`count=${Z}`);if(!J)this.headers.append("Prefer","missing=default");if(Array.isArray(D)){let F=D.reduce((B,q)=>B.concat(Object.keys(q)),[]);if(F.length>0){let B=[...new Set(F)].map((q)=>`"${q}"`);this.url.searchParams.set("columns",B.join(","))}}return new C6({method:"POST",url:this.url,headers:this.headers,schema:this.schema,body:D,fetch:(Q=this.fetch)!==null&&Q!==void 0?Q:fetch})}update(D,{count:X}={}){var Y;let Z="PATCH";if(X)this.headers.append("Prefer",`count=${X}`);return new C6({method:"PATCH",url:this.url,headers:this.headers,schema:this.schema,body:D,fetch:(Y=this.fetch)!==null&&Y!==void 0?Y:fetch})}delete({count:D}={}){var X;let Y="DELETE";if(D)this.headers.append("Prefer",`count=${D}`);return new C6({method:"DELETE",url:this.url,headers:this.headers,schema:this.schema,fetch:(X=this.fetch)!==null&&X!==void 0?X:fetch})}},uX=class D{constructor(X,{headers:Y={},schema:Z,fetch:J}={}){this.url=X,this.headers=new Headers(Y),this.schemaName=Z,this.fetch=J}from(X){if(!X||typeof X!=="string"||X.trim()==="")throw Error("Invalid relation name: relation must be a non-empty string.");return new NQ(new URL(`${this.url}/${X}`),{headers:new Headers(this.headers),schema:this.schemaName,fetch:this.fetch})}schema(X){return new D(this.url,{headers:this.headers,schema:X,fetch:this.fetch})}rpc(X,Y={},{head:Z=!1,get:J=!1,count:Q}={}){var w;let F,B=new URL(`${this.url}/rpc/${X}`),q;if(Z||J)F=Z?"HEAD":"GET",Object.entries(Y).filter(([G,W])=>W!==void 0).map(([G,W])=>[G,Array.isArray(W)?`{${W.join(",")}}`:`${W}`]).forEach(([G,W])=>{B.searchParams.append(G,W)});else F="POST",q=Y;let $=new Headers(this.headers);if(Q)$.set("Prefer",`count=${Q}`);return new C6({method:F,url:B,headers:$,schema:this.schemaName,body:q,fetch:(w=this.fetch)!==null&&w!==void 0?w:fetch})}},p_={PostgrestClient:uX,PostgrestQueryBuilder:NQ,PostgrestFilterBuilder:C6,PostgrestTransformBuilder:UQ,PostgrestBuilder:VQ,PostgrestError:G4};var BH=R0(kQ(),1);var VW={};D4(VW,{validateVectorDimension:()=>bv,resolveResponse:()=>_v,resolveFetch:()=>iX,normalizeToFloat32:()=>vv,isStorageVectorsError:()=>E1,isStorageError:()=>FD,isPlainObject:()=>OW,VectorIndexScope:()=>LW,VectorIndexApi:()=>WW,VectorDataApi:()=>HW,VectorBucketScope:()=>MW,VectorBucketApi:()=>KW,StorageVectorsUnknownError:()=>GW,StorageVectorsErrorCode:()=>hv,StorageVectorsError:()=>mQ,StorageVectorsClient:()=>zW,StorageVectorsApiError:()=>lX,StorageUnknownError:()=>nX,StorageError:()=>U4,StorageClient:()=>dQ,StorageApiError:()=>wW,StorageAnalyticsClient:()=>$W});var M4=class extends Error{constructor(D,X){super(D);this.name="IcebergError",this.status=X.status,this.icebergType=X.icebergType,this.icebergCode=X.icebergCode,this.details=X.details,this.isCommitStateUnknown=X.icebergType==="CommitStateUnknownException"||[500,502,504].includes(X.status)&&X.icebergType?.includes("CommitState")===!0}isNotFound(){return this.status===404}isConflict(){return this.status===409}isAuthenticationTimeout(){return this.status===419}};function Mv(D,X,Y){let Z=new URL(X,D);if(Y){for(let[J,Q]of Object.entries(Y))if(Q!==void 0)Z.searchParams.set(J,Q)}return Z.toString()}async function Lv(D){if(!D||D.type==="none")return{};if(D.type==="bearer")return{Authorization:`Bearer ${D.token}`};if(D.type==="header")return{[D.name]:D.value};if(D.type==="custom")return await D.getHeaders();return{}}function Vv(D){let X=D.fetchImpl??globalThis.fetch;return{async request({method:Y,path:Z,query:J,body:Q,headers:w}){let F=Mv(D.baseUrl,Z,J),B=await Lv(D.auth),q=await X(F,{method:Y,headers:{...Q?{"Content-Type":"application/json"}:{},...B,...w},body:Q?JSON.stringify(Q):void 0}),$=await q.text(),G=(q.headers.get("content-type")||"").includes("application/json"),W=G&&$?JSON.parse($):$;if(!q.ok){let O=G?W:void 0,H=O?.error;throw new M4(H?.message??`Request failed with status ${q.status}`,{status:q.status,icebergType:H?.type,icebergCode:H?.code,details:O})}return{status:q.status,headers:q.headers,data:W}}}}function cX(D){return D.join("\x1F")}var Uv=class{constructor(D,X=""){this.client=D,this.prefix=X}async listNamespaces(D){let X=D?{parent:cX(D.namespace)}:void 0;return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces`,query:X})).data.namespaces.map((Z)=>({namespace:Z}))}async createNamespace(D,X){let Y={namespace:D.namespace,properties:X?.properties};return(await this.client.request({method:"POST",path:`${this.prefix}/namespaces`,body:Y})).data}async dropNamespace(D){await this.client.request({method:"DELETE",path:`${this.prefix}/namespaces/${cX(D.namespace)}`})}async loadNamespaceMetadata(D){return{properties:(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${cX(D.namespace)}`})).data.properties}}async namespaceExists(D){try{return await this.client.request({method:"HEAD",path:`${this.prefix}/namespaces/${cX(D.namespace)}`}),!0}catch(X){if(X instanceof M4&&X.status===404)return!1;throw X}}async createNamespaceIfNotExists(D,X){try{return await this.createNamespace(D,X)}catch(Y){if(Y instanceof M4&&Y.status===409)return;throw Y}}};function I5(D){return D.join("\x1F")}var Nv=class{constructor(D,X="",Y){this.client=D,this.prefix=X,this.accessDelegation=Y}async listTables(D){return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${I5(D.namespace)}/tables`})).data.identifiers}async createTable(D,X){let Y={};if(this.accessDelegation)Y["X-Iceberg-Access-Delegation"]=this.accessDelegation;return(await this.client.request({method:"POST",path:`${this.prefix}/namespaces/${I5(D.namespace)}/tables`,body:X,headers:Y})).data.metadata}async updateTable(D,X){let Y=await this.client.request({method:"POST",path:`${this.prefix}/namespaces/${I5(D.namespace)}/tables/${D.name}`,body:X});return{"metadata-location":Y.data["metadata-location"],metadata:Y.data.metadata}}async dropTable(D,X){await this.client.request({method:"DELETE",path:`${this.prefix}/namespaces/${I5(D.namespace)}/tables/${D.name}`,query:{purgeRequested:String(X?.purge??!1)}})}async loadTable(D){let X={};if(this.accessDelegation)X["X-Iceberg-Access-Delegation"]=this.accessDelegation;return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${I5(D.namespace)}/tables/${D.name}`,headers:X})).data.metadata}async tableExists(D){let X={};if(this.accessDelegation)X["X-Iceberg-Access-Delegation"]=this.accessDelegation;try{return await this.client.request({method:"HEAD",path:`${this.prefix}/namespaces/${I5(D.namespace)}/tables/${D.name}`,headers:X}),!0}catch(Y){if(Y instanceof M4&&Y.status===404)return!1;throw Y}}async createTableIfNotExists(D,X){try{return await this.createTable(D,X)}catch(Y){if(Y instanceof M4&&Y.status===409)return await this.loadTable({namespace:D.namespace,name:X.name});throw Y}}},YW=class{constructor(D){let X="v1";if(D.catalogName)X+=`/${D.catalogName}`;let Y=D.baseUrl.endsWith("/")?D.baseUrl:`${D.baseUrl}/`;this.client=Vv({baseUrl:Y,auth:D.auth,fetchImpl:D.fetch}),this.accessDelegation=D.accessDelegation?.join(","),this.namespaceOps=new Uv(this.client,X),this.tableOps=new Nv(this.client,X,this.accessDelegation)}async listNamespaces(D){return this.namespaceOps.listNamespaces(D)}async createNamespace(D,X){return this.namespaceOps.createNamespace(D,X)}async dropNamespace(D){await this.namespaceOps.dropNamespace(D)}async loadNamespaceMetadata(D){return this.namespaceOps.loadNamespaceMetadata(D)}async listTables(D){return this.tableOps.listTables(D)}async createTable(D,X){return this.tableOps.createTable(D,X)}async updateTable(D,X){return this.tableOps.updateTable(D,X)}async dropTable(D,X){await this.tableOps.dropTable(D,X)}async loadTable(D){return this.tableOps.loadTable(D)}async namespaceExists(D){return this.namespaceOps.namespaceExists(D)}async tableExists(D){return this.tableOps.tableExists(D)}async createNamespaceIfNotExists(D,X){return this.namespaceOps.createNamespaceIfNotExists(D,X)}async createTableIfNotExists(D,X){return this.tableOps.createTableIfNotExists(D,X)}};var U4=class extends Error{constructor(D){super(D);this.__isStorageError=!0,this.name="StorageError"}};function FD(D){return typeof D==="object"&&D!==null&&"__isStorageError"in D}var wW=class extends U4{constructor(D,X,Y){super(D);this.name="StorageApiError",this.status=X,this.statusCode=Y}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}},nX=class extends U4{constructor(D,X){super(D);this.name="StorageUnknownError",this.originalError=X}},vQ=(D)=>{if(D)return(...X)=>D(...X);return(...X)=>fetch(...X)},Rv=()=>{return Response},hQ=(D)=>{if(Array.isArray(D))return D.map((Y)=>hQ(Y));else if(typeof D==="function"||D!==Object(D))return D;let X={};return Object.entries(D).forEach(([Y,Z])=>{let J=Y.replace(/([-_][a-z])/gi,(Q)=>Q.toUpperCase().replace(/[-_]/g,""));X[J]=hQ(Z)}),X},Av=(D)=>{if(typeof D!=="object"||D===null)return!1;let X=Object.getPrototypeOf(D);return(X===null||X===Object.prototype||Object.getPrototypeOf(X)===null)&&!(Symbol.toStringTag in D)&&!(Symbol.iterator in D)},Ev=(D)=>{if(!D||typeof D!=="string")return!1;if(D.length===0||D.length>100)return!1;if(D.trim()!==D)return!1;if(D.includes("/")||D.includes("\\"))return!1;return/^[\w!.\*'() &$@=;:+,?-]+$/.test(D)};function L4(D){return L4=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(X){return typeof X}:function(X){return X&&typeof Symbol=="function"&&X.constructor===Symbol&&X!==Symbol.prototype?"symbol":typeof X},L4(D)}function Cv(D,X){if(L4(D)!="object"||!D)return D;var Y=D[Symbol.toPrimitive];if(Y!==void 0){var Z=Y.call(D,X||"default");if(L4(Z)!="object")return Z;throw TypeError("@@toPrimitive must return a primitive value.")}return(X==="string"?String:Number)(D)}function jv(D){var X=Cv(D,"string");return L4(X)=="symbol"?X:X+""}function Tv(D,X,Y){return(X=jv(X))in D?Object.defineProperty(D,X,{value:Y,enumerable:!0,configurable:!0,writable:!0}):D[X]=Y,D}function ZW(D,X){var Y=Object.keys(D);if(Object.getOwnPropertySymbols){var Z=Object.getOwnPropertySymbols(D);X&&(Z=Z.filter(function(J){return Object.getOwnPropertyDescriptor(D,J).enumerable})),Y.push.apply(Y,Z)}return Y}function G0(D){for(var X=1;X<arguments.length;X++){var Y=arguments[X]!=null?arguments[X]:{};X%2?ZW(Object(Y),!0).forEach(function(Z){Tv(D,Z,Y[Z])}):Object.getOwnPropertyDescriptors?Object.defineProperties(D,Object.getOwnPropertyDescriptors(Y)):ZW(Object(Y)).forEach(function(Z){Object.defineProperty(D,Z,Object.getOwnPropertyDescriptor(Y,Z))})}return D}var uQ=(D)=>{var X;return D.msg||D.message||D.error_description||(typeof D.error==="string"?D.error:(X=D.error)===null||X===void 0?void 0:X.message)||JSON.stringify(D)},Iv=async(D,X,Y)=>{if(D instanceof await Rv()&&!(Y===null||Y===void 0?void 0:Y.noResolveJson))D.json().then((Z)=>{let J=D.status||500,Q=(Z===null||Z===void 0?void 0:Z.statusCode)||J+"";X(new wW(uQ(Z),J,Q))}).catch((Z)=>{X(new nX(uQ(Z),Z))});else X(new nX(uQ(D),D))},Pv=(D,X,Y,Z)=>{let J={method:D,headers:(X===null||X===void 0?void 0:X.headers)||{}};if(D==="GET"||!Z)return J;if(Av(Z))J.headers=G0({"Content-Type":"application/json"},X===null||X===void 0?void 0:X.headers),J.body=JSON.stringify(Z);else J.body=Z;if(X===null||X===void 0?void 0:X.duplex)J.duplex=X.duplex;return G0(G0({},J),Y)};async function N4(D,X,Y,Z,J,Q){return new Promise((w,F)=>{D(Y,Pv(X,Z,J,Q)).then((B)=>{if(!B.ok)throw B;if(Z===null||Z===void 0?void 0:Z.noResolveJson)return B;return B.json()}).then((B)=>w(B)).catch((B)=>Iv(B,F,Z))})}async function V4(D,X,Y,Z){return N4(D,"GET",X,Y,Z)}async function F8(D,X,Y,Z,J){return N4(D,"POST",X,Z,J,Y)}async function _Q(D,X,Y,Z,J){return N4(D,"PUT",X,Z,J,Y)}async function Sv(D,X,Y,Z){return N4(D,"HEAD",X,G0(G0({},Y),{},{noResolveJson:!0}),Z)}async function bQ(D,X,Y,Z,J){return N4(D,"DELETE",X,Z,J,Y)}var xv=class{constructor(D,X){this.downloadFn=D,this.shouldThrowOnError=X}then(D,X){return this.execute().then(D,X)}async execute(){var D=this;try{return{data:(await D.downloadFn()).body,error:null}}catch(X){if(D.shouldThrowOnError)throw X;if(FD(X))return{data:null,error:X};throw X}}},FW;FW=Symbol.toStringTag;var fv=class{constructor(D,X){this.downloadFn=D,this.shouldThrowOnError=X,this[FW]="BlobDownloadBuilder",this.promise=null}asStream(){return new xv(this.downloadFn,this.shouldThrowOnError)}then(D,X){return this.getPromise().then(D,X)}catch(D){return this.getPromise().catch(D)}finally(D){return this.getPromise().finally(D)}getPromise(){if(!this.promise)this.promise=this.execute();return this.promise}async execute(){var D=this;try{return{data:await(await D.downloadFn()).blob(),error:null}}catch(X){if(D.shouldThrowOnError)throw X;if(FD(X))return{data:null,error:X};throw X}}},yv={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},JW={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1},kv=class{constructor(D,X={},Y,Z){this.shouldThrowOnError=!1,this.url=D,this.headers=X,this.bucketId=Y,this.fetch=vQ(Z)}throwOnError(){return this.shouldThrowOnError=!0,this}async uploadOrUpdate(D,X,Y,Z){var J=this;try{let Q,w=G0(G0({},JW),Z),F=G0(G0({},J.headers),D==="POST"&&{"x-upsert":String(w.upsert)}),B=w.metadata;if(typeof Blob<"u"&&Y instanceof Blob){if(Q=new FormData,Q.append("cacheControl",w.cacheControl),B)Q.append("metadata",J.encodeMetadata(B));Q.append("",Y)}else if(typeof FormData<"u"&&Y instanceof FormData){if(Q=Y,!Q.has("cacheControl"))Q.append("cacheControl",w.cacheControl);if(B&&!Q.has("metadata"))Q.append("metadata",J.encodeMetadata(B))}else{if(Q=Y,F["cache-control"]=`max-age=${w.cacheControl}`,F["content-type"]=w.contentType,B)F["x-metadata"]=J.toBase64(J.encodeMetadata(B));if((typeof ReadableStream<"u"&&Q instanceof ReadableStream||Q&&typeof Q==="object"&&("pipe"in Q)&&typeof Q.pipe==="function")&&!w.duplex)w.duplex="half"}if(Z===null||Z===void 0?void 0:Z.headers)F=G0(G0({},F),Z.headers);let q=J._removeEmptyFolders(X),$=J._getFinalPath(q),G=await(D=="PUT"?_Q:F8)(J.fetch,`${J.url}/object/${$}`,Q,G0({headers:F},(w===null||w===void 0?void 0:w.duplex)?{duplex:w.duplex}:{}));return{data:{path:q,id:G.Id,fullPath:G.Key},error:null}}catch(Q){if(J.shouldThrowOnError)throw Q;if(FD(Q))return{data:null,error:Q};throw Q}}async upload(D,X,Y){return this.uploadOrUpdate("POST",D,X,Y)}async uploadToSignedUrl(D,X,Y,Z){var J=this;let Q=J._removeEmptyFolders(D),w=J._getFinalPath(Q),F=new URL(J.url+`/object/upload/sign/${w}`);F.searchParams.set("token",X);try{let B,q=G0({upsert:JW.upsert},Z),$=G0(G0({},J.headers),{"x-upsert":String(q.upsert)});if(typeof Blob<"u"&&Y instanceof Blob)B=new FormData,B.append("cacheControl",q.cacheControl),B.append("",Y);else if(typeof FormData<"u"&&Y instanceof FormData)B=Y,B.append("cacheControl",q.cacheControl);else B=Y,$["cache-control"]=`max-age=${q.cacheControl}`,$["content-type"]=q.contentType;return{data:{path:Q,fullPath:(await _Q(J.fetch,F.toString(),B,{headers:$})).Key},error:null}}catch(B){if(J.shouldThrowOnError)throw B;if(FD(B))return{data:null,error:B};throw B}}async createSignedUploadUrl(D,X){var Y=this;try{let Z=Y._getFinalPath(D),J=G0({},Y.headers);if(X===null||X===void 0?void 0:X.upsert)J["x-upsert"]="true";let Q=await F8(Y.fetch,`${Y.url}/object/upload/sign/${Z}`,{},{headers:J}),w=new URL(Y.url+Q.url),F=w.searchParams.get("token");if(!F)throw new U4("No token returned by API");return{data:{signedUrl:w.toString(),path:D,token:F},error:null}}catch(Z){if(Y.shouldThrowOnError)throw Z;if(FD(Z))return{data:null,error:Z};throw Z}}async update(D,X,Y){return this.uploadOrUpdate("PUT",D,X,Y)}async move(D,X,Y){var Z=this;try{return{data:await F8(Z.fetch,`${Z.url}/object/move`,{bucketId:Z.bucketId,sourceKey:D,destinationKey:X,destinationBucket:Y===null||Y===void 0?void 0:Y.destinationBucket},{headers:Z.headers}),error:null}}catch(J){if(Z.shouldThrowOnError)throw J;if(FD(J))return{data:null,error:J};throw J}}async copy(D,X,Y){var Z=this;try{return{data:{path:(await F8(Z.fetch,`${Z.url}/object/copy`,{bucketId:Z.bucketId,sourceKey:D,destinationKey:X,destinationBucket:Y===null||Y===void 0?void 0:Y.destinationBucket},{headers:Z.headers})).Key},error:null}}catch(J){if(Z.shouldThrowOnError)throw J;if(FD(J))return{data:null,error:J};throw J}}async createSignedUrl(D,X,Y){var Z=this;try{let J=Z._getFinalPath(D),Q=await F8(Z.fetch,`${Z.url}/object/sign/${J}`,G0({expiresIn:X},(Y===null||Y===void 0?void 0:Y.transform)?{transform:Y.transform}:{}),{headers:Z.headers}),w=(Y===null||Y===void 0?void 0:Y.download)?`&download=${Y.download===!0?"":Y.download}`:"";return Q={signedUrl:encodeURI(`${Z.url}${Q.signedURL}${w}`)},{data:Q,error:null}}catch(J){if(Z.shouldThrowOnError)throw J;if(FD(J))return{data:null,error:J};throw J}}async createSignedUrls(D,X,Y){var Z=this;try{let J=await F8(Z.fetch,`${Z.url}/object/sign/${Z.bucketId}`,{expiresIn:X,paths:D},{headers:Z.headers}),Q=(Y===null||Y===void 0?void 0:Y.download)?`&download=${Y.download===!0?"":Y.download}`:"";return{data:J.map((w)=>G0(G0({},w),{},{signedUrl:w.signedURL?encodeURI(`${Z.url}${w.signedURL}${Q}`):null})),error:null}}catch(J){if(Z.shouldThrowOnError)throw J;if(FD(J))return{data:null,error:J};throw J}}download(D,X){let Y=typeof(X===null||X===void 0?void 0:X.transform)<"u"?"render/image/authenticated":"object",Z=this.transformOptsToQueryString((X===null||X===void 0?void 0:X.transform)||{}),J=Z?`?${Z}`:"",Q=this._getFinalPath(D);return new fv(()=>V4(this.fetch,`${this.url}/${Y}/${Q}${J}`,{headers:this.headers,noResolveJson:!0}),this.shouldThrowOnError)}async info(D){var X=this;let Y=X._getFinalPath(D);try{return{data:hQ(await V4(X.fetch,`${X.url}/object/info/${Y}`,{headers:X.headers})),error:null}}catch(Z){if(X.shouldThrowOnError)throw Z;if(FD(Z))return{data:null,error:Z};throw Z}}async exists(D){var X=this;let Y=X._getFinalPath(D);try{return await Sv(X.fetch,`${X.url}/object/${Y}`,{headers:X.headers}),{data:!0,error:null}}catch(Z){if(X.shouldThrowOnError)throw Z;if(FD(Z)&&Z instanceof nX){let J=Z.originalError;if([400,404].includes(J===null||J===void 0?void 0:J.status))return{data:!1,error:Z}}throw Z}}getPublicUrl(D,X){let Y=this._getFinalPath(D),Z=[],J=(X===null||X===void 0?void 0:X.download)?`download=${X.download===!0?"":X.download}`:"";if(J!=="")Z.push(J);let Q=typeof(X===null||X===void 0?void 0:X.transform)<"u"?"render/image":"object",w=this.transformOptsToQueryString((X===null||X===void 0?void 0:X.transform)||{});if(w!=="")Z.push(w);let F=Z.join("&");if(F!=="")F=`?${F}`;return{data:{publicUrl:encodeURI(`${this.url}/${Q}/public/${Y}${F}`)}}}async remove(D){var X=this;try{return{data:await bQ(X.fetch,`${X.url}/object/${X.bucketId}`,{prefixes:D},{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(FD(Y))return{data:null,error:Y};throw Y}}async list(D,X,Y){var Z=this;try{let J=G0(G0(G0({},yv),X),{},{prefix:D||""});return{data:await F8(Z.fetch,`${Z.url}/object/list/${Z.bucketId}`,J,{headers:Z.headers},Y),error:null}}catch(J){if(Z.shouldThrowOnError)throw J;if(FD(J))return{data:null,error:J};throw J}}async listV2(D,X){var Y=this;try{let Z=G0({},D);return{data:await F8(Y.fetch,`${Y.url}/object/list-v2/${Y.bucketId}`,Z,{headers:Y.headers},X),error:null}}catch(Z){if(Y.shouldThrowOnError)throw Z;if(FD(Z))return{data:null,error:Z};throw Z}}encodeMetadata(D){return JSON.stringify(D)}toBase64(D){if(typeof Buffer<"u")return Buffer.from(D).toString("base64");return btoa(D)}_getFinalPath(D){return`${this.bucketId}/${D.replace(/^\/+/,"")}`}_removeEmptyFolders(D){return D.replace(/^\/|\/$/g,"").replace(/\/+/g,"/")}transformOptsToQueryString(D){let X=[];if(D.width)X.push(`width=${D.width}`);if(D.height)X.push(`height=${D.height}`);if(D.resize)X.push(`resize=${D.resize}`);if(D.format)X.push(`format=${D.format}`);if(D.quality)X.push(`quality=${D.quality}`);return X.join("&")}},BW="2.89.0",qW={"X-Client-Info":`storage-js/${BW}`},uv=class{constructor(D,X={},Y,Z){this.shouldThrowOnError=!1;let J=new URL(D);if(Z===null||Z===void 0?void 0:Z.useNewHostname){if(/supabase\.(co|in|red)$/.test(J.hostname)&&!J.hostname.includes("storage.supabase."))J.hostname=J.hostname.replace("supabase.","storage.supabase.")}this.url=J.href.replace(/\/$/,""),this.headers=G0(G0({},qW),X),this.fetch=vQ(Y)}throwOnError(){return this.shouldThrowOnError=!0,this}async listBuckets(D){var X=this;try{let Y=X.listBucketOptionsToQueryString(D);return{data:await V4(X.fetch,`${X.url}/bucket${Y}`,{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(FD(Y))return{data:null,error:Y};throw Y}}async getBucket(D){var X=this;try{return{data:await V4(X.fetch,`${X.url}/bucket/${D}`,{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(FD(Y))return{data:null,error:Y};throw Y}}async createBucket(D,X={public:!1}){var Y=this;try{return{data:await F8(Y.fetch,`${Y.url}/bucket`,{id:D,name:D,type:X.type,public:X.public,file_size_limit:X.fileSizeLimit,allowed_mime_types:X.allowedMimeTypes},{headers:Y.headers}),error:null}}catch(Z){if(Y.shouldThrowOnError)throw Z;if(FD(Z))return{data:null,error:Z};throw Z}}async updateBucket(D,X){var Y=this;try{return{data:await _Q(Y.fetch,`${Y.url}/bucket/${D}`,{id:D,name:D,public:X.public,file_size_limit:X.fileSizeLimit,allowed_mime_types:X.allowedMimeTypes},{headers:Y.headers}),error:null}}catch(Z){if(Y.shouldThrowOnError)throw Z;if(FD(Z))return{data:null,error:Z};throw Z}}async emptyBucket(D){var X=this;try{return{data:await F8(X.fetch,`${X.url}/bucket/${D}/empty`,{},{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(FD(Y))return{data:null,error:Y};throw Y}}async deleteBucket(D){var X=this;try{return{data:await bQ(X.fetch,`${X.url}/bucket/${D}`,{},{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(FD(Y))return{data:null,error:Y};throw Y}}listBucketOptionsToQueryString(D){let X={};if(D){if("limit"in D)X.limit=String(D.limit);if("offset"in D)X.offset=String(D.offset);if(D.search)X.search=D.search;if(D.sortColumn)X.sortColumn=D.sortColumn;if(D.sortOrder)X.sortOrder=D.sortOrder}return Object.keys(X).length>0?"?"+new URLSearchParams(X).toString():""}},$W=class{constructor(D,X={},Y){this.shouldThrowOnError=!1,this.url=D.replace(/\/$/,""),this.headers=G0(G0({},qW),X),this.fetch=vQ(Y)}throwOnError(){return this.shouldThrowOnError=!0,this}async createBucket(D){var X=this;try{return{data:await F8(X.fetch,`${X.url}/bucket`,{name:D},{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(FD(Y))return{data:null,error:Y};throw Y}}async listBuckets(D){var X=this;try{let Y=new URLSearchParams;if((D===null||D===void 0?void 0:D.limit)!==void 0)Y.set("limit",D.limit.toString());if((D===null||D===void 0?void 0:D.offset)!==void 0)Y.set("offset",D.offset.toString());if(D===null||D===void 0?void 0:D.sortColumn)Y.set("sortColumn",D.sortColumn);if(D===null||D===void 0?void 0:D.sortOrder)Y.set("sortOrder",D.sortOrder);if(D===null||D===void 0?void 0:D.search)Y.set("search",D.search);let Z=Y.toString(),J=Z?`${X.url}/bucket?${Z}`:`${X.url}/bucket`;return{data:await V4(X.fetch,J,{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(FD(Y))return{data:null,error:Y};throw Y}}async deleteBucket(D){var X=this;try{return{data:await bQ(X.fetch,`${X.url}/bucket/${D}`,{},{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(FD(Y))return{data:null,error:Y};throw Y}}from(D){var X=this;if(!Ev(D))throw new U4("Invalid bucket name: File, folder, and bucket names must follow AWS object key naming guidelines and should avoid the use of any other characters.");let Y=new YW({baseUrl:this.url,catalogName:D,auth:{type:"custom",getHeaders:async()=>X.headers},fetch:this.fetch}),Z=this.shouldThrowOnError;return new Proxy(Y,{get(J,Q){let w=J[Q];if(typeof w!=="function")return w;return async(...F)=>{try{return{data:await w.apply(J,F),error:null}}catch(B){if(Z)throw B;return{data:null,error:B}}}}})}},gQ={"X-Client-Info":`storage-js/${BW}`,"Content-Type":"application/json"},mQ=class extends Error{constructor(D){super(D);this.__isStorageVectorsError=!0,this.name="StorageVectorsError"}};function E1(D){return typeof D==="object"&&D!==null&&"__isStorageVectorsError"in D}var lX=class extends mQ{constructor(D,X,Y){super(D);this.name="StorageVectorsApiError",this.status=X,this.statusCode=Y}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}},GW=class extends mQ{constructor(D,X){super(D);this.name="StorageVectorsUnknownError",this.originalError=X}},hv=function(D){return D.InternalError="InternalError",D.S3VectorConflictException="S3VectorConflictException",D.S3VectorNotFoundException="S3VectorNotFoundException",D.S3VectorBucketNotEmpty="S3VectorBucketNotEmpty",D.S3VectorMaxBucketsExceeded="S3VectorMaxBucketsExceeded",D.S3VectorMaxIndexesExceeded="S3VectorMaxIndexesExceeded",D}({}),iX=(D)=>{if(D)return(...X)=>D(...X);return(...X)=>fetch(...X)},_v=()=>{return Response},OW=(D)=>{if(typeof D!=="object"||D===null)return!1;let X=Object.getPrototypeOf(D);return(X===null||X===Object.prototype||Object.getPrototypeOf(X)===null)&&!(Symbol.toStringTag in D)&&!(Symbol.iterator in D)},vv=(D)=>{return Array.from(new Float32Array(D))},bv=(D,X)=>{if(X!==void 0&&D.float32.length!==X)throw Error(`Vector dimension mismatch: expected ${X}, got ${D.float32.length}`)},QW=(D)=>D.msg||D.message||D.error_description||D.error||JSON.stringify(D),gv=async(D,X,Y)=>{if(D&&typeof D==="object"&&"status"in D&&"ok"in D&&typeof D.status==="number"&&!(Y===null||Y===void 0?void 0:Y.noResolveJson)){let Z=D.status||500,J=D;if(typeof J.json==="function")J.json().then((Q)=>{let w=(Q===null||Q===void 0?void 0:Q.statusCode)||(Q===null||Q===void 0?void 0:Q.code)||Z+"";X(new lX(QW(Q),Z,w))}).catch(()=>{let Q=Z+"";X(new lX(J.statusText||`HTTP ${Z} error`,Z,Q))});else{let Q=Z+"";X(new lX(J.statusText||`HTTP ${Z} error`,Z,Q))}}else X(new GW(QW(D),D))},mv=(D,X,Y,Z)=>{let J={method:D,headers:(X===null||X===void 0?void 0:X.headers)||{}};if(D==="GET"||!Z)return J;if(OW(Z))J.headers=G0({"Content-Type":"application/json"},X===null||X===void 0?void 0:X.headers),J.body=JSON.stringify(Z);else J.body=Z;return G0(G0({},J),Y)};async function dv(D,X,Y,Z,J,Q){return new Promise((w,F)=>{D(Y,mv(X,Z,J,Q)).then((B)=>{if(!B.ok)throw B;if(Z===null||Z===void 0?void 0:Z.noResolveJson)return B;let q=B.headers.get("content-type");if(!q||!q.includes("application/json"))return{};return B.json()}).then((B)=>w(B)).catch((B)=>gv(B,F,Z))})}async function u1(D,X,Y,Z,J){return dv(D,"POST",X,Z,J,Y)}var WW=class{constructor(D,X={},Y){this.shouldThrowOnError=!1,this.url=D.replace(/\/$/,""),this.headers=G0(G0({},gQ),X),this.fetch=iX(Y)}throwOnError(){return this.shouldThrowOnError=!0,this}async createIndex(D){var X=this;try{return{data:await u1(X.fetch,`${X.url}/CreateIndex`,D,{headers:X.headers})||{},error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}async getIndex(D,X){var Y=this;try{return{data:await u1(Y.fetch,`${Y.url}/GetIndex`,{vectorBucketName:D,indexName:X},{headers:Y.headers}),error:null}}catch(Z){if(Y.shouldThrowOnError)throw Z;if(E1(Z))return{data:null,error:Z};throw Z}}async listIndexes(D){var X=this;try{return{data:await u1(X.fetch,`${X.url}/ListIndexes`,D,{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}async deleteIndex(D,X){var Y=this;try{return{data:await u1(Y.fetch,`${Y.url}/DeleteIndex`,{vectorBucketName:D,indexName:X},{headers:Y.headers})||{},error:null}}catch(Z){if(Y.shouldThrowOnError)throw Z;if(E1(Z))return{data:null,error:Z};throw Z}}},HW=class{constructor(D,X={},Y){this.shouldThrowOnError=!1,this.url=D.replace(/\/$/,""),this.headers=G0(G0({},gQ),X),this.fetch=iX(Y)}throwOnError(){return this.shouldThrowOnError=!0,this}async putVectors(D){var X=this;try{if(D.vectors.length<1||D.vectors.length>500)throw Error("Vector batch size must be between 1 and 500 items");return{data:await u1(X.fetch,`${X.url}/PutVectors`,D,{headers:X.headers})||{},error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}async getVectors(D){var X=this;try{return{data:await u1(X.fetch,`${X.url}/GetVectors`,D,{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}async listVectors(D){var X=this;try{if(D.segmentCount!==void 0){if(D.segmentCount<1||D.segmentCount>16)throw Error("segmentCount must be between 1 and 16");if(D.segmentIndex!==void 0){if(D.segmentIndex<0||D.segmentIndex>=D.segmentCount)throw Error(`segmentIndex must be between 0 and ${D.segmentCount-1}`)}}return{data:await u1(X.fetch,`${X.url}/ListVectors`,D,{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}async queryVectors(D){var X=this;try{return{data:await u1(X.fetch,`${X.url}/QueryVectors`,D,{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}async deleteVectors(D){var X=this;try{if(D.keys.length<1||D.keys.length>500)throw Error("Keys batch size must be between 1 and 500 items");return{data:await u1(X.fetch,`${X.url}/DeleteVectors`,D,{headers:X.headers})||{},error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}},KW=class{constructor(D,X={},Y){this.shouldThrowOnError=!1,this.url=D.replace(/\/$/,""),this.headers=G0(G0({},gQ),X),this.fetch=iX(Y)}throwOnError(){return this.shouldThrowOnError=!0,this}async createBucket(D){var X=this;try{return{data:await u1(X.fetch,`${X.url}/CreateVectorBucket`,{vectorBucketName:D},{headers:X.headers})||{},error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}async getBucket(D){var X=this;try{return{data:await u1(X.fetch,`${X.url}/GetVectorBucket`,{vectorBucketName:D},{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}async listBuckets(D={}){var X=this;try{return{data:await u1(X.fetch,`${X.url}/ListVectorBuckets`,D,{headers:X.headers}),error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}async deleteBucket(D){var X=this;try{return{data:await u1(X.fetch,`${X.url}/DeleteVectorBucket`,{vectorBucketName:D},{headers:X.headers})||{},error:null}}catch(Y){if(X.shouldThrowOnError)throw Y;if(E1(Y))return{data:null,error:Y};throw Y}}},zW=class extends KW{constructor(D,X={}){super(D,X.headers||{},X.fetch)}from(D){return new MW(this.url,this.headers,D,this.fetch)}async createBucket(D){var X=()=>super.createBucket,Y=this;return X().call(Y,D)}async getBucket(D){var X=()=>super.getBucket,Y=this;return X().call(Y,D)}async listBuckets(D={}){var X=()=>super.listBuckets,Y=this;return X().call(Y,D)}async deleteBucket(D){var X=()=>super.deleteBucket,Y=this;return X().call(Y,D)}},MW=class extends WW{constructor(D,X,Y,Z){super(D,X,Z);this.vectorBucketName=Y}async createIndex(D){var X=()=>super.createIndex,Y=this;return X().call(Y,G0(G0({},D),{},{vectorBucketName:Y.vectorBucketName}))}async listIndexes(D={}){var X=()=>super.listIndexes,Y=this;return X().call(Y,G0(G0({},D),{},{vectorBucketName:Y.vectorBucketName}))}async getIndex(D){var X=()=>super.getIndex,Y=this;return X().call(Y,Y.vectorBucketName,D)}async deleteIndex(D){var X=()=>super.deleteIndex,Y=this;return X().call(Y,Y.vectorBucketName,D)}index(D){return new LW(this.url,this.headers,this.vectorBucketName,D,this.fetch)}},LW=class extends HW{constructor(D,X,Y,Z,J){super(D,X,J);this.vectorBucketName=Y,this.indexName=Z}async putVectors(D){var X=()=>super.putVectors,Y=this;return X().call(Y,G0(G0({},D),{},{vectorBucketName:Y.vectorBucketName,indexName:Y.indexName}))}async getVectors(D){var X=()=>super.getVectors,Y=this;return X().call(Y,G0(G0({},D),{},{vectorBucketName:Y.vectorBucketName,indexName:Y.indexName}))}async listVectors(D={}){var X=()=>super.listVectors,Y=this;return X().call(Y,G0(G0({},D),{},{vectorBucketName:Y.vectorBucketName,indexName:Y.indexName}))}async queryVectors(D){var X=()=>super.queryVectors,Y=this;return X().call(Y,G0(G0({},D),{},{vectorBucketName:Y.vectorBucketName,indexName:Y.indexName}))}async deleteVectors(D){var X=()=>super.deleteVectors,Y=this;return X().call(Y,G0(G0({},D),{},{vectorBucketName:Y.vectorBucketName,indexName:Y.indexName}))}},dQ=class extends uv{constructor(D,X={},Y,Z){super(D,X,Y,Z)}from(D){return new kv(this.url,this.headers,D,this.fetch)}get vectors(){return new zW(this.url+"/vector",{headers:this.headers,fetch:this.fetch})}get analytics(){return new $W(this.url+"/iceberg",this.headers,this.fetch)}};var qH=R0($w(),1);J0(Z0,R0(kQ(),1),module.exports);J0(Z0,R0($w(),1),module.exports);var Mg="2.89.0",j4="";if(typeof Deno<"u")j4="deno";else if(typeof document<"u")j4="web";else if(typeof navigator<"u"&&navigator.product==="ReactNative")j4="react-native";else j4="node";var Lg={"X-Client-Info":`supabase-js-${j4}/${Mg}`},Vg={headers:Lg},Ug={schema:"public"},Ng={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:"implicit"},Rg={};function T4(D){return T4=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(X){return typeof X}:function(X){return X&&typeof Symbol=="function"&&X.constructor===Symbol&&X!==Symbol.prototype?"symbol":typeof X},T4(D)}function Ag(D,X){if(T4(D)!="object"||!D)return D;var Y=D[Symbol.toPrimitive];if(Y!==void 0){var Z=Y.call(D,X||"default");if(T4(Z)!="object")return Z;throw TypeError("@@toPrimitive must return a primitive value.")}return(X==="string"?String:Number)(D)}function Eg(D){var X=Ag(D,"string");return T4(X)=="symbol"?X:X+""}function Cg(D,X,Y){return(X=Eg(X))in D?Object.defineProperty(D,X,{value:Y,enumerable:!0,configurable:!0,writable:!0}):D[X]=Y,D}function FH(D,X){var Y=Object.keys(D);if(Object.getOwnPropertySymbols){var Z=Object.getOwnPropertySymbols(D);X&&(Z=Z.filter(function(J){return Object.getOwnPropertyDescriptor(D,J).enumerable})),Y.push.apply(Y,Z)}return Y}function UD(D){for(var X=1;X<arguments.length;X++){var Y=arguments[X]!=null?arguments[X]:{};X%2?FH(Object(Y),!0).forEach(function(Z){Cg(D,Z,Y[Z])}):Object.getOwnPropertyDescriptors?Object.defineProperties(D,Object.getOwnPropertyDescriptors(Y)):FH(Object(Y)).forEach(function(Z){Object.defineProperty(D,Z,Object.getOwnPropertyDescriptor(Y,Z))})}return D}var jg=(D)=>{if(D)return(...X)=>D(...X);return(...X)=>fetch(...X)},Tg=()=>{return Headers},Ig=(D,X,Y)=>{let Z=jg(Y),J=Tg();return async(Q,w)=>{var F;let B=(F=await X())!==null&&F!==void 0?F:D,q=new J(w===null||w===void 0?void 0:w.headers);if(!q.has("apikey"))q.set("apikey",D);if(!q.has("Authorization"))q.set("Authorization",`Bearer ${B}`);return Z(Q,UD(UD({},w),{},{headers:q}))}};function Pg(D){return D.endsWith("/")?D:D+"/"}function Sg(D,X){var Y,Z;let{db:J,auth:Q,realtime:w,global:F}=D,{db:B,auth:q,realtime:$,global:G}=X,W={db:UD(UD({},B),J),auth:UD(UD({},q),Q),realtime:UD(UD({},$),w),storage:{},global:UD(UD(UD({},G),F),{},{headers:UD(UD({},(Y=G===null||G===void 0?void 0:G.headers)!==null&&Y!==void 0?Y:{}),(Z=F===null||F===void 0?void 0:F.headers)!==null&&Z!==void 0?Z:{})}),accessToken:async()=>""};if(D.accessToken)W.accessToken=D.accessToken;else delete W.accessToken;return W}function xg(D){let X=D===null||D===void 0?void 0:D.trim();if(!X)throw Error("supabaseUrl is required.");if(!X.match(/^https?:\/\//i))throw Error("Invalid supabaseUrl: Must be a valid HTTP or HTTPS URL.");try{return new URL(Pg(X))}catch(Y){throw Error("Invalid supabaseUrl: Provided URL is malformed.")}}var fg=class extends qH.AuthClient{constructor(D){super(D)}},$H=class{constructor(D,X,Y){var Z,J;this.supabaseUrl=D,this.supabaseKey=X;let Q=xg(D);if(!X)throw Error("supabaseKey is required.");this.realtimeUrl=new URL("realtime/v1",Q),this.realtimeUrl.protocol=this.realtimeUrl.protocol.replace("http","ws"),this.authUrl=new URL("auth/v1",Q),this.storageUrl=new URL("storage/v1",Q),this.functionsUrl=new URL("functions/v1",Q);let w=`sb-${Q.hostname.split(".")[0]}-auth-token`,F={db:Ug,realtime:Rg,auth:UD(UD({},Ng),{},{storageKey:w}),global:Vg},B=Sg(Y!==null&&Y!==void 0?Y:{},F);if(this.storageKey=(Z=B.auth.storageKey)!==null&&Z!==void 0?Z:"",this.headers=(J=B.global.headers)!==null&&J!==void 0?J:{},!B.accessToken){var q;this.auth=this._initSupabaseAuthClient((q=B.auth)!==null&&q!==void 0?q:{},this.headers,B.global.fetch)}else this.accessToken=B.accessToken,this.auth=new Proxy({},{get:($,G)=>{throw Error(`@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(G)} is not possible`)}});if(this.fetch=Ig(X,this._getAccessToken.bind(this),B.global.fetch),this.realtime=this._initRealtimeClient(UD({headers:this.headers,accessToken:this._getAccessToken.bind(this)},B.realtime)),this.accessToken)this.accessToken().then(($)=>this.realtime.setAuth($)).catch(($)=>console.warn("Failed to set initial Realtime auth token:",$));if(this.rest=new uX(new URL("rest/v1",Q).href,{headers:this.headers,schema:B.db.schema,fetch:this.fetch}),this.storage=new dQ(this.storageUrl.href,this.headers,this.fetch,Y===null||Y===void 0?void 0:Y.storage),!B.accessToken)this._listenForAuthEvents()}get functions(){return new D1.FunctionsClient(this.functionsUrl.href,{headers:this.headers,customFetch:this.fetch})}from(D){return this.rest.from(D)}schema(D){return this.rest.schema(D)}rpc(D,X={},Y={head:!1,get:!1,count:void 0}){return this.rest.rpc(D,X,Y)}channel(D,X={config:{}}){return this.realtime.channel(D,X)}getChannels(){return this.realtime.getChannels()}removeChannel(D){return this.realtime.removeChannel(D)}removeAllChannels(){return this.realtime.removeAllChannels()}async _getAccessToken(){var D=this,X,Y;if(D.accessToken)return await D.accessToken();let{data:Z}=await D.auth.getSession();return(X=(Y=Z.session)===null||Y===void 0?void 0:Y.access_token)!==null&&X!==void 0?X:D.supabaseKey}_initSupabaseAuthClient({autoRefreshToken:D,persistSession:X,detectSessionInUrl:Y,storage:Z,userStorage:J,storageKey:Q,flowType:w,lock:F,debug:B,throwOnError:q},$,G){let W={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new fg({url:this.authUrl.href,headers:UD(UD({},W),$),storageKey:Q,autoRefreshToken:D,persistSession:X,detectSessionInUrl:Y,storage:Z,userStorage:J,flowType:w,lock:F,debug:B,throwOnError:q,fetch:G,hasCustomAuthorizationHeader:Object.keys(this.headers).some((O)=>O.toLowerCase()==="authorization")})}_initRealtimeClient(D){return new BH.RealtimeClient(this.realtimeUrl.href,UD(UD({},D),{},{params:UD(UD({},{apikey:this.supabaseKey}),D===null||D===void 0?void 0:D.params)}))}_listenForAuthEvents(){return this.auth.onAuthStateChange((D,X)=>{this._handleTokenChanged(D,"CLIENT",X===null||X===void 0?void 0:X.access_token)})}_handleTokenChanged(D,X,Y){if((D==="TOKEN_REFRESHED"||D==="SIGNED_IN")&&this.changedAccessToken!==Y)this.changedAccessToken=Y,this.realtime.setAuth(Y);else if(D==="SIGNED_OUT"){if(this.realtime.setAuth(),X=="STORAGE")this.auth.signOut();this.changedAccessToken=void 0}}},Gw=(D,X,Y)=>{return new $H(D,X,Y)};function yg(){if(typeof window<"u")return!1;if(typeof process>"u")return!1;let D=process.version;if(D===void 0||D===null)return!1;let X=D.match(/^v(\d+)\./);if(!X)return!1;return parseInt(X[1],10)<=18}if(yg())console.warn("⚠️ Node.js 18 and below are deprecated and will no longer be supported in future versions of @supabase/supabase-js. Please upgrade to Node.js 20 or later. For more information, visit: https://github.com/orgs/supabase/discussions/37217");var f$=R0(Mw(),1),Sy=R0(LK(),1),GJ=R0($Z(),1);var o8={name:"@capgo/cli",type:"module",version:"7.71.11",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 && bun build.mjs",dev:"NODE_ENV=development ncc build","no-debug":"node dist/index.js","dev-build":"SUPA_DB=development ncc build",pack:"pkg",types:"npx --yes supabase gen types typescript --project-id=xvwzpoazmxkqosrdewyv > src/types/supabase.types.ts",typecheck:"tsc --noEmit",lint:'eslint "src/**/*.ts" --fix',"check-posix-paths":"node test/check-posix-paths.js","generate-docs":"node dist/index.js generate-docs README.md","test:bundle":"bun test/test-bundle.mjs","test:functional":"bun test/test-functional.mjs","test:semver":"bun test/test-semver-validation.mjs","test:version-edge-cases":"bun test/test-version-validation.mjs","test:regex":"bun test/test-regex-validation.mjs","test:upload":"bun test/test-upload-validation.mjs","test:credentials":"bun test/test-credentials.mjs","test:credentials-validation":"bun test/test-credentials-validation.mjs","test:checksum":"bun test/test-checksum-algorithm.mjs","test:version-detection":"node test/test-get-installed-version.mjs","test:version-detection:setup":"./test/fixtures/setup-test-projects.sh",test:"bun run test:bundle && bun run test:functional && bun run test:semver && bun run test:version-edge-cases && bun run test:regex && bun run test:upload && bun run test:credentials && bun run test:credentials-validation && bun run test:checksum && bun run test:version-detection"},devDependencies:{"@antfu/eslint-config":"^6.1.0","@bradenmacdonald/s3-lite-client":"npm:@jsr/bradenmacdonald__s3-lite-client@0.9.4","@capacitor/cli":"^8.0.0","@capgo/find-package-manager":"^0.0.18","@clack/prompts":"^0.11.0","@modelcontextprotocol/sdk":"^1.0.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","@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",eslint:"^9.38.0","git-format-staged":"3.1.3",husky:"^9.1.7","is-wsl":"^3.1.0",micromatch:"^4.0.8",open:"^11.0.0",prettyjson:"^1.2.5",tmp:"^0.2.5","tus-js-client":"^4.3.1",typescript:"^5.9.3",zod:"^3.24.0"}};async function GZ(D){try{let Y=`https://registry.npmjs.org/${encodeURIComponent(D.toLowerCase())}`,Z=await fetch(Y,{headers:{accept:"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"}});if(!Z.ok)return null;return(await Z.json())["dist-tags"]?.latest||null}catch{return null}}async function o0(){let D=await GZ("@capgo/cli")??"",X=D?.split(".")[0];if(D!==o8.version)K.warning(`\uD83D\uDEA8 You are using @capgo/cli@${o8.version} it's not the latest version.
315
+ Please use @capgo/cli@${D}" or @capgo/cli@${X} to keep up to date with the latest features and bug fixes.`)}async function CL(D,X,Y,Z,J,Q="✅"){await z0(Y,{channel:D,event:Z,icon:Q,user_id:X,...J?{tags:{"app-id":J}}:{},notify:!1})}var yF=require("node:buffer"),jL=require("node:crypto"),Ba=(()=>{let D=[];for(let X=0;X<256;X++){let Y=X;for(let Z=0;Z<8;Z++)Y=Y&1?3988292384^Y>>>1:Y>>>1;D[X]=Y}return D})();function qa(D){let X=4294967295;for(let Y=0;Y<D.length;Y++){let Z=D[Y];X=Ba[(X^Z)&255]^X>>>8}return X=X^4294967295,(X>>>0).toString(16).padStart(8,"0")}async function y6(D,X="sha256"){let Y=yF.Buffer.isBuffer(D)?D:yF.Buffer.from(D);if(X==="crc32")return qa(Y);let Z=jL.createHash(X);return Z.update(Y),Z.digest("hex")}var r3=R0(hf(),1);async function _f(){let D=await r3.loadConfig();return{config:D.app.extConfig,path:D.app.extConfigFilePath}}async function B$(D,X,Y=!1){let Z=await r3.loadConfig(),{extConfig:J}=Z.app;if(J){if(!J.plugins)J.plugins={extConfig:{},[D]:{}};if(!J.plugins[D])J.plugins[D]={};if(!Y)J.plugins[D]=X.config.plugins?.[D];else J=X.config;r3.writeConfig(J,Z.app.extConfigFilePath)}}async function h7(D,X=!1){await B$("CapacitorUpdater",D,X)}var _7={ORG_REQUIRES_EXPIRING_KEY:"org_requires_expiring_key",EXPIRATION_REQUIRED:"expiration_required",EXPIRATION_EXCEEDS_MAX:"expiration_exceeds_max"},s3={[_7.ORG_REQUIRES_EXPIRING_KEY]:`This organization requires API keys with expiration dates.
316
316
 
317
317
  Please generate a new API key with an expiration:
318
318
  1. Go to https://web.capgo.app/dashboard/apikeys
@@ -335,7 +335,7 @@ Please generate a new API key with a shorter expiration:
335
335
 
336
336
  ${X.message}
337
337
  `;return X.message||"An unknown error occurred"}var m7=".capgo_key",v1=".capgo_key_v2",OJ=`${m7}.pub`,K6=`${v1}.pub`,Ey="https://capgo.app",Cy="https://files.capgo.app",jy="https://api.capgo.app",Ty="https://console.capgo.app",y$=120000,A40=20971520,E40=1073741824,C40=103809024,B5="package.json",d7=/^(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;function p(D){if(!D)return"";if(J5(D).isSecurityPolicyError)return XJ(D);return`
338
- ${Sy.default.render(D)}`}async function WJ(D,X,Y=!1){let{data:Z,error:J}=await D.rpc("reject_access_due_to_2fa_for_org",{org_id:X});if(J){if(!Y)K.error(`Cannot check 2FA compliance: ${J.message}`);throw Error(`Cannot check 2FA compliance: ${J.message}`)}if(Z){if(!Y)K.error("\uD83D\uDD10 Access Denied: 2FA Required. Enable 2FA at https://web.capgo.app/settings/account");throw Error("2FA required for this organization")}}function qJ(D){return new Promise((X)=>{setTimeout(X,D)})}function rD(D){if(e6.isMonorepo(D))return e6.findMonorepoRoot(D);else if(e6.isNXMonorepo(D))return e6.findNXMonorepoRoot(D);return D}function j40(D=rD(m8.cwd()),X=void 0){let Y=X?.split(",")[0];if(Y){if(!V0.existsSync(Y)){let J=`Package.json at ${Y} does not exist`;throw K.error(J),Error(J)}}let Z=V0.readFileSync(Y??W0.join(D,B5));return JSON.parse(Z)}function D9(D=rD(m8.cwd()),X=void 0){return j40(D,X).version??""}function T40(D){let X=D.replace("^","").replace("~","");if(oG(X))try{let Y=i0(X);return Q8(Y)}catch{return X}return X}async function o1(D,X=m8.cwd(),Y){let Z=Y?W0.dirname(Y):X;try{let w=`${D}/package.json`,{createRequire:F}=await import("node:module"),q=F(W0.join(Z,"package.json")).resolve(w),$=JSON.parse(V0.readFileSync(q,"utf-8"));if($.version)return $.version}catch{}let J=Z,Q=W0.default.parse(J).root;while(J!==Q){let w=W0.join(J,"node_modules",D,B5);if(V0.existsSync(w))try{let B=JSON.parse(V0.readFileSync(w,"utf-8"));if(B.version)return B.version}catch{}let F=W0.dirname(J);if(F===J)break;J=F}if(D==="@capgo/capacitor-updater"){let w=null,F=W0.join(X,"ios","App","Podfile");if(V0.existsSync(F))try{let q=V0.readFileSync(F,"utf-8").match(/pod\s+['"]CapgoCapacitorUpdater['"],\s*:path\s*=>\s*['"]([^'"]+)['"]/);if(q?.[1])w=W0.resolve(W0.join(X,"ios","App",q[1]))}catch{}if(!w){let B=W0.join(X,"android","capacitor.settings.gradle");if(V0.existsSync(B))try{let $=V0.readFileSync(B,"utf-8").match(/project\(':capgo-capacitor-updater'\)\.projectDir\s*=\s*new\s+File\(['"]([^'"]+)['"]/);if($?.[1])w=W0.resolve(W0.join(X,"android",$[1])).replace(/\/android$/,"")}catch{}}if(w){let B=W0.join(w,B5);if(V0.existsSync(B))try{let q=JSON.parse(V0.readFileSync(B,"utf-8"));if(q.version)return q.version}catch{}}}try{let F=(await HJ(X)).get(D);if(F)return F}catch{}return null}async function HJ(D=rD(m8.cwd()),X=void 0){let Y=X?.split(",");if(Y??=[W0.join(D,B5)],Y){for(let Q of Y)if(!V0.existsSync(Q)){let w=`Package.json at ${Q} does not exist`;throw K.error(w),Error(w)}}let Z=new Map,{createRequire:J}=await import("node:module");for(let Q of Y){let w=V0.readFileSync(Q),F=JSON.parse(w),B=W0.dirname(Q),q=($,G)=>{try{let M=J(W0.join(B,"package.json")).resolve(`${$}/package.json`),U=JSON.parse(V0.readFileSync(M,"utf-8"));if(U.version)return U.version}catch{}let W=B,O=W0.default.parse(W).root;while(W!==O){let H=W0.join(W,"node_modules",$,B5);if(V0.existsSync(H))try{let U=JSON.parse(V0.readFileSync(H,"utf-8"));if(U.version)return U.version}catch{}let M=W0.dirname(W);if(M===W)break;W=M}return T40(G)};for(let $ in F.dependencies)Z.set($,q($,F.dependencies[$]));for(let $ in F.devDependencies)Z.set($,q($,F.devDependencies[$]))}return Z}async function K0(){try{let D=await _f();if(!D)throw K.error("No capacitor config file found, run `cap init` first"),Error("No capacitor config file found, run `cap init` first");return D}catch(D){let X=`No capacitor config file found, run \`cap init\` first ${p(D)}`;throw K.error(X),Error(X)}}async function I40(D,X){let Y=await K0();if(Y?.config)Y.config.plugins??={},Y.config.plugins.extConfig??={},Y.config.plugins[D]??={},Y.config.plugins[D]={...Y.config.plugins[D],...X},await B$(D,Y);return Y}async function xy(D){return I40("CapacitorUpdater",D)}async function C8(){try{let D=await K0(),X={host:D?.config?.plugins?.CapacitorUpdater?.localHost||Ey,hostWeb:D?.config?.plugins?.CapacitorUpdater?.localWebHost||Ty,hostFilesApi:D?.config?.plugins?.CapacitorUpdater?.localApiFiles||Cy,hostApi:D?.config?.plugins?.CapacitorUpdater?.localApi||jy};if(D?.config?.plugins?.CapacitorUpdater?.localSupa&&D?.config?.plugins?.CapacitorUpdater?.localSupaAnon)K.info("Using custom supabase instance from capacitor.config.json"),X.supaKey=D?.config?.plugins?.CapacitorUpdater?.localSupaAnon,X.supaHost=D?.config?.plugins?.CapacitorUpdater?.localSupa;return X}catch{return{host:Ey,hostWeb:Ty,hostFilesApi:Cy,hostApi:jy}}}var fy=/([A-Za-z0-9]+)\.(java|swift|kt|scala)$/;async function KJ(){let D=await C8();try{let X=await fetch(`${D.hostApi}/private/config`);if(!X.ok)throw Error(`HTTP error! status: ${X.status}`);return{...await X.json(),...D}}catch{return K.info(`Local config ${p(D)}`),D}}async function yy(){let D=await C8();try{let X=await fetch(`${D.hostFilesApi}/files/config`);if(!X.ok)throw Error(`HTTP error! status: ${X.status}`);return await X.json()}catch{return{partialUpload:!1,TUSUpload:!1,partialUploadForced:!1,TUSUploadForced:!1,maxUploadLength:E40,maxChunkSize:C40,alertUploadSize:A40}}}async function z0(D,X,Y){let Z=await KJ();if(X&&Y)K.info("Using custom supabase instance from provided options"),Z.supaHost=X,Z.supaKey=Y;if(!Z.supaHost||!Z.supaKey)throw K.error("Cannot connect to server please try again later"),Error("Cannot connect to server please try again later");return Gw(Z.supaHost,Z.supaKey,{auth:{persistSession:!1},global:{headers:{capgkey:D}}})}async function P40(D,X,Y){let{data:Z}=await D.rpc("is_allowed_capgkey",{apikey:X,keymode:Y}).single();if(!Z){K.error("Invalid API key or insufficient permissions.");let Q=`Your key should be: ${Y.map((w,F)=>{if(Y.length===1)return`"${w}"`;if(F===Y.length-1)return`or "${w}"`;return`"${w}", `}).join("")} mode.`;throw K.error(Q),Error("Invalid API key or insufficient permissions.")}}async function ky(D,X){let{data:Y}=await D.rpc("is_paying_org",{orgid:X}).single();return Y||!1}async function uy(D,X){let{data:Y}=await D.rpc("is_trial_org",{orgid:X}).single();return Y||0}async function S40(D,X){let{data:Y}=await D.rpc("is_allowed_action_org",{orgid:X}).single();return!!Y}async function x40(D,X,Y){let{data:Z}=await D.rpc("is_allowed_action",{apikey:Y,appid:X}).single();return!!Z}var L1;((w)=>{w[w.none=0]="none";w[w.read=1]="read";w[w.upload=2]="upload";w[w.write=3]="write";w[w.admin=4]="admin";w[w.super_admin=5]="super_admin"})(L1||={});var c7=(D,X)=>D>=X;async function hy(D,X,Y){let{data:Z,error:J}=await D.rpc("get_org_perm_for_apikey",{apikey:X,app_id:Y}).single();if(J)throw K.error("Cannot get permissions for organization!"),console.error(J),Error("Cannot get permissions for organization");if(Z.includes("perm")){let F=null;switch(Z){case"perm_none":{F=0;break}case"perm_read":{F=1;break}case"perm_upload":{F=2;break}case"perm_write":{F=3;break}case"perm_admin":{F=4;break}case"perm_owner":{F=5;break}default:{if(Z.includes("invite"))throw K.info("Please accept/deny the organization invitation before trying to access the app"),Error("Organization invitation pending");throw K.error(`Invalid output when fetching organization permission. Response: ${Z}`),Error(`Invalid output when fetching organization permission. Response: ${Z}`)}}return{okay:!0,data:F}}let w=null;switch(Z){case"INVALID_APIKEY":{w="INVALID_APIKEY";break}case"NO_APP":{w="NO_APP";break}case"NO_ORG":{w="NO_ORG";break}default:throw K.error(`Invalid error when fetching organization permission. Response: ${Z}`),Error(`Invalid error when fetching organization permission. Response: ${Z}`)}return{okay:!1,error:w}}async function _y(D,X,Y){let{data:Z,error:J}=await D.rpc("get_organization_cli_warnings",{orgid:X,cli_version:Y});if(J){K.error(`Cannot get cli warnings: ${p(J)}`);return}if(Z.length>0){K.warn(`Found ${Z.length} cli warnings for your organization.`);let Q=null;for(let w of Z){if(typeof w!=="object"||typeof w.message!=="string"||typeof w.fatal!=="boolean"){K.error(`Invalid cli warning: ${w}`);continue}let F=w;if(F.fatal)K.error(`${F.message.replaceAll("\\n",`
338
+ ${Sy.default.render(D)}`}async function WJ(D,X,Y=!1){let{data:Z,error:J}=await D.rpc("reject_access_due_to_2fa_for_org",{org_id:X});if(J){if(!Y)K.error(`Cannot check 2FA compliance: ${J.message}`);throw Error(`Cannot check 2FA compliance: ${J.message}`)}if(Z){if(!Y)K.error("\uD83D\uDD10 Access Denied: 2FA Required. Enable 2FA at https://web.capgo.app/settings/account");throw Error("2FA required for this organization")}}function qJ(D){return new Promise((X)=>{setTimeout(X,D)})}function rD(D){if(e6.isMonorepo(D))return e6.findMonorepoRoot(D);else if(e6.isNXMonorepo(D))return e6.findNXMonorepoRoot(D);return D}function j40(D=rD(m8.cwd()),X=void 0){let Y=X?.split(",")[0];if(Y){if(!V0.existsSync(Y)){let J=`Package.json at ${Y} does not exist`;throw K.error(J),Error(J)}}let Z=V0.readFileSync(Y??W0.join(D,B5));return JSON.parse(Z)}function D9(D=rD(m8.cwd()),X=void 0){return j40(D,X).version??""}function T40(D){let X=D.replace("^","").replace("~","");if(oG(X))try{let Y=i0(X);return Q8(Y)}catch{return X}return X}async function o1(D,X=m8.cwd(),Y){let Z=Y?W0.dirname(Y):X;try{let w=`${D}/package.json`,{createRequire:F}=await import("node:module"),q=F(W0.join(Z,"package.json")).resolve(w),$=JSON.parse(V0.readFileSync(q,"utf-8"));if($.version)return $.version}catch{}let J=Z,Q=W0.default.parse(J).root;while(J!==Q){let w=W0.join(J,"node_modules",D,B5);if(V0.existsSync(w))try{let B=JSON.parse(V0.readFileSync(w,"utf-8"));if(B.version)return B.version}catch{}let F=W0.dirname(J);if(F===J)break;J=F}if(D==="@capgo/capacitor-updater"){let w=null,F=W0.join(X,"ios","App","Podfile");if(V0.existsSync(F))try{let q=V0.readFileSync(F,"utf-8").match(/pod\s+['"]CapgoCapacitorUpdater['"],\s*:path\s*=>\s*['"]([^'"]+)['"]/);if(q?.[1])w=W0.resolve(W0.join(X,"ios","App",q[1]))}catch{}if(!w){let B=W0.join(X,"android","capacitor.settings.gradle");if(V0.existsSync(B))try{let $=V0.readFileSync(B,"utf-8").match(/project\(':capgo-capacitor-updater'\)\.projectDir\s*=\s*new\s+File\(['"]([^'"]+)['"]/);if($?.[1])w=W0.resolve(W0.join(X,"android",$[1])).replace(/\/android$/,"")}catch{}}if(w){let B=W0.join(w,B5);if(V0.existsSync(B))try{let q=JSON.parse(V0.readFileSync(B,"utf-8"));if(q.version)return q.version}catch{}}}try{let F=(await HJ(X)).get(D);if(F)return F}catch{}return null}async function HJ(D=rD(m8.cwd()),X=void 0){let Y=X?.split(",");if(Y??=[W0.join(D,B5)],Y){for(let Q of Y)if(!V0.existsSync(Q)){let w=`Package.json at ${Q} does not exist`;throw K.error(w),Error(w)}}let Z=new Map,{createRequire:J}=await import("node:module");for(let Q of Y){let w=V0.readFileSync(Q),F=JSON.parse(w),B=W0.dirname(Q),q=($,G)=>{try{let M=J(W0.join(B,"package.json")).resolve(`${$}/package.json`),U=JSON.parse(V0.readFileSync(M,"utf-8"));if(U.version)return U.version}catch{}let W=B,O=W0.default.parse(W).root;while(W!==O){let H=W0.join(W,"node_modules",$,B5);if(V0.existsSync(H))try{let U=JSON.parse(V0.readFileSync(H,"utf-8"));if(U.version)return U.version}catch{}let M=W0.dirname(W);if(M===W)break;W=M}return T40(G)};for(let $ in F.dependencies)Z.set($,q($,F.dependencies[$]));for(let $ in F.devDependencies)Z.set($,q($,F.devDependencies[$]))}return Z}async function H0(){try{let D=await _f();if(!D)throw K.error("No capacitor config file found, run `cap init` first"),Error("No capacitor config file found, run `cap init` first");return D}catch(D){let X=`No capacitor config file found, run \`cap init\` first ${p(D)}`;throw K.error(X),Error(X)}}async function I40(D,X){let Y=await H0();if(Y?.config)Y.config.plugins??={},Y.config.plugins.extConfig??={},Y.config.plugins[D]??={},Y.config.plugins[D]={...Y.config.plugins[D],...X},await B$(D,Y);return Y}async function xy(D){return I40("CapacitorUpdater",D)}async function C8(){try{let D=await H0(),X={host:D?.config?.plugins?.CapacitorUpdater?.localHost||Ey,hostWeb:D?.config?.plugins?.CapacitorUpdater?.localWebHost||Ty,hostFilesApi:D?.config?.plugins?.CapacitorUpdater?.localApiFiles||Cy,hostApi:D?.config?.plugins?.CapacitorUpdater?.localApi||jy};if(D?.config?.plugins?.CapacitorUpdater?.localSupa&&D?.config?.plugins?.CapacitorUpdater?.localSupaAnon)K.info("Using custom supabase instance from capacitor.config.json"),X.supaKey=D?.config?.plugins?.CapacitorUpdater?.localSupaAnon,X.supaHost=D?.config?.plugins?.CapacitorUpdater?.localSupa;return X}catch{return{host:Ey,hostWeb:Ty,hostFilesApi:Cy,hostApi:jy}}}var fy=/([A-Za-z0-9]+)\.(java|swift|kt|scala)$/;async function KJ(){let D=await C8();try{let X=await fetch(`${D.hostApi}/private/config`);if(!X.ok)throw Error(`HTTP error! status: ${X.status}`);return{...await X.json(),...D}}catch{return K.info(`Local config ${p(D)}`),D}}async function yy(){let D=await C8();try{let X=await fetch(`${D.hostFilesApi}/files/config`);if(!X.ok)throw Error(`HTTP error! status: ${X.status}`);return await X.json()}catch{return{partialUpload:!1,TUSUpload:!1,partialUploadForced:!1,TUSUploadForced:!1,maxUploadLength:E40,maxChunkSize:C40,alertUploadSize:A40}}}async function K0(D,X,Y){let Z=await KJ();if(X&&Y)K.info("Using custom supabase instance from provided options"),Z.supaHost=X,Z.supaKey=Y;if(!Z.supaHost||!Z.supaKey)throw K.error("Cannot connect to server please try again later"),Error("Cannot connect to server please try again later");return Gw(Z.supaHost,Z.supaKey,{auth:{persistSession:!1},global:{headers:{capgkey:D}}})}async function P40(D,X,Y){let{data:Z}=await D.rpc("is_allowed_capgkey",{apikey:X,keymode:Y}).single();if(!Z){K.error("Invalid API key or insufficient permissions.");let Q=`Your key should be: ${Y.map((w,F)=>{if(Y.length===1)return`"${w}"`;if(F===Y.length-1)return`or "${w}"`;return`"${w}", `}).join("")} mode.`;throw K.error(Q),Error("Invalid API key or insufficient permissions.")}}async function ky(D,X){let{data:Y}=await D.rpc("is_paying_org",{orgid:X}).single();return Y||!1}async function uy(D,X){let{data:Y}=await D.rpc("is_trial_org",{orgid:X}).single();return Y||0}async function S40(D,X){let{data:Y}=await D.rpc("is_allowed_action_org",{orgid:X}).single();return!!Y}async function x40(D,X,Y){let{data:Z}=await D.rpc("is_allowed_action",{apikey:Y,appid:X}).single();return!!Z}var L1;((w)=>{w[w.none=0]="none";w[w.read=1]="read";w[w.upload=2]="upload";w[w.write=3]="write";w[w.admin=4]="admin";w[w.super_admin=5]="super_admin"})(L1||={});var c7=(D,X)=>D>=X;async function hy(D,X,Y){let{data:Z,error:J}=await D.rpc("get_org_perm_for_apikey",{apikey:X,app_id:Y}).single();if(J)throw K.error("Cannot get permissions for organization!"),console.error(J),Error("Cannot get permissions for organization");if(Z.includes("perm")){let F=null;switch(Z){case"perm_none":{F=0;break}case"perm_read":{F=1;break}case"perm_upload":{F=2;break}case"perm_write":{F=3;break}case"perm_admin":{F=4;break}case"perm_owner":{F=5;break}default:{if(Z.includes("invite"))throw K.info("Please accept/deny the organization invitation before trying to access the app"),Error("Organization invitation pending");throw K.error(`Invalid output when fetching organization permission. Response: ${Z}`),Error(`Invalid output when fetching organization permission. Response: ${Z}`)}}return{okay:!0,data:F}}let w=null;switch(Z){case"INVALID_APIKEY":{w="INVALID_APIKEY";break}case"NO_APP":{w="NO_APP";break}case"NO_ORG":{w="NO_ORG";break}default:throw K.error(`Invalid error when fetching organization permission. Response: ${Z}`),Error(`Invalid error when fetching organization permission. Response: ${Z}`)}return{okay:!1,error:w}}async function _y(D,X,Y){let{data:Z,error:J}=await D.rpc("get_organization_cli_warnings",{orgid:X,cli_version:Y});if(J){K.error(`Cannot get cli warnings: ${p(J)}`);return}if(Z.length>0){K.warn(`Found ${Z.length} cli warnings for your organization.`);let Q=null;for(let w of Z){if(typeof w!=="object"||typeof w.message!=="string"||typeof w.fatal!=="boolean"){K.error(`Invalid cli warning: ${w}`);continue}let F=w;if(F.fatal)K.error(`${F.message.replaceAll("\\n",`
339
339
  `)}`),Q=Error(F.message);else K.warn(`${F.message.replaceAll("\\n",`
340
340
  `)}`)}if(Q)throw K.error("Please fix the warnings and try again."),Q;K.info("End of cli warnings.")}}async function vy(D,X,Y,Z,J=!0){let Q=await KJ();if(!await(Z?x40(D,Z,Y):S40(D,X)))throw K.error(`You need to upgrade your plan to continue to use capgo.
341
341
  Upgrade here: ${Q.hostWeb}/settings/organization/plans
@@ -345,18 +345,18 @@ Trial expires in ${F} days, upgrade here: ${Q.hostWeb}/settings/organization/pla
345
345
  Upgrade here: ${Q.hostWeb}/settings/organization/plans
346
346
  `),qJ(100),Promise.resolve().then(() => (S$(),P$)).then((q)=>{q.default(`${Q.hostWeb}/settings/organization/plans`)}),qJ(500),Error("Plan upgrade required for upload");let[F,B]=await Promise.all([uy(D,X),ky(D,X)]);if(F>0&&J&&!B)K.warn(`WARNING !!
347
347
  Trial expires in ${F} days, upgrade here: ${Q.hostWeb}/settings/organization/plans
348
- `)}function Q0(D=!1){let X=m8.env.CAPGO_TOKEN?.trim();if(X){if(!D)K.info("Use CAPGO_TOKEN environment variable");return X}let Y=$J.homedir(),Z,J=`${Y}/.capgo`;if(V0.existsSync(J)){if(!D)K.info(`Use global API key ${J}`);Z=V0.readFileSync(J,"utf8").trim()}if(J=".capgo",!Z&&V0.existsSync(J)){if(!D)K.info(`Use local API key ${J}`);Z=V0.readFileSync(J,"utf8").trim()}if(!Z){let Q=`Cannot find API key in local folder or global, please login first with ${q5().runner} @capgo/cli login`;throw K.error(Q),Error(Q)}return Z}function X9(D){let Y=(D.endsWith(".br")?D.slice(0,-3):D).split(".").pop()?.toLowerCase()||"";return{html:"text/html",htm:"text/html",js:"application/javascript",mjs:"application/javascript",cjs:"application/javascript",css:"text/css",json:"application/json",jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",bmp:"image/bmp",webp:"image/webp",svg:"image/svg+xml",ico:"image/x-icon",avif:"image/avif",woff:"font/woff",woff2:"font/woff2",ttf:"font/ttf",otf:"font/otf",eot:"application/vnd.ms-fontobject",mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",mp4:"video/mp4",webm:"video/webm",xml:"application/xml",txt:"text/plain",md:"text/markdown",pdf:"application/pdf",wasm:"application/wasm",map:"application/json"}[Y]||"application/octet-stream"}async function k$(D,X){return D.from("app_versions").upsert(X,{onConflict:"name,app_id"}).eq("app_id",X.app_id).eq("name",X.name)}async function gy(D,X,Y){let Z={app_id:X,name:Y,version:0};try{let Q=await D.functions.invoke("files/upload_link",{body:JSON.stringify(Z)});if(Q.error){if(Q.error instanceof D1.FunctionsHttpError){let w=await Q.error.context.json();K.error(`Upload URL error: ${w.status||JSON.stringify(w)}`)}else K.error(`Cannot get upload url: ${Q.error.message}`);return""}return Q.data.url}catch(J){K.error(`Cannot get upload url ${p(J)}`)}return""}async function*my(D){let X=V0.readdirSync(D,{withFileTypes:!0});for(let Y of X){let Z=W0.join(D,Y.name);if(Y.isDirectory())yield*my(Z);else yield Z}}var zJ="5.10.0",MJ="6.25.0",XX="7.0.30";function e1(D,X="5.10.0",Y="6.25.0",Z="7.25.0"){if(D.major===5&&q9(D,i0(X)))return!0;if(D.major===6&&q9(D,i0(Y)))return!0;if(D.major===7&&q9(D,i0(Z)))return!0;return!1}async function dy(D){let X=[],Y=[".DS_Store",".git",".gitignore","node_modules","package-lock.json","tsconfig.json","tsconfig.app.json","tsconfig.spec.json","tsconfig.app.json","tsconfig.spec.json","tsconfig.app.json","tsconfig.spec.json"];for await(let Z of my(D)){if(Y.some((F)=>Z.includes(F))){K.info(`Ignoring file ${Z}, please ensure you have only required files in your dist folder`);continue}let J=V0.readFileSync(Z);if(J.length===0){K.info(`Ignoring empty file ${Z}, please ensure you have only required files in your dist folder`);continue}let Q=await y6(J,"sha256"),w=W0.relative(D,Z);if(w.startsWith("/"))w=w.substring(1);X.push({file:w,hash:Q})}return X}async function LJ(D){if($J.platform()==="win32")return y40(D);else return f40(D)}function f40(D){let X=new f$.default;return X.addLocalFolder(D),X.toBuffer()}async function y40(D){K.info("Zipping file windows mode");let X=new f$.default,Y=(Z,J)=>{let Q=V0.readdirSync(Z);for(let w of Q){let F=W0.join(Z,w),B=V0.statSync(F);if(B.isFile()){let q=V0.readFileSync(F);X.addFile(W0.join(J,w).split(W0.sep).join("/"),q)}else if(B.isDirectory())Y(F,W0.join(J,w))}};return Y(D,""),X.toBuffer()}async function cy(D,X,Y,Z,J,Q,w,F){return new Promise((B,q)=>{H0(D,{channel:"app",event:"App TUS upload",icon:"⏫",user_id:Y,tags:{"app-id":Z},notify:!1}),new GJ.Upload(X,{endpoint:`${w.hostFilesApi}/files/upload/attachments/`,chunkSize:F,metadataForPartialUploads:{filename:`orgs/${Y}/apps/${Z}/${J}.zip`,filetype:"application/gzip"},metadata:{filename:`orgs/${Y}/apps/${Z}/${J}.zip`,filetype:"application/zip"},headers:{Authorization:D},onError(G){if(K.error(`Error uploading bundle: ${G.message}`),G instanceof GJ.DetailedError){let W=G.originalResponse?.getBody(),O=JSON.parse(W||'{"error": "unknown error"}');q(O.status||O.error||O.message||"unknown error")}else q(G.message||G.toString()||"unknown error")},onProgress(G,W){let O=(G/W*100).toFixed(2);Q.message(`Uploaded ${O}%`)},async onSuccess(){await H0(D,{channel:"app",event:"App TUS done",icon:"⏫",user_id:Y,tags:{"app-id":Z},notify:!1}).catch(),B(!0)}}).start()})}async function ly(D,X,Y){let Z={app_id:X,name:Y};try{let Q=await D.functions.invoke("private/delete_failed_version",{body:JSON.stringify(Z),method:"DELETE"});if(Q.error){if(Q.error instanceof D1.FunctionsHttpError){let w=await Q.error.context.json();K.error(`Cannot delete failed version: ${w.status||JSON.stringify(w)}`)}else K.error(`Cannot delete failed version: ${Q.error.message}`);return}return Q.data?.status}catch(J){if(J instanceof D1.FunctionsHttpError){let Q=await J.context.json();K.error(`Cannot delete failed version: ${Q.message||JSON.stringify(Q)}`)}else K.error(`Cannot delete failed version: ${p(J)}`)}}async function VJ(D,X){if(!X.app_id||!X.name||!X.created_by)return K.error("missing app_id, name, or created_by"),Promise.reject(Error("missing app_id, name, or created_by"));let{data:Y,error:Z}=await D.from("channels").select().eq("app_id",X.app_id).eq("name",X.name).single();if(Y&&!Z)return D.from("channels").update(X).eq("app_id",X.app_id).eq("name",X.name).select().single();return D.from("channels").insert(X).select().single()}async function H0(D,X,Y){try{if(Y)K.info(`Get remove config: for ${X.event}`);let Z=await KJ();if(Y)K.info(`Sending LogSnag event: ${JSON.stringify(X)}`);let J=new AbortController,Q=setTimeout(()=>J.abort(),1e4);try{let w=await fetch(`${Z.hostApi}/private/events`,{method:"POST",body:JSON.stringify(X),headers:{"Content-Type":"application/json",capgkey:D},signal:J.signal});if(clearTimeout(Q),!w.ok)throw Error(`HTTP error! status: ${w.status}`);let F=await w.json();if(F.error)K.error(`Failed to send LogSnag event: ${F.error}`)}finally{clearTimeout(Q)}}catch(Z){if(Y)K.error("Failed to send Stats event details:"),K.error(p(Z))}}function u$(D){if(K.error(`
348
+ `)}function Q0(D=!1){let X=m8.env.CAPGO_TOKEN?.trim();if(X){if(!D)K.info("Use CAPGO_TOKEN environment variable");return X}let Y=$J.homedir(),Z,J=`${Y}/.capgo`;if(V0.existsSync(J)){if(!D)K.info(`Use global API key ${J}`);Z=V0.readFileSync(J,"utf8").trim()}if(J=".capgo",!Z&&V0.existsSync(J)){if(!D)K.info(`Use local API key ${J}`);Z=V0.readFileSync(J,"utf8").trim()}if(!Z){let Q=`Cannot find API key in local folder or global, please login first with ${q5().runner} @capgo/cli login`;throw K.error(Q),Error(Q)}return Z}function X9(D){let Y=(D.endsWith(".br")?D.slice(0,-3):D).split(".").pop()?.toLowerCase()||"";return{html:"text/html",htm:"text/html",js:"application/javascript",mjs:"application/javascript",cjs:"application/javascript",css:"text/css",json:"application/json",jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",gif:"image/gif",bmp:"image/bmp",webp:"image/webp",svg:"image/svg+xml",ico:"image/x-icon",avif:"image/avif",woff:"font/woff",woff2:"font/woff2",ttf:"font/ttf",otf:"font/otf",eot:"application/vnd.ms-fontobject",mp3:"audio/mpeg",wav:"audio/wav",ogg:"audio/ogg",mp4:"video/mp4",webm:"video/webm",xml:"application/xml",txt:"text/plain",md:"text/markdown",pdf:"application/pdf",wasm:"application/wasm",map:"application/json"}[Y]||"application/octet-stream"}async function k$(D,X){return D.from("app_versions").upsert(X,{onConflict:"name,app_id"}).eq("app_id",X.app_id).eq("name",X.name)}async function gy(D,X,Y){let Z={app_id:X,name:Y,version:0};try{let Q=await D.functions.invoke("files/upload_link",{body:JSON.stringify(Z)});if(Q.error){if(Q.error instanceof D1.FunctionsHttpError){let w=await Q.error.context.json();K.error(`Upload URL error: ${w.status||JSON.stringify(w)}`)}else K.error(`Cannot get upload url: ${Q.error.message}`);return""}return Q.data.url}catch(J){K.error(`Cannot get upload url ${p(J)}`)}return""}async function*my(D){let X=V0.readdirSync(D,{withFileTypes:!0});for(let Y of X){let Z=W0.join(D,Y.name);if(Y.isDirectory())yield*my(Z);else yield Z}}var zJ="5.10.0",MJ="6.25.0",XX="7.0.30";function e1(D,X="5.10.0",Y="6.25.0",Z="7.25.0"){if(D.major===5&&q9(D,i0(X)))return!0;if(D.major===6&&q9(D,i0(Y)))return!0;if(D.major===7&&q9(D,i0(Z)))return!0;return!1}async function dy(D){let X=[],Y=[".DS_Store",".git",".gitignore","node_modules","package-lock.json","tsconfig.json","tsconfig.app.json","tsconfig.spec.json","tsconfig.app.json","tsconfig.spec.json","tsconfig.app.json","tsconfig.spec.json"];for await(let Z of my(D)){if(Y.some((F)=>Z.includes(F))){K.info(`Ignoring file ${Z}, please ensure you have only required files in your dist folder`);continue}let J=V0.readFileSync(Z);if(J.length===0){K.info(`Ignoring empty file ${Z}, please ensure you have only required files in your dist folder`);continue}let Q=await y6(J,"sha256"),w=W0.relative(D,Z);if(w.startsWith("/"))w=w.substring(1);X.push({file:w,hash:Q})}return X}async function LJ(D){if($J.platform()==="win32")return y40(D);else return f40(D)}function f40(D){let X=new f$.default;return X.addLocalFolder(D),X.toBuffer()}async function y40(D){K.info("Zipping file windows mode");let X=new f$.default,Y=(Z,J)=>{let Q=V0.readdirSync(Z);for(let w of Q){let F=W0.join(Z,w),B=V0.statSync(F);if(B.isFile()){let q=V0.readFileSync(F);X.addFile(W0.join(J,w).split(W0.sep).join("/"),q)}else if(B.isDirectory())Y(F,W0.join(J,w))}};return Y(D,""),X.toBuffer()}async function cy(D,X,Y,Z,J,Q,w,F){return new Promise((B,q)=>{z0(D,{channel:"app",event:"App TUS upload",icon:"⏫",user_id:Y,tags:{"app-id":Z},notify:!1}),new GJ.Upload(X,{endpoint:`${w.hostFilesApi}/files/upload/attachments/`,chunkSize:F,metadataForPartialUploads:{filename:`orgs/${Y}/apps/${Z}/${J}.zip`,filetype:"application/gzip"},metadata:{filename:`orgs/${Y}/apps/${Z}/${J}.zip`,filetype:"application/zip"},headers:{Authorization:D},onError(G){if(K.error(`Error uploading bundle: ${G.message}`),G instanceof GJ.DetailedError){let W=G.originalResponse?.getBody(),O=JSON.parse(W||'{"error": "unknown error"}');q(O.status||O.error||O.message||"unknown error")}else q(G.message||G.toString()||"unknown error")},onProgress(G,W){let O=(G/W*100).toFixed(2);Q.message(`Uploaded ${O}%`)},async onSuccess(){await z0(D,{channel:"app",event:"App TUS done",icon:"⏫",user_id:Y,tags:{"app-id":Z},notify:!1}).catch(),B(!0)}}).start()})}async function ly(D,X,Y){let Z={app_id:X,name:Y};try{let Q=await D.functions.invoke("private/delete_failed_version",{body:JSON.stringify(Z),method:"DELETE"});if(Q.error){if(Q.error instanceof D1.FunctionsHttpError){let w=await Q.error.context.json();K.error(`Cannot delete failed version: ${w.status||JSON.stringify(w)}`)}else K.error(`Cannot delete failed version: ${Q.error.message}`);return}return Q.data?.status}catch(J){if(J instanceof D1.FunctionsHttpError){let Q=await J.context.json();K.error(`Cannot delete failed version: ${Q.message||JSON.stringify(Q)}`)}else K.error(`Cannot delete failed version: ${p(J)}`)}}async function VJ(D,X){if(!X.app_id||!X.name||!X.created_by)return K.error("missing app_id, name, or created_by"),Promise.reject(Error("missing app_id, name, or created_by"));let{data:Y,error:Z}=await D.from("channels").select().eq("app_id",X.app_id).eq("name",X.name).single();if(Y&&!Z)return D.from("channels").update(X).eq("app_id",X.app_id).eq("name",X.name).select().single();return D.from("channels").insert(X).select().single()}async function z0(D,X,Y){try{if(Y)K.info(`Get remove config: for ${X.event}`);let Z=await KJ();if(Y)K.info(`Sending LogSnag event: ${JSON.stringify(X)}`);let J=new AbortController,Q=setTimeout(()=>J.abort(),1e4);try{let w=await fetch(`${Z.hostApi}/private/events`,{method:"POST",body:JSON.stringify(X),headers:{"Content-Type":"application/json",capgkey:D},signal:J.signal});if(clearTimeout(Q),!w.ok)throw Error(`HTTP error! status: ${w.status}`);let F=await w.json();if(F.error)K.error(`Failed to send LogSnag event: ${F.error}`)}finally{clearTimeout(Q)}}catch(Z){if(Y)K.error("Failed to send Stats event details:"),K.error(p(Z))}}function u$(D){if(K.error(`
349
349
  \uD83D\uDD10 Access Denied: Two-Factor Authentication Required`),K.error("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"),D)K.error(`
350
350
  The organization "${D}" requires all members to have 2FA enabled.`);else K.error(`
351
351
  This organization requires all members to have 2FA enabled.`);throw K.error(`
352
352
  To regain access:`),K.error(" 1. Go to https://web.capgo.app/settings/account"),K.error(" 2. Enable Two-Factor Authentication on your account"),K.error(" 3. Try your command again"),K.error(`
353
353
  For more information, visit: https://capgo.app/docs/webapp/2fa-enforcement/
354
- `),Error("2FA required for this organization")}async function UJ(D,X){let{error:Y,data:Z}=await D.rpc("get_orgs_v7");if(Y)throw K.error("Cannot get the list of organizations - exiting"),K.error(`Error ${JSON.stringify(Y)}`),Error("Cannot get the list of organizations");let J=Z.filter((B)=>!!X.find((q)=>q===B.role));if(Z.length===0)throw K.error("Could not get organization please create an organization first"),Error("No organizations available");if(J.length===0)throw K.error(`Could not find organization with roles: ${X.join(" or ")} please create an organization or ask the admin to add you to the organization with this roles`),Error("Could not find organization with required roles");let Q=J.length>1?await M8({message:"Please pick the organization that you want to insert to",options:J.map((B)=>{let q=B.enforcing_2fa&&!B["2fa_has_access"]?" ⚠️ (2FA required)":"";return{value:B.gid,label:`${B.name}${q}`}})}):J[0].gid;if(c0(Q))throw K.error("Canceled organization selection, exiting"),Error("Organization selection cancelled");let w=Q,F=Z.find((B)=>B.gid===w);if(F.enforcing_2fa&&!F["2fa_has_access"])u$(F.name);return K.info(`Using the organization "${F.name}" as the app owner`),F}async function N0(D,X,Y=["all"]){await P40(D,X,Y);let{data:Z,error:J}=await D.rpc("get_user_id",{apikey:X}).single(),Q=(Z||"").toString();if(!Q||J)throw K.error("Cannot auth user with apikey"),Error("Cannot authenticate user with provided API key");return Q}async function _D(D,X){let{data:Y,error:Z}=await D.from("apps").select("owner_org").eq("app_id",X).single();if(!Y||Z)throw K.error(`Cannot get organization id for app id ${X}`),p(Z),Error(`Cannot get organization id for app id ${X}`);return Y.owner_org}function l7(D){return new Date(D||"").toLocaleString()}var Iy=!1,g7="npm",DX="install",x$="npx";function q5(){if(Iy)return{pm:g7,command:DX,installCommand:`${g7} ${DX}`,runner:x$};let D=rD(m8.cwd());return g7=Q4(D,"npm"),DX=EX(g7),Iy=!0,x$=bG(D),{pm:g7,command:DX,installCommand:`${g7} ${DX}`,runner:x$}}function ny(D){return V0.readdirSync(D,{withFileTypes:!0}).flatMap((Z)=>{let J=W0.join(D,Z.name);if(Z.isDirectory())return ny(J);else return J.split(`node_modules${W0.sep}`)[1]||J})}function iy(D){if(!V0.existsSync(D))return[];try{return V0.readdirSync(D,{withFileTypes:!0}).flatMap((Z)=>{let J=W0.join(D,Z.name);if(Z.isDirectory())return iy(J);else return J})}catch{return[]}}function k40(D,X){let Y=[];if(X==="ios"){try{let Q=V0.readdirSync(D);for(let w of Q)if(w.endsWith(".podspec"))Y.push(W0.join(D,w))}catch{}let Z=W0.join(D,"Package.swift"),J=W0.join(D,"ios","Package.swift");if(V0.existsSync(Z))Y.push(Z);if(V0.existsSync(J))Y.push(J)}else if(X==="android"){let Z=W0.join(D,"android"),J=W0.join(Z,"build.gradle"),Q=W0.join(Z,"build.gradle.kts");if(V0.existsSync(J))Y.push(J);if(V0.existsSync(Q))Y.push(Q)}return Y}async function u40(D){let X=W0.join(D,"ios"),Y=W0.join(D,"android"),Z=async(w,F)=>{let B=V0.existsSync(w)?iy(w).filter((O)=>fy.test(O)):[],q=k40(D,F),$=[...B,...q].sort((O,H)=>O.localeCompare(H));if($.length===0)return;let{createHash:G}=await import("node:crypto"),W=G("sha256");for(let O of $)try{let H=W0.relative(D,O);W.update(H);let M=V0.readFileSync(O);W.update(M)}catch{}return W.digest("hex")},[J,Q]=await Promise.all([Z(X,"ios"),Z(Y,"android")]);return{ios_checksum:J,android_checksum:Q}}async function h$(D,X){let Y=X?X.split(","):[],Z;try{Z=await HJ("",D)}catch($){throw K.error("Invalid package.json, JSON parsing failed"),console.error("json parse error: ",$),$ instanceof Error?$:Error("Invalid package.json")}let J=D?.split(",")[0],Q=!J?rD(m8.cwd()):W0.default.resolve(J).replace(B5,"");if(!Z)throw K.error("Missing dependencies section in package.json"),Error("Missing dependencies section in package.json");for(let[$,G]of Object.entries(Z))if(typeof G!=="string")throw K.error(`Invalid dependency ${$}: ${G}, expected string, got ${typeof G}`),Error(`Invalid dependency ${$}: expected string version`);let w=Y.length===0?[W0.join(m8.cwd(),"node_modules")]:Y;if(!w.some(($)=>V0.existsSync($))){let $=Q4(Q,"npm"),G=EX($);throw K.error(`Missing node_modules folder at ${w.join(", ")}, please run ${$} ${G}`),Error("Missing node_modules folder")}let B=!1,q=await Promise.all(Array.from(Z.entries()).map(async([$,G])=>{let W=!1,O=!1,H=G,M;for(let R of w){let z=W0.join(R,$);if(V0.existsSync(z)){W=!0,M=z;try{let V=W0.join(z,B5);if(V0.existsSync(V)){let L=JSON.parse(V0.readFileSync(V,"utf-8"));if(L.version)H=L.version}}catch{}try{if(ny(z).some((L)=>fy.test(L))){O=!0;break}}catch(V){throw K.error(`Error reading node_modules files for ${$} package in ${R}`),console.error(V),V instanceof Error?V:Error(`Error reading node_modules files for ${$}`)}}}if(!W){B=!0;let R=Q4(Q,"npm"),z=EX(R);return K.error(`Missing dependency ${$}, please run ${R} ${z}`),{name:$,version:G}}let U,N;if(O&&M){let R=await u40(M);U=R.ios_checksum,N=R.android_checksum}return{name:$,version:H,native:O,ios_checksum:U,android_checksum:N}})).catch(()=>[]);if(B||q.find(($)=>$.native===void 0))throw K.error("Missing dependencies or invalid dependencies"),K.error("If you use monorepo, workspace or any special package manager you can use the --package-json [path,] and --node-modules [path,] options to make the command work properly"),Error("Missing dependencies or invalid dependencies");return q}async function h40(D,X,Y){let{data:Z,error:J}=await D.from("channels").select("version(checksum)").eq("name",Y).eq("app_id",X).single(),Q=Z;if(J||Q===null||!Q.version||!Q.version.checksum)return null;return Q.version.checksum}function _40(D){if(!D)throw K.error("Error parsing native packages, perhaps the metadata does not exist in Capgo?"),Error("Error parsing native packages");for(let Y of D){if(typeof Y!=="object")throw K.error(`Invalid remote native package data: ${Y}, expected object, got ${typeof Y}`),Error("Invalid remote native package data");let{name:Z,version:J}=Y;if(!Z||typeof Z!=="string")throw K.error(`Invalid remote native package name: ${Z}, expected string, got ${typeof Z}`),Error("Invalid remote native package name");if(!J||typeof J!=="string")throw K.error(`Invalid remote native package version: ${J}, expected string, got ${typeof J}`),Error("Invalid remote native package version")}return new Map(D.map((Y)=>[Y.name,Y]))}async function py(D,X,Y){let{data:Z,error:J}=await D.from("channels").select(`version (
354
+ `),Error("2FA required for this organization")}async function UJ(D,X){let{error:Y,data:Z}=await D.rpc("get_orgs_v7");if(Y)throw K.error("Cannot get the list of organizations - exiting"),K.error(`Error ${JSON.stringify(Y)}`),Error("Cannot get the list of organizations");let J=Z.filter((B)=>!!X.find((q)=>q===B.role));if(Z.length===0)throw K.error("Could not get organization please create an organization first"),Error("No organizations available");if(J.length===0)throw K.error(`Could not find organization with roles: ${X.join(" or ")} please create an organization or ask the admin to add you to the organization with this roles`),Error("Could not find organization with required roles");let Q=J.length>1?await M8({message:"Please pick the organization that you want to insert to",options:J.map((B)=>{let q=B.enforcing_2fa&&!B["2fa_has_access"]?" ⚠️ (2FA required)":"";return{value:B.gid,label:`${B.name}${q}`}})}):J[0].gid;if(c0(Q))throw K.error("Canceled organization selection, exiting"),Error("Organization selection cancelled");let w=Q,F=Z.find((B)=>B.gid===w);if(F.enforcing_2fa&&!F["2fa_has_access"])u$(F.name);return K.info(`Using the organization "${F.name}" as the app owner`),F}async function N0(D,X,Y=["all"]){await P40(D,X,Y);let{data:Z,error:J}=await D.rpc("get_user_id",{apikey:X}).single(),Q=(Z||"").toString();if(!Q||J)throw K.error("Cannot auth user with apikey"),Error("Cannot authenticate user with provided API key");return Q}async function pD(D,X){let{data:Y,error:Z}=await D.from("apps").select("owner_org").eq("app_id",X).single();if(!Y||Z)throw K.error(`Cannot get organization id for app id ${X}`),p(Z),Error(`Cannot get organization id for app id ${X}`);return Y.owner_org}function l7(D){return new Date(D||"").toLocaleString()}var Iy=!1,g7="npm",DX="install",x$="npx";function q5(){if(Iy)return{pm:g7,command:DX,installCommand:`${g7} ${DX}`,runner:x$};let D=rD(m8.cwd());return g7=Q4(D,"npm"),DX=EX(g7),Iy=!0,x$=bG(D),{pm:g7,command:DX,installCommand:`${g7} ${DX}`,runner:x$}}function ny(D){return V0.readdirSync(D,{withFileTypes:!0}).flatMap((Z)=>{let J=W0.join(D,Z.name);if(Z.isDirectory())return ny(J);else return J.split(`node_modules${W0.sep}`)[1]||J})}function iy(D){if(!V0.existsSync(D))return[];try{return V0.readdirSync(D,{withFileTypes:!0}).flatMap((Z)=>{let J=W0.join(D,Z.name);if(Z.isDirectory())return iy(J);else return J})}catch{return[]}}function k40(D,X){let Y=[];if(X==="ios"){try{let Q=V0.readdirSync(D);for(let w of Q)if(w.endsWith(".podspec"))Y.push(W0.join(D,w))}catch{}let Z=W0.join(D,"Package.swift"),J=W0.join(D,"ios","Package.swift");if(V0.existsSync(Z))Y.push(Z);if(V0.existsSync(J))Y.push(J)}else if(X==="android"){let Z=W0.join(D,"android"),J=W0.join(Z,"build.gradle"),Q=W0.join(Z,"build.gradle.kts");if(V0.existsSync(J))Y.push(J);if(V0.existsSync(Q))Y.push(Q)}return Y}async function u40(D){let X=W0.join(D,"ios"),Y=W0.join(D,"android"),Z=async(w,F)=>{let B=V0.existsSync(w)?iy(w).filter((O)=>fy.test(O)):[],q=k40(D,F),$=[...B,...q].sort((O,H)=>O.localeCompare(H));if($.length===0)return;let{createHash:G}=await import("node:crypto"),W=G("sha256");for(let O of $)try{let H=W0.relative(D,O);W.update(H);let M=V0.readFileSync(O);W.update(M)}catch{}return W.digest("hex")},[J,Q]=await Promise.all([Z(X,"ios"),Z(Y,"android")]);return{ios_checksum:J,android_checksum:Q}}async function h$(D,X){let Y=X?X.split(","):[],Z;try{Z=await HJ("",D)}catch($){throw K.error("Invalid package.json, JSON parsing failed"),console.error("json parse error: ",$),$ instanceof Error?$:Error("Invalid package.json")}let J=D?.split(",")[0],Q=!J?rD(m8.cwd()):W0.default.resolve(J).replace(B5,"");if(!Z)throw K.error("Missing dependencies section in package.json"),Error("Missing dependencies section in package.json");for(let[$,G]of Object.entries(Z))if(typeof G!=="string")throw K.error(`Invalid dependency ${$}: ${G}, expected string, got ${typeof G}`),Error(`Invalid dependency ${$}: expected string version`);let w=Y.length===0?[W0.join(m8.cwd(),"node_modules")]:Y;if(!w.some(($)=>V0.existsSync($))){let $=Q4(Q,"npm"),G=EX($);throw K.error(`Missing node_modules folder at ${w.join(", ")}, please run ${$} ${G}`),Error("Missing node_modules folder")}let B=!1,q=await Promise.all(Array.from(Z.entries()).map(async([$,G])=>{let W=!1,O=!1,H=G,M;for(let R of w){let z=W0.join(R,$);if(V0.existsSync(z)){W=!0,M=z;try{let V=W0.join(z,B5);if(V0.existsSync(V)){let L=JSON.parse(V0.readFileSync(V,"utf-8"));if(L.version)H=L.version}}catch{}try{if(ny(z).some((L)=>fy.test(L))){O=!0;break}}catch(V){throw K.error(`Error reading node_modules files for ${$} package in ${R}`),console.error(V),V instanceof Error?V:Error(`Error reading node_modules files for ${$}`)}}}if(!W){B=!0;let R=Q4(Q,"npm"),z=EX(R);return K.error(`Missing dependency ${$}, please run ${R} ${z}`),{name:$,version:G}}let U,N;if(O&&M){let R=await u40(M);U=R.ios_checksum,N=R.android_checksum}return{name:$,version:H,native:O,ios_checksum:U,android_checksum:N}})).catch(()=>[]);if(B||q.find(($)=>$.native===void 0))throw K.error("Missing dependencies or invalid dependencies"),K.error("If you use monorepo, workspace or any special package manager you can use the --package-json [path,] and --node-modules [path,] options to make the command work properly"),Error("Missing dependencies or invalid dependencies");return q}async function h40(D,X,Y){let{data:Z,error:J}=await D.from("channels").select("version(checksum)").eq("name",Y).eq("app_id",X).single(),Q=Z;if(J||Q===null||!Q.version||!Q.version.checksum)return null;return Q.version.checksum}function _40(D){if(!D)throw K.error("Error parsing native packages, perhaps the metadata does not exist in Capgo?"),Error("Error parsing native packages");for(let Y of D){if(typeof Y!=="object")throw K.error(`Invalid remote native package data: ${Y}, expected object, got ${typeof Y}`),Error("Invalid remote native package data");let{name:Z,version:J}=Y;if(!Z||typeof Z!=="string")throw K.error(`Invalid remote native package name: ${Z}, expected string, got ${typeof Z}`),Error("Invalid remote native package name");if(!J||typeof J!=="string")throw K.error(`Invalid remote native package version: ${J}, expected string, got ${typeof J}`),Error("Invalid remote native package version")}return new Map(D.map((Y)=>[Y.name,Y]))}async function py(D,X,Y){let{data:Z,error:J}=await D.from("channels").select(`version (
355
355
  native_packages
356
356
  )`).eq("name",Y).eq("app_id",X).single();if(J)throw K.error(`Error fetching native packages: ${J.message}`),Error(`Error fetching native packages: ${J.message}`);return _40(Z.version.native_packages??[])}async function ay(D,X,Y,Z){let J=xD();J.start(`Checking bundle checksum compatibility with channel ${Y}`);let Q=await h40(D,X,Y);if(!Q){J.stop(`No checksum found for channel ${Y}, the bundle will be uploaded`);return}if(Q&&Q===Z)throw J.stop("Checksum check failed"),K.error(`Cannot upload the same bundle content.
357
357
  Current bundle checksum matches remote bundle for channel ${Y}
358
358
  Did you build your app before uploading?
359
- PS: You can ignore this check with "--ignore-checksum-check"`),Error("Cannot upload the same bundle content");J.stop(`Checksum compatible with ${Y} channel`)}function b0(D,X){return D||X?.plugins?.CapacitorUpdater?.appId||X?.appId}function $5(D){let X=[];if(!D.localVersion)return{compatible:!0,reasons:[],message:"Package only exists on remote (will be removed)"};if(!D.remoteVersion)return X.push("new_plugin"),{compatible:!1,reasons:X,message:"New native plugin added (requires app store update)"};let Y=!1;try{let w=PX(D.localVersion),F=PX(D.remoteVersion);Y=sG(w,F)}catch{Y=!1}if(!Y)X.push("version_mismatch");let Z=D.localIosChecksum&&D.remoteIosChecksum&&D.localIosChecksum!==D.remoteIosChecksum,J=D.localAndroidChecksum&&D.remoteAndroidChecksum&&D.localAndroidChecksum!==D.remoteAndroidChecksum;if(Z&&J)X.push("both_platforms_changed");else if(Z)X.push("ios_code_changed");else if(J)X.push("android_code_changed");if(X.length===0)return{compatible:!0,reasons:[],message:"Compatible"};let Q=[];for(let w of X)switch(w){case"version_mismatch":Q.push(`version changed: ${D.remoteVersion} → ${D.localVersion}`);break;case"ios_code_changed":Q.push("iOS native code changed");break;case"android_code_changed":Q.push("Android native code changed");break;case"both_platforms_changed":Q.push("iOS and Android native code changed");break;case"new_plugin":Q.push("new plugin (requires app store update)");break;case"removed_plugin":Q.push("plugin removed");break}return{compatible:!1,reasons:X,message:Q.join(", ")}}function Y9(D){return $5(D).compatible}async function NJ(D,X,Y,Z,J){let Q=await h$(Z,J),w=await py(D,X,Y),F=Q.filter((q)=>!!q.native).map((q)=>{let $=w.get(q.name);if($)return{name:q.name,localVersion:q.version,remoteVersion:$.version,localIosChecksum:q.ios_checksum,remoteIosChecksum:$.ios_checksum,localAndroidChecksum:q.android_checksum,remoteAndroidChecksum:$.android_checksum};return{name:q.name,localVersion:q.version,remoteVersion:void 0,localIosChecksum:q.ios_checksum,localAndroidChecksum:q.android_checksum}}),B=[...w].filter(([q])=>Q.find(($)=>$.name===q)===void 0).map(([q,$])=>({name:q,localVersion:void 0,remoteVersion:$.version,remoteIosChecksum:$.ios_checksum,remoteAndroidChecksum:$.android_checksum}));return F.push(...B),{finalCompatibility:F,localDependencies:Q}}async function _$(D,X,Y,Z){let J=await py(D,X,Y),Q=Z.map((F)=>{let B=J.get(F.name);if(B)return{name:F.name,localVersion:F.version,remoteVersion:B.version,localIosChecksum:F.ios_checksum,remoteIosChecksum:B.ios_checksum,localAndroidChecksum:F.android_checksum,remoteAndroidChecksum:B.android_checksum};return{name:F.name,localVersion:F.version,remoteVersion:void 0,localIosChecksum:F.ios_checksum,localAndroidChecksum:F.android_checksum}}),w=[...J].filter(([F])=>Z.find((B)=>B.name===F)===void 0).map(([F,B])=>({name:F,localVersion:void 0,remoteVersion:B.version,remoteIosChecksum:B.ios_checksum,remoteAndroidChecksum:B.android_checksum}));return Q.push(...w),{finalCompatibility:Q,localDependencies:Z}}async function ty(D,X,Y){let Z=await oD({message:"Would you like to sync your project with Capacitor now? This is recommended to ensure encrypted updates work properly."});if(c0(Z)){if(D&&X&&Y)await CL("onboarding-v2",X,Y,"canceled","\uD83E\uDD37");throw K.error("Canceled Capacitor sync"),Error("Capacitor sync cancelled")}if(Z){let J=q5(),Q=xD();Q.start("Running the command...");try{await new Promise((w,F)=>{let B=Py.spawn(J.runner,["cap","sync"],{stdio:"pipe"});B.on("close",(q)=>{if(q===0)w();else F(Error(`Command failed with exit code ${q}`))}),B.on("error",(q)=>{F(q)})}),Q.stop("Capacitor sync completed ✅")}catch(w){Q.stop("Error"),K.error(`Failed to run Capacitor sync: ${w}`),K.warn(`Please run "${J.runner} cap sync" manually to ensure encrypted updates work properly`)}}else{let J=q5();K.warn("⚠️ Important: If you upload encrypted bundles without syncing, updates will fail!"),K.info(`Remember to run "${J.runner} cap sync" before uploading encrypted bundles`)}}async function ry(D,X,Y,Z={}){let{silent:J=!1,autoUnlink:Q=!1}=Z,{data:w,error:F}=await D.from("channels").select().eq("app_id",X).eq("version",Y.id);if(F){if(!J)K.error(`Cannot check Version ${X}@${Y.name}: ${p(F)}`);throw Error(`Cannot check version ${X}@${Y.name}: ${p(F)}`)}if(!w?.length)return;if(J)throw Error(`Version ${X}@${Y.name} is used in ${w.length} channel(s)`);q0(`❌ Version ${X}@${Y.name} is used in ${w.length} channel${w.length>1?"s":""}`);let B=Q;if(!Q)B=await oD({message:"unlink it?"})===!0;if(!B)throw K.error("Unlink it first"),Error(`Version ${X}@${Y.name} is still linked to channel(s)`);for(let q of w){let $=xD();$.start(`Unlinking channel ${q.name}`);let G=await v$(D,X,{silent:J});if(!G)throw $.stop(`Cannot find unknown version for ${X}`),Error(`Cannot find unknown version for ${X}`);let{error:W}=await D.from("channels").update({version:G.id}).eq("id",q.id);if(W)throw $.stop(`Cannot update channel ${q.name} ${p(W)}`),Error(`Cannot update channel ${q.name}: ${p(W)}`);$.stop(`✅ Channel ${q.name} unlinked`)}$0(`Version unlinked from ${w.length} channel${w.length>1?"s":""}`)}async function v$(D,X,Y={}){let{silent:Z=!1}=Y,{data:J,error:Q}=await D.from("app_versions").select("id").eq("app_id",X).eq("name","unknown").single();if(!Q)return J;try{let w=await _D(D,X),{data:F,error:B}=await D.from("app_versions").insert({owner_org:w,deleted:!0,name:"unknown",app_id:X}).select("id").single();if(B){if(!Z)K.error(`Cannot find or create unknown version for ${X}. Find error: ${p(Q)}, Create error: ${p(B)}`);throw Error(`Cannot find or create unknown version for app ${X}: ${p(B)}`)}return F}catch(w){if(!Z)K.error(`Cannot find or create unknown version for ${X}. Find error: ${p(Q)}, Create error: ${p(w)}`);throw Error(`Cannot retrieve or create unknown version for app ${X}: ${p(w)}`)}}function sy(D,X){return D.from("channels").insert(X).select().single()}function oy(D,X,Y,Z){return D.from("channels").delete().eq("name",X).eq("app_id",Y).single()}function ey(D,X,Y){return D.from("channels").select().eq("app_id",X).eq("name",Y).single()}function Dk(D,X,Y){return D.from("channel_devices").delete().eq("app_id",X).eq("channel_id",Y)}function Xk(D,X,Y){return D.from("channels").select(`
359
+ PS: You can ignore this check with "--ignore-checksum-check"`),Error("Cannot upload the same bundle content");J.stop(`Checksum compatible with ${Y} channel`)}function b0(D,X){return D||X?.plugins?.CapacitorUpdater?.appId||X?.appId}function $5(D){let X=[];if(!D.localVersion)return{compatible:!0,reasons:[],message:"Package only exists on remote (will be removed)"};if(!D.remoteVersion)return X.push("new_plugin"),{compatible:!1,reasons:X,message:"New native plugin added (requires app store update)"};let Y=!1;try{let w=PX(D.localVersion),F=PX(D.remoteVersion);Y=sG(w,F)}catch{Y=!1}if(!Y)X.push("version_mismatch");let Z=D.localIosChecksum&&D.remoteIosChecksum&&D.localIosChecksum!==D.remoteIosChecksum,J=D.localAndroidChecksum&&D.remoteAndroidChecksum&&D.localAndroidChecksum!==D.remoteAndroidChecksum;if(Z&&J)X.push("both_platforms_changed");else if(Z)X.push("ios_code_changed");else if(J)X.push("android_code_changed");if(X.length===0)return{compatible:!0,reasons:[],message:"Compatible"};let Q=[];for(let w of X)switch(w){case"version_mismatch":Q.push(`version changed: ${D.remoteVersion} → ${D.localVersion}`);break;case"ios_code_changed":Q.push("iOS native code changed");break;case"android_code_changed":Q.push("Android native code changed");break;case"both_platforms_changed":Q.push("iOS and Android native code changed");break;case"new_plugin":Q.push("new plugin (requires app store update)");break;case"removed_plugin":Q.push("plugin removed");break}return{compatible:!1,reasons:X,message:Q.join(", ")}}function Y9(D){return $5(D).compatible}async function NJ(D,X,Y,Z,J){let Q=await h$(Z,J),w=await py(D,X,Y),F=Q.filter((q)=>!!q.native).map((q)=>{let $=w.get(q.name);if($)return{name:q.name,localVersion:q.version,remoteVersion:$.version,localIosChecksum:q.ios_checksum,remoteIosChecksum:$.ios_checksum,localAndroidChecksum:q.android_checksum,remoteAndroidChecksum:$.android_checksum};return{name:q.name,localVersion:q.version,remoteVersion:void 0,localIosChecksum:q.ios_checksum,localAndroidChecksum:q.android_checksum}}),B=[...w].filter(([q])=>Q.find(($)=>$.name===q)===void 0).map(([q,$])=>({name:q,localVersion:void 0,remoteVersion:$.version,remoteIosChecksum:$.ios_checksum,remoteAndroidChecksum:$.android_checksum}));return F.push(...B),{finalCompatibility:F,localDependencies:Q}}async function _$(D,X,Y,Z){let J=await py(D,X,Y),Q=Z.map((F)=>{let B=J.get(F.name);if(B)return{name:F.name,localVersion:F.version,remoteVersion:B.version,localIosChecksum:F.ios_checksum,remoteIosChecksum:B.ios_checksum,localAndroidChecksum:F.android_checksum,remoteAndroidChecksum:B.android_checksum};return{name:F.name,localVersion:F.version,remoteVersion:void 0,localIosChecksum:F.ios_checksum,localAndroidChecksum:F.android_checksum}}),w=[...J].filter(([F])=>Z.find((B)=>B.name===F)===void 0).map(([F,B])=>({name:F,localVersion:void 0,remoteVersion:B.version,remoteIosChecksum:B.ios_checksum,remoteAndroidChecksum:B.android_checksum}));return Q.push(...w),{finalCompatibility:Q,localDependencies:Z}}async function ty(D,X,Y){let Z=await oD({message:"Would you like to sync your project with Capacitor now? This is recommended to ensure encrypted updates work properly."});if(c0(Z)){if(D&&X&&Y)await CL("onboarding-v2",X,Y,"canceled","\uD83E\uDD37");throw K.error("Canceled Capacitor sync"),Error("Capacitor sync cancelled")}if(Z){let J=q5(),Q=xD();Q.start("Running the command...");try{await new Promise((w,F)=>{let B=Py.spawn(J.runner,["cap","sync"],{stdio:"pipe"});B.on("close",(q)=>{if(q===0)w();else F(Error(`Command failed with exit code ${q}`))}),B.on("error",(q)=>{F(q)})}),Q.stop("Capacitor sync completed ✅")}catch(w){Q.stop("Error"),K.error(`Failed to run Capacitor sync: ${w}`),K.warn(`Please run "${J.runner} cap sync" manually to ensure encrypted updates work properly`)}}else{let J=q5();K.warn("⚠️ Important: If you upload encrypted bundles without syncing, updates will fail!"),K.info(`Remember to run "${J.runner} cap sync" before uploading encrypted bundles`)}}async function ry(D,X,Y,Z={}){let{silent:J=!1,autoUnlink:Q=!1}=Z,{data:w,error:F}=await D.from("channels").select().eq("app_id",X).eq("version",Y.id);if(F){if(!J)K.error(`Cannot check Version ${X}@${Y.name}: ${p(F)}`);throw Error(`Cannot check version ${X}@${Y.name}: ${p(F)}`)}if(!w?.length)return;if(J)throw Error(`Version ${X}@${Y.name} is used in ${w.length} channel(s)`);q0(`❌ Version ${X}@${Y.name} is used in ${w.length} channel${w.length>1?"s":""}`);let B=Q;if(!Q)B=await oD({message:"unlink it?"})===!0;if(!B)throw K.error("Unlink it first"),Error(`Version ${X}@${Y.name} is still linked to channel(s)`);for(let q of w){let $=xD();$.start(`Unlinking channel ${q.name}`);let G=await v$(D,X,{silent:J});if(!G)throw $.stop(`Cannot find unknown version for ${X}`),Error(`Cannot find unknown version for ${X}`);let{error:W}=await D.from("channels").update({version:G.id}).eq("id",q.id);if(W)throw $.stop(`Cannot update channel ${q.name} ${p(W)}`),Error(`Cannot update channel ${q.name}: ${p(W)}`);$.stop(`✅ Channel ${q.name} unlinked`)}$0(`Version unlinked from ${w.length} channel${w.length>1?"s":""}`)}async function v$(D,X,Y={}){let{silent:Z=!1}=Y,{data:J,error:Q}=await D.from("app_versions").select("id").eq("app_id",X).eq("name","unknown").single();if(!Q)return J;try{let w=await pD(D,X),{data:F,error:B}=await D.from("app_versions").insert({owner_org:w,deleted:!0,name:"unknown",app_id:X}).select("id").single();if(B){if(!Z)K.error(`Cannot find or create unknown version for ${X}. Find error: ${p(Q)}, Create error: ${p(B)}`);throw Error(`Cannot find or create unknown version for app ${X}: ${p(B)}`)}return F}catch(w){if(!Z)K.error(`Cannot find or create unknown version for ${X}. Find error: ${p(Q)}, Create error: ${p(w)}`);throw Error(`Cannot retrieve or create unknown version for app ${X}: ${p(w)}`)}}function sy(D,X){return D.from("channels").insert(X).select().single()}function oy(D,X,Y,Z){return D.from("channels").delete().eq("name",X).eq("app_id",Y).single()}function ey(D,X,Y){return D.from("channels").select().eq("app_id",X).eq("name",Y).single()}function Dk(D,X,Y){return D.from("channel_devices").delete().eq("app_id",X).eq("channel_id",Y)}function Xk(D,X,Y){return D.from("channels").select(`
360
360
  id,
361
361
  version (id, name)
362
362
  `).eq("app_id",X).eq("name",Y).single().throwOnError().then(({data:Z})=>Z?.version)}function Yk(D,X=!1){if(X)return;let Y=new MD;Y.theme=MD.roundTheme,Y.headers=["Name","Version","Public","iOS","Android","Auto Update","Native Auto Update","Device Self Set","Progressive Deploy","Secondary Version","Secondary Version Percentage","AB Testing","AB Testing Version","AB Testing Percentage","Emulator","Device","Dev","Prod"],Y.rows=[];for(let Z of D.toReversed())Y.rows.push([Z.name,Z.version?.name,Z.public?"✅":"❌",Z.ios?"✅":"❌",Z.android?"✅":"❌",Z.disable_auto_update,Z.disable_auto_update_under_native?"❌":"✅",Z.allow_device_self_set?"✅":"❌",Z.allow_emulator?"✅":"❌",Z.allow_device?"✅":"❌",Z.allow_dev?"✅":"❌",Z.allow_prod?"✅":"❌"]);K.success("Channels"),K.success(Y.toString())}async function Zk(D,X,Y=!1){let{data:Z,error:J}=await D.from("channels").select(`
@@ -376,12 +376,12 @@ PS: You can ignore this check with "--ignore-checksum-check"`),Error("Cannot upl
376
376
  created_by,
377
377
  app_id,
378
378
  version (id, name)
379
- `).eq("app_id",X).order("created_at",{ascending:!1});if(J){if(!Y)K.error(`App ${X} not found in database`);throw Error(`App ${X} not found in database: ${p(J)}`)}return Z}async function b$(D,X,Y,Z={}){let{silent:J=!1}=Z,{error:Q}=await D.from("app_versions").update({deleted:!0}).eq("app_id",X).eq("deleted",!1).eq("name",Y);if(Q){let w=`App version ${X}@${Y} not found in database`;if(!J)K.error(w);throw Error(`${w}: ${p(Q)}`)}}async function RJ(D,X,Y,Z={}){let{silent:J=!1,autoUnlink:Q=!1}=Z,w=await v40(D,X,Y,{silent:J});await ry(D,X,w,{silent:J,autoUnlink:Q}),await b$(D,X,Y,{silent:J})}function Jk(D,X=!1){if(X)return;if(!D.length)throw Error("No bundle found");let Y=new MD;Y.theme=MD.roundTheme,Y.headers=["Version","Created","Keep"],Y.rows=[];for(let Z of D.toReversed())Y.rows.push([Z.name,l7(Z.created_at),Z.keep??""]);K.success("Bundles"),K.success(Y.toString())}async function AJ(D,X,Y={}){let{silent:Z=!1}=Y,{data:J,error:Q}=await D.from("app_versions").select().eq("app_id",X).eq("deleted",!1).order("created_at",{ascending:!1});if(Q){let w=`App ${X} not found in database`;if(!Z)K.error(w);throw Error(`${w}: ${p(Q)}`)}return J??[]}async function Qk(D,X,Y={}){let{silent:Z=!1}=Y,{data:J,error:Q}=await D.from("channels").select("version").eq("app_id",X);if(Q){let w=`App ${X} not found in database`;if(!Z)K.error(w);throw Error(`${w}: ${p(Q)}`)}return(J??[]).map((w)=>w.version)}async function v40(D,X,Y,Z={}){let{silent:J=!1}=Z,{data:Q,error:w}=await D.from("app_versions").select().eq("app_id",X).eq("name",Y).eq("deleted",!1).single();if(!Q||w){let F=`App version ${X}@${Y} doesn't exist`;if(!J)K.error(F);throw Error(`${F}${w?`: ${p(w)}`:""}`)}return Q}var n7=require("node:fs");async function wk(D,X){let{data:Y}=await D.rpc("exist_app_v2",{appid:X}).single();return!!Y}async function vD(D,X,Y=!1){let{data:Z,error:J}=await D.rpc("reject_access_due_to_2fa_for_app",{app_id:X});if(J){if(!Y)K.error(`Cannot check 2FA compliance: ${J.message}`);throw Error(`Cannot check 2FA compliance: ${J.message}`)}if(Z){if(Y)throw Error("2FA required for this organization");u$()}}async function CD(D,X,Y,Z,J=!1,Q=!1){let w=q5();if(!Q)await vD(D,Y,J);let F=await hy(D,X,Y);if(!F.okay)switch(F.error){case"INVALID_APIKEY":{if(!J)K.error("Invalid apikey, such apikey does not exists!");throw Error("Invalid apikey, such apikey does not exists!")}case"NO_APP":{let $=`App ${Y} does not exist, run first \`${w.runner} @capgo/cli app add ${Y}\` to create it`;if(!J)K.error($);throw Error($)}case"NO_ORG":{if(!J)K.error("Could not find organization, please contact support to resolve this!");throw Error("Could not find organization, please contact support to resolve this!")}}let B=F.data;if(Z>B){let $=`Insuficcent permissions for app ${Y}. Current permission: ${L1[F.data]}, required for this action: ${L1[Z]}.`;if(!J)K.error($);throw Error($)}return F.data}var D8="assets/icon.png";var b40=/^[a-z0-9]+(\.[\w-]+)+$/i;function g40(D,X,Y){if(!X.apikey){if(!Y)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}if(!D){if(!Y)K.error("Missing argument, you need to provide a appId, or be in a capacitor project");throw Error("Missing appId")}if(D.includes("--")){if(!Y)K.error('The app id includes illegal symbols. You cannot use "--" in the app id');throw Error("App id includes illegal symbols")}if(!b40.test(D)){if(!Y)K.error(`Invalid app ID format: "${D}"`),K.info("App ID must be in reverse domain notation (e.g., com.example.app)"),K.info("Valid format: lowercase letters, numbers, dots, hyphens, and underscores"),K.info("Examples: com.mycompany.myapp, io.capgo.app, com.example.my-app");throw Error("Invalid app ID format")}}async function m40(D,X,Y){if(!await wk(D,X))return;if(X==="io.ionic.starter"){if(!Y)K.error(`This appId ${X} cannot be used it's reserved, please change it in your capacitor config.`);throw Error("Reserved appId, please change it in capacitor config")}if(!Y)K.error(`App ${X} already exist`);throw Error(`App ${X} already exists`)}async function Fk(D,X,Y,Z=!1){if(!Z)q0("Adding");await o0(),X.apikey=X.apikey||Q0();let J=await K0(),Q=b0(D,J?.config);g40(Q,X,Z);let w=await z0(X.apikey,X.supaHost,X.supaAnon),F=await N0(w,X.apikey,["write","all"]);if(await m40(w,Q,Z),!Y)Y=await UJ(w,["admin","super_admin"]);let B=Y.gid,{name:q,icon:$}=X;if(q=q||J.config?.appName||"Unknown",$=$||"resources/icon.png",!$||!q){if(!Z)K.error("Missing argument, you need to provide a appId and a name, or be in a capacitor project");throw Error("Missing app name or icon path")}if(!Z)K.info(`Adding ${Q} to Capgo`);let G=null,W=null;if($&&n7.existsSync($)){if(G=n7.readFileSync($),W=X9($)||"image/png",!Z)K.warn(`Found app icon ${$}`)}else if(n7.existsSync(D8)){if(G=n7.readFileSync(D8),W=X9(D8)||"image/png",!Z)K.warn(`Found app icon ${D8}`)}else if(!Z)K.warn(`Cannot find app icon in any of the following locations: ${$}, ${D8}`);let O="icon",H="https://xvwzpoazmxkqosrdewyv.supabase.co/storage/v1/object/public/images/capgo.png";if(G&&W){let{error:U}=await w.storage.from(`images/org/${B}/${Q}`).upload(O,G,{contentType:W});if(U){if(!Z)console.error(U);if(!Z)K.error(`Could not add app ${p(U)}`);throw Error(`Could not add app ${p(U)}`)}let{data:N}=await w.storage.from(`images/org/${B}/${Q}`).getPublicUrl(O);H=N?.publicUrl||H}let{error:M}=await w.from("apps").insert({icon_url:H,owner_org:B,user_id:F,name:q,app_id:Q});if(M){if(!Z)K.error(`Could not add app ${p(M)}`);throw Error(`Could not add app ${p(M)}`)}if(await H0(X.apikey,{channel:"app",event:"App Created",icon:"\uD83C\uDD95",user_id:B,tags:{"app-id":Q},notify:!1,notifyConsole:!0}).catch(()=>{}),!Z)K.success(`App ${Q} added to Capgo`),K.info("This app is accessible to all members of your organization based on their permissions"),K.info(`Next step: upload a bundle with "npx @capgo/cli bundle upload ${Q}"`),$0("Done ✅");return{appId:Q,organizationUid:B,userId:F,name:q,signedURL:H}}async function Bk(D,X,Y=!1,Z=!1){if(!Y)q0("Deleting");X.apikey=X.apikey||Q0();let J=await K0(),Q=b0(D,J?.config);if(!X.apikey){if(!Y)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}if(!Q){if(!Y)K.error("Missing argument, you need to provide a appId, or be in a capacitor project");throw Error("Missing appId")}let w=await z0(X.apikey,X.supaHost,X.supaAnon),F=await N0(w,X.apikey,["write","all"]);await CD(w,X.apikey,Q,5,Y);let{data:B,error:q}=await w.from("apps").select("owner_org ( created_by, id )").eq("app_id",Q).single(),$=B;if(!Z&&!q&&($?.owner_org.created_by??"")!==F)if(!Y){K.warn("Deleting the app is not recommended for users that are not the organization owner"),K.warn("You are invited as a super_admin but your are not the owner"),K.warn("It's strongly recommended that you do not continue!");let M=await M8({message:"Do you want to continue?",options:[{label:"Yes",value:"yes"},{label:"No",value:"no"}]});if(c0(M)||M==="no")throw K.error("Canceled deleting the app, exiting"),Error("App deletion cancelled")}else throw Error("Cannot delete app: you are not the organization owner");else if(q&&!Y)K.warn(`Cannot get the app owner ${p(q)}`);let{error:G}=await w.storage.from("images").remove([`org/${$?.owner_org.id}/${Q}/icon`]);if(G&&!Y)K.error("Could not delete app logo");let{error:W}=await w.storage.from(`apps/${Q}/${F}`).remove(["versions"]);if(W&&!Y)K.error("Could not delete app version");let{error:O}=await w.from("apps").delete().eq("app_id",Q);if(O){if(!Y)K.error("Could not delete app");throw Error(`Could not delete app: ${p(O)}`)}let H=await _D(w,Q);if(await H0(X.apikey,{channel:"app",event:"App Deleted",icon:"\uD83D\uDDD1️",user_id:H,tags:{"app-id":Q},notify:!0}).catch(()=>{}),!Y)K.success("App deleted in Capgo"),$0("Done ✅");return!0}var EJ=require("node:os"),$k=require("node:process");async function qk(D){let X={},Y=Object.keys(D);return(await Promise.all(Y.map((J)=>GZ(J)))).forEach((J,Q)=>{if(J)X[Y[Q]]=J}),X}async function d40(){let D=await HJ(),X={"@capgo/cli":o8.version};for(let[Y,Z]of D)if(Y.startsWith("@capgo/")||Y.startsWith("@capawesome/")||Y.startsWith("capacitor"))X[Y]=Z;return X}async function Gk(D,X=!1){if(!X)K.warn(" \uD83D\uDC8A Capgo Doctor \uD83D\uDC8A");let Y=await K0(),Z=D9("",D.packageJson),J=Y?.config?.plugins?.CapacitorUpdater?.version||Z,Q=Y?.config?.appName||"",w=b0("",Y?.config),F=Y?.config?.webDir||"";if(!X)K.info(` App Name: ${Q}`),K.info(` App ID: ${w}`),K.info(` App Version: ${J}`),K.info(` Web Dir: ${F}`),K.info(` OS: ${EJ.platform()} ${EJ.version()}`),K.info(` Node: ${$k.version}`),K.info(" Installed Dependencies:");let B=await d40();if(Object.keys(B).length===0){if(!X)K.warning("\x1B[31m%s\x1B[0m \uD83D\uDEA8 No dependencies found");throw Error("No dependencies found")}if(!X)for(let $ of Object.keys(B))K.info(` ${$}: ${B[$]}`);let q={};if(!X){let $=xD();$.start("Running: Loading latest dependencies"),q=await qk(B),$.stop("Latest Dependencies:");for(let G of Object.keys(q))K.info(` ${G}: ${q[G]}`)}else q=await qk(B);if(JSON.stringify(B)!==JSON.stringify(q)){if(!X)K.warn("\x1B[31m\uD83D\uDEA8 Some dependencies are not up to date\x1B[0m");throw Error("Some dependencies are not up to date")}if(!X)K.success("\x1B[32m✅ All dependencies are up to date\x1B[0m");return{appName:Q,appId:w,appVersion:J,webDir:F,installedDependencies:B,latestDependencies:q}}function c40(D){let X=new MD;X.headers=["Name","id","Created"],X.rows=[];for(let Y of D.toReversed())X.rows.push([Y.name??"",Y.app_id,l7(Y.created_at)]);K.success("Apps"),K.success(X.toString())}async function l40(D,X){let{data:Y,error:Z}=await D.from("apps").select().order("created_at",{ascending:!1});if(Z){if(!X)K.error("Apps not found");throw Error("Apps not found")}return Y??[]}async function Ok(D,X=!1){if(!X)q0("List apps in Capgo");await o0(),D.apikey=D.apikey||Q0();let Y=await z0(D.apikey,D.supaHost,D.supaAnon);if(await N0(Y,D.apikey,["write","all","read","upload"]),!X)K.info("Getting active bundle in Capgo");let Z=await l40(Y,X);if(!Z.length){if(!X)K.error("No apps found");throw Error("No apps found")}if(!X)K.info(`Active app in Capgo: ${Z.length}`),c40(Z),$0("Done ✅");return Z}var Wk=require("node:crypto"),i7=require("node:fs");async function Hk(D,X,Y=!1){if(!Y)q0("Set app");X.apikey=X.apikey||Q0();let Z=await K0();if(D=b0(D,Z?.config),!X.apikey){if(!Y)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}if(!D){if(!Y)K.error("Missing argument, you need to provide a appId, or be in a capacitor project");throw Error("Missing appId")}let J=await z0(X.apikey,X.supaHost,X.supaAnon),w=(await UJ(J,["admin","super_admin"])).gid,F=await N0(J,X.apikey,["write","all"]);await CD(J,X.apikey,D,4,Y);let{name:B,icon:q,retention:$,exposeMetadata:G}=X;if($&&Number.isNaN(Number($))){if(!Y)K.error("retention value must be a number");throw Error("Retention value must be a number")}else if($&&$<0){if(!Y)K.error("retention value cannot be less than 0");throw Error("Retention value cannot be less than 0")}else if($&&$>=63113904){if(!Y)K.error("retention value cannot be greater than 63113904 seconds (2 years)");throw Error("Retention value cannot be greater than 63113904 seconds (2 years)")}let W,O,H=`icon_${Wk.randomUUID()}`,M="https://xvwzpoazmxkqosrdewyv.supabase.co/storage/v1/object/public/images/capgo.png";if(q&&i7.existsSync(q)){if(W=i7.readFileSync(q),O=X9(q)||"image/png",!Y)K.warn(`Found app icon ${q}`)}else if(i7.existsSync(D8)){if(W=i7.readFileSync(D8),O=X9(D8)||"image/png",!Y)K.warn(`Found app icon ${D8}`)}else if(!Y)K.warn(`Cannot find app icon in any of the following locations: ${q}, ${D8}`);if(W&&O){let{error:N}=await J.storage.from(`images/org/${w}/${D}`).upload(H,W,{contentType:O});if(N){if(!Y)K.error(`Could not set app ${p(N)}`);throw Error(`Could not set app: ${p(N)}`)}let{data:R}=await J.storage.from(`images/org/${w}/${D}`).getPublicUrl(H);M=R?.publicUrl||M}let{error:U}=await J.from("apps").update({icon_url:M,name:B,retention:!$?void 0:$*24*60*60,expose_metadata:G}).eq("app_id",D).eq("user_id",F);if(U){if(!Y)K.error(`Could not set app ${p(U)}`);throw Error(`Could not set app: ${p(U)}`)}if(await H0(X.apikey,{channel:"app",event:"App Updated",icon:"\uD83D\uDCDD",user_id:w,tags:{"app-id":D},notify:!1,notifyConsole:!0}).catch(()=>{}),!Y)$0("Done ✅");return!0}async function Kk(D,X,Y=!1){if(!Y)q0("Set a specific setting in capacitor config");if(X.bool&&X.string){if(!Y)K.error("Bool and string CANNOT be set at the same time");throw Error("Bool and string cannot both be provided")}if(!X.bool&&!X.string){if(!Y)K.error("You MUST provide either bool or string as the value");throw Error("Either bool or string value is required")}if(X.bool&&X.bool!=="true"&&X.bool!=="false"){if(!Y)K.error("Invalid bool");throw Error("Invalid bool value; expected true or false")}try{let Z=await K0(),J=Z.config,Q=D.split(".");if(Q.length===0){if(!Y)K.error("Invalid path");throw Error("Invalid config path")}for(let F of Q.slice(0,-1)){if(!Object.prototype.hasOwnProperty.call(J,F))J[F]={};J=J[F]}let w=X.bool?X.bool==="true":X.string;if(J[Q.at(-1)]=w,await h7(Z,!0),!Y)K.success(`Set "${D}" to "${w}"`)}catch(Z){if(!Y)K.error(`Cannot set config in capacitor settings ${p(Z)}`);throw Error(`Cannot set capacitor config: ${p(Z)}`)}if(!Y)$0("Done ✅")}var d8=require("node:fs"),X8=require("node:fs/promises"),Vk=require("node:os"),Y8=require("node:path"),m$=require("node:process");var Uk=R0(Mw(),1),TJ=R0($Z(),1);var CJ=require("node:fs/promises"),zk=require("node:os"),jJ=require("node:path"),P0=require("node:process"),n40=jJ.join(zk.homedir(),".capgo-credentials"),i40=jJ.join(n40,"credentials.json"),p40=".capgo-credentials.json";function a40(D){return D?jJ.join(P0.cwd(),p40):i40}async function g$(D){try{let X=a40(D),Y=await CJ.readFile(X,"utf-8");return JSON.parse(Y)}catch{return{}}}async function t40(D,X){if(X!==void 0){let J=await g$(X);if(!D){let Q=Object.keys(J);if(Q.length===0)return null;return J[Q[0]]||null}return J[D]||null}let Y=await g$(!0),Z=await g$(!1);if(!D){let J=Object.keys(Y);if(J.length>0)return Y[J[0]]||null;let Q=Object.keys(Z);if(Q.length===0)return null;return Z[Q[0]]||null}return Y[D]||Z[D]||null}function r40(){let D={};if(P0.env.BUILD_CERTIFICATE_BASE64)D.BUILD_CERTIFICATE_BASE64=P0.env.BUILD_CERTIFICATE_BASE64;if(P0.env.BUILD_PROVISION_PROFILE_BASE64)D.BUILD_PROVISION_PROFILE_BASE64=P0.env.BUILD_PROVISION_PROFILE_BASE64;if(P0.env.BUILD_PROVISION_PROFILE_BASE64_PROD)D.BUILD_PROVISION_PROFILE_BASE64_PROD=P0.env.BUILD_PROVISION_PROFILE_BASE64_PROD;if(P0.env.P12_PASSWORD)D.P12_PASSWORD=P0.env.P12_PASSWORD;if(P0.env.APPLE_KEY_ID)D.APPLE_KEY_ID=P0.env.APPLE_KEY_ID;if(P0.env.APPLE_ISSUER_ID)D.APPLE_ISSUER_ID=P0.env.APPLE_ISSUER_ID;if(P0.env.APPLE_KEY_CONTENT)D.APPLE_KEY_CONTENT=P0.env.APPLE_KEY_CONTENT;if(P0.env.APPLE_PROFILE_NAME)D.APPLE_PROFILE_NAME=P0.env.APPLE_PROFILE_NAME;if(P0.env.APP_STORE_CONNECT_TEAM_ID)D.APP_STORE_CONNECT_TEAM_ID=P0.env.APP_STORE_CONNECT_TEAM_ID;if(P0.env.ANDROID_KEYSTORE_FILE)D.ANDROID_KEYSTORE_FILE=P0.env.ANDROID_KEYSTORE_FILE;if(P0.env.KEYSTORE_KEY_ALIAS)D.KEYSTORE_KEY_ALIAS=P0.env.KEYSTORE_KEY_ALIAS;if(P0.env.KEYSTORE_KEY_PASSWORD)D.KEYSTORE_KEY_PASSWORD=P0.env.KEYSTORE_KEY_PASSWORD;if(P0.env.KEYSTORE_STORE_PASSWORD)D.KEYSTORE_STORE_PASSWORD=P0.env.KEYSTORE_STORE_PASSWORD;if(P0.env.PLAY_CONFIG_JSON)D.PLAY_CONFIG_JSON=P0.env.PLAY_CONFIG_JSON;return D}async function Mk(D,X,Y){let Z=await t40(D),J=r40(),Q={...Z?.[X]||{}};if(Object.assign(Q,J),Y)Object.assign(Q,Y);if(X==="android"){let w=!!Q.KEYSTORE_KEY_PASSWORD,F=!!Q.KEYSTORE_STORE_PASSWORD;if(w&&!F)Q.KEYSTORE_STORE_PASSWORD=Q.KEYSTORE_KEY_PASSWORD;else if(!w&&F)Q.KEYSTORE_KEY_PASSWORD=Q.KEYSTORE_STORE_PASSWORD}return Object.keys(Q).length>0?Q:void 0}async function s40(D,X,Y=3,Z=!1){let J=[1000,3000,5000];for(let Q=1;Q<=Y;Q++)try{let w=await fetch(D,X);if(w.ok||w.status>=400&&w.status<500)return w;let F=await w.text().catch(()=>"unknown error");if(!Z)K.warn(`Build request attempt ${Q}/${Y} failed: ${w.status} - ${F}`);if(Q<Y){let B=J[Q-1]||5000;if(!Z)K.info(`Retrying in ${B/1000}s...`);await new Promise((q)=>setTimeout(q,B))}else throw Error(`Failed to request build after ${Y} attempts: ${w.status} - ${F}`)}catch(w){let F=w instanceof Error?w.message:String(w);if(F.startsWith("Failed to request build after"))throw w;if(!Z)K.warn(`Build request attempt ${Q}/${Y} failed: ${F}`);if(Q<Y){let B=J[Q-1]||5000;if(!Z)K.info(`Retrying in ${B/1000}s...`);await new Promise((q)=>setTimeout(q,B))}else throw Error(`Failed to request build after ${Y} attempts: ${F}`)}throw Error("Unexpected error in fetchWithRetry")}async function o40(D,X,Y,Z,J,Q=!1){if(J)return null;let w=null,F=!1,B=`${D}/build/logs/${X}?app_id=${encodeURIComponent(Y)}`;K.info(`Connecting to log stream: ${B}`);try{let q=await fetch(B,{headers:{authorization:Z}});if(K.info(`Log stream response: ${q.status}`),!q.ok){let H=await q.text().catch(()=>"unknown error");return K.warn(`Could not stream logs (${q.status}): ${H}`),null}let $=q.body?.getReader();if(!$)return K.warn("No response body for log stream"),null;K.info("Reading log stream...");let G=new TextDecoder,W="",O=(H)=>{if(!H.trim())return;let M=H.match(/^(?:Build|Job already) (succeeded|failed|expired|released|cancelled)$/i);if(M){w=M[1].toLowerCase();return}if(w)return;if(!F)F=!0,K.info("");K.info(H)};while(!0){let{done:H,value:M}=await $.read();if(H)break;W+=G.decode(M,{stream:!0});let U=W.split(`
380
- `);W=U.pop()||"";for(let N of U)if(N.startsWith("data: ")){let R=N.slice(6);O(R)}}if(W.startsWith("data: ")){let H=W.slice(6);O(H)}return w}catch(q){if(!J)K.warn(`Log streaming interrupted${q instanceof Error?`: ${q.message}`:""}`);return null}}async function e40(D,X,Y,Z,J,Q){let F=0;while(F<120)try{let B=await fetch(`${D}/build/status?job_id=${encodeURIComponent(X)}&app_id=${encodeURIComponent(Y)}&platform=${Z}`,{headers:{authorization:J}});if(!B.ok){if(!Q)K.warn(`Status check failed: ${B.status}`);await new Promise(($)=>setTimeout($,5000)),F++;continue}let q=await B.json();if(q.status==="succeeded"||q.status==="failed")return q.status;await new Promise(($)=>setTimeout($,5000)),F++}catch(B){if(!Q)K.warn(`Status check error: ${B}`);await new Promise((q)=>setTimeout(q,5000)),F++}if(!Q)K.warn("Build status polling timed out");return"timeout"}async function D30(D,X){let Y=new Set,Z=!1;if(X==="ios"){let J=Y8.join(D,"ios/App/CapApp-SPM/Package.swift");if(d8.existsSync(J)){Z=!0;let w=(await X8.readFile(J,"utf-8")).matchAll(/\.package\s*\([^)]*path:\s*["'](?:\.\.\/)*node_modules\/([^"']+)["']\s*\)/g);for(let F of w)Y.add(F[1])}else{let Q=Y8.join(D,"ios/App/Podfile");if(d8.existsSync(Q)){let F=(await X8.readFile(Q,"utf-8")).matchAll(/pod\s+['"][^'"]+['"],\s*:path\s*=>\s*['"]\.\.\/\.\.\/node_modules\/([^'"]+)['"]/g);for(let B of F)Y.add(B[1])}}}else if(X==="android"){let J=Y8.join(D,"android/capacitor.settings.gradle");if(d8.existsSync(J)){let w=(await X8.readFile(J,"utf-8")).matchAll(/new\s+File\s*\(\s*['"]\.\.\/node_modules\/([^'"]+)['"]\s*\)/g);for(let F of w){let q=F[1].replace(/\/android$/,"");Y.add(q)}}}return{packages:Y,usesSPM:Z}}function Lk(D,X,Y){let Z=D.replace(/\\/g,"/");if(Z.startsWith(`${X}/`))return!0;if(Z==="package.json"||Z==="package-lock.json"||Z.startsWith("capacitor.config."))return!0;if(Z.startsWith("resources/"))return!0;if(X==="ios"&&Z.startsWith("node_modules/@capacitor/ios/"))return!0;if(X==="android"&&Z.startsWith("node_modules/@capacitor/android/"))return!0;for(let J of Y.packages){let Q=`node_modules/${J}/`;if(X==="android"){if(Z.startsWith(`${Q}android/`))return!0}else if(X==="ios"){if(Z.startsWith(`${Q}ios/`))return!0;if(Y.usesSPM){if(Z===`${Q}Package.swift`)return!0}else if(Z.startsWith(Q)&&Z.endsWith(".podspec"))return!0}}return!1}function YX(D,X,Y,Z,J){let Q=d8.readdirSync(X);for(let w of Q){let F=Y8.join(X,w),B=Y?`${Y}/${w}`:w,q=d8.statSync(F);if(q.isDirectory()){if(w===".git"||w==="dist"||w==="build"||w===".angular"||w===".vite"||w===".gradle"||w===".idea"||w===".swiftpm")continue;if(w===Z){YX(D,F,B,Z,J);continue}if(w==="node_modules"){YX(D,F,B,Z,J);continue}if(w==="resources"){YX(D,F,B,Z,J);continue}let $=B.replace(/\\/g,"/");if(Lk(B,Z,J)||Array.from(J.packages).some((W)=>{return`node_modules/${W}/`.startsWith(`${$}/`)||$.startsWith(`node_modules/${W}`)}))YX(D,F,B,Z,J)}else if(q.isFile()){if(w===".DS_Store"||w.endsWith(".log"))continue;if(Lk(B,Z,J))D.addLocalFile(F,Y||void 0)}}}async function X30(D,X,Y){let Z=await D30(D,Y),J=new Uk.default;YX(J,D,"",Y,Z),await X8.writeFile(X,J.toBuffer())}async function Nk(D,X,Y=!1){let Z=Date.now(),J=X.verbose??!1;try{X.apikey=X.apikey||Q0(Y);let Q=await K0();if(D=D||Q?.config.appId,!D)throw Error("Missing argument, you need to provide a appId, or be in a capacitor project");if(!X.platform)throw Error("Missing required argument: --platform <ios|android>");if(X.platform!=="ios"&&X.platform!=="android")throw Error(`Invalid platform "${X.platform}". Must be "ios" or "android"`);let w=Y8.resolve(X.path||m$.cwd()),F=X.supaHost||"https://api.capgo.app",B=await z0(X.apikey,X.supaHost,X.supaAnon);await N0(B,X.apikey,["write","all"]);let q=await _D(B,D);if(!Y)K.info(`Requesting native build for ${D}`),K.info(`Platform: ${X.platform}`),K.info(`Project: ${w}`),K.info(`
379
+ `).eq("app_id",X).order("created_at",{ascending:!1});if(J){if(!Y)K.error(`App ${X} not found in database`);throw Error(`App ${X} not found in database: ${p(J)}`)}return Z}async function b$(D,X,Y,Z={}){let{silent:J=!1}=Z,{error:Q}=await D.from("app_versions").update({deleted:!0}).eq("app_id",X).eq("deleted",!1).eq("name",Y);if(Q){let w=`App version ${X}@${Y} not found in database`;if(!J)K.error(w);throw Error(`${w}: ${p(Q)}`)}}async function RJ(D,X,Y,Z={}){let{silent:J=!1,autoUnlink:Q=!1}=Z,w=await v40(D,X,Y,{silent:J});await ry(D,X,w,{silent:J,autoUnlink:Q}),await b$(D,X,Y,{silent:J})}function Jk(D,X=!1){if(X)return;if(!D.length)throw Error("No bundle found");let Y=new MD;Y.theme=MD.roundTheme,Y.headers=["Version","Created","Keep"],Y.rows=[];for(let Z of D.toReversed())Y.rows.push([Z.name,l7(Z.created_at),Z.keep??""]);K.success("Bundles"),K.success(Y.toString())}async function AJ(D,X,Y={}){let{silent:Z=!1}=Y,{data:J,error:Q}=await D.from("app_versions").select().eq("app_id",X).eq("deleted",!1).order("created_at",{ascending:!1});if(Q){let w=`App ${X} not found in database`;if(!Z)K.error(w);throw Error(`${w}: ${p(Q)}`)}return J??[]}async function Qk(D,X,Y={}){let{silent:Z=!1}=Y,{data:J,error:Q}=await D.from("channels").select("version").eq("app_id",X);if(Q){let w=`App ${X} not found in database`;if(!Z)K.error(w);throw Error(`${w}: ${p(Q)}`)}return(J??[]).map((w)=>w.version)}async function v40(D,X,Y,Z={}){let{silent:J=!1}=Z,{data:Q,error:w}=await D.from("app_versions").select().eq("app_id",X).eq("name",Y).eq("deleted",!1).single();if(!Q||w){let F=`App version ${X}@${Y} doesn't exist`;if(!J)K.error(F);throw Error(`${F}${w?`: ${p(w)}`:""}`)}return Q}var n7=require("node:fs");async function wk(D,X){let{data:Y}=await D.rpc("exist_app_v2",{appid:X}).single();return!!Y}async function _D(D,X,Y=!1){let{data:Z,error:J}=await D.rpc("reject_access_due_to_2fa_for_app",{app_id:X});if(J){if(!Y)K.error(`Cannot check 2FA compliance: ${J.message}`);throw Error(`Cannot check 2FA compliance: ${J.message}`)}if(Z){if(Y)throw Error("2FA required for this organization");u$()}}async function CD(D,X,Y,Z,J=!1,Q=!1){let w=q5();if(!Q)await _D(D,Y,J);let F=await hy(D,X,Y);if(!F.okay)switch(F.error){case"INVALID_APIKEY":{if(!J)K.error("Invalid apikey, such apikey does not exists!");throw Error("Invalid apikey, such apikey does not exists!")}case"NO_APP":{let $=`App ${Y} does not exist, run first \`${w.runner} @capgo/cli app add ${Y}\` to create it`;if(!J)K.error($);throw Error($)}case"NO_ORG":{if(!J)K.error("Could not find organization, please contact support to resolve this!");throw Error("Could not find organization, please contact support to resolve this!")}}let B=F.data;if(Z>B){let $=`Insuficcent permissions for app ${Y}. Current permission: ${L1[F.data]}, required for this action: ${L1[Z]}.`;if(!J)K.error($);throw Error($)}return F.data}var D8="assets/icon.png";var b40=/^[a-z0-9]+(\.[\w-]+)+$/i;function g40(D,X,Y){if(!X.apikey){if(!Y)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}if(!D){if(!Y)K.error("Missing argument, you need to provide a appId, or be in a capacitor project");throw Error("Missing appId")}if(D.includes("--")){if(!Y)K.error('The app id includes illegal symbols. You cannot use "--" in the app id');throw Error("App id includes illegal symbols")}if(!b40.test(D)){if(!Y)K.error(`Invalid app ID format: "${D}"`),K.info("App ID must be in reverse domain notation (e.g., com.example.app)"),K.info("Valid format: lowercase letters, numbers, dots, hyphens, and underscores"),K.info("Examples: com.mycompany.myapp, io.capgo.app, com.example.my-app");throw Error("Invalid app ID format")}}async function m40(D,X,Y){if(!await wk(D,X))return;if(X==="io.ionic.starter"){if(!Y)K.error(`This appId ${X} cannot be used it's reserved, please change it in your capacitor config.`);throw Error("Reserved appId, please change it in capacitor config")}if(!Y)K.error(`App ${X} already exist`);throw Error(`App ${X} already exists`)}async function Fk(D,X,Y,Z=!1){if(!Z)q0("Adding");await o0(),X.apikey=X.apikey||Q0();let J=await H0(),Q=b0(D,J?.config);g40(Q,X,Z);let w=await K0(X.apikey,X.supaHost,X.supaAnon),F=await N0(w,X.apikey,["write","all"]);if(await m40(w,Q,Z),!Y)Y=await UJ(w,["admin","super_admin"]);let B=Y.gid,{name:q,icon:$}=X;if(q=q||J.config?.appName||"Unknown",$=$||"resources/icon.png",!$||!q){if(!Z)K.error("Missing argument, you need to provide a appId and a name, or be in a capacitor project");throw Error("Missing app name or icon path")}if(!Z)K.info(`Adding ${Q} to Capgo`);let G=null,W=null;if($&&n7.existsSync($)){if(G=n7.readFileSync($),W=X9($)||"image/png",!Z)K.warn(`Found app icon ${$}`)}else if(n7.existsSync(D8)){if(G=n7.readFileSync(D8),W=X9(D8)||"image/png",!Z)K.warn(`Found app icon ${D8}`)}else if(!Z)K.warn(`Cannot find app icon in any of the following locations: ${$}, ${D8}`);let O="icon",H="https://xvwzpoazmxkqosrdewyv.supabase.co/storage/v1/object/public/images/capgo.png";if(G&&W){let{error:U}=await w.storage.from(`images/org/${B}/${Q}`).upload(O,G,{contentType:W});if(U){if(!Z)console.error(U);if(!Z)K.error(`Could not add app ${p(U)}`);throw Error(`Could not add app ${p(U)}`)}let{data:N}=await w.storage.from(`images/org/${B}/${Q}`).getPublicUrl(O);H=N?.publicUrl||H}let{error:M}=await w.from("apps").insert({icon_url:H,owner_org:B,user_id:F,name:q,app_id:Q});if(M){if(!Z)K.error(`Could not add app ${p(M)}`);throw Error(`Could not add app ${p(M)}`)}if(await z0(X.apikey,{channel:"app",event:"App Created",icon:"\uD83C\uDD95",user_id:B,tags:{"app-id":Q},notify:!1,notifyConsole:!0}).catch(()=>{}),!Z)K.success(`App ${Q} added to Capgo`),K.info("This app is accessible to all members of your organization based on their permissions"),K.info(`Next step: upload a bundle with "npx @capgo/cli bundle upload ${Q}"`),$0("Done ✅");return{appId:Q,organizationUid:B,userId:F,name:q,signedURL:H}}async function Bk(D,X,Y=!1,Z=!1){if(!Y)q0("Deleting");X.apikey=X.apikey||Q0();let J=await H0(),Q=b0(D,J?.config);if(!X.apikey){if(!Y)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}if(!Q){if(!Y)K.error("Missing argument, you need to provide a appId, or be in a capacitor project");throw Error("Missing appId")}let w=await K0(X.apikey,X.supaHost,X.supaAnon),F=await N0(w,X.apikey,["write","all"]);await CD(w,X.apikey,Q,5,Y);let{data:B,error:q}=await w.from("apps").select("owner_org ( created_by, id )").eq("app_id",Q).single(),$=B;if(!Z&&!q&&($?.owner_org.created_by??"")!==F)if(!Y){K.warn("Deleting the app is not recommended for users that are not the organization owner"),K.warn("You are invited as a super_admin but your are not the owner"),K.warn("It's strongly recommended that you do not continue!");let M=await M8({message:"Do you want to continue?",options:[{label:"Yes",value:"yes"},{label:"No",value:"no"}]});if(c0(M)||M==="no")throw K.error("Canceled deleting the app, exiting"),Error("App deletion cancelled")}else throw Error("Cannot delete app: you are not the organization owner");else if(q&&!Y)K.warn(`Cannot get the app owner ${p(q)}`);let{error:G}=await w.storage.from("images").remove([`org/${$?.owner_org.id}/${Q}/icon`]);if(G&&!Y)K.error("Could not delete app logo");let{error:W}=await w.storage.from(`apps/${Q}/${F}`).remove(["versions"]);if(W&&!Y)K.error("Could not delete app version");let{error:O}=await w.from("apps").delete().eq("app_id",Q);if(O){if(!Y)K.error("Could not delete app");throw Error(`Could not delete app: ${p(O)}`)}let H=await pD(w,Q);if(await z0(X.apikey,{channel:"app",event:"App Deleted",icon:"\uD83D\uDDD1️",user_id:H,tags:{"app-id":Q},notify:!1}).catch(()=>{}),!Y)K.success("App deleted in Capgo"),$0("Done ✅");return!0}var EJ=require("node:os"),$k=require("node:process");async function qk(D){let X={},Y=Object.keys(D);return(await Promise.all(Y.map((J)=>GZ(J)))).forEach((J,Q)=>{if(J)X[Y[Q]]=J}),X}async function d40(){let D=await HJ(),X={"@capgo/cli":o8.version};for(let[Y,Z]of D)if(Y.startsWith("@capgo/")||Y.startsWith("@capawesome/")||Y.startsWith("capacitor"))X[Y]=Z;return X}async function Gk(D,X=!1){if(!X)K.warn(" \uD83D\uDC8A Capgo Doctor \uD83D\uDC8A");let Y=await H0(),Z=D9("",D.packageJson),J=Y?.config?.plugins?.CapacitorUpdater?.version||Z,Q=Y?.config?.appName||"",w=b0("",Y?.config),F=Y?.config?.webDir||"";if(!X)K.info(` App Name: ${Q}`),K.info(` App ID: ${w}`),K.info(` App Version: ${J}`),K.info(` Web Dir: ${F}`),K.info(` OS: ${EJ.platform()} ${EJ.version()}`),K.info(` Node: ${$k.version}`),K.info(" Installed Dependencies:");let B=await d40();if(Object.keys(B).length===0){if(!X)K.warning("\x1B[31m%s\x1B[0m \uD83D\uDEA8 No dependencies found");throw Error("No dependencies found")}if(!X)for(let $ of Object.keys(B))K.info(` ${$}: ${B[$]}`);let q={};if(!X){let $=xD();$.start("Running: Loading latest dependencies"),q=await qk(B),$.stop("Latest Dependencies:");for(let G of Object.keys(q))K.info(` ${G}: ${q[G]}`)}else q=await qk(B);if(JSON.stringify(B)!==JSON.stringify(q)){if(!X)K.warn("\x1B[31m\uD83D\uDEA8 Some dependencies are not up to date\x1B[0m");throw Error("Some dependencies are not up to date")}if(!X)K.success("\x1B[32m✅ All dependencies are up to date\x1B[0m");return{appName:Q,appId:w,appVersion:J,webDir:F,installedDependencies:B,latestDependencies:q}}function c40(D){let X=new MD;X.headers=["Name","id","Created"],X.rows=[];for(let Y of D.toReversed())X.rows.push([Y.name??"",Y.app_id,l7(Y.created_at)]);K.success("Apps"),K.success(X.toString())}async function l40(D,X){let{data:Y,error:Z}=await D.from("apps").select().order("created_at",{ascending:!1});if(Z){if(!X)K.error("Apps not found");throw Error("Apps not found")}return Y??[]}async function Ok(D,X=!1){if(!X)q0("List apps in Capgo");await o0(),D.apikey=D.apikey||Q0();let Y=await K0(D.apikey,D.supaHost,D.supaAnon);if(await N0(Y,D.apikey,["write","all","read","upload"]),!X)K.info("Getting active bundle in Capgo");let Z=await l40(Y,X);if(!Z.length){if(!X)K.error("No apps found");throw Error("No apps found")}if(!X)K.info(`Active app in Capgo: ${Z.length}`),c40(Z),$0("Done ✅");return Z}var Wk=require("node:crypto"),i7=require("node:fs");async function Hk(D,X,Y=!1){if(!Y)q0("Set app");X.apikey=X.apikey||Q0();let Z=await H0();if(D=b0(D,Z?.config),!X.apikey){if(!Y)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}if(!D){if(!Y)K.error("Missing argument, you need to provide a appId, or be in a capacitor project");throw Error("Missing appId")}let J=await K0(X.apikey,X.supaHost,X.supaAnon),w=(await UJ(J,["admin","super_admin"])).gid,F=await N0(J,X.apikey,["write","all"]);await CD(J,X.apikey,D,4,Y);let{name:B,icon:q,retention:$,exposeMetadata:G}=X;if($&&Number.isNaN(Number($))){if(!Y)K.error("retention value must be a number");throw Error("Retention value must be a number")}else if($&&$<0){if(!Y)K.error("retention value cannot be less than 0");throw Error("Retention value cannot be less than 0")}else if($&&$>=63113904){if(!Y)K.error("retention value cannot be greater than 63113904 seconds (2 years)");throw Error("Retention value cannot be greater than 63113904 seconds (2 years)")}let W,O,H=`icon_${Wk.randomUUID()}`,M="https://xvwzpoazmxkqosrdewyv.supabase.co/storage/v1/object/public/images/capgo.png";if(q&&i7.existsSync(q)){if(W=i7.readFileSync(q),O=X9(q)||"image/png",!Y)K.warn(`Found app icon ${q}`)}else if(i7.existsSync(D8)){if(W=i7.readFileSync(D8),O=X9(D8)||"image/png",!Y)K.warn(`Found app icon ${D8}`)}else if(!Y)K.warn(`Cannot find app icon in any of the following locations: ${q}, ${D8}`);if(W&&O){let{error:N}=await J.storage.from(`images/org/${w}/${D}`).upload(H,W,{contentType:O});if(N){if(!Y)K.error(`Could not set app ${p(N)}`);throw Error(`Could not set app: ${p(N)}`)}let{data:R}=await J.storage.from(`images/org/${w}/${D}`).getPublicUrl(H);M=R?.publicUrl||M}let{error:U}=await J.from("apps").update({icon_url:M,name:B,retention:!$?void 0:$*24*60*60,expose_metadata:G}).eq("app_id",D).eq("user_id",F);if(U){if(!Y)K.error(`Could not set app ${p(U)}`);throw Error(`Could not set app: ${p(U)}`)}if(await z0(X.apikey,{channel:"app",event:"App Updated",icon:"\uD83D\uDCDD",user_id:w,tags:{"app-id":D},notify:!1,notifyConsole:!0}).catch(()=>{}),!Y)$0("Done ✅");return!0}async function Kk(D,X,Y=!1){if(!Y)q0("Set a specific setting in capacitor config");if(X.bool&&X.string){if(!Y)K.error("Bool and string CANNOT be set at the same time");throw Error("Bool and string cannot both be provided")}if(!X.bool&&!X.string){if(!Y)K.error("You MUST provide either bool or string as the value");throw Error("Either bool or string value is required")}if(X.bool&&X.bool!=="true"&&X.bool!=="false"){if(!Y)K.error("Invalid bool");throw Error("Invalid bool value; expected true or false")}try{let Z=await H0(),J=Z.config,Q=D.split(".");if(Q.length===0){if(!Y)K.error("Invalid path");throw Error("Invalid config path")}for(let F of Q.slice(0,-1)){if(!Object.prototype.hasOwnProperty.call(J,F))J[F]={};J=J[F]}let w=X.bool?X.bool==="true":X.string;if(J[Q.at(-1)]=w,await h7(Z,!0),!Y)K.success(`Set "${D}" to "${w}"`)}catch(Z){if(!Y)K.error(`Cannot set config in capacitor settings ${p(Z)}`);throw Error(`Cannot set capacitor config: ${p(Z)}`)}if(!Y)$0("Done ✅")}var d8=require("node:fs"),X8=require("node:fs/promises"),Vk=require("node:os"),Y8=require("node:path"),m$=require("node:process");var Uk=R0(Mw(),1),TJ=R0($Z(),1);var CJ=require("node:fs/promises"),zk=require("node:os"),jJ=require("node:path"),P0=require("node:process"),n40=jJ.join(zk.homedir(),".capgo-credentials"),i40=jJ.join(n40,"credentials.json"),p40=".capgo-credentials.json";function a40(D){return D?jJ.join(P0.cwd(),p40):i40}async function g$(D){try{let X=a40(D),Y=await CJ.readFile(X,"utf-8");return JSON.parse(Y)}catch{return{}}}async function t40(D,X){if(X!==void 0){let J=await g$(X);if(!D){let Q=Object.keys(J);if(Q.length===0)return null;return J[Q[0]]||null}return J[D]||null}let Y=await g$(!0),Z=await g$(!1);if(!D){let J=Object.keys(Y);if(J.length>0)return Y[J[0]]||null;let Q=Object.keys(Z);if(Q.length===0)return null;return Z[Q[0]]||null}return Y[D]||Z[D]||null}function r40(){let D={};if(P0.env.BUILD_CERTIFICATE_BASE64)D.BUILD_CERTIFICATE_BASE64=P0.env.BUILD_CERTIFICATE_BASE64;if(P0.env.BUILD_PROVISION_PROFILE_BASE64)D.BUILD_PROVISION_PROFILE_BASE64=P0.env.BUILD_PROVISION_PROFILE_BASE64;if(P0.env.BUILD_PROVISION_PROFILE_BASE64_PROD)D.BUILD_PROVISION_PROFILE_BASE64_PROD=P0.env.BUILD_PROVISION_PROFILE_BASE64_PROD;if(P0.env.P12_PASSWORD)D.P12_PASSWORD=P0.env.P12_PASSWORD;if(P0.env.APPLE_KEY_ID)D.APPLE_KEY_ID=P0.env.APPLE_KEY_ID;if(P0.env.APPLE_ISSUER_ID)D.APPLE_ISSUER_ID=P0.env.APPLE_ISSUER_ID;if(P0.env.APPLE_KEY_CONTENT)D.APPLE_KEY_CONTENT=P0.env.APPLE_KEY_CONTENT;if(P0.env.APPLE_PROFILE_NAME)D.APPLE_PROFILE_NAME=P0.env.APPLE_PROFILE_NAME;if(P0.env.APP_STORE_CONNECT_TEAM_ID)D.APP_STORE_CONNECT_TEAM_ID=P0.env.APP_STORE_CONNECT_TEAM_ID;if(P0.env.ANDROID_KEYSTORE_FILE)D.ANDROID_KEYSTORE_FILE=P0.env.ANDROID_KEYSTORE_FILE;if(P0.env.KEYSTORE_KEY_ALIAS)D.KEYSTORE_KEY_ALIAS=P0.env.KEYSTORE_KEY_ALIAS;if(P0.env.KEYSTORE_KEY_PASSWORD)D.KEYSTORE_KEY_PASSWORD=P0.env.KEYSTORE_KEY_PASSWORD;if(P0.env.KEYSTORE_STORE_PASSWORD)D.KEYSTORE_STORE_PASSWORD=P0.env.KEYSTORE_STORE_PASSWORD;if(P0.env.PLAY_CONFIG_JSON)D.PLAY_CONFIG_JSON=P0.env.PLAY_CONFIG_JSON;return D}async function Mk(D,X,Y){let Z=await t40(D),J=r40(),Q={...Z?.[X]||{}};if(Object.assign(Q,J),Y)Object.assign(Q,Y);if(X==="android"){let w=!!Q.KEYSTORE_KEY_PASSWORD,F=!!Q.KEYSTORE_STORE_PASSWORD;if(w&&!F)Q.KEYSTORE_STORE_PASSWORD=Q.KEYSTORE_KEY_PASSWORD;else if(!w&&F)Q.KEYSTORE_KEY_PASSWORD=Q.KEYSTORE_STORE_PASSWORD}return Object.keys(Q).length>0?Q:void 0}async function s40(D,X,Y=3,Z=!1){let J=[1000,3000,5000];for(let Q=1;Q<=Y;Q++)try{let w=await fetch(D,X);if(w.ok||w.status>=400&&w.status<500)return w;let F=await w.text().catch(()=>"unknown error");if(!Z)K.warn(`Build request attempt ${Q}/${Y} failed: ${w.status} - ${F}`);if(Q<Y){let B=J[Q-1]||5000;if(!Z)K.info(`Retrying in ${B/1000}s...`);await new Promise((q)=>setTimeout(q,B))}else throw Error(`Failed to request build after ${Y} attempts: ${w.status} - ${F}`)}catch(w){let F=w instanceof Error?w.message:String(w);if(F.startsWith("Failed to request build after"))throw w;if(!Z)K.warn(`Build request attempt ${Q}/${Y} failed: ${F}`);if(Q<Y){let B=J[Q-1]||5000;if(!Z)K.info(`Retrying in ${B/1000}s...`);await new Promise((q)=>setTimeout(q,B))}else throw Error(`Failed to request build after ${Y} attempts: ${F}`)}throw Error("Unexpected error in fetchWithRetry")}async function o40(D,X,Y,Z,J,Q=!1){if(J)return null;let w=null,F=!1,B=`${D}/build/logs/${X}?app_id=${encodeURIComponent(Y)}`;K.info(`Connecting to log stream: ${B}`);try{let q=await fetch(B,{headers:{authorization:Z}});if(K.info(`Log stream response: ${q.status}`),!q.ok){let H=await q.text().catch(()=>"unknown error");return K.warn(`Could not stream logs (${q.status}): ${H}`),null}let $=q.body?.getReader();if(!$)return K.warn("No response body for log stream"),null;K.info("Reading log stream...");let G=new TextDecoder,W="",O=(H)=>{if(!H.trim())return;let M=H.match(/^(?:Build|Job already) (succeeded|failed|expired|released|cancelled)$/i);if(M){w=M[1].toLowerCase();return}if(w)return;if(!F)F=!0,K.info("");K.info(H)};while(!0){let{done:H,value:M}=await $.read();if(H)break;W+=G.decode(M,{stream:!0});let U=W.split(`
380
+ `);W=U.pop()||"";for(let N of U)if(N.startsWith("data: ")){let R=N.slice(6);O(R)}}if(W.startsWith("data: ")){let H=W.slice(6);O(H)}return w}catch(q){if(!J)K.warn(`Log streaming interrupted${q instanceof Error?`: ${q.message}`:""}`);return null}}async function e40(D,X,Y,Z,J,Q){let F=0;while(F<120)try{let B=await fetch(`${D}/build/status?job_id=${encodeURIComponent(X)}&app_id=${encodeURIComponent(Y)}&platform=${Z}`,{headers:{authorization:J}});if(!B.ok){if(!Q)K.warn(`Status check failed: ${B.status}`);await new Promise(($)=>setTimeout($,5000)),F++;continue}let q=await B.json();if(q.status==="succeeded"||q.status==="failed")return q.status;await new Promise(($)=>setTimeout($,5000)),F++}catch(B){if(!Q)K.warn(`Status check error: ${B}`);await new Promise((q)=>setTimeout(q,5000)),F++}if(!Q)K.warn("Build status polling timed out");return"timeout"}async function D30(D,X){let Y=new Set,Z=!1;if(X==="ios"){let J=Y8.join(D,"ios/App/CapApp-SPM/Package.swift");if(d8.existsSync(J)){Z=!0;let w=(await X8.readFile(J,"utf-8")).matchAll(/\.package\s*\([^)]*path:\s*["'](?:\.\.\/)*node_modules\/([^"']+)["']\s*\)/g);for(let F of w)Y.add(F[1])}else{let Q=Y8.join(D,"ios/App/Podfile");if(d8.existsSync(Q)){let F=(await X8.readFile(Q,"utf-8")).matchAll(/pod\s+['"][^'"]+['"],\s*:path\s*=>\s*['"]\.\.\/\.\.\/node_modules\/([^'"]+)['"]/g);for(let B of F)Y.add(B[1])}}}else if(X==="android"){let J=Y8.join(D,"android/capacitor.settings.gradle");if(d8.existsSync(J)){let w=(await X8.readFile(J,"utf-8")).matchAll(/new\s+File\s*\(\s*['"]\.\.\/node_modules\/([^'"]+)['"]\s*\)/g);for(let F of w){let q=F[1].replace(/\/android$/,"");Y.add(q)}}}return{packages:Y,usesSPM:Z}}function Lk(D,X,Y){let Z=D.replace(/\\/g,"/");if(Z.startsWith(`${X}/`))return!0;if(Z==="package.json"||Z==="package-lock.json"||Z.startsWith("capacitor.config."))return!0;if(Z.startsWith("resources/"))return!0;if(X==="ios"&&Z.startsWith("node_modules/@capacitor/ios/"))return!0;if(X==="android"&&Z.startsWith("node_modules/@capacitor/android/"))return!0;for(let J of Y.packages){let Q=`node_modules/${J}/`;if(X==="android"){if(Z.startsWith(`${Q}android/`))return!0}else if(X==="ios"){if(Z.startsWith(`${Q}ios/`))return!0;if(Y.usesSPM){if(Z===`${Q}Package.swift`)return!0}else if(Z.startsWith(Q)&&Z.endsWith(".podspec"))return!0}}return!1}function YX(D,X,Y,Z,J){let Q=d8.readdirSync(X);for(let w of Q){let F=Y8.join(X,w),B=Y?`${Y}/${w}`:w,q=d8.statSync(F);if(q.isDirectory()){if(w===".git"||w==="dist"||w==="build"||w===".angular"||w===".vite"||w===".gradle"||w===".idea"||w===".swiftpm")continue;if(w===Z){YX(D,F,B,Z,J);continue}if(w==="node_modules"){YX(D,F,B,Z,J);continue}if(w==="resources"){YX(D,F,B,Z,J);continue}let $=B.replace(/\\/g,"/");if(Lk(B,Z,J)||Array.from(J.packages).some((W)=>{return`node_modules/${W}/`.startsWith(`${$}/`)||$.startsWith(`node_modules/${W}`)}))YX(D,F,B,Z,J)}else if(q.isFile()){if(w===".DS_Store"||w.endsWith(".log"))continue;if(Lk(B,Z,J))D.addLocalFile(F,Y||void 0)}}}async function X30(D,X,Y){let Z=await D30(D,Y),J=new Uk.default;YX(J,D,"",Y,Z),await X8.writeFile(X,J.toBuffer())}async function Nk(D,X,Y=!1){let Z=Date.now(),J=X.verbose??!1;try{X.apikey=X.apikey||Q0(Y);let Q=await H0();if(D=D||Q?.config.appId,!D)throw Error("Missing argument, you need to provide a appId, or be in a capacitor project");if(!X.platform)throw Error("Missing required argument: --platform <ios|android>");if(X.platform!=="ios"&&X.platform!=="android")throw Error(`Invalid platform "${X.platform}". Must be "ios" or "android"`);let w=Y8.resolve(X.path||m$.cwd()),F=X.supaHost||"https://api.capgo.app",B=await K0(X.apikey,X.supaHost,X.supaAnon);await N0(B,X.apikey,["write","all"]);let q=await pD(B,D);if(!Y)K.info(`Requesting native build for ${D}`),K.info(`Platform: ${X.platform}`),K.info(`Project: ${w}`),K.info(`
381
381
  \uD83D\uDD12 Security: Credentials are never stored on Capgo servers`),K.info(" They are used only during build and deleted after"),K.info(` Builds sent directly to app stores - Capgo keeps nothing
382
- `);if(J)K.info(`API host: ${F}`);let $={};if(X.buildCertificateBase64)$.BUILD_CERTIFICATE_BASE64=X.buildCertificateBase64;if(X.buildProvisionProfileBase64)$.BUILD_PROVISION_PROFILE_BASE64=X.buildProvisionProfileBase64;if(X.buildProvisionProfileBase64Prod)$.BUILD_PROVISION_PROFILE_BASE64_PROD=X.buildProvisionProfileBase64Prod;if(X.p12Password)$.P12_PASSWORD=X.p12Password;if(X.appleKeyId)$.APPLE_KEY_ID=X.appleKeyId;if(X.appleIssuerId)$.APPLE_ISSUER_ID=X.appleIssuerId;if(X.appleKeyContent)$.APPLE_KEY_CONTENT=X.appleKeyContent;if(X.appleProfileName)$.APPLE_PROFILE_NAME=X.appleProfileName;if(X.appStoreConnectTeamId)$.APP_STORE_CONNECT_TEAM_ID=X.appStoreConnectTeamId;if(X.androidKeystoreFile)$.ANDROID_KEYSTORE_FILE=X.androidKeystoreFile;if(X.keystoreKeyAlias)$.KEYSTORE_KEY_ALIAS=X.keystoreKeyAlias;let G=!!X.keystoreKeyPassword,W=!!X.keystoreStorePassword;if(G&&!W)$.KEYSTORE_KEY_PASSWORD=X.keystoreKeyPassword,$.KEYSTORE_STORE_PASSWORD=X.keystoreKeyPassword;else if(!G&&W)$.KEYSTORE_KEY_PASSWORD=X.keystoreStorePassword,$.KEYSTORE_STORE_PASSWORD=X.keystoreStorePassword;else if(G&&W)$.KEYSTORE_KEY_PASSWORD=X.keystoreKeyPassword,$.KEYSTORE_STORE_PASSWORD=X.keystoreStorePassword;if(X.playConfigJson)$.PLAY_CONFIG_JSON=X.playConfigJson;let O=await Mk(D,X.platform,Object.keys($).length>0?$:void 0),H={app_id:D,platform:X.platform,build_mode:X.buildMode};if(!O){if(!Y)K.error("❌ No credentials found for this app and platform"),K.error(""),K.error("You must provide credentials via:"),K.error(" 1. CLI arguments (--apple-key-id, --p12-password, etc.)"),K.error(" 2. Environment variables (APPLE_KEY_ID, P12_PASSWORD, etc.)"),K.error(" 3. Saved credentials file:"),K.error(` npx @capgo/cli build credentials save --appId ${D} --platform ${X.platform}`),K.error(""),K.error("Documentation:"),K.error(" https://capgo.app/docs/cli/cloud-build/credentials/");throw Error("No credentials found. Please provide credentials before building.")}let M=[];if(X.platform==="ios"){if(!O.BUILD_CERTIFICATE_BASE64)M.push("BUILD_CERTIFICATE_BASE64 (or --build-certificate-base64)");if(!O.P12_PASSWORD&&!Y)K.warn("⚠️ P12_PASSWORD not provided - assuming certificate has no password"),K.warn(" If your certificate requires a password, provide it with --p12-password");if(!O.BUILD_PROVISION_PROFILE_BASE64)M.push("BUILD_PROVISION_PROFILE_BASE64 (or --build-provision-profile-base64)");if(!O.APPLE_KEY_ID)M.push("APPLE_KEY_ID (or --apple-key-id)");if(!O.APPLE_ISSUER_ID)M.push("APPLE_ISSUER_ID (or --apple-issuer-id)");if(!O.APPLE_KEY_CONTENT)M.push("APPLE_KEY_CONTENT (or --apple-key-content)");if(!O.APP_STORE_CONNECT_TEAM_ID)M.push("APP_STORE_CONNECT_TEAM_ID (or --apple-team-id)")}else if(X.platform==="android"){if(!O.ANDROID_KEYSTORE_FILE)M.push("ANDROID_KEYSTORE_FILE (or --android-keystore-file)");if(!O.KEYSTORE_KEY_ALIAS)M.push("KEYSTORE_KEY_ALIAS (or --keystore-key-alias)");if(!O.KEYSTORE_KEY_PASSWORD&&!O.KEYSTORE_STORE_PASSWORD)M.push("KEYSTORE_KEY_PASSWORD or KEYSTORE_STORE_PASSWORD (at least one password required)");if(!O.PLAY_CONFIG_JSON&&!Y)K.warn("⚠️ PLAY_CONFIG_JSON not provided - build will succeed but cannot auto-upload to Play Store")}if(M.length>0){if(!Y){K.error(`❌ Missing required credentials for ${X.platform}:`),K.error("");for(let L of M)K.error(` • ${L}`);K.error(""),K.error("Provide credentials via:"),K.error(' 1. CLI arguments: npx @capgo/cli build request --platform ios --apple-id "..." --p12-password "..."'),K.error(' 2. Environment variables: export APPLE_ID="..." P12_PASSWORD="..."'),K.error(" 3. Saved credentials: npx @capgo/cli build credentials save --platform ios ..."),K.error(""),K.error("Documentation:"),K.error(` https://capgo.app/docs/cli/cloud-build/${X.platform}/`)}throw Error(`Missing required credentials for ${X.platform}: ${M.join(", ")}`)}if(H.credentials=O,!Y)K.info("✓ Using credentials (merged from CLI args, env vars, and saved file)");if(J){let L=Object.keys(O).filter((C)=>O[C]);K.info(`Credentials provided: ${L.join(", ")}`)}if(!Y)K.info("Requesting build from Capgo...");let U=3,N=await s40(`${F}/build/request`,{method:"POST",headers:{"Content-Type":"application/json",authorization:X.apikey},body:JSON.stringify(H)},U,Y);if(!N.ok){let L=await N.text();throw Error(`Failed to request build: ${N.status} - ${L}`)}let R=await N.json();if(!Y)K.success(`Build job created: ${R.job_id}`),K.info(`Status: ${R.status}`);if(J)K.info(`Upload URL: ${R.upload_url}`),K.info(`Upload expires: ${R.upload_expires_at}`);await H0(X.apikey,{channel:"native-builder",event:"Build requested",icon:"\uD83C\uDFD7️",user_id:q,tags:{"app-id":D,platform:X.platform},notify:!1}).catch();let z=Y8.join(Vk.tmpdir(),`capgo-build-${Date.now()}`);await X8.mkdir(z,{recursive:!0});let V=Y8.join(z,`${Y8.basename(w)}.zip`);try{if(!Y)K.info(`Zipping ${X.platform} project from ${w}...`);await X30(w,V,X.platform);let C=((await X8.stat(V)).size/1024/1024).toFixed(2);if(!Y)K.success(`Created zip: ${V} (${C} MB)`);if(!Y)K.info("Uploading to builder...");if(J)K.info(`Upload endpoint: ${R.upload_url}`),K.info(`File size: ${C} MB`),K.info(`Job ID: ${R.job_id}`);let y=d8.readFileSync(V),A=xD();if(!Y)A.start("Uploading bundle");if(await new Promise((n,h)=>{let E=new TJ.Upload(y,{endpoint:R.upload_url,chunkSize:5242880,metadata:{filename:Y8.basename(V),filetype:"application/zip"},headers:{authorization:X.apikey},onBeforeRequest(P){if(J){K.info(`[TUS] ${P.getMethod()} ${P.getURL()}`);let x=P.getHeader("authorization");K.info(`[TUS] Authorization header present: ${!!x}`)}},onAfterResponse(P,x){if(J){K.info(`[TUS] Response status: ${x.getStatus()}`);let _=x.getHeader("upload-offset"),g=x.getHeader("tus-resumable");K.info(`[TUS] Upload-Offset: ${_}, Tus-Resumable: ${g}`)}},onError(P){if(!Y)A.stop("Upload failed"),K.error(`Upload error: ${P.message}`);if(P instanceof TJ.DetailedError){let x=P.originalResponse?.getBody(),_=P.originalResponse?.getStatus(),g=P.originalRequest?.getURL();if(J)K.error(`[TUS] Request URL: ${g}`),K.error(`[TUS] Response status: ${_}`),K.error(`[TUS] Response body: ${x}`);let m="Unknown error";try{let a=JSON.parse(x||'{"error": "unknown error"}');m=a.status||a.error||a.message||"unknown error"}catch{m=x||P.message}h(Error(`TUS upload failed: ${m}`))}else h(Error(`TUS upload failed: ${P.message||P.toString()}`))},onProgress(P,x){let _=(P/x*100).toFixed(2);if(!Y)A.message(`Uploading ${_}%`)},onSuccess(){if(!Y)A.stop("Upload complete!");if(J)K.success("TUS upload completed successfully");n()}});if(J)K.info("[TUS] Starting upload...");E.start()}),!Y)K.info("Starting build job...");let k=await fetch(`${F}/build/start/${R.job_id}`,{method:"POST",headers:{"Content-Type":"application/json",authorization:X.apikey},body:JSON.stringify({app_id:D})});if(!k.ok){let n=await k.text();throw Error(`Failed to start build: ${k.status} - ${n}`)}let f=await k.json();if(!Y)K.success("Build started!"),K.info("Streaming build logs...");let S,v=await o40(F,R.job_id,D,X.apikey,Y,J);if(v)S=v;else S=await e40(F,R.job_id,D,X.platform,X.apikey,Y);if(!Y)if(S==="succeeded")K.success("Build completed successfully!");else if(S==="failed")K.error("Build failed");else K.warn(`Build finished with status: ${S}`);let b=((Date.now()-Z)/1000).toFixed(2);return await H0(X.apikey,{channel:"native-builder",event:S==="succeeded"?"Build succeeded":"Build failed",icon:S==="succeeded"?"✅":"❌",user_id:q,tags:{"app-id":D,platform:X.platform,status:S||"unknown",time:b},notify:!1}).catch(),{success:S==="succeeded",jobId:R.job_id,uploadUrl:R.upload_url,status:S||f.status||R.status}}finally{await X8.rm(z,{recursive:!0,force:!0})}}catch(Q){let w=Q instanceof Error?Q.message:String(Q);if(!Y)K.error(w);return{success:!1,error:w}}}async function Y30(D,X,Y,Z){for await(let J of D){if(!Z)K.warn(`Removing ${J.name} created on ${l7(J.created_at)}`);await RJ(X,Y,J.name)}}function Z30(D,X,Y){let Z=[];for(let J of D??[]){let Q=i0(J.name);if(zQ(Q,X)&&q9(Q,Y))Z.push(J)}return Z}async function Rk(D,X,Y=!1){if(!Y)q0("Cleanup versions in Capgo");await o0(),X.apikey=X.apikey||Q0();let{bundle:Z,keep:J=4}=X,Q=X.force||!1,w=X.ignoreChannel||!1,F=await K0();if(D=b0(D,F?.config),!X.apikey){if(!Y)K.error("Missing API key, you need to provide an API key to delete your app");throw Error("Missing API key")}if(!D){if(!Y)K.error("Missing argument, you need to provide a appid, or be in a capacitor project");throw Error("Missing appId")}let B=await z0(X.apikey,X.supaHost,X.supaAnon);if(await vD(B,D,Y),await N0(B,X.apikey,["write","all"]),await CD(B,X.apikey,D,3,Y,!0),!Y)K.info("Querying all available versions in Capgo");let q=await AJ(B,D),$=await Qk(B,D);if(!Y)K.info(`Total active versions in Capgo: ${q?.length??0}`);if(!q?.length){if(!Y)K.error("No versions found, aborting cleanup");throw Error("No versions found")}if(Z){let H=i0(Z),M=B4(H,"major");if(!Y)K.info(`Querying available versions in Capgo between ${Q8(H)} and ${Q8(M)}`);if(q=Z30(q,H,M),!Y)K.info(`Active versions in Capgo between ${Q8(H)} and ${Q8(M)}: ${q?.length??0}`)}let G=[],W=0;for(let H of q){let M=$.find((U)=>U===H.id);if(W<J||M&&!w)H.keep=M?"✅ (Linked to channel)":"✅",W+=1;else H.keep="❌",G.push(H)}if(!G.length){if(!Y)K.warn("Nothing to be removed, aborting removal...");return{removed:0,kept:W}}if(!Y)Jk(q);if(!Q)if(!Y){let H=await oD({message:"Do you want to continue removing the versions specified?"});if(c0(H)||!H)throw K.warn("Not confirmed, aborting removal..."),Error("Cleanup cancelled by user")}else throw Error("Cleanup requires force=true in SDK mode to prevent accidental deletions");if(!Y)K.success("You have confirmed removal, removing versions now");await Y30(G,B,D,Y);let O=await _D(B,D);if(await H0(X.apikey,{channel:"app",event:"Bundles Cleaned",icon:"\uD83E\uDDF9",user_id:O,tags:{"app-id":D},notify:!1,notifyConsole:!0}).catch(()=>{}),!Y)$0("Done ✅");return{removed:G.length,kept:W}}async function Ak(D,X,Y=!1){if(!Y)q0("Check compatibility");let Z={...X,apikey:X.apikey||Q0()},J=D?void 0:await K0(),Q=b0(D,J?.config),w=Z.channel;if(!w){if(!Y)K.error("Missing argument, you need to provide a channel");throw Error("Missing channel")}if(!Z.apikey){if(!Y)K.error("Missing API key, you need to provide an API key to access Capgo Cloud metadata");throw Error("Missing API key")}if(!Q){if(!Y)K.error("Missing argument, you need to provide an appId, or be in a capacitor project");throw Error("Missing appId")}let F=await z0(Z.apikey,Z.supaHost,Z.supaAnon);await vD(F,Q,Y),await N0(F,Z.apikey,["write","all","read","upload"]),await CD(F,Z.apikey,Q,1,Y,!0);let B=await NJ(F,Q,w,Z.packageJson,Z.nodeModules),q=B.finalCompatibility.some(($)=>!Y9($));if(!Y){let $=new MD;$.headers=["Package","Local","Remote","Status","Details"],$.theme=MD.roundTheme,$.rows=[];let G=Z.text?"OK":"✅",W=Z.text?"FAIL":"❌";for(let O of B.finalCompatibility){let{name:H,localVersion:M,remoteVersion:U}=O,N=$5(O),R=N.compatible?G:W;$.rows.push([H,M||"-",U||"-",R,N.message])}if(K.success("Compatibility Check Results"),K.info($.toString()),q){let O=B.finalCompatibility.filter((H)=>!Y9(H)).length;K.warn(`
382
+ `);if(J)K.info(`API host: ${F}`);let $={};if(X.buildCertificateBase64)$.BUILD_CERTIFICATE_BASE64=X.buildCertificateBase64;if(X.buildProvisionProfileBase64)$.BUILD_PROVISION_PROFILE_BASE64=X.buildProvisionProfileBase64;if(X.buildProvisionProfileBase64Prod)$.BUILD_PROVISION_PROFILE_BASE64_PROD=X.buildProvisionProfileBase64Prod;if(X.p12Password)$.P12_PASSWORD=X.p12Password;if(X.appleKeyId)$.APPLE_KEY_ID=X.appleKeyId;if(X.appleIssuerId)$.APPLE_ISSUER_ID=X.appleIssuerId;if(X.appleKeyContent)$.APPLE_KEY_CONTENT=X.appleKeyContent;if(X.appleProfileName)$.APPLE_PROFILE_NAME=X.appleProfileName;if(X.appStoreConnectTeamId)$.APP_STORE_CONNECT_TEAM_ID=X.appStoreConnectTeamId;if(X.androidKeystoreFile)$.ANDROID_KEYSTORE_FILE=X.androidKeystoreFile;if(X.keystoreKeyAlias)$.KEYSTORE_KEY_ALIAS=X.keystoreKeyAlias;let G=!!X.keystoreKeyPassword,W=!!X.keystoreStorePassword;if(G&&!W)$.KEYSTORE_KEY_PASSWORD=X.keystoreKeyPassword,$.KEYSTORE_STORE_PASSWORD=X.keystoreKeyPassword;else if(!G&&W)$.KEYSTORE_KEY_PASSWORD=X.keystoreStorePassword,$.KEYSTORE_STORE_PASSWORD=X.keystoreStorePassword;else if(G&&W)$.KEYSTORE_KEY_PASSWORD=X.keystoreKeyPassword,$.KEYSTORE_STORE_PASSWORD=X.keystoreStorePassword;if(X.playConfigJson)$.PLAY_CONFIG_JSON=X.playConfigJson;let O=await Mk(D,X.platform,Object.keys($).length>0?$:void 0),H={app_id:D,platform:X.platform,build_mode:X.buildMode};if(!O){if(!Y)K.error("❌ No credentials found for this app and platform"),K.error(""),K.error("You must provide credentials via:"),K.error(" 1. CLI arguments (--apple-key-id, --p12-password, etc.)"),K.error(" 2. Environment variables (APPLE_KEY_ID, P12_PASSWORD, etc.)"),K.error(" 3. Saved credentials file:"),K.error(` npx @capgo/cli build credentials save --appId ${D} --platform ${X.platform}`),K.error(""),K.error("Documentation:"),K.error(" https://capgo.app/docs/cli/cloud-build/credentials/");throw Error("No credentials found. Please provide credentials before building.")}let M=[];if(X.platform==="ios"){if(!O.BUILD_CERTIFICATE_BASE64)M.push("BUILD_CERTIFICATE_BASE64 (or --build-certificate-base64)");if(!O.P12_PASSWORD&&!Y)K.warn("⚠️ P12_PASSWORD not provided - assuming certificate has no password"),K.warn(" If your certificate requires a password, provide it with --p12-password");if(!O.BUILD_PROVISION_PROFILE_BASE64)M.push("BUILD_PROVISION_PROFILE_BASE64 (or --build-provision-profile-base64)");if(!O.APPLE_KEY_ID)M.push("APPLE_KEY_ID (or --apple-key-id)");if(!O.APPLE_ISSUER_ID)M.push("APPLE_ISSUER_ID (or --apple-issuer-id)");if(!O.APPLE_KEY_CONTENT)M.push("APPLE_KEY_CONTENT (or --apple-key-content)");if(!O.APP_STORE_CONNECT_TEAM_ID)M.push("APP_STORE_CONNECT_TEAM_ID (or --apple-team-id)")}else if(X.platform==="android"){if(!O.ANDROID_KEYSTORE_FILE)M.push("ANDROID_KEYSTORE_FILE (or --android-keystore-file)");if(!O.KEYSTORE_KEY_ALIAS)M.push("KEYSTORE_KEY_ALIAS (or --keystore-key-alias)");if(!O.KEYSTORE_KEY_PASSWORD&&!O.KEYSTORE_STORE_PASSWORD)M.push("KEYSTORE_KEY_PASSWORD or KEYSTORE_STORE_PASSWORD (at least one password required)");if(!O.PLAY_CONFIG_JSON&&!Y)K.warn("⚠️ PLAY_CONFIG_JSON not provided - build will succeed but cannot auto-upload to Play Store")}if(M.length>0){if(!Y){K.error(`❌ Missing required credentials for ${X.platform}:`),K.error("");for(let L of M)K.error(` • ${L}`);K.error(""),K.error("Provide credentials via:"),K.error(' 1. CLI arguments: npx @capgo/cli build request --platform ios --apple-id "..." --p12-password "..."'),K.error(' 2. Environment variables: export APPLE_ID="..." P12_PASSWORD="..."'),K.error(" 3. Saved credentials: npx @capgo/cli build credentials save --platform ios ..."),K.error(""),K.error("Documentation:"),K.error(` https://capgo.app/docs/cli/cloud-build/${X.platform}/`)}throw Error(`Missing required credentials for ${X.platform}: ${M.join(", ")}`)}if(H.credentials=O,!Y)K.info("✓ Using credentials (merged from CLI args, env vars, and saved file)");if(J){let L=Object.keys(O).filter((C)=>O[C]);K.info(`Credentials provided: ${L.join(", ")}`)}if(!Y)K.info("Requesting build from Capgo...");let U=3,N=await s40(`${F}/build/request`,{method:"POST",headers:{"Content-Type":"application/json",authorization:X.apikey},body:JSON.stringify(H)},U,Y);if(!N.ok){let L=await N.text();throw Error(`Failed to request build: ${N.status} - ${L}`)}let R=await N.json();if(!Y)K.success(`Build job created: ${R.job_id}`),K.info(`Status: ${R.status}`);if(J)K.info(`Upload URL: ${R.upload_url}`),K.info(`Upload expires: ${R.upload_expires_at}`);await z0(X.apikey,{channel:"native-builder",event:"Build requested",icon:"\uD83C\uDFD7️",user_id:q,tags:{"app-id":D,platform:X.platform},notify:!1}).catch();let z=Y8.join(Vk.tmpdir(),`capgo-build-${Date.now()}`);await X8.mkdir(z,{recursive:!0});let V=Y8.join(z,`${Y8.basename(w)}.zip`);try{if(!Y)K.info(`Zipping ${X.platform} project from ${w}...`);await X30(w,V,X.platform);let C=((await X8.stat(V)).size/1024/1024).toFixed(2);if(!Y)K.success(`Created zip: ${V} (${C} MB)`);if(!Y)K.info("Uploading to builder...");if(J)K.info(`Upload endpoint: ${R.upload_url}`),K.info(`File size: ${C} MB`),K.info(`Job ID: ${R.job_id}`);let y=d8.readFileSync(V),A=xD();if(!Y)A.start("Uploading bundle");if(await new Promise((n,h)=>{let E=new TJ.Upload(y,{endpoint:R.upload_url,chunkSize:5242880,metadata:{filename:Y8.basename(V),filetype:"application/zip"},headers:{authorization:X.apikey},onBeforeRequest(P){if(J){K.info(`[TUS] ${P.getMethod()} ${P.getURL()}`);let x=P.getHeader("authorization");K.info(`[TUS] Authorization header present: ${!!x}`)}},onAfterResponse(P,x){if(J){K.info(`[TUS] Response status: ${x.getStatus()}`);let _=x.getHeader("upload-offset"),g=x.getHeader("tus-resumable");K.info(`[TUS] Upload-Offset: ${_}, Tus-Resumable: ${g}`)}},onError(P){if(!Y)A.stop("Upload failed"),K.error(`Upload error: ${P.message}`);if(P instanceof TJ.DetailedError){let x=P.originalResponse?.getBody(),_=P.originalResponse?.getStatus(),g=P.originalRequest?.getURL();if(J)K.error(`[TUS] Request URL: ${g}`),K.error(`[TUS] Response status: ${_}`),K.error(`[TUS] Response body: ${x}`);let m="Unknown error";try{let a=JSON.parse(x||'{"error": "unknown error"}');m=a.status||a.error||a.message||"unknown error"}catch{m=x||P.message}h(Error(`TUS upload failed: ${m}`))}else h(Error(`TUS upload failed: ${P.message||P.toString()}`))},onProgress(P,x){let _=(P/x*100).toFixed(2);if(!Y)A.message(`Uploading ${_}%`)},onSuccess(){if(!Y)A.stop("Upload complete!");if(J)K.success("TUS upload completed successfully");n()}});if(J)K.info("[TUS] Starting upload...");E.start()}),!Y)K.info("Starting build job...");let k=await fetch(`${F}/build/start/${R.job_id}`,{method:"POST",headers:{"Content-Type":"application/json",authorization:X.apikey},body:JSON.stringify({app_id:D})});if(!k.ok){let n=await k.text();throw Error(`Failed to start build: ${k.status} - ${n}`)}let f=await k.json();if(!Y)K.success("Build started!"),K.info("Streaming build logs...");let S,v=await o40(F,R.job_id,D,X.apikey,Y,J);if(v)S=v;else S=await e40(F,R.job_id,D,X.platform,X.apikey,Y);if(!Y)if(S==="succeeded")K.success("Build completed successfully!");else if(S==="failed")K.error("Build failed");else K.warn(`Build finished with status: ${S}`);let b=((Date.now()-Z)/1000).toFixed(2);return await z0(X.apikey,{channel:"native-builder",event:S==="succeeded"?"Build succeeded":"Build failed",icon:S==="succeeded"?"✅":"❌",user_id:q,tags:{"app-id":D,platform:X.platform,status:S||"unknown",time:b},notify:!1}).catch(),{success:S==="succeeded",jobId:R.job_id,uploadUrl:R.upload_url,status:S||f.status||R.status}}finally{await X8.rm(z,{recursive:!0,force:!0})}}catch(Q){let w=Q instanceof Error?Q.message:String(Q);if(!Y)K.error(w);return{success:!1,error:w}}}async function Y30(D,X,Y,Z){for await(let J of D){if(!Z)K.warn(`Removing ${J.name} created on ${l7(J.created_at)}`);await RJ(X,Y,J.name)}}function Z30(D,X,Y){let Z=[];for(let J of D??[]){let Q=i0(J.name);if(zQ(Q,X)&&q9(Q,Y))Z.push(J)}return Z}async function Rk(D,X,Y=!1){if(!Y)q0("Cleanup versions in Capgo");await o0(),X.apikey=X.apikey||Q0();let{bundle:Z,keep:J=4}=X,Q=X.force||!1,w=X.ignoreChannel||!1,F=await H0();if(D=b0(D,F?.config),!X.apikey){if(!Y)K.error("Missing API key, you need to provide an API key to delete your app");throw Error("Missing API key")}if(!D){if(!Y)K.error("Missing argument, you need to provide a appid, or be in a capacitor project");throw Error("Missing appId")}let B=await K0(X.apikey,X.supaHost,X.supaAnon);if(await _D(B,D,Y),await N0(B,X.apikey,["write","all"]),await CD(B,X.apikey,D,3,Y,!0),!Y)K.info("Querying all available versions in Capgo");let q=await AJ(B,D),$=await Qk(B,D);if(!Y)K.info(`Total active versions in Capgo: ${q?.length??0}`);if(!q?.length){if(!Y)K.error("No versions found, aborting cleanup");throw Error("No versions found")}if(Z){let O=i0(Z),H=B4(O,"major");if(!Y)K.info(`Querying available versions in Capgo between ${Q8(O)} and ${Q8(H)}`);if(q=Z30(q,O,H),!Y)K.info(`Active versions in Capgo between ${Q8(O)} and ${Q8(H)}: ${q?.length??0}`)}let G=[],W=0;for(let O of q){let H=$.find((M)=>M===O.id);if(W<J||H&&!w)O.keep=H?"✅ (Linked to channel)":"✅",W+=1;else O.keep="❌",G.push(O)}if(!G.length){if(!Y)K.warn("Nothing to be removed, aborting removal...");return{removed:0,kept:W}}if(!Y)Jk(q);if(!Q)if(!Y){let O=await oD({message:"Do you want to continue removing the versions specified?"});if(c0(O)||!O)throw K.warn("Not confirmed, aborting removal..."),Error("Cleanup cancelled by user")}else throw Error("Cleanup requires force=true in SDK mode to prevent accidental deletions");if(!Y)K.success("You have confirmed removal, removing versions now");if(await Y30(G,B,D,Y),!Y)$0("Done ✅");return{removed:G.length,kept:W}}async function Ak(D,X,Y=!1){if(!Y)q0("Check compatibility");let Z={...X,apikey:X.apikey||Q0()},J=D?void 0:await H0(),Q=b0(D,J?.config),w=Z.channel;if(!w){if(!Y)K.error("Missing argument, you need to provide a channel");throw Error("Missing channel")}if(!Z.apikey){if(!Y)K.error("Missing API key, you need to provide an API key to access Capgo Cloud metadata");throw Error("Missing API key")}if(!Q){if(!Y)K.error("Missing argument, you need to provide an appId, or be in a capacitor project");throw Error("Missing appId")}let F=await K0(Z.apikey,Z.supaHost,Z.supaAnon);await _D(F,Q,Y),await N0(F,Z.apikey,["write","all","read","upload"]),await CD(F,Z.apikey,Q,1,Y,!0);let B=await NJ(F,Q,w,Z.packageJson,Z.nodeModules),q=B.finalCompatibility.some(($)=>!Y9($));if(!Y){let $=new MD;$.headers=["Package","Local","Remote","Status","Details"],$.theme=MD.roundTheme,$.rows=[];let G=Z.text?"OK":"✅",W=Z.text?"FAIL":"❌";for(let O of B.finalCompatibility){let{name:H,localVersion:M,remoteVersion:U}=O,N=$5(O),R=N.compatible?G:W;$.rows.push([H,M||"-",U||"-",R,N.message])}if(K.success("Compatibility Check Results"),K.info($.toString()),q){let O=B.finalCompatibility.filter((H)=>!Y9(H)).length;K.warn(`
383
383
  ${O} package(s) are incompatible with channel "${w}"`),K.warn("An app store update may be required for these changes to take effect.")}else K.success(`
384
- All packages are compatible with channel "${w}"`)}return{finalCompatibility:B.finalCompatibility,hasIncompatible:q,resolvedAppId:Q,channel:w}}var M6=require("node:fs"),Sk=require("node:process");var c8=require("node:buffer"),bD=require("node:crypto"),Ek="aes-128-cbc",z6="base64",IJ="hex",p7=bD.constants.RSA_PKCS1_PADDING;function PJ(D){let X=bD.randomBytes(16),Y=bD.randomBytes(16),Z=X.toString(z6),J=bD.privateEncrypt({key:D,padding:p7},Y).toString(z6);return{sessionKey:Y,ivSessionKey:`${Z}:${J}`}}function a7(D,X,Y){let[Z]=Y.split(":"),J=c8.Buffer.from(Z,z6),Q=bD.createCipheriv(Ek,X,J);return Q.setAutoPadding(!0),c8.Buffer.concat([Q.update(D),Q.final()])}function Ck(D,X,Y){let[Z,J]=X.split(":"),Q=bD.publicDecrypt({key:Y,padding:p7},c8.Buffer.from(J,z6)),w=c8.Buffer.from(Z,z6),F=bD.createDecipheriv(Ek,Q,w);return F.setAutoPadding(!0),c8.Buffer.concat([F.update(D),F.final()])}function t7(D,X){return bD.privateEncrypt({key:X,padding:p7},c8.Buffer.from(D,z6)).toString(z6)}function r7(D,X){return bD.privateEncrypt({key:X,padding:p7},c8.Buffer.from(D,IJ)).toString(IJ)}function jk(D,X){return bD.publicDecrypt({key:X,padding:p7},c8.Buffer.from(D,z6)).toString(z6)}function Tk(D,X){return bD.publicDecrypt({key:X,padding:p7},c8.Buffer.from(D,IJ)).toString(IJ)}function Ik(){let{publicKey:D,privateKey:X}=bD.generateKeyPairSync("rsa",{modulusLength:2048});return{publicKey:D.export({type:"pkcs1",format:"pem"}),privateKey:X.export({type:"pkcs1",format:"pem"})}}function Pk(D){if(!D)return"";return D.replace(/-----BEGIN RSA PUBLIC KEY-----/g,"").replace(/-----END RSA PUBLIC KEY-----/g,"").replace(/\n/g,"").replace(/\r/g,"").replace(/ /g,"").substring(0,20)}var J30="5.30.0",Q30="6.30.0",w30="7.30.0";function F30(D,X){let Y=D.key||K6,Z=X.config.plugins?.CapacitorUpdater?.publicKey;if(M6.existsSync(Y))Z=M6.readFileSync(Y,"utf8");else if(!Z&&D.keyData)Z=D.keyData;return{publicKey:Z,fallbackKeyPath:Y}}async function xk(D,X,Y,Z=!1){if(!Z)q0("Decrypt zip file");try{if(await o0(),!M6.existsSync(D)){let G=`Zip not found at the path ${D}`;if(!Z)K.error(G);throw Error(G)}let J=await K0();if(!Y.key&&!M6.existsSync(K6)&&!J.config.plugins?.CapacitorUpdater?.publicKey){let G=`Public Key not found at the path ${K6} or in ${J.path}`;if(!Z)K.error(G);throw Error(G)}let{publicKey:Q,fallbackKeyPath:w}=F30(Y,J);if(!Q){let G=`Cannot find public key ${w} or as keyData option or in ${J.path}`;if(!Z)K.error(G);throw Error(G)}let F=M6.readFileSync(D),B=Ck(F,X,Y.keyData??Q),q=`${D}_decrypted.zip`;if(M6.writeFileSync(q,B),!Z)K.info(`Decrypted zip file at ${q}`);let $;if(Y.checksum){let G=await y6(B,"sha256"),W=rD(Sk.cwd()),O=await o1("@capgo/capacitor-updater",W,Y.packageJson),H=!1,M;try{M=O?i0(O):void 0}catch{M=void 0}if(M)H=!e1(M,J30,Q30,w30);if(!Z)K.info(`Decrypting checksum with ${H?"V3":"V2"} (based on updater version ${O||"unknown"})`);let U=H?Tk(Y.checksum,Y.keyData??Q):jk(Y.checksum,Y.keyData??Q);if($=G===U,!$){let N=`Checksum does not match ${G} !== ${U}`;if(!Z)K.error(N);throw Error(N)}if(!Z)K.info("Checksum matches")}if(!Z)$0("✅ done");return{outputPath:q,checksumMatches:$}}catch(J){if(!Z)K.error(`Error decrypting zip file ${p(J)}`);throw J instanceof Error?J:Error(String(J))}}async function fk(D,X,Y,Z=!1){if(!Z)q0("Delete bundle");Y.apikey=Y.apikey||Q0();let J=await K0();if(X=b0(X,J?.config),!Y.apikey){if(!Z)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}if(!X){if(!Z)K.error("Missing argument, you need to provide a appId, or be in a capacitor project");throw Error("Missing appId")}if(!D){if(!Z)K.error("Missing argument, you need to provide a bundleId, or be in a capacitor project");throw Error("Missing bundleId")}let Q=await z0(Y.apikey,Y.supaHost,Y.supaAnon);if(await vD(Q,X,Z),await N0(Q,Y.apikey,["write","all"]),await CD(Q,Y.apikey,X,3,Z,!0),!Z)K.info(`Deleting bundle ${X}@${D} from Capgo`),K.info("Keep in mind that you will not be able to reuse this bundle version, it's gone forever");await RJ(Q,X,D);let w=await _D(Q,X);if(await H0(Y.apikey,{channel:"app",event:"Bundle Deleted",icon:"\uD83D\uDDD1️",user_id:w,tags:{"app-id":X,bundle:D},notify:!1,notifyConsole:!0}).catch(()=>{}),!Z)K.success(`Bundle ${X}@${D} deleted in Capgo`),$0("Done");return!0}var L6=require("node:fs"),yk=require("node:process");var B30="5.30.0",q30="6.30.0",$30="7.30.0";function ZX(D){console.error(p(D))}async function kk(D,X,Y,Z=!1){let{json:J}=Y,Q=!J&&!Z;if(Q)q0("Encryption"),await o0();try{let w=await K0(),F=!!w.config.plugins?.CapacitorUpdater?.privateKey,B=!!w.config.plugins?.CapacitorUpdater?.publicKey;if(F&&Q)K.warning("There is still a privateKey in the config");if(!L6.existsSync(D)){let L=`Zip not found at the path ${D}`;if(!Z)if(J)ZX({error:"zip_not_found"});else K.error(`Error: ${L}`);throw Error(L)}if(!B){if(!Z)if(J)ZX({error:"missing_public_key"});else K.warning("Warning: Missing Public Key in config");throw Error("Missing public key in config")}let q=Y.key||v1,$=Y.keyData||"";if(!L6.existsSync(q)&&!$){if(!Z)if(J)ZX({error:"missing_key"});else K.warning(`Cannot find a private key at ${q} or as a keyData option`),K.error("Error: Missing key");throw Error("Missing private key")}else if(L6.existsSync(q))$=L6.readFileSync(q,"utf8");if($&&!$.startsWith("-----BEGIN RSA PRIVATE KEY-----")){if(!Z)if(J)ZX({error:"invalid_private_key"});else K.error("The private key provided is not a valid RSA Private key");throw Error("Invalid private key format")}let G=L6.readFileSync(D),{sessionKey:W,ivSessionKey:O}=PJ($),H=a7(G,W,O),M=rD(yk.cwd()),U=await o1("@capgo/capacitor-updater",M,Y.packageJson),N=!1,R;try{R=U?i0(U):void 0}catch{R=void 0}if(R)N=!e1(R,B30,q30,$30);let z=N?r7(X,$):t7(X,$);if(Q)K.info(`Encrypting checksum with ${N?"V3":"V2"} (based on updater version ${U||"unknown"})`);let V=`${D}_encrypted.zip`;if(L6.writeFileSync(V,H),!Z)if(J)console.log(JSON.stringify({checksum:z,filename:V,ivSessionKey:O},null,2));else K.success(`Encoded Checksum: ${z}`),K.success(`ivSessionKey: ${O}`),K.success(`Encrypted zip saved at ${V}`),$0("Done ✅");return{checksum:z,filename:V,ivSessionKey:O}}catch(w){if(!Z)if(Y.json)ZX(w);else K.error(`Error encrypting zip file ${p(w)}`);throw w instanceof Error?w:Error(String(w))}}var Fh=require("node:crypto"),U5=require("node:fs"),w9=require("node:process");class d$ extends TransformStream{outChunkSize;constructor(D){let X=new Uint8Array(D),Y=0;super({transform(Z,J){let Q=0;while(Q<Z.length){let w=D-Y,F=Math.min(w,Z.length-Q);if(X.set(Z.subarray(Q,Q+F),Y),Q+=F,Y+=F,Y===D)J.enqueue(X),X=new Uint8Array(D),Y=0}},flush(Z){if(Y>0)Z.enqueue(X.subarray(0,Y))}}),this.outChunkSize=D}}function Z9(D){return D=D.trim(),D=D.replace(/<!--[\s\S]*?-->/g,""),X();function X(){return{declaration:Y(),root:Z()}}function Y(){if(!B(/^<\?xml\s*/))return;let W={attributes:{}};while(!(q()||$("?>"))){let O=Q();if(!O)return W;W.attributes[O.name]=O.value}return B(/\?>\s*/),W}function Z(){let G=B(/^<([\w-:.]+)\s*/);if(!G)return;let W={name:G[1],attributes:{},children:[]};while(!(q()||$(">")||$("?>")||$("/>"))){let H=Q();if(!H)return W;W.attributes[H.name]=H.value}if(B(/^\s*\/>\s*/))return W;B(/\??>\s*/),W.content=J();let O;while(O=Z())W.children.push(O);return B(/^<\/[\w-:.]+>\s*/),W}function J(){let G=B(/^([^<]*)/);if(G)return F(G[1]);return""}function Q(){let G=B(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/);if(!G)return;return{name:G[1],value:F(w(G[2]))}}function w(G){return G.replace(/^['"]|['"]$/g,"")}function F(G){return G.replaceAll("&lt;","<").replaceAll("&gt;",">").replaceAll("&amp;","&")}function B(G){let W=D.match(G);if(!W)return;return D=D.slice(W[0].length),W}function q(){return D.length===0}function $(G){return D.startsWith(G)}}class V6 extends Error{}class V1 extends V6{}class SJ extends V6{}class c$ extends V6{bucketName;constructor(D){super(`Invalid bucket name: ${D}`),this.bucketName=D}}class U6 extends V6{objectName;constructor(D){super(`Invalid object name: ${D}`),this.objectName=D}}class G5 extends V6{constructor(){super("accessKey is required")}}class JX extends V6{constructor(){super("secretKey is required")}}class xJ extends V6{constructor(){super("expirySeconds cannot be less than 1 second or more than 7 days")}}class J9 extends V6{statusCode;code;key;bucketName;resource;region;constructor(D,X,Y,Z={}){super(Y),this.statusCode=D,this.code=X,this.key=Z.key,this.bucketName=Z.bucketName,this.resource=Z.resource,this.region=Z.region}}async function uk(D){try{let Y=Z9(await D.text()).root;if(Y?.name!=="Error")throw Error("Invalid root, expected <Error>");let Z=Y.children.find((q)=>q.name==="Code")?.content??"UnknownErrorCode",J=Y.children.find((q)=>q.name==="Message")?.content??"The error message could not be determined.",Q=Y.children.find((q)=>q.name==="Key")?.content,w=Y.children.find((q)=>q.name==="BucketName")?.content,F=Y.children.find((q)=>q.name==="Resource")?.content,B=Y.children.find((q)=>q.name==="Region")?.content;return new J9(D.status,Z,J,{key:Q,bucketName:w,resource:F,region:B})}catch{return new J9(D.status,"UnrecognizedError",`Error: Unexpected response code ${D.status} ${D.statusText}. Unable to parse response as XML.`)}}function hk(D){if(typeof D!=="number"||isNaN(D))return!1;return D>=1&&D<=65535}function _k(D){if(typeof D!=="string")return!1;if(D.length<3||D.length>63)return!1;if(D.includes(".."))return!1;if(D.match(/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/))return!1;if(D.match(/^[a-z0-9][a-z0-9.-]+[a-z0-9]$/))return!0;return!1}function Q9(D){if(!G30(D))return!1;if(D.length===0)return!1;return!0}function G30(D){if(typeof D!=="string")return!1;if(D.length>1024)return!1;return!0}function QX(D){return Array.from(D).map((X)=>X.toString(16).padStart(2,"0")).join("")}function O5(D=""){let X={'"':"","&quot;":"","&#34;":"","&QUOT;":"","&#x00022":""};return D.replace(/^("|&quot;|&#34;)|("|&quot;|&#34;)$/g,(Y)=>X[Y])}function n$(D){return D.get("x-amz-version-id")??null}function W5(D){let X=D.toISOString();return X.slice(0,4)+X.slice(5,7)+X.slice(8,13)+X.slice(14,16)+X.slice(17,19)+"Z"}function i$(D){return W5(D).slice(0,8)}function p$(D,X){return`${i$(X)}/${D}/s3/aws4_request`}async function fJ(D){if(!(D instanceof Uint8Array))D=new TextEncoder().encode(D);return QX(new Uint8Array(await crypto.subtle.digest("SHA-256",D)))}var O30=["x-amz-server-side-encryption-customer-algorithm","x-amz-server-side-encryption-customer-key","x-amz-server-side-encryption-customer-key-MD5"];class a$ extends WritableStream{getResult;constructor({client:D,bucketName:X,objectName:Y,partSize:Z,metadata:J}){let Q,w=1,F,B=[],q,$=[];super({start(){},async write(G,W){let H=w++;try{if(H==1&&G.length<Z){let N=await D.makeRequest({method:"PUT",headers:new Headers({...J,"Content-Length":String(G.length)}),bucketName:X,objectName:Y,payload:G});Q={etag:O5(N.headers.get("etag")??void 0),versionId:n$(N.headers)};return}if(H===1)F=(await W30({client:D,bucketName:X,objectName:Y,metadata:J})).uploadId;let M={"Content-Length":String(G.length)};for(let N of O30){let R=J[N];if(R)M[N]=R}let U=D.makeRequest({method:"PUT",query:{partNumber:H.toString(),uploadId:F},headers:new Headers(M),bucketName:X,objectName:Y,payload:G}).then((N)=>{let R=N.headers.get("etag")??"";if(R)R=R.replace(/^"/,"").replace(/"$/,"");return B.push({part:H,etag:R}),N});$.push(U.catch((N)=>{if(!q)q=N}))}catch(M){throw M}},async close(){if(Q);else if(F){if(await Promise.all($),q)throw q;B.sort((G,W)=>G.part>W.part?1:-1),Q=await H30({client:D,bucketName:X,objectName:Y,uploadId:F,etags:B})}else throw Error("Stream was closed without uploading any data.")}});this.getResult=()=>{if(Q===void 0)throw Error("Result is not ready. await the stream first.");return Q}}}async function W30(D){let Y=new Headers(D.metadata),Z="uploads",Q=await(await D.client.makeRequest({method:"POST",bucketName:D.bucketName,objectName:D.objectName,query:"uploads",headers:Y,returnBody:!0})).text(),w=Z9(Q).root;if(!w||w.name!=="InitiateMultipartUploadResult")throw Error(`Unexpected response: ${Q}`);let F=w.children.find((B)=>B.name==="UploadId")?.content;if(!F)throw Error(`Unable to get UploadId from response: ${Q}`);return{uploadId:F}}async function H30({client:D,bucketName:X,objectName:Y,uploadId:Z,etags:J}){let Q=`
384
+ All packages are compatible with channel "${w}"`)}return{finalCompatibility:B.finalCompatibility,hasIncompatible:q,resolvedAppId:Q,channel:w}}var M6=require("node:fs"),Sk=require("node:process");var c8=require("node:buffer"),vD=require("node:crypto"),Ek="aes-128-cbc",z6="base64",IJ="hex",p7=vD.constants.RSA_PKCS1_PADDING;function PJ(D){let X=vD.randomBytes(16),Y=vD.randomBytes(16),Z=X.toString(z6),J=vD.privateEncrypt({key:D,padding:p7},Y).toString(z6);return{sessionKey:Y,ivSessionKey:`${Z}:${J}`}}function a7(D,X,Y){let[Z]=Y.split(":"),J=c8.Buffer.from(Z,z6),Q=vD.createCipheriv(Ek,X,J);return Q.setAutoPadding(!0),c8.Buffer.concat([Q.update(D),Q.final()])}function Ck(D,X,Y){let[Z,J]=X.split(":"),Q=vD.publicDecrypt({key:Y,padding:p7},c8.Buffer.from(J,z6)),w=c8.Buffer.from(Z,z6),F=vD.createDecipheriv(Ek,Q,w);return F.setAutoPadding(!0),c8.Buffer.concat([F.update(D),F.final()])}function t7(D,X){return vD.privateEncrypt({key:X,padding:p7},c8.Buffer.from(D,z6)).toString(z6)}function r7(D,X){return vD.privateEncrypt({key:X,padding:p7},c8.Buffer.from(D,IJ)).toString(IJ)}function jk(D,X){return vD.publicDecrypt({key:X,padding:p7},c8.Buffer.from(D,z6)).toString(z6)}function Tk(D,X){return vD.publicDecrypt({key:X,padding:p7},c8.Buffer.from(D,IJ)).toString(IJ)}function Ik(){let{publicKey:D,privateKey:X}=vD.generateKeyPairSync("rsa",{modulusLength:2048});return{publicKey:D.export({type:"pkcs1",format:"pem"}),privateKey:X.export({type:"pkcs1",format:"pem"})}}function Pk(D){if(!D)return"";return D.replace(/-----BEGIN RSA PUBLIC KEY-----/g,"").replace(/-----END RSA PUBLIC KEY-----/g,"").replace(/\n/g,"").replace(/\r/g,"").replace(/ /g,"").substring(0,20)}var J30="5.30.0",Q30="6.30.0",w30="7.30.0";function F30(D,X){let Y=D.key||K6,Z=X.config.plugins?.CapacitorUpdater?.publicKey;if(M6.existsSync(Y))Z=M6.readFileSync(Y,"utf8");else if(!Z&&D.keyData)Z=D.keyData;return{publicKey:Z,fallbackKeyPath:Y}}async function xk(D,X,Y,Z=!1){if(!Z)q0("Decrypt zip file");try{if(await o0(),!M6.existsSync(D)){let G=`Zip not found at the path ${D}`;if(!Z)K.error(G);throw Error(G)}let J=await H0();if(!Y.key&&!M6.existsSync(K6)&&!J.config.plugins?.CapacitorUpdater?.publicKey){let G=`Public Key not found at the path ${K6} or in ${J.path}`;if(!Z)K.error(G);throw Error(G)}let{publicKey:Q,fallbackKeyPath:w}=F30(Y,J);if(!Q){let G=`Cannot find public key ${w} or as keyData option or in ${J.path}`;if(!Z)K.error(G);throw Error(G)}let F=M6.readFileSync(D),B=Ck(F,X,Y.keyData??Q),q=`${D}_decrypted.zip`;if(M6.writeFileSync(q,B),!Z)K.info(`Decrypted zip file at ${q}`);let $;if(Y.checksum){let G=await y6(B,"sha256"),W=rD(Sk.cwd()),O=await o1("@capgo/capacitor-updater",W,Y.packageJson),H=!1,M;try{M=O?i0(O):void 0}catch{M=void 0}if(M)H=!e1(M,J30,Q30,w30);if(!Z)K.info(`Decrypting checksum with ${H?"V3":"V2"} (based on updater version ${O||"unknown"})`);let U=H?Tk(Y.checksum,Y.keyData??Q):jk(Y.checksum,Y.keyData??Q);if($=G===U,!$){let N=`Checksum does not match ${G} !== ${U}`;if(!Z)K.error(N);throw Error(N)}if(!Z)K.info("Checksum matches")}if(!Z)$0("✅ done");return{outputPath:q,checksumMatches:$}}catch(J){if(!Z)K.error(`Error decrypting zip file ${p(J)}`);throw J instanceof Error?J:Error(String(J))}}async function fk(D,X,Y,Z=!1){if(!Z)q0("Delete bundle");Y.apikey=Y.apikey||Q0();let J=await H0();if(X=b0(X,J?.config),!Y.apikey){if(!Z)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}if(!X){if(!Z)K.error("Missing argument, you need to provide a appId, or be in a capacitor project");throw Error("Missing appId")}if(!D){if(!Z)K.error("Missing argument, you need to provide a bundleId, or be in a capacitor project");throw Error("Missing bundleId")}let Q=await K0(Y.apikey,Y.supaHost,Y.supaAnon);if(await _D(Q,X,Z),await N0(Q,Y.apikey,["write","all"]),await CD(Q,Y.apikey,X,3,Z,!0),!Z)K.info(`Deleting bundle ${X}@${D} from Capgo`),K.info("Keep in mind that you will not be able to reuse this bundle version, it's gone forever");await RJ(Q,X,D);let w=await pD(Q,X);if(await z0(Y.apikey,{channel:"app",event:"Bundle Deleted",icon:"\uD83D\uDDD1️",user_id:w,tags:{"app-id":X,bundle:D},notify:!1,notifyConsole:!0}).catch(()=>{}),!Z)K.success(`Bundle ${X}@${D} deleted in Capgo`),$0("Done");return!0}var L6=require("node:fs"),yk=require("node:process");var B30="5.30.0",q30="6.30.0",$30="7.30.0";function ZX(D){console.error(p(D))}async function kk(D,X,Y,Z=!1){let{json:J}=Y,Q=!J&&!Z;if(Q)q0("Encryption"),await o0();try{let w=await H0(),F=!!w.config.plugins?.CapacitorUpdater?.privateKey,B=!!w.config.plugins?.CapacitorUpdater?.publicKey;if(F&&Q)K.warning("There is still a privateKey in the config");if(!L6.existsSync(D)){let L=`Zip not found at the path ${D}`;if(!Z)if(J)ZX({error:"zip_not_found"});else K.error(`Error: ${L}`);throw Error(L)}if(!B){if(!Z)if(J)ZX({error:"missing_public_key"});else K.warning("Warning: Missing Public Key in config");throw Error("Missing public key in config")}let q=Y.key||v1,$=Y.keyData||"";if(!L6.existsSync(q)&&!$){if(!Z)if(J)ZX({error:"missing_key"});else K.warning(`Cannot find a private key at ${q} or as a keyData option`),K.error("Error: Missing key");throw Error("Missing private key")}else if(L6.existsSync(q))$=L6.readFileSync(q,"utf8");if($&&!$.startsWith("-----BEGIN RSA PRIVATE KEY-----")){if(!Z)if(J)ZX({error:"invalid_private_key"});else K.error("The private key provided is not a valid RSA Private key");throw Error("Invalid private key format")}let G=L6.readFileSync(D),{sessionKey:W,ivSessionKey:O}=PJ($),H=a7(G,W,O),M=rD(yk.cwd()),U=await o1("@capgo/capacitor-updater",M,Y.packageJson),N=!1,R;try{R=U?i0(U):void 0}catch{R=void 0}if(R)N=!e1(R,B30,q30,$30);let z=N?r7(X,$):t7(X,$);if(Q)K.info(`Encrypting checksum with ${N?"V3":"V2"} (based on updater version ${U||"unknown"})`);let V=`${D}_encrypted.zip`;if(L6.writeFileSync(V,H),!Z)if(J)console.log(JSON.stringify({checksum:z,filename:V,ivSessionKey:O},null,2));else K.success(`Encoded Checksum: ${z}`),K.success(`ivSessionKey: ${O}`),K.success(`Encrypted zip saved at ${V}`),$0("Done ✅");return{checksum:z,filename:V,ivSessionKey:O}}catch(w){if(!Z)if(Y.json)ZX(w);else K.error(`Error encrypting zip file ${p(w)}`);throw w instanceof Error?w:Error(String(w))}}var Fh=require("node:crypto"),U5=require("node:fs"),w9=require("node:process");class d$ extends TransformStream{outChunkSize;constructor(D){let X=new Uint8Array(D),Y=0;super({transform(Z,J){let Q=0;while(Q<Z.length){let w=D-Y,F=Math.min(w,Z.length-Q);if(X.set(Z.subarray(Q,Q+F),Y),Q+=F,Y+=F,Y===D)J.enqueue(X),X=new Uint8Array(D),Y=0}},flush(Z){if(Y>0)Z.enqueue(X.subarray(0,Y))}}),this.outChunkSize=D}}function Z9(D){return D=D.trim(),D=D.replace(/<!--[\s\S]*?-->/g,""),X();function X(){return{declaration:Y(),root:Z()}}function Y(){if(!B(/^<\?xml\s*/))return;let W={attributes:{}};while(!(q()||$("?>"))){let O=Q();if(!O)return W;W.attributes[O.name]=O.value}return B(/\?>\s*/),W}function Z(){let G=B(/^<([\w-:.]+)\s*/);if(!G)return;let W={name:G[1],attributes:{},children:[]};while(!(q()||$(">")||$("?>")||$("/>"))){let H=Q();if(!H)return W;W.attributes[H.name]=H.value}if(B(/^\s*\/>\s*/))return W;B(/\??>\s*/),W.content=J();let O;while(O=Z())W.children.push(O);return B(/^<\/[\w-:.]+>\s*/),W}function J(){let G=B(/^([^<]*)/);if(G)return F(G[1]);return""}function Q(){let G=B(/([\w:-]+)\s*=\s*("[^"]*"|'[^']*'|\w+)\s*/);if(!G)return;return{name:G[1],value:F(w(G[2]))}}function w(G){return G.replace(/^['"]|['"]$/g,"")}function F(G){return G.replaceAll("&lt;","<").replaceAll("&gt;",">").replaceAll("&amp;","&")}function B(G){let W=D.match(G);if(!W)return;return D=D.slice(W[0].length),W}function q(){return D.length===0}function $(G){return D.startsWith(G)}}class V6 extends Error{}class V1 extends V6{}class SJ extends V6{}class c$ extends V6{bucketName;constructor(D){super(`Invalid bucket name: ${D}`),this.bucketName=D}}class U6 extends V6{objectName;constructor(D){super(`Invalid object name: ${D}`),this.objectName=D}}class G5 extends V6{constructor(){super("accessKey is required")}}class JX extends V6{constructor(){super("secretKey is required")}}class xJ extends V6{constructor(){super("expirySeconds cannot be less than 1 second or more than 7 days")}}class J9 extends V6{statusCode;code;key;bucketName;resource;region;constructor(D,X,Y,Z={}){super(Y),this.statusCode=D,this.code=X,this.key=Z.key,this.bucketName=Z.bucketName,this.resource=Z.resource,this.region=Z.region}}async function uk(D){try{let Y=Z9(await D.text()).root;if(Y?.name!=="Error")throw Error("Invalid root, expected <Error>");let Z=Y.children.find((q)=>q.name==="Code")?.content??"UnknownErrorCode",J=Y.children.find((q)=>q.name==="Message")?.content??"The error message could not be determined.",Q=Y.children.find((q)=>q.name==="Key")?.content,w=Y.children.find((q)=>q.name==="BucketName")?.content,F=Y.children.find((q)=>q.name==="Resource")?.content,B=Y.children.find((q)=>q.name==="Region")?.content;return new J9(D.status,Z,J,{key:Q,bucketName:w,resource:F,region:B})}catch{return new J9(D.status,"UnrecognizedError",`Error: Unexpected response code ${D.status} ${D.statusText}. Unable to parse response as XML.`)}}function hk(D){if(typeof D!=="number"||isNaN(D))return!1;return D>=1&&D<=65535}function _k(D){if(typeof D!=="string")return!1;if(D.length<3||D.length>63)return!1;if(D.includes(".."))return!1;if(D.match(/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/))return!1;if(D.match(/^[a-z0-9][a-z0-9.-]+[a-z0-9]$/))return!0;return!1}function Q9(D){if(!G30(D))return!1;if(D.length===0)return!1;return!0}function G30(D){if(typeof D!=="string")return!1;if(D.length>1024)return!1;return!0}function QX(D){return Array.from(D).map((X)=>X.toString(16).padStart(2,"0")).join("")}function O5(D=""){let X={'"':"","&quot;":"","&#34;":"","&QUOT;":"","&#x00022":""};return D.replace(/^("|&quot;|&#34;)|("|&quot;|&#34;)$/g,(Y)=>X[Y])}function n$(D){return D.get("x-amz-version-id")??null}function W5(D){let X=D.toISOString();return X.slice(0,4)+X.slice(5,7)+X.slice(8,13)+X.slice(14,16)+X.slice(17,19)+"Z"}function i$(D){return W5(D).slice(0,8)}function p$(D,X){return`${i$(X)}/${D}/s3/aws4_request`}async function fJ(D){if(!(D instanceof Uint8Array))D=new TextEncoder().encode(D);return QX(new Uint8Array(await crypto.subtle.digest("SHA-256",D)))}var O30=["x-amz-server-side-encryption-customer-algorithm","x-amz-server-side-encryption-customer-key","x-amz-server-side-encryption-customer-key-MD5"];class a$ extends WritableStream{getResult;constructor({client:D,bucketName:X,objectName:Y,partSize:Z,metadata:J}){let Q,w=1,F,B=[],q,$=[];super({start(){},async write(G,W){let H=w++;try{if(H==1&&G.length<Z){let N=await D.makeRequest({method:"PUT",headers:new Headers({...J,"Content-Length":String(G.length)}),bucketName:X,objectName:Y,payload:G});Q={etag:O5(N.headers.get("etag")??void 0),versionId:n$(N.headers)};return}if(H===1)F=(await W30({client:D,bucketName:X,objectName:Y,metadata:J})).uploadId;let M={"Content-Length":String(G.length)};for(let N of O30){let R=J[N];if(R)M[N]=R}let U=D.makeRequest({method:"PUT",query:{partNumber:H.toString(),uploadId:F},headers:new Headers(M),bucketName:X,objectName:Y,payload:G}).then((N)=>{let R=N.headers.get("etag")??"";if(R)R=R.replace(/^"/,"").replace(/"$/,"");return B.push({part:H,etag:R}),N});$.push(U.catch((N)=>{if(!q)q=N}))}catch(M){throw M}},async close(){if(Q);else if(F){if(await Promise.all($),q)throw q;B.sort((G,W)=>G.part>W.part?1:-1),Q=await H30({client:D,bucketName:X,objectName:Y,uploadId:F,etags:B})}else throw Error("Stream was closed without uploading any data.")}});this.getResult=()=>{if(Q===void 0)throw Error("Result is not ready. await the stream first.");return Q}}}async function W30(D){let Y=new Headers(D.metadata),Z="uploads",Q=await(await D.client.makeRequest({method:"POST",bucketName:D.bucketName,objectName:D.objectName,query:"uploads",headers:Y,returnBody:!0})).text(),w=Z9(Q).root;if(!w||w.name!=="InitiateMultipartUploadResult")throw Error(`Unexpected response: ${Q}`);let F=w.children.find((B)=>B.name==="UploadId")?.content;if(!F)throw Error(`Unable to get UploadId from response: ${Q}`);return{uploadId:F}}async function H30({client:D,bucketName:X,objectName:Y,uploadId:Z,etags:J}){let Q=`
385
385
  <CompleteMultipartUpload xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
386
386
  ${J.map((G)=>` <Part><PartNumber>${G.part}</PartNumber><ETag>${G.etag}</ETag></Part>`).join(`
387
387
  `)}
@@ -390,21 +390,21 @@ All packages are compatible with channel "${w}"`)}return{finalCompatibility:B.fi
390
390
  `)+`
391
391
  `,Z.join(";").toLowerCase(),J].join(`
392
392
  `)}async function dk(D,X,Y){let Z=await fJ(D),J=p$(Y,X);return[wX,W5(X),J,Z].join(`
393
- `)}async function r$(D,X,Y){let Z=i$(D),J=await K5("AWS4"+Y,Z),Q=await K5(J,X),w=await K5(Q,"s3");return await K5(w,"aws4_request")}function s$(D,X,Y){return`${D}/${p$(X,Y)}`}async function K5(D,X){let Y=new TextEncoder,Z=await crypto.subtle.importKey("raw",D instanceof Uint8Array?D:Y.encode(D),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"]),J=await crypto.subtle.sign("HMAC",Z,X instanceof Uint8Array?X:Y.encode(X));return new Uint8Array(J)}async function ck(D){if(!D.accessKey)throw new G5;if(!D.secretKey)throw new JX;if(D.expirySeconds<1||D.expirySeconds>604800)throw new xJ;let X=new Date(D.date);X.setSeconds(X.getSeconds()+D.expirySeconds);let Y=s$(D.accessKey,D.region,D.date),Z=W5(D.date),J={"X-Amz-Algorithm":wX,"X-Amz-Credential":Y,"X-Amz-Date":Z,key:D.objectKey,...D.fields},Q=[{bucket:D.bucket},{key:D.objectKey},{"X-Amz-Algorithm":wX},{"X-Amz-Credential":Y},{"X-Amz-Date":Z}];if(D.conditions)Q.push(...D.conditions);for(let[O,H]of Object.entries(D.fields||{})){if(["key","X-Amz-Algorithm","X-Amz-Credential","X-Amz-Date"].includes(O))continue;Q.push({[O]:H})}let w={expiration:X.toISOString(),conditions:Q},F=new TextEncoder().encode(JSON.stringify(w)),B=btoa(String.fromCharCode(...F));J.policy=B;let q=B,$=await r$(D.date,D.region,D.secretKey),G=QX(await K5($,q)).toLowerCase();return J["X-Amz-Signature"]=G,{url:`${D.protocol}//${D.host}/${D.bucket}`,fields:J}}var z30=["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"],M30=5242880,L30=5368709120,o$=5497558138880;class yJ{host;port;protocol;accessKey;#D;sessionToken;defaultBucket;region;userAgent="s3-lite-client";pathStyle;pathPrefix;constructor({endPoint:D,useSSL:X,port:Y,pathPrefix:Z,...J}){if(/^https?:\/\//i.test(D)){if(X!==void 0||Y!==void 0||Z!==void 0)throw new V1("useSSL/port/pathPrefix cannot be specified if endPoint is a URL.");try{let w=new URL(D);if(D=w.hostname,X=w.protocol==="https:",Y=w.port?parseInt(w.port,10):X?443:80,w.pathname&&w.pathname!=="/")Z=w.pathname.endsWith("/")?w.pathname.slice(0,-1):w.pathname}catch{throw new SJ(`Invalid endPoint URL: ${D}`)}}if(typeof D!=="string"||D.length===0)throw new SJ(`Invalid endPoint: ${D}`);if(X===void 0)X=!0;if(Y!==void 0&&!hk(Y))throw new V1(`Invalid port: ${Y}`);if(J.accessKey&&!J.secretKey)throw new V1("If specifying access key, secret key must also be provided.");if(J.accessKey&&J.accessKey.startsWith("ASIA")&&!J.sessionToken)throw new V1("If specifying temporary access key, session token must also be provided.");let Q=X?443:80;if(this.port=Y??Q,this.host=D.toLowerCase()+(this.port!==Q?`:${this.port}`:""),this.protocol=X?"https:":"http:",this.accessKey=J.accessKey,this.#D=J.secretKey??"",this.sessionToken=J.sessionToken,this.pathStyle=J.pathStyle??!0,this.pathPrefix=Z??"",this.defaultBucket=J.bucket,this.region=J.region,this.pathPrefix){if(!this.pathStyle)throw new V1("pathPrefix is incompatible with pathStyle=false");if(!this.pathPrefix.startsWith("/"))throw new V1("pathPrefix should start with /");if(this.pathPrefix.endsWith("/"))throw new V1("pathPrefix should not end with /")}}getBucketName(D){let X=D?.bucketName??this.defaultBucket;if(X===void 0||!_k(X))throw new c$(X??"");return X}buildRequestOptions(D){let X=this.getBucketName(D),Y=this.pathStyle?this.host:`${X}.${this.host}`,Z=D.headers??new Headers;Z.set("host",Y);let J=typeof D.query==="object"?new URLSearchParams(D.query).toString().replace("+","%20"):D.query,Q=this.pathStyle?`${this.pathPrefix}/${X}/${D.objectName}`:`/${D.objectName}`,w=J?`?${J}`:"",F=Q+w,B=Q.split("/").map((q)=>encodeURIComponent(q)).join("/")+w;return{headers:Z,host:Y,path:F,encodedPath:B}}async makeRequest({method:D,payload:X,...Y}){let Z=new Date,{headers:J,host:Q,path:w,encodedPath:F}=this.buildRequestOptions(Y),B=Y.statusCode??200;if(D==="POST"||D==="PUT"||D==="DELETE"){if(X===void 0)X=new Uint8Array;else if(typeof X==="string")X=new TextEncoder().encode(X);J.set("Content-Length",String(X.length))}else if(X)throw Error(`Unexpected payload on ${D} request.`);let q=await fJ(X??new Uint8Array);if(J.set("x-amz-date",W5(Z)),J.set("x-amz-content-sha256",q),this.accessKey){if(this.sessionToken)J.set("x-amz-security-token",this.sessionToken);J.set("authorization",await vk({headers:J,method:D,path:w,accessKey:this.accessKey,secretKey:this.#D,region:this.region,date:Z}))}let $=`${this.protocol}//${Q}${F}`,G=await fetch($,{method:D,headers:J,body:X});if(G.status!==B){if(G.status>=400)throw await uk(G);else if(G.status===301)throw new J9(G.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"');throw new J9(G.status,"UnexpectedStatusCode",`Unexpected response code from the server (expected ${B}, got ${G.status} ${G.statusText}).`)}if(!Y.returnBody)await G.body?.getReader().read();return G}async deleteObject(D,X={}){let Y=this.getBucketName(X);if(!Q9(D))throw new U6(D);let Z=X.versionId?{versionId:X.versionId}:{},J=new Headers;if(X.governanceBypass)J.set("X-Amz-Bypass-Governance-Retention","true");await this.makeRequest({method:"DELETE",bucketName:Y,objectName:D,headers:J,query:Z,statusCode:204})}async exists(D,X){try{return await this.statObject(D,X),!0}catch(Y){if(Y instanceof J9&&Y.statusCode===404)return!1;throw Y}}getObject(D,X){return this.getPartialObject(D,{...X,offset:0,length:0})}async getPartialObject(D,{offset:X,length:Y,...Z}){let J=this.getBucketName(Z);if(!Q9(D))throw new U6(D);let Q=new Headers(Object.entries(Z.metadata??{})),w=200;if(X||Y){let B="";if(X)B=`bytes=${+X}-`;else B="bytes=0-",X=0;if(Y)B+=`${+Y+X-1}`;Q.set("Range",B),w=206}let F={...Z.responseParams,...Z.versionId?{versionId:Z.versionId}:{}};return await this.makeRequest({method:"GET",bucketName:J,objectName:D,headers:Q,query:F,statusCode:w,returnBody:!0})}getPresignedUrl(D,X,Y={}){if(!this.accessKey)throw new G5;if(!Q9(X))throw new U6(X);let{headers:Z,path:J}=this.buildRequestOptions({objectName:X,bucketName:Y.bucketName,query:Y.parameters}),Q=Y.requestDate??new Date,w=Y.expirySeconds??604800;return bk({protocol:this.protocol,headers:Z,method:D,path:J,accessKey:this.accessKey,secretKey:this.#D,sessionToken:this.sessionToken,region:this.region,date:Q,expirySeconds:w})}presignedGetObject(D,X={}){let{versionId:Y,responseParams:Z,...J}=X,Q={...Z,...Y?{versionId:Y}:{}};return this.getPresignedUrl("GET",D,{parameters:Q,...J})}async*listObjects(D={}){for await(let X of this.listObjectsGrouped({...D,delimiter:""}))if(X.type==="Object")yield X;else throw Error(`Unexpected result from listObjectsGrouped(): ${X}`)}async*listObjectsGrouped(D){let X=this.getBucketName(D),Y="",Z=D.pageSize??1000;if(Z<1||Z>1000)throw new V1("pageSize must be between 1 and 1,000.");let J=0;while(!0){let Q=D.maxResults?Math.min(Z,D.maxResults-J):Z;if(Q===0)return;let F=await(await this.makeRequest({method:"GET",bucketName:X,objectName:"",query:{"list-type":"2",prefix:D.prefix??"",delimiter:D.delimiter,"max-keys":String(Q),...Y?{"continuation-token":Y}:{}},returnBody:!0})).text(),B=Z9(F).root;if(!B||B.name!=="ListBucketResult")throw Error(`Unexpected response: ${F}`);let q=B.children.filter((W)=>W.name==="CommonPrefixes").flatMap((W)=>W.children),$=[];for(let W of q)$.push({type:"CommonPrefix",prefix:W.content??""}),J++;for(let W of B.children.filter((O)=>O.name==="Contents"))$.push({type:"Object",key:W.children.find((O)=>O.name==="Key")?.content??"",etag:O5(W.children.find((O)=>O.name==="ETag")?.content??""),size:parseInt(W.children.find((O)=>O.name==="Size")?.content??"",10),lastModified:new Date(W.children.find((O)=>O.name==="LastModified")?.content??"invalid")}),J++;$.sort((W,O)=>{let H=W.type==="Object"?W.key:W.prefix,M=O.type==="Object"?O.key:O.prefix;return H>M?1:H<M?-1:0});for(let W of $)yield W;if(B.children.find((W)=>W.name==="IsTruncated")?.content==="true"){let W=B.children.find((O)=>O.name==="NextContinuationToken")?.content;if(!W)throw Error("Unexpectedly missing continuation token, but server said there are more results.");Y=W}else return}}async putObject(D,X,Y){let Z=this.getBucketName(Y);if(!Q9(D))throw new U6(D);let J,Q;if(typeof X==="string"){let q=new TextEncoder().encode(X);if(typeof ReadableStream.from<"u")Q=ReadableStream.from([q]);else Q=new ReadableStream({start($){$.enqueue(q),$.close()}});J=q.length}else if(X instanceof Uint8Array){if(typeof ReadableStream.from<"u")Q=ReadableStream.from([X]);else Q=new ReadableStream({start(q){q.enqueue(X),q.close()}});J=X.byteLength}else if(X instanceof ReadableStream)Q=X;else throw new V1("Invalid stream/data type provided.");if(Y?.size!==void 0){if(J!==void 0&&Y?.size!==J)throw new V1(`size was specified (${Y.size}) but doesn't match auto-detected size (${J}).`);if(typeof Y.size!=="number"||Y.size<0||isNaN(Y.size))throw new V1(`invalid size specified: ${Y.size}`);else J=Y.size}let w=Y?.partSize??this.calculatePartSize(J);if(w<M30)throw new V1("Part size should be greater than 5MB");else if(w>L30)throw new V1("Part size should be less than 6MB");let F=new d$(w),B=new a$({client:this,bucketName:Z,objectName:D,partSize:w,metadata:Y?.metadata??{}});return await Q.pipeThrough(F).pipeTo(B),B.getResult()}calculatePartSize(D){if(D===void 0)D=o$;if(D>o$)throw TypeError(`size should not be more than ${o$}`);let X=67108864;while(!0){if(X*1e4>D)return X;X+=16777216}}async statObject(D,X){let Y=this.getBucketName(X);if(!Q9(D))throw new U6(D);let Z={};if(X?.versionId)Z.versionId=X.versionId;let J=await this.makeRequest({method:"HEAD",bucketName:Y,objectName:D,query:Z,headers:new Headers(X?.headers)}),Q={};for(let w of z30)if(J.headers.has(w))Q[w]=J.headers.get(w);return J.headers.forEach((w,F)=>{if(F.startsWith("x-amz-meta-"))Q[F]=J.headers.get(F)}),{type:"Object",key:D,size:parseInt(J.headers.get("content-length")??"",10),metadata:Q,lastModified:new Date(J.headers.get("Last-Modified")??"error: missing last modified"),versionId:J.headers.get("x-amz-version-id")||null,etag:O5(J.headers.get("ETag")??"")}}async copyObject(D,X,Y){let Z=this.getBucketName(Y),J=D.sourceBucketName??Z;if(!Q9(X))throw new U6(X);let Q=`${J}/${D.sourceKey}`;if(D.sourceVersionId)Q+=`?versionId=${D.sourceVersionId}`;let w=new Headers(Y?.metadata);if(Y?.metadata!==void 0)w.set("x-amz-metadata-directive","REPLACE");w.set("x-amz-copy-source",Q);let F=await this.makeRequest({method:"PUT",bucketName:Z,objectName:X,headers:w,returnBody:!0}),B=await F.text(),q=Z9(B).root;if(!q||q.name!=="CopyObjectResult")throw Error(`Unexpected response: ${B}`);let $=q.children.find((W)=>W.name==="ETag")?.content??"",G=q.children.find((W)=>W.name==="LastModified")?.content;if(G===void 0)throw Error("Unable to find <LastModified>...</LastModified> from the server.");return{copySourceVersionId:F.headers.get("x-amz-copy-source-version-id")||null,etag:O5($),lastModified:new Date(G),versionId:F.headers.get("x-amz-version-id")||null}}async bucketExists(D){try{return await this.listObjects({bucketName:D}).next(),!0}catch(X){if(X instanceof J9&&X.statusCode===404)return!1;throw X}}async makeBucket(D){await this.makeRequest({method:"PUT",bucketName:this.getBucketName({bucketName:D}),objectName:"",statusCode:200})}async removeBucket(D){await this.makeRequest({method:"DELETE",bucketName:this.getBucketName({bucketName:D}),objectName:"",statusCode:204})}presignedPostObject(D,X={}){if(!Q9(D))throw new U6(D);let Y=this.getBucketName(X);if(!Y)throw Error("Bucket name is required for presignedPost, but none was provided either to this method nor to the client constructor");let Z=X.requestDate||new Date,J=X.expirySeconds??3600;return ck({protocol:this.protocol,host:this.host,bucket:Y,objectKey:D,accessKey:this.accessKey||"",secretKey:this.#D||"",region:this.region,date:Z,expirySeconds:J,conditions:X.conditions,fields:X.fields})}}function lk(D){try{let X=i0(D);return Q8(B4(X,"patch"))}catch{let X=D.match(/^(\d+)\.(\d+)\.(\d+)/);if(X){let[,Y,Z,J]=X;return`${Y}.${Z}.${Number.parseInt(J)+1}`}return"1.0.1"}}async function nk(D,X){let Y=lk(D),Z=X?` for ${X}`:"",J=await M8({message:`How do you want to handle the version${Z}?`,options:[{value:"auto",label:`Auto: Bump patch version (${D} → ${Y})`},{value:"manual",label:"Manual: I'll provide the version number"}]});if(c0(J))return null;if(J==="auto")return K.info(`\uD83D\uDD22 Auto-bumped version from ${D} to ${Y}`),Y;let Q=await R6({message:`Current version is ${D}. Enter new version:`,validate:(w)=>{if(!w)return"Version is required";if(!w.match(/^\d+\.\d+\.\d+/))return"Please enter a valid version (x.y.z)"}});if(c0(Q))return null;return Q}function ik(D){let X=lk(D);try{let Y=i0(D);return[X,Q8(B4(Y,"minor")),`${D}-beta.1`,`${D}.1`]}catch{return[X,`${D}.1`,`${D}-beta.1`,`${D}-rc.1`]}}var z5=require("node:fs"),kJ=require("node:path");function V30(D,X){return z5.readFileSync(D,"utf8").includes(X)}function FX(D,X){let Y=z5.readdirSync(D);for(let Z of Y){let J=kJ.join(D,Z),Q=z5.statSync(J);if(Q.isDirectory()){if(FX(J,X))return!0}else if(Q.isFile()&&kJ.extname(J)===".js"){if(V30(J,X))return!0}}return!1}function uJ(D){if(z5.readdirSync(D).indexOf("index.html")>-1)return!0;return!1}var ou=require("node:buffer"),eu=require("node:crypto"),e7=require("node:fs"),Dh=require("node:os"),V5=require("node:path"),Xh=require("node:process"),dJ=require("node:stream/consumers"),Yh=require("node:zlib");var Zh=R0(su(),1),Jh=R0($Z(),1);async function CX0(D,X){try{let Y=new URL(`${D.hostFilesApi}/files/read/attachments/${encodeURIComponent(X)}`);return Y.searchParams.set("nocache",`${Date.now()}`),(await fetch(Y.toString(),{method:"GET",headers:{range:"bytes=0-0","cache-control":"no-cache"}})).ok}catch{return!1}}var jX0=8192;async function TX0(D){let X=rD(Xh.cwd()),Y=await o1("@capgo/capacitor-updater",X,D.packageJson),Z;try{Z=Y?i0(Y):void 0}catch{Z=void 0}if(!Y||!Z)return{version:null,supportsBrotliV2:!1};let J=!e1(Z,void 0,void 0,XX);return{version:`${Z.major}.${Z.minor}.${Z.patch}`,supportsBrotliV2:J}}function IX0(D,X){if(!X)return!1;let Y=X.split(",").map((Z)=>Z.trim()).filter((Z)=>!!Z);if(Y.length===0)return!1;return Zh.isMatch(D,Y)}async function PX0(D,X,Y){let J=e7.statSync(D).size,Q=await dJ.buffer(e7.createReadStream(D));if(J===0)return{buffer:Q,useBrotli:!1};if(IX0(X,Y.noBrotliPatterns))return{buffer:Q,useBrotli:!1};if(J<jX0)return{buffer:Q,useBrotli:!1};try{let w=await dJ.buffer(e7.createReadStream(D).pipe(Yh.createBrotliCompress({})));if(w.length>=J-10)return{buffer:Q,useBrotli:!1};return{buffer:w,useBrotli:!0}}catch(w){return K.warn(`Brotli compression failed for ${D}: ${w}, using original file`),{buffer:Q,useBrotli:!1}}}async function Qh(D,X,Y,Z,J,Q,w=!1){let F=xD();F.start(J!=="v2"?"Generating the update manifest":`Generating the update manifest with ${w?"V3":"V2"} encryption`);let B=await dy(D);if(J==="v2")for(let q of B)q.hash=w?r7(q.hash,Q):t7(q.hash,Q);return F.stop("Manifest generated successfully"),await H0(X,{channel:"partial-update",event:"Generate manifest",icon:"\uD83D\uDCC2",user_id:Y,tags:{"app-id":Z},notify:!1}),B}function SX0(D){if(Dh.platform()!=="win32")return D;return V5.win32.normalize(D).split(V5.win32.sep).join(V5.posix.sep)}function xX0(D){let X=D.split("/").map((Y)=>encodeURIComponent(Y)).join("/");if(D.includes(" "))K.warn(`File "${D}" contains spaces in its name.`);return X}async function wh(D,X,Y,Z,J,Q,w){let F=xD();F.start("Preparing partial update with TUS protocol");let B=performance.now(),q=await C8(),$=!!(w.partial||w.delta||w.partialOnly||w.deltaOnly),{version:G,supportsBrotliV2:W}=await TX0(w);if(!W)throw Error(`Your project is using an older version of @capgo/capacitor-updater (${G||"unknown"}). To use Delta updates, please upgrade to version ${zJ} (v5), ${MJ} (v6) or ${XX} (v7) or higher.`);else if(w.disableBrotli)K.info("Brotli compression disabled by user request");else if(w.noBrotliPatterns)K.info(`Files matching patterns (${w.noBrotliPatterns}) will be excluded from brotli compression`);let O=X.filter((N)=>N.file.includes(" "));if(O.length>0)throw Error(`Files with spaces in their names (${O.map((N)=>N.file).join(", ")}). Please rename the files.`);let H=0,M=X.length,U=0;try{F.message(`Uploading ${M} files using TUS protocol`);let N=async(C)=>{let y=V5.join(Y,C.file),A=SX0(C.file),k,f=!1;if(w.disableBrotli)k=await dJ.buffer(e7.createReadStream(y)),f=!1;else{let E=await PX0(y,A,w);k=E.buffer,f=E.useBrotli}let S=k;if(Q)S=a7(k,Q.sessionKey,Q.ivSessionKey);let v=A;if(f)v=`${A}.br`,U++;let b=xX0(v),n=eu.createHash("sha256").update(C.hash).digest("hex"),h;if(Q){let E=ou.Buffer.from(Q.ivSessionKey).toString("hex");h=`orgs/${J}/apps/${Z}/delta/${E}/${n}_${b}`}else h=`orgs/${J}/apps/${Z}/delta/${n}_${b}`;if(!Q&&await CX0(q,h))return H++,Promise.resolve({file_name:b,s3_path:h,file_hash:C.hash});return new Promise((E,P)=>{F.message(`Prepare upload partial file: ${A}`);let x=X9(v);new Jh.Upload(S,{endpoint:`${q.hostFilesApi}/files/upload/attachments/`,chunkSize:w.tusChunkSize,retryDelays:[0,1000,3000,5000,1e4],removeFingerprintOnSuccess:!0,metadata:{filename:h,filetype:x},headers:{Authorization:D},onError:(g)=>{let m=g.toString(),a;try{let c=m.match(/response text: (\{.*?\})/);if(c&&c[1])a=JSON.parse(c[1]).moreInfo?.requestId}catch{}let d=a?` [requestId: ${a}]`:"";K.error(`Failed to upload ${A}: ${m}${d}`),P(g)},onProgress(){let g=(H/M*100).toFixed(2);F.message(`Uploading partial update: ${g}%`)},onSuccess(){H++,E({file_name:b,s3_path:h,file_hash:C.hash})}}).start()})},R=500,z=[];for(let C=0;C<X.length;C+=R){let y=X.slice(C,C+R),A=Math.floor(C/R)+1,k=Math.ceil(X.length/R);if(k>1)F.message(`Processing batch ${A}/${k} (${y.length} files)`);let f=await Promise.all(y.map((S)=>N(S)));z.push(...f)}let L=((performance.now()-B)/1000).toFixed(2);if(F.stop(`Partial update uploaded successfully \uD83D\uDCAA in (${L} seconds)`),U>0)K.info(`${U} of ${M} files were compressed with brotli and use .br extension`);return await H0(D,{channel:"app",event:`App Partial TUS done${U>0?" with .br extension":""}`,icon:"⏫",user_id:J,tags:{"app-id":Z},notify:!1}),await H0(D,{channel:"performance",event:"Partial upload performance",icon:"\uD83D\uDE84",user_id:J,tags:{"app-id":Z,time:L},notify:!1}),z}catch(N){let z=((performance.now()-B)/1000).toFixed(2);if(F.stop(`Failed to upload Partial bundle (after ${z} seconds)`),$)throw K.error(`Error uploading partial update: ${N}`),K.error("Delta/partial upload was explicitly requested but failed. Upload aborted."),N;else return K.info(`Error uploading partial update: ${N}, This is not a critical error, the bundle has been uploaded without the partial files`),null}}function $D(D){throw K.error(D),Error(D)}function fX0(D){let X=new MD;X.headers=["Package","Local","Remote","Status","Details"],X.theme=MD.roundTheme,X.rows=[];for(let Y of D){let{name:Z,localVersion:J,remoteVersion:Q}=Y,w=$5(Y),F=w.compatible?"✅":"❌";X.rows.push([Z,J||"-",Q||"-",F,w.message])}K.info(X.toString())}async function yX0(D,X){let Y=D9("",X.packageJson),Z=X.bundle||D?.plugins?.CapacitorUpdater?.version||Y||`0.0.1-beta.${Fh.randomUUID().split("-")[0]}`;if(!d7.test(Z))$D(`Your bundle name ${Z}, is not valid it should follow semver convention : https://semver.org/`);return Z}function kX0(D){let X=D.apikey||Q0();if(!X)$D("Missing API key, you need to provide an API key to upload your bundle");return X}function uX0(D,X,Y){let Z=b0(D,Y),J=X.path||Y?.webDir;if(!Z)$D("Missing argument, you need to provide a appid or be in a capacitor project");if(!J)$D("Missing argument, you need to provide a path (--path), or be in a capacitor project");if(!U5.existsSync(J))$D(`Path ${J} does not exist, build your app first, or provide a valid path`);return{appid:Z,path:J}}function hX0(D,X){let Y=D.codeCheck;if(typeof Y>"u"||Y){if(!FX(X,"notifyAppReady"))$D(`notifyAppReady() is missing in the build folder of your app. see: https://capgo.app/docs/plugin/api/#notifyappready
394
- If you are sure your app has this code, you can use the --no-code-check option`);if(!uJ(X))$D(`index.html is missing in the root folder of ${X}`)}}async function _X0(D,X,Y,Z,J,Q){let{ignoreMetadataCheck:w,autoMinUpdateVersion:F,minUpdateVersion:B}=Y,{data:q,error:$}=await D.from("channels").select("disable_auto_update, version ( min_update_version, native_packages )").eq("name",Z).eq("app_id",J).single(),G=!!q&&q.disable_auto_update==="version_number",W,O;if(!$&&q&&q.version&&q.version.native_packages&&!w){let U=xD();U.start(`Checking bundle compatibility with channel ${Z}`);let{finalCompatibility:N,localDependencies:R}=await NJ(D,J,Z,Y.packageJson,Y.nodeModules);if(O=N,W=R,O.filter((V)=>!Y9(V)).length>0){if(U.stop(`Bundle NOT compatible with ${Z} channel`),K.warn(""),fX0(O),K.warn(""),K.warn("An app store update may be required for these changes to take effect."),F)B=Q,K.info(`Auto set min-update-version to ${B}`)}else if(F)try{let{min_update_version:V}=q.version;if(!V||!d7.test(V))$D("Invalid remote min update version, skipping auto setting compatibility");B=V,U.stop(`Auto set min-update-version to ${B}`)}catch{$D(`Cannot auto set compatibility, invalid data ${q}`)}else U.stop(`Bundle compatible with ${Z} channel`)}else if(!w){if(K.warn(`Channel ${Z} is new or it's your first upload with compatibility check, it will be ignored this time`),W=await h$(Y.packageJson,Y.nodeModules),F)B=Q,K.info(`Auto set min-update-version to ${B}`)}if(G&&!B&&!w)$D("You need to provide a min-update-version to upload a bundle to this channel");if(B){if(!d7.test(B))$D(`Your minimal version update ${B}, is not valid it should follow semver convention : https://semver.org/`)}let H=W?new Map(W.filter((U)=>!!U.native&&U.native!==void 0).map((U)=>[U.name,U])):new Map;return{nativePackages:H.size>0||!Y.ignoreMetadataCheck?Array.from(H,([U,N])=>({name:U,version:N.version,...N.ios_checksum&&{ios_checksum:N.ios_checksum},...N.android_checksum&&{android_checksum:N.android_checksum}})):void 0,minUpdateVersion:B}}async function vX0(D,X,Y,Z=!1,J=!1){let{data:Q,error:w}=await D.rpc("exist_app_versions",{appid:X,name_version:Y}).single();if(Q||w){if(Z)return K.warn(`Version ${Y} already exists - exiting gracefully due to --silent-fail option`),$0("Bundle version already exists - exiting gracefully \uD83C\uDF89"),!0;if(J){K.error(`❌ Version ${Y} already exists`);let F=ik(Y);K.info("\uD83D\uDCA1 Here are some suggestions:"),F.forEach(($,G)=>{K.info(` ${G+1}. ${$}`)});let B=await M8({message:"What would you like to do?",options:[{value:"suggest1",label:`Use ${F[0]}`},{value:"suggest2",label:`Use ${F[1]}`},{value:"suggest3",label:`Use ${F[2]}`},{value:"suggest4",label:`Use ${F[3]}`},{value:"custom",label:"Enter a custom version"},{value:"cancel",label:"Cancel upload"}]});if(c0(B)||B==="cancel")$D("Upload cancelled by user");let q;if(B==="custom"){let $=await nk(Y,"upload");if(!$)$D("Upload cancelled by user");q=$}else{let $=Number.parseInt(B.replace("suggest",""))-1;q=F[$]}return K.info(`\uD83D\uDD04 Retrying with new version: ${q}`),q}$D(`Version ${Y} already exists ${p(w)}`)}return!1}async function bX0(D,X,Y,Z,J,Q,w,F){let B,q,$="",G=null,W="none",O="",H="",M=X.keyV2,U=X.key===!1,N=xD();N.start(`Zipping bundle from ${D}`),G=await LJ(D),N.message("Calculating checksum");let R=rD(w9.cwd()),z=await o1("@capgo/capacitor-updater",R,X.packageJson),V=!1,L;try{L=z?i0(z):void 0}catch{L=void 0}if(!z)$D("Cannot find @capgo/capacitor-updater in node_modules, please install it first with your package manager");else if(L)V=!e1(L,zJ,MJ,XX);else if(z==="link:@capgo/capacitor-updater"||z==="file:.."||z==="file:../")K.warn("Using local @capgo/capacitor-updater. Assuming latest version for checksum calculation."),V=!0;let C=X.forceCrc32Checksum===!0,y=!C&&((M||X.keyDataV2||U5.existsSync(v1))&&!U||V);if($=await y6(G,y?"sha256":"crc32"),N.stop(`Checksum ${y?"SHA256":"CRC32"}${C?" (forced)":""}: ${$}`),U)K.info("Encryption ignored");else if((M||U5.existsSync(v1)||X.keyDataV2)&&!X.oldEncryption){let f=typeof M==="string"?M:v1,S=X.keyDataV2||"";if(!S&&!U5.existsSync(f))$D(`Cannot find private key ${f}`);if(await H0(Y,{channel:"app",event:"App encryption v2",icon:"\uD83D\uDD11",user_id:Z,tags:{"app-id":J},notify:!1},X.verbose),!S)S=U5.readFileSync(f).toString();let v=L&&!e1(L,"5.30.0","6.30.0","7.30.0");K.info(`Encrypting your bundle with ${v?"V3":"V2"}`);let{sessionKey:b,ivSessionKey:n}=PJ(S),h=a7(G,b,n);if($=v?r7($,S):t7($,S),B=n,q=b,W="v2",O=S,F){if(H=Pk(F),X.verbose)K.info(`[Verbose] Encryption key_id: ${H}`)}if(X.displayIvSession)K.info(`Your Iv Session key is ${B},
393
+ `)}async function r$(D,X,Y){let Z=i$(D),J=await K5("AWS4"+Y,Z),Q=await K5(J,X),w=await K5(Q,"s3");return await K5(w,"aws4_request")}function s$(D,X,Y){return`${D}/${p$(X,Y)}`}async function K5(D,X){let Y=new TextEncoder,Z=await crypto.subtle.importKey("raw",D instanceof Uint8Array?D:Y.encode(D),{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign","verify"]),J=await crypto.subtle.sign("HMAC",Z,X instanceof Uint8Array?X:Y.encode(X));return new Uint8Array(J)}async function ck(D){if(!D.accessKey)throw new G5;if(!D.secretKey)throw new JX;if(D.expirySeconds<1||D.expirySeconds>604800)throw new xJ;let X=new Date(D.date);X.setSeconds(X.getSeconds()+D.expirySeconds);let Y=s$(D.accessKey,D.region,D.date),Z=W5(D.date),J={"X-Amz-Algorithm":wX,"X-Amz-Credential":Y,"X-Amz-Date":Z,key:D.objectKey,...D.fields},Q=[{bucket:D.bucket},{key:D.objectKey},{"X-Amz-Algorithm":wX},{"X-Amz-Credential":Y},{"X-Amz-Date":Z}];if(D.conditions)Q.push(...D.conditions);for(let[O,H]of Object.entries(D.fields||{})){if(["key","X-Amz-Algorithm","X-Amz-Credential","X-Amz-Date"].includes(O))continue;Q.push({[O]:H})}let w={expiration:X.toISOString(),conditions:Q},F=new TextEncoder().encode(JSON.stringify(w)),B=btoa(String.fromCharCode(...F));J.policy=B;let q=B,$=await r$(D.date,D.region,D.secretKey),G=QX(await K5($,q)).toLowerCase();return J["X-Amz-Signature"]=G,{url:`${D.protocol}//${D.host}/${D.bucket}`,fields:J}}var z30=["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"],M30=5242880,L30=5368709120,o$=5497558138880;class yJ{host;port;protocol;accessKey;#D;sessionToken;defaultBucket;region;userAgent="s3-lite-client";pathStyle;pathPrefix;constructor({endPoint:D,useSSL:X,port:Y,pathPrefix:Z,...J}){if(/^https?:\/\//i.test(D)){if(X!==void 0||Y!==void 0||Z!==void 0)throw new V1("useSSL/port/pathPrefix cannot be specified if endPoint is a URL.");try{let w=new URL(D);if(D=w.hostname,X=w.protocol==="https:",Y=w.port?parseInt(w.port,10):X?443:80,w.pathname&&w.pathname!=="/")Z=w.pathname.endsWith("/")?w.pathname.slice(0,-1):w.pathname}catch{throw new SJ(`Invalid endPoint URL: ${D}`)}}if(typeof D!=="string"||D.length===0)throw new SJ(`Invalid endPoint: ${D}`);if(X===void 0)X=!0;if(Y!==void 0&&!hk(Y))throw new V1(`Invalid port: ${Y}`);if(J.accessKey&&!J.secretKey)throw new V1("If specifying access key, secret key must also be provided.");if(J.accessKey&&J.accessKey.startsWith("ASIA")&&!J.sessionToken)throw new V1("If specifying temporary access key, session token must also be provided.");let Q=X?443:80;if(this.port=Y??Q,this.host=D.toLowerCase()+(this.port!==Q?`:${this.port}`:""),this.protocol=X?"https:":"http:",this.accessKey=J.accessKey,this.#D=J.secretKey??"",this.sessionToken=J.sessionToken,this.pathStyle=J.pathStyle??!0,this.pathPrefix=Z??"",this.defaultBucket=J.bucket,this.region=J.region,this.pathPrefix){if(!this.pathStyle)throw new V1("pathPrefix is incompatible with pathStyle=false");if(!this.pathPrefix.startsWith("/"))throw new V1("pathPrefix should start with /");if(this.pathPrefix.endsWith("/"))throw new V1("pathPrefix should not end with /")}}getBucketName(D){let X=D?.bucketName??this.defaultBucket;if(X===void 0||!_k(X))throw new c$(X??"");return X}buildRequestOptions(D){let X=this.getBucketName(D),Y=this.pathStyle?this.host:`${X}.${this.host}`,Z=D.headers??new Headers;Z.set("host",Y);let J=typeof D.query==="object"?new URLSearchParams(D.query).toString().replace("+","%20"):D.query,Q=this.pathStyle?`${this.pathPrefix}/${X}/${D.objectName}`:`/${D.objectName}`,w=J?`?${J}`:"",F=Q+w,B=Q.split("/").map((q)=>encodeURIComponent(q)).join("/")+w;return{headers:Z,host:Y,path:F,encodedPath:B}}async makeRequest({method:D,payload:X,...Y}){let Z=new Date,{headers:J,host:Q,path:w,encodedPath:F}=this.buildRequestOptions(Y),B=Y.statusCode??200;if(D==="POST"||D==="PUT"||D==="DELETE"){if(X===void 0)X=new Uint8Array;else if(typeof X==="string")X=new TextEncoder().encode(X);J.set("Content-Length",String(X.length))}else if(X)throw Error(`Unexpected payload on ${D} request.`);let q=await fJ(X??new Uint8Array);if(J.set("x-amz-date",W5(Z)),J.set("x-amz-content-sha256",q),this.accessKey){if(this.sessionToken)J.set("x-amz-security-token",this.sessionToken);J.set("authorization",await vk({headers:J,method:D,path:w,accessKey:this.accessKey,secretKey:this.#D,region:this.region,date:Z}))}let $=`${this.protocol}//${Q}${F}`,G=await fetch($,{method:D,headers:J,body:X});if(G.status!==B){if(G.status>=400)throw await uk(G);else if(G.status===301)throw new J9(G.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"');throw new J9(G.status,"UnexpectedStatusCode",`Unexpected response code from the server (expected ${B}, got ${G.status} ${G.statusText}).`)}if(!Y.returnBody)await G.body?.getReader().read();return G}async deleteObject(D,X={}){let Y=this.getBucketName(X);if(!Q9(D))throw new U6(D);let Z=X.versionId?{versionId:X.versionId}:{},J=new Headers;if(X.governanceBypass)J.set("X-Amz-Bypass-Governance-Retention","true");await this.makeRequest({method:"DELETE",bucketName:Y,objectName:D,headers:J,query:Z,statusCode:204})}async exists(D,X){try{return await this.statObject(D,X),!0}catch(Y){if(Y instanceof J9&&Y.statusCode===404)return!1;throw Y}}getObject(D,X){return this.getPartialObject(D,{...X,offset:0,length:0})}async getPartialObject(D,{offset:X,length:Y,...Z}){let J=this.getBucketName(Z);if(!Q9(D))throw new U6(D);let Q=new Headers(Object.entries(Z.metadata??{})),w=200;if(X||Y){let B="";if(X)B=`bytes=${+X}-`;else B="bytes=0-",X=0;if(Y)B+=`${+Y+X-1}`;Q.set("Range",B),w=206}let F={...Z.responseParams,...Z.versionId?{versionId:Z.versionId}:{}};return await this.makeRequest({method:"GET",bucketName:J,objectName:D,headers:Q,query:F,statusCode:w,returnBody:!0})}getPresignedUrl(D,X,Y={}){if(!this.accessKey)throw new G5;if(!Q9(X))throw new U6(X);let{headers:Z,path:J}=this.buildRequestOptions({objectName:X,bucketName:Y.bucketName,query:Y.parameters}),Q=Y.requestDate??new Date,w=Y.expirySeconds??604800;return bk({protocol:this.protocol,headers:Z,method:D,path:J,accessKey:this.accessKey,secretKey:this.#D,sessionToken:this.sessionToken,region:this.region,date:Q,expirySeconds:w})}presignedGetObject(D,X={}){let{versionId:Y,responseParams:Z,...J}=X,Q={...Z,...Y?{versionId:Y}:{}};return this.getPresignedUrl("GET",D,{parameters:Q,...J})}async*listObjects(D={}){for await(let X of this.listObjectsGrouped({...D,delimiter:""}))if(X.type==="Object")yield X;else throw Error(`Unexpected result from listObjectsGrouped(): ${X}`)}async*listObjectsGrouped(D){let X=this.getBucketName(D),Y="",Z=D.pageSize??1000;if(Z<1||Z>1000)throw new V1("pageSize must be between 1 and 1,000.");let J=0;while(!0){let Q=D.maxResults?Math.min(Z,D.maxResults-J):Z;if(Q===0)return;let F=await(await this.makeRequest({method:"GET",bucketName:X,objectName:"",query:{"list-type":"2",prefix:D.prefix??"",delimiter:D.delimiter,"max-keys":String(Q),...Y?{"continuation-token":Y}:{}},returnBody:!0})).text(),B=Z9(F).root;if(!B||B.name!=="ListBucketResult")throw Error(`Unexpected response: ${F}`);let q=B.children.filter((W)=>W.name==="CommonPrefixes").flatMap((W)=>W.children),$=[];for(let W of q)$.push({type:"CommonPrefix",prefix:W.content??""}),J++;for(let W of B.children.filter((O)=>O.name==="Contents"))$.push({type:"Object",key:W.children.find((O)=>O.name==="Key")?.content??"",etag:O5(W.children.find((O)=>O.name==="ETag")?.content??""),size:parseInt(W.children.find((O)=>O.name==="Size")?.content??"",10),lastModified:new Date(W.children.find((O)=>O.name==="LastModified")?.content??"invalid")}),J++;$.sort((W,O)=>{let H=W.type==="Object"?W.key:W.prefix,M=O.type==="Object"?O.key:O.prefix;return H>M?1:H<M?-1:0});for(let W of $)yield W;if(B.children.find((W)=>W.name==="IsTruncated")?.content==="true"){let W=B.children.find((O)=>O.name==="NextContinuationToken")?.content;if(!W)throw Error("Unexpectedly missing continuation token, but server said there are more results.");Y=W}else return}}async putObject(D,X,Y){let Z=this.getBucketName(Y);if(!Q9(D))throw new U6(D);let J,Q;if(typeof X==="string"){let q=new TextEncoder().encode(X);if(typeof ReadableStream.from<"u")Q=ReadableStream.from([q]);else Q=new ReadableStream({start($){$.enqueue(q),$.close()}});J=q.length}else if(X instanceof Uint8Array){if(typeof ReadableStream.from<"u")Q=ReadableStream.from([X]);else Q=new ReadableStream({start(q){q.enqueue(X),q.close()}});J=X.byteLength}else if(X instanceof ReadableStream)Q=X;else throw new V1("Invalid stream/data type provided.");if(Y?.size!==void 0){if(J!==void 0&&Y?.size!==J)throw new V1(`size was specified (${Y.size}) but doesn't match auto-detected size (${J}).`);if(typeof Y.size!=="number"||Y.size<0||isNaN(Y.size))throw new V1(`invalid size specified: ${Y.size}`);else J=Y.size}let w=Y?.partSize??this.calculatePartSize(J);if(w<M30)throw new V1("Part size should be greater than 5MB");else if(w>L30)throw new V1("Part size should be less than 6MB");let F=new d$(w),B=new a$({client:this,bucketName:Z,objectName:D,partSize:w,metadata:Y?.metadata??{}});return await Q.pipeThrough(F).pipeTo(B),B.getResult()}calculatePartSize(D){if(D===void 0)D=o$;if(D>o$)throw TypeError(`size should not be more than ${o$}`);let X=67108864;while(!0){if(X*1e4>D)return X;X+=16777216}}async statObject(D,X){let Y=this.getBucketName(X);if(!Q9(D))throw new U6(D);let Z={};if(X?.versionId)Z.versionId=X.versionId;let J=await this.makeRequest({method:"HEAD",bucketName:Y,objectName:D,query:Z,headers:new Headers(X?.headers)}),Q={};for(let w of z30)if(J.headers.has(w))Q[w]=J.headers.get(w);return J.headers.forEach((w,F)=>{if(F.startsWith("x-amz-meta-"))Q[F]=J.headers.get(F)}),{type:"Object",key:D,size:parseInt(J.headers.get("content-length")??"",10),metadata:Q,lastModified:new Date(J.headers.get("Last-Modified")??"error: missing last modified"),versionId:J.headers.get("x-amz-version-id")||null,etag:O5(J.headers.get("ETag")??"")}}async copyObject(D,X,Y){let Z=this.getBucketName(Y),J=D.sourceBucketName??Z;if(!Q9(X))throw new U6(X);let Q=`${J}/${D.sourceKey}`;if(D.sourceVersionId)Q+=`?versionId=${D.sourceVersionId}`;let w=new Headers(Y?.metadata);if(Y?.metadata!==void 0)w.set("x-amz-metadata-directive","REPLACE");w.set("x-amz-copy-source",Q);let F=await this.makeRequest({method:"PUT",bucketName:Z,objectName:X,headers:w,returnBody:!0}),B=await F.text(),q=Z9(B).root;if(!q||q.name!=="CopyObjectResult")throw Error(`Unexpected response: ${B}`);let $=q.children.find((W)=>W.name==="ETag")?.content??"",G=q.children.find((W)=>W.name==="LastModified")?.content;if(G===void 0)throw Error("Unable to find <LastModified>...</LastModified> from the server.");return{copySourceVersionId:F.headers.get("x-amz-copy-source-version-id")||null,etag:O5($),lastModified:new Date(G),versionId:F.headers.get("x-amz-version-id")||null}}async bucketExists(D){try{return await this.listObjects({bucketName:D}).next(),!0}catch(X){if(X instanceof J9&&X.statusCode===404)return!1;throw X}}async makeBucket(D){await this.makeRequest({method:"PUT",bucketName:this.getBucketName({bucketName:D}),objectName:"",statusCode:200})}async removeBucket(D){await this.makeRequest({method:"DELETE",bucketName:this.getBucketName({bucketName:D}),objectName:"",statusCode:204})}presignedPostObject(D,X={}){if(!Q9(D))throw new U6(D);let Y=this.getBucketName(X);if(!Y)throw Error("Bucket name is required for presignedPost, but none was provided either to this method nor to the client constructor");let Z=X.requestDate||new Date,J=X.expirySeconds??3600;return ck({protocol:this.protocol,host:this.host,bucket:Y,objectKey:D,accessKey:this.accessKey||"",secretKey:this.#D||"",region:this.region,date:Z,expirySeconds:J,conditions:X.conditions,fields:X.fields})}}function lk(D){try{let X=i0(D);return Q8(B4(X,"patch"))}catch{let X=D.match(/^(\d+)\.(\d+)\.(\d+)/);if(X){let[,Y,Z,J]=X;return`${Y}.${Z}.${Number.parseInt(J)+1}`}return"1.0.1"}}async function nk(D,X){let Y=lk(D),Z=X?` for ${X}`:"",J=await M8({message:`How do you want to handle the version${Z}?`,options:[{value:"auto",label:`Auto: Bump patch version (${D} → ${Y})`},{value:"manual",label:"Manual: I'll provide the version number"}]});if(c0(J))return null;if(J==="auto")return K.info(`\uD83D\uDD22 Auto-bumped version from ${D} to ${Y}`),Y;let Q=await R6({message:`Current version is ${D}. Enter new version:`,validate:(w)=>{if(!w)return"Version is required";if(!w.match(/^\d+\.\d+\.\d+/))return"Please enter a valid version (x.y.z)"}});if(c0(Q))return null;return Q}function ik(D){let X=lk(D);try{let Y=i0(D);return[X,Q8(B4(Y,"minor")),`${D}-beta.1`,`${D}.1`]}catch{return[X,`${D}.1`,`${D}-beta.1`,`${D}-rc.1`]}}var z5=require("node:fs"),kJ=require("node:path");function V30(D,X){return z5.readFileSync(D,"utf8").includes(X)}function FX(D,X){let Y=z5.readdirSync(D);for(let Z of Y){let J=kJ.join(D,Z),Q=z5.statSync(J);if(Q.isDirectory()){if(FX(J,X))return!0}else if(Q.isFile()&&kJ.extname(J)===".js"){if(V30(J,X))return!0}}return!1}function uJ(D){if(z5.readdirSync(D).indexOf("index.html")>-1)return!0;return!1}var ou=require("node:buffer"),eu=require("node:crypto"),e7=require("node:fs"),Dh=require("node:os"),V5=require("node:path"),Xh=require("node:process"),dJ=require("node:stream/consumers"),Yh=require("node:zlib");var Zh=R0(su(),1),Jh=R0($Z(),1);async function CX0(D,X){try{let Y=new URL(`${D.hostFilesApi}/files/read/attachments/${encodeURIComponent(X)}`);return Y.searchParams.set("nocache",`${Date.now()}`),(await fetch(Y.toString(),{method:"GET",headers:{range:"bytes=0-0","cache-control":"no-cache"}})).ok}catch{return!1}}var jX0=8192;async function TX0(D){let X=rD(Xh.cwd()),Y=await o1("@capgo/capacitor-updater",X,D.packageJson),Z;try{Z=Y?i0(Y):void 0}catch{Z=void 0}if(!Y||!Z)return{version:null,supportsBrotliV2:!1};let J=!e1(Z,void 0,void 0,XX);return{version:`${Z.major}.${Z.minor}.${Z.patch}`,supportsBrotliV2:J}}function IX0(D,X){if(!X)return!1;let Y=X.split(",").map((Z)=>Z.trim()).filter((Z)=>!!Z);if(Y.length===0)return!1;return Zh.isMatch(D,Y)}async function PX0(D,X,Y){let J=e7.statSync(D).size,Q=await dJ.buffer(e7.createReadStream(D));if(J===0)return{buffer:Q,useBrotli:!1};if(IX0(X,Y.noBrotliPatterns))return{buffer:Q,useBrotli:!1};if(J<jX0)return{buffer:Q,useBrotli:!1};try{let w=await dJ.buffer(e7.createReadStream(D).pipe(Yh.createBrotliCompress({})));if(w.length>=J-10)return{buffer:Q,useBrotli:!1};return{buffer:w,useBrotli:!0}}catch(w){return K.warn(`Brotli compression failed for ${D}: ${w}, using original file`),{buffer:Q,useBrotli:!1}}}async function Qh(D,X,Y,Z,J,Q,w=!1){let F=xD();F.start(J!=="v2"?"Generating the update manifest":`Generating the update manifest with ${w?"V3":"V2"} encryption`);let B=await dy(D);if(J==="v2")for(let q of B)q.hash=w?r7(q.hash,Q):t7(q.hash,Q);return F.stop("Manifest generated successfully"),await z0(X,{channel:"partial-update",event:"Generate manifest",icon:"\uD83D\uDCC2",user_id:Y,tags:{"app-id":Z},notify:!1}),B}function SX0(D){if(Dh.platform()!=="win32")return D;return V5.win32.normalize(D).split(V5.win32.sep).join(V5.posix.sep)}function xX0(D){let X=D.split("/").map((Y)=>encodeURIComponent(Y)).join("/");if(D.includes(" "))K.warn(`File "${D}" contains spaces in its name.`);return X}async function wh(D,X,Y,Z,J,Q,w){let F=xD();F.start("Preparing partial update with TUS protocol");let B=performance.now(),q=await C8(),$=!!(w.partial||w.delta||w.partialOnly||w.deltaOnly),{version:G,supportsBrotliV2:W}=await TX0(w);if(!W)throw Error(`Your project is using an older version of @capgo/capacitor-updater (${G||"unknown"}). To use Delta updates, please upgrade to version ${zJ} (v5), ${MJ} (v6) or ${XX} (v7) or higher.`);else if(w.disableBrotli)K.info("Brotli compression disabled by user request");else if(w.noBrotliPatterns)K.info(`Files matching patterns (${w.noBrotliPatterns}) will be excluded from brotli compression`);let O=X.filter((N)=>N.file.includes(" "));if(O.length>0)throw Error(`Files with spaces in their names (${O.map((N)=>N.file).join(", ")}). Please rename the files.`);let H=0,M=X.length,U=0;try{F.message(`Uploading ${M} files using TUS protocol`);let N=async(C)=>{let y=V5.join(Y,C.file),A=SX0(C.file),k,f=!1;if(w.disableBrotli)k=await dJ.buffer(e7.createReadStream(y)),f=!1;else{let E=await PX0(y,A,w);k=E.buffer,f=E.useBrotli}let S=k;if(Q)S=a7(k,Q.sessionKey,Q.ivSessionKey);let v=A;if(f)v=`${A}.br`,U++;let b=xX0(v),n=eu.createHash("sha256").update(C.hash).digest("hex"),h;if(Q){let E=ou.Buffer.from(Q.ivSessionKey).toString("hex");h=`orgs/${J}/apps/${Z}/delta/${E}/${n}_${b}`}else h=`orgs/${J}/apps/${Z}/delta/${n}_${b}`;if(!Q&&await CX0(q,h))return H++,Promise.resolve({file_name:b,s3_path:h,file_hash:C.hash});return new Promise((E,P)=>{F.message(`Prepare upload partial file: ${A}`);let x=X9(v);new Jh.Upload(S,{endpoint:`${q.hostFilesApi}/files/upload/attachments/`,chunkSize:w.tusChunkSize,retryDelays:[0,1000,3000,5000,1e4],removeFingerprintOnSuccess:!0,metadata:{filename:h,filetype:x},headers:{Authorization:D},onError:(g)=>{let m=g.toString(),a;try{let c=m.match(/response text: (\{.*?\})/);if(c&&c[1])a=JSON.parse(c[1]).moreInfo?.requestId}catch{}let d=a?` [requestId: ${a}]`:"";K.error(`Failed to upload ${A}: ${m}${d}`),P(g)},onProgress(){let g=(H/M*100).toFixed(2);F.message(`Uploading partial update: ${g}%`)},onSuccess(){H++,E({file_name:b,s3_path:h,file_hash:C.hash})}}).start()})},R=500,z=[];for(let C=0;C<X.length;C+=R){let y=X.slice(C,C+R),A=Math.floor(C/R)+1,k=Math.ceil(X.length/R);if(k>1)F.message(`Processing batch ${A}/${k} (${y.length} files)`);let f=await Promise.all(y.map((S)=>N(S)));z.push(...f)}let L=((performance.now()-B)/1000).toFixed(2);if(F.stop(`Partial update uploaded successfully \uD83D\uDCAA in (${L} seconds)`),U>0)K.info(`${U} of ${M} files were compressed with brotli and use .br extension`);return await z0(D,{channel:"app",event:`App Partial TUS done${U>0?" with .br extension":""}`,icon:"⏫",user_id:J,tags:{"app-id":Z},notify:!1}),await z0(D,{channel:"performance",event:"Partial upload performance",icon:"\uD83D\uDE84",user_id:J,tags:{"app-id":Z,time:L},notify:!1}),z}catch(N){let z=((performance.now()-B)/1000).toFixed(2);if(F.stop(`Failed to upload Partial bundle (after ${z} seconds)`),$)throw K.error(`Error uploading partial update: ${N}`),K.error("Delta/partial upload was explicitly requested but failed. Upload aborted."),N;else return K.info(`Error uploading partial update: ${N}, This is not a critical error, the bundle has been uploaded without the partial files`),null}}function $D(D){throw K.error(D),Error(D)}function fX0(D){let X=new MD;X.headers=["Package","Local","Remote","Status","Details"],X.theme=MD.roundTheme,X.rows=[];for(let Y of D){let{name:Z,localVersion:J,remoteVersion:Q}=Y,w=$5(Y),F=w.compatible?"✅":"❌";X.rows.push([Z,J||"-",Q||"-",F,w.message])}K.info(X.toString())}async function yX0(D,X){let Y=D9("",X.packageJson),Z=X.bundle||D?.plugins?.CapacitorUpdater?.version||Y||`0.0.1-beta.${Fh.randomUUID().split("-")[0]}`;if(!d7.test(Z))$D(`Your bundle name ${Z}, is not valid it should follow semver convention : https://semver.org/`);return Z}function kX0(D){let X=D.apikey||Q0();if(!X)$D("Missing API key, you need to provide an API key to upload your bundle");return X}function uX0(D,X,Y){let Z=b0(D,Y),J=X.path||Y?.webDir;if(!Z)$D("Missing argument, you need to provide a appid or be in a capacitor project");if(!J)$D("Missing argument, you need to provide a path (--path), or be in a capacitor project");if(!U5.existsSync(J))$D(`Path ${J} does not exist, build your app first, or provide a valid path`);return{appid:Z,path:J}}function hX0(D,X){let Y=D.codeCheck;if(typeof Y>"u"||Y){if(!FX(X,"notifyAppReady"))$D(`notifyAppReady() is missing in the build folder of your app. see: https://capgo.app/docs/plugin/api/#notifyappready
394
+ If you are sure your app has this code, you can use the --no-code-check option`);if(!uJ(X))$D(`index.html is missing in the root folder of ${X}`)}}async function _X0(D,X,Y,Z,J,Q){let{ignoreMetadataCheck:w,autoMinUpdateVersion:F,minUpdateVersion:B}=Y,{data:q,error:$}=await D.from("channels").select("disable_auto_update, version ( min_update_version, native_packages )").eq("name",Z).eq("app_id",J).single(),G=!!q&&q.disable_auto_update==="version_number",W,O;if(!$&&q&&q.version&&q.version.native_packages&&!w){let U=xD();U.start(`Checking bundle compatibility with channel ${Z}`);let{finalCompatibility:N,localDependencies:R}=await NJ(D,J,Z,Y.packageJson,Y.nodeModules);if(O=N,W=R,O.filter((V)=>!Y9(V)).length>0){if(U.stop(`Bundle NOT compatible with ${Z} channel`),K.warn(""),fX0(O),K.warn(""),K.warn("An app store update may be required for these changes to take effect."),F)B=Q,K.info(`Auto set min-update-version to ${B}`)}else if(F)try{let{min_update_version:V}=q.version;if(!V||!d7.test(V))$D("Invalid remote min update version, skipping auto setting compatibility");B=V,U.stop(`Auto set min-update-version to ${B}`)}catch{$D(`Cannot auto set compatibility, invalid data ${q}`)}else U.stop(`Bundle compatible with ${Z} channel`)}else if(!w){if(K.warn(`Channel ${Z} is new or it's your first upload with compatibility check, it will be ignored this time`),W=await h$(Y.packageJson,Y.nodeModules),F)B=Q,K.info(`Auto set min-update-version to ${B}`)}if(G&&!B&&!w)$D("You need to provide a min-update-version to upload a bundle to this channel");if(B){if(!d7.test(B))$D(`Your minimal version update ${B}, is not valid it should follow semver convention : https://semver.org/`)}let H=W?new Map(W.filter((U)=>!!U.native&&U.native!==void 0).map((U)=>[U.name,U])):new Map;return{nativePackages:H.size>0||!Y.ignoreMetadataCheck?Array.from(H,([U,N])=>({name:U,version:N.version,...N.ios_checksum&&{ios_checksum:N.ios_checksum},...N.android_checksum&&{android_checksum:N.android_checksum}})):void 0,minUpdateVersion:B}}async function vX0(D,X,Y,Z=!1,J=!1){let{data:Q,error:w}=await D.rpc("exist_app_versions",{appid:X,name_version:Y}).single();if(Q||w){if(Z)return K.warn(`Version ${Y} already exists - exiting gracefully due to --silent-fail option`),$0("Bundle version already exists - exiting gracefully \uD83C\uDF89"),!0;if(J){K.error(`❌ Version ${Y} already exists`);let F=ik(Y);K.info("\uD83D\uDCA1 Here are some suggestions:"),F.forEach(($,G)=>{K.info(` ${G+1}. ${$}`)});let B=await M8({message:"What would you like to do?",options:[{value:"suggest1",label:`Use ${F[0]}`},{value:"suggest2",label:`Use ${F[1]}`},{value:"suggest3",label:`Use ${F[2]}`},{value:"suggest4",label:`Use ${F[3]}`},{value:"custom",label:"Enter a custom version"},{value:"cancel",label:"Cancel upload"}]});if(c0(B)||B==="cancel")$D("Upload cancelled by user");let q;if(B==="custom"){let $=await nk(Y,"upload");if(!$)$D("Upload cancelled by user");q=$}else{let $=Number.parseInt(B.replace("suggest",""))-1;q=F[$]}return K.info(`\uD83D\uDD04 Retrying with new version: ${q}`),q}$D(`Version ${Y} already exists ${p(w)}`)}return!1}async function bX0(D,X,Y,Z,J,Q,w,F){let B,q,$="",G=null,W="none",O="",H="",M=X.keyV2,U=X.key===!1,N=xD();N.start(`Zipping bundle from ${D}`),G=await LJ(D),N.message("Calculating checksum");let R=rD(w9.cwd()),z=await o1("@capgo/capacitor-updater",R,X.packageJson),V=!1,L;try{L=z?i0(z):void 0}catch{L=void 0}if(!z)$D("Cannot find @capgo/capacitor-updater in node_modules, please install it first with your package manager");else if(L)V=!e1(L,zJ,MJ,XX);else if(z==="link:@capgo/capacitor-updater"||z==="file:.."||z==="file:../")K.warn("Using local @capgo/capacitor-updater. Assuming latest version for checksum calculation."),V=!0;let C=X.forceCrc32Checksum===!0,y=!C&&((M||X.keyDataV2||U5.existsSync(v1))&&!U||V);if($=await y6(G,y?"sha256":"crc32"),N.stop(`Checksum ${y?"SHA256":"CRC32"}${C?" (forced)":""}: ${$}`),U)K.info("Encryption ignored");else if((M||U5.existsSync(v1)||X.keyDataV2)&&!X.oldEncryption){let f=typeof M==="string"?M:v1,S=X.keyDataV2||"";if(!S&&!U5.existsSync(f))$D(`Cannot find private key ${f}`);if(await z0(Y,{channel:"app",event:"App encryption v2",icon:"\uD83D\uDD11",user_id:Z,tags:{"app-id":J},notify:!1},X.verbose),!S)S=U5.readFileSync(f).toString();let v=L&&!e1(L,"5.30.0","6.30.0","7.30.0");K.info(`Encrypting your bundle with ${v?"V3":"V2"}`);let{sessionKey:b,ivSessionKey:n}=PJ(S),h=a7(G,b,n);if($=v?r7($,S):t7($,S),B=n,q=b,W="v2",O=S,F){if(H=Pk(F),X.verbose)K.info(`[Verbose] Encryption key_id: ${H}`)}if(X.displayIvSession)K.info(`Your Iv Session key is ${B},
395
395
  keep it safe, you will need it to decrypt your bundle.
396
396
  It will be also visible in your dashboard
397
397
  `);G=h}let A=Math.floor((G?.byteLength??0)/1024/1024),k=Math.floor(Q/1024/1024);if(G?.byteLength>Q)$D(`The bundle size is ${A} Mb, this is greater than the maximum upload length ${k} Mb, please reduce the size of your bundle`);else if(G?.byteLength>w){if(K.warn(`WARNING !!
398
398
  The bundle size is ${A} Mb, this may take a while to download for users
399
399
  `),K.info(`Learn how to optimize your assets https://capgo.app/blog/optimise-your-images-for-updates/
400
- `),X.verbose)K.info("[Verbose] Bundle size details:"),K.info(` - Actual size: ${A} MB (${G?.byteLength} bytes)`),K.info(` - Alert threshold: ${Math.floor(w/1024/1024)} MB`),K.info(` - Maximum allowed: ${k} MB`),K.info("[Verbose] Sending 'App Too Large' event to analytics...");if(await H0(Y,{channel:"app-error",event:"App Too Large",icon:"\uD83D\uDE9B",user_id:Z,tags:{"app-id":J},notify:!1},X.verbose),X.verbose)K.info("[Verbose] Event sent successfully")}else if(X.verbose)K.info(`[Verbose] Bundle size OK: ${A} MB (under ${Math.floor(w/1024/1024)} MB alert threshold)`);if(X.verbose)K.info("[Verbose] Bundle preparation complete, returning bundle data");return{zipped:G,ivSessionKey:B,sessionKey:q,checksum:$,encryptionMethod:W,finalKeyData:O,keyId:H}}async function gX0(D,X,Y,Z,J,Q,w,F){let B=xD();B.start("Uploading Bundle");let q=performance.now(),$=!1;if(w.verbose)K.info("[Verbose] uploadBundleToCapgoCloud called:"),K.info(` - Bundle size: ${Math.floor(Q.byteLength/1024)} KB`),K.info(` - App ID: ${Y}`),K.info(` - Bundle version: ${Z}`),K.info(` - Chunk size: ${Math.floor(F/1024/1024)} MB`);if(w.dryUpload){if(B.stop(`Dry run, bundle not uploaded
401
- Bundle uploaded \uD83D\uDCAA in 0 seconds`),w.verbose)K.info("[Verbose] Dry upload mode - skipping actual upload");return}try{let O=await C8();if(w.verbose)K.info("[Verbose] Local config retrieved for upload");if(w.multipart!==void 0&&w.multipart||w.tus!==void 0&&w.tus){if(w.multipart)K.info("Uploading bundle with multipart is deprecated, we upload with TUS instead");else K.info("Uploading bundle with TUS protocol");if(w.verbose)K.info("[Verbose] Starting TUS resumable upload..."),K.info(` - Host: ${O.hostWeb}`),K.info(` - Chunk size: ${Math.floor(F/1024/1024)} MB`);if(await cy(D,Q,J,Y,Z,B,O,F),$=!0,w.verbose)K.info("[Verbose] TUS upload completed, updating database with R2 path...");let H=`orgs/${J}/apps/${Y}/${Z}.zip`,{error:M}=await X.from("app_versions").update({r2_path:H}).eq("name",Z).eq("app_id",Y);if(M){if(K.error(`Cannot finish TUS upload ${p(M)}`),w.verbose)K.info(`[Verbose] Database update failed: ${p(M)}`);return Promise.reject(Error("Cannot finish TUS upload"))}if(w.verbose)K.info(`[Verbose] Database updated with R2 path: ${H}`)}else{if(w.verbose)K.info("[Verbose] Using standard upload (non-TUS), getting presigned URL...");let H=await gy(X,Y,Z);if(!H){if(K.error("Cannot get upload url"),w.verbose)K.info("[Verbose] Failed to retrieve presigned upload URL from database");return Promise.reject(Error("Cannot get upload url"))}if(w.verbose)K.info("[Verbose] Presigned URL obtained, uploading via HTTP PUT..."),K.info(` - Timeout: ${w.timeout||y$}ms`),K.info(" - Retry attempts: 5"),K.info(" - Content-Type: application/zip");let M=new AbortController,U=setTimeout(()=>M.abort(),w.timeout||y$);try{let N=await fetch(H,{method:"PUT",body:Q,headers:{"Content-Type":"application/zip"},signal:M.signal});if(!N.ok)throw Error(`HTTP error! status: ${N.status}`)}finally{clearTimeout(U)}if(w.verbose)K.info("[Verbose] HTTP PUT upload completed successfully")}}catch(O){let M=((performance.now()-q)/1000).toFixed(2);if(B.stop(`Failed to upload bundle ( after ${M} seconds)`),w.verbose)K.info(`[Verbose] Upload failed after ${M} seconds`),K.info(`[Verbose] Error type: ${O instanceof Error?"Error":typeof O}`);if(O instanceof Error&&O.message.includes("HTTP error"))try{let U=O.message.match(/status: (\d+)/),N=U?U[1]:"unknown";K.error(`Upload failed with status ${N}: ${O.message}`)}catch{K.error(`Upload failed: ${O.message}`)}else{if(w.verbose)K.info(`[Verbose] Non-HTTP error: ${p(O)}`);if(!w.tus)K.error(`Cannot upload bundle ( try again with --tus option) ${p(O)}`);else K.error(`Cannot upload bundle please contact support if the issue persists ${p(O)}`)}if(w.verbose)K.info("[Verbose] Cleaning up failed version from database...");if(await ly(X,Y,Z),w.verbose)K.info("[Verbose] Failed version cleaned up");throw O instanceof Error?O:Error(String(O))}let W=((performance.now()-q)/1000).toFixed(2);if(B.stop(`Bundle uploaded \uD83D\uDCAA in (${W} seconds)`),w.verbose)K.info("[Verbose] Upload successful:"),K.info(` - Upload time: ${W} seconds`),K.info(` - Upload method: ${$?"TUS (resumable)":"Standard HTTP PUT"}`),K.info(` - Bundle size: ${Math.floor(Q.byteLength/1024)} KB`),K.info("[Verbose] Sending performance event...");if(await H0(D,{channel:"performance",event:$?"TUS upload zip performance":"Upload zip performance",icon:"\uD83D\uDE84",user_id:J,tags:{"app-id":Y,time:W},notify:!1},w.verbose),w.verbose)K.info("[Verbose] Performance event sent successfully")}async function mX0(D,X,Y){let{data:Z,error:J}=await D.from("channels").select("version ( id, name, deleted )").eq("app_id",X).eq("name",Y);if(J){K.error(`Cannot delete linked bundle on upload ${p(J)}`);return}if(Z.length===0){K.warn("No linked bundle found in the channel you are trying to upload to");return}let Q=Z[0].version;if(Q.deleted){K.warn("The linked bundle is already deleted");return}let{error:w}=await D.from("app_versions").update({deleted:!0}).eq("id",Q.id);if(w){K.error(`Cannot delete linked bundle on upload ${p(w)}`);return}K.info("Linked bundle deleted")}async function dX0(D,X,Y,Z,J,Q,w,F,B,q){let{data:$}=await D.rpc("get_app_versions",{apikey:X,name_version:Z,appid:F}).single();if(!$)$D("Cannot get version id, cannot set channel");let{data:G}=await D.rpc("is_allowed_capgkey",{apikey:X,keymode:["write","all"]}).single();if(G){let{error:W,data:O}=await VJ(D,{name:J,app_id:F,created_by:Q,version:$,owner_org:w,...q?{allow_device_self_set:!0}:{}});if(W)$D(`Cannot set channel, the upload key is not allowed to do that, use the "all" for this. ${p(W)}`);let H=`${B.hostWeb}/app/${F}/channel/${O.id}`;if(O?.public)K.info("Your update is now available in your public channel \uD83C\uDF89");else if(O?.id)K.info(`Link device to this bundle to try it: ${H}`);if(Y)K.info(`Bundle url: ${H}`)}else K.warn("The upload key is not allowed to set the version in the channel")}async function cX0(D,X,Y){let{error:Z,data:J}=await X.from("apps").select("default_upload_channel").eq("app_id",D).single();if(Z)return K.warn("Cannot find default upload channel"),K.info(`You can set it here: ${Y}/app/${D}/info`),null;return J.default_upload_channel}async function WG(D,X,Y=!1){if(!Y)q0(`Uploading with CLI version ${o8.version}`);let Z,J=q5();await o0();let{s3Region:Q,s3Apikey:w,s3Apisecret:F,s3BucketName:B,s3Endpoint:q,s3Port:$,s3SSL:G}=X;if(X.verbose)K.info("[Verbose] Starting upload process with options:"),K.info(` - API key: ${X.apikey?"provided":"from saved key"}`),K.info(` - Path: ${X.path||"from capacitor config"}`),K.info(` - Channel: ${X.channel||"from default upload channel"}`),K.info(` - Bundle: ${X.bundle||"auto-detected"}`),K.info(` - External: ${X.external||"false"}`),K.info(` - Encryption: ${X.keyV2||X.keyDataV2?"v2":X.key===!1?"disabled":"auto"}`),K.info(` - Upload method: ${X.tus?"TUS":X.zip?"ZIP":"auto"}`),K.info(` - Delta updates: ${X.delta||X.partial?"enabled":"disabled"}`);let W=kX0(X);if(X.verbose)K.info("[Verbose] API key retrieved successfully");let O=await K0();if(X.verbose)K.info("[Verbose] Capacitor config loaded successfully");let H=await yy();if(X.verbose)K.info("[Verbose] Remote file config retrieved:"),K.info(` - Max upload length: ${Math.floor(H.maxUploadLength/1024/1024)} MB`),K.info(` - Alert upload size: ${Math.floor(H.alertUploadSize/1024/1024)} MB`),K.info(` - TUS upload: ${H.TUSUpload?"enabled":"disabled"}`),K.info(` - TUS upload forced: ${H.TUSUploadForced?"yes":"no"}`),K.info(` - Partial upload: ${H.partialUpload?"enabled":"disabled"}`),K.info(` - Max chunk size: ${Math.floor(H.maxChunkSize/1024/1024)} MB`);let{appid:M,path:U}=uX0(D,X,O.config);if(X.verbose)K.info(`[Verbose] App ID: ${M}, Build path: ${U}`);let N=await yX0(O.config,X);if(X.verbose)K.info(`[Verbose] Bundle version: ${N}`);let R=X.external?"external":"r2-direct",z="none";if(X.autoSetBundle){if(await xy({version:N}),X.verbose)K.info("[Verbose] Auto-set bundle version in capacitor.config.json")}if(hX0(X,U),X.verbose)K.info("[Verbose] Code check passed (notifyAppReady found and index.html present)");K.info(`Upload ${M}@${N} started from path "${U}" to Capgo cloud`);let V=await C8();if(X.verbose)K.info(`[Verbose] Local config loaded: host=${V.hostWeb}`);if(X.supaHost&&X.supaAnon){if(K.info("Using custom supabase instance from provided options"),V.supaHost=X.supaHost,V.supaKey=X.supaAnon,X.verbose)K.info(`[Verbose] Custom Supabase host: ${X.supaHost}`)}let L=await z0(W,X.supaHost,X.supaAnon);if(X.verbose)K.info("[Verbose] Supabase client created successfully");await vD(L,M,Y);let C=await N0(L,W,["write","all","upload"]);if(X.verbose)K.info(`[Verbose] User verified successfully, user_id: ${C}`);let y=X.channel||await cX0(M,L,V.hostWeb)||"production";if(X.verbose)K.info(`[Verbose] Target channel: ${y}`);let A=await _D(L,M);if(X.verbose)K.info(`[Verbose] Organization ID: ${A}`);if(await _y(L,A,o8.version),X.verbose)K.info("[Verbose] Remote CLI messages checked");if(await by(L,A,W,M,!0),X.verbose)K.info("[Verbose] Plan validation passed");if(X.verbose)K.info("[Verbose] Trial check completed");if(X.verbose)K.info(`[Verbose] Checking compatibility with channel ${y}...`);let{nativePackages:k,minUpdateVersion:f}=await _X0(L,J,X,y,M,N);if(X.verbose)K.info("[Verbose] Compatibility check completed:"),K.info(` - Native packages: ${k?k.length:0}`),K.info(` - Min update version: ${f||"none"}`);if(X.verbose)K.info(`[Verbose] Checking if version ${N} already exists...`);let S=!Y&&!!w9.stdin.isTTY&&!!w9.stdout.isTTY,v=await vX0(L,M,N,X.versionExistsOk,S);if(X.verbose)K.info(`[Verbose] Version exists check: ${v?typeof v==="string"?`retry with ${v}`:"yes (skipping)":"no (continuing)"}`);if(v===!0)return{success:!0,skipped:!0,reason:"VERSION_EXISTS",bundle:N,checksum:null,encryptionMethod:z,storageProvider:R};if(typeof v==="string")return K.info(`Retrying upload with new version: ${v}`),WG(D,{...X,bundle:v},Y);if(X.external&&!X.external.startsWith("https://"))$D(`External link should should start with "https://" current is "${X.external}"`);if(X.deleteLinkedBundleOnUpload)K.warn("Deleting linked bundle on upload is destructive, it will delete the currently linked bundle in the channel you are trying to upload to."),K.warn("Please make sure you want to do this, if you are not sure, please do not use this option.");let b={name:N,app_id:M,session_key:void 0,external_url:X.external,storage_provider:R,min_update_version:f,native_packages:k,owner_org:A,user_id:C,checksum:void 0,link:X.link||null,comment:X.comment||null,key_id:void 0,cli_version:o8.version},n=null,h="";if(!X.external){if(X.verbose)K.info(`[Verbose] Preparing bundle file from path: ${U}`);let c=O.config?.plugins?.CapacitorUpdater?.publicKey,{zipped:o,ivSessionKey:I,checksum:j,sessionKey:l,encryptionMethod:u,finalKeyData:w0,keyId:i}=await bX0(U,X,W,A,M,H.maxUploadLength,H.alertUploadSize,c);if(b.session_key=I,b.checksum=j,b.key_id=i||void 0,Z=l,n=o,z=u,h=w0,X.verbose)K.info("[Verbose] Bundle prepared:"),K.info(` - Size: ${Math.floor((o?.byteLength??0)/1024)} KB`),K.info(` - Checksum: ${j}`),K.info(` - Encryption: ${u}`),K.info(` - IV Session Key: ${I?"present":"none"}`),K.info(` - Key ID: ${i||"none"}`);if(!X.ignoreChecksumCheck){if(X.verbose)K.info("[Verbose] Checking for duplicate checksum...");if(await ay(L,M,y,j),X.verbose)K.info("[Verbose] Checksum is unique")}}else{if(X.verbose)K.info(`[Verbose] Using external URL: ${X.external}`);if(await H0(W,{channel:"app",event:"App external",icon:"\uD83D\uDCE4",user_id:A,tags:{"app-id":M},notify:!1},X.verbose),b.session_key=X.ivSessionKey,b.checksum=X.encryptedChecksum,X.verbose)K.info("[Verbose] External bundle configured:"),K.info(` - URL: ${X.external}`),K.info(` - IV Session Key: ${X.ivSessionKey?"provided":"none"}`),K.info(` - Encrypted Checksum: ${X.encryptedChecksum?"provided":"none"}`)}if(X.zip){if(X.tus=!1,X.verbose)K.info("[Verbose] Upload method: ZIP (explicitly set via --zip)")}else if(!H.TUSUpload||X.external){if(X.tus=!1,X.verbose)K.info("[Verbose] Upload method: Standard (TUS not available or external URL)")}else if(X.tus=X.tus||H.TUSUploadForced,X.verbose)K.info(`[Verbose] Upload method: ${X.tus?"TUS (resumable)":"Standard"}`);if(!H.partialUpload||X.external){if(X.delta=!1,X.verbose&&X.external)K.info("[Verbose] Delta updates disabled (not available with external URLs)")}else if(X.delta=X.delta||X.partial||X.deltaOnly||X.partialOnly||H.partialUploadForced,X.verbose)K.info(`[Verbose] Delta updates: ${X.delta?"enabled":"disabled"}`);if(X.encryptPartial&&z==="v1")$D("You cannot encrypt the partial update if you are not using the v2 encryption method");let E="5.30.0",P="6.30.0",x="7.30.0",_=!1;if(X.delta&&z==="v2"&&!X.encryptPartial){let c=rD(w9.cwd()),o=await o1("@capgo/capacitor-updater",c,X.packageJson),I;try{I=o?i0(o):void 0}catch{I=void 0}if(o&&I&&eG(I,i0("6.14.4"))){if(K.info(`Auto-enabling partial update encryption for updater version ${I} (> 6.14.4)`),X.verbose)K.info("[Verbose] Partial encryption auto-enabled for updater >= 6.14.4");X.encryptPartial=!0}}if(X.delta&&(X.encryptPartial||z==="v2")){let c=rD(w9.cwd()),o=await o1("@capgo/capacitor-updater",c,X.packageJson),I;try{I=o?i0(o):void 0}catch{I=void 0}if(o&&I){if(_=!e1(I,E,P,x),X.verbose&&_)K.info(`[Verbose] Using hex checksum format for updater version ${I}`)}}if(X.verbose&&X.delta)K.info("[Verbose] Preparing delta/partial update manifest...");let g=X.delta?await Qh(U,W,A,M,X.encryptPartial?z:"none",h,_):[];if(X.verbose&&X.delta)K.info(`[Verbose] Delta manifest prepared with ${g.length} files`);if(X.verbose)K.info("[Verbose] Creating version record in database...");let{error:m}=await k$(L,b);if(m)$D(`Cannot add bundle ${p(m)}`);if(X.verbose)K.info("[Verbose] Version record created successfully");if(X.tusChunkSize&&X.tusChunkSize>H.maxChunkSize)K.error(`Chunk size ${X.tusChunkSize} is greater than the maximum chunk size ${H.maxChunkSize}, using the maximum chunk size`),X.tusChunkSize=H.maxChunkSize;else if(!X.tusChunkSize)X.tusChunkSize=H.maxChunkSize;if(X.verbose)K.info(`[Verbose] TUS chunk size: ${Math.floor(X.tusChunkSize/1024/1024)} MB`);if(n&&(B||q||Q||w||F||$||G)){if(!B||!q||!Q||!w||!F||!$)$D("Missing argument, for S3 upload you need to provide a bucket name, endpoint, region, port, API key, and API secret");if(K.info("Uploading to S3"),X.verbose)K.info("[Verbose] S3 configuration:"),K.info(` - Endpoint: ${q}`),K.info(` - Region: ${Q}`),K.info(` - Bucket: ${B}`),K.info(` - Port: ${$}`),K.info(` - SSL: ${G?"enabled":"disabled"}`);let c=G?`https://${q}`:`http://${q}`,o=new yJ({endPoint:q,region:Q,port:$,pathStyle:!0,bucket:B,accessKey:w,secretKey:F}),I=`${M}-${N}`,j=encodeURIComponent(I);if(X.verbose)K.info(`[Verbose] Uploading to S3 as: ${I}`);if(await o.putObject(I,Uint8Array.from(n)),b.external_url=`${c}/${j}`,b.storage_provider="external",X.verbose)K.info(`[Verbose] S3 upload complete, external URL: ${b.external_url}`)}else if(n){if(!X.partialOnly&&!X.deltaOnly){if(X.verbose)K.info("[Verbose] Starting full bundle upload to Capgo Cloud...");await gX0(W,L,M,N,A,n,X,X.tusChunkSize)}else if(X.verbose)K.info("[Verbose] Skipping full bundle upload (delta-only mode)");let c=null;try{if(X.dryUpload){if(X.delta=!1,X.verbose)K.info("[Verbose] Dry upload mode: skipping delta upload")}let I=b.session_key&&X.encryptPartial&&Z?{sessionKey:Z,ivSessionKey:b.session_key}:void 0;if(X.verbose&&X.delta)K.info("[Verbose] Starting delta/partial file upload..."),K.info(` - Manifest entries: ${g.length}`),K.info(` - Encryption: ${I?"enabled":"disabled"}`);if(c=X.delta?await wh(W,g,U,M,A,I,X):null,X.verbose&&c)K.info(`[Verbose] Delta upload complete with ${c.length} files`)}catch(I){if(!!(X.partial||X.delta||X.partialOnly||X.deltaOnly))throw I;if(K.info(`Failed to upload partial files to capgo cloud. Error: ${p(I)}. This is not a critical error, the bundle has been uploaded without the partial files`),X.verbose)K.info(`[Verbose] Delta upload error details: ${p(I)}`)}if(b.storage_provider="r2",b.manifest=c,X.verbose)K.info("[Verbose] Updating version record with storage provider and manifest...");let{error:o}=await k$(L,b);if(o)$D(`Cannot update bundle ${p(o)}`);if(X.verbose)K.info("[Verbose] Version record updated successfully")}if(X.verbose)K.info("[Verbose] Checking app permissions...");let a=await CD(L,W,M,2,!1,!0);if(X.verbose)K.info("[Verbose] Permissions:"),K.info(` - Upload: ${c7(a,2)?"yes":"no"}`),K.info(` - Write: ${c7(a,3)?"yes":"no"}`),K.info(` - Admin: ${c7(a,4)?"yes":"no"}`);if(X.deleteLinkedBundleOnUpload&&c7(a,3)){if(X.verbose)K.info(`[Verbose] Deleting linked bundle in channel ${y}...`);await mX0(L,M,y)}else if(X.deleteLinkedBundleOnUpload)K.warn("Cannot delete linked bundle on upload as a upload organization member");if(c7(a,3)){if(X.verbose)K.info(`[Verbose] Setting bundle ${N} to channel ${y}...`);if(await dX0(L,W,!!X.bundleUrl,N,y,C,A,M,V,X.selfAssign),X.verbose)K.info("[Verbose] Channel updated successfully")}else K.warn("Cannot set channel as a upload organization member");if(X.verbose)K.info("[Verbose] Sending upload event...");await H0(W,{channel:"app",event:"App Uploaded",icon:"⏫",user_id:A,tags:{"app-id":M},notify:!1},X.verbose);let d={success:!0,bundle:N,checksum:b.checksum??null,encryptionMethod:z,sessionKey:Z?Z.toString("base64"):void 0,ivSessionKey:typeof b.session_key==="string"?b.session_key:void 0,storageProvider:b.storage_provider};if(X.verbose)K.info("[Verbose] Upload completed successfully:"),K.info(` - Bundle: ${d.bundle}`),K.info(` - Checksum: ${d.checksum}`),K.info(` - Encryption: ${d.encryptionMethod}`),K.info(` - Storage: ${d.storageProvider}`);if(Y&&!d.skipped)$0("Time to share your update to the world \uD83C\uDF0D");return d}var Bh=require("node:crypto"),cJ=require("node:fs"),qh=require("node:process");var lX0=20;function nX0(D){console.log(JSON.stringify(D,null,2))}function OX(D){console.error(p(D))}async function $h(D,X,Y=!1){let{json:Z}=X,{bundle:J,path:Q}=X,w=!Z&&!Y;try{if(w)await o0();let F=await K0(),B=b0(D,F?.config),q=Bh.randomUUID().split("-")[0],$=D9("",X.packageJson);if(J=J||$||`0.0.1-beta.${q}`,w)q0(`Zipping ${B}@${J}`);if(J&&!d7.test(J)){let C=`Your bundle name ${J}, is not valid it should follow semver convention : https://semver.org/`;if(!Y)if(Z)OX({error:"invalid_semver"});else K.error(C);throw Error("Invalid bundle version format")}if(Q=Q||F?.config?.webDir,!B||!J||!Q){if(!Y)if(Z)OX({error:"missing_argument"});else K.error("Missing argument, you need to provide a appId and a bundle and a path, or be in a capacitor project");throw Error("Missing argument, you need to provide a appId and a bundle and a path, or be in a capacitor project")}if(w)K.info(`Started from path "${Q}"`);if(typeof X.codeCheck>"u"?!0:X.codeCheck){if(!FX(Q,"notifyAppReady")){if(!Y)if(Z)OX({error:"notifyAppReady_not_in_source_code"});else K.error("notifyAppReady() is missing in the build folder of your app. see: https://capgo.app/docs/plugin/api/#notifyappready");throw Error("notifyAppReady() is missing in build folder")}if(!uJ(Q)){if(!Y)if(Z)OX({error:"index_html_not_found"});else K.error(`index.html is missing in the root folder of ${Q}`);throw Error("index.html is missing in root folder")}}let W=await LJ(Q);if(w)K.info(`Zipped ${W.byteLength} bytes`);let O=w?xD():null;if(O)O.start("Calculating checksum");let H=rD(qh.cwd()),M=await o1("@capgo/capacitor-updater",H,X.packageJson);if(!M){if(!Y)K.warn("Cannot find @capgo/capacitor-updater in node_modules, please install it first with your package manager");throw Error("Cannot find @capgo/capacitor-updater in node_modules, please install it first with your package manager")}let U=!1,N;try{N=M?i0(M):void 0}catch{N=void 0}if(N)U=!e1(N,void 0,void 0,"7.0.0");else if(M==="link:@capgo/capacitor-updater"){if(!Y)K.warn("Using local @capgo/capacitor-updater. Assuming v7");U=!0}let R=await y6(W,X.keyV2||cJ.existsSync(v1)||U?"sha256":"crc32");if(O)O.stop(`Checksum ${U?"SHA256":"CRC32"}: ${R}`);let z=Math.floor(W.byteLength/1024/1024);if(z>lX0&&w)K.warn(`WARNING !!
400
+ `),X.verbose)K.info("[Verbose] Bundle size details:"),K.info(` - Actual size: ${A} MB (${G?.byteLength} bytes)`),K.info(` - Alert threshold: ${Math.floor(w/1024/1024)} MB`),K.info(` - Maximum allowed: ${k} MB`),K.info("[Verbose] Sending 'App Too Large' event to analytics...");if(await z0(Y,{channel:"app-error",event:"App Too Large",icon:"\uD83D\uDE9B",user_id:Z,tags:{"app-id":J},notify:!1},X.verbose),X.verbose)K.info("[Verbose] Event sent successfully")}else if(X.verbose)K.info(`[Verbose] Bundle size OK: ${A} MB (under ${Math.floor(w/1024/1024)} MB alert threshold)`);if(X.verbose)K.info("[Verbose] Bundle preparation complete, returning bundle data");return{zipped:G,ivSessionKey:B,sessionKey:q,checksum:$,encryptionMethod:W,finalKeyData:O,keyId:H}}async function gX0(D,X,Y,Z,J,Q,w,F){let B=xD();B.start("Uploading Bundle");let q=performance.now(),$=!1;if(w.verbose)K.info("[Verbose] uploadBundleToCapgoCloud called:"),K.info(` - Bundle size: ${Math.floor(Q.byteLength/1024)} KB`),K.info(` - App ID: ${Y}`),K.info(` - Bundle version: ${Z}`),K.info(` - Chunk size: ${Math.floor(F/1024/1024)} MB`);if(w.dryUpload){if(B.stop(`Dry run, bundle not uploaded
401
+ Bundle uploaded \uD83D\uDCAA in 0 seconds`),w.verbose)K.info("[Verbose] Dry upload mode - skipping actual upload");return}try{let O=await C8();if(w.verbose)K.info("[Verbose] Local config retrieved for upload");if(w.multipart!==void 0&&w.multipart||w.tus!==void 0&&w.tus){if(w.multipart)K.info("Uploading bundle with multipart is deprecated, we upload with TUS instead");else K.info("Uploading bundle with TUS protocol");if(w.verbose)K.info("[Verbose] Starting TUS resumable upload..."),K.info(` - Host: ${O.hostWeb}`),K.info(` - Chunk size: ${Math.floor(F/1024/1024)} MB`);if(await cy(D,Q,J,Y,Z,B,O,F),$=!0,w.verbose)K.info("[Verbose] TUS upload completed, updating database with R2 path...");let H=`orgs/${J}/apps/${Y}/${Z}.zip`,{error:M}=await X.from("app_versions").update({r2_path:H}).eq("name",Z).eq("app_id",Y);if(M){if(K.error(`Cannot finish TUS upload ${p(M)}`),w.verbose)K.info(`[Verbose] Database update failed: ${p(M)}`);return Promise.reject(Error("Cannot finish TUS upload"))}if(w.verbose)K.info(`[Verbose] Database updated with R2 path: ${H}`)}else{if(w.verbose)K.info("[Verbose] Using standard upload (non-TUS), getting presigned URL...");let H=await gy(X,Y,Z);if(!H){if(K.error("Cannot get upload url"),w.verbose)K.info("[Verbose] Failed to retrieve presigned upload URL from database");return Promise.reject(Error("Cannot get upload url"))}if(w.verbose)K.info("[Verbose] Presigned URL obtained, uploading via HTTP PUT..."),K.info(` - Timeout: ${w.timeout||y$}ms`),K.info(" - Retry attempts: 5"),K.info(" - Content-Type: application/zip");let M=new AbortController,U=setTimeout(()=>M.abort(),w.timeout||y$);try{let N=await fetch(H,{method:"PUT",body:Q,headers:{"Content-Type":"application/zip"},signal:M.signal});if(!N.ok)throw Error(`HTTP error! status: ${N.status}`)}finally{clearTimeout(U)}if(w.verbose)K.info("[Verbose] HTTP PUT upload completed successfully")}}catch(O){let M=((performance.now()-q)/1000).toFixed(2);if(B.stop(`Failed to upload bundle ( after ${M} seconds)`),w.verbose)K.info(`[Verbose] Upload failed after ${M} seconds`),K.info(`[Verbose] Error type: ${O instanceof Error?"Error":typeof O}`);if(O instanceof Error&&O.message.includes("HTTP error"))try{let U=O.message.match(/status: (\d+)/),N=U?U[1]:"unknown";K.error(`Upload failed with status ${N}: ${O.message}`)}catch{K.error(`Upload failed: ${O.message}`)}else{if(w.verbose)K.info(`[Verbose] Non-HTTP error: ${p(O)}`);if(!w.tus)K.error(`Cannot upload bundle ( try again with --tus option) ${p(O)}`);else K.error(`Cannot upload bundle please contact support if the issue persists ${p(O)}`)}if(w.verbose)K.info("[Verbose] Cleaning up failed version from database...");if(await ly(X,Y,Z),w.verbose)K.info("[Verbose] Failed version cleaned up");throw O instanceof Error?O:Error(String(O))}let W=((performance.now()-q)/1000).toFixed(2);if(B.stop(`Bundle uploaded \uD83D\uDCAA in (${W} seconds)`),w.verbose)K.info("[Verbose] Upload successful:"),K.info(` - Upload time: ${W} seconds`),K.info(` - Upload method: ${$?"TUS (resumable)":"Standard HTTP PUT"}`),K.info(` - Bundle size: ${Math.floor(Q.byteLength/1024)} KB`),K.info("[Verbose] Sending performance event...");if(await z0(D,{channel:"performance",event:$?"TUS upload zip performance":"Upload zip performance",icon:"\uD83D\uDE84",user_id:J,tags:{"app-id":Y,time:W},notify:!1},w.verbose),w.verbose)K.info("[Verbose] Performance event sent successfully")}async function mX0(D,X,Y){let{data:Z,error:J}=await D.from("channels").select("version ( id, name, deleted )").eq("app_id",X).eq("name",Y);if(J){K.error(`Cannot delete linked bundle on upload ${p(J)}`);return}if(Z.length===0){K.warn("No linked bundle found in the channel you are trying to upload to");return}let Q=Z[0].version;if(Q.deleted){K.warn("The linked bundle is already deleted");return}let{error:w}=await D.from("app_versions").update({deleted:!0}).eq("id",Q.id);if(w){K.error(`Cannot delete linked bundle on upload ${p(w)}`);return}K.info("Linked bundle deleted")}async function dX0(D,X,Y,Z,J,Q,w,F,B,q){let{data:$}=await D.rpc("get_app_versions",{apikey:X,name_version:Z,appid:F}).single();if(!$)$D("Cannot get version id, cannot set channel");let{data:G}=await D.rpc("is_allowed_capgkey",{apikey:X,keymode:["write","all"]}).single();if(G){let{error:W,data:O}=await VJ(D,{name:J,app_id:F,created_by:Q,version:$,owner_org:w,...q?{allow_device_self_set:!0}:{}});if(W)$D(`Cannot set channel, the upload key is not allowed to do that, use the "all" for this. ${p(W)}`);let H=`${B.hostWeb}/app/${F}/channel/${O.id}`;if(O?.public)K.info("Your update is now available in your public channel \uD83C\uDF89");else if(O?.id)K.info(`Link device to this bundle to try it: ${H}`);if(Y)K.info(`Bundle url: ${H}`)}else K.warn("The upload key is not allowed to set the version in the channel")}async function cX0(D,X,Y){let{error:Z,data:J}=await X.from("apps").select("default_upload_channel").eq("app_id",D).single();if(Z)return K.warn("Cannot find default upload channel"),K.info(`You can set it here: ${Y}/app/${D}/info`),null;return J.default_upload_channel}async function WG(D,X,Y=!1){if(!Y)q0(`Uploading with CLI version ${o8.version}`);let Z,J=q5();await o0();let{s3Region:Q,s3Apikey:w,s3Apisecret:F,s3BucketName:B,s3Endpoint:q,s3Port:$,s3SSL:G}=X;if(X.verbose)K.info("[Verbose] Starting upload process with options:"),K.info(` - API key: ${X.apikey?"provided":"from saved key"}`),K.info(` - Path: ${X.path||"from capacitor config"}`),K.info(` - Channel: ${X.channel||"from default upload channel"}`),K.info(` - Bundle: ${X.bundle||"auto-detected"}`),K.info(` - External: ${X.external||"false"}`),K.info(` - Encryption: ${X.keyV2||X.keyDataV2?"v2":X.key===!1?"disabled":"auto"}`),K.info(` - Upload method: ${X.tus?"TUS":X.zip?"ZIP":"auto"}`),K.info(` - Delta updates: ${X.delta||X.partial?"enabled":"disabled"}`);let W=kX0(X);if(X.verbose)K.info("[Verbose] API key retrieved successfully");let O=await H0();if(X.verbose)K.info("[Verbose] Capacitor config loaded successfully");let H=await yy();if(X.verbose)K.info("[Verbose] Remote file config retrieved:"),K.info(` - Max upload length: ${Math.floor(H.maxUploadLength/1024/1024)} MB`),K.info(` - Alert upload size: ${Math.floor(H.alertUploadSize/1024/1024)} MB`),K.info(` - TUS upload: ${H.TUSUpload?"enabled":"disabled"}`),K.info(` - TUS upload forced: ${H.TUSUploadForced?"yes":"no"}`),K.info(` - Partial upload: ${H.partialUpload?"enabled":"disabled"}`),K.info(` - Max chunk size: ${Math.floor(H.maxChunkSize/1024/1024)} MB`);let{appid:M,path:U}=uX0(D,X,O.config);if(X.verbose)K.info(`[Verbose] App ID: ${M}, Build path: ${U}`);let N=await yX0(O.config,X);if(X.verbose)K.info(`[Verbose] Bundle version: ${N}`);let R=X.external?"external":"r2-direct",z="none";if(X.autoSetBundle){if(await xy({version:N}),X.verbose)K.info("[Verbose] Auto-set bundle version in capacitor.config.json")}if(hX0(X,U),X.verbose)K.info("[Verbose] Code check passed (notifyAppReady found and index.html present)");K.info(`Upload ${M}@${N} started from path "${U}" to Capgo cloud`);let V=await C8();if(X.verbose)K.info(`[Verbose] Local config loaded: host=${V.hostWeb}`);if(X.supaHost&&X.supaAnon){if(K.info("Using custom supabase instance from provided options"),V.supaHost=X.supaHost,V.supaKey=X.supaAnon,X.verbose)K.info(`[Verbose] Custom Supabase host: ${X.supaHost}`)}let L=await K0(W,X.supaHost,X.supaAnon);if(X.verbose)K.info("[Verbose] Supabase client created successfully");await _D(L,M,Y);let C=await N0(L,W,["write","all","upload"]);if(X.verbose)K.info(`[Verbose] User verified successfully, user_id: ${C}`);let y=X.channel||await cX0(M,L,V.hostWeb)||"production";if(X.verbose)K.info(`[Verbose] Target channel: ${y}`);let A=await pD(L,M);if(X.verbose)K.info(`[Verbose] Organization ID: ${A}`);if(await _y(L,A,o8.version),X.verbose)K.info("[Verbose] Remote CLI messages checked");if(await by(L,A,W,M,!0),X.verbose)K.info("[Verbose] Plan validation passed");if(X.verbose)K.info("[Verbose] Trial check completed");if(X.verbose)K.info(`[Verbose] Checking compatibility with channel ${y}...`);let{nativePackages:k,minUpdateVersion:f}=await _X0(L,J,X,y,M,N);if(X.verbose)K.info("[Verbose] Compatibility check completed:"),K.info(` - Native packages: ${k?k.length:0}`),K.info(` - Min update version: ${f||"none"}`);if(X.verbose)K.info(`[Verbose] Checking if version ${N} already exists...`);let S=!Y&&!!w9.stdin.isTTY&&!!w9.stdout.isTTY,v=await vX0(L,M,N,X.versionExistsOk,S);if(X.verbose)K.info(`[Verbose] Version exists check: ${v?typeof v==="string"?`retry with ${v}`:"yes (skipping)":"no (continuing)"}`);if(v===!0)return{success:!0,skipped:!0,reason:"VERSION_EXISTS",bundle:N,checksum:null,encryptionMethod:z,storageProvider:R};if(typeof v==="string")return K.info(`Retrying upload with new version: ${v}`),WG(D,{...X,bundle:v},Y);if(X.external&&!X.external.startsWith("https://"))$D(`External link should should start with "https://" current is "${X.external}"`);if(X.deleteLinkedBundleOnUpload)K.warn("Deleting linked bundle on upload is destructive, it will delete the currently linked bundle in the channel you are trying to upload to."),K.warn("Please make sure you want to do this, if you are not sure, please do not use this option.");let b={name:N,app_id:M,session_key:void 0,external_url:X.external,storage_provider:R,min_update_version:f,native_packages:k,owner_org:A,user_id:C,checksum:void 0,link:X.link||null,comment:X.comment||null,key_id:void 0,cli_version:o8.version},n=null,h="";if(!X.external){if(X.verbose)K.info(`[Verbose] Preparing bundle file from path: ${U}`);let c=O.config?.plugins?.CapacitorUpdater?.publicKey,{zipped:o,ivSessionKey:I,checksum:j,sessionKey:l,encryptionMethod:u,finalKeyData:w0,keyId:i}=await bX0(U,X,W,A,M,H.maxUploadLength,H.alertUploadSize,c);if(b.session_key=I,b.checksum=j,b.key_id=i||void 0,Z=l,n=o,z=u,h=w0,X.verbose)K.info("[Verbose] Bundle prepared:"),K.info(` - Size: ${Math.floor((o?.byteLength??0)/1024)} KB`),K.info(` - Checksum: ${j}`),K.info(` - Encryption: ${u}`),K.info(` - IV Session Key: ${I?"present":"none"}`),K.info(` - Key ID: ${i||"none"}`);if(!X.ignoreChecksumCheck){if(X.verbose)K.info("[Verbose] Checking for duplicate checksum...");if(await ay(L,M,y,j),X.verbose)K.info("[Verbose] Checksum is unique")}}else{if(X.verbose)K.info(`[Verbose] Using external URL: ${X.external}`);if(await z0(W,{channel:"app",event:"App external",icon:"\uD83D\uDCE4",user_id:A,tags:{"app-id":M},notify:!1},X.verbose),b.session_key=X.ivSessionKey,b.checksum=X.encryptedChecksum,X.verbose)K.info("[Verbose] External bundle configured:"),K.info(` - URL: ${X.external}`),K.info(` - IV Session Key: ${X.ivSessionKey?"provided":"none"}`),K.info(` - Encrypted Checksum: ${X.encryptedChecksum?"provided":"none"}`)}if(X.zip){if(X.tus=!1,X.verbose)K.info("[Verbose] Upload method: ZIP (explicitly set via --zip)")}else if(!H.TUSUpload||X.external){if(X.tus=!1,X.verbose)K.info("[Verbose] Upload method: Standard (TUS not available or external URL)")}else if(X.tus=X.tus||H.TUSUploadForced,X.verbose)K.info(`[Verbose] Upload method: ${X.tus?"TUS (resumable)":"Standard"}`);if(!H.partialUpload||X.external){if(X.delta=!1,X.verbose&&X.external)K.info("[Verbose] Delta updates disabled (not available with external URLs)")}else if(X.delta=X.delta||X.partial||X.deltaOnly||X.partialOnly||H.partialUploadForced,X.verbose)K.info(`[Verbose] Delta updates: ${X.delta?"enabled":"disabled"}`);if(X.encryptPartial&&z==="v1")$D("You cannot encrypt the partial update if you are not using the v2 encryption method");let E="5.30.0",P="6.30.0",x="7.30.0",_=!1;if(X.delta&&z==="v2"&&!X.encryptPartial){let c=rD(w9.cwd()),o=await o1("@capgo/capacitor-updater",c,X.packageJson),I;try{I=o?i0(o):void 0}catch{I=void 0}if(o&&I&&eG(I,i0("6.14.4"))){if(K.info(`Auto-enabling partial update encryption for updater version ${I} (> 6.14.4)`),X.verbose)K.info("[Verbose] Partial encryption auto-enabled for updater >= 6.14.4");X.encryptPartial=!0}}if(X.delta&&(X.encryptPartial||z==="v2")){let c=rD(w9.cwd()),o=await o1("@capgo/capacitor-updater",c,X.packageJson),I;try{I=o?i0(o):void 0}catch{I=void 0}if(o&&I){if(_=!e1(I,E,P,x),X.verbose&&_)K.info(`[Verbose] Using hex checksum format for updater version ${I}`)}}if(X.verbose&&X.delta)K.info("[Verbose] Preparing delta/partial update manifest...");let g=X.delta?await Qh(U,W,A,M,X.encryptPartial?z:"none",h,_):[];if(X.verbose&&X.delta)K.info(`[Verbose] Delta manifest prepared with ${g.length} files`);if(X.verbose)K.info("[Verbose] Creating version record in database...");let{error:m}=await k$(L,b);if(m)$D(`Cannot add bundle ${p(m)}`);if(X.verbose)K.info("[Verbose] Version record created successfully");if(X.tusChunkSize&&X.tusChunkSize>H.maxChunkSize)K.error(`Chunk size ${X.tusChunkSize} is greater than the maximum chunk size ${H.maxChunkSize}, using the maximum chunk size`),X.tusChunkSize=H.maxChunkSize;else if(!X.tusChunkSize)X.tusChunkSize=H.maxChunkSize;if(X.verbose)K.info(`[Verbose] TUS chunk size: ${Math.floor(X.tusChunkSize/1024/1024)} MB`);if(n&&(B||q||Q||w||F||$||G)){if(!B||!q||!Q||!w||!F||!$)$D("Missing argument, for S3 upload you need to provide a bucket name, endpoint, region, port, API key, and API secret");if(K.info("Uploading to S3"),X.verbose)K.info("[Verbose] S3 configuration:"),K.info(` - Endpoint: ${q}`),K.info(` - Region: ${Q}`),K.info(` - Bucket: ${B}`),K.info(` - Port: ${$}`),K.info(` - SSL: ${G?"enabled":"disabled"}`);let c=G?`https://${q}`:`http://${q}`,o=new yJ({endPoint:q,region:Q,port:$,pathStyle:!0,bucket:B,accessKey:w,secretKey:F}),I=`${M}-${N}`,j=encodeURIComponent(I);if(X.verbose)K.info(`[Verbose] Uploading to S3 as: ${I}`);if(await o.putObject(I,Uint8Array.from(n)),b.external_url=`${c}/${j}`,b.storage_provider="external",X.verbose)K.info(`[Verbose] S3 upload complete, external URL: ${b.external_url}`)}else if(n){if(!X.partialOnly&&!X.deltaOnly){if(X.verbose)K.info("[Verbose] Starting full bundle upload to Capgo Cloud...");await gX0(W,L,M,N,A,n,X,X.tusChunkSize)}else if(X.verbose)K.info("[Verbose] Skipping full bundle upload (delta-only mode)");let c=null;try{if(X.dryUpload){if(X.delta=!1,X.verbose)K.info("[Verbose] Dry upload mode: skipping delta upload")}let I=b.session_key&&X.encryptPartial&&Z?{sessionKey:Z,ivSessionKey:b.session_key}:void 0;if(X.verbose&&X.delta)K.info("[Verbose] Starting delta/partial file upload..."),K.info(` - Manifest entries: ${g.length}`),K.info(` - Encryption: ${I?"enabled":"disabled"}`);if(c=X.delta?await wh(W,g,U,M,A,I,X):null,X.verbose&&c)K.info(`[Verbose] Delta upload complete with ${c.length} files`)}catch(I){if(!!(X.partial||X.delta||X.partialOnly||X.deltaOnly))throw I;if(K.info(`Failed to upload partial files to capgo cloud. Error: ${p(I)}. This is not a critical error, the bundle has been uploaded without the partial files`),X.verbose)K.info(`[Verbose] Delta upload error details: ${p(I)}`)}if(b.storage_provider="r2",b.manifest=c,X.verbose)K.info("[Verbose] Updating version record with storage provider and manifest...");let{error:o}=await k$(L,b);if(o)$D(`Cannot update bundle ${p(o)}`);if(X.verbose)K.info("[Verbose] Version record updated successfully")}if(X.verbose)K.info("[Verbose] Checking app permissions...");let a=await CD(L,W,M,2,!1,!0);if(X.verbose)K.info("[Verbose] Permissions:"),K.info(` - Upload: ${c7(a,2)?"yes":"no"}`),K.info(` - Write: ${c7(a,3)?"yes":"no"}`),K.info(` - Admin: ${c7(a,4)?"yes":"no"}`);if(X.deleteLinkedBundleOnUpload&&c7(a,3)){if(X.verbose)K.info(`[Verbose] Deleting linked bundle in channel ${y}...`);await mX0(L,M,y)}else if(X.deleteLinkedBundleOnUpload)K.warn("Cannot delete linked bundle on upload as a upload organization member");if(c7(a,3)){if(X.verbose)K.info(`[Verbose] Setting bundle ${N} to channel ${y}...`);if(await dX0(L,W,!!X.bundleUrl,N,y,C,A,M,V,X.selfAssign),X.verbose)K.info("[Verbose] Channel updated successfully")}else K.warn("Cannot set channel as a upload organization member");if(X.verbose)K.info("[Verbose] Sending upload event...");await z0(W,{channel:"app",event:"App Uploaded",icon:"⏫",user_id:A,tags:{"app-id":M},notify:!1},X.verbose),await z0(W,{channel:"app",event:"App Uploaded",icon:"⏫",user_id:A,tags:{"app-id":M},notify:!1,notifyConsole:!0}).catch(()=>{});let d={success:!0,bundle:N,checksum:b.checksum??null,encryptionMethod:z,sessionKey:Z?Z.toString("base64"):void 0,ivSessionKey:typeof b.session_key==="string"?b.session_key:void 0,storageProvider:b.storage_provider};if(X.verbose)K.info("[Verbose] Upload completed successfully:"),K.info(` - Bundle: ${d.bundle}`),K.info(` - Checksum: ${d.checksum}`),K.info(` - Encryption: ${d.encryptionMethod}`),K.info(` - Storage: ${d.storageProvider}`);if(Y&&!d.skipped)$0("Time to share your update to the world \uD83C\uDF0D");return d}var Bh=require("node:crypto"),cJ=require("node:fs"),qh=require("node:process");var lX0=20;function nX0(D){console.log(JSON.stringify(D,null,2))}function OX(D){console.error(p(D))}async function $h(D,X,Y=!1){let{json:Z}=X,{bundle:J,path:Q}=X,w=!Z&&!Y;try{if(w)await o0();let F=await H0(),B=b0(D,F?.config),q=Bh.randomUUID().split("-")[0],$=D9("",X.packageJson);if(J=J||$||`0.0.1-beta.${q}`,w)q0(`Zipping ${B}@${J}`);if(J&&!d7.test(J)){let C=`Your bundle name ${J}, is not valid it should follow semver convention : https://semver.org/`;if(!Y)if(Z)OX({error:"invalid_semver"});else K.error(C);throw Error("Invalid bundle version format")}if(Q=Q||F?.config?.webDir,!B||!J||!Q){if(!Y)if(Z)OX({error:"missing_argument"});else K.error("Missing argument, you need to provide a appId and a bundle and a path, or be in a capacitor project");throw Error("Missing argument, you need to provide a appId and a bundle and a path, or be in a capacitor project")}if(w)K.info(`Started from path "${Q}"`);if(typeof X.codeCheck>"u"?!0:X.codeCheck){if(!FX(Q,"notifyAppReady")){if(!Y)if(Z)OX({error:"notifyAppReady_not_in_source_code"});else K.error("notifyAppReady() is missing in the build folder of your app. see: https://capgo.app/docs/plugin/api/#notifyappready");throw Error("notifyAppReady() is missing in build folder")}if(!uJ(Q)){if(!Y)if(Z)OX({error:"index_html_not_found"});else K.error(`index.html is missing in the root folder of ${Q}`);throw Error("index.html is missing in root folder")}}let W=await LJ(Q);if(w)K.info(`Zipped ${W.byteLength} bytes`);let O=w?xD():null;if(O)O.start("Calculating checksum");let H=rD(qh.cwd()),M=await o1("@capgo/capacitor-updater",H,X.packageJson);if(!M){if(!Y)K.warn("Cannot find @capgo/capacitor-updater in node_modules, please install it first with your package manager");throw Error("Cannot find @capgo/capacitor-updater in node_modules, please install it first with your package manager")}let U=!1,N;try{N=M?i0(M):void 0}catch{N=void 0}if(N)U=!e1(N,void 0,void 0,"7.0.0");else if(M==="link:@capgo/capacitor-updater"){if(!Y)K.warn("Using local @capgo/capacitor-updater. Assuming v7");U=!0}let R=await y6(W,X.keyV2||cJ.existsSync(v1)||U?"sha256":"crc32");if(O)O.stop(`Checksum ${U?"SHA256":"CRC32"}: ${R}`);let z=Math.floor(W.byteLength/1024/1024);if(z>lX0&&w)K.warn(`WARNING !!
402
402
  The bundle size is ${z} Mb, this may take a while to download for users
403
403
  `),K.warn(`Learn how to optimize your assets https://capgo.app/blog/optimise-your-images-for-updates/
404
- `);let V=w?xD():null,L=X.name||`${B}_${J}.zip`;if(V)V.start(`Saving to ${L}`);if(cJ.writeFileSync(L,W),V)V.stop(`Saved to ${L}`);if(w)$0("Done ✅");if(!Y&&Z)nX0({bundle:J,filename:L,checksum:R});return{bundle:J,filename:L,checksum:R}}catch(F){if(!Y)if(Z)OX(F);else K.error(p(F));throw F instanceof Error?F:Error(String(F))}}async function Gh(D,X,Y,Z=!1){if(!Z)q0("Create channel");Y.apikey=Y.apikey||Q0();let J=await K0().catch(()=>{return});if(X=b0(X,J?.config),!Y.apikey){if(!Z)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}if(!X){if(!Z)K.error("Missing argument, you need to provide a appId, or be in a capacitor project");throw Error("Missing appId")}let Q=await z0(Y.apikey,Y.supaHost,Y.supaAnon);if(await vD(Q,X,Z),await N0(Q,Y.apikey,["write","all"]),await CD(Q,Y.apikey,X,4,Z,!0),!Z)K.info(`Creating channel ${X}#${D} to Capgo`);let w=await v$(Q,X);if(!w){if(!Z)K.error("Cannot find default version for channel creation, please contact Capgo support \uD83E\uDD28");throw Error("Cannot find default version for channel creation")}let F=await _D(Q,X),B=await N0(Q,Y.apikey,["write","all"]),q=await sy(Q,{name:D,app_id:X,version:w.id,created_by:B,owner_org:F,allow_device_self_set:Y.selfAssign??!1,public:Y.default??!1});if(q.error){if(!Z)K.error(`Cannot create Channel \uD83D\uDE40
405
- ${p(q.error)}`);throw Error(`Cannot create channel: ${p(q.error)}`)}if(await H0(Y.apikey,{channel:"channel",event:"Create channel",icon:"✅",user_id:F,tags:{"app-id":X,channel:D},notify:!0}).catch(()=>{}),!Z)K.success("Channel created ✅"),$0("Done ✅");return q.data??!0}async function Oh(D,X,Y,Z=!1){let{quiet:J}=Y;if(!J&&!Z)q0("List current bundle");Y.apikey=Y.apikey||Q0(J);let Q=await K0();if(X=b0(X,Q?.config),!Y.apikey){if(!Z)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}if(!X){if(!Z)K.error("Missing argument, you need to provide a appId, or be in a capacitor project");throw Error("Missing appId")}let w=await z0(Y.apikey,Y.supaHost,Y.supaAnon);if(await vD(w,X,Z),await N0(w,Y.apikey,["write","all","read"]),await CD(w,Y.apikey,X,1,Z,!0),!D){if(!Z)K.error("Please provide a channel to get the bundle from.");throw Error("Channel name missing")}let{data:F,error:B}=await w.from("channels").select("version ( name )").eq("name",D).eq("app_id",X).limit(1);if(B||!F?.length){if(!Z)K.error(`Error retrieving channel ${D} for app ${X}. Perhaps the channel does not exist?`);throw Error(`Channel ${D} not found for app ${X}`)}let{version:q}=F[0];if(!q){if(!Z)K.error(`Error retrieving channel ${D} for app ${X}. Perhaps the channel does not exist?`);throw Error(`Channel ${D} does not have a bundle linked`)}if(!Z)if(!J)K.info(`Current bundle for channel ${D} is ${q.name}`);else K.info(q.name);return q.name}async function Wh(D,X,Y,Z=!1){if(!Z)q0("Delete channel");Y.apikey=Y.apikey||Q0();let J=await K0();if(X=b0(X,J?.config),!Y.apikey){if(!Z)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}if(!X){if(!Z)K.error("Missing argument, you need to provide a appId, or be in a capacitor project");throw Error("Missing appId")}let Q=await z0(Y.apikey,Y.supaHost,Y.supaAnon);await vD(Q,X,Z);let w=await N0(Q,Y.apikey,["all"]);if(await CD(Q,Y.apikey,X,4,Z,!0),Y.deleteBundle&&!Z)K.info(`Deleting bundle ${X}#${D} from Capgo`);if(Y.deleteBundle){let W=await Xk(Q,X,D);if(W?.name&&!Z)K.info(`Deleting bundle ${W.name} from Capgo`);if(W?.name)await b$(Q,X,W.name)}let{data:F,error:B}=await ey(Q,X,D);if(B||!F){if(!Z)K.error(`Channel ${D} not found`);if(Y.successIfNotFound){if(!Z)K.success(`Channel ${D} not found and successIfNotFound is true`);return!0}throw Error(`Channel ${D} not found`)}let{error:q}=await Dk(Q,X,F.id);if(q){if(!Z)K.error(`Cannot delete channel devices: ${p(q)}`);throw Error(`Cannot delete channel devices: ${p(q)}`)}if(!Z)K.info(`Deleting channel ${X}#${D} from Capgo`);let $=await oy(Q,D,X,w);if($.error){if(!Z)K.error(`Cannot delete Channel \uD83D\uDE40 ${p($.error)}`);throw Error(`Cannot delete channel: ${p($.error)}`)}let G=await _D(Q,X);if(await H0(Y.apikey,{channel:"channel",event:"Delete channel",icon:"✅",user_id:G,tags:{"app-id":X,channel:D},notify:!0}).catch(()=>{}),!Z)K.success("Channel deleted"),$0("Done ✅");return!0}async function Hh(D,X,Y=!1){if(!Y)q0("List channels");X.apikey=X.apikey||Q0();let Z=await K0();if(D=b0(D,Z?.config),!X.apikey){if(!Y)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}if(!D){if(!Y)K.error("Missing argument, you need to provide a appId, or be in a capacitor project");throw Error("Missing appId")}let J=await z0(X.apikey,X.supaHost,X.supaAnon);await vD(J,D,Y);let Q=await N0(J,X.apikey,["write","all","read","upload"]);if(await CD(J,X.apikey,D,1,Y,!0),!Y)K.info("Querying available channels in Capgo");let w=await Zk(J,D);if(!Y)K.info(`Active channels in Capgo: ${w?.length??0}`),Yk(w);if(await H0(X.apikey,{channel:"channel",event:"List channel",icon:"✅",user_id:Q,tags:{"app-id":D},notify:!1}).catch(()=>{}),!Y)$0("Done ✅");return w}function Kh(D){let X=new MD;X.headers=["Package","Local","Remote","Status","Details"],X.theme=MD.roundTheme,X.rows=[];for(let Y of D){let{name:Z,localVersion:J,remoteVersion:Q}=Y,w=$5(Y),F=w.compatible?"✅":"❌";X.rows.push([Z,J||"-",Q||"-",F,w.message])}K.info(X.toString())}var zh=["major","minor","metadata","patch","none"];async function Mh(D,X,Y,Z=!1){if(!Z)q0("Set channel");Y.apikey=Y.apikey||Q0();let J=await K0();if(X=b0(X,J?.config),!Y.apikey){if(!Z)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}if(!X){if(!Z)K.error("Missing argument, you need to provide a appId, or be in a capacitor project");throw Error("Missing appId")}if(!D){if(!Z)K.error("Missing argument, you need to provide a channel");throw Error("Missing channel id")}let Q=await z0(Y.apikey,Y.supaHost,Y.supaAnon);await vD(Q,X,Z);let w=await N0(Q,Y.apikey,["write","all"]);await CD(Q,Y.apikey,X,4,Z,!0);let F=await _D(Q,X),{bundle:B,state:q,downgrade:$,latest:G,latestRemote:W,ios:O,android:H,selfAssign:M,disableAutoUpdate:U,dev:N,emulator:R,device:z,prod:V}=Y;if(G&&B){if(!Z)K.error("Cannot set latest and bundle at the same time");throw Error("Cannot set both latest and bundle simultaneously")}if(W&&B){if(!Z)K.error("Cannot set latest remote and bundle at the same time");throw Error("Cannot set both latest remote and bundle simultaneously")}if(W&&G){if(!Z)K.error("Cannot set latest remote and latest at the same time");throw Error("Cannot set both latest remote and latest simultaneously")}if(B==null&&q==null&&G==null&&W==null&&$==null&&O==null&&H==null&&M==null&&N==null&&R==null&&z==null&&V==null&&U==null){if(!Z)K.error("Missing argument, you need to provide a option to set");throw Error("No channel option provided")}await vy(Q,F,Y.apikey,X);let L={created_by:w,app_id:X,name:D,owner_org:F,version:void 0},{error:C}=await Q.from("channels").select().eq("app_id",X).eq("name",D).single();if(C){if(!Z)K.error(`Cannot find channel ${D}`);throw Error(`Cannot find channel ${D}`)}let y=G?J?.config?.plugins?.CapacitorUpdater?.version||D9("",Y.packageJson):B;if(y!=null){let{data:k,error:f}=await Q.from("app_versions").select().eq("app_id",X).eq("name",y).eq("user_id",w).eq("deleted",!1).single();if(f||!k){if(!Z)K.error(`Cannot find version ${y}`);throw Error(`Cannot find version ${y}`)}if(!Y.ignoreMetadataCheck){let{finalCompatibility:S,localDependencies:v}=await _$(Q,X,D,k.native_packages??[]),b=S.filter((n)=>!Y9(n));if(v.length>0&&b.length>0){if(!Z)K.warn(`Bundle NOT compatible with ${D} channel`),K.warn(""),Kh(S),K.warn(""),K.warn("An app store update may be required for these changes to take effect.");throw Error(`Bundle is not compatible with ${D} channel`)}if(!Z)if(v.length===0&&S.length>0)K.info(`Ignoring check compatibility with ${D} channel because the bundle does not contain any native packages`);else K.info(`Bundle is compatible with ${D} channel`)}if(!Z)K.info(`Set ${X} channel: ${D} to @${y}`);L.version=k.id}if(W){let{data:k,error:f}=await Q.from("app_versions").select().eq("app_id",X).eq("user_id",w).eq("deleted",!1).order("created_at",{ascending:!1}).single();if(f||!k){if(!Z)K.error("Cannot find latest remote version");throw Error("Cannot find latest remote version")}if(!Y.ignoreMetadataCheck){let{finalCompatibility:S}=await _$(Q,X,D,k.native_packages??[]);if(S.filter((b)=>!Y9(b)).length>0){if(!Z)K.warn(`Bundle NOT compatible with ${D} channel`),K.warn(""),Kh(S),K.warn(""),K.warn("An app store update may be required for these changes to take effect.");throw Error(`Latest remote bundle is not compatible with ${D} channel`)}}if(!Z)K.info(`Set ${X} channel: ${D} to @${k.name}`);L.version=k.id}if(q!=null){if(q!=="normal"&&q!=="default"){if(!Z)K.error(`State ${q} is not known. The possible values are: normal, default.`);throw Error(`Unknown state ${q}. Expected normal or default`)}if(!Z)K.info(`Set ${X} channel: ${D} to ${q}`);L.public=q==="default"}if($!=null){if(!Z)K.info(`Set ${X} channel: ${D} to ${$?"allow":"disallow"} downgrade`);L.disable_auto_update_under_native=!$}if(O!=null){if(!Z)K.info(`Set ${X} channel: ${D} to ${O?"allow":"disallow"} ios update`);L.ios=!!O}if(H!=null){if(!Z)K.info(`Set ${X} channel: ${D} to ${H?"allow":"disallow"} android update`);L.android=!!H}if(M!=null){if(!Z)K.info(`Set ${X} channel: ${D} to ${M?"allow":"disallow"} self assign to this channel`);L.allow_device_self_set=!!M}if(N!=null){if(!Z)K.info(`Set ${X} channel: ${D} to ${N?"allow":"disallow"} dev devices`);L.allow_dev=!!N}if(R!=null){if(!Z)K.info(`Set ${X} channel: ${D} to ${R?"allow":"disallow"} emulator devices`);L.allow_emulator=!!R}if(z!=null){if(!Z)K.info(`Set ${X} channel: ${D} to ${z?"allow":"disallow"} physical devices`);L.allow_device=!!z}if(V!=null){if(!Z)K.info(`Set ${X} channel: ${D} to ${V?"allow":"disallow"} prod builds`);L.allow_prod=!!V}if(U!=null){let k=U.toLowerCase();if(!zh.includes(k)){if(!Z)K.error(`Channel strategy ${k} is not known. The possible values are: ${zh.join(", ")}.`);throw Error(`Unknown channel strategy ${k}`)}if(k==="metadata")k="version_number";if(L.disable_auto_update=k,!Z)K.info(`Set ${X} channel: ${D} to ${k} disable update strategy to this channel`)}let{error:A}=await VJ(Q,L);if(A){if(!Z)K.error('Cannot set channel the upload key is not allowed to do that, use the "all" for this.');throw Error("Upload key is not allowed to set this channel")}if(await H0(Y.apikey,{channel:"channel",event:"Set channel",icon:"✅",user_id:F,tags:{"app-id":X},notify:!0}).catch(()=>{}),!Z)$0("Done ✅");return!0}var U1=require("node:fs");function Lh(D){return D.plugins??={},D.plugins.extConfig??={},D.plugins.CapacitorUpdater??={},D.plugins.CapacitorUpdater}async function Vh(D,X=!1){if(!X)q0("Save keys \uD83D\uDD11");let Y=await K0(),Z=D.key||K6,J=D.keyData||"";if(!U1.existsSync(Z)&&!J){if(!X)K.error(`Cannot find a public key at ${Z} or as keyData option or in ${Y.path}`);throw Error("Missing public key")}if(U1.existsSync(Z))J=U1.readFileSync(Z,"utf8");if(!J.startsWith("-----BEGIN RSA PUBLIC KEY-----")){if(!X)K.error("The public key provided is not a valid RSA Public key");throw Error("Invalid RSA public key")}if(Y?.config){let Q=Lh(Y.config);if(Q.privateKey){if(delete Q.privateKey,!X)K.info("Old private key deleted from config file");if(X?D.setupChannel??!1:D.setupChannel??await oD({message:"Do you want to setup encryption with the new channel in order to support old apps and facilitate the migration?"}))Q.defaultChannel="encryption_v2"}Q.publicKey=J,await h7(Y)}if(!X)K.success(`Public key saved into ${Y.path} file in local directory`),K.success("Your app will decode the zip archive with this key");return!0}async function Uh(D,X=!1){if(!X)q0("Deleting old private key \uD83D\uDDD1️");let Y=await K0(),Z=Y?.config?.plugins?.CapacitorUpdater;if(Z?.privateKey){if(delete Z.privateKey,await h7(Y),U1.existsSync(m7))try{if(U1.unlinkSync(m7),!X)K.success(`Old private key file deleted: ${m7}`)}catch(J){if(!X)K.error(`Failed to delete old private key file: ${m7} (${String(J)})`)}if(U1.existsSync(OJ))try{if(U1.unlinkSync(OJ),!X)K.success(`Old public key file deleted: ${OJ}`)}catch(J){if(!X)K.error(`Failed to delete old public key file: ${K6} (${String(J)})`)}if(!X)K.success(`Old private key deleted from ${Y.path} file`),$0("Done ✅");return!0}if(!X)K.info("No old private key found in config file");return!1}async function Nh(D,X=!1){if(!X)q0("Create keys \uD83D\uDD11");let{publicKey:Y,privateKey:Z}=Ik();if(U1.existsSync(K6)&&!D.force){if(!X)K.error("Public Key already exists, use --force to overwrite");throw Error("Public key already exists")}if(U1.writeFileSync(K6,Y),U1.existsSync(v1)&&!D.force){if(!X)K.error("Private Key already exists, use --force to overwrite");throw Error("Private key already exists")}U1.writeFileSync(v1,Z);let J=await K0();if(J){let Q=Lh(J.config);if(Q.privateKey){if(delete Q.privateKey,!X)K.info("Old private key deleted from config file");if(X?D.setupChannel??!1:D.setupChannel??await oD({message:"Do you want to setup encryption with the new channel in order to support old apps and facilitate the migration?"}))Q.defaultChannel="encryption_v2"}Q.publicKey=Y,await h7(J)}if(!X){K.success("Your RSA key has been generated"),K.success(`Private key saved in ${v1}`),K.success("This key will be used to encrypt your bundle before sending it to Capgo"),K.success("Keep it safe"),K.success("Then make it unreadable by Capgo and unmodifiable by anyone"),K.success(`Public key saved in ${J.path}`),K.success("Your app will be the only one having it"),K.success("Only your users can decrypt your update"),K.success("Only you can send them an update");try{await ty(),$0("Done ✅")}catch(Q){if(Q instanceof Error&&Q.message==="Capacitor sync cancelled")return!0;throw Q}}return!0}var N5=require("node:fs"),Rh=require("node:os");async function Ah(D,X,Y=!1){if(!Y)q0("Login to Capgo");if(!D&&!Y){let w=await _G({message:"Enter your API key:",mask:"*"});if(c0(w))throw K.error("Login cancelled"),Error("Login cancelled");D=w}if(!D){if(!Y)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}await o0();let{local:Z}=X;if(Z){if(!N5.existsSync(".git")){if(!Y)K.error("To use local you should be in a git repository");throw Error("Not in a git repository")}N5.writeFileSync(".capgo",`${D}
404
+ `);let V=w?xD():null,L=X.name||`${B}_${J}.zip`;if(V)V.start(`Saving to ${L}`);if(cJ.writeFileSync(L,W),V)V.stop(`Saved to ${L}`);if(w)$0("Done ✅");if(!Y&&Z)nX0({bundle:J,filename:L,checksum:R});return{bundle:J,filename:L,checksum:R}}catch(F){if(!Y)if(Z)OX(F);else K.error(p(F));throw F instanceof Error?F:Error(String(F))}}async function Gh(D,X,Y,Z=!1){if(!Z)q0("Create channel");Y.apikey=Y.apikey||Q0();let J=await H0().catch(()=>{return});if(X=b0(X,J?.config),!Y.apikey){if(!Z)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}if(!X){if(!Z)K.error("Missing argument, you need to provide a appId, or be in a capacitor project");throw Error("Missing appId")}let Q=await K0(Y.apikey,Y.supaHost,Y.supaAnon);if(await _D(Q,X,Z),await N0(Q,Y.apikey,["write","all"]),await CD(Q,Y.apikey,X,4,Z,!0),!Z)K.info(`Creating channel ${X}#${D} to Capgo`);let w=await v$(Q,X);if(!w){if(!Z)K.error("Cannot find default version for channel creation, please contact Capgo support \uD83E\uDD28");throw Error("Cannot find default version for channel creation")}let F=await pD(Q,X),B=await N0(Q,Y.apikey,["write","all"]),q=await sy(Q,{name:D,app_id:X,version:w.id,created_by:B,owner_org:F,allow_device_self_set:Y.selfAssign??!1,public:Y.default??!1});if(q.error){if(!Z)K.error(`Cannot create Channel \uD83D\uDE40
405
+ ${p(q.error)}`);throw Error(`Cannot create channel: ${p(q.error)}`)}if(await z0(Y.apikey,{channel:"channel",event:"Create channel",icon:"✅",user_id:F,tags:{"app-id":X,channel:D},notify:!1}).catch(()=>{}),!Z)K.success("Channel created ✅"),$0("Done ✅");return q.data??!0}async function Oh(D,X,Y,Z=!1){let{quiet:J}=Y;if(!J&&!Z)q0("List current bundle");Y.apikey=Y.apikey||Q0(J);let Q=await H0();if(X=b0(X,Q?.config),!Y.apikey){if(!Z)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}if(!X){if(!Z)K.error("Missing argument, you need to provide a appId, or be in a capacitor project");throw Error("Missing appId")}let w=await K0(Y.apikey,Y.supaHost,Y.supaAnon);if(await _D(w,X,Z),await N0(w,Y.apikey,["write","all","read"]),await CD(w,Y.apikey,X,1,Z,!0),!D){if(!Z)K.error("Please provide a channel to get the bundle from.");throw Error("Channel name missing")}let{data:F,error:B}=await w.from("channels").select("version ( name )").eq("name",D).eq("app_id",X).limit(1);if(B||!F?.length){if(!Z)K.error(`Error retrieving channel ${D} for app ${X}. Perhaps the channel does not exist?`);throw Error(`Channel ${D} not found for app ${X}`)}let{version:q}=F[0];if(!q){if(!Z)K.error(`Error retrieving channel ${D} for app ${X}. Perhaps the channel does not exist?`);throw Error(`Channel ${D} does not have a bundle linked`)}if(!Z)if(!J)K.info(`Current bundle for channel ${D} is ${q.name}`);else K.info(q.name);return q.name}async function Wh(D,X,Y,Z=!1){if(!Z)q0("Delete channel");Y.apikey=Y.apikey||Q0();let J=await H0();if(X=b0(X,J?.config),!Y.apikey){if(!Z)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}if(!X){if(!Z)K.error("Missing argument, you need to provide a appId, or be in a capacitor project");throw Error("Missing appId")}let Q=await K0(Y.apikey,Y.supaHost,Y.supaAnon);await _D(Q,X,Z);let w=await N0(Q,Y.apikey,["all"]);if(await CD(Q,Y.apikey,X,4,Z,!0),Y.deleteBundle&&!Z)K.info(`Deleting bundle ${X}#${D} from Capgo`);if(Y.deleteBundle){let W=await Xk(Q,X,D);if(W?.name&&!Z)K.info(`Deleting bundle ${W.name} from Capgo`);if(W?.name)await b$(Q,X,W.name)}let{data:F,error:B}=await ey(Q,X,D);if(B||!F){if(!Z)K.error(`Channel ${D} not found`);if(Y.successIfNotFound){if(!Z)K.success(`Channel ${D} not found and successIfNotFound is true`);return!0}throw Error(`Channel ${D} not found`)}let{error:q}=await Dk(Q,X,F.id);if(q){if(!Z)K.error(`Cannot delete channel devices: ${p(q)}`);throw Error(`Cannot delete channel devices: ${p(q)}`)}if(!Z)K.info(`Deleting channel ${X}#${D} from Capgo`);let $=await oy(Q,D,X,w);if($.error){if(!Z)K.error(`Cannot delete Channel \uD83D\uDE40 ${p($.error)}`);throw Error(`Cannot delete channel: ${p($.error)}`)}let G=await pD(Q,X);if(await z0(Y.apikey,{channel:"channel",event:"Delete channel",icon:"✅",user_id:G,tags:{"app-id":X,channel:D},notify:!1}).catch(()=>{}),!Z)K.success("Channel deleted"),$0("Done ✅");return!0}async function Hh(D,X,Y=!1){if(!Y)q0("List channels");X.apikey=X.apikey||Q0();let Z=await H0();if(D=b0(D,Z?.config),!X.apikey){if(!Y)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}if(!D){if(!Y)K.error("Missing argument, you need to provide a appId, or be in a capacitor project");throw Error("Missing appId")}let J=await K0(X.apikey,X.supaHost,X.supaAnon);await _D(J,D,Y);let Q=await N0(J,X.apikey,["write","all","read","upload"]);if(await CD(J,X.apikey,D,1,Y,!0),!Y)K.info("Querying available channels in Capgo");let w=await Zk(J,D);if(!Y)K.info(`Active channels in Capgo: ${w?.length??0}`),Yk(w);if(await z0(X.apikey,{channel:"channel",event:"List channel",icon:"✅",user_id:Q,tags:{"app-id":D},notify:!1}).catch(()=>{}),!Y)$0("Done ✅");return w}function Kh(D){let X=new MD;X.headers=["Package","Local","Remote","Status","Details"],X.theme=MD.roundTheme,X.rows=[];for(let Y of D){let{name:Z,localVersion:J,remoteVersion:Q}=Y,w=$5(Y),F=w.compatible?"✅":"❌";X.rows.push([Z,J||"-",Q||"-",F,w.message])}K.info(X.toString())}var zh=["major","minor","metadata","patch","none"];async function Mh(D,X,Y,Z=!1){if(!Z)q0("Set channel");Y.apikey=Y.apikey||Q0();let J=await H0();if(X=b0(X,J?.config),!Y.apikey){if(!Z)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}if(!X){if(!Z)K.error("Missing argument, you need to provide a appId, or be in a capacitor project");throw Error("Missing appId")}if(!D){if(!Z)K.error("Missing argument, you need to provide a channel");throw Error("Missing channel id")}let Q=await K0(Y.apikey,Y.supaHost,Y.supaAnon);await _D(Q,X,Z);let w=await N0(Q,Y.apikey,["write","all"]);await CD(Q,Y.apikey,X,4,Z,!0);let F=await pD(Q,X),{bundle:B,state:q,downgrade:$,latest:G,latestRemote:W,ios:O,android:H,selfAssign:M,disableAutoUpdate:U,dev:N,emulator:R,device:z,prod:V}=Y;if(G&&B){if(!Z)K.error("Cannot set latest and bundle at the same time");throw Error("Cannot set both latest and bundle simultaneously")}if(W&&B){if(!Z)K.error("Cannot set latest remote and bundle at the same time");throw Error("Cannot set both latest remote and bundle simultaneously")}if(W&&G){if(!Z)K.error("Cannot set latest remote and latest at the same time");throw Error("Cannot set both latest remote and latest simultaneously")}if(B==null&&q==null&&G==null&&W==null&&$==null&&O==null&&H==null&&M==null&&N==null&&R==null&&z==null&&V==null&&U==null){if(!Z)K.error("Missing argument, you need to provide a option to set");throw Error("No channel option provided")}await vy(Q,F,Y.apikey,X);let L={created_by:w,app_id:X,name:D,owner_org:F,version:void 0},{error:C}=await Q.from("channels").select().eq("app_id",X).eq("name",D).single();if(C){if(!Z)K.error(`Cannot find channel ${D}`);throw Error(`Cannot find channel ${D}`)}let y=G?J?.config?.plugins?.CapacitorUpdater?.version||D9("",Y.packageJson):B;if(y!=null){let{data:k,error:f}=await Q.from("app_versions").select().eq("app_id",X).eq("name",y).eq("user_id",w).eq("deleted",!1).single();if(f||!k){if(!Z)K.error(`Cannot find version ${y}`);throw Error(`Cannot find version ${y}`)}if(!Y.ignoreMetadataCheck){let{finalCompatibility:S,localDependencies:v}=await _$(Q,X,D,k.native_packages??[]),b=S.filter((n)=>!Y9(n));if(v.length>0&&b.length>0){if(!Z)K.warn(`Bundle NOT compatible with ${D} channel`),K.warn(""),Kh(S),K.warn(""),K.warn("An app store update may be required for these changes to take effect.");throw Error(`Bundle is not compatible with ${D} channel`)}if(!Z)if(v.length===0&&S.length>0)K.info(`Ignoring check compatibility with ${D} channel because the bundle does not contain any native packages`);else K.info(`Bundle is compatible with ${D} channel`)}if(!Z)K.info(`Set ${X} channel: ${D} to @${y}`);L.version=k.id}if(W){let{data:k,error:f}=await Q.from("app_versions").select().eq("app_id",X).eq("user_id",w).eq("deleted",!1).order("created_at",{ascending:!1}).single();if(f||!k){if(!Z)K.error("Cannot find latest remote version");throw Error("Cannot find latest remote version")}if(!Y.ignoreMetadataCheck){let{finalCompatibility:S}=await _$(Q,X,D,k.native_packages??[]);if(S.filter((b)=>!Y9(b)).length>0){if(!Z)K.warn(`Bundle NOT compatible with ${D} channel`),K.warn(""),Kh(S),K.warn(""),K.warn("An app store update may be required for these changes to take effect.");throw Error(`Latest remote bundle is not compatible with ${D} channel`)}}if(!Z)K.info(`Set ${X} channel: ${D} to @${k.name}`);L.version=k.id}if(q!=null){if(q!=="normal"&&q!=="default"){if(!Z)K.error(`State ${q} is not known. The possible values are: normal, default.`);throw Error(`Unknown state ${q}. Expected normal or default`)}if(!Z)K.info(`Set ${X} channel: ${D} to ${q}`);L.public=q==="default"}if($!=null){if(!Z)K.info(`Set ${X} channel: ${D} to ${$?"allow":"disallow"} downgrade`);L.disable_auto_update_under_native=!$}if(O!=null){if(!Z)K.info(`Set ${X} channel: ${D} to ${O?"allow":"disallow"} ios update`);L.ios=!!O}if(H!=null){if(!Z)K.info(`Set ${X} channel: ${D} to ${H?"allow":"disallow"} android update`);L.android=!!H}if(M!=null){if(!Z)K.info(`Set ${X} channel: ${D} to ${M?"allow":"disallow"} self assign to this channel`);L.allow_device_self_set=!!M}if(N!=null){if(!Z)K.info(`Set ${X} channel: ${D} to ${N?"allow":"disallow"} dev devices`);L.allow_dev=!!N}if(R!=null){if(!Z)K.info(`Set ${X} channel: ${D} to ${R?"allow":"disallow"} emulator devices`);L.allow_emulator=!!R}if(z!=null){if(!Z)K.info(`Set ${X} channel: ${D} to ${z?"allow":"disallow"} physical devices`);L.allow_device=!!z}if(V!=null){if(!Z)K.info(`Set ${X} channel: ${D} to ${V?"allow":"disallow"} prod builds`);L.allow_prod=!!V}if(U!=null){let k=U.toLowerCase();if(!zh.includes(k)){if(!Z)K.error(`Channel strategy ${k} is not known. The possible values are: ${zh.join(", ")}.`);throw Error(`Unknown channel strategy ${k}`)}if(k==="metadata")k="version_number";if(L.disable_auto_update=k,!Z)K.info(`Set ${X} channel: ${D} to ${k} disable update strategy to this channel`)}let{error:A}=await VJ(Q,L);if(A){if(!Z)K.error('Cannot set channel the upload key is not allowed to do that, use the "all" for this.');throw Error("Upload key is not allowed to set this channel")}if(await z0(Y.apikey,{channel:"channel",event:"Set channel",icon:"✅",user_id:F,tags:{"app-id":X},notify:!1}).catch(()=>{}),!Z)$0("Done ✅");return!0}var U1=require("node:fs");function Lh(D){return D.plugins??={},D.plugins.extConfig??={},D.plugins.CapacitorUpdater??={},D.plugins.CapacitorUpdater}async function Vh(D,X=!1){if(!X)q0("Save keys \uD83D\uDD11");let Y=await H0(),Z=D.key||K6,J=D.keyData||"";if(!U1.existsSync(Z)&&!J){if(!X)K.error(`Cannot find a public key at ${Z} or as keyData option or in ${Y.path}`);throw Error("Missing public key")}if(U1.existsSync(Z))J=U1.readFileSync(Z,"utf8");if(!J.startsWith("-----BEGIN RSA PUBLIC KEY-----")){if(!X)K.error("The public key provided is not a valid RSA Public key");throw Error("Invalid RSA public key")}if(Y?.config){let Q=Lh(Y.config);if(Q.privateKey){if(delete Q.privateKey,!X)K.info("Old private key deleted from config file");if(X?D.setupChannel??!1:D.setupChannel??await oD({message:"Do you want to setup encryption with the new channel in order to support old apps and facilitate the migration?"}))Q.defaultChannel="encryption_v2"}Q.publicKey=J,await h7(Y)}if(!X)K.success(`Public key saved into ${Y.path} file in local directory`),K.success("Your app will decode the zip archive with this key");return!0}async function Uh(D,X=!1){if(!X)q0("Deleting old private key \uD83D\uDDD1️");let Y=await H0(),Z=Y?.config?.plugins?.CapacitorUpdater;if(Z?.privateKey){if(delete Z.privateKey,await h7(Y),U1.existsSync(m7))try{if(U1.unlinkSync(m7),!X)K.success(`Old private key file deleted: ${m7}`)}catch(J){if(!X)K.error(`Failed to delete old private key file: ${m7} (${String(J)})`)}if(U1.existsSync(OJ))try{if(U1.unlinkSync(OJ),!X)K.success(`Old public key file deleted: ${OJ}`)}catch(J){if(!X)K.error(`Failed to delete old public key file: ${K6} (${String(J)})`)}if(!X)K.success(`Old private key deleted from ${Y.path} file`),$0("Done ✅");return!0}if(!X)K.info("No old private key found in config file");return!1}async function Nh(D,X=!1){if(!X)q0("Create keys \uD83D\uDD11");let{publicKey:Y,privateKey:Z}=Ik();if(U1.existsSync(K6)&&!D.force){if(!X)K.error("Public Key already exists, use --force to overwrite");throw Error("Public key already exists")}if(U1.writeFileSync(K6,Y),U1.existsSync(v1)&&!D.force){if(!X)K.error("Private Key already exists, use --force to overwrite");throw Error("Private key already exists")}U1.writeFileSync(v1,Z);let J=await H0();if(J){let Q=Lh(J.config);if(Q.privateKey){if(delete Q.privateKey,!X)K.info("Old private key deleted from config file");if(X?D.setupChannel??!1:D.setupChannel??await oD({message:"Do you want to setup encryption with the new channel in order to support old apps and facilitate the migration?"}))Q.defaultChannel="encryption_v2"}Q.publicKey=Y,await h7(J)}if(!X){K.success("Your RSA key has been generated"),K.success(`Private key saved in ${v1}`),K.success("This key will be used to encrypt your bundle before sending it to Capgo"),K.success("Keep it safe"),K.success("Then make it unreadable by Capgo and unmodifiable by anyone"),K.success(`Public key saved in ${J.path}`),K.success("Your app will be the only one having it"),K.success("Only your users can decrypt your update"),K.success("Only you can send them an update");try{await ty(),$0("Done ✅")}catch(Q){if(Q instanceof Error&&Q.message==="Capacitor sync cancelled")return!0;throw Q}}return!0}var N5=require("node:fs"),Rh=require("node:os");async function Ah(D,X,Y=!1){if(!Y)q0("Login to Capgo");if(!D&&!Y){let w=await _G({message:"Enter your API key:",mask:"*"});if(c0(w))throw K.error("Login cancelled"),Error("Login cancelled");D=w}if(!D){if(!Y)K.error("Missing API key, you need to provide an API key to upload your bundle");throw Error("Missing API key")}await o0();let{local:Z}=X;if(Z){if(!N5.existsSync(".git")){if(!Y)K.error("To use local you should be in a git repository");throw Error("Not in a git repository")}N5.writeFileSync(".capgo",`${D}
406
406
  `),N5.appendFileSync(".gitignore",`.capgo
407
407
  `)}else{let w=Rh.homedir();N5.writeFileSync(`${w}/.capgo`,`${D}
408
- `)}let J=await z0(D,X.supaHost,X.supaAnon),Q=await N0(J,D,["write","all","upload"]);if(await H0(D,{channel:"user-login",event:"User CLI login",icon:"✅",user_id:Q,notify:!1}).catch(),!Y)K.success(`login saved into .capgo file in ${Z?"local":"home"} directory`),$0("Done ✅")}async function Eh(D,X=!1){if(!X)q0("Adding organization");await o0();let Y={...D,apikey:D.apikey||Q0()};if(!Y.apikey){if(!X)K.error("Missing API key, you need to provide an API key to add an organization");throw Error("Missing API key")}let Z=await z0(Y.apikey,Y.supaHost,Y.supaAnon),J=await N0(Z,Y.apikey,["write","all"]),{name:Q,email:w}=Y;if(!X&&!Q){let q=await R6({message:"Organization name:",placeholder:"My Organization"});if(c0(q))throw K.error("Canceled adding organization"),Error("Organization creation cancelled");Q=q}if(!X&&!w){let q=await R6({message:"Management email:",placeholder:"admin@example.com"});if(c0(q))throw K.error("Canceled adding organization"),Error("Organization creation cancelled");w=q}if(!Q||!w){if(!X)K.error("Missing arguments, you need to provide an organization name and management email");throw Error("Missing organization name or management email")}if(!X)K.info(`Adding organization "${Q}" to Capgo`);let{data:F,error:B}=await Z.from("orgs").insert({name:Q,management_email:w,created_by:J}).select().single();if(B){if(!X)K.error(`Could not add organization ${p(B)}`);throw Error(`Could not add organization: ${p(B)}`)}if(await H0(Y.apikey,{channel:"organization",event:"Organization Created",icon:"\uD83C\uDFE2",user_id:F.id,tags:{"org-name":Q},notify:!1}).catch(()=>{}),!X)K.success(`Organization "${Q}" added to Capgo`),$0("Done ✅");return F}async function Ch(D,X,Y=!1){if(!Y)q0("Deleting organization");await o0();let Z={...X,apikey:X.apikey||Q0()};if(!Z.apikey){if(!Y)K.error("Missing API key, you need to provide an API key to delete an organization");throw Error("Missing API key")}if(!D){if(!Y)K.error("Missing argument, you need to provide an organization ID");throw Error("Missing organization id")}let J=await z0(Z.apikey,Z.supaHost,Z.supaAnon),Q=await N0(J,Z.apikey,["write","all"]);await WJ(J,D,Y);let{data:w,error:F}=await J.from("orgs").select("created_by, name").eq("id",D).single();if(F||!w){if(!Y)K.error(`Cannot get organization details ${p(F)}`);throw Error(`Cannot get organization details: ${p(F)}`)}if(w.created_by!==Q){if(Y)throw Error("Deleting an organization is restricted to the organization owner");K.warn("Deleting an organization is restricted to the organization owner"),K.warn("You are not the owner of this organization"),K.warn("It's strongly recommended that you do not continue!");let q=await M8({message:"Do you want to continue?",options:[{label:"Yes",value:"yes"},{label:"No",value:"no"}]});if(c0(q)||q==="no")throw K.error("Canceled deleting the organization"),Error("Organization deletion cancelled")}if(!Y&&!Z.autoConfirm){let q=await oD({message:`Are you sure you want to delete organization "${w.name}"? This action cannot be undone.`});if(c0(q)||!q)throw K.error("Canceled deleting the organization"),Error("Organization deletion cancelled")}if(!Y)K.info(`Deleting organization "${w.name}"`);let{error:B}=await J.from("orgs").delete().eq("id",D);if(B){if(!Y)K.error(`Could not delete organization ${p(B)}`);throw Error(`Could not delete organization: ${p(B)}`)}if(await H0(Z.apikey,{channel:"organization",event:"Organization Deleted",icon:"\uD83D\uDDD1️",user_id:D,tags:{"org-name":w.name},notify:!1}).catch(()=>{}),!Y)K.success(`Organization "${w.name}" deleted from Capgo`),$0("Done ✅");return!0}function iX0(D,X){if(X)return;if(!D.length){K.error("No organizations found");return}let Y=new MD;Y.headers=["Name","ID","Role","Apps","2FA Required","2FA Access"],Y.rows=[];for(let J of D.toReversed()){let Q=J.enforcing_2fa?"✓ Yes":"✗ No",w=J["2fa_has_access"]?"✓ Yes":"✗ No";Y.rows.push([J.name??"Unknown",J.gid,J.role,J.app_count?.toString()||"0",Q,w])}K.success("Organizations"),K.success(Y.toString());let Z=D.filter((J)=>J.enforcing_2fa&&!J["2fa_has_access"]);if(Z.length>0){K.warn(`
408
+ `)}let J=await K0(D,X.supaHost,X.supaAnon),Q=await N0(J,D,["write","all","upload"]);if(await z0(D,{channel:"user-login",event:"User CLI login",icon:"✅",user_id:Q,notify:!1}).catch(),!Y)K.success(`login saved into .capgo file in ${Z?"local":"home"} directory`),$0("Done ✅")}async function Eh(D,X=!1){if(!X)q0("Adding organization");await o0();let Y={...D,apikey:D.apikey||Q0()};if(!Y.apikey){if(!X)K.error("Missing API key, you need to provide an API key to add an organization");throw Error("Missing API key")}let Z=await K0(Y.apikey,Y.supaHost,Y.supaAnon),J=await N0(Z,Y.apikey,["write","all"]),{name:Q,email:w}=Y;if(!X&&!Q){let q=await R6({message:"Organization name:",placeholder:"My Organization"});if(c0(q))throw K.error("Canceled adding organization"),Error("Organization creation cancelled");Q=q}if(!X&&!w){let q=await R6({message:"Management email:",placeholder:"admin@example.com"});if(c0(q))throw K.error("Canceled adding organization"),Error("Organization creation cancelled");w=q}if(!Q||!w){if(!X)K.error("Missing arguments, you need to provide an organization name and management email");throw Error("Missing organization name or management email")}if(!X)K.info(`Adding organization "${Q}" to Capgo`);let{data:F,error:B}=await Z.from("orgs").insert({name:Q,management_email:w,created_by:J}).select().single();if(B){if(!X)K.error(`Could not add organization ${p(B)}`);throw Error(`Could not add organization: ${p(B)}`)}if(await z0(Y.apikey,{channel:"organization",event:"Organization Created",icon:"\uD83C\uDFE2",user_id:F.id,tags:{"org-name":Q},notify:!1}).catch(()=>{}),!X)K.success(`Organization "${Q}" added to Capgo`),$0("Done ✅");return F}async function Ch(D,X,Y=!1){if(!Y)q0("Deleting organization");await o0();let Z={...X,apikey:X.apikey||Q0()};if(!Z.apikey){if(!Y)K.error("Missing API key, you need to provide an API key to delete an organization");throw Error("Missing API key")}if(!D){if(!Y)K.error("Missing argument, you need to provide an organization ID");throw Error("Missing organization id")}let J=await K0(Z.apikey,Z.supaHost,Z.supaAnon),Q=await N0(J,Z.apikey,["write","all"]);await WJ(J,D,Y);let{data:w,error:F}=await J.from("orgs").select("created_by, name").eq("id",D).single();if(F||!w){if(!Y)K.error(`Cannot get organization details ${p(F)}`);throw Error(`Cannot get organization details: ${p(F)}`)}if(w.created_by!==Q){if(Y)throw Error("Deleting an organization is restricted to the organization owner");K.warn("Deleting an organization is restricted to the organization owner"),K.warn("You are not the owner of this organization"),K.warn("It's strongly recommended that you do not continue!");let q=await M8({message:"Do you want to continue?",options:[{label:"Yes",value:"yes"},{label:"No",value:"no"}]});if(c0(q)||q==="no")throw K.error("Canceled deleting the organization"),Error("Organization deletion cancelled")}if(!Y&&!Z.autoConfirm){let q=await oD({message:`Are you sure you want to delete organization "${w.name}"? This action cannot be undone.`});if(c0(q)||!q)throw K.error("Canceled deleting the organization"),Error("Organization deletion cancelled")}if(!Y)K.info(`Deleting organization "${w.name}"`);let{error:B}=await J.from("orgs").delete().eq("id",D);if(B){if(!Y)K.error(`Could not delete organization ${p(B)}`);throw Error(`Could not delete organization: ${p(B)}`)}if(await z0(Z.apikey,{channel:"organization",event:"Organization Deleted",icon:"\uD83D\uDDD1️",user_id:D,tags:{"org-name":w.name},notify:!1}).catch(()=>{}),!Y)K.success(`Organization "${w.name}" deleted from Capgo`),$0("Done ✅");return!0}function iX0(D,X){if(X)return;if(!D.length){K.error("No organizations found");return}let Y=new MD;Y.headers=["Name","ID","Role","Apps","2FA Required","2FA Access"],Y.rows=[];for(let J of D.toReversed()){let Q=J.enforcing_2fa?"✓ Yes":"✗ No",w=J["2fa_has_access"]?"✓ Yes":"✗ No";Y.rows.push([J.name??"Unknown",J.gid,J.role,J.app_count?.toString()||"0",Q,w])}K.success("Organizations"),K.success(Y.toString());let Z=D.filter((J)=>J.enforcing_2fa&&!J["2fa_has_access"]);if(Z.length>0){K.warn(`
409
409
  ⚠️ You don't have access to ${Z.length} organization(s) due to 2FA enforcement:`);for(let J of Z)K.warn(` - ${J.name} (${J.gid})`);K.warn(`
410
- To regain access, enable 2FA on your account at https://web.capgo.app/settings/account`)}}async function jh(D,X=!1){if(!X)q0("List organizations");await o0();let Y={...D,apikey:D.apikey||Q0()};if(!Y.apikey){if(!X)K.error("Missing API key, you need to provide an API key to list organizations");throw Error("Missing API key")}let Z=await z0(Y.apikey,Y.supaHost,Y.supaAnon);if(await N0(Z,Y.apikey,["read","write","all"]),!X)K.info("Getting organizations from Capgo");let{error:J,data:Q}=await Z.rpc("get_orgs_v7");if(J){if(!X)K.error(`Cannot get organizations ${p(J)}`);throw Error(`Cannot get organizations: ${p(J)}`)}let w=Q||[];if(!X)K.info(`Organizations found: ${w.length}`),iX0(w,X),$0("Done ✅");return w}async function Th(D,X,Y=!1){if(!Y)q0("Updating organization");await o0();let Z={...X,apikey:X.apikey||Q0()};if(!Z.apikey){if(!Y)K.error("Missing API key, you need to provide an API key to update an organization");throw Error("Missing API key")}if(!D){if(!Y)K.error("Missing argument, you need to provide an organization ID");throw Error("Missing organization id")}let J=await z0(Z.apikey,Z.supaHost,Z.supaAnon);await N0(J,Z.apikey,["write","all"]),await WJ(J,D,Y);let{data:Q,error:w}=await J.from("orgs").select("name, management_email, created_by, enforcing_2fa, password_policy_config, require_apikey_expiration, max_apikey_expiration_days, enforce_hashed_api_keys").eq("id",D).single();if(w||!Q){if(!Y)K.error(`Cannot get organization details ${p(w)}`);throw Error(`Cannot get organization details: ${p(w)}`)}let{name:F,email:B,enforce2fa:q}=Z,{passwordPolicy:$,minLength:G,requireUppercase:W,requireNumber:O,requireSpecial:H}=Z,{requireApikeyExpiration:M,maxApikeyExpirationDays:U,enforceHashedApiKeys:N}=Z;if(q!==void 0){if(!Y){if(q&&!Q.enforcing_2fa){K.info("Checking organization members 2FA status...");let{data:C,error:y}=await J.rpc("check_org_members_2fa_enabled",{org_id:D});if(y)throw K.error(`Cannot check members 2FA status: ${p(y)}`),Error("Cannot check members 2FA status");let{data:A,error:k}=await J.rpc("has_2fa_enabled");if(k)throw K.error(`Cannot check your 2FA status: ${p(k)}`),Error("Cannot check your 2FA status");let{data:f,error:S}=await J.rpc("get_identity_apikey_only",{keymode:["read","upload","write","all"]});if(S||!f)throw K.error(`Cannot get current user identity: ${S?p(S):"No user ID returned"}`),Error("Cannot get current user identity");let v=C?.filter((b)=>!b["2fa_enabled"]&&b.user_id!==f)||[];if(v.length>0||!A){if(K.warn("⚠️ Warning: Enabling 2FA enforcement will affect access"),K.message("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"),!A)K.warn("\uD83D\uDD10 YOU do not have 2FA enabled! By enabling 2FA enforcement, you will LOSE ACCESS to this organization until you enable 2FA on your account.");if(v.length>0){let{data:n,error:h}=await J.rpc("get_org_members",{guild_id:D});if(h)throw K.error(`Cannot get organization members: ${p(h)}`),Error("Cannot get organization members");let E=new Map(n?.map((g)=>[g.uid,g])||[]),P=v.map((g)=>{return E.get(g.user_id)?.email||g.user_id}),x=v.length===1?"member does":"members do",_=v.length===1?"This member will":"These members will";K.warn(`${v.length} ${x} not have 2FA enabled: ${P.join(", ")}`),K.warn(`${_} lose access until they enable 2FA.`)}let b=await oD({message:"Are you sure you want to enable 2FA enforcement?"});if(c0(b)||!b)throw K.error("Canceled enabling 2FA enforcement"),Error("2FA enforcement cancelled")}K.info("Enabling 2FA enforcement for organization...")}else if(!q&&Q.enforcing_2fa)K.info("Disabling 2FA enforcement for organization...")}let{error:V}=await J.from("orgs").update({enforcing_2fa:q}).eq("id",D);if(V){if(!Y)K.error(`Could not update 2FA enforcement: ${p(V)}`);throw Error(`Could not update 2FA enforcement: ${p(V)}`)}if(!Y)if(q)K.success("✓ 2FA enforcement enabled for this organization");else K.success("✓ 2FA enforcement disabled for this organization");if(F===void 0&&B===void 0&&!($!==void 0||M!==void 0||U!==void 0||N!==void 0)){if(await H0(Z.apikey,{channel:"organization",event:q?"Organization 2FA Enabled":"Organization 2FA Disabled",icon:"\uD83D\uDD10",user_id:D,tags:{"org-name":Q.name,"enforce-2fa":q.toString()},notify:!1}).catch(()=>{}),!Y)$0("Done ✅");return{orgId:D,name:Q.name,email:Q.management_email,enforce2fa:q}}}if($!==void 0){if(!Y)if($){K.info("Configuring password policy for organization...");let{data:C,error:y}=await J.rpc("check_org_members_password_policy",{org_id:D});if(y){if(!y.message?.includes("NO_RIGHTS"))K.warn(`Cannot check members password policy status: ${p(y)}`)}else if(C){let A=C.filter((k)=>!k.password_policy_compliant);if(A.length>0){K.warn(`⚠️ Warning: ${A.length} member(s) do not meet the password policy requirements`),K.warn("These members will need to update their passwords to regain access.");let k=await oD({message:"Are you sure you want to enable the password policy?"});if(c0(k)||!k)throw K.error("Canceled enabling password policy"),Error("Password policy configuration cancelled")}}}else K.info("Disabling password policy for organization...");let V={enabled:$,min_length:G??10,require_uppercase:W??!0,require_number:O??!0,require_special:H??!0},{error:L}=await J.from("orgs").update({password_policy_config:V}).eq("id",D);if(L){if(!Y)K.error(`Could not update password policy: ${p(L)}`);throw Error(`Could not update password policy: ${p(L)}`)}if(!Y)if($)K.success("✓ Password policy enabled for this organization"),K.info(` - Minimum length: ${V.min_length} characters`),K.info(` - Require uppercase: ${V.require_uppercase?"Yes":"No"}`),K.info(` - Require number: ${V.require_number?"Yes":"No"}`),K.info(` - Require special character: ${V.require_special?"Yes":"No"}`);else K.success("✓ Password policy disabled for this organization");if(F===void 0&&B===void 0&&q===void 0&&M===void 0&&U===void 0&&N===void 0){if(await H0(Z.apikey,{channel:"organization",event:$?"Password Policy Enabled":"Password Policy Disabled",icon:"\uD83D\uDD11",user_id:D,tags:{"org-name":Q.name},notify:!1}).catch(()=>{}),!Y)$0("Done ✅");return{orgId:D,name:Q.name,email:Q.management_email,passwordPolicy:$}}}if(M!==void 0||U!==void 0||N!==void 0){if(!Y)K.info("Updating API key security settings...");if(U!==void 0&&U!==null){if(U<1||U>365){if(!Y)K.error("Maximum API key expiration days must be between 1 and 365");throw Error("Maximum API key expiration days must be between 1 and 365")}}let V={};if(M!==void 0)V.require_apikey_expiration=M;if(U!==void 0)V.max_apikey_expiration_days=U;if(N!==void 0)V.enforce_hashed_api_keys=N;let{error:L}=await J.from("orgs").update(V).eq("id",D);if(L){if(!Y)K.error(`Could not update API key settings: ${p(L)}`);throw Error(`Could not update API key settings: ${p(L)}`)}if(!Y){if(M!==void 0)K.success(`✓ API key expiration requirement: ${M?"Enabled":"Disabled"}`);if(U!==void 0)if(U===null)K.success("✓ Maximum API key expiration days: No limit");else K.success(`✓ Maximum API key expiration days: ${U}`);if(N!==void 0)K.success(`✓ Hashed API keys enforcement: ${N?"Enabled":"Disabled"}`)}if(F===void 0&&B===void 0&&q===void 0&&$===void 0){if(await H0(Z.apikey,{channel:"organization",event:"API Key Settings Updated",icon:"\uD83D\uDD10",user_id:D,tags:{"org-name":Q.name},notify:!1}).catch(()=>{}),!Y)$0("Done ✅");return{orgId:D,name:Q.name,email:Q.management_email}}}if(!Y&&!F){let V=await R6({message:"New organization name:",placeholder:Q.name||"My Organization"});if(c0(V))throw K.error("Canceled updating organization"),Error("Organization update cancelled");F=V}if(!Y&&!B){let V=await R6({message:"Management email:",placeholder:Q.management_email||"admin@example.com"});if(c0(V))throw K.error("Canceled updating organization"),Error("Organization update cancelled");B=V}if(!F||!B){if(!Y)K.error("Missing arguments, you need to provide an organization name and management email");throw Error("Missing organization name or management email")}if(!Y)K.info(`Updating organization "${D}"`);let{error:z}=await J.from("orgs").update({name:F,management_email:B}).eq("id",D);if(z){if(!Y)K.error(`Could not update organization ${p(z)}`);throw Error(`Could not update organization: ${p(z)}`)}if(await H0(Z.apikey,{channel:"organization",event:"Organization Updated",icon:"✏️",user_id:D,tags:{"org-name":F},notify:!1}).catch(()=>{}),!Y)K.success("Organization updated"),$0("Done ✅");return{orgId:D,name:F,email:B,enforce2fa:q??Q.enforcing_2fa}}async function Ih(D,X=!1){if(!X)q0("Getting user id");let Y={...D,apikey:D.apikey||Q0()};if(!Y.apikey){if(!X)K.error("Missing API key, you need to provide an API key to fetch the user id");throw Error("Missing API key")}try{let Z=await z0(Y.apikey,Y.supaHost,Y.supaAnon),J=await N0(Z,Y.apikey,["read","all","write"]);if(!X)$0(`Done ✅: ${J}`);return J}catch(Z){if(!X)K.error(`Error getting user id ${p(Z)}`);throw Z instanceof Error?Z:Error(String(Z))}}function k0(D){let X=D instanceof Error?D.message:String(D),Y=J5(D);return{success:!1,error:X,isSecurityPolicyError:Y.isSecurityPolicyError,securityPolicyMessage:Y.isSecurityPolicyError?Y.message:void 0}}class GD{apikey;supaHost;supaAnon;constructor(D){this.apikey=D?.apikey,this.supaHost=D?.supaHost,this.supaAnon=D?.supaAnon}async login(D){try{return await Ah(D.apikey,{local:D.local??!1,supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon},!0),{success:!0}}catch(X){return k0(X)}}async doctor(D){try{return{success:!0,data:await Gk({packageJson:D?.packageJson},!0)}}catch(X){return k0(X)}}async addApp(D){try{let X={apikey:D.apikey||this.apikey||Q0(!0),supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon,name:D.name,icon:D.icon};return await Fk(D.appId,X,void 0,!0),{success:!0}}catch(X){return k0(X)}}async updateApp(D){try{let X={apikey:D.apikey||this.apikey||Q0(!0),supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon,name:D.name,icon:D.icon,retention:D.retention};return await Hk(D.appId,X,!0),{success:!0}}catch(X){return k0(X)}}async deleteApp(D,X=!1){try{let Y={apikey:this.apikey||Q0(!0),supaHost:this.supaHost,supaAnon:this.supaAnon};return await Bk(D,Y,!1,X),{success:!0}}catch(Y){return k0(Y)}}async listApps(){try{let D={apikey:this.apikey||Q0(!0),supaHost:this.supaHost,supaAnon:this.supaAnon};return{success:!0,data:(await Ok(D,!1)).map((Z)=>({appId:Z.app_id,name:Z.name||"Unknown",iconUrl:Z.icon_url||void 0,createdAt:new Date(Z.created_at||"")}))}}catch(D){return k0(D)}}async getAccountId(D){try{let X={apikey:D?.apikey||this.apikey||Q0(!0),supaHost:D?.supaHost||this.supaHost,supaAnon:D?.supaAnon||this.supaAnon};return{success:!0,data:await Ih(X,!0)}}catch(X){return k0(X)}}async checkBundleCompatibility(D){try{let X={apikey:D.apikey||this.apikey||Q0(!0),channel:D.channel,text:D.textOutput??!1,packageJson:D.packageJson,nodeModules:D.nodeModules,supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon};return{success:!0,data:(await Ak(D.appId,X,!0)).finalCompatibility}}catch(X){return k0(X)}}async encryptBundle(D){try{return{success:!0,data:await kk(D.zipPath,D.checksum,{key:D.keyPath,keyData:D.keyData,json:D.json,packageJson:D.packageJson},!0)}}catch(X){return k0(X)}}async decryptBundle(D){try{return{success:!0,data:await xk(D.zipPath,D.ivSessionKey,{key:D.keyPath,keyData:D.keyData,checksum:D.checksum,packageJson:D.packageJson},!0)}}catch(X){return k0(X)}}async zipBundle(D){try{return{success:!0,data:await $h(D.appId,{apikey:this.apikey||Q0(!0),path:D.path,bundle:D.bundle,name:D.name,codeCheck:D.codeCheck,json:D.json,keyV2:D.keyV2,packageJson:D.packageJson},!0)}}catch(X){return k0(X)}}async uploadBundle(D){try{let X={apikey:D.apikey||this.apikey||Q0(!0),supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon,path:D.path,bundle:D.bundle,channel:D.channel,external:D.external,key:D.encrypt!==!1,keyV2:D.encryptionKey,timeout:D.timeout,tus:D.useTus,comment:D.comment,minUpdateVersion:D.minUpdateVersion,autoMinUpdateVersion:D.autoMinUpdateVersion,selfAssign:D.selfAssign,packageJson:D.packageJsonPaths,ignoreMetadataCheck:D.ignoreCompatibilityCheck,codeCheck:!D.disableCodeCheck,zip:D.useZip},Y=await WG(D.appId,X,!0);return{success:Y.success,bundleId:Y.bundle,checksum:Y.checksum??null,encryptionMethod:Y.encryptionMethod,sessionKey:Y.sessionKey,ivSessionKey:Y.ivSessionKey,storageProvider:Y.storageProvider,skipped:Y.skipped,reason:Y.reason}}catch(X){return k0(X)}}async listBundles(D){try{let X=this.apikey||Q0(!0),Y=await z0(X,this.supaHost,this.supaAnon);return{success:!0,data:(await AJ(Y,D)).map((Q)=>({id:Q.id.toString(),version:Q.name,uploadedAt:new Date(Q.created_at||""),size:0,encrypted:Q.session_key!==null}))}}catch(X){return k0(X)}}async deleteBundle(D,X){try{let Y={apikey:this.apikey||Q0(!0),supaHost:this.supaHost,supaAnon:this.supaAnon,bundle:X};return await fk(X,D,Y,!0),{success:!0}}catch(Y){return k0(Y)}}async cleanupBundles(D){try{let X={apikey:D.apikey||this.apikey||Q0(!0),supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon,bundle:D.bundle||"",version:"",keep:D.keep||4,force:D.force||!1,ignoreChannel:D.ignoreChannel||!1};return{success:!0,data:await Rk(D.appId,X,!0)}}catch(X){return k0(X)}}async requestBuild(D){try{let X=D.credentials,Y={apikey:D.apikey||this.apikey||Q0(!0),supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon,path:D.path,platform:D.platform,userId:D.userId,buildCertificateBase64:X?.BUILD_CERTIFICATE_BASE64,buildProvisionProfileBase64:X?.BUILD_PROVISION_PROFILE_BASE64,buildProvisionProfileBase64Prod:X?.BUILD_PROVISION_PROFILE_BASE64_PROD,p12Password:X?.P12_PASSWORD,appleKeyId:X?.APPLE_KEY_ID,appleIssuerId:X?.APPLE_ISSUER_ID,appleKeyContent:X?.APPLE_KEY_CONTENT,appStoreConnectTeamId:X?.APP_STORE_CONNECT_TEAM_ID,androidKeystoreFile:X?.ANDROID_KEYSTORE_FILE,keystoreKeyAlias:X?.KEYSTORE_KEY_ALIAS,keystoreKeyPassword:X?.KEYSTORE_KEY_PASSWORD,keystoreStorePassword:X?.KEYSTORE_STORE_PASSWORD,playConfigJson:X?.PLAY_CONFIG_JSON},Z=await Nk(D.appId,Y,!0);if(Z.success&&Z.jobId)return{success:!0,data:{jobId:Z.jobId,uploadUrl:Z.uploadUrl||"",status:Z.status||"unknown"}};return{success:!1,error:Z.error||"Unknown error during build request"}}catch(X){return k0(X)}}async getCurrentBundle(D,X,Y){try{let Z={apikey:Y?.apikey||this.apikey||Q0(!0),quiet:!0,supaHost:Y?.supaHost||this.supaHost,supaAnon:Y?.supaAnon||this.supaAnon};return{success:!0,data:await Oh(X,D,Z,!0)}}catch(Z){return k0(Z)}}async addChannel(D){try{let X={apikey:D.apikey||this.apikey||Q0(!0),supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon,default:D.default,selfAssign:D.selfAssign};return await Gh(D.channelId,D.appId,X,!0),{success:!0}}catch(X){return k0(X)}}async updateChannel(D){try{let X={apikey:D.apikey||this.apikey||Q0(!0),supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon,bundle:D.bundle??void 0,state:D.state,downgrade:D.downgrade,ios:D.ios,android:D.android,selfAssign:D.selfAssign,disableAutoUpdate:D.disableAutoUpdate??void 0,dev:D.dev,emulator:D.emulator,device:D.device,prod:D.prod,latest:!1,latestRemote:!1,packageJson:void 0,ignoreMetadataCheck:!1};return await Mh(D.channelId,D.appId,X,!0),{success:!0}}catch(X){return k0(X)}}async deleteChannel(D,X,Y=!1){try{let Z={apikey:this.apikey||Q0(!0),supaHost:this.supaHost,supaAnon:this.supaAnon,deleteBundle:Y,successIfNotFound:!1};return await Wh(D,X,Z,!0),{success:!0}}catch(Z){return k0(Z)}}async listChannels(D){try{let X={apikey:this.apikey||Q0(!0),supaHost:this.supaHost,supaAnon:this.supaAnon};return{success:!0,data:await Hh(D,X,!0)}}catch(X){return k0(X)}}async generateEncryptionKeys(D){try{return await Nh({force:D?.force,setupChannel:D?.setupChannel},!0),{success:!0}}catch(X){return k0(X)}}async saveEncryptionKey(D){try{return await Vh({key:D?.keyPath,keyData:D?.keyData,setupChannel:D?.setupChannel},!0),{success:!0}}catch(X){return k0(X)}}async deleteLegacyEncryptionKey(D){try{return{success:!0,data:{deleted:await Uh({force:D?.force,setupChannel:D?.setupChannel},!0)}}}catch(X){return k0(X)}}async listOrganizations(D){try{let X={apikey:D?.apikey||this.apikey||Q0(!0),supaHost:D?.supaHost||this.supaHost,supaAnon:D?.supaAnon||this.supaAnon};return{success:!0,data:(await jh(X,!0)).map((J)=>({id:String(J.id??J.gid??""),name:J.name??"Unknown",role:J.role??void 0,appCount:typeof J.app_count==="number"?J.app_count:void 0,email:J.management_email??void 0,createdAt:J.created_at?new Date(J.created_at):void 0}))}}catch(X){return k0(X)}}async addOrganization(D){try{let X={apikey:D.apikey||this.apikey||Q0(!0),supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon,name:D.name,email:D.email},Y=await Eh(X,!0);return{success:!0,data:{id:String(Y.id??Y.gid??""),name:Y.name??D.name,role:"owner",appCount:0,email:Y.management_email??D.email,createdAt:Y.created_at?new Date(Y.created_at):void 0}}}catch(X){return k0(X)}}async updateOrganization(D){try{let X={apikey:D.apikey||this.apikey||Q0(!0),supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon,name:D.name,email:D.email},Y=await Th(D.orgId,X,!0);return{success:!0,data:{id:Y.orgId,name:Y.name,email:Y.email}}}catch(X){return k0(X)}}async deleteOrganization(D,X){try{let Y={apikey:X?.apikey||this.apikey||Q0(!0),supaHost:X?.supaHost||this.supaHost,supaAnon:X?.supaAnon||this.supaAnon,autoConfirm:X?.autoConfirm??!0};return{success:!0,data:{deleted:await Ch(D,Y,!0)}}}catch(Y){return k0(Y)}}async getStats(D){try{let X=D.apikey||this.apikey||Q0(!0),Y=await C8(),Z={appId:D.appId,devicesId:D.deviceIds,search:D.search,order:D.order,rangeStart:D.after||D.rangeStart,rangeEnd:D.rangeEnd,limit:D.limit},J=await fetch(`${Y.hostApi}/private/stats`,{method:"POST",headers:{"Content-Type":"application/json",capgkey:X},body:JSON.stringify(Z)});if(!J.ok)throw Error(`HTTP error! status: ${J.status}`);return{success:!0,data:(await J.json()).map((F)=>({appId:F.app_id,deviceId:F.device_id,action:F.action,versionId:F.version_id,version:F.version,createdAt:F.created_at}))}}catch(X){return k0(X)}}async setAppSetting(D,X){try{return await Kk(D,{apikey:X.apikey||this.apikey||Q0(!0),bool:X.bool,string:X.string},!0),{success:!0}}catch(Y){return k0(Y)}}}async function pX0(D){return new GD({apikey:D.apikey,supaHost:D.supaHost,supaAnon:D.supaAnon}).uploadBundle(D)}async function aX0(D){return new GD({supaHost:D.supaHost,supaAnon:D.supaAnon}).login(D)}async function tX0(D){return new GD().doctor(D)}async function rX0(D){return new GD({apikey:D.apikey,supaHost:D.supaHost,supaAnon:D.supaAnon}).checkBundleCompatibility(D)}async function sX0(D){return new GD().encryptBundle(D)}async function oX0(D){return new GD().decryptBundle(D)}async function eX0(D){return new GD().zipBundle(D)}async function DY0(D){return new GD().generateEncryptionKeys(D)}async function XY0(D){return new GD().saveEncryptionKey(D)}async function YY0(D){return new GD().deleteLegacyEncryptionKey(D)}async function ZY0(D,X,Y){return new GD({apikey:Y?.apikey,supaHost:Y?.supaHost,supaAnon:Y?.supaAnon}).getCurrentBundle(D,X,Y)}async function JY0(D,X){return new GD({apikey:X.apikey}).setAppSetting(D,X)}async function QY0(D){return new GD({apikey:D?.apikey,supaHost:D?.supaHost,supaAnon:D?.supaAnon}).getAccountId(D)}async function wY0(D){return new GD({apikey:D?.apikey,supaHost:D?.supaHost,supaAnon:D?.supaAnon}).listOrganizations(D)}async function FY0(D){return new GD({apikey:D.apikey,supaHost:D.supaHost,supaAnon:D.supaAnon}).addOrganization(D)}async function BY0(D){return new GD({apikey:D.apikey,supaHost:D.supaHost,supaAnon:D.supaAnon}).updateOrganization(D)}async function qY0(D,X){return new GD({apikey:X?.apikey,supaHost:X?.supaHost,supaAnon:X?.supaAnon}).deleteOrganization(D,X)}async function $Y0(D){return new GD({apikey:D.apikey,supaHost:D.supaHost,supaAnon:D.supaAnon}).addApp(D)}async function GY0(D,X){return new GD(X).listBundles(D)}async function OY0(D){return new GD({apikey:D.apikey,supaHost:D.supaHost,supaAnon:D.supaAnon}).addChannel(D)}async function WY0(D){return new GD({apikey:D.apikey,supaHost:D.supaHost,supaAnon:D.supaAnon}).requestBuild(D)}async function HY0(D){return new GD({apikey:D.apikey,supaHost:D.supaHost,supaAnon:D.supaAnon}).getStats(D)}async function KY0(){try{return await K0()}catch{return null}}
410
+ To regain access, enable 2FA on your account at https://web.capgo.app/settings/account`)}}async function jh(D,X=!1){if(!X)q0("List organizations");await o0();let Y={...D,apikey:D.apikey||Q0()};if(!Y.apikey){if(!X)K.error("Missing API key, you need to provide an API key to list organizations");throw Error("Missing API key")}let Z=await K0(Y.apikey,Y.supaHost,Y.supaAnon);if(await N0(Z,Y.apikey,["read","write","all"]),!X)K.info("Getting organizations from Capgo");let{error:J,data:Q}=await Z.rpc("get_orgs_v7");if(J){if(!X)K.error(`Cannot get organizations ${p(J)}`);throw Error(`Cannot get organizations: ${p(J)}`)}let w=Q||[];if(!X)K.info(`Organizations found: ${w.length}`),iX0(w,X),$0("Done ✅");return w}async function Th(D,X,Y=!1){if(!Y)q0("Updating organization");await o0();let Z={...X,apikey:X.apikey||Q0()};if(!Z.apikey){if(!Y)K.error("Missing API key, you need to provide an API key to update an organization");throw Error("Missing API key")}if(!D){if(!Y)K.error("Missing argument, you need to provide an organization ID");throw Error("Missing organization id")}let J=await K0(Z.apikey,Z.supaHost,Z.supaAnon);await N0(J,Z.apikey,["write","all"]),await WJ(J,D,Y);let{data:Q,error:w}=await J.from("orgs").select("name, management_email, created_by, enforcing_2fa, password_policy_config, require_apikey_expiration, max_apikey_expiration_days, enforce_hashed_api_keys").eq("id",D).single();if(w||!Q){if(!Y)K.error(`Cannot get organization details ${p(w)}`);throw Error(`Cannot get organization details: ${p(w)}`)}let{name:F,email:B,enforce2fa:q}=Z,{passwordPolicy:$,minLength:G,requireUppercase:W,requireNumber:O,requireSpecial:H}=Z,{requireApikeyExpiration:M,maxApikeyExpirationDays:U,enforceHashedApiKeys:N}=Z;if(q!==void 0){if(!Y){if(q&&!Q.enforcing_2fa){K.info("Checking organization members 2FA status...");let{data:C,error:y}=await J.rpc("check_org_members_2fa_enabled",{org_id:D});if(y)throw K.error(`Cannot check members 2FA status: ${p(y)}`),Error("Cannot check members 2FA status");let{data:A,error:k}=await J.rpc("has_2fa_enabled");if(k)throw K.error(`Cannot check your 2FA status: ${p(k)}`),Error("Cannot check your 2FA status");let{data:f,error:S}=await J.rpc("get_identity_apikey_only",{keymode:["read","upload","write","all"]});if(S||!f)throw K.error(`Cannot get current user identity: ${S?p(S):"No user ID returned"}`),Error("Cannot get current user identity");let v=C?.filter((b)=>!b["2fa_enabled"]&&b.user_id!==f)||[];if(v.length>0||!A){if(K.warn("⚠️ Warning: Enabling 2FA enforcement will affect access"),K.message("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"),!A)K.warn("\uD83D\uDD10 YOU do not have 2FA enabled! By enabling 2FA enforcement, you will LOSE ACCESS to this organization until you enable 2FA on your account.");if(v.length>0){let{data:n,error:h}=await J.rpc("get_org_members",{guild_id:D});if(h)throw K.error(`Cannot get organization members: ${p(h)}`),Error("Cannot get organization members");let E=new Map(n?.map((g)=>[g.uid,g])||[]),P=v.map((g)=>{return E.get(g.user_id)?.email||g.user_id}),x=v.length===1?"member does":"members do",_=v.length===1?"This member will":"These members will";K.warn(`${v.length} ${x} not have 2FA enabled: ${P.join(", ")}`),K.warn(`${_} lose access until they enable 2FA.`)}let b=await oD({message:"Are you sure you want to enable 2FA enforcement?"});if(c0(b)||!b)throw K.error("Canceled enabling 2FA enforcement"),Error("2FA enforcement cancelled")}K.info("Enabling 2FA enforcement for organization...")}else if(!q&&Q.enforcing_2fa)K.info("Disabling 2FA enforcement for organization...")}let{error:V}=await J.from("orgs").update({enforcing_2fa:q}).eq("id",D);if(V){if(!Y)K.error(`Could not update 2FA enforcement: ${p(V)}`);throw Error(`Could not update 2FA enforcement: ${p(V)}`)}if(!Y)if(q)K.success("✓ 2FA enforcement enabled for this organization");else K.success("✓ 2FA enforcement disabled for this organization");if(F===void 0&&B===void 0&&!($!==void 0||M!==void 0||U!==void 0||N!==void 0)){if(await z0(Z.apikey,{channel:"organization",event:q?"Organization 2FA Enabled":"Organization 2FA Disabled",icon:"\uD83D\uDD10",user_id:D,tags:{"org-name":Q.name,"enforce-2fa":q.toString()},notify:!1}).catch(()=>{}),!Y)$0("Done ✅");return{orgId:D,name:Q.name,email:Q.management_email,enforce2fa:q}}}if($!==void 0){if(!Y)if($){K.info("Configuring password policy for organization...");let{data:C,error:y}=await J.rpc("check_org_members_password_policy",{org_id:D});if(y){if(!y.message?.includes("NO_RIGHTS"))K.warn(`Cannot check members password policy status: ${p(y)}`)}else if(C){let A=C.filter((k)=>!k.password_policy_compliant);if(A.length>0){K.warn(`⚠️ Warning: ${A.length} member(s) do not meet the password policy requirements`),K.warn("These members will need to update their passwords to regain access.");let k=await oD({message:"Are you sure you want to enable the password policy?"});if(c0(k)||!k)throw K.error("Canceled enabling password policy"),Error("Password policy configuration cancelled")}}}else K.info("Disabling password policy for organization...");let V={enabled:$,min_length:G??10,require_uppercase:W??!0,require_number:O??!0,require_special:H??!0},{error:L}=await J.from("orgs").update({password_policy_config:V}).eq("id",D);if(L){if(!Y)K.error(`Could not update password policy: ${p(L)}`);throw Error(`Could not update password policy: ${p(L)}`)}if(!Y)if($)K.success("✓ Password policy enabled for this organization"),K.info(` - Minimum length: ${V.min_length} characters`),K.info(` - Require uppercase: ${V.require_uppercase?"Yes":"No"}`),K.info(` - Require number: ${V.require_number?"Yes":"No"}`),K.info(` - Require special character: ${V.require_special?"Yes":"No"}`);else K.success("✓ Password policy disabled for this organization");if(F===void 0&&B===void 0&&q===void 0&&M===void 0&&U===void 0&&N===void 0){if(await z0(Z.apikey,{channel:"organization",event:$?"Password Policy Enabled":"Password Policy Disabled",icon:"\uD83D\uDD11",user_id:D,tags:{"org-name":Q.name},notify:!1}).catch(()=>{}),!Y)$0("Done ✅");return{orgId:D,name:Q.name,email:Q.management_email,passwordPolicy:$}}}if(M!==void 0||U!==void 0||N!==void 0){if(!Y)K.info("Updating API key security settings...");if(U!==void 0&&U!==null){if(U<1||U>365){if(!Y)K.error("Maximum API key expiration days must be between 1 and 365");throw Error("Maximum API key expiration days must be between 1 and 365")}}let V={};if(M!==void 0)V.require_apikey_expiration=M;if(U!==void 0)V.max_apikey_expiration_days=U;if(N!==void 0)V.enforce_hashed_api_keys=N;let{error:L}=await J.from("orgs").update(V).eq("id",D);if(L){if(!Y)K.error(`Could not update API key settings: ${p(L)}`);throw Error(`Could not update API key settings: ${p(L)}`)}if(!Y){if(M!==void 0)K.success(`✓ API key expiration requirement: ${M?"Enabled":"Disabled"}`);if(U!==void 0)if(U===null)K.success("✓ Maximum API key expiration days: No limit");else K.success(`✓ Maximum API key expiration days: ${U}`);if(N!==void 0)K.success(`✓ Hashed API keys enforcement: ${N?"Enabled":"Disabled"}`)}if(F===void 0&&B===void 0&&q===void 0&&$===void 0){if(await z0(Z.apikey,{channel:"organization",event:"API Key Settings Updated",icon:"\uD83D\uDD10",user_id:D,tags:{"org-name":Q.name},notify:!1}).catch(()=>{}),!Y)$0("Done ✅");return{orgId:D,name:Q.name,email:Q.management_email}}}if(!Y&&!F){let V=await R6({message:"New organization name:",placeholder:Q.name||"My Organization"});if(c0(V))throw K.error("Canceled updating organization"),Error("Organization update cancelled");F=V}if(!Y&&!B){let V=await R6({message:"Management email:",placeholder:Q.management_email||"admin@example.com"});if(c0(V))throw K.error("Canceled updating organization"),Error("Organization update cancelled");B=V}if(!F||!B){if(!Y)K.error("Missing arguments, you need to provide an organization name and management email");throw Error("Missing organization name or management email")}if(!Y)K.info(`Updating organization "${D}"`);let{error:z}=await J.from("orgs").update({name:F,management_email:B}).eq("id",D);if(z){if(!Y)K.error(`Could not update organization ${p(z)}`);throw Error(`Could not update organization: ${p(z)}`)}if(await z0(Z.apikey,{channel:"organization",event:"Organization Updated",icon:"✏️",user_id:D,tags:{"org-name":F},notify:!1}).catch(()=>{}),!Y)K.success("Organization updated"),$0("Done ✅");return{orgId:D,name:F,email:B,enforce2fa:q??Q.enforcing_2fa}}async function Ih(D,X=!1){if(!X)q0("Getting user id");let Y={...D,apikey:D.apikey||Q0()};if(!Y.apikey){if(!X)K.error("Missing API key, you need to provide an API key to fetch the user id");throw Error("Missing API key")}try{let Z=await K0(Y.apikey,Y.supaHost,Y.supaAnon),J=await N0(Z,Y.apikey,["read","all","write"]);if(!X)$0(`Done ✅: ${J}`);return J}catch(Z){if(!X)K.error(`Error getting user id ${p(Z)}`);throw Z instanceof Error?Z:Error(String(Z))}}function k0(D){let X=D instanceof Error?D.message:String(D),Y=J5(D);return{success:!1,error:X,isSecurityPolicyError:Y.isSecurityPolicyError,securityPolicyMessage:Y.isSecurityPolicyError?Y.message:void 0}}class GD{apikey;supaHost;supaAnon;constructor(D){this.apikey=D?.apikey,this.supaHost=D?.supaHost,this.supaAnon=D?.supaAnon}async login(D){try{return await Ah(D.apikey,{local:D.local??!1,supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon},!0),{success:!0}}catch(X){return k0(X)}}async doctor(D){try{return{success:!0,data:await Gk({packageJson:D?.packageJson},!0)}}catch(X){return k0(X)}}async addApp(D){try{let X={apikey:D.apikey||this.apikey||Q0(!0),supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon,name:D.name,icon:D.icon};return await Fk(D.appId,X,void 0,!0),{success:!0}}catch(X){return k0(X)}}async updateApp(D){try{let X={apikey:D.apikey||this.apikey||Q0(!0),supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon,name:D.name,icon:D.icon,retention:D.retention};return await Hk(D.appId,X,!0),{success:!0}}catch(X){return k0(X)}}async deleteApp(D,X=!1){try{let Y={apikey:this.apikey||Q0(!0),supaHost:this.supaHost,supaAnon:this.supaAnon};return await Bk(D,Y,!1,X),{success:!0}}catch(Y){return k0(Y)}}async listApps(){try{let D={apikey:this.apikey||Q0(!0),supaHost:this.supaHost,supaAnon:this.supaAnon};return{success:!0,data:(await Ok(D,!1)).map((Z)=>({appId:Z.app_id,name:Z.name||"Unknown",iconUrl:Z.icon_url||void 0,createdAt:new Date(Z.created_at||"")}))}}catch(D){return k0(D)}}async getAccountId(D){try{let X={apikey:D?.apikey||this.apikey||Q0(!0),supaHost:D?.supaHost||this.supaHost,supaAnon:D?.supaAnon||this.supaAnon};return{success:!0,data:await Ih(X,!0)}}catch(X){return k0(X)}}async checkBundleCompatibility(D){try{let X={apikey:D.apikey||this.apikey||Q0(!0),channel:D.channel,text:D.textOutput??!1,packageJson:D.packageJson,nodeModules:D.nodeModules,supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon};return{success:!0,data:(await Ak(D.appId,X,!0)).finalCompatibility}}catch(X){return k0(X)}}async encryptBundle(D){try{return{success:!0,data:await kk(D.zipPath,D.checksum,{key:D.keyPath,keyData:D.keyData,json:D.json,packageJson:D.packageJson},!0)}}catch(X){return k0(X)}}async decryptBundle(D){try{return{success:!0,data:await xk(D.zipPath,D.ivSessionKey,{key:D.keyPath,keyData:D.keyData,checksum:D.checksum,packageJson:D.packageJson},!0)}}catch(X){return k0(X)}}async zipBundle(D){try{return{success:!0,data:await $h(D.appId,{apikey:this.apikey||Q0(!0),path:D.path,bundle:D.bundle,name:D.name,codeCheck:D.codeCheck,json:D.json,keyV2:D.keyV2,packageJson:D.packageJson},!0)}}catch(X){return k0(X)}}async uploadBundle(D){try{let X={apikey:D.apikey||this.apikey||Q0(!0),supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon,path:D.path,bundle:D.bundle,channel:D.channel,external:D.external,key:D.encrypt!==!1,keyV2:D.encryptionKey,timeout:D.timeout,tus:D.useTus,comment:D.comment,minUpdateVersion:D.minUpdateVersion,autoMinUpdateVersion:D.autoMinUpdateVersion,selfAssign:D.selfAssign,packageJson:D.packageJsonPaths,ignoreMetadataCheck:D.ignoreCompatibilityCheck,codeCheck:!D.disableCodeCheck,zip:D.useZip},Y=await WG(D.appId,X,!0);return{success:Y.success,bundleId:Y.bundle,checksum:Y.checksum??null,encryptionMethod:Y.encryptionMethod,sessionKey:Y.sessionKey,ivSessionKey:Y.ivSessionKey,storageProvider:Y.storageProvider,skipped:Y.skipped,reason:Y.reason}}catch(X){return k0(X)}}async listBundles(D){try{let X=this.apikey||Q0(!0),Y=await K0(X,this.supaHost,this.supaAnon);return{success:!0,data:(await AJ(Y,D)).map((Q)=>({id:Q.id.toString(),version:Q.name,uploadedAt:new Date(Q.created_at||""),size:0,encrypted:Q.session_key!==null}))}}catch(X){return k0(X)}}async deleteBundle(D,X){try{let Y={apikey:this.apikey||Q0(!0),supaHost:this.supaHost,supaAnon:this.supaAnon,bundle:X};return await fk(X,D,Y,!0),{success:!0}}catch(Y){return k0(Y)}}async cleanupBundles(D){try{let X={apikey:D.apikey||this.apikey||Q0(!0),supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon,bundle:D.bundle||"",version:"",keep:D.keep||4,force:D.force||!1,ignoreChannel:D.ignoreChannel||!1};return{success:!0,data:await Rk(D.appId,X,!0)}}catch(X){return k0(X)}}async requestBuild(D){try{let X=D.credentials,Y={apikey:D.apikey||this.apikey||Q0(!0),supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon,path:D.path,platform:D.platform,userId:D.userId,buildCertificateBase64:X?.BUILD_CERTIFICATE_BASE64,buildProvisionProfileBase64:X?.BUILD_PROVISION_PROFILE_BASE64,buildProvisionProfileBase64Prod:X?.BUILD_PROVISION_PROFILE_BASE64_PROD,p12Password:X?.P12_PASSWORD,appleKeyId:X?.APPLE_KEY_ID,appleIssuerId:X?.APPLE_ISSUER_ID,appleKeyContent:X?.APPLE_KEY_CONTENT,appStoreConnectTeamId:X?.APP_STORE_CONNECT_TEAM_ID,androidKeystoreFile:X?.ANDROID_KEYSTORE_FILE,keystoreKeyAlias:X?.KEYSTORE_KEY_ALIAS,keystoreKeyPassword:X?.KEYSTORE_KEY_PASSWORD,keystoreStorePassword:X?.KEYSTORE_STORE_PASSWORD,playConfigJson:X?.PLAY_CONFIG_JSON},Z=await Nk(D.appId,Y,!0);if(Z.success&&Z.jobId)return{success:!0,data:{jobId:Z.jobId,uploadUrl:Z.uploadUrl||"",status:Z.status||"unknown"}};return{success:!1,error:Z.error||"Unknown error during build request"}}catch(X){return k0(X)}}async getCurrentBundle(D,X,Y){try{let Z={apikey:Y?.apikey||this.apikey||Q0(!0),quiet:!0,supaHost:Y?.supaHost||this.supaHost,supaAnon:Y?.supaAnon||this.supaAnon};return{success:!0,data:await Oh(X,D,Z,!0)}}catch(Z){return k0(Z)}}async addChannel(D){try{let X={apikey:D.apikey||this.apikey||Q0(!0),supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon,default:D.default,selfAssign:D.selfAssign};return await Gh(D.channelId,D.appId,X,!0),{success:!0}}catch(X){return k0(X)}}async updateChannel(D){try{let X={apikey:D.apikey||this.apikey||Q0(!0),supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon,bundle:D.bundle??void 0,state:D.state,downgrade:D.downgrade,ios:D.ios,android:D.android,selfAssign:D.selfAssign,disableAutoUpdate:D.disableAutoUpdate??void 0,dev:D.dev,emulator:D.emulator,device:D.device,prod:D.prod,latest:!1,latestRemote:!1,packageJson:void 0,ignoreMetadataCheck:!1};return await Mh(D.channelId,D.appId,X,!0),{success:!0}}catch(X){return k0(X)}}async deleteChannel(D,X,Y=!1){try{let Z={apikey:this.apikey||Q0(!0),supaHost:this.supaHost,supaAnon:this.supaAnon,deleteBundle:Y,successIfNotFound:!1};return await Wh(D,X,Z,!0),{success:!0}}catch(Z){return k0(Z)}}async listChannels(D){try{let X={apikey:this.apikey||Q0(!0),supaHost:this.supaHost,supaAnon:this.supaAnon};return{success:!0,data:await Hh(D,X,!0)}}catch(X){return k0(X)}}async generateEncryptionKeys(D){try{return await Nh({force:D?.force,setupChannel:D?.setupChannel},!0),{success:!0}}catch(X){return k0(X)}}async saveEncryptionKey(D){try{return await Vh({key:D?.keyPath,keyData:D?.keyData,setupChannel:D?.setupChannel},!0),{success:!0}}catch(X){return k0(X)}}async deleteLegacyEncryptionKey(D){try{return{success:!0,data:{deleted:await Uh({force:D?.force,setupChannel:D?.setupChannel},!0)}}}catch(X){return k0(X)}}async listOrganizations(D){try{let X={apikey:D?.apikey||this.apikey||Q0(!0),supaHost:D?.supaHost||this.supaHost,supaAnon:D?.supaAnon||this.supaAnon};return{success:!0,data:(await jh(X,!0)).map((J)=>({id:String(J.id??J.gid??""),name:J.name??"Unknown",role:J.role??void 0,appCount:typeof J.app_count==="number"?J.app_count:void 0,email:J.management_email??void 0,createdAt:J.created_at?new Date(J.created_at):void 0}))}}catch(X){return k0(X)}}async addOrganization(D){try{let X={apikey:D.apikey||this.apikey||Q0(!0),supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon,name:D.name,email:D.email},Y=await Eh(X,!0);return{success:!0,data:{id:String(Y.id??Y.gid??""),name:Y.name??D.name,role:"owner",appCount:0,email:Y.management_email??D.email,createdAt:Y.created_at?new Date(Y.created_at):void 0}}}catch(X){return k0(X)}}async updateOrganization(D){try{let X={apikey:D.apikey||this.apikey||Q0(!0),supaHost:D.supaHost||this.supaHost,supaAnon:D.supaAnon||this.supaAnon,name:D.name,email:D.email},Y=await Th(D.orgId,X,!0);return{success:!0,data:{id:Y.orgId,name:Y.name,email:Y.email}}}catch(X){return k0(X)}}async deleteOrganization(D,X){try{let Y={apikey:X?.apikey||this.apikey||Q0(!0),supaHost:X?.supaHost||this.supaHost,supaAnon:X?.supaAnon||this.supaAnon,autoConfirm:X?.autoConfirm??!0};return{success:!0,data:{deleted:await Ch(D,Y,!0)}}}catch(Y){return k0(Y)}}async getStats(D){try{let X=D.apikey||this.apikey||Q0(!0),Y=await C8(),Z={appId:D.appId,devicesId:D.deviceIds,search:D.search,order:D.order,rangeStart:D.after||D.rangeStart,rangeEnd:D.rangeEnd,limit:D.limit},J=await fetch(`${Y.hostApi}/private/stats`,{method:"POST",headers:{"Content-Type":"application/json",capgkey:X},body:JSON.stringify(Z)});if(!J.ok)throw Error(`HTTP error! status: ${J.status}`);return{success:!0,data:(await J.json()).map((F)=>({appId:F.app_id,deviceId:F.device_id,action:F.action,versionId:F.version_id,version:F.version,createdAt:F.created_at}))}}catch(X){return k0(X)}}async setAppSetting(D,X){try{return await Kk(D,{apikey:X.apikey||this.apikey||Q0(!0),bool:X.bool,string:X.string},!0),{success:!0}}catch(Y){return k0(Y)}}}async function pX0(D){return new GD({apikey:D.apikey,supaHost:D.supaHost,supaAnon:D.supaAnon}).uploadBundle(D)}async function aX0(D){return new GD({supaHost:D.supaHost,supaAnon:D.supaAnon}).login(D)}async function tX0(D){return new GD().doctor(D)}async function rX0(D){return new GD({apikey:D.apikey,supaHost:D.supaHost,supaAnon:D.supaAnon}).checkBundleCompatibility(D)}async function sX0(D){return new GD().encryptBundle(D)}async function oX0(D){return new GD().decryptBundle(D)}async function eX0(D){return new GD().zipBundle(D)}async function DY0(D){return new GD().generateEncryptionKeys(D)}async function XY0(D){return new GD().saveEncryptionKey(D)}async function YY0(D){return new GD().deleteLegacyEncryptionKey(D)}async function ZY0(D,X,Y){return new GD({apikey:Y?.apikey,supaHost:Y?.supaHost,supaAnon:Y?.supaAnon}).getCurrentBundle(D,X,Y)}async function JY0(D,X){return new GD({apikey:X.apikey}).setAppSetting(D,X)}async function QY0(D){return new GD({apikey:D?.apikey,supaHost:D?.supaHost,supaAnon:D?.supaAnon}).getAccountId(D)}async function wY0(D){return new GD({apikey:D?.apikey,supaHost:D?.supaHost,supaAnon:D?.supaAnon}).listOrganizations(D)}async function FY0(D){return new GD({apikey:D.apikey,supaHost:D.supaHost,supaAnon:D.supaAnon}).addOrganization(D)}async function BY0(D){return new GD({apikey:D.apikey,supaHost:D.supaHost,supaAnon:D.supaAnon}).updateOrganization(D)}async function qY0(D,X){return new GD({apikey:X?.apikey,supaHost:X?.supaHost,supaAnon:X?.supaAnon}).deleteOrganization(D,X)}async function $Y0(D){return new GD({apikey:D.apikey,supaHost:D.supaHost,supaAnon:D.supaAnon}).addApp(D)}async function GY0(D,X){return new GD(X).listBundles(D)}async function OY0(D){return new GD({apikey:D.apikey,supaHost:D.supaHost,supaAnon:D.supaAnon}).addChannel(D)}async function WY0(D){return new GD({apikey:D.apikey,supaHost:D.supaHost,supaAnon:D.supaAnon}).requestBuild(D)}async function HY0(D){return new GD({apikey:D.apikey,supaHost:D.supaHost,supaAnon:D.supaAnon}).getStats(D)}async function KY0(){try{return await H0()}catch{return null}}