@junobuild/core-standalone 3.3.0 → 3.3.1

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.
@@ -51,7 +51,7 @@ ic-request`),oa=new TextEncoder().encode("\vic-response"),ia=new TextEncoder().e
51
51
  ${f}
52
52
  Retrying query.`),await this.#b({...t,tries:a+1});throw f instanceof ht?f:go.fromCode(new To(f))}if(!this.#_)return u;let p=u.signatures?.[0]?.timestamp;if(!p)throw ne.fromCode(new Si("Timestamp not found in query response. This suggests a malformed or malicious response."));let d=Number(BigInt(p)/BigInt(Wh));if(Date.now()+this.#r-d>this.#N){if(a<this.#d)return this.log.warn("Timestamp is older than the max ingress expiry. Retrying query.",{requestId:i,signatureTimestampMs:d}),await this.#b({...t,tries:a+1});throw De.fromCode(new Oi(this.#l,i,a))}return u}async#y(t){let{requestFn:r,backoff:n,tries:o}=t,i=o===0?0:n.next();if(i===null)throw ne.fromCode(new fn(`Retry strategy exhausted after ${o} attempts.`));i>0&&await new Promise(p=>setTimeout(p,i));let s,a=new Uint8Array;try{s=await r(),s.status===Wa&&(a=Hn(await s.clone().arrayBuffer()))}catch(p){if(o<this.#d)return this.log.warn(`Caught exception while attempting to make request:
53
53
  ${p}
54
- Retrying request.`),await this.#y({requestFn:r,backoff:n,tries:o+1});throw go.fromCode(new To(p))}let c=Wi(s.headers);if(s.status===Wa||s.status===nm)return{ok:s.ok,status:s.status,statusText:s.statusText,responseBodyBytes:a,headers:c};let u=await s.text();if(s.status===om&&s.url.includes("api/v3"))throw ne.fromCode(new wo);if(u.startsWith("Invalid request expiry: "))throw z.fromCode(new hn(u,this.#l));if(o<this.#d)return await this.#y({requestFn:r,backoff:n,tries:o+1});throw ne.fromCode(new bo(s.status,s.statusText,c,u))}async query(t,r,n){let o=this.#p(),i=r.effectiveCanisterId?M.from(r.effectiveCanisterId):M.from(t);await this.#g(i),this.log.print(`ecid ${i.toString()}`),this.log.print(`canisterId ${t.toString()}`);let s,a=await(n??this.#n);if(!a)throw Oe.fromCode(new xr);let c=M.from(t),u=a.getPrincipal(),p=za(this.#l,this.#r),d={request_type:wn.Query,canister_id:c,method_name:r.methodName,arg:r.arg,sender:u,ingress_expiry:p},l=Zt(d);s=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#i?{Authorization:"Basic "+btoa(this.#i)}:{}}},endpoint:Qt.Query,body:d}),s=await a.transformRequest(s);let f=Uo(s.body),h={canister:c.toText(),ecid:i,transformedRequest:s,body:f,requestId:l,backoff:o,tries:0},m=async()=>{let _=await this.#b(h);return{requestDetails:d,..._}},g=async()=>{let _=this.#m.get(i.toString());if(_)return _;await this.fetchSubnetKeys(i.toString());let x=this.#m.get(i.toString());if(!x)throw De.fromCode(new Fi);return x};try{if(!this.#_)return await m();let[_,x]=await Promise.all([m(),g()]);try{return this.#w(_,x)}catch{this.log.warn("Query response verification failed. Retrying with fresh subnet keys."),this.#m.delete(i.toString());let y=await g();return this.#w(_,y)}}catch(_){let x;throw _ instanceof ht?(_.code.requestContext={requestId:l,senderPubKey:s.body.sender_pubkey,senderSignature:s.body.sender_sig,ingressExpiry:s.body.content.ingress_expiry},x=_):x=xe.fromCode(new Ue(_)),this.log.error(`Error while making query: ${x.message}`,x),x}}#w;async createReadStateRequest(t,r){await this.#g();let n=await(r??this.#n);if(!n)throw Oe.fromCode(new xr);let o=n.getPrincipal(),i=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#i?{Authorization:"Basic "+btoa(this.#i)}:{}}},endpoint:Qt.ReadState,body:{request_type:wn.ReadState,paths:t.paths,sender:o,ingress_expiry:za(this.#l,this.#r)}});return n.transformRequest(i)}async readState(t,r,n,o){await this.#T();let i=M.from(t);function s(p){for(let d of p.paths){let[l,f]=d,h=new TextEncoder().encode("request_status");if(xn(l,h))return f}}let a,c;if(o)a=o,c=Zt(a);else{c=s(r);let p=await this.#n;if(!p)throw Oe.fromCode(new xr);a=await this.createReadStateRequest(r,p)}this.log.print(`fetching "/api/v2/canister/${i}/read_state" with request:`,a);let u=this.#p();try{let{responseBodyBytes:p}=await this.#y({requestFn:()=>this.#o(""+new URL(`/api/v2/canister/${i.toString()}/read_state`,this.host),{...this.#a,...a.request,body:Uo(a.body)}),backoff:u,tries:0}),d=Je(p);return this.log.print("Read state response:",d),d}catch(p){let d;throw p instanceof ht?(p.code.requestContext={requestId:c,senderPubKey:a.body.sender_pubkey,senderSignature:a.body.sender_sig,ingressExpiry:a.body.content.ingress_expiry},d=p):d=xe.fromCode(new Ue(p)),this.log.error(`Error while making read state: ${d.message}`,d),d}}parseTimeFromResponse(t){let r;if(t.certificate){let n=Je(t.certificate);if(n&&"tree"in n)r=n.tree;else throw ne.fromCode(new br("Could not decode time from response"));let o=In(["time"],r);if(o.status!==ze.Found)throw ne.fromCode(new Jt("Time was not found in the response or was not in its expected format.",o.status));if(!(o.value instanceof Uint8Array)&&!ArrayBuffer.isView(o))throw ne.fromCode(new Dn("Time was not in its expected format."));let i=to(o.value);return this.log.print("Time from response:",i),this.log.print("Time from response in milliseconds:",i.getTime()),i.getTime()}else this.log.warn("No certificate found in response");return 0}async syncTime(t){this.#s=this.#s??(async()=>{await this.#T();let r=Date.now();try{t||this.log.print("Syncing time with the IC. No canisterId provided, so falling back to ryjl3-tyaaa-aaaaa-aaaba-cai");let n=t??M.from("ryjl3-tyaaa-aaaaa-aaaba-cai"),o=e.createSync({identity:new rt,host:this.host.toString(),fetch:this.#o,retryTimes:0,rootKey:this.rootKey??void 0,shouldSyncTime:!1}),s=(await Promise.all(Array(3).fill(null).map(async()=>{let c=(await qa({canisterId:n,agent:o,paths:["time"],disableCertificateTimeVerification:!0})).get("time");if(c instanceof Date)return c.getTime()},[]))).reduce((a,c)=>typeof c=="number"&&c>a?c:a,0);s>0&&(this.#r=s-r,this.#c=!0,this.log.notify({message:`Syncing time: offset of ${this.#r}`,level:"info"}))}catch(n){let o=n instanceof ht?n:xe.fromCode(new Ue(n));throw this.log.error("Caught exception while attempting to sync time",o),o}})(),await this.#s.finally(()=>{this.#s=null})}async status(){let t=this.#i?{Authorization:"Basic "+btoa(this.#i)}:{};this.log.print('fetching "/api/v2/status"');let r=this.#p(),{responseBodyBytes:n}=await this.#y({backoff:r,requestFn:()=>this.#o(""+new URL("/api/v2/status",this.host),{headers:t,...this.#a}),tries:0});return Je(n)}async fetchRootKey(){return this.#e=this.#e??(async()=>{let t=await this.status();return this.rootKey=t.root_key,this.rootKey})(),await this.#e.finally(()=>{this.#e=null})}async#g(t){await Promise.all([this.#T(),this.#O(t)])}async#T(){if(!this.rootKey)if(this.rootKey===null&&this.host.toString()!=="https://icp-api.io"&&this.#t)await this.fetchRootKey();else throw Oe.fromCode(new Rt(this.#t))}async#O(t){this.#u&&!this.hasSyncedTime()&&await this.syncTime(t)}invalidateIdentity(){this.#n=null}replaceIdentity(t){this.#n=Promise.resolve(t)}async fetchSubnetKeys(t){let r=M.from(t);await this.#g(r);let o=(await qa({canisterId:r,paths:["subnet"],agent:this})).get("subnet");if(o&&typeof o=="object"&&"nodeKeys"in o)return this.#m.set(r.toText(),o),o}_transform(t){let r=Promise.resolve(t);if(t.endpoint===Qt.Call)for(let n of this.#h)r=r.then(o=>n(o).then(i=>i||o));else for(let n of this.#f)r=r.then(o=>n(o).then(i=>i||o));return r}getTimeDiffMsecs(){return this.#r}hasSyncedTime(){return this.#c}};function za(e,t){let r=e*Ya;return Wn.fromDeltaInMilliseconds(r,t)}var am=300*1e3;function Ku(){return pm(lm(cm(),1e3),dm(1e3,1.2),um(am))}function cm(){let e=!0;return async()=>e?(e=!1,!0):!1}function lm(e,t){return async(r,n,o)=>{if(await e(r,n,o))return new Promise(i=>setTimeout(i,t))}}function um(e){let t=Date.now()+e;return async(r,n,o)=>{if(Date.now()>t)throw ne.fromCode(new fn(`Request timed out after ${e} msec`,n,o))}}function dm(e,t){let r=e;return()=>new Promise(n=>setTimeout(()=>{r*=t,n()},r))}function pm(...e){return async(t,r,n)=>{for(let o of e)await o(t,r,n)}}var $u={preSignReadStateRequest:!1};function Gu(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Za(e,t){return e!==null&&typeof e=="object"&&Gu(e,t)}function hm(e,t){return Gu(e,t)&&typeof e[t]=="function"}function Hu(e){return Za(e,"body")&&Za(e.body,"content")&&e.body.content.request_type===wn.ReadState&&Za(e.body.content,"ingress_expiry")&&typeof e.body.content.ingress_expiry=="object"&&e.body.content.ingress_expiry!==null&&hm(e.body.content.ingress_expiry,"toHash")}async function Xa(e,t,r,n={}){let o=[ee("request_status"),r],i,s;if(n.preSignReadStateRequest??!1?(s=await mm({paths:[o],agent:e,pollingOptions:n}),i=await e.readState(t,{paths:[o]},void 0,s)):i=await e.readState(t,{paths:[o]}),e.rootKey==null)throw Oe.fromCode(new Rt);let c=await Ar.create({certificate:i.certificate,rootKey:e.rootKey,canisterId:t,blsVerify:n.blsVerify,agent:e}),u=Ve(c.lookup_path([...o,ee("status")])),p;switch(typeof u>"u"?p=Ct.Unknown:p=new TextDecoder().decode(u),p){case Ct.Replied:return{reply:Ve(c.lookup_path([...o,"reply"])),certificate:c};case Ct.Received:case Ct.Unknown:case Ct.Processing:{let d=n.strategy??Ku();return await d(t,r,p),Xa(e,t,r,{...n,strategy:d,request:s})}case Ct.Rejected:{let d=new Uint8Array(Ve(c.lookup_path([...o,"reject_code"])))[0],l=new TextDecoder().decode(Ve(c.lookup_path([...o,"reject_message"]))),f=Ve(c.lookup_path([...o,"error_code"])),h=f?new TextDecoder().decode(f):void 0;throw yr.fromCode(new kn(r,d,l,h))}case Ct.Done:throw xe.fromCode(new vi(r))}throw wr}async function mm(e){let{paths:t,agent:r,pollingOptions:n}=e;if(n.request&&Hu(n.request))return n.request;let o=await r.createReadStateRequest?.({paths:t},void 0);if(!Hu(o))throw z.fromCode(new Pi(o));return o}var st=Symbol.for("ic-agent-metadata"),oo=class e{static agentOf(t){return t[st].config.agent}static interfaceOf(t){return t[st].service}static canisterIdOf(t){return M.from(t[st].config.canisterId)}static createActorClass(t,r){let n=t({IDL:gn});class o extends e{constructor(s){if(!s.canisterId)throw z.fromCode(new No(s.canisterId));let a=typeof s.canisterId=="string"?M.fromText(s.canisterId):s.canisterId;super({config:{...Ju,...s,canisterId:a},service:n});for(let[c,u]of n._fields)r?.httpDetails&&u.annotations.push(Qa),r?.certificate&&u.annotations.push(Wu),this[c]=ym(this,c,u,s.blsVerify)}}return o}static createActor(t,r){if(!r.canisterId)throw z.fromCode(new No(r.canisterId));return new(this.createActorClass(t))(r)}static createActorWithHttpDetails(t,r){return new(this.createActorClass(t,{httpDetails:!0}))(r)}static createActorWithExtendedDetails(t,r,n={httpDetails:!0,certificate:!0}){return new(this.createActorClass(t,n))(r)}constructor(t){this[st]=Object.freeze(t)}};function no(e,t){let r=gn.decode(e,t);switch(r.length){case 0:return;case 1:return r[0];default:return r}}var Ju={pollingOptions:$u},Qa="http-details",Wu="certificate";function ym(e,t,r,n){let o;r.annotations.includes("query")||r.annotations.includes("composite_query")?o=async(s,...a)=>{s={...s,...e[st].config.queryTransform?.(t,a,{...e[st].config,...s})};let c=s.agent||e[st].config.agent||new cr,u=M.from(s.canisterId||e[st].config.canisterId),p=gn.encode(r.argTypes,a),d=await c.query(u,{methodName:t,arg:p,effectiveCanisterId:s.effectiveCanisterId}),l={...d.httpDetails,requestDetails:d.requestDetails};switch(d.status){case fr.Rejected:{let f=new Ei(d.requestId,d.reject_code,d.reject_message,d.error_code,d.signatures);throw f.callContext={canisterId:u,methodName:t,httpDetails:l},yr.fromCode(f)}case fr.Replied:return r.annotations.includes(Qa)?{httpDetails:l,result:no(r.retTypes,d.reply.arg)}:no(r.retTypes,d.reply.arg)}}:o=async(s,...a)=>{s={...s,...e[st].config.callTransform?.(t,a,{...e[st].config,...s})};let c=s.agent||e[st].config.agent||cr.createSync(),{canisterId:u,effectiveCanisterId:p,pollingOptions:d}={...Ju,...e[st].config,...s},l=M.from(u),f=p!==void 0?M.from(p):l,h=gn.encode(r.argTypes,a),{requestId:m,response:g,requestDetails:_}=await c.call(l,{methodName:t,arg:h,effectiveCanisterId:f,nonce:s.nonce}),x,y;if(jc(g.body)){if(c.rootKey==null)throw Oe.fromCode(new Rt);let R=g.body.certificate;y=await Ar.create({certificate:R,rootKey:c.rootKey,canisterId:f,blsVerify:n,agent:c});let I=[ee("request_status"),m];switch(new TextDecoder().decode(Ve(y.lookup_path([...I,"status"])))){case"replied":x=Ve(y.lookup_path([...I,"reply"]));break;case"rejected":{let v=new Uint8Array(Ve(y.lookup_path([...I,"reject_code"])))[0],C=new TextDecoder().decode(Ve(y.lookup_path([...I,"reject_message"]))),S=Ve(y.lookup_path([...I,"error_code"])),b=S?new TextDecoder().decode(S):void 0,N=new kn(m,v,C,b);throw N.callContext={canisterId:l,methodName:t,httpDetails:g},yr.fromCode(N)}}}else if(Mc(g.body)){let{reject_code:R,reject_message:I,error_code:w}=g.body,v=new Ri(m,R,I,w);throw v.callContext={canisterId:l,methodName:t,httpDetails:g},yr.fromCode(v)}if(g.status===202){let R={...d,blsVerify:n},I=await Xa(c,f,m,R);y=I.certificate,x=I.reply}let T=r.annotations.includes(Qa),E=r.annotations.includes(Wu),O={...g,requestDetails:_};if(x!==void 0)return T&&E?{httpDetails:O,certificate:y,result:no(r.retTypes,x)}:E?{certificate:y,result:no(r.retTypes,x)}:T?{httpDetails:O,result:no(r.retTypes,x)}:no(r.retTypes,x);{let R=new Ue(`Call was returned undefined. We cannot determine if the call was successful or not. Return types: [${r.retTypes.map(I=>I.display()).join(",")}].`);throw R.callContext={canisterId:l,methodName:t,httpDetails:O},xe.fromCode(R)}};let i=(...s)=>o({},...s);return i.withOptions=s=>(...a)=>o(s,...a),i}var gm=(e=>(e[e.FractionalMoreThan8Decimals=0]="FractionalMoreThan8Decimals",e[e.InvalidFormat=1]="InvalidFormat",e[e.FractionalTooManyDecimals=2]="FractionalTooManyDecimals",e))(gm||{}),Ax=BigInt(1e8);var k=e=>e==null,W=e=>!k(e),ei=e=>W(e)&&e!=="",io=e=>!ei(e);var xm=class extends Error{},ti=(e,t)=>{if(e==null)throw new xm(t)};var lr=e=>new Uint8Array(e),fs=e=>Array.from(e);var Yu=({a:e,b:t})=>e.length===t.length&&e.every((r,n)=>r===t[n]);var zu="abcdefghijklmnopqrstuvwxyz234567",Qo=Object.create(null);for(let e=0;e<zu.length;e++)Qo[zu[e]]=e;Qo[0]=Qo.o;Qo[1]=Qo.i;var Cr=e=>btoa(String.fromCharCode(...new Uint8Array(e))),Zu=e=>Uint8Array.from(atob(e),t=>t.charCodeAt(0)),Sx=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);var ec="__bigint__",tc="__principal__",rc="__uint8array__",Xu=(e,t)=>typeof t=="bigint"?{[ec]:`${t}`}:W(t)&&M.isPrincipal(t)?{[tc]:M.from(t).toText()}:W(t)&&t instanceof Uint8Array?{[rc]:Array.from(t)}:t,Qu=(e,t)=>{let r=n=>t[n];return W(t)&&typeof t=="object"&&ec in t?BigInt(r(ec)):W(t)&&typeof t=="object"&&tc in t?M.fromText(r(tc)):W(t)&&typeof t=="object"&&rc in t?Uint8Array.from(r(rc)):t};var ie=e=>W(e)?[e]:[],ye=e=>e?.[0];var bm=({authData:e})=>{if(e.byteLength<37)return{invalidAuthData:null};if(e.byteLength<53)return{invalidAuthData:null};let t=e.slice(37,53),r=wm({bytes:t});return"aaguid"in r?{aaguidBytes:t,aaguidText:r.aaguid}:{unknownProvider:null}},wm=({bytes:e})=>{if(e.length!==16)return{invalidBytes:null};let t=(e instanceof Uint8Array?fs(e):e).map(r=>r.toString(16).padStart(2,"0")).join("").replace(/^(.{8})(.{4})(.{4})(.{4})(.{12})$/,"$1-$2-$3-$4-$5");return t==="00000000-0000-0000-0000-000000000000"?{unknownProvider:null}:{aaguid:t}};function Tm(e){let t=new DataView(new ArrayBuffer(2)),r=e.slice(53,55);[...new Uint8Array(r)].forEach((o,i)=>t.setUint8(i,o));let n=t.getUint16(0);return e.slice(55+n)}function Nm(e){return Sn(e,Xo)}var Om=class{constructor(e){this._cose=e,this.#e=Nm(e)}#e;toDer(){return this.#e}toRaw(){return new Uint8Array(this.#e)}},od=class{#e;#t;constructor({rawId:e,cose:t}){this.#e=e,this.#t=new Om(t)}getPublicKey(){return this.#t}getCredentialId(){return this.#e}getCredentialIdText(){return Cr(this.#e)}},Em=class extends od{#e;#t;constructor({authData:e,...t}){super(t);let r=bm({authData:e});this.#e="aaguidText"in r?r.aaguidText:void 0,this.#t="aaguidBytes"in r?r.aaguidBytes:void 0}getAAGUID(){return this.#t}getAAGUIDText(){return this.#e}},Rm=class extends od{},vm=class extends Error{},Im=class extends Error{},Am=class extends Error{},Sm=class extends Error{},Fm=class extends Error{},Cm=class extends Error{},Vm=class extends Error{},ed=class extends Error{};var Pm={ECDSA_WITH_SHA256:-7,RSA_WITH_SHA256:-257},Bm=6e4,id=()=>window.crypto.getRandomValues(new Uint8Array(16)),Dm=()=>id(),Um=()=>id(),km=()=>{let{location:{href:e}}=window;try{let{hostname:t}=new URL(e);return t}catch{throw new vm}},sd=({appId:e})=>e?.id??km(),Lm=({appId:e,user:t}={})=>{let{document:{title:r}}=window,n=()=>({rp:{name:e?.name??r,id:sd({appId:e})}}),o=()=>({user:{id:Um(),name:t?.name??t?.displayName??r,displayName:t?.displayName??r}});return{attestation:"direct",challenge:Dm(),...n(),...o(),pubKeyCredParams:Object.values(Pm).map(i=>({type:"public-key",alg:i})),excludeCredentials:[],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred",residentKey:"required",requireResidentKey:!0}}},qm=(e={})=>({rpId:sd(e),allowCredentials:[],userVerification:"required"}),nc=async({fn:e,step:t,onProgress:r})=>{r?.({step:t,state:"in_progress"});try{let n=await e();return r?.({step:t,state:"success"}),n}catch(n){throw r?.({step:t,state:"error"}),n}},Vr=(e=>(e[e.RequestingUserCredential=0]="RequestingUserCredential",e[e.FinalizingCredential=1]="FinalizingCredential",e[e.Signing=2]="Signing",e))(Vr||{}),ad=({timeout:e})=>AbortSignal.timeout(e??Bm),Mm=async({challenge:e,credentialIds:t,passkeyOptions:r,timeout:n})=>await navigator.credentials.get({publicKey:{...qm(r),challenge:e.buffer,allowCredentials:(t??[]).map(o=>({id:o.buffer,type:"public-key"}))},signal:ad({timeout:n})}),td=e=>{if(e.status!=="initialized")throw new Im},rd=e=>{if(k(e))throw new Am},nd=({type:e})=>{if(e!=="public-key")throw new Sm},oc=class ri extends Ft{#e;#t;constructor({onProgress:t,...r}){if(super(),this.#e=t,"retrievePublicKey"in r){let{retrievePublicKey:n}=r;this.#t={status:"pending",retrievePublicKey:n};return}this.#t=ri.#r({credential:new Em(r)})}static#r({credential:t}){return{status:"initialized",credential:t}}static async createWithNewCredential({passkeyOptions:t,timeout:r,...n}={}){let o=await navigator.credentials.create({publicKey:Lm(t),signal:ad({timeout:r})});rd(o),nd(o);let{response:{attestationObject:i},rawId:s}=o;if(k(i))throw new Fm;let{authData:a}=$i.decode(lr(i)),c=Tm(a);return new ri({...n,rawId:lr(s),cose:c,authData:a})}static async createWithExistingCredential(t){return new ri(t)}getPublicKey(){td(this.#t);let{credential:t}=this.#t;return t.getPublicKey()}getCredential(){td(this.#t);let{credential:t}=this.#t;return t}async sign(t){let r=await nc({fn:async()=>{let n=await Mm({challenge:t,...this.#t.status==="initialized"&&{credentialIds:[this.#t.credential.getCredentialId()]}});return rd(n),nd(n),n},step:0,onProgress:this.#e});return await nc({fn:async()=>{let{rawId:n}=r;if(this.#t.status==="initialized"){if(!Yu({a:this.#t.credential.getCredentialId(),b:lr(n)}))throw new Cm;return}let{retrievePublicKey:o}=this.#t,i=await o({credentialId:lr(n)});this.#t=ri.#r({credential:new Rm({rawId:lr(n),cose:i})})},step:1,onProgress:this.#e}),await nc({fn:async()=>{let{response:n}=r,{clientDataJSON:o}=n,{authenticatorData:i,signature:s}="authenticatorData"in n&&"signature"in n?n:{};if(k(i))throw new ed;if(k(s))throw new ed;let a=$i.encode({authenticator_data:i,client_data_json:new TextDecoder().decode(o),signature:lr(s)});if(k(a))throw new Vm;return Object.assign(a,{__signature__:void 0}),a},step:2,onProgress:this.#e})}},jm=async()=>W(window.PublicKeyCredential)&&"isUserVerifyingPlatformAuthenticatorAvailable"in PublicKeyCredential?await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():!1;var so=class{callbacks=[];populate(t){this.callbacks.forEach(({callback:r})=>r(t))}subscribe(t){let r=Symbol();return this.callbacks.push({id:r,callback:t}),()=>this.callbacks=this.callbacks.filter(({id:n})=>n!==r)}};var Pe=class e extends so{static instance;authUser=null;constructor(){super()}static getInstance(){return e.instance||(e.instance=new e),e.instance}set(t){this.authUser=t,this.populate(t)}get(){return this.authUser}subscribe(t){let r=super.subscribe(t);return t(this.authUser),r}reset(){this.authUser=null,this.populate(this.authUser)}};var ni=({message:e,detail:t})=>{let r=new CustomEvent(e,{detail:t,bubbles:!0});document.dispatchEvent(r)};var ao="http://127.0.0.1:5987",cd="rdmx6-jaaaa-aaaaa-aaadq-cai";var ld=async({identity:e,container:t})=>{let n=W(t)&&t!==!1?t===!0?ao:t:"https://icp-api.io",o=W(t);return await cr.create({identity:e,shouldFetchRootKey:o,host:n})};var co=class e{static instance;#e=void 0;constructor(){}static getInstance(){return k(e.instance)&&(e.instance=new e),e.instance}async getAgent({identity:t,...r}){let n=t.getPrincipal().toText();if(k(this.#e)||k(this.#e[n])){let o=await ld({identity:t,...r});return this.#e={...this.#e??{},[n]:o},o}return this.#e[n]}reset(){this.#e=null}};var lo=class e{static instance;#e=void 0;constructor(){}static getInstance(){return k(e.instance)&&(e.instance=new e),e.instance}async getActor({satelliteId:t,identity:r,actorKey:n,...o}){let i=`${n}#${r.getPrincipal().toText()}#${t};`;if(k(this.#e)||k(this.#e[i])){let s=await this.createActor({satelliteId:t,identity:r,...o});return this.#e={...this.#e??{},[i]:s},s}return this.#e[i]}reset(){this.#e=null}async createActor({idlFactory:t,satelliteId:r,...n}){let o=await co.getInstance().getAgent(n);return oo.createActor(t,{agent:o,canisterId:r})}};function ud(e){return e!==null&&typeof e=="object"}var oi=class e{static from(t){if(typeof t=="string"){let r=Ne(t);return this.fromRaw(r)}else if(ud(t)){let r=t;if(ud(r)&&Object.hasOwnProperty.call(r,"__derEncodedPublicKey__"))return this.fromDer(r);if(ArrayBuffer.isView(r)){let n=r;return this.fromRaw(vt(n.buffer))}else{if(r instanceof ArrayBuffer)return this.fromRaw(vt(r));if("rawKey"in r&&r.rawKey instanceof Uint8Array)return this.fromRaw(r.rawKey);if("derKey"in r)return this.fromDer(r.derKey);if("toDer"in r)return this.fromDer(r.toDer())}}throw new Error("Cannot construct Ed25519PublicKey from the provided key.")}static fromRaw(t){return new e(t)}static fromDer(t){return new e(this.derDecode(t))}static{this.RAW_KEY_LENGTH=32}static derEncode(t){let r=Sn(t,An);return r.__derEncodedPublicKey__=void 0,r}static derDecode(t){let r=Fn(t,An);if(r.length!==this.RAW_KEY_LENGTH)throw new Error("An Ed25519 public key must be exactly 32bytes long");return r}#e;get rawKey(){return this.#e}#t;get derKey(){return this.#t}constructor(t){if(t.byteLength!==e.RAW_KEY_LENGTH)throw new Error("An Ed25519 public key must be exactly 32bytes long");this.#e=t,this.#t=e.derEncode(t)}toDer(){return this.derKey}toRaw(){return this.rawKey}},Nt=class e extends Ft{static generate(t){if(t&&t.length!==32)throw new Error("Ed25519 Seed needs to be 32 bytes long.");t||(t=Ke.utils.randomPrivateKey()),ll(t,new Uint8Array(new Array(32).fill(0)))&&console.warn("Seed is all zeros. This is not a secure seed. Please provide a seed with sufficient entropy if this is a production environment.");let r=new Uint8Array(32);for(let o=0;o<32;o++)r[o]=t[o];let n=Ke.getPublicKey(r);return e.fromKeyPair(n,r)}static fromParsedJson(t){let[r,n]=t;return new e(oi.fromDer(Ne(r)),Ne(n))}static fromJSON(t){let r=JSON.parse(t);if(Array.isArray(r)){if(typeof r[0]=="string"&&typeof r[1]=="string")return this.fromParsedJson([r[0],r[1]]);throw new Error("Deserialization error: JSON must have at least 2 items.")}throw new Error(`Deserialization error: Invalid JSON type for string: ${JSON.stringify(t)}`)}static fromKeyPair(t,r){return new e(oi.fromRaw(t),r)}static fromSecretKey(t){let r=Ke.getPublicKey(t);return e.fromKeyPair(r,t)}#e;#t;constructor(t,r){super(),this.#e=oi.from(t),this.#t=r}toJSON(){return[H(this.#e.toDer()),H(this.#t)]}getKeyPair(){return{secretKey:this.#t,publicKey:this.#e}}getPublicKey(){return this.#e}async sign(t){let r=Ke.sign(t,this.#t.slice(0,32));return Object.defineProperty(r,"__signature__",{enumerable:!1,value:void 0}),r}static verify(t,r,n){let[o,i,s]=[t,r,n].map(a=>(typeof a=="string"&&(a=Ne(a)),vt(a)));return Ke.verify(o,i,s)}};var ic=class e extends Error{constructor(t){super(t),this.message=t,Object.setPrototypeOf(this,e.prototype)}};function dd(e){if(typeof global<"u"&&global.crypto&&global.crypto.subtle)return global.crypto.subtle;if(e)return e;if(typeof crypto<"u"&&crypto.subtle)return crypto.subtle;throw new ic("Global crypto was not available and none was provided. Please inlcude a SubtleCrypto implementation. See https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto")}var Vt=class e extends Ft{static async generate(t){let{extractable:r=!1,keyUsages:n=["sign","verify"],subtleCrypto:o}=t??{},i=dd(o),s=await i.generateKey({name:"ECDSA",namedCurve:"P-256"},r,n),a=vt(await i.exportKey("spki",s.publicKey));return Object.assign(a,{__derEncodedPublicKey__:void 0}),new this(s,a,i)}static async fromKeyPair(t,r){let n=dd(r),o=vt(await n.exportKey("spki",t.publicKey));return Object.assign(o,{__derEncodedPublicKey__:void 0}),new e(t,o,n)}constructor(t,r,n){super(),this._keyPair=t,this._derKey=r,this._subtleCrypto=n}getKeyPair(){return this._keyPair}getPublicKey(){let t=this._derKey,r=Object.create(this._keyPair.publicKey);return r.toDer=function(){return t},r}async sign(t){let r={name:"ECDSA",hash:{name:"SHA-256"}},n=vt(await this._subtleCrypto.sign(r,this._keyPair.privateKey,t));return Object.assign(n,{__signature__:void 0}),n}};var hs=class{#e;get rawKey(){return this.#e.rawKey}get derKey(){return this.#e.derKey}toDer(){return this.#e.toDer()}getPublicKey(){return this.#e}getPrincipal(){if(!this.#e.rawKey)throw new Error("Cannot get principal from a public key without a raw key.");return M.fromUint8Array(new Uint8Array(this.#e.rawKey))}transformRequest(){return Promise.reject("Not implemented. You are attempting to use a partial identity to sign calls, but this identity only has access to the public key.To sign calls, use a DelegationIdentity instead.")}constructor(t){this.#e=t}};function ms(e){return e instanceof Uint8Array?H(e):H(new Uint8Array(e))}function sc(e){if(typeof e!="string"||e.length<64)throw new Error("Invalid public key.");return Ne(e)}var Pr=class{constructor(t,r,n){this.pubkey=t,this.expiration=r,this.targets=n}toCborValue(){return{pubkey:this.pubkey,expiration:this.expiration,...this.targets&&{targets:this.targets}}}toJSON(){return{expiration:this.expiration.toString(16),pubkey:ms(this.pubkey),...this.targets&&{targets:this.targets.map(t=>t.toHex())}}}};async function Km(e,t,r,n){let o=new Pr(t.toDer(),BigInt(+r)*BigInt(1e6),n),i=new Uint8Array([...ia,...new Uint8Array(Zt({...o}))]),s=await e.sign(i);return{delegation:o,signature:s}}var ur=class e{static async create(t,r,n=new Date(Date.now()+900*1e3),o={}){let i=await Km(t,r,n,o.targets);return new e([...o.previous?.delegations||[],i],o.previous?.publicKey||t.getPublicKey().toDer())}static fromJSON(t){let{publicKey:r,delegations:n}=typeof t=="string"?JSON.parse(t):t;if(!Array.isArray(n))throw new Error("Invalid delegations.");let o=n.map(i=>{let{delegation:s,signature:a}=i,{pubkey:c,expiration:u,targets:p}=s;if(p!==void 0&&!Array.isArray(p))throw new Error("Invalid targets.");return{delegation:new Pr(sc(c),BigInt("0x"+u),p&&p.map(d=>{if(typeof d!="string")throw new Error("Invalid target.");return M.fromHex(d)})),signature:sc(a)}});return new this(o,sc(r))}static fromDelegations(t,r){return new this(t,r)}constructor(t,r){this.delegations=t,this.publicKey=r}toJSON(){return{delegations:this.delegations.map(t=>{let{delegation:r,signature:n}=t,{targets:o}=r;return{delegation:{expiration:r.expiration.toString(16),pubkey:ms(r.pubkey),...o&&{targets:o.map(i=>i.toHex())}},signature:ms(n)}}),publicKey:ms(this.publicKey)}}},dr=class extends Ft{static fromDelegation(t,r){return new this(t,r)}constructor(t,r){super(),this._inner=t,this._delegation=r}getDelegation(){return this._delegation}getPublicKey(){return{derKey:this._delegation.publicKey,toDer:()=>this._delegation.publicKey}}sign(t){return this._inner.sign(t)}async transformRequest(t){let{body:r,...n}=t,o=await Zt(r);return{...n,body:{content:r,sender_sig:await this.sign(new Uint8Array([...Co,...new Uint8Array(o)])),sender_delegation:this._delegation.delegations,sender_pubkey:this._delegation.publicKey}}}},ii=class e extends hs{#e;get delegation(){return this.#e}constructor(t,r){super(t),this.#e=r}static fromDelegation(t,r){return new e(t,r)}};function ac(e,t){for(let{delegation:o}of e.delegations)if(+new Date(Number(o.expiration/BigInt(1e6)))<=+Date.now())return!1;let r=[],n=t?.scope;n&&(Array.isArray(n)?r.push(...n.map(o=>typeof o=="string"?M.fromText(o):o)):r.push(typeof n=="string"?M.fromText(n):n));for(let o of r){let i=o.toText();for(let{delegation:s}of e.delegations){if(s.targets===void 0)continue;let a=!0;for(let c of s.targets)if(c.toText()===i){a=!1;break}if(a)return!1}}return!0}var pd=["mousedown","mousemove","keydown","touchstart","wheel"],si=class e{callbacks=[];idleTimeout=600*1e3;timeoutID=void 0;static create(t={}){return new e(t)}constructor(t={}){let{onIdle:r,idleTimeout:n=600*1e3}=t||{};this.callbacks=r?[r]:[],this.idleTimeout=n;let o=this._resetTimer.bind(this);window.addEventListener("load",o,!0),pd.forEach(s=>{document.addEventListener(s,o,!0)});let i=(s,a)=>{let c;return(...u)=>{let p=this,d=()=>{c=void 0,s.apply(p,u)};clearTimeout(c),c=window.setTimeout(d,a)}};if(t?.captureScroll){let s=i(o,t?.scrollDebounce??100);window.addEventListener("scroll",s,!0)}o()}registerCallback(t){this.callbacks.push(t)}exit(){clearTimeout(this.timeoutID),window.removeEventListener("load",this._resetTimer,!0);let t=this._resetTimer.bind(this);pd.forEach(r=>{document.removeEventListener(r,t,!0)}),this.callbacks.forEach(r=>{r()})}_resetTimer(){let t=this.exit.bind(this);window.clearTimeout(this.timeoutID),this.timeoutID=window.setTimeout(t,this.idleTimeout)}};var Hm=(e,t)=>t.some(r=>e instanceof r),fd,hd;function $m(){return fd||(fd=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Gm(){return hd||(hd=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var md=new WeakMap,lc=new WeakMap,_d=new WeakMap,cc=new WeakMap,dc=new WeakMap;function Jm(e){let t=new Promise((r,n)=>{let o=()=>{e.removeEventListener("success",i),e.removeEventListener("error",s)},i=()=>{r(Pt(e.result)),o()},s=()=>{n(e.error),o()};e.addEventListener("success",i),e.addEventListener("error",s)});return t.then(r=>{r instanceof IDBCursor&&md.set(r,e)}).catch(()=>{}),dc.set(t,e),t}function Wm(e){if(lc.has(e))return;let t=new Promise((r,n)=>{let o=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",s),e.removeEventListener("abort",s)},i=()=>{r(),o()},s=()=>{n(e.error||new DOMException("AbortError","AbortError")),o()};e.addEventListener("complete",i),e.addEventListener("error",s),e.addEventListener("abort",s)});lc.set(e,t)}var uc={get(e,t,r){if(e instanceof IDBTransaction){if(t==="done")return lc.get(e);if(t==="objectStoreNames")return e.objectStoreNames||_d.get(e);if(t==="store")return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return Pt(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&(t==="done"||t==="store")?!0:t in e}};function yd(e){uc=e(uc)}function zm(e){return e===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(t,...r){let n=e.call(_s(this),t,...r);return _d.set(n,t.sort?t.sort():[t]),Pt(n)}:Gm().includes(e)?function(...t){return e.apply(_s(this),t),Pt(md.get(this))}:function(...t){return Pt(e.apply(_s(this),t))}}function Ym(e){return typeof e=="function"?zm(e):(e instanceof IDBTransaction&&Wm(e),Hm(e,$m())?new Proxy(e,uc):e)}function Pt(e){if(e instanceof IDBRequest)return Jm(e);if(cc.has(e))return cc.get(e);let t=Ym(e);return t!==e&&(cc.set(e,t),dc.set(t,e)),t}var _s=e=>dc.get(e);function xd(e,t,{blocked:r,upgrade:n,blocking:o,terminated:i}={}){let s=indexedDB.open(e,t),a=Pt(s);return n&&s.addEventListener("upgradeneeded",c=>{n(Pt(s.result),c.oldVersion,c.newVersion,Pt(s.transaction),c)}),r&&s.addEventListener("blocked",c=>r(c.oldVersion,c.newVersion,c)),a.then(c=>{i&&c.addEventListener("close",()=>i()),o&&c.addEventListener("versionchange",u=>o(u.oldVersion,u.newVersion,u))}).catch(()=>{}),a}var Zm=["get","getKey","getAll","getAllKeys","count"],Xm=["put","add","delete","clear"],pc=new Map;function gd(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(pc.get(t))return pc.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,o=Xm.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||Zm.includes(r)))return;let i=async function(s,...a){let c=this.transaction(s,o?"readwrite":"readonly"),u=c.store;return n&&(u=u.index(a.shift())),(await Promise.all([u[r](...a),o&&c.done]))[0]};return pc.set(t,i),i}yd(e=>({...e,get:(t,r,n)=>gd(t,r)||e.get(t,r,n),has:(t,r)=>!!gd(t,r)||e.has(t,r)}));var bd="auth-client-db",wd="ic-keyval",Qm=async(e=bd,t=wd,r)=>(globalThis.localStorage?.getItem(He)&&(globalThis.localStorage.removeItem(He),globalThis.localStorage.removeItem($e)),await xd(e,r,{upgrade:n=>{n.objectStoreNames.contains(t)&&n.clear(t),n.createObjectStore(t)}}));async function e_(e,t,r){return await e.get(t,r)}async function t_(e,t,r,n){return await e.put(t,n,r)}async function r_(e,t,r){return await e.delete(t,r)}var ys=class e{constructor(t,r){this._db=t,this._storeName=r}static async create(t){let{dbName:r=bd,storeName:n=wd,version:o=Td}=t??{},i=await Qm(r,n,o);return new e(i,n)}async set(t,r){return await t_(this._db,this._storeName,t,r)}async get(t){return await e_(this._db,this._storeName,t)??null}async remove(t){return await r_(this._db,this._storeName,t)}};var $e="identity",He="delegation",Nd="iv",Td=1,ai=class{constructor(t="ic-",r){this.prefix=t,this._localStorage=r}get(t){return Promise.resolve(this._getLocalStorage().getItem(this.prefix+t))}set(t,r){return this._getLocalStorage().setItem(this.prefix+t,r),Promise.resolve()}remove(t){return this._getLocalStorage().removeItem(this.prefix+t),Promise.resolve()}_getLocalStorage(){if(this._localStorage)return this._localStorage;let t=globalThis.localStorage;if(!t)throw new Error("Could not find local storage.");return t}},Bt=class{#e;constructor(t){this.#e=t??{}}initializedDb;get _db(){return new Promise((t,r)=>{if(this.initializedDb){t(this.initializedDb);return}ys.create(this.#e).then(n=>{this.initializedDb=n,t(n)}).catch(r)})}async get(t){return await(await this._db).get(t)}async set(t,r){await(await this._db).set(t,r)}async remove(t){await(await this._db).remove(t)}};var n_=BigInt(1e9),o_=BigInt(3600),i_=n_*o_,s_="https://identity.internetcomputer.org",a_="#authorize",c_=BigInt(8)*i_,fc="ECDSA",hc="Ed25519",l_=500,gs="UserInterrupt",ci=class e{constructor(t,r,n,o,i,s,a,c){this._identity=t,this._key=r,this._chain=n,this._storage=o,this.idleManager=i,this._createOptions=s,this._idpWindow=a,this._eventHandler=c,this._registerDefaultIdleCallback()}static async create(t={}){let r=t.storage??new Bt,n=t.keyType??fc,o=null;if(t.identity)o=t.identity;else{let c=await r.get($e);if(!c)try{let u=new ai,p=await u.get(He),d=await u.get($e);p&&d&&n===fc&&(console.log("Discovered an identity stored in localstorage. Migrating to IndexedDB"),await r.set(He,p),await r.set($e,d),c=p,await u.remove(He),await u.remove($e))}catch(u){console.error(`error while attempting to recover localstorage: ${u}`)}if(c)try{typeof c=="object"?n===hc&&typeof c=="string"?o=Nt.fromJSON(c):o=await Vt.fromKeyPair(c):typeof c=="string"&&(o=Nt.fromJSON(c))}catch{}}let i=new rt,s=null;if(o)try{let c=await r.get(He);if(typeof c=="object"&&c!==null)throw new Error("Delegation chain is incorrectly stored. A delegation chain should be stored as a string.");t.identity?i=t.identity:c&&(s=ur.fromJSON(c),ac(s)?"toDer"in o?i=ii.fromDelegation(o,s):i=dr.fromDelegation(o,s):(await mc(r),o=null))}catch(c){console.error(c),await mc(r),o=null}let a;return t.idleOptions?.disableIdle?a=void 0:(s||t.identity)&&(a=si.create(t.idleOptions)),o||(n===hc?o=Nt.generate():(t.storage&&n===fc&&console.warn(`You are using a custom storage provider that may not support CryptoKey storage. If you are using a custom storage provider that does not support CryptoKey storage, you should use '${hc}' as the key type, as it can serialize to a string`),o=await Vt.generate()),await Od(r,o)),new e(i,o,s,r,a,t)}_registerDefaultIdleCallback(){let t=this._createOptions?.idleOptions;!t?.onIdle&&!t?.disableDefaultIdleCallback&&this.idleManager?.registerCallback(()=>{this.logout(),location.reload()})}async _handleSuccess(t,r){let n=t.delegations.map(a=>({delegation:new Pr(a.delegation.pubkey,a.delegation.expiration,a.delegation.targets),signature:a.signature})),o=ur.fromDelegations(n,t.userPublicKey),i=this._key;if(!i)return;this._chain=o,"toDer"in i?this._identity=ii.fromDelegation(i,this._chain):this._identity=dr.fromDelegation(i,this._chain),this._idpWindow?.close();let s=this._createOptions?.idleOptions;!this.idleManager&&!s?.disableIdle&&(this.idleManager=si.create(s),this._registerDefaultIdleCallback()),this._removeEventListener(),delete this._idpWindow,this._chain&&await this._storage.set(He,JSON.stringify(this._chain.toJSON())),await Od(this._storage,this._key),r?.(t)}getIdentity(){return this._identity}async isAuthenticated(){return!this.getIdentity().getPrincipal().isAnonymous()&&this._chain!==null&&ac(this._chain)}async login(t){let r=u_(this._createOptions?.loginOptions,t),n=r?.maxTimeToLive??c_,o=new URL(r?.identityProvider?.toString()||s_);o.hash=a_,this._idpWindow?.close(),this._removeEventListener(),this._eventHandler=this._getEventHandler(o,{maxTimeToLive:n,...r}),window.addEventListener("message",this._eventHandler),this._idpWindow=window.open(o.toString(),"idpWindow",r?.windowOpenerFeatures)??void 0;let i=()=>{this._idpWindow&&(this._idpWindow.closed?this._handleFailure(gs,r?.onError):setTimeout(i,l_))};i()}_getEventHandler(t,r){return async n=>{if(n.origin!==t.origin)return;let o=n.data;switch(o.kind){case"authorize-ready":{let i={kind:"authorize-client",sessionPublicKey:new Uint8Array(this._key?.getPublicKey().toDer()),maxTimeToLive:r?.maxTimeToLive,allowPinAuthentication:r?.allowPinAuthentication,derivationOrigin:r?.derivationOrigin?.toString(),...r?.customValues};this._idpWindow?.postMessage(i,t.origin);break}case"authorize-client-success":try{await this._handleSuccess(o,r?.onSuccess)}catch(i){this._handleFailure(i.message,r?.onError)}break;case"authorize-client-failure":this._handleFailure(o.text,r?.onError);break}}}_handleFailure(t,r){this._idpWindow?.close(),r?.(t),this._removeEventListener(),delete this._idpWindow}_removeEventListener(){this._eventHandler&&window.removeEventListener("message",this._eventHandler),this._eventHandler=void 0}async logout(t={}){if(await mc(this._storage),this._identity=new rt,this._chain=null,t.returnTo)try{window.history.pushState({},"",t.returnTo)}catch{window.location.href=t.returnTo}}};async function mc(e){await e.remove($e),await e.remove(He),await e.remove(Nd)}function u_(e,t){if(!e&&!t)return;let r=e?.customValues||t?.customValues?{...e?.customValues,...t?.customValues}:void 0;return{...e,...t,customValues:r}}function d_(e){if(e instanceof Vt)return e.getKeyPair();if(e instanceof Nt)return JSON.stringify(e.toJSON());throw new Error("Unsupported key type")}async function Od(e,t){let r=d_(t);await e.set($e,r)}var Be=class e{static#e;#t;constructor(){}static getInstance(){return k(this.#e)&&(this.#e=new e),this.#e}createAuthClient=async()=>(this.#t=await ci.create({idleOptions:{disableIdle:!0,disableDefaultIdleCallback:!0}}),this.#t);safeCreateAuthClient=async()=>(await new Bt().remove($e),await this.createAuthClient());getAuthClient=()=>this.#t;logout=async()=>{await this.#t?.logout(),this.#t=null};setAuthClientStorage=async({delegationChain:t,sessionKey:r})=>{let n=new Bt;await Promise.all([n.set($e,r.getKeyPair()),n.set(He,JSON.stringify(t.toJSON()))])}};var _c=async e=>{await p_(),await Be.getInstance().createAuthClient(),e?.windowReload!==!1&&window.location.reload()},p_=async()=>{await Be.getInstance().logout(),Pe.getInstance().reset(),lo.getInstance().reset(),co.getInstance().reset()};var Ed=e=>{let t=e===!0?"./workers/auth.worker.js":e,r=new Worker(t),n=async()=>{ni({message:"junoSignOutAuthTimer"}),await _c()};return r.onmessage=async({data:o})=>{let{msg:i,data:s}=o;switch(i){case"junoSignOutAuthTimer":await n();return;case"junoDelegationRemainingTime":ni({message:"junoDelegationRemainingTime",detail:s?.authRemainingTime})}},Pe.getInstance().subscribe(o=>{if(k(o)){r.postMessage({msg:"junoStopAuthTimer"});return}r.postMessage({msg:"junoStartAuthTimer"})})};var uo=class e{static#e;#t;#r;static CHANNEL_NAME="juno_core_auth_channel";static MESSAGE_LOGIN_SUCCESS="authClientLoginSuccess";constructor(){this.#t=new BroadcastChannel(e.CHANNEL_NAME),this.#r=window.crypto.randomUUID()}static getInstance(){return k(this.#e)&&(this.#e=new e),this.#e}onLoginSuccess=t=>{let{location:{origin:r}}=window;this.#t.onmessage=async({origin:n,data:o})=>{n===r&&W(o)&&o.msg==="authClientLoginSuccess"&&ei(o.emitterId)&&o.emitterId!==this.#r&&await t()}};destroy=()=>{this.#t.close(),e.#e=null};postLoginSuccess=()=>{let t={emitterId:this.#r,msg:e.MESSAGE_LOGIN_SUCCESS};this.#t.postMessage(t)};get __test__only__emitter_id__(){return this.#r}};var ve=class e extends so{static instance;env;constructor(){super()}static getInstance(){return e.instance||(e.instance=new e),e.instance}set(t){this.env=t,this.populate(t)}get(){return this.env}reset(){this.env=null}subscribe(t){let r=super.subscribe(t);return t(this.env),r}};var li=async({fn:e,syncTabsOnSuccess:t})=>{let{authenticated:r}=await f_({fn:e});!r||!t||ve.getInstance().get()?.syncTabs===!1||h_()},Rd=async({fn:e})=>{let{createAuthClient:t}=Be.getInstance(),n=await(await t()).isAuthenticated();await e({authenticated:n})},f_=async({fn:e})=>{let{createAuthClient:t,safeCreateAuthClient:r}=Be.getInstance();return await(await t()).isAuthenticated()?(await e(),{authenticated:!0}):(await r(),{authenticated:!1})},h_=()=>{try{uo.getInstance().postLoginSuccess()}catch(e){console.warn("Auth BroadcastChannel posting failed",e)}};var yc=({error:e,type:t})=>typeof e=="string"?e.includes(t):e instanceof Error?e.message.includes(t):!1;var vd="juno.datastore.error.user.cannot_update";var Dt={certified:!1};var xs=()=>Be.getInstance().getAuthClient()?.getIdentity(),m_=async()=>{let{getAuthClient:e,createAuthClient:t}=Be.getInstance();return(e()??await t()).getIdentity()},__=async()=>{let e=Pe.getInstance().get();if(k(e))return null;let t=Be.getInstance().getAuthClient();return await t?.isAuthenticated()??!1?t?.getIdentity()??null:null};var le=e=>W(e)?e:xs()??new rt;var gc=({IDL:e})=>{let t=e.Variant({Heap:e.Null,Stable:e.Null}),r=e.Record({system_memory:e.Opt(t)}),n=e.Record({controllers:e.Vec(e.Principal),storage:e.Opt(r)}),o=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),i=e.Variant({OpenId:o}),s=e.Record({updated_at:e.Nat64,owner:e.Principal,data:e.Vec(e.Nat8),description:e.Opt(e.Text),created_at:e.Nat64,version:e.Opt(e.Nat64)}),a=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),c=e.Record({doc:s,delegation:a}),u=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),p=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),d=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),l=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),f=e.Variant({PrepareDelegation:l,RegisterUser:e.Text}),h=e.Variant({Ok:c,Err:f}),m=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),g=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),_=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),x=e.Record({field:_,desc:e.Bool}),y=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),T=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(y),description:e.Opt(e.Text),created_at:e.Opt(y)}),E=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),O=e.Record({order:e.Opt(x),owner:e.Opt(e.Principal),matcher:e.Opt(T),paginate:e.Opt(E)}),R=e.Record({controllers:e.Vec(e.Principal)}),I=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),w=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,scope:I,expires_at:e.Opt(e.Nat64)}),v=e.Record({version:e.Opt(e.Nat64)}),C=e.Variant({Db:e.Null,Storage:e.Null}),S=e.Record({version:e.Opt(e.Nat64)}),b=e.Record({proposal_ids:e.Vec(e.Nat)}),N=e.Record({cycles:e.Nat,destination_id:e.Principal}),F=e.Record({token:e.Opt(e.Text),collection:e.Text,owner:e.Principal,name:e.Text,description:e.Opt(e.Text),full_path:e.Text}),B=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),L=e.Record({key:F,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,B)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),A=e.Variant({Google:e.Null}),V=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),P=e.Record({delegation:e.Opt(V),client_id:e.Text}),D=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(A,P))}),U=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),te=e.Record({allowed_callers:e.Vec(e.Principal)}),Q=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(D),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(U),rules:e.Opt(te)}),$=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),se=e.Record({updated_at:e.Opt(e.Nat64),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt($)}),pe=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),Se=e.Variant({Deny:e.Null,Allow:e.Null}),re=e.Record({status_code:e.Nat16,location:e.Text}),ue=e.Record({iframe:e.Opt(pe),updated_at:e.Opt(e.Nat64),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt($),raw_access:e.Opt(Se),redirects:e.Opt(e.Vec(e.Tuple(e.Text,re)))}),Dr=e.Record({db:e.Opt(se),authentication:e.Opt(Q),storage:ue}),kt=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Ye=e.Variant({OpenId:kt}),Ur=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),kr=e.Record({signature:e.Vec(e.Nat8),delegation:Ur}),at=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),Lr=e.Variant({Ok:kr,Err:at}),qr=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),Mr=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Lt=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),ct=e.Variant({AssetsUpgrade:Mr,SegmentsDeployment:Lt}),Ze=e.Record({status:qr,updated_at:e.Nat64,sha256:e.Opt(e.Vec(e.Nat8)),executed_at:e.Opt(e.Nat64),owner:e.Principal,created_at:e.Nat64,version:e.Opt(e.Nat64),proposal_type:ct}),Xe=e.Variant({Controllers:e.Null,Private:e.Null,Public:e.Null,Managed:e.Null}),lt=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),ut=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),updated_at:e.Nat64,max_size:e.Opt(e.Nat),read:Xe,created_at:e.Nat64,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(lt),write:Xe,max_changes_per_user:e.Opt(e.Nat32)}),jr=e.Record({url:e.Text,method:e.Text,body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),certificate_version:e.Opt(e.Nat16)}),dt=e.Record({memory:t,token:e.Opt(e.Text),sha256:e.Opt(e.Vec(e.Nat8)),headers:e.Vec(e.Tuple(e.Text,e.Text)),index:e.Nat64,encoding_type:e.Text,full_path:e.Text}),Kr=e.Variant({Callback:e.Record({token:dt,callback:e.Func([],[],["query"])})}),Hr=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(Kr),status_code:e.Nat16}),$r=e.Record({token:e.Opt(dt),body:e.Vec(e.Nat8)}),pt=e.Record({token:e.Opt(e.Text),collection:e.Text,name:e.Text,description:e.Opt(e.Text),encoding_type:e.Opt(e.Text),full_path:e.Text}),Qe=e.Record({batch_id:e.Nat}),Gr=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,L)),items_length:e.Nat64}),Jr=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),Wr=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,s)),items_length:e.Nat64}),zr=e.Record({desc:e.Bool}),Yr=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Zr=e.Record({order:e.Opt(zr),paginate:e.Opt(Yr)}),Xr=e.Record({proposal_id:e.Nat}),Qr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Xr,Ze)),items_length:e.Nat64}),en=e.Record({include_system:e.Bool}),tn=e.Record({matcher:e.Opt(en)}),rn=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,ut)),items_length:e.Nat64}),nn=e.Record({stable:e.Nat64,heap:e.Nat64}),qt=e.Record({openid:e.Opt(D),version:e.Opt(e.Nat64),internet_identity:e.Opt(U),rules:e.Opt(te)}),on=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:I,expires_at:e.Opt(e.Nat64)}),sn=e.Record({controller:on,controllers:e.Vec(e.Principal)}),an=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt($)}),Mt=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),ks=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),max_size:e.Opt(e.Nat),read:Xe,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(lt),write:Xe,max_changes_per_user:e.Opt(e.Nat32)}),Ls=e.Record({iframe:e.Opt(pe),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),version:e.Opt(e.Nat64),max_memory_size:e.Opt($),raw_access:e.Opt(Se),redirects:e.Opt(e.Vec(e.Tuple(e.Text,re)))}),fo=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),ho=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([i],[h],[]),commit_asset_upload:e.Func([m],[],[]),commit_proposal:e.Func([g],[e.Null],[]),commit_proposal_asset_upload:e.Func([m],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(m)],[],[]),count_assets:e.Func([e.Text,O],[e.Nat64],["query"]),count_collection_assets:e.Func([e.Text],[e.Nat64],["query"]),count_collection_docs:e.Func([e.Text],[e.Nat64],["query"]),count_docs:e.Func([e.Text,O],[e.Nat64],["query"]),count_proposals:e.Func([],[e.Nat64],["query"]),del_asset:e.Func([e.Text,e.Text],[],[]),del_assets:e.Func([e.Text],[],[]),del_controllers:e.Func([R],[e.Vec(e.Tuple(e.Principal,w))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,v],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,O],[],[]),del_filtered_docs:e.Func([e.Text,O],[],[]),del_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[],[]),del_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,v))],[],[]),del_rule:e.Func([C,e.Text,S],[],[]),delete_proposal_assets:e.Func([b],[],[]),deposit_cycles:e.Func([N],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(L)],["query"]),get_auth_config:e.Func([],[e.Opt(Q)],["query"]),get_config:e.Func([],[Dr],[]),get_db_config:e.Func([],[e.Opt(se)],["query"]),get_delegation:e.Func([Ye],[Lr],["query"]),get_doc:e.Func([e.Text,e.Text],[e.Opt(s)],["query"]),get_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(L)))],["query"]),get_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(s)))],["query"]),get_proposal:e.Func([e.Nat],[e.Opt(Ze)],["query"]),get_rule:e.Func([C,e.Text],[e.Opt(ut)],["query"]),get_storage_config:e.Func([],[ue],["query"]),http_request:e.Func([jr],[Hr],["query"]),http_request_streaming_callback:e.Func([dt],[$r],["query"]),init_asset_upload:e.Func([pt],[Qe],[]),init_proposal:e.Func([ct],[e.Nat,Ze],[]),init_proposal_asset_upload:e.Func([pt,e.Nat],[Qe],[]),init_proposal_many_assets_upload:e.Func([e.Vec(pt),e.Nat],[e.Vec(e.Tuple(e.Text,Qe))],[]),list_assets:e.Func([e.Text,O],[Gr],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,w))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Jr))],["query"]),list_docs:e.Func([e.Text,O],[Wr],["query"]),list_proposals:e.Func([Zr],[Qr],["query"]),list_rules:e.Func([C,tn],[rn],["query"]),memory_size:e.Func([],[nn],["query"]),reject_proposal:e.Func([g],[e.Null],[]),set_asset_token:e.Func([e.Text,e.Text,e.Opt(e.Text)],[],[]),set_auth_config:e.Func([qt],[Q],[]),set_controllers:e.Func([sn],[e.Vec(e.Tuple(e.Principal,w))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([an],[se],[]),set_doc:e.Func([e.Text,e.Text,Mt],[s],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,Mt))],[e.Vec(e.Tuple(e.Text,s))],[]),set_rule:e.Func([C,e.Text,ks],[ut],[]),set_storage_config:e.Func([Ls],[ue],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ze],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([fo],[ho],[]),upload_proposal_asset_chunk:e.Func([fo],[ho],[])})},xc=({IDL:e})=>{let t=e.Variant({Heap:e.Null,Stable:e.Null}),r=e.Record({system_memory:e.Opt(t)}),n=e.Record({controllers:e.Vec(e.Principal),storage:e.Opt(r)}),o=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),i=e.Variant({OpenId:o}),s=e.Record({updated_at:e.Nat64,owner:e.Principal,data:e.Vec(e.Nat8),description:e.Opt(e.Text),created_at:e.Nat64,version:e.Opt(e.Nat64)}),a=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),c=e.Record({doc:s,delegation:a}),u=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),p=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),d=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),l=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),f=e.Variant({PrepareDelegation:l,RegisterUser:e.Text}),h=e.Variant({Ok:c,Err:f}),m=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),g=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),_=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),x=e.Record({field:_,desc:e.Bool}),y=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),T=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(y),description:e.Opt(e.Text),created_at:e.Opt(y)}),E=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),O=e.Record({order:e.Opt(x),owner:e.Opt(e.Principal),matcher:e.Opt(T),paginate:e.Opt(E)}),R=e.Record({controllers:e.Vec(e.Principal)}),I=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),w=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,scope:I,expires_at:e.Opt(e.Nat64)}),v=e.Record({version:e.Opt(e.Nat64)}),C=e.Variant({Db:e.Null,Storage:e.Null}),S=e.Record({version:e.Opt(e.Nat64)}),b=e.Record({proposal_ids:e.Vec(e.Nat)}),N=e.Record({cycles:e.Nat,destination_id:e.Principal}),F=e.Record({token:e.Opt(e.Text),collection:e.Text,owner:e.Principal,name:e.Text,description:e.Opt(e.Text),full_path:e.Text}),B=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),L=e.Record({key:F,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,B)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),A=e.Variant({Google:e.Null}),V=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),P=e.Record({delegation:e.Opt(V),client_id:e.Text}),D=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(A,P))}),U=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),te=e.Record({allowed_callers:e.Vec(e.Principal)}),Q=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(D),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(U),rules:e.Opt(te)}),$=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),se=e.Record({updated_at:e.Opt(e.Nat64),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt($)}),pe=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),Se=e.Variant({Deny:e.Null,Allow:e.Null}),re=e.Record({status_code:e.Nat16,location:e.Text}),ue=e.Record({iframe:e.Opt(pe),updated_at:e.Opt(e.Nat64),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt($),raw_access:e.Opt(Se),redirects:e.Opt(e.Vec(e.Tuple(e.Text,re)))}),Dr=e.Record({db:e.Opt(se),authentication:e.Opt(Q),storage:ue}),kt=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Ye=e.Variant({OpenId:kt}),Ur=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),kr=e.Record({signature:e.Vec(e.Nat8),delegation:Ur}),at=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),Lr=e.Variant({Ok:kr,Err:at}),qr=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),Mr=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Lt=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),ct=e.Variant({AssetsUpgrade:Mr,SegmentsDeployment:Lt}),Ze=e.Record({status:qr,updated_at:e.Nat64,sha256:e.Opt(e.Vec(e.Nat8)),executed_at:e.Opt(e.Nat64),owner:e.Principal,created_at:e.Nat64,version:e.Opt(e.Nat64),proposal_type:ct}),Xe=e.Variant({Controllers:e.Null,Private:e.Null,Public:e.Null,Managed:e.Null}),lt=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),ut=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),updated_at:e.Nat64,max_size:e.Opt(e.Nat),read:Xe,created_at:e.Nat64,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(lt),write:Xe,max_changes_per_user:e.Opt(e.Nat32)}),jr=e.Record({url:e.Text,method:e.Text,body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),certificate_version:e.Opt(e.Nat16)}),dt=e.Record({memory:t,token:e.Opt(e.Text),sha256:e.Opt(e.Vec(e.Nat8)),headers:e.Vec(e.Tuple(e.Text,e.Text)),index:e.Nat64,encoding_type:e.Text,full_path:e.Text}),Kr=e.Variant({Callback:e.Record({token:dt,callback:e.Func([],[],[])})}),Hr=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(Kr),status_code:e.Nat16}),$r=e.Record({token:e.Opt(dt),body:e.Vec(e.Nat8)}),pt=e.Record({token:e.Opt(e.Text),collection:e.Text,name:e.Text,description:e.Opt(e.Text),encoding_type:e.Opt(e.Text),full_path:e.Text}),Qe=e.Record({batch_id:e.Nat}),Gr=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,L)),items_length:e.Nat64}),Jr=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),Wr=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,s)),items_length:e.Nat64}),zr=e.Record({desc:e.Bool}),Yr=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Zr=e.Record({order:e.Opt(zr),paginate:e.Opt(Yr)}),Xr=e.Record({proposal_id:e.Nat}),Qr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Xr,Ze)),items_length:e.Nat64}),en=e.Record({include_system:e.Bool}),tn=e.Record({matcher:e.Opt(en)}),rn=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,ut)),items_length:e.Nat64}),nn=e.Record({stable:e.Nat64,heap:e.Nat64}),qt=e.Record({openid:e.Opt(D),version:e.Opt(e.Nat64),internet_identity:e.Opt(U),rules:e.Opt(te)}),on=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:I,expires_at:e.Opt(e.Nat64)}),sn=e.Record({controller:on,controllers:e.Vec(e.Principal)}),an=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt($)}),Mt=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),ks=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),max_size:e.Opt(e.Nat),read:Xe,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(lt),write:Xe,max_changes_per_user:e.Opt(e.Nat32)}),Ls=e.Record({iframe:e.Opt(pe),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),version:e.Opt(e.Nat64),max_memory_size:e.Opt($),raw_access:e.Opt(Se),redirects:e.Opt(e.Vec(e.Tuple(e.Text,re)))}),fo=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),ho=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([i],[h],[]),commit_asset_upload:e.Func([m],[],[]),commit_proposal:e.Func([g],[e.Null],[]),commit_proposal_asset_upload:e.Func([m],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(m)],[],[]),count_assets:e.Func([e.Text,O],[e.Nat64],[]),count_collection_assets:e.Func([e.Text],[e.Nat64],[]),count_collection_docs:e.Func([e.Text],[e.Nat64],[]),count_docs:e.Func([e.Text,O],[e.Nat64],[]),count_proposals:e.Func([],[e.Nat64],[]),del_asset:e.Func([e.Text,e.Text],[],[]),del_assets:e.Func([e.Text],[],[]),del_controllers:e.Func([R],[e.Vec(e.Tuple(e.Principal,w))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,v],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,O],[],[]),del_filtered_docs:e.Func([e.Text,O],[],[]),del_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[],[]),del_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,v))],[],[]),del_rule:e.Func([C,e.Text,S],[],[]),delete_proposal_assets:e.Func([b],[],[]),deposit_cycles:e.Func([N],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(L)],[]),get_auth_config:e.Func([],[e.Opt(Q)],[]),get_config:e.Func([],[Dr],[]),get_db_config:e.Func([],[e.Opt(se)],[]),get_delegation:e.Func([Ye],[Lr],[]),get_doc:e.Func([e.Text,e.Text],[e.Opt(s)],[]),get_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(L)))],[]),get_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(s)))],[]),get_proposal:e.Func([e.Nat],[e.Opt(Ze)],[]),get_rule:e.Func([C,e.Text],[e.Opt(ut)],[]),get_storage_config:e.Func([],[ue],[]),http_request:e.Func([jr],[Hr],[]),http_request_streaming_callback:e.Func([dt],[$r],[]),init_asset_upload:e.Func([pt],[Qe],[]),init_proposal:e.Func([ct],[e.Nat,Ze],[]),init_proposal_asset_upload:e.Func([pt,e.Nat],[Qe],[]),init_proposal_many_assets_upload:e.Func([e.Vec(pt),e.Nat],[e.Vec(e.Tuple(e.Text,Qe))],[]),list_assets:e.Func([e.Text,O],[Gr],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,w))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Jr))],[]),list_docs:e.Func([e.Text,O],[Wr],[]),list_proposals:e.Func([Zr],[Qr],[]),list_rules:e.Func([C,tn],[rn],[]),memory_size:e.Func([],[nn],[]),reject_proposal:e.Func([g],[e.Null],[]),set_asset_token:e.Func([e.Text,e.Text,e.Opt(e.Text)],[],[]),set_auth_config:e.Func([qt],[Q],[]),set_controllers:e.Func([sn],[e.Vec(e.Tuple(e.Principal,w))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([an],[se],[]),set_doc:e.Func([e.Text,e.Text,Mt],[s],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,Mt))],[e.Vec(e.Tuple(e.Text,s))],[]),set_rule:e.Func([C,e.Text,ks],[ut],[]),set_storage_config:e.Func([Ls],[ue],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ze],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([fo],[ho],[]),upload_proposal_asset_chunk:e.Func([fo],[ho],[])})},y_=({IDL:e})=>{let t=e.Record({e8s:e.Nat64}),r=e.Record({mission_control_id:e.Principal,user:e.Principal}),n=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),o=e.Variant({OpenId:n}),i=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),s=e.Variant({Google:e.Null}),a=e.Record({name:e.Opt(e.Text),locale:e.Opt(e.Text),family_name:e.Opt(e.Text),email:e.Opt(e.Text),picture:e.Opt(e.Text),given_name:e.Opt(e.Text)}),c=e.Record({provider:s,data:a}),u=e.Variant({InternetIdentity:e.Null,OpenId:c}),p=e.Record({updated_at:e.Nat64,credits:t,mission_control_id:e.Opt(e.Principal),provider:e.Opt(u),owner:e.Principal,created_at:e.Nat64}),d=e.Record({delegation:i,mission_control:p}),l=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),f=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),h=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),m=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text}),g=e.Variant({PrepareDelegation:m,RegisterUser:e.Text}),_=e.Variant({Ok:d,Err:g}),x=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),y=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),T=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),user:e.Principal}),E=e.Variant({Heap:e.Null,Stable:e.Null}),O=e.Record({system_memory:e.Opt(E)}),R=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),storage:e.Opt(O),user:e.Principal}),I=e.Record({controllers:e.Vec(e.Principal)}),w=e.Record({proposal_ids:e.Vec(e.Nat)}),v=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),C=e.Record({delegation:e.Opt(v),client_id:e.Text}),S=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(s,C))}),b=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),N=e.Record({allowed_callers:e.Vec(e.Principal)}),F=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(S),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(b),rules:e.Opt(N)}),B=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),L=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),A=e.Variant({Deny:e.Null,Allow:e.Null}),V=e.Record({status_code:e.Nat16,location:e.Text}),P=e.Record({iframe:e.Opt(B),updated_at:e.Opt(e.Nat64),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(L),raw_access:e.Opt(A),redirects:e.Opt(e.Vec(e.Tuple(e.Text,V)))}),D=e.Record({authentication:e.Opt(F),storage:P}),U=e.Record({user:e.Principal}),te=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Q=e.Variant({OpenId:te}),$=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),se=e.Record({signature:e.Vec(e.Nat8),delegation:$}),pe=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text}),Se=e.Variant({Ok:se,Err:pe}),re=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),ue=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Dr=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),kt=e.Variant({AssetsUpgrade:ue,SegmentsDeployment:Dr}),Ye=e.Record({status:re,updated_at:e.Nat64,sha256:e.Opt(e.Vec(e.Nat8)),executed_at:e.Opt(e.Nat64),owner:e.Principal,created_at:e.Nat64,version:e.Opt(e.Nat64),proposal_type:kt}),Ur=e.Record({url:e.Text,method:e.Text,body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),certificate_version:e.Opt(e.Nat16)}),kr=e.Variant({Heap:e.Null,Stable:e.Null}),at=e.Record({memory:kr,token:e.Opt(e.Text),sha256:e.Opt(e.Vec(e.Nat8)),headers:e.Vec(e.Tuple(e.Text,e.Text)),index:e.Nat64,encoding_type:e.Text,full_path:e.Text}),Lr=e.Variant({Callback:e.Record({token:at,callback:e.Func([],[],["query"])})}),qr=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(Lr),status_code:e.Nat16}),Mr=e.Record({token:e.Opt(at),body:e.Vec(e.Nat8)}),Lt=e.Record({token:e.Opt(e.Text),collection:e.Text,name:e.Text,description:e.Opt(e.Text),encoding_type:e.Opt(e.Text),full_path:e.Text}),ct=e.Record({batch_id:e.Nat}),Ze=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),Xe=e.Record({field:Ze,desc:e.Bool}),lt=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),ut=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(lt),description:e.Opt(e.Text),created_at:e.Opt(lt)}),jr=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),dt=e.Record({order:e.Opt(Xe),owner:e.Opt(e.Principal),matcher:e.Opt(ut),paginate:e.Opt(jr)}),Kr=e.Record({token:e.Opt(e.Text),collection:e.Text,owner:e.Principal,name:e.Text,description:e.Opt(e.Text),full_path:e.Text}),Hr=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),$r=e.Record({key:Kr,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,Hr)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),pt=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,$r)),items_length:e.Nat64}),Qe=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),Gr=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,scope:Qe,expires_at:e.Opt(e.Nat64)}),Jr=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),Wr=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),zr=e.Record({status:Wr,updated_at:e.Nat64,block_index_payment:e.Nat64,mission_control_id:e.Opt(e.Principal),created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64)}),Yr=e.Record({desc:e.Bool}),Zr=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Xr=e.Record({order:e.Opt(Yr),paginate:e.Opt(Zr)}),Qr=e.Record({proposal_id:e.Nat}),en=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Qr,Ye)),items_length:e.Nat64}),tn=e.Record({openid:e.Opt(S),version:e.Opt(e.Nat64),internet_identity:e.Opt(b),rules:e.Opt(N)}),rn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:Qe,expires_at:e.Opt(e.Nat64)}),nn=e.Record({controller:rn,controllers:e.Vec(e.Principal)}),qt=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),on=e.Record({iframe:e.Opt(B),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),version:e.Opt(e.Nat64),max_memory_size:e.Opt(L),raw_access:e.Opt(A),redirects:e.Opt(e.Vec(e.Tuple(e.Text,V)))}),sn=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),an=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Mt=e.Record({chunk_id:e.Nat});return e.Service({add_credits:e.Func([e.Principal,t],[],[]),add_invitation_code:e.Func([e.Text],[],[]),assert_mission_control_center:e.Func([r],[],["query"]),authenticate:e.Func([o],[_],[]),commit_proposal:e.Func([x],[e.Null],[]),commit_proposal_asset_upload:e.Func([y],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(y)],[],[]),count_proposals:e.Func([],[e.Nat64],["query"]),create_orbiter:e.Func([T],[e.Principal],[]),create_satellite:e.Func([R],[e.Principal],[]),del_controllers:e.Func([I],[],[]),del_custom_domain:e.Func([e.Text],[],[]),delete_proposal_assets:e.Func([w],[],[]),get_auth_config:e.Func([],[e.Opt(F)],["query"]),get_config:e.Func([],[D],["query"]),get_create_orbiter_fee:e.Func([U],[e.Opt(t)],["query"]),get_create_satellite_fee:e.Func([U],[e.Opt(t)],["query"]),get_credits:e.Func([],[t],["query"]),get_delegation:e.Func([Q],[Se],["query"]),get_proposal:e.Func([e.Nat],[e.Opt(Ye)],["query"]),get_storage_config:e.Func([],[P],["query"]),get_user_mission_control_center:e.Func([],[e.Opt(p)],["query"]),http_request:e.Func([Ur],[qr],["query"]),http_request_streaming_callback:e.Func([at],[Mr],["query"]),init_proposal:e.Func([kt],[e.Nat,Ye],[]),init_proposal_asset_upload:e.Func([Lt,e.Nat],[ct],[]),init_proposal_many_assets_upload:e.Func([e.Vec(Lt),e.Nat],[e.Vec(e.Tuple(e.Text,ct))],[]),init_user_mission_control_center:e.Func([],[p],[]),list_assets:e.Func([e.Text,dt],[pt],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,Gr))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Jr))],["query"]),list_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,zr))],["query"]),list_proposals:e.Func([Xr],[en],["query"]),list_user_mission_control_centers:e.Func([],[e.Vec(e.Tuple(e.Principal,p))],["query"]),reject_proposal:e.Func([x],[e.Null],[]),set_auth_config:e.Func([tn],[F],[]),set_controllers:e.Func([nn],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([qt,t],[],[]),set_storage_config:e.Func([on],[P],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ye],[]),update_rate_config:e.Func([qt,sn],[],[]),upload_proposal_asset_chunk:e.Func([an],[Mt],[])})},g_=({IDL:e})=>{let t=e.Record({e8s:e.Nat64}),r=e.Record({mission_control_id:e.Principal,user:e.Principal}),n=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),o=e.Variant({OpenId:n}),i=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),s=e.Variant({Google:e.Null}),a=e.Record({name:e.Opt(e.Text),locale:e.Opt(e.Text),family_name:e.Opt(e.Text),email:e.Opt(e.Text),picture:e.Opt(e.Text),given_name:e.Opt(e.Text)}),c=e.Record({provider:s,data:a}),u=e.Variant({InternetIdentity:e.Null,OpenId:c}),p=e.Record({updated_at:e.Nat64,credits:t,mission_control_id:e.Opt(e.Principal),provider:e.Opt(u),owner:e.Principal,created_at:e.Nat64}),d=e.Record({delegation:i,mission_control:p}),l=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),f=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),h=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),m=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text}),g=e.Variant({PrepareDelegation:m,RegisterUser:e.Text}),_=e.Variant({Ok:d,Err:g}),x=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),y=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),T=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),user:e.Principal}),E=e.Variant({Heap:e.Null,Stable:e.Null}),O=e.Record({system_memory:e.Opt(E)}),R=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),storage:e.Opt(O),user:e.Principal}),I=e.Record({controllers:e.Vec(e.Principal)}),w=e.Record({proposal_ids:e.Vec(e.Nat)}),v=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),C=e.Record({delegation:e.Opt(v),client_id:e.Text}),S=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(s,C))}),b=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),N=e.Record({allowed_callers:e.Vec(e.Principal)}),F=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(S),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(b),rules:e.Opt(N)}),B=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),L=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),A=e.Variant({Deny:e.Null,Allow:e.Null}),V=e.Record({status_code:e.Nat16,location:e.Text}),P=e.Record({iframe:e.Opt(B),updated_at:e.Opt(e.Nat64),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(L),raw_access:e.Opt(A),redirects:e.Opt(e.Vec(e.Tuple(e.Text,V)))}),D=e.Record({authentication:e.Opt(F),storage:P}),U=e.Record({user:e.Principal}),te=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Q=e.Variant({OpenId:te}),$=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),se=e.Record({signature:e.Vec(e.Nat8),delegation:$}),pe=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text}),Se=e.Variant({Ok:se,Err:pe}),re=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),ue=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Dr=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),kt=e.Variant({AssetsUpgrade:ue,SegmentsDeployment:Dr}),Ye=e.Record({status:re,updated_at:e.Nat64,sha256:e.Opt(e.Vec(e.Nat8)),executed_at:e.Opt(e.Nat64),owner:e.Principal,created_at:e.Nat64,version:e.Opt(e.Nat64),proposal_type:kt}),Ur=e.Record({url:e.Text,method:e.Text,body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),certificate_version:e.Opt(e.Nat16)}),kr=e.Variant({Heap:e.Null,Stable:e.Null}),at=e.Record({memory:kr,token:e.Opt(e.Text),sha256:e.Opt(e.Vec(e.Nat8)),headers:e.Vec(e.Tuple(e.Text,e.Text)),index:e.Nat64,encoding_type:e.Text,full_path:e.Text}),Lr=e.Variant({Callback:e.Record({token:at,callback:e.Func([],[],[])})}),qr=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(Lr),status_code:e.Nat16}),Mr=e.Record({token:e.Opt(at),body:e.Vec(e.Nat8)}),Lt=e.Record({token:e.Opt(e.Text),collection:e.Text,name:e.Text,description:e.Opt(e.Text),encoding_type:e.Opt(e.Text),full_path:e.Text}),ct=e.Record({batch_id:e.Nat}),Ze=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),Xe=e.Record({field:Ze,desc:e.Bool}),lt=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),ut=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(lt),description:e.Opt(e.Text),created_at:e.Opt(lt)}),jr=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),dt=e.Record({order:e.Opt(Xe),owner:e.Opt(e.Principal),matcher:e.Opt(ut),paginate:e.Opt(jr)}),Kr=e.Record({token:e.Opt(e.Text),collection:e.Text,owner:e.Principal,name:e.Text,description:e.Opt(e.Text),full_path:e.Text}),Hr=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),$r=e.Record({key:Kr,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,Hr)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),pt=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,$r)),items_length:e.Nat64}),Qe=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),Gr=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,scope:Qe,expires_at:e.Opt(e.Nat64)}),Jr=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),Wr=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),zr=e.Record({status:Wr,updated_at:e.Nat64,block_index_payment:e.Nat64,mission_control_id:e.Opt(e.Principal),created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64)}),Yr=e.Record({desc:e.Bool}),Zr=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Xr=e.Record({order:e.Opt(Yr),paginate:e.Opt(Zr)}),Qr=e.Record({proposal_id:e.Nat}),en=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Qr,Ye)),items_length:e.Nat64}),tn=e.Record({openid:e.Opt(S),version:e.Opt(e.Nat64),internet_identity:e.Opt(b),rules:e.Opt(N)}),rn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:Qe,expires_at:e.Opt(e.Nat64)}),nn=e.Record({controller:rn,controllers:e.Vec(e.Principal)}),qt=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),on=e.Record({iframe:e.Opt(B),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),version:e.Opt(e.Nat64),max_memory_size:e.Opt(L),raw_access:e.Opt(A),redirects:e.Opt(e.Vec(e.Tuple(e.Text,V)))}),sn=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),an=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Mt=e.Record({chunk_id:e.Nat});return e.Service({add_credits:e.Func([e.Principal,t],[],[]),add_invitation_code:e.Func([e.Text],[],[]),assert_mission_control_center:e.Func([r],[],[]),authenticate:e.Func([o],[_],[]),commit_proposal:e.Func([x],[e.Null],[]),commit_proposal_asset_upload:e.Func([y],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(y)],[],[]),count_proposals:e.Func([],[e.Nat64],[]),create_orbiter:e.Func([T],[e.Principal],[]),create_satellite:e.Func([R],[e.Principal],[]),del_controllers:e.Func([I],[],[]),del_custom_domain:e.Func([e.Text],[],[]),delete_proposal_assets:e.Func([w],[],[]),get_auth_config:e.Func([],[e.Opt(F)],[]),get_config:e.Func([],[D],[]),get_create_orbiter_fee:e.Func([U],[e.Opt(t)],[]),get_create_satellite_fee:e.Func([U],[e.Opt(t)],[]),get_credits:e.Func([],[t],[]),get_delegation:e.Func([Q],[Se],[]),get_proposal:e.Func([e.Nat],[e.Opt(Ye)],[]),get_storage_config:e.Func([],[P],[]),get_user_mission_control_center:e.Func([],[e.Opt(p)],[]),http_request:e.Func([Ur],[qr],[]),http_request_streaming_callback:e.Func([at],[Mr],[]),init_proposal:e.Func([kt],[e.Nat,Ye],[]),init_proposal_asset_upload:e.Func([Lt,e.Nat],[ct],[]),init_proposal_many_assets_upload:e.Func([e.Vec(Lt),e.Nat],[e.Vec(e.Tuple(e.Text,ct))],[]),init_user_mission_control_center:e.Func([],[p],[]),list_assets:e.Func([e.Text,dt],[pt],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,Gr))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Jr))],[]),list_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,zr))],[]),list_proposals:e.Func([Xr],[en],[]),list_user_mission_control_centers:e.Func([],[e.Vec(e.Tuple(e.Principal,p))],[]),reject_proposal:e.Func([x],[e.Null],[]),set_auth_config:e.Func([tn],[F],[]),set_controllers:e.Func([nn],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([qt,t],[],[]),set_storage_config:e.Func([on],[P],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ye],[]),update_rate_config:e.Func([qt,sn],[],[]),upload_proposal_asset_chunk:e.Func([an],[Mt],[])})};var x_=async({identity:e,host:t,localActor:r})=>await cr.create({identity:e,host:t,retryTimes:10,shouldFetchRootKey:r}),b_=async({agent:e,...t})=>e??await w_(t),w_=async({identity:e,container:t})=>{let r=W(t)&&t!==!1;return await x_({identity:e,host:r?t===!0?"http://127.0.0.1:5987":t:"https://icp-api.io",localActor:r})};var Id=({satelliteId:e,certified:t=!1,...r})=>Sd({canisterId:e,...r,idlFactory:t?xc:gc});var Ad=({consoleId:e,certified:t=!1,...r})=>Sd({canisterId:e,...r,idlFactory:t?g_:y_}),Sd=({canisterId:e,idlFactory:t,...r})=>{if(k(e))throw new Error("No canister ID provided.");return T_({canisterId:e,idlFactory:t,...r})},T_=async({canisterId:e,idlFactory:t,config:r,...n})=>{let o=await b_(n);return oo.createActor(t,{agent:o,canisterId:e,...r??{}})};var Fd=({satelliteId:e,container:t})=>{let{satelliteId:r}=bc({satelliteId:e}),{container:n}=wc({container:t});if(W(n)&&n!==!1){let{host:o,protocol:i}=new URL(n===!0?ao:n);return`${i}//${r??"unknown"}.${o.replace("127.0.0.1","localhost")}`}return`https://${r??"unknown"}.icp0.io`},bc=({satelliteId:e})=>W(e)?{satelliteId:e}:ve.getInstance().get()??{satelliteId:void 0},wc=({container:e})=>W(e)?{container:e}:ve.getInstance().get()??{container:void 0};var ge=({satellite:e,options:{certified:t}})=>Vd({idlFactory:t?xc:gc,actorKey:`stock#${t?"update":"query"}`,...e}),Cd=({idlFactory:e,...t})=>Vd({idlFactory:e,actorKey:"extended#query",...t}),Vd=async({satelliteId:e,container:t,...r})=>{let{satelliteId:n}=bc({satelliteId:e});ti(n,"No satellite ID defined. Did you initialize Juno?");let{container:o}=wc({container:t});return await lo.getInstance().getActor({satelliteId:n,container:o,...r})};var bs=class extends Error{},pr=class extends Error{},ws=class extends Error{},Ts=class extends Error{},Ns=class extends Error{},Os=class extends Error{},Es=class extends Error{},Rs=class extends Error{},vs=class extends Error{};var Pd=e=>{if(k(e))return ie();switch(e.matcher){case"equal":return ie({Equal:e.timestamp});case"greaterThan":return ie({GreaterThan:e.timestamp});case"lessThan":return ie({LessThan:e.timestamp});case"between":return ie({Between:[e.timestamps.start,e.timestamps.end]});default:throw new vs("Invalid list matcher for timestamp",e)}},Br=({matcher:e,paginate:t,order:r,owner:n})=>({matcher:k(e)?[]:[{key:ie(e.key),description:ie(e.description),created_at:Pd(e.createdAt),updated_at:Pd(e.updatedAt)}],paginate:ie(k(t)?void 0:{start_after:ie(t.startAfter),limit:ie(k(t.limit)?void 0:BigInt(t.limit))}),order:ie(k(r)?void 0:{desc:r.desc,field:r.field==="created_at"?{CreatedAt:null}:r.field==="updated_at"?{UpdatedAt:null}:{Keys:null}}),owner:ie(k(n)?void 0:typeof n=="string"?M.fromText(n):n)});var Bd=async e=>{let t=new Blob([JSON.stringify(e,Xu)],{type:"application/json; charset=utf-8"});return new Uint8Array(await t.arrayBuffer())},Is=async e=>{let t=new Blob([e instanceof Uint8Array?e:new Uint8Array(e)],{type:"application/json; charset=utf-8"});return JSON.parse(await t.text(),Qu)},As=()=>typeof window<"u";var Dd=async({data:e})=>{try{return await Is(e)}catch(t){console.error("The data parsing has failed, mapping to undefined as a fallback.",t);return}};var Tc=async e=>{let{data:t,version:r,description:n}=e;return{description:ie(n),data:await Bd(t),version:ie(r)}},Nc=e=>{let{version:t}=e;return{version:ie(t)}},Cn=async({doc:e,key:t})=>{let{owner:r,version:n,description:o,data:i,...s}=e;return{key:t,description:ye(o),owner:r.toText(),data:await Is(i),version:ye(n),...s}};var Ud=async({collection:e,key:t,...r})=>{let{get_doc:n}=await ge(r),o=ye(await n(e,t));if(!k(o))return Cn({doc:o,key:t})},kd=async({docs:e,...t})=>{let{get_many_docs:r}=await ge(t),n=e.map(({collection:s,key:a})=>[s,a]),o=await r(n),i=[];for(let[s,a]of o){let c=ye(a);i.push(W(c)?await Cn({key:s,doc:c}):void 0)}return i},Ld=async({collection:e,doc:t,...r})=>{let{set_doc:n}=await ge(r),{key:o}=t,i=await Tc(t),s=await n(e,o,i);return await Cn({key:o,doc:s})},qd=async({docs:e,...t})=>{let{set_many_docs:r}=await ge(t),n=[];for(let{collection:s,doc:a}of e){let{key:c}=a;n.push([s,c,await Tc(a)])}let o=await r(n),i=[];for(let[s,a]of o)i.push(await Cn({key:s,doc:a}));return i},Md=async({collection:e,doc:t,...r})=>{let{del_doc:n}=await ge(r),{key:o}=t;return n(e,o,Nc(t))},jd=async({docs:e,...t})=>{let{del_many_docs:r}=await ge(t),n=e.map(({collection:o,doc:i})=>[o,i.key,Nc(i)]);await r(n)},Kd=async({collection:e,filter:t,...r})=>{let{del_filtered_docs:n}=await ge(r);return n(e,Br(t))},Hd=async({collection:e,filter:t,...r})=>{let{list_docs:n}=await ge(r),{items:o,items_page:i,items_length:s,matches_length:a,matches_pages:c}=await n(e,Br(t)),u=[];for(let[p,d]of o){let{data:l,owner:f,description:h,version:m,...g}=d;u.push({key:p,description:ye(h),owner:f.toText(),data:await Dd({data:l}),version:ye(m),...g})}return{items:u,items_length:s,items_page:ye(i),matches_length:a,matches_pages:ye(c)}},$d=async({collection:e,filter:t,...r})=>{let{count_docs:n}=await ge(r);return n(e,Br(t))};var Ss=async({satellite:e,options:t,...r})=>{let n=le(e?.identity);return await Ud({...r,satellite:{...e,identity:n},options:t??Dt})},hT=async({satellite:e,options:t,...r})=>{let n=le(e?.identity);return await kd({...r,satellite:{...e,identity:n},options:t??Dt})},Gd=async({satellite:e,...t})=>{let r=le(e?.identity);return await Ld({...t,satellite:{...e,identity:r},options:{certified:!0}})},Jd=async({satellite:e,...t})=>{let r=le(e?.identity);return await qd({...t,satellite:{...e,identity:r},options:{certified:!0}})},mT=async({satellite:e,...t})=>{let r=le(e?.identity);return await Md({...t,satellite:{...e,identity:r},options:{certified:!0}})},_T=async({satellite:e,...t})=>{let r=le(e?.identity);return await jd({...t,satellite:{...e,identity:r},options:{certified:!0}})},yT=async({satellite:e,filter:t,...r})=>{let n=le(e?.identity);return await Kd({...r,filter:t??{},satellite:{...e,identity:n},options:{certified:!0}})},gT=async({satellite:e,options:t,filter:r,...n})=>{let o=le(e?.identity);return await Hd({...n,filter:r??{},satellite:{...e,identity:o},options:t??Dt})},xT=async({satellite:e,options:t,filter:r,...n})=>{let o=le(e?.identity);return await $d({...n,filter:r??{},satellite:{...e,identity:o},options:t??Dt})};var Wd=async({provider:e})=>{let{user:t,userId:r}=await Fs();if(W(t))return t;try{return await N_({userId:r,provider:e})}catch(n){if(yc({error:n,type:vd})){let o=await zd({userId:r});if(W(o))return o}throw n}},Fs=async()=>{let e=xs();if(k(e))throw new Rs("No identity to initialize the user. Have you initialized Juno?");let t=e.getPrincipal().toText(),r=await zd({userId:t});return{userId:t,user:r}},zd=({userId:e})=>Ss({collection:"#user",key:e}),N_=({userId:e,...t})=>Gd({collection:"#user",doc:{key:e,data:t}});var Cs=async({syncTabsOnSuccess:e}={syncTabsOnSuccess:!1})=>{await li({fn:async()=>{let{user:r}=await Fs();Pe.getInstance().set(r??null)},syncTabsOnSuccess:e})},Yd=async()=>{await Rd({fn:async({authenticated:t})=>{let n=t?Fs:()=>Promise.resolve({user:null}),{user:o}=await n();Pe.getInstance().set(o??null)}})},Vs=async({user:e})=>{await li({fn:async()=>{Pe.getInstance().set(e)},syncTabsOnSuccess:!0})};var Zd=()=>{try{let e=uo.getInstance(),t=async()=>{await Yd(),ni({message:"junoSignInReload"})};return e.onLoginSuccess(t),()=>{e?.destroy()}}catch(e){console.warn("Auth BroadcastChannel initialization failed",e);return}};var Xd=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_SATELLITE_ID??import.meta.env?.PUBLIC_SATELLITE_ID:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_SATELLITE_ID??e():e()},Qd=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_CONTAINER??import.meta.env?.PUBLIC_CONTAINER:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_CONTAINER??e():e()},ep=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_GOOGLE_CLIENT_ID??import.meta.env?.PUBLIC_GOOGLE_CLIENT_ID:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID??e():e()};var tp=BigInt(144e11),rp=!1,np={width:576,height:576},op={width:424,height:576};var ui="internetcomputer.org",ip="ic0.app",sp="id.ai";var ap=({width:e,height:t})=>{if(!As()||k(window)||k(window.top))return;let{top:{innerWidth:r,innerHeight:n}}=window,o=n/2+screenY-t/2,i=r/2+screenX-e/2;return`toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=${e}, height=${t}, top=${o}, left=${i}`};var Ut=async({fn:e,step:t,onProgress:r})=>{r?.({step:t,state:"in_progress"});try{let n=await e();return r?.({step:t,state:"success"}),n}catch(n){throw r?.({step:t,state:"error"}),n}};var cp=(r=>(r[r.AuthorizingWithProvider=0]="AuthorizingWithProvider",r[r.CreatingOrRetrievingUser=1]="CreatingOrRetrievingUser",r))(cp||{});var Ps=class{async signIn({options:t,authClient:r,initAuth:n}){await Ut({fn:async()=>await this.#e({options:t,authClient:r}),step:0,onProgress:t?.onProgress}),await Ut({fn:async()=>await n({provider:this.id}),step:1,onProgress:t?.onProgress})}#e({options:t,authClient:r}){return new Promise(async(n,o)=>{if(k(r)){o(new pr("No client is ready to perform a sign-in. Have you initialized the Satellite?"));return}await r.login({onSuccess:n,onError:i=>{if(i===gs){o(new ws(i));return}o(new bs(i))},maxTimeToLive:t?.maxTimeToLiveInNanoseconds??tp,allowPinAuthentication:t?.allowPin??rp,...t?.derivationOrigin!==void 0&&{derivationOrigin:t.derivationOrigin},...this.signInOptions({windowed:t?.windowed})})})}};var Bs=class extends Ps{#e;constructor({domain:t}){super(),this.#e=t}get id(){return"internet_identity"}signInOptions({windowed:t}){let n=(()=>{let i=ve.getInstance().get()?.container;if(k(i)||i===!1){let p=[ui,ip].includes(this.#e??ui);return io(this.#e)?`https://identity.${ui}`:p?`https://identity.${this.#e??ui}`:`https://${this.#e}`}let s=ve.getInstance().get(),a=W(s)&&W(s?.internetIdentityId)?s.internetIdentityId:cd,{host:c,protocol:u}=new URL(i===!0?ao:i);return/apple/i.test(navigator?.vendor)?`${u}//${c}?canisterId=${a}`:`${u}//${a}.${c.replace("127.0.0.1","localhost")}`})();return{...t!==!1&&{windowOpenerFeatures:ap((()=>{try{let{hostname:i}=new URL(n);return i.includes(sp)}catch{return!1}})()?op:np)},identityProvider:n}}};var Oc=class extends Error{},Ec=class extends Error{},Rc=class extends Error{},vc=class extends Error{},Ic=class extends Error{},Ac=class extends Error{},Sc=class extends Error{},Fc=class extends Error{},Cc=class extends Error{},Vc=class extends Error{};var lp=({auth:e,identity:t})=>"satellite"in e?Id({...e.satellite,identity:t}):Ad({...e.console,identity:t}),O_=async({actorParams:e,args:t})=>{let{authenticate:r}=await lp(e);return await r(t)},E_=async({actorParams:e,args:t})=>{let{get_delegation:r}=await lp(e);return await r(t)},R_=({delegations:e,sessionKey:t})=>{let[r,n]=e,o=ur.fromDelegations(n,Uint8Array.from(r));return{identity:dr.fromDelegation(t,o),delegationChain:o,sessionKey:t}},Pc=async({jwt:e,context:t,auth:r})=>{let n=await Vt.generate({extractable:!1}),o=new Uint8Array(n.getPublicKey().toDer()),{delegations:i,data:s}=await v_({jwt:e,publicKey:o,context:t,auth:r});return{identity:R_({sessionKey:n,delegations:i}),data:s}},v_=async({jwt:e,publicKey:t,context:{caller:r,salt:n},auth:o})=>{let i=await O_({args:{OpenId:{jwt:e,session_key:t,salt:n}},actorParams:{auth:o,identity:r}});if("Err"in i)throw new Ic("Authentication failed",{cause:i});let{delegation:{user_key:s,expiration:a},...c}=i.Ok,u=await I_({jwt:e,context:{caller:r,salt:n},auth:o,publicKey:t,expiration:a}),{delegation:p,signature:d}=u,{pubkey:l,expiration:f,targets:h}=p;return{delegations:[s,[{delegation:new Pr(Uint8Array.from(l),f,ye(h)),signature:Uint8Array.from(d)}]],data:c}},I_=async({jwt:e,publicKey:t,context:{salt:r,caller:n},auth:o,expiration:i,maxRetries:s=5})=>{for(let a=0;a<s;a++){await new Promise(u=>{setInterval(u,1e3*a)});let c=await E_({args:{OpenId:{jwt:e,session_key:t,salt:r,expiration:i}},actorParams:{auth:o,identity:n}});if("Err"in c){let{Err:u}=c;if("NoSuchDelegation"in u||"GetCachedJwks"in u)continue;throw new Cc("Getting delegation failed",{cause:c})}return c.Ok}throw new Vc};var Bc="juno:auth:openid",Dc={authUrl:"https://accounts.google.com/o/oauth2/v2/auth",authScopes:["openid","profile","email"],configUrl:"https://accounts.google.com/gsi/fedcm.json"};var up=e=>Cr(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),A_=()=>window.crypto.getRandomValues(new Uint8Array(32)),S_=async({salt:e,caller:t})=>{let r=t.getPrincipal().toUint8Array(),n=new Uint8Array(e.length+r.byteLength);n.set(e),n.set(r,e.length);let o=await window.crypto.subtle.digest("SHA-256",n);return up(lr(o))},F_=async({caller:e})=>{let t=A_();return{nonce:await S_({salt:t,caller:e}),salt:t}},dp="__caller__",pp="__salt__",fp="__state__",C_=({caller:e,state:t,salt:r})=>{let n={[dp]:e.toJSON(),[pp]:Cr(r),[fp]:t};return JSON.stringify(n)},V_=e=>{let{[dp]:t,[pp]:r,[fp]:n}=JSON.parse(e);return{caller:Nt.fromParsedJson(t),salt:Zu(r),state:n}},P_=()=>up(window.crypto.getRandomValues(new Uint8Array(12))),hp=async()=>{let e=Nt.generate(),{nonce:t,salt:r}=await F_({caller:e}),n=P_(),o=C_({caller:e,salt:r,state:n});return sessionStorage.setItem(Bc,o),{nonce:t,state:n}},mp=()=>{let e=sessionStorage.getItem(Bc);if(k(e))throw new Ec;return V_(e)};var Uc=async e=>{let t=mp();if("credentials"in e){let{credentials:{jwt:r},auth:n}=e;return await Pc({jwt:r,context:t,auth:n})}return await B_({...e,context:t})},B_=async({auth:e,context:t})=>{let{location:{hash:r}}=window;if(io(r)||!r.startsWith("#"))throw new Ac("No hash found in the current location URL");let n=new URLSearchParams(r.slice(1)),o=n.get("state"),i=n.get("id_token"),{state:s}=t;if(io(s)||o!==s)throw new Sc("The provided state is invalid",{cause:o});if(io(i))throw new Fc;return await Pc({jwt:i,auth:e,context:t})};var _p=({authUrl:e,clientId:t,nonce:r,loginHint:n,authScopes:o,state:i,redirectUrl:s})=>{let a=(()=>{try{return new URL(e)}catch{throw new Oc("Cannot parse authURL",{cause:e})}})();a.searchParams.set("client_id",t);let{location:{origin:c}}=window;a.searchParams.set("redirect_uri",s??c),a.searchParams.set("response_type","code id_token"),a.searchParams.set("scope",o.join(" ")),a.searchParams.set("state",i),a.searchParams.set("nonce",r),ei(n)?a.searchParams.set("login_hint",n):a.searchParams.set("prompt","select_account"),window.location.href=a.toString()},yp=async({configUrl:e,clientId:t,nonce:r,loginHint:n,domainHint:o})=>{let i=await navigator.credentials.get({identity:{context:"use",providers:[{configURL:e,clientId:t,nonce:r,loginHint:n,domainHint:o}],mode:"active"},mediation:"required"});if(k(i))throw new Rc;let{type:s}=i;if(s!=="identity"||!("token"in i)||typeof i.token!="string")throw new vc("Invalid credential received from FedCM API",{cause:i});let{token:a}=i;return{jwt:a}};async function kc({google:e}){let t=await hp();if("credentials"in e){let{credentials:i}=e,{configUrl:s}=Dc;return await yp({...i,...t,configUrl:s})}let{redirect:r}=e,{authUrl:n,authScopes:o}=Dc;_p({...r,...t,authUrl:n,authScopes:o})}var D_=async()=>{let{satelliteId:e}=ve.getInstance().get()??{satelliteId:void 0};if(k(e))throw new pr("Satellite ID not set. Have you initialized the Satellite?");let t=ve.getInstance().get()?.container,{identity:{delegationChain:r,sessionKey:n,identity:o},data:{doc:i}}=await Uc({redirect:null,auth:{satellite:{satelliteId:e,container:t}}});await Be.getInstance().setAuthClientStorage({delegationChain:r,sessionKey:n});let s=await Cn({doc:i,key:o.getPrincipal().toText()});await Vs({user:s})};var gp=e=>(e.preventDefault(),e.returnValue="Are you sure you want to exit?"),U_=()=>{window.addEventListener("beforeunload",gp,{capture:!0})},k_=()=>{window.removeEventListener("beforeunload",gp,{capture:!0})},Ds=async({fn:e})=>{try{return U_(),await e()}finally{k_()}};var Us=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??ep();if(k(r))throw new Ns;let{redirect:n}=t;await kc({google:{redirect:{...n??{},clientId:r}}})}};var xp=async({delegationIdentity:e,passkeyIdentity:t,satelliteId:r})=>{let n=t.getCredential().getAAGUID(),[o,i]=await Jd({docs:[{collection:"#user",doc:{key:e.getPrincipal().toText(),data:{provider:"webauthn",providerData:{webauthn:{...W(n)&&{aaguid:fs(n)}}}}}},{collection:"#user-webauthn",doc:{key:t.getCredential().getCredentialIdText(),data:{publicKey:t.getPublicKey().toRaw()}}}],satellite:{identity:e,satelliteId:r}});return o};var bp=(i=>(i[i.RequestingUserCredential=0]="RequestingUserCredential",i[i.FinalizingCredential=1]="FinalizingCredential",i[i.Signing=2]="Signing",i[i.FinalizingSession=3]="FinalizingSession",i[i.RetrievingUser=4]="RetrievingUser",i))(bp||{}),wp=(s=>(s[s.CreatingUserCredential=0]="CreatingUserCredential",s[s.ValidatingUserCredential=1]="ValidatingUserCredential",s[s.FinalizingCredential=2]="FinalizingCredential",s[s.Signing=3]="Signing",s[s.FinalizingSession=4]="FinalizingSession",s[s.RegisteringUser=5]="RegisteringUser",s))(wp||{});var po=class{async signUp({options:{onProgress:t,maxTimeToLiveInMilliseconds:r,passkey:n}={},loadAuthWithUser:o}){let{satelliteId:i}=ve.getInstance().get()??{satelliteId:void 0};if(k(i))throw new pr("Satellite ID not set. Have you initialized the Satellite?");let s=({step:m,state:g})=>{switch(m){case Vr.RequestingUserCredential:t?.({step:1,state:g});break;case Vr.FinalizingCredential:t?.({step:2,state:g});break;case Vr.Signing:t?.({step:3,state:g});break}},c=await Ut({fn:async()=>await oc.createWithNewCredential({onProgress:s,passkeyOptions:n}),step:0,onProgress:t}),{delegationIdentity:u,sessionKey:p}=await this.#e({identity:c,maxTimeToLiveInMilliseconds:r}),l=await Ut({fn:async()=>await xp({delegationIdentity:u,passkeyIdentity:c,satelliteId:i}),step:5,onProgress:t});await Ut({fn:async()=>await this.#t({delegationIdentity:u,sessionKey:p}),step:4,onProgress:t}),await Ut({fn:async()=>await o({user:l}),step:5,onProgress:t})}async signIn({options:{onProgress:t,maxTimeToLiveInMilliseconds:r}={},loadAuth:n}){let{satelliteId:o}=ve.getInstance().get()??{satelliteId:void 0};if(k(o))throw new pr("Satellite ID not set. Have you initialized the Satellite?");let i=async({credentialId:d})=>{let l=await Ss({collection:"#user-webauthn",key:Cr(d),options:{certified:!0},satellite:{identity:new rt,satelliteId:o}});if(k(l))throw new Os("No public key found for the selected passkey.");let{data:f}=l,{publicKey:h}=f;return Fn(h,Xo)},s=({step:d,state:l})=>{switch(d){case Vr.RequestingUserCredential:t?.({step:0,state:l});break;case Vr.FinalizingCredential:t?.({step:1,state:l});break;case Vr.Signing:t?.({step:2,state:l});break}},a=await oc.createWithExistingCredential({retrievePublicKey:i,onProgress:s}),{delegationIdentity:c,sessionKey:u}=await this.#e({identity:a,maxTimeToLiveInMilliseconds:r});await Ut({fn:async()=>await this.#t({delegationIdentity:c,sessionKey:u}),step:3,onProgress:t}),await Ut({fn:n,step:4,onProgress:t})}async#e({identity:t,maxTimeToLiveInMilliseconds:r}){let n=await Vt.generate({extractable:!1}),o=r??144e5,i=await ur.create(t,n.getPublicKey(),new Date(Date.now()+o));return{delegationIdentity:dr.fromDelegation(n,i),sessionKey:n}}async#t({sessionKey:t,delegationIdentity:r}){let n=new Bt;await Promise.all([n.set($e,t.getKeyPair()),n.set(He,JSON.stringify(r.getDelegation().toJSON()))])}};var q_=async({provider:e})=>{await li({fn:async()=>{let r=await Wd({provider:e});Pe.getInstance().set(r)},syncTabsOnSuccess:!0})},M_=async e=>{if("google"in e){let{google:{options:t}}=e;await Lc({fn:()=>new Us().signIn({options:t}),context:{windowGuard:!1}});return}if("webauthn"in e){let{webauthn:{options:t,context:r}}=e;await Lc({fn:()=>new po().signIn({options:t,loadAuth:()=>Cs({syncTabsOnSuccess:!0})}),context:r});return}if("internet_identity"in e){let{internet_identity:{options:t,context:r}}=e,{domain:n,...o}=t??{};await Lc({fn:()=>new Bs({domain:n}).signIn({options:o,authClient:Be.getInstance().getAuthClient(),initAuth:q_}),context:r});return}throw new Ts("An unknown or unsupported provider was provided for sign-in.")},Lc=async({fn:e,context:t})=>{if(t?.windowGuard===!1){await e();return}await Ds({fn:e})};var j_=async e=>{let t=async()=>await K_(e);if(Object.values(e)?.[0].context?.windowGuard===!1){await t();return}await Ds({fn:t})},K_=async e=>{if("webauthn"in e){let{webauthn:{options:t}}=e;await new po().signUp({options:t,loadAuthWithUser:Vs});return}throw new Es("An unknown or unsupported provider was provided for sign-up.")};var jO=e=>e?.data?.provider==="webauthn",KO=e=>e?.data?.provider==="google";var JO=async({idlFactory:e,satellite:t})=>{let r=le(t?.identity);return await Cd({idlFactory:e,...t,identity:r})};var Tp=async({asset:{data:e,headers:t,...r},actor:n,progress:o})=>{let{init_asset_upload:i,upload_asset_chunk:s,commit_asset_upload:a}=n,{batch_id:c}=await i(H_(r));o?.onInitiatedBatch();let{chunkIds:u}=await J_({data:e,uploadFn:s,batchId:c});o?.onUploadedFileChunks(r.fullPath),await G_({commitFn:a,batchId:c,data:e,headers:t,chunkIds:u}),o?.onCommittedBatch()};var H_=({filename:e,collection:t,token:r,fullPath:n,encoding:o,description:i})=>({collection:t,full_path:n,name:e,token:ie(r),encoding_type:ie(o),description:ie(i)}),$_=({batchId:e,chunkIds:t,headers:r,data:n})=>{let o=r.find(([i,s])=>i.toLowerCase()==="content-type")===void 0&&n.type!==void 0&&n.type!==""?[["Content-Type",n.type]]:void 0;return{batch_id:e,chunk_ids:t.map(({chunk_id:i})=>i),headers:[...r,...o??[]]}},G_=async({commitFn:e,...t})=>{let r=$_(t);await e(r)},J_=async({data:e,uploadFn:t,batchId:r})=>{let n=[],o=As()?new Blob([await e.arrayBuffer()]):e,i=0n;for(let a=0;a<o.size;a+=19e5){let c=o.slice(a,a+19e5);n.push({batchId:r,chunk:c,uploadFn:t,orderId:i}),i++}let s=[];for await(let a of W_({uploadChunks:n}))s=[...s,...a];return{chunkIds:s}};async function*W_({uploadChunks:e,limit:t=12}){for(let r=0;r<e.length;r=r+t){let n=e.slice(r,r+t);yield await Promise.all(n.map(o=>z_(o)))}}var z_=async({batchId:e,chunk:t,uploadFn:r,orderId:n})=>r({batch_id:e,content:new Uint8Array(await t.arrayBuffer()),order_id:ie(n)});var Np=async({asset:e,...t})=>{let r=await ge(t);await Tp({actor:r,asset:e})},Op=async({collection:e,filter:t,...r})=>{let{list_assets:n}=await ge(r),{items:o,items_length:i,items_page:s,matches_length:a,matches_pages:c}=await n(e,Br(t));return{items:o.map(([u,p])=>p),items_length:i,items_page:ye(s),matches_length:a,matches_pages:ye(c)}},Ep=async({collection:e,filter:t,...r})=>{let{count_assets:n}=await ge(r);return n(e,Br(t))},Rp=async({collection:e,fullPath:t,...r})=>(await ge(r)).del_asset(e,t),vp=async({assets:e,satellite:t})=>{let{del_many_assets:r}=await ge({satellite:t,options:{certified:!0}}),n=e.map(({collection:o,fullPath:i})=>[o,i]);await r(n)},Ip=async({collection:e,filter:t,...r})=>{let{del_filtered_assets:n}=await ge(r);return n(e,Br(t))},Ap=async({collection:e,fullPath:t,token:r,...n})=>{let{set_asset_token:o}=await ge(n);return o(e,t,ie(r))},Sp=async({collection:e,fullPath:t,...r})=>{let{get_asset:n}=await ge(r);return ye(await n(e,t))},Fp=async({assets:e,...t})=>{let{get_many_assets:r}=await ge(t),n=e.map(({collection:i,fullPath:s})=>[i,s]);return(await r(n)).map(([i,s])=>ye(s))};var Cp=e=>btoa([...e].map(t=>String.fromCharCode(t)).join(""));var u6=e=>Vp(e),d6=e=>Vp({filename:e.data.name,...e}),Vp=async({filename:e,data:t,collection:r,headers:n=[],fullPath:o,token:i,satellite:s,encoding:a,description:c})=>{let u=le(s?.identity),p=decodeURI(e),d=o??`/${r}/${p}`,l={...s,identity:u};return await Np({asset:{data:t,filename:p,collection:r,token:i,headers:n,fullPath:d,encoding:a,description:c},satellite:l,options:{certified:!0}}),{downloadUrl:Pp({satellite:l,assetKey:{fullPath:d,token:i}}),fullPath:d,...W(i)&&{token:i},name:p}},p6=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:le(r?.identity)},{items:i,...s}=await Op({collection:e,filter:t??{},satellite:o,options:n??Dt}),a=i.map(({key:{full_path:c,token:u,name:p,owner:d,description:l},headers:f,encodings:h,created_at:m,updated_at:g})=>{let _=ye(u);return{fullPath:c,description:ye(l),name:p,downloadUrl:Pp({satellite:o,assetKey:{fullPath:c,token:_}}),token:_,headers:f,encodings:h.reduce((x,[y,{modified:T,sha256:E,total_length:O}])=>({...x,[y]:{modified:T,sha256:Cp(E),total_length:O}}),{}),owner:d.toText(),created_at:m,updated_at:g}});return{items:a,assets:a,...s}},f6=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:le(r?.identity)};return await Ep({collection:e,satellite:o,filter:t??{},options:n??Dt})},h6=({collection:e,fullPath:t,satellite:r})=>Rp({collection:e,fullPath:t,satellite:{...r,identity:le(r?.identity)},options:{certified:!0}}),m6=({collection:e,fullPath:t,token:r,satellite:n})=>Ap({collection:e,fullPath:t,token:r,satellite:{...n,identity:le(n?.identity)},options:{certified:!0}}),_6=({assets:e,satellite:t})=>vp({assets:e,satellite:{...t,identity:le(t?.identity)},options:{certified:!0}}),y6=async({collection:e,satellite:t,filter:r})=>{let n={...t,identity:le(t?.identity)};return await Ip({collection:e,satellite:n,filter:r??{},options:{certified:!0}})},g6=async({satellite:e,options:t,...r})=>{let n=le(e?.identity);return await Sp({...r,satellite:{...e,identity:n},options:t??Dt})},x6=async({satellite:e,options:t,...r})=>{let n=le(e?.identity);return await Fp({...r,satellite:{...e,identity:n},options:t??Dt})},Pp=({assetKey:{fullPath:e,token:t},satellite:r})=>{let n={...r,identity:le(r?.identity)};return`${Fd(n)}${e}${W(t)?`?token=${t}`:""}`};var Y_=e=>{let t=e?.satelliteId??Xd();ti(t,"Satellite ID is not configured. Juno cannot be initialized.");let r=e?.container??Qd();return{satelliteId:t,internetIdentityId:e?.internetIdentityId,workers:e?.workers,syncTabs:e?.syncTabs,container:r}},A6=e=>Z_(e),Z_=async e=>{let t=Y_(e);ve.getInstance().set(t),await Cs();let r=t.workers?.auth!==void 0?Ed(t.workers.auth):void 0,n=t.syncTabs===!1?void 0:Zd();return[...W(r)?[r]:[],...W(n)?[n]:[]]},X_=e=>Pe.getInstance().subscribe(e),S6=X_;export{cp as AuthClientSignInProgressStep,Rs as InitError,Bs as InternetIdentityProvider,vs as ListError,bs as SignInError,pr as SignInInitError,Ns as SignInMissingClientIdError,Ts as SignInProviderNotSupportedError,ws as SignInUserInterruptError,Es as SignUpProviderNotSupportedError,bp as WebAuthnSignInProgressStep,Os as WebAuthnSignInRetrievePublicKeyError,wp as WebAuthnSignUpProgressStep,S6 as authSubscribe,f6 as countAssets,xT as countDocs,h6 as deleteAsset,mT as deleteDoc,y6 as deleteFilteredAssets,yT as deleteFilteredDocs,_6 as deleteManyAssets,_T as deleteManyDocs,Pp as downloadUrl,g6 as getAsset,Ss as getDoc,__ as getIdentityOnce,x6 as getManyAssets,hT as getManyDocs,JO as getSatelliteExtendedActor,D_ as handleRedirectCallback,A6 as initJuno,Z_ as initSatellite,KO as isGoogleUser,jm as isWebAuthnAvailable,jO as isWebAuthnUser,p6 as listAssets,gT as listDocs,X_ as onAuthStateChange,m6 as setAssetToken,Gd as setDoc,Jd as setManyDocs,M_ as signIn,_c as signOut,j_ as signUp,m_ as unsafeIdentity,u6 as uploadBlob,d6 as uploadFile};
54
+ Retrying request.`),await this.#y({requestFn:r,backoff:n,tries:o+1});throw go.fromCode(new To(p))}let c=Wi(s.headers);if(s.status===Wa||s.status===nm)return{ok:s.ok,status:s.status,statusText:s.statusText,responseBodyBytes:a,headers:c};let u=await s.text();if(s.status===om&&s.url.includes("api/v3"))throw ne.fromCode(new wo);if(u.startsWith("Invalid request expiry: "))throw z.fromCode(new hn(u,this.#l));if(o<this.#d)return await this.#y({requestFn:r,backoff:n,tries:o+1});throw ne.fromCode(new bo(s.status,s.statusText,c,u))}async query(t,r,n){let o=this.#p(),i=r.effectiveCanisterId?M.from(r.effectiveCanisterId):M.from(t);await this.#g(i),this.log.print(`ecid ${i.toString()}`),this.log.print(`canisterId ${t.toString()}`);let s,a=await(n??this.#n);if(!a)throw Oe.fromCode(new xr);let c=M.from(t),u=a.getPrincipal(),p=za(this.#l,this.#r),d={request_type:wn.Query,canister_id:c,method_name:r.methodName,arg:r.arg,sender:u,ingress_expiry:p},l=Zt(d);s=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#i?{Authorization:"Basic "+btoa(this.#i)}:{}}},endpoint:Qt.Query,body:d}),s=await a.transformRequest(s);let f=Uo(s.body),h={canister:c.toText(),ecid:i,transformedRequest:s,body:f,requestId:l,backoff:o,tries:0},m=async()=>{let _=await this.#b(h);return{requestDetails:d,..._}},g=async()=>{let _=this.#m.get(i.toString());if(_)return _;await this.fetchSubnetKeys(i.toString());let x=this.#m.get(i.toString());if(!x)throw De.fromCode(new Fi);return x};try{if(!this.#_)return await m();let[_,x]=await Promise.all([m(),g()]);try{return this.#w(_,x)}catch{this.log.warn("Query response verification failed. Retrying with fresh subnet keys."),this.#m.delete(i.toString());let y=await g();return this.#w(_,y)}}catch(_){let x;throw _ instanceof ht?(_.code.requestContext={requestId:l,senderPubKey:s.body.sender_pubkey,senderSignature:s.body.sender_sig,ingressExpiry:s.body.content.ingress_expiry},x=_):x=xe.fromCode(new Ue(_)),this.log.error(`Error while making query: ${x.message}`,x),x}}#w;async createReadStateRequest(t,r){await this.#g();let n=await(r??this.#n);if(!n)throw Oe.fromCode(new xr);let o=n.getPrincipal(),i=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#i?{Authorization:"Basic "+btoa(this.#i)}:{}}},endpoint:Qt.ReadState,body:{request_type:wn.ReadState,paths:t.paths,sender:o,ingress_expiry:za(this.#l,this.#r)}});return n.transformRequest(i)}async readState(t,r,n,o){await this.#T();let i=M.from(t);function s(p){for(let d of p.paths){let[l,f]=d,h=new TextEncoder().encode("request_status");if(xn(l,h))return f}}let a,c;if(o)a=o,c=Zt(a);else{c=s(r);let p=await this.#n;if(!p)throw Oe.fromCode(new xr);a=await this.createReadStateRequest(r,p)}this.log.print(`fetching "/api/v2/canister/${i}/read_state" with request:`,a);let u=this.#p();try{let{responseBodyBytes:p}=await this.#y({requestFn:()=>this.#o(""+new URL(`/api/v2/canister/${i.toString()}/read_state`,this.host),{...this.#a,...a.request,body:Uo(a.body)}),backoff:u,tries:0}),d=Je(p);return this.log.print("Read state response:",d),d}catch(p){let d;throw p instanceof ht?(p.code.requestContext={requestId:c,senderPubKey:a.body.sender_pubkey,senderSignature:a.body.sender_sig,ingressExpiry:a.body.content.ingress_expiry},d=p):d=xe.fromCode(new Ue(p)),this.log.error(`Error while making read state: ${d.message}`,d),d}}parseTimeFromResponse(t){let r;if(t.certificate){let n=Je(t.certificate);if(n&&"tree"in n)r=n.tree;else throw ne.fromCode(new br("Could not decode time from response"));let o=In(["time"],r);if(o.status!==ze.Found)throw ne.fromCode(new Jt("Time was not found in the response or was not in its expected format.",o.status));if(!(o.value instanceof Uint8Array)&&!ArrayBuffer.isView(o))throw ne.fromCode(new Dn("Time was not in its expected format."));let i=to(o.value);return this.log.print("Time from response:",i),this.log.print("Time from response in milliseconds:",i.getTime()),i.getTime()}else this.log.warn("No certificate found in response");return 0}async syncTime(t){this.#s=this.#s??(async()=>{await this.#T();let r=Date.now();try{t||this.log.print("Syncing time with the IC. No canisterId provided, so falling back to ryjl3-tyaaa-aaaaa-aaaba-cai");let n=t??M.from("ryjl3-tyaaa-aaaaa-aaaba-cai"),o=e.createSync({identity:new rt,host:this.host.toString(),fetch:this.#o,retryTimes:0,rootKey:this.rootKey??void 0,shouldSyncTime:!1}),s=(await Promise.all(Array(3).fill(null).map(async()=>{let c=(await qa({canisterId:n,agent:o,paths:["time"],disableCertificateTimeVerification:!0})).get("time");if(c instanceof Date)return c.getTime()},[]))).reduce((a,c)=>typeof c=="number"&&c>a?c:a,0);s>0&&(this.#r=s-r,this.#c=!0,this.log.notify({message:`Syncing time: offset of ${this.#r}`,level:"info"}))}catch(n){let o=n instanceof ht?n:xe.fromCode(new Ue(n));throw this.log.error("Caught exception while attempting to sync time",o),o}})(),await this.#s.finally(()=>{this.#s=null})}async status(){let t=this.#i?{Authorization:"Basic "+btoa(this.#i)}:{};this.log.print('fetching "/api/v2/status"');let r=this.#p(),{responseBodyBytes:n}=await this.#y({backoff:r,requestFn:()=>this.#o(""+new URL("/api/v2/status",this.host),{headers:t,...this.#a}),tries:0});return Je(n)}async fetchRootKey(){return this.#e=this.#e??(async()=>{let t=await this.status();return this.rootKey=t.root_key,this.rootKey})(),await this.#e.finally(()=>{this.#e=null})}async#g(t){await Promise.all([this.#T(),this.#O(t)])}async#T(){if(!this.rootKey)if(this.rootKey===null&&this.host.toString()!=="https://icp-api.io"&&this.#t)await this.fetchRootKey();else throw Oe.fromCode(new Rt(this.#t))}async#O(t){this.#u&&!this.hasSyncedTime()&&await this.syncTime(t)}invalidateIdentity(){this.#n=null}replaceIdentity(t){this.#n=Promise.resolve(t)}async fetchSubnetKeys(t){let r=M.from(t);await this.#g(r);let o=(await qa({canisterId:r,paths:["subnet"],agent:this})).get("subnet");if(o&&typeof o=="object"&&"nodeKeys"in o)return this.#m.set(r.toText(),o),o}_transform(t){let r=Promise.resolve(t);if(t.endpoint===Qt.Call)for(let n of this.#h)r=r.then(o=>n(o).then(i=>i||o));else for(let n of this.#f)r=r.then(o=>n(o).then(i=>i||o));return r}getTimeDiffMsecs(){return this.#r}hasSyncedTime(){return this.#c}};function za(e,t){let r=e*Ya;return Wn.fromDeltaInMilliseconds(r,t)}var am=300*1e3;function Ku(){return pm(lm(cm(),1e3),dm(1e3,1.2),um(am))}function cm(){let e=!0;return async()=>e?(e=!1,!0):!1}function lm(e,t){return async(r,n,o)=>{if(await e(r,n,o))return new Promise(i=>setTimeout(i,t))}}function um(e){let t=Date.now()+e;return async(r,n,o)=>{if(Date.now()>t)throw ne.fromCode(new fn(`Request timed out after ${e} msec`,n,o))}}function dm(e,t){let r=e;return()=>new Promise(n=>setTimeout(()=>{r*=t,n()},r))}function pm(...e){return async(t,r,n)=>{for(let o of e)await o(t,r,n)}}var $u={preSignReadStateRequest:!1};function Gu(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Za(e,t){return e!==null&&typeof e=="object"&&Gu(e,t)}function hm(e,t){return Gu(e,t)&&typeof e[t]=="function"}function Hu(e){return Za(e,"body")&&Za(e.body,"content")&&e.body.content.request_type===wn.ReadState&&Za(e.body.content,"ingress_expiry")&&typeof e.body.content.ingress_expiry=="object"&&e.body.content.ingress_expiry!==null&&hm(e.body.content.ingress_expiry,"toHash")}async function Xa(e,t,r,n={}){let o=[ee("request_status"),r],i,s;if(n.preSignReadStateRequest??!1?(s=await mm({paths:[o],agent:e,pollingOptions:n}),i=await e.readState(t,{paths:[o]},void 0,s)):i=await e.readState(t,{paths:[o]}),e.rootKey==null)throw Oe.fromCode(new Rt);let c=await Ar.create({certificate:i.certificate,rootKey:e.rootKey,canisterId:t,blsVerify:n.blsVerify,agent:e}),u=Ve(c.lookup_path([...o,ee("status")])),p;switch(typeof u>"u"?p=Ct.Unknown:p=new TextDecoder().decode(u),p){case Ct.Replied:return{reply:Ve(c.lookup_path([...o,"reply"])),certificate:c};case Ct.Received:case Ct.Unknown:case Ct.Processing:{let d=n.strategy??Ku();return await d(t,r,p),Xa(e,t,r,{...n,strategy:d,request:s})}case Ct.Rejected:{let d=new Uint8Array(Ve(c.lookup_path([...o,"reject_code"])))[0],l=new TextDecoder().decode(Ve(c.lookup_path([...o,"reject_message"]))),f=Ve(c.lookup_path([...o,"error_code"])),h=f?new TextDecoder().decode(f):void 0;throw yr.fromCode(new kn(r,d,l,h))}case Ct.Done:throw xe.fromCode(new vi(r))}throw wr}async function mm(e){let{paths:t,agent:r,pollingOptions:n}=e;if(n.request&&Hu(n.request))return n.request;let o=await r.createReadStateRequest?.({paths:t},void 0);if(!Hu(o))throw z.fromCode(new Pi(o));return o}var st=Symbol.for("ic-agent-metadata"),oo=class e{static agentOf(t){return t[st].config.agent}static interfaceOf(t){return t[st].service}static canisterIdOf(t){return M.from(t[st].config.canisterId)}static createActorClass(t,r){let n=t({IDL:gn});class o extends e{constructor(s){if(!s.canisterId)throw z.fromCode(new No(s.canisterId));let a=typeof s.canisterId=="string"?M.fromText(s.canisterId):s.canisterId;super({config:{...Ju,...s,canisterId:a},service:n});for(let[c,u]of n._fields)r?.httpDetails&&u.annotations.push(Qa),r?.certificate&&u.annotations.push(Wu),this[c]=ym(this,c,u,s.blsVerify)}}return o}static createActor(t,r){if(!r.canisterId)throw z.fromCode(new No(r.canisterId));return new(this.createActorClass(t))(r)}static createActorWithHttpDetails(t,r){return new(this.createActorClass(t,{httpDetails:!0}))(r)}static createActorWithExtendedDetails(t,r,n={httpDetails:!0,certificate:!0}){return new(this.createActorClass(t,n))(r)}constructor(t){this[st]=Object.freeze(t)}};function no(e,t){let r=gn.decode(e,t);switch(r.length){case 0:return;case 1:return r[0];default:return r}}var Ju={pollingOptions:$u},Qa="http-details",Wu="certificate";function ym(e,t,r,n){let o;r.annotations.includes("query")||r.annotations.includes("composite_query")?o=async(s,...a)=>{s={...s,...e[st].config.queryTransform?.(t,a,{...e[st].config,...s})};let c=s.agent||e[st].config.agent||new cr,u=M.from(s.canisterId||e[st].config.canisterId),p=gn.encode(r.argTypes,a),d=await c.query(u,{methodName:t,arg:p,effectiveCanisterId:s.effectiveCanisterId}),l={...d.httpDetails,requestDetails:d.requestDetails};switch(d.status){case fr.Rejected:{let f=new Ei(d.requestId,d.reject_code,d.reject_message,d.error_code,d.signatures);throw f.callContext={canisterId:u,methodName:t,httpDetails:l},yr.fromCode(f)}case fr.Replied:return r.annotations.includes(Qa)?{httpDetails:l,result:no(r.retTypes,d.reply.arg)}:no(r.retTypes,d.reply.arg)}}:o=async(s,...a)=>{s={...s,...e[st].config.callTransform?.(t,a,{...e[st].config,...s})};let c=s.agent||e[st].config.agent||cr.createSync(),{canisterId:u,effectiveCanisterId:p,pollingOptions:d}={...Ju,...e[st].config,...s},l=M.from(u),f=p!==void 0?M.from(p):l,h=gn.encode(r.argTypes,a),{requestId:m,response:g,requestDetails:_}=await c.call(l,{methodName:t,arg:h,effectiveCanisterId:f,nonce:s.nonce}),x,y;if(jc(g.body)){if(c.rootKey==null)throw Oe.fromCode(new Rt);let R=g.body.certificate;y=await Ar.create({certificate:R,rootKey:c.rootKey,canisterId:f,blsVerify:n,agent:c});let I=[ee("request_status"),m];switch(new TextDecoder().decode(Ve(y.lookup_path([...I,"status"])))){case"replied":x=Ve(y.lookup_path([...I,"reply"]));break;case"rejected":{let v=new Uint8Array(Ve(y.lookup_path([...I,"reject_code"])))[0],C=new TextDecoder().decode(Ve(y.lookup_path([...I,"reject_message"]))),S=Ve(y.lookup_path([...I,"error_code"])),b=S?new TextDecoder().decode(S):void 0,N=new kn(m,v,C,b);throw N.callContext={canisterId:l,methodName:t,httpDetails:g},yr.fromCode(N)}}}else if(Mc(g.body)){let{reject_code:R,reject_message:I,error_code:w}=g.body,v=new Ri(m,R,I,w);throw v.callContext={canisterId:l,methodName:t,httpDetails:g},yr.fromCode(v)}if(g.status===202){let R={...d,blsVerify:n},I=await Xa(c,f,m,R);y=I.certificate,x=I.reply}let T=r.annotations.includes(Qa),E=r.annotations.includes(Wu),O={...g,requestDetails:_};if(x!==void 0)return T&&E?{httpDetails:O,certificate:y,result:no(r.retTypes,x)}:E?{certificate:y,result:no(r.retTypes,x)}:T?{httpDetails:O,result:no(r.retTypes,x)}:no(r.retTypes,x);{let R=new Ue(`Call was returned undefined. We cannot determine if the call was successful or not. Return types: [${r.retTypes.map(I=>I.display()).join(",")}].`);throw R.callContext={canisterId:l,methodName:t,httpDetails:O},xe.fromCode(R)}};let i=(...s)=>o({},...s);return i.withOptions=s=>(...a)=>o(s,...a),i}var gm=(e=>(e[e.FractionalMoreThan8Decimals=0]="FractionalMoreThan8Decimals",e[e.InvalidFormat=1]="InvalidFormat",e[e.FractionalTooManyDecimals=2]="FractionalTooManyDecimals",e))(gm||{}),Ax=BigInt(1e8);var k=e=>e==null,W=e=>!k(e),ei=e=>W(e)&&e!=="",io=e=>!ei(e);var xm=class extends Error{},ti=(e,t)=>{if(e==null)throw new xm(t)};var lr=e=>new Uint8Array(e),fs=e=>Array.from(e);var Yu=({a:e,b:t})=>e.length===t.length&&e.every((r,n)=>r===t[n]);var zu="abcdefghijklmnopqrstuvwxyz234567",Qo=Object.create(null);for(let e=0;e<zu.length;e++)Qo[zu[e]]=e;Qo[0]=Qo.o;Qo[1]=Qo.i;var Cr=e=>btoa(String.fromCharCode(...new Uint8Array(e))),Zu=e=>Uint8Array.from(atob(e),t=>t.charCodeAt(0)),Sx=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);var ec="__bigint__",tc="__principal__",rc="__uint8array__",Xu=(e,t)=>typeof t=="bigint"?{[ec]:`${t}`}:W(t)&&M.isPrincipal(t)?{[tc]:M.from(t).toText()}:W(t)&&t instanceof Uint8Array?{[rc]:Array.from(t)}:t,Qu=(e,t)=>{let r=n=>t[n];return W(t)&&typeof t=="object"&&ec in t?BigInt(r(ec)):W(t)&&typeof t=="object"&&tc in t?M.fromText(r(tc)):W(t)&&typeof t=="object"&&rc in t?Uint8Array.from(r(rc)):t};var ie=e=>W(e)?[e]:[],ye=e=>e?.[0];var bm=({authData:e})=>{if(e.byteLength<37)return{invalidAuthData:null};if(e.byteLength<53)return{invalidAuthData:null};let t=e.slice(37,53),r=wm({bytes:t});return"aaguid"in r?{aaguidBytes:t,aaguidText:r.aaguid}:{unknownProvider:null}},wm=({bytes:e})=>{if(e.length!==16)return{invalidBytes:null};let t=(e instanceof Uint8Array?fs(e):e).map(r=>r.toString(16).padStart(2,"0")).join("").replace(/^(.{8})(.{4})(.{4})(.{4})(.{12})$/,"$1-$2-$3-$4-$5");return t==="00000000-0000-0000-0000-000000000000"?{unknownProvider:null}:{aaguid:t}};function Tm(e){let t=new DataView(new ArrayBuffer(2)),r=e.slice(53,55);[...new Uint8Array(r)].forEach((o,i)=>t.setUint8(i,o));let n=t.getUint16(0);return e.slice(55+n)}function Nm(e){return Sn(e,Xo)}var Om=class{constructor(e){this._cose=e,this.#e=Nm(e)}#e;toDer(){return this.#e}toRaw(){return new Uint8Array(this.#e)}},od=class{#e;#t;constructor({rawId:e,cose:t}){this.#e=e,this.#t=new Om(t)}getPublicKey(){return this.#t}getCredentialId(){return this.#e}getCredentialIdText(){return Cr(this.#e)}},Em=class extends od{#e;#t;constructor({authData:e,...t}){super(t);let r=bm({authData:e});this.#e="aaguidText"in r?r.aaguidText:void 0,this.#t="aaguidBytes"in r?r.aaguidBytes:void 0}getAAGUID(){return this.#t}getAAGUIDText(){return this.#e}},Rm=class extends od{},vm=class extends Error{},Im=class extends Error{},Am=class extends Error{},Sm=class extends Error{},Fm=class extends Error{},Cm=class extends Error{},Vm=class extends Error{},ed=class extends Error{};var Pm={ECDSA_WITH_SHA256:-7,RSA_WITH_SHA256:-257},Bm=6e4,id=()=>window.crypto.getRandomValues(new Uint8Array(16)),Dm=()=>id(),Um=()=>id(),km=()=>{let{location:{href:e}}=window;try{let{hostname:t}=new URL(e);return t}catch{throw new vm}},sd=({appId:e})=>e?.id??km(),Lm=({appId:e,user:t}={})=>{let{document:{title:r}}=window,n=()=>({rp:{name:e?.name??r,id:sd({appId:e})}}),o=()=>({user:{id:Um(),name:t?.name??t?.displayName??r,displayName:t?.displayName??r}});return{attestation:"direct",challenge:Dm(),...n(),...o(),pubKeyCredParams:Object.values(Pm).map(i=>({type:"public-key",alg:i})),excludeCredentials:[],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred",residentKey:"required",requireResidentKey:!0}}},qm=(e={})=>({rpId:sd(e),allowCredentials:[],userVerification:"required"}),nc=async({fn:e,step:t,onProgress:r})=>{r?.({step:t,state:"in_progress"});try{let n=await e();return r?.({step:t,state:"success"}),n}catch(n){throw r?.({step:t,state:"error"}),n}},Vr=(e=>(e[e.RequestingUserCredential=0]="RequestingUserCredential",e[e.FinalizingCredential=1]="FinalizingCredential",e[e.Signing=2]="Signing",e))(Vr||{}),ad=({timeout:e})=>AbortSignal.timeout(e??Bm),Mm=async({challenge:e,credentialIds:t,passkeyOptions:r,timeout:n})=>await navigator.credentials.get({publicKey:{...qm(r),challenge:e.buffer,allowCredentials:(t??[]).map(o=>({id:o.buffer,type:"public-key"}))},signal:ad({timeout:n})}),td=e=>{if(e.status!=="initialized")throw new Im},rd=e=>{if(k(e))throw new Am},nd=({type:e})=>{if(e!=="public-key")throw new Sm},oc=class ri extends Ft{#e;#t;constructor({onProgress:t,...r}){if(super(),this.#e=t,"retrievePublicKey"in r){let{retrievePublicKey:n}=r;this.#t={status:"pending",retrievePublicKey:n};return}this.#t=ri.#r({credential:new Em(r)})}static#r({credential:t}){return{status:"initialized",credential:t}}static async createWithNewCredential({passkeyOptions:t,timeout:r,...n}={}){let o=await navigator.credentials.create({publicKey:Lm(t),signal:ad({timeout:r})});rd(o),nd(o);let{response:{attestationObject:i},rawId:s}=o;if(k(i))throw new Fm;let{authData:a}=$i.decode(lr(i)),c=Tm(a);return new ri({...n,rawId:lr(s),cose:c,authData:a})}static async createWithExistingCredential(t){return new ri(t)}getPublicKey(){td(this.#t);let{credential:t}=this.#t;return t.getPublicKey()}getCredential(){td(this.#t);let{credential:t}=this.#t;return t}async sign(t){let r=await nc({fn:async()=>{let n=await Mm({challenge:t,...this.#t.status==="initialized"&&{credentialIds:[this.#t.credential.getCredentialId()]}});return rd(n),nd(n),n},step:0,onProgress:this.#e});return await nc({fn:async()=>{let{rawId:n}=r;if(this.#t.status==="initialized"){if(!Yu({a:this.#t.credential.getCredentialId(),b:lr(n)}))throw new Cm;return}let{retrievePublicKey:o}=this.#t,i=await o({credentialId:lr(n)});this.#t=ri.#r({credential:new Rm({rawId:lr(n),cose:i})})},step:1,onProgress:this.#e}),await nc({fn:async()=>{let{response:n}=r,{clientDataJSON:o}=n,{authenticatorData:i,signature:s}="authenticatorData"in n&&"signature"in n?n:{};if(k(i))throw new ed;if(k(s))throw new ed;let a=$i.encode({authenticator_data:i,client_data_json:new TextDecoder().decode(o),signature:lr(s)});if(k(a))throw new Vm;return Object.assign(a,{__signature__:void 0}),a},step:2,onProgress:this.#e})}},jm=async()=>W(window.PublicKeyCredential)&&"isUserVerifyingPlatformAuthenticatorAvailable"in PublicKeyCredential?await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():!1;var so=class{callbacks=[];populate(t){this.callbacks.forEach(({callback:r})=>r(t))}subscribe(t){let r=Symbol();return this.callbacks.push({id:r,callback:t}),()=>this.callbacks=this.callbacks.filter(({id:n})=>n!==r)}};var Pe=class e extends so{static instance;authUser=null;constructor(){super()}static getInstance(){return e.instance||(e.instance=new e),e.instance}set(t){this.authUser=t,this.populate(t)}get(){return this.authUser}subscribe(t){let r=super.subscribe(t);return t(this.authUser),r}reset(){this.authUser=null,this.populate(this.authUser)}};var ni=({message:e,detail:t})=>{let r=new CustomEvent(e,{detail:t,bubbles:!0});document.dispatchEvent(r)};var ao="http://127.0.0.1:5987",cd="rdmx6-jaaaa-aaaaa-aaadq-cai";var ld=async({identity:e,container:t})=>{let n=W(t)&&t!==!1?t===!0?ao:t:"https://icp-api.io",o=W(t);return await cr.create({identity:e,shouldFetchRootKey:o,host:n})};var co=class e{static instance;#e=void 0;constructor(){}static getInstance(){return k(e.instance)&&(e.instance=new e),e.instance}async getAgent({identity:t,...r}){let n=t.getPrincipal().toText();if(k(this.#e)||k(this.#e[n])){let o=await ld({identity:t,...r});return this.#e={...this.#e??{},[n]:o},o}return this.#e[n]}reset(){this.#e=null}};var lo=class e{static instance;#e=void 0;constructor(){}static getInstance(){return k(e.instance)&&(e.instance=new e),e.instance}async getActor({satelliteId:t,identity:r,actorKey:n,...o}){let i=`${n}#${r.getPrincipal().toText()}#${t};`;if(k(this.#e)||k(this.#e[i])){let s=await this.createActor({satelliteId:t,identity:r,...o});return this.#e={...this.#e??{},[i]:s},s}return this.#e[i]}reset(){this.#e=null}async createActor({idlFactory:t,satelliteId:r,...n}){let o=await co.getInstance().getAgent(n);return oo.createActor(t,{agent:o,canisterId:r})}};function ud(e){return e!==null&&typeof e=="object"}var oi=class e{static from(t){if(typeof t=="string"){let r=Ne(t);return this.fromRaw(r)}else if(ud(t)){let r=t;if(ud(r)&&Object.hasOwnProperty.call(r,"__derEncodedPublicKey__"))return this.fromDer(r);if(ArrayBuffer.isView(r)){let n=r;return this.fromRaw(vt(n.buffer))}else{if(r instanceof ArrayBuffer)return this.fromRaw(vt(r));if("rawKey"in r&&r.rawKey instanceof Uint8Array)return this.fromRaw(r.rawKey);if("derKey"in r)return this.fromDer(r.derKey);if("toDer"in r)return this.fromDer(r.toDer())}}throw new Error("Cannot construct Ed25519PublicKey from the provided key.")}static fromRaw(t){return new e(t)}static fromDer(t){return new e(this.derDecode(t))}static{this.RAW_KEY_LENGTH=32}static derEncode(t){let r=Sn(t,An);return r.__derEncodedPublicKey__=void 0,r}static derDecode(t){let r=Fn(t,An);if(r.length!==this.RAW_KEY_LENGTH)throw new Error("An Ed25519 public key must be exactly 32bytes long");return r}#e;get rawKey(){return this.#e}#t;get derKey(){return this.#t}constructor(t){if(t.byteLength!==e.RAW_KEY_LENGTH)throw new Error("An Ed25519 public key must be exactly 32bytes long");this.#e=t,this.#t=e.derEncode(t)}toDer(){return this.derKey}toRaw(){return this.rawKey}},Nt=class e extends Ft{static generate(t){if(t&&t.length!==32)throw new Error("Ed25519 Seed needs to be 32 bytes long.");t||(t=Ke.utils.randomPrivateKey()),ll(t,new Uint8Array(new Array(32).fill(0)))&&console.warn("Seed is all zeros. This is not a secure seed. Please provide a seed with sufficient entropy if this is a production environment.");let r=new Uint8Array(32);for(let o=0;o<32;o++)r[o]=t[o];let n=Ke.getPublicKey(r);return e.fromKeyPair(n,r)}static fromParsedJson(t){let[r,n]=t;return new e(oi.fromDer(Ne(r)),Ne(n))}static fromJSON(t){let r=JSON.parse(t);if(Array.isArray(r)){if(typeof r[0]=="string"&&typeof r[1]=="string")return this.fromParsedJson([r[0],r[1]]);throw new Error("Deserialization error: JSON must have at least 2 items.")}throw new Error(`Deserialization error: Invalid JSON type for string: ${JSON.stringify(t)}`)}static fromKeyPair(t,r){return new e(oi.fromRaw(t),r)}static fromSecretKey(t){let r=Ke.getPublicKey(t);return e.fromKeyPair(r,t)}#e;#t;constructor(t,r){super(),this.#e=oi.from(t),this.#t=r}toJSON(){return[H(this.#e.toDer()),H(this.#t)]}getKeyPair(){return{secretKey:this.#t,publicKey:this.#e}}getPublicKey(){return this.#e}async sign(t){let r=Ke.sign(t,this.#t.slice(0,32));return Object.defineProperty(r,"__signature__",{enumerable:!1,value:void 0}),r}static verify(t,r,n){let[o,i,s]=[t,r,n].map(a=>(typeof a=="string"&&(a=Ne(a)),vt(a)));return Ke.verify(o,i,s)}};var ic=class e extends Error{constructor(t){super(t),this.message=t,Object.setPrototypeOf(this,e.prototype)}};function dd(e){if(typeof global<"u"&&global.crypto&&global.crypto.subtle)return global.crypto.subtle;if(e)return e;if(typeof crypto<"u"&&crypto.subtle)return crypto.subtle;throw new ic("Global crypto was not available and none was provided. Please inlcude a SubtleCrypto implementation. See https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto")}var Vt=class e extends Ft{static async generate(t){let{extractable:r=!1,keyUsages:n=["sign","verify"],subtleCrypto:o}=t??{},i=dd(o),s=await i.generateKey({name:"ECDSA",namedCurve:"P-256"},r,n),a=vt(await i.exportKey("spki",s.publicKey));return Object.assign(a,{__derEncodedPublicKey__:void 0}),new this(s,a,i)}static async fromKeyPair(t,r){let n=dd(r),o=vt(await n.exportKey("spki",t.publicKey));return Object.assign(o,{__derEncodedPublicKey__:void 0}),new e(t,o,n)}constructor(t,r,n){super(),this._keyPair=t,this._derKey=r,this._subtleCrypto=n}getKeyPair(){return this._keyPair}getPublicKey(){let t=this._derKey,r=Object.create(this._keyPair.publicKey);return r.toDer=function(){return t},r}async sign(t){let r={name:"ECDSA",hash:{name:"SHA-256"}},n=vt(await this._subtleCrypto.sign(r,this._keyPair.privateKey,t));return Object.assign(n,{__signature__:void 0}),n}};var hs=class{#e;get rawKey(){return this.#e.rawKey}get derKey(){return this.#e.derKey}toDer(){return this.#e.toDer()}getPublicKey(){return this.#e}getPrincipal(){if(!this.#e.rawKey)throw new Error("Cannot get principal from a public key without a raw key.");return M.fromUint8Array(new Uint8Array(this.#e.rawKey))}transformRequest(){return Promise.reject("Not implemented. You are attempting to use a partial identity to sign calls, but this identity only has access to the public key.To sign calls, use a DelegationIdentity instead.")}constructor(t){this.#e=t}};function ms(e){return e instanceof Uint8Array?H(e):H(new Uint8Array(e))}function sc(e){if(typeof e!="string"||e.length<64)throw new Error("Invalid public key.");return Ne(e)}var Pr=class{constructor(t,r,n){this.pubkey=t,this.expiration=r,this.targets=n}toCborValue(){return{pubkey:this.pubkey,expiration:this.expiration,...this.targets&&{targets:this.targets}}}toJSON(){return{expiration:this.expiration.toString(16),pubkey:ms(this.pubkey),...this.targets&&{targets:this.targets.map(t=>t.toHex())}}}};async function Km(e,t,r,n){let o=new Pr(t.toDer(),BigInt(+r)*BigInt(1e6),n),i=new Uint8Array([...ia,...new Uint8Array(Zt({...o}))]),s=await e.sign(i);return{delegation:o,signature:s}}var ur=class e{static async create(t,r,n=new Date(Date.now()+900*1e3),o={}){let i=await Km(t,r,n,o.targets);return new e([...o.previous?.delegations||[],i],o.previous?.publicKey||t.getPublicKey().toDer())}static fromJSON(t){let{publicKey:r,delegations:n}=typeof t=="string"?JSON.parse(t):t;if(!Array.isArray(n))throw new Error("Invalid delegations.");let o=n.map(i=>{let{delegation:s,signature:a}=i,{pubkey:c,expiration:u,targets:p}=s;if(p!==void 0&&!Array.isArray(p))throw new Error("Invalid targets.");return{delegation:new Pr(sc(c),BigInt("0x"+u),p&&p.map(d=>{if(typeof d!="string")throw new Error("Invalid target.");return M.fromHex(d)})),signature:sc(a)}});return new this(o,sc(r))}static fromDelegations(t,r){return new this(t,r)}constructor(t,r){this.delegations=t,this.publicKey=r}toJSON(){return{delegations:this.delegations.map(t=>{let{delegation:r,signature:n}=t,{targets:o}=r;return{delegation:{expiration:r.expiration.toString(16),pubkey:ms(r.pubkey),...o&&{targets:o.map(i=>i.toHex())}},signature:ms(n)}}),publicKey:ms(this.publicKey)}}},dr=class extends Ft{static fromDelegation(t,r){return new this(t,r)}constructor(t,r){super(),this._inner=t,this._delegation=r}getDelegation(){return this._delegation}getPublicKey(){return{derKey:this._delegation.publicKey,toDer:()=>this._delegation.publicKey}}sign(t){return this._inner.sign(t)}async transformRequest(t){let{body:r,...n}=t,o=await Zt(r);return{...n,body:{content:r,sender_sig:await this.sign(new Uint8Array([...Co,...new Uint8Array(o)])),sender_delegation:this._delegation.delegations,sender_pubkey:this._delegation.publicKey}}}},ii=class e extends hs{#e;get delegation(){return this.#e}constructor(t,r){super(t),this.#e=r}static fromDelegation(t,r){return new e(t,r)}};function ac(e,t){for(let{delegation:o}of e.delegations)if(+new Date(Number(o.expiration/BigInt(1e6)))<=+Date.now())return!1;let r=[],n=t?.scope;n&&(Array.isArray(n)?r.push(...n.map(o=>typeof o=="string"?M.fromText(o):o)):r.push(typeof n=="string"?M.fromText(n):n));for(let o of r){let i=o.toText();for(let{delegation:s}of e.delegations){if(s.targets===void 0)continue;let a=!0;for(let c of s.targets)if(c.toText()===i){a=!1;break}if(a)return!1}}return!0}var pd=["mousedown","mousemove","keydown","touchstart","wheel"],si=class e{callbacks=[];idleTimeout=600*1e3;timeoutID=void 0;static create(t={}){return new e(t)}constructor(t={}){let{onIdle:r,idleTimeout:n=600*1e3}=t||{};this.callbacks=r?[r]:[],this.idleTimeout=n;let o=this._resetTimer.bind(this);window.addEventListener("load",o,!0),pd.forEach(s=>{document.addEventListener(s,o,!0)});let i=(s,a)=>{let c;return(...u)=>{let p=this,d=()=>{c=void 0,s.apply(p,u)};clearTimeout(c),c=window.setTimeout(d,a)}};if(t?.captureScroll){let s=i(o,t?.scrollDebounce??100);window.addEventListener("scroll",s,!0)}o()}registerCallback(t){this.callbacks.push(t)}exit(){clearTimeout(this.timeoutID),window.removeEventListener("load",this._resetTimer,!0);let t=this._resetTimer.bind(this);pd.forEach(r=>{document.removeEventListener(r,t,!0)}),this.callbacks.forEach(r=>{r()})}_resetTimer(){let t=this.exit.bind(this);window.clearTimeout(this.timeoutID),this.timeoutID=window.setTimeout(t,this.idleTimeout)}};var Hm=(e,t)=>t.some(r=>e instanceof r),fd,hd;function $m(){return fd||(fd=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Gm(){return hd||(hd=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var md=new WeakMap,lc=new WeakMap,_d=new WeakMap,cc=new WeakMap,dc=new WeakMap;function Jm(e){let t=new Promise((r,n)=>{let o=()=>{e.removeEventListener("success",i),e.removeEventListener("error",s)},i=()=>{r(Pt(e.result)),o()},s=()=>{n(e.error),o()};e.addEventListener("success",i),e.addEventListener("error",s)});return t.then(r=>{r instanceof IDBCursor&&md.set(r,e)}).catch(()=>{}),dc.set(t,e),t}function Wm(e){if(lc.has(e))return;let t=new Promise((r,n)=>{let o=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",s),e.removeEventListener("abort",s)},i=()=>{r(),o()},s=()=>{n(e.error||new DOMException("AbortError","AbortError")),o()};e.addEventListener("complete",i),e.addEventListener("error",s),e.addEventListener("abort",s)});lc.set(e,t)}var uc={get(e,t,r){if(e instanceof IDBTransaction){if(t==="done")return lc.get(e);if(t==="objectStoreNames")return e.objectStoreNames||_d.get(e);if(t==="store")return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return Pt(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&(t==="done"||t==="store")?!0:t in e}};function yd(e){uc=e(uc)}function zm(e){return e===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(t,...r){let n=e.call(_s(this),t,...r);return _d.set(n,t.sort?t.sort():[t]),Pt(n)}:Gm().includes(e)?function(...t){return e.apply(_s(this),t),Pt(md.get(this))}:function(...t){return Pt(e.apply(_s(this),t))}}function Ym(e){return typeof e=="function"?zm(e):(e instanceof IDBTransaction&&Wm(e),Hm(e,$m())?new Proxy(e,uc):e)}function Pt(e){if(e instanceof IDBRequest)return Jm(e);if(cc.has(e))return cc.get(e);let t=Ym(e);return t!==e&&(cc.set(e,t),dc.set(t,e)),t}var _s=e=>dc.get(e);function xd(e,t,{blocked:r,upgrade:n,blocking:o,terminated:i}={}){let s=indexedDB.open(e,t),a=Pt(s);return n&&s.addEventListener("upgradeneeded",c=>{n(Pt(s.result),c.oldVersion,c.newVersion,Pt(s.transaction),c)}),r&&s.addEventListener("blocked",c=>r(c.oldVersion,c.newVersion,c)),a.then(c=>{i&&c.addEventListener("close",()=>i()),o&&c.addEventListener("versionchange",u=>o(u.oldVersion,u.newVersion,u))}).catch(()=>{}),a}var Zm=["get","getKey","getAll","getAllKeys","count"],Xm=["put","add","delete","clear"],pc=new Map;function gd(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(pc.get(t))return pc.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,o=Xm.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||Zm.includes(r)))return;let i=async function(s,...a){let c=this.transaction(s,o?"readwrite":"readonly"),u=c.store;return n&&(u=u.index(a.shift())),(await Promise.all([u[r](...a),o&&c.done]))[0]};return pc.set(t,i),i}yd(e=>({...e,get:(t,r,n)=>gd(t,r)||e.get(t,r,n),has:(t,r)=>!!gd(t,r)||e.has(t,r)}));var bd="auth-client-db",wd="ic-keyval",Qm=async(e=bd,t=wd,r)=>(globalThis.localStorage?.getItem(He)&&(globalThis.localStorage.removeItem(He),globalThis.localStorage.removeItem($e)),await xd(e,r,{upgrade:n=>{n.objectStoreNames.contains(t)&&n.clear(t),n.createObjectStore(t)}}));async function e_(e,t,r){return await e.get(t,r)}async function t_(e,t,r,n){return await e.put(t,n,r)}async function r_(e,t,r){return await e.delete(t,r)}var ys=class e{constructor(t,r){this._db=t,this._storeName=r}static async create(t){let{dbName:r=bd,storeName:n=wd,version:o=Td}=t??{},i=await Qm(r,n,o);return new e(i,n)}async set(t,r){return await t_(this._db,this._storeName,t,r)}async get(t){return await e_(this._db,this._storeName,t)??null}async remove(t){return await r_(this._db,this._storeName,t)}};var $e="identity",He="delegation",Nd="iv",Td=1,ai=class{constructor(t="ic-",r){this.prefix=t,this._localStorage=r}get(t){return Promise.resolve(this._getLocalStorage().getItem(this.prefix+t))}set(t,r){return this._getLocalStorage().setItem(this.prefix+t,r),Promise.resolve()}remove(t){return this._getLocalStorage().removeItem(this.prefix+t),Promise.resolve()}_getLocalStorage(){if(this._localStorage)return this._localStorage;let t=globalThis.localStorage;if(!t)throw new Error("Could not find local storage.");return t}},Bt=class{#e;constructor(t){this.#e=t??{}}initializedDb;get _db(){return new Promise((t,r)=>{if(this.initializedDb){t(this.initializedDb);return}ys.create(this.#e).then(n=>{this.initializedDb=n,t(n)}).catch(r)})}async get(t){return await(await this._db).get(t)}async set(t,r){await(await this._db).set(t,r)}async remove(t){await(await this._db).remove(t)}};var n_=BigInt(1e9),o_=BigInt(3600),i_=n_*o_,s_="https://identity.internetcomputer.org",a_="#authorize",c_=BigInt(8)*i_,fc="ECDSA",hc="Ed25519",l_=500,gs="UserInterrupt",ci=class e{constructor(t,r,n,o,i,s,a,c){this._identity=t,this._key=r,this._chain=n,this._storage=o,this.idleManager=i,this._createOptions=s,this._idpWindow=a,this._eventHandler=c,this._registerDefaultIdleCallback()}static async create(t={}){let r=t.storage??new Bt,n=t.keyType??fc,o=null;if(t.identity)o=t.identity;else{let c=await r.get($e);if(!c)try{let u=new ai,p=await u.get(He),d=await u.get($e);p&&d&&n===fc&&(console.log("Discovered an identity stored in localstorage. Migrating to IndexedDB"),await r.set(He,p),await r.set($e,d),c=p,await u.remove(He),await u.remove($e))}catch(u){console.error(`error while attempting to recover localstorage: ${u}`)}if(c)try{typeof c=="object"?n===hc&&typeof c=="string"?o=Nt.fromJSON(c):o=await Vt.fromKeyPair(c):typeof c=="string"&&(o=Nt.fromJSON(c))}catch{}}let i=new rt,s=null;if(o)try{let c=await r.get(He);if(typeof c=="object"&&c!==null)throw new Error("Delegation chain is incorrectly stored. A delegation chain should be stored as a string.");t.identity?i=t.identity:c&&(s=ur.fromJSON(c),ac(s)?"toDer"in o?i=ii.fromDelegation(o,s):i=dr.fromDelegation(o,s):(await mc(r),o=null))}catch(c){console.error(c),await mc(r),o=null}let a;return t.idleOptions?.disableIdle?a=void 0:(s||t.identity)&&(a=si.create(t.idleOptions)),o||(n===hc?o=Nt.generate():(t.storage&&n===fc&&console.warn(`You are using a custom storage provider that may not support CryptoKey storage. If you are using a custom storage provider that does not support CryptoKey storage, you should use '${hc}' as the key type, as it can serialize to a string`),o=await Vt.generate()),await Od(r,o)),new e(i,o,s,r,a,t)}_registerDefaultIdleCallback(){let t=this._createOptions?.idleOptions;!t?.onIdle&&!t?.disableDefaultIdleCallback&&this.idleManager?.registerCallback(()=>{this.logout(),location.reload()})}async _handleSuccess(t,r){let n=t.delegations.map(a=>({delegation:new Pr(a.delegation.pubkey,a.delegation.expiration,a.delegation.targets),signature:a.signature})),o=ur.fromDelegations(n,t.userPublicKey),i=this._key;if(!i)return;this._chain=o,"toDer"in i?this._identity=ii.fromDelegation(i,this._chain):this._identity=dr.fromDelegation(i,this._chain),this._idpWindow?.close();let s=this._createOptions?.idleOptions;!this.idleManager&&!s?.disableIdle&&(this.idleManager=si.create(s),this._registerDefaultIdleCallback()),this._removeEventListener(),delete this._idpWindow,this._chain&&await this._storage.set(He,JSON.stringify(this._chain.toJSON())),await Od(this._storage,this._key),r?.(t)}getIdentity(){return this._identity}async isAuthenticated(){return!this.getIdentity().getPrincipal().isAnonymous()&&this._chain!==null&&ac(this._chain)}async login(t){let r=u_(this._createOptions?.loginOptions,t),n=r?.maxTimeToLive??c_,o=new URL(r?.identityProvider?.toString()||s_);o.hash=a_,this._idpWindow?.close(),this._removeEventListener(),this._eventHandler=this._getEventHandler(o,{maxTimeToLive:n,...r}),window.addEventListener("message",this._eventHandler),this._idpWindow=window.open(o.toString(),"idpWindow",r?.windowOpenerFeatures)??void 0;let i=()=>{this._idpWindow&&(this._idpWindow.closed?this._handleFailure(gs,r?.onError):setTimeout(i,l_))};i()}_getEventHandler(t,r){return async n=>{if(n.origin!==t.origin)return;let o=n.data;switch(o.kind){case"authorize-ready":{let i={kind:"authorize-client",sessionPublicKey:new Uint8Array(this._key?.getPublicKey().toDer()),maxTimeToLive:r?.maxTimeToLive,allowPinAuthentication:r?.allowPinAuthentication,derivationOrigin:r?.derivationOrigin?.toString(),...r?.customValues};this._idpWindow?.postMessage(i,t.origin);break}case"authorize-client-success":try{await this._handleSuccess(o,r?.onSuccess)}catch(i){this._handleFailure(i.message,r?.onError)}break;case"authorize-client-failure":this._handleFailure(o.text,r?.onError);break}}}_handleFailure(t,r){this._idpWindow?.close(),r?.(t),this._removeEventListener(),delete this._idpWindow}_removeEventListener(){this._eventHandler&&window.removeEventListener("message",this._eventHandler),this._eventHandler=void 0}async logout(t={}){if(await mc(this._storage),this._identity=new rt,this._chain=null,t.returnTo)try{window.history.pushState({},"",t.returnTo)}catch{window.location.href=t.returnTo}}};async function mc(e){await e.remove($e),await e.remove(He),await e.remove(Nd)}function u_(e,t){if(!e&&!t)return;let r=e?.customValues||t?.customValues?{...e?.customValues,...t?.customValues}:void 0;return{...e,...t,customValues:r}}function d_(e){if(e instanceof Vt)return e.getKeyPair();if(e instanceof Nt)return JSON.stringify(e.toJSON());throw new Error("Unsupported key type")}async function Od(e,t){let r=d_(t);await e.set($e,r)}var Be=class e{static#e;#t;constructor(){}static getInstance(){return k(this.#e)&&(this.#e=new e),this.#e}createAuthClient=async()=>(this.#t=await ci.create({idleOptions:{disableIdle:!0,disableDefaultIdleCallback:!0}}),this.#t);safeCreateAuthClient=async()=>(await new Bt().remove($e),await this.createAuthClient());getAuthClient=()=>this.#t;logout=async()=>{await this.#t?.logout(),this.#t=null};setAuthClientStorage=async({delegationChain:t,sessionKey:r})=>{let n=new Bt;await Promise.all([n.set($e,r.getKeyPair()),n.set(He,JSON.stringify(t.toJSON()))])}};var _c=async e=>{await p_(),await Be.getInstance().createAuthClient(),e?.windowReload!==!1&&window.location.reload()},p_=async()=>{await Be.getInstance().logout(),Pe.getInstance().reset(),lo.getInstance().reset(),co.getInstance().reset()};var Ed=e=>{let t=e===!0?"./workers/auth.worker.js":e,r=new Worker(t),n=async()=>{ni({message:"junoSignOutAuthTimer"}),await _c()};return r.onmessage=async({data:o})=>{let{msg:i,data:s}=o;switch(i){case"junoSignOutAuthTimer":await n();return;case"junoDelegationRemainingTime":ni({message:"junoDelegationRemainingTime",detail:s?.authRemainingTime})}},Pe.getInstance().subscribe(o=>{if(k(o)){r.postMessage({msg:"junoStopAuthTimer"});return}r.postMessage({msg:"junoStartAuthTimer"})})};var uo=class e{static#e;#t;#r;static CHANNEL_NAME="juno_core_auth_channel";static MESSAGE_LOGIN_SUCCESS="authClientLoginSuccess";constructor(){this.#t=new BroadcastChannel(e.CHANNEL_NAME),this.#r=window.crypto.randomUUID()}static getInstance(){return k(this.#e)&&(this.#e=new e),this.#e}onLoginSuccess=t=>{let{location:{origin:r}}=window;this.#t.onmessage=async({origin:n,data:o})=>{n===r&&W(o)&&o.msg==="authClientLoginSuccess"&&ei(o.emitterId)&&o.emitterId!==this.#r&&await t()}};destroy=()=>{this.#t.close(),e.#e=null};postLoginSuccess=()=>{let t={emitterId:this.#r,msg:e.MESSAGE_LOGIN_SUCCESS};this.#t.postMessage(t)};get __test__only__emitter_id__(){return this.#r}};var ve=class e extends so{static instance;env;constructor(){super()}static getInstance(){return e.instance||(e.instance=new e),e.instance}set(t){this.env=t,this.populate(t)}get(){return this.env}reset(){this.env=null}subscribe(t){let r=super.subscribe(t);return t(this.env),r}};var li=async({fn:e,syncTabsOnSuccess:t})=>{let{authenticated:r}=await f_({fn:e});!r||!t||ve.getInstance().get()?.syncTabs===!1||h_()},Rd=async({fn:e})=>{let{createAuthClient:t}=Be.getInstance(),n=await(await t()).isAuthenticated();await e({authenticated:n})},f_=async({fn:e})=>{let{createAuthClient:t,safeCreateAuthClient:r}=Be.getInstance();return await(await t()).isAuthenticated()?(await e(),{authenticated:!0}):(await r(),{authenticated:!1})},h_=()=>{try{uo.getInstance().postLoginSuccess()}catch(e){console.warn("Auth BroadcastChannel posting failed",e)}};var yc=({error:e,type:t})=>typeof e=="string"?e.includes(t):e instanceof Error?e.message.includes(t):!1;var vd="juno.datastore.error.user.cannot_update";var Dt={certified:!1};var xs=()=>Be.getInstance().getAuthClient()?.getIdentity(),m_=async()=>{let{getAuthClient:e,createAuthClient:t}=Be.getInstance();return(e()??await t()).getIdentity()},__=async()=>{let e=Pe.getInstance().get();if(k(e))return null;let t=Be.getInstance().getAuthClient();return await t?.isAuthenticated()??!1?t?.getIdentity()??null:null};var le=e=>W(e)?e:xs()??new rt;var gc=({IDL:e})=>{let t=e.Variant({Heap:e.Null,Stable:e.Null}),r=e.Record({system_memory:e.Opt(t)}),n=e.Record({controllers:e.Vec(e.Principal),storage:e.Opt(r)}),o=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),i=e.Variant({OpenId:o}),s=e.Record({updated_at:e.Nat64,owner:e.Principal,data:e.Vec(e.Nat8),description:e.Opt(e.Text),created_at:e.Nat64,version:e.Opt(e.Nat64)}),a=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),c=e.Record({doc:s,delegation:a}),u=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),p=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),d=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),l=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),f=e.Variant({PrepareDelegation:l,RegisterUser:e.Text}),h=e.Variant({Ok:c,Err:f}),m=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),g=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),_=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),x=e.Record({field:_,desc:e.Bool}),y=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),T=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(y),description:e.Opt(e.Text),created_at:e.Opt(y)}),E=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),O=e.Record({order:e.Opt(x),owner:e.Opt(e.Principal),matcher:e.Opt(T),paginate:e.Opt(E)}),R=e.Record({controllers:e.Vec(e.Principal)}),I=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),w=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,scope:I,expires_at:e.Opt(e.Nat64)}),v=e.Record({version:e.Opt(e.Nat64)}),C=e.Variant({Db:e.Null,Storage:e.Null}),S=e.Record({version:e.Opt(e.Nat64)}),b=e.Record({proposal_ids:e.Vec(e.Nat)}),N=e.Record({cycles:e.Nat,destination_id:e.Principal}),F=e.Record({token:e.Opt(e.Text),collection:e.Text,owner:e.Principal,name:e.Text,description:e.Opt(e.Text),full_path:e.Text}),B=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),L=e.Record({key:F,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,B)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),A=e.Variant({Google:e.Null}),V=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),P=e.Record({delegation:e.Opt(V),client_id:e.Text}),D=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(A,P))}),U=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),te=e.Record({allowed_callers:e.Vec(e.Principal)}),Q=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(D),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(U),rules:e.Opt(te)}),$=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),se=e.Record({updated_at:e.Opt(e.Nat64),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt($)}),pe=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),Se=e.Variant({Deny:e.Null,Allow:e.Null}),re=e.Record({status_code:e.Nat16,location:e.Text}),ue=e.Record({iframe:e.Opt(pe),updated_at:e.Opt(e.Nat64),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt($),raw_access:e.Opt(Se),redirects:e.Opt(e.Vec(e.Tuple(e.Text,re)))}),Dr=e.Record({db:e.Opt(se),authentication:e.Opt(Q),storage:ue}),kt=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Ye=e.Variant({OpenId:kt}),Ur=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),kr=e.Record({signature:e.Vec(e.Nat8),delegation:Ur}),at=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),Lr=e.Variant({Ok:kr,Err:at}),qr=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),Mr=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Lt=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),ct=e.Variant({AssetsUpgrade:Mr,SegmentsDeployment:Lt}),Ze=e.Record({status:qr,updated_at:e.Nat64,sha256:e.Opt(e.Vec(e.Nat8)),executed_at:e.Opt(e.Nat64),owner:e.Principal,created_at:e.Nat64,version:e.Opt(e.Nat64),proposal_type:ct}),Xe=e.Variant({Controllers:e.Null,Private:e.Null,Public:e.Null,Managed:e.Null}),lt=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),ut=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),updated_at:e.Nat64,max_size:e.Opt(e.Nat),read:Xe,created_at:e.Nat64,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(lt),write:Xe,max_changes_per_user:e.Opt(e.Nat32)}),jr=e.Record({url:e.Text,method:e.Text,body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),certificate_version:e.Opt(e.Nat16)}),dt=e.Record({memory:t,token:e.Opt(e.Text),sha256:e.Opt(e.Vec(e.Nat8)),headers:e.Vec(e.Tuple(e.Text,e.Text)),index:e.Nat64,encoding_type:e.Text,full_path:e.Text}),Kr=e.Variant({Callback:e.Record({token:dt,callback:e.Func([],[],["query"])})}),Hr=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(Kr),status_code:e.Nat16}),$r=e.Record({token:e.Opt(dt),body:e.Vec(e.Nat8)}),pt=e.Record({token:e.Opt(e.Text),collection:e.Text,name:e.Text,description:e.Opt(e.Text),encoding_type:e.Opt(e.Text),full_path:e.Text}),Qe=e.Record({batch_id:e.Nat}),Gr=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,L)),items_length:e.Nat64}),Jr=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),Wr=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,s)),items_length:e.Nat64}),zr=e.Record({desc:e.Bool}),Yr=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Zr=e.Record({order:e.Opt(zr),paginate:e.Opt(Yr)}),Xr=e.Record({proposal_id:e.Nat}),Qr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Xr,Ze)),items_length:e.Nat64}),en=e.Record({include_system:e.Bool}),tn=e.Record({matcher:e.Opt(en)}),rn=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,ut)),items_length:e.Nat64}),nn=e.Record({stable:e.Nat64,heap:e.Nat64}),qt=e.Record({openid:e.Opt(D),version:e.Opt(e.Nat64),internet_identity:e.Opt(U),rules:e.Opt(te)}),on=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:I,expires_at:e.Opt(e.Nat64)}),sn=e.Record({controller:on,controllers:e.Vec(e.Principal)}),an=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt($)}),Mt=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),ks=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),max_size:e.Opt(e.Nat),read:Xe,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(lt),write:Xe,max_changes_per_user:e.Opt(e.Nat32)}),Ls=e.Record({iframe:e.Opt(pe),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),version:e.Opt(e.Nat64),max_memory_size:e.Opt($),raw_access:e.Opt(Se),redirects:e.Opt(e.Vec(e.Tuple(e.Text,re)))}),fo=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),ho=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([i],[h],[]),commit_asset_upload:e.Func([m],[],[]),commit_proposal:e.Func([g],[e.Null],[]),commit_proposal_asset_upload:e.Func([m],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(m)],[],[]),count_assets:e.Func([e.Text,O],[e.Nat64],["query"]),count_collection_assets:e.Func([e.Text],[e.Nat64],["query"]),count_collection_docs:e.Func([e.Text],[e.Nat64],["query"]),count_docs:e.Func([e.Text,O],[e.Nat64],["query"]),count_proposals:e.Func([],[e.Nat64],["query"]),del_asset:e.Func([e.Text,e.Text],[],[]),del_assets:e.Func([e.Text],[],[]),del_controllers:e.Func([R],[e.Vec(e.Tuple(e.Principal,w))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,v],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,O],[],[]),del_filtered_docs:e.Func([e.Text,O],[],[]),del_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[],[]),del_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,v))],[],[]),del_rule:e.Func([C,e.Text,S],[],[]),delete_proposal_assets:e.Func([b],[],[]),deposit_cycles:e.Func([N],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(L)],["query"]),get_auth_config:e.Func([],[e.Opt(Q)],["query"]),get_config:e.Func([],[Dr],[]),get_db_config:e.Func([],[e.Opt(se)],["query"]),get_delegation:e.Func([Ye],[Lr],["query"]),get_doc:e.Func([e.Text,e.Text],[e.Opt(s)],["query"]),get_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(L)))],["query"]),get_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(s)))],["query"]),get_proposal:e.Func([e.Nat],[e.Opt(Ze)],["query"]),get_rule:e.Func([C,e.Text],[e.Opt(ut)],["query"]),get_storage_config:e.Func([],[ue],["query"]),http_request:e.Func([jr],[Hr],["query"]),http_request_streaming_callback:e.Func([dt],[$r],["query"]),init_asset_upload:e.Func([pt],[Qe],[]),init_proposal:e.Func([ct],[e.Nat,Ze],[]),init_proposal_asset_upload:e.Func([pt,e.Nat],[Qe],[]),init_proposal_many_assets_upload:e.Func([e.Vec(pt),e.Nat],[e.Vec(e.Tuple(e.Text,Qe))],[]),list_assets:e.Func([e.Text,O],[Gr],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,w))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Jr))],["query"]),list_docs:e.Func([e.Text,O],[Wr],["query"]),list_proposals:e.Func([Zr],[Qr],["query"]),list_rules:e.Func([C,tn],[rn],["query"]),memory_size:e.Func([],[nn],["query"]),reject_proposal:e.Func([g],[e.Null],[]),set_asset_token:e.Func([e.Text,e.Text,e.Opt(e.Text)],[],[]),set_auth_config:e.Func([qt],[Q],[]),set_controllers:e.Func([sn],[e.Vec(e.Tuple(e.Principal,w))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([an],[se],[]),set_doc:e.Func([e.Text,e.Text,Mt],[s],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,Mt))],[e.Vec(e.Tuple(e.Text,s))],[]),set_rule:e.Func([C,e.Text,ks],[ut],[]),set_storage_config:e.Func([Ls],[ue],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ze],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([fo],[ho],[]),upload_proposal_asset_chunk:e.Func([fo],[ho],[])})},xc=({IDL:e})=>{let t=e.Variant({Heap:e.Null,Stable:e.Null}),r=e.Record({system_memory:e.Opt(t)}),n=e.Record({controllers:e.Vec(e.Principal),storage:e.Opt(r)}),o=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),i=e.Variant({OpenId:o}),s=e.Record({updated_at:e.Nat64,owner:e.Principal,data:e.Vec(e.Nat8),description:e.Opt(e.Text),created_at:e.Nat64,version:e.Opt(e.Nat64)}),a=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),c=e.Record({doc:s,delegation:a}),u=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),p=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),d=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),l=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),f=e.Variant({PrepareDelegation:l,RegisterUser:e.Text}),h=e.Variant({Ok:c,Err:f}),m=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),g=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),_=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),x=e.Record({field:_,desc:e.Bool}),y=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),T=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(y),description:e.Opt(e.Text),created_at:e.Opt(y)}),E=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),O=e.Record({order:e.Opt(x),owner:e.Opt(e.Principal),matcher:e.Opt(T),paginate:e.Opt(E)}),R=e.Record({controllers:e.Vec(e.Principal)}),I=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),w=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,scope:I,expires_at:e.Opt(e.Nat64)}),v=e.Record({version:e.Opt(e.Nat64)}),C=e.Variant({Db:e.Null,Storage:e.Null}),S=e.Record({version:e.Opt(e.Nat64)}),b=e.Record({proposal_ids:e.Vec(e.Nat)}),N=e.Record({cycles:e.Nat,destination_id:e.Principal}),F=e.Record({token:e.Opt(e.Text),collection:e.Text,owner:e.Principal,name:e.Text,description:e.Opt(e.Text),full_path:e.Text}),B=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),L=e.Record({key:F,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,B)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),A=e.Variant({Google:e.Null}),V=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),P=e.Record({delegation:e.Opt(V),client_id:e.Text}),D=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(A,P))}),U=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),te=e.Record({allowed_callers:e.Vec(e.Principal)}),Q=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(D),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(U),rules:e.Opt(te)}),$=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),se=e.Record({updated_at:e.Opt(e.Nat64),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt($)}),pe=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),Se=e.Variant({Deny:e.Null,Allow:e.Null}),re=e.Record({status_code:e.Nat16,location:e.Text}),ue=e.Record({iframe:e.Opt(pe),updated_at:e.Opt(e.Nat64),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt($),raw_access:e.Opt(Se),redirects:e.Opt(e.Vec(e.Tuple(e.Text,re)))}),Dr=e.Record({db:e.Opt(se),authentication:e.Opt(Q),storage:ue}),kt=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Ye=e.Variant({OpenId:kt}),Ur=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),kr=e.Record({signature:e.Vec(e.Nat8),delegation:Ur}),at=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),Lr=e.Variant({Ok:kr,Err:at}),qr=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),Mr=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Lt=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),ct=e.Variant({AssetsUpgrade:Mr,SegmentsDeployment:Lt}),Ze=e.Record({status:qr,updated_at:e.Nat64,sha256:e.Opt(e.Vec(e.Nat8)),executed_at:e.Opt(e.Nat64),owner:e.Principal,created_at:e.Nat64,version:e.Opt(e.Nat64),proposal_type:ct}),Xe=e.Variant({Controllers:e.Null,Private:e.Null,Public:e.Null,Managed:e.Null}),lt=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),ut=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),updated_at:e.Nat64,max_size:e.Opt(e.Nat),read:Xe,created_at:e.Nat64,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(lt),write:Xe,max_changes_per_user:e.Opt(e.Nat32)}),jr=e.Record({url:e.Text,method:e.Text,body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),certificate_version:e.Opt(e.Nat16)}),dt=e.Record({memory:t,token:e.Opt(e.Text),sha256:e.Opt(e.Vec(e.Nat8)),headers:e.Vec(e.Tuple(e.Text,e.Text)),index:e.Nat64,encoding_type:e.Text,full_path:e.Text}),Kr=e.Variant({Callback:e.Record({token:dt,callback:e.Func([],[],[])})}),Hr=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(Kr),status_code:e.Nat16}),$r=e.Record({token:e.Opt(dt),body:e.Vec(e.Nat8)}),pt=e.Record({token:e.Opt(e.Text),collection:e.Text,name:e.Text,description:e.Opt(e.Text),encoding_type:e.Opt(e.Text),full_path:e.Text}),Qe=e.Record({batch_id:e.Nat}),Gr=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,L)),items_length:e.Nat64}),Jr=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),Wr=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,s)),items_length:e.Nat64}),zr=e.Record({desc:e.Bool}),Yr=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Zr=e.Record({order:e.Opt(zr),paginate:e.Opt(Yr)}),Xr=e.Record({proposal_id:e.Nat}),Qr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Xr,Ze)),items_length:e.Nat64}),en=e.Record({include_system:e.Bool}),tn=e.Record({matcher:e.Opt(en)}),rn=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,ut)),items_length:e.Nat64}),nn=e.Record({stable:e.Nat64,heap:e.Nat64}),qt=e.Record({openid:e.Opt(D),version:e.Opt(e.Nat64),internet_identity:e.Opt(U),rules:e.Opt(te)}),on=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:I,expires_at:e.Opt(e.Nat64)}),sn=e.Record({controller:on,controllers:e.Vec(e.Principal)}),an=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt($)}),Mt=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),ks=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),max_size:e.Opt(e.Nat),read:Xe,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(lt),write:Xe,max_changes_per_user:e.Opt(e.Nat32)}),Ls=e.Record({iframe:e.Opt(pe),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),version:e.Opt(e.Nat64),max_memory_size:e.Opt($),raw_access:e.Opt(Se),redirects:e.Opt(e.Vec(e.Tuple(e.Text,re)))}),fo=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),ho=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([i],[h],[]),commit_asset_upload:e.Func([m],[],[]),commit_proposal:e.Func([g],[e.Null],[]),commit_proposal_asset_upload:e.Func([m],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(m)],[],[]),count_assets:e.Func([e.Text,O],[e.Nat64],[]),count_collection_assets:e.Func([e.Text],[e.Nat64],[]),count_collection_docs:e.Func([e.Text],[e.Nat64],[]),count_docs:e.Func([e.Text,O],[e.Nat64],[]),count_proposals:e.Func([],[e.Nat64],[]),del_asset:e.Func([e.Text,e.Text],[],[]),del_assets:e.Func([e.Text],[],[]),del_controllers:e.Func([R],[e.Vec(e.Tuple(e.Principal,w))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,v],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,O],[],[]),del_filtered_docs:e.Func([e.Text,O],[],[]),del_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[],[]),del_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,v))],[],[]),del_rule:e.Func([C,e.Text,S],[],[]),delete_proposal_assets:e.Func([b],[],[]),deposit_cycles:e.Func([N],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(L)],[]),get_auth_config:e.Func([],[e.Opt(Q)],[]),get_config:e.Func([],[Dr],[]),get_db_config:e.Func([],[e.Opt(se)],[]),get_delegation:e.Func([Ye],[Lr],[]),get_doc:e.Func([e.Text,e.Text],[e.Opt(s)],[]),get_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(L)))],[]),get_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(s)))],[]),get_proposal:e.Func([e.Nat],[e.Opt(Ze)],[]),get_rule:e.Func([C,e.Text],[e.Opt(ut)],[]),get_storage_config:e.Func([],[ue],[]),http_request:e.Func([jr],[Hr],[]),http_request_streaming_callback:e.Func([dt],[$r],[]),init_asset_upload:e.Func([pt],[Qe],[]),init_proposal:e.Func([ct],[e.Nat,Ze],[]),init_proposal_asset_upload:e.Func([pt,e.Nat],[Qe],[]),init_proposal_many_assets_upload:e.Func([e.Vec(pt),e.Nat],[e.Vec(e.Tuple(e.Text,Qe))],[]),list_assets:e.Func([e.Text,O],[Gr],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,w))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Jr))],[]),list_docs:e.Func([e.Text,O],[Wr],[]),list_proposals:e.Func([Zr],[Qr],[]),list_rules:e.Func([C,tn],[rn],[]),memory_size:e.Func([],[nn],[]),reject_proposal:e.Func([g],[e.Null],[]),set_asset_token:e.Func([e.Text,e.Text,e.Opt(e.Text)],[],[]),set_auth_config:e.Func([qt],[Q],[]),set_controllers:e.Func([sn],[e.Vec(e.Tuple(e.Principal,w))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([an],[se],[]),set_doc:e.Func([e.Text,e.Text,Mt],[s],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,Mt))],[e.Vec(e.Tuple(e.Text,s))],[]),set_rule:e.Func([C,e.Text,ks],[ut],[]),set_storage_config:e.Func([Ls],[ue],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ze],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([fo],[ho],[]),upload_proposal_asset_chunk:e.Func([fo],[ho],[])})},y_=({IDL:e})=>{let t=e.Record({e8s:e.Nat64}),r=e.Record({mission_control_id:e.Principal,user:e.Principal}),n=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),o=e.Variant({OpenId:n}),i=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),s=e.Variant({Google:e.Null}),a=e.Record({name:e.Opt(e.Text),locale:e.Opt(e.Text),family_name:e.Opt(e.Text),email:e.Opt(e.Text),picture:e.Opt(e.Text),given_name:e.Opt(e.Text)}),c=e.Record({provider:s,data:a}),u=e.Variant({InternetIdentity:e.Null,OpenId:c}),p=e.Record({updated_at:e.Nat64,credits:t,mission_control_id:e.Opt(e.Principal),provider:e.Opt(u),owner:e.Principal,created_at:e.Nat64}),d=e.Record({delegation:i,account:p}),l=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),f=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),h=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),m=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text}),g=e.Variant({PrepareDelegation:m,RegisterUser:e.Text}),_=e.Variant({Ok:d,Err:g}),x=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),y=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),T=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),user:e.Principal}),E=e.Variant({Heap:e.Null,Stable:e.Null}),O=e.Record({system_memory:e.Opt(E)}),R=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),storage:e.Opt(O),user:e.Principal}),I=e.Record({controllers:e.Vec(e.Principal)}),w=e.Record({proposal_ids:e.Vec(e.Nat)}),v=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),C=e.Record({delegation:e.Opt(v),client_id:e.Text}),S=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(s,C))}),b=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),N=e.Record({allowed_callers:e.Vec(e.Principal)}),F=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(S),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(b),rules:e.Opt(N)}),B=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),L=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),A=e.Variant({Deny:e.Null,Allow:e.Null}),V=e.Record({status_code:e.Nat16,location:e.Text}),P=e.Record({iframe:e.Opt(B),updated_at:e.Opt(e.Nat64),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(L),raw_access:e.Opt(A),redirects:e.Opt(e.Vec(e.Tuple(e.Text,V)))}),D=e.Record({authentication:e.Opt(F),storage:P}),U=e.Record({user:e.Principal}),te=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Q=e.Variant({OpenId:te}),$=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),se=e.Record({signature:e.Vec(e.Nat8),delegation:$}),pe=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text}),Se=e.Variant({Ok:se,Err:pe}),re=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),ue=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Dr=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),kt=e.Variant({AssetsUpgrade:ue,SegmentsDeployment:Dr}),Ye=e.Record({status:re,updated_at:e.Nat64,sha256:e.Opt(e.Vec(e.Nat8)),executed_at:e.Opt(e.Nat64),owner:e.Principal,created_at:e.Nat64,version:e.Opt(e.Nat64),proposal_type:kt}),Ur=e.Record({url:e.Text,method:e.Text,body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),certificate_version:e.Opt(e.Nat16)}),kr=e.Variant({Heap:e.Null,Stable:e.Null}),at=e.Record({memory:kr,token:e.Opt(e.Text),sha256:e.Opt(e.Vec(e.Nat8)),headers:e.Vec(e.Tuple(e.Text,e.Text)),index:e.Nat64,encoding_type:e.Text,full_path:e.Text}),Lr=e.Variant({Callback:e.Record({token:at,callback:e.Func([],[],["query"])})}),qr=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(Lr),status_code:e.Nat16}),Mr=e.Record({token:e.Opt(at),body:e.Vec(e.Nat8)}),Lt=e.Record({token:e.Opt(e.Text),collection:e.Text,name:e.Text,description:e.Opt(e.Text),encoding_type:e.Opt(e.Text),full_path:e.Text}),ct=e.Record({batch_id:e.Nat}),Ze=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),Xe=e.Record({field:Ze,desc:e.Bool}),lt=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),ut=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(lt),description:e.Opt(e.Text),created_at:e.Opt(lt)}),jr=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),dt=e.Record({order:e.Opt(Xe),owner:e.Opt(e.Principal),matcher:e.Opt(ut),paginate:e.Opt(jr)}),Kr=e.Record({token:e.Opt(e.Text),collection:e.Text,owner:e.Principal,name:e.Text,description:e.Opt(e.Text),full_path:e.Text}),Hr=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),$r=e.Record({key:Kr,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,Hr)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),pt=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,$r)),items_length:e.Nat64}),Qe=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),Gr=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,scope:Qe,expires_at:e.Opt(e.Nat64)}),Jr=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),Wr=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),zr=e.Record({status:Wr,updated_at:e.Nat64,block_index_payment:e.Nat64,mission_control_id:e.Opt(e.Principal),created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64)}),Yr=e.Record({desc:e.Bool}),Zr=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Xr=e.Record({order:e.Opt(Yr),paginate:e.Opt(Zr)}),Qr=e.Record({proposal_id:e.Nat}),en=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Qr,Ye)),items_length:e.Nat64}),tn=e.Record({openid:e.Opt(S),version:e.Opt(e.Nat64),internet_identity:e.Opt(b),rules:e.Opt(N)}),rn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:Qe,expires_at:e.Opt(e.Nat64)}),nn=e.Record({controller:rn,controllers:e.Vec(e.Principal)}),qt=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),on=e.Record({iframe:e.Opt(B),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),version:e.Opt(e.Nat64),max_memory_size:e.Opt(L),raw_access:e.Opt(A),redirects:e.Opt(e.Vec(e.Tuple(e.Text,V)))}),sn=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),an=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Mt=e.Record({chunk_id:e.Nat});return e.Service({add_credits:e.Func([e.Principal,t],[],[]),add_invitation_code:e.Func([e.Text],[],[]),assert_mission_control_center:e.Func([r],[],["query"]),authenticate:e.Func([o],[_],[]),commit_proposal:e.Func([x],[e.Null],[]),commit_proposal_asset_upload:e.Func([y],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(y)],[],[]),count_proposals:e.Func([],[e.Nat64],["query"]),create_orbiter:e.Func([T],[e.Principal],[]),create_satellite:e.Func([R],[e.Principal],[]),del_controllers:e.Func([I],[],[]),del_custom_domain:e.Func([e.Text],[],[]),delete_proposal_assets:e.Func([w],[],[]),get_account:e.Func([],[e.Opt(p)],["query"]),get_auth_config:e.Func([],[e.Opt(F)],["query"]),get_config:e.Func([],[D],["query"]),get_create_orbiter_fee:e.Func([U],[e.Opt(t)],["query"]),get_create_satellite_fee:e.Func([U],[e.Opt(t)],["query"]),get_credits:e.Func([],[t],["query"]),get_delegation:e.Func([Q],[Se],["query"]),get_proposal:e.Func([e.Nat],[e.Opt(Ye)],["query"]),get_storage_config:e.Func([],[P],["query"]),http_request:e.Func([Ur],[qr],["query"]),http_request_streaming_callback:e.Func([at],[Mr],["query"]),init_proposal:e.Func([kt],[e.Nat,Ye],[]),init_proposal_asset_upload:e.Func([Lt,e.Nat],[ct],[]),init_proposal_many_assets_upload:e.Func([e.Vec(Lt),e.Nat],[e.Vec(e.Tuple(e.Text,ct))],[]),init_user_mission_control_center:e.Func([],[p],[]),list_accounts:e.Func([],[e.Vec(e.Tuple(e.Principal,p))],["query"]),list_assets:e.Func([e.Text,dt],[pt],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,Gr))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Jr))],["query"]),list_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,zr))],["query"]),list_proposals:e.Func([Xr],[en],["query"]),reject_proposal:e.Func([x],[e.Null],[]),set_auth_config:e.Func([tn],[F],[]),set_controllers:e.Func([nn],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([qt,t],[],[]),set_storage_config:e.Func([on],[P],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ye],[]),update_rate_config:e.Func([qt,sn],[],[]),upload_proposal_asset_chunk:e.Func([an],[Mt],[])})},g_=({IDL:e})=>{let t=e.Record({e8s:e.Nat64}),r=e.Record({mission_control_id:e.Principal,user:e.Principal}),n=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),o=e.Variant({OpenId:n}),i=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),s=e.Variant({Google:e.Null}),a=e.Record({name:e.Opt(e.Text),locale:e.Opt(e.Text),family_name:e.Opt(e.Text),email:e.Opt(e.Text),picture:e.Opt(e.Text),given_name:e.Opt(e.Text)}),c=e.Record({provider:s,data:a}),u=e.Variant({InternetIdentity:e.Null,OpenId:c}),p=e.Record({updated_at:e.Nat64,credits:t,mission_control_id:e.Opt(e.Principal),provider:e.Opt(u),owner:e.Principal,created_at:e.Nat64}),d=e.Record({delegation:i,account:p}),l=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),f=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),h=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),m=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text}),g=e.Variant({PrepareDelegation:m,RegisterUser:e.Text}),_=e.Variant({Ok:d,Err:g}),x=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),y=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),T=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),user:e.Principal}),E=e.Variant({Heap:e.Null,Stable:e.Null}),O=e.Record({system_memory:e.Opt(E)}),R=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),storage:e.Opt(O),user:e.Principal}),I=e.Record({controllers:e.Vec(e.Principal)}),w=e.Record({proposal_ids:e.Vec(e.Nat)}),v=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),C=e.Record({delegation:e.Opt(v),client_id:e.Text}),S=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(s,C))}),b=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),N=e.Record({allowed_callers:e.Vec(e.Principal)}),F=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(S),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(b),rules:e.Opt(N)}),B=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),L=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),A=e.Variant({Deny:e.Null,Allow:e.Null}),V=e.Record({status_code:e.Nat16,location:e.Text}),P=e.Record({iframe:e.Opt(B),updated_at:e.Opt(e.Nat64),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(L),raw_access:e.Opt(A),redirects:e.Opt(e.Vec(e.Tuple(e.Text,V)))}),D=e.Record({authentication:e.Opt(F),storage:P}),U=e.Record({user:e.Principal}),te=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Q=e.Variant({OpenId:te}),$=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),se=e.Record({signature:e.Vec(e.Nat8),delegation:$}),pe=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text}),Se=e.Variant({Ok:se,Err:pe}),re=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),ue=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Dr=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),kt=e.Variant({AssetsUpgrade:ue,SegmentsDeployment:Dr}),Ye=e.Record({status:re,updated_at:e.Nat64,sha256:e.Opt(e.Vec(e.Nat8)),executed_at:e.Opt(e.Nat64),owner:e.Principal,created_at:e.Nat64,version:e.Opt(e.Nat64),proposal_type:kt}),Ur=e.Record({url:e.Text,method:e.Text,body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),certificate_version:e.Opt(e.Nat16)}),kr=e.Variant({Heap:e.Null,Stable:e.Null}),at=e.Record({memory:kr,token:e.Opt(e.Text),sha256:e.Opt(e.Vec(e.Nat8)),headers:e.Vec(e.Tuple(e.Text,e.Text)),index:e.Nat64,encoding_type:e.Text,full_path:e.Text}),Lr=e.Variant({Callback:e.Record({token:at,callback:e.Func([],[],[])})}),qr=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(Lr),status_code:e.Nat16}),Mr=e.Record({token:e.Opt(at),body:e.Vec(e.Nat8)}),Lt=e.Record({token:e.Opt(e.Text),collection:e.Text,name:e.Text,description:e.Opt(e.Text),encoding_type:e.Opt(e.Text),full_path:e.Text}),ct=e.Record({batch_id:e.Nat}),Ze=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),Xe=e.Record({field:Ze,desc:e.Bool}),lt=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),ut=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(lt),description:e.Opt(e.Text),created_at:e.Opt(lt)}),jr=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),dt=e.Record({order:e.Opt(Xe),owner:e.Opt(e.Principal),matcher:e.Opt(ut),paginate:e.Opt(jr)}),Kr=e.Record({token:e.Opt(e.Text),collection:e.Text,owner:e.Principal,name:e.Text,description:e.Opt(e.Text),full_path:e.Text}),Hr=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),$r=e.Record({key:Kr,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,Hr)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),pt=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,$r)),items_length:e.Nat64}),Qe=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),Gr=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,scope:Qe,expires_at:e.Opt(e.Nat64)}),Jr=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),Wr=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),zr=e.Record({status:Wr,updated_at:e.Nat64,block_index_payment:e.Nat64,mission_control_id:e.Opt(e.Principal),created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64)}),Yr=e.Record({desc:e.Bool}),Zr=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Xr=e.Record({order:e.Opt(Yr),paginate:e.Opt(Zr)}),Qr=e.Record({proposal_id:e.Nat}),en=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Qr,Ye)),items_length:e.Nat64}),tn=e.Record({openid:e.Opt(S),version:e.Opt(e.Nat64),internet_identity:e.Opt(b),rules:e.Opt(N)}),rn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:Qe,expires_at:e.Opt(e.Nat64)}),nn=e.Record({controller:rn,controllers:e.Vec(e.Principal)}),qt=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),on=e.Record({iframe:e.Opt(B),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),version:e.Opt(e.Nat64),max_memory_size:e.Opt(L),raw_access:e.Opt(A),redirects:e.Opt(e.Vec(e.Tuple(e.Text,V)))}),sn=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),an=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Mt=e.Record({chunk_id:e.Nat});return e.Service({add_credits:e.Func([e.Principal,t],[],[]),add_invitation_code:e.Func([e.Text],[],[]),assert_mission_control_center:e.Func([r],[],[]),authenticate:e.Func([o],[_],[]),commit_proposal:e.Func([x],[e.Null],[]),commit_proposal_asset_upload:e.Func([y],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(y)],[],[]),count_proposals:e.Func([],[e.Nat64],[]),create_orbiter:e.Func([T],[e.Principal],[]),create_satellite:e.Func([R],[e.Principal],[]),del_controllers:e.Func([I],[],[]),del_custom_domain:e.Func([e.Text],[],[]),delete_proposal_assets:e.Func([w],[],[]),get_account:e.Func([],[e.Opt(p)],[]),get_auth_config:e.Func([],[e.Opt(F)],[]),get_config:e.Func([],[D],[]),get_create_orbiter_fee:e.Func([U],[e.Opt(t)],[]),get_create_satellite_fee:e.Func([U],[e.Opt(t)],[]),get_credits:e.Func([],[t],[]),get_delegation:e.Func([Q],[Se],[]),get_proposal:e.Func([e.Nat],[e.Opt(Ye)],[]),get_storage_config:e.Func([],[P],[]),http_request:e.Func([Ur],[qr],[]),http_request_streaming_callback:e.Func([at],[Mr],[]),init_proposal:e.Func([kt],[e.Nat,Ye],[]),init_proposal_asset_upload:e.Func([Lt,e.Nat],[ct],[]),init_proposal_many_assets_upload:e.Func([e.Vec(Lt),e.Nat],[e.Vec(e.Tuple(e.Text,ct))],[]),init_user_mission_control_center:e.Func([],[p],[]),list_accounts:e.Func([],[e.Vec(e.Tuple(e.Principal,p))],[]),list_assets:e.Func([e.Text,dt],[pt],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,Gr))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Jr))],[]),list_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,zr))],[]),list_proposals:e.Func([Xr],[en],[]),reject_proposal:e.Func([x],[e.Null],[]),set_auth_config:e.Func([tn],[F],[]),set_controllers:e.Func([nn],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([qt,t],[],[]),set_storage_config:e.Func([on],[P],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ye],[]),update_rate_config:e.Func([qt,sn],[],[]),upload_proposal_asset_chunk:e.Func([an],[Mt],[])})};var x_=async({identity:e,host:t,localActor:r})=>await cr.create({identity:e,host:t,retryTimes:10,shouldFetchRootKey:r}),b_=async({agent:e,...t})=>e??await w_(t),w_=async({identity:e,container:t})=>{let r=W(t)&&t!==!1;return await x_({identity:e,host:r?t===!0?"http://127.0.0.1:5987":t:"https://icp-api.io",localActor:r})};var Id=({satelliteId:e,certified:t=!1,...r})=>Sd({canisterId:e,...r,idlFactory:t?xc:gc});var Ad=({consoleId:e,certified:t=!1,...r})=>Sd({canisterId:e,...r,idlFactory:t?g_:y_}),Sd=({canisterId:e,idlFactory:t,...r})=>{if(k(e))throw new Error("No canister ID provided.");return T_({canisterId:e,idlFactory:t,...r})},T_=async({canisterId:e,idlFactory:t,config:r,...n})=>{let o=await b_(n);return oo.createActor(t,{agent:o,canisterId:e,...r??{}})};var Fd=({satelliteId:e,container:t})=>{let{satelliteId:r}=bc({satelliteId:e}),{container:n}=wc({container:t});if(W(n)&&n!==!1){let{host:o,protocol:i}=new URL(n===!0?ao:n);return`${i}//${r??"unknown"}.${o.replace("127.0.0.1","localhost")}`}return`https://${r??"unknown"}.icp0.io`},bc=({satelliteId:e})=>W(e)?{satelliteId:e}:ve.getInstance().get()??{satelliteId:void 0},wc=({container:e})=>W(e)?{container:e}:ve.getInstance().get()??{container:void 0};var ge=({satellite:e,options:{certified:t}})=>Vd({idlFactory:t?xc:gc,actorKey:`stock#${t?"update":"query"}`,...e}),Cd=({idlFactory:e,...t})=>Vd({idlFactory:e,actorKey:"extended#query",...t}),Vd=async({satelliteId:e,container:t,...r})=>{let{satelliteId:n}=bc({satelliteId:e});ti(n,"No satellite ID defined. Did you initialize Juno?");let{container:o}=wc({container:t});return await lo.getInstance().getActor({satelliteId:n,container:o,...r})};var bs=class extends Error{},pr=class extends Error{},ws=class extends Error{},Ts=class extends Error{},Ns=class extends Error{},Os=class extends Error{},Es=class extends Error{},Rs=class extends Error{},vs=class extends Error{};var Pd=e=>{if(k(e))return ie();switch(e.matcher){case"equal":return ie({Equal:e.timestamp});case"greaterThan":return ie({GreaterThan:e.timestamp});case"lessThan":return ie({LessThan:e.timestamp});case"between":return ie({Between:[e.timestamps.start,e.timestamps.end]});default:throw new vs("Invalid list matcher for timestamp",e)}},Br=({matcher:e,paginate:t,order:r,owner:n})=>({matcher:k(e)?[]:[{key:ie(e.key),description:ie(e.description),created_at:Pd(e.createdAt),updated_at:Pd(e.updatedAt)}],paginate:ie(k(t)?void 0:{start_after:ie(t.startAfter),limit:ie(k(t.limit)?void 0:BigInt(t.limit))}),order:ie(k(r)?void 0:{desc:r.desc,field:r.field==="created_at"?{CreatedAt:null}:r.field==="updated_at"?{UpdatedAt:null}:{Keys:null}}),owner:ie(k(n)?void 0:typeof n=="string"?M.fromText(n):n)});var Bd=async e=>{let t=new Blob([JSON.stringify(e,Xu)],{type:"application/json; charset=utf-8"});return new Uint8Array(await t.arrayBuffer())},Is=async e=>{let t=new Blob([e instanceof Uint8Array?e:new Uint8Array(e)],{type:"application/json; charset=utf-8"});return JSON.parse(await t.text(),Qu)},As=()=>typeof window<"u";var Dd=async({data:e})=>{try{return await Is(e)}catch(t){console.error("The data parsing has failed, mapping to undefined as a fallback.",t);return}};var Tc=async e=>{let{data:t,version:r,description:n}=e;return{description:ie(n),data:await Bd(t),version:ie(r)}},Nc=e=>{let{version:t}=e;return{version:ie(t)}},Cn=async({doc:e,key:t})=>{let{owner:r,version:n,description:o,data:i,...s}=e;return{key:t,description:ye(o),owner:r.toText(),data:await Is(i),version:ye(n),...s}};var Ud=async({collection:e,key:t,...r})=>{let{get_doc:n}=await ge(r),o=ye(await n(e,t));if(!k(o))return Cn({doc:o,key:t})},kd=async({docs:e,...t})=>{let{get_many_docs:r}=await ge(t),n=e.map(({collection:s,key:a})=>[s,a]),o=await r(n),i=[];for(let[s,a]of o){let c=ye(a);i.push(W(c)?await Cn({key:s,doc:c}):void 0)}return i},Ld=async({collection:e,doc:t,...r})=>{let{set_doc:n}=await ge(r),{key:o}=t,i=await Tc(t),s=await n(e,o,i);return await Cn({key:o,doc:s})},qd=async({docs:e,...t})=>{let{set_many_docs:r}=await ge(t),n=[];for(let{collection:s,doc:a}of e){let{key:c}=a;n.push([s,c,await Tc(a)])}let o=await r(n),i=[];for(let[s,a]of o)i.push(await Cn({key:s,doc:a}));return i},Md=async({collection:e,doc:t,...r})=>{let{del_doc:n}=await ge(r),{key:o}=t;return n(e,o,Nc(t))},jd=async({docs:e,...t})=>{let{del_many_docs:r}=await ge(t),n=e.map(({collection:o,doc:i})=>[o,i.key,Nc(i)]);await r(n)},Kd=async({collection:e,filter:t,...r})=>{let{del_filtered_docs:n}=await ge(r);return n(e,Br(t))},Hd=async({collection:e,filter:t,...r})=>{let{list_docs:n}=await ge(r),{items:o,items_page:i,items_length:s,matches_length:a,matches_pages:c}=await n(e,Br(t)),u=[];for(let[p,d]of o){let{data:l,owner:f,description:h,version:m,...g}=d;u.push({key:p,description:ye(h),owner:f.toText(),data:await Dd({data:l}),version:ye(m),...g})}return{items:u,items_length:s,items_page:ye(i),matches_length:a,matches_pages:ye(c)}},$d=async({collection:e,filter:t,...r})=>{let{count_docs:n}=await ge(r);return n(e,Br(t))};var Ss=async({satellite:e,options:t,...r})=>{let n=le(e?.identity);return await Ud({...r,satellite:{...e,identity:n},options:t??Dt})},hT=async({satellite:e,options:t,...r})=>{let n=le(e?.identity);return await kd({...r,satellite:{...e,identity:n},options:t??Dt})},Gd=async({satellite:e,...t})=>{let r=le(e?.identity);return await Ld({...t,satellite:{...e,identity:r},options:{certified:!0}})},Jd=async({satellite:e,...t})=>{let r=le(e?.identity);return await qd({...t,satellite:{...e,identity:r},options:{certified:!0}})},mT=async({satellite:e,...t})=>{let r=le(e?.identity);return await Md({...t,satellite:{...e,identity:r},options:{certified:!0}})},_T=async({satellite:e,...t})=>{let r=le(e?.identity);return await jd({...t,satellite:{...e,identity:r},options:{certified:!0}})},yT=async({satellite:e,filter:t,...r})=>{let n=le(e?.identity);return await Kd({...r,filter:t??{},satellite:{...e,identity:n},options:{certified:!0}})},gT=async({satellite:e,options:t,filter:r,...n})=>{let o=le(e?.identity);return await Hd({...n,filter:r??{},satellite:{...e,identity:o},options:t??Dt})},xT=async({satellite:e,options:t,filter:r,...n})=>{let o=le(e?.identity);return await $d({...n,filter:r??{},satellite:{...e,identity:o},options:t??Dt})};var Wd=async({provider:e})=>{let{user:t,userId:r}=await Fs();if(W(t))return t;try{return await N_({userId:r,provider:e})}catch(n){if(yc({error:n,type:vd})){let o=await zd({userId:r});if(W(o))return o}throw n}},Fs=async()=>{let e=xs();if(k(e))throw new Rs("No identity to initialize the user. Have you initialized Juno?");let t=e.getPrincipal().toText(),r=await zd({userId:t});return{userId:t,user:r}},zd=({userId:e})=>Ss({collection:"#user",key:e}),N_=({userId:e,...t})=>Gd({collection:"#user",doc:{key:e,data:t}});var Cs=async({syncTabsOnSuccess:e}={syncTabsOnSuccess:!1})=>{await li({fn:async()=>{let{user:r}=await Fs();Pe.getInstance().set(r??null)},syncTabsOnSuccess:e})},Yd=async()=>{await Rd({fn:async({authenticated:t})=>{let n=t?Fs:()=>Promise.resolve({user:null}),{user:o}=await n();Pe.getInstance().set(o??null)}})},Vs=async({user:e})=>{await li({fn:async()=>{Pe.getInstance().set(e)},syncTabsOnSuccess:!0})};var Zd=()=>{try{let e=uo.getInstance(),t=async()=>{await Yd(),ni({message:"junoSignInReload"})};return e.onLoginSuccess(t),()=>{e?.destroy()}}catch(e){console.warn("Auth BroadcastChannel initialization failed",e);return}};var Xd=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_SATELLITE_ID??import.meta.env?.PUBLIC_SATELLITE_ID:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_SATELLITE_ID??e():e()},Qd=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_CONTAINER??import.meta.env?.PUBLIC_CONTAINER:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_CONTAINER??e():e()},ep=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_GOOGLE_CLIENT_ID??import.meta.env?.PUBLIC_GOOGLE_CLIENT_ID:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID??e():e()};var tp=BigInt(144e11),rp=!1,np={width:576,height:576},op={width:424,height:576};var ui="internetcomputer.org",ip="ic0.app",sp="id.ai";var ap=({width:e,height:t})=>{if(!As()||k(window)||k(window.top))return;let{top:{innerWidth:r,innerHeight:n}}=window,o=n/2+screenY-t/2,i=r/2+screenX-e/2;return`toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=${e}, height=${t}, top=${o}, left=${i}`};var Ut=async({fn:e,step:t,onProgress:r})=>{r?.({step:t,state:"in_progress"});try{let n=await e();return r?.({step:t,state:"success"}),n}catch(n){throw r?.({step:t,state:"error"}),n}};var cp=(r=>(r[r.AuthorizingWithProvider=0]="AuthorizingWithProvider",r[r.CreatingOrRetrievingUser=1]="CreatingOrRetrievingUser",r))(cp||{});var Ps=class{async signIn({options:t,authClient:r,initAuth:n}){await Ut({fn:async()=>await this.#e({options:t,authClient:r}),step:0,onProgress:t?.onProgress}),await Ut({fn:async()=>await n({provider:this.id}),step:1,onProgress:t?.onProgress})}#e({options:t,authClient:r}){return new Promise(async(n,o)=>{if(k(r)){o(new pr("No client is ready to perform a sign-in. Have you initialized the Satellite?"));return}await r.login({onSuccess:n,onError:i=>{if(i===gs){o(new ws(i));return}o(new bs(i))},maxTimeToLive:t?.maxTimeToLiveInNanoseconds??tp,allowPinAuthentication:t?.allowPin??rp,...t?.derivationOrigin!==void 0&&{derivationOrigin:t.derivationOrigin},...this.signInOptions({windowed:t?.windowed})})})}};var Bs=class extends Ps{#e;constructor({domain:t}){super(),this.#e=t}get id(){return"internet_identity"}signInOptions({windowed:t}){let n=(()=>{let i=ve.getInstance().get()?.container;if(k(i)||i===!1){let p=[ui,ip].includes(this.#e??ui);return io(this.#e)?`https://identity.${ui}`:p?`https://identity.${this.#e??ui}`:`https://${this.#e}`}let s=ve.getInstance().get(),a=W(s)&&W(s?.internetIdentityId)?s.internetIdentityId:cd,{host:c,protocol:u}=new URL(i===!0?ao:i);return/apple/i.test(navigator?.vendor)?`${u}//${c}?canisterId=${a}`:`${u}//${a}.${c.replace("127.0.0.1","localhost")}`})();return{...t!==!1&&{windowOpenerFeatures:ap((()=>{try{let{hostname:i}=new URL(n);return i.includes(sp)}catch{return!1}})()?op:np)},identityProvider:n}}};var Oc=class extends Error{},Ec=class extends Error{},Rc=class extends Error{},vc=class extends Error{},Ic=class extends Error{},Ac=class extends Error{},Sc=class extends Error{},Fc=class extends Error{},Cc=class extends Error{},Vc=class extends Error{};var lp=({auth:e,identity:t})=>"satellite"in e?Id({...e.satellite,identity:t}):Ad({...e.console,identity:t}),O_=async({actorParams:e,args:t})=>{let{authenticate:r}=await lp(e);return await r(t)},E_=async({actorParams:e,args:t})=>{let{get_delegation:r}=await lp(e);return await r(t)},R_=({delegations:e,sessionKey:t})=>{let[r,n]=e,o=ur.fromDelegations(n,Uint8Array.from(r));return{identity:dr.fromDelegation(t,o),delegationChain:o,sessionKey:t}},Pc=async({jwt:e,context:t,auth:r})=>{let n=await Vt.generate({extractable:!1}),o=new Uint8Array(n.getPublicKey().toDer()),{delegations:i,data:s}=await v_({jwt:e,publicKey:o,context:t,auth:r});return{identity:R_({sessionKey:n,delegations:i}),data:s}},v_=async({jwt:e,publicKey:t,context:{caller:r,salt:n},auth:o})=>{let i=await O_({args:{OpenId:{jwt:e,session_key:t,salt:n}},actorParams:{auth:o,identity:r}});if("Err"in i)throw new Ic("Authentication failed",{cause:i});let{delegation:{user_key:s,expiration:a},...c}=i.Ok,u=await I_({jwt:e,context:{caller:r,salt:n},auth:o,publicKey:t,expiration:a}),{delegation:p,signature:d}=u,{pubkey:l,expiration:f,targets:h}=p;return{delegations:[s,[{delegation:new Pr(Uint8Array.from(l),f,ye(h)),signature:Uint8Array.from(d)}]],data:c}},I_=async({jwt:e,publicKey:t,context:{salt:r,caller:n},auth:o,expiration:i,maxRetries:s=5})=>{for(let a=0;a<s;a++){await new Promise(u=>{setInterval(u,1e3*a)});let c=await E_({args:{OpenId:{jwt:e,session_key:t,salt:r,expiration:i}},actorParams:{auth:o,identity:n}});if("Err"in c){let{Err:u}=c;if("NoSuchDelegation"in u||"GetCachedJwks"in u)continue;throw new Cc("Getting delegation failed",{cause:c})}return c.Ok}throw new Vc};var Bc="juno:auth:openid",Dc={authUrl:"https://accounts.google.com/o/oauth2/v2/auth",authScopes:["openid","profile","email"],configUrl:"https://accounts.google.com/gsi/fedcm.json"};var up=e=>Cr(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),A_=()=>window.crypto.getRandomValues(new Uint8Array(32)),S_=async({salt:e,caller:t})=>{let r=t.getPrincipal().toUint8Array(),n=new Uint8Array(e.length+r.byteLength);n.set(e),n.set(r,e.length);let o=await window.crypto.subtle.digest("SHA-256",n);return up(lr(o))},F_=async({caller:e})=>{let t=A_();return{nonce:await S_({salt:t,caller:e}),salt:t}},dp="__caller__",pp="__salt__",fp="__state__",C_=({caller:e,state:t,salt:r})=>{let n={[dp]:e.toJSON(),[pp]:Cr(r),[fp]:t};return JSON.stringify(n)},V_=e=>{let{[dp]:t,[pp]:r,[fp]:n}=JSON.parse(e);return{caller:Nt.fromParsedJson(t),salt:Zu(r),state:n}},P_=()=>up(window.crypto.getRandomValues(new Uint8Array(12))),hp=async()=>{let e=Nt.generate(),{nonce:t,salt:r}=await F_({caller:e}),n=P_(),o=C_({caller:e,salt:r,state:n});return sessionStorage.setItem(Bc,o),{nonce:t,state:n}},mp=()=>{let e=sessionStorage.getItem(Bc);if(k(e))throw new Ec;return V_(e)};var Uc=async e=>{let t=mp();if("credentials"in e){let{credentials:{jwt:r},auth:n}=e;return await Pc({jwt:r,context:t,auth:n})}return await B_({...e,context:t})},B_=async({auth:e,context:t})=>{let{location:{hash:r}}=window;if(io(r)||!r.startsWith("#"))throw new Ac("No hash found in the current location URL");let n=new URLSearchParams(r.slice(1)),o=n.get("state"),i=n.get("id_token"),{state:s}=t;if(io(s)||o!==s)throw new Sc("The provided state is invalid",{cause:o});if(io(i))throw new Fc;return await Pc({jwt:i,auth:e,context:t})};var _p=({authUrl:e,clientId:t,nonce:r,loginHint:n,authScopes:o,state:i,redirectUrl:s})=>{let a=(()=>{try{return new URL(e)}catch{throw new Oc("Cannot parse authURL",{cause:e})}})();a.searchParams.set("client_id",t);let{location:{origin:c}}=window;a.searchParams.set("redirect_uri",s??c),a.searchParams.set("response_type","code id_token"),a.searchParams.set("scope",o.join(" ")),a.searchParams.set("state",i),a.searchParams.set("nonce",r),ei(n)?a.searchParams.set("login_hint",n):a.searchParams.set("prompt","select_account"),window.location.href=a.toString()},yp=async({configUrl:e,clientId:t,nonce:r,loginHint:n,domainHint:o})=>{let i=await navigator.credentials.get({identity:{context:"use",providers:[{configURL:e,clientId:t,nonce:r,loginHint:n,domainHint:o}],mode:"active"},mediation:"required"});if(k(i))throw new Rc;let{type:s}=i;if(s!=="identity"||!("token"in i)||typeof i.token!="string")throw new vc("Invalid credential received from FedCM API",{cause:i});let{token:a}=i;return{jwt:a}};async function kc({google:e}){let t=await hp();if("credentials"in e){let{credentials:i}=e,{configUrl:s}=Dc;return await yp({...i,...t,configUrl:s})}let{redirect:r}=e,{authUrl:n,authScopes:o}=Dc;_p({...r,...t,authUrl:n,authScopes:o})}var D_=async()=>{let{satelliteId:e}=ve.getInstance().get()??{satelliteId:void 0};if(k(e))throw new pr("Satellite ID not set. Have you initialized the Satellite?");let t=ve.getInstance().get()?.container,{identity:{delegationChain:r,sessionKey:n,identity:o},data:{doc:i}}=await Uc({redirect:null,auth:{satellite:{satelliteId:e,container:t}}});await Be.getInstance().setAuthClientStorage({delegationChain:r,sessionKey:n});let s=await Cn({doc:i,key:o.getPrincipal().toText()});await Vs({user:s})};var gp=e=>(e.preventDefault(),e.returnValue="Are you sure you want to exit?"),U_=()=>{window.addEventListener("beforeunload",gp,{capture:!0})},k_=()=>{window.removeEventListener("beforeunload",gp,{capture:!0})},Ds=async({fn:e})=>{try{return U_(),await e()}finally{k_()}};var Us=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??ep();if(k(r))throw new Ns;let{redirect:n}=t;await kc({google:{redirect:{...n??{},clientId:r}}})}};var xp=async({delegationIdentity:e,passkeyIdentity:t,satelliteId:r})=>{let n=t.getCredential().getAAGUID(),[o,i]=await Jd({docs:[{collection:"#user",doc:{key:e.getPrincipal().toText(),data:{provider:"webauthn",providerData:{webauthn:{...W(n)&&{aaguid:fs(n)}}}}}},{collection:"#user-webauthn",doc:{key:t.getCredential().getCredentialIdText(),data:{publicKey:t.getPublicKey().toRaw()}}}],satellite:{identity:e,satelliteId:r}});return o};var bp=(i=>(i[i.RequestingUserCredential=0]="RequestingUserCredential",i[i.FinalizingCredential=1]="FinalizingCredential",i[i.Signing=2]="Signing",i[i.FinalizingSession=3]="FinalizingSession",i[i.RetrievingUser=4]="RetrievingUser",i))(bp||{}),wp=(s=>(s[s.CreatingUserCredential=0]="CreatingUserCredential",s[s.ValidatingUserCredential=1]="ValidatingUserCredential",s[s.FinalizingCredential=2]="FinalizingCredential",s[s.Signing=3]="Signing",s[s.FinalizingSession=4]="FinalizingSession",s[s.RegisteringUser=5]="RegisteringUser",s))(wp||{});var po=class{async signUp({options:{onProgress:t,maxTimeToLiveInMilliseconds:r,passkey:n}={},loadAuthWithUser:o}){let{satelliteId:i}=ve.getInstance().get()??{satelliteId:void 0};if(k(i))throw new pr("Satellite ID not set. Have you initialized the Satellite?");let s=({step:m,state:g})=>{switch(m){case Vr.RequestingUserCredential:t?.({step:1,state:g});break;case Vr.FinalizingCredential:t?.({step:2,state:g});break;case Vr.Signing:t?.({step:3,state:g});break}},c=await Ut({fn:async()=>await oc.createWithNewCredential({onProgress:s,passkeyOptions:n}),step:0,onProgress:t}),{delegationIdentity:u,sessionKey:p}=await this.#e({identity:c,maxTimeToLiveInMilliseconds:r}),l=await Ut({fn:async()=>await xp({delegationIdentity:u,passkeyIdentity:c,satelliteId:i}),step:5,onProgress:t});await Ut({fn:async()=>await this.#t({delegationIdentity:u,sessionKey:p}),step:4,onProgress:t}),await Ut({fn:async()=>await o({user:l}),step:5,onProgress:t})}async signIn({options:{onProgress:t,maxTimeToLiveInMilliseconds:r}={},loadAuth:n}){let{satelliteId:o}=ve.getInstance().get()??{satelliteId:void 0};if(k(o))throw new pr("Satellite ID not set. Have you initialized the Satellite?");let i=async({credentialId:d})=>{let l=await Ss({collection:"#user-webauthn",key:Cr(d),options:{certified:!0},satellite:{identity:new rt,satelliteId:o}});if(k(l))throw new Os("No public key found for the selected passkey.");let{data:f}=l,{publicKey:h}=f;return Fn(h,Xo)},s=({step:d,state:l})=>{switch(d){case Vr.RequestingUserCredential:t?.({step:0,state:l});break;case Vr.FinalizingCredential:t?.({step:1,state:l});break;case Vr.Signing:t?.({step:2,state:l});break}},a=await oc.createWithExistingCredential({retrievePublicKey:i,onProgress:s}),{delegationIdentity:c,sessionKey:u}=await this.#e({identity:a,maxTimeToLiveInMilliseconds:r});await Ut({fn:async()=>await this.#t({delegationIdentity:c,sessionKey:u}),step:3,onProgress:t}),await Ut({fn:n,step:4,onProgress:t})}async#e({identity:t,maxTimeToLiveInMilliseconds:r}){let n=await Vt.generate({extractable:!1}),o=r??144e5,i=await ur.create(t,n.getPublicKey(),new Date(Date.now()+o));return{delegationIdentity:dr.fromDelegation(n,i),sessionKey:n}}async#t({sessionKey:t,delegationIdentity:r}){let n=new Bt;await Promise.all([n.set($e,t.getKeyPair()),n.set(He,JSON.stringify(r.getDelegation().toJSON()))])}};var q_=async({provider:e})=>{await li({fn:async()=>{let r=await Wd({provider:e});Pe.getInstance().set(r)},syncTabsOnSuccess:!0})},M_=async e=>{if("google"in e){let{google:{options:t}}=e;await Lc({fn:()=>new Us().signIn({options:t}),context:{windowGuard:!1}});return}if("webauthn"in e){let{webauthn:{options:t,context:r}}=e;await Lc({fn:()=>new po().signIn({options:t,loadAuth:()=>Cs({syncTabsOnSuccess:!0})}),context:r});return}if("internet_identity"in e){let{internet_identity:{options:t,context:r}}=e,{domain:n,...o}=t??{};await Lc({fn:()=>new Bs({domain:n}).signIn({options:o,authClient:Be.getInstance().getAuthClient(),initAuth:q_}),context:r});return}throw new Ts("An unknown or unsupported provider was provided for sign-in.")},Lc=async({fn:e,context:t})=>{if(t?.windowGuard===!1){await e();return}await Ds({fn:e})};var j_=async e=>{let t=async()=>await K_(e);if(Object.values(e)?.[0].context?.windowGuard===!1){await t();return}await Ds({fn:t})},K_=async e=>{if("webauthn"in e){let{webauthn:{options:t}}=e;await new po().signUp({options:t,loadAuthWithUser:Vs});return}throw new Es("An unknown or unsupported provider was provided for sign-up.")};var jO=e=>e?.data?.provider==="webauthn",KO=e=>e?.data?.provider==="google";var JO=async({idlFactory:e,satellite:t})=>{let r=le(t?.identity);return await Cd({idlFactory:e,...t,identity:r})};var Tp=async({asset:{data:e,headers:t,...r},actor:n,progress:o})=>{let{init_asset_upload:i,upload_asset_chunk:s,commit_asset_upload:a}=n,{batch_id:c}=await i(H_(r));o?.onInitiatedBatch();let{chunkIds:u}=await J_({data:e,uploadFn:s,batchId:c});o?.onUploadedFileChunks(r.fullPath),await G_({commitFn:a,batchId:c,data:e,headers:t,chunkIds:u}),o?.onCommittedBatch()};var H_=({filename:e,collection:t,token:r,fullPath:n,encoding:o,description:i})=>({collection:t,full_path:n,name:e,token:ie(r),encoding_type:ie(o),description:ie(i)}),$_=({batchId:e,chunkIds:t,headers:r,data:n})=>{let o=r.find(([i,s])=>i.toLowerCase()==="content-type")===void 0&&n.type!==void 0&&n.type!==""?[["Content-Type",n.type]]:void 0;return{batch_id:e,chunk_ids:t.map(({chunk_id:i})=>i),headers:[...r,...o??[]]}},G_=async({commitFn:e,...t})=>{let r=$_(t);await e(r)},J_=async({data:e,uploadFn:t,batchId:r})=>{let n=[],o=As()?new Blob([await e.arrayBuffer()]):e,i=0n;for(let a=0;a<o.size;a+=19e5){let c=o.slice(a,a+19e5);n.push({batchId:r,chunk:c,uploadFn:t,orderId:i}),i++}let s=[];for await(let a of W_({uploadChunks:n}))s=[...s,...a];return{chunkIds:s}};async function*W_({uploadChunks:e,limit:t=12}){for(let r=0;r<e.length;r=r+t){let n=e.slice(r,r+t);yield await Promise.all(n.map(o=>z_(o)))}}var z_=async({batchId:e,chunk:t,uploadFn:r,orderId:n})=>r({batch_id:e,content:new Uint8Array(await t.arrayBuffer()),order_id:ie(n)});var Np=async({asset:e,...t})=>{let r=await ge(t);await Tp({actor:r,asset:e})},Op=async({collection:e,filter:t,...r})=>{let{list_assets:n}=await ge(r),{items:o,items_length:i,items_page:s,matches_length:a,matches_pages:c}=await n(e,Br(t));return{items:o.map(([u,p])=>p),items_length:i,items_page:ye(s),matches_length:a,matches_pages:ye(c)}},Ep=async({collection:e,filter:t,...r})=>{let{count_assets:n}=await ge(r);return n(e,Br(t))},Rp=async({collection:e,fullPath:t,...r})=>(await ge(r)).del_asset(e,t),vp=async({assets:e,satellite:t})=>{let{del_many_assets:r}=await ge({satellite:t,options:{certified:!0}}),n=e.map(({collection:o,fullPath:i})=>[o,i]);await r(n)},Ip=async({collection:e,filter:t,...r})=>{let{del_filtered_assets:n}=await ge(r);return n(e,Br(t))},Ap=async({collection:e,fullPath:t,token:r,...n})=>{let{set_asset_token:o}=await ge(n);return o(e,t,ie(r))},Sp=async({collection:e,fullPath:t,...r})=>{let{get_asset:n}=await ge(r);return ye(await n(e,t))},Fp=async({assets:e,...t})=>{let{get_many_assets:r}=await ge(t),n=e.map(({collection:i,fullPath:s})=>[i,s]);return(await r(n)).map(([i,s])=>ye(s))};var Cp=e=>btoa([...e].map(t=>String.fromCharCode(t)).join(""));var u6=e=>Vp(e),d6=e=>Vp({filename:e.data.name,...e}),Vp=async({filename:e,data:t,collection:r,headers:n=[],fullPath:o,token:i,satellite:s,encoding:a,description:c})=>{let u=le(s?.identity),p=decodeURI(e),d=o??`/${r}/${p}`,l={...s,identity:u};return await Np({asset:{data:t,filename:p,collection:r,token:i,headers:n,fullPath:d,encoding:a,description:c},satellite:l,options:{certified:!0}}),{downloadUrl:Pp({satellite:l,assetKey:{fullPath:d,token:i}}),fullPath:d,...W(i)&&{token:i},name:p}},p6=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:le(r?.identity)},{items:i,...s}=await Op({collection:e,filter:t??{},satellite:o,options:n??Dt}),a=i.map(({key:{full_path:c,token:u,name:p,owner:d,description:l},headers:f,encodings:h,created_at:m,updated_at:g})=>{let _=ye(u);return{fullPath:c,description:ye(l),name:p,downloadUrl:Pp({satellite:o,assetKey:{fullPath:c,token:_}}),token:_,headers:f,encodings:h.reduce((x,[y,{modified:T,sha256:E,total_length:O}])=>({...x,[y]:{modified:T,sha256:Cp(E),total_length:O}}),{}),owner:d.toText(),created_at:m,updated_at:g}});return{items:a,assets:a,...s}},f6=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:le(r?.identity)};return await Ep({collection:e,satellite:o,filter:t??{},options:n??Dt})},h6=({collection:e,fullPath:t,satellite:r})=>Rp({collection:e,fullPath:t,satellite:{...r,identity:le(r?.identity)},options:{certified:!0}}),m6=({collection:e,fullPath:t,token:r,satellite:n})=>Ap({collection:e,fullPath:t,token:r,satellite:{...n,identity:le(n?.identity)},options:{certified:!0}}),_6=({assets:e,satellite:t})=>vp({assets:e,satellite:{...t,identity:le(t?.identity)},options:{certified:!0}}),y6=async({collection:e,satellite:t,filter:r})=>{let n={...t,identity:le(t?.identity)};return await Ip({collection:e,satellite:n,filter:r??{},options:{certified:!0}})},g6=async({satellite:e,options:t,...r})=>{let n=le(e?.identity);return await Sp({...r,satellite:{...e,identity:n},options:t??Dt})},x6=async({satellite:e,options:t,...r})=>{let n=le(e?.identity);return await Fp({...r,satellite:{...e,identity:n},options:t??Dt})},Pp=({assetKey:{fullPath:e,token:t},satellite:r})=>{let n={...r,identity:le(r?.identity)};return`${Fd(n)}${e}${W(t)?`?token=${t}`:""}`};var Y_=e=>{let t=e?.satelliteId??Xd();ti(t,"Satellite ID is not configured. Juno cannot be initialized.");let r=e?.container??Qd();return{satelliteId:t,internetIdentityId:e?.internetIdentityId,workers:e?.workers,syncTabs:e?.syncTabs,container:r}},A6=e=>Z_(e),Z_=async e=>{let t=Y_(e);ve.getInstance().set(t),await Cs();let r=t.workers?.auth!==void 0?Ed(t.workers.auth):void 0,n=t.syncTabs===!1?void 0:Zd();return[...W(r)?[r]:[],...W(n)?[n]:[]]},X_=e=>Pe.getInstance().subscribe(e),S6=X_;export{cp as AuthClientSignInProgressStep,Rs as InitError,Bs as InternetIdentityProvider,vs as ListError,bs as SignInError,pr as SignInInitError,Ns as SignInMissingClientIdError,Ts as SignInProviderNotSupportedError,ws as SignInUserInterruptError,Es as SignUpProviderNotSupportedError,bp as WebAuthnSignInProgressStep,Os as WebAuthnSignInRetrievePublicKeyError,wp as WebAuthnSignUpProgressStep,S6 as authSubscribe,f6 as countAssets,xT as countDocs,h6 as deleteAsset,mT as deleteDoc,y6 as deleteFilteredAssets,yT as deleteFilteredDocs,_6 as deleteManyAssets,_T as deleteManyDocs,Pp as downloadUrl,g6 as getAsset,Ss as getDoc,__ as getIdentityOnce,x6 as getManyAssets,hT as getManyDocs,JO as getSatelliteExtendedActor,D_ as handleRedirectCallback,A6 as initJuno,Z_ as initSatellite,KO as isGoogleUser,jm as isWebAuthnAvailable,jO as isWebAuthnUser,p6 as listAssets,gT as listDocs,X_ as onAuthStateChange,m6 as setAssetToken,Gd as setDoc,Jd as setManyDocs,M_ as signIn,_c as signOut,j_ as signUp,m_ as unsafeIdentity,u6 as uploadBlob,d6 as uploadFile};
55
55
  /*! Bundled license information:
56
56
 
57
57
  @noble/hashes/esm/utils.js: