@junobuild/core-standalone 5.3.0 → 5.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/node/index.mjs
CHANGED
|
@@ -55,7 +55,7 @@ ic-request`),cc=new TextEncoder().encode("\vic-response"),lc=new TextEncoder().e
|
|
|
55
55
|
${m}
|
|
56
56
|
Retrying query.`),await this.#w({...t,tries:a+1});throw Jo.fromCode(new Zo(m))}let p=_c(d.headers);if(d.status!==tl){let m=await d.text();if(Xd(m))throw z.fromCode(new $t(m,this.#u));if(a<this.#d)return await this.#w({...t,tries:a+1});throw re.fromCode(new zo(d.status,d.statusText,p,m))}let f={...je(go(await d.arrayBuffer())),httpDetails:{ok:d.ok,status:d.status,statusText:d.statusText,headers:p},requestId:i};if(!this.#_)return f;let h=f.signatures?.[0]?.timestamp;if(!h)throw re.fromCode(new ms("Timestamp not found in query response. This suggests a malformed or malicious response."));let _=Number(BigInt(h)/BigInt($_));if(Date.now()+this.#r-_>this.#R){if(a<this.#d)return this.log.warn("Timestamp is older than the max ingress expiry. Retrying query.",{requestId:i,signatureTimestampMs:_}),await this.syncTime(r),await this.#w({...t,tries:a+1});throw Ye.fromCode(new ss(this.#u,i,a))}return f}async#y(t){let{requestFn:r,backoff:n,tries:o}=t,i=o===0?0:n.next();if(i===null)throw re.fromCode(new Kn(`Retry strategy exhausted after ${o} attempts.`));i>0&&await new Promise(d=>setTimeout(d,i));let s,a=new Uint8Array;try{s=await r(),s.status===tl&&(a=go(await s.clone().arrayBuffer()))}catch(d){if(o<this.#d)return this.log.warn(`Caught exception while attempting to make request:
|
|
57
57
|
${d}
|
|
58
|
-
Retrying request.`),await this.#y({requestFn:r,backoff:n,tries:o+1});throw Jo.fromCode(new Zo(d))}let c=_c(s.headers);if(s.status===tl||s.status===Zd)return{ok:s.ok,status:s.status,statusText:s.statusText,responseBodyBytes:a,headers:c};let l=await s.text();if(s.status===Q_&&s.url.includes("api/v4"))throw re.fromCode(new Yo);if(Xd(l))throw z.fromCode(new $t(l,this.#u));if(o<this.#d)return await this.#y({requestFn:r,backoff:n,tries:o+1});throw re.fromCode(new zo(s.status,s.statusText,c,l))}async query(t,r,n){let o=this.#f(),i=r.effectiveCanisterId?q.from(r.effectiveCanisterId):q.from(t);await this.#p(i),this.log.print(`ecid ${i.toString()}`),this.log.print(`canisterId ${t.toString()}`);let s,a=await(n??this.#n);if(!a)throw Pe.fromCode(new zr);let c=q.from(t),l=a.getPrincipal(),d=rl(this.#u,this.#r),p={request_type:Zn.Query,canister_id:c,method_name:r.methodName,arg:r.arg,sender:l,ingress_expiry:d},u=vr(p);s=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#c?{Authorization:`Basic ${btoa(this.#c)}`}:{}}},endpoint:Ar.Query,body:p}),s=await a.transformRequest(s);let f=fi(s.body),h={canister:c.toText(),ecid:i,transformedRequest:s,body:f,requestId:u,backoff:o,tries:0},_=async()=>{let y=await this.#w(h);return{requestDetails:p,...y}};try{if(!this.#_)return await _();let[y,m]=await Promise.all([_(),this.fetchSubnetKeys(i)]);try{return this.#N(y,m)}catch{this.log.warn("Query response verification failed. Retrying with fresh subnet keys."),await this.#x.delete(i.toString());let b=await this.fetchSubnetKeys(i);return this.#N(y,b)}}catch(y){let m;if(y instanceof st){if(y.hasCode($t)&&!this.#o)return await this.syncTime(i),this.query(t,r,n);y.code.requestContext={requestId:u,senderPubKey:s.body.sender_pubkey,senderSignature:s.body.sender_sig,ingressExpiry:s.body.content.ingress_expiry},m=y}else m=ae.fromCode(new Se(y));throw this.log.error(`Error while making query: ${m.message}`,m),m}}#N;async createReadStateRequest(t,r){await this.#p();let n=await(r??this.#n);if(!n)throw Pe.fromCode(new zr);let o=n.getPrincipal(),i=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#c?{Authorization:`Basic ${btoa(this.#c)}`}:{}}},endpoint:Ar.ReadState,body:{request_type:Zn.ReadState,paths:t.paths,sender:o,ingress_expiry:rl(this.#u,this.#r)}});return n.transformRequest(i)}async readState(t,r,n,o){await this.#g();let i=q.from(t);function s(d){for(let p of d.paths){let[u,f]=p,h=new TextEncoder().encode("request_status");if(Wn(u,h))return f}}let a,c;if(o)a=o;else{c=s(r);let d=await this.#n;if(!d)throw Pe.fromCode(new zr);a=await this.createReadStateRequest(r,d)}let l=new URL(`/api/v3/canister/${i.toString()}/read_state`,this.host);return await this.#O(l,{canisterId:i},a,c)}async readSubnetState(t,r){await this.#g();let n=q.from(t),o=new URL(`/api/v3/subnet/${n.toString()}/read_state`,this.host),i=await this.createReadStateRequest(r,this.#n??void 0);return await this.#O(o,{subnetId:n},i)}async#O(t,r,n,o){let i=this.#f();try{let{responseBodyBytes:s}=await this.#y({requestFn:()=>this.#i(t,{...this.#l,...n.request,body:fi(n.body)}),backoff:i,tries:0});return je(s)}catch(s){let a;if(s instanceof st){if(s.hasCode($t)&&!this.#o){if("canisterId"in r)await this.syncTime(r.canisterId);else if("subnetId"in r)await this.syncTimeWithSubnet(r.subnetId);else throw ft;return await this.#O(t,r,n,o)}s.code.requestContext={requestId:o??vr(n),senderPubKey:n.body.sender_pubkey,senderSignature:n.body.sender_sig,ingressExpiry:n.body.content.ingress_expiry},a=s}else a=ae.fromCode(new Se(s));throw this.log.error(`Error while making read state: ${a.message}`,a),a}}parseTimeFromResponse(t){let r;if(t.certificate){let n=je(t.certificate);if(n&&"tree"in n)r=n.tree;else throw re.fromCode(new Yr("Could not decode time from response"));let o=Dr(["time"],r);if(o.status!==Be.Found)throw re.fromCode(new At("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 re.fromCode(new es("Time was not in its expected format."));let i=on(o.value);return this.log.print("Time from response:",i),this.log.print("Time from response in milliseconds:",i.getTime()),i.getTime()}return this.log.warn("No certificate found in response"),0}async syncTime(t){this.#s=this.#s??(async()=>{await this.#g();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??q.from("ryjl3-tyaaa-aaaaa-aaaba-cai"),o=e.createSync({identity:new at,host:this.host.toString(),fetch:this.#i,retryTimes:0,rootKey:this.rootKey??void 0,shouldSyncTime:!1}),i=await Promise.all(Array(3).fill(null).map(async()=>{let a=(await kd({canisterId:n,agent:o,paths:["time"],disableCertificateTimeVerification:!0})).get("time");if(a instanceof Date)return a.getTime()},[]));this.#E(r,i)}catch(n){let o=n instanceof st?n:ae.fromCode(new Se(n));throw this.log.error("Caught exception while attempting to sync time",o),o}})(),await this.#s.finally(()=>{this.#s=null})}async syncTimeWithSubnet(t){await this.#g();let r=Date.now();try{let n=e.createSync({identity:new at,host:this.host.toString(),fetch:this.#i,retryTimes:0,rootKey:this.rootKey??void 0,shouldSyncTime:!1}),o=await Promise.all(Array(3).fill(null).map(async()=>{let s=(await Ld({subnetId:t,agent:n,paths:["time"],disableCertificateTimeVerification:!0})).get("time");if(s instanceof Date)return s.getTime()},[]));this.#E(r,o)}catch(n){let o=n instanceof st?n:ae.fromCode(new Se(n));throw this.log.error("Caught exception while attempting to sync time with subnet",o),o}}#E(t,r){let n=r.reduce((o,i)=>typeof i=="number"&&i>o?i:o,0);n>0&&(this.#r=n-t,this.#o=!0,this.log.notify({message:`Syncing time: offset of ${this.#r}`,level:"info"}))}async status(){let t=this.#c?{Authorization:`Basic ${btoa(this.#c)}`}:{},r=new URL("/api/v2/status",this.host);this.log.print(`fetching "${r.pathname}"`);let n=this.#f(),{responseBodyBytes:o}=await this.#y({backoff:n,requestFn:()=>this.#i(r,{headers:t,...this.#l}),tries:0});return je(o)}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#p(t){await Promise.all([this.#g(),this.#A(t)])}async#g(){if(!this.rootKey)if(this.rootKey===null&&this.host.toString()!=="https://icp-api.io"&&this.#t)await this.fetchRootKey();else throw Pe.fromCode(new Ct(this.#t))}async#A(t){this.#a&&!this.hasSyncedTime()&&await this.syncTime(t)}invalidateIdentity(){this.#n=null}replaceIdentity(t){this.#n=Promise.resolve(t)}async fetchSubnetKeys(t){let r=q.from(t),n=await this.#x.get(r.toText());if(n)return n;let o=this.#b.get(r.toText());if(o)return o;let i=this.#S(r).finally(()=>{this.#b.delete(r.toText())});return this.#b.set(r.toText(),i),i}async#S(t){await this.#p(t);let r=this.rootKey,n=await this.readState(t,{paths:[[G("subnet")]]}),o=await gt.create({certificate:n.certificate,rootKey:r,principal:{canisterId:t},agent:this});if(!o.cert.delegation){let a=q.selfAuthenticating(r);if(!$c({canisterId:t,subnetId:a,tree:o.cert.tree}))throw Ye.fromCode(new jn(t,a))}let i=Gc(o.cert,r),s=Io(o.cert,i);return await this.#x.set(t.toText(),s),s}async getSubnetIdFromCanister(t){let r=q.from(t);await this.#p(r);let n=await this.readState(r,{paths:[[G("time")]]}),o=await gt.create({certificate:n.certificate,rootKey:this.rootKey,principal:{canisterId:r},agent:this});return Gc(o.cert,this.rootKey)}_transform(t){let r=Promise.resolve(t);if(t.endpoint===Ar.Call)for(let n of this.#m)r=r.then(o=>n(o).then(i=>i||o));else for(let n of this.#h)r=r.then(o=>n(o).then(i=>i||o));return r}getTimeDiffMsecs(){return this.#r}hasSyncedTime(){return this.#o}};function rl(e,t){let r=e*nl;return Yn.fromDeltaInMilliseconds(r,t)}function Xd(e){return e.includes("Invalid request expiry: ")}var ut=Symbol.for("ic-agent-metadata"),Co=class e{static agentOf(t){return t[ut].config.agent}static interfaceOf(t){return t[ut].service}static canisterIdOf(t){return q.from(t[ut].config.canisterId)}static createActorClass(t,r){let n=t({IDL:Jn});class o extends e{constructor(s){if(!s.canisterId)throw z.fromCode(new Xo(s.canisterId));let a=typeof s.canisterId=="string"?q.fromText(s.canisterId):s.canisterId;super({config:{...Qd,...s,canisterId:a},service:n});for(let[c,l]of n._fields)r?.httpDetails&&l.annotations.push(ol),r?.certificate&&l.annotations.push(ep),this[c]=ty(this,c,l,s.blsVerify)}}return o}static createActor(t,r){if(!r.canisterId)throw z.fromCode(new Xo(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[ut]=Object.freeze(t)}};function So(e,t){let r=Jn.decode(e,t);switch(r.length){case 0:return;case 1:return r[0];default:return r}}var Qd={pollingOptions:zd,queryStrategy:"query"},ol="http-details",ep="certificate";function ty(e,t,r,n){let o,i=r.annotations.includes("query")||r.annotations.includes("composite_query"),s=e[ut].config.queryStrategy;i&&s==="query"?o=async(c,...l)=>{c={...c,...e[ut].config.queryTransform?.(t,l,{...e[ut].config,...c})};let d=c.agent||e[ut].config.agent||new Lr,p=q.from(c.canisterId||e[ut].config.canisterId),u=Jn.encode(r.argTypes,l),f=await d.query(p,{methodName:t,arg:u,effectiveCanisterId:c.effectiveCanisterId}),h={...f.httpDetails,requestDetails:f.requestDetails};switch(f.status){case Hr.Rejected:{let _=new cs(f.requestId,f.reject_code,f.reject_message,f.error_code,f.signatures);throw _.callContext={canisterId:p,methodName:t,httpDetails:h},vt.fromCode(_)}case Hr.Replied:return r.annotations.includes(ol)?{httpDetails:h,result:So(r.retTypes,f.reply.arg)}:So(r.retTypes,f.reply.arg)}}:o=async(c,...l)=>{c={...c,...e[ut].config.callTransform?.(t,l,{...e[ut].config,...c})};let d=c.agent||e[ut].config.agent||Lr.createSync(),{canisterId:p,effectiveCanisterId:u,pollingOptions:f}={...Qd,...e[ut].config,...c},h=q.from(p),_=u!==void 0?q.from(u):h,y=Jn.encode(r.argTypes,l),m,b,g,T;try{({reply:m,certificate:b,callResponse:g,requestDetails:T}=await d.update(h,{methodName:t,arg:y,effectiveCanisterId:_,nonce:c.nonce},{...f,blsVerify:n}))}catch(C){if(C instanceof vt){let w=Object.create(Object.getPrototypeOf(C.code),Object.getOwnPropertyDescriptors(C.code));throw w.callContext={...C.code.callContext,canisterId:h,methodName:t},vt.fromCode(w)}throw C}let O=r.annotations.includes(ol),v=r.annotations.includes(ep),E={...g,requestDetails:T};return O&&v?{httpDetails:E,certificate:b,result:So(r.retTypes,m)}:v?{certificate:b,result:So(r.retTypes,m)}:O?{httpDetails:E,result:So(r.retTypes,m)}:So(r.retTypes,m)};let a=(...c)=>o({},...c);return a.withOptions=c=>(...l)=>o(c,...l),a}var ry=({authData:e})=>{if(e.byteLength<37)return{invalidAuthData:null};if(e.byteLength<53)return{invalidAuthData:null};let t=e.slice(37,53),r=ny({bytes:t});return"aaguid"in r?{aaguidBytes:t,aaguidText:r.aaguid}:{unknownProvider:null}},ny=({bytes:e})=>{if(e.length!==16)return{invalidBytes:null};let t=(e instanceof Uint8Array?qi(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 oy(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 iy(e){return oo(e,Ii)}var sy=class{constructor(e){this._cose=e,this.#e=iy(e)}_cose;#e;toDer(){return this.#e}toRaw(){return new Uint8Array(this.#e)}},ip=class{#e;#t;constructor({rawId:e,cose:t}){this.#e=e,this.#t=new sy(t)}getPublicKey(){return this.#t}getCredentialId(){return this.#e}getCredentialIdText(){return $r(this.#e)}},ay=class extends ip{#e;#t;constructor({authData:e,...t}){super(t);let r=ry({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}},cy=class extends ip{},ly=class extends Error{},uy=class extends Error{},dy=class extends Error{},py=class extends Error{},fy=class extends Error{},hy=class extends Error{},my=class extends Error{},tp=class extends Error{};var _y={ECDSA_WITH_SHA256:-7,RSA_WITH_SHA256:-257},yy=6e4,sp=()=>window.crypto.getRandomValues(new Uint8Array(16)),gy=()=>sp(),xy=()=>sp(),by=()=>{let{location:{href:e}}=window;try{let{hostname:t}=new URL(e);return t}catch{throw new ly}},ap=({appId:e})=>e?.id??by(),wy=({appId:e,user:t}={})=>{let{document:{title:r}}=window,n=()=>({rp:{name:e?.name??r,id:ap({appId:e})}}),o=()=>({user:{id:xy(),name:t?.name??t?.displayName??r,displayName:t?.displayName??r}});return{attestation:"direct",challenge:gy(),...n(),...o(),pubKeyCredParams:Object.values(_y).map(i=>({type:"public-key",alg:i})),excludeCredentials:[],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred",residentKey:"required",requireResidentKey:!0}}},Ty=(e={})=>({rpId:ap(e),allowCredentials:[],userVerification:"required"}),il=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}},un=(e=>(e[e.RequestingUserCredential=0]="RequestingUserCredential",e[e.FinalizingCredential=1]="FinalizingCredential",e[e.Signing=2]="Signing",e))(un||{}),cp=({timeout:e})=>AbortSignal.timeout(e??yy),Ny=async({challenge:e,credentialIds:t,passkeyOptions:r,timeout:n})=>await navigator.credentials.get({publicKey:{...Ty(r),challenge:e.buffer,allowCredentials:(t??[]).map(o=>({id:o.buffer,type:"public-key"}))},signal:cp({timeout:n})}),rp=e=>{if(e.status!=="initialized")throw new uy},np=e=>{if(U(e))throw new dy},op=({type:e})=>{if(e!=="public-key")throw new py},sl=class Ai extends zt{#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=Ai.#r({credential:new ay(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:wy(t),signal:cp({timeout:r})});np(o),op(o);let{response:{attestationObject:i},rawId:s}=o;if(U(i))throw new fy;let{authData:a}=Ss.decode(mr(i)),c=oy(a);return new Ai({...n,rawId:mr(s),cose:c,authData:a})}static async createWithExistingCredential(t){return new Ai(t)}getPublicKey(){rp(this.#t);let{credential:t}=this.#t;return t.getPublicKey()}getCredential(){rp(this.#t);let{credential:t}=this.#t;return t}async sign(t){let r=await il({fn:async()=>{let n=await Ny({challenge:t,...this.#t.status==="initialized"&&{credentialIds:[this.#t.credential.getCredentialId()]}});return np(n),op(n),n},step:0,onProgress:this.#e});return await il({fn:async()=>{let{rawId:n}=r;if(this.#t.status==="initialized"){if(!Bl({a:this.#t.credential.getCredentialId(),b:mr(n)}))throw new hy;return}let{retrievePublicKey:o}=this.#t,i=await o({credentialId:mr(n)});this.#t=Ai.#r({credential:new cy({rawId:mr(n),cose:i})})},step:1,onProgress:this.#e}),await il({fn:async()=>{let{response:n}=r,{clientDataJSON:o}=n,{authenticatorData:i,signature:s}="authenticatorData"in n&&"signature"in n?n:{};if(U(i))throw new tp;if(U(s))throw new tp;let a=Ss.encode({authenticator_data:i,client_data_json:new TextDecoder().decode(o),signature:mr(s)});if(U(a))throw new my;return Object.assign(a,{__signature__:void 0}),a},step:2,onProgress:this.#e})}},Oy=async()=>J(window.PublicKeyCredential)&&"isUserVerifyingPlatformAuthenticatorAvailable"in PublicKeyCredential?await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():!1;var Vo=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 Ue=class e extends Vo{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 Si=({message:e,detail:t})=>{let r=new CustomEvent(e,{detail:t,bubbles:!0});document.dispatchEvent(r)};var Po="http://127.0.0.1:5987",lp="rdmx6-jaaaa-aaaaa-aaadq-cai";var up=async({identity:e,container:t})=>{let n=J(t)&&t!==!1?t===!0?Po:t:"https://icp-api.io",o=J(t);return await Lr.create({identity:e,shouldFetchRootKey:o,host:n})};var Fo=class e{static instance;#e=void 0;constructor(){}static getInstance(){return U(e.instance)&&(e.instance=new e),e.instance}async getAgent({identity:t,...r}){let n=t.getPrincipal().toText();if(U(this.#e)||U(this.#e[n])){let o=await up({identity:t,...r});return this.#e={...this.#e??{},[n]:o},o}return this.#e[n]}reset(){this.#e=null}};var Bo=class e{static instance;#e=void 0;constructor(){}static getInstance(){return U(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(U(this.#e)||U(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 Fo.getInstance().getAgent(n);return Co.createActor(t,{agent:o,canisterId:r})}};function dp(e){return e!==null&&typeof e=="object"}var Ci=class e{static from(t){if(typeof t=="string"){let r=Ee(t);return this.fromRaw(r)}if(dp(t)){let r=t;if(dp(r)&&Object.hasOwnProperty.call(r,"__derEncodedPublicKey__"))return this.fromDer(r);if(ArrayBuffer.isView(r)){let n=r;return this.fromRaw(Ht(n.buffer))}if(r instanceof ArrayBuffer)return this.fromRaw(Ht(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=oo(t,no);return r.__derEncodedPublicKey__=void 0,r}static derDecode(t){let r=io(t,no);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}},dt=class e extends zt{static generate(t){if(t&&t.length!==32)throw new Error("Ed25519 Seed needs to be 32 bytes long.");t||(t=Je.utils.randomPrivateKey()),lu(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=Je.getPublicKey(r);return e.fromKeyPair(n,r)}static fromParsedJson(t){let[r,n]=t;return new e(Ci.fromDer(Ee(r)),Ee(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(Ci.fromRaw(t),r)}static fromSecretKey(t){let r=Je.getPublicKey(t);return e.fromKeyPair(r,t)}#e;#t;constructor(t,r){super(),this.#e=Ci.from(t),this.#t=r}toJSON(){return[j(this.#e.toDer()),j(this.#t)]}getKeyPair(){return{secretKey:this.#t,publicKey:this.#e}}getPublicKey(){return this.#e}async sign(t){let r=Je.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=Ee(a)),Ht(a)));return Je.verify(o,i,s)}};var al=class e extends Error{constructor(t){super(t),this.message=t,Object.setPrototypeOf(this,e.prototype)}};function pp(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 al("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 xt=class e extends zt{static async generate(t){let{extractable:r=!1,keyUsages:n=["sign","verify"],subtleCrypto:o}=t??{},i=pp(o),s=await i.generateKey({name:"ECDSA",namedCurve:"P-256"},r,n),a=Ht(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=pp(r),o=Ht(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=Ht(await this._subtleCrypto.sign(r,this._keyPair.privateKey,t));return Object.assign(n,{__signature__:void 0}),n}};var na=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 q.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 oa(e){return e instanceof Uint8Array?j(e):j(new Uint8Array(e))}function cl(e){if(typeof e!="string"||e.length<64)throw new Error("Invalid public key.");return Ee(e)}var dn=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:oa(this.pubkey),...this.targets&&{targets:this.targets.map(t=>t.toHex())}}}};async function Ey(e,t,r,n){let o=new dn(t.toDer(),BigInt(+r)*BigInt(1e6),n),i=new Uint8Array([...lc,...new Uint8Array(vr({...o}))]),s=await e.sign(i);return{delegation:o,signature:s}}var Lt=class e{static async create(t,r,n=new Date(Date.now()+900*1e3),o={}){let i=await Ey(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:l,targets:d}=s;if(d!==void 0&&!Array.isArray(d))throw new Error("Invalid targets.");return{delegation:new dn(cl(c),BigInt(`0x${l}`),d&&d.map(p=>{if(typeof p!="string")throw new Error("Invalid target.");return q.fromHex(p)})),signature:cl(a)}});return new this(o,cl(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:oa(r.pubkey),...o&&{targets:o.map(i=>i.toHex())}},signature:oa(n)}}),publicKey:oa(this.publicKey)}}},qt=class extends zt{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 vr(r);return{...n,body:{content:r,sender_sig:await this.sign(new Uint8Array([...ai,...new Uint8Array(o)])),sender_delegation:this._delegation.delegations,sender_pubkey:this._delegation.publicKey}}}},Vi=class e extends na{#e;get delegation(){return this.#e}constructor(t,r){super(t),this.#e=r}static fromDelegation(t,r){return new e(t,r)}};function ll(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"?q.fromText(o):o)):r.push(typeof n=="string"?q.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 fp=["mousedown","mousemove","keydown","touchstart","wheel"],Pi=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),fp.forEach(s=>{document.addEventListener(s,o,!0)});let i=(s,a)=>{let c;return(...l)=>{let d=this,p=()=>{c=void 0,s.apply(d,l)};clearTimeout(c),c=window.setTimeout(p,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);fp.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 Ry=(e,t)=>t.some(r=>e instanceof r),hp,mp;function vy(){return hp||(hp=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Iy(){return mp||(mp=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var _p=new WeakMap,dl=new WeakMap,yp=new WeakMap,ul=new WeakMap,fl=new WeakMap;function Ay(e){let t=new Promise((r,n)=>{let o=()=>{e.removeEventListener("success",i),e.removeEventListener("error",s)},i=()=>{r(Yt(e.result)),o()},s=()=>{n(e.error),o()};e.addEventListener("success",i),e.addEventListener("error",s)});return t.then(r=>{r instanceof IDBCursor&&_p.set(r,e)}).catch(()=>{}),fl.set(t,e),t}function Sy(e){if(dl.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)});dl.set(e,t)}var pl={get(e,t,r){if(e instanceof IDBTransaction){if(t==="done")return dl.get(e);if(t==="objectStoreNames")return e.objectStoreNames||yp.get(e);if(t==="store")return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return Yt(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 gp(e){pl=e(pl)}function Cy(e){return e===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(t,...r){let n=e.call(ia(this),t,...r);return yp.set(n,t.sort?t.sort():[t]),Yt(n)}:Iy().includes(e)?function(...t){return e.apply(ia(this),t),Yt(_p.get(this))}:function(...t){return Yt(e.apply(ia(this),t))}}function Vy(e){return typeof e=="function"?Cy(e):(e instanceof IDBTransaction&&Sy(e),Ry(e,vy())?new Proxy(e,pl):e)}function Yt(e){if(e instanceof IDBRequest)return Ay(e);if(ul.has(e))return ul.get(e);let t=Vy(e);return t!==e&&(ul.set(e,t),fl.set(t,e)),t}var ia=e=>fl.get(e);function bp(e,t,{blocked:r,upgrade:n,blocking:o,terminated:i}={}){let s=indexedDB.open(e,t),a=Yt(s);return n&&s.addEventListener("upgradeneeded",c=>{n(Yt(s.result),c.oldVersion,c.newVersion,Yt(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",l=>o(l.oldVersion,l.newVersion,l))}).catch(()=>{}),a}var Py=["get","getKey","getAll","getAllKeys","count"],Fy=["put","add","delete","clear"],hl=new Map;function xp(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(hl.get(t))return hl.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,o=Fy.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||Py.includes(r)))return;let i=async function(s,...a){let c=this.transaction(s,o?"readwrite":"readonly"),l=c.store;return n&&(l=l.index(a.shift())),(await Promise.all([l[r](...a),o&&c.done]))[0]};return hl.set(t,i),i}gp(e=>({...e,get:(t,r,n)=>xp(t,r)||e.get(t,r,n),has:(t,r)=>!!xp(t,r)||e.has(t,r)}));var wp="auth-client-db",Tp="ic-keyval",By=async(e=wp,t=Tp,r)=>(globalThis.localStorage?.getItem(ke)&&(globalThis.localStorage.removeItem(ke),globalThis.localStorage.removeItem(We)),await bp(e,r,{upgrade:n=>{n.objectStoreNames.contains(t)&&n.clear(t),n.createObjectStore(t)}}));async function Dy(e,t,r){return await e.get(t,r)}async function Uy(e,t,r,n){return await e.put(t,n,r)}async function ky(e,t,r){return await e.delete(t,r)}var sa=class e{constructor(t,r){this._db=t,this._storeName=r}static async create(t){let{dbName:r=wp,storeName:n=Tp,version:o=Np}=t??{},i=await By(r,n,o);return new e(i,n)}async set(t,r){return await Uy(this._db,this._storeName,t,r)}async get(t){return await Dy(this._db,this._storeName,t)??null}async remove(t){return await ky(this._db,this._storeName,t)}};var We="identity",ke="delegation",Op="iv",Np=1,Fi=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}},Zt=class{#e;constructor(t){this.#e=t??{}}initializedDb;get _db(){return new Promise((t,r)=>{if(this.initializedDb){t(this.initializedDb);return}sa.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 Ly=BigInt(1e9),qy=BigInt(3600),My=Ly*qy,jy="https://identity.internetcomputer.org",Ky="#authorize",$y=BigInt(8)*My,ml="ECDSA",_l="Ed25519",Hy=500,aa="UserInterrupt",Bi=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 Zt,n=t.keyType??ml,o=null;if(t.identity)o=t.identity;else{let c=await r.get(We);if(!c)try{let l=new Fi,d=await l.get(ke),p=await l.get(We);d&&p&&n===ml&&(console.log("Discovered an identity stored in localstorage. Migrating to IndexedDB"),await r.set(ke,d),await r.set(We,p),c=d,await l.remove(ke),await l.remove(We))}catch(l){console.error(`error while attempting to recover localstorage: ${l}`)}if(c)try{typeof c=="object"?n===_l&&typeof c=="string"?o=dt.fromJSON(c):o=await xt.fromKeyPair(c):typeof c=="string"&&(o=dt.fromJSON(c))}catch{}}let i=new at,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=Lt.fromJSON(c),ll(s)?"toDer"in o?i=Vi.fromDelegation(o,s):i=qt.fromDelegation(o,s):(await yl(r),o=null))}catch(c){console.error(c),await yl(r),o=null}let a;return t.idleOptions?.disableIdle?a=void 0:(s||t.identity)&&(a=Pi.create(t.idleOptions)),o||(n===_l?o=dt.generate():(t.storage&&n===ml&&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 '${_l}' as the key type, as it can serialize to a string`),o=await xt.generate()),await Ep(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 dn(a.delegation.pubkey,a.delegation.expiration,a.delegation.targets),signature:a.signature})),o=Lt.fromDelegations(n,t.userPublicKey),i=this._key;if(!i)return;this._chain=o,"toDer"in i?this._identity=Vi.fromDelegation(i,this._chain):this._identity=qt.fromDelegation(i,this._chain),this._idpWindow?.close();let s=this._createOptions?.idleOptions;!this.idleManager&&!s?.disableIdle&&(this.idleManager=Pi.create(s),this._registerDefaultIdleCallback()),this._removeEventListener(),delete this._idpWindow,this._chain&&await this._storage.set(ke,JSON.stringify(this._chain.toJSON())),await Ep(this._storage,this._key),r?.(t)}getIdentity(){return this._identity}async isAuthenticated(){return!this.getIdentity().getPrincipal().isAnonymous()&&this._chain!==null&&ll(this._chain)}async login(t){let r=Gy(this._createOptions?.loginOptions,t),n=r?.maxTimeToLive??$y,o=new URL(r?.identityProvider?.toString()||jy);o.hash=Ky,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(aa,r?.onError):setTimeout(i,Hy))};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 yl(this._storage),this._identity=new at,this._chain=null,t.returnTo)try{window.history.pushState({},"",t.returnTo)}catch{window.location.href=t.returnTo}}};async function yl(e){await e.remove(We),await e.remove(ke),await e.remove(Op)}function Gy(e,t){if(!e&&!t)return;let r=e?.customValues||t?.customValues?{...e?.customValues,...t?.customValues}:void 0;return{...e,...t,customValues:r}}function Jy(e){if(e instanceof xt)return e.getKeyPair();if(e instanceof dt)return JSON.stringify(e.toJSON());throw new Error("Unsupported key type")}async function Ep(e,t){let r=Jy(t);await e.set(We,r)}var Ce=class e{static#e;#t;constructor(){}static getInstance(){return U(this.#e)&&(this.#e=new e),this.#e}createAuthClient=async()=>(this.#t=await Bi.create({idleOptions:{disableIdle:!0,disableDefaultIdleCallback:!0}}),this.#t);safeCreateAuthClient=async()=>{let t=new Zt;return await Promise.all([t.remove(We),t.remove(ke)]),await this.createAuthClient()};getAuthClient=()=>this.#t;logout=async()=>{await this.#t?.logout(),this.#t=null};setAuthClientStorage=async({delegationChain:t,sessionKey:r})=>{let n=new Zt;await Promise.all([n.set(We,r.getKeyPair()),n.set(ke,JSON.stringify(t.toJSON()))])}};var gl=async e=>{await Wy(),await Ce.getInstance().createAuthClient(),e?.windowReload!==!1&&window.location.reload()},Wy=async()=>{await Ce.getInstance().logout(),Ue.getInstance().reset(),Bo.getInstance().reset(),Fo.getInstance().reset()};var Rp=e=>{let t=e===!0?"./workers/auth.worker.js":e,r=new Worker(t),n=async()=>{Si({message:"junoSignOutAuthTimer"}),await gl()};return r.onmessage=async({data:o})=>{let{msg:i,data:s}=o;switch(i){case"junoSignOutAuthTimer":await n();return;case"junoDelegationRemainingTime":Si({message:"junoDelegationRemainingTime",detail:s?.authRemainingTime})}},Ue.getInstance().subscribe(o=>{if(U(o)){r.postMessage({msg:"junoStopAuthTimer"});return}r.postMessage({msg:"junoStartAuthTimer"})})};var Do=class e{static#e;#t;#r;static CHANNEL_NAME="juno_core_auth_channel";static MESSAGE_LOGIN_SUCCESS="authClientLoginSuccess";constructor(){this.#t=new BroadcastChannel(e.CHANNEL_NAME),this.#r=window.crypto.randomUUID()}static getInstance(){return U(this.#e)&&(this.#e=new e),this.#e}onLoginSuccess=t=>{let{location:{origin:r}}=window;this.#t.onmessage=async({origin:n,data:o})=>{n===r&&J(o)&&o.msg==="authClientLoginSuccess"&&_r(o.emitterId)&&o.emitterId!==this.#r&&await t()}};destroy=()=>{this.#t.close(),e.#e=null};postLoginSuccess=()=>{let t={emitterId:this.#r,msg:e.MESSAGE_LOGIN_SUCCESS};this.#t.postMessage(t)};get __test__only__emitter_id__(){return this.#r}};var Ie=class e extends Vo{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 Di=async({fn:e,syncTabsOnSuccess:t})=>{let{authenticated:r}=await zy({fn:e});!r||!t||Ie.getInstance().get()?.syncTabs===!1||Yy()},vp=async({fn:e})=>{let{createAuthClient:t}=Ce.getInstance(),n=await(await t()).isAuthenticated();await e({authenticated:n})},zy=async({fn:e})=>{let{createAuthClient:t,safeCreateAuthClient:r}=Ce.getInstance();return await(await t()).isAuthenticated()?(await e(),{authenticated:!0}):(await r(),{authenticated:!1})},Yy=()=>{try{Do.getInstance().postLoginSuccess()}catch(e){console.warn("Auth BroadcastChannel posting failed",e)}};var xl=({error:e,type:t})=>typeof e=="string"?e.includes(t):e instanceof Error?e.message.includes(t):!1;var Ip="juno.datastore.error.user.cannot_update";var Xt={certified:!1};var ca=()=>Ce.getInstance().getAuthClient()?.getIdentity(),Zy=async()=>{let{getAuthClient:e,createAuthClient:t}=Ce.getInstance();return(e()??await t()).getIdentity()},Xy=async()=>{let e=Ue.getInstance().get();if(U(e))return null;let t=Ce.getInstance().getAuthClient();return await t?.isAuthenticated()??!1?t?.getIdentity()??null:null};var ue=e=>J(e)?e:ca()??new at;var bl=({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}),l=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),d=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),p=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}),u=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,JwtVerify:d,GetOrFetchJwks:p,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),f=e.Variant({PrepareDelegation:u,RegisterUser:e.Text}),h=e.Variant({Ok:c,Err:f}),_=e.Record({jwt:e.Text,salt:e.Vec(e.Nat8)}),y=e.Variant({OpenId:_}),m=e.Variant({Write:e.Null,Submit:e.Null}),b=e.Record({scope:m,expires_at:e.Nat64}),g=e.Variant({JwtFindProvider:l,InvalidController:e.Text,GetCachedJwks:e.Null,JwtVerify:d,GetOrFetchJwks:p,ControllerAlreadyExists:e.Null,InvalidObservatoryId:e.Text,TooManyControllers:e.Text}),T=e.Variant({PrepareAutomation:g,RegisterController:e.Text,SaveWorkflowMetadata:e.Text,SaveUniqueJtiToken:e.Text}),O=e.Variant({Ok:e.Tuple(e.Principal,b),Err:T}),v=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}),E=e.Variant({Heap:e.Record({offset:e.Nat64}),Stable:e.Record({key:e.Opt(v)})}),C=e.Variant({Append:e.Null,Clear:e.Null,AppendWithRouting:e.Null}),w=e.Record({cursor:E,strategy:C,chunk_size:e.Opt(e.Nat32)}),I=e.Record({next_cursor:e.Opt(E)}),P=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),A=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),x=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),N=e.Record({field:x,desc:e.Bool}),S=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),B=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(S),description:e.Opt(e.Text),created_at:e.Opt(S)}),M=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),R=e.Record({order:e.Opt(N),owner:e.Opt(e.Principal),matcher:e.Opt(B),paginate:e.Opt(M)}),V=e.Record({controllers:e.Vec(e.Principal)}),F=e.Variant({Emulator:e.Null,Automation:e.Null}),D=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),k=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(F),created_at:e.Nat64,scope:D,expires_at:e.Opt(e.Nat64)}),te=e.Record({version:e.Opt(e.Nat64)}),Z=e.Variant({Db:e.Null,Storage:e.Null}),Y=e.Record({version:e.Opt(e.Nat64)}),xe=e.Record({proposal_ids:e.Vec(e.Nat)}),be=e.Record({cycles:e.Nat,destination_id:e.Principal}),ze=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),ne=e.Record({key:v,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,ze)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),ie=e.Variant({GitHub:e.Null,Google:e.Null}),er=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),fn=e.Record({delegation:e.Opt(er),client_id:e.Text}),tr=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(ie,fn))}),rr=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),nr=e.Record({allowed_callers:e.Vec(e.Principal)}),et=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(tr),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(rr),rules:e.Opt(nr)}),tt=e.Variant({GitHub:e.Null}),or=e.Record({scope:e.Opt(m),max_time_to_live:e.Opt(e.Nat64)}),hn=e.Record({owner:e.Text,name:e.Text}),mn=e.Record({refs:e.Opt(e.Vec(e.Text))}),bt=e.Record({controller:e.Opt(or),repositories:e.Vec(e.Tuple(hn,mn))}),ir=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(tt,bt))}),wt=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(ir),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64)}),rt=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),nt=e.Record({updated_at:e.Opt(e.Nat64),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(rt)}),Tt=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),sr=e.Variant({Deny:e.Null,Allow:e.Null}),ar=e.Record({status_code:e.Nat16,location:e.Text}),Le=e.Record({iframe:e.Opt(Tt),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(rt),raw_access:e.Opt(sr),redirects:e.Opt(e.Vec(e.Tuple(e.Text,ar)))}),_n=e.Record({db:e.Opt(nt),authentication:e.Opt(et),storage:Le,automation:e.Opt(wt)}),yn=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),gn=e.Variant({OpenId:yn}),xn=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),bn=e.Record({signature:e.Vec(e.Nat8),delegation:xn}),wn=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:d,GetOrFetchJwks:p,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),Tn=e.Variant({Ok:bn,Err:wn}),cr=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),lr=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Nn=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),ur=e.Variant({AssetsUpgrade:lr,SegmentsDeployment:Nn}),qe=e.Record({status:cr,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:ur}),ot=e.Variant({Controllers:e.Null,Private:e.Null,Public:e.Null,Managed:e.Null}),dr=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),Nt=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),updated_at:e.Nat64,max_size:e.Opt(e.Nat),read:ot,created_at:e.Nat64,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(dr),write:ot,max_changes_per_user:e.Opt(e.Nat32)}),On=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)}),Ot=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}),En=e.Variant({Callback:e.Record({token:Ot,callback:e.Func([],[],["query"])})}),Rn=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(En),status_code:e.Nat16}),vn=e.Record({token:e.Opt(Ot),body:e.Vec(e.Nat8)}),Et=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}),we=e.Record({batch_id:e.Nat}),In=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,ne)),items_length:e.Nat64}),An=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),it=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}),Sn=e.Record({desc:e.Bool}),Cn=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Vn=e.Record({order:e.Opt(Sn),paginate:e.Opt(Cn)}),Pn=e.Record({proposal_id:e.Nat}),pr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Pn,qe)),items_length:e.Nat64}),Fn=e.Record({include_system:e.Bool}),Bn=e.Record({matcher:e.Opt(Fn)}),fr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,Nt)),items_length:e.Nat64}),Dn=e.Record({stable:e.Nat64,heap:e.Nat64}),Un=e.Record({openid:e.Opt(tr),version:e.Opt(e.Nat64),internet_identity:e.Opt(rr),rules:e.Opt(nr)}),Sa=e.Record({openid:e.Opt(ir),version:e.Opt(e.Nat64)}),Ca=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(F),scope:D,expires_at:e.Opt(e.Nat64)}),Va=e.Record({controller:Ca,controllers:e.Vec(e.Principal)}),Pa=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt(rt)}),Lo=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),Fa=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),max_size:e.Opt(e.Nat),read:ot,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(dr),write:ot,max_changes_per_user:e.Opt(e.Nat32)}),qo=e.Record({iframe:e.Opt(Tt),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(rt),raw_access:e.Opt(sr),redirects:e.Opt(e.Vec(e.Tuple(e.Text,ar)))}),Ba=e.Record({skip_certification:e.Opt(e.Bool)}),Da=e.Record({config:qo,options:Ba}),Mo=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),jo=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([i],[h],[]),authenticate_automation:e.Func([y],[O],[]),certify_assets_chunk:e.Func([w],[I],[]),commit_asset_upload:e.Func([P],[],[]),commit_proposal:e.Func([A],[e.Null],[]),commit_proposal_asset_upload:e.Func([P],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(P)],[],[]),count_assets:e.Func([e.Text,R],[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,R],[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_controller_self:e.Func([],[],[]),del_controllers:e.Func([V],[e.Vec(e.Tuple(e.Principal,k))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,te],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,R],[],[]),del_filtered_docs:e.Func([e.Text,R],[],[]),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,te))],[],[]),del_rule:e.Func([Z,e.Text,Y],[],[]),delete_proposal_assets:e.Func([xe],[],[]),deposit_cycles:e.Func([be],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(ne)],["query"]),get_auth_config:e.Func([],[e.Opt(et)],["query"]),get_automation_config:e.Func([],[e.Opt(wt)],["query"]),get_config:e.Func([],[_n],[]),get_db_config:e.Func([],[e.Opt(nt)],["query"]),get_delegation:e.Func([gn],[Tn],["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(ne)))],["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(qe)],["query"]),get_rule:e.Func([Z,e.Text],[e.Opt(Nt)],["query"]),get_storage_config:e.Func([],[Le],["query"]),http_request:e.Func([On],[Rn],["query"]),http_request_streaming_callback:e.Func([Ot],[vn],["query"]),init_asset_upload:e.Func([Et],[we],[]),init_proposal:e.Func([ur],[e.Nat,qe],[]),init_proposal_asset_upload:e.Func([Et,e.Nat],[we],[]),init_proposal_many_assets_upload:e.Func([e.Vec(Et),e.Nat],[e.Vec(e.Tuple(e.Text,we))],[]),list_assets:e.Func([e.Text,R],[In],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,k))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,An))],["query"]),list_docs:e.Func([e.Text,R],[it],["query"]),list_proposals:e.Func([Vn],[pr],["query"]),list_rules:e.Func([Z,Bn],[fr],["query"]),memory_size:e.Func([],[Dn],["query"]),reject_proposal:e.Func([A],[e.Null],[]),set_asset_token:e.Func([e.Text,e.Text,e.Opt(e.Text)],[],[]),set_auth_config:e.Func([Un],[et],[]),set_automation_config:e.Func([Sa],[wt],[]),set_controllers:e.Func([Va],[e.Vec(e.Tuple(e.Principal,k))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([Pa],[nt],[]),set_doc:e.Func([e.Text,e.Text,Lo],[s],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,Lo))],[e.Vec(e.Tuple(e.Text,s))],[]),set_rule:e.Func([Z,e.Text,Fa],[Nt],[]),set_storage_config:e.Func([qo],[Le],[]),set_storage_config_with_options:e.Func([Da],[Le],[]),submit_proposal:e.Func([e.Nat],[e.Nat,qe],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([Mo],[jo],[]),upload_proposal_asset_chunk:e.Func([Mo],[jo],[])})},wl=({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}),l=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),d=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),p=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}),u=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,JwtVerify:d,GetOrFetchJwks:p,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),f=e.Variant({PrepareDelegation:u,RegisterUser:e.Text}),h=e.Variant({Ok:c,Err:f}),_=e.Record({jwt:e.Text,salt:e.Vec(e.Nat8)}),y=e.Variant({OpenId:_}),m=e.Variant({Write:e.Null,Submit:e.Null}),b=e.Record({scope:m,expires_at:e.Nat64}),g=e.Variant({JwtFindProvider:l,InvalidController:e.Text,GetCachedJwks:e.Null,JwtVerify:d,GetOrFetchJwks:p,ControllerAlreadyExists:e.Null,InvalidObservatoryId:e.Text,TooManyControllers:e.Text}),T=e.Variant({PrepareAutomation:g,RegisterController:e.Text,SaveWorkflowMetadata:e.Text,SaveUniqueJtiToken:e.Text}),O=e.Variant({Ok:e.Tuple(e.Principal,b),Err:T}),v=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}),E=e.Variant({Heap:e.Record({offset:e.Nat64}),Stable:e.Record({key:e.Opt(v)})}),C=e.Variant({Append:e.Null,Clear:e.Null,AppendWithRouting:e.Null}),w=e.Record({cursor:E,strategy:C,chunk_size:e.Opt(e.Nat32)}),I=e.Record({next_cursor:e.Opt(E)}),P=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),A=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),x=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),N=e.Record({field:x,desc:e.Bool}),S=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),B=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(S),description:e.Opt(e.Text),created_at:e.Opt(S)}),M=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),R=e.Record({order:e.Opt(N),owner:e.Opt(e.Principal),matcher:e.Opt(B),paginate:e.Opt(M)}),V=e.Record({controllers:e.Vec(e.Principal)}),F=e.Variant({Emulator:e.Null,Automation:e.Null}),D=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),k=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(F),created_at:e.Nat64,scope:D,expires_at:e.Opt(e.Nat64)}),te=e.Record({version:e.Opt(e.Nat64)}),Z=e.Variant({Db:e.Null,Storage:e.Null}),Y=e.Record({version:e.Opt(e.Nat64)}),xe=e.Record({proposal_ids:e.Vec(e.Nat)}),be=e.Record({cycles:e.Nat,destination_id:e.Principal}),ze=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),ne=e.Record({key:v,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,ze)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),ie=e.Variant({GitHub:e.Null,Google:e.Null}),er=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),fn=e.Record({delegation:e.Opt(er),client_id:e.Text}),tr=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(ie,fn))}),rr=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),nr=e.Record({allowed_callers:e.Vec(e.Principal)}),et=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(tr),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(rr),rules:e.Opt(nr)}),tt=e.Variant({GitHub:e.Null}),or=e.Record({scope:e.Opt(m),max_time_to_live:e.Opt(e.Nat64)}),hn=e.Record({owner:e.Text,name:e.Text}),mn=e.Record({refs:e.Opt(e.Vec(e.Text))}),bt=e.Record({controller:e.Opt(or),repositories:e.Vec(e.Tuple(hn,mn))}),ir=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(tt,bt))}),wt=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(ir),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64)}),rt=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),nt=e.Record({updated_at:e.Opt(e.Nat64),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(rt)}),Tt=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),sr=e.Variant({Deny:e.Null,Allow:e.Null}),ar=e.Record({status_code:e.Nat16,location:e.Text}),Le=e.Record({iframe:e.Opt(Tt),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(rt),raw_access:e.Opt(sr),redirects:e.Opt(e.Vec(e.Tuple(e.Text,ar)))}),_n=e.Record({db:e.Opt(nt),authentication:e.Opt(et),storage:Le,automation:e.Opt(wt)}),yn=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),gn=e.Variant({OpenId:yn}),xn=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),bn=e.Record({signature:e.Vec(e.Nat8),delegation:xn}),wn=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:d,GetOrFetchJwks:p,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),Tn=e.Variant({Ok:bn,Err:wn}),cr=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),lr=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Nn=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),ur=e.Variant({AssetsUpgrade:lr,SegmentsDeployment:Nn}),qe=e.Record({status:cr,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:ur}),ot=e.Variant({Controllers:e.Null,Private:e.Null,Public:e.Null,Managed:e.Null}),dr=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),Nt=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),updated_at:e.Nat64,max_size:e.Opt(e.Nat),read:ot,created_at:e.Nat64,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(dr),write:ot,max_changes_per_user:e.Opt(e.Nat32)}),On=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)}),Ot=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}),En=e.Variant({Callback:e.Record({token:Ot,callback:e.Func([],[],[])})}),Rn=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(En),status_code:e.Nat16}),vn=e.Record({token:e.Opt(Ot),body:e.Vec(e.Nat8)}),Et=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}),we=e.Record({batch_id:e.Nat}),In=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,ne)),items_length:e.Nat64}),An=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),it=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}),Sn=e.Record({desc:e.Bool}),Cn=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Vn=e.Record({order:e.Opt(Sn),paginate:e.Opt(Cn)}),Pn=e.Record({proposal_id:e.Nat}),pr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Pn,qe)),items_length:e.Nat64}),Fn=e.Record({include_system:e.Bool}),Bn=e.Record({matcher:e.Opt(Fn)}),fr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,Nt)),items_length:e.Nat64}),Dn=e.Record({stable:e.Nat64,heap:e.Nat64}),Un=e.Record({openid:e.Opt(tr),version:e.Opt(e.Nat64),internet_identity:e.Opt(rr),rules:e.Opt(nr)}),Sa=e.Record({openid:e.Opt(ir),version:e.Opt(e.Nat64)}),Ca=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(F),scope:D,expires_at:e.Opt(e.Nat64)}),Va=e.Record({controller:Ca,controllers:e.Vec(e.Principal)}),Pa=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt(rt)}),Lo=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),Fa=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),max_size:e.Opt(e.Nat),read:ot,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(dr),write:ot,max_changes_per_user:e.Opt(e.Nat32)}),qo=e.Record({iframe:e.Opt(Tt),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(rt),raw_access:e.Opt(sr),redirects:e.Opt(e.Vec(e.Tuple(e.Text,ar)))}),Ba=e.Record({skip_certification:e.Opt(e.Bool)}),Da=e.Record({config:qo,options:Ba}),Mo=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),jo=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([i],[h],[]),authenticate_automation:e.Func([y],[O],[]),certify_assets_chunk:e.Func([w],[I],[]),commit_asset_upload:e.Func([P],[],[]),commit_proposal:e.Func([A],[e.Null],[]),commit_proposal_asset_upload:e.Func([P],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(P)],[],[]),count_assets:e.Func([e.Text,R],[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,R],[e.Nat64],[]),count_proposals:e.Func([],[e.Nat64],[]),del_asset:e.Func([e.Text,e.Text],[],[]),del_assets:e.Func([e.Text],[],[]),del_controller_self:e.Func([],[],[]),del_controllers:e.Func([V],[e.Vec(e.Tuple(e.Principal,k))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,te],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,R],[],[]),del_filtered_docs:e.Func([e.Text,R],[],[]),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,te))],[],[]),del_rule:e.Func([Z,e.Text,Y],[],[]),delete_proposal_assets:e.Func([xe],[],[]),deposit_cycles:e.Func([be],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(ne)],[]),get_auth_config:e.Func([],[e.Opt(et)],[]),get_automation_config:e.Func([],[e.Opt(wt)],[]),get_config:e.Func([],[_n],[]),get_db_config:e.Func([],[e.Opt(nt)],[]),get_delegation:e.Func([gn],[Tn],[]),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(ne)))],[]),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(qe)],[]),get_rule:e.Func([Z,e.Text],[e.Opt(Nt)],[]),get_storage_config:e.Func([],[Le],[]),http_request:e.Func([On],[Rn],[]),http_request_streaming_callback:e.Func([Ot],[vn],[]),init_asset_upload:e.Func([Et],[we],[]),init_proposal:e.Func([ur],[e.Nat,qe],[]),init_proposal_asset_upload:e.Func([Et,e.Nat],[we],[]),init_proposal_many_assets_upload:e.Func([e.Vec(Et),e.Nat],[e.Vec(e.Tuple(e.Text,we))],[]),list_assets:e.Func([e.Text,R],[In],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,k))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,An))],[]),list_docs:e.Func([e.Text,R],[it],[]),list_proposals:e.Func([Vn],[pr],[]),list_rules:e.Func([Z,Bn],[fr],[]),memory_size:e.Func([],[Dn],[]),reject_proposal:e.Func([A],[e.Null],[]),set_asset_token:e.Func([e.Text,e.Text,e.Opt(e.Text)],[],[]),set_auth_config:e.Func([Un],[et],[]),set_automation_config:e.Func([Sa],[wt],[]),set_controllers:e.Func([Va],[e.Vec(e.Tuple(e.Principal,k))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([Pa],[nt],[]),set_doc:e.Func([e.Text,e.Text,Lo],[s],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,Lo))],[e.Vec(e.Tuple(e.Text,s))],[]),set_rule:e.Func([Z,e.Text,Fa],[Nt],[]),set_storage_config:e.Func([qo],[Le],[]),set_storage_config_with_options:e.Func([Da],[Le],[]),submit_proposal:e.Func([e.Nat],[e.Nat,qe],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([Mo],[jo],[]),upload_proposal_asset_chunk:e.Func([Mo],[jo],[])})},Qy=({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({GitHub:e.Null,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),preferred_username:e.Opt(e.Text)}),c=e.Record({provider:s,data:a}),l=e.Variant({InternetIdentity:e.Null,OpenId:c}),d=e.Record({updated_at:e.Nat64,credits:t,mission_control_id:e.Opt(e.Principal),provider:e.Opt(l),owner:e.Principal,created_at:e.Nat64}),p=e.Record({delegation:i,account:d}),u=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}),_=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),y=e.Variant({PrepareDelegation:_,RegisterUser:e.Text}),m=e.Variant({Ok:p,Err:y}),b=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),g=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),T=e.Record({subnet_id:e.Opt(e.Principal)}),O=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),name:e.Opt(e.Text),user:e.Principal}),v=e.Variant({Heap:e.Null,Stable:e.Null}),E=e.Record({system_memory:e.Opt(v)}),C=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),storage:e.Opt(E),name:e.Opt(e.Text),user:e.Principal}),w=e.Record({controllers:e.Vec(e.Principal)}),I=e.Record({proposal_ids:e.Vec(e.Nat)}),P=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),A=e.Record({delegation:e.Opt(P),client_id:e.Text}),x=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(s,A))}),N=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),S=e.Record({allowed_callers:e.Vec(e.Principal)}),B=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(x),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(S)}),M=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),R=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),V=e.Variant({Deny:e.Null,Allow:e.Null}),F=e.Record({status_code:e.Nat16,location:e.Text}),D=e.Record({iframe:e.Opt(M),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(R),raw_access:e.Opt(V),redirects:e.Opt(e.Vec(e.Tuple(e.Text,F)))}),k=e.Record({authentication:e.Opt(B),storage:D}),te=e.Record({user:e.Principal}),Z=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Y=e.Variant({OpenId:Z}),xe=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),be=e.Record({signature:e.Vec(e.Nat8),delegation:xe}),ze=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),ne=e.Variant({Ok:be,Err:ze}),ie=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),er=e.Record({e12s:e.Nat64}),fn=e.Record({updated_at:e.Nat64,fee_cycles:er,fee_icp:e.Opt(t)}),tr=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),rr=e.Record({clear_existing_assets:e.Opt(e.Bool)}),nr=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),et=e.Variant({AssetsUpgrade:rr,SegmentsDeployment:nr}),tt=e.Record({status:tr,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:et}),or=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),hn=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)}),mn=e.Variant({Heap:e.Null,Stable:e.Null}),bt=e.Record({memory:mn,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}),ir=e.Variant({Callback:e.Record({token:bt,callback:e.Func([],[],["query"])})}),wt=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(ir),status_code:e.Nat16}),rt=e.Record({token:e.Opt(bt),body:e.Vec(e.Nat8)}),nt=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}),Tt=e.Record({batch_id:e.Nat}),sr=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),ar=e.Record({field:sr,desc:e.Bool}),Le=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),_n=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(Le),description:e.Opt(e.Text),created_at:e.Opt(Le)}),yn=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),gn=e.Record({order:e.Opt(ar),owner:e.Opt(e.Principal),matcher:e.Opt(_n),paginate:e.Opt(yn)}),xn=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}),bn=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),wn=e.Record({key:xn,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,bn)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),Tn=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,wn)),items_length:e.Nat64}),cr=e.Variant({Emulator:e.Null,Automation:e.Null}),lr=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),Nn=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(cr),created_at:e.Nat64,scope:lr,expires_at:e.Opt(e.Nat64)}),ur=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),qe=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),ot=e.Record({status:qe,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)}),dr=e.Record({block_index:e.Nat64,ledger_id:e.Principal}),Nt=e.Record({owner:e.Principal,subaccount:e.Opt(e.Vec(e.Nat8))}),On=e.Record({status:qe,updated_at:e.Nat64,created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64),purchaser:Nt}),Ot=e.Record({desc:e.Bool}),En=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Rn=e.Record({order:e.Opt(Ot),paginate:e.Opt(En)}),vn=e.Record({proposal_id:e.Nat}),Et=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(vn,tt)),items_length:e.Nat64}),we=e.Variant({Orbiter:e.Null,Satellite:e.Null}),In=e.Record({segment_id:e.Opt(e.Principal),segment_kind:e.Opt(we)}),An=e.Record({user:e.Principal,segment_id:e.Principal,segment_kind:we}),it=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,created_at:e.Nat64}),Sn=e.Record({openid:e.Opt(x),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(S)}),Cn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(cr),scope:lr,expires_at:e.Opt(e.Nat64)}),Vn=e.Record({controller:Cn,controllers:e.Vec(e.Principal)}),Pn=e.Record({fee_cycles:er,fee_icp:e.Opt(t)}),pr=e.Record({metadata:e.Opt(e.Vec(e.Tuple(e.Text,e.Text))),segment_id:e.Principal,segment_kind:we}),Fn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:we}),Bn=e.Record({iframe:e.Opt(M),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(R),raw_access:e.Opt(V),redirects:e.Opt(e.Vec(e.Tuple(e.Text,F)))}),fr=e.Record({segment_id:e.Principal,segment_kind:we}),Dn=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Un=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],[m],[]),commit_proposal:e.Func([b],[e.Null],[]),commit_proposal_asset_upload:e.Func([g],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(g)],[],[]),count_proposals:e.Func([],[e.Nat64],["query"]),create_mission_control:e.Func([T],[e.Principal],[]),create_orbiter:e.Func([O],[e.Principal],[]),create_satellite:e.Func([C],[e.Principal],[]),del_controllers:e.Func([w],[],[]),del_custom_domain:e.Func([e.Text],[],[]),delete_proposal_assets:e.Func([I],[],[]),get_account:e.Func([],[e.Opt(d)],["query"]),get_auth_config:e.Func([],[e.Opt(B)],["query"]),get_config:e.Func([],[k],["query"]),get_create_orbiter_fee:e.Func([te],[e.Opt(t)],["query"]),get_create_satellite_fee:e.Func([te],[e.Opt(t)],["query"]),get_credits:e.Func([],[t],["query"]),get_delegation:e.Func([Y],[ne],["query"]),get_fee:e.Func([ie],[fn],["query"]),get_or_init_account:e.Func([],[d],[]),get_proposal:e.Func([e.Nat],[e.Opt(tt)],["query"]),get_rate_config:e.Func([ie],[or],["query"]),get_storage_config:e.Func([],[D],["query"]),http_request:e.Func([hn],[wt],["query"]),http_request_streaming_callback:e.Func([bt],[rt],["query"]),init_proposal:e.Func([et],[e.Nat,tt],[]),init_proposal_asset_upload:e.Func([nt,e.Nat],[Tt],[]),init_proposal_many_assets_upload:e.Func([e.Vec(nt),e.Nat],[e.Vec(e.Tuple(e.Text,Tt))],[]),list_accounts:e.Func([],[e.Vec(e.Tuple(e.Principal,d))],["query"]),list_assets:e.Func([e.Text,gn],[Tn],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,Nn))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,ur))],["query"]),list_icp_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,ot))],["query"]),list_icrc_payments:e.Func([],[e.Vec(e.Tuple(dr,On))],["query"]),list_proposals:e.Func([Rn],[Et],["query"]),list_segments:e.Func([In],[e.Vec(e.Tuple(An,it))],["query"]),reject_proposal:e.Func([b],[e.Null],[]),set_auth_config:e.Func([Sn],[B],[]),set_controllers:e.Func([Vn],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([ie,Pn],[],[]),set_many_segments:e.Func([e.Vec(pr)],[e.Vec(it)],[]),set_rate_config:e.Func([ie,or],[],[]),set_segment:e.Func([pr],[it],[]),set_segment_metadata:e.Func([Fn],[it],[]),set_storage_config:e.Func([Bn],[D],[]),submit_proposal:e.Func([e.Nat],[e.Nat,tt],[]),unset_many_segments:e.Func([e.Vec(fr)],[],[]),unset_segment:e.Func([fr],[],[]),upload_proposal_asset_chunk:e.Func([Dn],[Un],[])})},e0=({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({GitHub:e.Null,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),preferred_username:e.Opt(e.Text)}),c=e.Record({provider:s,data:a}),l=e.Variant({InternetIdentity:e.Null,OpenId:c}),d=e.Record({updated_at:e.Nat64,credits:t,mission_control_id:e.Opt(e.Principal),provider:e.Opt(l),owner:e.Principal,created_at:e.Nat64}),p=e.Record({delegation:i,account:d}),u=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}),_=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),y=e.Variant({PrepareDelegation:_,RegisterUser:e.Text}),m=e.Variant({Ok:p,Err:y}),b=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),g=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),T=e.Record({subnet_id:e.Opt(e.Principal)}),O=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),name:e.Opt(e.Text),user:e.Principal}),v=e.Variant({Heap:e.Null,Stable:e.Null}),E=e.Record({system_memory:e.Opt(v)}),C=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),storage:e.Opt(E),name:e.Opt(e.Text),user:e.Principal}),w=e.Record({controllers:e.Vec(e.Principal)}),I=e.Record({proposal_ids:e.Vec(e.Nat)}),P=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),A=e.Record({delegation:e.Opt(P),client_id:e.Text}),x=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(s,A))}),N=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),S=e.Record({allowed_callers:e.Vec(e.Principal)}),B=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(x),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(S)}),M=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),R=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),V=e.Variant({Deny:e.Null,Allow:e.Null}),F=e.Record({status_code:e.Nat16,location:e.Text}),D=e.Record({iframe:e.Opt(M),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(R),raw_access:e.Opt(V),redirects:e.Opt(e.Vec(e.Tuple(e.Text,F)))}),k=e.Record({authentication:e.Opt(B),storage:D}),te=e.Record({user:e.Principal}),Z=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Y=e.Variant({OpenId:Z}),xe=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),be=e.Record({signature:e.Vec(e.Nat8),delegation:xe}),ze=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),ne=e.Variant({Ok:be,Err:ze}),ie=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),er=e.Record({e12s:e.Nat64}),fn=e.Record({updated_at:e.Nat64,fee_cycles:er,fee_icp:e.Opt(t)}),tr=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),rr=e.Record({clear_existing_assets:e.Opt(e.Bool)}),nr=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),et=e.Variant({AssetsUpgrade:rr,SegmentsDeployment:nr}),tt=e.Record({status:tr,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:et}),or=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),hn=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)}),mn=e.Variant({Heap:e.Null,Stable:e.Null}),bt=e.Record({memory:mn,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}),ir=e.Variant({Callback:e.Record({token:bt,callback:e.Func([],[],[])})}),wt=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(ir),status_code:e.Nat16}),rt=e.Record({token:e.Opt(bt),body:e.Vec(e.Nat8)}),nt=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}),Tt=e.Record({batch_id:e.Nat}),sr=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),ar=e.Record({field:sr,desc:e.Bool}),Le=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),_n=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(Le),description:e.Opt(e.Text),created_at:e.Opt(Le)}),yn=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),gn=e.Record({order:e.Opt(ar),owner:e.Opt(e.Principal),matcher:e.Opt(_n),paginate:e.Opt(yn)}),xn=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}),bn=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),wn=e.Record({key:xn,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,bn)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),Tn=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,wn)),items_length:e.Nat64}),cr=e.Variant({Emulator:e.Null,Automation:e.Null}),lr=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),Nn=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(cr),created_at:e.Nat64,scope:lr,expires_at:e.Opt(e.Nat64)}),ur=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),qe=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),ot=e.Record({status:qe,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)}),dr=e.Record({block_index:e.Nat64,ledger_id:e.Principal}),Nt=e.Record({owner:e.Principal,subaccount:e.Opt(e.Vec(e.Nat8))}),On=e.Record({status:qe,updated_at:e.Nat64,created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64),purchaser:Nt}),Ot=e.Record({desc:e.Bool}),En=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Rn=e.Record({order:e.Opt(Ot),paginate:e.Opt(En)}),vn=e.Record({proposal_id:e.Nat}),Et=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(vn,tt)),items_length:e.Nat64}),we=e.Variant({Orbiter:e.Null,Satellite:e.Null}),In=e.Record({segment_id:e.Opt(e.Principal),segment_kind:e.Opt(we)}),An=e.Record({user:e.Principal,segment_id:e.Principal,segment_kind:we}),it=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,created_at:e.Nat64}),Sn=e.Record({openid:e.Opt(x),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(S)}),Cn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(cr),scope:lr,expires_at:e.Opt(e.Nat64)}),Vn=e.Record({controller:Cn,controllers:e.Vec(e.Principal)}),Pn=e.Record({fee_cycles:er,fee_icp:e.Opt(t)}),pr=e.Record({metadata:e.Opt(e.Vec(e.Tuple(e.Text,e.Text))),segment_id:e.Principal,segment_kind:we}),Fn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:we}),Bn=e.Record({iframe:e.Opt(M),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(R),raw_access:e.Opt(V),redirects:e.Opt(e.Vec(e.Tuple(e.Text,F)))}),fr=e.Record({segment_id:e.Principal,segment_kind:we}),Dn=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Un=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],[m],[]),commit_proposal:e.Func([b],[e.Null],[]),commit_proposal_asset_upload:e.Func([g],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(g)],[],[]),count_proposals:e.Func([],[e.Nat64],[]),create_mission_control:e.Func([T],[e.Principal],[]),create_orbiter:e.Func([O],[e.Principal],[]),create_satellite:e.Func([C],[e.Principal],[]),del_controllers:e.Func([w],[],[]),del_custom_domain:e.Func([e.Text],[],[]),delete_proposal_assets:e.Func([I],[],[]),get_account:e.Func([],[e.Opt(d)],[]),get_auth_config:e.Func([],[e.Opt(B)],[]),get_config:e.Func([],[k],[]),get_create_orbiter_fee:e.Func([te],[e.Opt(t)],[]),get_create_satellite_fee:e.Func([te],[e.Opt(t)],[]),get_credits:e.Func([],[t],[]),get_delegation:e.Func([Y],[ne],[]),get_fee:e.Func([ie],[fn],[]),get_or_init_account:e.Func([],[d],[]),get_proposal:e.Func([e.Nat],[e.Opt(tt)],[]),get_rate_config:e.Func([ie],[or],[]),get_storage_config:e.Func([],[D],[]),http_request:e.Func([hn],[wt],[]),http_request_streaming_callback:e.Func([bt],[rt],[]),init_proposal:e.Func([et],[e.Nat,tt],[]),init_proposal_asset_upload:e.Func([nt,e.Nat],[Tt],[]),init_proposal_many_assets_upload:e.Func([e.Vec(nt),e.Nat],[e.Vec(e.Tuple(e.Text,Tt))],[]),list_accounts:e.Func([],[e.Vec(e.Tuple(e.Principal,d))],[]),list_assets:e.Func([e.Text,gn],[Tn],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,Nn))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,ur))],[]),list_icp_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,ot))],[]),list_icrc_payments:e.Func([],[e.Vec(e.Tuple(dr,On))],[]),list_proposals:e.Func([Rn],[Et],[]),list_segments:e.Func([In],[e.Vec(e.Tuple(An,it))],[]),reject_proposal:e.Func([b],[e.Null],[]),set_auth_config:e.Func([Sn],[B],[]),set_controllers:e.Func([Vn],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([ie,Pn],[],[]),set_many_segments:e.Func([e.Vec(pr)],[e.Vec(it)],[]),set_rate_config:e.Func([ie,or],[],[]),set_segment:e.Func([pr],[it],[]),set_segment_metadata:e.Func([Fn],[it],[]),set_storage_config:e.Func([Bn],[D],[]),submit_proposal:e.Func([e.Nat],[e.Nat,tt],[]),unset_many_segments:e.Func([e.Vec(fr)],[],[]),unset_segment:e.Func([fr],[],[]),upload_proposal_asset_chunk:e.Func([Dn],[Un],[])})};var t0=async({identity:e,host:t,localActor:r})=>await Lr.create({identity:e,host:t,retryTimes:10,shouldFetchRootKey:r}),r0=async({agent:e,...t})=>e??await n0(t),n0=async({identity:e,container:t})=>{let r=J(t)&&t!==!1;return await t0({identity:e,host:r?t===!0?"http://127.0.0.1:5987":t:"https://icp-api.io",localActor:r})};var Ap=({satelliteId:e,certified:t=!1,...r})=>Cp({canisterId:e,...r,idlFactory:t?wl:bl});var Sp=({consoleId:e,certified:t=!1,...r})=>Cp({canisterId:e,...r,idlFactory:t?e0:Qy}),Cp=({canisterId:e,idlFactory:t,...r})=>{if(U(e))throw new Error("No canister ID provided.");return o0({canisterId:e,idlFactory:t,...r})},o0=async({canisterId:e,idlFactory:t,config:r,...n})=>{let o=await r0(n);return Co.createActor(t,{agent:o,canisterId:e,...r??{}})};var Vp=({satelliteId:e,container:t})=>{let{satelliteId:r}=Tl({satelliteId:e}),{container:n}=Nl({container:t});if(J(n)&&n!==!1){let{host:o,protocol:i}=new URL(n===!0?Po:n);return`${i}//${r??"unknown"}.${o.replace("127.0.0.1","localhost")}`}return`https://${r??"unknown"}.icp0.io`},Tl=({satelliteId:e})=>J(e)?{satelliteId:e}:Ie.getInstance().get()??{satelliteId:void 0},Nl=({container:e})=>J(e)?{container:e}:Ie.getInstance().get()??{container:void 0};var ge=({satellite:e,options:{certified:t}})=>Fp({idlFactory:t?wl:bl,actorKey:`stock#${t?"update":"query"}`,...e}),Pp=({idlFactory:e,...t})=>Fp({idlFactory:e,actorKey:"extended#query",...t}),Fp=async({satelliteId:e,container:t,...r})=>{let{satelliteId:n}=Tl({satelliteId:e});Ko(n,"No satellite ID defined. Did you initialize Juno?");let{container:o}=Nl({container:t});return await Bo.getInstance().getActor({satelliteId:n,container:o,...r})};var la=class extends Error{},qr=class extends Error{},ua=class extends Error{},da=class extends Error{},Uo=class extends Error{},pa=class extends Error{},fa=class extends Error{},ha=class extends Error{},ma=class extends Error{};var Bp=e=>{if(U(e))return se();switch(e.matcher){case"equal":return se({Equal:e.timestamp});case"greaterThan":return se({GreaterThan:e.timestamp});case"lessThan":return se({LessThan:e.timestamp});case"between":return se({Between:[e.timestamps.start,e.timestamps.end]});default:throw new ma("Invalid list matcher for timestamp",e)}},pn=({matcher:e,paginate:t,order:r,owner:n})=>({matcher:U(e)?[]:[{key:se(e.key),description:se(e.description),created_at:Bp(e.createdAt),updated_at:Bp(e.updatedAt)}],paginate:se(U(t)?void 0:{start_after:se(t.startAfter),limit:se(U(t.limit)?void 0:BigInt(t.limit))}),order:se(U(r)?void 0:{desc:r.desc,field:r.field==="created_at"?{CreatedAt:null}:r.field==="updated_at"?{UpdatedAt:null}:{Keys:null}}),owner:se(U(n)?void 0:typeof n=="string"?q.fromText(n):n)});var Dp=async({data:e})=>{try{return await ji(e)}catch(t){console.error("The data parsing has failed, mapping to undefined as a fallback.",t);return}};var Ol=async e=>{let{data:t,version:r,description:n}=e;return{description:se(n),data:await Ll(t),version:se(r)}},El=e=>{let{version:t}=e;return{version:se(t)}},so=async({doc:e,key:t})=>{let{owner:r,version:n,description:o,data:i,...s}=e;return{key:t,description:me(o),owner:r.toText(),data:await ji(i),version:me(n),...s}};var Up=async({collection:e,key:t,...r})=>{let{get_doc:n}=await ge(r),o=me(await n(e,t));if(!U(o))return so({doc:o,key:t})},kp=async({docs:e,...t})=>{let{get_many_docs:r}=await ge(t),n=e.map(({collection:s,key:a})=>[s,a]),o=await r(n),i=[];for(let[s,a]of o){let c=me(a);i.push(J(c)?await so({key:s,doc:c}):void 0)}return i},Lp=async({collection:e,doc:t,...r})=>{let{set_doc:n}=await ge(r),{key:o}=t,i=await Ol(t),s=await n(e,o,i);return await so({key:o,doc:s})},qp=async({docs:e,...t})=>{let{set_many_docs:r}=await ge(t),n=[];for(let{collection:s,doc:a}of e){let{key:c}=a;n.push([s,c,await Ol(a)])}let o=await r(n),i=[];for(let[s,a]of o)i.push(await so({key:s,doc:a}));return i},Mp=async({collection:e,doc:t,...r})=>{let{del_doc:n}=await ge(r),{key:o}=t;return n(e,o,El(t))},jp=async({docs:e,...t})=>{let{del_many_docs:r}=await ge(t),n=e.map(({collection:o,doc:i})=>[o,i.key,El(i)]);await r(n)},Kp=async({collection:e,filter:t,...r})=>{let{del_filtered_docs:n}=await ge(r);return n(e,pn(t))},$p=async({collection:e,filter:t,...r})=>{let{list_docs:n}=await ge(r),{items:o,items_page:i,items_length:s,matches_length:a,matches_pages:c}=await n(e,pn(t)),l=[];for(let[d,p]of o){let{data:u,owner:f,description:h,version:_,...y}=p;l.push({key:d,description:me(h),owner:f.toText(),data:await Dp({data:u}),version:me(_),...y})}return{items:l,items_length:s,items_page:me(i),matches_length:a,matches_pages:me(c)}},Hp=async({collection:e,filter:t,...r})=>{let{count_docs:n}=await ge(r);return n(e,pn(t))};var _a=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await Up({...r,satellite:{...e,identity:n},options:t??Xt})},GO=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await kp({...r,satellite:{...e,identity:n},options:t??Xt})},Gp=async({satellite:e,...t})=>{let r=ue(e?.identity);return await Lp({...t,satellite:{...e,identity:r},options:{certified:!0}})},Jp=async({satellite:e,...t})=>{let r=ue(e?.identity);return await qp({...t,satellite:{...e,identity:r},options:{certified:!0}})},JO=async({satellite:e,...t})=>{let r=ue(e?.identity);return await Mp({...t,satellite:{...e,identity:r},options:{certified:!0}})},WO=async({satellite:e,...t})=>{let r=ue(e?.identity);return await jp({...t,satellite:{...e,identity:r},options:{certified:!0}})},zO=async({satellite:e,filter:t,...r})=>{let n=ue(e?.identity);return await Kp({...r,filter:t??{},satellite:{...e,identity:n},options:{certified:!0}})},YO=async({satellite:e,options:t,filter:r,...n})=>{let o=ue(e?.identity);return await $p({...n,filter:r??{},satellite:{...e,identity:o},options:t??Xt})},ZO=async({satellite:e,options:t,filter:r,...n})=>{let o=ue(e?.identity);return await Hp({...n,filter:r??{},satellite:{...e,identity:o},options:t??Xt})};var Wp=async({provider:e})=>{let{user:t,userId:r}=await ya();if(J(t))return t;try{return await i0({userId:r,provider:e})}catch(n){if(xl({error:n,type:Ip})){let o=await zp({userId:r});if(J(o))return o}throw n}},ya=async()=>{let e=ca();if(U(e))throw new ha("No identity to initialize the user. Have you initialized Juno?");let t=e.getPrincipal().toText(),r=await zp({userId:t});return{userId:t,user:r}},zp=({userId:e})=>_a({collection:"#user",key:e}),i0=({userId:e,...t})=>Gp({collection:"#user",doc:{key:e,data:t}});var ga=async({syncTabsOnSuccess:e}={syncTabsOnSuccess:!1})=>{await Di({fn:async()=>{let{user:r}=await ya();Ue.getInstance().set(r??null)},syncTabsOnSuccess:e})},Yp=async()=>{await vp({fn:async({authenticated:t})=>{let n=t?ya:()=>Promise.resolve({user:null}),{user:o}=await n();Ue.getInstance().set(o??null)}})},xa=async({user:e})=>{await Di({fn:async()=>{Ue.getInstance().set(e)},syncTabsOnSuccess:!0})};var Zp=()=>{try{let e=Do.getInstance(),t=async()=>{await Yp(),Si({message:"junoSignInReload"})};return e.onLoginSuccess(t),()=>{e?.destroy()}}catch(e){console.warn("Auth BroadcastChannel initialization failed",e);return}};var Xp=()=>{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()},Qp=()=>{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()},ef=()=>{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()},tf=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_GITHUB_CLIENT_ID??import.meta.env?.PUBLIC_GITHUB_CLIENT_ID:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_GITHUB_CLIENT_ID??e():e()},ba=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_JUNO_API_URL??import.meta.env?.PUBLIC_JUNO_API_URL:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_JUNO_API_URL??e():e()};var rf=BigInt(144e11),nf=!1,of={width:576,height:576},sf={width:424,height:576},Rl="internetcomputer.org",af="ic0.app",wa="id.ai";var cf=({width:e,height:t})=>{if(!Ki()||U(window)||U(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 Qt=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 lf=(r=>(r[r.AuthorizingWithProvider=0]="AuthorizingWithProvider",r[r.CreatingOrRetrievingUser=1]="CreatingOrRetrievingUser",r))(lf||{});var Ta=class{async signIn({options:t,authClient:r,initAuth:n}){await Qt({fn:async()=>await this.#e({options:t,authClient:r}),step:0,onProgress:t?.onProgress}),await Qt({fn:async()=>await n({provider:this.id}),step:1,onProgress:t?.onProgress})}#e({options:t,authClient:r}){return new Promise(async(n,o)=>{if(U(r)){o(new qr("No client is ready to perform a sign-in. Have you initialized the Satellite?"));return}await r.login({onSuccess:n,onError:i=>{if(i===aa){o(new ua(i));return}o(new la(i))},maxTimeToLive:t?.maxTimeToLiveInNanoseconds??rf,allowPinAuthentication:t?.allowPin??nf,...t?.derivationOrigin!==void 0&&{derivationOrigin:t.derivationOrigin},...this.signInOptions({windowed:t?.windowed})})})}};var Na=class extends Ta{#e;constructor({domain:t}){super(),this.#e=t}get id(){return"internet_identity"}signInOptions({windowed:t}){let n=(()=>{let i=Ie.getInstance().get()?.container;if(U(i)||i===!1){let d=[Rl,af].includes(this.#e??wa);return pt(this.#e)?`https://${wa}`:d?`https://identity.${this.#e??Rl}`:`https://${this.#e}`}let s=Ie.getInstance().get(),a=J(s)&&J(s?.internetIdentityId)?s.internetIdentityId:lp,{host:c,protocol:l}=new URL(i===!0?Po:i);return/apple/i.test(navigator?.vendor)?`${l}//${c}?canisterId=${a}`:`${l}//${a}.${c.replace("127.0.0.1","localhost")}`})();return{...t!==!1&&{windowOpenerFeatures:cf((()=>{try{let{hostname:i}=new URL(n);return i.includes(wa)}catch{return!1}})()?sf:of)},identityProvider:n}}};var vl=e=>$r(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),s0=()=>crypto.getRandomValues(new Uint8Array(32)),a0=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 crypto.subtle.digest("SHA-256",n);return vl(mr(o))},uf=async({caller:e})=>{let t=s0();return{nonce:await a0({salt:t,caller:e}),salt:t}};var ff="juno:auth:openid",df={authUrl:"https://accounts.google.com/o/oauth2/v2/auth",authScopes:["openid","profile","email"],configUrl:"https://accounts.google.com/gsi/fedcm.json"},hf={authUrl:"https://github.com/login/oauth/authorize",authScopes:["read:user","user:email"],initUrl:"https://api.juno.build/v1/auth/init/github",finalizeUrl:"https://api.juno.build/v1/auth/finalize/github"},c0=class extends Error{},l0=class extends Error{},u0=class extends Error{},d0=class extends Error{},p0=class extends Error{},f0=class extends Error{},h0=class extends Error{},mf=class extends Error{},m0=class extends Error{},_0=class extends Error{},y0=class extends Error{constructor(e){super("GitHub OAuth initialization failed",e)}},g0=class extends Error{constructor(e){super("GitHub OAuth finalization failed",e)}},_f="__caller__",yf="__salt__",gf="__state__",x0=({caller:e,state:t,salt:r})=>{let n={[_f]:e.toJSON(),[yf]:$r(r),[gf]:t};return JSON.stringify(n)},b0=e=>{let{[_f]:t,[yf]:r,[gf]:n}=JSON.parse(e);return{caller:dt.fromParsedJson(t),salt:Dl(r),state:n}},pf=async({generateState:e})=>{let t=dt.generate(),{nonce:r,salt:n}=await uf({caller:t}),o=await e({nonce:r}),i=x0({caller:t,salt:n,state:o});return sessionStorage.setItem(ff,i),{nonce:r,state:o}},w0=()=>{let e=sessionStorage.getItem(ff);if(U(e))throw new l0;return b0(e)},xf=({auth:e,identity:t})=>"satellite"in e?Ap({...e.satellite,identity:t}):Sp({...e.console,identity:t}),T0=async({actorParams:e,args:t})=>{let{authenticate:r}=await xf(e);return await r(t)},N0=async({actorParams:e,args:t})=>{let{get_delegation:r}=await xf(e);return await r(t)},O0=({delegations:e,sessionKey:t})=>{let[r,n]=e,o=Lt.fromDelegations(n,Uint8Array.from(r));return{identity:qt.fromDelegation(t,o),delegationChain:o,sessionKey:t}},Il=async({jwt:e,context:t,auth:r})=>{let n=await xt.generate({extractable:!1}),o=new Uint8Array(n.getPublicKey().toDer()),{delegations:i,data:s}=await E0({jwt:e,publicKey:o,context:t,auth:r});return{identity:O0({sessionKey:n,delegations:i}),data:s}},E0=async({jwt:e,publicKey:t,context:{caller:r,salt:n},auth:o})=>{let i=await T0({args:{OpenId:{jwt:e,session_key:t,salt:n}},actorParams:{auth:o,identity:r}});if("Err"in i)throw new p0("Authentication failed",{cause:i});let{delegation:{user_key:s,expiration:a},...c}=i.Ok,l=await R0({jwt:e,context:{caller:r,salt:n},auth:o,publicKey:t,expiration:a}),{delegation:d,signature:p}=l,{pubkey:u,expiration:f,targets:h}=d;return{delegations:[s,[{delegation:new dn(Uint8Array.from(u),f,me(h)),signature:Uint8Array.from(p)}]],data:c}},R0=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(l=>{setInterval(l,1e3*a)});let c=await N0({args:{OpenId:{jwt:e,session_key:t,salt:r,expiration:i}},actorParams:{auth:o,identity:n}});if("Err"in c){let{Err:l}=c;if("NoSuchDelegation"in l||"GetCachedJwks"in l)continue;throw new m0("Getting delegation failed",{cause:c})}return c.Ok}throw new _0},v0=async({url:e})=>{try{let t=await fetch(e,{credentials:"include"});return t.ok?{success:await t.json()}:{error:new Error(`Failed to fetch ${e} (${t.status})`)}}catch(t){return{error:new y0({cause:t})}}},I0=async({url:e,body:t})=>{try{let r=await fetch(e,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});return r.ok?{success:await r.json()}:{error:new Error(`Failed to fetch ${e} (${r.status})`)}}catch(r){return{error:new g0({cause:r})}}},A0=async({auth:e,context:t,redirect:{finalizeUrl:r}})=>{let{location:{search:n}}=window,o=new URLSearchParams(n),i=o.get("code"),s=o.get("state"),a=await I0({url:r,body:{code:i,state:s}});if("error"in a)throw a.error;let{success:{token:c}}=a;if(pt(c))throw new mf;return await Il({jwt:c,auth:e,context:t})},S0=async({auth:e,context:t})=>{let{location:{hash:r}}=window;if(pt(r)||!r.startsWith("#"))throw new f0("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(pt(s)||o!==s)throw new h0("The provided state is invalid",{cause:o});if(pt(i))throw new mf;return await Il({jwt:i,auth:e,context:t})},bf=async e=>{let t=w0();if("github"in e){let{github:{redirect:n,auth:o}}=e,{finalizeUrl:i}=hf;return await A0({redirect:n??{finalizeUrl:i},auth:o,context:t})}let{google:r}=e;if("credentials"in r){let{credentials:{jwt:n},auth:o}=r;return await Il({jwt:n,context:t,auth:o})}return await S0({...r,context:t})},Al=({url:e})=>{try{return new URL(e)}catch{throw new c0("Cannot parse authURL",{cause:e})}},C0=({initUrl:e})=>async({nonce:t})=>{let r=Al({url:e});r.searchParams.set("nonce",t);let n=await v0({url:r.toString()});if("error"in n)throw n.error;let{success:{state:o}}=n;return o},V0=({authUrl:e,clientId:t,authScopes:r,state:n,redirectUrl:o})=>{let i=Al({url:e});i.searchParams.set("client_id",t);let{location:{origin:s}}=window;i.searchParams.set("redirect_uri",o??s),i.searchParams.set("scope",r.join(" ")),i.searchParams.set("state",n),window.location.href=i.toString()},P0=()=>vl(crypto.getRandomValues(new Uint8Array(12))),F0=async e=>P0(),B0=({authUrl:e,clientId:t,nonce:r,loginHint:n,authScopes:o,state:i,redirectUrl:s})=>{let a=Al({url: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),_r(n)?a.searchParams.set("login_hint",n):a.searchParams.set("prompt","select_account"),window.location.href=a.toString()},D0=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(U(i))throw new u0;let{type:s}=i;if(s!=="identity"||!("token"in i)||typeof i.token!="string")throw new d0("Invalid credential received from FedCM API",{cause:i});let{token:a}=i;return{jwt:a}};async function Oa(e){if("github"in e){let{github:s}=e,{redirect:a}=s,{initUrl:c,...l}=a,{authUrl:d,authScopes:p,initUrl:u}=hf,f=await pf({generateState:C0({initUrl:c??u})});V0({...l,...f,authUrl:d,authScopes:p});return}let t=await pf({generateState:F0}),{google:r}=e;if("credentials"in r){let{credentials:s}=r,{configUrl:a}=df;return await D0({...s,...t,configUrl:a})}let{redirect:n}=r,{authUrl:o,authScopes:i}=df;B0({...n,...t,authUrl:o,authScopes:i})}var Ea=({url:e})=>{try{return new URL(e)}catch{return console.warn(`Cannot parse URL ${e}. Skipping option.`),null}};var U0=async e=>{let{satelliteId:t}=Ie.getInstance().get()??{satelliteId:void 0};if(U(t))throw new qr("Satellite ID not set. Have you initialized the Satellite?");let r=Ie.getInstance().get()?.container,n={auth:{satellite:{satelliteId:t,container:r}}},i=(()=>{let p="github"in e?e?.github?.options?.finalizeUrl:void 0;if(_r(p))return p;let u=ba();return pt(u)?null:Ea({url:`${u}/v1/auth/finalize/github`})?.toString()??null})(),{identity:{delegationChain:s,sessionKey:a,identity:c},data:{doc:l}}=await bf("github"in e?{github:{redirect:J(i)?{finalizeUrl:i}:null,...n}}:{google:{redirect:null,...n}});await Ce.getInstance().setAuthClientStorage({delegationChain:s,sessionKey:a});let d=await so({doc:l,key:c.getPrincipal().toText()});await xa({user:d})};var wf=e=>(e.preventDefault(),e.returnValue="Are you sure you want to exit?"),k0=()=>{window.addEventListener("beforeunload",wf,{capture:!0})},L0=()=>{window.removeEventListener("beforeunload",wf,{capture:!0})},Ra=async({fn:e})=>{try{return k0(),await e()}finally{L0()}};function Tf(e){return new Promise((t,r)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>r(e.error)})}function Cl(e,t){let r,n=()=>{if(r)return r;let o=indexedDB.open(e);return o.onupgradeneeded=()=>o.result.createObjectStore(t),r=Tf(o),r.then(i=>{i.onclose=()=>r=void 0},()=>{}),r};return(o,i)=>n().then(s=>i(s.transaction(t,o).objectStore(t)))}var Sl;function q0(){return Sl||(Sl=Cl("keyval-store","keyval")),Sl}function Nf(e,t,r=q0()){return r("readwrite",n=>new Promise((o,i)=>{n.get(e).onsuccess=function(){try{n.put(t(this.result),e),o(Tf(n.transaction))}catch(s){i(s)}}}))}var M0=class extends Error{constructor(){super("A dev identity can only be used in browser environments")}},j0=class extends Error{constructor(){super("A dev identity must only be used on localhost (127.0.0.1 or localhost)")}},K0=class extends Error{constructor(e){super(`Identifier must be 32 characters or less, got ${e}`)}},$0=Cl("juno-dev-identifiers","juno-dev-identifiers-store");var Of=async({identifier:e="dev",maxTimeToLiveInMilliseconds:t}={})=>{if(!(typeof window<"u"))throw new M0;let{location:{hostname:r}}=window;if(!["127.0.0.1","localhost"].includes(r))throw new j0;let n=()=>{if(e.length>32)throw new K0(e.length);return new TextEncoder().encode(e.padEnd(32,"0"))},o=async()=>{let a=n(),c=dt.generate(a),l=await xt.generate({extractable:!1}),d=t??6048e5,p=await Lt.create(c,l.getPublicKey(),new Date(Date.now()+d));return{identity:qt.fromDelegation(l,p),sessionKey:l,delegationChain:p}},i=async()=>{await Nf(e,a=>{let c=Date.now();return{createdAt:a?.createdAt??c,updatedAt:c}},$0)},s=await o();return await i(),s};var va=class{async signIn({options:t,initAuth:r,setStorage:n}){let{sessionKey:o,delegationChain:i}=await Of(t);await n({sessionKey:o,delegationChain:i}),await r({provider:void 0})}};var Ia=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??tf();if(U(r))throw new Uo;let{redirect:n}=t;await Oa({github:{redirect:{...n??{},clientId:r,initUrl:(()=>{let i=t?.redirect?.initUrl;if(_r(i))return i;let s=ba();if(!pt(s))return Ea({url:`${s}/v1/auth/init/github`})?.toString()})()}}})}};var Aa=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??ef();if(U(r))throw new Uo;let{redirect:n}=t;await Oa({google:{redirect:{...n??{},clientId:r}}})}};var Ef=async({delegationIdentity:e,passkeyIdentity:t,satelliteId:r})=>{let n=t.getCredential().getAAGUID(),[o,i]=await Jp({docs:[{collection:"#user",doc:{key:e.getPrincipal().toText(),data:{provider:"webauthn",providerData:{webauthn:{...J(n)&&{aaguid:qi(n)}}}}}},{collection:"#user-webauthn",doc:{key:t.getCredential().getCredentialIdText(),data:{publicKey:t.getPublicKey().toRaw()}}}],satellite:{identity:e,satelliteId:r}});return o};var Rf=(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))(Rf||{}),vf=(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))(vf||{});var ko=class{async signUp({options:{onProgress:t,maxTimeToLiveInMilliseconds:r,passkey:n}={},loadAuthWithUser:o}){let{satelliteId:i}=Ie.getInstance().get()??{satelliteId:void 0};if(U(i))throw new qr("Satellite ID not set. Have you initialized the Satellite?");let s=({step:_,state:y})=>{switch(_){case un.RequestingUserCredential:t?.({step:1,state:y});break;case un.FinalizingCredential:t?.({step:2,state:y});break;case un.Signing:t?.({step:3,state:y});break}},c=await Qt({fn:async()=>await sl.createWithNewCredential({onProgress:s,passkeyOptions:n}),step:0,onProgress:t}),{delegationIdentity:l,sessionKey:d}=await this.#e({identity:c,maxTimeToLiveInMilliseconds:r}),u=await Qt({fn:async()=>await Ef({delegationIdentity:l,passkeyIdentity:c,satelliteId:i}),step:5,onProgress:t});await Qt({fn:async()=>await this.#t({delegationIdentity:l,sessionKey:d}),step:4,onProgress:t}),await Qt({fn:async()=>await o({user:u}),step:5,onProgress:t})}async signIn({options:{onProgress:t,maxTimeToLiveInMilliseconds:r}={},loadAuth:n}){let{satelliteId:o}=Ie.getInstance().get()??{satelliteId:void 0};if(U(o))throw new qr("Satellite ID not set. Have you initialized the Satellite?");let i=async({credentialId:p})=>{let u=await _a({collection:"#user-webauthn",key:$r(p),options:{certified:!0},satellite:{identity:new at,satelliteId:o}});if(U(u))throw new pa("No public key found for the selected passkey.");let{data:f}=u,{publicKey:h}=f;return io(h,Ii)},s=({step:p,state:u})=>{switch(p){case un.RequestingUserCredential:t?.({step:0,state:u});break;case un.FinalizingCredential:t?.({step:1,state:u});break;case un.Signing:t?.({step:2,state:u});break}},a=await sl.createWithExistingCredential({retrievePublicKey:i,onProgress:s}),{delegationIdentity:c,sessionKey:l}=await this.#e({identity:a,maxTimeToLiveInMilliseconds:r});await Qt({fn:async()=>await this.#t({delegationIdentity:c,sessionKey:l}),step:3,onProgress:t}),await Qt({fn:n,step:4,onProgress:t})}async#e({identity:t,maxTimeToLiveInMilliseconds:r}){let n=await xt.generate({extractable:!1}),o=r??144e5,i=await Lt.create(t,n.getPublicKey(),new Date(Date.now()+o));return{delegationIdentity:qt.fromDelegation(n,i),sessionKey:n}}async#t({sessionKey:t,delegationIdentity:r}){let n=new Zt;await Promise.all([n.set(We,t.getKeyPair()),n.set(ke,JSON.stringify(r.getDelegation().toJSON()))])}};var If=async({provider:e})=>{await Di({fn:async()=>{let r=await Wp({provider:e});Ue.getInstance().set(r)},syncTabsOnSuccess:!0})},G0=async e=>{if("google"in e){let{google:{options:t}}=e;await Ui({fn:()=>new Aa().signIn({options:t}),context:{windowGuard:!1}});return}if("github"in e){let{github:{options:t}}=e;await Ui({fn:()=>new Ia().signIn({options:t}),context:{windowGuard:!1}});return}if("webauthn"in e){let{webauthn:{options:t,context:r}}=e;await Ui({fn:()=>new ko().signIn({options:t,loadAuth:()=>ga({syncTabsOnSuccess:!0})}),context:r});return}if("internet_identity"in e){let{internet_identity:{options:t,context:r}}=e,{domain:n,...o}=t??{};await Ui({fn:()=>new Na({domain:n}).signIn({options:o,authClient:Ce.getInstance().getAuthClient(),initAuth:If}),context:r});return}if("dev"in e){let{dev:{options:t}}=e,{setAuthClientStorage:r}=Ce.getInstance();await Ui({fn:()=>new va().signIn({options:t,initAuth:If,setStorage:r}),context:{windowGuard:!1}});return}throw new da("An unknown or unsupported provider was provided for sign-in.")},Ui=async({fn:e,context:t})=>{if(t?.windowGuard===!1){await e();return}await Ra({fn:e})};var J0=async e=>{let t=async()=>await W0(e);if(Object.values(e)?.[0].context?.windowGuard===!1){await t();return}await Ra({fn:t})},W0=async e=>{if("webauthn"in e){let{webauthn:{options:t}}=e;await new ko().signUp({options:t,loadAuthWithUser:xa});return}throw new fa("An unknown or unsupported provider was provided for sign-up.")};var T2=e=>e?.data?.provider==="webauthn",N2=e=>e?.data?.provider==="google",O2=e=>e?.data?.provider==="github";var I2=async({idlFactory:e,satellite:t})=>{let r=ue(t?.identity);return await Pp({idlFactory:e,...t,identity:r})};var Af=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(z0(r));o?.onInitiatedBatch();let{chunkIds:l}=await X0({data:e,uploadFn:s,batchId:c});o?.onUploadedFileChunks(r.fullPath),await Z0({commitFn:a,batchId:c,data:e,headers:t,chunkIds:l}),o?.onCommittedBatch()};var z0=({filename:e,collection:t,token:r,fullPath:n,encoding:o,description:i})=>({collection:t,full_path:n,name:e,token:se(r),encoding_type:se(o),description:se(i)}),Y0=({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??[]]}},Z0=async({commitFn:e,...t})=>{let r=Y0(t);await e(r)},X0=async({data:e,uploadFn:t,batchId:r})=>{let n=[],o=Ki()?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 Q0({uploadChunks:n}))s=[...s,...a];return{chunkIds:s}};async function*Q0({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=>eg(o)))}}var eg=async({batchId:e,chunk:t,uploadFn:r,orderId:n})=>r({batch_id:e,content:new Uint8Array(await t.arrayBuffer()),order_id:se(n)});var Sf=async({asset:e,...t})=>{let r=await ge(t);await Af({actor:r,asset:e})},Cf=async({collection:e,filter:t,...r})=>{let{list_assets:n}=await ge(r),{items:o,items_length:i,items_page:s,matches_length:a,matches_pages:c}=await n(e,pn(t));return{items:o.map(([l,d])=>d),items_length:i,items_page:me(s),matches_length:a,matches_pages:me(c)}},Vf=async({collection:e,filter:t,...r})=>{let{count_assets:n}=await ge(r);return n(e,pn(t))},Pf=async({collection:e,fullPath:t,...r})=>(await ge(r)).del_asset(e,t),Ff=async({assets:e,satellite:t})=>{let{del_many_assets:r}=await ge({satellite:t,options:{certified:!0}}),n=e.map(({collection:o,fullPath:i})=>[o,i]);await r(n)},Bf=async({collection:e,filter:t,...r})=>{let{del_filtered_assets:n}=await ge(r);return n(e,pn(t))},Df=async({collection:e,fullPath:t,token:r,...n})=>{let{set_asset_token:o}=await ge(n);return o(e,t,se(r))},Uf=async({collection:e,fullPath:t,...r})=>{let{get_asset:n}=await ge(r);return me(await n(e,t))},kf=async({assets:e,...t})=>{let{get_many_assets:r}=await ge(t),n=e.map(({collection:i,fullPath:s})=>[i,s]);return(await r(n)).map(([i,s])=>me(s))};var Lf=e=>btoa([...e].map(t=>String.fromCharCode(t)).join(""));var $2=e=>qf(e),H2=e=>qf({filename:e.data.name,...e}),qf=async({filename:e,data:t,collection:r,headers:n=[],fullPath:o,token:i,satellite:s,encoding:a,description:c})=>{let l=ue(s?.identity),d=decodeURI(e),p=o??`/${r}/${d}`,u={...s,identity:l};return await Sf({asset:{data:t,filename:d,collection:r,token:i,headers:n,fullPath:p,encoding:a,description:c},satellite:u,options:{certified:!0}}),{downloadUrl:Mf({satellite:u,assetKey:{fullPath:p,token:i}}),fullPath:p,...J(i)&&{token:i},name:d}},G2=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:ue(r?.identity)},{items:i,...s}=await Cf({collection:e,filter:t??{},satellite:o,options:n??Xt}),a=i.map(({key:{full_path:c,token:l,name:d,owner:p,description:u},headers:f,encodings:h,created_at:_,updated_at:y})=>{let m=me(l);return{fullPath:c,description:me(u),name:d,downloadUrl:Mf({satellite:o,assetKey:{fullPath:c,token:m}}),token:m,headers:f,encodings:h.reduce((b,[g,{modified:T,sha256:O,total_length:v}])=>({...b,[g]:{modified:T,sha256:Lf(O),total_length:v}}),{}),owner:p.toText(),created_at:_,updated_at:y}});return{items:a,assets:a,...s}},J2=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:ue(r?.identity)};return await Vf({collection:e,satellite:o,filter:t??{},options:n??Xt})},W2=({collection:e,fullPath:t,satellite:r})=>Pf({collection:e,fullPath:t,satellite:{...r,identity:ue(r?.identity)},options:{certified:!0}}),z2=({collection:e,fullPath:t,token:r,satellite:n})=>Df({collection:e,fullPath:t,token:r,satellite:{...n,identity:ue(n?.identity)},options:{certified:!0}}),Y2=({assets:e,satellite:t})=>Ff({assets:e,satellite:{...t,identity:ue(t?.identity)},options:{certified:!0}}),Z2=async({collection:e,satellite:t,filter:r})=>{let n={...t,identity:ue(t?.identity)};return await Bf({collection:e,satellite:n,filter:r??{},options:{certified:!0}})},X2=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await Uf({...r,satellite:{...e,identity:n},options:t??Xt})},Q2=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await kf({...r,satellite:{...e,identity:n},options:t??Xt})},Mf=({assetKey:{fullPath:e,token:t},satellite:r})=>{let n={...r,identity:ue(r?.identity)};return`${Vp(n)}${e}${J(t)?`?token=${t}`:""}`};var tg=e=>{let t=e?.satelliteId??Xp();Ko(t,"Satellite ID is not configured. Juno cannot be initialized.");let r=e?.container??Qp();return{satelliteId:t,internetIdentityId:e?.internetIdentityId,workers:e?.workers,syncTabs:e?.syncTabs,container:r}},lE=e=>rg(e),rg=async e=>{let t=tg(e);Ie.getInstance().set(t),await ga();let r=t.workers?.auth!==void 0?Rp(t.workers.auth):void 0,n=t.syncTabs===!1?void 0:Zp();return[...J(r)?[r]:[],...J(n)?[n]:[]]},ng=e=>Ue.getInstance().subscribe(e),uE=ng;export{lf as AuthClientSignInProgressStep,ha as InitError,Na as InternetIdentityProvider,ma as ListError,la as SignInError,qr as SignInInitError,Uo as SignInMissingClientIdError,da as SignInProviderNotSupportedError,ua as SignInUserInterruptError,fa as SignUpProviderNotSupportedError,Rf as WebAuthnSignInProgressStep,pa as WebAuthnSignInRetrievePublicKeyError,vf as WebAuthnSignUpProgressStep,uE as authSubscribe,J2 as countAssets,ZO as countDocs,W2 as deleteAsset,JO as deleteDoc,Z2 as deleteFilteredAssets,zO as deleteFilteredDocs,Y2 as deleteManyAssets,WO as deleteManyDocs,Mf as downloadUrl,X2 as getAsset,_a as getDoc,Xy as getIdentityOnce,Q2 as getManyAssets,GO as getManyDocs,I2 as getSatelliteExtendedActor,U0 as handleRedirectCallback,lE as initJuno,rg as initSatellite,O2 as isGitHubUser,N2 as isGoogleUser,Oy as isWebAuthnAvailable,T2 as isWebAuthnUser,G2 as listAssets,YO as listDocs,ng as onAuthStateChange,z2 as setAssetToken,Gp as setDoc,Jp as setManyDocs,G0 as signIn,gl as signOut,J0 as signUp,Zy as unsafeIdentity,$2 as uploadBlob,H2 as uploadFile};
|
|
58
|
+
Retrying request.`),await this.#y({requestFn:r,backoff:n,tries:o+1});throw Jo.fromCode(new Zo(d))}let c=_c(s.headers);if(s.status===tl||s.status===Zd)return{ok:s.ok,status:s.status,statusText:s.statusText,responseBodyBytes:a,headers:c};let l=await s.text();if(s.status===Q_&&s.url.includes("api/v4"))throw re.fromCode(new Yo);if(Xd(l))throw z.fromCode(new $t(l,this.#u));if(o<this.#d)return await this.#y({requestFn:r,backoff:n,tries:o+1});throw re.fromCode(new zo(s.status,s.statusText,c,l))}async query(t,r,n){let o=this.#f(),i=r.effectiveCanisterId?q.from(r.effectiveCanisterId):q.from(t);await this.#p(i),this.log.print(`ecid ${i.toString()}`),this.log.print(`canisterId ${t.toString()}`);let s,a=await(n??this.#n);if(!a)throw Pe.fromCode(new zr);let c=q.from(t),l=a.getPrincipal(),d=rl(this.#u,this.#r),p={request_type:Zn.Query,canister_id:c,method_name:r.methodName,arg:r.arg,sender:l,ingress_expiry:d},u=vr(p);s=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#c?{Authorization:`Basic ${btoa(this.#c)}`}:{}}},endpoint:Ar.Query,body:p}),s=await a.transformRequest(s);let f=fi(s.body),h={canister:c.toText(),ecid:i,transformedRequest:s,body:f,requestId:u,backoff:o,tries:0},_=async()=>{let y=await this.#w(h);return{requestDetails:p,...y}};try{if(!this.#_)return await _();let[y,m]=await Promise.all([_(),this.fetchSubnetKeys(i)]);try{return this.#N(y,m)}catch{this.log.warn("Query response verification failed. Retrying with fresh subnet keys."),await this.#x.delete(i.toString());let b=await this.fetchSubnetKeys(i);return this.#N(y,b)}}catch(y){let m;if(y instanceof st){if(y.hasCode($t)&&!this.#o)return await this.syncTime(i),this.query(t,r,n);y.code.requestContext={requestId:u,senderPubKey:s.body.sender_pubkey,senderSignature:s.body.sender_sig,ingressExpiry:s.body.content.ingress_expiry},m=y}else m=ae.fromCode(new Se(y));throw this.log.error(`Error while making query: ${m.message}`,m),m}}#N;async createReadStateRequest(t,r){await this.#p();let n=await(r??this.#n);if(!n)throw Pe.fromCode(new zr);let o=n.getPrincipal(),i=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#c?{Authorization:`Basic ${btoa(this.#c)}`}:{}}},endpoint:Ar.ReadState,body:{request_type:Zn.ReadState,paths:t.paths,sender:o,ingress_expiry:rl(this.#u,this.#r)}});return n.transformRequest(i)}async readState(t,r,n,o){await this.#g();let i=q.from(t);function s(d){for(let p of d.paths){let[u,f]=p,h=new TextEncoder().encode("request_status");if(Wn(u,h))return f}}let a,c;if(o)a=o;else{c=s(r);let d=await this.#n;if(!d)throw Pe.fromCode(new zr);a=await this.createReadStateRequest(r,d)}let l=new URL(`/api/v3/canister/${i.toString()}/read_state`,this.host);return await this.#O(l,{canisterId:i},a,c)}async readSubnetState(t,r){await this.#g();let n=q.from(t),o=new URL(`/api/v3/subnet/${n.toString()}/read_state`,this.host),i=await this.createReadStateRequest(r,this.#n??void 0);return await this.#O(o,{subnetId:n},i)}async#O(t,r,n,o){let i=this.#f();try{let{responseBodyBytes:s}=await this.#y({requestFn:()=>this.#i(t,{...this.#l,...n.request,body:fi(n.body)}),backoff:i,tries:0});return je(s)}catch(s){let a;if(s instanceof st){if(s.hasCode($t)&&!this.#o){if("canisterId"in r)await this.syncTime(r.canisterId);else if("subnetId"in r)await this.syncTimeWithSubnet(r.subnetId);else throw ft;return await this.#O(t,r,n,o)}s.code.requestContext={requestId:o??vr(n),senderPubKey:n.body.sender_pubkey,senderSignature:n.body.sender_sig,ingressExpiry:n.body.content.ingress_expiry},a=s}else a=ae.fromCode(new Se(s));throw this.log.error(`Error while making read state: ${a.message}`,a),a}}parseTimeFromResponse(t){let r;if(t.certificate){let n=je(t.certificate);if(n&&"tree"in n)r=n.tree;else throw re.fromCode(new Yr("Could not decode time from response"));let o=Dr(["time"],r);if(o.status!==Be.Found)throw re.fromCode(new At("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 re.fromCode(new es("Time was not in its expected format."));let i=on(o.value);return this.log.print("Time from response:",i),this.log.print("Time from response in milliseconds:",i.getTime()),i.getTime()}return this.log.warn("No certificate found in response"),0}async syncTime(t){this.#s=this.#s??(async()=>{await this.#g();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??q.from("ryjl3-tyaaa-aaaaa-aaaba-cai"),o=e.createSync({identity:new at,host:this.host.toString(),fetch:this.#i,retryTimes:0,rootKey:this.rootKey??void 0,shouldSyncTime:!1}),i=await Promise.all(Array(3).fill(null).map(async()=>{let a=(await kd({canisterId:n,agent:o,paths:["time"],disableCertificateTimeVerification:!0})).get("time");if(a instanceof Date)return a.getTime()},[]));this.#E(r,i)}catch(n){let o=n instanceof st?n:ae.fromCode(new Se(n));throw this.log.error("Caught exception while attempting to sync time",o),o}})(),await this.#s.finally(()=>{this.#s=null})}async syncTimeWithSubnet(t){await this.#g();let r=Date.now();try{let n=e.createSync({identity:new at,host:this.host.toString(),fetch:this.#i,retryTimes:0,rootKey:this.rootKey??void 0,shouldSyncTime:!1}),o=await Promise.all(Array(3).fill(null).map(async()=>{let s=(await Ld({subnetId:t,agent:n,paths:["time"],disableCertificateTimeVerification:!0})).get("time");if(s instanceof Date)return s.getTime()},[]));this.#E(r,o)}catch(n){let o=n instanceof st?n:ae.fromCode(new Se(n));throw this.log.error("Caught exception while attempting to sync time with subnet",o),o}}#E(t,r){let n=r.reduce((o,i)=>typeof i=="number"&&i>o?i:o,0);n>0&&(this.#r=n-t,this.#o=!0,this.log.notify({message:`Syncing time: offset of ${this.#r}`,level:"info"}))}async status(){let t=this.#c?{Authorization:`Basic ${btoa(this.#c)}`}:{},r=new URL("/api/v2/status",this.host);this.log.print(`fetching "${r.pathname}"`);let n=this.#f(),{responseBodyBytes:o}=await this.#y({backoff:n,requestFn:()=>this.#i(r,{headers:t,...this.#l}),tries:0});return je(o)}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#p(t){await Promise.all([this.#g(),this.#A(t)])}async#g(){if(!this.rootKey)if(this.rootKey===null&&this.host.toString()!=="https://icp-api.io"&&this.#t)await this.fetchRootKey();else throw Pe.fromCode(new Ct(this.#t))}async#A(t){this.#a&&!this.hasSyncedTime()&&await this.syncTime(t)}invalidateIdentity(){this.#n=null}replaceIdentity(t){this.#n=Promise.resolve(t)}async fetchSubnetKeys(t){let r=q.from(t),n=await this.#x.get(r.toText());if(n)return n;let o=this.#b.get(r.toText());if(o)return o;let i=this.#S(r).finally(()=>{this.#b.delete(r.toText())});return this.#b.set(r.toText(),i),i}async#S(t){await this.#p(t);let r=this.rootKey,n=await this.readState(t,{paths:[[G("subnet")]]}),o=await gt.create({certificate:n.certificate,rootKey:r,principal:{canisterId:t},agent:this});if(!o.cert.delegation){let a=q.selfAuthenticating(r);if(!$c({canisterId:t,subnetId:a,tree:o.cert.tree}))throw Ye.fromCode(new jn(t,a))}let i=Gc(o.cert,r),s=Io(o.cert,i);return await this.#x.set(t.toText(),s),s}async getSubnetIdFromCanister(t){let r=q.from(t);await this.#p(r);let n=await this.readState(r,{paths:[[G("time")]]}),o=await gt.create({certificate:n.certificate,rootKey:this.rootKey,principal:{canisterId:r},agent:this});return Gc(o.cert,this.rootKey)}_transform(t){let r=Promise.resolve(t);if(t.endpoint===Ar.Call)for(let n of this.#m)r=r.then(o=>n(o).then(i=>i||o));else for(let n of this.#h)r=r.then(o=>n(o).then(i=>i||o));return r}getTimeDiffMsecs(){return this.#r}hasSyncedTime(){return this.#o}};function rl(e,t){let r=e*nl;return Yn.fromDeltaInMilliseconds(r,t)}function Xd(e){return e.includes("Invalid request expiry: ")}var ut=Symbol.for("ic-agent-metadata"),Co=class e{static agentOf(t){return t[ut].config.agent}static interfaceOf(t){return t[ut].service}static canisterIdOf(t){return q.from(t[ut].config.canisterId)}static createActorClass(t,r){let n=t({IDL:Jn});class o extends e{constructor(s){if(!s.canisterId)throw z.fromCode(new Xo(s.canisterId));let a=typeof s.canisterId=="string"?q.fromText(s.canisterId):s.canisterId;super({config:{...Qd,...s,canisterId:a},service:n});for(let[c,l]of n._fields)r?.httpDetails&&l.annotations.push(ol),r?.certificate&&l.annotations.push(ep),this[c]=ty(this,c,l,s.blsVerify)}}return o}static createActor(t,r){if(!r.canisterId)throw z.fromCode(new Xo(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[ut]=Object.freeze(t)}};function So(e,t){let r=Jn.decode(e,t);switch(r.length){case 0:return;case 1:return r[0];default:return r}}var Qd={pollingOptions:zd,queryStrategy:"query"},ol="http-details",ep="certificate";function ty(e,t,r,n){let o,i=r.annotations.includes("query")||r.annotations.includes("composite_query"),s=e[ut].config.queryStrategy;i&&s==="query"?o=async(c,...l)=>{c={...c,...e[ut].config.queryTransform?.(t,l,{...e[ut].config,...c})};let d=c.agent||e[ut].config.agent||new Lr,p=q.from(c.canisterId||e[ut].config.canisterId),u=Jn.encode(r.argTypes,l),f=await d.query(p,{methodName:t,arg:u,effectiveCanisterId:c.effectiveCanisterId}),h={...f.httpDetails,requestDetails:f.requestDetails};switch(f.status){case Hr.Rejected:{let _=new cs(f.requestId,f.reject_code,f.reject_message,f.error_code,f.signatures);throw _.callContext={canisterId:p,methodName:t,httpDetails:h},vt.fromCode(_)}case Hr.Replied:return r.annotations.includes(ol)?{httpDetails:h,result:So(r.retTypes,f.reply.arg)}:So(r.retTypes,f.reply.arg)}}:o=async(c,...l)=>{c={...c,...e[ut].config.callTransform?.(t,l,{...e[ut].config,...c})};let d=c.agent||e[ut].config.agent||Lr.createSync(),{canisterId:p,effectiveCanisterId:u,pollingOptions:f}={...Qd,...e[ut].config,...c},h=q.from(p),_=u!==void 0?q.from(u):h,y=Jn.encode(r.argTypes,l),m,b,g,T;try{({reply:m,certificate:b,callResponse:g,requestDetails:T}=await d.update(h,{methodName:t,arg:y,effectiveCanisterId:_,nonce:c.nonce},{...f,blsVerify:n}))}catch(C){if(C instanceof vt){let w=Object.create(Object.getPrototypeOf(C.code),Object.getOwnPropertyDescriptors(C.code));throw w.callContext={...C.code.callContext,canisterId:h,methodName:t},vt.fromCode(w)}throw C}let O=r.annotations.includes(ol),v=r.annotations.includes(ep),E={...g,requestDetails:T};return O&&v?{httpDetails:E,certificate:b,result:So(r.retTypes,m)}:v?{certificate:b,result:So(r.retTypes,m)}:O?{httpDetails:E,result:So(r.retTypes,m)}:So(r.retTypes,m)};let a=(...c)=>o({},...c);return a.withOptions=c=>(...l)=>o(c,...l),a}var ry=({authData:e})=>{if(e.byteLength<37)return{invalidAuthData:null};if(e.byteLength<53)return{invalidAuthData:null};let t=e.slice(37,53),r=ny({bytes:t});return"aaguid"in r?{aaguidBytes:t,aaguidText:r.aaguid}:{unknownProvider:null}},ny=({bytes:e})=>{if(e.length!==16)return{invalidBytes:null};let t=(e instanceof Uint8Array?qi(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 oy(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 iy(e){return oo(e,Ii)}var sy=class{constructor(e){this._cose=e,this.#e=iy(e)}#e;toDer(){return this.#e}toRaw(){return new Uint8Array(this.#e)}},ip=class{#e;#t;constructor({rawId:e,cose:t}){this.#e=e,this.#t=new sy(t)}getPublicKey(){return this.#t}getCredentialId(){return this.#e}getCredentialIdText(){return $r(this.#e)}},ay=class extends ip{#e;#t;constructor({authData:e,...t}){super(t);let r=ry({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}},cy=class extends ip{},ly=class extends Error{},uy=class extends Error{},dy=class extends Error{},py=class extends Error{},fy=class extends Error{},hy=class extends Error{},my=class extends Error{},tp=class extends Error{};var _y={ECDSA_WITH_SHA256:-7,RSA_WITH_SHA256:-257},yy=6e4,sp=()=>window.crypto.getRandomValues(new Uint8Array(16)),gy=()=>sp(),xy=()=>sp(),by=()=>{let{location:{href:e}}=window;try{let{hostname:t}=new URL(e);return t}catch{throw new ly}},ap=({appId:e})=>e?.id??by(),wy=({appId:e,user:t}={})=>{let{document:{title:r}}=window,n=()=>({rp:{name:e?.name??r,id:ap({appId:e})}}),o=()=>({user:{id:xy(),name:t?.name??t?.displayName??r,displayName:t?.displayName??r}});return{attestation:"direct",challenge:gy(),...n(),...o(),pubKeyCredParams:Object.values(_y).map(i=>({type:"public-key",alg:i})),excludeCredentials:[],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred",residentKey:"required",requireResidentKey:!0}}},Ty=(e={})=>({rpId:ap(e),allowCredentials:[],userVerification:"required"}),il=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}},un=(e=>(e[e.RequestingUserCredential=0]="RequestingUserCredential",e[e.FinalizingCredential=1]="FinalizingCredential",e[e.Signing=2]="Signing",e))(un||{}),cp=({timeout:e})=>AbortSignal.timeout(e??yy),Ny=async({challenge:e,credentialIds:t,passkeyOptions:r,timeout:n})=>await navigator.credentials.get({publicKey:{...Ty(r),challenge:e.buffer,allowCredentials:(t??[]).map(o=>({id:o.buffer,type:"public-key"}))},signal:cp({timeout:n})}),rp=e=>{if(e.status!=="initialized")throw new uy},np=e=>{if(U(e))throw new dy},op=({type:e})=>{if(e!=="public-key")throw new py},sl=class Ai extends zt{#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=Ai.#r({credential:new ay(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:wy(t),signal:cp({timeout:r})});np(o),op(o);let{response:{attestationObject:i},rawId:s}=o;if(U(i))throw new fy;let{authData:a}=Ss.decode(mr(i)),c=oy(a);return new Ai({...n,rawId:mr(s),cose:c,authData:a})}static async createWithExistingCredential(t){return new Ai(t)}getPublicKey(){rp(this.#t);let{credential:t}=this.#t;return t.getPublicKey()}getCredential(){rp(this.#t);let{credential:t}=this.#t;return t}async sign(t){let r=await il({fn:async()=>{let n=await Ny({challenge:t,...this.#t.status==="initialized"&&{credentialIds:[this.#t.credential.getCredentialId()]}});return np(n),op(n),n},step:0,onProgress:this.#e});return await il({fn:async()=>{let{rawId:n}=r;if(this.#t.status==="initialized"){if(!Bl({a:this.#t.credential.getCredentialId(),b:mr(n)}))throw new hy;return}let{retrievePublicKey:o}=this.#t,i=await o({credentialId:mr(n)});this.#t=Ai.#r({credential:new cy({rawId:mr(n),cose:i})})},step:1,onProgress:this.#e}),await il({fn:async()=>{let{response:n}=r,{clientDataJSON:o}=n,{authenticatorData:i,signature:s}="authenticatorData"in n&&"signature"in n?n:{};if(U(i))throw new tp;if(U(s))throw new tp;let a=Ss.encode({authenticator_data:i,client_data_json:new TextDecoder().decode(o),signature:mr(s)});if(U(a))throw new my;return Object.assign(a,{__signature__:void 0}),a},step:2,onProgress:this.#e})}},Oy=async()=>J(window.PublicKeyCredential)&&"isUserVerifyingPlatformAuthenticatorAvailable"in PublicKeyCredential?await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():!1;var Vo=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 Ue=class e extends Vo{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 Si=({message:e,detail:t})=>{let r=new CustomEvent(e,{detail:t,bubbles:!0});document.dispatchEvent(r)};var Po="http://127.0.0.1:5987",lp="rdmx6-jaaaa-aaaaa-aaadq-cai";var up=async({identity:e,container:t})=>{let n=J(t)&&t!==!1?t===!0?Po:t:"https://icp-api.io",o=J(t);return await Lr.create({identity:e,shouldFetchRootKey:o,host:n})};var Fo=class e{static instance;#e=void 0;constructor(){}static getInstance(){return U(e.instance)&&(e.instance=new e),e.instance}async getAgent({identity:t,...r}){let n=t.getPrincipal().toText();if(U(this.#e)||U(this.#e[n])){let o=await up({identity:t,...r});return this.#e={...this.#e??{},[n]:o},o}return this.#e[n]}reset(){this.#e=null}};var Bo=class e{static instance;#e=void 0;constructor(){}static getInstance(){return U(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(U(this.#e)||U(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 Fo.getInstance().getAgent(n);return Co.createActor(t,{agent:o,canisterId:r})}};function dp(e){return e!==null&&typeof e=="object"}var Ci=class e{static from(t){if(typeof t=="string"){let r=Ee(t);return this.fromRaw(r)}if(dp(t)){let r=t;if(dp(r)&&Object.hasOwnProperty.call(r,"__derEncodedPublicKey__"))return this.fromDer(r);if(ArrayBuffer.isView(r)){let n=r;return this.fromRaw(Ht(n.buffer))}if(r instanceof ArrayBuffer)return this.fromRaw(Ht(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=oo(t,no);return r.__derEncodedPublicKey__=void 0,r}static derDecode(t){let r=io(t,no);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}},dt=class e extends zt{static generate(t){if(t&&t.length!==32)throw new Error("Ed25519 Seed needs to be 32 bytes long.");t||(t=Je.utils.randomPrivateKey()),lu(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=Je.getPublicKey(r);return e.fromKeyPair(n,r)}static fromParsedJson(t){let[r,n]=t;return new e(Ci.fromDer(Ee(r)),Ee(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(Ci.fromRaw(t),r)}static fromSecretKey(t){let r=Je.getPublicKey(t);return e.fromKeyPair(r,t)}#e;#t;constructor(t,r){super(),this.#e=Ci.from(t),this.#t=r}toJSON(){return[j(this.#e.toDer()),j(this.#t)]}getKeyPair(){return{secretKey:this.#t,publicKey:this.#e}}getPublicKey(){return this.#e}async sign(t){let r=Je.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=Ee(a)),Ht(a)));return Je.verify(o,i,s)}};var al=class e extends Error{constructor(t){super(t),this.message=t,Object.setPrototypeOf(this,e.prototype)}};function pp(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 al("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 xt=class e extends zt{static async generate(t){let{extractable:r=!1,keyUsages:n=["sign","verify"],subtleCrypto:o}=t??{},i=pp(o),s=await i.generateKey({name:"ECDSA",namedCurve:"P-256"},r,n),a=Ht(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=pp(r),o=Ht(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=Ht(await this._subtleCrypto.sign(r,this._keyPair.privateKey,t));return Object.assign(n,{__signature__:void 0}),n}};var na=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 q.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 oa(e){return e instanceof Uint8Array?j(e):j(new Uint8Array(e))}function cl(e){if(typeof e!="string"||e.length<64)throw new Error("Invalid public key.");return Ee(e)}var dn=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:oa(this.pubkey),...this.targets&&{targets:this.targets.map(t=>t.toHex())}}}};async function Ey(e,t,r,n){let o=new dn(t.toDer(),BigInt(+r)*BigInt(1e6),n),i=new Uint8Array([...lc,...new Uint8Array(vr({...o}))]),s=await e.sign(i);return{delegation:o,signature:s}}var Lt=class e{static async create(t,r,n=new Date(Date.now()+900*1e3),o={}){let i=await Ey(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:l,targets:d}=s;if(d!==void 0&&!Array.isArray(d))throw new Error("Invalid targets.");return{delegation:new dn(cl(c),BigInt(`0x${l}`),d&&d.map(p=>{if(typeof p!="string")throw new Error("Invalid target.");return q.fromHex(p)})),signature:cl(a)}});return new this(o,cl(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:oa(r.pubkey),...o&&{targets:o.map(i=>i.toHex())}},signature:oa(n)}}),publicKey:oa(this.publicKey)}}},qt=class extends zt{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 vr(r);return{...n,body:{content:r,sender_sig:await this.sign(new Uint8Array([...ai,...new Uint8Array(o)])),sender_delegation:this._delegation.delegations,sender_pubkey:this._delegation.publicKey}}}},Vi=class e extends na{#e;get delegation(){return this.#e}constructor(t,r){super(t),this.#e=r}static fromDelegation(t,r){return new e(t,r)}};function ll(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"?q.fromText(o):o)):r.push(typeof n=="string"?q.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 fp=["mousedown","mousemove","keydown","touchstart","wheel"],Pi=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),fp.forEach(s=>{document.addEventListener(s,o,!0)});let i=(s,a)=>{let c;return(...l)=>{let d=this,p=()=>{c=void 0,s.apply(d,l)};clearTimeout(c),c=window.setTimeout(p,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);fp.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 Ry=(e,t)=>t.some(r=>e instanceof r),hp,mp;function vy(){return hp||(hp=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function Iy(){return mp||(mp=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var _p=new WeakMap,dl=new WeakMap,yp=new WeakMap,ul=new WeakMap,fl=new WeakMap;function Ay(e){let t=new Promise((r,n)=>{let o=()=>{e.removeEventListener("success",i),e.removeEventListener("error",s)},i=()=>{r(Yt(e.result)),o()},s=()=>{n(e.error),o()};e.addEventListener("success",i),e.addEventListener("error",s)});return t.then(r=>{r instanceof IDBCursor&&_p.set(r,e)}).catch(()=>{}),fl.set(t,e),t}function Sy(e){if(dl.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)});dl.set(e,t)}var pl={get(e,t,r){if(e instanceof IDBTransaction){if(t==="done")return dl.get(e);if(t==="objectStoreNames")return e.objectStoreNames||yp.get(e);if(t==="store")return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return Yt(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 gp(e){pl=e(pl)}function Cy(e){return e===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(t,...r){let n=e.call(ia(this),t,...r);return yp.set(n,t.sort?t.sort():[t]),Yt(n)}:Iy().includes(e)?function(...t){return e.apply(ia(this),t),Yt(_p.get(this))}:function(...t){return Yt(e.apply(ia(this),t))}}function Vy(e){return typeof e=="function"?Cy(e):(e instanceof IDBTransaction&&Sy(e),Ry(e,vy())?new Proxy(e,pl):e)}function Yt(e){if(e instanceof IDBRequest)return Ay(e);if(ul.has(e))return ul.get(e);let t=Vy(e);return t!==e&&(ul.set(e,t),fl.set(t,e)),t}var ia=e=>fl.get(e);function bp(e,t,{blocked:r,upgrade:n,blocking:o,terminated:i}={}){let s=indexedDB.open(e,t),a=Yt(s);return n&&s.addEventListener("upgradeneeded",c=>{n(Yt(s.result),c.oldVersion,c.newVersion,Yt(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",l=>o(l.oldVersion,l.newVersion,l))}).catch(()=>{}),a}var Py=["get","getKey","getAll","getAllKeys","count"],Fy=["put","add","delete","clear"],hl=new Map;function xp(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(hl.get(t))return hl.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,o=Fy.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||Py.includes(r)))return;let i=async function(s,...a){let c=this.transaction(s,o?"readwrite":"readonly"),l=c.store;return n&&(l=l.index(a.shift())),(await Promise.all([l[r](...a),o&&c.done]))[0]};return hl.set(t,i),i}gp(e=>({...e,get:(t,r,n)=>xp(t,r)||e.get(t,r,n),has:(t,r)=>!!xp(t,r)||e.has(t,r)}));var wp="auth-client-db",Tp="ic-keyval",By=async(e=wp,t=Tp,r)=>(globalThis.localStorage?.getItem(ke)&&(globalThis.localStorage.removeItem(ke),globalThis.localStorage.removeItem(We)),await bp(e,r,{upgrade:n=>{n.objectStoreNames.contains(t)&&n.clear(t),n.createObjectStore(t)}}));async function Dy(e,t,r){return await e.get(t,r)}async function Uy(e,t,r,n){return await e.put(t,n,r)}async function ky(e,t,r){return await e.delete(t,r)}var sa=class e{constructor(t,r){this._db=t,this._storeName=r}static async create(t){let{dbName:r=wp,storeName:n=Tp,version:o=Np}=t??{},i=await By(r,n,o);return new e(i,n)}async set(t,r){return await Uy(this._db,this._storeName,t,r)}async get(t){return await Dy(this._db,this._storeName,t)??null}async remove(t){return await ky(this._db,this._storeName,t)}};var We="identity",ke="delegation",Op="iv",Np=1,Fi=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}},Zt=class{#e;constructor(t){this.#e=t??{}}initializedDb;get _db(){return new Promise((t,r)=>{if(this.initializedDb){t(this.initializedDb);return}sa.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 Ly=BigInt(1e9),qy=BigInt(3600),My=Ly*qy,jy="https://identity.internetcomputer.org",Ky="#authorize",$y=BigInt(8)*My,ml="ECDSA",_l="Ed25519",Hy=500,aa="UserInterrupt",Bi=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 Zt,n=t.keyType??ml,o=null;if(t.identity)o=t.identity;else{let c=await r.get(We);if(!c)try{let l=new Fi,d=await l.get(ke),p=await l.get(We);d&&p&&n===ml&&(console.log("Discovered an identity stored in localstorage. Migrating to IndexedDB"),await r.set(ke,d),await r.set(We,p),c=d,await l.remove(ke),await l.remove(We))}catch(l){console.error(`error while attempting to recover localstorage: ${l}`)}if(c)try{typeof c=="object"?n===_l&&typeof c=="string"?o=dt.fromJSON(c):o=await xt.fromKeyPair(c):typeof c=="string"&&(o=dt.fromJSON(c))}catch{}}let i=new at,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=Lt.fromJSON(c),ll(s)?"toDer"in o?i=Vi.fromDelegation(o,s):i=qt.fromDelegation(o,s):(await yl(r),o=null))}catch(c){console.error(c),await yl(r),o=null}let a;return t.idleOptions?.disableIdle?a=void 0:(s||t.identity)&&(a=Pi.create(t.idleOptions)),o||(n===_l?o=dt.generate():(t.storage&&n===ml&&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 '${_l}' as the key type, as it can serialize to a string`),o=await xt.generate()),await Ep(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 dn(a.delegation.pubkey,a.delegation.expiration,a.delegation.targets),signature:a.signature})),o=Lt.fromDelegations(n,t.userPublicKey),i=this._key;if(!i)return;this._chain=o,"toDer"in i?this._identity=Vi.fromDelegation(i,this._chain):this._identity=qt.fromDelegation(i,this._chain),this._idpWindow?.close();let s=this._createOptions?.idleOptions;!this.idleManager&&!s?.disableIdle&&(this.idleManager=Pi.create(s),this._registerDefaultIdleCallback()),this._removeEventListener(),delete this._idpWindow,this._chain&&await this._storage.set(ke,JSON.stringify(this._chain.toJSON())),await Ep(this._storage,this._key),r?.(t)}getIdentity(){return this._identity}async isAuthenticated(){return!this.getIdentity().getPrincipal().isAnonymous()&&this._chain!==null&&ll(this._chain)}async login(t){let r=Gy(this._createOptions?.loginOptions,t),n=r?.maxTimeToLive??$y,o=new URL(r?.identityProvider?.toString()||jy);o.hash=Ky,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(aa,r?.onError):setTimeout(i,Hy))};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 yl(this._storage),this._identity=new at,this._chain=null,t.returnTo)try{window.history.pushState({},"",t.returnTo)}catch{window.location.href=t.returnTo}}};async function yl(e){await e.remove(We),await e.remove(ke),await e.remove(Op)}function Gy(e,t){if(!e&&!t)return;let r=e?.customValues||t?.customValues?{...e?.customValues,...t?.customValues}:void 0;return{...e,...t,customValues:r}}function Jy(e){if(e instanceof xt)return e.getKeyPair();if(e instanceof dt)return JSON.stringify(e.toJSON());throw new Error("Unsupported key type")}async function Ep(e,t){let r=Jy(t);await e.set(We,r)}var Ce=class e{static#e;#t;constructor(){}static getInstance(){return U(this.#e)&&(this.#e=new e),this.#e}createAuthClient=async()=>(this.#t=await Bi.create({idleOptions:{disableIdle:!0,disableDefaultIdleCallback:!0}}),this.#t);safeCreateAuthClient=async()=>{let t=new Zt;return await Promise.all([t.remove(We),t.remove(ke)]),await this.createAuthClient()};getAuthClient=()=>this.#t;logout=async()=>{await this.#t?.logout(),this.#t=null};setAuthClientStorage=async({delegationChain:t,sessionKey:r})=>{let n=new Zt;await Promise.all([n.set(We,r.getKeyPair()),n.set(ke,JSON.stringify(t.toJSON()))])}};var gl=async e=>{await Wy(),await Ce.getInstance().createAuthClient(),e?.windowReload!==!1&&window.location.reload()},Wy=async()=>{await Ce.getInstance().logout(),Ue.getInstance().reset(),Bo.getInstance().reset(),Fo.getInstance().reset()};var Rp=e=>{let t=e===!0?"./workers/auth.worker.js":e,r=new Worker(t),n=async()=>{Si({message:"junoSignOutAuthTimer"}),await gl()};return r.onmessage=async({data:o})=>{let{msg:i,data:s}=o;switch(i){case"junoSignOutAuthTimer":await n();return;case"junoDelegationRemainingTime":Si({message:"junoDelegationRemainingTime",detail:s?.authRemainingTime})}},Ue.getInstance().subscribe(o=>{if(U(o)){r.postMessage({msg:"junoStopAuthTimer"});return}r.postMessage({msg:"junoStartAuthTimer"})})};var Do=class e{static#e;#t;#r;static CHANNEL_NAME="juno_core_auth_channel";static MESSAGE_LOGIN_SUCCESS="authClientLoginSuccess";constructor(){this.#t=new BroadcastChannel(e.CHANNEL_NAME),this.#r=window.crypto.randomUUID()}static getInstance(){return U(this.#e)&&(this.#e=new e),this.#e}onLoginSuccess=t=>{let{location:{origin:r}}=window;this.#t.onmessage=async({origin:n,data:o})=>{n===r&&J(o)&&o.msg==="authClientLoginSuccess"&&_r(o.emitterId)&&o.emitterId!==this.#r&&await t()}};destroy=()=>{this.#t.close(),e.#e=null};postLoginSuccess=()=>{let t={emitterId:this.#r,msg:e.MESSAGE_LOGIN_SUCCESS};this.#t.postMessage(t)};get __test__only__emitter_id__(){return this.#r}};var Ie=class e extends Vo{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 Di=async({fn:e,syncTabsOnSuccess:t})=>{let{authenticated:r}=await zy({fn:e});!r||!t||Ie.getInstance().get()?.syncTabs===!1||Yy()},vp=async({fn:e})=>{let{createAuthClient:t}=Ce.getInstance(),n=await(await t()).isAuthenticated();await e({authenticated:n})},zy=async({fn:e})=>{let{createAuthClient:t,safeCreateAuthClient:r}=Ce.getInstance();return await(await t()).isAuthenticated()?(await e(),{authenticated:!0}):(await r(),{authenticated:!1})},Yy=()=>{try{Do.getInstance().postLoginSuccess()}catch(e){console.warn("Auth BroadcastChannel posting failed",e)}};var xl=({error:e,type:t})=>typeof e=="string"?e.includes(t):e instanceof Error?e.message.includes(t):!1;var Ip="juno.datastore.error.user.cannot_update";var Xt={certified:!1};var ca=()=>Ce.getInstance().getAuthClient()?.getIdentity(),Zy=async()=>{let{getAuthClient:e,createAuthClient:t}=Ce.getInstance();return(e()??await t()).getIdentity()},Xy=async()=>{let e=Ue.getInstance().get();if(U(e))return null;let t=Ce.getInstance().getAuthClient();return await t?.isAuthenticated()??!1?t?.getIdentity()??null:null};var ue=e=>J(e)?e:ca()??new at;var bl=({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}),l=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),d=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),p=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}),u=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,JwtVerify:d,GetOrFetchJwks:p,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),f=e.Variant({PrepareDelegation:u,RegisterUser:e.Text}),h=e.Variant({Ok:c,Err:f}),_=e.Record({jwt:e.Text,salt:e.Vec(e.Nat8)}),y=e.Variant({OpenId:_}),m=e.Variant({Write:e.Null,Submit:e.Null}),b=e.Record({scope:m,expires_at:e.Nat64}),g=e.Variant({JwtFindProvider:l,InvalidController:e.Text,GetCachedJwks:e.Null,JwtVerify:d,GetOrFetchJwks:p,ControllerAlreadyExists:e.Null,InvalidObservatoryId:e.Text,TooManyControllers:e.Text}),T=e.Variant({PrepareAutomation:g,RegisterController:e.Text,SaveWorkflowMetadata:e.Text,SaveUniqueJtiToken:e.Text}),O=e.Variant({Ok:e.Tuple(e.Principal,b),Err:T}),v=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}),E=e.Variant({Heap:e.Record({offset:e.Nat64}),Stable:e.Record({key:e.Opt(v)})}),C=e.Variant({Append:e.Null,Clear:e.Null,AppendWithRouting:e.Null}),w=e.Record({cursor:E,strategy:C,chunk_size:e.Opt(e.Nat32)}),I=e.Record({next_cursor:e.Opt(E)}),P=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),A=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),x=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),N=e.Record({field:x,desc:e.Bool}),S=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),B=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(S),description:e.Opt(e.Text),created_at:e.Opt(S)}),M=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),R=e.Record({order:e.Opt(N),owner:e.Opt(e.Principal),matcher:e.Opt(B),paginate:e.Opt(M)}),V=e.Record({controllers:e.Vec(e.Principal)}),F=e.Variant({Emulator:e.Null,Automation:e.Null}),D=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),k=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(F),created_at:e.Nat64,scope:D,expires_at:e.Opt(e.Nat64)}),te=e.Record({version:e.Opt(e.Nat64)}),Z=e.Variant({Db:e.Null,Storage:e.Null}),Y=e.Record({version:e.Opt(e.Nat64)}),xe=e.Record({proposal_ids:e.Vec(e.Nat)}),be=e.Record({cycles:e.Nat,destination_id:e.Principal}),ze=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),ne=e.Record({key:v,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,ze)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),ie=e.Variant({GitHub:e.Null,Google:e.Null}),er=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),fn=e.Record({delegation:e.Opt(er),client_id:e.Text}),tr=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(ie,fn))}),rr=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),nr=e.Record({allowed_callers:e.Vec(e.Principal)}),et=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(tr),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(rr),rules:e.Opt(nr)}),tt=e.Variant({GitHub:e.Null}),or=e.Record({scope:e.Opt(m),max_time_to_live:e.Opt(e.Nat64)}),hn=e.Record({owner:e.Text,name:e.Text}),mn=e.Record({refs:e.Opt(e.Vec(e.Text))}),bt=e.Record({controller:e.Opt(or),repositories:e.Vec(e.Tuple(hn,mn))}),ir=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(tt,bt))}),wt=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(ir),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64)}),rt=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),nt=e.Record({updated_at:e.Opt(e.Nat64),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(rt)}),Tt=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),sr=e.Variant({Deny:e.Null,Allow:e.Null}),ar=e.Record({status_code:e.Nat16,location:e.Text}),Le=e.Record({iframe:e.Opt(Tt),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(rt),raw_access:e.Opt(sr),redirects:e.Opt(e.Vec(e.Tuple(e.Text,ar)))}),_n=e.Record({db:e.Opt(nt),authentication:e.Opt(et),storage:Le,automation:e.Opt(wt)}),yn=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),gn=e.Variant({OpenId:yn}),xn=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),bn=e.Record({signature:e.Vec(e.Nat8),delegation:xn}),wn=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:d,GetOrFetchJwks:p,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),Tn=e.Variant({Ok:bn,Err:wn}),cr=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),lr=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Nn=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),ur=e.Variant({AssetsUpgrade:lr,SegmentsDeployment:Nn}),qe=e.Record({status:cr,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:ur}),ot=e.Variant({Controllers:e.Null,Private:e.Null,Public:e.Null,Managed:e.Null}),dr=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),Nt=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),updated_at:e.Nat64,max_size:e.Opt(e.Nat),read:ot,created_at:e.Nat64,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(dr),write:ot,max_changes_per_user:e.Opt(e.Nat32)}),On=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)}),Ot=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}),En=e.Variant({Callback:e.Record({token:Ot,callback:e.Func([],[],["query"])})}),Rn=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(En),status_code:e.Nat16}),vn=e.Record({token:e.Opt(Ot),body:e.Vec(e.Nat8)}),Et=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}),we=e.Record({batch_id:e.Nat}),In=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,ne)),items_length:e.Nat64}),An=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),it=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}),Sn=e.Record({desc:e.Bool}),Cn=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Vn=e.Record({order:e.Opt(Sn),paginate:e.Opt(Cn)}),Pn=e.Record({proposal_id:e.Nat}),pr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Pn,qe)),items_length:e.Nat64}),Fn=e.Record({include_system:e.Bool}),Bn=e.Record({matcher:e.Opt(Fn)}),fr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,Nt)),items_length:e.Nat64}),Dn=e.Record({stable:e.Nat64,heap:e.Nat64}),Un=e.Record({openid:e.Opt(tr),version:e.Opt(e.Nat64),internet_identity:e.Opt(rr),rules:e.Opt(nr)}),Sa=e.Record({openid:e.Opt(ir),version:e.Opt(e.Nat64)}),Ca=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(F),scope:D,expires_at:e.Opt(e.Nat64)}),Va=e.Record({controller:Ca,controllers:e.Vec(e.Principal)}),Pa=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt(rt)}),Lo=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),Fa=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),max_size:e.Opt(e.Nat),read:ot,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(dr),write:ot,max_changes_per_user:e.Opt(e.Nat32)}),qo=e.Record({iframe:e.Opt(Tt),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(rt),raw_access:e.Opt(sr),redirects:e.Opt(e.Vec(e.Tuple(e.Text,ar)))}),Ba=e.Record({skip_certification:e.Opt(e.Bool)}),Da=e.Record({config:qo,options:Ba}),Mo=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),jo=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([i],[h],[]),authenticate_automation:e.Func([y],[O],[]),certify_assets_chunk:e.Func([w],[I],[]),commit_asset_upload:e.Func([P],[],[]),commit_proposal:e.Func([A],[e.Null],[]),commit_proposal_asset_upload:e.Func([P],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(P)],[],[]),count_assets:e.Func([e.Text,R],[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,R],[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_controller_self:e.Func([],[],[]),del_controllers:e.Func([V],[e.Vec(e.Tuple(e.Principal,k))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,te],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,R],[],[]),del_filtered_docs:e.Func([e.Text,R],[],[]),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,te))],[],[]),del_rule:e.Func([Z,e.Text,Y],[],[]),delete_proposal_assets:e.Func([xe],[],[]),deposit_cycles:e.Func([be],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(ne)],["query"]),get_auth_config:e.Func([],[e.Opt(et)],["query"]),get_automation_config:e.Func([],[e.Opt(wt)],["query"]),get_config:e.Func([],[_n],[]),get_db_config:e.Func([],[e.Opt(nt)],["query"]),get_delegation:e.Func([gn],[Tn],["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(ne)))],["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(qe)],["query"]),get_rule:e.Func([Z,e.Text],[e.Opt(Nt)],["query"]),get_storage_config:e.Func([],[Le],["query"]),http_request:e.Func([On],[Rn],["query"]),http_request_streaming_callback:e.Func([Ot],[vn],["query"]),init_asset_upload:e.Func([Et],[we],[]),init_proposal:e.Func([ur],[e.Nat,qe],[]),init_proposal_asset_upload:e.Func([Et,e.Nat],[we],[]),init_proposal_many_assets_upload:e.Func([e.Vec(Et),e.Nat],[e.Vec(e.Tuple(e.Text,we))],[]),list_assets:e.Func([e.Text,R],[In],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,k))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,An))],["query"]),list_docs:e.Func([e.Text,R],[it],["query"]),list_proposals:e.Func([Vn],[pr],["query"]),list_rules:e.Func([Z,Bn],[fr],["query"]),memory_size:e.Func([],[Dn],["query"]),reject_proposal:e.Func([A],[e.Null],[]),set_asset_token:e.Func([e.Text,e.Text,e.Opt(e.Text)],[],[]),set_auth_config:e.Func([Un],[et],[]),set_automation_config:e.Func([Sa],[wt],[]),set_controllers:e.Func([Va],[e.Vec(e.Tuple(e.Principal,k))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([Pa],[nt],[]),set_doc:e.Func([e.Text,e.Text,Lo],[s],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,Lo))],[e.Vec(e.Tuple(e.Text,s))],[]),set_rule:e.Func([Z,e.Text,Fa],[Nt],[]),set_storage_config:e.Func([qo],[Le],[]),set_storage_config_with_options:e.Func([Da],[Le],[]),submit_proposal:e.Func([e.Nat],[e.Nat,qe],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([Mo],[jo],[]),upload_proposal_asset_chunk:e.Func([Mo],[jo],[])})},wl=({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}),l=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),d=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),p=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}),u=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,JwtVerify:d,GetOrFetchJwks:p,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),f=e.Variant({PrepareDelegation:u,RegisterUser:e.Text}),h=e.Variant({Ok:c,Err:f}),_=e.Record({jwt:e.Text,salt:e.Vec(e.Nat8)}),y=e.Variant({OpenId:_}),m=e.Variant({Write:e.Null,Submit:e.Null}),b=e.Record({scope:m,expires_at:e.Nat64}),g=e.Variant({JwtFindProvider:l,InvalidController:e.Text,GetCachedJwks:e.Null,JwtVerify:d,GetOrFetchJwks:p,ControllerAlreadyExists:e.Null,InvalidObservatoryId:e.Text,TooManyControllers:e.Text}),T=e.Variant({PrepareAutomation:g,RegisterController:e.Text,SaveWorkflowMetadata:e.Text,SaveUniqueJtiToken:e.Text}),O=e.Variant({Ok:e.Tuple(e.Principal,b),Err:T}),v=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}),E=e.Variant({Heap:e.Record({offset:e.Nat64}),Stable:e.Record({key:e.Opt(v)})}),C=e.Variant({Append:e.Null,Clear:e.Null,AppendWithRouting:e.Null}),w=e.Record({cursor:E,strategy:C,chunk_size:e.Opt(e.Nat32)}),I=e.Record({next_cursor:e.Opt(E)}),P=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),A=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),x=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),N=e.Record({field:x,desc:e.Bool}),S=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),B=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(S),description:e.Opt(e.Text),created_at:e.Opt(S)}),M=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),R=e.Record({order:e.Opt(N),owner:e.Opt(e.Principal),matcher:e.Opt(B),paginate:e.Opt(M)}),V=e.Record({controllers:e.Vec(e.Principal)}),F=e.Variant({Emulator:e.Null,Automation:e.Null}),D=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),k=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(F),created_at:e.Nat64,scope:D,expires_at:e.Opt(e.Nat64)}),te=e.Record({version:e.Opt(e.Nat64)}),Z=e.Variant({Db:e.Null,Storage:e.Null}),Y=e.Record({version:e.Opt(e.Nat64)}),xe=e.Record({proposal_ids:e.Vec(e.Nat)}),be=e.Record({cycles:e.Nat,destination_id:e.Principal}),ze=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),ne=e.Record({key:v,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,ze)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),ie=e.Variant({GitHub:e.Null,Google:e.Null}),er=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),fn=e.Record({delegation:e.Opt(er),client_id:e.Text}),tr=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(ie,fn))}),rr=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),nr=e.Record({allowed_callers:e.Vec(e.Principal)}),et=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(tr),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(rr),rules:e.Opt(nr)}),tt=e.Variant({GitHub:e.Null}),or=e.Record({scope:e.Opt(m),max_time_to_live:e.Opt(e.Nat64)}),hn=e.Record({owner:e.Text,name:e.Text}),mn=e.Record({refs:e.Opt(e.Vec(e.Text))}),bt=e.Record({controller:e.Opt(or),repositories:e.Vec(e.Tuple(hn,mn))}),ir=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(tt,bt))}),wt=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(ir),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64)}),rt=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),nt=e.Record({updated_at:e.Opt(e.Nat64),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(rt)}),Tt=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),sr=e.Variant({Deny:e.Null,Allow:e.Null}),ar=e.Record({status_code:e.Nat16,location:e.Text}),Le=e.Record({iframe:e.Opt(Tt),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(rt),raw_access:e.Opt(sr),redirects:e.Opt(e.Vec(e.Tuple(e.Text,ar)))}),_n=e.Record({db:e.Opt(nt),authentication:e.Opt(et),storage:Le,automation:e.Opt(wt)}),yn=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),gn=e.Variant({OpenId:yn}),xn=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),bn=e.Record({signature:e.Vec(e.Nat8),delegation:xn}),wn=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:d,GetOrFetchJwks:p,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),Tn=e.Variant({Ok:bn,Err:wn}),cr=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),lr=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Nn=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),ur=e.Variant({AssetsUpgrade:lr,SegmentsDeployment:Nn}),qe=e.Record({status:cr,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:ur}),ot=e.Variant({Controllers:e.Null,Private:e.Null,Public:e.Null,Managed:e.Null}),dr=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),Nt=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),updated_at:e.Nat64,max_size:e.Opt(e.Nat),read:ot,created_at:e.Nat64,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(dr),write:ot,max_changes_per_user:e.Opt(e.Nat32)}),On=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)}),Ot=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}),En=e.Variant({Callback:e.Record({token:Ot,callback:e.Func([],[],[])})}),Rn=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(En),status_code:e.Nat16}),vn=e.Record({token:e.Opt(Ot),body:e.Vec(e.Nat8)}),Et=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}),we=e.Record({batch_id:e.Nat}),In=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,ne)),items_length:e.Nat64}),An=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),it=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}),Sn=e.Record({desc:e.Bool}),Cn=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Vn=e.Record({order:e.Opt(Sn),paginate:e.Opt(Cn)}),Pn=e.Record({proposal_id:e.Nat}),pr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Pn,qe)),items_length:e.Nat64}),Fn=e.Record({include_system:e.Bool}),Bn=e.Record({matcher:e.Opt(Fn)}),fr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,Nt)),items_length:e.Nat64}),Dn=e.Record({stable:e.Nat64,heap:e.Nat64}),Un=e.Record({openid:e.Opt(tr),version:e.Opt(e.Nat64),internet_identity:e.Opt(rr),rules:e.Opt(nr)}),Sa=e.Record({openid:e.Opt(ir),version:e.Opt(e.Nat64)}),Ca=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(F),scope:D,expires_at:e.Opt(e.Nat64)}),Va=e.Record({controller:Ca,controllers:e.Vec(e.Principal)}),Pa=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt(rt)}),Lo=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),Fa=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),max_size:e.Opt(e.Nat),read:ot,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(dr),write:ot,max_changes_per_user:e.Opt(e.Nat32)}),qo=e.Record({iframe:e.Opt(Tt),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(rt),raw_access:e.Opt(sr),redirects:e.Opt(e.Vec(e.Tuple(e.Text,ar)))}),Ba=e.Record({skip_certification:e.Opt(e.Bool)}),Da=e.Record({config:qo,options:Ba}),Mo=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),jo=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([i],[h],[]),authenticate_automation:e.Func([y],[O],[]),certify_assets_chunk:e.Func([w],[I],[]),commit_asset_upload:e.Func([P],[],[]),commit_proposal:e.Func([A],[e.Null],[]),commit_proposal_asset_upload:e.Func([P],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(P)],[],[]),count_assets:e.Func([e.Text,R],[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,R],[e.Nat64],[]),count_proposals:e.Func([],[e.Nat64],[]),del_asset:e.Func([e.Text,e.Text],[],[]),del_assets:e.Func([e.Text],[],[]),del_controller_self:e.Func([],[],[]),del_controllers:e.Func([V],[e.Vec(e.Tuple(e.Principal,k))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,te],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,R],[],[]),del_filtered_docs:e.Func([e.Text,R],[],[]),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,te))],[],[]),del_rule:e.Func([Z,e.Text,Y],[],[]),delete_proposal_assets:e.Func([xe],[],[]),deposit_cycles:e.Func([be],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(ne)],[]),get_auth_config:e.Func([],[e.Opt(et)],[]),get_automation_config:e.Func([],[e.Opt(wt)],[]),get_config:e.Func([],[_n],[]),get_db_config:e.Func([],[e.Opt(nt)],[]),get_delegation:e.Func([gn],[Tn],[]),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(ne)))],[]),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(qe)],[]),get_rule:e.Func([Z,e.Text],[e.Opt(Nt)],[]),get_storage_config:e.Func([],[Le],[]),http_request:e.Func([On],[Rn],[]),http_request_streaming_callback:e.Func([Ot],[vn],[]),init_asset_upload:e.Func([Et],[we],[]),init_proposal:e.Func([ur],[e.Nat,qe],[]),init_proposal_asset_upload:e.Func([Et,e.Nat],[we],[]),init_proposal_many_assets_upload:e.Func([e.Vec(Et),e.Nat],[e.Vec(e.Tuple(e.Text,we))],[]),list_assets:e.Func([e.Text,R],[In],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,k))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,An))],[]),list_docs:e.Func([e.Text,R],[it],[]),list_proposals:e.Func([Vn],[pr],[]),list_rules:e.Func([Z,Bn],[fr],[]),memory_size:e.Func([],[Dn],[]),reject_proposal:e.Func([A],[e.Null],[]),set_asset_token:e.Func([e.Text,e.Text,e.Opt(e.Text)],[],[]),set_auth_config:e.Func([Un],[et],[]),set_automation_config:e.Func([Sa],[wt],[]),set_controllers:e.Func([Va],[e.Vec(e.Tuple(e.Principal,k))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([Pa],[nt],[]),set_doc:e.Func([e.Text,e.Text,Lo],[s],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,Lo))],[e.Vec(e.Tuple(e.Text,s))],[]),set_rule:e.Func([Z,e.Text,Fa],[Nt],[]),set_storage_config:e.Func([qo],[Le],[]),set_storage_config_with_options:e.Func([Da],[Le],[]),submit_proposal:e.Func([e.Nat],[e.Nat,qe],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([Mo],[jo],[]),upload_proposal_asset_chunk:e.Func([Mo],[jo],[])})},Qy=({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({GitHub:e.Null,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),preferred_username:e.Opt(e.Text)}),c=e.Record({provider:s,data:a}),l=e.Variant({InternetIdentity:e.Null,OpenId:c}),d=e.Record({updated_at:e.Nat64,credits:t,mission_control_id:e.Opt(e.Principal),provider:e.Opt(l),owner:e.Principal,created_at:e.Nat64}),p=e.Record({delegation:i,account:d}),u=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}),_=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),y=e.Variant({PrepareDelegation:_,RegisterUser:e.Text}),m=e.Variant({Ok:p,Err:y}),b=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),g=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),T=e.Record({subnet_id:e.Opt(e.Principal)}),O=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),name:e.Opt(e.Text),user:e.Principal}),v=e.Variant({Heap:e.Null,Stable:e.Null}),E=e.Record({system_memory:e.Opt(v)}),C=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),storage:e.Opt(E),name:e.Opt(e.Text),user:e.Principal}),w=e.Record({controllers:e.Vec(e.Principal)}),I=e.Record({proposal_ids:e.Vec(e.Nat)}),P=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),A=e.Record({delegation:e.Opt(P),client_id:e.Text}),x=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(s,A))}),N=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),S=e.Record({allowed_callers:e.Vec(e.Principal)}),B=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(x),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(S)}),M=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),R=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),V=e.Variant({Deny:e.Null,Allow:e.Null}),F=e.Record({status_code:e.Nat16,location:e.Text}),D=e.Record({iframe:e.Opt(M),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(R),raw_access:e.Opt(V),redirects:e.Opt(e.Vec(e.Tuple(e.Text,F)))}),k=e.Record({authentication:e.Opt(B),storage:D}),te=e.Record({user:e.Principal}),Z=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Y=e.Variant({OpenId:Z}),xe=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),be=e.Record({signature:e.Vec(e.Nat8),delegation:xe}),ze=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),ne=e.Variant({Ok:be,Err:ze}),ie=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),er=e.Record({e12s:e.Nat64}),fn=e.Record({updated_at:e.Nat64,fee_cycles:er,fee_icp:e.Opt(t)}),tr=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),rr=e.Record({clear_existing_assets:e.Opt(e.Bool)}),nr=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),et=e.Variant({AssetsUpgrade:rr,SegmentsDeployment:nr}),tt=e.Record({status:tr,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:et}),or=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),hn=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)}),mn=e.Variant({Heap:e.Null,Stable:e.Null}),bt=e.Record({memory:mn,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}),ir=e.Variant({Callback:e.Record({token:bt,callback:e.Func([],[],["query"])})}),wt=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(ir),status_code:e.Nat16}),rt=e.Record({token:e.Opt(bt),body:e.Vec(e.Nat8)}),nt=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}),Tt=e.Record({batch_id:e.Nat}),sr=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),ar=e.Record({field:sr,desc:e.Bool}),Le=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),_n=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(Le),description:e.Opt(e.Text),created_at:e.Opt(Le)}),yn=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),gn=e.Record({order:e.Opt(ar),owner:e.Opt(e.Principal),matcher:e.Opt(_n),paginate:e.Opt(yn)}),xn=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}),bn=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),wn=e.Record({key:xn,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,bn)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),Tn=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,wn)),items_length:e.Nat64}),cr=e.Variant({Emulator:e.Null,Automation:e.Null}),lr=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),Nn=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(cr),created_at:e.Nat64,scope:lr,expires_at:e.Opt(e.Nat64)}),ur=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),qe=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),ot=e.Record({status:qe,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)}),dr=e.Record({block_index:e.Nat64,ledger_id:e.Principal}),Nt=e.Record({owner:e.Principal,subaccount:e.Opt(e.Vec(e.Nat8))}),On=e.Record({status:qe,updated_at:e.Nat64,created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64),purchaser:Nt}),Ot=e.Record({desc:e.Bool}),En=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Rn=e.Record({order:e.Opt(Ot),paginate:e.Opt(En)}),vn=e.Record({proposal_id:e.Nat}),Et=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(vn,tt)),items_length:e.Nat64}),we=e.Variant({Orbiter:e.Null,Satellite:e.Null}),In=e.Record({segment_id:e.Opt(e.Principal),segment_kind:e.Opt(we)}),An=e.Record({user:e.Principal,segment_id:e.Principal,segment_kind:we}),it=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,created_at:e.Nat64}),Sn=e.Record({openid:e.Opt(x),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(S)}),Cn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(cr),scope:lr,expires_at:e.Opt(e.Nat64)}),Vn=e.Record({controller:Cn,controllers:e.Vec(e.Principal)}),Pn=e.Record({fee_cycles:er,fee_icp:e.Opt(t)}),pr=e.Record({metadata:e.Opt(e.Vec(e.Tuple(e.Text,e.Text))),segment_id:e.Principal,segment_kind:we}),Fn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:we}),Bn=e.Record({iframe:e.Opt(M),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(R),raw_access:e.Opt(V),redirects:e.Opt(e.Vec(e.Tuple(e.Text,F)))}),fr=e.Record({segment_id:e.Principal,segment_kind:we}),Dn=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Un=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],[m],[]),commit_proposal:e.Func([b],[e.Null],[]),commit_proposal_asset_upload:e.Func([g],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(g)],[],[]),count_proposals:e.Func([],[e.Nat64],["query"]),create_mission_control:e.Func([T],[e.Principal],[]),create_orbiter:e.Func([O],[e.Principal],[]),create_satellite:e.Func([C],[e.Principal],[]),del_controllers:e.Func([w],[],[]),del_custom_domain:e.Func([e.Text],[],[]),delete_proposal_assets:e.Func([I],[],[]),get_account:e.Func([],[e.Opt(d)],["query"]),get_auth_config:e.Func([],[e.Opt(B)],["query"]),get_config:e.Func([],[k],["query"]),get_create_orbiter_fee:e.Func([te],[e.Opt(t)],["query"]),get_create_satellite_fee:e.Func([te],[e.Opt(t)],["query"]),get_credits:e.Func([],[t],["query"]),get_delegation:e.Func([Y],[ne],["query"]),get_fee:e.Func([ie],[fn],["query"]),get_or_init_account:e.Func([],[d],[]),get_proposal:e.Func([e.Nat],[e.Opt(tt)],["query"]),get_rate_config:e.Func([ie],[or],["query"]),get_storage_config:e.Func([],[D],["query"]),http_request:e.Func([hn],[wt],["query"]),http_request_streaming_callback:e.Func([bt],[rt],["query"]),init_proposal:e.Func([et],[e.Nat,tt],[]),init_proposal_asset_upload:e.Func([nt,e.Nat],[Tt],[]),init_proposal_many_assets_upload:e.Func([e.Vec(nt),e.Nat],[e.Vec(e.Tuple(e.Text,Tt))],[]),list_accounts:e.Func([],[e.Vec(e.Tuple(e.Principal,d))],["query"]),list_assets:e.Func([e.Text,gn],[Tn],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,Nn))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,ur))],["query"]),list_icp_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,ot))],["query"]),list_icrc_payments:e.Func([],[e.Vec(e.Tuple(dr,On))],["query"]),list_proposals:e.Func([Rn],[Et],["query"]),list_segments:e.Func([In],[e.Vec(e.Tuple(An,it))],["query"]),reject_proposal:e.Func([b],[e.Null],[]),set_auth_config:e.Func([Sn],[B],[]),set_controllers:e.Func([Vn],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([ie,Pn],[],[]),set_many_segments:e.Func([e.Vec(pr)],[e.Vec(it)],[]),set_rate_config:e.Func([ie,or],[],[]),set_segment:e.Func([pr],[it],[]),set_segment_metadata:e.Func([Fn],[it],[]),set_storage_config:e.Func([Bn],[D],[]),submit_proposal:e.Func([e.Nat],[e.Nat,tt],[]),unset_many_segments:e.Func([e.Vec(fr)],[],[]),unset_segment:e.Func([fr],[],[]),upload_proposal_asset_chunk:e.Func([Dn],[Un],[])})},e0=({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({GitHub:e.Null,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),preferred_username:e.Opt(e.Text)}),c=e.Record({provider:s,data:a}),l=e.Variant({InternetIdentity:e.Null,OpenId:c}),d=e.Record({updated_at:e.Nat64,credits:t,mission_control_id:e.Opt(e.Principal),provider:e.Opt(l),owner:e.Principal,created_at:e.Nat64}),p=e.Record({delegation:i,account:d}),u=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}),_=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),y=e.Variant({PrepareDelegation:_,RegisterUser:e.Text}),m=e.Variant({Ok:p,Err:y}),b=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),g=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),T=e.Record({subnet_id:e.Opt(e.Principal)}),O=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),name:e.Opt(e.Text),user:e.Principal}),v=e.Variant({Heap:e.Null,Stable:e.Null}),E=e.Record({system_memory:e.Opt(v)}),C=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),storage:e.Opt(E),name:e.Opt(e.Text),user:e.Principal}),w=e.Record({controllers:e.Vec(e.Principal)}),I=e.Record({proposal_ids:e.Vec(e.Nat)}),P=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),A=e.Record({delegation:e.Opt(P),client_id:e.Text}),x=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(s,A))}),N=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),S=e.Record({allowed_callers:e.Vec(e.Principal)}),B=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(x),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(S)}),M=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),R=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),V=e.Variant({Deny:e.Null,Allow:e.Null}),F=e.Record({status_code:e.Nat16,location:e.Text}),D=e.Record({iframe:e.Opt(M),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(R),raw_access:e.Opt(V),redirects:e.Opt(e.Vec(e.Tuple(e.Text,F)))}),k=e.Record({authentication:e.Opt(B),storage:D}),te=e.Record({user:e.Principal}),Z=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Y=e.Variant({OpenId:Z}),xe=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),be=e.Record({signature:e.Vec(e.Nat8),delegation:xe}),ze=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),ne=e.Variant({Ok:be,Err:ze}),ie=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),er=e.Record({e12s:e.Nat64}),fn=e.Record({updated_at:e.Nat64,fee_cycles:er,fee_icp:e.Opt(t)}),tr=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),rr=e.Record({clear_existing_assets:e.Opt(e.Bool)}),nr=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),et=e.Variant({AssetsUpgrade:rr,SegmentsDeployment:nr}),tt=e.Record({status:tr,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:et}),or=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),hn=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)}),mn=e.Variant({Heap:e.Null,Stable:e.Null}),bt=e.Record({memory:mn,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}),ir=e.Variant({Callback:e.Record({token:bt,callback:e.Func([],[],[])})}),wt=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(ir),status_code:e.Nat16}),rt=e.Record({token:e.Opt(bt),body:e.Vec(e.Nat8)}),nt=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}),Tt=e.Record({batch_id:e.Nat}),sr=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),ar=e.Record({field:sr,desc:e.Bool}),Le=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),_n=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(Le),description:e.Opt(e.Text),created_at:e.Opt(Le)}),yn=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),gn=e.Record({order:e.Opt(ar),owner:e.Opt(e.Principal),matcher:e.Opt(_n),paginate:e.Opt(yn)}),xn=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}),bn=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),wn=e.Record({key:xn,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,bn)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),Tn=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,wn)),items_length:e.Nat64}),cr=e.Variant({Emulator:e.Null,Automation:e.Null}),lr=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),Nn=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(cr),created_at:e.Nat64,scope:lr,expires_at:e.Opt(e.Nat64)}),ur=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),qe=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),ot=e.Record({status:qe,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)}),dr=e.Record({block_index:e.Nat64,ledger_id:e.Principal}),Nt=e.Record({owner:e.Principal,subaccount:e.Opt(e.Vec(e.Nat8))}),On=e.Record({status:qe,updated_at:e.Nat64,created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64),purchaser:Nt}),Ot=e.Record({desc:e.Bool}),En=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Rn=e.Record({order:e.Opt(Ot),paginate:e.Opt(En)}),vn=e.Record({proposal_id:e.Nat}),Et=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(vn,tt)),items_length:e.Nat64}),we=e.Variant({Orbiter:e.Null,Satellite:e.Null}),In=e.Record({segment_id:e.Opt(e.Principal),segment_kind:e.Opt(we)}),An=e.Record({user:e.Principal,segment_id:e.Principal,segment_kind:we}),it=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,created_at:e.Nat64}),Sn=e.Record({openid:e.Opt(x),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(S)}),Cn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(cr),scope:lr,expires_at:e.Opt(e.Nat64)}),Vn=e.Record({controller:Cn,controllers:e.Vec(e.Principal)}),Pn=e.Record({fee_cycles:er,fee_icp:e.Opt(t)}),pr=e.Record({metadata:e.Opt(e.Vec(e.Tuple(e.Text,e.Text))),segment_id:e.Principal,segment_kind:we}),Fn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:we}),Bn=e.Record({iframe:e.Opt(M),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(R),raw_access:e.Opt(V),redirects:e.Opt(e.Vec(e.Tuple(e.Text,F)))}),fr=e.Record({segment_id:e.Principal,segment_kind:we}),Dn=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Un=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],[m],[]),commit_proposal:e.Func([b],[e.Null],[]),commit_proposal_asset_upload:e.Func([g],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(g)],[],[]),count_proposals:e.Func([],[e.Nat64],[]),create_mission_control:e.Func([T],[e.Principal],[]),create_orbiter:e.Func([O],[e.Principal],[]),create_satellite:e.Func([C],[e.Principal],[]),del_controllers:e.Func([w],[],[]),del_custom_domain:e.Func([e.Text],[],[]),delete_proposal_assets:e.Func([I],[],[]),get_account:e.Func([],[e.Opt(d)],[]),get_auth_config:e.Func([],[e.Opt(B)],[]),get_config:e.Func([],[k],[]),get_create_orbiter_fee:e.Func([te],[e.Opt(t)],[]),get_create_satellite_fee:e.Func([te],[e.Opt(t)],[]),get_credits:e.Func([],[t],[]),get_delegation:e.Func([Y],[ne],[]),get_fee:e.Func([ie],[fn],[]),get_or_init_account:e.Func([],[d],[]),get_proposal:e.Func([e.Nat],[e.Opt(tt)],[]),get_rate_config:e.Func([ie],[or],[]),get_storage_config:e.Func([],[D],[]),http_request:e.Func([hn],[wt],[]),http_request_streaming_callback:e.Func([bt],[rt],[]),init_proposal:e.Func([et],[e.Nat,tt],[]),init_proposal_asset_upload:e.Func([nt,e.Nat],[Tt],[]),init_proposal_many_assets_upload:e.Func([e.Vec(nt),e.Nat],[e.Vec(e.Tuple(e.Text,Tt))],[]),list_accounts:e.Func([],[e.Vec(e.Tuple(e.Principal,d))],[]),list_assets:e.Func([e.Text,gn],[Tn],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,Nn))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,ur))],[]),list_icp_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,ot))],[]),list_icrc_payments:e.Func([],[e.Vec(e.Tuple(dr,On))],[]),list_proposals:e.Func([Rn],[Et],[]),list_segments:e.Func([In],[e.Vec(e.Tuple(An,it))],[]),reject_proposal:e.Func([b],[e.Null],[]),set_auth_config:e.Func([Sn],[B],[]),set_controllers:e.Func([Vn],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([ie,Pn],[],[]),set_many_segments:e.Func([e.Vec(pr)],[e.Vec(it)],[]),set_rate_config:e.Func([ie,or],[],[]),set_segment:e.Func([pr],[it],[]),set_segment_metadata:e.Func([Fn],[it],[]),set_storage_config:e.Func([Bn],[D],[]),submit_proposal:e.Func([e.Nat],[e.Nat,tt],[]),unset_many_segments:e.Func([e.Vec(fr)],[],[]),unset_segment:e.Func([fr],[],[]),upload_proposal_asset_chunk:e.Func([Dn],[Un],[])})};var t0=async({identity:e,host:t,localActor:r})=>await Lr.create({identity:e,host:t,retryTimes:10,shouldFetchRootKey:r}),r0=async({agent:e,...t})=>e??await n0(t),n0=async({identity:e,container:t})=>{let r=J(t)&&t!==!1;return await t0({identity:e,host:r?t===!0?"http://127.0.0.1:5987":t:"https://icp-api.io",localActor:r})};var Ap=({satelliteId:e,certified:t=!1,...r})=>Cp({canisterId:e,...r,idlFactory:t?wl:bl});var Sp=({consoleId:e,certified:t=!1,...r})=>Cp({canisterId:e,...r,idlFactory:t?e0:Qy}),Cp=({canisterId:e,idlFactory:t,...r})=>{if(U(e))throw new Error("No canister ID provided.");return o0({canisterId:e,idlFactory:t,...r})},o0=async({canisterId:e,idlFactory:t,config:r,...n})=>{let o=await r0(n);return Co.createActor(t,{agent:o,canisterId:e,...r??{}})};var Vp=({satelliteId:e,container:t})=>{let{satelliteId:r}=Tl({satelliteId:e}),{container:n}=Nl({container:t});if(J(n)&&n!==!1){let{host:o,protocol:i}=new URL(n===!0?Po:n);return`${i}//${r??"unknown"}.${o.replace("127.0.0.1","localhost")}`}return`https://${r??"unknown"}.icp0.io`},Tl=({satelliteId:e})=>J(e)?{satelliteId:e}:Ie.getInstance().get()??{satelliteId:void 0},Nl=({container:e})=>J(e)?{container:e}:Ie.getInstance().get()??{container:void 0};var ge=({satellite:e,options:{certified:t}})=>Fp({idlFactory:t?wl:bl,actorKey:`stock#${t?"update":"query"}`,...e}),Pp=({idlFactory:e,...t})=>Fp({idlFactory:e,actorKey:"extended#query",...t}),Fp=async({satelliteId:e,container:t,...r})=>{let{satelliteId:n}=Tl({satelliteId:e});Ko(n,"No satellite ID defined. Did you initialize Juno?");let{container:o}=Nl({container:t});return await Bo.getInstance().getActor({satelliteId:n,container:o,...r})};var la=class extends Error{},qr=class extends Error{},ua=class extends Error{},da=class extends Error{},Uo=class extends Error{},pa=class extends Error{},fa=class extends Error{},ha=class extends Error{},ma=class extends Error{};var Bp=e=>{if(U(e))return se();switch(e.matcher){case"equal":return se({Equal:e.timestamp});case"greaterThan":return se({GreaterThan:e.timestamp});case"lessThan":return se({LessThan:e.timestamp});case"between":return se({Between:[e.timestamps.start,e.timestamps.end]});default:throw new ma("Invalid list matcher for timestamp",e)}},pn=({matcher:e,paginate:t,order:r,owner:n})=>({matcher:U(e)?[]:[{key:se(e.key),description:se(e.description),created_at:Bp(e.createdAt),updated_at:Bp(e.updatedAt)}],paginate:se(U(t)?void 0:{start_after:se(t.startAfter),limit:se(U(t.limit)?void 0:BigInt(t.limit))}),order:se(U(r)?void 0:{desc:r.desc,field:r.field==="created_at"?{CreatedAt:null}:r.field==="updated_at"?{UpdatedAt:null}:{Keys:null}}),owner:se(U(n)?void 0:typeof n=="string"?q.fromText(n):n)});var Dp=async({data:e})=>{try{return await ji(e)}catch(t){console.error("The data parsing has failed, mapping to undefined as a fallback.",t);return}};var Ol=async e=>{let{data:t,version:r,description:n}=e;return{description:se(n),data:await Ll(t),version:se(r)}},El=e=>{let{version:t}=e;return{version:se(t)}},so=async({doc:e,key:t})=>{let{owner:r,version:n,description:o,data:i,...s}=e;return{key:t,description:me(o),owner:r.toText(),data:await ji(i),version:me(n),...s}};var Up=async({collection:e,key:t,...r})=>{let{get_doc:n}=await ge(r),o=me(await n(e,t));if(!U(o))return so({doc:o,key:t})},kp=async({docs:e,...t})=>{let{get_many_docs:r}=await ge(t),n=e.map(({collection:s,key:a})=>[s,a]),o=await r(n),i=[];for(let[s,a]of o){let c=me(a);i.push(J(c)?await so({key:s,doc:c}):void 0)}return i},Lp=async({collection:e,doc:t,...r})=>{let{set_doc:n}=await ge(r),{key:o}=t,i=await Ol(t),s=await n(e,o,i);return await so({key:o,doc:s})},qp=async({docs:e,...t})=>{let{set_many_docs:r}=await ge(t),n=[];for(let{collection:s,doc:a}of e){let{key:c}=a;n.push([s,c,await Ol(a)])}let o=await r(n),i=[];for(let[s,a]of o)i.push(await so({key:s,doc:a}));return i},Mp=async({collection:e,doc:t,...r})=>{let{del_doc:n}=await ge(r),{key:o}=t;return n(e,o,El(t))},jp=async({docs:e,...t})=>{let{del_many_docs:r}=await ge(t),n=e.map(({collection:o,doc:i})=>[o,i.key,El(i)]);await r(n)},Kp=async({collection:e,filter:t,...r})=>{let{del_filtered_docs:n}=await ge(r);return n(e,pn(t))},$p=async({collection:e,filter:t,...r})=>{let{list_docs:n}=await ge(r),{items:o,items_page:i,items_length:s,matches_length:a,matches_pages:c}=await n(e,pn(t)),l=[];for(let[d,p]of o){let{data:u,owner:f,description:h,version:_,...y}=p;l.push({key:d,description:me(h),owner:f.toText(),data:await Dp({data:u}),version:me(_),...y})}return{items:l,items_length:s,items_page:me(i),matches_length:a,matches_pages:me(c)}},Hp=async({collection:e,filter:t,...r})=>{let{count_docs:n}=await ge(r);return n(e,pn(t))};var _a=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await Up({...r,satellite:{...e,identity:n},options:t??Xt})},GO=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await kp({...r,satellite:{...e,identity:n},options:t??Xt})},Gp=async({satellite:e,...t})=>{let r=ue(e?.identity);return await Lp({...t,satellite:{...e,identity:r},options:{certified:!0}})},Jp=async({satellite:e,...t})=>{let r=ue(e?.identity);return await qp({...t,satellite:{...e,identity:r},options:{certified:!0}})},JO=async({satellite:e,...t})=>{let r=ue(e?.identity);return await Mp({...t,satellite:{...e,identity:r},options:{certified:!0}})},WO=async({satellite:e,...t})=>{let r=ue(e?.identity);return await jp({...t,satellite:{...e,identity:r},options:{certified:!0}})},zO=async({satellite:e,filter:t,...r})=>{let n=ue(e?.identity);return await Kp({...r,filter:t??{},satellite:{...e,identity:n},options:{certified:!0}})},YO=async({satellite:e,options:t,filter:r,...n})=>{let o=ue(e?.identity);return await $p({...n,filter:r??{},satellite:{...e,identity:o},options:t??Xt})},ZO=async({satellite:e,options:t,filter:r,...n})=>{let o=ue(e?.identity);return await Hp({...n,filter:r??{},satellite:{...e,identity:o},options:t??Xt})};var Wp=async({provider:e})=>{let{user:t,userId:r}=await ya();if(J(t))return t;try{return await i0({userId:r,provider:e})}catch(n){if(xl({error:n,type:Ip})){let o=await zp({userId:r});if(J(o))return o}throw n}},ya=async()=>{let e=ca();if(U(e))throw new ha("No identity to initialize the user. Have you initialized Juno?");let t=e.getPrincipal().toText(),r=await zp({userId:t});return{userId:t,user:r}},zp=({userId:e})=>_a({collection:"#user",key:e}),i0=({userId:e,...t})=>Gp({collection:"#user",doc:{key:e,data:t}});var ga=async({syncTabsOnSuccess:e}={syncTabsOnSuccess:!1})=>{await Di({fn:async()=>{let{user:r}=await ya();Ue.getInstance().set(r??null)},syncTabsOnSuccess:e})},Yp=async()=>{await vp({fn:async({authenticated:t})=>{let n=t?ya:()=>Promise.resolve({user:null}),{user:o}=await n();Ue.getInstance().set(o??null)}})},xa=async({user:e})=>{await Di({fn:async()=>{Ue.getInstance().set(e)},syncTabsOnSuccess:!0})};var Zp=()=>{try{let e=Do.getInstance(),t=async()=>{await Yp(),Si({message:"junoSignInReload"})};return e.onLoginSuccess(t),()=>{e?.destroy()}}catch(e){console.warn("Auth BroadcastChannel initialization failed",e);return}};var Xp=()=>{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()},Qp=()=>{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()},ef=()=>{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()},tf=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_GITHUB_CLIENT_ID??import.meta.env?.PUBLIC_GITHUB_CLIENT_ID:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_GITHUB_CLIENT_ID??e():e()},ba=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_JUNO_API_URL??import.meta.env?.PUBLIC_JUNO_API_URL:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_JUNO_API_URL??e():e()};var rf=BigInt(144e11),nf=!1,of={width:576,height:576},sf={width:424,height:576},Rl="internetcomputer.org",af="ic0.app",wa="id.ai";var cf=({width:e,height:t})=>{if(!Ki()||U(window)||U(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 Qt=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 lf=(r=>(r[r.AuthorizingWithProvider=0]="AuthorizingWithProvider",r[r.CreatingOrRetrievingUser=1]="CreatingOrRetrievingUser",r))(lf||{});var Ta=class{async signIn({options:t,authClient:r,initAuth:n}){await Qt({fn:async()=>await this.#e({options:t,authClient:r}),step:0,onProgress:t?.onProgress}),await Qt({fn:async()=>await n({provider:this.id}),step:1,onProgress:t?.onProgress})}#e({options:t,authClient:r}){return new Promise(async(n,o)=>{if(U(r)){o(new qr("No client is ready to perform a sign-in. Have you initialized the Satellite?"));return}await r.login({onSuccess:n,onError:i=>{if(i===aa){o(new ua(i));return}o(new la(i))},maxTimeToLive:t?.maxTimeToLiveInNanoseconds??rf,allowPinAuthentication:t?.allowPin??nf,...t?.derivationOrigin!==void 0&&{derivationOrigin:t.derivationOrigin},...this.signInOptions({windowed:t?.windowed})})})}};var Na=class extends Ta{#e;constructor({domain:t}){super(),this.#e=t}get id(){return"internet_identity"}signInOptions({windowed:t}){let n=(()=>{let i=Ie.getInstance().get()?.container;if(U(i)||i===!1){let d=[Rl,af].includes(this.#e??wa);return pt(this.#e)?`https://${wa}`:d?`https://identity.${this.#e??Rl}`:`https://${this.#e}`}let s=Ie.getInstance().get(),a=J(s)&&J(s?.internetIdentityId)?s.internetIdentityId:lp,{host:c,protocol:l}=new URL(i===!0?Po:i);return/apple/i.test(navigator?.vendor)?`${l}//${c}?canisterId=${a}`:`${l}//${a}.${c.replace("127.0.0.1","localhost")}`})();return{...t!==!1&&{windowOpenerFeatures:cf((()=>{try{let{hostname:i}=new URL(n);return i.includes(wa)}catch{return!1}})()?sf:of)},identityProvider:n}}};var vl=e=>$r(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),s0=()=>crypto.getRandomValues(new Uint8Array(32)),a0=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 crypto.subtle.digest("SHA-256",n);return vl(mr(o))},uf=async({caller:e})=>{let t=s0();return{nonce:await a0({salt:t,caller:e}),salt:t}};var ff="juno:auth:openid",df={authUrl:"https://accounts.google.com/o/oauth2/v2/auth",authScopes:["openid","profile","email"],configUrl:"https://accounts.google.com/gsi/fedcm.json"},hf={authUrl:"https://github.com/login/oauth/authorize",authScopes:["read:user","user:email"],initUrl:"https://api.juno.build/v1/auth/init/github",finalizeUrl:"https://api.juno.build/v1/auth/finalize/github"},c0=class extends Error{},l0=class extends Error{},u0=class extends Error{},d0=class extends Error{},p0=class extends Error{},f0=class extends Error{},h0=class extends Error{},mf=class extends Error{},m0=class extends Error{},_0=class extends Error{},y0=class extends Error{constructor(e){super("GitHub OAuth initialization failed",e)}},g0=class extends Error{constructor(e){super("GitHub OAuth finalization failed",e)}},_f="__caller__",yf="__salt__",gf="__state__",x0=({caller:e,state:t,salt:r})=>{let n={[_f]:e.toJSON(),[yf]:$r(r),[gf]:t};return JSON.stringify(n)},b0=e=>{let{[_f]:t,[yf]:r,[gf]:n}=JSON.parse(e);return{caller:dt.fromParsedJson(t),salt:Dl(r),state:n}},pf=async({generateState:e})=>{let t=dt.generate(),{nonce:r,salt:n}=await uf({caller:t}),o=await e({nonce:r}),i=x0({caller:t,salt:n,state:o});return sessionStorage.setItem(ff,i),{nonce:r,state:o}},w0=()=>{let e=sessionStorage.getItem(ff);if(U(e))throw new l0;return b0(e)},xf=({auth:e,identity:t})=>"satellite"in e?Ap({...e.satellite,identity:t}):Sp({...e.console,identity:t}),T0=async({actorParams:e,args:t})=>{let{authenticate:r}=await xf(e);return await r(t)},N0=async({actorParams:e,args:t})=>{let{get_delegation:r}=await xf(e);return await r(t)},O0=({delegations:e,sessionKey:t})=>{let[r,n]=e,o=Lt.fromDelegations(n,Uint8Array.from(r));return{identity:qt.fromDelegation(t,o),delegationChain:o,sessionKey:t}},Il=async({jwt:e,context:t,auth:r})=>{let n=await xt.generate({extractable:!1}),o=new Uint8Array(n.getPublicKey().toDer()),{delegations:i,data:s}=await E0({jwt:e,publicKey:o,context:t,auth:r});return{identity:O0({sessionKey:n,delegations:i}),data:s}},E0=async({jwt:e,publicKey:t,context:{caller:r,salt:n},auth:o})=>{let i=await T0({args:{OpenId:{jwt:e,session_key:t,salt:n}},actorParams:{auth:o,identity:r}});if("Err"in i)throw new p0("Authentication failed",{cause:i});let{delegation:{user_key:s,expiration:a},...c}=i.Ok,l=await R0({jwt:e,context:{caller:r,salt:n},auth:o,publicKey:t,expiration:a}),{delegation:d,signature:p}=l,{pubkey:u,expiration:f,targets:h}=d;return{delegations:[s,[{delegation:new dn(Uint8Array.from(u),f,me(h)),signature:Uint8Array.from(p)}]],data:c}},R0=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(l=>{setInterval(l,1e3*a)});let c=await N0({args:{OpenId:{jwt:e,session_key:t,salt:r,expiration:i}},actorParams:{auth:o,identity:n}});if("Err"in c){let{Err:l}=c;if("NoSuchDelegation"in l||"GetCachedJwks"in l)continue;throw new m0("Getting delegation failed",{cause:c})}return c.Ok}throw new _0},v0=async({url:e})=>{try{let t=await fetch(e,{credentials:"include"});return t.ok?{success:await t.json()}:{error:new Error(`Failed to fetch ${e} (${t.status})`)}}catch(t){return{error:new y0({cause:t})}}},I0=async({url:e,body:t})=>{try{let r=await fetch(e,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});return r.ok?{success:await r.json()}:{error:new Error(`Failed to fetch ${e} (${r.status})`)}}catch(r){return{error:new g0({cause:r})}}},A0=async({auth:e,context:t,redirect:{finalizeUrl:r}})=>{let{location:{search:n}}=window,o=new URLSearchParams(n),i=o.get("code"),s=o.get("state"),a=await I0({url:r,body:{code:i,state:s}});if("error"in a)throw a.error;let{success:{token:c}}=a;if(pt(c))throw new mf;return await Il({jwt:c,auth:e,context:t})},S0=async({auth:e,context:t})=>{let{location:{hash:r}}=window;if(pt(r)||!r.startsWith("#"))throw new f0("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(pt(s)||o!==s)throw new h0("The provided state is invalid",{cause:o});if(pt(i))throw new mf;return await Il({jwt:i,auth:e,context:t})},bf=async e=>{let t=w0();if("github"in e){let{github:{redirect:n,auth:o}}=e,{finalizeUrl:i}=hf;return await A0({redirect:n??{finalizeUrl:i},auth:o,context:t})}let{google:r}=e;if("credentials"in r){let{credentials:{jwt:n},auth:o}=r;return await Il({jwt:n,context:t,auth:o})}return await S0({...r,context:t})},Al=({url:e})=>{try{return new URL(e)}catch{throw new c0("Cannot parse authURL",{cause:e})}},C0=({initUrl:e})=>async({nonce:t})=>{let r=Al({url:e});r.searchParams.set("nonce",t);let n=await v0({url:r.toString()});if("error"in n)throw n.error;let{success:{state:o}}=n;return o},V0=({authUrl:e,clientId:t,authScopes:r,state:n,redirectUrl:o})=>{let i=Al({url:e});i.searchParams.set("client_id",t);let{location:{origin:s}}=window;i.searchParams.set("redirect_uri",o??s),i.searchParams.set("scope",r.join(" ")),i.searchParams.set("state",n),window.location.href=i.toString()},P0=()=>vl(crypto.getRandomValues(new Uint8Array(12))),F0=async e=>P0(),B0=({authUrl:e,clientId:t,nonce:r,loginHint:n,authScopes:o,state:i,redirectUrl:s})=>{let a=Al({url: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),_r(n)?a.searchParams.set("login_hint",n):a.searchParams.set("prompt","select_account"),window.location.href=a.toString()},D0=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(U(i))throw new u0;let{type:s}=i;if(s!=="identity"||!("token"in i)||typeof i.token!="string")throw new d0("Invalid credential received from FedCM API",{cause:i});let{token:a}=i;return{jwt:a}};async function Oa(e){if("github"in e){let{github:s}=e,{redirect:a}=s,{initUrl:c,...l}=a,{authUrl:d,authScopes:p,initUrl:u}=hf,f=await pf({generateState:C0({initUrl:c??u})});V0({...l,...f,authUrl:d,authScopes:p});return}let t=await pf({generateState:F0}),{google:r}=e;if("credentials"in r){let{credentials:s}=r,{configUrl:a}=df;return await D0({...s,...t,configUrl:a})}let{redirect:n}=r,{authUrl:o,authScopes:i}=df;B0({...n,...t,authUrl:o,authScopes:i})}var Ea=({url:e})=>{try{return new URL(e)}catch{return console.warn(`Cannot parse URL ${e}. Skipping option.`),null}};var U0=async e=>{let{satelliteId:t}=Ie.getInstance().get()??{satelliteId:void 0};if(U(t))throw new qr("Satellite ID not set. Have you initialized the Satellite?");let r=Ie.getInstance().get()?.container,n={auth:{satellite:{satelliteId:t,container:r}}},i=(()=>{let p="github"in e?e?.github?.options?.finalizeUrl:void 0;if(_r(p))return p;let u=ba();return pt(u)?null:Ea({url:`${u}/v1/auth/finalize/github`})?.toString()??null})(),{identity:{delegationChain:s,sessionKey:a,identity:c},data:{doc:l}}=await bf("github"in e?{github:{redirect:J(i)?{finalizeUrl:i}:null,...n}}:{google:{redirect:null,...n}});await Ce.getInstance().setAuthClientStorage({delegationChain:s,sessionKey:a});let d=await so({doc:l,key:c.getPrincipal().toText()});await xa({user:d})};var wf=e=>(e.preventDefault(),e.returnValue="Are you sure you want to exit?"),k0=()=>{window.addEventListener("beforeunload",wf,{capture:!0})},L0=()=>{window.removeEventListener("beforeunload",wf,{capture:!0})},Ra=async({fn:e})=>{try{return k0(),await e()}finally{L0()}};function Tf(e){return new Promise((t,r)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>r(e.error)})}function Cl(e,t){let r,n=()=>{if(r)return r;let o=indexedDB.open(e);return o.onupgradeneeded=()=>o.result.createObjectStore(t),r=Tf(o),r.then(i=>{i.onclose=()=>r=void 0},()=>{}),r};return(o,i)=>n().then(s=>i(s.transaction(t,o).objectStore(t)))}var Sl;function q0(){return Sl||(Sl=Cl("keyval-store","keyval")),Sl}function Nf(e,t,r=q0()){return r("readwrite",n=>new Promise((o,i)=>{n.get(e).onsuccess=function(){try{n.put(t(this.result),e),o(Tf(n.transaction))}catch(s){i(s)}}}))}var M0=class extends Error{constructor(){super("A dev identity can only be used in browser environments")}},j0=class extends Error{constructor(){super("A dev identity must only be used on localhost (127.0.0.1 or localhost)")}},K0=class extends Error{constructor(e){super(`Identifier must be 32 characters or less, got ${e}`)}},$0=Cl("juno-dev-identifiers","juno-dev-identifiers-store");var Of=async({identifier:e="dev",maxTimeToLiveInMilliseconds:t}={})=>{if(!(typeof window<"u"))throw new M0;let{location:{hostname:r}}=window;if(!["127.0.0.1","localhost"].includes(r))throw new j0;let n=()=>{if(e.length>32)throw new K0(e.length);return new TextEncoder().encode(e.padEnd(32,"0"))},o=async()=>{let a=n(),c=dt.generate(a),l=await xt.generate({extractable:!1}),d=t??6048e5,p=await Lt.create(c,l.getPublicKey(),new Date(Date.now()+d));return{identity:qt.fromDelegation(l,p),sessionKey:l,delegationChain:p}},i=async()=>{await Nf(e,a=>{let c=Date.now();return{createdAt:a?.createdAt??c,updatedAt:c}},$0)},s=await o();return await i(),s};var va=class{async signIn({options:t,initAuth:r,setStorage:n}){let{sessionKey:o,delegationChain:i}=await Of(t);await n({sessionKey:o,delegationChain:i}),await r({provider:void 0})}};var Ia=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??tf();if(U(r))throw new Uo;let{redirect:n}=t;await Oa({github:{redirect:{...n??{},clientId:r,initUrl:(()=>{let i=t?.redirect?.initUrl;if(_r(i))return i;let s=ba();if(!pt(s))return Ea({url:`${s}/v1/auth/init/github`})?.toString()})()}}})}};var Aa=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??ef();if(U(r))throw new Uo;let{redirect:n}=t;await Oa({google:{redirect:{...n??{},clientId:r}}})}};var Ef=async({delegationIdentity:e,passkeyIdentity:t,satelliteId:r})=>{let n=t.getCredential().getAAGUID(),[o,i]=await Jp({docs:[{collection:"#user",doc:{key:e.getPrincipal().toText(),data:{provider:"webauthn",providerData:{webauthn:{...J(n)&&{aaguid:qi(n)}}}}}},{collection:"#user-webauthn",doc:{key:t.getCredential().getCredentialIdText(),data:{publicKey:t.getPublicKey().toRaw()}}}],satellite:{identity:e,satelliteId:r}});return o};var Rf=(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))(Rf||{}),vf=(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))(vf||{});var ko=class{async signUp({options:{onProgress:t,maxTimeToLiveInMilliseconds:r,passkey:n}={},loadAuthWithUser:o}){let{satelliteId:i}=Ie.getInstance().get()??{satelliteId:void 0};if(U(i))throw new qr("Satellite ID not set. Have you initialized the Satellite?");let s=({step:_,state:y})=>{switch(_){case un.RequestingUserCredential:t?.({step:1,state:y});break;case un.FinalizingCredential:t?.({step:2,state:y});break;case un.Signing:t?.({step:3,state:y});break}},c=await Qt({fn:async()=>await sl.createWithNewCredential({onProgress:s,passkeyOptions:n}),step:0,onProgress:t}),{delegationIdentity:l,sessionKey:d}=await this.#e({identity:c,maxTimeToLiveInMilliseconds:r}),u=await Qt({fn:async()=>await Ef({delegationIdentity:l,passkeyIdentity:c,satelliteId:i}),step:5,onProgress:t});await Qt({fn:async()=>await this.#t({delegationIdentity:l,sessionKey:d}),step:4,onProgress:t}),await Qt({fn:async()=>await o({user:u}),step:5,onProgress:t})}async signIn({options:{onProgress:t,maxTimeToLiveInMilliseconds:r}={},loadAuth:n}){let{satelliteId:o}=Ie.getInstance().get()??{satelliteId:void 0};if(U(o))throw new qr("Satellite ID not set. Have you initialized the Satellite?");let i=async({credentialId:p})=>{let u=await _a({collection:"#user-webauthn",key:$r(p),options:{certified:!0},satellite:{identity:new at,satelliteId:o}});if(U(u))throw new pa("No public key found for the selected passkey.");let{data:f}=u,{publicKey:h}=f;return io(h,Ii)},s=({step:p,state:u})=>{switch(p){case un.RequestingUserCredential:t?.({step:0,state:u});break;case un.FinalizingCredential:t?.({step:1,state:u});break;case un.Signing:t?.({step:2,state:u});break}},a=await sl.createWithExistingCredential({retrievePublicKey:i,onProgress:s}),{delegationIdentity:c,sessionKey:l}=await this.#e({identity:a,maxTimeToLiveInMilliseconds:r});await Qt({fn:async()=>await this.#t({delegationIdentity:c,sessionKey:l}),step:3,onProgress:t}),await Qt({fn:n,step:4,onProgress:t})}async#e({identity:t,maxTimeToLiveInMilliseconds:r}){let n=await xt.generate({extractable:!1}),o=r??144e5,i=await Lt.create(t,n.getPublicKey(),new Date(Date.now()+o));return{delegationIdentity:qt.fromDelegation(n,i),sessionKey:n}}async#t({sessionKey:t,delegationIdentity:r}){let n=new Zt;await Promise.all([n.set(We,t.getKeyPair()),n.set(ke,JSON.stringify(r.getDelegation().toJSON()))])}};var If=async({provider:e})=>{await Di({fn:async()=>{let r=await Wp({provider:e});Ue.getInstance().set(r)},syncTabsOnSuccess:!0})},G0=async e=>{if("google"in e){let{google:{options:t}}=e;await Ui({fn:()=>new Aa().signIn({options:t}),context:{windowGuard:!1}});return}if("github"in e){let{github:{options:t}}=e;await Ui({fn:()=>new Ia().signIn({options:t}),context:{windowGuard:!1}});return}if("webauthn"in e){let{webauthn:{options:t,context:r}}=e;await Ui({fn:()=>new ko().signIn({options:t,loadAuth:()=>ga({syncTabsOnSuccess:!0})}),context:r});return}if("internet_identity"in e){let{internet_identity:{options:t,context:r}}=e,{domain:n,...o}=t??{};await Ui({fn:()=>new Na({domain:n}).signIn({options:o,authClient:Ce.getInstance().getAuthClient(),initAuth:If}),context:r});return}if("dev"in e){let{dev:{options:t}}=e,{setAuthClientStorage:r}=Ce.getInstance();await Ui({fn:()=>new va().signIn({options:t,initAuth:If,setStorage:r}),context:{windowGuard:!1}});return}throw new da("An unknown or unsupported provider was provided for sign-in.")},Ui=async({fn:e,context:t})=>{if(t?.windowGuard===!1){await e();return}await Ra({fn:e})};var J0=async e=>{let t=async()=>await W0(e);if(Object.values(e)?.[0].context?.windowGuard===!1){await t();return}await Ra({fn:t})},W0=async e=>{if("webauthn"in e){let{webauthn:{options:t}}=e;await new ko().signUp({options:t,loadAuthWithUser:xa});return}throw new fa("An unknown or unsupported provider was provided for sign-up.")};var T2=e=>e?.data?.provider==="webauthn",N2=e=>e?.data?.provider==="google",O2=e=>e?.data?.provider==="github";var I2=async({idlFactory:e,satellite:t})=>{let r=ue(t?.identity);return await Pp({idlFactory:e,...t,identity:r})};var Af=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(z0(r));o?.onInitiatedBatch();let{chunkIds:l}=await X0({data:e,uploadFn:s,batchId:c});o?.onUploadedFileChunks(r.fullPath),await Z0({commitFn:a,batchId:c,data:e,headers:t,chunkIds:l}),o?.onCommittedBatch()};var z0=({filename:e,collection:t,token:r,fullPath:n,encoding:o,description:i})=>({collection:t,full_path:n,name:e,token:se(r),encoding_type:se(o),description:se(i)}),Y0=({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??[]]}},Z0=async({commitFn:e,...t})=>{let r=Y0(t);await e(r)},X0=async({data:e,uploadFn:t,batchId:r})=>{let n=[],o=Ki()?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 Q0({uploadChunks:n}))s=[...s,...a];return{chunkIds:s}};async function*Q0({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=>eg(o)))}}var eg=async({batchId:e,chunk:t,uploadFn:r,orderId:n})=>r({batch_id:e,content:new Uint8Array(await t.arrayBuffer()),order_id:se(n)});var Sf=async({asset:e,...t})=>{let r=await ge(t);await Af({actor:r,asset:e})},Cf=async({collection:e,filter:t,...r})=>{let{list_assets:n}=await ge(r),{items:o,items_length:i,items_page:s,matches_length:a,matches_pages:c}=await n(e,pn(t));return{items:o.map(([l,d])=>d),items_length:i,items_page:me(s),matches_length:a,matches_pages:me(c)}},Vf=async({collection:e,filter:t,...r})=>{let{count_assets:n}=await ge(r);return n(e,pn(t))},Pf=async({collection:e,fullPath:t,...r})=>(await ge(r)).del_asset(e,t),Ff=async({assets:e,satellite:t})=>{let{del_many_assets:r}=await ge({satellite:t,options:{certified:!0}}),n=e.map(({collection:o,fullPath:i})=>[o,i]);await r(n)},Bf=async({collection:e,filter:t,...r})=>{let{del_filtered_assets:n}=await ge(r);return n(e,pn(t))},Df=async({collection:e,fullPath:t,token:r,...n})=>{let{set_asset_token:o}=await ge(n);return o(e,t,se(r))},Uf=async({collection:e,fullPath:t,...r})=>{let{get_asset:n}=await ge(r);return me(await n(e,t))},kf=async({assets:e,...t})=>{let{get_many_assets:r}=await ge(t),n=e.map(({collection:i,fullPath:s})=>[i,s]);return(await r(n)).map(([i,s])=>me(s))};var Lf=e=>btoa([...e].map(t=>String.fromCharCode(t)).join(""));var $2=e=>qf(e),H2=e=>qf({filename:e.data.name,...e}),qf=async({filename:e,data:t,collection:r,headers:n=[],fullPath:o,token:i,satellite:s,encoding:a,description:c})=>{let l=ue(s?.identity),d=decodeURI(e),p=o??`/${r}/${d}`,u={...s,identity:l};return await Sf({asset:{data:t,filename:d,collection:r,token:i,headers:n,fullPath:p,encoding:a,description:c},satellite:u,options:{certified:!0}}),{downloadUrl:Mf({satellite:u,assetKey:{fullPath:p,token:i}}),fullPath:p,...J(i)&&{token:i},name:d}},G2=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:ue(r?.identity)},{items:i,...s}=await Cf({collection:e,filter:t??{},satellite:o,options:n??Xt}),a=i.map(({key:{full_path:c,token:l,name:d,owner:p,description:u},headers:f,encodings:h,created_at:_,updated_at:y})=>{let m=me(l);return{fullPath:c,description:me(u),name:d,downloadUrl:Mf({satellite:o,assetKey:{fullPath:c,token:m}}),token:m,headers:f,encodings:h.reduce((b,[g,{modified:T,sha256:O,total_length:v}])=>({...b,[g]:{modified:T,sha256:Lf(O),total_length:v}}),{}),owner:p.toText(),created_at:_,updated_at:y}});return{items:a,assets:a,...s}},J2=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:ue(r?.identity)};return await Vf({collection:e,satellite:o,filter:t??{},options:n??Xt})},W2=({collection:e,fullPath:t,satellite:r})=>Pf({collection:e,fullPath:t,satellite:{...r,identity:ue(r?.identity)},options:{certified:!0}}),z2=({collection:e,fullPath:t,token:r,satellite:n})=>Df({collection:e,fullPath:t,token:r,satellite:{...n,identity:ue(n?.identity)},options:{certified:!0}}),Y2=({assets:e,satellite:t})=>Ff({assets:e,satellite:{...t,identity:ue(t?.identity)},options:{certified:!0}}),Z2=async({collection:e,satellite:t,filter:r})=>{let n={...t,identity:ue(t?.identity)};return await Bf({collection:e,satellite:n,filter:r??{},options:{certified:!0}})},X2=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await Uf({...r,satellite:{...e,identity:n},options:t??Xt})},Q2=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await kf({...r,satellite:{...e,identity:n},options:t??Xt})},Mf=({assetKey:{fullPath:e,token:t},satellite:r})=>{let n={...r,identity:ue(r?.identity)};return`${Vp(n)}${e}${J(t)?`?token=${t}`:""}`};var tg=e=>{let t=e?.satelliteId??Xp();Ko(t,"Satellite ID is not configured. Juno cannot be initialized.");let r=e?.container??Qp();return{satelliteId:t,internetIdentityId:e?.internetIdentityId,workers:e?.workers,syncTabs:e?.syncTabs,container:r}},lE=e=>rg(e),rg=async e=>{let t=tg(e);Ie.getInstance().set(t),await ga();let r=t.workers?.auth!==void 0?Rp(t.workers.auth):void 0,n=t.syncTabs===!1?void 0:Zp();return[...J(r)?[r]:[],...J(n)?[n]:[]]},ng=e=>Ue.getInstance().subscribe(e),uE=ng;export{lf as AuthClientSignInProgressStep,ha as InitError,Na as InternetIdentityProvider,ma as ListError,la as SignInError,qr as SignInInitError,Uo as SignInMissingClientIdError,da as SignInProviderNotSupportedError,ua as SignInUserInterruptError,fa as SignUpProviderNotSupportedError,Rf as WebAuthnSignInProgressStep,pa as WebAuthnSignInRetrievePublicKeyError,vf as WebAuthnSignUpProgressStep,uE as authSubscribe,J2 as countAssets,ZO as countDocs,W2 as deleteAsset,JO as deleteDoc,Z2 as deleteFilteredAssets,zO as deleteFilteredDocs,Y2 as deleteManyAssets,WO as deleteManyDocs,Mf as downloadUrl,X2 as getAsset,_a as getDoc,Xy as getIdentityOnce,Q2 as getManyAssets,GO as getManyDocs,I2 as getSatelliteExtendedActor,U0 as handleRedirectCallback,lE as initJuno,rg as initSatellite,O2 as isGitHubUser,N2 as isGoogleUser,Oy as isWebAuthnAvailable,T2 as isWebAuthnUser,G2 as listAssets,YO as listDocs,ng as onAuthStateChange,z2 as setAssetToken,Gp as setDoc,Jp as setManyDocs,G0 as signIn,gl as signOut,J0 as signUp,Zy as unsafeIdentity,$2 as uploadBlob,H2 as uploadFile};
|
|
59
59
|
/*! Bundled license information:
|
|
60
60
|
|
|
61
61
|
@noble/hashes/esm/utils.js:
|