denotify-client 1.1.22 → 1.1.23

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.
@@ -1,4 +1,4 @@
1
1
  "use strict";var Yi=Object.defineProperty;var Qi=(n,e,t)=>e in n?Yi(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var d=(n,e,t)=>(Qi(n,typeof e!="symbol"?e+"":e,t),t),qr=(n,e,t)=>{if(!e.has(n))throw TypeError("Cannot "+t)};var m=(n,e,t)=>(qr(n,e,"read from private field"),t?t.call(n):e.get(n)),F=(n,e,t)=>{if(e.has(n))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(n):e.set(n,t)},P=(n,e,t,r)=>(qr(n,e,"write to private field"),r?r.call(n,t):e.set(n,t),t),Yn=(n,e,t,r)=>({set _(s){P(n,e,s,t)},get _(){return m(n,e,r)}}),B=(n,e,t)=>(qr(n,e,"access private method"),t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function eo(n,e){for(var t=0;t<e.length;t++){const r=e[t];if(typeof r!="string"&&!Array.isArray(r)){for(const s in r)if(s!=="default"&&!(s in n)){const i=Object.getOwnPropertyDescriptor(r,s);i&&Object.defineProperty(n,s,i.get?i:{enumerable:!0,get:()=>r[s]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var to=globalThis&&globalThis.__awaiter||function(n,e,t,r){function s(i){return i instanceof t?i:new t(function(o){o(i)})}return new(t||(t=Promise))(function(i,o){function a(l){try{u(r.next(l))}catch(h){o(h)}}function c(l){try{u(r.throw(l))}catch(h){o(h)}}function u(l){l.done?i(l.value):s(l.value).then(a,c)}u((r=r.apply(n,e||[])).next())})};const ro=n=>{let e;return n?e=n:typeof fetch>"u"?e=(...t)=>to(void 0,void 0,void 0,function*(){return yield(yield Promise.resolve().then(()=>Rr)).fetch(...t)}):e=fetch,(...t)=>e(...t)};class Sn extends Error{constructor(e,t="FunctionsError",r){super(e),super.name=t,this.context=r}}class no extends Sn{constructor(e){super("Failed to send a request to the Edge Function","FunctionsFetchError",e)}}class so extends Sn{constructor(e){super("Relay Error invoking the Edge Function","FunctionsRelayError",e)}}class io extends Sn{constructor(e){super("Edge Function returned a non-2xx status code","FunctionsHttpError",e)}}var oo=globalThis&&globalThis.__awaiter||function(n,e,t,r){function s(i){return i instanceof t?i:new t(function(o){o(i)})}return new(t||(t=Promise))(function(i,o){function a(l){try{u(r.next(l))}catch(h){o(h)}}function c(l){try{u(r.throw(l))}catch(h){o(h)}}function u(l){l.done?i(l.value):s(l.value).then(a,c)}u((r=r.apply(n,e||[])).next())})};class ao{constructor(e,{headers:t={},customFetch:r}={}){this.url=e,this.headers=t,this.fetch=ro(r)}setAuth(e){this.headers.Authorization=`Bearer ${e}`}invoke(e,t={}){var r;return oo(this,void 0,void 0,function*(){try{const{headers:s,method:i,body:o}=t;let a={},c;o&&(s&&!Object.prototype.hasOwnProperty.call(s,"Content-Type")||!s)&&(typeof Blob<"u"&&o instanceof Blob||o instanceof ArrayBuffer?(a["Content-Type"]="application/octet-stream",c=o):typeof o=="string"?(a["Content-Type"]="text/plain",c=o):typeof FormData<"u"&&o instanceof FormData?c=o:(a["Content-Type"]="application/json",c=JSON.stringify(o)));const u=yield this.fetch(`${this.url}/${e}`,{method:i||"POST",headers:Object.assign(Object.assign(Object.assign({},a),this.headers),s),body:c}).catch(p=>{throw new no(p)}),l=u.headers.get("x-relay-error");if(l&&l==="true")throw new so(u);if(!u.ok)throw new io(u);let h=((r=u.headers.get("Content-Type"))!==null&&r!==void 0?r:"text/plain").split(";")[0].trim(),y;return h==="application/json"?y=yield u.json():h==="application/octet-stream"?y=yield u.blob():h==="multipart/form-data"?y=yield u.formData():y=yield u.text(),{data:y,error:null}}catch(s){return{data:null,error:s}}})}}var co=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function uo(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Ct={},lo={get exports(){return Ct},set exports(n){Ct=n}};(function(n,e){var t=typeof self<"u"?self:co,r=function(){function i(){this.fetch=!1,this.DOMException=t.DOMException}return i.prototype=t,new i}();(function(i){(function(o){var a={searchParams:"URLSearchParams"in i,iterable:"Symbol"in i&&"iterator"in Symbol,blob:"FileReader"in i&&"Blob"in i&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in i,arrayBuffer:"ArrayBuffer"in i};function c(f){return f&&DataView.prototype.isPrototypeOf(f)}if(a.arrayBuffer)var u=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],l=ArrayBuffer.isView||function(f){return f&&u.indexOf(Object.prototype.toString.call(f))>-1};function h(f){if(typeof f!="string"&&(f=String(f)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(f))throw new TypeError("Invalid character in header field name");return f.toLowerCase()}function y(f){return typeof f!="string"&&(f=String(f)),f}function p(f){var b={next:function(){var O=f.shift();return{done:O===void 0,value:O}}};return a.iterable&&(b[Symbol.iterator]=function(){return b}),b}function w(f){this.map={},f instanceof w?f.forEach(function(b,O){this.append(O,b)},this):Array.isArray(f)?f.forEach(function(b){this.append(b[0],b[1])},this):f&&Object.getOwnPropertyNames(f).forEach(function(b){this.append(b,f[b])},this)}w.prototype.append=function(f,b){f=h(f),b=y(b);var O=this.map[f];this.map[f]=O?O+", "+b:b},w.prototype.delete=function(f){delete this.map[h(f)]},w.prototype.get=function(f){return f=h(f),this.has(f)?this.map[f]:null},w.prototype.has=function(f){return this.map.hasOwnProperty(h(f))},w.prototype.set=function(f,b){this.map[h(f)]=y(b)},w.prototype.forEach=function(f,b){for(var O in this.map)this.map.hasOwnProperty(O)&&f.call(b,this.map[O],O,this)},w.prototype.keys=function(){var f=[];return this.forEach(function(b,O){f.push(O)}),p(f)},w.prototype.values=function(){var f=[];return this.forEach(function(b){f.push(b)}),p(f)},w.prototype.entries=function(){var f=[];return this.forEach(function(b,O){f.push([O,b])}),p(f)},a.iterable&&(w.prototype[Symbol.iterator]=w.prototype.entries);function v(f){if(f.bodyUsed)return Promise.reject(new TypeError("Already read"));f.bodyUsed=!0}function g(f){return new Promise(function(b,O){f.onload=function(){b(f.result)},f.onerror=function(){O(f.error)}})}function A(f){var b=new FileReader,O=g(b);return b.readAsArrayBuffer(f),O}function C(f){var b=new FileReader,O=g(b);return b.readAsText(f),O}function X(f){for(var b=new Uint8Array(f),O=new Array(b.length),J=0;J<b.length;J++)O[J]=String.fromCharCode(b[J]);return O.join("")}function U(f){if(f.slice)return f.slice(0);var b=new Uint8Array(f.byteLength);return b.set(new Uint8Array(f)),b.buffer}function be(){return this.bodyUsed=!1,this._initBody=function(f){this._bodyInit=f,f?typeof f=="string"?this._bodyText=f:a.blob&&Blob.prototype.isPrototypeOf(f)?this._bodyBlob=f:a.formData&&FormData.prototype.isPrototypeOf(f)?this._bodyFormData=f:a.searchParams&&URLSearchParams.prototype.isPrototypeOf(f)?this._bodyText=f.toString():a.arrayBuffer&&a.blob&&c(f)?(this._bodyArrayBuffer=U(f.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):a.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(f)||l(f))?this._bodyArrayBuffer=U(f):this._bodyText=f=Object.prototype.toString.call(f):this._bodyText="",this.headers.get("content-type")||(typeof f=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):a.searchParams&&URLSearchParams.prototype.isPrototypeOf(f)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},a.blob&&(this.blob=function(){var f=v(this);if(f)return f;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?v(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(A)}),this.text=function(){var f=v(this);if(f)return f;if(this._bodyBlob)return C(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(X(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},a.formData&&(this.formData=function(){return this.text().then(sr)}),this.json=function(){return this.text().then(JSON.parse)},this}var Dt=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function nr(f){var b=f.toUpperCase();return Dt.indexOf(b)>-1?b:f}function fe(f,b){b=b||{};var O=b.body;if(f instanceof fe){if(f.bodyUsed)throw new TypeError("Already read");this.url=f.url,this.credentials=f.credentials,b.headers||(this.headers=new w(f.headers)),this.method=f.method,this.mode=f.mode,this.signal=f.signal,!O&&f._bodyInit!=null&&(O=f._bodyInit,f.bodyUsed=!0)}else this.url=String(f);if(this.credentials=b.credentials||this.credentials||"same-origin",(b.headers||!this.headers)&&(this.headers=new w(b.headers)),this.method=nr(b.method||this.method||"GET"),this.mode=b.mode||this.mode||null,this.signal=b.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&O)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(O)}fe.prototype.clone=function(){return new fe(this,{body:this._bodyInit})};function sr(f){var b=new FormData;return f.trim().split("&").forEach(function(O){if(O){var J=O.split("="),V=J.shift().replace(/\+/g," "),N=J.join("=").replace(/\+/g," ");b.append(decodeURIComponent(V),decodeURIComponent(N))}}),b}function L(f){var b=new w,O=f.replace(/\r?\n[\t ]+/g," ");return O.split(/\r?\n/).forEach(function(J){var V=J.split(":"),N=V.shift().trim();if(N){var or=V.join(":").trim();b.append(N,or)}}),b}be.call(fe.prototype);function M(f,b){b||(b={}),this.type="default",this.status=b.status===void 0?200:b.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in b?b.statusText:"OK",this.headers=new w(b.headers),this.url=b.url||"",this._initBody(f)}be.call(M.prototype),M.prototype.clone=function(){return new M(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new w(this.headers),url:this.url})},M.error=function(){var f=new M(null,{status:0,statusText:""});return f.type="error",f};var ir=[301,302,303,307,308];M.redirect=function(f,b){if(ir.indexOf(b)===-1)throw new RangeError("Invalid status code");return new M(null,{status:b,headers:{location:f}})},o.DOMException=i.DOMException;try{new o.DOMException}catch{o.DOMException=function(b,O){this.message=b,this.name=O;var J=Error(b);this.stack=J.stack},o.DOMException.prototype=Object.create(Error.prototype),o.DOMException.prototype.constructor=o.DOMException}function wt(f,b){return new Promise(function(O,J){var V=new fe(f,b);if(V.signal&&V.signal.aborted)return J(new o.DOMException("Aborted","AbortError"));var N=new XMLHttpRequest;function or(){N.abort()}N.onload=function(){var Ut={status:N.status,statusText:N.statusText,headers:L(N.getAllResponseHeaders()||"")};Ut.url="responseURL"in N?N.responseURL:Ut.headers.get("X-Request-URL");var zr="response"in N?N.response:N.responseText;O(new M(zr,Ut))},N.onerror=function(){J(new TypeError("Network request failed"))},N.ontimeout=function(){J(new TypeError("Network request failed"))},N.onabort=function(){J(new o.DOMException("Aborted","AbortError"))},N.open(V.method,V.url,!0),V.credentials==="include"?N.withCredentials=!0:V.credentials==="omit"&&(N.withCredentials=!1),"responseType"in N&&a.blob&&(N.responseType="blob"),V.headers.forEach(function(Ut,zr){N.setRequestHeader(zr,Ut)}),V.signal&&(V.signal.addEventListener("abort",or),N.onreadystatechange=function(){N.readyState===4&&V.signal.removeEventListener("abort",or)}),N.send(typeof V._bodyInit>"u"?null:V._bodyInit)})}return wt.polyfill=!0,i.fetch||(i.fetch=wt,i.Headers=w,i.Request=fe,i.Response=M),o.Headers=w,o.Request=fe,o.Response=M,o.fetch=wt,Object.defineProperty(o,"__esModule",{value:!0}),o})({})})(r),r.fetch.ponyfill=!0,delete r.fetch.polyfill;var s=r;e=s.fetch,e.default=s.fetch,e.fetch=s.fetch,e.Headers=s.Headers,e.Request=s.Request,e.Response=s.Response,n.exports=e})(lo,Ct);const Rn=uo(Ct),Rr=eo({__proto__:null,default:Rn},[Ct]);class ho{constructor(e){this.shouldThrowOnError=!1,this.method=e.method,this.url=e.url,this.headers=e.headers,this.schema=e.schema,this.body=e.body,this.shouldThrowOnError=e.shouldThrowOnError,this.signal=e.signal,this.allowEmpty=e.allowEmpty,e.fetch?this.fetch=e.fetch:typeof fetch>"u"?this.fetch=Rn:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}then(e,t){this.schema===void 0||(["GET","HEAD"].includes(this.method)?this.headers["Accept-Profile"]=this.schema:this.headers["Content-Profile"]=this.schema),this.method!=="GET"&&this.method!=="HEAD"&&(this.headers["Content-Type"]="application/json");const r=this.fetch;let s=r(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(async i=>{var o,a,c;let u=null,l=null,h=null,y=i.status,p=i.statusText;if(i.ok){if(this.method!=="HEAD"){const A=await i.text();A===""||(this.headers.Accept==="text/csv"||this.headers.Accept&&this.headers.Accept.includes("application/vnd.pgrst.plan+text")?l=A:l=JSON.parse(A))}const v=(o=this.headers.Prefer)===null||o===void 0?void 0:o.match(/count=(exact|planned|estimated)/),g=(a=i.headers.get("content-range"))===null||a===void 0?void 0:a.split("/");v&&g&&g.length>1&&(h=parseInt(g[1]))}else{const v=await i.text();try{u=JSON.parse(v),Array.isArray(u)&&i.status===404&&(l=[],u=null,y=200,p="OK")}catch{i.status===404&&v===""?(y=204,p="No Content"):u={message:v}}if(u&&this.allowEmpty&&(!((c=u==null?void 0:u.details)===null||c===void 0)&&c.includes("Results contain 0 rows"))&&(u=null,y=200,p="OK"),u&&this.shouldThrowOnError)throw u}return{error:u,data:l,count:h,status:y,statusText:p}});return this.shouldThrowOnError||(s=s.catch(i=>({error:{message:`FetchError: ${i.message}`,details:"",hint:"",code:i.code||""},data:null,count:null,status:0,statusText:""}))),s.then(e,t)}}class fo extends ho{select(e){let t=!1;const r=(e??"*").split("").map(s=>/\s/.test(s)&&!t?"":(s==='"'&&(t=!t),s)).join("");return this.url.searchParams.set("select",r),this.headers.Prefer&&(this.headers.Prefer+=","),this.headers.Prefer+="return=representation",this}order(e,{ascending:t=!0,nullsFirst:r,foreignTable:s}={}){const i=s?`${s}.order`:"order",o=this.url.searchParams.get(i);return this.url.searchParams.set(i,`${o?`${o},`:""}${e}.${t?"asc":"desc"}${r===void 0?"":r?".nullsfirst":".nullslast"}`),this}limit(e,{foreignTable:t}={}){const r=typeof t>"u"?"limit":`${t}.limit`;return this.url.searchParams.set(r,`${e}`),this}range(e,t,{foreignTable:r}={}){const s=typeof r>"u"?"offset":`${r}.offset`,i=typeof r>"u"?"limit":`${r}.limit`;return this.url.searchParams.set(s,`${e}`),this.url.searchParams.set(i,`${t-e+1}`),this}abortSignal(e){return this.signal=e,this}single(){return this.headers.Accept="application/vnd.pgrst.object+json",this}maybeSingle(){return this.headers.Accept="application/vnd.pgrst.object+json",this.allowEmpty=!0,this}csv(){return this.headers.Accept="text/csv",this}geojson(){return this.headers.Accept="application/geo+json",this}explain({analyze:e=!1,verbose:t=!1,settings:r=!1,buffers:s=!1,wal:i=!1,format:o="text"}={}){const a=[e?"analyze":null,t?"verbose":null,r?"settings":null,s?"buffers":null,i?"wal":null].filter(Boolean).join("|"),c=this.headers.Accept;return this.headers.Accept=`application/vnd.pgrst.plan+${o}; for="${c}"; options=${a};`,o==="json"?this:this}rollback(){var e;return((e=this.headers.Prefer)!==null&&e!==void 0?e:"").trim().length>0?this.headers.Prefer+=",tx=rollback":this.headers.Prefer="tx=rollback",this}returns(){return this}}class xt extends fo{eq(e,t){return this.url.searchParams.append(e,`eq.${t}`),this}neq(e,t){return this.url.searchParams.append(e,`neq.${t}`),this}gt(e,t){return this.url.searchParams.append(e,`gt.${t}`),this}gte(e,t){return this.url.searchParams.append(e,`gte.${t}`),this}lt(e,t){return this.url.searchParams.append(e,`lt.${t}`),this}lte(e,t){return this.url.searchParams.append(e,`lte.${t}`),this}like(e,t){return this.url.searchParams.append(e,`like.${t}`),this}ilike(e,t){return this.url.searchParams.append(e,`ilike.${t}`),this}is(e,t){return this.url.searchParams.append(e,`is.${t}`),this}in(e,t){const r=t.map(s=>typeof s=="string"&&new RegExp("[,()]").test(s)?`"${s}"`:`${s}`).join(",");return this.url.searchParams.append(e,`in.(${r})`),this}contains(e,t){return typeof t=="string"?this.url.searchParams.append(e,`cs.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cs.{${t.join(",")}}`):this.url.searchParams.append(e,`cs.${JSON.stringify(t)}`),this}containedBy(e,t){return typeof t=="string"?this.url.searchParams.append(e,`cd.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cd.{${t.join(",")}}`):this.url.searchParams.append(e,`cd.${JSON.stringify(t)}`),this}rangeGt(e,t){return this.url.searchParams.append(e,`sr.${t}`),this}rangeGte(e,t){return this.url.searchParams.append(e,`nxl.${t}`),this}rangeLt(e,t){return this.url.searchParams.append(e,`sl.${t}`),this}rangeLte(e,t){return this.url.searchParams.append(e,`nxr.${t}`),this}rangeAdjacent(e,t){return this.url.searchParams.append(e,`adj.${t}`),this}overlaps(e,t){return typeof t=="string"?this.url.searchParams.append(e,`ov.${t}`):this.url.searchParams.append(e,`ov.{${t.join(",")}}`),this}textSearch(e,t,{config:r,type:s}={}){let i="";s==="plain"?i="pl":s==="phrase"?i="ph":s==="websearch"&&(i="w");const o=r===void 0?"":`(${r})`;return this.url.searchParams.append(e,`${i}fts${o}.${t}`),this}match(e){return Object.entries(e).forEach(([t,r])=>{this.url.searchParams.append(t,`eq.${r}`)}),this}not(e,t,r){return this.url.searchParams.append(e,`not.${t}.${r}`),this}or(e,{foreignTable:t}={}){const r=t?`${t}.or`:"or";return this.url.searchParams.append(r,`(${e})`),this}filter(e,t,r){return this.url.searchParams.append(e,`${t}.${r}`),this}}class po{constructor(e,{headers:t={},schema:r,fetch:s}){this.url=e,this.headers=t,this.schema=r,this.fetch=s}select(e,{head:t=!1,count:r}={}){const s=t?"HEAD":"GET";let i=!1;const o=(e??"*").split("").map(a=>/\s/.test(a)&&!i?"":(a==='"'&&(i=!i),a)).join("");return this.url.searchParams.set("select",o),r&&(this.headers.Prefer=`count=${r}`),new xt({method:s,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch,allowEmpty:!1})}insert(e,{count:t}={}){const r="POST",s=[],i=e;if(t&&s.push(`count=${t}`),this.headers.Prefer&&s.unshift(this.headers.Prefer),this.headers.Prefer=s.join(","),Array.isArray(e)){const o=e.reduce((a,c)=>a.concat(Object.keys(c)),[]);if(o.length>0){const a=[...new Set(o)].map(c=>`"${c}"`);this.url.searchParams.set("columns",a.join(","))}}return new xt({method:r,url:this.url,headers:this.headers,schema:this.schema,body:i,fetch:this.fetch,allowEmpty:!1})}upsert(e,{onConflict:t,ignoreDuplicates:r=!1,count:s}={}){const i="POST",o=[`resolution=${r?"ignore":"merge"}-duplicates`];t!==void 0&&this.url.searchParams.set("on_conflict",t);const a=e;return s&&o.push(`count=${s}`),this.headers.Prefer&&o.unshift(this.headers.Prefer),this.headers.Prefer=o.join(","),new xt({method:i,url:this.url,headers:this.headers,schema:this.schema,body:a,fetch:this.fetch,allowEmpty:!1})}update(e,{count:t}={}){const r="PATCH",s=[],i=e;return t&&s.push(`count=${t}`),this.headers.Prefer&&s.unshift(this.headers.Prefer),this.headers.Prefer=s.join(","),new xt({method:r,url:this.url,headers:this.headers,schema:this.schema,body:i,fetch:this.fetch,allowEmpty:!1})}delete({count:e}={}){const t="DELETE",r=[];return e&&r.push(`count=${e}`),this.headers.Prefer&&r.unshift(this.headers.Prefer),this.headers.Prefer=r.join(","),new xt({method:t,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch,allowEmpty:!1})}}const yo="1.4.1",mo={"X-Client-Info":`postgrest-js/${yo}`};class go{constructor(e,{headers:t={},schema:r,fetch:s}={}){this.url=e,this.headers=Object.assign(Object.assign({},mo),t),this.schema=r,this.fetch=s}from(e){const t=new URL(`${this.url}/${e}`);return new po(t,{headers:Object.assign({},this.headers),schema:this.schema,fetch:this.fetch})}rpc(e,t={},{head:r=!1,count:s}={}){let i;const o=new URL(`${this.url}/rpc/${e}`);let a;r?(i="HEAD",Object.entries(t).forEach(([u,l])=>{o.searchParams.append(u,`${l}`)})):(i="POST",a=t);const c=Object.assign({},this.headers);return s&&(c.Prefer=`count=${s}`),new xt({method:i,url:o,headers:c,schema:this.schema,body:a,fetch:this.fetch,allowEmpty:!1})}}var Gr,Qn;function wo(){if(Qn)return Gr;Qn=1;var n=function(){if(typeof self=="object"&&self)return self;if(typeof window=="object"&&window)return window;throw new Error("Unable to resolve global `this`")};return Gr=function(){if(this)return this;if(typeof globalThis=="object"&&globalThis)return globalThis;try{Object.defineProperty(Object.prototype,"__global__",{get:function(){return this},configurable:!0})}catch{return n()}try{return __global__||n()}finally{delete Object.prototype.__global__}}(),Gr}const bo="websocket",vo="Websocket Client & Server Library implementing the WebSocket protocol as specified in RFC 6455.",_o=["websocket","websockets","socket","networking","comet","push","RFC-6455","realtime","server","client"],Eo="Brian McKelvey <theturtle32@gmail.com> (https://github.com/theturtle32)",xo=["Iñaki Baz Castillo <ibc@aliax.net> (http://dev.sipdoc.net)"],To="1.0.34",Oo={type:"git",url:"https://github.com/theturtle32/WebSocket-Node.git"},ko="https://github.com/theturtle32/WebSocket-Node",Ao={node:">=4.0.0"},So={bufferutil:"^4.0.1",debug:"^2.2.0","es5-ext":"^0.10.50","typedarray-to-buffer":"^3.1.5","utf-8-validate":"^5.0.2",yaeti:"^0.0.6"},Ro={"buffer-equal":"^1.0.0",gulp:"^4.0.2","gulp-jshint":"^2.0.4","jshint-stylish":"^2.2.1",jshint:"^2.0.0",tape:"^4.9.1"},$o={verbose:!1},Po={test:"tape test/unit/*.js",gulp:"gulp"},No="index",Io={lib:"./lib"},Co="lib/browser.js",Fo="Apache-2.0",Do={name:bo,description:vo,keywords:_o,author:Eo,contributors:xo,version:To,repository:Oo,homepage:ko,engines:Ao,dependencies:So,devDependencies:Ro,config:$o,scripts:Po,main:No,directories:Io,browser:Co,license:Fo};var Uo=Do.version,Qe;if(typeof globalThis=="object")Qe=globalThis;else try{Qe=wo()}catch{}finally{if(!Qe&&typeof window<"u"&&(Qe=window),!Qe)throw new Error("Could not determine global this")}var qt=Qe.WebSocket||Qe.MozWebSocket,jo=Uo;function qs(n,e){var t;return e?t=new qt(n,e):t=new qt(n),t}qt&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach(function(n){Object.defineProperty(qs,n,{get:function(){return qt[n]}})});var Lo={w3cwebsocket:qt?qs:null,version:jo};const Bo="2.6.0",Ho={"X-Client-Info":`realtime-js/${Bo}`},Mo="1.0.0",Gs=1e4,Vo=1e3;var Mt;(function(n){n[n.connecting=0]="connecting",n[n.open=1]="open",n[n.closing=2]="closing",n[n.closed=3]="closed"})(Mt||(Mt={}));var se;(function(n){n.closed="closed",n.errored="errored",n.joined="joined",n.joining="joining",n.leaving="leaving"})(se||(se={}));var ye;(function(n){n.close="phx_close",n.error="phx_error",n.join="phx_join",n.reply="phx_reply",n.leave="phx_leave",n.access_token="access_token"})(ye||(ye={}));var an;(function(n){n.websocket="websocket"})(an||(an={}));var et;(function(n){n.Connecting="connecting",n.Open="open",n.Closing="closing",n.Closed="closed"})(et||(et={}));class Js{constructor(e,t){this.callback=e,this.timerCalc=t,this.timer=void 0,this.tries=0,this.callback=e,this.timerCalc=t}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout(()=>{this.tries=this.tries+1,this.callback()},this.timerCalc(this.tries+1))}}class zo{constructor(){this.HEADER_LENGTH=1}decode(e,t){return e.constructor===ArrayBuffer?t(this._binaryDecode(e)):t(typeof e=="string"?JSON.parse(e):{})}_binaryDecode(e){const t=new DataView(e),r=new TextDecoder;return this._decodeBroadcast(e,t,r)}_decodeBroadcast(e,t,r){const s=t.getUint8(1),i=t.getUint8(2);let o=this.HEADER_LENGTH+2;const a=r.decode(e.slice(o,o+s));o=o+s;const c=r.decode(e.slice(o,o+i));o=o+i;const u=JSON.parse(r.decode(e.slice(o,e.byteLength)));return{ref:null,topic:a,event:c,payload:u}}}class Jr{constructor(e,t,r={},s=Gs){this.channel=e,this.event=t,this.payload=r,this.timeout=s,this.sent=!1,this.timeoutTimer=void 0,this.ref="",this.receivedResp=null,this.recHooks=[],this.refEvent=null,this.rateLimited=!1}resend(e){this.timeout=e,this._cancelRefEvent(),this.ref="",this.refEvent=null,this.receivedResp=null,this.sent=!1,this.send()}send(){if(this._hasReceived("timeout"))return;this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload,ref:this.ref,join_ref:this.channel._joinRef()})==="rate limited"&&(this.rateLimited=!0)}updatePayload(e){this.payload=Object.assign(Object.assign({},this.payload),e)}receive(e,t){var r;return this._hasReceived(e)&&t((r=this.receivedResp)===null||r===void 0?void 0:r.response),this.recHooks.push({status:e,callback:t}),this}startTimeout(){if(this.timeoutTimer)return;this.ref=this.channel.socket._makeRef(),this.refEvent=this.channel._replyEventName(this.ref);const e=t=>{this._cancelRefEvent(),this._cancelTimeout(),this.receivedResp=t,this._matchReceive(t)};this.channel._on(this.refEvent,{},e),this.timeoutTimer=setTimeout(()=>{this.trigger("timeout",{})},this.timeout)}trigger(e,t){this.refEvent&&this.channel._trigger(this.refEvent,{status:e,response:t})}destroy(){this._cancelRefEvent(),this._cancelTimeout()}_cancelRefEvent(){this.refEvent&&this.channel._off(this.refEvent,{})}_cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=void 0}_matchReceive({status:e,response:t}){this.recHooks.filter(r=>r.status===e).forEach(r=>r.callback(t))}_hasReceived(e){return this.receivedResp&&this.receivedResp.status===e}}var es;(function(n){n.SYNC="sync",n.JOIN="join",n.LEAVE="leave"})(es||(es={}));class Vt{constructor(e,t){this.channel=e,this.state={},this.pendingDiffs=[],this.joinRef=null,this.caller={onJoin:()=>{},onLeave:()=>{},onSync:()=>{}};const r=(t==null?void 0:t.events)||{state:"presence_state",diff:"presence_diff"};this.channel._on(r.state,{},s=>{const{onJoin:i,onLeave:o,onSync:a}=this.caller;this.joinRef=this.channel._joinRef(),this.state=Vt.syncState(this.state,s,i,o),this.pendingDiffs.forEach(c=>{this.state=Vt.syncDiff(this.state,c,i,o)}),this.pendingDiffs=[],a()}),this.channel._on(r.diff,{},s=>{const{onJoin:i,onLeave:o,onSync:a}=this.caller;this.inPendingSyncState()?this.pendingDiffs.push(s):(this.state=Vt.syncDiff(this.state,s,i,o),a())}),this.onJoin((s,i,o)=>{this.channel._trigger("presence",{event:"join",key:s,currentPresences:i,newPresences:o})}),this.onLeave((s,i,o)=>{this.channel._trigger("presence",{event:"leave",key:s,currentPresences:i,leftPresences:o})}),this.onSync(()=>{this.channel._trigger("presence",{event:"sync"})})}static syncState(e,t,r,s){const i=this.cloneDeep(e),o=this.transformState(t),a={},c={};return this.map(i,(u,l)=>{o[u]||(c[u]=l)}),this.map(o,(u,l)=>{const h=i[u];if(h){const y=l.map(g=>g.presence_ref),p=h.map(g=>g.presence_ref),w=l.filter(g=>p.indexOf(g.presence_ref)<0),v=h.filter(g=>y.indexOf(g.presence_ref)<0);w.length>0&&(a[u]=w),v.length>0&&(c[u]=v)}else a[u]=l}),this.syncDiff(i,{joins:a,leaves:c},r,s)}static syncDiff(e,t,r,s){const{joins:i,leaves:o}={joins:this.transformState(t.joins),leaves:this.transformState(t.leaves)};return r||(r=()=>{}),s||(s=()=>{}),this.map(i,(a,c)=>{var u;const l=(u=e[a])!==null&&u!==void 0?u:[];if(e[a]=this.cloneDeep(c),l.length>0){const h=e[a].map(p=>p.presence_ref),y=l.filter(p=>h.indexOf(p.presence_ref)<0);e[a].unshift(...y)}r(a,l,c)}),this.map(o,(a,c)=>{let u=e[a];if(!u)return;const l=c.map(h=>h.presence_ref);u=u.filter(h=>l.indexOf(h.presence_ref)<0),e[a]=u,s(a,u,c),u.length===0&&delete e[a]}),e}static map(e,t){return Object.getOwnPropertyNames(e).map(r=>t(r,e[r]))}static transformState(e){return e=this.cloneDeep(e),Object.getOwnPropertyNames(e).reduce((t,r)=>{const s=e[r];return"metas"in s?t[r]=s.metas.map(i=>(i.presence_ref=i.phx_ref,delete i.phx_ref,delete i.phx_ref_prev,i)):t[r]=s,t},{})}static cloneDeep(e){return JSON.parse(JSON.stringify(e))}onJoin(e){this.caller.onJoin=e}onLeave(e){this.caller.onLeave=e}onSync(e){this.caller.onSync=e}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel._joinRef()}}var D;(function(n){n.abstime="abstime",n.bool="bool",n.date="date",n.daterange="daterange",n.float4="float4",n.float8="float8",n.int2="int2",n.int4="int4",n.int4range="int4range",n.int8="int8",n.int8range="int8range",n.json="json",n.jsonb="jsonb",n.money="money",n.numeric="numeric",n.oid="oid",n.reltime="reltime",n.text="text",n.time="time",n.timestamp="timestamp",n.timestamptz="timestamptz",n.timetz="timetz",n.tsrange="tsrange",n.tstzrange="tstzrange"})(D||(D={}));const ts=(n,e,t={})=>{var r;const s=(r=t.skipTypes)!==null&&r!==void 0?r:[];return Object.keys(e).reduce((i,o)=>(i[o]=qo(o,n,e,s),i),{})},qo=(n,e,t,r)=>{const s=e.find(a=>a.name===n),i=s==null?void 0:s.type,o=t[n];return i&&!r.includes(i)?Ws(i,o):cn(o)},Ws=(n,e)=>{if(n.charAt(0)==="_"){const t=n.slice(1,n.length);return Ko(e,t)}switch(n){case D.bool:return Go(e);case D.float4:case D.float8:case D.int2:case D.int4:case D.int8:case D.numeric:case D.oid:return Jo(e);case D.json:case D.jsonb:return Wo(e);case D.timestamp:return Xo(e);case D.abstime:case D.date:case D.daterange:case D.int4range:case D.int8range:case D.money:case D.reltime:case D.text:case D.time:case D.timestamptz:case D.timetz:case D.tsrange:case D.tstzrange:return cn(e);default:return cn(e)}},cn=n=>n,Go=n=>{switch(n){case"t":return!0;case"f":return!1;default:return n}},Jo=n=>{if(typeof n=="string"){const e=parseFloat(n);if(!Number.isNaN(e))return e}return n},Wo=n=>{if(typeof n=="string")try{return JSON.parse(n)}catch(e){return console.log(`JSON parse error: ${e}`),n}return n},Ko=(n,e)=>{if(typeof n!="string")return n;const t=n.length-1,r=n[t];if(n[0]==="{"&&r==="}"){let i;const o=n.slice(1,t);try{i=JSON.parse("["+o+"]")}catch{i=o?o.split(","):[]}return i.map(a=>Ws(e,a))}return n},Xo=n=>typeof n=="string"?n.replace(" ","T"):n;var rs=globalThis&&globalThis.__awaiter||function(n,e,t,r){function s(i){return i instanceof t?i:new t(function(o){o(i)})}return new(t||(t=Promise))(function(i,o){function a(l){try{u(r.next(l))}catch(h){o(h)}}function c(l){try{u(r.throw(l))}catch(h){o(h)}}function u(l){l.done?i(l.value):s(l.value).then(a,c)}u((r=r.apply(n,e||[])).next())})},ns;(function(n){n.ALL="*",n.INSERT="INSERT",n.UPDATE="UPDATE",n.DELETE="DELETE"})(ns||(ns={}));var ss;(function(n){n.BROADCAST="broadcast",n.PRESENCE="presence",n.POSTGRES_CHANGES="postgres_changes"})(ss||(ss={}));var is;(function(n){n.SUBSCRIBED="SUBSCRIBED",n.TIMED_OUT="TIMED_OUT",n.CLOSED="CLOSED",n.CHANNEL_ERROR="CHANNEL_ERROR"})(is||(is={}));class $n{constructor(e,t={config:{}},r){this.topic=e,this.params=t,this.socket=r,this.bindings={},this.state=se.closed,this.joinedOnce=!1,this.pushBuffer=[],this.params.config=Object.assign({broadcast:{ack:!1,self:!1},presence:{key:""}},t.config),this.timeout=this.socket.timeout,this.joinPush=new Jr(this,ye.join,this.params,this.timeout),this.rejoinTimer=new Js(()=>this._rejoinUntilConnected(),this.socket.reconnectAfterMs),this.joinPush.receive("ok",()=>{this.state=se.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(s=>s.send()),this.pushBuffer=[]}),this._onClose(()=>{this.rejoinTimer.reset(),this.socket.log("channel",`close ${this.topic} ${this._joinRef()}`),this.state=se.closed,this.socket._remove(this)}),this._onError(s=>{this._isLeaving()||this._isClosed()||(this.socket.log("channel",`error ${this.topic}`,s),this.state=se.errored,this.rejoinTimer.scheduleTimeout())}),this.joinPush.receive("timeout",()=>{this._isJoining()&&(this.socket.log("channel",`timeout ${this.topic}`,this.joinPush.timeout),this.state=se.errored,this.rejoinTimer.scheduleTimeout())}),this._on(ye.reply,{},(s,i)=>{this._trigger(this._replyEventName(i),s)}),this.presence=new Vt(this)}subscribe(e,t=this.timeout){var r,s;if(this.joinedOnce)throw"tried to subscribe multiple times. 'subscribe' can only be called a single time per channel instance";{const{config:{broadcast:i,presence:o}}=this.params;this._onError(u=>e&&e("CHANNEL_ERROR",u)),this._onClose(()=>e&&e("CLOSED"));const a={},c={broadcast:i,presence:o,postgres_changes:(s=(r=this.bindings.postgres_changes)===null||r===void 0?void 0:r.map(u=>u.filter))!==null&&s!==void 0?s:[]};this.socket.accessToken&&(a.access_token=this.socket.accessToken),this.updateJoinPayload(Object.assign({config:c},a)),this.joinedOnce=!0,this._rejoin(t),this.joinPush.receive("ok",({postgres_changes:u})=>{var l;if(this.socket.accessToken&&this.socket.setAuth(this.socket.accessToken),u===void 0){e&&e("SUBSCRIBED");return}else{const h=this.bindings.postgres_changes,y=(l=h==null?void 0:h.length)!==null&&l!==void 0?l:0,p=[];for(let w=0;w<y;w++){const v=h[w],{filter:{event:g,schema:A,table:C,filter:X}}=v,U=u&&u[w];if(U&&U.event===g&&U.schema===A&&U.table===C&&U.filter===X)p.push(Object.assign(Object.assign({},v),{id:U.id}));else{this.unsubscribe(),e&&e("CHANNEL_ERROR",new Error("mismatch between server and client bindings for postgres changes"));return}}this.bindings.postgres_changes=p,e&&e("SUBSCRIBED");return}}).receive("error",u=>{e&&e("CHANNEL_ERROR",new Error(JSON.stringify(Object.values(u).join(", ")||"error")))}).receive("timeout",()=>{e&&e("TIMED_OUT")})}return this}presenceState(){return this.presence.state}track(e,t={}){return rs(this,void 0,void 0,function*(){return yield this.send({type:"presence",event:"track",payload:e},t.timeout||this.timeout)})}untrack(e={}){return rs(this,void 0,void 0,function*(){return yield this.send({type:"presence",event:"untrack"},e)})}on(e,t,r){return this._on(e,t,r)}send(e,t={}){return new Promise(r=>{var s,i,o;const a=this._push(e.type,e,t.timeout||this.timeout);a.rateLimited&&r("rate limited"),e.type==="broadcast"&&!(!((o=(i=(s=this.params)===null||s===void 0?void 0:s.config)===null||i===void 0?void 0:i.broadcast)===null||o===void 0)&&o.ack)&&r("ok"),a.receive("ok",()=>r("ok")),a.receive("timeout",()=>r("timed out"))})}updateJoinPayload(e){this.joinPush.updatePayload(e)}unsubscribe(e=this.timeout){this.state=se.leaving;const t=()=>{this.socket.log("channel",`leave ${this.topic}`),this._trigger(ye.close,"leave",this._joinRef())};return this.rejoinTimer.reset(),this.joinPush.destroy(),new Promise(r=>{const s=new Jr(this,ye.leave,{},e);s.receive("ok",()=>{t(),r("ok")}).receive("timeout",()=>{t(),r("timed out")}).receive("error",()=>{r("error")}),s.send(),this._canPush()||s.trigger("ok",{})})}_push(e,t,r=this.timeout){if(!this.joinedOnce)throw`tried to push '${e}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;let s=new Jr(this,e,t,r);return this._canPush()?s.send():(s.startTimeout(),this.pushBuffer.push(s)),s}_onMessage(e,t,r){return t}_isMember(e){return this.topic===e}_joinRef(){return this.joinPush.ref}_trigger(e,t,r){var s,i;const o=e.toLocaleLowerCase(),{close:a,error:c,leave:u,join:l}=ye;if(r&&[a,c,u,l].indexOf(o)>=0&&r!==this._joinRef())return;let y=this._onMessage(o,t,r);if(t&&!y)throw"channel onMessage callbacks must return the payload, modified or unmodified";["insert","update","delete"].includes(o)?(s=this.bindings.postgres_changes)===null||s===void 0||s.filter(p=>{var w,v,g;return((w=p.filter)===null||w===void 0?void 0:w.event)==="*"||((g=(v=p.filter)===null||v===void 0?void 0:v.event)===null||g===void 0?void 0:g.toLocaleLowerCase())===o}).map(p=>p.callback(y,r)):(i=this.bindings[o])===null||i===void 0||i.filter(p=>{var w,v,g,A,C,X;if(["broadcast","presence","postgres_changes"].includes(o))if("id"in p){const U=p.id,be=(w=p.filter)===null||w===void 0?void 0:w.event;return U&&((v=t.ids)===null||v===void 0?void 0:v.includes(U))&&(be==="*"||(be==null?void 0:be.toLocaleLowerCase())===((g=t.data)===null||g===void 0?void 0:g.type.toLocaleLowerCase()))}else{const U=(C=(A=p==null?void 0:p.filter)===null||A===void 0?void 0:A.event)===null||C===void 0?void 0:C.toLocaleLowerCase();return U==="*"||U===((X=t==null?void 0:t.event)===null||X===void 0?void 0:X.toLocaleLowerCase())}else return p.type.toLocaleLowerCase()===o}).map(p=>{if(typeof y=="object"&&"ids"in y){const w=y.data,{schema:v,table:g,commit_timestamp:A,type:C,errors:X}=w;y=Object.assign(Object.assign({},{schema:v,table:g,commit_timestamp:A,eventType:C,new:{},old:{},errors:X}),this._getPayloadRecords(w))}p.callback(y,r)})}_isClosed(){return this.state===se.closed}_isJoined(){return this.state===se.joined}_isJoining(){return this.state===se.joining}_isLeaving(){return this.state===se.leaving}_replyEventName(e){return`chan_reply_${e}`}_on(e,t,r){const s=e.toLocaleLowerCase(),i={type:s,filter:t,callback:r};return this.bindings[s]?this.bindings[s].push(i):this.bindings[s]=[i],this}_off(e,t){const r=e.toLocaleLowerCase();return this.bindings[r]=this.bindings[r].filter(s=>{var i;return!(((i=s.type)===null||i===void 0?void 0:i.toLocaleLowerCase())===r&&$n.isEqual(s.filter,t))}),this}static isEqual(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const r in e)if(e[r]!==t[r])return!1;return!0}_rejoinUntilConnected(){this.rejoinTimer.scheduleTimeout(),this.socket.isConnected()&&this._rejoin()}_onClose(e){this._on(ye.close,{},e)}_onError(e){this._on(ye.error,{},t=>e(t))}_canPush(){return this.socket.isConnected()&&this._isJoined()}_rejoin(e=this.timeout){this._isLeaving()||(this.socket._leaveOpenTopic(this.topic),this.state=se.joining,this.joinPush.resend(e))}_getPayloadRecords(e){const t={new:{},old:{}};return(e.type==="INSERT"||e.type==="UPDATE")&&(t.new=ts(e.columns,e.record)),(e.type==="UPDATE"||e.type==="DELETE")&&(t.old=ts(e.columns,e.old_record)),t}}var Zo=globalThis&&globalThis.__awaiter||function(n,e,t,r){function s(i){return i instanceof t?i:new t(function(o){o(i)})}return new(t||(t=Promise))(function(i,o){function a(l){try{u(r.next(l))}catch(h){o(h)}}function c(l){try{u(r.throw(l))}catch(h){o(h)}}function u(l){l.done?i(l.value):s(l.value).then(a,c)}u((r=r.apply(n,e||[])).next())})};const Yo=()=>{};class Qo{constructor(e,t){var r;this.accessToken=null,this.channels=[],this.endPoint="",this.headers=Ho,this.params={},this.timeout=Gs,this.transport=Lo.w3cwebsocket,this.heartbeatIntervalMs=3e4,this.heartbeatTimer=void 0,this.pendingHeartbeatRef=null,this.ref=0,this.logger=Yo,this.conn=null,this.sendBuffer=[],this.serializer=new zo,this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.eventsPerSecondLimitMs=100,this.inThrottle=!1,this.endPoint=`${e}/${an.websocket}`,t!=null&&t.params&&(this.params=t.params),t!=null&&t.headers&&(this.headers=Object.assign(Object.assign({},this.headers),t.headers)),t!=null&&t.timeout&&(this.timeout=t.timeout),t!=null&&t.logger&&(this.logger=t.logger),t!=null&&t.transport&&(this.transport=t.transport),t!=null&&t.heartbeatIntervalMs&&(this.heartbeatIntervalMs=t.heartbeatIntervalMs);const s=(r=t==null?void 0:t.params)===null||r===void 0?void 0:r.eventsPerSecond;s&&(this.eventsPerSecondLimitMs=Math.floor(1e3/s)),this.reconnectAfterMs=t!=null&&t.reconnectAfterMs?t.reconnectAfterMs:i=>[1e3,2e3,5e3,1e4][i-1]||1e4,this.encode=t!=null&&t.encode?t.encode:(i,o)=>o(JSON.stringify(i)),this.decode=t!=null&&t.decode?t.decode:this.serializer.decode.bind(this.serializer),this.reconnectTimer=new Js(()=>Zo(this,void 0,void 0,function*(){this.disconnect(),this.connect()}),this.reconnectAfterMs)}connect(){this.conn||(this.conn=new this.transport(this._endPointURL(),[],null,this.headers),this.conn&&(this.conn.binaryType="arraybuffer",this.conn.onopen=()=>this._onConnOpen(),this.conn.onerror=e=>this._onConnError(e),this.conn.onmessage=e=>this._onConnMessage(e),this.conn.onclose=e=>this._onConnClose(e)))}disconnect(e,t){this.conn&&(this.conn.onclose=function(){},e?this.conn.close(e,t??""):this.conn.close(),this.conn=null,this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.reconnectTimer.reset())}getChannels(){return this.channels}removeChannel(e){return e.unsubscribe().then(t=>(this.channels.length===0&&this.disconnect(),t))}removeAllChannels(){return Promise.all(this.channels.map(e=>e.unsubscribe())).then(e=>(this.disconnect(),e))}log(e,t,r){this.logger(e,t,r)}connectionState(){switch(this.conn&&this.conn.readyState){case Mt.connecting:return et.Connecting;case Mt.open:return et.Open;case Mt.closing:return et.Closing;default:return et.Closed}}isConnected(){return this.connectionState()===et.Open}channel(e,t={config:{}}){this.isConnected()||this.connect();const r=new $n(`realtime:${e}`,t,this);return this.channels.push(r),r}push(e){const{topic:t,event:r,payload:s,ref:i}=e;let o=()=>{this.encode(e,a=>{var c;(c=this.conn)===null||c===void 0||c.send(a)})};if(this.log("push",`${t} ${r} (${i})`,s),this.isConnected())if(["broadcast","presence","postgres_changes"].includes(r)){if(this._throttle(o)())return"rate limited"}else o();else this.sendBuffer.push(o)}setAuth(e){this.accessToken=e,this.channels.forEach(t=>{e&&t.updateJoinPayload({access_token:e}),t.joinedOnce&&t._isJoined()&&t._push(ye.access_token,{access_token:e})})}_makeRef(){let e=this.ref+1;return e===this.ref?this.ref=0:this.ref=e,this.ref.toString()}_leaveOpenTopic(e){let t=this.channels.find(r=>r.topic===e&&(r._isJoined()||r._isJoining()));t&&(this.log("transport",`leaving duplicate topic "${e}"`),t.unsubscribe())}_remove(e){this.channels=this.channels.filter(t=>t._joinRef()!==e._joinRef())}_endPointURL(){return this._appendParams(this.endPoint,Object.assign({},this.params,{vsn:Mo}))}_onConnMessage(e){this.decode(e.data,t=>{let{topic:r,event:s,payload:i,ref:o}=t;(o&&o===this.pendingHeartbeatRef||s===(i==null?void 0:i.type))&&(this.pendingHeartbeatRef=null),this.log("receive",`${i.status||""} ${r} ${s} ${o&&"("+o+")"||""}`,i),this.channels.filter(a=>a._isMember(r)).forEach(a=>a._trigger(s,i,o)),this.stateChangeCallbacks.message.forEach(a=>a(t))})}_onConnOpen(){this.log("transport",`connected to ${this._endPointURL()}`),this._flushSendBuffer(),this.reconnectTimer.reset(),this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.heartbeatTimer=setInterval(()=>this._sendHeartbeat(),this.heartbeatIntervalMs),this.stateChangeCallbacks.open.forEach(e=>e())}_onConnClose(e){this.log("transport","close",e),this._triggerChanError(),this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.reconnectTimer.scheduleTimeout(),this.stateChangeCallbacks.close.forEach(t=>t(e))}_onConnError(e){this.log("transport",e.message),this._triggerChanError(),this.stateChangeCallbacks.error.forEach(t=>t(e))}_triggerChanError(){this.channels.forEach(e=>e._trigger(ye.error))}_appendParams(e,t){if(Object.keys(t).length===0)return e;const r=e.match(/\?/)?"&":"?",s=new URLSearchParams(t);return`${e}${r}${s}`}_flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach(e=>e()),this.sendBuffer=[])}_sendHeartbeat(){var e;if(this.isConnected()){if(this.pendingHeartbeatRef){this.pendingHeartbeatRef=null,this.log("transport","heartbeat timeout. Attempting to re-establish connection"),(e=this.conn)===null||e===void 0||e.close(Vo,"hearbeat timeout");return}this.pendingHeartbeatRef=this._makeRef(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef}),this.setAuth(this.accessToken)}}_throttle(e,t=this.eventsPerSecondLimitMs){return()=>this.inThrottle?!0:(e(),t>0&&(this.inThrottle=!0,setTimeout(()=>{this.inThrottle=!1},t)),!1)}}class Ks extends Error{constructor(e){super(e),this.__isStorageError=!0,this.name="StorageError"}}function Q(n){return typeof n=="object"&&n!==null&&"__isStorageError"in n}class ea extends Ks{constructor(e,t){super(e),this.name="StorageApiError",this.status=t}toJSON(){return{name:this.name,message:this.message,status:this.status}}}class os extends Ks{constructor(e,t){super(e),this.name="StorageUnknownError",this.originalError=t}}var Xs=globalThis&&globalThis.__awaiter||function(n,e,t,r){function s(i){return i instanceof t?i:new t(function(o){o(i)})}return new(t||(t=Promise))(function(i,o){function a(l){try{u(r.next(l))}catch(h){o(h)}}function c(l){try{u(r.throw(l))}catch(h){o(h)}}function u(l){l.done?i(l.value):s(l.value).then(a,c)}u((r=r.apply(n,e||[])).next())})};const Zs=n=>{let e;return n?e=n:typeof fetch>"u"?e=(...t)=>Xs(void 0,void 0,void 0,function*(){return yield(yield Promise.resolve().then(()=>Rr)).fetch(...t)}):e=fetch,(...t)=>e(...t)},ta=()=>Xs(void 0,void 0,void 0,function*(){return typeof Response>"u"?(yield Promise.resolve().then(()=>Rr)).Response:Response});var Ft=globalThis&&globalThis.__awaiter||function(n,e,t,r){function s(i){return i instanceof t?i:new t(function(o){o(i)})}return new(t||(t=Promise))(function(i,o){function a(l){try{u(r.next(l))}catch(h){o(h)}}function c(l){try{u(r.throw(l))}catch(h){o(h)}}function u(l){l.done?i(l.value):s(l.value).then(a,c)}u((r=r.apply(n,e||[])).next())})};const Wr=n=>n.msg||n.message||n.error_description||n.error||JSON.stringify(n),ra=(n,e)=>Ft(void 0,void 0,void 0,function*(){const t=yield ta();n instanceof t?n.json().then(r=>{e(new ea(Wr(r),n.status||500))}).catch(r=>{e(new os(Wr(r),r))}):e(new os(Wr(n),n))}),na=(n,e,t,r)=>{const s={method:n,headers:(e==null?void 0:e.headers)||{}};return n==="GET"?s:(s.headers=Object.assign({"Content-Type":"application/json"},e==null?void 0:e.headers),s.body=JSON.stringify(r),Object.assign(Object.assign({},s),t))};function $r(n,e,t,r,s,i){return Ft(this,void 0,void 0,function*(){return new Promise((o,a)=>{n(t,na(e,r,s,i)).then(c=>{if(!c.ok)throw c;return r!=null&&r.noResolveJson?c:c.json()}).then(c=>o(c)).catch(c=>ra(c,a))})})}function un(n,e,t,r){return Ft(this,void 0,void 0,function*(){return $r(n,"GET",e,t,r)})}function tt(n,e,t,r,s){return Ft(this,void 0,void 0,function*(){return $r(n,"POST",e,r,s,t)})}function sa(n,e,t,r,s){return Ft(this,void 0,void 0,function*(){return $r(n,"PUT",e,r,s,t)})}function Ys(n,e,t,r,s){return Ft(this,void 0,void 0,function*(){return $r(n,"DELETE",e,r,s,t)})}var ve=globalThis&&globalThis.__awaiter||function(n,e,t,r){function s(i){return i instanceof t?i:new t(function(o){o(i)})}return new(t||(t=Promise))(function(i,o){function a(l){try{u(r.next(l))}catch(h){o(h)}}function c(l){try{u(r.throw(l))}catch(h){o(h)}}function u(l){l.done?i(l.value):s(l.value).then(a,c)}u((r=r.apply(n,e||[])).next())})};const ia={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},oa={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};class aa{constructor(e,t={},r,s){this.url=e,this.headers=t,this.bucketId=r,this.fetch=Zs(s)}uploadOrUpdate(e,t,r,s){return ve(this,void 0,void 0,function*(){try{let i;const o=Object.assign(Object.assign({},oa),s),a=Object.assign(Object.assign({},this.headers),e==="POST"&&{"x-upsert":String(o.upsert)});typeof Blob<"u"&&r instanceof Blob?(i=new FormData,i.append("cacheControl",o.cacheControl),i.append("",r)):typeof FormData<"u"&&r instanceof FormData?(i=r,i.append("cacheControl",o.cacheControl)):(i=r,a["cache-control"]=`max-age=${o.cacheControl}`,a["content-type"]=o.contentType);const c=this._removeEmptyFolders(t),u=this._getFinalPath(c),l=yield this.fetch(`${this.url}/object/${u}`,{method:e,body:i,headers:a});return l.ok?{data:{path:c},error:null}:{data:null,error:yield l.json()}}catch(i){if(Q(i))return{data:null,error:i};throw i}})}upload(e,t,r){return ve(this,void 0,void 0,function*(){return this.uploadOrUpdate("POST",e,t,r)})}update(e,t,r){return ve(this,void 0,void 0,function*(){return this.uploadOrUpdate("PUT",e,t,r)})}move(e,t){return ve(this,void 0,void 0,function*(){try{return{data:yield tt(this.fetch,`${this.url}/object/move`,{bucketId:this.bucketId,sourceKey:e,destinationKey:t},{headers:this.headers}),error:null}}catch(r){if(Q(r))return{data:null,error:r};throw r}})}copy(e,t){return ve(this,void 0,void 0,function*(){try{return{data:{path:(yield tt(this.fetch,`${this.url}/object/copy`,{bucketId:this.bucketId,sourceKey:e,destinationKey:t},{headers:this.headers})).Key},error:null}}catch(r){if(Q(r))return{data:null,error:r};throw r}})}createSignedUrl(e,t,r){return ve(this,void 0,void 0,function*(){try{let s=this._getFinalPath(e),i=yield tt(this.fetch,`${this.url}/object/sign/${s}`,Object.assign({expiresIn:t},r!=null&&r.transform?{transform:r.transform}:{}),{headers:this.headers});const o=r!=null&&r.download?`&download=${r.download===!0?"":r.download}`:"";return i={signedUrl:encodeURI(`${this.url}${i.signedURL}${o}`)},{data:i,error:null}}catch(s){if(Q(s))return{data:null,error:s};throw s}})}createSignedUrls(e,t,r){return ve(this,void 0,void 0,function*(){try{const s=yield tt(this.fetch,`${this.url}/object/sign/${this.bucketId}`,{expiresIn:t,paths:e},{headers:this.headers}),i=r!=null&&r.download?`&download=${r.download===!0?"":r.download}`:"";return{data:s.map(o=>Object.assign(Object.assign({},o),{signedUrl:o.signedURL?encodeURI(`${this.url}${o.signedURL}${i}`):null})),error:null}}catch(s){if(Q(s))return{data:null,error:s};throw s}})}download(e,t){return ve(this,void 0,void 0,function*(){const s=typeof(t==null?void 0:t.transform)<"u"?"render/image/authenticated":"object",i=this.transformOptsToQueryString((t==null?void 0:t.transform)||{}),o=i?`?${i}`:"";try{const a=this._getFinalPath(e);return{data:yield(yield un(this.fetch,`${this.url}/${s}/${a}${o}`,{headers:this.headers,noResolveJson:!0})).blob(),error:null}}catch(a){if(Q(a))return{data:null,error:a};throw a}})}getPublicUrl(e,t){const r=this._getFinalPath(e),s=[],i=t!=null&&t.download?`download=${t.download===!0?"":t.download}`:"";i!==""&&s.push(i);const a=typeof(t==null?void 0:t.transform)<"u"?"render/image":"object",c=this.transformOptsToQueryString((t==null?void 0:t.transform)||{});c!==""&&s.push(c);let u=s.join("&");return u!==""&&(u=`?${u}`),{data:{publicUrl:encodeURI(`${this.url}/${a}/public/${r}${u}`)}}}remove(e){return ve(this,void 0,void 0,function*(){try{return{data:yield Ys(this.fetch,`${this.url}/object/${this.bucketId}`,{prefixes:e},{headers:this.headers}),error:null}}catch(t){if(Q(t))return{data:null,error:t};throw t}})}list(e,t,r){return ve(this,void 0,void 0,function*(){try{const s=Object.assign(Object.assign(Object.assign({},ia),t),{prefix:e||""});return{data:yield tt(this.fetch,`${this.url}/object/list/${this.bucketId}`,s,{headers:this.headers},r),error:null}}catch(s){if(Q(s))return{data:null,error:s};throw s}})}_getFinalPath(e){return`${this.bucketId}/${e}`}_removeEmptyFolders(e){return e.replace(/^\/|\/$/g,"").replace(/\/+/g,"/")}transformOptsToQueryString(e){const t=[];return e.width&&t.push(`width=${e.width}`),e.height&&t.push(`height=${e.height}`),e.resize&&t.push(`resize=${e.resize}`),e.format&&t.push(`format=${e.format}`),e.quality&&t.push(`quality=${e.quality}`),t.join("&")}}const ca="2.3.1",ua={"X-Client-Info":`storage-js/${ca}`};var bt=globalThis&&globalThis.__awaiter||function(n,e,t,r){function s(i){return i instanceof t?i:new t(function(o){o(i)})}return new(t||(t=Promise))(function(i,o){function a(l){try{u(r.next(l))}catch(h){o(h)}}function c(l){try{u(r.throw(l))}catch(h){o(h)}}function u(l){l.done?i(l.value):s(l.value).then(a,c)}u((r=r.apply(n,e||[])).next())})};class la{constructor(e,t={},r){this.url=e,this.headers=Object.assign(Object.assign({},ua),t),this.fetch=Zs(r)}listBuckets(){return bt(this,void 0,void 0,function*(){try{return{data:yield un(this.fetch,`${this.url}/bucket`,{headers:this.headers}),error:null}}catch(e){if(Q(e))return{data:null,error:e};throw e}})}getBucket(e){return bt(this,void 0,void 0,function*(){try{return{data:yield un(this.fetch,`${this.url}/bucket/${e}`,{headers:this.headers}),error:null}}catch(t){if(Q(t))return{data:null,error:t};throw t}})}createBucket(e,t={public:!1}){return bt(this,void 0,void 0,function*(){try{return{data:yield tt(this.fetch,`${this.url}/bucket`,{id:e,name:e,public:t.public},{headers:this.headers}),error:null}}catch(r){if(Q(r))return{data:null,error:r};throw r}})}updateBucket(e,t){return bt(this,void 0,void 0,function*(){try{return{data:yield sa(this.fetch,`${this.url}/bucket/${e}`,{id:e,name:e,public:t.public},{headers:this.headers}),error:null}}catch(r){if(Q(r))return{data:null,error:r};throw r}})}emptyBucket(e){return bt(this,void 0,void 0,function*(){try{return{data:yield tt(this.fetch,`${this.url}/bucket/${e}/empty`,{},{headers:this.headers}),error:null}}catch(t){if(Q(t))return{data:null,error:t};throw t}})}deleteBucket(e){return bt(this,void 0,void 0,function*(){try{return{data:yield Ys(this.fetch,`${this.url}/bucket/${e}`,{},{headers:this.headers}),error:null}}catch(t){if(Q(t))return{data:null,error:t};throw t}})}}class ha extends la{constructor(e,t={},r){super(e,t,r)}from(e){return new aa(this.url,this.headers,e,this.fetch)}}const fa="2.10.0",da={"X-Client-Info":`supabase-js/${fa}`};var pa=globalThis&&globalThis.__awaiter||function(n,e,t,r){function s(i){return i instanceof t?i:new t(function(o){o(i)})}return new(t||(t=Promise))(function(i,o){function a(l){try{u(r.next(l))}catch(h){o(h)}}function c(l){try{u(r.throw(l))}catch(h){o(h)}}function u(l){l.done?i(l.value):s(l.value).then(a,c)}u((r=r.apply(n,e||[])).next())})};const ya=n=>{let e;return n?e=n:typeof fetch>"u"?e=Rn:e=fetch,(...t)=>e(...t)},ma=()=>typeof Headers>"u"?Ct.Headers:Headers,ga=(n,e,t)=>{const r=ya(t),s=ma();return(i,o)=>pa(void 0,void 0,void 0,function*(){var a;const c=(a=yield e())!==null&&a!==void 0?a:n;let u=new s(o==null?void 0:o.headers);return u.has("apikey")||u.set("apikey",n),u.has("Authorization")||u.set("Authorization",`Bearer ${c}`),r(i,Object.assign(Object.assign({},o),{headers:u}))})};function wa(n){return n.replace(/\/$/,"")}function ba(n,e){const{db:t,auth:r,realtime:s,global:i}=n,{db:o,auth:a,realtime:c,global:u}=e;return{db:Object.assign(Object.assign({},o),t),auth:Object.assign(Object.assign({},a),r),realtime:Object.assign(Object.assign({},c),s),global:Object.assign(Object.assign({},u),i)}}var tr=globalThis&&globalThis.__awaiter||function(n,e,t,r){function s(i){return i instanceof t?i:new t(function(o){o(i)})}return new(t||(t=Promise))(function(i,o){function a(l){try{u(r.next(l))}catch(h){o(h)}}function c(l){try{u(r.throw(l))}catch(h){o(h)}}function u(l){l.done?i(l.value):s(l.value).then(a,c)}u((r=r.apply(n,e||[])).next())})};function va(n){return Math.round(Date.now()/1e3)+n}function _a(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(n){const e=Math.random()*16|0;return(n=="x"?e:e&3|8).toString(16)})}const Ye=()=>typeof document<"u",Xe={tested:!1,writable:!1},Kr=()=>{if(!Ye())return!1;try{if(typeof globalThis.localStorage!="object")return!1}catch{return!1}if(Xe.tested)return Xe.writable;const n=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(n,n),globalThis.localStorage.removeItem(n),Xe.tested=!0,Xe.writable=!0}catch{Xe.tested=!0,Xe.writable=!1}return Xe.writable};function ae(n,e){var t;e||(e=((t=window==null?void 0:window.location)===null||t===void 0?void 0:t.href)||""),n=n.replace(/[\[\]]/g,"\\$&");const r=new RegExp("[?&#]"+n+"(=([^&#]*)|&|#|$)"),s=r.exec(e);return s?s[2]?decodeURIComponent(s[2].replace(/\+/g," ")):"":null}const Qs=n=>{let e;return n?e=n:typeof fetch>"u"?e=(...t)=>tr(void 0,void 0,void 0,function*(){return yield(yield Promise.resolve().then(()=>Rr)).fetch(...t)}):e=fetch,(...t)=>e(...t)},Ea=n=>typeof n=="object"&&n!==null&&"status"in n&&"ok"in n&&"json"in n&&typeof n.json=="function",xa=(n,e,t)=>tr(void 0,void 0,void 0,function*(){yield n.setItem(e,JSON.stringify(t))}),as=(n,e)=>tr(void 0,void 0,void 0,function*(){const t=yield n.getItem(e);if(!t)return null;try{return JSON.parse(t)}catch{return t}}),Ta=(n,e)=>tr(void 0,void 0,void 0,function*(){yield n.removeItem(e)});function Oa(n){const e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";let t="",r,s,i,o,a,c,u,l=0;for(n=n.replace("-","+").replace("_","/");l<n.length;)o=e.indexOf(n.charAt(l++)),a=e.indexOf(n.charAt(l++)),c=e.indexOf(n.charAt(l++)),u=e.indexOf(n.charAt(l++)),r=o<<2|a>>4,s=(a&15)<<4|c>>2,i=(c&3)<<6|u,t=t+String.fromCharCode(r),c!=64&&s!=0&&(t=t+String.fromCharCode(s)),u!=64&&i!=0&&(t=t+String.fromCharCode(i));return t}class Pr{constructor(){this.promise=new Pr.promiseConstructor((e,t)=>{this.resolve=e,this.reject=t})}}Pr.promiseConstructor=Promise;function cs(n){const e=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}=?$|[a-z0-9_-]{2}(==)?$)$/i,t=n.split(".");if(t.length!==3)throw new Error("JWT is not valid: not a JWT structure");if(!e.test(t[1]))throw new Error("JWT is not valid: payload is not in base64url format");const r=t[1];return JSON.parse(Oa(r))}function ka(n){return new Promise(e=>{setTimeout(()=>e(null),n)})}function Aa(n,e){return new Promise((r,s)=>{tr(this,void 0,void 0,function*(){for(let i=0;i<1/0;i++)try{const o=yield n(i);if(!e(i,null,o)){r(o);return}}catch(o){if(!e(i,o)){s(o);return}}})})}class Pn extends Error{constructor(e,t){super(e),this.__isAuthError=!0,this.name="AuthError",this.status=t}}function $(n){return typeof n=="object"&&n!==null&&"__isAuthError"in n}class Sa extends Pn{constructor(e,t){super(e,t),this.name="AuthApiError",this.status=t}toJSON(){return{name:this.name,message:this.message,status:this.status}}}function Ra(n){return $(n)&&n.name==="AuthApiError"}class ei extends Pn{constructor(e,t){super(e),this.name="AuthUnknownError",this.originalError=t}}class Nr extends Pn{constructor(e,t,r){super(e),this.name=t,this.status=r}toJSON(){return{name:this.name,message:this.message,status:this.status}}}class jt extends Nr{constructor(){super("Auth session missing!","AuthSessionMissingError",400)}}class Xr extends Nr{constructor(e){super(e,"AuthInvalidCredentialsError",400)}}class Ae extends Nr{constructor(e,t=null){super(e,"AuthImplicitGrantRedirectError",500),this.details=null,this.details=t}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}}class ln extends Nr{constructor(e,t){super(e,"AuthRetryableFetchError",t)}}var Nn=globalThis&&globalThis.__awaiter||function(n,e,t,r){function s(i){return i instanceof t?i:new t(function(o){o(i)})}return new(t||(t=Promise))(function(i,o){function a(l){try{u(r.next(l))}catch(h){o(h)}}function c(l){try{u(r.throw(l))}catch(h){o(h)}}function u(l){l.done?i(l.value):s(l.value).then(a,c)}u((r=r.apply(n,e||[])).next())})},$a=globalThis&&globalThis.__rest||function(n,e){var t={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&e.indexOf(r)<0&&(t[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,r=Object.getOwnPropertySymbols(n);s<r.length;s++)e.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(n,r[s])&&(t[r[s]]=n[r[s]]);return t};const ar=n=>n.msg||n.message||n.error_description||n.error||JSON.stringify(n),Pa=(n,e)=>Nn(void 0,void 0,void 0,function*(){const t=[502,503,504];Ea(n)?t.includes(n.status)?e(new ln(ar(n),n.status)):n.json().then(r=>{e(new Sa(ar(r),n.status||500))}).catch(r=>{e(new ei(ar(r),r))}):e(new ln(ar(n),0))}),Na=(n,e,t,r)=>{const s={method:n,headers:(e==null?void 0:e.headers)||{}};return n==="GET"?s:(s.headers=Object.assign({"Content-Type":"application/json;charset=UTF-8"},e==null?void 0:e.headers),s.body=JSON.stringify(r),Object.assign(Object.assign({},s),t))};function I(n,e,t,r){var s;return Nn(this,void 0,void 0,function*(){const i=Object.assign({},r==null?void 0:r.headers);r!=null&&r.jwt&&(i.Authorization=`Bearer ${r.jwt}`);const o=(s=r==null?void 0:r.query)!==null&&s!==void 0?s:{};r!=null&&r.redirectTo&&(o.redirect_to=r.redirectTo);const a=Object.keys(o).length?"?"+new URLSearchParams(o).toString():"",c=yield Ia(n,e,t+a,{headers:i,noResolveJson:r==null?void 0:r.noResolveJson},{},r==null?void 0:r.body);return r!=null&&r.xform?r==null?void 0:r.xform(c):{data:Object.assign({},c),error:null}})}function Ia(n,e,t,r,s,i){return Nn(this,void 0,void 0,function*(){return new Promise((o,a)=>{n(t,Na(e,r,s,i)).then(c=>{if(!c.ok)throw c;return r!=null&&r.noResolveJson?c:c.json()}).then(c=>o(c)).catch(c=>Pa(c,a))})})}function Ze(n){var e;let t=null;Ua(n)&&(t=Object.assign({},n),t.expires_at=va(n.expires_in));const r=(e=n.user)!==null&&e!==void 0?e:n;return{data:{session:t,user:r},error:null}}function rt(n){var e;return{data:{user:(e=n.user)!==null&&e!==void 0?e:n},error:null}}function Ca(n){return{data:n,error:null}}function Fa(n){const{action_link:e,email_otp:t,hashed_token:r,redirect_to:s,verification_type:i}=n,o=$a(n,["action_link","email_otp","hashed_token","redirect_to","verification_type"]),a={action_link:e,email_otp:t,hashed_token:r,redirect_to:s,verification_type:i},c=Object.assign({},o);return{data:{properties:a,user:c},error:null}}function Da(n){return n}function Ua(n){return n.access_token&&n.refresh_token&&n.expires_in}var _e=globalThis&&globalThis.__awaiter||function(n,e,t,r){function s(i){return i instanceof t?i:new t(function(o){o(i)})}return new(t||(t=Promise))(function(i,o){function a(l){try{u(r.next(l))}catch(h){o(h)}}function c(l){try{u(r.throw(l))}catch(h){o(h)}}function u(l){l.done?i(l.value):s(l.value).then(a,c)}u((r=r.apply(n,e||[])).next())})},ja=globalThis&&globalThis.__rest||function(n,e){var t={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&e.indexOf(r)<0&&(t[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,r=Object.getOwnPropertySymbols(n);s<r.length;s++)e.indexOf(r[s])<0&&Object.prototype.propertyIsEnumerable.call(n,r[s])&&(t[r[s]]=n[r[s]]);return t};class La{constructor({url:e="",headers:t={},fetch:r}){this.url=e,this.headers=t,this.fetch=Qs(r),this.mfa={listFactors:this._listFactors.bind(this),deleteFactor:this._deleteFactor.bind(this)}}signOut(e){return _e(this,void 0,void 0,function*(){try{return yield I(this.fetch,"POST",`${this.url}/logout`,{headers:this.headers,jwt:e,noResolveJson:!0}),{data:null,error:null}}catch(t){if($(t))return{data:null,error:t};throw t}})}inviteUserByEmail(e,t={}){return _e(this,void 0,void 0,function*(){try{return yield I(this.fetch,"POST",`${this.url}/invite`,{body:{email:e,data:t.data},headers:this.headers,redirectTo:t.redirectTo,xform:rt})}catch(r){if($(r))return{data:{user:null},error:r};throw r}})}generateLink(e){return _e(this,void 0,void 0,function*(){try{const{options:t}=e,r=ja(e,["options"]),s=Object.assign(Object.assign({},r),t);return"newEmail"in r&&(s.new_email=r==null?void 0:r.newEmail,delete s.newEmail),yield I(this.fetch,"POST",`${this.url}/admin/generate_link`,{body:s,headers:this.headers,xform:Fa,redirectTo:t==null?void 0:t.redirectTo})}catch(t){if($(t))return{data:{properties:null,user:null},error:t};throw t}})}createUser(e){return _e(this,void 0,void 0,function*(){try{return yield I(this.fetch,"POST",`${this.url}/admin/users`,{body:e,headers:this.headers,xform:rt})}catch(t){if($(t))return{data:{user:null},error:t};throw t}})}listUsers(e){var t,r,s,i,o,a,c;return _e(this,void 0,void 0,function*(){try{const u={nextPage:null,lastPage:0,total:0},l=yield I(this.fetch,"GET",`${this.url}/admin/users`,{headers:this.headers,noResolveJson:!0,query:{page:(r=(t=e==null?void 0:e.page)===null||t===void 0?void 0:t.toString())!==null&&r!==void 0?r:"",per_page:(i=(s=e==null?void 0:e.perPage)===null||s===void 0?void 0:s.toString())!==null&&i!==void 0?i:""},xform:Da});if(l.error)throw l.error;const h=yield l.json(),y=(o=l.headers.get("x-total-count"))!==null&&o!==void 0?o:0,p=(c=(a=l.headers.get("link"))===null||a===void 0?void 0:a.split(","))!==null&&c!==void 0?c:[];return p.length>0&&(p.forEach(w=>{const v=parseInt(w.split(";")[0].split("=")[1].substring(0,1)),g=JSON.parse(w.split(";")[1].split("=")[1]);u[`${g}Page`]=v}),u.total=parseInt(y)),{data:Object.assign(Object.assign({},h),u),error:null}}catch(u){if($(u))return{data:{users:[]},error:u};throw u}})}getUserById(e){return _e(this,void 0,void 0,function*(){try{return yield I(this.fetch,"GET",`${this.url}/admin/users/${e}`,{headers:this.headers,xform:rt})}catch(t){if($(t))return{data:{user:null},error:t};throw t}})}updateUserById(e,t){return _e(this,void 0,void 0,function*(){try{return yield I(this.fetch,"PUT",`${this.url}/admin/users/${e}`,{body:t,headers:this.headers,xform:rt})}catch(r){if($(r))return{data:{user:null},error:r};throw r}})}deleteUser(e,t=!1){return _e(this,void 0,void 0,function*(){try{return yield I(this.fetch,"DELETE",`${this.url}/admin/users/${e}`,{headers:this.headers,body:{should_soft_delete:t},xform:rt})}catch(r){if($(r))return{data:{user:null},error:r};throw r}})}_listFactors(e){return _e(this,void 0,void 0,function*(){try{const{data:t,error:r}=yield I(this.fetch,"GET",`${this.url}/admin/users/${e.userId}/factors`,{headers:this.headers,xform:s=>({data:{factors:s},error:null})});return{data:t,error:r}}catch(t){if($(t))return{data:null,error:t};throw t}})}_deleteFactor(e){return _e(this,void 0,void 0,function*(){try{return{data:yield I(this.fetch,"DELETE",`${this.url}/admin/users/${e.userId}/factors/${e.id}`,{headers:this.headers}),error:null}}catch(t){if($(t))return{data:null,error:t};throw t}})}}const Ba="2.13.0",Ha="http://localhost:9999",Ma="supabase.auth.token",Va={"X-Client-Info":`gotrue-js/${Ba}`},za=10,qa={getItem:n=>Kr()?globalThis.localStorage.getItem(n):null,setItem:(n,e)=>{Kr()&&globalThis.localStorage.setItem(n,e)},removeItem:n=>{Kr()&&globalThis.localStorage.removeItem(n)}};function Ga(){if(typeof globalThis!="object")try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch{typeof self<"u"&&(self.globalThis=self)}}var k=globalThis&&globalThis.__awaiter||function(n,e,t,r){function s(i){return i instanceof t?i:new t(function(o){o(i)})}return new(t||(t=Promise))(function(i,o){function a(l){try{u(r.next(l))}catch(h){o(h)}}function c(l){try{u(r.throw(l))}catch(h){o(h)}}function u(l){l.done?i(l.value):s(l.value).then(a,c)}u((r=r.apply(n,e||[])).next())})};Ga();const Ja={url:Ha,storageKey:Ma,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:Va},Zr=10*1e3,Wa=3;class Ka{constructor(e){this.stateChangeEmitters=new Map,this.autoRefreshTicker=null,this.visibilityChangedCallback=null,this.refreshingDeferred=null,this.initializePromise=null,this.detectSessionInUrl=!0,this.broadcastChannel=null;const t=Object.assign(Object.assign({},Ja),e);this.inMemorySession=null,this.storageKey=t.storageKey,this.autoRefreshToken=t.autoRefreshToken,this.persistSession=t.persistSession,this.storage=t.storage||qa,this.admin=new La({url:t.url,headers:t.headers,fetch:t.fetch}),this.url=t.url,this.headers=t.headers,this.fetch=Qs(t.fetch),this.detectSessionInUrl=t.detectSessionInUrl,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)},Ye()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey&&(this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey),this.broadcastChannel.addEventListener("message",r=>{this._notifyAllSubscribers(r.data.event,r.data.session,!1)})),this.initialize()}initialize(){return this.initializePromise||(this.initializePromise=this._initialize()),this.initializePromise}_initialize(){return k(this,void 0,void 0,function*(){if(this.initializePromise)return this.initializePromise;try{if(this.detectSessionInUrl&&this._isImplicitGrantFlow()){const{data:e,error:t}=yield this._getSessionFromUrl();if(t)return yield this._removeSession(),{error:t};const{session:r,redirectType:s}=e;return yield this._saveSession(r),setTimeout(()=>{this._notifyAllSubscribers("SIGNED_IN",r),s==="recovery"&&this._notifyAllSubscribers("PASSWORD_RECOVERY",r)},0),{error:null}}return yield this._recoverAndRefresh(),{error:null}}catch(e){return $(e)?{error:e}:{error:new ei("Unexpected error during initialization",e)}}finally{yield this._handleVisibilityChange()}})}signUp(e){var t,r;return k(this,void 0,void 0,function*(){try{yield this._removeSession();let s;if("email"in e){const{email:u,password:l,options:h}=e;s=yield I(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,redirectTo:h==null?void 0:h.emailRedirectTo,body:{email:u,password:l,data:(t=h==null?void 0:h.data)!==null&&t!==void 0?t:{},gotrue_meta_security:{captcha_token:h==null?void 0:h.captchaToken}},xform:Ze})}else if("phone"in e){const{phone:u,password:l,options:h}=e;s=yield I(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{phone:u,password:l,data:(r=h==null?void 0:h.data)!==null&&r!==void 0?r:{},gotrue_meta_security:{captcha_token:h==null?void 0:h.captchaToken}},xform:Ze})}else throw new Xr("You must provide either an email or phone number and a password");const{data:i,error:o}=s;if(o||!i)return{data:{user:null,session:null},error:o};const a=i.session,c=i.user;return i.session&&(yield this._saveSession(i.session),this._notifyAllSubscribers("SIGNED_IN",a)),{data:{user:c,session:a},error:null}}catch(s){if($(s))return{data:{user:null,session:null},error:s};throw s}})}signInWithPassword(e){var t;return k(this,void 0,void 0,function*(){try{yield this._removeSession();let r;if("email"in e){const{email:o,password:a,options:c}=e;r=yield I(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:o,password:a,gotrue_meta_security:{captcha_token:c==null?void 0:c.captchaToken}},xform:Ze})}else if("phone"in e){const{phone:o,password:a,options:c}=e;r=yield I(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:o,password:a,gotrue_meta_security:{captcha_token:c==null?void 0:c.captchaToken},channel:(t=c==null?void 0:c.channel)!==null&&t!==void 0?t:"sms"},xform:Ze})}else throw new Xr("You must provide either an email or phone number and a password");const{data:s,error:i}=r;return i||!s?{data:{user:null,session:null},error:i}:(s.session&&(yield this._saveSession(s.session),this._notifyAllSubscribers("SIGNED_IN",s.session)),{data:s,error:i})}catch(r){if($(r))return{data:{user:null,session:null},error:r};throw r}})}signInWithOAuth(e){var t,r,s,i;return k(this,void 0,void 0,function*(){return yield this._removeSession(),this._handleProviderSignIn(e.provider,{redirectTo:(t=e.options)===null||t===void 0?void 0:t.redirectTo,scopes:(r=e.options)===null||r===void 0?void 0:r.scopes,queryParams:(s=e.options)===null||s===void 0?void 0:s.queryParams,skipBrowserRedirect:(i=e.options)===null||i===void 0?void 0:i.skipBrowserRedirect})})}signInWithIdToken(e){return k(this,void 0,void 0,function*(){yield this._removeSession();try{const{options:t,provider:r,token:s,nonce:i}=e,o=yield I(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:r,id_token:s,nonce:i,gotrue_meta_security:{captcha_token:t==null?void 0:t.captchaToken}},xform:Ze}),{data:a,error:c}=o;return c||!a?{data:{user:null,session:null},error:c}:(a.session&&(yield this._saveSession(a.session),this._notifyAllSubscribers("SIGNED_IN",a.session)),{data:a,error:c})}catch(t){if($(t))return{data:{user:null,session:null},error:t};throw t}})}signInWithOtp(e){var t,r,s,i,o;return k(this,void 0,void 0,function*(){try{if(yield this._removeSession(),"email"in e){const{email:a,options:c}=e,{error:u}=yield I(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{email:a,data:(t=c==null?void 0:c.data)!==null&&t!==void 0?t:{},create_user:(r=c==null?void 0:c.shouldCreateUser)!==null&&r!==void 0?r:!0,gotrue_meta_security:{captcha_token:c==null?void 0:c.captchaToken}},redirectTo:c==null?void 0:c.emailRedirectTo});return{data:{user:null,session:null},error:u}}if("phone"in e){const{phone:a,options:c}=e,{error:u}=yield I(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{phone:a,data:(s=c==null?void 0:c.data)!==null&&s!==void 0?s:{},create_user:(i=c==null?void 0:c.shouldCreateUser)!==null&&i!==void 0?i:!0,gotrue_meta_security:{captcha_token:c==null?void 0:c.captchaToken},channel:(o=c==null?void 0:c.channel)!==null&&o!==void 0?o:"sms"}});return{data:{user:null,session:null},error:u}}throw new Xr("You must provide either an email or phone number.")}catch(a){if($(a))return{data:{user:null,session:null},error:a};throw a}})}verifyOtp(e){var t,r;return k(this,void 0,void 0,function*(){try{yield this._removeSession();const{data:s,error:i}=yield I(this.fetch,"POST",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},e),{gotrue_meta_security:{captcha_token:(t=e.options)===null||t===void 0?void 0:t.captchaToken}}),redirectTo:(r=e.options)===null||r===void 0?void 0:r.redirectTo,xform:Ze});if(i)throw i;if(!s)throw"An error occurred on token verification.";const o=s.session,a=s.user;return o!=null&&o.access_token&&(yield this._saveSession(o),this._notifyAllSubscribers("SIGNED_IN",o)),{data:{user:a,session:o},error:null}}catch(s){if($(s))return{data:{user:null,session:null},error:s};throw s}})}signInWithSSO(e){var t,r,s;return k(this,void 0,void 0,function*(){try{return yield this._removeSession(),yield I(this.fetch,"POST",`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},"providerId"in e?{provider_id:e.providerId}:null),"domain"in e?{domain:e.domain}:null),{redirect_to:(r=(t=e.options)===null||t===void 0?void 0:t.redirectTo)!==null&&r!==void 0?r:void 0}),!((s=e==null?void 0:e.options)===null||s===void 0)&&s.captchaToken?{gotrue_meta_security:{captcha_token:e.options.captchaToken}}:null),{skip_http_redirect:!0}),headers:this.headers,xform:Ca})}catch(i){if($(i))return{data:null,error:i};throw i}})}getSession(){return k(this,void 0,void 0,function*(){yield this.initializePromise;let e=null;if(this.persistSession){const i=yield as(this.storage,this.storageKey);i!==null&&(this._isValidSession(i)?e=i:yield this._removeSession())}else e=this.inMemorySession;if(!e)return{data:{session:null},error:null};if(!(e.expires_at?e.expires_at<=Date.now()/1e3:!1))return{data:{session:e},error:null};const{session:r,error:s}=yield this._callRefreshToken(e.refresh_token);return s?{data:{session:null},error:s}:{data:{session:r},error:null}})}getUser(e){var t,r;return k(this,void 0,void 0,function*(){try{if(!e){const{data:s,error:i}=yield this.getSession();if(i)throw i;e=(r=(t=s.session)===null||t===void 0?void 0:t.access_token)!==null&&r!==void 0?r:void 0}return yield I(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:e,xform:rt})}catch(s){if($(s))return{data:{user:null},error:s};throw s}})}updateUser(e,t={}){return k(this,void 0,void 0,function*(){try{const{data:r,error:s}=yield this.getSession();if(s)throw s;if(!r.session)throw new jt;const i=r.session,{data:o,error:a}=yield I(this.fetch,"PUT",`${this.url}/user`,{headers:this.headers,redirectTo:t==null?void 0:t.emailRedirectTo,body:e,jwt:i.access_token,xform:rt});if(a)throw a;return i.user=o.user,yield this._saveSession(i),this._notifyAllSubscribers("USER_UPDATED",i),{data:{user:i.user},error:null}}catch(r){if($(r))return{data:{user:null},error:r};throw r}})}_decodeJWT(e){return cs(e)}setSession(e){return k(this,void 0,void 0,function*(){try{if(!e.access_token||!e.refresh_token)throw new jt;const t=Date.now()/1e3;let r=t,s=!0,i=null;const o=cs(e.access_token);if(o.exp&&(r=o.exp,s=r<=t),s){const{session:a,error:c}=yield this._callRefreshToken(e.refresh_token);if(c)return{data:{user:null,session:null},error:c};if(!a)return{data:{user:null,session:null},error:null};i=a}else{const{data:a,error:c}=yield this.getUser(e.access_token);if(c)throw c;i={access_token:e.access_token,refresh_token:e.refresh_token,user:a.user,token_type:"bearer",expires_in:r-t,expires_at:r},yield this._saveSession(i),this._notifyAllSubscribers("SIGNED_IN",i)}return{data:{user:i.user,session:i},error:null}}catch(t){if($(t))return{data:{session:null,user:null},error:t};throw t}})}refreshSession(e){var t;return k(this,void 0,void 0,function*(){try{if(!e){const{data:i,error:o}=yield this.getSession();if(o)throw o;e=(t=i.session)!==null&&t!==void 0?t:void 0}if(!(e!=null&&e.refresh_token))throw new jt;const{session:r,error:s}=yield this._callRefreshToken(e.refresh_token);return s?{data:{user:null,session:null},error:s}:r?{data:{user:r.user,session:r},error:null}:{data:{user:null,session:null},error:null}}catch(r){if($(r))return{data:{user:null,session:null},error:r};throw r}})}_getSessionFromUrl(){return k(this,void 0,void 0,function*(){try{if(!Ye())throw new Ae("No browser detected.");if(!this._isImplicitGrantFlow())throw new Ae("Not a valid implicit grant flow url.");const e=ae("error_description");if(e){const v=ae("error_code");if(!v)throw new Ae("No error_code detected.");const g=ae("error");throw g?new Ae(e,{error:g,code:v}):new Ae("No error detected.")}const t=ae("provider_token"),r=ae("provider_refresh_token"),s=ae("access_token");if(!s)throw new Ae("No access_token detected.");const i=ae("expires_in");if(!i)throw new Ae("No expires_in detected.");const o=ae("refresh_token");if(!o)throw new Ae("No refresh_token detected.");const a=ae("token_type");if(!a)throw new Ae("No token_type detected.");const u=Math.round(Date.now()/1e3)+parseInt(i),{data:l,error:h}=yield this.getUser(s);if(h)throw h;const y=l.user,p={provider_token:t,provider_refresh_token:r,access_token:s,expires_in:parseInt(i),expires_at:u,refresh_token:o,token_type:a,user:y},w=ae("type");return window.location.hash="",{data:{session:p,redirectType:w},error:null}}catch(e){if($(e))return{data:{session:null,redirectType:null},error:e};throw e}})}_isImplicitGrantFlow(){return Ye()&&(Boolean(ae("access_token"))||Boolean(ae("error_description")))}signOut(){var e;return k(this,void 0,void 0,function*(){const{data:t,error:r}=yield this.getSession();if(r)return{error:r};const s=(e=t.session)===null||e===void 0?void 0:e.access_token;if(s){const{error:i}=yield this.admin.signOut(s);if(i&&!(Ra(i)&&(i.status===404||i.status===401)))return{error:i}}return yield this._removeSession(),this._notifyAllSubscribers("SIGNED_OUT",null),{error:null}})}onAuthStateChange(e){const t=_a(),r={id:t,callback:e,unsubscribe:()=>{this.stateChangeEmitters.delete(t)}};return this.stateChangeEmitters.set(t,r),{data:{subscription:r}}}resetPasswordForEmail(e,t={}){return k(this,void 0,void 0,function*(){try{return yield I(this.fetch,"POST",`${this.url}/recover`,{body:{email:e,gotrue_meta_security:{captcha_token:t.captchaToken}},headers:this.headers,redirectTo:t.redirectTo})}catch(r){if($(r))return{data:null,error:r};throw r}})}_refreshAccessToken(e){return k(this,void 0,void 0,function*(){try{const t=Date.now();return yield Aa(r=>k(this,void 0,void 0,function*(){return yield ka(r*200),yield I(this.fetch,"POST",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:e},headers:this.headers,xform:Ze})}),(r,s,i)=>i&&i.error&&i.error instanceof ln&&Date.now()+(r+1)*200-t<Zr)}catch(t){if($(t))return{data:{session:null,user:null},error:t};throw t}})}_isValidSession(e){return typeof e=="object"&&e!==null&&"access_token"in e&&"refresh_token"in e&&"expires_at"in e}_handleProviderSignIn(e,t={}){const r=this._getUrlForProvider(e,{redirectTo:t.redirectTo,scopes:t.scopes,queryParams:t.queryParams});return Ye()&&!t.skipBrowserRedirect&&window.location.assign(r),{data:{provider:e,url:r},error:null}}_recoverAndRefresh(){var e;return k(this,void 0,void 0,function*(){try{const t=yield as(this.storage,this.storageKey);if(!this._isValidSession(t)){t!==null&&(yield this._removeSession());return}const r=Math.round(Date.now()/1e3);if(((e=t.expires_at)!==null&&e!==void 0?e:1/0)<r+za)if(this.autoRefreshToken&&t.refresh_token){const{error:s}=yield this._callRefreshToken(t.refresh_token);s&&(console.log(s.message),yield this._removeSession())}else yield this._removeSession();else this.persistSession&&(yield this._saveSession(t)),this._notifyAllSubscribers("SIGNED_IN",t)}catch(t){console.error(t);return}})}_callRefreshToken(e){var t,r;return k(this,void 0,void 0,function*(){if(this.refreshingDeferred)return this.refreshingDeferred.promise;try{if(this.refreshingDeferred=new Pr,!e)throw new jt;const{data:s,error:i}=yield this._refreshAccessToken(e);if(i)throw i;if(!s.session)throw new jt;yield this._saveSession(s.session),this._notifyAllSubscribers("TOKEN_REFRESHED",s.session);const o={session:s.session,error:null};return this.refreshingDeferred.resolve(o),o}catch(s){if($(s)){const i={session:null,error:s};return(t=this.refreshingDeferred)===null||t===void 0||t.resolve(i),i}throw(r=this.refreshingDeferred)===null||r===void 0||r.reject(s),s}finally{this.refreshingDeferred=null}})}_notifyAllSubscribers(e,t,r=!0){this.broadcastChannel&&r&&this.broadcastChannel.postMessage({event:e,session:t}),this.stateChangeEmitters.forEach(s=>s.callback(e,t))}_saveSession(e){return k(this,void 0,void 0,function*(){this.persistSession||(this.inMemorySession=e),this.persistSession&&e.expires_at&&(yield this._persistSession(e))})}_persistSession(e){return xa(this.storage,this.storageKey,e)}_removeSession(){return k(this,void 0,void 0,function*(){this.persistSession?yield Ta(this.storage,this.storageKey):this.inMemorySession=null})}_removeVisibilityChangedCallback(){const e=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{e&&Ye()&&(window!=null&&window.removeEventListener)&&window.removeEventListener("visibilitychange",e)}catch(t){console.error("removing visibilitychange callback failed",t)}}_startAutoRefresh(){return k(this,void 0,void 0,function*(){yield this._stopAutoRefresh();const e=setInterval(()=>this._autoRefreshTokenTick(),Zr);this.autoRefreshTicker=e,e&&typeof e=="object"&&typeof e.unref=="function"&&e.unref(),yield this._autoRefreshTokenTick()})}_stopAutoRefresh(){return k(this,void 0,void 0,function*(){const e=this.autoRefreshTicker;this.autoRefreshTicker=null,e&&clearInterval(e)})}startAutoRefresh(){return k(this,void 0,void 0,function*(){this._removeVisibilityChangedCallback(),yield this._startAutoRefresh()})}stopAutoRefresh(){return k(this,void 0,void 0,function*(){this._removeVisibilityChangedCallback(),yield this._stopAutoRefresh()})}_autoRefreshTokenTick(){return k(this,void 0,void 0,function*(){const e=Date.now();try{const{data:{session:t}}=yield this.getSession();if(!t||!t.refresh_token||!t.expires_at)return;Math.floor((t.expires_at*1e3-e)/Zr)<Wa&&(yield this._callRefreshToken(t.refresh_token))}catch(t){console.error("Auto refresh tick failed with error. This is likely a transient error.",t)}})}_handleVisibilityChange(){return k(this,void 0,void 0,function*(){if(!Ye()||!(window!=null&&window.addEventListener))return this.autoRefreshToken&&this.startAutoRefresh(),!1;try{this.visibilityChangedCallback=()=>k(this,void 0,void 0,function*(){return yield this._onVisibilityChanged(!1)}),window==null||window.addEventListener("visibilitychange",this.visibilityChangedCallback),yield this._onVisibilityChanged(!0)}catch(e){console.error("_handleVisibilityChange",e)}})}_onVisibilityChanged(e){return k(this,void 0,void 0,function*(){document.visibilityState==="visible"?(e||(yield this.initializePromise,yield this._recoverAndRefresh()),this.autoRefreshToken&&this._startAutoRefresh()):document.visibilityState==="hidden"&&this.autoRefreshToken&&this._stopAutoRefresh()})}_getUrlForProvider(e,t){const r=[`provider=${encodeURIComponent(e)}`];if(t!=null&&t.redirectTo&&r.push(`redirect_to=${encodeURIComponent(t.redirectTo)}`),t!=null&&t.scopes&&r.push(`scopes=${encodeURIComponent(t.scopes)}`),t!=null&&t.queryParams){const s=new URLSearchParams(t.queryParams);r.push(s.toString())}return`${this.url}/authorize?${r.join("&")}`}_unenroll(e){var t;return k(this,void 0,void 0,function*(){try{const{data:r,error:s}=yield this.getSession();return s?{data:null,error:s}:yield I(this.fetch,"DELETE",`${this.url}/factors/${e.factorId}`,{headers:this.headers,jwt:(t=r==null?void 0:r.session)===null||t===void 0?void 0:t.access_token})}catch(r){if($(r))return{data:null,error:r};throw r}})}_enroll(e){var t,r;return k(this,void 0,void 0,function*(){try{const{data:s,error:i}=yield this.getSession();if(i)return{data:null,error:i};const{data:o,error:a}=yield I(this.fetch,"POST",`${this.url}/factors`,{body:{friendly_name:e.friendlyName,factor_type:e.factorType,issuer:e.issuer},headers:this.headers,jwt:(t=s==null?void 0:s.session)===null||t===void 0?void 0:t.access_token});return a?{data:null,error:a}:(!((r=o==null?void 0:o.totp)===null||r===void 0)&&r.qr_code&&(o.totp.qr_code=`data:image/svg+xml;utf-8,${o.totp.qr_code}`),{data:o,error:null})}catch(s){if($(s))return{data:null,error:s};throw s}})}_verify(e){var t;return k(this,void 0,void 0,function*(){try{const{data:r,error:s}=yield this.getSession();if(s)return{data:null,error:s};const{data:i,error:o}=yield I(this.fetch,"POST",`${this.url}/factors/${e.factorId}/verify`,{body:{code:e.code,challenge_id:e.challengeId},headers:this.headers,jwt:(t=r==null?void 0:r.session)===null||t===void 0?void 0:t.access_token});return o?{data:null,error:o}:(yield this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+i.expires_in},i)),this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",i),{data:i,error:o})}catch(r){if($(r))return{data:null,error:r};throw r}})}_challenge(e){var t;return k(this,void 0,void 0,function*(){try{const{data:r,error:s}=yield this.getSession();return s?{data:null,error:s}:yield I(this.fetch,"POST",`${this.url}/factors/${e.factorId}/challenge`,{headers:this.headers,jwt:(t=r==null?void 0:r.session)===null||t===void 0?void 0:t.access_token})}catch(r){if($(r))return{data:null,error:r};throw r}})}_challengeAndVerify(e){return k(this,void 0,void 0,function*(){const{data:t,error:r}=yield this._challenge({factorId:e.factorId});return r?{data:null,error:r}:yield this._verify({factorId:e.factorId,challengeId:t.id,code:e.code})})}_listFactors(){return k(this,void 0,void 0,function*(){const{data:{user:e},error:t}=yield this.getUser();if(t)return{data:null,error:t};const r=(e==null?void 0:e.factors)||[],s=r.filter(i=>i.factor_type==="totp"&&i.status==="verified");return{data:{all:r,totp:s},error:null}})}_getAuthenticatorAssuranceLevel(){var e,t;return k(this,void 0,void 0,function*(){const{data:{session:r},error:s}=yield this.getSession();if(s)return{data:null,error:s};if(!r)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};const i=this._decodeJWT(r.access_token);let o=null;i.aal&&(o=i.aal);let a=o;((t=(e=r.user.factors)===null||e===void 0?void 0:e.filter(l=>l.status==="verified"))!==null&&t!==void 0?t:[]).length>0&&(a="aal2");const u=i.amr||[];return{data:{currentLevel:o,nextLevel:a,currentAuthenticationMethods:u},error:null}})}}class Xa extends Ka{constructor(e){super(e)}}var Za=globalThis&&globalThis.__awaiter||function(n,e,t,r){function s(i){return i instanceof t?i:new t(function(o){o(i)})}return new(t||(t=Promise))(function(i,o){function a(l){try{u(r.next(l))}catch(h){o(h)}}function c(l){try{u(r.throw(l))}catch(h){o(h)}}function u(l){l.done?i(l.value):s(l.value).then(a,c)}u((r=r.apply(n,e||[])).next())})};const Ya={headers:da},Qa={schema:"public"},ec={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0},tc={};class rc{constructor(e,t,r){var s,i,o,a,c,u,l,h;if(this.supabaseUrl=e,this.supabaseKey=t,!e)throw new Error("supabaseUrl is required.");if(!t)throw new Error("supabaseKey is required.");const y=wa(e);if(this.realtimeUrl=`${y}/realtime/v1`.replace(/^http/i,"ws"),this.authUrl=`${y}/auth/v1`,this.storageUrl=`${y}/storage/v1`,y.match(/(supabase\.co)|(supabase\.in)/)){const A=y.split(".");this.functionsUrl=`${A[0]}.functions.${A[1]}.${A[2]}`}else this.functionsUrl=`${y}/functions/v1`;const w=`sb-${new URL(this.authUrl).hostname.split(".")[0]}-auth-token`,v={db:Qa,realtime:tc,auth:Object.assign(Object.assign({},ec),{storageKey:w}),global:Ya},g=ba(r??{},v);this.storageKey=(i=(s=g.auth)===null||s===void 0?void 0:s.storageKey)!==null&&i!==void 0?i:"",this.headers=(a=(o=g.global)===null||o===void 0?void 0:o.headers)!==null&&a!==void 0?a:{},this.auth=this._initSupabaseAuthClient((c=g.auth)!==null&&c!==void 0?c:{},this.headers,(u=g.global)===null||u===void 0?void 0:u.fetch),this.fetch=ga(t,this._getAccessToken.bind(this),(l=g.global)===null||l===void 0?void 0:l.fetch),this.realtime=this._initRealtimeClient(Object.assign({headers:this.headers},g.realtime)),this.rest=new go(`${y}/rest/v1`,{headers:this.headers,schema:(h=g.db)===null||h===void 0?void 0:h.schema,fetch:this.fetch}),this._listenForAuthEvents()}get functions(){return new ao(this.functionsUrl,{headers:this.headers,customFetch:this.fetch})}get storage(){return new ha(this.storageUrl,this.headers,this.fetch)}from(e){return this.rest.from(e)}rpc(e,t={},r){return this.rest.rpc(e,t,r)}channel(e,t={config:{}}){return this.realtime.channel(e,t)}getChannels(){return this.realtime.getChannels()}removeChannel(e){return this.realtime.removeChannel(e)}removeAllChannels(){return this.realtime.removeAllChannels()}_getAccessToken(){var e,t;return Za(this,void 0,void 0,function*(){const{data:r}=yield this.auth.getSession();return(t=(e=r.session)===null||e===void 0?void 0:e.access_token)!==null&&t!==void 0?t:null})}_initSupabaseAuthClient({autoRefreshToken:e,persistSession:t,detectSessionInUrl:r,storage:s,storageKey:i},o,a){const c={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new Xa({url:this.authUrl,headers:Object.assign(Object.assign({},c),o),storageKey:i,autoRefreshToken:e,persistSession:t,detectSessionInUrl:r,storage:s,fetch:a})}_initRealtimeClient(e){return new Qo(this.realtimeUrl,Object.assign(Object.assign({},e),{params:Object.assign({apikey:this.supabaseKey},e==null?void 0:e.params)}))}_listenForAuthEvents(){return this.auth.onAuthStateChange((t,r)=>{this._handleTokenChanged(t,r==null?void 0:r.access_token,"CLIENT")})}_handleTokenChanged(e,t,r){(e==="TOKEN_REFRESHED"||e==="SIGNED_IN")&&this.changedAccessToken!==t?(this.realtime.setAuth(t??null),this.changedAccessToken=t):(e==="SIGNED_OUT"||e==="USER_DELETED")&&(this.realtime.setAuth(this.supabaseKey),r=="STORAGE"&&this.auth.signOut(),this.changedAccessToken=void 0)}}const nc=(n,e,t)=>new rc(n,e,t);function pt(n){this._maxSize=n,this.clear()}pt.prototype.clear=function(){this._size=0,this._values=Object.create(null)};pt.prototype.get=function(n){return this._values[n]};pt.prototype.set=function(n,e){return this._size>=this._maxSize&&this.clear(),n in this._values||this._size++,this._values[n]=e};var sc=/[^.^\]^[]+|(?=\[\]|\.\.)/g,ti=/^\d+$/,ic=/^\d/,oc=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,ac=/^\s*(['"]?)(.*?)(\1)\s*$/,In=512,us=new pt(In),ls=new pt(In),hs=new pt(In),ot={Cache:pt,split:hn,normalizePath:Yr,setter:function(n){var e=Yr(n);return ls.get(n)||ls.set(n,function(r,s){for(var i=0,o=e.length,a=r;i<o-1;){var c=e[i];if(c==="__proto__"||c==="constructor"||c==="prototype")return r;a=a[e[i++]]}a[e[i]]=s})},getter:function(n,e){var t=Yr(n);return hs.get(n)||hs.set(n,function(s){for(var i=0,o=t.length;i<o;)if(s!=null||!e)s=s[t[i++]];else return;return s})},join:function(n){return n.reduce(function(e,t){return e+(Cn(t)||ti.test(t)?"["+t+"]":(e?".":"")+t)},"")},forEach:function(n,e,t){cc(Array.isArray(n)?n:hn(n),e,t)}};function Yr(n){return us.get(n)||us.set(n,hn(n).map(function(e){return e.replace(ac,"$2")}))}function hn(n){return n.match(sc)||[""]}function cc(n,e,t){var r=n.length,s,i,o,a;for(i=0;i<r;i++)s=n[i],s&&(hc(s)&&(s='"'+s+'"'),a=Cn(s),o=!a&&/^\d+$/.test(s),e.call(t,s,a,o,i,n))}function Cn(n){return typeof n=="string"&&n&&["'",'"'].indexOf(n.charAt(0))!==-1}function uc(n){return n.match(ic)&&!n.match(ti)}function lc(n){return oc.test(n)}function hc(n){return!Cn(n)&&(uc(n)||lc(n))}const fc=/[A-Z\xc0-\xd6\xd8-\xde]?[a-z\xdf-\xf6\xf8-\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000]|[A-Z\xc0-\xd6\xd8-\xde]|$)|(?:[A-Z\xc0-\xd6\xd8-\xde]|[^\ud800-\udfff\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000]|[A-Z\xc0-\xd6\xd8-\xde](?:[a-z\xdf-\xf6\xf8-\xff]|[^\ud800-\udfff\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])|$)|[A-Z\xc0-\xd6\xd8-\xde]?(?:[a-z\xdf-\xf6\xf8-\xff]|[^\ud800-\udfff\xac\xb1\xd7\xf7\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\xbf\u2000-\u206f \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\d+\u2700-\u27bfa-z\xdf-\xf6\xf8-\xffA-Z\xc0-\xd6\xd8-\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\xc0-\xd6\xd8-\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\d*(?:1ST|2ND|3RD|(?![123])\dTH)(?=\b|[a-z_])|\d*(?:1st|2nd|3rd|(?![123])\dth)(?=\b|[A-Z_])|\d+|(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff]|\ud83c[\udffb-\udfff])?(?:\u200d(?:[^\ud800-\udfff]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff]|\ud83c[\udffb-\udfff])?)*/g,Ir=n=>n.match(fc)||[],Cr=n=>n[0].toUpperCase()+n.slice(1),Fn=(n,e)=>Ir(n).join(e).toLowerCase(),ri=n=>Ir(n).reduce((e,t)=>`${e}${e?t[0].toUpperCase()+t.slice(1).toLowerCase():t.toLowerCase()}`,""),dc=n=>Cr(ri(n)),pc=n=>Fn(n,"_"),yc=n=>Fn(n,"-"),mc=n=>Cr(Fn(n," ")),gc=n=>Ir(n).map(Cr).join(" ");var Qr={words:Ir,upperFirst:Cr,camelCase:ri,pascalCase:dc,snakeCase:pc,kebabCase:yc,sentenceCase:mc,titleCase:gc},wr={},wc={get exports(){return wr},set exports(n){wr=n}};wc.exports=function(n){return ni(bc(n),n)};wr.array=ni;function ni(n,e){var t=n.length,r=new Array(t),s={},i=t,o=vc(e),a=_c(n);for(e.forEach(function(u){if(!a.has(u[0])||!a.has(u[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});i--;)s[i]||c(n[i],i,new Set);return r;function c(u,l,h){if(h.has(u)){var y;try{y=", node was:"+JSON.stringify(u)}catch{y=""}throw new Error("Cyclic dependency"+y)}if(!a.has(u))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(u));if(!s[l]){s[l]=!0;var p=o.get(u)||new Set;if(p=Array.from(p),l=p.length){h.add(u);do{var w=p[--l];c(w,a.get(w),h)}while(l);h.delete(u)}r[--t]=u}}}function bc(n){for(var e=new Set,t=0,r=n.length;t<r;t++){var s=n[t];e.add(s[0]),e.add(s[1])}return Array.from(e)}function vc(n){for(var e=new Map,t=0,r=n.length;t<r;t++){var s=n[t];e.has(s[0])||e.set(s[0],new Set),e.has(s[1])||e.set(s[1],new Set),e.get(s[0]).add(s[1])}return e}function _c(n){for(var e=new Map,t=0,r=n.length;t<r;t++)e.set(n[t],t);return e}const Ec=Object.prototype.toString,xc=Error.prototype.toString,Tc=RegExp.prototype.toString,Oc=typeof Symbol<"u"?Symbol.prototype.toString:()=>"",kc=/^Symbol\((.*)\)(.*)$/;function Ac(n){return n!=+n?"NaN":n===0&&1/n<0?"-0":""+n}function fs(n,e=!1){if(n==null||n===!0||n===!1)return""+n;const t=typeof n;if(t==="number")return Ac(n);if(t==="string")return e?`"${n}"`:n;if(t==="function")return"[Function "+(n.name||"anonymous")+"]";if(t==="symbol")return Oc.call(n).replace(kc,"Symbol($1)");const r=Ec.call(n).slice(8,-1);return r==="Date"?isNaN(n.getTime())?""+n:n.toISOString(n):r==="Error"||n instanceof Error?"["+xc.call(n)+"]":r==="RegExp"?Tc.call(n):null}function at(n,e){let t=fs(n,e);return t!==null?t:JSON.stringify(n,function(r,s){let i=fs(this[r],e);return i!==null?i:s},2)}function si(n){return n==null?[]:[].concat(n)}let Sc=/\$\{\s*(\w+)\s*\}/g;class oe extends Error{static formatError(e,t){const r=t.label||t.path||"this";return r!==t.path&&(t=Object.assign({},t,{path:r})),typeof e=="string"?e.replace(Sc,(s,i)=>at(t[i])):typeof e=="function"?e(t):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,t,r,s){super(),this.value=void 0,this.path=void 0,this.type=void 0,this.errors=void 0,this.params=void 0,this.inner=void 0,this.name="ValidationError",this.value=t,this.path=r,this.type=s,this.errors=[],this.inner=[],si(e).forEach(i=>{oe.isError(i)?(this.errors.push(...i.errors),this.inner=this.inner.concat(i.inner.length?i.inner:i)):this.errors.push(i)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,oe)}}let Se={default:"${path} is invalid",required:"${path} is a required field",defined:"${path} must be defined",notNull:"${path} cannot be null",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:n,type:e,value:t,originalValue:r})=>{const s=r!=null&&r!==t?` (cast from the value \`${at(r,!0)}\`).`:".";return e!=="mixed"?`${n} must be a \`${e}\` type, but the final value was: \`${at(t,!0)}\``+s:`${n} must match the configured type. The validated value was: \`${at(t,!0)}\``+s}},de={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"},He={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"},fn={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"},dn={isValue:"${path} field must be ${value}"},pn={noUnknown:"${path} field has unspecified keys: ${unknown}"},pr={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must have ${length} items"};Object.assign(Object.create(null),{mixed:Se,string:de,number:He,date:fn,object:pn,array:pr,boolean:dn});const Fr=n=>n&&n.__isYupSchema__;class br{static fromOptions(e,t){if(!t.then&&!t.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:r,then:s,otherwise:i}=t,o=typeof r=="function"?r:(...a)=>a.every(c=>c===r);return new br(e,(a,c)=>{var u;let l=o(...a)?s:i;return(u=l==null?void 0:l(c))!=null?u:c})}constructor(e,t){this.fn=void 0,this.refs=e,this.refs=e,this.fn=t}resolve(e,t){let r=this.refs.map(i=>i.getValue(t==null?void 0:t.value,t==null?void 0:t.parent,t==null?void 0:t.context)),s=this.fn(r,e,t);if(s===void 0||s===e)return e;if(!Fr(s))throw new TypeError("conditions must return a schema object");return s.resolve(t)}}const cr={context:"$",value:"."};class yt{constructor(e,t={}){if(this.key=void 0,this.isContext=void 0,this.isValue=void 0,this.isSibling=void 0,this.path=void 0,this.getter=void 0,this.map=void 0,typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===cr.context,this.isValue=this.key[0]===cr.value,this.isSibling=!this.isContext&&!this.isValue;let r=this.isContext?cr.context:this.isValue?cr.value:"";this.path=this.key.slice(r.length),this.getter=this.path&&ot.getter(this.path,!0),this.map=t.map}getValue(e,t,r){let s=this.isContext?r:this.isValue?e:t;return this.getter&&(s=this.getter(s||{})),this.map&&(s=this.map(s)),s}cast(e,t){return this.getValue(e,t==null?void 0:t.parent,t==null?void 0:t.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}}yt.prototype.__isYupRef=!0;const he=n=>n==null;function vt(n){function e({value:t,path:r="",options:s,originalValue:i,schema:o},a,c){const{name:u,test:l,params:h,message:y,skipAbsent:p}=n;let{parent:w,context:v,abortEarly:g=o.spec.abortEarly}=s;function A(L){return yt.isRef(L)?L.getValue(t,w,v):L}function C(L={}){const M=Object.assign({value:t,originalValue:i,label:o.spec.label,path:L.path||r,spec:o.spec},h,L.params);for(const wt of Object.keys(M))M[wt]=A(M[wt]);const ir=new oe(oe.formatError(L.message||y,M),t,M.path,L.type||u);return ir.params=M,ir}const X=g?a:c;let U={path:r,parent:w,type:u,from:s.from,createError:C,resolve:A,options:s,originalValue:i,schema:o};const be=L=>{oe.isError(L)?X(L):L?c(null):X(C())},Dt=L=>{oe.isError(L)?X(L):a(L)},nr=p&&he(t);if(!s.sync){try{Promise.resolve(nr?!0:l.call(U,t,U)).then(be,Dt)}catch(L){Dt(L)}return}let fe;try{var sr;if(fe=nr?!0:l.call(U,t,U),typeof((sr=fe)==null?void 0:sr.then)=="function")throw new Error(`Validation test of type: "${U.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(L){Dt(L);return}be(fe)}return e.OPTIONS=n,e}function Rc(n,e,t,r=t){let s,i,o;return e?(ot.forEach(e,(a,c,u)=>{let l=c?a.slice(1,a.length-1):a;n=n.resolve({context:r,parent:s,value:t});let h=n.type==="tuple",y=u?parseInt(l,10):0;if(n.innerType||h){if(h&&!u)throw new Error(`Yup.reach cannot implicitly index into a tuple type. the path part "${o}" must contain an index to the tuple element, e.g. "${o}[0]"`);if(t&&y>=t.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);s=t,t=t&&t[y],n=h?n.spec.types[y]:n.innerType}if(!u){if(!n.fields||!n.fields[l])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${n.type}")`);s=t,t=t&&t[l],n=n.fields[l]}i=l,o=c?"["+a+"]":"."+a}),{schema:n,parent:s,parentPath:i}):{parent:s,parentPath:e,schema:n}}class vr extends Set{describe(){const e=[];for(const t of this.values())e.push(yt.isRef(t)?t.describe():t);return e}resolveAll(e){let t=[];for(const r of this.values())t.push(e(r));return t}clone(){return new vr(this.values())}merge(e,t){const r=this.clone();return e.forEach(s=>r.add(s)),t.forEach(s=>r.delete(s)),r}}function Ot(n,e=new Map){if(Fr(n)||!n||typeof n!="object")return n;if(e.has(n))return e.get(n);let t;if(n instanceof Date)t=new Date(n.getTime()),e.set(n,t);else if(n instanceof RegExp)t=new RegExp(n),e.set(n,t);else if(Array.isArray(n)){t=new Array(n.length),e.set(n,t);for(let r=0;r<n.length;r++)t[r]=Ot(n[r],e)}else if(n instanceof Map){t=new Map,e.set(n,t);for(const[r,s]of n.entries())t.set(r,Ot(s,e))}else if(n instanceof Set){t=new Set,e.set(n,t);for(const r of n)t.add(Ot(r,e))}else if(n instanceof Object){t={},e.set(n,t);for(const[r,s]of Object.entries(n))t[r]=Ot(s,e)}else throw Error(`Unable to clone ${n}`);return t}class te{constructor(e){this.type=void 0,this.deps=[],this.tests=void 0,this.transforms=void 0,this.conditions=[],this._mutate=void 0,this.internalTests={},this._whitelist=new vr,this._blacklist=new vr,this.exclusiveTests=Object.create(null),this._typeCheck=void 0,this.spec=void 0,this.tests=[],this.transforms=[],this.withMutation(()=>{this.typeError(Se.notType)}),this.type=e.type,this._typeCheck=e.check,this.spec=Object.assign({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,optional:!0,coerce:!0},e==null?void 0:e.spec),this.withMutation(t=>{t.nonNullable()})}get _type(){return this.type}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;const t=Object.create(Object.getPrototypeOf(this));return t.type=this.type,t._typeCheck=this._typeCheck,t._whitelist=this._whitelist.clone(),t._blacklist=this._blacklist.clone(),t.internalTests=Object.assign({},this.internalTests),t.exclusiveTests=Object.assign({},this.exclusiveTests),t.deps=[...this.deps],t.conditions=[...this.conditions],t.tests=[...this.tests],t.transforms=[...this.transforms],t.spec=Ot(Object.assign({},this.spec,e)),t}label(e){let t=this.clone();return t.spec.label=e,t}meta(...e){if(e.length===0)return this.spec.meta;let t=this.clone();return t.spec.meta=Object.assign(t.spec.meta||{},e[0]),t}withMutation(e){let t=this._mutate;this._mutate=!0;let r=e(this);return this._mutate=t,r}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let t=this,r=e.clone();const s=Object.assign({},t.spec,r.spec);return r.spec=s,r.internalTests=Object.assign({},t.internalTests,r.internalTests),r._whitelist=t._whitelist.merge(e._whitelist,e._blacklist),r._blacklist=t._blacklist.merge(e._blacklist,e._whitelist),r.tests=t.tests,r.exclusiveTests=t.exclusiveTests,r.withMutation(i=>{e.tests.forEach(o=>{i.test(o.OPTIONS)})}),r.transforms=[...t.transforms,...r.transforms],r}isType(e){return e==null?!!(this.spec.nullable&&e===null||this.spec.optional&&e===void 0):this._typeCheck(e)}resolve(e){let t=this;if(t.conditions.length){let r=t.conditions;t=t.clone(),t.conditions=[],t=r.reduce((s,i)=>i.resolve(s,e),t),t=t.resolve(e)}return t}resolveOptions(e){var t,r,s;return Object.assign({},e,{from:e.from||[],strict:(t=e.strict)!=null?t:this.spec.strict,abortEarly:(r=e.abortEarly)!=null?r:this.spec.abortEarly,recursive:(s=e.recursive)!=null?s:this.spec.recursive})}cast(e,t={}){let r=this.resolve(Object.assign({value:e},t)),s=t.assert==="ignore-optionality",i=r._cast(e,t);if(t.assert!==!1&&!r.isType(i)){if(s&&he(i))return i;let o=at(e),a=at(i);throw new TypeError(`The value of ${t.path||"field"} could not be cast to a value that satisfies the schema type: "${r.type}".
2
2
 
3
3
  attempted value: ${o}
4
- `+(a!==o?`result of cast: ${a}`:""))}return i}_cast(e,t){let r=e===void 0?e:this.transforms.reduce((s,i)=>i.call(this,s,e,this),e);return r===void 0&&(r=this.getDefault()),r}_validate(e,t={},r,s){let{path:i,originalValue:o=e,strict:a=this.spec.strict}=t,c=e;a||(c=this._cast(c,Object.assign({assert:!1},t)));let u=[];for(let l of Object.values(this.internalTests))l&&u.push(l);this.runTests({path:i,value:c,originalValue:o,options:t,tests:u},r,l=>{if(l.length)return s(l,c);this.runTests({path:i,value:c,originalValue:o,options:t,tests:this.tests},r,s)})}runTests(e,t,r){let s=!1,{tests:i,value:o,originalValue:a,path:c,options:u}=e,l=v=>{s||(s=!0,t(v,o))},h=v=>{s||(s=!0,r(v,o))},y=i.length,p=[];if(!y)return h([]);let w={value:o,originalValue:a,path:c,options:u,schema:this};for(let v=0;v<i.length;v++){const g=i[v];g(w,l,function(C){C&&(p=p.concat(C)),--y<=0&&h(p)})}}asNestedTest({key:e,index:t,parent:r,parentPath:s,originalParent:i,options:o}){const a=e??t;if(a==null)throw TypeError("Must include `key` or `index` for nested validations");const c=typeof a=="number";let u=r[a];const l=Object.assign({},o,{strict:!0,parent:r,value:u,originalValue:i[a],key:void 0,[c?"index":"key"]:a,path:c||a.includes(".")?`${s||""}[${u?a:`"${a}"`}]`:(s?`${s}.`:"")+e});return(h,y,p)=>this.resolve(l)._validate(u,l,y,p)}validate(e,t){let r=this.resolve(Object.assign({},t,{value:e}));return new Promise((s,i)=>r._validate(e,t,(o,a)=>{oe.isError(o)&&(o.value=a),i(o)},(o,a)=>{o.length?i(new oe(o,a)):s(a)}))}validateSync(e,t){let r=this.resolve(Object.assign({},t,{value:e})),s;return r._validate(e,Object.assign({},t,{sync:!0}),(i,o)=>{throw oe.isError(i)&&(i.value=o),i},(i,o)=>{if(i.length)throw new oe(i,e);s=o}),s}isValid(e,t){return this.validate(e,t).then(()=>!0,r=>{if(oe.isError(r))return!1;throw r})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(r){if(oe.isError(r))return!1;throw r}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):Ot(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){return this.clone({strict:e})}nullability(e,t){const r=this.clone({nullable:e});return r.internalTests.nullable=vt({message:t,name:"nullable",test(s){return s===null?this.schema.spec.nullable:!0}}),r}optionality(e,t){const r=this.clone({optional:e});return r.internalTests.optionality=vt({message:t,name:"optionality",test(s){return s===void 0?this.schema.spec.optional:!0}}),r}optional(){return this.optionality(!0)}defined(e=Se.defined){return this.optionality(!1,e)}nullable(){return this.nullability(!0)}nonNullable(e=Se.notNull){return this.nullability(!1,e)}required(e=Se.required){return this.clone().withMutation(t=>t.nonNullable(e).defined(e))}notRequired(){return this.clone().withMutation(e=>e.nullable().optional())}transform(e){let t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Se.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let r=this.clone(),s=vt(t),i=t.exclusive||t.name&&r.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(r.exclusiveTests[t.name]=!!t.exclusive),r.tests=r.tests.filter(o=>!(o.OPTIONS.name===t.name&&(i||o.OPTIONS.test===s.OPTIONS.test))),r.tests.push(s),r}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let r=this.clone(),s=si(e).map(i=>new yt(i));return s.forEach(i=>{i.isSibling&&r.deps.push(i.key)}),r.conditions.push(typeof t=="function"?new br(s,t):br.fromOptions(s,t)),r}typeError(e){let t=this.clone();return t.internalTests.typeError=vt({message:e,name:"typeError",test(r){return!he(r)&&!this.schema._typeCheck(r)?this.createError({params:{type:this.schema.type}}):!0}}),t}oneOf(e,t=Se.oneOf){let r=this.clone();return e.forEach(s=>{r._whitelist.add(s),r._blacklist.delete(s)}),r.internalTests.whiteList=vt({message:t,name:"oneOf",skipAbsent:!0,test(s){let i=this.schema._whitelist,o=i.resolveAll(this.resolve);return o.includes(s)?!0:this.createError({params:{values:Array.from(i).join(", "),resolved:o}})}}),r}notOneOf(e,t=Se.notOneOf){let r=this.clone();return e.forEach(s=>{r._blacklist.add(s),r._whitelist.delete(s)}),r.internalTests.blacklist=vt({message:t,name:"notOneOf",test(s){let i=this.schema._blacklist,o=i.resolveAll(this.resolve);return o.includes(s)?this.createError({params:{values:Array.from(i).join(", "),resolved:o}}):!0}}),r}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(e){const t=(e?this.resolve(e):this).clone(),{label:r,meta:s,optional:i,nullable:o}=t.spec;return{meta:s,label:r,optional:i,nullable:o,default:t.getDefault(e),type:t.type,oneOf:t._whitelist.describe(),notOneOf:t._blacklist.describe(),tests:t.tests.map(c=>({name:c.OPTIONS.name,params:c.OPTIONS.params})).filter((c,u,l)=>l.findIndex(h=>h.name===c.name)===u)}}}te.prototype.__isYupSchema__=!0;for(const n of["validate","validateSync"])te.prototype[`${n}At`]=function(e,t,r={}){const{parent:s,parentPath:i,schema:o}=Rc(this,e,t,r.context);return o[n](s&&s[i],Object.assign({},r,{parent:s,path:e}))};for(const n of["equals","is"])te.prototype[n]=te.prototype.oneOf;for(const n of["not","nope"])te.prototype[n]=te.prototype.notOneOf;const $c=()=>!0;function ii(n){return new oi(n)}class oi extends te{constructor(e){super(typeof e=="function"?{type:"mixed",check:e}:Object.assign({type:"mixed",check:$c},e))}}ii.prototype=oi.prototype;function Dr(){return new ai}class ai extends te{constructor(){super({type:"boolean",check(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}}),this.withMutation(()=>{this.transform((e,t,r)=>{if(r.spec.coerce&&!r.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}isTrue(e=dn.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(t){return he(t)||t===!0}})}isFalse(e=dn.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(t){return he(t)||t===!1}})}default(e){return super.default(e)}defined(e){return super.defined(e)}optional(){return super.optional()}required(e){return super.required(e)}notRequired(){return super.notRequired()}nullable(){return super.nullable()}nonNullable(e){return super.nonNullable(e)}strip(e){return super.strip(e)}}Dr.prototype=ai.prototype;let Pc=/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Nc=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,Ic=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,Cc=n=>he(n)||n===n.trim(),Fc={}.toString();function T(){return new ci}class ci extends te{constructor(){super({type:"string",check(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}}),this.withMutation(()=>{this.transform((e,t,r)=>{if(!r.spec.coerce||r.isType(e)||Array.isArray(e))return e;const s=e!=null&&e.toString?e.toString():e;return s===Fc?e:s})})}required(e){return super.required(e).withMutation(t=>t.test({message:e||Se.required,name:"required",skipAbsent:!0,test:r=>!!r.length}))}notRequired(){return super.notRequired().withMutation(e=>(e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e))}length(e,t=de.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},skipAbsent:!0,test(r){return r.length===this.resolve(e)}})}min(e,t=de.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(r){return r.length>=this.resolve(e)}})}max(e,t=de.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},skipAbsent:!0,test(r){return r.length<=this.resolve(e)}})}matches(e,t){let r=!1,s,i;return t&&(typeof t=="object"?{excludeEmptyString:r=!1,message:s,name:i}=t:s=t),this.test({name:i||"matches",message:s||de.matches,params:{regex:e},skipAbsent:!0,test:o=>o===""&&r||o.search(e)!==-1})}email(e=de.email){return this.matches(Pc,{name:"email",message:e,excludeEmptyString:!0})}url(e=de.url){return this.matches(Nc,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=de.uuid){return this.matches(Ic,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=de.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:"trim",test:Cc})}lowercase(e=de.lowercase){return this.transform(t=>he(t)?t:t.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,skipAbsent:!0,test:t=>he(t)||t===t.toLowerCase()})}uppercase(e=de.uppercase){return this.transform(t=>he(t)?t:t.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,skipAbsent:!0,test:t=>he(t)||t===t.toUpperCase()})}}T.prototype=ci.prototype;let Dc=n=>n!=+n;function q(){return new ui}class ui extends te{constructor(){super({type:"number",check(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!Dc(e)}}),this.withMutation(()=>{this.transform((e,t,r)=>{if(!r.spec.coerce)return e;let s=e;if(typeof s=="string"){if(s=s.replace(/\s/g,""),s==="")return NaN;s=+s}return r.isType(s)?s:parseFloat(s)})})}min(e,t=He.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(r){return r>=this.resolve(e)}})}max(e,t=He.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},skipAbsent:!0,test(r){return r<=this.resolve(e)}})}lessThan(e,t=He.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},skipAbsent:!0,test(r){return r<this.resolve(e)}})}moreThan(e,t=He.moreThan){return this.test({message:t,name:"min",exclusive:!0,params:{more:e},skipAbsent:!0,test(r){return r>this.resolve(e)}})}positive(e=He.positive){return this.moreThan(0,e)}negative(e=He.negative){return this.lessThan(0,e)}integer(e=He.integer){return this.test({name:"integer",message:e,skipAbsent:!0,test:t=>Number.isInteger(t)})}truncate(){return this.transform(e=>he(e)?e:e|0)}round(e){var t;let r=["ceil","floor","round","trunc"];if(e=((t=e)==null?void 0:t.toLowerCase())||"round",e==="trunc")return this.truncate();if(r.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+r.join(", "));return this.transform(s=>he(s)?s:Math[e](s))}}q.prototype=ui.prototype;var Uc=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function jc(n){var e=[1,4,5,6,7,10,11],t=0,r,s;if(s=Uc.exec(n)){for(var i=0,o;o=e[i];++i)s[o]=+s[o]||0;s[2]=(+s[2]||1)-1,s[3]=+s[3]||1,s[7]=s[7]?String(s[7]).substr(0,3):0,(s[8]===void 0||s[8]==="")&&(s[9]===void 0||s[9]==="")?r=+new Date(s[1],s[2],s[3],s[4],s[5],s[6],s[7]):(s[8]!=="Z"&&s[9]!==void 0&&(t=s[10]*60+s[11],s[9]==="+"&&(t=0-t)),r=Date.UTC(s[1],s[2],s[3],s[4],s[5]+t,s[6],s[7]))}else r=Date.parse?Date.parse(n):NaN;return r}let Lc=new Date(""),Bc=n=>Object.prototype.toString.call(n)==="[object Date]";class Ur extends te{constructor(){super({type:"date",check(e){return Bc(e)&&!isNaN(e.getTime())}}),this.withMutation(()=>{this.transform((e,t,r)=>!r.spec.coerce||r.isType(e)?e:(e=jc(e),isNaN(e)?Ur.INVALID_DATE:new Date(e)))})}prepareParam(e,t){let r;if(yt.isRef(e))r=e;else{let s=this.cast(e);if(!this._typeCheck(s))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);r=s}return r}min(e,t=fn.min){let r=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(s){return s>=this.resolve(r)}})}max(e,t=fn.max){let r=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},skipAbsent:!0,test(s){return s<=this.resolve(r)}})}}Ur.INVALID_DATE=Lc;Ur.prototype;function Hc(n,e=[]){let t=[],r=new Set,s=new Set(e.map(([o,a])=>`${o}-${a}`));function i(o,a){let c=ot.split(o)[0];r.add(c),s.has(`${a}-${c}`)||t.push([a,c])}for(const o of Object.keys(n)){let a=n[o];r.add(o),yt.isRef(a)&&a.isSibling?i(a.path,o):Fr(a)&&"deps"in a&&a.deps.forEach(c=>i(c,o))}return wr.array(Array.from(r),t).reverse()}function ds(n,e){let t=1/0;return n.some((r,s)=>{var i;if((i=e.path)!=null&&i.includes(r))return t=s,!0}),t}function li(n){return(e,t)=>ds(n,e)-ds(n,t)}const hi=(n,e,t)=>{if(typeof n!="string")return n;let r=n;try{r=JSON.parse(n)}catch{}return t.isType(r)?r:n};function yr(n){if("fields"in n){const e={};for(const[t,r]of Object.entries(n.fields))e[t]=yr(r);return n.setFields(e)}if(n.type==="array"){const e=n.optional();return e.innerType&&(e.innerType=yr(e.innerType)),e}return n.type==="tuple"?n.optional().clone({types:n.spec.types.map(yr)}):"optional"in n?n.optional():n}const Mc=(n,e)=>{const t=[...ot.normalizePath(e)];if(t.length===1)return t[0]in n;let r=t.pop(),s=ot.getter(ot.join(t),!0)(n);return!!(s&&r in s)};let ps=n=>Object.prototype.toString.call(n)==="[object Object]";function Vc(n,e){let t=Object.keys(n.fields);return Object.keys(e).filter(r=>t.indexOf(r)===-1)}const zc=li([]);function re(n){return new fi(n)}class fi extends te{constructor(e){super({type:"object",check(t){return ps(t)||typeof t=="function"}}),this.fields=Object.create(null),this._sortErrors=zc,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{e&&this.shape(e)})}_cast(e,t={}){var r;let s=super._cast(e,t);if(s===void 0)return this.getDefault();if(!this._typeCheck(s))return s;let i=this.fields,o=(r=t.stripUnknown)!=null?r:this.spec.noUnknown,a=[].concat(this._nodes,Object.keys(s).filter(h=>!this._nodes.includes(h))),c={},u=Object.assign({},t,{parent:c,__validating:t.__validating||!1}),l=!1;for(const h of a){let y=i[h],p=h in s;if(y){let w,v=s[h];u.path=(t.path?`${t.path}.`:"")+h,y=y.resolve({value:v,context:t.context,parent:c});let g=y instanceof te?y.spec:void 0,A=g==null?void 0:g.strict;if(g!=null&&g.strip){l=l||h in s;continue}w=!t.__validating||!A?y.cast(s[h],u):s[h],w!==void 0&&(c[h]=w)}else p&&!o&&(c[h]=s[h]);(p!==h in c||c[h]!==s[h])&&(l=!0)}return l?c:s}_validate(e,t={},r,s){let{from:i=[],originalValue:o=e,recursive:a=this.spec.recursive}=t;t.from=[{schema:this,value:o},...i],t.__validating=!0,t.originalValue=o,super._validate(e,t,r,(c,u)=>{if(!a||!ps(u)){s(c,u);return}o=o||u;let l=[];for(let h of this._nodes){let y=this.fields[h];!y||yt.isRef(y)||l.push(y.asNestedTest({options:t,key:h,parent:u,parentPath:t.path,originalParent:o}))}this.runTests({tests:l,value:u,originalValue:o,options:t},r,h=>{s(h.sort(this._sortErrors).concat(c),u)})})}clone(e){const t=super.clone(e);return t.fields=Object.assign({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),r=t.fields;for(let[s,i]of Object.entries(this.fields)){const o=r[s];r[s]=o===void 0?i:o}return t.withMutation(s=>s.setFields(r,this._excludedEdges))}_getDefault(){if("default"in this.spec)return super._getDefault();if(!this._nodes.length)return;let e={};return this._nodes.forEach(t=>{const r=this.fields[t];e[t]=r&&"getDefault"in r?r.getDefault():void 0}),e}setFields(e,t){let r=this.clone();return r.fields=e,r._nodes=Hc(e,t),r._sortErrors=li(Object.keys(e)),t&&(r._excludedEdges=t),r}shape(e,t=[]){return this.clone().withMutation(r=>{let s=r._excludedEdges;return t.length&&(Array.isArray(t[0])||(t=[t]),s=[...r._excludedEdges,...t]),r.setFields(Object.assign(r.fields,e),s)})}partial(){const e={};for(const[t,r]of Object.entries(this.fields))e[t]="optional"in r&&r.optional instanceof Function?r.optional():r;return this.setFields(e)}deepPartial(){return yr(this)}pick(e){const t={};for(const r of e)this.fields[r]&&(t[r]=this.fields[r]);return this.setFields(t)}omit(e){const t=Object.assign({},this.fields);for(const r of e)delete t[r];return this.setFields(t)}from(e,t,r){let s=ot.getter(e,!0);return this.transform(i=>{if(!i)return i;let o=i;return Mc(i,e)&&(o=Object.assign({},i),r||delete o[e],o[t]=s(i)),o})}json(){return this.transform(hi)}noUnknown(e=!0,t=pn.noUnknown){typeof e!="boolean"&&(t=e,e=!0);let r=this.test({name:"noUnknown",exclusive:!0,message:t,test(s){if(s==null)return!0;const i=Vc(this.schema,s);return!e||i.length===0||this.createError({params:{unknown:i.join(", ")}})}});return r.spec.noUnknown=e,r}unknown(e=!0,t=pn.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>{if(!t)return t;const r={};for(const s of Object.keys(t))r[e(s)]=t[s];return r})}camelCase(){return this.transformKeys(Qr.camelCase)}snakeCase(){return this.transformKeys(Qr.snakeCase)}constantCase(){return this.transformKeys(e=>Qr.snakeCase(e).toUpperCase())}describe(e){let t=super.describe(e);t.fields={};for(const[s,i]of Object.entries(this.fields)){var r;let o=e;(r=o)!=null&&r.value&&(o=Object.assign({},o,{parent:o.value,value:o.value[s]})),t.fields[s]=i.describe(o)}return t}}re.prototype=fi.prototype;function ut(n){return new di(n)}class di extends te{constructor(e){super({type:"array",check(t){return Array.isArray(t)}}),this.innerType=void 0,this.innerType=e}_cast(e,t){const r=super._cast(e,t);if(!this._typeCheck(r)||!this.innerType)return r;let s=!1;const i=r.map((o,a)=>{const c=this.innerType.cast(o,Object.assign({},t,{path:`${t.path||""}[${a}]`}));return c!==o&&(s=!0),c});return s?i:r}_validate(e,t={},r,s){var i;let o=this.innerType,a=(i=t.recursive)!=null?i:this.spec.recursive;t.originalValue!=null&&t.originalValue,super._validate(e,t,r,(c,u)=>{var l;if(!a||!o||!this._typeCheck(u)){s(c,u);return}let h=new Array(u.length);for(let p=0;p<u.length;p++){var y;h[p]=o.asNestedTest({options:t,index:p,parent:u,parentPath:t.path,originalParent:(y=t.originalValue)!=null?y:e})}this.runTests({value:u,tests:h,originalValue:(l=t.originalValue)!=null?l:e,options:t},r,p=>s(p.concat(c),u))})}clone(e){const t=super.clone(e);return t.innerType=this.innerType,t}json(){return this.transform(hi)}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!Fr(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+at(e));return t.innerType=e,t}length(e,t=pr.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},skipAbsent:!0,test(r){return r.length===this.resolve(e)}})}min(e,t){return t=t||pr.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(r){return r.length>=this.resolve(e)}})}max(e,t){return t=t||pr.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},skipAbsent:!0,test(r){return r.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(r,s,i)=>!e(r,s,i):r=>!!r;return this.transform(r=>r!=null?r.filter(t):r)}describe(e){let t=super.describe(e);if(this.innerType){var r;let s=e;(r=s)!=null&&r.value&&(s=Object.assign({},s,{parent:s.value,value:s.value[0]})),t.innerType=this.innerType.describe(e)}return t}}ut.prototype=di.prototype;const ys=re({url:T(),height:q(),width:q()}),qc=re({type:T().default("rich"),title:T(),color:q(),thumbnail:ys,image:ys,url:T()}),Gc=re({url:T().url().required(),username:T(),avatar_url:T().url(),message:T().required(),embed:qc}),Jc="notify_discord_webhook";class Dn{static async SimpleToRaw(e){return{name:"",notify_type:Jc,notify:await Dn.validateCreate(e)}}static validateCreate(e){return Gc.validate(e)}}const Wc=re({email:T().required(),subject:T(),html:T().required()}),Kc="notify_email";class Un{static async SimpleToRaw(e){return{name:"",notify_type:Kc,notify:await Un.validateCreate(e)}}static async validateCreate(e){return Wc.validate(e)}}const Xc=re({clientId:q().required(),content:T().required()}),Zc="notify_telegram";class jn{static async SimpleToRaw(e){return{name:"",notify_type:Zc,notify:await jn.validateCreate(e)}}static validateCreate(e){return Xc.validate(e)}}class en{static async SimpleToRaw(e,t){switch(e){case"Discord":return Dn.SimpleToRaw(t);case"Telegram":return jn.SimpleToRaw(t);case"Email":return Un.SimpleToRaw(t)}}static RawToSimple(e){return{...e.notify,error:e.error,error_message:e.error_message,error_timestamp:e.error_timestamp}}static RawTypeToSimpleType(e){switch(e){case"notify_discord_webhook":return"Discord";case"notify_telegram":return"Telegram";case"notify_email":return"Email"}}static SimpleTypeToRawType(e){switch(e){case"Discord":return"notify_discord_webhook";case"Telegram":return"notify_telegram";case"Email":return"notify_email"}}}const Yc="handler_function_call";class ms{static async SimpleToRaw(e,t,r){return{alertType:"event",network:t,nickname:e,type:Yc,handler:await this.validate(r)}}static validate(e){const t=([s],i)=>s==="true"?i.notRequired():i.required();return re({address:T().required(),abi:ut().required(),nBlocks:q().default(100).min(10).required(),function:T().required(),condition:T().default("true").oneOf([">",">=","<","<=","=","true"]).required(),constant:q().min(0).when("condition",t),responseArgIndex:q().min(0).when("condition",t),responseArgDecimals:q().min(0).when("condition",t)}).validateSync(e)}}const Qc="handler_onchain_event";class gs{static async SimpleToRaw(e,t,r){return{alertType:"event",network:t,nickname:e,type:Qc,handler:await this.validate(r)}}static validate(e){const t=([s],i)=>s==="true"?i.notRequired():i.required();return re({address:T().required(),event:T().required(),abi:ut().required(),condition:T().default("true").oneOf([">",">=","<","<=","=","true"]).required(),constant:q().min(0).when("condition",t),paramsIndex:q().min(0).when("condition",t),paramsDecimals:q().min(0).when("condition",t)}).validateSync(e)}}const eu="6.1.0";function tu(n,e,t){const r=e.split("|").map(i=>i.trim());for(let i=0;i<r.length;i++)switch(e){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof n===e)return}const s=new Error(`invalid value for type ${e}`);throw s.code="INVALID_ARGUMENT",s.argument=`value.${t}`,s.value=n,s}async function pi(n){const e=Object.keys(n);return(await Promise.all(e.map(r=>Promise.resolve(n[r])))).reduce((r,s,i)=>(r[e[i]]=s,r),{})}function S(n,e,t){for(let r in e){let s=e[r];const i=t?t[r]:null;i&&tu(s,i,r),Object.defineProperty(n,r,{enumerable:!0,value:s,writable:!1})}}function kt(n){if(n==null)return"null";if(Array.isArray(n))return"[ "+n.map(kt).join(", ")+" ]";if(n instanceof Uint8Array){const e="0123456789abcdef";let t="0x";for(let r=0;r<n.length;r++)t+=e[n[r]>>4],t+=e[n[r]&15];return t}if(typeof n=="object"&&typeof n.toJSON=="function")return kt(n.toJSON());switch(typeof n){case"boolean":case"symbol":return n.toString();case"bigint":return BigInt(n).toString();case"number":return n.toString();case"string":return JSON.stringify(n);case"object":{const e=Object.keys(n);return e.sort(),"{ "+e.map(t=>`${kt(t)}: ${kt(n[t])}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function _r(n,e){return n&&n.code===e}function yi(n){return _r(n,"CALL_EXCEPTION")}function jr(n,e,t){{const s=[];if(t){if("message"in t||"code"in t||"name"in t)throw new Error(`value will overwrite populated values: ${kt(t)}`);for(const i in t){const o=t[i];s.push(i+"="+kt(o))}}s.push(`code=${e}`),s.push(`version=${eu}`),s.length&&(n+=" ("+s.join(", ")+")")}let r;switch(e){case"INVALID_ARGUMENT":r=new TypeError(n);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":r=new RangeError(n);break;default:r=new Error(n)}return S(r,{code:e}),t&&Object.assign(r,t),r}function x(n,e,t,r){if(!n)throw jr(e,t,r)}function _(n,e,t,r){x(n,e,"INVALID_ARGUMENT",{argument:t,value:r})}function mi(n,e,t){t==null&&(t=""),t&&(t=": "+t),x(n>=e,"missing arguemnt"+t,"MISSING_ARGUMENT",{count:n,expectedCount:e}),x(n<=e,"too many arguemnts"+t,"UNEXPECTED_ARGUMENT",{count:n,expectedCount:e})}const ru=["NFD","NFC","NFKD","NFKC"].reduce((n,e)=>{try{if("test".normalize(e)!=="test")throw new Error("bad");if(e==="NFD"){const t=String.fromCharCode(233).normalize("NFD"),r=String.fromCharCode(101,769);if(t!==r)throw new Error("broken")}n.push(e)}catch{}return n},[]);function nu(n){x(ru.indexOf(n)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:n}})}function Ln(n,e,t){if(t==null&&(t=""),n!==e){let r=t,s="new";t&&(r+=".",s+=" "+t),x(!1,`private constructor; use ${r}from* methods`,"UNSUPPORTED_OPERATION",{operation:s})}}function gi(n,e,t){if(n instanceof Uint8Array)return t?new Uint8Array(n):n;if(typeof n=="string"&&n.match(/^0x([0-9a-f][0-9a-f])*$/i)){const r=new Uint8Array((n.length-2)/2);let s=2;for(let i=0;i<r.length;i++)r[i]=parseInt(n.substring(s,s+2),16),s+=2;return r}_(!1,"invalid BytesLike value",e||"value",n)}function Ue(n,e){return gi(n,e,!1)}function Fe(n,e){return gi(n,e,!0)}function Ge(n,e){return!(typeof n!="string"||!n.match(/^0x[0-9A-Fa-f]*$/)||typeof e=="number"&&n.length!==2+2*e||e===!0&&n.length%2!==0)}const ws="0123456789abcdef";function H(n){const e=Ue(n);let t="0x";for(let r=0;r<e.length;r++){const s=e[r];t+=ws[(s&240)>>4]+ws[s&15]}return t}function Rt(n){return"0x"+n.map(e=>H(e).substring(2)).join("")}function _t(n,e,t){const r=Ue(n);return t!=null&&t>r.length&&x(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:r,length:r.length,offset:t}),H(r.slice(e??0,t??r.length))}function su(n,e,t){const r=Ue(n);x(e>=r.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(r),length:e,offset:e+1});const s=new Uint8Array(e);return s.fill(0),t?s.set(r,e-r.length):s.set(r,0),H(s)}function iu(n,e){return su(n,e,!0)}const Lr=BigInt(0),me=BigInt(1),At=9007199254740991;function ou(n,e){const t=Br(n,"value"),r=BigInt(Le(e,"width"));if(x(t>>r===Lr,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:n}),t>>r-me){const s=(me<<r)-me;return-((~t&s)+me)}return t}function au(n,e){let t=mt(n,"value");const r=BigInt(Le(e,"width")),s=me<<r-me;if(t<Lr){t=-t,x(t<=s,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:n});const i=(me<<r)-me;return(~t&i)+me}else x(t<s,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:n});return t}function ur(n,e){const t=Br(n,"value"),r=BigInt(Le(e,"bits"));return t&(me<<r)-me}function mt(n,e){switch(typeof n){case"bigint":return n;case"number":return _(Number.isInteger(n),"underflow",e||"value",n),_(n>=-At&&n<=At,"overflow",e||"value",n),BigInt(n);case"string":try{if(n==="")throw new Error("empty string");return n[0]==="-"&&n[1]!=="-"?-BigInt(n.substring(1)):BigInt(n)}catch(t){_(!1,`invalid BigNumberish string: ${t.message}`,e||"value",n)}}_(!1,"invalid BigNumberish value",e||"value",n)}function Br(n,e){const t=mt(n,e);return x(t>=Lr,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:n}),t}const bs="0123456789abcdef";function wi(n){if(n instanceof Uint8Array){let e="0x0";for(const t of n)e+=bs[t>>4],e+=bs[t&15];return BigInt(e)}return mt(n)}function Le(n,e){switch(typeof n){case"bigint":return _(n>=-At&&n<=At,"overflow",e||"value",n),Number(n);case"number":return _(Number.isInteger(n),"underflow",e||"value",n),_(n>=-At&&n<=At,"overflow",e||"value",n),n;case"string":try{if(n==="")throw new Error("empty string");return Le(BigInt(n),e)}catch(t){_(!1,`invalid numeric string: ${t.message}`,e||"value",n)}}_(!1,"invalid numeric value",e||"value",n)}function cu(n){return Le(wi(n))}function bi(n,e){let r=Br(n,"value").toString(16);if(e==null)r.length%2&&(r="0"+r);else{const s=Le(e,"width");for(x(s*2>=r.length,`value exceeds width (${s} bits)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:n});r.length<s*2;)r="0"+r}return"0x"+r}function uu(n){const e=Br(n,"value");if(e===Lr)return new Uint8Array([]);let t=e.toString(16);t.length%2&&(t="0"+t);const r=new Uint8Array(t.length/2);for(let s=0;s<r.length;s++){const i=s*2;r[s]=parseInt(t.substring(i,i+2),16)}return r}var $t;class lu{constructor(e,t,r){d(this,"filter");d(this,"emitter");F(this,$t,void 0);P(this,$t,t),S(this,{emitter:e,filter:r})}async removeListener(){m(this,$t)!=null&&await this.emitter.off(this.filter,m(this,$t))}}$t=new WeakMap;function hu(n,e,t,r,s){_(!1,`invalid codepoint at offset ${e}; ${n}`,"bytes",t)}function vi(n,e,t,r,s){if(n==="BAD_PREFIX"||n==="UNEXPECTED_CONTINUE"){let i=0;for(let o=e+1;o<t.length&&t[o]>>6===2;o++)i++;return i}return n==="OVERRUN"?t.length-e-1:0}function fu(n,e,t,r,s){return n==="OVERLONG"?(_(typeof s=="number","invalid bad code point for replacement","badCodepoint",s),r.push(s),0):(r.push(65533),vi(n,e,t))}const du=Object.freeze({error:hu,ignore:vi,replace:fu});function pu(n,e){e==null&&(e=du.error);const t=Ue(n,"bytes"),r=[];let s=0;for(;s<t.length;){const i=t[s++];if(!(i>>7)){r.push(i);continue}let o=null,a=null;if((i&224)===192)o=1,a=127;else if((i&240)===224)o=2,a=2047;else if((i&248)===240)o=3,a=65535;else{(i&192)===128?s+=e("UNEXPECTED_CONTINUE",s-1,t,r):s+=e("BAD_PREFIX",s-1,t,r);continue}if(s-1+o>=t.length){s+=e("OVERRUN",s-1,t,r);continue}let c=i&(1<<8-o-1)-1;for(let u=0;u<o;u++){let l=t[s];if((l&192)!=128){s+=e("MISSING_CONTINUE",s,t,r),c=null;break}c=c<<6|l&63,s++}if(c!==null){if(c>1114111){s+=e("OUT_OF_RANGE",s-1-o,t,r,c);continue}if(c>=55296&&c<=57343){s+=e("UTF16_SURROGATE",s-1-o,t,r,c);continue}if(c<=a){s+=e("OVERLONG",s-1-o,t,r,c);continue}r.push(c)}}return r}function _i(n,e){e!=null&&(nu(e),n=n.normalize(e));let t=[];for(let r=0;r<n.length;r++){const s=n.charCodeAt(r);if(s<128)t.push(s);else if(s<2048)t.push(s>>6|192),t.push(s&63|128);else if((s&64512)==55296){r++;const i=n.charCodeAt(r);_(r<n.length&&(i&64512)===56320,"invalid surrogate pair","str",n);const o=65536+((s&1023)<<10)+(i&1023);t.push(o>>18|240),t.push(o>>12&63|128),t.push(o>>6&63|128),t.push(o&63|128)}else t.push(s>>12|224),t.push(s>>6&63|128),t.push(s&63|128)}return new Uint8Array(t)}function yu(n){return n.map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10&1023)+55296,(e&1023)+56320))).join("")}function mu(n,e){return yu(pu(n,e))}const Z=32,yn=new Uint8Array(Z),gu=["then"],lr={};function hr(n,e){const t=new Error(`deferred error during ABI decoding triggered accessing ${n}`);throw t.error=e,t}var Ve;const zt=class extends Array{constructor(...t){const r=t[0];let s=t[1],i=(t[2]||[]).slice(),o=!0;r!==lr&&(s=t,i=[],o=!1);super(s.length);F(this,Ve,void 0);s.forEach((c,u)=>{this[u]=c});const a=i.reduce((c,u)=>(typeof u=="string"&&c.set(u,(c.get(u)||0)+1),c),new Map);if(P(this,Ve,Object.freeze(s.map((c,u)=>{const l=i[u];return l!=null&&a.get(l)===1?l:null}))),!!o)return Object.freeze(this),new Proxy(this,{get:(c,u,l)=>{if(typeof u=="string"){if(u.match(/^[0-9]+$/)){const y=Le(u,"%index");if(y<0||y>=this.length)throw new RangeError("out of result range");const p=c[y];return p instanceof Error&&hr(`index ${y}`,p),p}if(gu.indexOf(u)>=0)return Reflect.get(c,u,l);const h=c[u];if(h instanceof Function)return function(...y){return h.apply(this===l?c:this,y)};if(!(u in c))return c.getValue.apply(this===l?c:this,[u])}return Reflect.get(c,u,l)}})}toArray(){const t=[];return this.forEach((r,s)=>{r instanceof Error&&hr(`index ${s}`,r),t.push(r)}),t}toObject(){return m(this,Ve).reduce((t,r,s)=>(x(r!=null,"value at index ${ index } unnamed","UNSUPPORTED_OPERATION",{operation:"toObject()"}),r in t||(t[r]=this.getValue(r)),t),{})}slice(t,r){t==null&&(t=0),t<0&&(t+=this.length,t<0&&(t=0)),r==null&&(r=this.length),r<0&&(r+=this.length,r<0&&(r=0)),r>this.length&&(r=this.length);const s=[],i=[];for(let o=t;o<r;o++)s.push(this[o]),i.push(m(this,Ve)[o]);return new zt(lr,s,i)}filter(t,r){const s=[],i=[];for(let o=0;o<this.length;o++){const a=this[o];a instanceof Error&&hr(`index ${o}`,a),t.call(r,a,o,this)&&(s.push(a),i.push(m(this,Ve)[o]))}return new zt(lr,s,i)}getValue(t){const r=m(this,Ve).indexOf(t);if(r===-1)return;const s=this[r];return s instanceof Error&&hr(`property ${JSON.stringify(t)}`,s.error),s}static fromItems(t,r){return new zt(lr,t,r)}};let Er=zt;Ve=new WeakMap;function vs(n){let e=uu(n);return x(e.length<=Z,"value out-of-bounds","BUFFER_OVERRUN",{buffer:e,length:Z,offset:e.length}),e.length!==Z&&(e=Fe(Rt([yn.slice(e.length%Z),e]))),e}class Be{constructor(e,t,r,s){d(this,"name");d(this,"type");d(this,"localName");d(this,"dynamic");S(this,{name:e,type:t,localName:r,dynamic:s},{name:"string",type:"string",localName:"string",dynamic:"boolean"})}_throwError(e,t){_(!1,e,this.localName,t)}}var Ie,st,Pt,mr;class mn{constructor(){F(this,Pt);F(this,Ie,void 0);F(this,st,void 0);P(this,Ie,[]),P(this,st,0)}get data(){return Rt(m(this,Ie))}get length(){return m(this,st)}appendWriter(e){return B(this,Pt,mr).call(this,Fe(e.data))}writeBytes(e){let t=Fe(e);const r=t.length%Z;return r&&(t=Fe(Rt([t,yn.slice(r)]))),B(this,Pt,mr).call(this,t)}writeValue(e){return B(this,Pt,mr).call(this,vs(e))}writeUpdatableValue(){const e=m(this,Ie).length;return m(this,Ie).push(yn),P(this,st,m(this,st)+Z),t=>{m(this,Ie)[e]=vs(t)}}}Ie=new WeakMap,st=new WeakMap,Pt=new WeakSet,mr=function(e){return m(this,Ie).push(e),P(this,st,m(this,st)+e.length),e.length};var ie,le,Or,Ei;const Xn=class{constructor(e,t){F(this,Or);d(this,"allowLoose");F(this,ie,void 0);F(this,le,void 0);S(this,{allowLoose:!!t}),P(this,ie,Fe(e)),P(this,le,0)}get data(){return H(m(this,ie))}get dataLength(){return m(this,ie).length}get consumed(){return m(this,le)}get bytes(){return new Uint8Array(m(this,ie))}subReader(e){return new Xn(m(this,ie).slice(m(this,le)+e),this.allowLoose)}readBytes(e,t){let r=B(this,Or,Ei).call(this,0,e,!!t);return P(this,le,m(this,le)+r.length),r.slice(0,e)}readValue(){return wi(this.readBytes(Z))}readIndex(){return cu(this.readBytes(Z))}};let gn=Xn;ie=new WeakMap,le=new WeakMap,Or=new WeakSet,Ei=function(e,t,r){let s=Math.ceil(t/Z)*Z;return m(this,le)+s>m(this,ie).length&&(this.allowLoose&&r&&m(this,le)+t<=m(this,ie).length?s=t:x(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:Fe(m(this,ie)),length:m(this,ie).length,offset:m(this,le)+s})),m(this,ie).slice(m(this,le),m(this,le)+s)};function wn(n){if(!Number.isSafeInteger(n)||n<0)throw new Error(`Wrong positive integer: ${n}`)}function wu(n){if(typeof n!="boolean")throw new Error(`Expected boolean, not ${n}`)}function xi(n,...e){if(!(n instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(e.length>0&&!e.includes(n.length))throw new TypeError(`Expected Uint8Array of length ${e}, not of length=${n.length}`)}function bu(n){if(typeof n!="function"||typeof n.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");wn(n.outputLen),wn(n.blockLen)}function vu(n,e=!0){if(n.destroyed)throw new Error("Hash instance has been destroyed");if(e&&n.finished)throw new Error("Hash#digest() has already been called")}function _u(n,e){xi(n);const t=e.outputLen;if(n.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}const Et={number:wn,bool:wu,bytes:xi,hash:bu,exists:vu,output:_u};/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Eu=n=>new Uint32Array(n.buffer,n.byteOffset,Math.floor(n.byteLength/4)),xu=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!xu)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(n,e)=>e.toString(16).padStart(2,"0"));function Tu(n){if(typeof n!="string")throw new TypeError(`utf8ToBytes expected string, got ${typeof n}`);return new TextEncoder().encode(n)}function Bn(n){if(typeof n=="string"&&(n=Tu(n)),!(n instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof n})`);return n}class Ou{clone(){return this._cloneInto()}}function ku(n){const e=r=>n().update(Bn(r)).digest(),t=n();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>n(),e}function Au(n){const e=(r,s)=>n(s).update(Bn(r)).digest(),t=n({});return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=r=>n(r),e}const fr=BigInt(2**32-1),bn=BigInt(32);function Ti(n,e=!1){return e?{h:Number(n&fr),l:Number(n>>bn&fr)}:{h:Number(n>>bn&fr)|0,l:Number(n&fr)|0}}function Su(n,e=!1){let t=new Uint32Array(n.length),r=new Uint32Array(n.length);for(let s=0;s<n.length;s++){const{h:i,l:o}=Ti(n[s],e);[t[s],r[s]]=[i,o]}return[t,r]}const Ru=(n,e)=>BigInt(n>>>0)<<bn|BigInt(e>>>0),$u=(n,e,t)=>n>>>t,Pu=(n,e,t)=>n<<32-t|e>>>t,Nu=(n,e,t)=>n>>>t|e<<32-t,Iu=(n,e,t)=>n<<32-t|e>>>t,Cu=(n,e,t)=>n<<64-t|e>>>t-32,Fu=(n,e,t)=>n>>>t-32|e<<64-t,Du=(n,e)=>e,Uu=(n,e)=>n,ju=(n,e,t)=>n<<t|e>>>32-t,Lu=(n,e,t)=>e<<t|n>>>32-t,Bu=(n,e,t)=>e<<t-32|n>>>64-t,Hu=(n,e,t)=>n<<t-32|e>>>64-t;function Mu(n,e,t,r){const s=(e>>>0)+(r>>>0);return{h:n+t+(s/2**32|0)|0,l:s|0}}const Vu=(n,e,t)=>(n>>>0)+(e>>>0)+(t>>>0),zu=(n,e,t,r)=>e+t+r+(n/2**32|0)|0,qu=(n,e,t,r)=>(n>>>0)+(e>>>0)+(t>>>0)+(r>>>0),Gu=(n,e,t,r,s)=>e+t+r+s+(n/2**32|0)|0,Ju=(n,e,t,r,s)=>(n>>>0)+(e>>>0)+(t>>>0)+(r>>>0)+(s>>>0),Wu=(n,e,t,r,s,i)=>e+t+r+s+i+(n/2**32|0)|0,Gt={fromBig:Ti,split:Su,toBig:Ru,shrSH:$u,shrSL:Pu,rotrSH:Nu,rotrSL:Iu,rotrBH:Cu,rotrBL:Fu,rotr32H:Du,rotr32L:Uu,rotlSH:ju,rotlSL:Lu,rotlBH:Bu,rotlBL:Hu,add:Mu,add3L:Vu,add3H:zu,add4L:qu,add4H:Gu,add5H:Wu,add5L:Ju},[Oi,ki,Ai]=[[],[],[]],Ku=BigInt(0),Lt=BigInt(1),Xu=BigInt(2),Zu=BigInt(7),Yu=BigInt(256),Qu=BigInt(113);for(let n=0,e=Lt,t=1,r=0;n<24;n++){[t,r]=[r,(2*t+3*r)%5],Oi.push(2*(5*r+t)),ki.push((n+1)*(n+2)/2%64);let s=Ku;for(let i=0;i<7;i++)e=(e<<Lt^(e>>Zu)*Qu)%Yu,e&Xu&&(s^=Lt<<(Lt<<BigInt(i))-Lt);Ai.push(s)}const[el,tl]=Gt.split(Ai,!0),_s=(n,e,t)=>t>32?Gt.rotlBH(n,e,t):Gt.rotlSH(n,e,t),Es=(n,e,t)=>t>32?Gt.rotlBL(n,e,t):Gt.rotlSL(n,e,t);function rl(n,e=24){const t=new Uint32Array(10);for(let r=24-e;r<24;r++){for(let o=0;o<10;o++)t[o]=n[o]^n[o+10]^n[o+20]^n[o+30]^n[o+40];for(let o=0;o<10;o+=2){const a=(o+8)%10,c=(o+2)%10,u=t[c],l=t[c+1],h=_s(u,l,1)^t[a],y=Es(u,l,1)^t[a+1];for(let p=0;p<50;p+=10)n[o+p]^=h,n[o+p+1]^=y}let s=n[2],i=n[3];for(let o=0;o<24;o++){const a=ki[o],c=_s(s,i,a),u=Es(s,i,a),l=Oi[o];s=n[l],i=n[l+1],n[l]=c,n[l+1]=u}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)t[a]=n[o+a];for(let a=0;a<10;a++)n[o+a]^=~t[(a+2)%10]&t[(a+4)%10]}n[0]^=el[r],n[1]^=tl[r]}t.fill(0)}class Hr extends Ou{constructor(e,t,r,s=!1,i=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=s,this.rounds=i,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,Et.number(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=Eu(this.state)}keccak(){rl(this.state32,this.rounds),this.posOut=0,this.pos=0}update(e){Et.exists(this);const{blockLen:t,state:r}=this;e=Bn(e);const s=e.length;for(let i=0;i<s;){const o=Math.min(t-this.pos,s-i);for(let a=0;a<o;a++)r[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:t,pos:r,blockLen:s}=this;e[r]^=t,t&128&&r===s-1&&this.keccak(),e[s-1]^=128,this.keccak()}writeInto(e){Et.exists(this,!1),Et.bytes(e),this.finish();const t=this.state,{blockLen:r}=this;for(let s=0,i=e.length;s<i;){this.posOut>=r&&this.keccak();const o=Math.min(r-this.posOut,i-s);e.set(t.subarray(this.posOut,this.posOut+o),s),this.posOut+=o,s+=o}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return Et.number(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Et.output(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:r,outputLen:s,rounds:i,enableXOF:o}=this;return e||(e=new Hr(t,r,s,o,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=r,e.outputLen=s,e.enableXOF=o,e.destroyed=this.destroyed,e}}const We=(n,e,t)=>ku(()=>new Hr(e,n,t));We(6,144,224/8);We(6,136,256/8);We(6,104,384/8);We(6,72,512/8);We(1,144,224/8);const nl=We(1,136,256/8);We(1,104,384/8);We(1,72,512/8);const Si=(n,e,t)=>Au((r={})=>new Hr(e,n,r.dkLen===void 0?t:r.dkLen,!0));Si(31,168,128/8);Si(31,136,256/8);let Ri=!1;const $i=function(n){return nl(n)};let Pi=$i;function Je(n){const e=Ue(n,"data");return H(Pi(e))}Je._=$i;Je.lock=function(){Ri=!0};Je.register=function(n){if(Ri)throw new TypeError("keccak256 is locked");Pi=n};Object.freeze(Je);const sl=BigInt(0),il=BigInt(36);function xs(n){n=n.toLowerCase();const e=n.substring(2).split(""),t=new Uint8Array(40);for(let s=0;s<40;s++)t[s]=e[s].charCodeAt(0);const r=Ue(Je(t));for(let s=0;s<40;s+=2)r[s>>1]>>4>=8&&(e[s]=e[s].toUpperCase()),(r[s>>1]&15)>=8&&(e[s+1]=e[s+1].toUpperCase());return"0x"+e.join("")}const Hn={};for(let n=0;n<10;n++)Hn[String(n)]=String(n);for(let n=0;n<26;n++)Hn[String.fromCharCode(65+n)]=String(10+n);const Ts=15;function ol(n){n=n.toUpperCase(),n=n.substring(4)+n.substring(0,2)+"00";let e=n.split("").map(r=>Hn[r]).join("");for(;e.length>=Ts;){let r=e.substring(0,Ts);e=parseInt(r,10)%97+e.substring(r.length)}let t=String(98-parseInt(e,10)%97);for(;t.length<2;)t="0"+t;return t}const al=function(){const n={};for(let e=0;e<36;e++){const t="0123456789abcdefghijklmnopqrstuvwxyz"[e];n[t]=BigInt(e)}return n}();function cl(n){n=n.toLowerCase();let e=sl;for(let t=0;t<n.length;t++)e=e*il+al[n[t]];return e}function lt(n){if(_(typeof n=="string","invalid address","address",n),n.match(/^(0x)?[0-9a-fA-F]{40}$/)){n.startsWith("0x")||(n="0x"+n);const e=xs(n);return _(!n.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||e===n,"bad address checksum","address",n),e}if(n.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){_(n.substring(2,4)===ol(n),"bad icap checksum","address",n);let e=cl(n.substring(4)).toString(16);for(;e.length<40;)e="0"+e;return xs("0x"+e)}_(!1,"invalid address","address",n)}function ul(n){return n&&typeof n.getAddress=="function"}async function tn(n,e){const t=await e;return(t==null||t==="0x0000000000000000000000000000000000000000")&&(x(typeof n!="string","unconfigured name","UNCONFIGURED_NAME",{value:n}),_(!1,"invalid AddressLike value; did not resolve to a value address","target",n)),lt(t)}function Mn(n,e){if(typeof n=="string")return n.match(/^0x[0-9a-f]{40}$/i)?lt(n):(x(e!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),tn(n,e.resolveName(n)));if(ul(n))return tn(n,n.getAddress());if(n&&typeof n.then=="function")return tn(n,n);_(!1,"unsupported addressable value","target",n)}const Re={};function E(n,e){let t=!1;return e<0&&(t=!0,e*=-1),new K(Re,`${t?"":"u"}int${e}`,n,{signed:t,width:e})}function R(n,e){return new K(Re,`bytes${e||""}`,n,{size:e})}const Os=Symbol.for("_ethers_typed");var it;const $e=class{constructor(e,t,r,s){d(this,"type");d(this,"value");F(this,it,void 0);d(this,"_typedSymbol");s==null&&(s=null),Ln(Re,e,"Typed"),S(this,{_typedSymbol:Os,type:t,value:r}),P(this,it,s),this.format()}format(){if(this.type==="array")throw new Error("");if(this.type==="dynamicArray")throw new Error("");return this.type==="tuple"?`tuple(${this.value.map(e=>e.format()).join(",")})`:this.type}defaultValue(){return 0}minValue(){return 0}maxValue(){return 0}isBigInt(){return!!this.type.match(/^u?int[0-9]+$/)}isData(){return this.type.startsWith("bytes")}isString(){return this.type==="string"}get tupleName(){if(this.type!=="tuple")throw TypeError("not a tuple");return m(this,it)}get arrayLength(){if(this.type!=="array")throw TypeError("not an array");return m(this,it)===!0?-1:m(this,it)===!1?this.value.length:null}static from(e,t){return new $e(Re,e,t)}static uint8(e){return E(e,8)}static uint16(e){return E(e,16)}static uint24(e){return E(e,24)}static uint32(e){return E(e,32)}static uint40(e){return E(e,40)}static uint48(e){return E(e,48)}static uint56(e){return E(e,56)}static uint64(e){return E(e,64)}static uint72(e){return E(e,72)}static uint80(e){return E(e,80)}static uint88(e){return E(e,88)}static uint96(e){return E(e,96)}static uint104(e){return E(e,104)}static uint112(e){return E(e,112)}static uint120(e){return E(e,120)}static uint128(e){return E(e,128)}static uint136(e){return E(e,136)}static uint144(e){return E(e,144)}static uint152(e){return E(e,152)}static uint160(e){return E(e,160)}static uint168(e){return E(e,168)}static uint176(e){return E(e,176)}static uint184(e){return E(e,184)}static uint192(e){return E(e,192)}static uint200(e){return E(e,200)}static uint208(e){return E(e,208)}static uint216(e){return E(e,216)}static uint224(e){return E(e,224)}static uint232(e){return E(e,232)}static uint240(e){return E(e,240)}static uint248(e){return E(e,248)}static uint256(e){return E(e,256)}static uint(e){return E(e,256)}static int8(e){return E(e,-8)}static int16(e){return E(e,-16)}static int24(e){return E(e,-24)}static int32(e){return E(e,-32)}static int40(e){return E(e,-40)}static int48(e){return E(e,-48)}static int56(e){return E(e,-56)}static int64(e){return E(e,-64)}static int72(e){return E(e,-72)}static int80(e){return E(e,-80)}static int88(e){return E(e,-88)}static int96(e){return E(e,-96)}static int104(e){return E(e,-104)}static int112(e){return E(e,-112)}static int120(e){return E(e,-120)}static int128(e){return E(e,-128)}static int136(e){return E(e,-136)}static int144(e){return E(e,-144)}static int152(e){return E(e,-152)}static int160(e){return E(e,-160)}static int168(e){return E(e,-168)}static int176(e){return E(e,-176)}static int184(e){return E(e,-184)}static int192(e){return E(e,-192)}static int200(e){return E(e,-200)}static int208(e){return E(e,-208)}static int216(e){return E(e,-216)}static int224(e){return E(e,-224)}static int232(e){return E(e,-232)}static int240(e){return E(e,-240)}static int248(e){return E(e,-248)}static int256(e){return E(e,-256)}static int(e){return E(e,-256)}static bytes1(e){return R(e,1)}static bytes2(e){return R(e,2)}static bytes3(e){return R(e,3)}static bytes4(e){return R(e,4)}static bytes5(e){return R(e,5)}static bytes6(e){return R(e,6)}static bytes7(e){return R(e,7)}static bytes8(e){return R(e,8)}static bytes9(e){return R(e,9)}static bytes10(e){return R(e,10)}static bytes11(e){return R(e,11)}static bytes12(e){return R(e,12)}static bytes13(e){return R(e,13)}static bytes14(e){return R(e,14)}static bytes15(e){return R(e,15)}static bytes16(e){return R(e,16)}static bytes17(e){return R(e,17)}static bytes18(e){return R(e,18)}static bytes19(e){return R(e,19)}static bytes20(e){return R(e,20)}static bytes21(e){return R(e,21)}static bytes22(e){return R(e,22)}static bytes23(e){return R(e,23)}static bytes24(e){return R(e,24)}static bytes25(e){return R(e,25)}static bytes26(e){return R(e,26)}static bytes27(e){return R(e,27)}static bytes28(e){return R(e,28)}static bytes29(e){return R(e,29)}static bytes30(e){return R(e,30)}static bytes31(e){return R(e,31)}static bytes32(e){return R(e,32)}static address(e){return new $e(Re,"address",e)}static bool(e){return new $e(Re,"bool",!!e)}static bytes(e){return new $e(Re,"bytes",e)}static string(e){return new $e(Re,"string",e)}static array(e,t){throw new Error("not implemented yet")}static tuple(e,t){throw new Error("not implemented yet")}static overrides(e){return new $e(Re,"overrides",Object.assign({},e))}static isTyped(e){return e&&e._typedSymbol===Os}static dereference(e,t){if($e.isTyped(e)){if(e.type!==t)throw new Error(`invalid type: expecetd ${t}, got ${e.type}`);return e.value}return e}};let K=$e;it=new WeakMap;class ll extends Be{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){let r=K.dereference(t,"string");try{r=lt(r)}catch(s){return this._throwError(s.message,t)}return e.writeValue(r)}decode(e){return lt(bi(e.readValue(),20))}}class hl extends Be{constructor(t){super(t.name,t.type,"_",t.dynamic);d(this,"coder");this.coder=t}defaultValue(){return this.coder.defaultValue()}encode(t,r){return this.coder.encode(t,r)}decode(t){return this.coder.decode(t)}}function Ni(n,e,t){let r=[];if(Array.isArray(t))r=t;else if(t&&typeof t=="object"){let c={};r=e.map(u=>{const l=u.localName;return x(l,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:u},value:t}),x(!c[l],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:u},value:t}),c[l]=!0,t[l]})}else _(!1,"invalid tuple value","tuple",t);_(e.length===r.length,"types/value length mismatch","tuple",t);let s=new mn,i=new mn,o=[];e.forEach((c,u)=>{let l=r[u];if(c.dynamic){let h=i.length;c.encode(i,l);let y=s.writeUpdatableValue();o.push(p=>{y(p+h)})}else c.encode(s,l)}),o.forEach(c=>{c(s.length)});let a=n.appendWriter(s);return a+=n.appendWriter(i),a}function Ii(n,e){let t=[],r=[],s=n.subReader(0);return e.forEach(i=>{let o=null;if(i.dynamic){let a=n.readIndex(),c=s.subReader(a);try{o=i.decode(c)}catch(u){if(_r(u,"BUFFER_OVERRUN"))throw u;o=u,o.baseType=i.name,o.name=i.localName,o.type=i.type}}else try{o=i.decode(n)}catch(a){if(_r(a,"BUFFER_OVERRUN"))throw a;o=a,o.baseType=i.name,o.name=i.localName,o.type=i.type}if(o==null)throw new Error("investigate");t.push(o),r.push(i.localName||null)}),Er.fromItems(t,r)}class fl extends Be{constructor(t,r,s){const i=t.type+"["+(r>=0?r:"")+"]",o=r===-1||t.dynamic;super("array",i,s,o);d(this,"coder");d(this,"length");S(this,{coder:t,length:r})}defaultValue(){const t=this.coder.defaultValue(),r=[];for(let s=0;s<this.length;s++)r.push(t);return r}encode(t,r){const s=K.dereference(r,"array");Array.isArray(s)||this._throwError("expected array value",s);let i=this.length;i===-1&&(i=s.length,t.writeValue(s.length)),mi(s.length,i,"coder array"+(this.localName?" "+this.localName:""));let o=[];for(let a=0;a<s.length;a++)o.push(this.coder);return Ni(t,o,s)}decode(t){let r=this.length;r===-1&&(r=t.readIndex(),x(r*Z<=t.dataLength,"insufficient data length","BUFFER_OVERRUN",{buffer:t.bytes,offset:r*Z,length:t.dataLength}));let s=[];for(let i=0;i<r;i++)s.push(new hl(this.coder));return Ii(t,s)}}class dl extends Be{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){const r=K.dereference(t,"bool");return e.writeValue(r?1:0)}decode(e){return!!e.readValue()}}class Ci extends Be{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=Fe(t);let r=e.writeValue(t.length);return r+=e.writeBytes(t),r}decode(e){return e.readBytes(e.readIndex(),!0)}}class pl extends Ci{constructor(e){super("bytes",e)}decode(e){return H(super.decode(e))}}class yl extends Be{constructor(t,r){let s="bytes"+String(t);super(s,s,r,!1);d(this,"size");S(this,{size:t},{size:"number"})}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+this.size*2)}encode(t,r){let s=Fe(K.dereference(r,this.type));return s.length!==this.size&&this._throwError("incorrect data length",r),t.writeBytes(s)}decode(t){return H(t.readBytes(this.size))}}const ml=new Uint8Array([]);class gl extends Be{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return t!=null&&this._throwError("not null",t),e.writeBytes(ml)}decode(e){return e.readBytes(0),null}}const wl=BigInt(0),bl=BigInt(1),vl=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class _l extends Be{constructor(t,r,s){const i=(r?"int":"uint")+t*8;super(i,i,s,!1);d(this,"size");d(this,"signed");S(this,{size:t,signed:r},{size:"number",signed:"boolean"})}defaultValue(){return 0}encode(t,r){let s=mt(K.dereference(r,this.type)),i=ur(vl,Z*8);if(this.signed){let o=ur(i,this.size*8-1);(s>o||s<-(o+bl))&&this._throwError("value out-of-bounds",r),s=au(s,8*Z)}else(s<wl||s>ur(i,this.size*8))&&this._throwError("value out-of-bounds",r);return t.writeValue(s)}decode(t){let r=ur(t.readValue(),this.size*8);return this.signed&&(r=ou(r,this.size*8)),r}}class El extends Ci{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,_i(K.dereference(t,"string")))}decode(e){return mu(super.decode(e))}}class dr extends Be{constructor(t,r){let s=!1;const i=[];t.forEach(a=>{a.dynamic&&(s=!0),i.push(a.type)});const o="tuple("+i.join(",")+")";super("tuple",o,r,s);d(this,"coders");S(this,{coders:Object.freeze(t.slice())})}defaultValue(){const t=[];this.coders.forEach(s=>{t.push(s.defaultValue())});const r=this.coders.reduce((s,i)=>{const o=i.localName;return o&&(s[o]||(s[o]=0),s[o]++),s},{});return this.coders.forEach((s,i)=>{let o=s.localName;!o||r[o]!==1||(o==="length"&&(o="_length"),t[o]==null&&(t[o]=t[i]))}),Object.freeze(t)}encode(t,r){const s=K.dereference(r,"tuple");return Ni(t,this.coders,s)}decode(t){return Ii(t,this.coders)}}function Jt(n){return Je(_i(n))}function rn(n,e){return{address:lt(n),storageKeys:e.map((t,r)=>(_(Ge(t,32),"invalid slot",`storageKeys[${r}]`,t),t.toLowerCase()))}}function xl(n){if(Array.isArray(n))return n.map((t,r)=>Array.isArray(t)?(_(t.length===2,"invalid slot set",`value[${r}]`,t),rn(t[0],t[1])):(_(t!=null&&typeof t=="object","invalid address-slot set","value",n),rn(t.address,t.storageKeys)));_(n!=null&&typeof n=="object","invalid access list","value",n);const e=Object.keys(n).map(t=>{const r=n[t].reduce((s,i)=>(s[i]=!0,s),{});return rn(t,Object.keys(r).sort())});return e.sort((t,r)=>t.address.localeCompare(r.address)),e}function Y(n){const e=new Set;return n.forEach(t=>e.add(t)),Object.freeze(e)}const Fi="constant external internal payable private public pure view",Tl=Y(Fi.split(" ")),Di="constructor error event fallback function receive struct",Ui=Y(Di.split(" ")),ji="calldata memory storage payable indexed",Ol=Y(ji.split(" ")),kl="tuple returns",Al=[Di,ji,kl,Fi].join(" "),Sl=Y(Al.split(" ")),Rl={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},$l=new RegExp("^(\\s*)"),Pl=new RegExp("^([0-9]+)"),Nl=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),Li=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),Bi=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$");var z,pe,Kt,vn;const kr=class{constructor(e){F(this,Kt);F(this,z,void 0);F(this,pe,void 0);P(this,z,0),P(this,pe,e.slice())}get offset(){return m(this,z)}get length(){return m(this,pe).length-m(this,z)}clone(){return new kr(m(this,pe))}reset(){P(this,z,0)}popKeyword(e){const t=this.peek();if(t.type!=="KEYWORD"||!e.has(t.text))throw new Error(`expected keyword ${t.text}`);return this.pop().text}popType(e){if(this.peek().type!==e)throw new Error(`expected ${e}; got ${JSON.stringify(this.peek())}`);return this.pop().text}popParen(){const e=this.peek();if(e.type!=="OPEN_PAREN")throw new Error("bad start");const t=B(this,Kt,vn).call(this,m(this,z)+1,e.match+1);return P(this,z,e.match+1),t}popParams(){const e=this.peek();if(e.type!=="OPEN_PAREN")throw new Error("bad start");const t=[];for(;m(this,z)<e.match-1;){const r=this.peek().linkNext;t.push(B(this,Kt,vn).call(this,m(this,z)+1,r)),P(this,z,r)}return P(this,z,e.match+1),t}peek(){if(m(this,z)>=m(this,pe).length)throw new Error("out-of-bounds");return m(this,pe)[m(this,z)]}peekKeyword(e){const t=this.peekType("KEYWORD");return t!=null&&e.has(t)?t:null}peekType(e){if(this.length===0)return null;const t=this.peek();return t.type===e?t.text:null}pop(){const e=this.peek();return Yn(this,z)._++,e}toString(){const e=[];for(let t=m(this,z);t<m(this,pe).length;t++){const r=m(this,pe)[t];e.push(`${r.type}:${r.text}`)}return`<TokenString ${e.join(" ")}>`}};let ge=kr;z=new WeakMap,pe=new WeakMap,Kt=new WeakSet,vn=function(e=0,t=0){return new kr(m(this,pe).slice(e,t).map(r=>Object.freeze(Object.assign({},r,{match:r.match-e,linkBack:r.linkBack-e,linkNext:r.linkNext-e}))))};function Ke(n){const e=[],t=o=>{const a=i<n.length?JSON.stringify(n[i]):"$EOI";throw new Error(`invalid token ${a} at ${i}: ${o}`)};let r=[],s=[],i=0;for(;i<n.length;){let o=n.substring(i),a=o.match($l);a&&(i+=a[1].length,o=n.substring(i));const c={depth:r.length,linkBack:-1,linkNext:-1,match:-1,type:"",text:"",offset:i,value:-1};e.push(c);let u=Rl[o[0]]||"";if(u){if(c.type=u,c.text=o[0],i++,u==="OPEN_PAREN")r.push(e.length-1),s.push(e.length-1);else if(u=="CLOSE_PAREN")r.length===0&&t("no matching open bracket"),c.match=r.pop(),e[c.match].match=e.length-1,c.depth--,c.linkBack=s.pop(),e[c.linkBack].linkNext=e.length-1;else if(u==="COMMA")c.linkBack=s.pop(),e[c.linkBack].linkNext=e.length-1,s.push(e.length-1);else if(u==="OPEN_BRACKET")c.type="BRACKET";else if(u==="CLOSE_BRACKET"){let l=e.pop().text;if(e.length>0&&e[e.length-1].type==="NUMBER"){const h=e.pop().text;l=h+l,e[e.length-1].value=Le(h)}if(e.length===0||e[e.length-1].type!=="BRACKET")throw new Error("missing opening bracket");e[e.length-1].text+=l}continue}if(a=o.match(Nl),a){if(c.text=a[1],i+=c.text.length,Sl.has(c.text)){c.type="KEYWORD";continue}if(c.text.match(Bi)){c.type="TYPE";continue}c.type="ID";continue}if(a=o.match(Pl),a){c.text=a[1],c.type="NUMBER",i+=c.text.length;continue}throw new Error(`unexpected token ${JSON.stringify(o[0])} at position ${i}`)}return new ge(e.map(o=>Object.freeze(o)))}function ks(n,e){let t=[];for(const r in e.keys())n.has(r)&&t.push(r);if(t.length>1)throw new Error(`conflicting types: ${t.join(", ")}`)}function Mr(n,e){if(e.peekKeyword(Ui)){const t=e.pop().text;if(t!==n)throw new Error(`expected ${n}, got ${t}`)}return e.popType("ID")}function je(n,e){const t=new Set;for(;;){const r=n.peekType("KEYWORD");if(r==null||e&&!e.has(r))break;if(n.pop(),t.has(r))throw new Error(`duplicate keywords: ${JSON.stringify(r)}`);t.add(r)}return Object.freeze(t)}function Hi(n){let e=je(n,Tl);return ks(e,Y("constant payable nonpayable".split(" "))),ks(e,Y("pure view payable nonpayable".split(" "))),e.has("view")?"view":e.has("pure")?"pure":e.has("payable")?"payable":e.has("nonpayable")?"nonpayable":e.has("constant")?"view":"nonpayable"}function De(n,e){return n.popParams().map(t=>G.from(t,e))}function Mi(n){if(n.peekType("AT")){if(n.pop(),n.peekType("NUMBER"))return mt(n.pop().text);throw new Error("invalid gas")}return null}function ht(n){if(n.length)throw new Error(`unexpected tokens: ${n.toString()}`)}const Il=new RegExp(/^(.*)\[([0-9]*)\]$/);function As(n){const e=n.match(Bi);if(_(e,"invalid type","type",n),n==="uint")return"uint256";if(n==="int")return"int256";if(e[2]){const t=parseInt(e[2]);_(t!==0&&t<=32,"invalid bytes length","type",n)}else if(e[3]){const t=parseInt(e[3]);_(t!==0&&t<=256&&t%8===0,"invalid numeric width","type",n)}return n}const j={},ne=Symbol.for("_ethers_internal"),Ss="_ParamTypeInternal",Rs="_ErrorInternal",$s="_EventInternal",Ps="_ConstructorInternal",Ns="_FallbackInternal",Is="_FunctionInternal",Cs="_StructInternal";var Nt,gr;const ue=class{constructor(e,t,r,s,i,o,a,c){F(this,Nt);d(this,"name");d(this,"type");d(this,"baseType");d(this,"indexed");d(this,"components");d(this,"arrayLength");d(this,"arrayChildren");if(Ln(e,j,"ParamType"),Object.defineProperty(this,ne,{value:Ss}),o&&(o=Object.freeze(o.slice())),s==="array"){if(a==null||c==null)throw new Error("")}else if(a!=null||c!=null)throw new Error("");if(s==="tuple"){if(o==null)throw new Error("")}else if(o!=null)throw new Error("");S(this,{name:t,type:r,baseType:s,indexed:i,components:o,arrayLength:a,arrayChildren:c})}format(e){if(e==null&&(e="sighash"),e==="json"){let r={type:this.baseType==="tuple"?"tuple":this.type,name:this.name||void 0};return typeof this.indexed=="boolean"&&(r.indexed=this.indexed),this.isTuple()&&(r.components=this.components.map(s=>JSON.parse(s.format(e)))),JSON.stringify(r)}let t="";return this.isArray()?(t+=this.arrayChildren.format(e),t+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`):this.isTuple()?(e!=="sighash"&&(t+=this.type),t+="("+this.components.map(r=>r.format(e)).join(e==="full"?", ":",")+")"):t+=this.type,e!=="sighash"&&(this.indexed===!0&&(t+=" indexed"),e==="full"&&this.name&&(t+=" "+this.name)),t}isArray(){return this.baseType==="array"}isTuple(){return this.baseType==="tuple"}isIndexable(){return this.indexed!=null}walk(e,t){if(this.isArray()){if(!Array.isArray(e))throw new Error("invalid array value");if(this.arrayLength!==-1&&e.length!==this.arrayLength)throw new Error("array is wrong length");const r=this;return e.map(s=>r.arrayChildren.walk(s,t))}if(this.isTuple()){if(!Array.isArray(e))throw new Error("invalid tuple value");if(e.length!==this.components.length)throw new Error("array is wrong length");const r=this;return e.map((s,i)=>r.components[i].walk(s,t))}return t(this.type,e)}async walkAsync(e,t){const r=[],s=[e];return B(this,Nt,gr).call(this,r,e,t,i=>{s[0]=i}),r.length&&await Promise.all(r),s[0]}static from(e,t){if(ue.isParamType(e))return e;if(typeof e=="string")return ue.from(Ke(e),t);if(e instanceof ge){let a="",c="",u=null;je(e,Y(["tuple"])).has("tuple")||e.peekType("OPEN_PAREN")?(c="tuple",u=e.popParams().map(v=>ue.from(v)),a=`tuple(${u.map(v=>v.format()).join(",")})`):(a=As(e.popType("TYPE")),c=a);let l=null,h=null;for(;e.length&&e.peekType("BRACKET");){const v=e.pop();l=new ue(j,"",a,c,null,u,h,l),h=v.value,a+=v.text,c="array",u=null}let y=null;if(je(e,Ol).has("indexed")){if(!t)throw new Error("");y=!0}const w=e.peekType("ID")?e.pop().text:"";if(e.length)throw new Error("leftover tokens");return new ue(j,w,a,c,y,u,h,l)}const r=e.name;_(!r||typeof r=="string"&&r.match(Li),"invalid name","obj.name",r);let s=e.indexed;s!=null&&(_(t,"parameter cannot be indexed","obj.indexed",e.indexed),s=!!s);let i=e.type,o=i.match(Il);if(o){const a=parseInt(o[2]||"-1"),c=ue.from({type:o[1],components:e.components});return new ue(j,r||"",i,"array",s,null,a,c)}if(i==="tuple"||i.startsWith("tuple(")||i.startsWith("(")){const a=e.components!=null?e.components.map(u=>ue.from(u)):null;return new ue(j,r||"",i,"tuple",s,a,null,null)}return i=As(e.type),new ue(j,r||"",i,i,s,null,null,null)}static isParamType(e){return e&&e[ne]===Ss}};let G=ue;Nt=new WeakSet,gr=function(e,t,r,s){if(this.isArray()){if(!Array.isArray(t))throw new Error("invalid array value");if(this.arrayLength!==-1&&t.length!==this.arrayLength)throw new Error("array is wrong length");const o=this.arrayChildren,a=t.slice();a.forEach((c,u)=>{var l;B(l=o,Nt,gr).call(l,e,c,r,h=>{a[u]=h})}),s(a);return}if(this.isTuple()){const o=this.components;let a;if(Array.isArray(t))a=t.slice();else{if(t==null||typeof t!="object")throw new Error("invalid tuple value");a=o.map(c=>{if(!c.name)throw new Error("cannot use object value with unnamed components");if(!(c.name in t))throw new Error(`missing value for component ${c.name}`);return t[c.name]})}if(a.length!==this.components.length)throw new Error("array is wrong length");a.forEach((c,u)=>{var l;B(l=o[u],Nt,gr).call(l,e,c,r,h=>{a[u]=h})}),s(a);return}const i=r(this.type,t);i.then?e.push(async function(){s(await i)}()):s(i)};class ft{constructor(e,t,r){d(this,"type");d(this,"inputs");Ln(e,j,"Fragment"),r=Object.freeze(r.slice()),S(this,{type:t,inputs:r})}static from(e){if(typeof e=="string"){try{ft.from(JSON.parse(e))}catch{}return ft.from(Ke(e))}if(e instanceof ge)switch(e.peekKeyword(Ui)){case"constructor":return Ce.from(e);case"error":return ee.from(e);case"event":return Oe.from(e);case"fallback":case"receive":return Pe.from(e);case"function":return ke.from(e);case"struct":return ct.from(e)}else if(typeof e=="object"){switch(e.type){case"constructor":return Ce.from(e);case"error":return ee.from(e);case"event":return Oe.from(e);case"fallback":case"receive":return Pe.from(e);case"function":return ke.from(e);case"struct":return ct.from(e)}x(!1,`unsupported type: ${e.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}_(!1,"unsupported frgament object","obj",e)}static isConstructor(e){return Ce.isFragment(e)}static isError(e){return ee.isFragment(e)}static isEvent(e){return Oe.isFragment(e)}static isFunction(e){return ke.isFragment(e)}static isStruct(e){return ct.isFragment(e)}}class Vr extends ft{constructor(t,r,s,i){super(t,r,i);d(this,"name");_(typeof s=="string"&&s.match(Li),"invalid identifier","name",s),i=Object.freeze(i.slice()),S(this,{name:s})}}function Wt(n,e){return"("+e.map(t=>t.format(n)).join(n==="full"?", ":",")+")"}class ee extends Vr{constructor(e,t,r){super(e,"error",t,r),Object.defineProperty(this,ne,{value:Rs})}get selector(){return Jt(this.format("sighash")).substring(0,10)}format(e){if(e==null&&(e="sighash"),e==="json")return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(r=>JSON.parse(r.format(e)))});const t=[];return e!=="sighash"&&t.push("error"),t.push(this.name+Wt(e,this.inputs)),t.join(" ")}static from(e){if(ee.isFragment(e))return e;if(typeof e=="string")return ee.from(Ke(e));if(e instanceof ge){const t=Mr("error",e),r=De(e);return ht(e),new ee(j,t,r)}return new ee(j,e.name,e.inputs?e.inputs.map(G.from):[])}static isFragment(e){return e&&e[ne]===Rs}}class Oe extends Vr{constructor(t,r,s,i){super(t,"event",r,s);d(this,"anonymous");Object.defineProperty(this,ne,{value:$s}),S(this,{anonymous:i})}get topicHash(){return Jt(this.format("sighash"))}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(s=>JSON.parse(s.format(t)))});const r=[];return t!=="sighash"&&r.push("event"),r.push(this.name+Wt(t,this.inputs)),t!=="sighash"&&this.anonymous&&r.push("anonymous"),r.join(" ")}static getTopicHash(t,r){return r=(r||[]).map(i=>G.from(i)),new Oe(j,t,r,!1).topicHash}static from(t){if(Oe.isFragment(t))return t;if(typeof t=="string")return Oe.from(Ke(t));if(t instanceof ge){const r=Mr("event",t),s=De(t,!0),i=!!je(t,Y(["anonymous"])).has("anonymous");return ht(t),new Oe(j,r,s,i)}return new Oe(j,t.name,t.inputs?t.inputs.map(r=>G.from(r,!0)):[],!!t.anonymous)}static isFragment(t){return t&&t[ne]===$s}}class Ce extends ft{constructor(t,r,s,i,o){super(t,r,s);d(this,"payable");d(this,"gas");Object.defineProperty(this,ne,{value:Ps}),S(this,{payable:i,gas:o})}format(t){if(x(t!=null&&t!=="sighash","cannot format a constructor for sighash","UNSUPPORTED_OPERATION",{operation:"format(sighash)"}),t==="json")return JSON.stringify({type:"constructor",stateMutability:this.payable?"payable":"undefined",payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map(s=>JSON.parse(s.format(t)))});const r=[`constructor${Wt(t,this.inputs)}`];return r.push(this.payable?"payable":"nonpayable"),this.gas!=null&&r.push(`@${this.gas.toString()}`),r.join(" ")}static from(t){if(Ce.isFragment(t))return t;if(typeof t=="string")return Ce.from(Ke(t));if(t instanceof ge){je(t,Y(["constructor"]));const r=De(t),s=!!je(t,Y(["payable"])).has("payable"),i=Mi(t);return ht(t),new Ce(j,"constructor",r,s,i)}return new Ce(j,"constructor",t.inputs?t.inputs.map(G.from):[],!!t.payable,t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[ne]===Ps}}class Pe extends ft{constructor(t,r,s){super(t,"fallback",r);d(this,"payable");Object.defineProperty(this,ne,{value:Ns}),S(this,{payable:s})}format(t){const r=this.inputs.length===0?"receive":"fallback";if(t==="json"){const s=this.payable?"payable":"nonpayable";return JSON.stringify({type:r,stateMutability:s})}return`${r}()${this.payable?" payable":""}`}static from(t){if(Pe.isFragment(t))return t;if(typeof t=="string")return Pe.from(Ke(t));if(t instanceof ge){const r=t.toString(),s=t.peekKeyword(Y(["fallback","receive"]));if(_(s,"type must be fallback or receive","obj",r),t.popKeyword(Y(["fallback","receive"]))==="receive"){const c=De(t);return _(c.length===0,"receive cannot have arguments","obj.inputs",c),je(t,Y(["payable"])),ht(t),new Pe(j,[],!0)}let o=De(t);o.length?_(o.length===1&&o[0].type==="bytes","invalid fallback inputs","obj.inputs",o.map(c=>c.format("minimal")).join(", ")):o=[G.from("bytes")];const a=Hi(t);if(_(a==="nonpayable"||a==="payable","fallback cannot be constants","obj.stateMutability",a),je(t,Y(["returns"])).has("returns")){const c=De(t);_(c.length===1&&c[0].type==="bytes","invalid fallback outputs","obj.outputs",c.map(u=>u.format("minimal")).join(", "))}return ht(t),new Pe(j,o,a==="payable")}if(t.type==="receive")return new Pe(j,[],!0);if(t.type==="fallback"){const r=[G.from("bytes")],s=t.stateMutability==="payable";return new Pe(j,r,s)}_(!1,"invalid fallback description","obj",t)}static isFragment(t){return t&&t[ne]===Ns}}class ke extends Vr{constructor(t,r,s,i,o,a){super(t,"function",r,i);d(this,"constant");d(this,"outputs");d(this,"stateMutability");d(this,"payable");d(this,"gas");Object.defineProperty(this,ne,{value:Is}),o=Object.freeze(o.slice()),S(this,{constant:s==="view"||s==="pure",gas:a,outputs:o,payable:s==="payable",stateMutability:s})}get selector(){return Jt(this.format("sighash")).substring(0,10)}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:this.stateMutability!=="nonpayable"?this.stateMutability:void 0,payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map(s=>JSON.parse(s.format(t))),outputs:this.outputs.map(s=>JSON.parse(s.format(t)))});const r=[];return t!=="sighash"&&r.push("function"),r.push(this.name+Wt(t,this.inputs)),t!=="sighash"&&(this.stateMutability!=="nonpayable"&&r.push(this.stateMutability),this.outputs&&this.outputs.length&&(r.push("returns"),r.push(Wt(t,this.outputs))),this.gas!=null&&r.push(`@${this.gas.toString()}`)),r.join(" ")}static getSelector(t,r){return r=(r||[]).map(i=>G.from(i)),new ke(j,t,"view",r,[],null).selector}static from(t){if(ke.isFragment(t))return t;if(typeof t=="string")return ke.from(Ke(t));if(t instanceof ge){const r=Mr("function",t),s=De(t),i=Hi(t);let o=[];je(t,Y(["returns"])).has("returns")&&(o=De(t));const a=Mi(t);return ht(t),new ke(j,r,i,s,o,a)}return new ke(j,t.name,t.stateMutability,t.inputs?t.inputs.map(G.from):[],t.outputs?t.outputs.map(G.from):[],t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[ne]===Is}}class ct extends Vr{constructor(e,t,r){super(e,"struct",t,r),Object.defineProperty(this,ne,{value:Cs})}format(){throw new Error("@TODO")}static from(e){if(typeof e=="string")return ct.from(Ke(e));if(e instanceof ge){const t=Mr("struct",e),r=De(e);return ht(e),new ct(j,t,r)}return new ct(j,e.name,e.inputs?e.inputs.map(G.from):[])}static isFragment(e){return e&&e[ne]===Cs}}const we=new Map;we.set(0,"GENERIC_PANIC");we.set(1,"ASSERT_FALSE");we.set(17,"OVERFLOW");we.set(18,"DIVIDE_BY_ZERO");we.set(33,"ENUM_RANGE_ERROR");we.set(34,"BAD_STORAGE_DATA");we.set(49,"STACK_UNDERFLOW");we.set(50,"ARRAY_RANGE_ERROR");we.set(65,"OUT_OF_MEMORY");we.set(81,"UNINITIALIZED_FUNCTION_CALL");const Cl=new RegExp(/^bytes([0-9]*)$/),Fl=new RegExp(/^(u?int)([0-9]*)$/);let nn=null;function Dl(n,e,t,r){let s="missing revert data",i=null;const o=null;let a=null;if(t){s="execution reverted";const u=Ue(t);if(t=H(t),u.length===0)s+=" (no data present; likely require(false) occurred",i="require(false)";else if(u.length%32!==4)s+=" (could not decode reason; invalid data length)";else if(H(u.slice(0,4))==="0x08c379a0")try{i=r.decode(["string"],u.slice(4))[0],a={signature:"Error(string)",name:"Error",args:[i]},s+=`: ${JSON.stringify(i)}`}catch{s+=" (could not decode reason; invalid string data)"}else if(H(u.slice(0,4))==="0x4e487b71")try{const l=Number(r.decode(["uint256"],u.slice(4))[0]);a={signature:"Panic(uint256)",name:"Panic",args:[l]},i=`Panic due to ${we.get(l)||"UNKNOWN"}(${l})`,s+=`: ${i}`}catch{s+=" (could not decode panic code)"}else s+=" (unknown custom error)"}const c={to:e.to?lt(e.to):null,data:e.data||"0x"};return e.from&&(c.from=lt(e.from)),jr(s,"CALL_EXCEPTION",{action:n,data:t,reason:i,transaction:c,invocation:o,revert:a})}var ze,Tt;const Ar=class{constructor(){F(this,ze)}getDefaultValue(e){const t=e.map(s=>B(this,ze,Tt).call(this,G.from(s)));return new dr(t,"_").defaultValue()}encode(e,t){mi(t.length,e.length,"types/values length mismatch");const r=e.map(o=>B(this,ze,Tt).call(this,G.from(o))),s=new dr(r,"_"),i=new mn;return s.encode(i,t),i.data}decode(e,t,r){const s=e.map(o=>B(this,ze,Tt).call(this,G.from(o)));return new dr(s,"_").decode(new gn(t,r))}static defaultAbiCoder(){return nn==null&&(nn=new Ar),nn}static getBuiltinCallException(e,t,r){return Dl(e,t,r,Ar.defaultAbiCoder())}};let xr=Ar;ze=new WeakSet,Tt=function(e){if(e.isArray())return new fl(B(this,ze,Tt).call(this,e.arrayChildren),e.arrayLength,e.name);if(e.isTuple())return new dr(e.components.map(r=>B(this,ze,Tt).call(this,r)),e.name);switch(e.baseType){case"address":return new ll(e.name);case"bool":return new dl(e.name);case"string":return new El(e.name);case"bytes":return new pl(e.name);case"":return new gl(e.name)}let t=e.type.match(Fl);if(t){let r=parseInt(t[2]||"256");return _(r!==0&&r<=256&&r%8===0,"invalid "+t[1]+" bit length","param",e),new _l(r/8,t[1]==="int",e.name)}if(t=e.type.match(Cl),t){let r=parseInt(t[1]);return _(r!==0&&r<=32,"invalid bytes length","param",e),new yl(r,e.name)}_(!1,"invalid type","type",e.type)};class Ul{constructor(e,t,r){d(this,"fragment");d(this,"name");d(this,"signature");d(this,"topic");d(this,"args");const s=e.name,i=e.format();S(this,{fragment:e,name:s,signature:i,topic:t,args:r})}}class jl{constructor(e,t,r,s){d(this,"fragment");d(this,"name");d(this,"args");d(this,"signature");d(this,"selector");d(this,"value");const i=e.name,o=e.format();S(this,{fragment:e,name:i,args:r,signature:o,selector:t,value:s})}}class Ll{constructor(e,t,r){d(this,"fragment");d(this,"name");d(this,"args");d(this,"signature");d(this,"selector");const s=e.name,i=e.format();S(this,{fragment:e,name:s,args:r,signature:i,selector:t})}}class Fs{constructor(e){d(this,"hash");d(this,"_isIndexed");S(this,{hash:e,_isIndexed:!0})}static isIndexed(e){return!!(e&&e._isIndexed)}}const Ds={0:"generic panic",1:"assert(false)",17:"arithmetic overflow",18:"division or modulo by zero",33:"enum overflow",34:"invalid encoded storage byte array accessed",49:"out-of-bounds array access; popping on an empty array",50:"out-of-bounds access of an array or bytesN",65:"out of memory",81:"uninitialized function"},Us={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:n=>`reverted with reason string ${JSON.stringify(n)}`},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"],reason:n=>{let e="unknown panic code";return n>=0&&n<=255&&Ds[n.toString()]&&(e=Ds[n.toString()]),`reverted with panic code 0x${n.toString(16)} (${e})`}}};var Ee,xe,Te,W,Xt,En,Zt,xn;const St=class{constructor(e){F(this,Xt);F(this,Zt);d(this,"fragments");d(this,"deploy");d(this,"fallback");d(this,"receive");F(this,Ee,void 0);F(this,xe,void 0);F(this,Te,void 0);F(this,W,void 0);let t=[];typeof e=="string"?t=JSON.parse(e):t=e,P(this,Te,new Map),P(this,Ee,new Map),P(this,xe,new Map);const r=[];for(const o of t)try{r.push(ft.from(o))}catch(a){console.log("EE",a)}S(this,{fragments:Object.freeze(r)});let s=null,i=!1;P(this,W,this.getAbiCoder()),this.fragments.forEach((o,a)=>{let c;switch(o.type){case"constructor":if(this.deploy){console.log("duplicate definition - constructor");return}S(this,{deploy:o});return;case"fallback":o.inputs.length===0?i=!0:(_(!s||o.payable!==s.payable,"conflicting fallback fragments",`fragments[${a}]`,o),s=o,i=s.payable);return;case"function":c=m(this,Te);break;case"event":c=m(this,xe);break;case"error":c=m(this,Ee);break;default:return}const u=o.format();c.has(u)||c.set(u,o)}),this.deploy||S(this,{deploy:Ce.from("constructor()")}),S(this,{fallback:s,receive:i})}format(e){const t=e?"minimal":"full";return this.fragments.map(s=>s.format(t))}formatJson(){const e=this.fragments.map(t=>t.format("json"));return JSON.stringify(e.map(t=>JSON.parse(t)))}getAbiCoder(){return xr.defaultAbiCoder()}getFunctionName(e){const t=B(this,Xt,En).call(this,e,null,!1);return _(t,"no matching function","key",e),t.name}getFunction(e,t){return B(this,Xt,En).call(this,e,t||null,!0)}forEachFunction(e){const t=Array.from(m(this,Te).keys());t.sort((r,s)=>r.localeCompare(s));for(let r=0;r<t.length;r++){const s=t[r];e(m(this,Te).get(s),r)}}getEventName(e){const t=B(this,Zt,xn).call(this,e,null,!1);return _(t,"no matching event","key",e),t.name}getEvent(e,t){return B(this,Zt,xn).call(this,e,t||null,!0)}forEachEvent(e){const t=Array.from(m(this,xe).keys());t.sort((r,s)=>r.localeCompare(s));for(let r=0;r<t.length;r++){const s=t[r];e(m(this,xe).get(s),r)}}getError(e,t){if(Ge(e)){const s=e.toLowerCase();if(Us[s])return ee.from(Us[s].signature);for(const i of m(this,Ee).values())if(s===i.selector)return i;return null}if(e.indexOf("(")===-1){const s=[];for(const[i,o]of m(this,Ee))i.split("(")[0]===e&&s.push(o);if(s.length===0)return e==="Error"?ee.from("error Error(string)"):e==="Panic"?ee.from("error Panic(uint256)"):null;if(s.length>1){const i=s.map(o=>JSON.stringify(o.format())).join(", ");_(!1,`ambiguous error description (i.e. ${i})`,"name",e)}return s[0]}if(e=ee.from(e).format(),e==="Error(string)")return ee.from("error Error(string)");if(e==="Panic(uint256)")return ee.from("error Panic(uint256)");const r=m(this,Ee).get(e);return r||null}forEachError(e){const t=Array.from(m(this,Ee).keys());t.sort((r,s)=>r.localeCompare(s));for(let r=0;r<t.length;r++){const s=t[r];e(m(this,Ee).get(s),r)}}_decodeParams(e,t){return m(this,W).decode(e,t)}_encodeParams(e,t){return m(this,W).encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){if(typeof e=="string"){const r=this.getError(e);_(r,"unknown error","fragment",e),e=r}return _(_t(t,0,4)===e.selector,`data signature does not match error ${e.name}.`,"data",t),this._decodeParams(e.inputs,_t(t,4))}encodeErrorResult(e,t){if(typeof e=="string"){const r=this.getError(e);_(r,"unknown error","fragment",e),e=r}return Rt([e.selector,this._encodeParams(e.inputs,t||[])])}decodeFunctionData(e,t){if(typeof e=="string"){const r=this.getFunction(e);_(r,"unknown function","fragment",e),e=r}return _(_t(t,0,4)===e.selector,`data signature does not match function ${e.name}.`,"data",t),this._decodeParams(e.inputs,_t(t,4))}encodeFunctionData(e,t){if(typeof e=="string"){const r=this.getFunction(e);_(r,"unknown function","fragment",e),e=r}return Rt([e.selector,this._encodeParams(e.inputs,t||[])])}decodeFunctionResult(e,t){if(typeof e=="string"){const i=this.getFunction(e);_(i,"unknown function","fragment",e),e=i}let r="invalid length for result data";const s=Fe(t);if(s.length%32===0)try{return m(this,W).decode(e.outputs,s)}catch{r="could not decode result data"}x(!1,r,"BAD_DATA",{value:H(s),info:{method:e.name,signature:e.format()}})}makeError(e,t){const r=Ue(e,"data"),s=xr.getBuiltinCallException("call",t,r),i="execution reverted (unknown custom error)";if(s.message.startsWith(i)){const a=H(r.slice(0,4)),c=this.getError(a);if(c)try{const u=m(this,W).decode(c.inputs,r.slice(4));s.revert={name:c.name,signature:c.format(),args:u},s.reason=s.revert.signature,s.message=`execution reverted: ${s.reason}`}catch{s.message="execution reverted (coult not decode custom error)"}}const o=this.parseTransaction(t);return o&&(s.invocation={method:o.name,signature:o.signature,args:o.args}),s}encodeFunctionResult(e,t){if(typeof e=="string"){const r=this.getFunction(e);_(r,"unknown function","fragment",e),e=r}return H(m(this,W).encode(e.outputs,t||[]))}encodeFilterTopics(e,t){if(typeof e=="string"){const i=this.getEvent(e);_(i,"unknown event","eventFragment",e),e=i}x(t.length<=e.inputs.length,`too many arguments for ${e.format()}`,"UNEXPECTED_ARGUMENT",{count:t.length,expectedCount:e.inputs.length});const r=[];e.anonymous||r.push(e.topicHash);const s=(i,o)=>i.type==="string"?Jt(o):i.type==="bytes"?Je(H(o)):(i.type==="bool"&&typeof o=="boolean"&&(o=o?"0x01":"0x00"),i.type.match(/^u?int/)&&(o=bi(o)),i.type==="address"&&m(this,W).encode(["address"],[o]),iu(H(o),32));for(t.forEach((i,o)=>{const a=e.inputs[o];if(!a.indexed){_(i==null,"cannot filter non-indexed parameters; must be null","contract."+a.name,i);return}i==null?r.push(null):a.baseType==="array"||a.baseType==="tuple"?_(!1,"filtering with tuples or arrays not supported","contract."+a.name,i):Array.isArray(i)?r.push(i.map(c=>s(a,c))):r.push(s(a,i))});r.length&&r[r.length-1]===null;)r.pop();return r}encodeEventLog(e,t){if(typeof e=="string"){const o=this.getEvent(e);_(o,"unknown event","eventFragment",e),e=o}const r=[],s=[],i=[];return e.anonymous||r.push(e.topicHash),_(t.length===e.inputs.length,"event arguments/values mismatch","values",t),e.inputs.forEach((o,a)=>{const c=t[a];if(o.indexed)if(o.type==="string")r.push(Jt(c));else if(o.type==="bytes")r.push(Je(c));else{if(o.baseType==="tuple"||o.baseType==="array")throw new Error("not implemented");r.push(m(this,W).encode([o.type],[c]))}else s.push(o),i.push(c)}),{data:m(this,W).encode(s,i),topics:r}}decodeEventLog(e,t,r){if(typeof e=="string"){const p=this.getEvent(e);_(p,"unknown event","eventFragment",e),e=p}if(r!=null&&!e.anonymous){const p=e.topicHash;_(Ge(r[0],32)&&r[0].toLowerCase()===p,"fragment/topic mismatch","topics[0]",r[0]),r=r.slice(1)}const s=[],i=[],o=[];e.inputs.forEach((p,w)=>{p.indexed?p.type==="string"||p.type==="bytes"||p.baseType==="tuple"||p.baseType==="array"?(s.push(G.from({type:"bytes32",name:p.name})),o.push(!0)):(s.push(p),o.push(!1)):(i.push(p),o.push(!1))});const a=r!=null?m(this,W).decode(s,Rt(r)):null,c=m(this,W).decode(i,t,!0),u=[],l=[];let h=0,y=0;return e.inputs.forEach((p,w)=>{let v=null;if(p.indexed)if(a==null)v=new Fs(null);else if(o[w])v=new Fs(a[y++]);else try{v=a[y++]}catch(g){v=g}else try{v=c[h++]}catch(g){v=g}u.push(v),l.push(p.name||null)}),Er.fromItems(u,l)}parseTransaction(e){const t=Ue(e.data,"tx.data"),r=mt(e.value!=null?e.value:0,"tx.value"),s=this.getFunction(H(t.slice(0,4)));if(!s)return null;const i=m(this,W).decode(s.inputs,t.slice(4));return new jl(s,s.selector,i,r)}parseCallResult(e){throw new Error("@TODO")}parseLog(e){const t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new Ul(t,t.topicHash,this.decodeEventLog(t,e.data,e.topics))}parseError(e){const t=H(e),r=this.getError(_t(t,0,4));if(!r)return null;const s=m(this,W).decode(r.inputs,_t(t,4));return new Ll(r,r.selector,s)}static from(e){return e instanceof St?e:typeof e=="string"?new St(JSON.parse(e)):typeof e.format=="function"?new St(e.format("json")):new St(e)}};let _n=St;Ee=new WeakMap,xe=new WeakMap,Te=new WeakMap,W=new WeakMap,Xt=new WeakSet,En=function(e,t,r){if(Ge(e)){const i=e.toLowerCase();for(const o of m(this,Te).values())if(i===o.selector)return o;return null}if(e.indexOf("(")===-1){const i=[];for(const[o,a]of m(this,Te))o.split("(")[0]===e&&i.push(a);if(t){const o=t.length>0?t[t.length-1]:null;let a=t.length,c=!0;K.isTyped(o)&&o.type==="overrides"&&(c=!1,a--);for(let u=i.length-1;u>=0;u--){const l=i[u].inputs.length;l!==a&&(!c||l!==a-1)&&i.splice(u,1)}for(let u=i.length-1;u>=0;u--){const l=i[u].inputs;for(let h=0;h<t.length;h++)if(K.isTyped(t[h])){if(h>=l.length){if(t[h].type==="overrides")continue;i.splice(u,1);break}if(t[h].type!==l[h].baseType){i.splice(u,1);break}}}}if(i.length===1&&t&&t.length!==i[0].inputs.length){const o=t[t.length-1];(o==null||Array.isArray(o)||typeof o!="object")&&i.splice(0,1)}if(i.length===0)return null;if(i.length>1&&r){const o=i.map(a=>JSON.stringify(a.format())).join(", ");_(!1,`ambiguous function description (i.e. matches ${o})`,"key",e)}return i[0]}const s=m(this,Te).get(ke.from(e).format());return s||null},Zt=new WeakSet,xn=function(e,t,r){if(Ge(e)){const i=e.toLowerCase();for(const o of m(this,xe).values())if(i===o.topicHash)return o;return null}if(e.indexOf("(")===-1){const i=[];for(const[o,a]of m(this,xe))o.split("(")[0]===e&&i.push(a);if(t){for(let o=i.length-1;o>=0;o--)i[o].inputs.length<t.length&&i.splice(o,1);for(let o=i.length-1;o>=0;o--){const a=i[o].inputs;for(let c=0;c<t.length;c++)if(K.isTyped(t[c])&&t[c].type!==a[c].baseType){i.splice(o,1);break}}}if(i.length===0)return null;if(i.length>1&&r){const o=i.map(a=>JSON.stringify(a.format())).join(", ");_(!1,`ambiguous event description (i.e. matches ${o})`,"key",e)}return i[0]}const s=m(this,xe).get(Oe.from(e).format());return s||null};const Bl=BigInt(0);function Ne(n){return n==null?null:n.toString()}function Hl(n){const e={};n.to&&(e.to=n.to),n.from&&(e.from=n.from),n.data&&(e.data=H(n.data));const t="chainId,gasLimit,gasPrice,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(const s of t)!(s in n)||n[s]==null||(e[s]=mt(n[s],`request.${s}`));const r="type,nonce".split(/,/);for(const s of r)!(s in n)||n[s]==null||(e[s]=Le(n[s],`request.${s}`));return n.accessList&&(e.accessList=xl(n.accessList)),"blockTag"in n&&(e.blockTag=n.blockTag),"enableCcipRead"in n&&(e.enableCcipReadEnabled=!!n.enableCcipRead),"customData"in n&&(e.customData=n.customData),e}class Vn{constructor(e,t){d(this,"provider");d(this,"transactionHash");d(this,"blockHash");d(this,"blockNumber");d(this,"removed");d(this,"address");d(this,"data");d(this,"topics");d(this,"index");d(this,"transactionIndex");this.provider=t;const r=Object.freeze(e.topics.slice());S(this,{transactionHash:e.transactionHash,blockHash:e.blockHash,blockNumber:e.blockNumber,removed:e.removed,address:e.address,data:e.data,topics:r,index:e.index,transactionIndex:e.transactionIndex})}toJSON(){const{address:e,blockHash:t,blockNumber:r,data:s,index:i,removed:o,topics:a,transactionHash:c,transactionIndex:u}=this;return{_type:"log",address:e,blockHash:t,blockNumber:r,data:s,index:i,removed:o,topics:a,transactionHash:c,transactionIndex:u}}async getBlock(){const e=await this.provider.getBlock(this.blockHash);return x(!!e,"failed to find transaction","UNKNOWN_ERROR",{}),e}async getTransaction(){const e=await this.provider.getTransaction(this.transactionHash);return x(!!e,"failed to find transaction","UNKNOWN_ERROR",{}),e}async getTransactionReceipt(){const e=await this.provider.getTransactionReceipt(this.transactionHash);return x(!!e,"failed to find transaction receipt","UNKNOWN_ERROR",{}),e}removedEvent(){return Vl(this)}}var Yt;class Ml{constructor(e,t){d(this,"provider");d(this,"to");d(this,"from");d(this,"contractAddress");d(this,"hash");d(this,"index");d(this,"blockHash");d(this,"blockNumber");d(this,"logsBloom");d(this,"gasUsed");d(this,"cumulativeGasUsed");d(this,"gasPrice");d(this,"type");d(this,"status");d(this,"root");F(this,Yt,void 0);P(this,Yt,Object.freeze(e.logs.map(r=>new Vn(r,t)))),S(this,{provider:t,to:e.to,from:e.from,contractAddress:e.contractAddress,hash:e.hash,index:e.index,blockHash:e.blockHash,blockNumber:e.blockNumber,logsBloom:e.logsBloom,gasUsed:e.gasUsed,cumulativeGasUsed:e.cumulativeGasUsed,gasPrice:e.effectiveGasPrice||e.gasPrice,type:e.type,status:e.status,root:e.root})}get logs(){return m(this,Yt)}toJSON(){const{to:e,from:t,contractAddress:r,hash:s,index:i,blockHash:o,blockNumber:a,logsBloom:c,logs:u,status:l,root:h}=this;return{_type:"TransactionReceipt",blockHash:o,blockNumber:a,contractAddress:r,cumulativeGasUsed:Ne(this.cumulativeGasUsed),from:t,gasPrice:Ne(this.gasPrice),gasUsed:Ne(this.gasUsed),hash:s,index:i,logs:u,logsBloom:c,root:h,status:l,to:e}}get length(){return this.logs.length}[Symbol.iterator](){let e=0;return{next:()=>e<this.length?{value:this.logs[e++],done:!1}:{value:void 0,done:!0}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){const e=await this.provider.getBlock(this.blockHash);if(e==null)throw new Error("TODO");return e}async getTransaction(){const e=await this.provider.getTransaction(this.hash);if(e==null)throw new Error("TODO");return e}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return zi(this)}reorderedEvent(e){return x(!e||e.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),Vi(this,e)}}Yt=new WeakMap;var qe;const Zn=class{constructor(e,t){d(this,"provider");d(this,"blockNumber");d(this,"blockHash");d(this,"index");d(this,"hash");d(this,"type");d(this,"to");d(this,"from");d(this,"nonce");d(this,"gasLimit");d(this,"gasPrice");d(this,"maxPriorityFeePerGas");d(this,"maxFeePerGas");d(this,"data");d(this,"value");d(this,"chainId");d(this,"signature");d(this,"accessList");F(this,qe,void 0);this.provider=t,this.blockNumber=e.blockNumber!=null?e.blockNumber:null,this.blockHash=e.blockHash!=null?e.blockHash:null,this.hash=e.hash,this.index=e.index,this.type=e.type,this.from=e.from,this.to=e.to||null,this.gasLimit=e.gasLimit,this.nonce=e.nonce,this.data=e.data,this.value=e.value,this.gasPrice=e.gasPrice,this.maxPriorityFeePerGas=e.maxPriorityFeePerGas!=null?e.maxPriorityFeePerGas:null,this.maxFeePerGas=e.maxFeePerGas!=null?e.maxFeePerGas:null,this.chainId=e.chainId,this.signature=e.signature,this.accessList=e.accessList!=null?e.accessList:null,P(this,qe,-1)}toJSON(){const{blockNumber:e,blockHash:t,index:r,hash:s,type:i,to:o,from:a,nonce:c,data:u,signature:l,accessList:h}=this;return{_type:"TransactionReceipt",accessList:h,blockNumber:e,blockHash:t,chainId:Ne(this.chainId),data:u,from:a,gasLimit:Ne(this.gasLimit),gasPrice:Ne(this.gasPrice),hash:s,maxFeePerGas:Ne(this.maxFeePerGas),maxPriorityFeePerGas:Ne(this.maxPriorityFeePerGas),nonce:c,signature:l,to:o,index:r,type:i,value:Ne(this.value)}}async getBlock(){let e=this.blockNumber;if(e==null){const r=await this.getTransaction();r&&(e=r.blockNumber)}if(e==null)return null;const t=this.provider.getBlock(e);if(t==null)throw new Error("TODO");return t}async getTransaction(){return this.provider.getTransaction(this.hash)}async wait(e,t){const r=e??1,s=t??0;let i=m(this,qe),o=-1,a=i===-1;const c=async()=>{if(a)return null;const{blockNumber:h,nonce:y}=await pi({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(y<this.nonce){i=h;return}if(a)return null;const p=await this.getTransaction();if(!(p&&p.blockNumber!=null))for(o===-1&&(o=i-3,o<m(this,qe)&&(o=m(this,qe)));o<=h;){if(a)return null;const w=await this.provider.getBlock(o,!0);if(w==null)return;for(const v of w)if(v===this.hash)return;for(let v=0;v<w.length;v++){const g=await w.getTransaction(v);if(g.from===this.from&&g.nonce===this.nonce){if(a)return null;const A=await this.provider.getTransactionReceipt(g.hash);if(A==null||h-A.blockNumber+1<r)return;let C="replaced";g.data===this.data&&g.to===this.to&&g.value===this.value?C="repriced":g.data==="0x"&&g.from===g.to&&g.value===Bl&&(C="cancelled"),x(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:C==="replaced"||C==="cancelled",reason:C,replacement:g.replaceableTransaction(i),hash:g.hash,receipt:A})}}o++}},u=await this.provider.getTransactionReceipt(this.hash);if(u){if(await u.confirmations()>=r)return u}else if(await c(),r===0)return null;return await new Promise((h,y)=>{const p=[],w=()=>{p.forEach(g=>g())};if(p.push(()=>{a=!0}),s>0){const g=setTimeout(()=>{w(),y(jr("wait for transaction timeout","TIMEOUT"))},s);p.push(()=>{clearTimeout(g)})}const v=async g=>{await g.confirmations()>=r&&(w(),h(g))};if(p.push(()=>{this.provider.off(this.hash,v)}),this.provider.on(this.hash,v),i>=0){const g=async()=>{try{await c()}catch(A){if(_r(A,"TRANSACTION_REPLACED")){w(),y(A);return}}a||this.provider.once("block",g)};p.push(()=>{this.provider.off("block",g)}),this.provider.once("block",g)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}removedEvent(){return x(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),zi(this)}reorderedEvent(e){return x(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),x(!e||e.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Vi(this,e)}replaceableTransaction(e){_(Number.isInteger(e)&&e>=0,"invalid startBlock","startBlock",e);const t=new Zn(this,this.provider);return P(t,qe,e),t}};let Tn=Zn;qe=new WeakMap;function Vi(n,e){return{orphan:"reorder-transaction",tx:n,other:e}}function zi(n){return{orphan:"drop-transaction",tx:n}}function Vl(n){return{orphan:"drop-log",log:{transactionHash:n.transactionHash,blockHash:n.blockHash,blockNumber:n.blockNumber,address:n.address,data:n.data,topics:Object.freeze(n.topics.slice()),index:n.index}}}class zn extends Vn{constructor(t,r,s){super(t,t.provider);d(this,"interface");d(this,"fragment");d(this,"args");const i=r.decodeEventLog(s,t.data,t.topics);S(this,{args:i,fragment:s,interface:r})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}var It;class zl extends Ml{constructor(t,r,s){super(s,r);F(this,It,void 0);P(this,It,t)}get logs(){return super.logs.map(t=>{const r=t.topics.length?m(this,It).getEvent(t.topics[0]):null;return r?new zn(t,m(this,It),r):t})}}It=new WeakMap;var Qt;class qn extends Tn{constructor(t,r,s){super(s,r);F(this,Qt,void 0);P(this,Qt,t)}async wait(t){const r=await super.wait();return r==null?null:new zl(m(this,Qt),this.provider,r)}}Qt=new WeakMap;class qi extends lu{constructor(t,r,s,i){super(t,r,s);d(this,"log");S(this,{log:i})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}class ql extends qi{constructor(e,t,r,s,i){super(e,t,r,new zn(i,e.interface,s));const o=e.interface.decodeEventLog(s,this.log.data,this.log.topics);S(this,{args:o,fragment:s})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}const js=BigInt(0);function Gi(n){return n&&typeof n.call=="function"}function Ji(n){return n&&typeof n.estimateGas=="function"}function Gn(n){return n&&typeof n.resolveName=="function"}function Wi(n){return n&&typeof n.sendTransaction=="function"}var er;class Gl{constructor(e,t,r){F(this,er,void 0);d(this,"fragment");if(S(this,{fragment:t}),t.inputs.length<r.length)throw new Error("too many arguments");const s=dt(e.runner,"resolveName"),i=Gn(s)?s:null;P(this,er,async function(){const o=await Promise.all(t.inputs.map((a,c)=>r[c]==null?null:a.walkAsync(r[c],(l,h)=>l==="address"?Mn(h,i):h)));return e.interface.encodeFilterTopics(t,o)}())}getTopicFilter(){return m(this,er)}}er=new WeakMap;function Jl(){return Function}function dt(n,e){return n==null?null:typeof n[e]=="function"?n:n.provider&&typeof n.provider[e]=="function"?n.provider:null}function nt(n){return n==null?null:n.provider||null}async function Ki(n,e){const t=Hl(K.dereference(n,"overrides"));return _(t.to==null||(e||[]).indexOf("to")>=0,"cannot override to","overrides.to",t.to),_(t.data==null||(e||[]).indexOf("data")>=0,"cannot override data","overrides.data",t.data),t.from&&(t.from=await Mn(t.from)),t}async function Wl(n,e,t){const r=dt(n,"resolveName"),s=Gn(r)?r:null;return await Promise.all(e.map((i,o)=>i.walkAsync(t[o],(a,c)=>(c=K.dereference(c,a),a==="address"?Mn(c,s):c))))}class Kl{constructor(e){d(this,"_contract");return S(this,{_contract:e}),new Proxy(this,{apply:async(r,s,i)=>await r.send(...i)})}async populateTransaction(e){const t=await Ki(e,["data"]);t.to=await this._contract.getAddress();const r=this._contract.interface,s=r.receive||r.fallback&&r.fallback.payable;return _(s||(t.value||js)===js,"cannot send value to non-payable contract","overrides.value",t.value),_(r.fallback||(t.data||"0x")==="0x","cannot send data to receive-only contract","overrides.data",t.data),t}async staticCall(e){const t=dt(this._contract.runner,"call");x(Gi(t),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const r=await this.populateTransaction(e);try{return await t.call(r)}catch(s){throw yi(s)&&s.data?this._contract.interface.makeError(s.data,r):s}}async send(e){const t=this._contract.runner;x(Wi(t),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const r=await t.sendTransaction(await this.populateTransaction(e)),s=nt(this._contract.runner);return new qn(this._contract.interface,s,r)}async estimateGas(e){const t=dt(this._contract.runner,"estimateGas");return x(Ji(t),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await t.estimateGas(await this.populateTransaction(e))}}class Xl extends Jl(){constructor(t,r){super();d(this,"name","");d(this,"_contract");d(this,"_key");return S(this,{name:t.interface.getFunctionName(r),_contract:t,_key:r}),new Proxy(this,{apply:async(i,o,a)=>i.getFragment(...a).constant?await i.staticCall(...a):await i.send(...a)})}get fragment(){const t=this._contract.interface.getFunction(this._key);return x(t,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment"}),t}getFragment(...t){const r=this._contract.interface.getFunction(this._key,t);return x(r,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment"}),r}async populateTransaction(...t){const r=this.getFragment(...t);let s={};if(r.inputs.length+1===t.length&&(s=await Ki(t.pop())),r.inputs.length!==t.length)throw new Error("internal error: fragment inputs doesn't match arguments; should not happen");const i=await Wl(this._contract.runner,r.inputs,t);return Object.assign({},s,await pi({to:this._contract.getAddress(),data:this._contract.interface.encodeFunctionData(r,i)}))}async staticCall(...t){const r=await this.staticCallResult(...t);return r.length===1?r[0]:r}async send(...t){const r=this._contract.runner;x(Wi(r),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const s=await r.sendTransaction(await this.populateTransaction(...t)),i=nt(this._contract.runner);return new qn(this._contract.interface,i,s)}async estimateGas(...t){const r=dt(this._contract.runner,"estimateGas");return x(Ji(r),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await r.estimateGas(await this.populateTransaction(...t))}async staticCallResult(...t){const r=dt(this._contract.runner,"call");x(Gi(r),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const s=await this.populateTransaction(...t);let i="0x";try{i=await r.call(s)}catch(a){throw yi(a)&&a.data?this._contract.interface.makeError(a.data,s):a}const o=this.getFragment(...t);return this._contract.interface.decodeFunctionResult(o,i)}}function Zl(){return Function}class Yl extends Zl(){constructor(t,r){super();d(this,"name","");d(this,"_contract");d(this,"_key");return S(this,{name:t.interface.getEventName(r),_contract:t,_key:r}),new Proxy(this,{apply:(s,i,o)=>new Gl(t,s.getFragment(...o),o)})}get fragment(){const t=this._contract.interface.getEvent(this._key);return x(t,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment"}),t}getFragment(...t){const r=this._contract.interface.getEvent(this._key,t);return x(r,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment"}),r}}const Tr=Symbol.for("_ethersInternal_contract"),Xi=new WeakMap;function Ql(n,e){Xi.set(n[Tr],e)}function ce(n){return Xi.get(n[Tr])}function eh(n){return n&&typeof n=="object"&&"getTopicFilter"in n&&typeof n.getTopicFilter=="function"&&n.fragment}async function Jn(n,e){let t,r=null;if(Array.isArray(e)){const i=function(o){if(Ge(o,32))return o;const a=n.interface.getEvent(o);return _(a,"unknown fragment","name",o),a.topicHash};t=e.map(o=>o==null?null:Array.isArray(o)?o.map(i):i(o))}else e==="*"?t=[null]:typeof e=="string"?Ge(e,32)?t=[e]:(r=n.interface.getEvent(e),_(r,"unknown fragment","event",e),t=[r.topicHash]):eh(e)?t=await e.getTopicFilter():"fragment"in e?(r=e.fragment,t=[r.topicHash]):_(!1,"unknown event name","event",e);t=t.map(i=>{if(i==null)return null;if(Array.isArray(i)){const o=Array.from(new Set(i.map(a=>a.toLowerCase())).values());return o.length===1?o[0]:(o.sort(),o)}return i.toLowerCase()});const s=t.map(i=>i==null?"null":Array.isArray(i)?i.join("|"):i).join("&");return{fragment:r,tag:s,topics:t}}async function Bt(n,e){const{subs:t}=ce(n);return t.get((await Jn(n,e)).tag)||null}async function Ls(n,e,t){const r=nt(n.runner);x(r,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:e});const{fragment:s,tag:i,topics:o}=await Jn(n,t),{addr:a,subs:c}=ce(n);let u=c.get(i);if(!u){const h={address:a||n,topics:o},y=g=>{let A=s;if(A==null)try{A=n.interface.getEvent(g.topics[0])}catch{}if(A){const C=A,X=s?n.interface.decodeEventLog(s,g.data,g.topics):[];kn(n,t,X,U=>new ql(n,U,t,C,g))}else kn(n,t,[],C=>new qi(n,C,t,g))};let p=[];u={tag:i,listeners:[],start:()=>{p.length||p.push(r.on(h,y))},stop:async()=>{if(p.length==0)return;let g=p;p=[],await Promise.all(g),r.off(h,y)}},c.set(i,u)}return u}let On=Promise.resolve();async function th(n,e,t,r){await On;const s=await Bt(n,e);if(!s)return!1;const i=s.listeners.length;return s.listeners=s.listeners.filter(({listener:o,once:a})=>{const c=Array.from(t);r&&c.push(r(a?null:o));try{o.call(n,...c)}catch{}return!a}),i>0}async function kn(n,e,t,r){try{await On}catch{}const s=th(n,e,t,r);return On=s,await s}const Bs=["then"];var fh;const Sr=class{constructor(e,t,r,s){d(this,"target");d(this,"interface");d(this,"runner");d(this,"filters");d(this,fh);d(this,"fallback");r==null&&(r=null);const i=_n.from(t);S(this,{target:e,runner:r,interface:i}),Object.defineProperty(this,Tr,{value:{}});let o,a=null,c=null;if(s){const h=nt(r);c=new qn(this.interface,h,s)}let u=new Map;if(typeof e=="string")if(Ge(e))a=e,o=Promise.resolve(e);else{const h=dt(r,"resolveName");if(!Gn(h))throw jr("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});o=h.resolveName(e).then(y=>{if(y==null)throw new Error("TODO");return ce(this).addr=y,y})}else o=e.getAddress().then(h=>{if(h==null)throw new Error("TODO");return ce(this).addr=h,h});Ql(this,{addrPromise:o,addr:a,deployTx:c,subs:u});const l=new Proxy({},{get:(h,y,p)=>{if(Bs.indexOf(y)>=0)return Reflect.get(h,y,p);const w=String(y),v=this.getEvent(w);if(v)return v;throw new Error(`unknown contract event: ${w}`)}});return S(this,{filters:l}),S(this,{fallback:i.receive||i.fallback?new Kl(this):null}),new Proxy(this,{get:(h,y,p)=>{if(y in h||Bs.indexOf(y)>=0)return Reflect.get(h,y,p);const w=String(y),v=h.getFunction(w);if(v)return v;throw new Error(`unknown contract method: ${w}`)}})}connect(e){return new Sr(this.target,this.interface,e)}async getAddress(){return await ce(this).addrPromise}async getDeployedCode(){const e=nt(this.runner);x(e,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});const t=await e.getCode(await this.getAddress());return t==="0x"?null:t}async waitForDeployment(){const e=this.deploymentTransaction();if(e)return await e.wait(),this;if(await this.getDeployedCode()!=null)return this;const r=nt(this.runner);return x(r!=null,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise((s,i)=>{const o=async()=>{try{if(await this.getDeployedCode()!=null)return s(this);r.once("block",o)}catch(a){i(a)}};o()})}deploymentTransaction(){return ce(this).deployTx}getFunction(e){return typeof e!="string"&&(e=e.format()),new Xl(this,e)}getEvent(e){return typeof e!="string"&&(e=e.format()),new Yl(this,e)}async queryTransaction(e){throw new Error("@TODO")}async queryFilter(e,t,r){t==null&&(t=0),r==null&&(r="latest");const{addr:s,addrPromise:i}=ce(this),o=s||await i,{fragment:a,topics:c}=await Jn(this,e),u={address:o,topics:c,fromBlock:t,toBlock:r},l=nt(this.runner);return x(l,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await l.getLogs(u)).map(h=>{let y=a;if(y==null)try{y=this.interface.getEvent(h.topics[0])}catch{}return y?new zn(h,this.interface,y):new Vn(h,l)})}async on(e,t){const r=await Ls(this,"on",e);return r.listeners.push({listener:t,once:!1}),r.start(),this}async once(e,t){const r=await Ls(this,"once",e);return r.listeners.push({listener:t,once:!0}),r.start(),this}async emit(e,...t){return await kn(this,e,t,null)}async listenerCount(e){if(e){const s=await Bt(this,e);return s?s.listeners.length:0}const{subs:t}=ce(this);let r=0;for(const{listeners:s}of t.values())r+=s.length;return r}async listeners(e){if(e){const s=await Bt(this,e);return s?s.listeners.map(({listener:i})=>i):[]}const{subs:t}=ce(this);let r=[];for(const{listeners:s}of t.values())r=r.concat(s.map(({listener:i})=>i));return r}async off(e,t){const r=await Bt(this,e);if(!r)return this;if(t){const s=r.listeners.map(({listener:i})=>i).indexOf(t);s>=0&&r.listeners.splice(s,1)}return(t==null||r.listeners.length===0)&&(r.stop(),ce(this).subs.delete(r.tag)),this}async removeAllListeners(e){if(e){const t=await Bt(this,e);if(!t)return this;t.stop(),ce(this).subs.delete(t.tag)}else{const{subs:t}=ce(this);for(const{tag:r,stop:s}of t.values())s(),t.delete(r)}return this}async addListener(e,t){return await this.on(e,t)}async removeListener(e,t){return await this.off(e,t)}static buildClass(e){class t extends Sr{constructor(s,i=null){super(s,e,i)}}return t}static from(e,t,r){return r==null&&(r=null),new this(e,t,r)}};let An=Sr;fh=Tr;function rh(){return An}class nh extends rh(){}class gt{constructor(e){d(this,"data",[]);this.api=e}static create(e){return new gt(e)}getAbiHash(e){if(this.api===void 0)throw new Error("FunctionBuilder must be initialised with api");return this.api.getAbiHash(e)}static readFields(e,t){if(e.length===0)return[];const r=(s,i)=>{console.log(t);const o=t[i].find(a=>a.name===s.function);if(!o)throw new Error("function not in ABI");return o.outputs.map((a,c)=>({source:`function:${s.function}:${i}`,name:a.name,type:a.type,key:`func_${i}_ret_${c}`,index:c}))};return e.map((s,i)=>r(s,i))}async addFunction(e,t,r,s,i){console.log(i);const o=new nh(e,s);return o.interface.encodeFunctionData(t,r),i=i||await this.getAbiHash(s),console.log(i),this.data.push({address:e,bytecode:o.interface.encodeFunctionData(t,r),abiHash:i,function:t}),this}get(){return this.data}static schema(){return ut().of(re({address:T().required(),bytecode:T().matches(/^(0x)?([0-9a-fA-F]{2})*$/).required(),abiHash:T().matches(/^[A-Fa-f0-9]{64}/).required(),function:T().required()}))}}class Me{static version(){return"v1"}static execute(e,t,r="v1"){const s=JSON.parse(JSON.stringify(t));let i=!0;for(const o of s){const a=Me.process(e,o.conditions);i=Me.execLogic(i,o.logic,a)}return i}static process(e,t,r){const s=t.shift();if(!s)return r===void 0?!0:r;const i=Me.execCondition(e,s);if(r===void 0||s.logic==="WHERE")return Me.process(e,t,i);if(s.logic===void 0)throw new Error("Invalid filter. FilterCondition must have logic value");const o=Me.execLogic(r,s.logic,i);return Me.process(e,t,o)}static execLogic(e,t,r){switch(t){case"AND":return e&&r;case"OR":return e||r;case"XOR":return(e||r)&&!(e&&r);case"NAND":return!(e&&r);case"NOR":return!(e&&r);case"WHERE":return r;default:throw new Error(`Invalid Filter. Bad logic value: ${t}`)}}static execCondition(e,t){const r=e[t.key];if(t.type==="Number"){if(typeof t.constant!="number"||typeof r!="number")throw new Error(`Invalid filter. Type miss-match. Type: ${t.type}, Variable: ${t.constant}, Data: ${r}`);const s=r,i=t.constant;switch(t.operation){case"eq":return s===i;case"!eq":return s!==i;case"gt":return s>i;case"gte":return s>=i;case"lt":return s<i;case"lte":return s<=i;default:throw new Error("Invalid Filter. Operation does not match type")}}if(t.type==="String"){if(typeof t.constant!="string"||typeof r!="string")throw new Error(`Invalid filter. Type miss-match. Type: ${t.type}, Variable: ${t.constant}, Data: ${r}`);const s=r,i=t.constant;switch(t.operation){case"contains":return s.includes(i);case"!contains":return!s.includes(i);case"is":return s===i;case"!is":return s!==i;case"isEmpty":return s==="";case"!isEmpty":return s!=="";default:throw new Error("Invalid Filter. Operation does not match type")}}if(t.type==="Address"){if(typeof t.constant!="string"||typeof r!="string")throw new Error(`Invalid filter. Type miss-match. Type: ${t.type}, Variable: ${t.constant}, Data: ${r}`);const s=r,i=t.constant;switch(t.operation){case"contains":return s.toLowerCase().includes(i.toLowerCase());case"!contains":return!s.toLowerCase().includes(i.toLowerCase());case"is":return s.toLowerCase()===i.toLowerCase();case"!is":return s.toLowerCase()!==i.toLowerCase();case"isEmpty":return s==="";case"!isEmpty":return s!=="";default:throw new Error("Invalid Filter. Operation does not match type")}}throw new Error("Invalid Filter. Unknown Type")}}class rr{constructor(){d(this,"groups",[]);this.newGroup("WHERE")}static version(){return Me.version()}static new(){return new rr}newGroup(e){if(this.groups.length!==0&&e==="WHERE")throw new Error('Only the first groups can start with "WHERE"');return this.groups.push({logic:"WHERE",conditions:[]}),this}addCondition(e,t,r,s,i){const o=this.groups[this.groups.length-1];if(o.conditions.length===0&&e!=="WHERE")throw new Error('Logic for the first condition of a group must be "WHERE"');if(o.conditions.length>0&&e==="WHERE")throw new Error('Only the first condition of a group can be "WHERE"');return o.conditions.push({logic:e,key:t,type:r,operation:s,constant:i}),this}finalise(){for(const e of this.groups)if(e.conditions.length===0)throw new Error("Bad Filter. All Groups must have atleast one condition");return this.groups}static schema(){const e=T().oneOf(["AND","OR","XOR","NAND","NOR","WHERE"]).required(),t=re({logic:e,key:T().required(),type:T().oneOf(["String","Address","Number"]).required(),operation:T().when("type",([r],s)=>{switch(r){case"String":return s.oneOf(["contains","!contains","is","!is","isEmpty","!isEmpty"]);case"Address":return s.oneOf(["is","!is","isEmpty","!isEmpty"]);case"Number":return s.oneOf(["eq","!eq","gt","gte","lt","lte"]);default:throw new Error("Invalid Filter Data Type")}}).required(),constant:ii().when("type",([r])=>{switch(r){case"String":return T();case"Address":return T();case"Number":return q();default:throw new Error("Invalid Filter Data Type")}}).required()});return ut().of(re({logic:e,conditions:ut().of(t).required()}))}}const sh="handler_function_call_v2",ih=/^(\d+)([SMHD])$/i,Hs=re({timeBase:T().oneOf(["blocks","time"]).required(),nBlocks:q().min(10).when("timeBase",([n],e)=>n==="blocks"?e.required():e),timePeriod:T().matches(ih,"timePeriod must be of the format n[s|m|h|d], eg 10s for 10 seconds").when("timeBase",([n],e)=>n==="time"?e.required():e),startTime:q().default(0),debounceCount:q().default(0),functions:gt.schema().required(),triggerOn:T().oneOf(["always","filter"]).default("always"),latch:Dr().default(!1),filterVersion:T().when("triggerOn",([n],e)=>n==="filter"?e.default("0"):e.nullable().default(null)).required(),filter:rr.schema().when("triggerOn",([n],e)=>n==="filter"?e.required():e.nullable().default(null)).required()});class sn{static async SimpleToRaw(e,t,r){return{alertType:"event",network:t,nickname:e,type:sh,handler:await this.validate(r)}}static validate(e){return Hs.validateSync(e)}static async convertFromPartial(e){return Hs.validate(e)}static readFields(e,t){const r=[{source:"defaults",label:"Network",type:"string",key:"network"},{source:"defaults",label:"Timestamp",type:"number",key:"timestamp"},{source:"defaults",label:"Time GMT",type:"number",key:"timeStringGMT"},{source:"defaults",label:"Block",type:"number",key:"block"},{source:"defaults",label:"Time Period",type:"number",key:"timePeriod"}];if(!e.functions)return r;const s=e.functions.map(i=>t[i.abiHash]);return console.log(s),[...gt.readFields(e.functions,s),...r]}}const oh="handler_onchain_event_v2",ah=re({addresses:ut().of(T().required()).required(),abiHash:T().required(),event:T().required(),debounceCount:q().default(0),functions:gt.schema().nullable().default(null),triggerOn:T().oneOf(["always","filter"]).default("always"),latch:Dr().default(!1),filterVersion:T().nullable().default(null),filter:rr.schema().when("triggerOn",([n],e)=>n==="filter"?e:e.nullable().default(null)).required()}),ch=n=>n,Zi=(n,e,t=[],r="",s="")=>(n.forEach((i,o)=>{const a=i.type.includes("["),c=a?"_[]":"";if(i.components){const u=i.name===""?`${o}`:i.name;Zi(i.components,e,t,`${r}${o}${c}_`,`${u}${a?"[]":""}.`)}else t.push({source:e,label:`${s}${i.name}`,type:ch(i.type),key:`${r}${o}${c}`,index:o})}),t);class on{static async SimpleToRaw(e,t,r){return{alertType:"event",network:t,nickname:e,type:oh,handler:await this.validate(r)}}static validate(e){return ah.validateSync(e)}static readFields(e,t){let r=[{source:"defaults",label:"Network",type:"string",key:"network"},{source:"defaults",label:"Timestamp",type:"number",key:"timestamp"},{source:"defaults",label:"Time GMT",type:"string",key:"timeStringGMT"},{source:"defaults",label:"Block",type:"number",key:"block"},{source:"defaults",label:"Time Period",type:"string",key:"timePeriod"},{source:"defaults",label:"Block Hash",type:"string",key:"blockHash"},{source:"defaults",label:"Transaction Hash",type:"string",key:"txHash"},{source:"defaults",label:"Event",type:"string",key:"event"}];const s=t[e.abiHash].find(o=>o.name===e.event);if(r=Zi(s.inputs,`${e.event} Event`,r,"param_"),!e.functions)return r;const i=e.functions.map(o=>t[o.abiHash]);return[...gt.readFields(e.functions,i),...r]}}class Ht{static SimpleToRaw(e,t,r,s){switch(t){case"PollFunctionV2":return sn.SimpleToRaw(e,r,s);case"PollFunctionV1":return ms.SimpleToRaw(e,r,s);case"OnchainEventV1":return gs.SimpleToRaw(e,r,s);case"OnchainEventV2":return on.SimpleToRaw(e,r,s);default:throw new Error("Invalid Trigger ID")}}static Validate(e,t){switch(e){case"PollFunctionV2":return sn.validate(t);case"PollFunctionV1":return ms.validate(t);case"OnchainEventV1":return gs.validate(t);case"OnchainEventV2":return on.validate(t);default:throw new Error("Invalid Trigger ID")}}static RawToSimple(e){return{...{error:e.error,error_message:e.error_message,error_timestamp:e.error_timestamp},...e.handler}}static SimpleTypeToRawType(e){switch(e){case"PollFunctionV2":return"handler_function_call_v2";case"PollFunctionV1":return"handler_function_call";case"OnchainEventV1":return"handler_onchain_event";case"OnchainEventV2":return"handler_onchain_event_v2";default:throw new Error("Invalid Trigger ID")}}static RawTypeToSimpleType(e){switch(e){case"handler_function_call_v2":return"PollFunctionV2";case"handler_function_call":return"PollFunctionV1";case"handler_onchain_event":return"OnchainEventV1";case"handler_onchain_event_v2":return"OnchainEventV2";default:throw new Error("Invalid Trigger ID")}}static readFields(e,t,r){switch(e){case"PollFunctionV2":return sn.readFields(t,r);case"OnchainEventV2":return on.readFields(t,r);default:throw new Error("Invalid Trigger ID")}}}const Ms=n=>`https://${n}.functions.supabase.co/`,Vs=n=>`https://${n}.supabase.co/`,zs="fdgtrxmmrtlokhgkvcjz",uh="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImZkZ3RyeG1tcnRsb2toZ2t2Y2p6Iiwicm9sZSI6ImFub24iLCJpYXQiOjE2NzMwODcwNzYsImV4cCI6MTk4ODY2MzA3Nn0.sAMxjlcJSSozBGr-LNcsudyxzUEM9e-UspMHHQLqLr4";class Wn{constructor(e,t){d(this,"headers",{});this.url=e,this.headers={Authorization:`Bearer ${t}`,"Content-Type":"application/json"}}static async create(e){var t,r;if(e.key)throw new Error("Auth by key not yet supported");if(e.email&&e.password){const s=e.projectId?Vs(e.projectId):Vs(zs),i=e.projectId?Ms(e.projectId):Ms(zs),o=e.anonKey?e.anonKey:uh,a=nc(s,o),{data:c,error:u}=await a.auth.signInWithPassword({email:e.email,password:e.password});if(u)throw u;if(((t=c.session)==null?void 0:t.access_token)===void 0)throw new Error("Access token not found");return new Wn(i,(r=c.session)==null?void 0:r.access_token)}else throw new Error("Authentication Required. DeNotify supports either username/password or API key authentication")}async alertHistory(e,t){const r="alert-history",s=t||{};return e&&(s.id=e),Object.keys(s).length>0?await this.request("get",r,{params:t}):await this.request("get",r)}async getAlert(e){const t=(await this.request("get",`alerts/${e}`))[0];return await this.decode(t)}async getAlerts(){const e=await this.request("get","alerts");return Promise.all(e.map(t=>this.decode(t)))}async createAlert(e){const t=await this.encode(e);return await this.request("post","alerts",{body:t})}async updateRawTrigger(e,t){const r=await re({name:T().optional(),enabled:Dr().optional()}).validate(t);await this.request("patch",`alerts/trigger/${e}`,{body:r})}async updateAlert(e,t){const r=[],{trigger:s,notification:i,...o}=t;return(o.name||o.enabled)&&r.push(this.updateRawTrigger(e,o)),s&&r.push(this.updateRawHandler(e,s)),i&&r.push(this.updateRawNotify(e,i)),await Promise.all(r),await this.getAlert(e)}async deleteAlert(e){return await this.request("delete",`alerts/${e}`)}async decode(e){return{id:e.alertId,enabled:e.trigger.enabled,name:e.trigger.nickname,network:e.trigger.network,triggerId:Ht.RawTypeToSimpleType(e.trigger.type),trigger:await Ht.RawToSimple(e.trigger),notificationId:en.RawTypeToSimpleType(e.notification.notify_type),notification:await en.RawToSimple(e.notification)}}async encode(e){return{trigger:await Ht.SimpleToRaw(e.name,e.triggerId,e.network,e.trigger),notification:await en.SimpleToRaw(e.notificationId,e.notification)}}async request(e,t,r={}){const s=new URL(`${this.url}${t}`);if(r.params)for(const a of Object.keys(r.params))s.searchParams.append(a,r.params[a]);const i={method:e,headers:this.headers};return r.body&&(i.body=JSON.stringify(r.body)),(await fetch(s.toString(),i)).json()}readFields(e,t,r){return Ht.readFields(e,t,r)}async getAbi(e,t){return await this.request("get",`abi/${e}/${t}`)}async getAbiHash(e){return(await this.request("post","abi",{body:e})).hash}async updateRawNotify(e,t){return await this.request("patch",`alerts/notify/${e}`,{body:t})}async updateRawHandler(e,t){return await this.request("patch",`alerts/trigger-handler/${e}`,{body:t})}}class Kn{constructor(e){d(this,"network");d(this,"triggerId");d(this,"trigger");d(this,"notificationId");d(this,"notification");this.name=e}static create(e){return new Kn(e)}onNetwork(e){return this.network=e,this}withTrigger(e,t){return this.triggerId=e,this.trigger=Ht.Validate(e,t),this}withNotification(e,t){return this.notificationId=e,this.notification=t,this}async config(){if(this.trigger===void 0||this.triggerId===void 0)throw new Error("Trigger not configured");if(this.notification===void 0||this.notificationId===void 0)throw new Error("Notification not configured");if(this.network===void 0)throw new Error("Network not configured");return{name:this.name,network:this.network,triggerId:this.triggerId,trigger:this.trigger,notificationId:this.notificationId,notification:this.notification}}}const lh=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),hh=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));exports.AlertBuilder=Kn;exports.DeNotifyClient=Wn;exports.FilterBuilder=rr;exports.FunctionBuilder=gt;exports.Notification=hh;exports.Trigger=lh;
4
+ `+(a!==o?`result of cast: ${a}`:""))}return i}_cast(e,t){let r=e===void 0?e:this.transforms.reduce((s,i)=>i.call(this,s,e,this),e);return r===void 0&&(r=this.getDefault()),r}_validate(e,t={},r,s){let{path:i,originalValue:o=e,strict:a=this.spec.strict}=t,c=e;a||(c=this._cast(c,Object.assign({assert:!1},t)));let u=[];for(let l of Object.values(this.internalTests))l&&u.push(l);this.runTests({path:i,value:c,originalValue:o,options:t,tests:u},r,l=>{if(l.length)return s(l,c);this.runTests({path:i,value:c,originalValue:o,options:t,tests:this.tests},r,s)})}runTests(e,t,r){let s=!1,{tests:i,value:o,originalValue:a,path:c,options:u}=e,l=v=>{s||(s=!0,t(v,o))},h=v=>{s||(s=!0,r(v,o))},y=i.length,p=[];if(!y)return h([]);let w={value:o,originalValue:a,path:c,options:u,schema:this};for(let v=0;v<i.length;v++){const g=i[v];g(w,l,function(C){C&&(p=p.concat(C)),--y<=0&&h(p)})}}asNestedTest({key:e,index:t,parent:r,parentPath:s,originalParent:i,options:o}){const a=e??t;if(a==null)throw TypeError("Must include `key` or `index` for nested validations");const c=typeof a=="number";let u=r[a];const l=Object.assign({},o,{strict:!0,parent:r,value:u,originalValue:i[a],key:void 0,[c?"index":"key"]:a,path:c||a.includes(".")?`${s||""}[${u?a:`"${a}"`}]`:(s?`${s}.`:"")+e});return(h,y,p)=>this.resolve(l)._validate(u,l,y,p)}validate(e,t){let r=this.resolve(Object.assign({},t,{value:e}));return new Promise((s,i)=>r._validate(e,t,(o,a)=>{oe.isError(o)&&(o.value=a),i(o)},(o,a)=>{o.length?i(new oe(o,a)):s(a)}))}validateSync(e,t){let r=this.resolve(Object.assign({},t,{value:e})),s;return r._validate(e,Object.assign({},t,{sync:!0}),(i,o)=>{throw oe.isError(i)&&(i.value=o),i},(i,o)=>{if(i.length)throw new oe(i,e);s=o}),s}isValid(e,t){return this.validate(e,t).then(()=>!0,r=>{if(oe.isError(r))return!1;throw r})}isValidSync(e,t){try{return this.validateSync(e,t),!0}catch(r){if(oe.isError(r))return!1;throw r}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):Ot(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){return this.clone({strict:e})}nullability(e,t){const r=this.clone({nullable:e});return r.internalTests.nullable=vt({message:t,name:"nullable",test(s){return s===null?this.schema.spec.nullable:!0}}),r}optionality(e,t){const r=this.clone({optional:e});return r.internalTests.optionality=vt({message:t,name:"optionality",test(s){return s===void 0?this.schema.spec.optional:!0}}),r}optional(){return this.optionality(!0)}defined(e=Se.defined){return this.optionality(!1,e)}nullable(){return this.nullability(!0)}nonNullable(e=Se.notNull){return this.nullability(!1,e)}required(e=Se.required){return this.clone().withMutation(t=>t.nonNullable(e).defined(e))}notRequired(){return this.clone().withMutation(e=>e.nullable().optional())}transform(e){let t=this.clone();return t.transforms.push(e),t}test(...e){let t;if(e.length===1?typeof e[0]=="function"?t={test:e[0]}:t=e[0]:e.length===2?t={name:e[0],test:e[1]}:t={name:e[0],message:e[1],test:e[2]},t.message===void 0&&(t.message=Se.default),typeof t.test!="function")throw new TypeError("`test` is a required parameters");let r=this.clone(),s=vt(t),i=t.exclusive||t.name&&r.exclusiveTests[t.name]===!0;if(t.exclusive&&!t.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return t.name&&(r.exclusiveTests[t.name]=!!t.exclusive),r.tests=r.tests.filter(o=>!(o.OPTIONS.name===t.name&&(i||o.OPTIONS.test===s.OPTIONS.test))),r.tests.push(s),r}when(e,t){!Array.isArray(e)&&typeof e!="string"&&(t=e,e=".");let r=this.clone(),s=si(e).map(i=>new yt(i));return s.forEach(i=>{i.isSibling&&r.deps.push(i.key)}),r.conditions.push(typeof t=="function"?new br(s,t):br.fromOptions(s,t)),r}typeError(e){let t=this.clone();return t.internalTests.typeError=vt({message:e,name:"typeError",test(r){return!he(r)&&!this.schema._typeCheck(r)?this.createError({params:{type:this.schema.type}}):!0}}),t}oneOf(e,t=Se.oneOf){let r=this.clone();return e.forEach(s=>{r._whitelist.add(s),r._blacklist.delete(s)}),r.internalTests.whiteList=vt({message:t,name:"oneOf",skipAbsent:!0,test(s){let i=this.schema._whitelist,o=i.resolveAll(this.resolve);return o.includes(s)?!0:this.createError({params:{values:Array.from(i).join(", "),resolved:o}})}}),r}notOneOf(e,t=Se.notOneOf){let r=this.clone();return e.forEach(s=>{r._blacklist.add(s),r._whitelist.delete(s)}),r.internalTests.blacklist=vt({message:t,name:"notOneOf",test(s){let i=this.schema._blacklist,o=i.resolveAll(this.resolve);return o.includes(s)?this.createError({params:{values:Array.from(i).join(", "),resolved:o}}):!0}}),r}strip(e=!0){let t=this.clone();return t.spec.strip=e,t}describe(e){const t=(e?this.resolve(e):this).clone(),{label:r,meta:s,optional:i,nullable:o}=t.spec;return{meta:s,label:r,optional:i,nullable:o,default:t.getDefault(e),type:t.type,oneOf:t._whitelist.describe(),notOneOf:t._blacklist.describe(),tests:t.tests.map(c=>({name:c.OPTIONS.name,params:c.OPTIONS.params})).filter((c,u,l)=>l.findIndex(h=>h.name===c.name)===u)}}}te.prototype.__isYupSchema__=!0;for(const n of["validate","validateSync"])te.prototype[`${n}At`]=function(e,t,r={}){const{parent:s,parentPath:i,schema:o}=Rc(this,e,t,r.context);return o[n](s&&s[i],Object.assign({},r,{parent:s,path:e}))};for(const n of["equals","is"])te.prototype[n]=te.prototype.oneOf;for(const n of["not","nope"])te.prototype[n]=te.prototype.notOneOf;const $c=()=>!0;function ii(n){return new oi(n)}class oi extends te{constructor(e){super(typeof e=="function"?{type:"mixed",check:e}:Object.assign({type:"mixed",check:$c},e))}}ii.prototype=oi.prototype;function Dr(){return new ai}class ai extends te{constructor(){super({type:"boolean",check(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}}),this.withMutation(()=>{this.transform((e,t,r)=>{if(r.spec.coerce&&!r.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}isTrue(e=dn.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(t){return he(t)||t===!0}})}isFalse(e=dn.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(t){return he(t)||t===!1}})}default(e){return super.default(e)}defined(e){return super.defined(e)}optional(){return super.optional()}required(e){return super.required(e)}notRequired(){return super.notRequired()}nullable(){return super.nullable()}nonNullable(e){return super.nonNullable(e)}strip(e){return super.strip(e)}}Dr.prototype=ai.prototype;let Pc=/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Nc=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,Ic=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,Cc=n=>he(n)||n===n.trim(),Fc={}.toString();function T(){return new ci}class ci extends te{constructor(){super({type:"string",check(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}}),this.withMutation(()=>{this.transform((e,t,r)=>{if(!r.spec.coerce||r.isType(e)||Array.isArray(e))return e;const s=e!=null&&e.toString?e.toString():e;return s===Fc?e:s})})}required(e){return super.required(e).withMutation(t=>t.test({message:e||Se.required,name:"required",skipAbsent:!0,test:r=>!!r.length}))}notRequired(){return super.notRequired().withMutation(e=>(e.tests=e.tests.filter(t=>t.OPTIONS.name!=="required"),e))}length(e,t=de.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},skipAbsent:!0,test(r){return r.length===this.resolve(e)}})}min(e,t=de.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(r){return r.length>=this.resolve(e)}})}max(e,t=de.max){return this.test({name:"max",exclusive:!0,message:t,params:{max:e},skipAbsent:!0,test(r){return r.length<=this.resolve(e)}})}matches(e,t){let r=!1,s,i;return t&&(typeof t=="object"?{excludeEmptyString:r=!1,message:s,name:i}=t:s=t),this.test({name:i||"matches",message:s||de.matches,params:{regex:e},skipAbsent:!0,test:o=>o===""&&r||o.search(e)!==-1})}email(e=de.email){return this.matches(Pc,{name:"email",message:e,excludeEmptyString:!0})}url(e=de.url){return this.matches(Nc,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=de.uuid){return this.matches(Ic,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=de.trim){return this.transform(t=>t!=null?t.trim():t).test({message:e,name:"trim",test:Cc})}lowercase(e=de.lowercase){return this.transform(t=>he(t)?t:t.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,skipAbsent:!0,test:t=>he(t)||t===t.toLowerCase()})}uppercase(e=de.uppercase){return this.transform(t=>he(t)?t:t.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,skipAbsent:!0,test:t=>he(t)||t===t.toUpperCase()})}}T.prototype=ci.prototype;let Dc=n=>n!=+n;function q(){return new ui}class ui extends te{constructor(){super({type:"number",check(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!Dc(e)}}),this.withMutation(()=>{this.transform((e,t,r)=>{if(!r.spec.coerce)return e;let s=e;if(typeof s=="string"){if(s=s.replace(/\s/g,""),s==="")return NaN;s=+s}return r.isType(s)?s:parseFloat(s)})})}min(e,t=He.min){return this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(r){return r>=this.resolve(e)}})}max(e,t=He.max){return this.test({message:t,name:"max",exclusive:!0,params:{max:e},skipAbsent:!0,test(r){return r<=this.resolve(e)}})}lessThan(e,t=He.lessThan){return this.test({message:t,name:"max",exclusive:!0,params:{less:e},skipAbsent:!0,test(r){return r<this.resolve(e)}})}moreThan(e,t=He.moreThan){return this.test({message:t,name:"min",exclusive:!0,params:{more:e},skipAbsent:!0,test(r){return r>this.resolve(e)}})}positive(e=He.positive){return this.moreThan(0,e)}negative(e=He.negative){return this.lessThan(0,e)}integer(e=He.integer){return this.test({name:"integer",message:e,skipAbsent:!0,test:t=>Number.isInteger(t)})}truncate(){return this.transform(e=>he(e)?e:e|0)}round(e){var t;let r=["ceil","floor","round","trunc"];if(e=((t=e)==null?void 0:t.toLowerCase())||"round",e==="trunc")return this.truncate();if(r.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+r.join(", "));return this.transform(s=>he(s)?s:Math[e](s))}}q.prototype=ui.prototype;var Uc=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function jc(n){var e=[1,4,5,6,7,10,11],t=0,r,s;if(s=Uc.exec(n)){for(var i=0,o;o=e[i];++i)s[o]=+s[o]||0;s[2]=(+s[2]||1)-1,s[3]=+s[3]||1,s[7]=s[7]?String(s[7]).substr(0,3):0,(s[8]===void 0||s[8]==="")&&(s[9]===void 0||s[9]==="")?r=+new Date(s[1],s[2],s[3],s[4],s[5],s[6],s[7]):(s[8]!=="Z"&&s[9]!==void 0&&(t=s[10]*60+s[11],s[9]==="+"&&(t=0-t)),r=Date.UTC(s[1],s[2],s[3],s[4],s[5]+t,s[6],s[7]))}else r=Date.parse?Date.parse(n):NaN;return r}let Lc=new Date(""),Bc=n=>Object.prototype.toString.call(n)==="[object Date]";class Ur extends te{constructor(){super({type:"date",check(e){return Bc(e)&&!isNaN(e.getTime())}}),this.withMutation(()=>{this.transform((e,t,r)=>!r.spec.coerce||r.isType(e)?e:(e=jc(e),isNaN(e)?Ur.INVALID_DATE:new Date(e)))})}prepareParam(e,t){let r;if(yt.isRef(e))r=e;else{let s=this.cast(e);if(!this._typeCheck(s))throw new TypeError(`\`${t}\` must be a Date or a value that can be \`cast()\` to a Date`);r=s}return r}min(e,t=fn.min){let r=this.prepareParam(e,"min");return this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(s){return s>=this.resolve(r)}})}max(e,t=fn.max){let r=this.prepareParam(e,"max");return this.test({message:t,name:"max",exclusive:!0,params:{max:e},skipAbsent:!0,test(s){return s<=this.resolve(r)}})}}Ur.INVALID_DATE=Lc;Ur.prototype;function Hc(n,e=[]){let t=[],r=new Set,s=new Set(e.map(([o,a])=>`${o}-${a}`));function i(o,a){let c=ot.split(o)[0];r.add(c),s.has(`${a}-${c}`)||t.push([a,c])}for(const o of Object.keys(n)){let a=n[o];r.add(o),yt.isRef(a)&&a.isSibling?i(a.path,o):Fr(a)&&"deps"in a&&a.deps.forEach(c=>i(c,o))}return wr.array(Array.from(r),t).reverse()}function ds(n,e){let t=1/0;return n.some((r,s)=>{var i;if((i=e.path)!=null&&i.includes(r))return t=s,!0}),t}function li(n){return(e,t)=>ds(n,e)-ds(n,t)}const hi=(n,e,t)=>{if(typeof n!="string")return n;let r=n;try{r=JSON.parse(n)}catch{}return t.isType(r)?r:n};function yr(n){if("fields"in n){const e={};for(const[t,r]of Object.entries(n.fields))e[t]=yr(r);return n.setFields(e)}if(n.type==="array"){const e=n.optional();return e.innerType&&(e.innerType=yr(e.innerType)),e}return n.type==="tuple"?n.optional().clone({types:n.spec.types.map(yr)}):"optional"in n?n.optional():n}const Mc=(n,e)=>{const t=[...ot.normalizePath(e)];if(t.length===1)return t[0]in n;let r=t.pop(),s=ot.getter(ot.join(t),!0)(n);return!!(s&&r in s)};let ps=n=>Object.prototype.toString.call(n)==="[object Object]";function Vc(n,e){let t=Object.keys(n.fields);return Object.keys(e).filter(r=>t.indexOf(r)===-1)}const zc=li([]);function re(n){return new fi(n)}class fi extends te{constructor(e){super({type:"object",check(t){return ps(t)||typeof t=="function"}}),this.fields=Object.create(null),this._sortErrors=zc,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{e&&this.shape(e)})}_cast(e,t={}){var r;let s=super._cast(e,t);if(s===void 0)return this.getDefault();if(!this._typeCheck(s))return s;let i=this.fields,o=(r=t.stripUnknown)!=null?r:this.spec.noUnknown,a=[].concat(this._nodes,Object.keys(s).filter(h=>!this._nodes.includes(h))),c={},u=Object.assign({},t,{parent:c,__validating:t.__validating||!1}),l=!1;for(const h of a){let y=i[h],p=h in s;if(y){let w,v=s[h];u.path=(t.path?`${t.path}.`:"")+h,y=y.resolve({value:v,context:t.context,parent:c});let g=y instanceof te?y.spec:void 0,A=g==null?void 0:g.strict;if(g!=null&&g.strip){l=l||h in s;continue}w=!t.__validating||!A?y.cast(s[h],u):s[h],w!==void 0&&(c[h]=w)}else p&&!o&&(c[h]=s[h]);(p!==h in c||c[h]!==s[h])&&(l=!0)}return l?c:s}_validate(e,t={},r,s){let{from:i=[],originalValue:o=e,recursive:a=this.spec.recursive}=t;t.from=[{schema:this,value:o},...i],t.__validating=!0,t.originalValue=o,super._validate(e,t,r,(c,u)=>{if(!a||!ps(u)){s(c,u);return}o=o||u;let l=[];for(let h of this._nodes){let y=this.fields[h];!y||yt.isRef(y)||l.push(y.asNestedTest({options:t,key:h,parent:u,parentPath:t.path,originalParent:o}))}this.runTests({tests:l,value:u,originalValue:o,options:t},r,h=>{s(h.sort(this._sortErrors).concat(c),u)})})}clone(e){const t=super.clone(e);return t.fields=Object.assign({},this.fields),t._nodes=this._nodes,t._excludedEdges=this._excludedEdges,t._sortErrors=this._sortErrors,t}concat(e){let t=super.concat(e),r=t.fields;for(let[s,i]of Object.entries(this.fields)){const o=r[s];r[s]=o===void 0?i:o}return t.withMutation(s=>s.setFields(r,this._excludedEdges))}_getDefault(){if("default"in this.spec)return super._getDefault();if(!this._nodes.length)return;let e={};return this._nodes.forEach(t=>{const r=this.fields[t];e[t]=r&&"getDefault"in r?r.getDefault():void 0}),e}setFields(e,t){let r=this.clone();return r.fields=e,r._nodes=Hc(e,t),r._sortErrors=li(Object.keys(e)),t&&(r._excludedEdges=t),r}shape(e,t=[]){return this.clone().withMutation(r=>{let s=r._excludedEdges;return t.length&&(Array.isArray(t[0])||(t=[t]),s=[...r._excludedEdges,...t]),r.setFields(Object.assign(r.fields,e),s)})}partial(){const e={};for(const[t,r]of Object.entries(this.fields))e[t]="optional"in r&&r.optional instanceof Function?r.optional():r;return this.setFields(e)}deepPartial(){return yr(this)}pick(e){const t={};for(const r of e)this.fields[r]&&(t[r]=this.fields[r]);return this.setFields(t)}omit(e){const t=Object.assign({},this.fields);for(const r of e)delete t[r];return this.setFields(t)}from(e,t,r){let s=ot.getter(e,!0);return this.transform(i=>{if(!i)return i;let o=i;return Mc(i,e)&&(o=Object.assign({},i),r||delete o[e],o[t]=s(i)),o})}json(){return this.transform(hi)}noUnknown(e=!0,t=pn.noUnknown){typeof e!="boolean"&&(t=e,e=!0);let r=this.test({name:"noUnknown",exclusive:!0,message:t,test(s){if(s==null)return!0;const i=Vc(this.schema,s);return!e||i.length===0||this.createError({params:{unknown:i.join(", ")}})}});return r.spec.noUnknown=e,r}unknown(e=!0,t=pn.noUnknown){return this.noUnknown(!e,t)}transformKeys(e){return this.transform(t=>{if(!t)return t;const r={};for(const s of Object.keys(t))r[e(s)]=t[s];return r})}camelCase(){return this.transformKeys(Qr.camelCase)}snakeCase(){return this.transformKeys(Qr.snakeCase)}constantCase(){return this.transformKeys(e=>Qr.snakeCase(e).toUpperCase())}describe(e){let t=super.describe(e);t.fields={};for(const[s,i]of Object.entries(this.fields)){var r;let o=e;(r=o)!=null&&r.value&&(o=Object.assign({},o,{parent:o.value,value:o.value[s]})),t.fields[s]=i.describe(o)}return t}}re.prototype=fi.prototype;function ut(n){return new di(n)}class di extends te{constructor(e){super({type:"array",check(t){return Array.isArray(t)}}),this.innerType=void 0,this.innerType=e}_cast(e,t){const r=super._cast(e,t);if(!this._typeCheck(r)||!this.innerType)return r;let s=!1;const i=r.map((o,a)=>{const c=this.innerType.cast(o,Object.assign({},t,{path:`${t.path||""}[${a}]`}));return c!==o&&(s=!0),c});return s?i:r}_validate(e,t={},r,s){var i;let o=this.innerType,a=(i=t.recursive)!=null?i:this.spec.recursive;t.originalValue!=null&&t.originalValue,super._validate(e,t,r,(c,u)=>{var l;if(!a||!o||!this._typeCheck(u)){s(c,u);return}let h=new Array(u.length);for(let p=0;p<u.length;p++){var y;h[p]=o.asNestedTest({options:t,index:p,parent:u,parentPath:t.path,originalParent:(y=t.originalValue)!=null?y:e})}this.runTests({value:u,tests:h,originalValue:(l=t.originalValue)!=null?l:e,options:t},r,p=>s(p.concat(c),u))})}clone(e){const t=super.clone(e);return t.innerType=this.innerType,t}json(){return this.transform(hi)}concat(e){let t=super.concat(e);return t.innerType=this.innerType,e.innerType&&(t.innerType=t.innerType?t.innerType.concat(e.innerType):e.innerType),t}of(e){let t=this.clone();if(!Fr(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+at(e));return t.innerType=e,t}length(e,t=pr.length){return this.test({message:t,name:"length",exclusive:!0,params:{length:e},skipAbsent:!0,test(r){return r.length===this.resolve(e)}})}min(e,t){return t=t||pr.min,this.test({message:t,name:"min",exclusive:!0,params:{min:e},skipAbsent:!0,test(r){return r.length>=this.resolve(e)}})}max(e,t){return t=t||pr.max,this.test({message:t,name:"max",exclusive:!0,params:{max:e},skipAbsent:!0,test(r){return r.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,t)=>this._typeCheck(e)?e:t==null?[]:[].concat(t))}compact(e){let t=e?(r,s,i)=>!e(r,s,i):r=>!!r;return this.transform(r=>r!=null?r.filter(t):r)}describe(e){let t=super.describe(e);if(this.innerType){var r;let s=e;(r=s)!=null&&r.value&&(s=Object.assign({},s,{parent:s.value,value:s.value[0]})),t.innerType=this.innerType.describe(e)}return t}}ut.prototype=di.prototype;const ys=re({url:T(),height:q(),width:q()}),qc=re({type:T().default("rich"),title:T(),color:q(),thumbnail:ys,image:ys,url:T()}),Gc=re({url:T().url().required(),username:T(),avatar_url:T().url(),message:T().required(),embed:qc}),Jc="notify_discord_webhook";class Dn{static async SimpleToRaw(e){return{name:"",notify_type:Jc,notify:await Dn.validateCreate(e)}}static validateCreate(e){return Gc.validate(e)}}const Wc=re({email:T().required(),subject:T(),html:T().required()}),Kc="notify_email";class Un{static async SimpleToRaw(e){return{name:"",notify_type:Kc,notify:await Un.validateCreate(e)}}static async validateCreate(e){return Wc.validate(e)}}const Xc=re({clientId:q().required(),content:T().required()}),Zc="notify_telegram";class jn{static async SimpleToRaw(e){return{name:"",notify_type:Zc,notify:await jn.validateCreate(e)}}static validateCreate(e){return Xc.validate(e)}}class en{static async SimpleToRaw(e,t){switch(e){case"Discord":return Dn.SimpleToRaw(t);case"Telegram":return jn.SimpleToRaw(t);case"Email":return Un.SimpleToRaw(t)}}static RawToSimple(e){return{...e.notify,error:e.error,error_message:e.error_message,error_timestamp:e.error_timestamp}}static RawTypeToSimpleType(e){switch(e){case"notify_discord_webhook":return"Discord";case"notify_telegram":return"Telegram";case"notify_email":return"Email"}}static SimpleTypeToRawType(e){switch(e){case"Discord":return"notify_discord_webhook";case"Telegram":return"notify_telegram";case"Email":return"notify_email"}}}const Yc="handler_function_call";class ms{static async SimpleToRaw(e,t,r){return{alertType:"event",network:t,nickname:e,type:Yc,handler:await this.validate(r)}}static validate(e){const t=([s],i)=>s==="true"?i.notRequired():i.required();return re({address:T().required(),abi:ut().required(),nBlocks:q().default(100).min(10).required(),function:T().required(),condition:T().default("true").oneOf([">",">=","<","<=","=","true"]).required(),constant:q().min(0).when("condition",t),responseArgIndex:q().min(0).when("condition",t),responseArgDecimals:q().min(0).when("condition",t)}).validateSync(e)}}const Qc="handler_onchain_event";class gs{static async SimpleToRaw(e,t,r){return{alertType:"event",network:t,nickname:e,type:Qc,handler:await this.validate(r)}}static validate(e){const t=([s],i)=>s==="true"?i.notRequired():i.required();return re({address:T().required(),event:T().required(),abi:ut().required(),condition:T().default("true").oneOf([">",">=","<","<=","=","true"]).required(),constant:q().min(0).when("condition",t),paramsIndex:q().min(0).when("condition",t),paramsDecimals:q().min(0).when("condition",t)}).validateSync(e)}}const eu="6.1.0";function tu(n,e,t){const r=e.split("|").map(i=>i.trim());for(let i=0;i<r.length;i++)switch(e){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof n===e)return}const s=new Error(`invalid value for type ${e}`);throw s.code="INVALID_ARGUMENT",s.argument=`value.${t}`,s.value=n,s}async function pi(n){const e=Object.keys(n);return(await Promise.all(e.map(r=>Promise.resolve(n[r])))).reduce((r,s,i)=>(r[e[i]]=s,r),{})}function S(n,e,t){for(let r in e){let s=e[r];const i=t?t[r]:null;i&&tu(s,i,r),Object.defineProperty(n,r,{enumerable:!0,value:s,writable:!1})}}function kt(n){if(n==null)return"null";if(Array.isArray(n))return"[ "+n.map(kt).join(", ")+" ]";if(n instanceof Uint8Array){const e="0123456789abcdef";let t="0x";for(let r=0;r<n.length;r++)t+=e[n[r]>>4],t+=e[n[r]&15];return t}if(typeof n=="object"&&typeof n.toJSON=="function")return kt(n.toJSON());switch(typeof n){case"boolean":case"symbol":return n.toString();case"bigint":return BigInt(n).toString();case"number":return n.toString();case"string":return JSON.stringify(n);case"object":{const e=Object.keys(n);return e.sort(),"{ "+e.map(t=>`${kt(t)}: ${kt(n[t])}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function _r(n,e){return n&&n.code===e}function yi(n){return _r(n,"CALL_EXCEPTION")}function jr(n,e,t){{const s=[];if(t){if("message"in t||"code"in t||"name"in t)throw new Error(`value will overwrite populated values: ${kt(t)}`);for(const i in t){const o=t[i];s.push(i+"="+kt(o))}}s.push(`code=${e}`),s.push(`version=${eu}`),s.length&&(n+=" ("+s.join(", ")+")")}let r;switch(e){case"INVALID_ARGUMENT":r=new TypeError(n);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":r=new RangeError(n);break;default:r=new Error(n)}return S(r,{code:e}),t&&Object.assign(r,t),r}function x(n,e,t,r){if(!n)throw jr(e,t,r)}function _(n,e,t,r){x(n,e,"INVALID_ARGUMENT",{argument:t,value:r})}function mi(n,e,t){t==null&&(t=""),t&&(t=": "+t),x(n>=e,"missing arguemnt"+t,"MISSING_ARGUMENT",{count:n,expectedCount:e}),x(n<=e,"too many arguemnts"+t,"UNEXPECTED_ARGUMENT",{count:n,expectedCount:e})}const ru=["NFD","NFC","NFKD","NFKC"].reduce((n,e)=>{try{if("test".normalize(e)!=="test")throw new Error("bad");if(e==="NFD"){const t=String.fromCharCode(233).normalize("NFD"),r=String.fromCharCode(101,769);if(t!==r)throw new Error("broken")}n.push(e)}catch{}return n},[]);function nu(n){x(ru.indexOf(n)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:n}})}function Ln(n,e,t){if(t==null&&(t=""),n!==e){let r=t,s="new";t&&(r+=".",s+=" "+t),x(!1,`private constructor; use ${r}from* methods`,"UNSUPPORTED_OPERATION",{operation:s})}}function gi(n,e,t){if(n instanceof Uint8Array)return t?new Uint8Array(n):n;if(typeof n=="string"&&n.match(/^0x([0-9a-f][0-9a-f])*$/i)){const r=new Uint8Array((n.length-2)/2);let s=2;for(let i=0;i<r.length;i++)r[i]=parseInt(n.substring(s,s+2),16),s+=2;return r}_(!1,"invalid BytesLike value",e||"value",n)}function Ue(n,e){return gi(n,e,!1)}function Fe(n,e){return gi(n,e,!0)}function Ge(n,e){return!(typeof n!="string"||!n.match(/^0x[0-9A-Fa-f]*$/)||typeof e=="number"&&n.length!==2+2*e||e===!0&&n.length%2!==0)}const ws="0123456789abcdef";function H(n){const e=Ue(n);let t="0x";for(let r=0;r<e.length;r++){const s=e[r];t+=ws[(s&240)>>4]+ws[s&15]}return t}function Rt(n){return"0x"+n.map(e=>H(e).substring(2)).join("")}function _t(n,e,t){const r=Ue(n);return t!=null&&t>r.length&&x(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:r,length:r.length,offset:t}),H(r.slice(e??0,t??r.length))}function su(n,e,t){const r=Ue(n);x(e>=r.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(r),length:e,offset:e+1});const s=new Uint8Array(e);return s.fill(0),t?s.set(r,e-r.length):s.set(r,0),H(s)}function iu(n,e){return su(n,e,!0)}const Lr=BigInt(0),me=BigInt(1),At=9007199254740991;function ou(n,e){const t=Br(n,"value"),r=BigInt(Le(e,"width"));if(x(t>>r===Lr,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:n}),t>>r-me){const s=(me<<r)-me;return-((~t&s)+me)}return t}function au(n,e){let t=mt(n,"value");const r=BigInt(Le(e,"width")),s=me<<r-me;if(t<Lr){t=-t,x(t<=s,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:n});const i=(me<<r)-me;return(~t&i)+me}else x(t<s,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:n});return t}function ur(n,e){const t=Br(n,"value"),r=BigInt(Le(e,"bits"));return t&(me<<r)-me}function mt(n,e){switch(typeof n){case"bigint":return n;case"number":return _(Number.isInteger(n),"underflow",e||"value",n),_(n>=-At&&n<=At,"overflow",e||"value",n),BigInt(n);case"string":try{if(n==="")throw new Error("empty string");return n[0]==="-"&&n[1]!=="-"?-BigInt(n.substring(1)):BigInt(n)}catch(t){_(!1,`invalid BigNumberish string: ${t.message}`,e||"value",n)}}_(!1,"invalid BigNumberish value",e||"value",n)}function Br(n,e){const t=mt(n,e);return x(t>=Lr,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:n}),t}const bs="0123456789abcdef";function wi(n){if(n instanceof Uint8Array){let e="0x0";for(const t of n)e+=bs[t>>4],e+=bs[t&15];return BigInt(e)}return mt(n)}function Le(n,e){switch(typeof n){case"bigint":return _(n>=-At&&n<=At,"overflow",e||"value",n),Number(n);case"number":return _(Number.isInteger(n),"underflow",e||"value",n),_(n>=-At&&n<=At,"overflow",e||"value",n),n;case"string":try{if(n==="")throw new Error("empty string");return Le(BigInt(n),e)}catch(t){_(!1,`invalid numeric string: ${t.message}`,e||"value",n)}}_(!1,"invalid numeric value",e||"value",n)}function cu(n){return Le(wi(n))}function bi(n,e){let r=Br(n,"value").toString(16);if(e==null)r.length%2&&(r="0"+r);else{const s=Le(e,"width");for(x(s*2>=r.length,`value exceeds width (${s} bits)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:n});r.length<s*2;)r="0"+r}return"0x"+r}function uu(n){const e=Br(n,"value");if(e===Lr)return new Uint8Array([]);let t=e.toString(16);t.length%2&&(t="0"+t);const r=new Uint8Array(t.length/2);for(let s=0;s<r.length;s++){const i=s*2;r[s]=parseInt(t.substring(i,i+2),16)}return r}var $t;class lu{constructor(e,t,r){d(this,"filter");d(this,"emitter");F(this,$t,void 0);P(this,$t,t),S(this,{emitter:e,filter:r})}async removeListener(){m(this,$t)!=null&&await this.emitter.off(this.filter,m(this,$t))}}$t=new WeakMap;function hu(n,e,t,r,s){_(!1,`invalid codepoint at offset ${e}; ${n}`,"bytes",t)}function vi(n,e,t,r,s){if(n==="BAD_PREFIX"||n==="UNEXPECTED_CONTINUE"){let i=0;for(let o=e+1;o<t.length&&t[o]>>6===2;o++)i++;return i}return n==="OVERRUN"?t.length-e-1:0}function fu(n,e,t,r,s){return n==="OVERLONG"?(_(typeof s=="number","invalid bad code point for replacement","badCodepoint",s),r.push(s),0):(r.push(65533),vi(n,e,t))}const du=Object.freeze({error:hu,ignore:vi,replace:fu});function pu(n,e){e==null&&(e=du.error);const t=Ue(n,"bytes"),r=[];let s=0;for(;s<t.length;){const i=t[s++];if(!(i>>7)){r.push(i);continue}let o=null,a=null;if((i&224)===192)o=1,a=127;else if((i&240)===224)o=2,a=2047;else if((i&248)===240)o=3,a=65535;else{(i&192)===128?s+=e("UNEXPECTED_CONTINUE",s-1,t,r):s+=e("BAD_PREFIX",s-1,t,r);continue}if(s-1+o>=t.length){s+=e("OVERRUN",s-1,t,r);continue}let c=i&(1<<8-o-1)-1;for(let u=0;u<o;u++){let l=t[s];if((l&192)!=128){s+=e("MISSING_CONTINUE",s,t,r),c=null;break}c=c<<6|l&63,s++}if(c!==null){if(c>1114111){s+=e("OUT_OF_RANGE",s-1-o,t,r,c);continue}if(c>=55296&&c<=57343){s+=e("UTF16_SURROGATE",s-1-o,t,r,c);continue}if(c<=a){s+=e("OVERLONG",s-1-o,t,r,c);continue}r.push(c)}}return r}function _i(n,e){e!=null&&(nu(e),n=n.normalize(e));let t=[];for(let r=0;r<n.length;r++){const s=n.charCodeAt(r);if(s<128)t.push(s);else if(s<2048)t.push(s>>6|192),t.push(s&63|128);else if((s&64512)==55296){r++;const i=n.charCodeAt(r);_(r<n.length&&(i&64512)===56320,"invalid surrogate pair","str",n);const o=65536+((s&1023)<<10)+(i&1023);t.push(o>>18|240),t.push(o>>12&63|128),t.push(o>>6&63|128),t.push(o&63|128)}else t.push(s>>12|224),t.push(s>>6&63|128),t.push(s&63|128)}return new Uint8Array(t)}function yu(n){return n.map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10&1023)+55296,(e&1023)+56320))).join("")}function mu(n,e){return yu(pu(n,e))}const Z=32,yn=new Uint8Array(Z),gu=["then"],lr={};function hr(n,e){const t=new Error(`deferred error during ABI decoding triggered accessing ${n}`);throw t.error=e,t}var Ve;const zt=class extends Array{constructor(...t){const r=t[0];let s=t[1],i=(t[2]||[]).slice(),o=!0;r!==lr&&(s=t,i=[],o=!1);super(s.length);F(this,Ve,void 0);s.forEach((c,u)=>{this[u]=c});const a=i.reduce((c,u)=>(typeof u=="string"&&c.set(u,(c.get(u)||0)+1),c),new Map);if(P(this,Ve,Object.freeze(s.map((c,u)=>{const l=i[u];return l!=null&&a.get(l)===1?l:null}))),!!o)return Object.freeze(this),new Proxy(this,{get:(c,u,l)=>{if(typeof u=="string"){if(u.match(/^[0-9]+$/)){const y=Le(u,"%index");if(y<0||y>=this.length)throw new RangeError("out of result range");const p=c[y];return p instanceof Error&&hr(`index ${y}`,p),p}if(gu.indexOf(u)>=0)return Reflect.get(c,u,l);const h=c[u];if(h instanceof Function)return function(...y){return h.apply(this===l?c:this,y)};if(!(u in c))return c.getValue.apply(this===l?c:this,[u])}return Reflect.get(c,u,l)}})}toArray(){const t=[];return this.forEach((r,s)=>{r instanceof Error&&hr(`index ${s}`,r),t.push(r)}),t}toObject(){return m(this,Ve).reduce((t,r,s)=>(x(r!=null,"value at index ${ index } unnamed","UNSUPPORTED_OPERATION",{operation:"toObject()"}),r in t||(t[r]=this.getValue(r)),t),{})}slice(t,r){t==null&&(t=0),t<0&&(t+=this.length,t<0&&(t=0)),r==null&&(r=this.length),r<0&&(r+=this.length,r<0&&(r=0)),r>this.length&&(r=this.length);const s=[],i=[];for(let o=t;o<r;o++)s.push(this[o]),i.push(m(this,Ve)[o]);return new zt(lr,s,i)}filter(t,r){const s=[],i=[];for(let o=0;o<this.length;o++){const a=this[o];a instanceof Error&&hr(`index ${o}`,a),t.call(r,a,o,this)&&(s.push(a),i.push(m(this,Ve)[o]))}return new zt(lr,s,i)}getValue(t){const r=m(this,Ve).indexOf(t);if(r===-1)return;const s=this[r];return s instanceof Error&&hr(`property ${JSON.stringify(t)}`,s.error),s}static fromItems(t,r){return new zt(lr,t,r)}};let Er=zt;Ve=new WeakMap;function vs(n){let e=uu(n);return x(e.length<=Z,"value out-of-bounds","BUFFER_OVERRUN",{buffer:e,length:Z,offset:e.length}),e.length!==Z&&(e=Fe(Rt([yn.slice(e.length%Z),e]))),e}class Be{constructor(e,t,r,s){d(this,"name");d(this,"type");d(this,"localName");d(this,"dynamic");S(this,{name:e,type:t,localName:r,dynamic:s},{name:"string",type:"string",localName:"string",dynamic:"boolean"})}_throwError(e,t){_(!1,e,this.localName,t)}}var Ie,st,Pt,mr;class mn{constructor(){F(this,Pt);F(this,Ie,void 0);F(this,st,void 0);P(this,Ie,[]),P(this,st,0)}get data(){return Rt(m(this,Ie))}get length(){return m(this,st)}appendWriter(e){return B(this,Pt,mr).call(this,Fe(e.data))}writeBytes(e){let t=Fe(e);const r=t.length%Z;return r&&(t=Fe(Rt([t,yn.slice(r)]))),B(this,Pt,mr).call(this,t)}writeValue(e){return B(this,Pt,mr).call(this,vs(e))}writeUpdatableValue(){const e=m(this,Ie).length;return m(this,Ie).push(yn),P(this,st,m(this,st)+Z),t=>{m(this,Ie)[e]=vs(t)}}}Ie=new WeakMap,st=new WeakMap,Pt=new WeakSet,mr=function(e){return m(this,Ie).push(e),P(this,st,m(this,st)+e.length),e.length};var ie,le,Or,Ei;const Xn=class{constructor(e,t){F(this,Or);d(this,"allowLoose");F(this,ie,void 0);F(this,le,void 0);S(this,{allowLoose:!!t}),P(this,ie,Fe(e)),P(this,le,0)}get data(){return H(m(this,ie))}get dataLength(){return m(this,ie).length}get consumed(){return m(this,le)}get bytes(){return new Uint8Array(m(this,ie))}subReader(e){return new Xn(m(this,ie).slice(m(this,le)+e),this.allowLoose)}readBytes(e,t){let r=B(this,Or,Ei).call(this,0,e,!!t);return P(this,le,m(this,le)+r.length),r.slice(0,e)}readValue(){return wi(this.readBytes(Z))}readIndex(){return cu(this.readBytes(Z))}};let gn=Xn;ie=new WeakMap,le=new WeakMap,Or=new WeakSet,Ei=function(e,t,r){let s=Math.ceil(t/Z)*Z;return m(this,le)+s>m(this,ie).length&&(this.allowLoose&&r&&m(this,le)+t<=m(this,ie).length?s=t:x(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:Fe(m(this,ie)),length:m(this,ie).length,offset:m(this,le)+s})),m(this,ie).slice(m(this,le),m(this,le)+s)};function wn(n){if(!Number.isSafeInteger(n)||n<0)throw new Error(`Wrong positive integer: ${n}`)}function wu(n){if(typeof n!="boolean")throw new Error(`Expected boolean, not ${n}`)}function xi(n,...e){if(!(n instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(e.length>0&&!e.includes(n.length))throw new TypeError(`Expected Uint8Array of length ${e}, not of length=${n.length}`)}function bu(n){if(typeof n!="function"||typeof n.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");wn(n.outputLen),wn(n.blockLen)}function vu(n,e=!0){if(n.destroyed)throw new Error("Hash instance has been destroyed");if(e&&n.finished)throw new Error("Hash#digest() has already been called")}function _u(n,e){xi(n);const t=e.outputLen;if(n.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}const Et={number:wn,bool:wu,bytes:xi,hash:bu,exists:vu,output:_u};/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Eu=n=>new Uint32Array(n.buffer,n.byteOffset,Math.floor(n.byteLength/4)),xu=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!xu)throw new Error("Non little-endian hardware is not supported");Array.from({length:256},(n,e)=>e.toString(16).padStart(2,"0"));function Tu(n){if(typeof n!="string")throw new TypeError(`utf8ToBytes expected string, got ${typeof n}`);return new TextEncoder().encode(n)}function Bn(n){if(typeof n=="string"&&(n=Tu(n)),!(n instanceof Uint8Array))throw new TypeError(`Expected input type is Uint8Array (got ${typeof n})`);return n}class Ou{clone(){return this._cloneInto()}}function ku(n){const e=r=>n().update(Bn(r)).digest(),t=n();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>n(),e}function Au(n){const e=(r,s)=>n(s).update(Bn(r)).digest(),t=n({});return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=r=>n(r),e}const fr=BigInt(2**32-1),bn=BigInt(32);function Ti(n,e=!1){return e?{h:Number(n&fr),l:Number(n>>bn&fr)}:{h:Number(n>>bn&fr)|0,l:Number(n&fr)|0}}function Su(n,e=!1){let t=new Uint32Array(n.length),r=new Uint32Array(n.length);for(let s=0;s<n.length;s++){const{h:i,l:o}=Ti(n[s],e);[t[s],r[s]]=[i,o]}return[t,r]}const Ru=(n,e)=>BigInt(n>>>0)<<bn|BigInt(e>>>0),$u=(n,e,t)=>n>>>t,Pu=(n,e,t)=>n<<32-t|e>>>t,Nu=(n,e,t)=>n>>>t|e<<32-t,Iu=(n,e,t)=>n<<32-t|e>>>t,Cu=(n,e,t)=>n<<64-t|e>>>t-32,Fu=(n,e,t)=>n>>>t-32|e<<64-t,Du=(n,e)=>e,Uu=(n,e)=>n,ju=(n,e,t)=>n<<t|e>>>32-t,Lu=(n,e,t)=>e<<t|n>>>32-t,Bu=(n,e,t)=>e<<t-32|n>>>64-t,Hu=(n,e,t)=>n<<t-32|e>>>64-t;function Mu(n,e,t,r){const s=(e>>>0)+(r>>>0);return{h:n+t+(s/2**32|0)|0,l:s|0}}const Vu=(n,e,t)=>(n>>>0)+(e>>>0)+(t>>>0),zu=(n,e,t,r)=>e+t+r+(n/2**32|0)|0,qu=(n,e,t,r)=>(n>>>0)+(e>>>0)+(t>>>0)+(r>>>0),Gu=(n,e,t,r,s)=>e+t+r+s+(n/2**32|0)|0,Ju=(n,e,t,r,s)=>(n>>>0)+(e>>>0)+(t>>>0)+(r>>>0)+(s>>>0),Wu=(n,e,t,r,s,i)=>e+t+r+s+i+(n/2**32|0)|0,Gt={fromBig:Ti,split:Su,toBig:Ru,shrSH:$u,shrSL:Pu,rotrSH:Nu,rotrSL:Iu,rotrBH:Cu,rotrBL:Fu,rotr32H:Du,rotr32L:Uu,rotlSH:ju,rotlSL:Lu,rotlBH:Bu,rotlBL:Hu,add:Mu,add3L:Vu,add3H:zu,add4L:qu,add4H:Gu,add5H:Wu,add5L:Ju},[Oi,ki,Ai]=[[],[],[]],Ku=BigInt(0),Lt=BigInt(1),Xu=BigInt(2),Zu=BigInt(7),Yu=BigInt(256),Qu=BigInt(113);for(let n=0,e=Lt,t=1,r=0;n<24;n++){[t,r]=[r,(2*t+3*r)%5],Oi.push(2*(5*r+t)),ki.push((n+1)*(n+2)/2%64);let s=Ku;for(let i=0;i<7;i++)e=(e<<Lt^(e>>Zu)*Qu)%Yu,e&Xu&&(s^=Lt<<(Lt<<BigInt(i))-Lt);Ai.push(s)}const[el,tl]=Gt.split(Ai,!0),_s=(n,e,t)=>t>32?Gt.rotlBH(n,e,t):Gt.rotlSH(n,e,t),Es=(n,e,t)=>t>32?Gt.rotlBL(n,e,t):Gt.rotlSL(n,e,t);function rl(n,e=24){const t=new Uint32Array(10);for(let r=24-e;r<24;r++){for(let o=0;o<10;o++)t[o]=n[o]^n[o+10]^n[o+20]^n[o+30]^n[o+40];for(let o=0;o<10;o+=2){const a=(o+8)%10,c=(o+2)%10,u=t[c],l=t[c+1],h=_s(u,l,1)^t[a],y=Es(u,l,1)^t[a+1];for(let p=0;p<50;p+=10)n[o+p]^=h,n[o+p+1]^=y}let s=n[2],i=n[3];for(let o=0;o<24;o++){const a=ki[o],c=_s(s,i,a),u=Es(s,i,a),l=Oi[o];s=n[l],i=n[l+1],n[l]=c,n[l+1]=u}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)t[a]=n[o+a];for(let a=0;a<10;a++)n[o+a]^=~t[(a+2)%10]&t[(a+4)%10]}n[0]^=el[r],n[1]^=tl[r]}t.fill(0)}class Hr extends Ou{constructor(e,t,r,s=!1,i=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=s,this.rounds=i,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,Et.number(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=Eu(this.state)}keccak(){rl(this.state32,this.rounds),this.posOut=0,this.pos=0}update(e){Et.exists(this);const{blockLen:t,state:r}=this;e=Bn(e);const s=e.length;for(let i=0;i<s;){const o=Math.min(t-this.pos,s-i);for(let a=0;a<o;a++)r[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:t,pos:r,blockLen:s}=this;e[r]^=t,t&128&&r===s-1&&this.keccak(),e[s-1]^=128,this.keccak()}writeInto(e){Et.exists(this,!1),Et.bytes(e),this.finish();const t=this.state,{blockLen:r}=this;for(let s=0,i=e.length;s<i;){this.posOut>=r&&this.keccak();const o=Math.min(r-this.posOut,i-s);e.set(t.subarray(this.posOut,this.posOut+o),s),this.posOut+=o,s+=o}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return Et.number(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(Et.output(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:r,outputLen:s,rounds:i,enableXOF:o}=this;return e||(e=new Hr(t,r,s,o,i)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=r,e.outputLen=s,e.enableXOF=o,e.destroyed=this.destroyed,e}}const We=(n,e,t)=>ku(()=>new Hr(e,n,t));We(6,144,224/8);We(6,136,256/8);We(6,104,384/8);We(6,72,512/8);We(1,144,224/8);const nl=We(1,136,256/8);We(1,104,384/8);We(1,72,512/8);const Si=(n,e,t)=>Au((r={})=>new Hr(e,n,r.dkLen===void 0?t:r.dkLen,!0));Si(31,168,128/8);Si(31,136,256/8);let Ri=!1;const $i=function(n){return nl(n)};let Pi=$i;function Je(n){const e=Ue(n,"data");return H(Pi(e))}Je._=$i;Je.lock=function(){Ri=!0};Je.register=function(n){if(Ri)throw new TypeError("keccak256 is locked");Pi=n};Object.freeze(Je);const sl=BigInt(0),il=BigInt(36);function xs(n){n=n.toLowerCase();const e=n.substring(2).split(""),t=new Uint8Array(40);for(let s=0;s<40;s++)t[s]=e[s].charCodeAt(0);const r=Ue(Je(t));for(let s=0;s<40;s+=2)r[s>>1]>>4>=8&&(e[s]=e[s].toUpperCase()),(r[s>>1]&15)>=8&&(e[s+1]=e[s+1].toUpperCase());return"0x"+e.join("")}const Hn={};for(let n=0;n<10;n++)Hn[String(n)]=String(n);for(let n=0;n<26;n++)Hn[String.fromCharCode(65+n)]=String(10+n);const Ts=15;function ol(n){n=n.toUpperCase(),n=n.substring(4)+n.substring(0,2)+"00";let e=n.split("").map(r=>Hn[r]).join("");for(;e.length>=Ts;){let r=e.substring(0,Ts);e=parseInt(r,10)%97+e.substring(r.length)}let t=String(98-parseInt(e,10)%97);for(;t.length<2;)t="0"+t;return t}const al=function(){const n={};for(let e=0;e<36;e++){const t="0123456789abcdefghijklmnopqrstuvwxyz"[e];n[t]=BigInt(e)}return n}();function cl(n){n=n.toLowerCase();let e=sl;for(let t=0;t<n.length;t++)e=e*il+al[n[t]];return e}function lt(n){if(_(typeof n=="string","invalid address","address",n),n.match(/^(0x)?[0-9a-fA-F]{40}$/)){n.startsWith("0x")||(n="0x"+n);const e=xs(n);return _(!n.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||e===n,"bad address checksum","address",n),e}if(n.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){_(n.substring(2,4)===ol(n),"bad icap checksum","address",n);let e=cl(n.substring(4)).toString(16);for(;e.length<40;)e="0"+e;return xs("0x"+e)}_(!1,"invalid address","address",n)}function ul(n){return n&&typeof n.getAddress=="function"}async function tn(n,e){const t=await e;return(t==null||t==="0x0000000000000000000000000000000000000000")&&(x(typeof n!="string","unconfigured name","UNCONFIGURED_NAME",{value:n}),_(!1,"invalid AddressLike value; did not resolve to a value address","target",n)),lt(t)}function Mn(n,e){if(typeof n=="string")return n.match(/^0x[0-9a-f]{40}$/i)?lt(n):(x(e!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),tn(n,e.resolveName(n)));if(ul(n))return tn(n,n.getAddress());if(n&&typeof n.then=="function")return tn(n,n);_(!1,"unsupported addressable value","target",n)}const Re={};function E(n,e){let t=!1;return e<0&&(t=!0,e*=-1),new K(Re,`${t?"":"u"}int${e}`,n,{signed:t,width:e})}function R(n,e){return new K(Re,`bytes${e||""}`,n,{size:e})}const Os=Symbol.for("_ethers_typed");var it;const $e=class{constructor(e,t,r,s){d(this,"type");d(this,"value");F(this,it,void 0);d(this,"_typedSymbol");s==null&&(s=null),Ln(Re,e,"Typed"),S(this,{_typedSymbol:Os,type:t,value:r}),P(this,it,s),this.format()}format(){if(this.type==="array")throw new Error("");if(this.type==="dynamicArray")throw new Error("");return this.type==="tuple"?`tuple(${this.value.map(e=>e.format()).join(",")})`:this.type}defaultValue(){return 0}minValue(){return 0}maxValue(){return 0}isBigInt(){return!!this.type.match(/^u?int[0-9]+$/)}isData(){return this.type.startsWith("bytes")}isString(){return this.type==="string"}get tupleName(){if(this.type!=="tuple")throw TypeError("not a tuple");return m(this,it)}get arrayLength(){if(this.type!=="array")throw TypeError("not an array");return m(this,it)===!0?-1:m(this,it)===!1?this.value.length:null}static from(e,t){return new $e(Re,e,t)}static uint8(e){return E(e,8)}static uint16(e){return E(e,16)}static uint24(e){return E(e,24)}static uint32(e){return E(e,32)}static uint40(e){return E(e,40)}static uint48(e){return E(e,48)}static uint56(e){return E(e,56)}static uint64(e){return E(e,64)}static uint72(e){return E(e,72)}static uint80(e){return E(e,80)}static uint88(e){return E(e,88)}static uint96(e){return E(e,96)}static uint104(e){return E(e,104)}static uint112(e){return E(e,112)}static uint120(e){return E(e,120)}static uint128(e){return E(e,128)}static uint136(e){return E(e,136)}static uint144(e){return E(e,144)}static uint152(e){return E(e,152)}static uint160(e){return E(e,160)}static uint168(e){return E(e,168)}static uint176(e){return E(e,176)}static uint184(e){return E(e,184)}static uint192(e){return E(e,192)}static uint200(e){return E(e,200)}static uint208(e){return E(e,208)}static uint216(e){return E(e,216)}static uint224(e){return E(e,224)}static uint232(e){return E(e,232)}static uint240(e){return E(e,240)}static uint248(e){return E(e,248)}static uint256(e){return E(e,256)}static uint(e){return E(e,256)}static int8(e){return E(e,-8)}static int16(e){return E(e,-16)}static int24(e){return E(e,-24)}static int32(e){return E(e,-32)}static int40(e){return E(e,-40)}static int48(e){return E(e,-48)}static int56(e){return E(e,-56)}static int64(e){return E(e,-64)}static int72(e){return E(e,-72)}static int80(e){return E(e,-80)}static int88(e){return E(e,-88)}static int96(e){return E(e,-96)}static int104(e){return E(e,-104)}static int112(e){return E(e,-112)}static int120(e){return E(e,-120)}static int128(e){return E(e,-128)}static int136(e){return E(e,-136)}static int144(e){return E(e,-144)}static int152(e){return E(e,-152)}static int160(e){return E(e,-160)}static int168(e){return E(e,-168)}static int176(e){return E(e,-176)}static int184(e){return E(e,-184)}static int192(e){return E(e,-192)}static int200(e){return E(e,-200)}static int208(e){return E(e,-208)}static int216(e){return E(e,-216)}static int224(e){return E(e,-224)}static int232(e){return E(e,-232)}static int240(e){return E(e,-240)}static int248(e){return E(e,-248)}static int256(e){return E(e,-256)}static int(e){return E(e,-256)}static bytes1(e){return R(e,1)}static bytes2(e){return R(e,2)}static bytes3(e){return R(e,3)}static bytes4(e){return R(e,4)}static bytes5(e){return R(e,5)}static bytes6(e){return R(e,6)}static bytes7(e){return R(e,7)}static bytes8(e){return R(e,8)}static bytes9(e){return R(e,9)}static bytes10(e){return R(e,10)}static bytes11(e){return R(e,11)}static bytes12(e){return R(e,12)}static bytes13(e){return R(e,13)}static bytes14(e){return R(e,14)}static bytes15(e){return R(e,15)}static bytes16(e){return R(e,16)}static bytes17(e){return R(e,17)}static bytes18(e){return R(e,18)}static bytes19(e){return R(e,19)}static bytes20(e){return R(e,20)}static bytes21(e){return R(e,21)}static bytes22(e){return R(e,22)}static bytes23(e){return R(e,23)}static bytes24(e){return R(e,24)}static bytes25(e){return R(e,25)}static bytes26(e){return R(e,26)}static bytes27(e){return R(e,27)}static bytes28(e){return R(e,28)}static bytes29(e){return R(e,29)}static bytes30(e){return R(e,30)}static bytes31(e){return R(e,31)}static bytes32(e){return R(e,32)}static address(e){return new $e(Re,"address",e)}static bool(e){return new $e(Re,"bool",!!e)}static bytes(e){return new $e(Re,"bytes",e)}static string(e){return new $e(Re,"string",e)}static array(e,t){throw new Error("not implemented yet")}static tuple(e,t){throw new Error("not implemented yet")}static overrides(e){return new $e(Re,"overrides",Object.assign({},e))}static isTyped(e){return e&&e._typedSymbol===Os}static dereference(e,t){if($e.isTyped(e)){if(e.type!==t)throw new Error(`invalid type: expecetd ${t}, got ${e.type}`);return e.value}return e}};let K=$e;it=new WeakMap;class ll extends Be{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){let r=K.dereference(t,"string");try{r=lt(r)}catch(s){return this._throwError(s.message,t)}return e.writeValue(r)}decode(e){return lt(bi(e.readValue(),20))}}class hl extends Be{constructor(t){super(t.name,t.type,"_",t.dynamic);d(this,"coder");this.coder=t}defaultValue(){return this.coder.defaultValue()}encode(t,r){return this.coder.encode(t,r)}decode(t){return this.coder.decode(t)}}function Ni(n,e,t){let r=[];if(Array.isArray(t))r=t;else if(t&&typeof t=="object"){let c={};r=e.map(u=>{const l=u.localName;return x(l,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:u},value:t}),x(!c[l],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:u},value:t}),c[l]=!0,t[l]})}else _(!1,"invalid tuple value","tuple",t);_(e.length===r.length,"types/value length mismatch","tuple",t);let s=new mn,i=new mn,o=[];e.forEach((c,u)=>{let l=r[u];if(c.dynamic){let h=i.length;c.encode(i,l);let y=s.writeUpdatableValue();o.push(p=>{y(p+h)})}else c.encode(s,l)}),o.forEach(c=>{c(s.length)});let a=n.appendWriter(s);return a+=n.appendWriter(i),a}function Ii(n,e){let t=[],r=[],s=n.subReader(0);return e.forEach(i=>{let o=null;if(i.dynamic){let a=n.readIndex(),c=s.subReader(a);try{o=i.decode(c)}catch(u){if(_r(u,"BUFFER_OVERRUN"))throw u;o=u,o.baseType=i.name,o.name=i.localName,o.type=i.type}}else try{o=i.decode(n)}catch(a){if(_r(a,"BUFFER_OVERRUN"))throw a;o=a,o.baseType=i.name,o.name=i.localName,o.type=i.type}if(o==null)throw new Error("investigate");t.push(o),r.push(i.localName||null)}),Er.fromItems(t,r)}class fl extends Be{constructor(t,r,s){const i=t.type+"["+(r>=0?r:"")+"]",o=r===-1||t.dynamic;super("array",i,s,o);d(this,"coder");d(this,"length");S(this,{coder:t,length:r})}defaultValue(){const t=this.coder.defaultValue(),r=[];for(let s=0;s<this.length;s++)r.push(t);return r}encode(t,r){const s=K.dereference(r,"array");Array.isArray(s)||this._throwError("expected array value",s);let i=this.length;i===-1&&(i=s.length,t.writeValue(s.length)),mi(s.length,i,"coder array"+(this.localName?" "+this.localName:""));let o=[];for(let a=0;a<s.length;a++)o.push(this.coder);return Ni(t,o,s)}decode(t){let r=this.length;r===-1&&(r=t.readIndex(),x(r*Z<=t.dataLength,"insufficient data length","BUFFER_OVERRUN",{buffer:t.bytes,offset:r*Z,length:t.dataLength}));let s=[];for(let i=0;i<r;i++)s.push(new hl(this.coder));return Ii(t,s)}}class dl extends Be{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){const r=K.dereference(t,"bool");return e.writeValue(r?1:0)}decode(e){return!!e.readValue()}}class Ci extends Be{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=Fe(t);let r=e.writeValue(t.length);return r+=e.writeBytes(t),r}decode(e){return e.readBytes(e.readIndex(),!0)}}class pl extends Ci{constructor(e){super("bytes",e)}decode(e){return H(super.decode(e))}}class yl extends Be{constructor(t,r){let s="bytes"+String(t);super(s,s,r,!1);d(this,"size");S(this,{size:t},{size:"number"})}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+this.size*2)}encode(t,r){let s=Fe(K.dereference(r,this.type));return s.length!==this.size&&this._throwError("incorrect data length",r),t.writeBytes(s)}decode(t){return H(t.readBytes(this.size))}}const ml=new Uint8Array([]);class gl extends Be{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return t!=null&&this._throwError("not null",t),e.writeBytes(ml)}decode(e){return e.readBytes(0),null}}const wl=BigInt(0),bl=BigInt(1),vl=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class _l extends Be{constructor(t,r,s){const i=(r?"int":"uint")+t*8;super(i,i,s,!1);d(this,"size");d(this,"signed");S(this,{size:t,signed:r},{size:"number",signed:"boolean"})}defaultValue(){return 0}encode(t,r){let s=mt(K.dereference(r,this.type)),i=ur(vl,Z*8);if(this.signed){let o=ur(i,this.size*8-1);(s>o||s<-(o+bl))&&this._throwError("value out-of-bounds",r),s=au(s,8*Z)}else(s<wl||s>ur(i,this.size*8))&&this._throwError("value out-of-bounds",r);return t.writeValue(s)}decode(t){let r=ur(t.readValue(),this.size*8);return this.signed&&(r=ou(r,this.size*8)),r}}class El extends Ci{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,_i(K.dereference(t,"string")))}decode(e){return mu(super.decode(e))}}class dr extends Be{constructor(t,r){let s=!1;const i=[];t.forEach(a=>{a.dynamic&&(s=!0),i.push(a.type)});const o="tuple("+i.join(",")+")";super("tuple",o,r,s);d(this,"coders");S(this,{coders:Object.freeze(t.slice())})}defaultValue(){const t=[];this.coders.forEach(s=>{t.push(s.defaultValue())});const r=this.coders.reduce((s,i)=>{const o=i.localName;return o&&(s[o]||(s[o]=0),s[o]++),s},{});return this.coders.forEach((s,i)=>{let o=s.localName;!o||r[o]!==1||(o==="length"&&(o="_length"),t[o]==null&&(t[o]=t[i]))}),Object.freeze(t)}encode(t,r){const s=K.dereference(r,"tuple");return Ni(t,this.coders,s)}decode(t){return Ii(t,this.coders)}}function Jt(n){return Je(_i(n))}function rn(n,e){return{address:lt(n),storageKeys:e.map((t,r)=>(_(Ge(t,32),"invalid slot",`storageKeys[${r}]`,t),t.toLowerCase()))}}function xl(n){if(Array.isArray(n))return n.map((t,r)=>Array.isArray(t)?(_(t.length===2,"invalid slot set",`value[${r}]`,t),rn(t[0],t[1])):(_(t!=null&&typeof t=="object","invalid address-slot set","value",n),rn(t.address,t.storageKeys)));_(n!=null&&typeof n=="object","invalid access list","value",n);const e=Object.keys(n).map(t=>{const r=n[t].reduce((s,i)=>(s[i]=!0,s),{});return rn(t,Object.keys(r).sort())});return e.sort((t,r)=>t.address.localeCompare(r.address)),e}function Y(n){const e=new Set;return n.forEach(t=>e.add(t)),Object.freeze(e)}const Fi="constant external internal payable private public pure view",Tl=Y(Fi.split(" ")),Di="constructor error event fallback function receive struct",Ui=Y(Di.split(" ")),ji="calldata memory storage payable indexed",Ol=Y(ji.split(" ")),kl="tuple returns",Al=[Di,ji,kl,Fi].join(" "),Sl=Y(Al.split(" ")),Rl={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},$l=new RegExp("^(\\s*)"),Pl=new RegExp("^([0-9]+)"),Nl=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),Li=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),Bi=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$");var z,pe,Kt,vn;const kr=class{constructor(e){F(this,Kt);F(this,z,void 0);F(this,pe,void 0);P(this,z,0),P(this,pe,e.slice())}get offset(){return m(this,z)}get length(){return m(this,pe).length-m(this,z)}clone(){return new kr(m(this,pe))}reset(){P(this,z,0)}popKeyword(e){const t=this.peek();if(t.type!=="KEYWORD"||!e.has(t.text))throw new Error(`expected keyword ${t.text}`);return this.pop().text}popType(e){if(this.peek().type!==e)throw new Error(`expected ${e}; got ${JSON.stringify(this.peek())}`);return this.pop().text}popParen(){const e=this.peek();if(e.type!=="OPEN_PAREN")throw new Error("bad start");const t=B(this,Kt,vn).call(this,m(this,z)+1,e.match+1);return P(this,z,e.match+1),t}popParams(){const e=this.peek();if(e.type!=="OPEN_PAREN")throw new Error("bad start");const t=[];for(;m(this,z)<e.match-1;){const r=this.peek().linkNext;t.push(B(this,Kt,vn).call(this,m(this,z)+1,r)),P(this,z,r)}return P(this,z,e.match+1),t}peek(){if(m(this,z)>=m(this,pe).length)throw new Error("out-of-bounds");return m(this,pe)[m(this,z)]}peekKeyword(e){const t=this.peekType("KEYWORD");return t!=null&&e.has(t)?t:null}peekType(e){if(this.length===0)return null;const t=this.peek();return t.type===e?t.text:null}pop(){const e=this.peek();return Yn(this,z)._++,e}toString(){const e=[];for(let t=m(this,z);t<m(this,pe).length;t++){const r=m(this,pe)[t];e.push(`${r.type}:${r.text}`)}return`<TokenString ${e.join(" ")}>`}};let ge=kr;z=new WeakMap,pe=new WeakMap,Kt=new WeakSet,vn=function(e=0,t=0){return new kr(m(this,pe).slice(e,t).map(r=>Object.freeze(Object.assign({},r,{match:r.match-e,linkBack:r.linkBack-e,linkNext:r.linkNext-e}))))};function Ke(n){const e=[],t=o=>{const a=i<n.length?JSON.stringify(n[i]):"$EOI";throw new Error(`invalid token ${a} at ${i}: ${o}`)};let r=[],s=[],i=0;for(;i<n.length;){let o=n.substring(i),a=o.match($l);a&&(i+=a[1].length,o=n.substring(i));const c={depth:r.length,linkBack:-1,linkNext:-1,match:-1,type:"",text:"",offset:i,value:-1};e.push(c);let u=Rl[o[0]]||"";if(u){if(c.type=u,c.text=o[0],i++,u==="OPEN_PAREN")r.push(e.length-1),s.push(e.length-1);else if(u=="CLOSE_PAREN")r.length===0&&t("no matching open bracket"),c.match=r.pop(),e[c.match].match=e.length-1,c.depth--,c.linkBack=s.pop(),e[c.linkBack].linkNext=e.length-1;else if(u==="COMMA")c.linkBack=s.pop(),e[c.linkBack].linkNext=e.length-1,s.push(e.length-1);else if(u==="OPEN_BRACKET")c.type="BRACKET";else if(u==="CLOSE_BRACKET"){let l=e.pop().text;if(e.length>0&&e[e.length-1].type==="NUMBER"){const h=e.pop().text;l=h+l,e[e.length-1].value=Le(h)}if(e.length===0||e[e.length-1].type!=="BRACKET")throw new Error("missing opening bracket");e[e.length-1].text+=l}continue}if(a=o.match(Nl),a){if(c.text=a[1],i+=c.text.length,Sl.has(c.text)){c.type="KEYWORD";continue}if(c.text.match(Bi)){c.type="TYPE";continue}c.type="ID";continue}if(a=o.match(Pl),a){c.text=a[1],c.type="NUMBER",i+=c.text.length;continue}throw new Error(`unexpected token ${JSON.stringify(o[0])} at position ${i}`)}return new ge(e.map(o=>Object.freeze(o)))}function ks(n,e){let t=[];for(const r in e.keys())n.has(r)&&t.push(r);if(t.length>1)throw new Error(`conflicting types: ${t.join(", ")}`)}function Mr(n,e){if(e.peekKeyword(Ui)){const t=e.pop().text;if(t!==n)throw new Error(`expected ${n}, got ${t}`)}return e.popType("ID")}function je(n,e){const t=new Set;for(;;){const r=n.peekType("KEYWORD");if(r==null||e&&!e.has(r))break;if(n.pop(),t.has(r))throw new Error(`duplicate keywords: ${JSON.stringify(r)}`);t.add(r)}return Object.freeze(t)}function Hi(n){let e=je(n,Tl);return ks(e,Y("constant payable nonpayable".split(" "))),ks(e,Y("pure view payable nonpayable".split(" "))),e.has("view")?"view":e.has("pure")?"pure":e.has("payable")?"payable":e.has("nonpayable")?"nonpayable":e.has("constant")?"view":"nonpayable"}function De(n,e){return n.popParams().map(t=>G.from(t,e))}function Mi(n){if(n.peekType("AT")){if(n.pop(),n.peekType("NUMBER"))return mt(n.pop().text);throw new Error("invalid gas")}return null}function ht(n){if(n.length)throw new Error(`unexpected tokens: ${n.toString()}`)}const Il=new RegExp(/^(.*)\[([0-9]*)\]$/);function As(n){const e=n.match(Bi);if(_(e,"invalid type","type",n),n==="uint")return"uint256";if(n==="int")return"int256";if(e[2]){const t=parseInt(e[2]);_(t!==0&&t<=32,"invalid bytes length","type",n)}else if(e[3]){const t=parseInt(e[3]);_(t!==0&&t<=256&&t%8===0,"invalid numeric width","type",n)}return n}const j={},ne=Symbol.for("_ethers_internal"),Ss="_ParamTypeInternal",Rs="_ErrorInternal",$s="_EventInternal",Ps="_ConstructorInternal",Ns="_FallbackInternal",Is="_FunctionInternal",Cs="_StructInternal";var Nt,gr;const ue=class{constructor(e,t,r,s,i,o,a,c){F(this,Nt);d(this,"name");d(this,"type");d(this,"baseType");d(this,"indexed");d(this,"components");d(this,"arrayLength");d(this,"arrayChildren");if(Ln(e,j,"ParamType"),Object.defineProperty(this,ne,{value:Ss}),o&&(o=Object.freeze(o.slice())),s==="array"){if(a==null||c==null)throw new Error("")}else if(a!=null||c!=null)throw new Error("");if(s==="tuple"){if(o==null)throw new Error("")}else if(o!=null)throw new Error("");S(this,{name:t,type:r,baseType:s,indexed:i,components:o,arrayLength:a,arrayChildren:c})}format(e){if(e==null&&(e="sighash"),e==="json"){let r={type:this.baseType==="tuple"?"tuple":this.type,name:this.name||void 0};return typeof this.indexed=="boolean"&&(r.indexed=this.indexed),this.isTuple()&&(r.components=this.components.map(s=>JSON.parse(s.format(e)))),JSON.stringify(r)}let t="";return this.isArray()?(t+=this.arrayChildren.format(e),t+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`):this.isTuple()?(e!=="sighash"&&(t+=this.type),t+="("+this.components.map(r=>r.format(e)).join(e==="full"?", ":",")+")"):t+=this.type,e!=="sighash"&&(this.indexed===!0&&(t+=" indexed"),e==="full"&&this.name&&(t+=" "+this.name)),t}isArray(){return this.baseType==="array"}isTuple(){return this.baseType==="tuple"}isIndexable(){return this.indexed!=null}walk(e,t){if(this.isArray()){if(!Array.isArray(e))throw new Error("invalid array value");if(this.arrayLength!==-1&&e.length!==this.arrayLength)throw new Error("array is wrong length");const r=this;return e.map(s=>r.arrayChildren.walk(s,t))}if(this.isTuple()){if(!Array.isArray(e))throw new Error("invalid tuple value");if(e.length!==this.components.length)throw new Error("array is wrong length");const r=this;return e.map((s,i)=>r.components[i].walk(s,t))}return t(this.type,e)}async walkAsync(e,t){const r=[],s=[e];return B(this,Nt,gr).call(this,r,e,t,i=>{s[0]=i}),r.length&&await Promise.all(r),s[0]}static from(e,t){if(ue.isParamType(e))return e;if(typeof e=="string")return ue.from(Ke(e),t);if(e instanceof ge){let a="",c="",u=null;je(e,Y(["tuple"])).has("tuple")||e.peekType("OPEN_PAREN")?(c="tuple",u=e.popParams().map(v=>ue.from(v)),a=`tuple(${u.map(v=>v.format()).join(",")})`):(a=As(e.popType("TYPE")),c=a);let l=null,h=null;for(;e.length&&e.peekType("BRACKET");){const v=e.pop();l=new ue(j,"",a,c,null,u,h,l),h=v.value,a+=v.text,c="array",u=null}let y=null;if(je(e,Ol).has("indexed")){if(!t)throw new Error("");y=!0}const w=e.peekType("ID")?e.pop().text:"";if(e.length)throw new Error("leftover tokens");return new ue(j,w,a,c,y,u,h,l)}const r=e.name;_(!r||typeof r=="string"&&r.match(Li),"invalid name","obj.name",r);let s=e.indexed;s!=null&&(_(t,"parameter cannot be indexed","obj.indexed",e.indexed),s=!!s);let i=e.type,o=i.match(Il);if(o){const a=parseInt(o[2]||"-1"),c=ue.from({type:o[1],components:e.components});return new ue(j,r||"",i,"array",s,null,a,c)}if(i==="tuple"||i.startsWith("tuple(")||i.startsWith("(")){const a=e.components!=null?e.components.map(u=>ue.from(u)):null;return new ue(j,r||"",i,"tuple",s,a,null,null)}return i=As(e.type),new ue(j,r||"",i,i,s,null,null,null)}static isParamType(e){return e&&e[ne]===Ss}};let G=ue;Nt=new WeakSet,gr=function(e,t,r,s){if(this.isArray()){if(!Array.isArray(t))throw new Error("invalid array value");if(this.arrayLength!==-1&&t.length!==this.arrayLength)throw new Error("array is wrong length");const o=this.arrayChildren,a=t.slice();a.forEach((c,u)=>{var l;B(l=o,Nt,gr).call(l,e,c,r,h=>{a[u]=h})}),s(a);return}if(this.isTuple()){const o=this.components;let a;if(Array.isArray(t))a=t.slice();else{if(t==null||typeof t!="object")throw new Error("invalid tuple value");a=o.map(c=>{if(!c.name)throw new Error("cannot use object value with unnamed components");if(!(c.name in t))throw new Error(`missing value for component ${c.name}`);return t[c.name]})}if(a.length!==this.components.length)throw new Error("array is wrong length");a.forEach((c,u)=>{var l;B(l=o[u],Nt,gr).call(l,e,c,r,h=>{a[u]=h})}),s(a);return}const i=r(this.type,t);i.then?e.push(async function(){s(await i)}()):s(i)};class ft{constructor(e,t,r){d(this,"type");d(this,"inputs");Ln(e,j,"Fragment"),r=Object.freeze(r.slice()),S(this,{type:t,inputs:r})}static from(e){if(typeof e=="string"){try{ft.from(JSON.parse(e))}catch{}return ft.from(Ke(e))}if(e instanceof ge)switch(e.peekKeyword(Ui)){case"constructor":return Ce.from(e);case"error":return ee.from(e);case"event":return Oe.from(e);case"fallback":case"receive":return Pe.from(e);case"function":return ke.from(e);case"struct":return ct.from(e)}else if(typeof e=="object"){switch(e.type){case"constructor":return Ce.from(e);case"error":return ee.from(e);case"event":return Oe.from(e);case"fallback":case"receive":return Pe.from(e);case"function":return ke.from(e);case"struct":return ct.from(e)}x(!1,`unsupported type: ${e.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}_(!1,"unsupported frgament object","obj",e)}static isConstructor(e){return Ce.isFragment(e)}static isError(e){return ee.isFragment(e)}static isEvent(e){return Oe.isFragment(e)}static isFunction(e){return ke.isFragment(e)}static isStruct(e){return ct.isFragment(e)}}class Vr extends ft{constructor(t,r,s,i){super(t,r,i);d(this,"name");_(typeof s=="string"&&s.match(Li),"invalid identifier","name",s),i=Object.freeze(i.slice()),S(this,{name:s})}}function Wt(n,e){return"("+e.map(t=>t.format(n)).join(n==="full"?", ":",")+")"}class ee extends Vr{constructor(e,t,r){super(e,"error",t,r),Object.defineProperty(this,ne,{value:Rs})}get selector(){return Jt(this.format("sighash")).substring(0,10)}format(e){if(e==null&&(e="sighash"),e==="json")return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(r=>JSON.parse(r.format(e)))});const t=[];return e!=="sighash"&&t.push("error"),t.push(this.name+Wt(e,this.inputs)),t.join(" ")}static from(e){if(ee.isFragment(e))return e;if(typeof e=="string")return ee.from(Ke(e));if(e instanceof ge){const t=Mr("error",e),r=De(e);return ht(e),new ee(j,t,r)}return new ee(j,e.name,e.inputs?e.inputs.map(G.from):[])}static isFragment(e){return e&&e[ne]===Rs}}class Oe extends Vr{constructor(t,r,s,i){super(t,"event",r,s);d(this,"anonymous");Object.defineProperty(this,ne,{value:$s}),S(this,{anonymous:i})}get topicHash(){return Jt(this.format("sighash"))}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(s=>JSON.parse(s.format(t)))});const r=[];return t!=="sighash"&&r.push("event"),r.push(this.name+Wt(t,this.inputs)),t!=="sighash"&&this.anonymous&&r.push("anonymous"),r.join(" ")}static getTopicHash(t,r){return r=(r||[]).map(i=>G.from(i)),new Oe(j,t,r,!1).topicHash}static from(t){if(Oe.isFragment(t))return t;if(typeof t=="string")return Oe.from(Ke(t));if(t instanceof ge){const r=Mr("event",t),s=De(t,!0),i=!!je(t,Y(["anonymous"])).has("anonymous");return ht(t),new Oe(j,r,s,i)}return new Oe(j,t.name,t.inputs?t.inputs.map(r=>G.from(r,!0)):[],!!t.anonymous)}static isFragment(t){return t&&t[ne]===$s}}class Ce extends ft{constructor(t,r,s,i,o){super(t,r,s);d(this,"payable");d(this,"gas");Object.defineProperty(this,ne,{value:Ps}),S(this,{payable:i,gas:o})}format(t){if(x(t!=null&&t!=="sighash","cannot format a constructor for sighash","UNSUPPORTED_OPERATION",{operation:"format(sighash)"}),t==="json")return JSON.stringify({type:"constructor",stateMutability:this.payable?"payable":"undefined",payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map(s=>JSON.parse(s.format(t)))});const r=[`constructor${Wt(t,this.inputs)}`];return r.push(this.payable?"payable":"nonpayable"),this.gas!=null&&r.push(`@${this.gas.toString()}`),r.join(" ")}static from(t){if(Ce.isFragment(t))return t;if(typeof t=="string")return Ce.from(Ke(t));if(t instanceof ge){je(t,Y(["constructor"]));const r=De(t),s=!!je(t,Y(["payable"])).has("payable"),i=Mi(t);return ht(t),new Ce(j,"constructor",r,s,i)}return new Ce(j,"constructor",t.inputs?t.inputs.map(G.from):[],!!t.payable,t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[ne]===Ps}}class Pe extends ft{constructor(t,r,s){super(t,"fallback",r);d(this,"payable");Object.defineProperty(this,ne,{value:Ns}),S(this,{payable:s})}format(t){const r=this.inputs.length===0?"receive":"fallback";if(t==="json"){const s=this.payable?"payable":"nonpayable";return JSON.stringify({type:r,stateMutability:s})}return`${r}()${this.payable?" payable":""}`}static from(t){if(Pe.isFragment(t))return t;if(typeof t=="string")return Pe.from(Ke(t));if(t instanceof ge){const r=t.toString(),s=t.peekKeyword(Y(["fallback","receive"]));if(_(s,"type must be fallback or receive","obj",r),t.popKeyword(Y(["fallback","receive"]))==="receive"){const c=De(t);return _(c.length===0,"receive cannot have arguments","obj.inputs",c),je(t,Y(["payable"])),ht(t),new Pe(j,[],!0)}let o=De(t);o.length?_(o.length===1&&o[0].type==="bytes","invalid fallback inputs","obj.inputs",o.map(c=>c.format("minimal")).join(", ")):o=[G.from("bytes")];const a=Hi(t);if(_(a==="nonpayable"||a==="payable","fallback cannot be constants","obj.stateMutability",a),je(t,Y(["returns"])).has("returns")){const c=De(t);_(c.length===1&&c[0].type==="bytes","invalid fallback outputs","obj.outputs",c.map(u=>u.format("minimal")).join(", "))}return ht(t),new Pe(j,o,a==="payable")}if(t.type==="receive")return new Pe(j,[],!0);if(t.type==="fallback"){const r=[G.from("bytes")],s=t.stateMutability==="payable";return new Pe(j,r,s)}_(!1,"invalid fallback description","obj",t)}static isFragment(t){return t&&t[ne]===Ns}}class ke extends Vr{constructor(t,r,s,i,o,a){super(t,"function",r,i);d(this,"constant");d(this,"outputs");d(this,"stateMutability");d(this,"payable");d(this,"gas");Object.defineProperty(this,ne,{value:Is}),o=Object.freeze(o.slice()),S(this,{constant:s==="view"||s==="pure",gas:a,outputs:o,payable:s==="payable",stateMutability:s})}get selector(){return Jt(this.format("sighash")).substring(0,10)}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:this.stateMutability!=="nonpayable"?this.stateMutability:void 0,payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map(s=>JSON.parse(s.format(t))),outputs:this.outputs.map(s=>JSON.parse(s.format(t)))});const r=[];return t!=="sighash"&&r.push("function"),r.push(this.name+Wt(t,this.inputs)),t!=="sighash"&&(this.stateMutability!=="nonpayable"&&r.push(this.stateMutability),this.outputs&&this.outputs.length&&(r.push("returns"),r.push(Wt(t,this.outputs))),this.gas!=null&&r.push(`@${this.gas.toString()}`)),r.join(" ")}static getSelector(t,r){return r=(r||[]).map(i=>G.from(i)),new ke(j,t,"view",r,[],null).selector}static from(t){if(ke.isFragment(t))return t;if(typeof t=="string")return ke.from(Ke(t));if(t instanceof ge){const r=Mr("function",t),s=De(t),i=Hi(t);let o=[];je(t,Y(["returns"])).has("returns")&&(o=De(t));const a=Mi(t);return ht(t),new ke(j,r,i,s,o,a)}return new ke(j,t.name,t.stateMutability,t.inputs?t.inputs.map(G.from):[],t.outputs?t.outputs.map(G.from):[],t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[ne]===Is}}class ct extends Vr{constructor(e,t,r){super(e,"struct",t,r),Object.defineProperty(this,ne,{value:Cs})}format(){throw new Error("@TODO")}static from(e){if(typeof e=="string")return ct.from(Ke(e));if(e instanceof ge){const t=Mr("struct",e),r=De(e);return ht(e),new ct(j,t,r)}return new ct(j,e.name,e.inputs?e.inputs.map(G.from):[])}static isFragment(e){return e&&e[ne]===Cs}}const we=new Map;we.set(0,"GENERIC_PANIC");we.set(1,"ASSERT_FALSE");we.set(17,"OVERFLOW");we.set(18,"DIVIDE_BY_ZERO");we.set(33,"ENUM_RANGE_ERROR");we.set(34,"BAD_STORAGE_DATA");we.set(49,"STACK_UNDERFLOW");we.set(50,"ARRAY_RANGE_ERROR");we.set(65,"OUT_OF_MEMORY");we.set(81,"UNINITIALIZED_FUNCTION_CALL");const Cl=new RegExp(/^bytes([0-9]*)$/),Fl=new RegExp(/^(u?int)([0-9]*)$/);let nn=null;function Dl(n,e,t,r){let s="missing revert data",i=null;const o=null;let a=null;if(t){s="execution reverted";const u=Ue(t);if(t=H(t),u.length===0)s+=" (no data present; likely require(false) occurred",i="require(false)";else if(u.length%32!==4)s+=" (could not decode reason; invalid data length)";else if(H(u.slice(0,4))==="0x08c379a0")try{i=r.decode(["string"],u.slice(4))[0],a={signature:"Error(string)",name:"Error",args:[i]},s+=`: ${JSON.stringify(i)}`}catch{s+=" (could not decode reason; invalid string data)"}else if(H(u.slice(0,4))==="0x4e487b71")try{const l=Number(r.decode(["uint256"],u.slice(4))[0]);a={signature:"Panic(uint256)",name:"Panic",args:[l]},i=`Panic due to ${we.get(l)||"UNKNOWN"}(${l})`,s+=`: ${i}`}catch{s+=" (could not decode panic code)"}else s+=" (unknown custom error)"}const c={to:e.to?lt(e.to):null,data:e.data||"0x"};return e.from&&(c.from=lt(e.from)),jr(s,"CALL_EXCEPTION",{action:n,data:t,reason:i,transaction:c,invocation:o,revert:a})}var ze,Tt;const Ar=class{constructor(){F(this,ze)}getDefaultValue(e){const t=e.map(s=>B(this,ze,Tt).call(this,G.from(s)));return new dr(t,"_").defaultValue()}encode(e,t){mi(t.length,e.length,"types/values length mismatch");const r=e.map(o=>B(this,ze,Tt).call(this,G.from(o))),s=new dr(r,"_"),i=new mn;return s.encode(i,t),i.data}decode(e,t,r){const s=e.map(o=>B(this,ze,Tt).call(this,G.from(o)));return new dr(s,"_").decode(new gn(t,r))}static defaultAbiCoder(){return nn==null&&(nn=new Ar),nn}static getBuiltinCallException(e,t,r){return Dl(e,t,r,Ar.defaultAbiCoder())}};let xr=Ar;ze=new WeakSet,Tt=function(e){if(e.isArray())return new fl(B(this,ze,Tt).call(this,e.arrayChildren),e.arrayLength,e.name);if(e.isTuple())return new dr(e.components.map(r=>B(this,ze,Tt).call(this,r)),e.name);switch(e.baseType){case"address":return new ll(e.name);case"bool":return new dl(e.name);case"string":return new El(e.name);case"bytes":return new pl(e.name);case"":return new gl(e.name)}let t=e.type.match(Fl);if(t){let r=parseInt(t[2]||"256");return _(r!==0&&r<=256&&r%8===0,"invalid "+t[1]+" bit length","param",e),new _l(r/8,t[1]==="int",e.name)}if(t=e.type.match(Cl),t){let r=parseInt(t[1]);return _(r!==0&&r<=32,"invalid bytes length","param",e),new yl(r,e.name)}_(!1,"invalid type","type",e.type)};class Ul{constructor(e,t,r){d(this,"fragment");d(this,"name");d(this,"signature");d(this,"topic");d(this,"args");const s=e.name,i=e.format();S(this,{fragment:e,name:s,signature:i,topic:t,args:r})}}class jl{constructor(e,t,r,s){d(this,"fragment");d(this,"name");d(this,"args");d(this,"signature");d(this,"selector");d(this,"value");const i=e.name,o=e.format();S(this,{fragment:e,name:i,args:r,signature:o,selector:t,value:s})}}class Ll{constructor(e,t,r){d(this,"fragment");d(this,"name");d(this,"args");d(this,"signature");d(this,"selector");const s=e.name,i=e.format();S(this,{fragment:e,name:s,args:r,signature:i,selector:t})}}class Fs{constructor(e){d(this,"hash");d(this,"_isIndexed");S(this,{hash:e,_isIndexed:!0})}static isIndexed(e){return!!(e&&e._isIndexed)}}const Ds={0:"generic panic",1:"assert(false)",17:"arithmetic overflow",18:"division or modulo by zero",33:"enum overflow",34:"invalid encoded storage byte array accessed",49:"out-of-bounds array access; popping on an empty array",50:"out-of-bounds access of an array or bytesN",65:"out of memory",81:"uninitialized function"},Us={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:n=>`reverted with reason string ${JSON.stringify(n)}`},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"],reason:n=>{let e="unknown panic code";return n>=0&&n<=255&&Ds[n.toString()]&&(e=Ds[n.toString()]),`reverted with panic code 0x${n.toString(16)} (${e})`}}};var Ee,xe,Te,W,Xt,En,Zt,xn;const St=class{constructor(e){F(this,Xt);F(this,Zt);d(this,"fragments");d(this,"deploy");d(this,"fallback");d(this,"receive");F(this,Ee,void 0);F(this,xe,void 0);F(this,Te,void 0);F(this,W,void 0);let t=[];typeof e=="string"?t=JSON.parse(e):t=e,P(this,Te,new Map),P(this,Ee,new Map),P(this,xe,new Map);const r=[];for(const o of t)try{r.push(ft.from(o))}catch(a){console.log("EE",a)}S(this,{fragments:Object.freeze(r)});let s=null,i=!1;P(this,W,this.getAbiCoder()),this.fragments.forEach((o,a)=>{let c;switch(o.type){case"constructor":if(this.deploy){console.log("duplicate definition - constructor");return}S(this,{deploy:o});return;case"fallback":o.inputs.length===0?i=!0:(_(!s||o.payable!==s.payable,"conflicting fallback fragments",`fragments[${a}]`,o),s=o,i=s.payable);return;case"function":c=m(this,Te);break;case"event":c=m(this,xe);break;case"error":c=m(this,Ee);break;default:return}const u=o.format();c.has(u)||c.set(u,o)}),this.deploy||S(this,{deploy:Ce.from("constructor()")}),S(this,{fallback:s,receive:i})}format(e){const t=e?"minimal":"full";return this.fragments.map(s=>s.format(t))}formatJson(){const e=this.fragments.map(t=>t.format("json"));return JSON.stringify(e.map(t=>JSON.parse(t)))}getAbiCoder(){return xr.defaultAbiCoder()}getFunctionName(e){const t=B(this,Xt,En).call(this,e,null,!1);return _(t,"no matching function","key",e),t.name}getFunction(e,t){return B(this,Xt,En).call(this,e,t||null,!0)}forEachFunction(e){const t=Array.from(m(this,Te).keys());t.sort((r,s)=>r.localeCompare(s));for(let r=0;r<t.length;r++){const s=t[r];e(m(this,Te).get(s),r)}}getEventName(e){const t=B(this,Zt,xn).call(this,e,null,!1);return _(t,"no matching event","key",e),t.name}getEvent(e,t){return B(this,Zt,xn).call(this,e,t||null,!0)}forEachEvent(e){const t=Array.from(m(this,xe).keys());t.sort((r,s)=>r.localeCompare(s));for(let r=0;r<t.length;r++){const s=t[r];e(m(this,xe).get(s),r)}}getError(e,t){if(Ge(e)){const s=e.toLowerCase();if(Us[s])return ee.from(Us[s].signature);for(const i of m(this,Ee).values())if(s===i.selector)return i;return null}if(e.indexOf("(")===-1){const s=[];for(const[i,o]of m(this,Ee))i.split("(")[0]===e&&s.push(o);if(s.length===0)return e==="Error"?ee.from("error Error(string)"):e==="Panic"?ee.from("error Panic(uint256)"):null;if(s.length>1){const i=s.map(o=>JSON.stringify(o.format())).join(", ");_(!1,`ambiguous error description (i.e. ${i})`,"name",e)}return s[0]}if(e=ee.from(e).format(),e==="Error(string)")return ee.from("error Error(string)");if(e==="Panic(uint256)")return ee.from("error Panic(uint256)");const r=m(this,Ee).get(e);return r||null}forEachError(e){const t=Array.from(m(this,Ee).keys());t.sort((r,s)=>r.localeCompare(s));for(let r=0;r<t.length;r++){const s=t[r];e(m(this,Ee).get(s),r)}}_decodeParams(e,t){return m(this,W).decode(e,t)}_encodeParams(e,t){return m(this,W).encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){if(typeof e=="string"){const r=this.getError(e);_(r,"unknown error","fragment",e),e=r}return _(_t(t,0,4)===e.selector,`data signature does not match error ${e.name}.`,"data",t),this._decodeParams(e.inputs,_t(t,4))}encodeErrorResult(e,t){if(typeof e=="string"){const r=this.getError(e);_(r,"unknown error","fragment",e),e=r}return Rt([e.selector,this._encodeParams(e.inputs,t||[])])}decodeFunctionData(e,t){if(typeof e=="string"){const r=this.getFunction(e);_(r,"unknown function","fragment",e),e=r}return _(_t(t,0,4)===e.selector,`data signature does not match function ${e.name}.`,"data",t),this._decodeParams(e.inputs,_t(t,4))}encodeFunctionData(e,t){if(typeof e=="string"){const r=this.getFunction(e);_(r,"unknown function","fragment",e),e=r}return Rt([e.selector,this._encodeParams(e.inputs,t||[])])}decodeFunctionResult(e,t){if(typeof e=="string"){const i=this.getFunction(e);_(i,"unknown function","fragment",e),e=i}let r="invalid length for result data";const s=Fe(t);if(s.length%32===0)try{return m(this,W).decode(e.outputs,s)}catch{r="could not decode result data"}x(!1,r,"BAD_DATA",{value:H(s),info:{method:e.name,signature:e.format()}})}makeError(e,t){const r=Ue(e,"data"),s=xr.getBuiltinCallException("call",t,r),i="execution reverted (unknown custom error)";if(s.message.startsWith(i)){const a=H(r.slice(0,4)),c=this.getError(a);if(c)try{const u=m(this,W).decode(c.inputs,r.slice(4));s.revert={name:c.name,signature:c.format(),args:u},s.reason=s.revert.signature,s.message=`execution reverted: ${s.reason}`}catch{s.message="execution reverted (coult not decode custom error)"}}const o=this.parseTransaction(t);return o&&(s.invocation={method:o.name,signature:o.signature,args:o.args}),s}encodeFunctionResult(e,t){if(typeof e=="string"){const r=this.getFunction(e);_(r,"unknown function","fragment",e),e=r}return H(m(this,W).encode(e.outputs,t||[]))}encodeFilterTopics(e,t){if(typeof e=="string"){const i=this.getEvent(e);_(i,"unknown event","eventFragment",e),e=i}x(t.length<=e.inputs.length,`too many arguments for ${e.format()}`,"UNEXPECTED_ARGUMENT",{count:t.length,expectedCount:e.inputs.length});const r=[];e.anonymous||r.push(e.topicHash);const s=(i,o)=>i.type==="string"?Jt(o):i.type==="bytes"?Je(H(o)):(i.type==="bool"&&typeof o=="boolean"&&(o=o?"0x01":"0x00"),i.type.match(/^u?int/)&&(o=bi(o)),i.type==="address"&&m(this,W).encode(["address"],[o]),iu(H(o),32));for(t.forEach((i,o)=>{const a=e.inputs[o];if(!a.indexed){_(i==null,"cannot filter non-indexed parameters; must be null","contract."+a.name,i);return}i==null?r.push(null):a.baseType==="array"||a.baseType==="tuple"?_(!1,"filtering with tuples or arrays not supported","contract."+a.name,i):Array.isArray(i)?r.push(i.map(c=>s(a,c))):r.push(s(a,i))});r.length&&r[r.length-1]===null;)r.pop();return r}encodeEventLog(e,t){if(typeof e=="string"){const o=this.getEvent(e);_(o,"unknown event","eventFragment",e),e=o}const r=[],s=[],i=[];return e.anonymous||r.push(e.topicHash),_(t.length===e.inputs.length,"event arguments/values mismatch","values",t),e.inputs.forEach((o,a)=>{const c=t[a];if(o.indexed)if(o.type==="string")r.push(Jt(c));else if(o.type==="bytes")r.push(Je(c));else{if(o.baseType==="tuple"||o.baseType==="array")throw new Error("not implemented");r.push(m(this,W).encode([o.type],[c]))}else s.push(o),i.push(c)}),{data:m(this,W).encode(s,i),topics:r}}decodeEventLog(e,t,r){if(typeof e=="string"){const p=this.getEvent(e);_(p,"unknown event","eventFragment",e),e=p}if(r!=null&&!e.anonymous){const p=e.topicHash;_(Ge(r[0],32)&&r[0].toLowerCase()===p,"fragment/topic mismatch","topics[0]",r[0]),r=r.slice(1)}const s=[],i=[],o=[];e.inputs.forEach((p,w)=>{p.indexed?p.type==="string"||p.type==="bytes"||p.baseType==="tuple"||p.baseType==="array"?(s.push(G.from({type:"bytes32",name:p.name})),o.push(!0)):(s.push(p),o.push(!1)):(i.push(p),o.push(!1))});const a=r!=null?m(this,W).decode(s,Rt(r)):null,c=m(this,W).decode(i,t,!0),u=[],l=[];let h=0,y=0;return e.inputs.forEach((p,w)=>{let v=null;if(p.indexed)if(a==null)v=new Fs(null);else if(o[w])v=new Fs(a[y++]);else try{v=a[y++]}catch(g){v=g}else try{v=c[h++]}catch(g){v=g}u.push(v),l.push(p.name||null)}),Er.fromItems(u,l)}parseTransaction(e){const t=Ue(e.data,"tx.data"),r=mt(e.value!=null?e.value:0,"tx.value"),s=this.getFunction(H(t.slice(0,4)));if(!s)return null;const i=m(this,W).decode(s.inputs,t.slice(4));return new jl(s,s.selector,i,r)}parseCallResult(e){throw new Error("@TODO")}parseLog(e){const t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new Ul(t,t.topicHash,this.decodeEventLog(t,e.data,e.topics))}parseError(e){const t=H(e),r=this.getError(_t(t,0,4));if(!r)return null;const s=m(this,W).decode(r.inputs,_t(t,4));return new Ll(r,r.selector,s)}static from(e){return e instanceof St?e:typeof e=="string"?new St(JSON.parse(e)):typeof e.format=="function"?new St(e.format("json")):new St(e)}};let _n=St;Ee=new WeakMap,xe=new WeakMap,Te=new WeakMap,W=new WeakMap,Xt=new WeakSet,En=function(e,t,r){if(Ge(e)){const i=e.toLowerCase();for(const o of m(this,Te).values())if(i===o.selector)return o;return null}if(e.indexOf("(")===-1){const i=[];for(const[o,a]of m(this,Te))o.split("(")[0]===e&&i.push(a);if(t){const o=t.length>0?t[t.length-1]:null;let a=t.length,c=!0;K.isTyped(o)&&o.type==="overrides"&&(c=!1,a--);for(let u=i.length-1;u>=0;u--){const l=i[u].inputs.length;l!==a&&(!c||l!==a-1)&&i.splice(u,1)}for(let u=i.length-1;u>=0;u--){const l=i[u].inputs;for(let h=0;h<t.length;h++)if(K.isTyped(t[h])){if(h>=l.length){if(t[h].type==="overrides")continue;i.splice(u,1);break}if(t[h].type!==l[h].baseType){i.splice(u,1);break}}}}if(i.length===1&&t&&t.length!==i[0].inputs.length){const o=t[t.length-1];(o==null||Array.isArray(o)||typeof o!="object")&&i.splice(0,1)}if(i.length===0)return null;if(i.length>1&&r){const o=i.map(a=>JSON.stringify(a.format())).join(", ");_(!1,`ambiguous function description (i.e. matches ${o})`,"key",e)}return i[0]}const s=m(this,Te).get(ke.from(e).format());return s||null},Zt=new WeakSet,xn=function(e,t,r){if(Ge(e)){const i=e.toLowerCase();for(const o of m(this,xe).values())if(i===o.topicHash)return o;return null}if(e.indexOf("(")===-1){const i=[];for(const[o,a]of m(this,xe))o.split("(")[0]===e&&i.push(a);if(t){for(let o=i.length-1;o>=0;o--)i[o].inputs.length<t.length&&i.splice(o,1);for(let o=i.length-1;o>=0;o--){const a=i[o].inputs;for(let c=0;c<t.length;c++)if(K.isTyped(t[c])&&t[c].type!==a[c].baseType){i.splice(o,1);break}}}if(i.length===0)return null;if(i.length>1&&r){const o=i.map(a=>JSON.stringify(a.format())).join(", ");_(!1,`ambiguous event description (i.e. matches ${o})`,"key",e)}return i[0]}const s=m(this,xe).get(Oe.from(e).format());return s||null};const Bl=BigInt(0);function Ne(n){return n==null?null:n.toString()}function Hl(n){const e={};n.to&&(e.to=n.to),n.from&&(e.from=n.from),n.data&&(e.data=H(n.data));const t="chainId,gasLimit,gasPrice,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(const s of t)!(s in n)||n[s]==null||(e[s]=mt(n[s],`request.${s}`));const r="type,nonce".split(/,/);for(const s of r)!(s in n)||n[s]==null||(e[s]=Le(n[s],`request.${s}`));return n.accessList&&(e.accessList=xl(n.accessList)),"blockTag"in n&&(e.blockTag=n.blockTag),"enableCcipRead"in n&&(e.enableCcipReadEnabled=!!n.enableCcipRead),"customData"in n&&(e.customData=n.customData),e}class Vn{constructor(e,t){d(this,"provider");d(this,"transactionHash");d(this,"blockHash");d(this,"blockNumber");d(this,"removed");d(this,"address");d(this,"data");d(this,"topics");d(this,"index");d(this,"transactionIndex");this.provider=t;const r=Object.freeze(e.topics.slice());S(this,{transactionHash:e.transactionHash,blockHash:e.blockHash,blockNumber:e.blockNumber,removed:e.removed,address:e.address,data:e.data,topics:r,index:e.index,transactionIndex:e.transactionIndex})}toJSON(){const{address:e,blockHash:t,blockNumber:r,data:s,index:i,removed:o,topics:a,transactionHash:c,transactionIndex:u}=this;return{_type:"log",address:e,blockHash:t,blockNumber:r,data:s,index:i,removed:o,topics:a,transactionHash:c,transactionIndex:u}}async getBlock(){const e=await this.provider.getBlock(this.blockHash);return x(!!e,"failed to find transaction","UNKNOWN_ERROR",{}),e}async getTransaction(){const e=await this.provider.getTransaction(this.transactionHash);return x(!!e,"failed to find transaction","UNKNOWN_ERROR",{}),e}async getTransactionReceipt(){const e=await this.provider.getTransactionReceipt(this.transactionHash);return x(!!e,"failed to find transaction receipt","UNKNOWN_ERROR",{}),e}removedEvent(){return Vl(this)}}var Yt;class Ml{constructor(e,t){d(this,"provider");d(this,"to");d(this,"from");d(this,"contractAddress");d(this,"hash");d(this,"index");d(this,"blockHash");d(this,"blockNumber");d(this,"logsBloom");d(this,"gasUsed");d(this,"cumulativeGasUsed");d(this,"gasPrice");d(this,"type");d(this,"status");d(this,"root");F(this,Yt,void 0);P(this,Yt,Object.freeze(e.logs.map(r=>new Vn(r,t)))),S(this,{provider:t,to:e.to,from:e.from,contractAddress:e.contractAddress,hash:e.hash,index:e.index,blockHash:e.blockHash,blockNumber:e.blockNumber,logsBloom:e.logsBloom,gasUsed:e.gasUsed,cumulativeGasUsed:e.cumulativeGasUsed,gasPrice:e.effectiveGasPrice||e.gasPrice,type:e.type,status:e.status,root:e.root})}get logs(){return m(this,Yt)}toJSON(){const{to:e,from:t,contractAddress:r,hash:s,index:i,blockHash:o,blockNumber:a,logsBloom:c,logs:u,status:l,root:h}=this;return{_type:"TransactionReceipt",blockHash:o,blockNumber:a,contractAddress:r,cumulativeGasUsed:Ne(this.cumulativeGasUsed),from:t,gasPrice:Ne(this.gasPrice),gasUsed:Ne(this.gasUsed),hash:s,index:i,logs:u,logsBloom:c,root:h,status:l,to:e}}get length(){return this.logs.length}[Symbol.iterator](){let e=0;return{next:()=>e<this.length?{value:this.logs[e++],done:!1}:{value:void 0,done:!0}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){const e=await this.provider.getBlock(this.blockHash);if(e==null)throw new Error("TODO");return e}async getTransaction(){const e=await this.provider.getTransaction(this.hash);if(e==null)throw new Error("TODO");return e}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return zi(this)}reorderedEvent(e){return x(!e||e.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),Vi(this,e)}}Yt=new WeakMap;var qe;const Zn=class{constructor(e,t){d(this,"provider");d(this,"blockNumber");d(this,"blockHash");d(this,"index");d(this,"hash");d(this,"type");d(this,"to");d(this,"from");d(this,"nonce");d(this,"gasLimit");d(this,"gasPrice");d(this,"maxPriorityFeePerGas");d(this,"maxFeePerGas");d(this,"data");d(this,"value");d(this,"chainId");d(this,"signature");d(this,"accessList");F(this,qe,void 0);this.provider=t,this.blockNumber=e.blockNumber!=null?e.blockNumber:null,this.blockHash=e.blockHash!=null?e.blockHash:null,this.hash=e.hash,this.index=e.index,this.type=e.type,this.from=e.from,this.to=e.to||null,this.gasLimit=e.gasLimit,this.nonce=e.nonce,this.data=e.data,this.value=e.value,this.gasPrice=e.gasPrice,this.maxPriorityFeePerGas=e.maxPriorityFeePerGas!=null?e.maxPriorityFeePerGas:null,this.maxFeePerGas=e.maxFeePerGas!=null?e.maxFeePerGas:null,this.chainId=e.chainId,this.signature=e.signature,this.accessList=e.accessList!=null?e.accessList:null,P(this,qe,-1)}toJSON(){const{blockNumber:e,blockHash:t,index:r,hash:s,type:i,to:o,from:a,nonce:c,data:u,signature:l,accessList:h}=this;return{_type:"TransactionReceipt",accessList:h,blockNumber:e,blockHash:t,chainId:Ne(this.chainId),data:u,from:a,gasLimit:Ne(this.gasLimit),gasPrice:Ne(this.gasPrice),hash:s,maxFeePerGas:Ne(this.maxFeePerGas),maxPriorityFeePerGas:Ne(this.maxPriorityFeePerGas),nonce:c,signature:l,to:o,index:r,type:i,value:Ne(this.value)}}async getBlock(){let e=this.blockNumber;if(e==null){const r=await this.getTransaction();r&&(e=r.blockNumber)}if(e==null)return null;const t=this.provider.getBlock(e);if(t==null)throw new Error("TODO");return t}async getTransaction(){return this.provider.getTransaction(this.hash)}async wait(e,t){const r=e??1,s=t??0;let i=m(this,qe),o=-1,a=i===-1;const c=async()=>{if(a)return null;const{blockNumber:h,nonce:y}=await pi({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(y<this.nonce){i=h;return}if(a)return null;const p=await this.getTransaction();if(!(p&&p.blockNumber!=null))for(o===-1&&(o=i-3,o<m(this,qe)&&(o=m(this,qe)));o<=h;){if(a)return null;const w=await this.provider.getBlock(o,!0);if(w==null)return;for(const v of w)if(v===this.hash)return;for(let v=0;v<w.length;v++){const g=await w.getTransaction(v);if(g.from===this.from&&g.nonce===this.nonce){if(a)return null;const A=await this.provider.getTransactionReceipt(g.hash);if(A==null||h-A.blockNumber+1<r)return;let C="replaced";g.data===this.data&&g.to===this.to&&g.value===this.value?C="repriced":g.data==="0x"&&g.from===g.to&&g.value===Bl&&(C="cancelled"),x(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:C==="replaced"||C==="cancelled",reason:C,replacement:g.replaceableTransaction(i),hash:g.hash,receipt:A})}}o++}},u=await this.provider.getTransactionReceipt(this.hash);if(u){if(await u.confirmations()>=r)return u}else if(await c(),r===0)return null;return await new Promise((h,y)=>{const p=[],w=()=>{p.forEach(g=>g())};if(p.push(()=>{a=!0}),s>0){const g=setTimeout(()=>{w(),y(jr("wait for transaction timeout","TIMEOUT"))},s);p.push(()=>{clearTimeout(g)})}const v=async g=>{await g.confirmations()>=r&&(w(),h(g))};if(p.push(()=>{this.provider.off(this.hash,v)}),this.provider.on(this.hash,v),i>=0){const g=async()=>{try{await c()}catch(A){if(_r(A,"TRANSACTION_REPLACED")){w(),y(A);return}}a||this.provider.once("block",g)};p.push(()=>{this.provider.off("block",g)}),this.provider.once("block",g)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}removedEvent(){return x(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),zi(this)}reorderedEvent(e){return x(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),x(!e||e.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Vi(this,e)}replaceableTransaction(e){_(Number.isInteger(e)&&e>=0,"invalid startBlock","startBlock",e);const t=new Zn(this,this.provider);return P(t,qe,e),t}};let Tn=Zn;qe=new WeakMap;function Vi(n,e){return{orphan:"reorder-transaction",tx:n,other:e}}function zi(n){return{orphan:"drop-transaction",tx:n}}function Vl(n){return{orphan:"drop-log",log:{transactionHash:n.transactionHash,blockHash:n.blockHash,blockNumber:n.blockNumber,address:n.address,data:n.data,topics:Object.freeze(n.topics.slice()),index:n.index}}}class zn extends Vn{constructor(t,r,s){super(t,t.provider);d(this,"interface");d(this,"fragment");d(this,"args");const i=r.decodeEventLog(s,t.data,t.topics);S(this,{args:i,fragment:s,interface:r})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}var It;class zl extends Ml{constructor(t,r,s){super(s,r);F(this,It,void 0);P(this,It,t)}get logs(){return super.logs.map(t=>{const r=t.topics.length?m(this,It).getEvent(t.topics[0]):null;return r?new zn(t,m(this,It),r):t})}}It=new WeakMap;var Qt;class qn extends Tn{constructor(t,r,s){super(s,r);F(this,Qt,void 0);P(this,Qt,t)}async wait(t){const r=await super.wait();return r==null?null:new zl(m(this,Qt),this.provider,r)}}Qt=new WeakMap;class qi extends lu{constructor(t,r,s,i){super(t,r,s);d(this,"log");S(this,{log:i})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}class ql extends qi{constructor(e,t,r,s,i){super(e,t,r,new zn(i,e.interface,s));const o=e.interface.decodeEventLog(s,this.log.data,this.log.topics);S(this,{args:o,fragment:s})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}const js=BigInt(0);function Gi(n){return n&&typeof n.call=="function"}function Ji(n){return n&&typeof n.estimateGas=="function"}function Gn(n){return n&&typeof n.resolveName=="function"}function Wi(n){return n&&typeof n.sendTransaction=="function"}var er;class Gl{constructor(e,t,r){F(this,er,void 0);d(this,"fragment");if(S(this,{fragment:t}),t.inputs.length<r.length)throw new Error("too many arguments");const s=dt(e.runner,"resolveName"),i=Gn(s)?s:null;P(this,er,async function(){const o=await Promise.all(t.inputs.map((a,c)=>r[c]==null?null:a.walkAsync(r[c],(l,h)=>l==="address"?Mn(h,i):h)));return e.interface.encodeFilterTopics(t,o)}())}getTopicFilter(){return m(this,er)}}er=new WeakMap;function Jl(){return Function}function dt(n,e){return n==null?null:typeof n[e]=="function"?n:n.provider&&typeof n.provider[e]=="function"?n.provider:null}function nt(n){return n==null?null:n.provider||null}async function Ki(n,e){const t=Hl(K.dereference(n,"overrides"));return _(t.to==null||(e||[]).indexOf("to")>=0,"cannot override to","overrides.to",t.to),_(t.data==null||(e||[]).indexOf("data")>=0,"cannot override data","overrides.data",t.data),t.from&&(t.from=await Mn(t.from)),t}async function Wl(n,e,t){const r=dt(n,"resolveName"),s=Gn(r)?r:null;return await Promise.all(e.map((i,o)=>i.walkAsync(t[o],(a,c)=>(c=K.dereference(c,a),a==="address"?Mn(c,s):c))))}class Kl{constructor(e){d(this,"_contract");return S(this,{_contract:e}),new Proxy(this,{apply:async(r,s,i)=>await r.send(...i)})}async populateTransaction(e){const t=await Ki(e,["data"]);t.to=await this._contract.getAddress();const r=this._contract.interface,s=r.receive||r.fallback&&r.fallback.payable;return _(s||(t.value||js)===js,"cannot send value to non-payable contract","overrides.value",t.value),_(r.fallback||(t.data||"0x")==="0x","cannot send data to receive-only contract","overrides.data",t.data),t}async staticCall(e){const t=dt(this._contract.runner,"call");x(Gi(t),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const r=await this.populateTransaction(e);try{return await t.call(r)}catch(s){throw yi(s)&&s.data?this._contract.interface.makeError(s.data,r):s}}async send(e){const t=this._contract.runner;x(Wi(t),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const r=await t.sendTransaction(await this.populateTransaction(e)),s=nt(this._contract.runner);return new qn(this._contract.interface,s,r)}async estimateGas(e){const t=dt(this._contract.runner,"estimateGas");return x(Ji(t),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await t.estimateGas(await this.populateTransaction(e))}}class Xl extends Jl(){constructor(t,r){super();d(this,"name","");d(this,"_contract");d(this,"_key");return S(this,{name:t.interface.getFunctionName(r),_contract:t,_key:r}),new Proxy(this,{apply:async(i,o,a)=>i.getFragment(...a).constant?await i.staticCall(...a):await i.send(...a)})}get fragment(){const t=this._contract.interface.getFunction(this._key);return x(t,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment"}),t}getFragment(...t){const r=this._contract.interface.getFunction(this._key,t);return x(r,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment"}),r}async populateTransaction(...t){const r=this.getFragment(...t);let s={};if(r.inputs.length+1===t.length&&(s=await Ki(t.pop())),r.inputs.length!==t.length)throw new Error("internal error: fragment inputs doesn't match arguments; should not happen");const i=await Wl(this._contract.runner,r.inputs,t);return Object.assign({},s,await pi({to:this._contract.getAddress(),data:this._contract.interface.encodeFunctionData(r,i)}))}async staticCall(...t){const r=await this.staticCallResult(...t);return r.length===1?r[0]:r}async send(...t){const r=this._contract.runner;x(Wi(r),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const s=await r.sendTransaction(await this.populateTransaction(...t)),i=nt(this._contract.runner);return new qn(this._contract.interface,i,s)}async estimateGas(...t){const r=dt(this._contract.runner,"estimateGas");return x(Ji(r),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await r.estimateGas(await this.populateTransaction(...t))}async staticCallResult(...t){const r=dt(this._contract.runner,"call");x(Gi(r),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const s=await this.populateTransaction(...t);let i="0x";try{i=await r.call(s)}catch(a){throw yi(a)&&a.data?this._contract.interface.makeError(a.data,s):a}const o=this.getFragment(...t);return this._contract.interface.decodeFunctionResult(o,i)}}function Zl(){return Function}class Yl extends Zl(){constructor(t,r){super();d(this,"name","");d(this,"_contract");d(this,"_key");return S(this,{name:t.interface.getEventName(r),_contract:t,_key:r}),new Proxy(this,{apply:(s,i,o)=>new Gl(t,s.getFragment(...o),o)})}get fragment(){const t=this._contract.interface.getEvent(this._key);return x(t,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment"}),t}getFragment(...t){const r=this._contract.interface.getEvent(this._key,t);return x(r,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment"}),r}}const Tr=Symbol.for("_ethersInternal_contract"),Xi=new WeakMap;function Ql(n,e){Xi.set(n[Tr],e)}function ce(n){return Xi.get(n[Tr])}function eh(n){return n&&typeof n=="object"&&"getTopicFilter"in n&&typeof n.getTopicFilter=="function"&&n.fragment}async function Jn(n,e){let t,r=null;if(Array.isArray(e)){const i=function(o){if(Ge(o,32))return o;const a=n.interface.getEvent(o);return _(a,"unknown fragment","name",o),a.topicHash};t=e.map(o=>o==null?null:Array.isArray(o)?o.map(i):i(o))}else e==="*"?t=[null]:typeof e=="string"?Ge(e,32)?t=[e]:(r=n.interface.getEvent(e),_(r,"unknown fragment","event",e),t=[r.topicHash]):eh(e)?t=await e.getTopicFilter():"fragment"in e?(r=e.fragment,t=[r.topicHash]):_(!1,"unknown event name","event",e);t=t.map(i=>{if(i==null)return null;if(Array.isArray(i)){const o=Array.from(new Set(i.map(a=>a.toLowerCase())).values());return o.length===1?o[0]:(o.sort(),o)}return i.toLowerCase()});const s=t.map(i=>i==null?"null":Array.isArray(i)?i.join("|"):i).join("&");return{fragment:r,tag:s,topics:t}}async function Bt(n,e){const{subs:t}=ce(n);return t.get((await Jn(n,e)).tag)||null}async function Ls(n,e,t){const r=nt(n.runner);x(r,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:e});const{fragment:s,tag:i,topics:o}=await Jn(n,t),{addr:a,subs:c}=ce(n);let u=c.get(i);if(!u){const h={address:a||n,topics:o},y=g=>{let A=s;if(A==null)try{A=n.interface.getEvent(g.topics[0])}catch{}if(A){const C=A,X=s?n.interface.decodeEventLog(s,g.data,g.topics):[];kn(n,t,X,U=>new ql(n,U,t,C,g))}else kn(n,t,[],C=>new qi(n,C,t,g))};let p=[];u={tag:i,listeners:[],start:()=>{p.length||p.push(r.on(h,y))},stop:async()=>{if(p.length==0)return;let g=p;p=[],await Promise.all(g),r.off(h,y)}},c.set(i,u)}return u}let On=Promise.resolve();async function th(n,e,t,r){await On;const s=await Bt(n,e);if(!s)return!1;const i=s.listeners.length;return s.listeners=s.listeners.filter(({listener:o,once:a})=>{const c=Array.from(t);r&&c.push(r(a?null:o));try{o.call(n,...c)}catch{}return!a}),i>0}async function kn(n,e,t,r){try{await On}catch{}const s=th(n,e,t,r);return On=s,await s}const Bs=["then"];var fh;const Sr=class{constructor(e,t,r,s){d(this,"target");d(this,"interface");d(this,"runner");d(this,"filters");d(this,fh);d(this,"fallback");r==null&&(r=null);const i=_n.from(t);S(this,{target:e,runner:r,interface:i}),Object.defineProperty(this,Tr,{value:{}});let o,a=null,c=null;if(s){const h=nt(r);c=new qn(this.interface,h,s)}let u=new Map;if(typeof e=="string")if(Ge(e))a=e,o=Promise.resolve(e);else{const h=dt(r,"resolveName");if(!Gn(h))throw jr("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});o=h.resolveName(e).then(y=>{if(y==null)throw new Error("TODO");return ce(this).addr=y,y})}else o=e.getAddress().then(h=>{if(h==null)throw new Error("TODO");return ce(this).addr=h,h});Ql(this,{addrPromise:o,addr:a,deployTx:c,subs:u});const l=new Proxy({},{get:(h,y,p)=>{if(Bs.indexOf(y)>=0)return Reflect.get(h,y,p);const w=String(y),v=this.getEvent(w);if(v)return v;throw new Error(`unknown contract event: ${w}`)}});return S(this,{filters:l}),S(this,{fallback:i.receive||i.fallback?new Kl(this):null}),new Proxy(this,{get:(h,y,p)=>{if(y in h||Bs.indexOf(y)>=0)return Reflect.get(h,y,p);const w=String(y),v=h.getFunction(w);if(v)return v;throw new Error(`unknown contract method: ${w}`)}})}connect(e){return new Sr(this.target,this.interface,e)}async getAddress(){return await ce(this).addrPromise}async getDeployedCode(){const e=nt(this.runner);x(e,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});const t=await e.getCode(await this.getAddress());return t==="0x"?null:t}async waitForDeployment(){const e=this.deploymentTransaction();if(e)return await e.wait(),this;if(await this.getDeployedCode()!=null)return this;const r=nt(this.runner);return x(r!=null,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise((s,i)=>{const o=async()=>{try{if(await this.getDeployedCode()!=null)return s(this);r.once("block",o)}catch(a){i(a)}};o()})}deploymentTransaction(){return ce(this).deployTx}getFunction(e){return typeof e!="string"&&(e=e.format()),new Xl(this,e)}getEvent(e){return typeof e!="string"&&(e=e.format()),new Yl(this,e)}async queryTransaction(e){throw new Error("@TODO")}async queryFilter(e,t,r){t==null&&(t=0),r==null&&(r="latest");const{addr:s,addrPromise:i}=ce(this),o=s||await i,{fragment:a,topics:c}=await Jn(this,e),u={address:o,topics:c,fromBlock:t,toBlock:r},l=nt(this.runner);return x(l,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await l.getLogs(u)).map(h=>{let y=a;if(y==null)try{y=this.interface.getEvent(h.topics[0])}catch{}return y?new zn(h,this.interface,y):new Vn(h,l)})}async on(e,t){const r=await Ls(this,"on",e);return r.listeners.push({listener:t,once:!1}),r.start(),this}async once(e,t){const r=await Ls(this,"once",e);return r.listeners.push({listener:t,once:!0}),r.start(),this}async emit(e,...t){return await kn(this,e,t,null)}async listenerCount(e){if(e){const s=await Bt(this,e);return s?s.listeners.length:0}const{subs:t}=ce(this);let r=0;for(const{listeners:s}of t.values())r+=s.length;return r}async listeners(e){if(e){const s=await Bt(this,e);return s?s.listeners.map(({listener:i})=>i):[]}const{subs:t}=ce(this);let r=[];for(const{listeners:s}of t.values())r=r.concat(s.map(({listener:i})=>i));return r}async off(e,t){const r=await Bt(this,e);if(!r)return this;if(t){const s=r.listeners.map(({listener:i})=>i).indexOf(t);s>=0&&r.listeners.splice(s,1)}return(t==null||r.listeners.length===0)&&(r.stop(),ce(this).subs.delete(r.tag)),this}async removeAllListeners(e){if(e){const t=await Bt(this,e);if(!t)return this;t.stop(),ce(this).subs.delete(t.tag)}else{const{subs:t}=ce(this);for(const{tag:r,stop:s}of t.values())s(),t.delete(r)}return this}async addListener(e,t){return await this.on(e,t)}async removeListener(e,t){return await this.off(e,t)}static buildClass(e){class t extends Sr{constructor(s,i=null){super(s,e,i)}}return t}static from(e,t,r){return r==null&&(r=null),new this(e,t,r)}};let An=Sr;fh=Tr;function rh(){return An}class nh extends rh(){}class gt{constructor(e){d(this,"data",[]);this.api=e}static create(e){return new gt(e)}getAbiHash(e){if(this.api===void 0)throw new Error("FunctionBuilder must be initialised with api");return this.api.getAbiHash(e)}static readFields(e,t){if(e.length===0)return[];const r=(s,i)=>{const o=t[i].find(a=>a.name===s.function);if(!o)throw new Error("function not in ABI");return o.outputs.map((a,c)=>({source:`function:${s.function}:${i}`,name:a.name,type:a.type,key:`func_${i}_ret_${c}`,index:c}))};return e.map((s,i)=>r(s,i))}async addFunction(e,t,r,s,i){const o=new nh(e,s);return o.interface.encodeFunctionData(t,r),i=i||await this.getAbiHash(s),this.data.push({address:e,bytecode:o.interface.encodeFunctionData(t,r),abiHash:i,function:t}),this}get(){return this.data}static schema(){return ut().of(re({address:T().required(),bytecode:T().matches(/^(0x)?([0-9a-fA-F]{2})*$/).required(),abiHash:T().matches(/^[A-Fa-f0-9]{64}/).required(),function:T().required()}))}}class Me{static version(){return"v1"}static execute(e,t,r="v1"){const s=JSON.parse(JSON.stringify(t));let i=!0;for(const o of s){const a=Me.process(e,o.conditions);i=Me.execLogic(i,o.logic,a)}return i}static process(e,t,r){const s=t.shift();if(!s)return r===void 0?!0:r;const i=Me.execCondition(e,s);if(r===void 0||s.logic==="WHERE")return Me.process(e,t,i);if(s.logic===void 0)throw new Error("Invalid filter. FilterCondition must have logic value");const o=Me.execLogic(r,s.logic,i);return Me.process(e,t,o)}static execLogic(e,t,r){switch(t){case"AND":return e&&r;case"OR":return e||r;case"XOR":return(e||r)&&!(e&&r);case"NAND":return!(e&&r);case"NOR":return!(e&&r);case"WHERE":return r;default:throw new Error(`Invalid Filter. Bad logic value: ${t}`)}}static execCondition(e,t){const r=e[t.key];if(t.type==="Number"){if(typeof t.constant!="number"||typeof r!="number")throw new Error(`Invalid filter. Type miss-match. Type: ${t.type}, Variable: ${t.constant}, Data: ${r}`);const s=r,i=t.constant;switch(t.operation){case"eq":return s===i;case"!eq":return s!==i;case"gt":return s>i;case"gte":return s>=i;case"lt":return s<i;case"lte":return s<=i;default:throw new Error("Invalid Filter. Operation does not match type")}}if(t.type==="String"){if(typeof t.constant!="string"||typeof r!="string")throw new Error(`Invalid filter. Type miss-match. Type: ${t.type}, Variable: ${t.constant}, Data: ${r}`);const s=r,i=t.constant;switch(t.operation){case"contains":return s.includes(i);case"!contains":return!s.includes(i);case"is":return s===i;case"!is":return s!==i;case"isEmpty":return s==="";case"!isEmpty":return s!=="";default:throw new Error("Invalid Filter. Operation does not match type")}}if(t.type==="Address"){if(typeof t.constant!="string"||typeof r!="string")throw new Error(`Invalid filter. Type miss-match. Type: ${t.type}, Variable: ${t.constant}, Data: ${r}`);const s=r,i=t.constant;switch(t.operation){case"contains":return s.toLowerCase().includes(i.toLowerCase());case"!contains":return!s.toLowerCase().includes(i.toLowerCase());case"is":return s.toLowerCase()===i.toLowerCase();case"!is":return s.toLowerCase()!==i.toLowerCase();case"isEmpty":return s==="";case"!isEmpty":return s!=="";default:throw new Error("Invalid Filter. Operation does not match type")}}throw new Error("Invalid Filter. Unknown Type")}}class rr{constructor(){d(this,"groups",[]);this.newGroup("WHERE")}static version(){return Me.version()}static new(){return new rr}newGroup(e){if(this.groups.length!==0&&e==="WHERE")throw new Error('Only the first groups can start with "WHERE"');return this.groups.push({logic:"WHERE",conditions:[]}),this}addCondition(e,t,r,s,i){const o=this.groups[this.groups.length-1];if(o.conditions.length===0&&e!=="WHERE")throw new Error('Logic for the first condition of a group must be "WHERE"');if(o.conditions.length>0&&e==="WHERE")throw new Error('Only the first condition of a group can be "WHERE"');return o.conditions.push({logic:e,key:t,type:r,operation:s,constant:i}),this}finalise(){for(const e of this.groups)if(e.conditions.length===0)throw new Error("Bad Filter. All Groups must have atleast one condition");return this.groups}static schema(){const e=T().oneOf(["AND","OR","XOR","NAND","NOR","WHERE"]).required(),t=re({logic:e,key:T().required(),type:T().oneOf(["String","Address","Number"]).required(),operation:T().when("type",([r],s)=>{switch(r){case"String":return s.oneOf(["contains","!contains","is","!is","isEmpty","!isEmpty"]);case"Address":return s.oneOf(["is","!is","isEmpty","!isEmpty"]);case"Number":return s.oneOf(["eq","!eq","gt","gte","lt","lte"]);default:throw new Error("Invalid Filter Data Type")}}).required(),constant:ii().when("type",([r])=>{switch(r){case"String":return T();case"Address":return T();case"Number":return q();default:throw new Error("Invalid Filter Data Type")}}).required()});return ut().of(re({logic:e,conditions:ut().of(t).required()}))}}const sh="handler_function_call_v2",ih=/^(\d+)([SMHD])$/i,Hs=re({timeBase:T().oneOf(["blocks","time"]).required(),nBlocks:q().min(10).when("timeBase",([n],e)=>n==="blocks"?e.required():e),timePeriod:T().matches(ih,"timePeriod must be of the format n[s|m|h|d], eg 10s for 10 seconds").when("timeBase",([n],e)=>n==="time"?e.required():e),startTime:q().default(0),debounceCount:q().default(0),functions:gt.schema().required(),triggerOn:T().oneOf(["always","filter"]).default("always"),latch:Dr().default(!1),filterVersion:T().when("triggerOn",([n],e)=>n==="filter"?e.default("0"):e.nullable().default(null)).required(),filter:rr.schema().when("triggerOn",([n],e)=>n==="filter"?e.required():e.nullable().default(null)).required()});class sn{static async SimpleToRaw(e,t,r){return{alertType:"event",network:t,nickname:e,type:sh,handler:await this.validate(r)}}static validate(e){return Hs.validateSync(e)}static async convertFromPartial(e){return Hs.validate(e)}static readFields(e,t){const r=[{source:"defaults",label:"Network",type:"string",key:"network"},{source:"defaults",label:"Timestamp",type:"number",key:"timestamp"},{source:"defaults",label:"Time GMT",type:"number",key:"timeStringGMT"},{source:"defaults",label:"Block",type:"number",key:"block"},{source:"defaults",label:"Time Period",type:"number",key:"timePeriod"}];if(!e.functions)return r;const s=e.functions.map(i=>t[i.abiHash]);return[...gt.readFields(e.functions,s),...r]}}const oh="handler_onchain_event_v2",ah=re({addresses:ut().of(T().required()).required(),abiHash:T().required(),event:T().required(),debounceCount:q().default(0),functions:gt.schema().nullable().default(null),triggerOn:T().oneOf(["always","filter"]).default("always"),latch:Dr().default(!1),filterVersion:T().nullable().default(null),filter:rr.schema().when("triggerOn",([n],e)=>n==="filter"?e:e.nullable().default(null)).required()}),ch=n=>n,Zi=(n,e,t=[],r="",s="")=>(n.forEach((i,o)=>{const a=i.type.includes("["),c=a?"_[]":"";if(i.components){const u=i.name===""?`${o}`:i.name;Zi(i.components,e,t,`${r}${o}${c}_`,`${u}${a?"[]":""}.`)}else t.push({source:e,label:`${s}${i.name}`,type:ch(i.type),key:`${r}${o}${c}`,index:o})}),t);class on{static async SimpleToRaw(e,t,r){return{alertType:"event",network:t,nickname:e,type:oh,handler:await this.validate(r)}}static validate(e){return ah.validateSync(e)}static readFields(e,t){let r=[{source:"defaults",label:"Network",type:"string",key:"network"},{source:"defaults",label:"Timestamp",type:"number",key:"timestamp"},{source:"defaults",label:"Time GMT",type:"string",key:"timeStringGMT"},{source:"defaults",label:"Block",type:"number",key:"block"},{source:"defaults",label:"Time Period",type:"string",key:"timePeriod"},{source:"defaults",label:"Block Hash",type:"string",key:"blockHash"},{source:"defaults",label:"Transaction Hash",type:"string",key:"txHash"},{source:"defaults",label:"Event",type:"string",key:"event"}];const s=t[e.abiHash].find(o=>o.name===e.event);if(r=Zi(s.inputs,`${e.event} Event`,r,"param_"),!e.functions)return r;const i=e.functions.map(o=>t[o.abiHash]);return[...gt.readFields(e.functions,i),...r]}}class Ht{static SimpleToRaw(e,t,r,s){switch(t){case"PollFunctionV2":return sn.SimpleToRaw(e,r,s);case"PollFunctionV1":return ms.SimpleToRaw(e,r,s);case"OnchainEventV1":return gs.SimpleToRaw(e,r,s);case"OnchainEventV2":return on.SimpleToRaw(e,r,s);default:throw new Error("Invalid Trigger ID")}}static Validate(e,t){switch(e){case"PollFunctionV2":return sn.validate(t);case"PollFunctionV1":return ms.validate(t);case"OnchainEventV1":return gs.validate(t);case"OnchainEventV2":return on.validate(t);default:throw new Error("Invalid Trigger ID")}}static RawToSimple(e){return{...{error:e.error,error_message:e.error_message,error_timestamp:e.error_timestamp},...e.handler}}static SimpleTypeToRawType(e){switch(e){case"PollFunctionV2":return"handler_function_call_v2";case"PollFunctionV1":return"handler_function_call";case"OnchainEventV1":return"handler_onchain_event";case"OnchainEventV2":return"handler_onchain_event_v2";default:throw new Error("Invalid Trigger ID")}}static RawTypeToSimpleType(e){switch(e){case"handler_function_call_v2":return"PollFunctionV2";case"handler_function_call":return"PollFunctionV1";case"handler_onchain_event":return"OnchainEventV1";case"handler_onchain_event_v2":return"OnchainEventV2";default:throw new Error("Invalid Trigger ID")}}static readFields(e,t,r){switch(e){case"PollFunctionV2":return sn.readFields(t,r);case"OnchainEventV2":return on.readFields(t,r);default:throw new Error("Invalid Trigger ID")}}}const Ms=n=>`https://${n}.functions.supabase.co/`,Vs=n=>`https://${n}.supabase.co/`,zs="fdgtrxmmrtlokhgkvcjz",uh="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImZkZ3RyeG1tcnRsb2toZ2t2Y2p6Iiwicm9sZSI6ImFub24iLCJpYXQiOjE2NzMwODcwNzYsImV4cCI6MTk4ODY2MzA3Nn0.sAMxjlcJSSozBGr-LNcsudyxzUEM9e-UspMHHQLqLr4";class Wn{constructor(e,t){d(this,"headers",{});this.url=e,this.headers={Authorization:`Bearer ${t}`,"Content-Type":"application/json"}}static async create(e){var t,r;if(e.key)throw new Error("Auth by key not yet supported");if(e.email&&e.password){const s=e.projectId?Vs(e.projectId):Vs(zs),i=e.projectId?Ms(e.projectId):Ms(zs),o=e.anonKey?e.anonKey:uh,a=nc(s,o),{data:c,error:u}=await a.auth.signInWithPassword({email:e.email,password:e.password});if(u)throw u;if(((t=c.session)==null?void 0:t.access_token)===void 0)throw new Error("Access token not found");return new Wn(i,(r=c.session)==null?void 0:r.access_token)}else throw new Error("Authentication Required. DeNotify supports either username/password or API key authentication")}async alertHistory(e,t){const r="alert-history",s=t||{};return e&&(s.id=e),Object.keys(s).length>0?await this.request("get",r,{params:t}):await this.request("get",r)}async getAlert(e){const t=(await this.request("get",`alerts/${e}`))[0];return await this.decode(t)}async getAlerts(){const e=await this.request("get","alerts");return Promise.all(e.map(t=>this.decode(t)))}async createAlert(e){const t=await this.encode(e);return await this.request("post","alerts",{body:t})}async updateRawTrigger(e,t){const r=await re({name:T().optional(),enabled:Dr().optional()}).validate(t);await this.request("patch",`alerts/trigger/${e}`,{body:r})}async updateAlert(e,t){const r=[],{trigger:s,notification:i,...o}=t;return(o.name||o.enabled)&&r.push(this.updateRawTrigger(e,o)),s&&r.push(this.updateRawHandler(e,s)),i&&r.push(this.updateRawNotify(e,i)),await Promise.all(r),await this.getAlert(e)}async deleteAlert(e){return await this.request("delete",`alerts/${e}`)}async decode(e){return{id:e.alertId,enabled:e.trigger.enabled,name:e.trigger.nickname,network:e.trigger.network,triggerId:Ht.RawTypeToSimpleType(e.trigger.type),trigger:await Ht.RawToSimple(e.trigger),notificationId:en.RawTypeToSimpleType(e.notification.notify_type),notification:await en.RawToSimple(e.notification)}}async encode(e){return{trigger:await Ht.SimpleToRaw(e.name,e.triggerId,e.network,e.trigger),notification:await en.SimpleToRaw(e.notificationId,e.notification)}}async request(e,t,r={}){const s=new URL((void 0)(this.url,t));if(r.params)for(const a of Object.keys(r.params))s.searchParams.append(a,r.params[a]);const i={method:e,headers:this.headers};return r.body&&(i.body=JSON.stringify(r.body)),(await fetch(s.toString(),i)).json()}readFields(e,t,r){return Ht.readFields(e,t,r)}async getAbi(e,t){return await this.request("get",`abi/${e}/${t}`)}async getAbiHash(e){return(await this.request("post","abi",{body:e})).hash}async updateRawNotify(e,t){return await this.request("patch",`alerts/notify/${e}`,{body:t})}async updateRawHandler(e,t){return await this.request("patch",`alerts/trigger-handler/${e}`,{body:t})}}class Kn{constructor(e){d(this,"network");d(this,"triggerId");d(this,"trigger");d(this,"notificationId");d(this,"notification");this.name=e}static create(e){return new Kn(e)}onNetwork(e){return this.network=e,this}withTrigger(e,t){return this.triggerId=e,this.trigger=Ht.Validate(e,t),this}withNotification(e,t){return this.notificationId=e,this.notification=t,this}async config(){if(this.trigger===void 0||this.triggerId===void 0)throw new Error("Trigger not configured");if(this.notification===void 0||this.notificationId===void 0)throw new Error("Notification not configured");if(this.network===void 0)throw new Error("Network not configured");return{name:this.name,network:this.network,triggerId:this.triggerId,trigger:this.trigger,notificationId:this.notificationId,notification:this.notification}}}const lh=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"})),hh=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));exports.AlertBuilder=Kn;exports.DeNotifyClient=Wn;exports.FilterBuilder=rr;exports.FunctionBuilder=gt;exports.Notification=hh;exports.Trigger=lh;