@junobuild/core-standalone 3.0.1-next-2025-11-08.1 → 3.1.0

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`),ea=new TextEncoder().encode("\vic-response"),ta=new TextEncoder().e
51
51
  ${f}
52
52
  Retrying query.`),await this.#b({...t,tries:a+1});throw f instanceof ht?f:yo.fromCode(new wo(f))}if(!this.#_)return u;let p=u.signatures?.[0]?.timestamp;if(!p)throw ne.fromCode(new vi("Timestamp not found in query response. This suggests a malformed or malicious response."));let d=Number(BigInt(p)/BigInt(Kh));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 Pe.fromCode(new wi(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===Ha&&(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 yo.fromCode(new wo(p))}let c=$i(s.headers);if(s.status===Ha||s.status===Xh)return{ok:s.ok,status:s.status,statusText:s.statusText,responseBodyBytes:a,headers:c};let u=await s.text();if(s.status===Qh&&s.url.includes("api/v3"))throw ne.fromCode(new bo);if(u.startsWith("Invalid request expiry: "))throw W.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 xo(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=$a(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=Do(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 Pe.fromCode(new Ii);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=ge.fromCode(new Be(_)),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:$a(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:Do(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=ge.fromCode(new Be(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 Da({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:ge.fromCode(new Be(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 Da({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 $a(e,t){let r=e*Ga;return Wn.fromDeltaInMilliseconds(r,t)}var rm=300*1e3;function ju(){return am(om(nm(),1e3),sm(1e3,1.2),im(rm))}function nm(){let e=!0;return async()=>e?(e=!1,!0):!1}function om(e,t){return async(r,n,o)=>{if(await e(r,n,o))return new Promise(i=>setTimeout(i,t))}}function im(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 sm(e,t){let r=e;return()=>new Promise(n=>setTimeout(()=>{r*=t,n()},r))}function am(...e){return async(t,r,n)=>{for(let o of e)await o(t,r,n)}}var Hu={preSignReadStateRequest:!1};function $u(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Ja(e,t){return e!==null&&typeof e=="object"&&$u(e,t)}function lm(e,t){return $u(e,t)&&typeof e[t]=="function"}function Ku(e){return Ja(e,"body")&&Ja(e.body,"content")&&e.body.content.request_type===wn.ReadState&&Ja(e.body.content,"ingress_expiry")&&typeof e.body.content.ingress_expiry=="object"&&e.body.content.ingress_expiry!==null&&lm(e.body.content.ingress_expiry,"toHash")}async function Wa(e,t,r,n={}){let o=[ee("request_status"),r],i,s;if(n.preSignReadStateRequest??!1?(s=await um({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=Vt.Unknown:p=new TextDecoder().decode(u),p){case Vt.Replied:return{reply:Ve(c.lookup_path([...o,"reply"])),certificate:c};case Vt.Received:case Vt.Unknown:case Vt.Processing:{let d=n.strategy??ju();return await d(t,r,p),Wa(e,t,r,{...n,strategy:d,request:s})}case Vt.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 Vt.Done:throw ge.fromCode(new Oi(r))}throw wr}async function um(e){let{paths:t,agent:r,pollingOptions:n}=e;if(n.request&&Ku(n.request))return n.request;let o=await r.createReadStateRequest?.({paths:t},void 0);if(!Ku(o))throw W.fromCode(new Fi(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 W.fromCode(new To(s.canisterId));let a=typeof s.canisterId=="string"?M.fromText(s.canisterId):s.canisterId;super({config:{...Gu,...s,canisterId:a},service:n});for(let[c,u]of n._fields)r?.httpDetails&&u.annotations.push(za),r?.certificate&&u.annotations.push(Ju),this[c]=pm(this,c,u,s.blsVerify)}}return o}static createActor(t,r){if(!r.canisterId)throw W.fromCode(new To(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 Gu={pollingOptions:Hu},za="http-details",Ju="certificate";function pm(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 Ti(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(za)?{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}={...Gu,...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(Mc(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],V=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,V,b);throw N.callContext={canisterId:l,methodName:t,httpDetails:g},yr.fromCode(N)}}}else if(qc(g.body)){let{reject_code:R,reject_message:I,error_code:w}=g.body,v=new Ni(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 Wa(c,f,m,R);y=I.certificate,x=I.reply}let T=r.annotations.includes(za),E=r.annotations.includes(Ju),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 Be(`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},ge.fromCode(R)}};let i=(...s)=>o({},...s);return i.withOptions=s=>(...a)=>o(s,...a),i}var fm=(e=>(e[e.FractionalMoreThan8Decimals=0]="FractionalMoreThan8Decimals",e[e.InvalidFormat=1]="InvalidFormat",e[e.FractionalTooManyDecimals=2]="FractionalTooManyDecimals",e))(fm||{}),Tx=BigInt(1e8);var q=e=>e==null,X=e=>!q(e),Qa=e=>X(e)&&e!=="",io=e=>!Qa(e);var hm=class extends Error{},Qo=(e,t)=>{if(e==null)throw new hm(t)};var lr=e=>new Uint8Array(e),us=e=>Array.from(e);var zu=({a:e,b:t})=>e.length===t.length&&e.every((r,n)=>r===t[n]);var Wu="abcdefghijklmnopqrstuvwxyz234567",Xo=Object.create(null);for(let e=0;e<Wu.length;e++)Xo[Wu[e]]=e;Xo[0]=Xo.o;Xo[1]=Xo.i;var Vr=e=>btoa(String.fromCharCode(...new Uint8Array(e))),Yu=e=>Uint8Array.from(atob(e),t=>t.charCodeAt(0)),Nx=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 Ya="__bigint__",Za="__principal__",Xa="__uint8array__",Zu=(e,t)=>typeof t=="bigint"?{[Ya]:`${t}`}:X(t)&&M.isPrincipal(t)?{[Za]:M.from(t).toText()}:X(t)&&t instanceof Uint8Array?{[Xa]:Array.from(t)}:t,Xu=(e,t)=>{let r=n=>t[n];return X(t)&&typeof t=="object"&&Ya in t?BigInt(r(Ya)):X(t)&&typeof t=="object"&&Za in t?M.fromText(r(Za)):X(t)&&typeof t=="object"&&Xa in t?Uint8Array.from(r(Xa)):t};var ue=e=>X(e)?[e]:[],ye=e=>e?.[0];var mm=({authData:e})=>{if(e.byteLength<37)return{invalidAuthData:null};if(e.byteLength<53)return{invalidAuthData:null};let t=e.slice(37,53),r=_m({bytes:t});return"aaguid"in r?{aaguidBytes:t,aaguidText:r.aaguid}:{unknownProvider:null}},_m=({bytes:e})=>{if(e.length!==16)return{invalidBytes:null};let t=(e instanceof Uint8Array?us(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 ym(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 gm(e){return Sn(e,Zo)}var xm=class{constructor(e){this._cose=e,this.#e=gm(e)}#e;toDer(){return this.#e}toRaw(){return new Uint8Array(this.#e)}},nd=class{#e;#t;constructor({rawId:e,cose:t}){this.#e=e,this.#t=new xm(t)}getPublicKey(){return this.#t}getCredentialId(){return this.#e}getCredentialIdText(){return Vr(this.#e)}},bm=class extends nd{#e;#t;constructor({authData:e,...t}){super(t);let r=mm({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}},wm=class extends nd{},Tm=class extends Error{},Nm=class extends Error{},Om=class extends Error{},Em=class extends Error{},Rm=class extends Error{},vm=class extends Error{},Im=class extends Error{},Qu=class extends Error{};var Am={ECDSA_WITH_SHA256:-7,RSA_WITH_SHA256:-257},Sm=6e4,od=()=>window.crypto.getRandomValues(new Uint8Array(16)),Fm=()=>od(),Vm=()=>od(),Cm=()=>{let{location:{href:e}}=window;try{let{hostname:t}=new URL(e);return t}catch{throw new Tm}},id=({appId:e})=>e?.id??Cm(),Pm=({appId:e,user:t}={})=>{let{document:{title:r}}=window,n=()=>({rp:{name:e?.name??r,id:id({appId:e})}}),o=()=>({user:{id:Vm(),name:t?.name??t?.displayName??r,displayName:t?.displayName??r}});return{attestation:"direct",challenge:Fm(),...n(),...o(),pubKeyCredParams:Object.values(Am).map(i=>({type:"public-key",alg:i})),excludeCredentials:[],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred",residentKey:"required",requireResidentKey:!0}}},Bm=(e={})=>({rpId:id(e),allowCredentials:[],userVerification:"required"}),ec=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}},Cr=(e=>(e[e.RequestingUserCredential=0]="RequestingUserCredential",e[e.FinalizingCredential=1]="FinalizingCredential",e[e.Signing=2]="Signing",e))(Cr||{}),sd=({timeout:e})=>AbortSignal.timeout(e??Sm),Dm=async({challenge:e,credentialIds:t,passkeyOptions:r,timeout:n})=>await navigator.credentials.get({publicKey:{...Bm(r),challenge:e.buffer,allowCredentials:(t??[]).map(o=>({id:o.buffer,type:"public-key"}))},signal:sd({timeout:n})}),ed=e=>{if(e.status!=="initialized")throw new Nm},td=e=>{if(q(e))throw new Om},rd=({type:e})=>{if(e!=="public-key")throw new Em},tc=class ei 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=ei.#r({credential:new bm(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:Pm(t),signal:sd({timeout:r})});td(o),rd(o);let{response:{attestationObject:i},rawId:s}=o;if(q(i))throw new Rm;let{authData:a}=ji.decode(lr(i)),c=ym(a);return new ei({...n,rawId:lr(s),cose:c,authData:a})}static async createWithExistingCredential(t){return new ei(t)}getPublicKey(){ed(this.#t);let{credential:t}=this.#t;return t.getPublicKey()}getCredential(){ed(this.#t);let{credential:t}=this.#t;return t}async sign(t){let r=await ec({fn:async()=>{let n=await Dm({challenge:t,...this.#t.status==="initialized"&&{credentialIds:[this.#t.credential.getCredentialId()]}});return td(n),rd(n),n},step:0,onProgress:this.#e});return await ec({fn:async()=>{let{rawId:n}=r;if(this.#t.status==="initialized"){if(!zu({a:this.#t.credential.getCredentialId(),b:lr(n)}))throw new vm;return}let{retrievePublicKey:o}=this.#t,i=await o({credentialId:lr(n)});this.#t=ei.#r({credential:new wm({rawId:lr(n),cose:i})})},step:1,onProgress:this.#e}),await ec({fn:async()=>{let{response:n}=r,{clientDataJSON:o}=n,{authenticatorData:i,signature:s}="authenticatorData"in n&&"signature"in n?n:{};if(q(i))throw new Qu;if(q(s))throw new Qu;let a=ji.encode({authenticator_data:i,client_data_json:new TextDecoder().decode(o),signature:lr(s)});if(q(a))throw new Im;return Object.assign(a,{__signature__:void 0}),a},step:2,onProgress:this.#e})}},Um=async()=>X(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 je=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 rc=({message:e,detail:t})=>{let r=new CustomEvent(e,{detail:t,bubbles:!0});document.dispatchEvent(r)};var ao="http://127.0.0.1:5987",ad="rdmx6-jaaaa-aaaaa-aaadq-cai";var cd=async({identity:e,container:t})=>{let n=X(t)&&t!==!1?t===!0?ao:t:"https://icp-api.io",o=X(t);return await cr.create({identity:e,shouldFetchRootKey:o,host:n})};var co=class e{static instance;#e=void 0;constructor(){}static getInstance(){return q(e.instance)&&(e.instance=new e),e.instance}async getAgent({identity:t,...r}){let n=t.getPrincipal().toText();if(q(this.#e)||q(this.#e[n])){let o=await cd({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 q(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(q(this.#e)||q(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 ld(e){return e!==null&&typeof e=="object"}var ti=class e{static from(t){if(typeof t=="string"){let r=Ne(t);return this.fromRaw(r)}else if(ld(t)){let r=t;if(ld(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=Me.utils.randomPrivateKey()),cl(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=Me.getPublicKey(r);return e.fromKeyPair(n,r)}static fromParsedJson(t){let[r,n]=t;return new e(ti.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(ti.fromRaw(t),r)}static fromSecretKey(t){let r=Me.getPublicKey(t);return e.fromKeyPair(r,t)}#e;#t;constructor(t,r){super(),this.#e=ti.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=Me.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 Me.verify(o,i,s)}};var nc=class e extends Error{constructor(t){super(t),this.message=t,Object.setPrototypeOf(this,e.prototype)}};function ud(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 nc("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 Ct=class e extends Ft{static async generate(t){let{extractable:r=!1,keyUsages:n=["sign","verify"],subtleCrypto:o}=t??{},i=ud(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=ud(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 ds=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 ps(e){return e instanceof Uint8Array?H(e):H(new Uint8Array(e))}function oc(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:ps(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([...ta,...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(oc(c),BigInt("0x"+u),p&&p.map(d=>{if(typeof d!="string")throw new Error("Invalid target.");return M.fromHex(d)})),signature:oc(a)}});return new this(o,oc(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:ps(r.pubkey),...o&&{targets:o.map(i=>i.toHex())}},signature:ps(n)}}),publicKey:ps(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([...Fo,...new Uint8Array(o)])),sender_delegation:this._delegation.delegations,sender_pubkey:this._delegation.publicKey}}}},ri=class e extends ds{#e;get delegation(){return this.#e}constructor(t,r){super(t),this.#e=r}static fromDelegation(t,r){return new e(t,r)}};function ic(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 dd=["mousedown","mousemove","keydown","touchstart","wheel"],ni=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),dd.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);dd.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 Lm=(e,t)=>t.some(r=>e instanceof r),pd,fd;function qm(){return pd||(pd=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Mm(){return fd||(fd=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var hd=new WeakMap,ac=new WeakMap,md=new WeakMap,sc=new WeakMap,lc=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&&hd.set(r,e)}).catch(()=>{}),lc.set(t,e),t}function Km(e){if(ac.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)});ac.set(e,t)}var cc={get(e,t,r){if(e instanceof IDBTransaction){if(t==="done")return ac.get(e);if(t==="objectStoreNames")return e.objectStoreNames||md.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 _d(e){cc=e(cc)}function Hm(e){return e===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(t,...r){let n=e.call(fs(this),t,...r);return md.set(n,t.sort?t.sort():[t]),Pt(n)}:Mm().includes(e)?function(...t){return e.apply(fs(this),t),Pt(hd.get(this))}:function(...t){return Pt(e.apply(fs(this),t))}}function $m(e){return typeof e=="function"?Hm(e):(e instanceof IDBTransaction&&Km(e),Lm(e,qm())?new Proxy(e,cc):e)}function Pt(e){if(e instanceof IDBRequest)return jm(e);if(sc.has(e))return sc.get(e);let t=$m(e);return t!==e&&(sc.set(e,t),lc.set(t,e)),t}var fs=e=>lc.get(e);function gd(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 Gm=["get","getKey","getAll","getAllKeys","count"],Jm=["put","add","delete","clear"],uc=new Map;function yd(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(uc.get(t))return uc.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,o=Jm.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||Gm.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 uc.set(t,i),i}_d(e=>({...e,get:(t,r,n)=>yd(t,r)||e.get(t,r,n),has:(t,r)=>!!yd(t,r)||e.has(t,r)}));var xd="auth-client-db",bd="ic-keyval",Wm=async(e=xd,t=bd,r)=>(globalThis.localStorage?.getItem(Ke)&&(globalThis.localStorage.removeItem(Ke),globalThis.localStorage.removeItem(He)),await gd(e,r,{upgrade:n=>{n.objectStoreNames.contains(t)&&n.clear(t),n.createObjectStore(t)}}));async function zm(e,t,r){return await e.get(t,r)}async function Ym(e,t,r,n){return await e.put(t,n,r)}async function Zm(e,t,r){return await e.delete(t,r)}var hs=class e{constructor(t,r){this._db=t,this._storeName=r}static async create(t){let{dbName:r=xd,storeName:n=bd,version:o=wd}=t??{},i=await Wm(r,n,o);return new e(i,n)}async set(t,r){return await Ym(this._db,this._storeName,t,r)}async get(t){return await zm(this._db,this._storeName,t)??null}async remove(t){return await Zm(this._db,this._storeName,t)}};var He="identity",Ke="delegation",Td="iv",wd=1,oi=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}hs.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 Xm=BigInt(1e9),Qm=BigInt(3600),e_=Xm*Qm,t_="https://identity.internetcomputer.org",r_="#authorize",n_=BigInt(8)*e_,dc="ECDSA",pc="Ed25519",o_=500,ms="UserInterrupt",ii=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??dc,o=null;if(t.identity)o=t.identity;else{let c=await r.get(He);if(!c)try{let u=new oi,p=await u.get(Ke),d=await u.get(He);p&&d&&n===dc&&(console.log("Discovered an identity stored in localstorage. Migrating to IndexedDB"),await r.set(Ke,p),await r.set(He,d),c=p,await u.remove(Ke),await u.remove(He))}catch(u){console.error(`error while attempting to recover localstorage: ${u}`)}if(c)try{typeof c=="object"?n===pc&&typeof c=="string"?o=Nt.fromJSON(c):o=await Ct.fromKeyPair(c):typeof c=="string"&&(o=Nt.fromJSON(c))}catch{}}let i=new rt,s=null;if(o)try{let c=await r.get(Ke);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),ic(s)?"toDer"in o?i=ri.fromDelegation(o,s):i=dr.fromDelegation(o,s):(await fc(r),o=null))}catch(c){console.error(c),await fc(r),o=null}let a;return t.idleOptions?.disableIdle?a=void 0:(s||t.identity)&&(a=ni.create(t.idleOptions)),o||(n===pc?o=Nt.generate():(t.storage&&n===dc&&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 '${pc}' as the key type, as it can serialize to a string`),o=await Ct.generate()),await Nd(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=ri.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=ni.create(s),this._registerDefaultIdleCallback()),this._removeEventListener(),delete this._idpWindow,this._chain&&await this._storage.set(Ke,JSON.stringify(this._chain.toJSON())),await Nd(this._storage,this._key),r?.(t)}getIdentity(){return this._identity}async isAuthenticated(){return!this.getIdentity().getPrincipal().isAnonymous()&&this._chain!==null&&ic(this._chain)}async login(t){let r=i_(this._createOptions?.loginOptions,t),n=r?.maxTimeToLive??n_,o=new URL(r?.identityProvider?.toString()||t_);o.hash=r_,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(ms,r?.onError):setTimeout(i,o_))};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 fc(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 fc(e){await e.remove(He),await e.remove(Ke),await e.remove(Td)}function i_(e,t){if(!e&&!t)return;let r=e?.customValues||t?.customValues?{...e?.customValues,...t?.customValues}:void 0;return{...e,...t,customValues:r}}function s_(e){if(e instanceof Ct)return e.getKeyPair();if(e instanceof Nt)return JSON.stringify(e.toJSON());throw new Error("Unsupported key type")}async function Nd(e,t){let r=s_(t);await e.set(He,r)}var $e=class e{static#e;#t;constructor(){}static getInstance(){return q(this.#e)&&(this.#e=new e),this.#e}createAuthClient=async()=>(this.#t=await ii.create({idleOptions:{disableIdle:!0,disableDefaultIdleCallback:!0}}),this.#t);safeCreateAuthClient=async()=>(await new Bt().remove(He),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(He,r.getKeyPair()),n.set(Ke,JSON.stringify(t.toJSON()))])}};var hc=async e=>{await a_(),await $e.getInstance().createAuthClient(),e?.windowReload!==!1&&window.location.reload()},a_=async()=>{await $e.getInstance().logout(),je.getInstance().reset(),lo.getInstance().reset(),co.getInstance().reset()};var Od=e=>{let t=e===!0?"./workers/auth.worker.js":e,r=new Worker(t),n=async()=>{rc({message:"junoSignOutAuthTimer"}),await hc()};return r.onmessage=async({data:o})=>{let{msg:i,data:s}=o;switch(i){case"junoSignOutAuthTimer":await n();return;case"junoDelegationRemainingTime":rc({message:"junoDelegationRemainingTime",detail:s?.authRemainingTime});return}},je.getInstance().subscribe(o=>{if(q(o)){r.postMessage({msg:"junoStopAuthTimer"});return}r.postMessage({msg:"junoStartAuthTimer"})})};var si=async({fn:e})=>{let{createAuthClient:t,safeCreateAuthClient:r}=$e.getInstance();if(!await(await t()).isAuthenticated()){await r();return}await e()};var mc=({error:e,type:t})=>typeof e=="string"?e.includes(t):e instanceof Error?e.message.includes(t):!1;var Ed="juno.datastore.error.user.cannot_update";var Dt={certified:!1};var _s=()=>$e.getInstance().getAuthClient()?.getIdentity(),c_=async()=>{let{getAuthClient:e,createAuthClient:t}=$e.getInstance();return(e()??await t()).getIdentity()},l_=async()=>{let e=je.getInstance().get();if(q(e))return null;let t=$e.getInstance().getAuthClient();return await t?.isAuthenticated()??!1?t?.getIdentity()??null:null};var de=e=>X(e)?e:_s()??new rt;var _c=({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)}),V=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}),k=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}),C=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),P=e.Record({delegation:e.Opt(C),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)}),ie=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}),Ae=e.Variant({Deny:e.Null,Allow:e.Null}),re=e.Record({status_code:e.Nat16,location:e.Text}),ce=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(Ae),redirects:e.Opt(e.Vec(e.Tuple(e.Text,re)))}),Dr=e.Record({db:e.Opt(ie),authentication:e.Opt(Q),storage:ce}),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,k)),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)}),Ps=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)}),Bs=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(Ae),redirects:e.Opt(e.Vec(e.Tuple(e.Text,re)))}),po=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),fo=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([V,e.Text,S],[],[]),delete_proposal_assets:e.Func([b],[],[]),deposit_cycles:e.Func([N],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(k)],["query"]),get_auth_config:e.Func([],[e.Opt(Q)],["query"]),get_config:e.Func([],[Dr],[]),get_db_config:e.Func([],[e.Opt(ie)],["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(k)))],["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([V,e.Text],[e.Opt(ut)],["query"]),get_storage_config:e.Func([],[ce],["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([V,tn],[rn],["query"]),memory_size:e.Func([],[nn],["query"]),reject_proposal:e.Func([g],[e.Null],[]),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],[ie],[]),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([V,e.Text,Ps],[ut],[]),set_storage_config:e.Func([Bs],[ce],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ze],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([po],[fo],[]),upload_proposal_asset_chunk:e.Func([po],[fo],[])})},yc=({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)}),V=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}),k=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}),C=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),P=e.Record({delegation:e.Opt(C),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)}),ie=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}),Ae=e.Variant({Deny:e.Null,Allow:e.Null}),re=e.Record({status_code:e.Nat16,location:e.Text}),ce=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(Ae),redirects:e.Opt(e.Vec(e.Tuple(e.Text,re)))}),Dr=e.Record({db:e.Opt(ie),authentication:e.Opt(Q),storage:ce}),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,k)),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)}),Ps=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)}),Bs=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(Ae),redirects:e.Opt(e.Vec(e.Tuple(e.Text,re)))}),po=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),fo=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([V,e.Text,S],[],[]),delete_proposal_assets:e.Func([b],[],[]),deposit_cycles:e.Func([N],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(k)],[]),get_auth_config:e.Func([],[e.Opt(Q)],[]),get_config:e.Func([],[Dr],[]),get_db_config:e.Func([],[e.Opt(ie)],[]),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(k)))],[]),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([V,e.Text],[e.Opt(ut)],[]),get_storage_config:e.Func([],[ce],[]),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([V,tn],[rn],[]),memory_size:e.Func([],[nn],[]),reject_proposal:e.Func([g],[e.Null],[]),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],[ie],[]),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([V,e.Text,Ps],[ut],[]),set_storage_config:e.Func([Bs],[ce],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ze],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([po],[fo],[]),upload_proposal_asset_chunk:e.Func([po],[fo],[])})},u_=({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)}),V=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,V))}),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}),k=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),A=e.Variant({Deny:e.Null,Allow:e.Null}),C=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(k),raw_access:e.Opt(A),redirects:e.Opt(e.Vec(e.Tuple(e.Text,C)))}),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}),ie=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}),Ae=e.Variant({Ok:ie,Err:pe}),re=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),ce=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:ce,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(k),raw_access:e.Opt(A),redirects:e.Opt(e.Vec(e.Tuple(e.Text,C)))}),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],[Ae],["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],[])})},d_=({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)}),V=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,V))}),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}),k=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),A=e.Variant({Deny:e.Null,Allow:e.Null}),C=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(k),raw_access:e.Opt(A),redirects:e.Opt(e.Vec(e.Tuple(e.Text,C)))}),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}),ie=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}),Ae=e.Variant({Ok:ie,Err:pe}),re=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),ce=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:ce,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(k),raw_access:e.Opt(A),redirects:e.Opt(e.Vec(e.Tuple(e.Text,C)))}),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],[Ae],[]),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 p_=async({identity:e,host:t,localActor:r})=>await cr.create({identity:e,host:t,retryTimes:10,shouldFetchRootKey:r}),f_=async({agent:e,...t})=>e??await h_(t),h_=async({identity:e,container:t})=>{let r=X(t)&&t!==!1;return await p_({identity:e,host:r?t===!0?"http://127.0.0.1:5987":t:"https://icp-api.io",localActor:r})};var Rd=({satelliteId:e,certified:t=!1,...r})=>Id({canisterId:e,...r,idlFactory:t?yc:_c});var vd=({consoleId:e,certified:t=!1,...r})=>Id({canisterId:e,...r,idlFactory:t?d_:u_}),Id=({canisterId:e,idlFactory:t,...r})=>{if(q(e))throw new Error("No canister ID provided.");return m_({canisterId:e,idlFactory:t,...r})},m_=async({canisterId:e,idlFactory:t,config:r,...n})=>{let o=await f_(n);return oo.createActor(t,{agent:o,canisterId:e,...r??{}})};var Ce=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 Ad=({satelliteId:e,container:t})=>{let{satelliteId:r}=gc({satelliteId:e}),{container:n}=xc({container:t});if(X(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`},gc=({satelliteId:e})=>X(e)?{satelliteId:e}:Ce.getInstance().get()??{satelliteId:void 0},xc=({container:e})=>X(e)?{container:e}:Ce.getInstance().get()??{container:void 0};var Te=({satellite:e,options:{certified:t}})=>Fd({idlFactory:t?yc:_c,actorKey:`stock#${t?"update":"query"}`,...e}),Sd=({idlFactory:e,...t})=>Fd({idlFactory:e,actorKey:"extended#query",...t}),Fd=async({satelliteId:e,container:t,...r})=>{let{satelliteId:n}=gc({satelliteId:e});Qo(n,"No satellite ID defined. Did you initialize Juno?");let{container:o}=xc({container:t});return await lo.getInstance().getActor({satelliteId:n,container:o,...r})};var ys=class extends Error{},pr=class extends Error{},gs=class extends Error{},xs=class extends Error{},bs=class extends Error{},ws=class extends Error{},Ts=class extends Error{},Ns=class extends Error{},Os=class extends Error{};var Vd=e=>{if(q(e))return ue();switch(e.matcher){case"equal":return ue({Equal:e.timestamp});case"greaterThan":return ue({GreaterThan:e.timestamp});case"lessThan":return ue({LessThan:e.timestamp});case"between":return ue({Between:[e.timestamps.start,e.timestamps.end]});default:throw new Os("Invalid list matcher for timestamp",e)}},Br=({matcher:e,paginate:t,order:r,owner:n})=>({matcher:q(e)?[]:[{key:ue(e.key),description:ue(e.description),created_at:Vd(e.createdAt),updated_at:Vd(e.updatedAt)}],paginate:ue(q(t)?void 0:{start_after:ue(t.startAfter),limit:ue(q(t.limit)?void 0:BigInt(t.limit))}),order:ue(q(r)?void 0:{desc:r.desc,field:r.field==="created_at"?{CreatedAt:null}:r.field==="updated_at"?{UpdatedAt:null}:{Keys:null}}),owner:ue(q(n)?void 0:typeof n=="string"?M.fromText(n):n)});var Cd=async e=>{let t=new Blob([JSON.stringify(e,Zu)],{type:"application/json; charset=utf-8"});return new Uint8Array(await t.arrayBuffer())},Es=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(),Xu)},Rs=()=>typeof window<"u";var Pd=async({data:e})=>{try{return await Es(e)}catch(t){console.error("The data parsing has failed, mapping to undefined as a fallback.",t);return}};var bc=async e=>{let{data:t,version:r,description:n}=e;return{description:ue(n),data:await Cd(t),version:ue(r)}},wc=e=>{let{version:t}=e;return{version:ue(t)}},Vn=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 Es(i),version:ye(n),...s}};var Bd=async({collection:e,key:t,...r})=>{let{get_doc:n}=await Te(r),o=ye(await n(e,t));if(!q(o))return Vn({doc:o,key:t})},Dd=async({docs:e,...t})=>{let{get_many_docs:r}=await Te(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(X(c)?await Vn({key:s,doc:c}):void 0)}return i},Ud=async({collection:e,doc:t,...r})=>{let{set_doc:n}=await Te(r),{key:o}=t,i=await bc(t),s=await n(e,o,i);return await Vn({key:o,doc:s})},kd=async({docs:e,...t})=>{let{set_many_docs:r}=await Te(t),n=[];for(let{collection:s,doc:a}of e){let{key:c}=a;n.push([s,c,await bc(a)])}let o=await r(n),i=[];for(let[s,a]of o)i.push(await Vn({key:s,doc:a}));return i},Ld=async({collection:e,doc:t,...r})=>{let{del_doc:n}=await Te(r),{key:o}=t;return n(e,o,wc(t))},qd=async({docs:e,...t})=>{let{del_many_docs:r}=await Te(t),n=e.map(({collection:o,doc:i})=>[o,i.key,wc(i)]);await r(n)},Md=async({collection:e,filter:t,...r})=>{let{del_filtered_docs:n}=await Te(r);return n(e,Br(t))},jd=async({collection:e,filter:t,...r})=>{let{list_docs:n}=await Te(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 Pd({data:l}),version:ye(m),...g})}return{items:u,items_length:s,items_page:ye(i),matches_length:a,matches_pages:ye(c)}},Kd=async({collection:e,filter:t,...r})=>{let{count_docs:n}=await Te(r);return n(e,Br(t))};var vs=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await Bd({...r,satellite:{...e,identity:n},options:t??Dt})},nT=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await Dd({...r,satellite:{...e,identity:n},options:t??Dt})},Hd=async({satellite:e,...t})=>{let r=de(e?.identity);return await Ud({...t,satellite:{...e,identity:r},options:{certified:!0}})},$d=async({satellite:e,...t})=>{let r=de(e?.identity);return await kd({...t,satellite:{...e,identity:r},options:{certified:!0}})},oT=async({satellite:e,...t})=>{let r=de(e?.identity);return await Ld({...t,satellite:{...e,identity:r},options:{certified:!0}})},iT=async({satellite:e,...t})=>{let r=de(e?.identity);return await qd({...t,satellite:{...e,identity:r},options:{certified:!0}})},sT=async({satellite:e,filter:t,...r})=>{let n=de(e?.identity);return await Md({...r,filter:t??{},satellite:{...e,identity:n},options:{certified:!0}})},aT=async({satellite:e,options:t,filter:r,...n})=>{let o=de(e?.identity);return await jd({...n,filter:r??{},satellite:{...e,identity:o},options:t??Dt})},cT=async({satellite:e,options:t,filter:r,...n})=>{let o=de(e?.identity);return await Kd({...n,filter:r??{},satellite:{...e,identity:o},options:t??Dt})};var Gd=async({provider:e})=>{let{user:t,userId:r}=await Tc();if(X(t))return t;try{return await __({userId:r,provider:e})}catch(n){if(mc({error:n,type:Ed})){let o=await Jd({userId:r});if(X(o))return o}throw n}},Tc=async()=>{let e=_s();if(q(e))throw new Ns("No identity to initialize the user. Have you initialized Juno?");let t=e.getPrincipal().toText(),r=await Jd({userId:t});return{userId:t,user:r}},Jd=({userId:e})=>vs({collection:"#user",key:e}),__=({userId:e,...t})=>Hd({collection:"#user",doc:{key:e,data:t}});var Is=async()=>{await si({fn:async()=>{let{user:t}=await Tc();je.getInstance().set(t??null)}})},As=async({user:e})=>{await si({fn:async()=>{je.getInstance().set(e)}})};var Wd=()=>{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()},zd=()=>{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()},Yd=()=>{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 Zd=BigInt(144e11),Xd=!1,Qd={width:576,height:576},ep={width:424,height:576};var ai="internetcomputer.org",tp="ic0.app",rp="id.ai";var np=({width:e,height:t})=>{if(!Rs()||q(window)||q(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 op=(r=>(r[r.AuthorizingWithProvider=0]="AuthorizingWithProvider",r[r.CreatingOrRetrievingUser=1]="CreatingOrRetrievingUser",r))(op||{});var Ss=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(q(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===ms){o(new gs(i));return}o(new ys(i))},maxTimeToLive:t?.maxTimeToLiveInNanoseconds??Zd,allowPinAuthentication:t?.allowPin??Xd,...t?.derivationOrigin!==void 0&&{derivationOrigin:t.derivationOrigin},...this.signInOptions({windowed:t?.windowed})})})}};var Fs=class extends Ss{#e;constructor({domain:t}){super(),this.#e=t}get id(){return"internet_identity"}signInOptions({windowed:t}){let n=(()=>{let i=Ce.getInstance().get()?.container;if(q(i)||i===!1){let p=[ai,tp].includes(this.#e??ai);return io(this.#e)?`https://identity.${ai}`:p?`https://identity.${this.#e??ai}`:`https://${this.#e}`}let s=Ce.getInstance().get(),a=X(s)&&X(s?.internetIdentityId)?s.internetIdentityId:ad,{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:np((()=>{try{let{hostname:i}=new URL(n);return i.includes(rp)}catch{return!1}})()?ep:Qd)},identityProvider:n}}};var Nc=class extends Error{},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{},Vc=class extends Error{};var ip=({auth:e,identity:t})=>"satellite"in e?Rd({...e.satellite,identity:t}):vd({...e.console,identity:t}),y_=async({actorParams:e,args:t})=>{let{authenticate:r}=await ip(e);return await r(t)},g_=async({actorParams:e,args:t})=>{let{get_delegation:r}=await ip(e);return await r(t)},x_=({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}},Cc=async({jwt:e,context:t,auth:r})=>{let n=await Ct.generate({extractable:!1}),o=new Uint8Array(n.getPublicKey().toDer()),{delegations:i,data:s}=await b_({jwt:e,publicKey:o,context:t,auth:r});return{identity:x_({sessionKey:n,delegations:i}),data:s}},b_=async({jwt:e,publicKey:t,context:{caller:r,salt:n},auth:o})=>{let i=await y_({args:{OpenId:{jwt:e,session_key:t,salt:n}},actorParams:{auth:o,identity:r}});if("Err"in i)throw new vc("Authentication failed",{cause:i});let{delegation:{user_key:s,expiration:a},...c}=i.Ok,u=await w_({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}},w_=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 g_({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 Fc("Getting delegation failed",{cause:c})}return c.Ok}throw new Vc};var Pc="juno:auth:openid",Bc={authUrl:"https://accounts.google.com/o/oauth2/v2/auth",authScopes:["openid","profile","email"],configUrl:"https://accounts.google.com/gsi/fedcm.json"};var sp=e=>Vr(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),T_=()=>window.crypto.getRandomValues(new Uint8Array(32)),N_=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 sp(lr(o))},O_=async({caller:e})=>{let t=T_();return{nonce:await N_({salt:t,caller:e}),salt:t}},ap="__caller__",cp="__salt__",lp="__state__",E_=({caller:e,state:t,salt:r})=>{let n={[ap]:e.toJSON(),[cp]:Vr(r),[lp]:t};return JSON.stringify(n)},R_=e=>{let{[ap]:t,[cp]:r,[lp]:n}=JSON.parse(e);return{caller:Nt.fromParsedJson(t),salt:Yu(r),state:n}},v_=()=>sp(window.crypto.getRandomValues(new Uint8Array(12))),up=async()=>{let e=Nt.generate(),{nonce:t,salt:r}=await O_({caller:e}),n=v_(),o=E_({caller:e,salt:r,state:n});return sessionStorage.setItem(Pc,o),{nonce:t,state:n}},dp=()=>{let e=sessionStorage.getItem(Pc);if(q(e))throw new Oc;return R_(e)};var Dc=async e=>{let t=dp();if("credentials"in e){let{credentials:{jwt:r},auth:n}=e;return await Cc({jwt:r,context:t,auth:n})}return await I_({...e,context:t})},I_=async({auth:e,context:t})=>{let{location:{hash:r}}=window;if(io(r)||!r.startsWith("#"))throw new Ic("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 Ac("The provided state is invalid",{cause:o});if(io(i))throw new Sc;return await Cc({jwt:i,auth:e,context:t})};var pp=({authUrl:e,clientId:t,nonce:r,loginHint:n,authScopes:o,state:i,redirectUrl:s})=>{let a=(()=>{try{return new URL(e)}catch{throw new Nc("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),Qa(n)?a.searchParams.set("login_hint",n):a.searchParams.set("prompt","select_account"),window.location.href=a.toString()},fp=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(q(i))throw new Ec;let{type:s}=i;if(s!=="identity"||!("token"in i)||typeof i.token!="string")throw new Rc("Invalid credential received from FedCM API",{cause:i});let{token:a}=i;return{jwt:a}};async function Uc({google:e}){let t=await up();if("credentials"in e){let{credentials:i}=e,{configUrl:s}=Bc;return await fp({...i,...t,configUrl:s})}let{redirect:r}=e,{authUrl:n,authScopes:o}=Bc;pp({...r,...t,authUrl:n,authScopes:o})}var A_=async()=>{let{satelliteId:e}=Ce.getInstance().get()??{satelliteId:void 0};if(q(e))throw new pr("Satellite ID not set. Have you initialized the Satellite?");let t=Ce.getInstance().get()?.container,{identity:{delegationChain:r,sessionKey:n,identity:o},data:{doc:i}}=await Dc({redirect:null,auth:{satellite:{satelliteId:e,container:t}}});await $e.getInstance().setAuthClientStorage({delegationChain:r,sessionKey:n});let s=await Vn({doc:i,key:o.getPrincipal().toText()});await As({user:s})};var hp=e=>(e.preventDefault(),e.returnValue="Are you sure you want to exit?"),S_=()=>{window.addEventListener("beforeunload",hp,{capture:!0})},F_=()=>{window.removeEventListener("beforeunload",hp,{capture:!0})},Vs=async({fn:e})=>{try{return S_(),await e()}finally{F_()}};var Cs=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??Yd();if(q(r))throw new bs;let{redirect:n}=t;await Uc({google:{redirect:{...n??{},clientId:r}}})}};var mp=async({delegationIdentity:e,passkeyIdentity:t,satelliteId:r})=>{let n=t.getCredential().getAAGUID(),[o,i]=await $d({docs:[{collection:"#user",doc:{key:e.getPrincipal().toText(),data:{provider:"webauthn",providerData:{webauthn:{...X(n)&&{aaguid:us(n)}}}}}},{collection:"#user-webauthn",doc:{key:t.getCredential().getCredentialIdText(),data:{publicKey:t.getPublicKey().toRaw()}}}],satellite:{identity:e,satelliteId:r}});return o};var _p=(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))(_p||{}),yp=(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))(yp||{});var uo=class{async signUp({options:{onProgress:t,maxTimeToLiveInMilliseconds:r,passkey:n}={},loadAuthWithUser:o}){let{satelliteId:i}=Ce.getInstance().get()??{satelliteId:void 0};if(q(i))throw new pr("Satellite ID not set. Have you initialized the Satellite?");let s=({step:m,state:g})=>{switch(m){case Cr.RequestingUserCredential:t?.({step:1,state:g});break;case Cr.FinalizingCredential:t?.({step:2,state:g});break;case Cr.Signing:t?.({step:3,state:g});break}},c=await Ut({fn:async()=>await tc.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 mp({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}=Ce.getInstance().get()??{satelliteId:void 0};if(q(o))throw new pr("Satellite ID not set. Have you initialized the Satellite?");let i=async({credentialId:d})=>{let l=await vs({collection:"#user-webauthn",key:Vr(d),options:{certified:!0},satellite:{identity:new rt,satelliteId:o}});if(q(l))throw new ws("No public key found for the selected passkey.");let{data:f}=l,{publicKey:h}=f;return Fn(h,Zo)},s=({step:d,state:l})=>{switch(d){case Cr.RequestingUserCredential:t?.({step:0,state:l});break;case Cr.FinalizingCredential:t?.({step:1,state:l});break;case Cr.Signing:t?.({step:2,state:l});break}},a=await tc.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 Ct.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(He,t.getKeyPair()),n.set(Ke,JSON.stringify(r.getDelegation().toJSON()))])}};var C_=async({provider:e})=>{await si({fn:async()=>{let r=await Gd({provider:e});je.getInstance().set(r)}})},P_=async e=>{if("google"in e){let{google:{options:t}}=e;await kc({fn:()=>new Cs().signIn({options:t}),context:{windowGuard:!1}});return}if("webauthn"in e){let{webauthn:{options:t,context:r}}=e;await kc({fn:()=>new uo().signIn({options:t,loadAuth:Is}),context:r});return}if("internet_identity"in e){let{internet_identity:{options:t,context:r}}=e,{domain:n,...o}=t??{};await kc({fn:()=>new Fs({domain:n}).signIn({options:o,authClient:$e.getInstance().getAuthClient(),initAuth:C_}),context:r});return}throw new xs("An unknown or unsupported provider was provided for sign-in.")},kc=async({fn:e,context:t})=>{if(t?.windowGuard===!1){await e();return}await Vs({fn:e})};var B_=async e=>{let t=async()=>await D_(e);if(Object.values(e)?.[0].context?.windowGuard===!1){await t();return}await Vs({fn:t})},D_=async e=>{if("webauthn"in e){let{webauthn:{options:t}}=e;await new uo().signUp({options:t,loadAuthWithUser:As});return}throw new Ts("An unknown or unsupported provider was provided for sign-up.")};var AO=async({idlFactory:e,satellite:t})=>{let r=de(t?.identity);return await Sd({idlFactory:e,...t,identity:r})};var gp=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(U_(r));o?.onInitiatedBatch();let{chunkIds:u}=await q_({data:e,uploadFn:s,batchId:c});o?.onUploadedFileChunks(r.fullPath),await L_({commitFn:a,batchId:c,data:e,headers:t,chunkIds:u}),o?.onCommittedBatch()};var U_=({filename:e,collection:t,token:r,fullPath:n,encoding:o,description:i})=>({collection:t,full_path:n,name:e,token:ue(r),encoding_type:ue(o),description:ue(i)}),k_=({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??[]]}},L_=async({commitFn:e,...t})=>{let r=k_(t);await e(r)},q_=async({data:e,uploadFn:t,batchId:r})=>{let n=[],o=Rs()?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 M_({uploadChunks:n}))s=[...s,...a];return{chunkIds:s}};async function*M_({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=>j_(o)))}}var j_=async({batchId:e,chunk:t,uploadFn:r,orderId:n})=>r({batch_id:e,content:new Uint8Array(await t.arrayBuffer()),order_id:ue(n)});var xp=async({asset:e,...t})=>{let r=await Te(t);await gp({actor:r,asset:e})},bp=async({collection:e,filter:t,...r})=>{let{list_assets:n}=await Te(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)}},wp=async({collection:e,filter:t,...r})=>{let{count_assets:n}=await Te(r);return n(e,Br(t))},Tp=async({collection:e,fullPath:t,...r})=>(await Te(r)).del_asset(e,t),Np=async({assets:e,satellite:t})=>{let{del_many_assets:r}=await Te({satellite:t,options:{certified:!0}}),n=e.map(({collection:o,fullPath:i})=>[o,i]);await r(n)},Op=async({collection:e,filter:t,...r})=>{let{del_filtered_assets:n}=await Te(r);return n(e,Br(t))},Ep=async({collection:e,fullPath:t,...r})=>{let{get_asset:n}=await Te(r);return ye(await n(e,t))},Rp=async({assets:e,...t})=>{let{get_many_assets:r}=await Te(t),n=e.map(({collection:i,fullPath:s})=>[i,s]);return(await r(n)).map(([i,s])=>ye(s))};var vp=e=>btoa([...e].map(t=>String.fromCharCode(t)).join(""));var GO=e=>Ip(e),JO=e=>Ip({filename:e.data.name,...e}),Ip=async({filename:e,data:t,collection:r,headers:n=[],fullPath:o,token:i,satellite:s,encoding:a,description:c})=>{let u=de(s?.identity),p=decodeURI(e),d=o??`/${r}/${p}`,l={...s,identity:u};return await xp({asset:{data:t,filename:p,collection:r,token:i,headers:n,fullPath:d,encoding:a,description:c},satellite:l,options:{certified:!0}}),{downloadUrl:Ap({satellite:l,assetKey:{fullPath:d,token:i}}),fullPath:d,name:p}},WO=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:de(r?.identity)},{items:i,...s}=await bp({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:Ap({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:vp(E),total_length:O}}),{}),owner:d.toText(),created_at:m,updated_at:g}});return{items:a,assets:a,...s}},zO=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:de(r?.identity)};return await wp({collection:e,satellite:o,filter:t??{},options:n??Dt})},YO=({collection:e,fullPath:t,satellite:r})=>Tp({collection:e,fullPath:t,satellite:{...r,identity:de(r?.identity)},options:{certified:!0}}),ZO=({assets:e,satellite:t})=>Np({assets:e,satellite:{...t,identity:de(t?.identity)},options:{certified:!0}}),XO=async({collection:e,satellite:t,filter:r})=>{let n={...t,identity:de(t?.identity)};return await Op({collection:e,satellite:n,filter:r??{},options:{certified:!0}})},QO=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await Ep({...r,satellite:{...e,identity:n},options:t??Dt})},e6=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await Rp({...r,satellite:{...e,identity:n},options:t??Dt})},Ap=({assetKey:{fullPath:e,token:t},satellite:r})=>{let n={...r,identity:de(r?.identity)};return`${Ad(n)}${e}${X(t)?`?token=${t}`:""}`};var K_=e=>{let t=e?.satelliteId??Wd();Qo(t,"Satellite ID is not configured. Juno cannot be initialized.");let r=e?.container??zd();return{satelliteId:t,internetIdentityId:e?.internetIdentityId,workers:e?.workers,container:r}},l6=e=>H_(e),H_=async e=>{let t=K_(e);Ce.getInstance().set(t),await Is();let r=t.workers?.auth!==void 0?Od(t.workers.auth):void 0;return[...r?[r]:[]]},$_=e=>je.getInstance().subscribe(e),u6=$_;export{op as AuthClientSignInProgressStep,Ns as InitError,Fs as InternetIdentityProvider,Os as ListError,ys as SignInError,pr as SignInInitError,bs as SignInMissingClientIdError,xs as SignInProviderNotSupportedError,gs as SignInUserInterruptError,Ts as SignUpProviderNotSupportedError,_p as WebAuthnSignInProgressStep,ws as WebAuthnSignInRetrievePublicKeyError,yp as WebAuthnSignUpProgressStep,u6 as authSubscribe,zO as countAssets,cT as countDocs,YO as deleteAsset,oT as deleteDoc,XO as deleteFilteredAssets,sT as deleteFilteredDocs,ZO as deleteManyAssets,iT as deleteManyDocs,Ap as downloadUrl,QO as getAsset,vs as getDoc,l_ as getIdentityOnce,e6 as getManyAssets,nT as getManyDocs,AO as getSatelliteExtendedActor,A_ as handleRedirectCallback,l6 as initJuno,H_ as initSatellite,Um as isWebAuthnAvailable,WO as listAssets,aT as listDocs,$_ as onAuthStateChange,Hd as setDoc,$d as setManyDocs,P_ as signIn,hc as signOut,B_ as signUp,c_ as unsafeIdentity,GO as uploadBlob,JO as uploadFile};
54
+ Retrying request.`),await this.#y({requestFn:r,backoff:n,tries:o+1});throw yo.fromCode(new wo(p))}let c=$i(s.headers);if(s.status===Ha||s.status===Xh)return{ok:s.ok,status:s.status,statusText:s.statusText,responseBodyBytes:a,headers:c};let u=await s.text();if(s.status===Qh&&s.url.includes("api/v3"))throw ne.fromCode(new bo);if(u.startsWith("Invalid request expiry: "))throw W.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 xo(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=$a(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=Do(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 Pe.fromCode(new Ii);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=ge.fromCode(new Be(_)),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:$a(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:Do(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=ge.fromCode(new Be(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 Da({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:ge.fromCode(new Be(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 Da({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 $a(e,t){let r=e*Ga;return Wn.fromDeltaInMilliseconds(r,t)}var rm=300*1e3;function ju(){return am(om(nm(),1e3),sm(1e3,1.2),im(rm))}function nm(){let e=!0;return async()=>e?(e=!1,!0):!1}function om(e,t){return async(r,n,o)=>{if(await e(r,n,o))return new Promise(i=>setTimeout(i,t))}}function im(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 sm(e,t){let r=e;return()=>new Promise(n=>setTimeout(()=>{r*=t,n()},r))}function am(...e){return async(t,r,n)=>{for(let o of e)await o(t,r,n)}}var Hu={preSignReadStateRequest:!1};function $u(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Ja(e,t){return e!==null&&typeof e=="object"&&$u(e,t)}function lm(e,t){return $u(e,t)&&typeof e[t]=="function"}function Ku(e){return Ja(e,"body")&&Ja(e.body,"content")&&e.body.content.request_type===wn.ReadState&&Ja(e.body.content,"ingress_expiry")&&typeof e.body.content.ingress_expiry=="object"&&e.body.content.ingress_expiry!==null&&lm(e.body.content.ingress_expiry,"toHash")}async function Wa(e,t,r,n={}){let o=[ee("request_status"),r],i,s;if(n.preSignReadStateRequest??!1?(s=await um({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=Vt.Unknown:p=new TextDecoder().decode(u),p){case Vt.Replied:return{reply:Ve(c.lookup_path([...o,"reply"])),certificate:c};case Vt.Received:case Vt.Unknown:case Vt.Processing:{let d=n.strategy??ju();return await d(t,r,p),Wa(e,t,r,{...n,strategy:d,request:s})}case Vt.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 Vt.Done:throw ge.fromCode(new Oi(r))}throw wr}async function um(e){let{paths:t,agent:r,pollingOptions:n}=e;if(n.request&&Ku(n.request))return n.request;let o=await r.createReadStateRequest?.({paths:t},void 0);if(!Ku(o))throw W.fromCode(new Fi(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 W.fromCode(new To(s.canisterId));let a=typeof s.canisterId=="string"?M.fromText(s.canisterId):s.canisterId;super({config:{...Gu,...s,canisterId:a},service:n});for(let[c,u]of n._fields)r?.httpDetails&&u.annotations.push(za),r?.certificate&&u.annotations.push(Ju),this[c]=pm(this,c,u,s.blsVerify)}}return o}static createActor(t,r){if(!r.canisterId)throw W.fromCode(new To(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 Gu={pollingOptions:Hu},za="http-details",Ju="certificate";function pm(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 Ti(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(za)?{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}={...Gu,...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(Mc(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],V=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,V,b);throw N.callContext={canisterId:l,methodName:t,httpDetails:g},yr.fromCode(N)}}}else if(qc(g.body)){let{reject_code:R,reject_message:I,error_code:w}=g.body,v=new Ni(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 Wa(c,f,m,R);y=I.certificate,x=I.reply}let T=r.annotations.includes(za),E=r.annotations.includes(Ju),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 Be(`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},ge.fromCode(R)}};let i=(...s)=>o({},...s);return i.withOptions=s=>(...a)=>o(s,...a),i}var fm=(e=>(e[e.FractionalMoreThan8Decimals=0]="FractionalMoreThan8Decimals",e[e.InvalidFormat=1]="InvalidFormat",e[e.FractionalTooManyDecimals=2]="FractionalTooManyDecimals",e))(fm||{}),Tx=BigInt(1e8);var q=e=>e==null,X=e=>!q(e),Qa=e=>X(e)&&e!=="",io=e=>!Qa(e);var hm=class extends Error{},Qo=(e,t)=>{if(e==null)throw new hm(t)};var lr=e=>new Uint8Array(e),us=e=>Array.from(e);var zu=({a:e,b:t})=>e.length===t.length&&e.every((r,n)=>r===t[n]);var Wu="abcdefghijklmnopqrstuvwxyz234567",Xo=Object.create(null);for(let e=0;e<Wu.length;e++)Xo[Wu[e]]=e;Xo[0]=Xo.o;Xo[1]=Xo.i;var Vr=e=>btoa(String.fromCharCode(...new Uint8Array(e))),Yu=e=>Uint8Array.from(atob(e),t=>t.charCodeAt(0)),Nx=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 Ya="__bigint__",Za="__principal__",Xa="__uint8array__",Zu=(e,t)=>typeof t=="bigint"?{[Ya]:`${t}`}:X(t)&&M.isPrincipal(t)?{[Za]:M.from(t).toText()}:X(t)&&t instanceof Uint8Array?{[Xa]:Array.from(t)}:t,Xu=(e,t)=>{let r=n=>t[n];return X(t)&&typeof t=="object"&&Ya in t?BigInt(r(Ya)):X(t)&&typeof t=="object"&&Za in t?M.fromText(r(Za)):X(t)&&typeof t=="object"&&Xa in t?Uint8Array.from(r(Xa)):t};var ue=e=>X(e)?[e]:[],ye=e=>e?.[0];var mm=({authData:e})=>{if(e.byteLength<37)return{invalidAuthData:null};if(e.byteLength<53)return{invalidAuthData:null};let t=e.slice(37,53),r=_m({bytes:t});return"aaguid"in r?{aaguidBytes:t,aaguidText:r.aaguid}:{unknownProvider:null}},_m=({bytes:e})=>{if(e.length!==16)return{invalidBytes:null};let t=(e instanceof Uint8Array?us(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 ym(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 gm(e){return Sn(e,Zo)}var xm=class{constructor(e){this._cose=e,this.#e=gm(e)}#e;toDer(){return this.#e}toRaw(){return new Uint8Array(this.#e)}},nd=class{#e;#t;constructor({rawId:e,cose:t}){this.#e=e,this.#t=new xm(t)}getPublicKey(){return this.#t}getCredentialId(){return this.#e}getCredentialIdText(){return Vr(this.#e)}},bm=class extends nd{#e;#t;constructor({authData:e,...t}){super(t);let r=mm({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}},wm=class extends nd{},Tm=class extends Error{},Nm=class extends Error{},Om=class extends Error{},Em=class extends Error{},Rm=class extends Error{},vm=class extends Error{},Im=class extends Error{},Qu=class extends Error{};var Am={ECDSA_WITH_SHA256:-7,RSA_WITH_SHA256:-257},Sm=6e4,od=()=>window.crypto.getRandomValues(new Uint8Array(16)),Fm=()=>od(),Vm=()=>od(),Cm=()=>{let{location:{href:e}}=window;try{let{hostname:t}=new URL(e);return t}catch{throw new Tm}},id=({appId:e})=>e?.id??Cm(),Pm=({appId:e,user:t}={})=>{let{document:{title:r}}=window,n=()=>({rp:{name:e?.name??r,id:id({appId:e})}}),o=()=>({user:{id:Vm(),name:t?.name??t?.displayName??r,displayName:t?.displayName??r}});return{attestation:"direct",challenge:Fm(),...n(),...o(),pubKeyCredParams:Object.values(Am).map(i=>({type:"public-key",alg:i})),excludeCredentials:[],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred",residentKey:"required",requireResidentKey:!0}}},Bm=(e={})=>({rpId:id(e),allowCredentials:[],userVerification:"required"}),ec=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}},Cr=(e=>(e[e.RequestingUserCredential=0]="RequestingUserCredential",e[e.FinalizingCredential=1]="FinalizingCredential",e[e.Signing=2]="Signing",e))(Cr||{}),sd=({timeout:e})=>AbortSignal.timeout(e??Sm),Dm=async({challenge:e,credentialIds:t,passkeyOptions:r,timeout:n})=>await navigator.credentials.get({publicKey:{...Bm(r),challenge:e.buffer,allowCredentials:(t??[]).map(o=>({id:o.buffer,type:"public-key"}))},signal:sd({timeout:n})}),ed=e=>{if(e.status!=="initialized")throw new Nm},td=e=>{if(q(e))throw new Om},rd=({type:e})=>{if(e!=="public-key")throw new Em},tc=class ei 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=ei.#r({credential:new bm(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:Pm(t),signal:sd({timeout:r})});td(o),rd(o);let{response:{attestationObject:i},rawId:s}=o;if(q(i))throw new Rm;let{authData:a}=ji.decode(lr(i)),c=ym(a);return new ei({...n,rawId:lr(s),cose:c,authData:a})}static async createWithExistingCredential(t){return new ei(t)}getPublicKey(){ed(this.#t);let{credential:t}=this.#t;return t.getPublicKey()}getCredential(){ed(this.#t);let{credential:t}=this.#t;return t}async sign(t){let r=await ec({fn:async()=>{let n=await Dm({challenge:t,...this.#t.status==="initialized"&&{credentialIds:[this.#t.credential.getCredentialId()]}});return td(n),rd(n),n},step:0,onProgress:this.#e});return await ec({fn:async()=>{let{rawId:n}=r;if(this.#t.status==="initialized"){if(!zu({a:this.#t.credential.getCredentialId(),b:lr(n)}))throw new vm;return}let{retrievePublicKey:o}=this.#t,i=await o({credentialId:lr(n)});this.#t=ei.#r({credential:new wm({rawId:lr(n),cose:i})})},step:1,onProgress:this.#e}),await ec({fn:async()=>{let{response:n}=r,{clientDataJSON:o}=n,{authenticatorData:i,signature:s}="authenticatorData"in n&&"signature"in n?n:{};if(q(i))throw new Qu;if(q(s))throw new Qu;let a=ji.encode({authenticator_data:i,client_data_json:new TextDecoder().decode(o),signature:lr(s)});if(q(a))throw new Im;return Object.assign(a,{__signature__:void 0}),a},step:2,onProgress:this.#e})}},Um=async()=>X(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 je=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 rc=({message:e,detail:t})=>{let r=new CustomEvent(e,{detail:t,bubbles:!0});document.dispatchEvent(r)};var ao="http://127.0.0.1:5987",ad="rdmx6-jaaaa-aaaaa-aaadq-cai";var cd=async({identity:e,container:t})=>{let n=X(t)&&t!==!1?t===!0?ao:t:"https://icp-api.io",o=X(t);return await cr.create({identity:e,shouldFetchRootKey:o,host:n})};var co=class e{static instance;#e=void 0;constructor(){}static getInstance(){return q(e.instance)&&(e.instance=new e),e.instance}async getAgent({identity:t,...r}){let n=t.getPrincipal().toText();if(q(this.#e)||q(this.#e[n])){let o=await cd({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 q(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(q(this.#e)||q(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 ld(e){return e!==null&&typeof e=="object"}var ti=class e{static from(t){if(typeof t=="string"){let r=Ne(t);return this.fromRaw(r)}else if(ld(t)){let r=t;if(ld(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=Me.utils.randomPrivateKey()),cl(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=Me.getPublicKey(r);return e.fromKeyPair(n,r)}static fromParsedJson(t){let[r,n]=t;return new e(ti.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(ti.fromRaw(t),r)}static fromSecretKey(t){let r=Me.getPublicKey(t);return e.fromKeyPair(r,t)}#e;#t;constructor(t,r){super(),this.#e=ti.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=Me.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 Me.verify(o,i,s)}};var nc=class e extends Error{constructor(t){super(t),this.message=t,Object.setPrototypeOf(this,e.prototype)}};function ud(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 nc("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 Ct=class e extends Ft{static async generate(t){let{extractable:r=!1,keyUsages:n=["sign","verify"],subtleCrypto:o}=t??{},i=ud(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=ud(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 ds=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 ps(e){return e instanceof Uint8Array?H(e):H(new Uint8Array(e))}function oc(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:ps(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([...ta,...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(oc(c),BigInt("0x"+u),p&&p.map(d=>{if(typeof d!="string")throw new Error("Invalid target.");return M.fromHex(d)})),signature:oc(a)}});return new this(o,oc(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:ps(r.pubkey),...o&&{targets:o.map(i=>i.toHex())}},signature:ps(n)}}),publicKey:ps(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([...Fo,...new Uint8Array(o)])),sender_delegation:this._delegation.delegations,sender_pubkey:this._delegation.publicKey}}}},ri=class e extends ds{#e;get delegation(){return this.#e}constructor(t,r){super(t),this.#e=r}static fromDelegation(t,r){return new e(t,r)}};function ic(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 dd=["mousedown","mousemove","keydown","touchstart","wheel"],ni=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),dd.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);dd.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 Lm=(e,t)=>t.some(r=>e instanceof r),pd,fd;function qm(){return pd||(pd=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Mm(){return fd||(fd=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var hd=new WeakMap,ac=new WeakMap,md=new WeakMap,sc=new WeakMap,lc=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&&hd.set(r,e)}).catch(()=>{}),lc.set(t,e),t}function Km(e){if(ac.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)});ac.set(e,t)}var cc={get(e,t,r){if(e instanceof IDBTransaction){if(t==="done")return ac.get(e);if(t==="objectStoreNames")return e.objectStoreNames||md.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 _d(e){cc=e(cc)}function Hm(e){return e===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(t,...r){let n=e.call(fs(this),t,...r);return md.set(n,t.sort?t.sort():[t]),Pt(n)}:Mm().includes(e)?function(...t){return e.apply(fs(this),t),Pt(hd.get(this))}:function(...t){return Pt(e.apply(fs(this),t))}}function $m(e){return typeof e=="function"?Hm(e):(e instanceof IDBTransaction&&Km(e),Lm(e,qm())?new Proxy(e,cc):e)}function Pt(e){if(e instanceof IDBRequest)return jm(e);if(sc.has(e))return sc.get(e);let t=$m(e);return t!==e&&(sc.set(e,t),lc.set(t,e)),t}var fs=e=>lc.get(e);function gd(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 Gm=["get","getKey","getAll","getAllKeys","count"],Jm=["put","add","delete","clear"],uc=new Map;function yd(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(uc.get(t))return uc.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,o=Jm.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||Gm.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 uc.set(t,i),i}_d(e=>({...e,get:(t,r,n)=>yd(t,r)||e.get(t,r,n),has:(t,r)=>!!yd(t,r)||e.has(t,r)}));var xd="auth-client-db",bd="ic-keyval",Wm=async(e=xd,t=bd,r)=>(globalThis.localStorage?.getItem(Ke)&&(globalThis.localStorage.removeItem(Ke),globalThis.localStorage.removeItem(He)),await gd(e,r,{upgrade:n=>{n.objectStoreNames.contains(t)&&n.clear(t),n.createObjectStore(t)}}));async function zm(e,t,r){return await e.get(t,r)}async function Ym(e,t,r,n){return await e.put(t,n,r)}async function Zm(e,t,r){return await e.delete(t,r)}var hs=class e{constructor(t,r){this._db=t,this._storeName=r}static async create(t){let{dbName:r=xd,storeName:n=bd,version:o=wd}=t??{},i=await Wm(r,n,o);return new e(i,n)}async set(t,r){return await Ym(this._db,this._storeName,t,r)}async get(t){return await zm(this._db,this._storeName,t)??null}async remove(t){return await Zm(this._db,this._storeName,t)}};var He="identity",Ke="delegation",Td="iv",wd=1,oi=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}hs.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 Xm=BigInt(1e9),Qm=BigInt(3600),e_=Xm*Qm,t_="https://identity.internetcomputer.org",r_="#authorize",n_=BigInt(8)*e_,dc="ECDSA",pc="Ed25519",o_=500,ms="UserInterrupt",ii=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??dc,o=null;if(t.identity)o=t.identity;else{let c=await r.get(He);if(!c)try{let u=new oi,p=await u.get(Ke),d=await u.get(He);p&&d&&n===dc&&(console.log("Discovered an identity stored in localstorage. Migrating to IndexedDB"),await r.set(Ke,p),await r.set(He,d),c=p,await u.remove(Ke),await u.remove(He))}catch(u){console.error(`error while attempting to recover localstorage: ${u}`)}if(c)try{typeof c=="object"?n===pc&&typeof c=="string"?o=Nt.fromJSON(c):o=await Ct.fromKeyPair(c):typeof c=="string"&&(o=Nt.fromJSON(c))}catch{}}let i=new rt,s=null;if(o)try{let c=await r.get(Ke);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),ic(s)?"toDer"in o?i=ri.fromDelegation(o,s):i=dr.fromDelegation(o,s):(await fc(r),o=null))}catch(c){console.error(c),await fc(r),o=null}let a;return t.idleOptions?.disableIdle?a=void 0:(s||t.identity)&&(a=ni.create(t.idleOptions)),o||(n===pc?o=Nt.generate():(t.storage&&n===dc&&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 '${pc}' as the key type, as it can serialize to a string`),o=await Ct.generate()),await Nd(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=ri.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=ni.create(s),this._registerDefaultIdleCallback()),this._removeEventListener(),delete this._idpWindow,this._chain&&await this._storage.set(Ke,JSON.stringify(this._chain.toJSON())),await Nd(this._storage,this._key),r?.(t)}getIdentity(){return this._identity}async isAuthenticated(){return!this.getIdentity().getPrincipal().isAnonymous()&&this._chain!==null&&ic(this._chain)}async login(t){let r=i_(this._createOptions?.loginOptions,t),n=r?.maxTimeToLive??n_,o=new URL(r?.identityProvider?.toString()||t_);o.hash=r_,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(ms,r?.onError):setTimeout(i,o_))};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 fc(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 fc(e){await e.remove(He),await e.remove(Ke),await e.remove(Td)}function i_(e,t){if(!e&&!t)return;let r=e?.customValues||t?.customValues?{...e?.customValues,...t?.customValues}:void 0;return{...e,...t,customValues:r}}function s_(e){if(e instanceof Ct)return e.getKeyPair();if(e instanceof Nt)return JSON.stringify(e.toJSON());throw new Error("Unsupported key type")}async function Nd(e,t){let r=s_(t);await e.set(He,r)}var $e=class e{static#e;#t;constructor(){}static getInstance(){return q(this.#e)&&(this.#e=new e),this.#e}createAuthClient=async()=>(this.#t=await ii.create({idleOptions:{disableIdle:!0,disableDefaultIdleCallback:!0}}),this.#t);safeCreateAuthClient=async()=>(await new Bt().remove(He),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(He,r.getKeyPair()),n.set(Ke,JSON.stringify(t.toJSON()))])}};var hc=async e=>{await a_(),await $e.getInstance().createAuthClient(),e?.windowReload!==!1&&window.location.reload()},a_=async()=>{await $e.getInstance().logout(),je.getInstance().reset(),lo.getInstance().reset(),co.getInstance().reset()};var Od=e=>{let t=e===!0?"./workers/auth.worker.js":e,r=new Worker(t),n=async()=>{rc({message:"junoSignOutAuthTimer"}),await hc()};return r.onmessage=async({data:o})=>{let{msg:i,data:s}=o;switch(i){case"junoSignOutAuthTimer":await n();return;case"junoDelegationRemainingTime":rc({message:"junoDelegationRemainingTime",detail:s?.authRemainingTime});return}},je.getInstance().subscribe(o=>{if(q(o)){r.postMessage({msg:"junoStopAuthTimer"});return}r.postMessage({msg:"junoStartAuthTimer"})})};var si=async({fn:e})=>{let{createAuthClient:t,safeCreateAuthClient:r}=$e.getInstance();if(!await(await t()).isAuthenticated()){await r();return}await e()};var mc=({error:e,type:t})=>typeof e=="string"?e.includes(t):e instanceof Error?e.message.includes(t):!1;var Ed="juno.datastore.error.user.cannot_update";var Dt={certified:!1};var _s=()=>$e.getInstance().getAuthClient()?.getIdentity(),c_=async()=>{let{getAuthClient:e,createAuthClient:t}=$e.getInstance();return(e()??await t()).getIdentity()},l_=async()=>{let e=je.getInstance().get();if(q(e))return null;let t=$e.getInstance().getAuthClient();return await t?.isAuthenticated()??!1?t?.getIdentity()??null:null};var de=e=>X(e)?e:_s()??new rt;var _c=({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)}),V=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}),k=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}),C=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),P=e.Record({delegation:e.Opt(C),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)}),ie=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}),Ae=e.Variant({Deny:e.Null,Allow:e.Null}),re=e.Record({status_code:e.Nat16,location:e.Text}),ce=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(Ae),redirects:e.Opt(e.Vec(e.Tuple(e.Text,re)))}),Dr=e.Record({db:e.Opt(ie),authentication:e.Opt(Q),storage:ce}),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,k)),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)}),Ps=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)}),Bs=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(Ae),redirects:e.Opt(e.Vec(e.Tuple(e.Text,re)))}),po=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),fo=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([V,e.Text,S],[],[]),delete_proposal_assets:e.Func([b],[],[]),deposit_cycles:e.Func([N],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(k)],["query"]),get_auth_config:e.Func([],[e.Opt(Q)],["query"]),get_config:e.Func([],[Dr],[]),get_db_config:e.Func([],[e.Opt(ie)],["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(k)))],["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([V,e.Text],[e.Opt(ut)],["query"]),get_storage_config:e.Func([],[ce],["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([V,tn],[rn],["query"]),memory_size:e.Func([],[nn],["query"]),reject_proposal:e.Func([g],[e.Null],[]),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],[ie],[]),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([V,e.Text,Ps],[ut],[]),set_storage_config:e.Func([Bs],[ce],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ze],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([po],[fo],[]),upload_proposal_asset_chunk:e.Func([po],[fo],[])})},yc=({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)}),V=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}),k=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}),C=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),P=e.Record({delegation:e.Opt(C),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)}),ie=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}),Ae=e.Variant({Deny:e.Null,Allow:e.Null}),re=e.Record({status_code:e.Nat16,location:e.Text}),ce=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(Ae),redirects:e.Opt(e.Vec(e.Tuple(e.Text,re)))}),Dr=e.Record({db:e.Opt(ie),authentication:e.Opt(Q),storage:ce}),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,k)),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)}),Ps=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)}),Bs=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(Ae),redirects:e.Opt(e.Vec(e.Tuple(e.Text,re)))}),po=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),fo=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([V,e.Text,S],[],[]),delete_proposal_assets:e.Func([b],[],[]),deposit_cycles:e.Func([N],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(k)],[]),get_auth_config:e.Func([],[e.Opt(Q)],[]),get_config:e.Func([],[Dr],[]),get_db_config:e.Func([],[e.Opt(ie)],[]),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(k)))],[]),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([V,e.Text],[e.Opt(ut)],[]),get_storage_config:e.Func([],[ce],[]),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([V,tn],[rn],[]),memory_size:e.Func([],[nn],[]),reject_proposal:e.Func([g],[e.Null],[]),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],[ie],[]),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([V,e.Text,Ps],[ut],[]),set_storage_config:e.Func([Bs],[ce],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ze],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([po],[fo],[]),upload_proposal_asset_chunk:e.Func([po],[fo],[])})},u_=({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)}),V=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,V))}),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}),k=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),A=e.Variant({Deny:e.Null,Allow:e.Null}),C=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(k),raw_access:e.Opt(A),redirects:e.Opt(e.Vec(e.Tuple(e.Text,C)))}),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}),ie=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}),Ae=e.Variant({Ok:ie,Err:pe}),re=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),ce=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:ce,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(k),raw_access:e.Opt(A),redirects:e.Opt(e.Vec(e.Tuple(e.Text,C)))}),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],[Ae],["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],[])})},d_=({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)}),V=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,V))}),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}),k=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),A=e.Variant({Deny:e.Null,Allow:e.Null}),C=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(k),raw_access:e.Opt(A),redirects:e.Opt(e.Vec(e.Tuple(e.Text,C)))}),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}),ie=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}),Ae=e.Variant({Ok:ie,Err:pe}),re=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),ce=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:ce,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(k),raw_access:e.Opt(A),redirects:e.Opt(e.Vec(e.Tuple(e.Text,C)))}),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],[Ae],[]),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 p_=async({identity:e,host:t,localActor:r})=>await cr.create({identity:e,host:t,retryTimes:10,shouldFetchRootKey:r}),f_=async({agent:e,...t})=>e??await h_(t),h_=async({identity:e,container:t})=>{let r=X(t)&&t!==!1;return await p_({identity:e,host:r?t===!0?"http://127.0.0.1:5987":t:"https://icp-api.io",localActor:r})};var Rd=({satelliteId:e,certified:t=!1,...r})=>Id({canisterId:e,...r,idlFactory:t?yc:_c});var vd=({consoleId:e,certified:t=!1,...r})=>Id({canisterId:e,...r,idlFactory:t?d_:u_}),Id=({canisterId:e,idlFactory:t,...r})=>{if(q(e))throw new Error("No canister ID provided.");return m_({canisterId:e,idlFactory:t,...r})},m_=async({canisterId:e,idlFactory:t,config:r,...n})=>{let o=await f_(n);return oo.createActor(t,{agent:o,canisterId:e,...r??{}})};var Ce=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 Ad=({satelliteId:e,container:t})=>{let{satelliteId:r}=gc({satelliteId:e}),{container:n}=xc({container:t});if(X(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`},gc=({satelliteId:e})=>X(e)?{satelliteId:e}:Ce.getInstance().get()??{satelliteId:void 0},xc=({container:e})=>X(e)?{container:e}:Ce.getInstance().get()??{container:void 0};var Te=({satellite:e,options:{certified:t}})=>Fd({idlFactory:t?yc:_c,actorKey:`stock#${t?"update":"query"}`,...e}),Sd=({idlFactory:e,...t})=>Fd({idlFactory:e,actorKey:"extended#query",...t}),Fd=async({satelliteId:e,container:t,...r})=>{let{satelliteId:n}=gc({satelliteId:e});Qo(n,"No satellite ID defined. Did you initialize Juno?");let{container:o}=xc({container:t});return await lo.getInstance().getActor({satelliteId:n,container:o,...r})};var ys=class extends Error{},pr=class extends Error{},gs=class extends Error{},xs=class extends Error{},bs=class extends Error{},ws=class extends Error{},Ts=class extends Error{},Ns=class extends Error{},Os=class extends Error{};var Vd=e=>{if(q(e))return ue();switch(e.matcher){case"equal":return ue({Equal:e.timestamp});case"greaterThan":return ue({GreaterThan:e.timestamp});case"lessThan":return ue({LessThan:e.timestamp});case"between":return ue({Between:[e.timestamps.start,e.timestamps.end]});default:throw new Os("Invalid list matcher for timestamp",e)}},Br=({matcher:e,paginate:t,order:r,owner:n})=>({matcher:q(e)?[]:[{key:ue(e.key),description:ue(e.description),created_at:Vd(e.createdAt),updated_at:Vd(e.updatedAt)}],paginate:ue(q(t)?void 0:{start_after:ue(t.startAfter),limit:ue(q(t.limit)?void 0:BigInt(t.limit))}),order:ue(q(r)?void 0:{desc:r.desc,field:r.field==="created_at"?{CreatedAt:null}:r.field==="updated_at"?{UpdatedAt:null}:{Keys:null}}),owner:ue(q(n)?void 0:typeof n=="string"?M.fromText(n):n)});var Cd=async e=>{let t=new Blob([JSON.stringify(e,Zu)],{type:"application/json; charset=utf-8"});return new Uint8Array(await t.arrayBuffer())},Es=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(),Xu)},Rs=()=>typeof window<"u";var Pd=async({data:e})=>{try{return await Es(e)}catch(t){console.error("The data parsing has failed, mapping to undefined as a fallback.",t);return}};var bc=async e=>{let{data:t,version:r,description:n}=e;return{description:ue(n),data:await Cd(t),version:ue(r)}},wc=e=>{let{version:t}=e;return{version:ue(t)}},Vn=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 Es(i),version:ye(n),...s}};var Bd=async({collection:e,key:t,...r})=>{let{get_doc:n}=await Te(r),o=ye(await n(e,t));if(!q(o))return Vn({doc:o,key:t})},Dd=async({docs:e,...t})=>{let{get_many_docs:r}=await Te(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(X(c)?await Vn({key:s,doc:c}):void 0)}return i},Ud=async({collection:e,doc:t,...r})=>{let{set_doc:n}=await Te(r),{key:o}=t,i=await bc(t),s=await n(e,o,i);return await Vn({key:o,doc:s})},kd=async({docs:e,...t})=>{let{set_many_docs:r}=await Te(t),n=[];for(let{collection:s,doc:a}of e){let{key:c}=a;n.push([s,c,await bc(a)])}let o=await r(n),i=[];for(let[s,a]of o)i.push(await Vn({key:s,doc:a}));return i},Ld=async({collection:e,doc:t,...r})=>{let{del_doc:n}=await Te(r),{key:o}=t;return n(e,o,wc(t))},qd=async({docs:e,...t})=>{let{del_many_docs:r}=await Te(t),n=e.map(({collection:o,doc:i})=>[o,i.key,wc(i)]);await r(n)},Md=async({collection:e,filter:t,...r})=>{let{del_filtered_docs:n}=await Te(r);return n(e,Br(t))},jd=async({collection:e,filter:t,...r})=>{let{list_docs:n}=await Te(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 Pd({data:l}),version:ye(m),...g})}return{items:u,items_length:s,items_page:ye(i),matches_length:a,matches_pages:ye(c)}},Kd=async({collection:e,filter:t,...r})=>{let{count_docs:n}=await Te(r);return n(e,Br(t))};var vs=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await Bd({...r,satellite:{...e,identity:n},options:t??Dt})},nT=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await Dd({...r,satellite:{...e,identity:n},options:t??Dt})},Hd=async({satellite:e,...t})=>{let r=de(e?.identity);return await Ud({...t,satellite:{...e,identity:r},options:{certified:!0}})},$d=async({satellite:e,...t})=>{let r=de(e?.identity);return await kd({...t,satellite:{...e,identity:r},options:{certified:!0}})},oT=async({satellite:e,...t})=>{let r=de(e?.identity);return await Ld({...t,satellite:{...e,identity:r},options:{certified:!0}})},iT=async({satellite:e,...t})=>{let r=de(e?.identity);return await qd({...t,satellite:{...e,identity:r},options:{certified:!0}})},sT=async({satellite:e,filter:t,...r})=>{let n=de(e?.identity);return await Md({...r,filter:t??{},satellite:{...e,identity:n},options:{certified:!0}})},aT=async({satellite:e,options:t,filter:r,...n})=>{let o=de(e?.identity);return await jd({...n,filter:r??{},satellite:{...e,identity:o},options:t??Dt})},cT=async({satellite:e,options:t,filter:r,...n})=>{let o=de(e?.identity);return await Kd({...n,filter:r??{},satellite:{...e,identity:o},options:t??Dt})};var Gd=async({provider:e})=>{let{user:t,userId:r}=await Tc();if(X(t))return t;try{return await __({userId:r,provider:e})}catch(n){if(mc({error:n,type:Ed})){let o=await Jd({userId:r});if(X(o))return o}throw n}},Tc=async()=>{let e=_s();if(q(e))throw new Ns("No identity to initialize the user. Have you initialized Juno?");let t=e.getPrincipal().toText(),r=await Jd({userId:t});return{userId:t,user:r}},Jd=({userId:e})=>vs({collection:"#user",key:e}),__=({userId:e,...t})=>Hd({collection:"#user",doc:{key:e,data:t}});var Is=async()=>{await si({fn:async()=>{let{user:t}=await Tc();je.getInstance().set(t??null)}})},As=async({user:e})=>{await si({fn:async()=>{je.getInstance().set(e)}})};var Wd=()=>{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()},zd=()=>{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()},Yd=()=>{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 Zd=BigInt(144e11),Xd=!1,Qd={width:576,height:576},ep={width:424,height:576};var ai="internetcomputer.org",tp="ic0.app",rp="id.ai";var np=({width:e,height:t})=>{if(!Rs()||q(window)||q(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 op=(r=>(r[r.AuthorizingWithProvider=0]="AuthorizingWithProvider",r[r.CreatingOrRetrievingUser=1]="CreatingOrRetrievingUser",r))(op||{});var Ss=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(q(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===ms){o(new gs(i));return}o(new ys(i))},maxTimeToLive:t?.maxTimeToLiveInNanoseconds??Zd,allowPinAuthentication:t?.allowPin??Xd,...t?.derivationOrigin!==void 0&&{derivationOrigin:t.derivationOrigin},...this.signInOptions({windowed:t?.windowed})})})}};var Fs=class extends Ss{#e;constructor({domain:t}){super(),this.#e=t}get id(){return"internet_identity"}signInOptions({windowed:t}){let n=(()=>{let i=Ce.getInstance().get()?.container;if(q(i)||i===!1){let p=[ai,tp].includes(this.#e??ai);return io(this.#e)?`https://identity.${ai}`:p?`https://identity.${this.#e??ai}`:`https://${this.#e}`}let s=Ce.getInstance().get(),a=X(s)&&X(s?.internetIdentityId)?s.internetIdentityId:ad,{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:np((()=>{try{let{hostname:i}=new URL(n);return i.includes(rp)}catch{return!1}})()?ep:Qd)},identityProvider:n}}};var Nc=class extends Error{},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{},Vc=class extends Error{};var ip=({auth:e,identity:t})=>"satellite"in e?Rd({...e.satellite,identity:t}):vd({...e.console,identity:t}),y_=async({actorParams:e,args:t})=>{let{authenticate:r}=await ip(e);return await r(t)},g_=async({actorParams:e,args:t})=>{let{get_delegation:r}=await ip(e);return await r(t)},x_=({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}},Cc=async({jwt:e,context:t,auth:r})=>{let n=await Ct.generate({extractable:!1}),o=new Uint8Array(n.getPublicKey().toDer()),{delegations:i,data:s}=await b_({jwt:e,publicKey:o,context:t,auth:r});return{identity:x_({sessionKey:n,delegations:i}),data:s}},b_=async({jwt:e,publicKey:t,context:{caller:r,salt:n},auth:o})=>{let i=await y_({args:{OpenId:{jwt:e,session_key:t,salt:n}},actorParams:{auth:o,identity:r}});if("Err"in i)throw new vc("Authentication failed",{cause:i});let{delegation:{user_key:s,expiration:a},...c}=i.Ok,u=await w_({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}},w_=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 g_({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 Fc("Getting delegation failed",{cause:c})}return c.Ok}throw new Vc};var Pc="juno:auth:openid",Bc={authUrl:"https://accounts.google.com/o/oauth2/v2/auth",authScopes:["openid","profile","email"],configUrl:"https://accounts.google.com/gsi/fedcm.json"};var sp=e=>Vr(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),T_=()=>window.crypto.getRandomValues(new Uint8Array(32)),N_=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 sp(lr(o))},O_=async({caller:e})=>{let t=T_();return{nonce:await N_({salt:t,caller:e}),salt:t}},ap="__caller__",cp="__salt__",lp="__state__",E_=({caller:e,state:t,salt:r})=>{let n={[ap]:e.toJSON(),[cp]:Vr(r),[lp]:t};return JSON.stringify(n)},R_=e=>{let{[ap]:t,[cp]:r,[lp]:n}=JSON.parse(e);return{caller:Nt.fromParsedJson(t),salt:Yu(r),state:n}},v_=()=>sp(window.crypto.getRandomValues(new Uint8Array(12))),up=async()=>{let e=Nt.generate(),{nonce:t,salt:r}=await O_({caller:e}),n=v_(),o=E_({caller:e,salt:r,state:n});return sessionStorage.setItem(Pc,o),{nonce:t,state:n}},dp=()=>{let e=sessionStorage.getItem(Pc);if(q(e))throw new Oc;return R_(e)};var Dc=async e=>{let t=dp();if("credentials"in e){let{credentials:{jwt:r},auth:n}=e;return await Cc({jwt:r,context:t,auth:n})}return await I_({...e,context:t})},I_=async({auth:e,context:t})=>{let{location:{hash:r}}=window;if(io(r)||!r.startsWith("#"))throw new Ic("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 Ac("The provided state is invalid",{cause:o});if(io(i))throw new Sc;return await Cc({jwt:i,auth:e,context:t})};var pp=({authUrl:e,clientId:t,nonce:r,loginHint:n,authScopes:o,state:i,redirectUrl:s})=>{let a=(()=>{try{return new URL(e)}catch{throw new Nc("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),Qa(n)?a.searchParams.set("login_hint",n):a.searchParams.set("prompt","select_account"),window.location.href=a.toString()},fp=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(q(i))throw new Ec;let{type:s}=i;if(s!=="identity"||!("token"in i)||typeof i.token!="string")throw new Rc("Invalid credential received from FedCM API",{cause:i});let{token:a}=i;return{jwt:a}};async function Uc({google:e}){let t=await up();if("credentials"in e){let{credentials:i}=e,{configUrl:s}=Bc;return await fp({...i,...t,configUrl:s})}let{redirect:r}=e,{authUrl:n,authScopes:o}=Bc;pp({...r,...t,authUrl:n,authScopes:o})}var A_=async()=>{let{satelliteId:e}=Ce.getInstance().get()??{satelliteId:void 0};if(q(e))throw new pr("Satellite ID not set. Have you initialized the Satellite?");let t=Ce.getInstance().get()?.container,{identity:{delegationChain:r,sessionKey:n,identity:o},data:{doc:i}}=await Dc({redirect:null,auth:{satellite:{satelliteId:e,container:t}}});await $e.getInstance().setAuthClientStorage({delegationChain:r,sessionKey:n});let s=await Vn({doc:i,key:o.getPrincipal().toText()});await As({user:s})};var hp=e=>(e.preventDefault(),e.returnValue="Are you sure you want to exit?"),S_=()=>{window.addEventListener("beforeunload",hp,{capture:!0})},F_=()=>{window.removeEventListener("beforeunload",hp,{capture:!0})},Vs=async({fn:e})=>{try{return S_(),await e()}finally{F_()}};var Cs=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??Yd();if(q(r))throw new bs;let{redirect:n}=t;await Uc({google:{redirect:{...n??{},clientId:r}}})}};var mp=async({delegationIdentity:e,passkeyIdentity:t,satelliteId:r})=>{let n=t.getCredential().getAAGUID(),[o,i]=await $d({docs:[{collection:"#user",doc:{key:e.getPrincipal().toText(),data:{provider:"webauthn",providerData:{webauthn:{...X(n)&&{aaguid:us(n)}}}}}},{collection:"#user-webauthn",doc:{key:t.getCredential().getCredentialIdText(),data:{publicKey:t.getPublicKey().toRaw()}}}],satellite:{identity:e,satelliteId:r}});return o};var _p=(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))(_p||{}),yp=(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))(yp||{});var uo=class{async signUp({options:{onProgress:t,maxTimeToLiveInMilliseconds:r,passkey:n}={},loadAuthWithUser:o}){let{satelliteId:i}=Ce.getInstance().get()??{satelliteId:void 0};if(q(i))throw new pr("Satellite ID not set. Have you initialized the Satellite?");let s=({step:m,state:g})=>{switch(m){case Cr.RequestingUserCredential:t?.({step:1,state:g});break;case Cr.FinalizingCredential:t?.({step:2,state:g});break;case Cr.Signing:t?.({step:3,state:g});break}},c=await Ut({fn:async()=>await tc.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 mp({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}=Ce.getInstance().get()??{satelliteId:void 0};if(q(o))throw new pr("Satellite ID not set. Have you initialized the Satellite?");let i=async({credentialId:d})=>{let l=await vs({collection:"#user-webauthn",key:Vr(d),options:{certified:!0},satellite:{identity:new rt,satelliteId:o}});if(q(l))throw new ws("No public key found for the selected passkey.");let{data:f}=l,{publicKey:h}=f;return Fn(h,Zo)},s=({step:d,state:l})=>{switch(d){case Cr.RequestingUserCredential:t?.({step:0,state:l});break;case Cr.FinalizingCredential:t?.({step:1,state:l});break;case Cr.Signing:t?.({step:2,state:l});break}},a=await tc.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 Ct.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(He,t.getKeyPair()),n.set(Ke,JSON.stringify(r.getDelegation().toJSON()))])}};var C_=async({provider:e})=>{await si({fn:async()=>{let r=await Gd({provider:e});je.getInstance().set(r)}})},P_=async e=>{if("google"in e){let{google:{options:t}}=e;await kc({fn:()=>new Cs().signIn({options:t}),context:{windowGuard:!1}});return}if("webauthn"in e){let{webauthn:{options:t,context:r}}=e;await kc({fn:()=>new uo().signIn({options:t,loadAuth:Is}),context:r});return}if("internet_identity"in e){let{internet_identity:{options:t,context:r}}=e,{domain:n,...o}=t??{};await kc({fn:()=>new Fs({domain:n}).signIn({options:o,authClient:$e.getInstance().getAuthClient(),initAuth:C_}),context:r});return}throw new xs("An unknown or unsupported provider was provided for sign-in.")},kc=async({fn:e,context:t})=>{if(t?.windowGuard===!1){await e();return}await Vs({fn:e})};var B_=async e=>{let t=async()=>await D_(e);if(Object.values(e)?.[0].context?.windowGuard===!1){await t();return}await Vs({fn:t})},D_=async e=>{if("webauthn"in e){let{webauthn:{options:t}}=e;await new uo().signUp({options:t,loadAuthWithUser:As});return}throw new Ts("An unknown or unsupported provider was provided for sign-up.")};var vO=e=>e?.data?.provider==="webauthn",IO=e=>e?.data?.provider==="google";var VO=async({idlFactory:e,satellite:t})=>{let r=de(t?.identity);return await Sd({idlFactory:e,...t,identity:r})};var gp=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(U_(r));o?.onInitiatedBatch();let{chunkIds:u}=await q_({data:e,uploadFn:s,batchId:c});o?.onUploadedFileChunks(r.fullPath),await L_({commitFn:a,batchId:c,data:e,headers:t,chunkIds:u}),o?.onCommittedBatch()};var U_=({filename:e,collection:t,token:r,fullPath:n,encoding:o,description:i})=>({collection:t,full_path:n,name:e,token:ue(r),encoding_type:ue(o),description:ue(i)}),k_=({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??[]]}},L_=async({commitFn:e,...t})=>{let r=k_(t);await e(r)},q_=async({data:e,uploadFn:t,batchId:r})=>{let n=[],o=Rs()?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 M_({uploadChunks:n}))s=[...s,...a];return{chunkIds:s}};async function*M_({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=>j_(o)))}}var j_=async({batchId:e,chunk:t,uploadFn:r,orderId:n})=>r({batch_id:e,content:new Uint8Array(await t.arrayBuffer()),order_id:ue(n)});var xp=async({asset:e,...t})=>{let r=await Te(t);await gp({actor:r,asset:e})},bp=async({collection:e,filter:t,...r})=>{let{list_assets:n}=await Te(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)}},wp=async({collection:e,filter:t,...r})=>{let{count_assets:n}=await Te(r);return n(e,Br(t))},Tp=async({collection:e,fullPath:t,...r})=>(await Te(r)).del_asset(e,t),Np=async({assets:e,satellite:t})=>{let{del_many_assets:r}=await Te({satellite:t,options:{certified:!0}}),n=e.map(({collection:o,fullPath:i})=>[o,i]);await r(n)},Op=async({collection:e,filter:t,...r})=>{let{del_filtered_assets:n}=await Te(r);return n(e,Br(t))},Ep=async({collection:e,fullPath:t,...r})=>{let{get_asset:n}=await Te(r);return ye(await n(e,t))},Rp=async({assets:e,...t})=>{let{get_many_assets:r}=await Te(t),n=e.map(({collection:i,fullPath:s})=>[i,s]);return(await r(n)).map(([i,s])=>ye(s))};var vp=e=>btoa([...e].map(t=>String.fromCharCode(t)).join(""));var zO=e=>Ip(e),YO=e=>Ip({filename:e.data.name,...e}),Ip=async({filename:e,data:t,collection:r,headers:n=[],fullPath:o,token:i,satellite:s,encoding:a,description:c})=>{let u=de(s?.identity),p=decodeURI(e),d=o??`/${r}/${p}`,l={...s,identity:u};return await xp({asset:{data:t,filename:p,collection:r,token:i,headers:n,fullPath:d,encoding:a,description:c},satellite:l,options:{certified:!0}}),{downloadUrl:Ap({satellite:l,assetKey:{fullPath:d,token:i}}),fullPath:d,name:p}},ZO=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:de(r?.identity)},{items:i,...s}=await bp({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:Ap({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:vp(E),total_length:O}}),{}),owner:d.toText(),created_at:m,updated_at:g}});return{items:a,assets:a,...s}},XO=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:de(r?.identity)};return await wp({collection:e,satellite:o,filter:t??{},options:n??Dt})},QO=({collection:e,fullPath:t,satellite:r})=>Tp({collection:e,fullPath:t,satellite:{...r,identity:de(r?.identity)},options:{certified:!0}}),e6=({assets:e,satellite:t})=>Np({assets:e,satellite:{...t,identity:de(t?.identity)},options:{certified:!0}}),t6=async({collection:e,satellite:t,filter:r})=>{let n={...t,identity:de(t?.identity)};return await Op({collection:e,satellite:n,filter:r??{},options:{certified:!0}})},r6=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await Ep({...r,satellite:{...e,identity:n},options:t??Dt})},n6=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await Rp({...r,satellite:{...e,identity:n},options:t??Dt})},Ap=({assetKey:{fullPath:e,token:t},satellite:r})=>{let n={...r,identity:de(r?.identity)};return`${Ad(n)}${e}${X(t)?`?token=${t}`:""}`};var K_=e=>{let t=e?.satelliteId??Wd();Qo(t,"Satellite ID is not configured. Juno cannot be initialized.");let r=e?.container??zd();return{satelliteId:t,internetIdentityId:e?.internetIdentityId,workers:e?.workers,container:r}},p6=e=>H_(e),H_=async e=>{let t=K_(e);Ce.getInstance().set(t),await Is();let r=t.workers?.auth!==void 0?Od(t.workers.auth):void 0;return[...r?[r]:[]]},$_=e=>je.getInstance().subscribe(e),f6=$_;export{op as AuthClientSignInProgressStep,Ns as InitError,Fs as InternetIdentityProvider,Os as ListError,ys as SignInError,pr as SignInInitError,bs as SignInMissingClientIdError,xs as SignInProviderNotSupportedError,gs as SignInUserInterruptError,Ts as SignUpProviderNotSupportedError,_p as WebAuthnSignInProgressStep,ws as WebAuthnSignInRetrievePublicKeyError,yp as WebAuthnSignUpProgressStep,f6 as authSubscribe,XO as countAssets,cT as countDocs,QO as deleteAsset,oT as deleteDoc,t6 as deleteFilteredAssets,sT as deleteFilteredDocs,e6 as deleteManyAssets,iT as deleteManyDocs,Ap as downloadUrl,r6 as getAsset,vs as getDoc,l_ as getIdentityOnce,n6 as getManyAssets,nT as getManyDocs,VO as getSatelliteExtendedActor,A_ as handleRedirectCallback,p6 as initJuno,H_ as initSatellite,IO as isGoogleUser,Um as isWebAuthnAvailable,vO as isWebAuthnUser,ZO as listAssets,aT as listDocs,$_ as onAuthStateChange,Hd as setDoc,$d as setManyDocs,P_ as signIn,hc as signOut,B_ as signUp,c_ as unsafeIdentity,zO as uploadBlob,YO as uploadFile};
55
55
  /*! Bundled license information:
56
56
 
57
57
  @noble/hashes/esm/utils.js: