@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.
- package/dist/browser/index.js +1 -1
- package/dist/browser/index.js.map +4 -4
- package/dist/node/index.mjs +1 -1
- package/dist/node/index.mjs.map +4 -4
- package/dist/types/auth/types/user.d.ts +1 -2
- package/dist/types/auth/utils/user.utils.d.ts +19 -0
- package/dist/types/index.d.ts +1 -0
- package/package.json +2 -2
package/dist/node/index.mjs
CHANGED
|
@@ -53,7 +53,7 @@ ic-request`),ta=new TextEncoder().encode("\vic-response"),ra=new TextEncoder().e
|
|
|
53
53
|
${f}
|
|
54
54
|
Retrying query.`),await this.#b({...t,tries:a+1});throw f instanceof ht?f:go.fromCode(new To(f))}if(!this.#_)return u;let p=u.signatures?.[0]?.timestamp;if(!p)throw ne.fromCode(new Ii("Timestamp not found in query response. This suggests a malformed or malicious response."));let d=Number(BigInt(p)/BigInt(Hh));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 Ti(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 hn(`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===$a&&(a=$n(await s.clone().arrayBuffer()))}catch(p){if(o<this.#d)return this.log.warn(`Caught exception while attempting to make request:
|
|
55
55
|
${p}
|
|
56
|
-
Retrying request.`),await this.#y({requestFn:r,backoff:n,tries:o+1});throw go.fromCode(new To(p))}let c=Gi(s.headers);if(s.status===$a||s.status===Qh)return{ok:s.ok,status:s.status,statusText:s.statusText,responseBodyBytes:a,headers:c};let u=await s.text();if(s.status===em&&s.url.includes("api/v3"))throw ne.fromCode(new wo);if(u.startsWith("Invalid request expiry: "))throw W.fromCode(new mn(u,this.#l));if(o<this.#d)return await this.#y({requestFn:r,backoff:n,tries:o+1});throw ne.fromCode(new bo(s.status,s.statusText,c,u))}async query(t,r,n){let o=this.#p(),i=r.effectiveCanisterId?M.from(r.effectiveCanisterId):M.from(t);await this.#g(i),this.log.print(`ecid ${i.toString()}`),this.log.print(`canisterId ${t.toString()}`);let s,a=await(n??this.#n);if(!a)throw Oe.fromCode(new br);let c=M.from(t),u=a.getPrincipal(),p=Ga(this.#l,this.#r),d={request_type:Tn.Query,canister_id:c,method_name:r.methodName,arg:r.arg,sender:u,ingress_expiry:p},l=Xt(d);s=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#i?{Authorization:"Basic "+btoa(this.#i)}:{}}},endpoint:er.Query,body:d}),s=await a.transformRequest(s);let f=Uo(s.body),h={canister:c.toText(),ecid:i,transformedRequest:s,body:f,requestId:l,backoff:o,tries:0},m=async()=>{let _=await this.#b(h);return{requestDetails:d,..._}},g=async()=>{let _=this.#m.get(i.toString());if(_)return _;await this.fetchSubnetKeys(i.toString());let x=this.#m.get(i.toString());if(!x)throw Pe.fromCode(new Ai);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 br);let o=n.getPrincipal(),i=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#i?{Authorization:"Basic "+btoa(this.#i)}:{}}},endpoint:er.ReadState,body:{request_type:Tn.ReadState,paths:t.paths,sender:o,ingress_expiry:Ga(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(bn(l,h))return f}}let a,c;if(o)a=o,c=Xt(a);else{c=s(r);let p=await this.#n;if(!p)throw Oe.fromCode(new br);a=await this.createReadStateRequest(r,p)}this.log.print(`fetching "/api/v2/canister/${i}/read_state" with request:`,a);let u=this.#p();try{let{responseBodyBytes:p}=await this.#y({requestFn:()=>this.#o(""+new URL(`/api/v2/canister/${i.toString()}/read_state`,this.host),{...this.#a,...a.request,body:Uo(a.body)}),backoff:u,tries:0}),d=Je(p);return this.log.print("Read state response:",d),d}catch(p){let d;throw p instanceof ht?(p.code.requestContext={requestId:c,senderPubKey:a.body.sender_pubkey,senderSignature:a.body.sender_sig,ingressExpiry:a.body.content.ingress_expiry},d=p):d=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 wr("Could not decode time from response"));let o=An(["time"],r);if(o.status!==ze.Found)throw ne.fromCode(new Wt("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 Un("Time was not in its expected format."));let i=ro(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 Ua({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 Ua({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===er.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 Ga(e,t){let r=e*Ja;return zn.fromDeltaInMilliseconds(r,t)}var nm=300*1e3;function Ku(){return cm(im(om(),1e3),am(1e3,1.2),sm(nm))}function om(){let e=!0;return async()=>e?(e=!1,!0):!1}function im(e,t){return async(r,n,o)=>{if(await e(r,n,o))return new Promise(i=>setTimeout(i,t))}}function sm(e){let t=Date.now()+e;return async(r,n,o)=>{if(Date.now()>t)throw ne.fromCode(new hn(`Request timed out after ${e} msec`,n,o))}}function am(e,t){let r=e;return()=>new Promise(n=>setTimeout(()=>{r*=t,n()},r))}function cm(...e){return async(t,r,n)=>{for(let o of e)await o(t,r,n)}}var $u={preSignReadStateRequest:!1};function Gu(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Wa(e,t){return e!==null&&typeof e=="object"&&Gu(e,t)}function um(e,t){return Gu(e,t)&&typeof e[t]=="function"}function Hu(e){return Wa(e,"body")&&Wa(e.body,"content")&&e.body.content.request_type===Tn.ReadState&&Wa(e.body.content,"ingress_expiry")&&typeof e.body.content.ingress_expiry=="object"&&e.body.content.ingress_expiry!==null&&um(e.body.content.ingress_expiry,"toHash")}async function za(e,t,r,n={}){let o=[ee("request_status"),r],i,s;if(n.preSignReadStateRequest??!1?(s=await dm({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 Sr.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??Ku();return await d(t,r,p),za(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 gr.fromCode(new Ln(r,d,l,h))}case Vt.Done:throw ge.fromCode(new Ei(r))}throw Tr}async function dm(e){let{paths:t,agent:r,pollingOptions:n}=e;if(n.request&&Hu(n.request))return n.request;let o=await r.createReadStateRequest?.({paths:t},void 0);if(!Hu(o))throw W.fromCode(new Vi(o));return o}var st=Symbol.for("ic-agent-metadata"),io=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:xn});class o extends e{constructor(s){if(!s.canisterId)throw W.fromCode(new No(s.canisterId));let a=typeof s.canisterId=="string"?M.fromText(s.canisterId):s.canisterId;super({config:{...Ju,...s,canisterId:a},service:n});for(let[c,u]of n._fields)r?.httpDetails&&u.annotations.push(Ya),r?.certificate&&u.annotations.push(Wu),this[c]=fm(this,c,u,s.blsVerify)}}return o}static createActor(t,r){if(!r.canisterId)throw W.fromCode(new No(r.canisterId));return new(this.createActorClass(t))(r)}static createActorWithHttpDetails(t,r){return new(this.createActorClass(t,{httpDetails:!0}))(r)}static createActorWithExtendedDetails(t,r,n={httpDetails:!0,certificate:!0}){return new(this.createActorClass(t,n))(r)}constructor(t){this[st]=Object.freeze(t)}};function oo(e,t){let r=xn.decode(e,t);switch(r.length){case 0:return;case 1:return r[0];default:return r}}var Ju={pollingOptions:$u},Ya="http-details",Wu="certificate";function fm(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 lr,u=M.from(s.canisterId||e[st].config.canisterId),p=xn.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 hr.Rejected:{let f=new Ni(d.requestId,d.reject_code,d.reject_message,d.error_code,d.signatures);throw f.callContext={canisterId:u,methodName:t,httpDetails:l},gr.fromCode(f)}case hr.Replied:return r.annotations.includes(Ya)?{httpDetails:l,result:oo(r.retTypes,d.reply.arg)}:oo(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||lr.createSync(),{canisterId:u,effectiveCanisterId:p,pollingOptions:d}={...Ju,...e[st].config,...s},l=M.from(u),f=p!==void 0?M.from(p):l,h=xn.encode(r.argTypes,a),{requestId:m,response:g,requestDetails:_}=await c.call(l,{methodName:t,arg:h,effectiveCanisterId:f,nonce:s.nonce}),x,y;if(jc(g.body)){if(c.rootKey==null)throw Oe.fromCode(new Rt);let R=g.body.certificate;y=await Sr.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 Ln(m,v,V,b);throw N.callContext={canisterId:l,methodName:t,httpDetails:g},gr.fromCode(N)}}}else if(Mc(g.body)){let{reject_code:R,reject_message:I,error_code:w}=g.body,v=new Oi(m,R,I,w);throw v.callContext={canisterId:l,methodName:t,httpDetails:g},gr.fromCode(v)}if(g.status===202){let R={...d,blsVerify:n},I=await za(c,f,m,R);y=I.certificate,x=I.reply}let T=r.annotations.includes(Ya),E=r.annotations.includes(Wu),O={...g,requestDetails:_};if(x!==void 0)return T&&E?{httpDetails:O,certificate:y,result:oo(r.retTypes,x)}:E?{certificate:y,result:oo(r.retTypes,x)}:T?{httpDetails:O,result:oo(r.retTypes,x)}:oo(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 hm=(e=>(e[e.FractionalMoreThan8Decimals=0]="FractionalMoreThan8Decimals",e[e.InvalidFormat=1]="InvalidFormat",e[e.FractionalTooManyDecimals=2]="FractionalTooManyDecimals",e))(hm||{}),Nx=BigInt(1e8);var q=e=>e==null,X=e=>!q(e),ec=e=>X(e)&&e!=="",so=e=>!ec(e);var mm=class extends Error{},ei=(e,t)=>{if(e==null)throw new mm(t)};var ur=e=>new Uint8Array(e),ds=e=>Array.from(e);var Yu=({a:e,b:t})=>e.length===t.length&&e.every((r,n)=>r===t[n]);var zu="abcdefghijklmnopqrstuvwxyz234567",Qo=Object.create(null);for(let e=0;e<zu.length;e++)Qo[zu[e]]=e;Qo[0]=Qo.o;Qo[1]=Qo.i;var Cr=e=>btoa(String.fromCharCode(...new Uint8Array(e))),Zu=e=>Uint8Array.from(atob(e),t=>t.charCodeAt(0)),Ox=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 Za="__bigint__",Xa="__principal__",Qa="__uint8array__",Xu=(e,t)=>typeof t=="bigint"?{[Za]:`${t}`}:X(t)&&M.isPrincipal(t)?{[Xa]:M.from(t).toText()}:X(t)&&t instanceof Uint8Array?{[Qa]:Array.from(t)}:t,Qu=(e,t)=>{let r=n=>t[n];return X(t)&&typeof t=="object"&&Za in t?BigInt(r(Za)):X(t)&&typeof t=="object"&&Xa in t?M.fromText(r(Xa)):X(t)&&typeof t=="object"&&Qa in t?Uint8Array.from(r(Qa)):t};var ue=e=>X(e)?[e]:[],ye=e=>e?.[0];var _m=({authData:e})=>{if(e.byteLength<37)return{invalidAuthData:null};if(e.byteLength<53)return{invalidAuthData:null};let t=e.slice(37,53),r=ym({bytes:t});return"aaguid"in r?{aaguidBytes:t,aaguidText:r.aaguid}:{unknownProvider:null}},ym=({bytes:e})=>{if(e.length!==16)return{invalidBytes:null};let t=(e instanceof Uint8Array?ds(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 gm(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 xm(e){return Fn(e,Xo)}var bm=class{constructor(e){this._cose=e,this.#e=xm(e)}#e;toDer(){return this.#e}toRaw(){return new Uint8Array(this.#e)}},od=class{#e;#t;constructor({rawId:e,cose:t}){this.#e=e,this.#t=new bm(t)}getPublicKey(){return this.#t}getCredentialId(){return this.#e}getCredentialIdText(){return Cr(this.#e)}},wm=class extends od{#e;#t;constructor({authData:e,...t}){super(t);let r=_m({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}},Tm=class extends od{},Nm=class extends Error{},Om=class extends Error{},Em=class extends Error{},Rm=class extends Error{},vm=class extends Error{},Im=class extends Error{},Am=class extends Error{},ed=class extends Error{};var Sm={ECDSA_WITH_SHA256:-7,RSA_WITH_SHA256:-257},Fm=6e4,id=()=>window.crypto.getRandomValues(new Uint8Array(16)),Vm=()=>id(),Cm=()=>id(),Pm=()=>{let{location:{href:e}}=window;try{let{hostname:t}=new URL(e);return t}catch{throw new Nm}},sd=({appId:e})=>e?.id??Pm(),Bm=({appId:e,user:t}={})=>{let{document:{title:r}}=window,n=()=>({rp:{name:e?.name??r,id:sd({appId:e})}}),o=()=>({user:{id:Cm(),name:t?.name??t?.displayName??r,displayName:t?.displayName??r}});return{attestation:"direct",challenge:Vm(),...n(),...o(),pubKeyCredParams:Object.values(Sm).map(i=>({type:"public-key",alg:i})),excludeCredentials:[],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred",residentKey:"required",requireResidentKey:!0}}},Dm=(e={})=>({rpId:sd(e),allowCredentials:[],userVerification:"required"}),tc=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}},Pr=(e=>(e[e.RequestingUserCredential=0]="RequestingUserCredential",e[e.FinalizingCredential=1]="FinalizingCredential",e[e.Signing=2]="Signing",e))(Pr||{}),ad=({timeout:e})=>AbortSignal.timeout(e??Fm),Um=async({challenge:e,credentialIds:t,passkeyOptions:r,timeout:n})=>await navigator.credentials.get({publicKey:{...Dm(r),challenge:e.buffer,allowCredentials:(t??[]).map(o=>({id:o.buffer,type:"public-key"}))},signal:ad({timeout:n})}),td=e=>{if(e.status!=="initialized")throw new Om},rd=e=>{if(q(e))throw new Em},nd=({type:e})=>{if(e!=="public-key")throw new Rm},rc=class ti 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=ti.#r({credential:new wm(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:Bm(t),signal:ad({timeout:r})});rd(o),nd(o);let{response:{attestationObject:i},rawId:s}=o;if(q(i))throw new vm;let{authData:a}=Ki.decode(ur(i)),c=gm(a);return new ti({...n,rawId:ur(s),cose:c,authData:a})}static async createWithExistingCredential(t){return new ti(t)}getPublicKey(){td(this.#t);let{credential:t}=this.#t;return t.getPublicKey()}getCredential(){td(this.#t);let{credential:t}=this.#t;return t}async sign(t){let r=await tc({fn:async()=>{let n=await Um({challenge:t,...this.#t.status==="initialized"&&{credentialIds:[this.#t.credential.getCredentialId()]}});return rd(n),nd(n),n},step:0,onProgress:this.#e});return await tc({fn:async()=>{let{rawId:n}=r;if(this.#t.status==="initialized"){if(!Yu({a:this.#t.credential.getCredentialId(),b:ur(n)}))throw new Im;return}let{retrievePublicKey:o}=this.#t,i=await o({credentialId:ur(n)});this.#t=ti.#r({credential:new Tm({rawId:ur(n),cose:i})})},step:1,onProgress:this.#e}),await tc({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 ed;if(q(s))throw new ed;let a=Ki.encode({authenticator_data:i,client_data_json:new TextDecoder().decode(o),signature:ur(s)});if(q(a))throw new Am;return Object.assign(a,{__signature__:void 0}),a},step:2,onProgress:this.#e})}},km=async()=>X(window.PublicKeyCredential)&&"isUserVerifyingPlatformAuthenticatorAvailable"in PublicKeyCredential?await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():!1;var ao=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 ao{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 nc=({message:e,detail:t})=>{let r=new CustomEvent(e,{detail:t,bubbles:!0});document.dispatchEvent(r)};var co="http://127.0.0.1:5987",cd="rdmx6-jaaaa-aaaaa-aaadq-cai";var ld=async({identity:e,container:t})=>{let n=X(t)&&t!==!1?t===!0?co:t:"https://icp-api.io",o=X(t);return await lr.create({identity:e,shouldFetchRootKey:o,host:n})};var lo=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 ld({identity:t,...r});return this.#e={...this.#e??{},[n]:o},o}return this.#e[n]}reset(){this.#e=null}};var uo=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 lo.getInstance().getAgent(n);return io.createActor(t,{agent:o,canisterId:r})}};function ud(e){return e!==null&&typeof e=="object"}var ri=class e{static from(t){if(typeof t=="string"){let r=Ne(t);return this.fromRaw(r)}else if(ud(t)){let r=t;if(ud(r)&&Object.hasOwnProperty.call(r,"__derEncodedPublicKey__"))return this.fromDer(r);if(ArrayBuffer.isView(r)){let n=r;return this.fromRaw(vt(n.buffer))}else{if(r instanceof ArrayBuffer)return this.fromRaw(vt(r));if("rawKey"in r&&r.rawKey instanceof Uint8Array)return this.fromRaw(r.rawKey);if("derKey"in r)return this.fromDer(r.derKey);if("toDer"in r)return this.fromDer(r.toDer())}}throw new Error("Cannot construct Ed25519PublicKey from the provided key.")}static fromRaw(t){return new e(t)}static fromDer(t){return new e(this.derDecode(t))}static{this.RAW_KEY_LENGTH=32}static derEncode(t){let r=Fn(t,Sn);return r.__derEncodedPublicKey__=void 0,r}static derDecode(t){let r=Vn(t,Sn);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()),ll(t,new Uint8Array(new Array(32).fill(0)))&&console.warn("Seed is all zeros. This is not a secure seed. Please provide a seed with sufficient entropy if this is a production environment.");let r=new Uint8Array(32);for(let o=0;o<32;o++)r[o]=t[o];let n=Me.getPublicKey(r);return e.fromKeyPair(n,r)}static fromParsedJson(t){let[r,n]=t;return new e(ri.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(ri.fromRaw(t),r)}static fromSecretKey(t){let r=Me.getPublicKey(t);return e.fromKeyPair(r,t)}#e;#t;constructor(t,r){super(),this.#e=ri.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 oc=class e extends Error{constructor(t){super(t),this.message=t,Object.setPrototypeOf(this,e.prototype)}};function dd(e){if(typeof global<"u"&&global.crypto&&global.crypto.subtle)return global.crypto.subtle;if(e)return e;if(typeof crypto<"u"&&crypto.subtle)return crypto.subtle;throw new oc("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=dd(o),s=await i.generateKey({name:"ECDSA",namedCurve:"P-256"},r,n),a=vt(await i.exportKey("spki",s.publicKey));return Object.assign(a,{__derEncodedPublicKey__:void 0}),new this(s,a,i)}static async fromKeyPair(t,r){let n=dd(r),o=vt(await n.exportKey("spki",t.publicKey));return Object.assign(o,{__derEncodedPublicKey__:void 0}),new e(t,o,n)}constructor(t,r,n){super(),this._keyPair=t,this._derKey=r,this._subtleCrypto=n}getKeyPair(){return this._keyPair}getPublicKey(){let t=this._derKey,r=Object.create(this._keyPair.publicKey);return r.toDer=function(){return t},r}async sign(t){let r={name:"ECDSA",hash:{name:"SHA-256"}},n=vt(await this._subtleCrypto.sign(r,this._keyPair.privateKey,t));return Object.assign(n,{__signature__:void 0}),n}};var ps=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 fs(e){return e instanceof Uint8Array?H(e):H(new Uint8Array(e))}function ic(e){if(typeof e!="string"||e.length<64)throw new Error("Invalid public key.");return Ne(e)}var Br=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:fs(this.pubkey),...this.targets&&{targets:this.targets.map(t=>t.toHex())}}}};async function Lm(e,t,r,n){let o=new Br(t.toDer(),BigInt(+r)*BigInt(1e6),n),i=new Uint8Array([...ra,...new Uint8Array(Xt({...o}))]),s=await e.sign(i);return{delegation:o,signature:s}}var dr=class e{static async create(t,r,n=new Date(Date.now()+900*1e3),o={}){let i=await Lm(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 Br(ic(c),BigInt("0x"+u),p&&p.map(d=>{if(typeof d!="string")throw new Error("Invalid target.");return M.fromHex(d)})),signature:ic(a)}});return new this(o,ic(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:fs(r.pubkey),...o&&{targets:o.map(i=>i.toHex())}},signature:fs(n)}}),publicKey:fs(this.publicKey)}}},pr=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 Xt(r);return{...n,body:{content:r,sender_sig:await this.sign(new Uint8Array([...Vo,...new Uint8Array(o)])),sender_delegation:this._delegation.delegations,sender_pubkey:this._delegation.publicKey}}}},ni=class e extends ps{#e;get delegation(){return this.#e}constructor(t,r){super(t),this.#e=r}static fromDelegation(t,r){return new e(t,r)}};function sc(e,t){for(let{delegation:o}of e.delegations)if(+new Date(Number(o.expiration/BigInt(1e6)))<=+Date.now())return!1;let r=[],n=t?.scope;n&&(Array.isArray(n)?r.push(...n.map(o=>typeof o=="string"?M.fromText(o):o)):r.push(typeof n=="string"?M.fromText(n):n));for(let o of r){let i=o.toText();for(let{delegation:s}of e.delegations){if(s.targets===void 0)continue;let a=!0;for(let c of s.targets)if(c.toText()===i){a=!1;break}if(a)return!1}}return!0}var pd=["mousedown","mousemove","keydown","touchstart","wheel"],oi=class e{callbacks=[];idleTimeout=600*1e3;timeoutID=void 0;static create(t={}){return new e(t)}constructor(t={}){let{onIdle:r,idleTimeout:n=600*1e3}=t||{};this.callbacks=r?[r]:[],this.idleTimeout=n;let o=this._resetTimer.bind(this);window.addEventListener("load",o,!0),pd.forEach(s=>{document.addEventListener(s,o,!0)});let i=(s,a)=>{let c;return(...u)=>{let p=this,d=()=>{c=void 0,s.apply(p,u)};clearTimeout(c),c=window.setTimeout(d,a)}};if(t?.captureScroll){let s=i(o,t?.scrollDebounce??100);window.addEventListener("scroll",s,!0)}o()}registerCallback(t){this.callbacks.push(t)}exit(){clearTimeout(this.timeoutID),window.removeEventListener("load",this._resetTimer,!0);let t=this._resetTimer.bind(this);pd.forEach(r=>{document.removeEventListener(r,t,!0)}),this.callbacks.forEach(r=>{r()})}_resetTimer(){let t=this.exit.bind(this);window.clearTimeout(this.timeoutID),this.timeoutID=window.setTimeout(t,this.idleTimeout)}};var qm=(e,t)=>t.some(r=>e instanceof r),fd,hd;function Mm(){return fd||(fd=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function jm(){return hd||(hd=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var md=new WeakMap,cc=new WeakMap,_d=new WeakMap,ac=new WeakMap,uc=new WeakMap;function Km(e){let t=new Promise((r,n)=>{let o=()=>{e.removeEventListener("success",i),e.removeEventListener("error",s)},i=()=>{r(Pt(e.result)),o()},s=()=>{n(e.error),o()};e.addEventListener("success",i),e.addEventListener("error",s)});return t.then(r=>{r instanceof IDBCursor&&md.set(r,e)}).catch(()=>{}),uc.set(t,e),t}function Hm(e){if(cc.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)});cc.set(e,t)}var lc={get(e,t,r){if(e instanceof IDBTransaction){if(t==="done")return cc.get(e);if(t==="objectStoreNames")return e.objectStoreNames||_d.get(e);if(t==="store")return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return Pt(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&(t==="done"||t==="store")?!0:t in e}};function yd(e){lc=e(lc)}function $m(e){return e===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(t,...r){let n=e.call(hs(this),t,...r);return _d.set(n,t.sort?t.sort():[t]),Pt(n)}:jm().includes(e)?function(...t){return e.apply(hs(this),t),Pt(md.get(this))}:function(...t){return Pt(e.apply(hs(this),t))}}function Gm(e){return typeof e=="function"?$m(e):(e instanceof IDBTransaction&&Hm(e),qm(e,Mm())?new Proxy(e,lc):e)}function Pt(e){if(e instanceof IDBRequest)return Km(e);if(ac.has(e))return ac.get(e);let t=Gm(e);return t!==e&&(ac.set(e,t),uc.set(t,e)),t}var hs=e=>uc.get(e);function xd(e,t,{blocked:r,upgrade:n,blocking:o,terminated:i}={}){let s=indexedDB.open(e,t),a=Pt(s);return n&&s.addEventListener("upgradeneeded",c=>{n(Pt(s.result),c.oldVersion,c.newVersion,Pt(s.transaction),c)}),r&&s.addEventListener("blocked",c=>r(c.oldVersion,c.newVersion,c)),a.then(c=>{i&&c.addEventListener("close",()=>i()),o&&c.addEventListener("versionchange",u=>o(u.oldVersion,u.newVersion,u))}).catch(()=>{}),a}var Jm=["get","getKey","getAll","getAllKeys","count"],Wm=["put","add","delete","clear"],dc=new Map;function gd(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(dc.get(t))return dc.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,o=Wm.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||Jm.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 dc.set(t,i),i}yd(e=>({...e,get:(t,r,n)=>gd(t,r)||e.get(t,r,n),has:(t,r)=>!!gd(t,r)||e.has(t,r)}));var bd="auth-client-db",wd="ic-keyval",zm=async(e=bd,t=wd,r)=>(globalThis.localStorage?.getItem(Ke)&&(globalThis.localStorage.removeItem(Ke),globalThis.localStorage.removeItem(He)),await xd(e,r,{upgrade:n=>{n.objectStoreNames.contains(t)&&n.clear(t),n.createObjectStore(t)}}));async function Ym(e,t,r){return await e.get(t,r)}async function Zm(e,t,r,n){return await e.put(t,n,r)}async function Xm(e,t,r){return await e.delete(t,r)}var ms=class e{constructor(t,r){this._db=t,this._storeName=r}static async create(t){let{dbName:r=bd,storeName:n=wd,version:o=Td}=t??{},i=await zm(r,n,o);return new e(i,n)}async set(t,r){return await Zm(this._db,this._storeName,t,r)}async get(t){return await Ym(this._db,this._storeName,t)??null}async remove(t){return await Xm(this._db,this._storeName,t)}};var He="identity",Ke="delegation",Nd="iv",Td=1,ii=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}ms.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 Qm=BigInt(1e9),e_=BigInt(3600),t_=Qm*e_,r_="https://identity.internetcomputer.org",n_="#authorize",o_=BigInt(8)*t_,pc="ECDSA",fc="Ed25519",i_=500,_s="UserInterrupt",si=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??pc,o=null;if(t.identity)o=t.identity;else{let c=await r.get(He);if(!c)try{let u=new ii,p=await u.get(Ke),d=await u.get(He);p&&d&&n===pc&&(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===fc&&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=dr.fromJSON(c),sc(s)?"toDer"in o?i=ni.fromDelegation(o,s):i=pr.fromDelegation(o,s):(await hc(r),o=null))}catch(c){console.error(c),await hc(r),o=null}let a;return t.idleOptions?.disableIdle?a=void 0:(s||t.identity)&&(a=oi.create(t.idleOptions)),o||(n===fc?o=Nt.generate():(t.storage&&n===pc&&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 '${fc}' as the key type, as it can serialize to a string`),o=await Ct.generate()),await Od(r,o)),new e(i,o,s,r,a,t)}_registerDefaultIdleCallback(){let t=this._createOptions?.idleOptions;!t?.onIdle&&!t?.disableDefaultIdleCallback&&this.idleManager?.registerCallback(()=>{this.logout(),location.reload()})}async _handleSuccess(t,r){let n=t.delegations.map(a=>({delegation:new Br(a.delegation.pubkey,a.delegation.expiration,a.delegation.targets),signature:a.signature})),o=dr.fromDelegations(n,t.userPublicKey),i=this._key;if(!i)return;this._chain=o,"toDer"in i?this._identity=ni.fromDelegation(i,this._chain):this._identity=pr.fromDelegation(i,this._chain),this._idpWindow?.close();let s=this._createOptions?.idleOptions;!this.idleManager&&!s?.disableIdle&&(this.idleManager=oi.create(s),this._registerDefaultIdleCallback()),this._removeEventListener(),delete this._idpWindow,this._chain&&await this._storage.set(Ke,JSON.stringify(this._chain.toJSON())),await Od(this._storage,this._key),r?.(t)}getIdentity(){return this._identity}async isAuthenticated(){return!this.getIdentity().getPrincipal().isAnonymous()&&this._chain!==null&&sc(this._chain)}async login(t){let r=s_(this._createOptions?.loginOptions,t),n=r?.maxTimeToLive??o_,o=new URL(r?.identityProvider?.toString()||r_);o.hash=n_,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(_s,r?.onError):setTimeout(i,i_))};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 hc(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 hc(e){await e.remove(He),await e.remove(Ke),await e.remove(Nd)}function s_(e,t){if(!e&&!t)return;let r=e?.customValues||t?.customValues?{...e?.customValues,...t?.customValues}:void 0;return{...e,...t,customValues:r}}function a_(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 Od(e,t){let r=a_(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 si.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 mc=async e=>{await c_(),await $e.getInstance().createAuthClient(),e?.windowReload!==!1&&window.location.reload()},c_=async()=>{await $e.getInstance().logout(),je.getInstance().reset(),uo.getInstance().reset(),lo.getInstance().reset()};var Ed=e=>{let t=e===!0?"./workers/auth.worker.js":e,r=new Worker(t),n=async()=>{nc({message:"junoSignOutAuthTimer"}),await mc()};return r.onmessage=async({data:o})=>{let{msg:i,data:s}=o;switch(i){case"junoSignOutAuthTimer":await n();return;case"junoDelegationRemainingTime":nc({message:"junoDelegationRemainingTime",detail:s?.authRemainingTime});return}},je.getInstance().subscribe(o=>{if(q(o)){r.postMessage({msg:"junoStopAuthTimer"});return}r.postMessage({msg:"junoStartAuthTimer"})})};var ai=async({fn:e})=>{let{createAuthClient:t,safeCreateAuthClient:r}=$e.getInstance();if(!await(await t()).isAuthenticated()){await r();return}await e()};var _c=({error:e,type:t})=>typeof e=="string"?e.includes(t):e instanceof Error?e.message.includes(t):!1;var Rd="juno.datastore.error.user.cannot_update";var Dt={certified:!1};var ys=()=>$e.getInstance().getAuthClient()?.getIdentity(),l_=async()=>{let{getAuthClient:e,createAuthClient:t}=$e.getInstance();return(e()??await t()).getIdentity()},u_=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:ys()??new rt;var 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)))}),Ur=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}),kr=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),Lr=e.Record({signature:e.Vec(e.Nat8),delegation:kr}),at=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),qr=e.Variant({Ok:Lr,Err:at}),Mr=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),jr=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:jr,SegmentsDeployment:Lt}),Ze=e.Record({status:Mr,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)}),Kr=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}),Hr=e.Variant({Callback:e.Record({token:dt,callback:e.Func([],[],["query"])})}),$r=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(Hr),status_code:e.Nat16}),Gr=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}),Jr=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}),Wr=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),zr=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}),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,Ze)),items_length:e.Nat64}),tn=e.Record({include_system:e.Bool}),rn=e.Record({matcher:e.Opt(tn)}),nn=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,ut)),items_length:e.Nat64}),on=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)}),sn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:I,expires_at:e.Opt(e.Nat64)}),an=e.Record({controller:sn,controllers:e.Vec(e.Principal)}),cn=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)}),Bs=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)}),Ds=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)))}),fo=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),ho=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([i],[h],[]),commit_asset_upload:e.Func([m],[],[]),commit_proposal:e.Func([g],[e.Null],[]),commit_proposal_asset_upload:e.Func([m],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(m)],[],[]),count_assets:e.Func([e.Text,O],[e.Nat64],["query"]),count_collection_assets:e.Func([e.Text],[e.Nat64],["query"]),count_collection_docs:e.Func([e.Text],[e.Nat64],["query"]),count_docs:e.Func([e.Text,O],[e.Nat64],["query"]),count_proposals:e.Func([],[e.Nat64],["query"]),del_asset:e.Func([e.Text,e.Text],[],[]),del_assets:e.Func([e.Text],[],[]),del_controllers:e.Func([R],[e.Vec(e.Tuple(e.Principal,w))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,v],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,O],[],[]),del_filtered_docs:e.Func([e.Text,O],[],[]),del_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[],[]),del_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,v))],[],[]),del_rule:e.Func([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([],[Ur],[]),get_db_config:e.Func([],[e.Opt(ie)],["query"]),get_delegation:e.Func([Ye],[qr],["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([Kr],[$r],["query"]),http_request_streaming_callback:e.Func([dt],[Gr],["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],[Jr],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,w))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Wr))],["query"]),list_docs:e.Func([e.Text,O],[zr],["query"]),list_proposals:e.Func([Xr],[en],["query"]),list_rules:e.Func([V,rn],[nn],["query"]),memory_size:e.Func([],[on],["query"]),reject_proposal:e.Func([g],[e.Null],[]),set_auth_config:e.Func([qt],[Q],[]),set_controllers:e.Func([an],[e.Vec(e.Tuple(e.Principal,w))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([cn],[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,Bs],[ut],[]),set_storage_config:e.Func([Ds],[ce],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ze],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([fo],[ho],[]),upload_proposal_asset_chunk:e.Func([fo],[ho],[])})},gc=({IDL:e})=>{let t=e.Variant({Heap:e.Null,Stable:e.Null}),r=e.Record({system_memory:e.Opt(t)}),n=e.Record({controllers:e.Vec(e.Principal),storage:e.Opt(r)}),o=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),i=e.Variant({OpenId:o}),s=e.Record({updated_at:e.Nat64,owner:e.Principal,data:e.Vec(e.Nat8),description:e.Opt(e.Text),created_at:e.Nat64,version:e.Opt(e.Nat64)}),a=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),c=e.Record({doc:s,delegation:a}),u=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),p=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),d=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),l=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),f=e.Variant({PrepareDelegation:l,RegisterUser:e.Text}),h=e.Variant({Ok:c,Err:f}),m=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),g=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),_=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),x=e.Record({field:_,desc:e.Bool}),y=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),T=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(y),description:e.Opt(e.Text),created_at:e.Opt(y)}),E=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),O=e.Record({order:e.Opt(x),owner:e.Opt(e.Principal),matcher:e.Opt(T),paginate:e.Opt(E)}),R=e.Record({controllers:e.Vec(e.Principal)}),I=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),w=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,scope:I,expires_at:e.Opt(e.Nat64)}),v=e.Record({version:e.Opt(e.Nat64)}),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)))}),Ur=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}),kr=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),Lr=e.Record({signature:e.Vec(e.Nat8),delegation:kr}),at=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),qr=e.Variant({Ok:Lr,Err:at}),Mr=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),jr=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:jr,SegmentsDeployment:Lt}),Ze=e.Record({status:Mr,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)}),Kr=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}),Hr=e.Variant({Callback:e.Record({token:dt,callback:e.Func([],[],[])})}),$r=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(Hr),status_code:e.Nat16}),Gr=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}),Jr=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}),Wr=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),zr=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}),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,Ze)),items_length:e.Nat64}),tn=e.Record({include_system:e.Bool}),rn=e.Record({matcher:e.Opt(tn)}),nn=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,ut)),items_length:e.Nat64}),on=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)}),sn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:I,expires_at:e.Opt(e.Nat64)}),an=e.Record({controller:sn,controllers:e.Vec(e.Principal)}),cn=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)}),Bs=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)}),Ds=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)))}),fo=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),ho=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([i],[h],[]),commit_asset_upload:e.Func([m],[],[]),commit_proposal:e.Func([g],[e.Null],[]),commit_proposal_asset_upload:e.Func([m],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(m)],[],[]),count_assets:e.Func([e.Text,O],[e.Nat64],[]),count_collection_assets:e.Func([e.Text],[e.Nat64],[]),count_collection_docs:e.Func([e.Text],[e.Nat64],[]),count_docs:e.Func([e.Text,O],[e.Nat64],[]),count_proposals:e.Func([],[e.Nat64],[]),del_asset:e.Func([e.Text,e.Text],[],[]),del_assets:e.Func([e.Text],[],[]),del_controllers:e.Func([R],[e.Vec(e.Tuple(e.Principal,w))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,v],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,O],[],[]),del_filtered_docs:e.Func([e.Text,O],[],[]),del_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[],[]),del_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,v))],[],[]),del_rule:e.Func([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([],[Ur],[]),get_db_config:e.Func([],[e.Opt(ie)],[]),get_delegation:e.Func([Ye],[qr],[]),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([Kr],[$r],[]),http_request_streaming_callback:e.Func([dt],[Gr],[]),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],[Jr],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,w))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Wr))],[]),list_docs:e.Func([e.Text,O],[zr],[]),list_proposals:e.Func([Xr],[en],[]),list_rules:e.Func([V,rn],[nn],[]),memory_size:e.Func([],[on],[]),reject_proposal:e.Func([g],[e.Null],[]),set_auth_config:e.Func([qt],[Q],[]),set_controllers:e.Func([an],[e.Vec(e.Tuple(e.Principal,w))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([cn],[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,Bs],[ut],[]),set_storage_config:e.Func([Ds],[ce],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ze],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([fo],[ho],[]),upload_proposal_asset_chunk:e.Func([fo],[ho],[])})},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)}),Ur=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:Ur}),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}),kr=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)}),Lr=e.Variant({Heap:e.Null,Stable:e.Null}),at=e.Record({memory:Lr,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}),qr=e.Variant({Callback:e.Record({token:at,callback:e.Func([],[],["query"])})}),Mr=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(qr),status_code:e.Nat16}),jr=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)}),Kr=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(Kr)}),Hr=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}),$r=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),Gr=e.Record({key:Hr,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,$r)),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,Gr)),items_length:e.Nat64}),Qe=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),Jr=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)}),Wr=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),zr=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),Yr=e.Record({status:zr,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)}),Zr=e.Record({desc:e.Bool}),Xr=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Qr=e.Record({order:e.Opt(Zr),paginate:e.Opt(Xr)}),en=e.Record({proposal_id:e.Nat}),tn=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(en,Ye)),items_length:e.Nat64}),rn=e.Record({openid:e.Opt(S),version:e.Opt(e.Nat64),internet_identity:e.Opt(b),rules:e.Opt(N)}),nn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:Qe,expires_at:e.Opt(e.Nat64)}),on=e.Record({controller:nn,controllers:e.Vec(e.Principal)}),qt=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),sn=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)))}),an=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),cn=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([kr],[Mr],["query"]),http_request_streaming_callback:e.Func([at],[jr],["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,Jr))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Wr))],["query"]),list_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,Yr))],["query"]),list_proposals:e.Func([Qr],[tn],["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([rn],[F],[]),set_controllers:e.Func([on],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([qt,t],[],[]),set_storage_config:e.Func([sn],[P],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ye],[]),update_rate_config:e.Func([qt,an],[],[]),upload_proposal_asset_chunk:e.Func([cn],[Mt],[])})},p_=({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)}),Ur=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:Ur}),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}),kr=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)}),Lr=e.Variant({Heap:e.Null,Stable:e.Null}),at=e.Record({memory:Lr,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}),qr=e.Variant({Callback:e.Record({token:at,callback:e.Func([],[],[])})}),Mr=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(qr),status_code:e.Nat16}),jr=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)}),Kr=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(Kr)}),Hr=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}),$r=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),Gr=e.Record({key:Hr,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,$r)),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,Gr)),items_length:e.Nat64}),Qe=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),Jr=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)}),Wr=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),zr=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),Yr=e.Record({status:zr,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)}),Zr=e.Record({desc:e.Bool}),Xr=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Qr=e.Record({order:e.Opt(Zr),paginate:e.Opt(Xr)}),en=e.Record({proposal_id:e.Nat}),tn=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(en,Ye)),items_length:e.Nat64}),rn=e.Record({openid:e.Opt(S),version:e.Opt(e.Nat64),internet_identity:e.Opt(b),rules:e.Opt(N)}),nn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:Qe,expires_at:e.Opt(e.Nat64)}),on=e.Record({controller:nn,controllers:e.Vec(e.Principal)}),qt=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),sn=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)))}),an=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),cn=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([kr],[Mr],[]),http_request_streaming_callback:e.Func([at],[jr],[]),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,Jr))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Wr))],[]),list_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,Yr))],[]),list_proposals:e.Func([Qr],[tn],[]),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([rn],[F],[]),set_controllers:e.Func([on],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([qt,t],[],[]),set_storage_config:e.Func([sn],[P],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ye],[]),update_rate_config:e.Func([qt,an],[],[]),upload_proposal_asset_chunk:e.Func([cn],[Mt],[])})};var f_=async({identity:e,host:t,localActor:r})=>await lr.create({identity:e,host:t,retryTimes:10,shouldFetchRootKey:r}),h_=async({agent:e,...t})=>e??await m_(t),m_=async({identity:e,container:t})=>{let r=X(t)&&t!==!1;return await f_({identity:e,host:r?t===!0?"http://127.0.0.1:5987":t:"https://icp-api.io",localActor:r})};var vd=({satelliteId:e,certified:t=!1,...r})=>Ad({canisterId:e,...r,idlFactory:t?gc:yc});var Id=({consoleId:e,certified:t=!1,...r})=>Ad({canisterId:e,...r,idlFactory:t?p_:d_}),Ad=({canisterId:e,idlFactory:t,...r})=>{if(q(e))throw new Error("No canister ID provided.");return __({canisterId:e,idlFactory:t,...r})},__=async({canisterId:e,idlFactory:t,config:r,...n})=>{let o=await h_(n);return io.createActor(t,{agent:o,canisterId:e,...r??{}})};var Ce=class e extends ao{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 Sd=({satelliteId:e,container:t})=>{let{satelliteId:r}=xc({satelliteId:e}),{container:n}=bc({container:t});if(X(n)&&n!==!1){let{host:o,protocol:i}=new URL(n===!0?co:n);return`${i}//${r??"unknown"}.${o.replace("127.0.0.1","localhost")}`}return`https://${r??"unknown"}.icp0.io`},xc=({satelliteId:e})=>X(e)?{satelliteId:e}:Ce.getInstance().get()??{satelliteId:void 0},bc=({container:e})=>X(e)?{container:e}:Ce.getInstance().get()??{container:void 0};var Te=({satellite:e,options:{certified:t}})=>Vd({idlFactory:t?gc:yc,actorKey:`stock#${t?"update":"query"}`,...e}),Fd=({idlFactory:e,...t})=>Vd({idlFactory:e,actorKey:"extended#query",...t}),Vd=async({satelliteId:e,container:t,...r})=>{let{satelliteId:n}=xc({satelliteId:e});ei(n,"No satellite ID defined. Did you initialize Juno?");let{container:o}=bc({container:t});return await uo.getInstance().getActor({satelliteId:n,container:o,...r})};var gs=class extends Error{},fr=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{},Es=class extends Error{};var Cd=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 Es("Invalid list matcher for timestamp",e)}},Dr=({matcher:e,paginate:t,order:r,owner:n})=>({matcher:q(e)?[]:[{key:ue(e.key),description:ue(e.description),created_at:Cd(e.createdAt),updated_at:Cd(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 Pd=async e=>{let t=new Blob([JSON.stringify(e,Xu)],{type:"application/json; charset=utf-8"});return new Uint8Array(await t.arrayBuffer())},Rs=async e=>{let t=new Blob([e instanceof Uint8Array?e:new Uint8Array(e)],{type:"application/json; charset=utf-8"});return JSON.parse(await t.text(),Qu)},vs=()=>typeof window<"u";var Bd=async({data:e})=>{try{return await Rs(e)}catch(t){console.error("The data parsing has failed, mapping to undefined as a fallback.",t);return}};var wc=async e=>{let{data:t,version:r,description:n}=e;return{description:ue(n),data:await Pd(t),version:ue(r)}},Tc=e=>{let{version:t}=e;return{version:ue(t)}},Cn=async({doc:e,key:t})=>{let{owner:r,version:n,description:o,data:i,...s}=e;return{key:t,description:ye(o),owner:r.toText(),data:await Rs(i),version:ye(n),...s}};var Dd=async({collection:e,key:t,...r})=>{let{get_doc:n}=await Te(r),o=ye(await n(e,t));if(!q(o))return Cn({doc:o,key:t})},Ud=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 Cn({key:s,doc:c}):void 0)}return i},kd=async({collection:e,doc:t,...r})=>{let{set_doc:n}=await Te(r),{key:o}=t,i=await wc(t),s=await n(e,o,i);return await Cn({key:o,doc:s})},Ld=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 wc(a)])}let o=await r(n),i=[];for(let[s,a]of o)i.push(await Cn({key:s,doc:a}));return i},qd=async({collection:e,doc:t,...r})=>{let{del_doc:n}=await Te(r),{key:o}=t;return n(e,o,Tc(t))},Md=async({docs:e,...t})=>{let{del_many_docs:r}=await Te(t),n=e.map(({collection:o,doc:i})=>[o,i.key,Tc(i)]);await r(n)},jd=async({collection:e,filter:t,...r})=>{let{del_filtered_docs:n}=await Te(r);return n(e,Dr(t))},Kd=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,Dr(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 Bd({data:l}),version:ye(m),...g})}return{items:u,items_length:s,items_page:ye(i),matches_length:a,matches_pages:ye(c)}},Hd=async({collection:e,filter:t,...r})=>{let{count_docs:n}=await Te(r);return n(e,Dr(t))};var Is=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await Dd({...r,satellite:{...e,identity:n},options:t??Dt})},oT=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await Ud({...r,satellite:{...e,identity:n},options:t??Dt})},$d=async({satellite:e,...t})=>{let r=de(e?.identity);return await kd({...t,satellite:{...e,identity:r},options:{certified:!0}})},Gd=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,...t})=>{let r=de(e?.identity);return await Md({...t,satellite:{...e,identity:r},options:{certified:!0}})},aT=async({satellite:e,filter:t,...r})=>{let n=de(e?.identity);return await jd({...r,filter:t??{},satellite:{...e,identity:n},options:{certified:!0}})},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})},lT=async({satellite:e,options:t,filter:r,...n})=>{let o=de(e?.identity);return await Hd({...n,filter:r??{},satellite:{...e,identity:o},options:t??Dt})};var Jd=async({provider:e})=>{let{user:t,userId:r}=await Nc();if(X(t))return t;try{return await y_({userId:r,provider:e})}catch(n){if(_c({error:n,type:Rd})){let o=await Wd({userId:r});if(X(o))return o}throw n}},Nc=async()=>{let e=ys();if(q(e))throw new Os("No identity to initialize the user. Have you initialized Juno?");let t=e.getPrincipal().toText(),r=await Wd({userId:t});return{userId:t,user:r}},Wd=({userId:e})=>Is({collection:"#user",key:e}),y_=({userId:e,...t})=>$d({collection:"#user",doc:{key:e,data:t}});var As=async()=>{await ai({fn:async()=>{let{user:t}=await Nc();je.getInstance().set(t??null)}})},Ss=async({user:e})=>{await ai({fn:async()=>{je.getInstance().set(e)}})};var zd=()=>{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()},Yd=()=>{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()},Zd=()=>{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 Xd=BigInt(144e11),Qd=!1,ep={width:576,height:576},tp={width:424,height:576};var ci="internetcomputer.org",rp="ic0.app",np="id.ai";var op=({width:e,height:t})=>{if(!vs()||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 ip=(r=>(r[r.AuthorizingWithProvider=0]="AuthorizingWithProvider",r[r.CreatingOrRetrievingUser=1]="CreatingOrRetrievingUser",r))(ip||{});var Fs=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 fr("No client is ready to perform a sign-in. Have you initialized the Satellite?"));return}await r.login({onSuccess:n,onError:i=>{if(i===_s){o(new xs(i));return}o(new gs(i))},maxTimeToLive:t?.maxTimeToLiveInNanoseconds??Xd,allowPinAuthentication:t?.allowPin??Qd,...t?.derivationOrigin!==void 0&&{derivationOrigin:t.derivationOrigin},...this.signInOptions({windowed:t?.windowed})})})}};var Vs=class extends Fs{#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=[ci,rp].includes(this.#e??ci);return so(this.#e)?`https://identity.${ci}`:p?`https://identity.${this.#e??ci}`:`https://${this.#e}`}let s=Ce.getInstance().get(),a=X(s)&&X(s?.internetIdentityId)?s.internetIdentityId:cd,{host:c,protocol:u}=new URL(i===!0?co:i);return/apple/i.test(navigator?.vendor)?`${u}//${c}?canisterId=${a}`:`${u}//${a}.${c.replace("127.0.0.1","localhost")}`})();return{...t!==!1&&{windowOpenerFeatures:op((()=>{try{let{hostname:i}=new URL(n);return i.includes(np)}catch{return!1}})()?tp:ep)},identityProvider:n}}};var Oc=class extends Error{},Ec=class extends Error{},Rc=class extends Error{},vc=class extends Error{},Ic=class extends Error{},Ac=class extends Error{},Sc=class extends Error{},Fc=class extends Error{},Vc=class extends Error{},Cc=class extends Error{};var sp=({auth:e,identity:t})=>"satellite"in e?vd({...e.satellite,identity:t}):Id({...e.console,identity:t}),g_=async({actorParams:e,args:t})=>{let{authenticate:r}=await sp(e);return await r(t)},x_=async({actorParams:e,args:t})=>{let{get_delegation:r}=await sp(e);return await r(t)},b_=({delegations:e,sessionKey:t})=>{let[r,n]=e,o=dr.fromDelegations(n,Uint8Array.from(r));return{identity:pr.fromDelegation(t,o),delegationChain:o,sessionKey:t}},Pc=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 w_({jwt:e,publicKey:o,context:t,auth:r});return{identity:b_({sessionKey:n,delegations:i}),data:s}},w_=async({jwt:e,publicKey:t,context:{caller:r,salt:n},auth:o})=>{let i=await g_({args:{OpenId:{jwt:e,session_key:t,salt:n}},actorParams:{auth:o,identity:r}});if("Err"in i)throw new Ic("Authentication failed",{cause:i});let{delegation:{user_key:s,expiration:a},...c}=i.Ok,u=await T_({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 Br(Uint8Array.from(l),f,ye(h)),signature:Uint8Array.from(d)}]],data:c}},T_=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 x_({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 Vc("Getting delegation failed",{cause:c})}return c.Ok}throw new Cc};var Bc="juno:auth:openid",Dc={authUrl:"https://accounts.google.com/o/oauth2/v2/auth",authScopes:["openid","profile","email"],configUrl:"https://accounts.google.com/gsi/fedcm.json"};var ap=e=>Cr(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),N_=()=>window.crypto.getRandomValues(new Uint8Array(32)),O_=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 ap(ur(o))},E_=async({caller:e})=>{let t=N_();return{nonce:await O_({salt:t,caller:e}),salt:t}},cp="__caller__",lp="__salt__",up="__state__",R_=({caller:e,state:t,salt:r})=>{let n={[cp]:e.toJSON(),[lp]:Cr(r),[up]:t};return JSON.stringify(n)},v_=e=>{let{[cp]:t,[lp]:r,[up]:n}=JSON.parse(e);return{caller:Nt.fromParsedJson(t),salt:Zu(r),state:n}},I_=()=>ap(window.crypto.getRandomValues(new Uint8Array(12))),dp=async()=>{let e=Nt.generate(),{nonce:t,salt:r}=await E_({caller:e}),n=I_(),o=R_({caller:e,salt:r,state:n});return sessionStorage.setItem(Bc,o),{nonce:t,state:n}},pp=()=>{let e=sessionStorage.getItem(Bc);if(q(e))throw new Ec;return v_(e)};var Uc=async e=>{let t=pp();if("credentials"in e){let{credentials:{jwt:r},auth:n}=e;return await Pc({jwt:r,context:t,auth:n})}return await A_({...e,context:t})},A_=async({auth:e,context:t})=>{let{location:{hash:r}}=window;if(so(r)||!r.startsWith("#"))throw new Ac("No hash found in the current location URL");let n=new URLSearchParams(r.slice(1)),o=n.get("state"),i=n.get("id_token"),{state:s}=t;if(so(s)||o!==s)throw new Sc("The provided state is invalid",{cause:o});if(so(i))throw new Fc;return await Pc({jwt:i,auth:e,context:t})};var fp=({authUrl:e,clientId:t,nonce:r,loginHint:n,authScopes:o,state:i,redirectUrl:s})=>{let a=(()=>{try{return new URL(e)}catch{throw new Oc("Cannot parse authURL",{cause:e})}})();a.searchParams.set("client_id",t);let{location:{origin:c}}=window;a.searchParams.set("redirect_uri",s??c),a.searchParams.set("response_type","code id_token"),a.searchParams.set("scope",o.join(" ")),a.searchParams.set("state",i),a.searchParams.set("nonce",r),ec(n)?a.searchParams.set("login_hint",n):a.searchParams.set("prompt","select_account"),window.location.href=a.toString()},hp=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 Rc;let{type:s}=i;if(s!=="identity"||!("token"in i)||typeof i.token!="string")throw new vc("Invalid credential received from FedCM API",{cause:i});let{token:a}=i;return{jwt:a}};async function kc({google:e}){let t=await dp();if("credentials"in e){let{credentials:i}=e,{configUrl:s}=Dc;return await hp({...i,...t,configUrl:s})}let{redirect:r}=e,{authUrl:n,authScopes:o}=Dc;fp({...r,...t,authUrl:n,authScopes:o})}var S_=async()=>{let{satelliteId:e}=Ce.getInstance().get()??{satelliteId:void 0};if(q(e))throw new fr("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 Uc({redirect:null,auth:{satellite:{satelliteId:e,container:t}}});await $e.getInstance().setAuthClientStorage({delegationChain:r,sessionKey:n});let s=await Cn({doc:i,key:o.getPrincipal().toText()});await Ss({user:s})};var mp=e=>(e.preventDefault(),e.returnValue="Are you sure you want to exit?"),F_=()=>{window.addEventListener("beforeunload",mp,{capture:!0})},V_=()=>{window.removeEventListener("beforeunload",mp,{capture:!0})},Cs=async({fn:e})=>{try{return F_(),await e()}finally{V_()}};var Ps=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??Zd();if(q(r))throw new ws;let{redirect:n}=t;await kc({google:{redirect:{...n??{},clientId:r}}})}};var _p=async({delegationIdentity:e,passkeyIdentity:t,satelliteId:r})=>{let n=t.getCredential().getAAGUID(),[o,i]=await Gd({docs:[{collection:"#user",doc:{key:e.getPrincipal().toText(),data:{provider:"webauthn",providerData:{webauthn:{...X(n)&&{aaguid:ds(n)}}}}}},{collection:"#user-webauthn",doc:{key:t.getCredential().getCredentialIdText(),data:{publicKey:t.getPublicKey().toRaw()}}}],satellite:{identity:e,satelliteId:r}});return o};var yp=(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))(yp||{}),gp=(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))(gp||{});var po=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 fr("Satellite ID not set. Have you initialized the Satellite?");let s=({step:m,state:g})=>{switch(m){case Pr.RequestingUserCredential:t?.({step:1,state:g});break;case Pr.FinalizingCredential:t?.({step:2,state:g});break;case Pr.Signing:t?.({step:3,state:g});break}},c=await Ut({fn:async()=>await rc.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 _p({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 fr("Satellite ID not set. Have you initialized the Satellite?");let i=async({credentialId:d})=>{let l=await Is({collection:"#user-webauthn",key:Cr(d),options:{certified:!0},satellite:{identity:new rt,satelliteId:o}});if(q(l))throw new Ts("No public key found for the selected passkey.");let{data:f}=l,{publicKey:h}=f;return Vn(h,Xo)},s=({step:d,state:l})=>{switch(d){case Pr.RequestingUserCredential:t?.({step:0,state:l});break;case Pr.FinalizingCredential:t?.({step:1,state:l});break;case Pr.Signing:t?.({step:2,state:l});break}},a=await rc.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 dr.create(t,n.getPublicKey(),new Date(Date.now()+o));return{delegationIdentity:pr.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 P_=async({provider:e})=>{await ai({fn:async()=>{let r=await Jd({provider:e});je.getInstance().set(r)}})},B_=async e=>{if("google"in e){let{google:{options:t}}=e;await Lc({fn:()=>new Ps().signIn({options:t}),context:{windowGuard:!1}});return}if("webauthn"in e){let{webauthn:{options:t,context:r}}=e;await Lc({fn:()=>new po().signIn({options:t,loadAuth:As}),context:r});return}if("internet_identity"in e){let{internet_identity:{options:t,context:r}}=e,{domain:n,...o}=t??{};await Lc({fn:()=>new Vs({domain:n}).signIn({options:o,authClient:$e.getInstance().getAuthClient(),initAuth:P_}),context:r});return}throw new bs("An unknown or unsupported provider was provided for sign-in.")},Lc=async({fn:e,context:t})=>{if(t?.windowGuard===!1){await e();return}await Cs({fn:e})};var D_=async e=>{let t=async()=>await U_(e);if(Object.values(e)?.[0].context?.windowGuard===!1){await t();return}await Cs({fn:t})},U_=async e=>{if("webauthn"in e){let{webauthn:{options:t}}=e;await new po().signUp({options:t,loadAuthWithUser:Ss});return}throw new Ns("An unknown or unsupported provider was provided for sign-up.")};var SO=async({idlFactory:e,satellite:t})=>{let r=de(t?.identity);return await Fd({idlFactory:e,...t,identity:r})};var xp=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(k_(r));o?.onInitiatedBatch();let{chunkIds:u}=await M_({data:e,uploadFn:s,batchId:c});o?.onUploadedFileChunks(r.fullPath),await q_({commitFn:a,batchId:c,data:e,headers:t,chunkIds:u}),o?.onCommittedBatch()};var k_=({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)}),L_=({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??[]]}},q_=async({commitFn:e,...t})=>{let r=L_(t);await e(r)},M_=async({data:e,uploadFn:t,batchId:r})=>{let n=[],o=vs()?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 j_({uploadChunks:n}))s=[...s,...a];return{chunkIds:s}};async function*j_({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=>K_(o)))}}var K_=async({batchId:e,chunk:t,uploadFn:r,orderId:n})=>r({batch_id:e,content:new Uint8Array(await t.arrayBuffer()),order_id:ue(n)});var bp=async({asset:e,...t})=>{let r=await Te(t);await xp({actor:r,asset:e})},wp=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,Dr(t));return{items:o.map(([u,p])=>p),items_length:i,items_page:ye(s),matches_length:a,matches_pages:ye(c)}},Tp=async({collection:e,filter:t,...r})=>{let{count_assets:n}=await Te(r);return n(e,Dr(t))},Np=async({collection:e,fullPath:t,...r})=>(await Te(r)).del_asset(e,t),Op=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)},Ep=async({collection:e,filter:t,...r})=>{let{del_filtered_assets:n}=await Te(r);return n(e,Dr(t))},Rp=async({collection:e,fullPath:t,...r})=>{let{get_asset:n}=await Te(r);return ye(await n(e,t))},vp=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 Ip=e=>btoa([...e].map(t=>String.fromCharCode(t)).join(""));var JO=e=>Ap(e),WO=e=>Ap({filename:e.data.name,...e}),Ap=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 bp({asset:{data:t,filename:p,collection:r,token:i,headers:n,fullPath:d,encoding:a,description:c},satellite:l,options:{certified:!0}}),{downloadUrl:Sp({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 wp({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:Sp({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:Ip(E),total_length:O}}),{}),owner:d.toText(),created_at:m,updated_at:g}});return{items:a,assets:a,...s}},YO=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:de(r?.identity)};return await Tp({collection:e,satellite:o,filter:t??{},options:n??Dt})},ZO=({collection:e,fullPath:t,satellite:r})=>Np({collection:e,fullPath:t,satellite:{...r,identity:de(r?.identity)},options:{certified:!0}}),XO=({assets:e,satellite:t})=>Op({assets:e,satellite:{...t,identity:de(t?.identity)},options:{certified:!0}}),QO=async({collection:e,satellite:t,filter:r})=>{let n={...t,identity:de(t?.identity)};return await Ep({collection:e,satellite:n,filter:r??{},options:{certified:!0}})},e6=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await Rp({...r,satellite:{...e,identity:n},options:t??Dt})},t6=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await vp({...r,satellite:{...e,identity:n},options:t??Dt})},Sp=({assetKey:{fullPath:e,token:t},satellite:r})=>{let n={...r,identity:de(r?.identity)};return`${Sd(n)}${e}${X(t)?`?token=${t}`:""}`};var H_=e=>{let t=e?.satelliteId??zd();ei(t,"Satellite ID is not configured. Juno cannot be initialized.");let r=e?.container??Yd();return{satelliteId:t,internetIdentityId:e?.internetIdentityId,workers:e?.workers,container:r}},u6=e=>$_(e),$_=async e=>{let t=H_(e);Ce.getInstance().set(t),await As();let r=t.workers?.auth!==void 0?Ed(t.workers.auth):void 0;return[...r?[r]:[]]},G_=e=>je.getInstance().subscribe(e),d6=G_;export{ip as AuthClientSignInProgressStep,Os as InitError,Vs as InternetIdentityProvider,Es as ListError,gs as SignInError,fr as SignInInitError,ws as SignInMissingClientIdError,bs as SignInProviderNotSupportedError,xs as SignInUserInterruptError,Ns as SignUpProviderNotSupportedError,yp as WebAuthnSignInProgressStep,Ts as WebAuthnSignInRetrievePublicKeyError,gp as WebAuthnSignUpProgressStep,d6 as authSubscribe,YO as countAssets,lT as countDocs,ZO as deleteAsset,iT as deleteDoc,QO as deleteFilteredAssets,aT as deleteFilteredDocs,XO as deleteManyAssets,sT as deleteManyDocs,Sp as downloadUrl,e6 as getAsset,Is as getDoc,u_ as getIdentityOnce,t6 as getManyAssets,oT as getManyDocs,SO as getSatelliteExtendedActor,S_ as handleRedirectCallback,u6 as initJuno,$_ as initSatellite,km as isWebAuthnAvailable,zO as listAssets,cT as listDocs,G_ as onAuthStateChange,$d as setDoc,Gd as setManyDocs,B_ as signIn,mc as signOut,D_ as signUp,l_ as unsafeIdentity,JO as uploadBlob,WO as uploadFile};
|
|
56
|
+
Retrying request.`),await this.#y({requestFn:r,backoff:n,tries:o+1});throw go.fromCode(new To(p))}let c=Gi(s.headers);if(s.status===$a||s.status===Qh)return{ok:s.ok,status:s.status,statusText:s.statusText,responseBodyBytes:a,headers:c};let u=await s.text();if(s.status===em&&s.url.includes("api/v3"))throw ne.fromCode(new wo);if(u.startsWith("Invalid request expiry: "))throw W.fromCode(new mn(u,this.#l));if(o<this.#d)return await this.#y({requestFn:r,backoff:n,tries:o+1});throw ne.fromCode(new bo(s.status,s.statusText,c,u))}async query(t,r,n){let o=this.#p(),i=r.effectiveCanisterId?M.from(r.effectiveCanisterId):M.from(t);await this.#g(i),this.log.print(`ecid ${i.toString()}`),this.log.print(`canisterId ${t.toString()}`);let s,a=await(n??this.#n);if(!a)throw Oe.fromCode(new br);let c=M.from(t),u=a.getPrincipal(),p=Ga(this.#l,this.#r),d={request_type:Tn.Query,canister_id:c,method_name:r.methodName,arg:r.arg,sender:u,ingress_expiry:p},l=Xt(d);s=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#i?{Authorization:"Basic "+btoa(this.#i)}:{}}},endpoint:er.Query,body:d}),s=await a.transformRequest(s);let f=Uo(s.body),h={canister:c.toText(),ecid:i,transformedRequest:s,body:f,requestId:l,backoff:o,tries:0},m=async()=>{let _=await this.#b(h);return{requestDetails:d,..._}},g=async()=>{let _=this.#m.get(i.toString());if(_)return _;await this.fetchSubnetKeys(i.toString());let x=this.#m.get(i.toString());if(!x)throw Pe.fromCode(new Ai);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 br);let o=n.getPrincipal(),i=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#i?{Authorization:"Basic "+btoa(this.#i)}:{}}},endpoint:er.ReadState,body:{request_type:Tn.ReadState,paths:t.paths,sender:o,ingress_expiry:Ga(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(bn(l,h))return f}}let a,c;if(o)a=o,c=Xt(a);else{c=s(r);let p=await this.#n;if(!p)throw Oe.fromCode(new br);a=await this.createReadStateRequest(r,p)}this.log.print(`fetching "/api/v2/canister/${i}/read_state" with request:`,a);let u=this.#p();try{let{responseBodyBytes:p}=await this.#y({requestFn:()=>this.#o(""+new URL(`/api/v2/canister/${i.toString()}/read_state`,this.host),{...this.#a,...a.request,body:Uo(a.body)}),backoff:u,tries:0}),d=Je(p);return this.log.print("Read state response:",d),d}catch(p){let d;throw p instanceof ht?(p.code.requestContext={requestId:c,senderPubKey:a.body.sender_pubkey,senderSignature:a.body.sender_sig,ingressExpiry:a.body.content.ingress_expiry},d=p):d=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 wr("Could not decode time from response"));let o=An(["time"],r);if(o.status!==ze.Found)throw ne.fromCode(new Wt("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 Un("Time was not in its expected format."));let i=ro(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 Ua({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 Ua({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===er.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 Ga(e,t){let r=e*Ja;return zn.fromDeltaInMilliseconds(r,t)}var nm=300*1e3;function Ku(){return cm(im(om(),1e3),am(1e3,1.2),sm(nm))}function om(){let e=!0;return async()=>e?(e=!1,!0):!1}function im(e,t){return async(r,n,o)=>{if(await e(r,n,o))return new Promise(i=>setTimeout(i,t))}}function sm(e){let t=Date.now()+e;return async(r,n,o)=>{if(Date.now()>t)throw ne.fromCode(new hn(`Request timed out after ${e} msec`,n,o))}}function am(e,t){let r=e;return()=>new Promise(n=>setTimeout(()=>{r*=t,n()},r))}function cm(...e){return async(t,r,n)=>{for(let o of e)await o(t,r,n)}}var $u={preSignReadStateRequest:!1};function Gu(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Wa(e,t){return e!==null&&typeof e=="object"&&Gu(e,t)}function um(e,t){return Gu(e,t)&&typeof e[t]=="function"}function Hu(e){return Wa(e,"body")&&Wa(e.body,"content")&&e.body.content.request_type===Tn.ReadState&&Wa(e.body.content,"ingress_expiry")&&typeof e.body.content.ingress_expiry=="object"&&e.body.content.ingress_expiry!==null&&um(e.body.content.ingress_expiry,"toHash")}async function za(e,t,r,n={}){let o=[ee("request_status"),r],i,s;if(n.preSignReadStateRequest??!1?(s=await dm({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 Sr.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??Ku();return await d(t,r,p),za(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 gr.fromCode(new Ln(r,d,l,h))}case Vt.Done:throw ge.fromCode(new Ei(r))}throw Tr}async function dm(e){let{paths:t,agent:r,pollingOptions:n}=e;if(n.request&&Hu(n.request))return n.request;let o=await r.createReadStateRequest?.({paths:t},void 0);if(!Hu(o))throw W.fromCode(new Vi(o));return o}var st=Symbol.for("ic-agent-metadata"),io=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:xn});class o extends e{constructor(s){if(!s.canisterId)throw W.fromCode(new No(s.canisterId));let a=typeof s.canisterId=="string"?M.fromText(s.canisterId):s.canisterId;super({config:{...Ju,...s,canisterId:a},service:n});for(let[c,u]of n._fields)r?.httpDetails&&u.annotations.push(Ya),r?.certificate&&u.annotations.push(Wu),this[c]=fm(this,c,u,s.blsVerify)}}return o}static createActor(t,r){if(!r.canisterId)throw W.fromCode(new No(r.canisterId));return new(this.createActorClass(t))(r)}static createActorWithHttpDetails(t,r){return new(this.createActorClass(t,{httpDetails:!0}))(r)}static createActorWithExtendedDetails(t,r,n={httpDetails:!0,certificate:!0}){return new(this.createActorClass(t,n))(r)}constructor(t){this[st]=Object.freeze(t)}};function oo(e,t){let r=xn.decode(e,t);switch(r.length){case 0:return;case 1:return r[0];default:return r}}var Ju={pollingOptions:$u},Ya="http-details",Wu="certificate";function fm(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 lr,u=M.from(s.canisterId||e[st].config.canisterId),p=xn.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 hr.Rejected:{let f=new Ni(d.requestId,d.reject_code,d.reject_message,d.error_code,d.signatures);throw f.callContext={canisterId:u,methodName:t,httpDetails:l},gr.fromCode(f)}case hr.Replied:return r.annotations.includes(Ya)?{httpDetails:l,result:oo(r.retTypes,d.reply.arg)}:oo(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||lr.createSync(),{canisterId:u,effectiveCanisterId:p,pollingOptions:d}={...Ju,...e[st].config,...s},l=M.from(u),f=p!==void 0?M.from(p):l,h=xn.encode(r.argTypes,a),{requestId:m,response:g,requestDetails:_}=await c.call(l,{methodName:t,arg:h,effectiveCanisterId:f,nonce:s.nonce}),x,y;if(jc(g.body)){if(c.rootKey==null)throw Oe.fromCode(new Rt);let R=g.body.certificate;y=await Sr.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 Ln(m,v,V,b);throw N.callContext={canisterId:l,methodName:t,httpDetails:g},gr.fromCode(N)}}}else if(Mc(g.body)){let{reject_code:R,reject_message:I,error_code:w}=g.body,v=new Oi(m,R,I,w);throw v.callContext={canisterId:l,methodName:t,httpDetails:g},gr.fromCode(v)}if(g.status===202){let R={...d,blsVerify:n},I=await za(c,f,m,R);y=I.certificate,x=I.reply}let T=r.annotations.includes(Ya),E=r.annotations.includes(Wu),O={...g,requestDetails:_};if(x!==void 0)return T&&E?{httpDetails:O,certificate:y,result:oo(r.retTypes,x)}:E?{certificate:y,result:oo(r.retTypes,x)}:T?{httpDetails:O,result:oo(r.retTypes,x)}:oo(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 hm=(e=>(e[e.FractionalMoreThan8Decimals=0]="FractionalMoreThan8Decimals",e[e.InvalidFormat=1]="InvalidFormat",e[e.FractionalTooManyDecimals=2]="FractionalTooManyDecimals",e))(hm||{}),Nx=BigInt(1e8);var q=e=>e==null,X=e=>!q(e),ec=e=>X(e)&&e!=="",so=e=>!ec(e);var mm=class extends Error{},ei=(e,t)=>{if(e==null)throw new mm(t)};var ur=e=>new Uint8Array(e),ds=e=>Array.from(e);var Yu=({a:e,b:t})=>e.length===t.length&&e.every((r,n)=>r===t[n]);var zu="abcdefghijklmnopqrstuvwxyz234567",Qo=Object.create(null);for(let e=0;e<zu.length;e++)Qo[zu[e]]=e;Qo[0]=Qo.o;Qo[1]=Qo.i;var Cr=e=>btoa(String.fromCharCode(...new Uint8Array(e))),Zu=e=>Uint8Array.from(atob(e),t=>t.charCodeAt(0)),Ox=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 Za="__bigint__",Xa="__principal__",Qa="__uint8array__",Xu=(e,t)=>typeof t=="bigint"?{[Za]:`${t}`}:X(t)&&M.isPrincipal(t)?{[Xa]:M.from(t).toText()}:X(t)&&t instanceof Uint8Array?{[Qa]:Array.from(t)}:t,Qu=(e,t)=>{let r=n=>t[n];return X(t)&&typeof t=="object"&&Za in t?BigInt(r(Za)):X(t)&&typeof t=="object"&&Xa in t?M.fromText(r(Xa)):X(t)&&typeof t=="object"&&Qa in t?Uint8Array.from(r(Qa)):t};var ue=e=>X(e)?[e]:[],ye=e=>e?.[0];var _m=({authData:e})=>{if(e.byteLength<37)return{invalidAuthData:null};if(e.byteLength<53)return{invalidAuthData:null};let t=e.slice(37,53),r=ym({bytes:t});return"aaguid"in r?{aaguidBytes:t,aaguidText:r.aaguid}:{unknownProvider:null}},ym=({bytes:e})=>{if(e.length!==16)return{invalidBytes:null};let t=(e instanceof Uint8Array?ds(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 gm(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 xm(e){return Fn(e,Xo)}var bm=class{constructor(e){this._cose=e,this.#e=xm(e)}#e;toDer(){return this.#e}toRaw(){return new Uint8Array(this.#e)}},od=class{#e;#t;constructor({rawId:e,cose:t}){this.#e=e,this.#t=new bm(t)}getPublicKey(){return this.#t}getCredentialId(){return this.#e}getCredentialIdText(){return Cr(this.#e)}},wm=class extends od{#e;#t;constructor({authData:e,...t}){super(t);let r=_m({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}},Tm=class extends od{},Nm=class extends Error{},Om=class extends Error{},Em=class extends Error{},Rm=class extends Error{},vm=class extends Error{},Im=class extends Error{},Am=class extends Error{},ed=class extends Error{};var Sm={ECDSA_WITH_SHA256:-7,RSA_WITH_SHA256:-257},Fm=6e4,id=()=>window.crypto.getRandomValues(new Uint8Array(16)),Vm=()=>id(),Cm=()=>id(),Pm=()=>{let{location:{href:e}}=window;try{let{hostname:t}=new URL(e);return t}catch{throw new Nm}},sd=({appId:e})=>e?.id??Pm(),Bm=({appId:e,user:t}={})=>{let{document:{title:r}}=window,n=()=>({rp:{name:e?.name??r,id:sd({appId:e})}}),o=()=>({user:{id:Cm(),name:t?.name??t?.displayName??r,displayName:t?.displayName??r}});return{attestation:"direct",challenge:Vm(),...n(),...o(),pubKeyCredParams:Object.values(Sm).map(i=>({type:"public-key",alg:i})),excludeCredentials:[],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred",residentKey:"required",requireResidentKey:!0}}},Dm=(e={})=>({rpId:sd(e),allowCredentials:[],userVerification:"required"}),tc=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}},Pr=(e=>(e[e.RequestingUserCredential=0]="RequestingUserCredential",e[e.FinalizingCredential=1]="FinalizingCredential",e[e.Signing=2]="Signing",e))(Pr||{}),ad=({timeout:e})=>AbortSignal.timeout(e??Fm),Um=async({challenge:e,credentialIds:t,passkeyOptions:r,timeout:n})=>await navigator.credentials.get({publicKey:{...Dm(r),challenge:e.buffer,allowCredentials:(t??[]).map(o=>({id:o.buffer,type:"public-key"}))},signal:ad({timeout:n})}),td=e=>{if(e.status!=="initialized")throw new Om},rd=e=>{if(q(e))throw new Em},nd=({type:e})=>{if(e!=="public-key")throw new Rm},rc=class ti 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=ti.#r({credential:new wm(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:Bm(t),signal:ad({timeout:r})});rd(o),nd(o);let{response:{attestationObject:i},rawId:s}=o;if(q(i))throw new vm;let{authData:a}=Ki.decode(ur(i)),c=gm(a);return new ti({...n,rawId:ur(s),cose:c,authData:a})}static async createWithExistingCredential(t){return new ti(t)}getPublicKey(){td(this.#t);let{credential:t}=this.#t;return t.getPublicKey()}getCredential(){td(this.#t);let{credential:t}=this.#t;return t}async sign(t){let r=await tc({fn:async()=>{let n=await Um({challenge:t,...this.#t.status==="initialized"&&{credentialIds:[this.#t.credential.getCredentialId()]}});return rd(n),nd(n),n},step:0,onProgress:this.#e});return await tc({fn:async()=>{let{rawId:n}=r;if(this.#t.status==="initialized"){if(!Yu({a:this.#t.credential.getCredentialId(),b:ur(n)}))throw new Im;return}let{retrievePublicKey:o}=this.#t,i=await o({credentialId:ur(n)});this.#t=ti.#r({credential:new Tm({rawId:ur(n),cose:i})})},step:1,onProgress:this.#e}),await tc({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 ed;if(q(s))throw new ed;let a=Ki.encode({authenticator_data:i,client_data_json:new TextDecoder().decode(o),signature:ur(s)});if(q(a))throw new Am;return Object.assign(a,{__signature__:void 0}),a},step:2,onProgress:this.#e})}},km=async()=>X(window.PublicKeyCredential)&&"isUserVerifyingPlatformAuthenticatorAvailable"in PublicKeyCredential?await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():!1;var ao=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 ao{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 nc=({message:e,detail:t})=>{let r=new CustomEvent(e,{detail:t,bubbles:!0});document.dispatchEvent(r)};var co="http://127.0.0.1:5987",cd="rdmx6-jaaaa-aaaaa-aaadq-cai";var ld=async({identity:e,container:t})=>{let n=X(t)&&t!==!1?t===!0?co:t:"https://icp-api.io",o=X(t);return await lr.create({identity:e,shouldFetchRootKey:o,host:n})};var lo=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 ld({identity:t,...r});return this.#e={...this.#e??{},[n]:o},o}return this.#e[n]}reset(){this.#e=null}};var uo=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 lo.getInstance().getAgent(n);return io.createActor(t,{agent:o,canisterId:r})}};function ud(e){return e!==null&&typeof e=="object"}var ri=class e{static from(t){if(typeof t=="string"){let r=Ne(t);return this.fromRaw(r)}else if(ud(t)){let r=t;if(ud(r)&&Object.hasOwnProperty.call(r,"__derEncodedPublicKey__"))return this.fromDer(r);if(ArrayBuffer.isView(r)){let n=r;return this.fromRaw(vt(n.buffer))}else{if(r instanceof ArrayBuffer)return this.fromRaw(vt(r));if("rawKey"in r&&r.rawKey instanceof Uint8Array)return this.fromRaw(r.rawKey);if("derKey"in r)return this.fromDer(r.derKey);if("toDer"in r)return this.fromDer(r.toDer())}}throw new Error("Cannot construct Ed25519PublicKey from the provided key.")}static fromRaw(t){return new e(t)}static fromDer(t){return new e(this.derDecode(t))}static{this.RAW_KEY_LENGTH=32}static derEncode(t){let r=Fn(t,Sn);return r.__derEncodedPublicKey__=void 0,r}static derDecode(t){let r=Vn(t,Sn);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()),ll(t,new Uint8Array(new Array(32).fill(0)))&&console.warn("Seed is all zeros. This is not a secure seed. Please provide a seed with sufficient entropy if this is a production environment.");let r=new Uint8Array(32);for(let o=0;o<32;o++)r[o]=t[o];let n=Me.getPublicKey(r);return e.fromKeyPair(n,r)}static fromParsedJson(t){let[r,n]=t;return new e(ri.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(ri.fromRaw(t),r)}static fromSecretKey(t){let r=Me.getPublicKey(t);return e.fromKeyPair(r,t)}#e;#t;constructor(t,r){super(),this.#e=ri.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 oc=class e extends Error{constructor(t){super(t),this.message=t,Object.setPrototypeOf(this,e.prototype)}};function dd(e){if(typeof global<"u"&&global.crypto&&global.crypto.subtle)return global.crypto.subtle;if(e)return e;if(typeof crypto<"u"&&crypto.subtle)return crypto.subtle;throw new oc("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=dd(o),s=await i.generateKey({name:"ECDSA",namedCurve:"P-256"},r,n),a=vt(await i.exportKey("spki",s.publicKey));return Object.assign(a,{__derEncodedPublicKey__:void 0}),new this(s,a,i)}static async fromKeyPair(t,r){let n=dd(r),o=vt(await n.exportKey("spki",t.publicKey));return Object.assign(o,{__derEncodedPublicKey__:void 0}),new e(t,o,n)}constructor(t,r,n){super(),this._keyPair=t,this._derKey=r,this._subtleCrypto=n}getKeyPair(){return this._keyPair}getPublicKey(){let t=this._derKey,r=Object.create(this._keyPair.publicKey);return r.toDer=function(){return t},r}async sign(t){let r={name:"ECDSA",hash:{name:"SHA-256"}},n=vt(await this._subtleCrypto.sign(r,this._keyPair.privateKey,t));return Object.assign(n,{__signature__:void 0}),n}};var ps=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 fs(e){return e instanceof Uint8Array?H(e):H(new Uint8Array(e))}function ic(e){if(typeof e!="string"||e.length<64)throw new Error("Invalid public key.");return Ne(e)}var Br=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:fs(this.pubkey),...this.targets&&{targets:this.targets.map(t=>t.toHex())}}}};async function Lm(e,t,r,n){let o=new Br(t.toDer(),BigInt(+r)*BigInt(1e6),n),i=new Uint8Array([...ra,...new Uint8Array(Xt({...o}))]),s=await e.sign(i);return{delegation:o,signature:s}}var dr=class e{static async create(t,r,n=new Date(Date.now()+900*1e3),o={}){let i=await Lm(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 Br(ic(c),BigInt("0x"+u),p&&p.map(d=>{if(typeof d!="string")throw new Error("Invalid target.");return M.fromHex(d)})),signature:ic(a)}});return new this(o,ic(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:fs(r.pubkey),...o&&{targets:o.map(i=>i.toHex())}},signature:fs(n)}}),publicKey:fs(this.publicKey)}}},pr=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 Xt(r);return{...n,body:{content:r,sender_sig:await this.sign(new Uint8Array([...Vo,...new Uint8Array(o)])),sender_delegation:this._delegation.delegations,sender_pubkey:this._delegation.publicKey}}}},ni=class e extends ps{#e;get delegation(){return this.#e}constructor(t,r){super(t),this.#e=r}static fromDelegation(t,r){return new e(t,r)}};function sc(e,t){for(let{delegation:o}of e.delegations)if(+new Date(Number(o.expiration/BigInt(1e6)))<=+Date.now())return!1;let r=[],n=t?.scope;n&&(Array.isArray(n)?r.push(...n.map(o=>typeof o=="string"?M.fromText(o):o)):r.push(typeof n=="string"?M.fromText(n):n));for(let o of r){let i=o.toText();for(let{delegation:s}of e.delegations){if(s.targets===void 0)continue;let a=!0;for(let c of s.targets)if(c.toText()===i){a=!1;break}if(a)return!1}}return!0}var pd=["mousedown","mousemove","keydown","touchstart","wheel"],oi=class e{callbacks=[];idleTimeout=600*1e3;timeoutID=void 0;static create(t={}){return new e(t)}constructor(t={}){let{onIdle:r,idleTimeout:n=600*1e3}=t||{};this.callbacks=r?[r]:[],this.idleTimeout=n;let o=this._resetTimer.bind(this);window.addEventListener("load",o,!0),pd.forEach(s=>{document.addEventListener(s,o,!0)});let i=(s,a)=>{let c;return(...u)=>{let p=this,d=()=>{c=void 0,s.apply(p,u)};clearTimeout(c),c=window.setTimeout(d,a)}};if(t?.captureScroll){let s=i(o,t?.scrollDebounce??100);window.addEventListener("scroll",s,!0)}o()}registerCallback(t){this.callbacks.push(t)}exit(){clearTimeout(this.timeoutID),window.removeEventListener("load",this._resetTimer,!0);let t=this._resetTimer.bind(this);pd.forEach(r=>{document.removeEventListener(r,t,!0)}),this.callbacks.forEach(r=>{r()})}_resetTimer(){let t=this.exit.bind(this);window.clearTimeout(this.timeoutID),this.timeoutID=window.setTimeout(t,this.idleTimeout)}};var qm=(e,t)=>t.some(r=>e instanceof r),fd,hd;function Mm(){return fd||(fd=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function jm(){return hd||(hd=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var md=new WeakMap,cc=new WeakMap,_d=new WeakMap,ac=new WeakMap,uc=new WeakMap;function Km(e){let t=new Promise((r,n)=>{let o=()=>{e.removeEventListener("success",i),e.removeEventListener("error",s)},i=()=>{r(Pt(e.result)),o()},s=()=>{n(e.error),o()};e.addEventListener("success",i),e.addEventListener("error",s)});return t.then(r=>{r instanceof IDBCursor&&md.set(r,e)}).catch(()=>{}),uc.set(t,e),t}function Hm(e){if(cc.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)});cc.set(e,t)}var lc={get(e,t,r){if(e instanceof IDBTransaction){if(t==="done")return cc.get(e);if(t==="objectStoreNames")return e.objectStoreNames||_d.get(e);if(t==="store")return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return Pt(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&(t==="done"||t==="store")?!0:t in e}};function yd(e){lc=e(lc)}function $m(e){return e===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(t,...r){let n=e.call(hs(this),t,...r);return _d.set(n,t.sort?t.sort():[t]),Pt(n)}:jm().includes(e)?function(...t){return e.apply(hs(this),t),Pt(md.get(this))}:function(...t){return Pt(e.apply(hs(this),t))}}function Gm(e){return typeof e=="function"?$m(e):(e instanceof IDBTransaction&&Hm(e),qm(e,Mm())?new Proxy(e,lc):e)}function Pt(e){if(e instanceof IDBRequest)return Km(e);if(ac.has(e))return ac.get(e);let t=Gm(e);return t!==e&&(ac.set(e,t),uc.set(t,e)),t}var hs=e=>uc.get(e);function xd(e,t,{blocked:r,upgrade:n,blocking:o,terminated:i}={}){let s=indexedDB.open(e,t),a=Pt(s);return n&&s.addEventListener("upgradeneeded",c=>{n(Pt(s.result),c.oldVersion,c.newVersion,Pt(s.transaction),c)}),r&&s.addEventListener("blocked",c=>r(c.oldVersion,c.newVersion,c)),a.then(c=>{i&&c.addEventListener("close",()=>i()),o&&c.addEventListener("versionchange",u=>o(u.oldVersion,u.newVersion,u))}).catch(()=>{}),a}var Jm=["get","getKey","getAll","getAllKeys","count"],Wm=["put","add","delete","clear"],dc=new Map;function gd(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(dc.get(t))return dc.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,o=Wm.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||Jm.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 dc.set(t,i),i}yd(e=>({...e,get:(t,r,n)=>gd(t,r)||e.get(t,r,n),has:(t,r)=>!!gd(t,r)||e.has(t,r)}));var bd="auth-client-db",wd="ic-keyval",zm=async(e=bd,t=wd,r)=>(globalThis.localStorage?.getItem(Ke)&&(globalThis.localStorage.removeItem(Ke),globalThis.localStorage.removeItem(He)),await xd(e,r,{upgrade:n=>{n.objectStoreNames.contains(t)&&n.clear(t),n.createObjectStore(t)}}));async function Ym(e,t,r){return await e.get(t,r)}async function Zm(e,t,r,n){return await e.put(t,n,r)}async function Xm(e,t,r){return await e.delete(t,r)}var ms=class e{constructor(t,r){this._db=t,this._storeName=r}static async create(t){let{dbName:r=bd,storeName:n=wd,version:o=Td}=t??{},i=await zm(r,n,o);return new e(i,n)}async set(t,r){return await Zm(this._db,this._storeName,t,r)}async get(t){return await Ym(this._db,this._storeName,t)??null}async remove(t){return await Xm(this._db,this._storeName,t)}};var He="identity",Ke="delegation",Nd="iv",Td=1,ii=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}ms.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 Qm=BigInt(1e9),e_=BigInt(3600),t_=Qm*e_,r_="https://identity.internetcomputer.org",n_="#authorize",o_=BigInt(8)*t_,pc="ECDSA",fc="Ed25519",i_=500,_s="UserInterrupt",si=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??pc,o=null;if(t.identity)o=t.identity;else{let c=await r.get(He);if(!c)try{let u=new ii,p=await u.get(Ke),d=await u.get(He);p&&d&&n===pc&&(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===fc&&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=dr.fromJSON(c),sc(s)?"toDer"in o?i=ni.fromDelegation(o,s):i=pr.fromDelegation(o,s):(await hc(r),o=null))}catch(c){console.error(c),await hc(r),o=null}let a;return t.idleOptions?.disableIdle?a=void 0:(s||t.identity)&&(a=oi.create(t.idleOptions)),o||(n===fc?o=Nt.generate():(t.storage&&n===pc&&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 '${fc}' as the key type, as it can serialize to a string`),o=await Ct.generate()),await Od(r,o)),new e(i,o,s,r,a,t)}_registerDefaultIdleCallback(){let t=this._createOptions?.idleOptions;!t?.onIdle&&!t?.disableDefaultIdleCallback&&this.idleManager?.registerCallback(()=>{this.logout(),location.reload()})}async _handleSuccess(t,r){let n=t.delegations.map(a=>({delegation:new Br(a.delegation.pubkey,a.delegation.expiration,a.delegation.targets),signature:a.signature})),o=dr.fromDelegations(n,t.userPublicKey),i=this._key;if(!i)return;this._chain=o,"toDer"in i?this._identity=ni.fromDelegation(i,this._chain):this._identity=pr.fromDelegation(i,this._chain),this._idpWindow?.close();let s=this._createOptions?.idleOptions;!this.idleManager&&!s?.disableIdle&&(this.idleManager=oi.create(s),this._registerDefaultIdleCallback()),this._removeEventListener(),delete this._idpWindow,this._chain&&await this._storage.set(Ke,JSON.stringify(this._chain.toJSON())),await Od(this._storage,this._key),r?.(t)}getIdentity(){return this._identity}async isAuthenticated(){return!this.getIdentity().getPrincipal().isAnonymous()&&this._chain!==null&&sc(this._chain)}async login(t){let r=s_(this._createOptions?.loginOptions,t),n=r?.maxTimeToLive??o_,o=new URL(r?.identityProvider?.toString()||r_);o.hash=n_,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(_s,r?.onError):setTimeout(i,i_))};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 hc(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 hc(e){await e.remove(He),await e.remove(Ke),await e.remove(Nd)}function s_(e,t){if(!e&&!t)return;let r=e?.customValues||t?.customValues?{...e?.customValues,...t?.customValues}:void 0;return{...e,...t,customValues:r}}function a_(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 Od(e,t){let r=a_(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 si.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 mc=async e=>{await c_(),await $e.getInstance().createAuthClient(),e?.windowReload!==!1&&window.location.reload()},c_=async()=>{await $e.getInstance().logout(),je.getInstance().reset(),uo.getInstance().reset(),lo.getInstance().reset()};var Ed=e=>{let t=e===!0?"./workers/auth.worker.js":e,r=new Worker(t),n=async()=>{nc({message:"junoSignOutAuthTimer"}),await mc()};return r.onmessage=async({data:o})=>{let{msg:i,data:s}=o;switch(i){case"junoSignOutAuthTimer":await n();return;case"junoDelegationRemainingTime":nc({message:"junoDelegationRemainingTime",detail:s?.authRemainingTime});return}},je.getInstance().subscribe(o=>{if(q(o)){r.postMessage({msg:"junoStopAuthTimer"});return}r.postMessage({msg:"junoStartAuthTimer"})})};var ai=async({fn:e})=>{let{createAuthClient:t,safeCreateAuthClient:r}=$e.getInstance();if(!await(await t()).isAuthenticated()){await r();return}await e()};var _c=({error:e,type:t})=>typeof e=="string"?e.includes(t):e instanceof Error?e.message.includes(t):!1;var Rd="juno.datastore.error.user.cannot_update";var Dt={certified:!1};var ys=()=>$e.getInstance().getAuthClient()?.getIdentity(),l_=async()=>{let{getAuthClient:e,createAuthClient:t}=$e.getInstance();return(e()??await t()).getIdentity()},u_=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:ys()??new rt;var 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)))}),Ur=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}),kr=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),Lr=e.Record({signature:e.Vec(e.Nat8),delegation:kr}),at=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),qr=e.Variant({Ok:Lr,Err:at}),Mr=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),jr=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:jr,SegmentsDeployment:Lt}),Ze=e.Record({status:Mr,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)}),Kr=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}),Hr=e.Variant({Callback:e.Record({token:dt,callback:e.Func([],[],["query"])})}),$r=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(Hr),status_code:e.Nat16}),Gr=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}),Jr=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}),Wr=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),zr=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}),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,Ze)),items_length:e.Nat64}),tn=e.Record({include_system:e.Bool}),rn=e.Record({matcher:e.Opt(tn)}),nn=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,ut)),items_length:e.Nat64}),on=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)}),sn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:I,expires_at:e.Opt(e.Nat64)}),an=e.Record({controller:sn,controllers:e.Vec(e.Principal)}),cn=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)}),Bs=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)}),Ds=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)))}),fo=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),ho=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([i],[h],[]),commit_asset_upload:e.Func([m],[],[]),commit_proposal:e.Func([g],[e.Null],[]),commit_proposal_asset_upload:e.Func([m],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(m)],[],[]),count_assets:e.Func([e.Text,O],[e.Nat64],["query"]),count_collection_assets:e.Func([e.Text],[e.Nat64],["query"]),count_collection_docs:e.Func([e.Text],[e.Nat64],["query"]),count_docs:e.Func([e.Text,O],[e.Nat64],["query"]),count_proposals:e.Func([],[e.Nat64],["query"]),del_asset:e.Func([e.Text,e.Text],[],[]),del_assets:e.Func([e.Text],[],[]),del_controllers:e.Func([R],[e.Vec(e.Tuple(e.Principal,w))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,v],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,O],[],[]),del_filtered_docs:e.Func([e.Text,O],[],[]),del_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[],[]),del_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,v))],[],[]),del_rule:e.Func([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([],[Ur],[]),get_db_config:e.Func([],[e.Opt(ie)],["query"]),get_delegation:e.Func([Ye],[qr],["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([Kr],[$r],["query"]),http_request_streaming_callback:e.Func([dt],[Gr],["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],[Jr],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,w))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Wr))],["query"]),list_docs:e.Func([e.Text,O],[zr],["query"]),list_proposals:e.Func([Xr],[en],["query"]),list_rules:e.Func([V,rn],[nn],["query"]),memory_size:e.Func([],[on],["query"]),reject_proposal:e.Func([g],[e.Null],[]),set_auth_config:e.Func([qt],[Q],[]),set_controllers:e.Func([an],[e.Vec(e.Tuple(e.Principal,w))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([cn],[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,Bs],[ut],[]),set_storage_config:e.Func([Ds],[ce],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ze],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([fo],[ho],[]),upload_proposal_asset_chunk:e.Func([fo],[ho],[])})},gc=({IDL:e})=>{let t=e.Variant({Heap:e.Null,Stable:e.Null}),r=e.Record({system_memory:e.Opt(t)}),n=e.Record({controllers:e.Vec(e.Principal),storage:e.Opt(r)}),o=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),i=e.Variant({OpenId:o}),s=e.Record({updated_at:e.Nat64,owner:e.Principal,data:e.Vec(e.Nat8),description:e.Opt(e.Text),created_at:e.Nat64,version:e.Opt(e.Nat64)}),a=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),c=e.Record({doc:s,delegation:a}),u=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),p=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),d=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),l=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),f=e.Variant({PrepareDelegation:l,RegisterUser:e.Text}),h=e.Variant({Ok:c,Err:f}),m=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),g=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),_=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),x=e.Record({field:_,desc:e.Bool}),y=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),T=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(y),description:e.Opt(e.Text),created_at:e.Opt(y)}),E=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),O=e.Record({order:e.Opt(x),owner:e.Opt(e.Principal),matcher:e.Opt(T),paginate:e.Opt(E)}),R=e.Record({controllers:e.Vec(e.Principal)}),I=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),w=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,scope:I,expires_at:e.Opt(e.Nat64)}),v=e.Record({version:e.Opt(e.Nat64)}),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)))}),Ur=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}),kr=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),Lr=e.Record({signature:e.Vec(e.Nat8),delegation:kr}),at=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),qr=e.Variant({Ok:Lr,Err:at}),Mr=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),jr=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:jr,SegmentsDeployment:Lt}),Ze=e.Record({status:Mr,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)}),Kr=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}),Hr=e.Variant({Callback:e.Record({token:dt,callback:e.Func([],[],[])})}),$r=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(Hr),status_code:e.Nat16}),Gr=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}),Jr=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}),Wr=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),zr=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}),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,Ze)),items_length:e.Nat64}),tn=e.Record({include_system:e.Bool}),rn=e.Record({matcher:e.Opt(tn)}),nn=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,ut)),items_length:e.Nat64}),on=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)}),sn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:I,expires_at:e.Opt(e.Nat64)}),an=e.Record({controller:sn,controllers:e.Vec(e.Principal)}),cn=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)}),Bs=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)}),Ds=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)))}),fo=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),ho=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([i],[h],[]),commit_asset_upload:e.Func([m],[],[]),commit_proposal:e.Func([g],[e.Null],[]),commit_proposal_asset_upload:e.Func([m],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(m)],[],[]),count_assets:e.Func([e.Text,O],[e.Nat64],[]),count_collection_assets:e.Func([e.Text],[e.Nat64],[]),count_collection_docs:e.Func([e.Text],[e.Nat64],[]),count_docs:e.Func([e.Text,O],[e.Nat64],[]),count_proposals:e.Func([],[e.Nat64],[]),del_asset:e.Func([e.Text,e.Text],[],[]),del_assets:e.Func([e.Text],[],[]),del_controllers:e.Func([R],[e.Vec(e.Tuple(e.Principal,w))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,v],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,O],[],[]),del_filtered_docs:e.Func([e.Text,O],[],[]),del_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[],[]),del_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,v))],[],[]),del_rule:e.Func([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([],[Ur],[]),get_db_config:e.Func([],[e.Opt(ie)],[]),get_delegation:e.Func([Ye],[qr],[]),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([Kr],[$r],[]),http_request_streaming_callback:e.Func([dt],[Gr],[]),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],[Jr],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,w))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Wr))],[]),list_docs:e.Func([e.Text,O],[zr],[]),list_proposals:e.Func([Xr],[en],[]),list_rules:e.Func([V,rn],[nn],[]),memory_size:e.Func([],[on],[]),reject_proposal:e.Func([g],[e.Null],[]),set_auth_config:e.Func([qt],[Q],[]),set_controllers:e.Func([an],[e.Vec(e.Tuple(e.Principal,w))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([cn],[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,Bs],[ut],[]),set_storage_config:e.Func([Ds],[ce],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ze],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([fo],[ho],[]),upload_proposal_asset_chunk:e.Func([fo],[ho],[])})},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)}),Ur=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:Ur}),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}),kr=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)}),Lr=e.Variant({Heap:e.Null,Stable:e.Null}),at=e.Record({memory:Lr,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}),qr=e.Variant({Callback:e.Record({token:at,callback:e.Func([],[],["query"])})}),Mr=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(qr),status_code:e.Nat16}),jr=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)}),Kr=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(Kr)}),Hr=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}),$r=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),Gr=e.Record({key:Hr,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,$r)),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,Gr)),items_length:e.Nat64}),Qe=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),Jr=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)}),Wr=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),zr=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),Yr=e.Record({status:zr,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)}),Zr=e.Record({desc:e.Bool}),Xr=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Qr=e.Record({order:e.Opt(Zr),paginate:e.Opt(Xr)}),en=e.Record({proposal_id:e.Nat}),tn=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(en,Ye)),items_length:e.Nat64}),rn=e.Record({openid:e.Opt(S),version:e.Opt(e.Nat64),internet_identity:e.Opt(b),rules:e.Opt(N)}),nn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:Qe,expires_at:e.Opt(e.Nat64)}),on=e.Record({controller:nn,controllers:e.Vec(e.Principal)}),qt=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),sn=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)))}),an=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),cn=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([kr],[Mr],["query"]),http_request_streaming_callback:e.Func([at],[jr],["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,Jr))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Wr))],["query"]),list_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,Yr))],["query"]),list_proposals:e.Func([Qr],[tn],["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([rn],[F],[]),set_controllers:e.Func([on],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([qt,t],[],[]),set_storage_config:e.Func([sn],[P],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ye],[]),update_rate_config:e.Func([qt,an],[],[]),upload_proposal_asset_chunk:e.Func([cn],[Mt],[])})},p_=({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)}),Ur=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:Ur}),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}),kr=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)}),Lr=e.Variant({Heap:e.Null,Stable:e.Null}),at=e.Record({memory:Lr,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}),qr=e.Variant({Callback:e.Record({token:at,callback:e.Func([],[],[])})}),Mr=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(qr),status_code:e.Nat16}),jr=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)}),Kr=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(Kr)}),Hr=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}),$r=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),Gr=e.Record({key:Hr,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,$r)),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,Gr)),items_length:e.Nat64}),Qe=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),Jr=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)}),Wr=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),zr=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),Yr=e.Record({status:zr,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)}),Zr=e.Record({desc:e.Bool}),Xr=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Qr=e.Record({order:e.Opt(Zr),paginate:e.Opt(Xr)}),en=e.Record({proposal_id:e.Nat}),tn=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(en,Ye)),items_length:e.Nat64}),rn=e.Record({openid:e.Opt(S),version:e.Opt(e.Nat64),internet_identity:e.Opt(b),rules:e.Opt(N)}),nn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:Qe,expires_at:e.Opt(e.Nat64)}),on=e.Record({controller:nn,controllers:e.Vec(e.Principal)}),qt=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),sn=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)))}),an=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),cn=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([kr],[Mr],[]),http_request_streaming_callback:e.Func([at],[jr],[]),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,Jr))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Wr))],[]),list_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,Yr))],[]),list_proposals:e.Func([Qr],[tn],[]),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([rn],[F],[]),set_controllers:e.Func([on],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([qt,t],[],[]),set_storage_config:e.Func([sn],[P],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ye],[]),update_rate_config:e.Func([qt,an],[],[]),upload_proposal_asset_chunk:e.Func([cn],[Mt],[])})};var f_=async({identity:e,host:t,localActor:r})=>await lr.create({identity:e,host:t,retryTimes:10,shouldFetchRootKey:r}),h_=async({agent:e,...t})=>e??await m_(t),m_=async({identity:e,container:t})=>{let r=X(t)&&t!==!1;return await f_({identity:e,host:r?t===!0?"http://127.0.0.1:5987":t:"https://icp-api.io",localActor:r})};var vd=({satelliteId:e,certified:t=!1,...r})=>Ad({canisterId:e,...r,idlFactory:t?gc:yc});var Id=({consoleId:e,certified:t=!1,...r})=>Ad({canisterId:e,...r,idlFactory:t?p_:d_}),Ad=({canisterId:e,idlFactory:t,...r})=>{if(q(e))throw new Error("No canister ID provided.");return __({canisterId:e,idlFactory:t,...r})},__=async({canisterId:e,idlFactory:t,config:r,...n})=>{let o=await h_(n);return io.createActor(t,{agent:o,canisterId:e,...r??{}})};var Ce=class e extends ao{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 Sd=({satelliteId:e,container:t})=>{let{satelliteId:r}=xc({satelliteId:e}),{container:n}=bc({container:t});if(X(n)&&n!==!1){let{host:o,protocol:i}=new URL(n===!0?co:n);return`${i}//${r??"unknown"}.${o.replace("127.0.0.1","localhost")}`}return`https://${r??"unknown"}.icp0.io`},xc=({satelliteId:e})=>X(e)?{satelliteId:e}:Ce.getInstance().get()??{satelliteId:void 0},bc=({container:e})=>X(e)?{container:e}:Ce.getInstance().get()??{container:void 0};var Te=({satellite:e,options:{certified:t}})=>Vd({idlFactory:t?gc:yc,actorKey:`stock#${t?"update":"query"}`,...e}),Fd=({idlFactory:e,...t})=>Vd({idlFactory:e,actorKey:"extended#query",...t}),Vd=async({satelliteId:e,container:t,...r})=>{let{satelliteId:n}=xc({satelliteId:e});ei(n,"No satellite ID defined. Did you initialize Juno?");let{container:o}=bc({container:t});return await uo.getInstance().getActor({satelliteId:n,container:o,...r})};var gs=class extends Error{},fr=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{},Es=class extends Error{};var Cd=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 Es("Invalid list matcher for timestamp",e)}},Dr=({matcher:e,paginate:t,order:r,owner:n})=>({matcher:q(e)?[]:[{key:ue(e.key),description:ue(e.description),created_at:Cd(e.createdAt),updated_at:Cd(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 Pd=async e=>{let t=new Blob([JSON.stringify(e,Xu)],{type:"application/json; charset=utf-8"});return new Uint8Array(await t.arrayBuffer())},Rs=async e=>{let t=new Blob([e instanceof Uint8Array?e:new Uint8Array(e)],{type:"application/json; charset=utf-8"});return JSON.parse(await t.text(),Qu)},vs=()=>typeof window<"u";var Bd=async({data:e})=>{try{return await Rs(e)}catch(t){console.error("The data parsing has failed, mapping to undefined as a fallback.",t);return}};var wc=async e=>{let{data:t,version:r,description:n}=e;return{description:ue(n),data:await Pd(t),version:ue(r)}},Tc=e=>{let{version:t}=e;return{version:ue(t)}},Cn=async({doc:e,key:t})=>{let{owner:r,version:n,description:o,data:i,...s}=e;return{key:t,description:ye(o),owner:r.toText(),data:await Rs(i),version:ye(n),...s}};var Dd=async({collection:e,key:t,...r})=>{let{get_doc:n}=await Te(r),o=ye(await n(e,t));if(!q(o))return Cn({doc:o,key:t})},Ud=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 Cn({key:s,doc:c}):void 0)}return i},kd=async({collection:e,doc:t,...r})=>{let{set_doc:n}=await Te(r),{key:o}=t,i=await wc(t),s=await n(e,o,i);return await Cn({key:o,doc:s})},Ld=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 wc(a)])}let o=await r(n),i=[];for(let[s,a]of o)i.push(await Cn({key:s,doc:a}));return i},qd=async({collection:e,doc:t,...r})=>{let{del_doc:n}=await Te(r),{key:o}=t;return n(e,o,Tc(t))},Md=async({docs:e,...t})=>{let{del_many_docs:r}=await Te(t),n=e.map(({collection:o,doc:i})=>[o,i.key,Tc(i)]);await r(n)},jd=async({collection:e,filter:t,...r})=>{let{del_filtered_docs:n}=await Te(r);return n(e,Dr(t))},Kd=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,Dr(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 Bd({data:l}),version:ye(m),...g})}return{items:u,items_length:s,items_page:ye(i),matches_length:a,matches_pages:ye(c)}},Hd=async({collection:e,filter:t,...r})=>{let{count_docs:n}=await Te(r);return n(e,Dr(t))};var Is=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await Dd({...r,satellite:{...e,identity:n},options:t??Dt})},oT=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await Ud({...r,satellite:{...e,identity:n},options:t??Dt})},$d=async({satellite:e,...t})=>{let r=de(e?.identity);return await kd({...t,satellite:{...e,identity:r},options:{certified:!0}})},Gd=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,...t})=>{let r=de(e?.identity);return await Md({...t,satellite:{...e,identity:r},options:{certified:!0}})},aT=async({satellite:e,filter:t,...r})=>{let n=de(e?.identity);return await jd({...r,filter:t??{},satellite:{...e,identity:n},options:{certified:!0}})},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})},lT=async({satellite:e,options:t,filter:r,...n})=>{let o=de(e?.identity);return await Hd({...n,filter:r??{},satellite:{...e,identity:o},options:t??Dt})};var Jd=async({provider:e})=>{let{user:t,userId:r}=await Nc();if(X(t))return t;try{return await y_({userId:r,provider:e})}catch(n){if(_c({error:n,type:Rd})){let o=await Wd({userId:r});if(X(o))return o}throw n}},Nc=async()=>{let e=ys();if(q(e))throw new Os("No identity to initialize the user. Have you initialized Juno?");let t=e.getPrincipal().toText(),r=await Wd({userId:t});return{userId:t,user:r}},Wd=({userId:e})=>Is({collection:"#user",key:e}),y_=({userId:e,...t})=>$d({collection:"#user",doc:{key:e,data:t}});var As=async()=>{await ai({fn:async()=>{let{user:t}=await Nc();je.getInstance().set(t??null)}})},Ss=async({user:e})=>{await ai({fn:async()=>{je.getInstance().set(e)}})};var zd=()=>{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()},Yd=()=>{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()},Zd=()=>{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 Xd=BigInt(144e11),Qd=!1,ep={width:576,height:576},tp={width:424,height:576};var ci="internetcomputer.org",rp="ic0.app",np="id.ai";var op=({width:e,height:t})=>{if(!vs()||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 ip=(r=>(r[r.AuthorizingWithProvider=0]="AuthorizingWithProvider",r[r.CreatingOrRetrievingUser=1]="CreatingOrRetrievingUser",r))(ip||{});var Fs=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 fr("No client is ready to perform a sign-in. Have you initialized the Satellite?"));return}await r.login({onSuccess:n,onError:i=>{if(i===_s){o(new xs(i));return}o(new gs(i))},maxTimeToLive:t?.maxTimeToLiveInNanoseconds??Xd,allowPinAuthentication:t?.allowPin??Qd,...t?.derivationOrigin!==void 0&&{derivationOrigin:t.derivationOrigin},...this.signInOptions({windowed:t?.windowed})})})}};var Vs=class extends Fs{#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=[ci,rp].includes(this.#e??ci);return so(this.#e)?`https://identity.${ci}`:p?`https://identity.${this.#e??ci}`:`https://${this.#e}`}let s=Ce.getInstance().get(),a=X(s)&&X(s?.internetIdentityId)?s.internetIdentityId:cd,{host:c,protocol:u}=new URL(i===!0?co:i);return/apple/i.test(navigator?.vendor)?`${u}//${c}?canisterId=${a}`:`${u}//${a}.${c.replace("127.0.0.1","localhost")}`})();return{...t!==!1&&{windowOpenerFeatures:op((()=>{try{let{hostname:i}=new URL(n);return i.includes(np)}catch{return!1}})()?tp:ep)},identityProvider:n}}};var Oc=class extends Error{},Ec=class extends Error{},Rc=class extends Error{},vc=class extends Error{},Ic=class extends Error{},Ac=class extends Error{},Sc=class extends Error{},Fc=class extends Error{},Vc=class extends Error{},Cc=class extends Error{};var sp=({auth:e,identity:t})=>"satellite"in e?vd({...e.satellite,identity:t}):Id({...e.console,identity:t}),g_=async({actorParams:e,args:t})=>{let{authenticate:r}=await sp(e);return await r(t)},x_=async({actorParams:e,args:t})=>{let{get_delegation:r}=await sp(e);return await r(t)},b_=({delegations:e,sessionKey:t})=>{let[r,n]=e,o=dr.fromDelegations(n,Uint8Array.from(r));return{identity:pr.fromDelegation(t,o),delegationChain:o,sessionKey:t}},Pc=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 w_({jwt:e,publicKey:o,context:t,auth:r});return{identity:b_({sessionKey:n,delegations:i}),data:s}},w_=async({jwt:e,publicKey:t,context:{caller:r,salt:n},auth:o})=>{let i=await g_({args:{OpenId:{jwt:e,session_key:t,salt:n}},actorParams:{auth:o,identity:r}});if("Err"in i)throw new Ic("Authentication failed",{cause:i});let{delegation:{user_key:s,expiration:a},...c}=i.Ok,u=await T_({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 Br(Uint8Array.from(l),f,ye(h)),signature:Uint8Array.from(d)}]],data:c}},T_=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 x_({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 Vc("Getting delegation failed",{cause:c})}return c.Ok}throw new Cc};var Bc="juno:auth:openid",Dc={authUrl:"https://accounts.google.com/o/oauth2/v2/auth",authScopes:["openid","profile","email"],configUrl:"https://accounts.google.com/gsi/fedcm.json"};var ap=e=>Cr(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),N_=()=>window.crypto.getRandomValues(new Uint8Array(32)),O_=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 ap(ur(o))},E_=async({caller:e})=>{let t=N_();return{nonce:await O_({salt:t,caller:e}),salt:t}},cp="__caller__",lp="__salt__",up="__state__",R_=({caller:e,state:t,salt:r})=>{let n={[cp]:e.toJSON(),[lp]:Cr(r),[up]:t};return JSON.stringify(n)},v_=e=>{let{[cp]:t,[lp]:r,[up]:n}=JSON.parse(e);return{caller:Nt.fromParsedJson(t),salt:Zu(r),state:n}},I_=()=>ap(window.crypto.getRandomValues(new Uint8Array(12))),dp=async()=>{let e=Nt.generate(),{nonce:t,salt:r}=await E_({caller:e}),n=I_(),o=R_({caller:e,salt:r,state:n});return sessionStorage.setItem(Bc,o),{nonce:t,state:n}},pp=()=>{let e=sessionStorage.getItem(Bc);if(q(e))throw new Ec;return v_(e)};var Uc=async e=>{let t=pp();if("credentials"in e){let{credentials:{jwt:r},auth:n}=e;return await Pc({jwt:r,context:t,auth:n})}return await A_({...e,context:t})},A_=async({auth:e,context:t})=>{let{location:{hash:r}}=window;if(so(r)||!r.startsWith("#"))throw new Ac("No hash found in the current location URL");let n=new URLSearchParams(r.slice(1)),o=n.get("state"),i=n.get("id_token"),{state:s}=t;if(so(s)||o!==s)throw new Sc("The provided state is invalid",{cause:o});if(so(i))throw new Fc;return await Pc({jwt:i,auth:e,context:t})};var fp=({authUrl:e,clientId:t,nonce:r,loginHint:n,authScopes:o,state:i,redirectUrl:s})=>{let a=(()=>{try{return new URL(e)}catch{throw new Oc("Cannot parse authURL",{cause:e})}})();a.searchParams.set("client_id",t);let{location:{origin:c}}=window;a.searchParams.set("redirect_uri",s??c),a.searchParams.set("response_type","code id_token"),a.searchParams.set("scope",o.join(" ")),a.searchParams.set("state",i),a.searchParams.set("nonce",r),ec(n)?a.searchParams.set("login_hint",n):a.searchParams.set("prompt","select_account"),window.location.href=a.toString()},hp=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 Rc;let{type:s}=i;if(s!=="identity"||!("token"in i)||typeof i.token!="string")throw new vc("Invalid credential received from FedCM API",{cause:i});let{token:a}=i;return{jwt:a}};async function kc({google:e}){let t=await dp();if("credentials"in e){let{credentials:i}=e,{configUrl:s}=Dc;return await hp({...i,...t,configUrl:s})}let{redirect:r}=e,{authUrl:n,authScopes:o}=Dc;fp({...r,...t,authUrl:n,authScopes:o})}var S_=async()=>{let{satelliteId:e}=Ce.getInstance().get()??{satelliteId:void 0};if(q(e))throw new fr("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 Uc({redirect:null,auth:{satellite:{satelliteId:e,container:t}}});await $e.getInstance().setAuthClientStorage({delegationChain:r,sessionKey:n});let s=await Cn({doc:i,key:o.getPrincipal().toText()});await Ss({user:s})};var mp=e=>(e.preventDefault(),e.returnValue="Are you sure you want to exit?"),F_=()=>{window.addEventListener("beforeunload",mp,{capture:!0})},V_=()=>{window.removeEventListener("beforeunload",mp,{capture:!0})},Cs=async({fn:e})=>{try{return F_(),await e()}finally{V_()}};var Ps=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??Zd();if(q(r))throw new ws;let{redirect:n}=t;await kc({google:{redirect:{...n??{},clientId:r}}})}};var _p=async({delegationIdentity:e,passkeyIdentity:t,satelliteId:r})=>{let n=t.getCredential().getAAGUID(),[o,i]=await Gd({docs:[{collection:"#user",doc:{key:e.getPrincipal().toText(),data:{provider:"webauthn",providerData:{webauthn:{...X(n)&&{aaguid:ds(n)}}}}}},{collection:"#user-webauthn",doc:{key:t.getCredential().getCredentialIdText(),data:{publicKey:t.getPublicKey().toRaw()}}}],satellite:{identity:e,satelliteId:r}});return o};var yp=(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))(yp||{}),gp=(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))(gp||{});var po=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 fr("Satellite ID not set. Have you initialized the Satellite?");let s=({step:m,state:g})=>{switch(m){case Pr.RequestingUserCredential:t?.({step:1,state:g});break;case Pr.FinalizingCredential:t?.({step:2,state:g});break;case Pr.Signing:t?.({step:3,state:g});break}},c=await Ut({fn:async()=>await rc.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 _p({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 fr("Satellite ID not set. Have you initialized the Satellite?");let i=async({credentialId:d})=>{let l=await Is({collection:"#user-webauthn",key:Cr(d),options:{certified:!0},satellite:{identity:new rt,satelliteId:o}});if(q(l))throw new Ts("No public key found for the selected passkey.");let{data:f}=l,{publicKey:h}=f;return Vn(h,Xo)},s=({step:d,state:l})=>{switch(d){case Pr.RequestingUserCredential:t?.({step:0,state:l});break;case Pr.FinalizingCredential:t?.({step:1,state:l});break;case Pr.Signing:t?.({step:2,state:l});break}},a=await rc.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 dr.create(t,n.getPublicKey(),new Date(Date.now()+o));return{delegationIdentity:pr.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 P_=async({provider:e})=>{await ai({fn:async()=>{let r=await Jd({provider:e});je.getInstance().set(r)}})},B_=async e=>{if("google"in e){let{google:{options:t}}=e;await Lc({fn:()=>new Ps().signIn({options:t}),context:{windowGuard:!1}});return}if("webauthn"in e){let{webauthn:{options:t,context:r}}=e;await Lc({fn:()=>new po().signIn({options:t,loadAuth:As}),context:r});return}if("internet_identity"in e){let{internet_identity:{options:t,context:r}}=e,{domain:n,...o}=t??{};await Lc({fn:()=>new Vs({domain:n}).signIn({options:o,authClient:$e.getInstance().getAuthClient(),initAuth:P_}),context:r});return}throw new bs("An unknown or unsupported provider was provided for sign-in.")},Lc=async({fn:e,context:t})=>{if(t?.windowGuard===!1){await e();return}await Cs({fn:e})};var D_=async e=>{let t=async()=>await U_(e);if(Object.values(e)?.[0].context?.windowGuard===!1){await t();return}await Cs({fn:t})},U_=async e=>{if("webauthn"in e){let{webauthn:{options:t}}=e;await new po().signUp({options:t,loadAuthWithUser:Ss});return}throw new Ns("An unknown or unsupported provider was provided for sign-up.")};var IO=e=>e?.data?.provider==="webauthn",AO=e=>e?.data?.provider==="google";var CO=async({idlFactory:e,satellite:t})=>{let r=de(t?.identity);return await Fd({idlFactory:e,...t,identity:r})};var xp=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(k_(r));o?.onInitiatedBatch();let{chunkIds:u}=await M_({data:e,uploadFn:s,batchId:c});o?.onUploadedFileChunks(r.fullPath),await q_({commitFn:a,batchId:c,data:e,headers:t,chunkIds:u}),o?.onCommittedBatch()};var k_=({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)}),L_=({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??[]]}},q_=async({commitFn:e,...t})=>{let r=L_(t);await e(r)},M_=async({data:e,uploadFn:t,batchId:r})=>{let n=[],o=vs()?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 j_({uploadChunks:n}))s=[...s,...a];return{chunkIds:s}};async function*j_({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=>K_(o)))}}var K_=async({batchId:e,chunk:t,uploadFn:r,orderId:n})=>r({batch_id:e,content:new Uint8Array(await t.arrayBuffer()),order_id:ue(n)});var bp=async({asset:e,...t})=>{let r=await Te(t);await xp({actor:r,asset:e})},wp=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,Dr(t));return{items:o.map(([u,p])=>p),items_length:i,items_page:ye(s),matches_length:a,matches_pages:ye(c)}},Tp=async({collection:e,filter:t,...r})=>{let{count_assets:n}=await Te(r);return n(e,Dr(t))},Np=async({collection:e,fullPath:t,...r})=>(await Te(r)).del_asset(e,t),Op=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)},Ep=async({collection:e,filter:t,...r})=>{let{del_filtered_assets:n}=await Te(r);return n(e,Dr(t))},Rp=async({collection:e,fullPath:t,...r})=>{let{get_asset:n}=await Te(r);return ye(await n(e,t))},vp=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 Ip=e=>btoa([...e].map(t=>String.fromCharCode(t)).join(""));var YO=e=>Ap(e),ZO=e=>Ap({filename:e.data.name,...e}),Ap=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 bp({asset:{data:t,filename:p,collection:r,token:i,headers:n,fullPath:d,encoding:a,description:c},satellite:l,options:{certified:!0}}),{downloadUrl:Sp({satellite:l,assetKey:{fullPath:d,token:i}}),fullPath:d,name:p}},XO=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:de(r?.identity)},{items:i,...s}=await wp({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:Sp({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:Ip(E),total_length:O}}),{}),owner:d.toText(),created_at:m,updated_at:g}});return{items:a,assets:a,...s}},QO=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:de(r?.identity)};return await Tp({collection:e,satellite:o,filter:t??{},options:n??Dt})},e6=({collection:e,fullPath:t,satellite:r})=>Np({collection:e,fullPath:t,satellite:{...r,identity:de(r?.identity)},options:{certified:!0}}),t6=({assets:e,satellite:t})=>Op({assets:e,satellite:{...t,identity:de(t?.identity)},options:{certified:!0}}),r6=async({collection:e,satellite:t,filter:r})=>{let n={...t,identity:de(t?.identity)};return await Ep({collection:e,satellite:n,filter:r??{},options:{certified:!0}})},n6=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await Rp({...r,satellite:{...e,identity:n},options:t??Dt})},o6=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await vp({...r,satellite:{...e,identity:n},options:t??Dt})},Sp=({assetKey:{fullPath:e,token:t},satellite:r})=>{let n={...r,identity:de(r?.identity)};return`${Sd(n)}${e}${X(t)?`?token=${t}`:""}`};var H_=e=>{let t=e?.satelliteId??zd();ei(t,"Satellite ID is not configured. Juno cannot be initialized.");let r=e?.container??Yd();return{satelliteId:t,internetIdentityId:e?.internetIdentityId,workers:e?.workers,container:r}},f6=e=>$_(e),$_=async e=>{let t=H_(e);Ce.getInstance().set(t),await As();let r=t.workers?.auth!==void 0?Ed(t.workers.auth):void 0;return[...r?[r]:[]]},G_=e=>je.getInstance().subscribe(e),h6=G_;export{ip as AuthClientSignInProgressStep,Os as InitError,Vs as InternetIdentityProvider,Es as ListError,gs as SignInError,fr as SignInInitError,ws as SignInMissingClientIdError,bs as SignInProviderNotSupportedError,xs as SignInUserInterruptError,Ns as SignUpProviderNotSupportedError,yp as WebAuthnSignInProgressStep,Ts as WebAuthnSignInRetrievePublicKeyError,gp as WebAuthnSignUpProgressStep,h6 as authSubscribe,QO as countAssets,lT as countDocs,e6 as deleteAsset,iT as deleteDoc,r6 as deleteFilteredAssets,aT as deleteFilteredDocs,t6 as deleteManyAssets,sT as deleteManyDocs,Sp as downloadUrl,n6 as getAsset,Is as getDoc,u_ as getIdentityOnce,o6 as getManyAssets,oT as getManyDocs,CO as getSatelliteExtendedActor,S_ as handleRedirectCallback,f6 as initJuno,$_ as initSatellite,AO as isGoogleUser,km as isWebAuthnAvailable,IO as isWebAuthnUser,XO as listAssets,cT as listDocs,G_ as onAuthStateChange,$d as setDoc,Gd as setManyDocs,B_ as signIn,mc as signOut,D_ as signUp,l_ as unsafeIdentity,YO as uploadBlob,ZO as uploadFile};
|
|
57
57
|
/*! Bundled license information:
|
|
58
58
|
|
|
59
59
|
@noble/hashes/esm/utils.js:
|