@junobuild/core-standalone 5.3.0-next-2026-04-03 → 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.
@@ -53,7 +53,7 @@ ic-request`),ac=new TextEncoder().encode("\vic-response"),cc=new TextEncoder().e
53
53
  ${m}
54
54
  Retrying query.`),await this.#w({...t,tries:a+1});throw Go.fromCode(new Yo(m))}let p=mc(d.headers);if(d.status!==el){let m=await d.text();if(Zd(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 Wo(d.status,d.statusText,p,m))}let f={...je(yo(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 hs("Timestamp not found in query response. This suggests a malformed or malicious response."));let _=Number(BigInt(h)/BigInt(K_));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 is(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 jn(`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===el&&(a=yo(await s.clone().arrayBuffer()))}catch(d){if(o<this.#d)return this.log.warn(`Caught exception while attempting to make request:
55
55
  ${d}
56
- Retrying request.`),await this.#y({requestFn:r,backoff:n,tries:o+1});throw Go.fromCode(new Yo(d))}let c=mc(s.headers);if(s.status===el||s.status===Yd)return{ok:s.ok,status:s.status,statusText:s.statusText,responseBodyBytes:a,headers:c};let l=await s.text();if(s.status===X_&&s.url.includes("api/v4"))throw re.fromCode(new zo);if(Zd(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 Wo(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 Wr);let c=q.from(t),l=a.getPrincipal(),d=tl(this.#u,this.#r),p={request_type:Yn.Query,canister_id:c,method_name:r.methodName,arg:r.arg,sender:l,ingress_expiry:d},u=Rr(p);s=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#c?{Authorization:`Basic ${btoa(this.#c)}`}:{}}},endpoint:Ir.Query,body:p}),s=await a.transformRequest(s);let f=pi(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 Wr);let o=n.getPrincipal(),i=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#c?{Authorization:`Basic ${btoa(this.#c)}`}:{}}},endpoint:Ir.ReadState,body:{request_type:Yn.ReadState,paths:t.paths,sender:o,ingress_expiry:tl(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(Jn(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 Wr);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:pi(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??Rr(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 zr("Could not decode time from response"));let o=Br(["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 Qi("Time was not in its expected format."));let i=nn(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 Ud({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 kd({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(!Kc({canisterId:t,subnetId:a,tree:o.cert.tree}))throw Ye.fromCode(new Mn(t,a))}let i=Hc(o.cert,r),s=vo(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 Hc(o.cert,this.rootKey)}_transform(t){let r=Promise.resolve(t);if(t.endpoint===Ir.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 tl(e,t){let r=e*rl;return zn.fromDeltaInMilliseconds(r,t)}function Zd(e){return e.includes("Invalid request expiry: ")}var ut=Symbol.for("ic-agent-metadata"),So=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:Gn});class o extends e{constructor(s){if(!s.canisterId)throw z.fromCode(new Zo(s.canisterId));let a=typeof s.canisterId=="string"?q.fromText(s.canisterId):s.canisterId;super({config:{...Xd,...s,canisterId:a},service:n});for(let[c,l]of n._fields)r?.httpDetails&&l.annotations.push(nl),r?.certificate&&l.annotations.push(Qd),this[c]=ey(this,c,l,s.blsVerify)}}return o}static createActor(t,r){if(!r.canisterId)throw z.fromCode(new Zo(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 Ao(e,t){let r=Gn.decode(e,t);switch(r.length){case 0:return;case 1:return r[0];default:return r}}var Xd={pollingOptions:Wd,queryStrategy:"query"},nl="http-details",Qd="certificate";function ey(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 kr,p=q.from(c.canisterId||e[ut].config.canisterId),u=Gn.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 $r.Rejected:{let _=new as(f.requestId,f.reject_code,f.reject_message,f.error_code,f.signatures);throw _.callContext={canisterId:p,methodName:t,httpDetails:h},vt.fromCode(_)}case $r.Replied:return r.annotations.includes(nl)?{httpDetails:h,result:Ao(r.retTypes,f.reply.arg)}:Ao(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||kr.createSync(),{canisterId:p,effectiveCanisterId:u,pollingOptions:f}={...Xd,...e[ut].config,...c},h=q.from(p),_=u!==void 0?q.from(u):h,y=Gn.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(nl),v=r.annotations.includes(Qd),E={...g,requestDetails:T};return O&&v?{httpDetails:E,certificate:b,result:Ao(r.retTypes,m)}:v?{certificate:b,result:Ao(r.retTypes,m)}:O?{httpDetails:E,result:Ao(r.retTypes,m)}:Ao(r.retTypes,m)};let a=(...c)=>o({},...c);return a.withOptions=c=>(...l)=>o(c,...l),a}var ty=({authData:e})=>{if(e.byteLength<37)return{invalidAuthData:null};if(e.byteLength<53)return{invalidAuthData:null};let t=e.slice(37,53),r=ry({bytes:t});return"aaguid"in r?{aaguidBytes:t,aaguidText:r.aaguid}:{unknownProvider:null}},ry=({bytes:e})=>{if(e.length!==16)return{invalidBytes:null};let t=(e instanceof Uint8Array?Li(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 ny(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 oy(e){return no(e,vi)}var iy=class{constructor(e){this._cose=e,this.#e=oy(e)}_cose;#e;toDer(){return this.#e}toRaw(){return new Uint8Array(this.#e)}},op=class{#e;#t;constructor({rawId:e,cose:t}){this.#e=e,this.#t=new iy(t)}getPublicKey(){return this.#t}getCredentialId(){return this.#e}getCredentialIdText(){return Kr(this.#e)}},sy=class extends op{#e;#t;constructor({authData:e,...t}){super(t);let r=ty({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}},ay=class extends op{},cy=class extends Error{},ly=class extends Error{},uy=class extends Error{},dy=class extends Error{},py=class extends Error{},fy=class extends Error{},hy=class extends Error{},ep=class extends Error{};var my={ECDSA_WITH_SHA256:-7,RSA_WITH_SHA256:-257},_y=6e4,ip=()=>window.crypto.getRandomValues(new Uint8Array(16)),yy=()=>ip(),gy=()=>ip(),xy=()=>{let{location:{href:e}}=window;try{let{hostname:t}=new URL(e);return t}catch{throw new cy}},sp=({appId:e})=>e?.id??xy(),by=({appId:e,user:t}={})=>{let{document:{title:r}}=window,n=()=>({rp:{name:e?.name??r,id:sp({appId:e})}}),o=()=>({user:{id:gy(),name:t?.name??t?.displayName??r,displayName:t?.displayName??r}});return{attestation:"direct",challenge:yy(),...n(),...o(),pubKeyCredParams:Object.values(my).map(i=>({type:"public-key",alg:i})),excludeCredentials:[],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred",residentKey:"required",requireResidentKey:!0}}},wy=(e={})=>({rpId:sp(e),allowCredentials:[],userVerification:"required"}),ol=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}},ln=(e=>(e[e.RequestingUserCredential=0]="RequestingUserCredential",e[e.FinalizingCredential=1]="FinalizingCredential",e[e.Signing=2]="Signing",e))(ln||{}),ap=({timeout:e})=>AbortSignal.timeout(e??_y),Ty=async({challenge:e,credentialIds:t,passkeyOptions:r,timeout:n})=>await navigator.credentials.get({publicKey:{...wy(r),challenge:e.buffer,allowCredentials:(t??[]).map(o=>({id:o.buffer,type:"public-key"}))},signal:ap({timeout:n})}),tp=e=>{if(e.status!=="initialized")throw new ly},rp=e=>{if(U(e))throw new uy},np=({type:e})=>{if(e!=="public-key")throw new dy},il=class Ii 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=Ii.#r({credential:new sy(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:by(t),signal:ap({timeout:r})});rp(o),np(o);let{response:{attestationObject:i},rawId:s}=o;if(U(i))throw new py;let{authData:a}=As.decode(mr(i)),c=ny(a);return new Ii({...n,rawId:mr(s),cose:c,authData:a})}static async createWithExistingCredential(t){return new Ii(t)}getPublicKey(){tp(this.#t);let{credential:t}=this.#t;return t.getPublicKey()}getCredential(){tp(this.#t);let{credential:t}=this.#t;return t}async sign(t){let r=await ol({fn:async()=>{let n=await Ty({challenge:t,...this.#t.status==="initialized"&&{credentialIds:[this.#t.credential.getCredentialId()]}});return rp(n),np(n),n},step:0,onProgress:this.#e});return await ol({fn:async()=>{let{rawId:n}=r;if(this.#t.status==="initialized"){if(!Fl({a:this.#t.credential.getCredentialId(),b:mr(n)}))throw new fy;return}let{retrievePublicKey:o}=this.#t,i=await o({credentialId:mr(n)});this.#t=Ii.#r({credential:new ay({rawId:mr(n),cose:i})})},step:1,onProgress:this.#e}),await ol({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 ep;if(U(s))throw new ep;let a=As.encode({authenticator_data:i,client_data_json:new TextDecoder().decode(o),signature:mr(s)});if(U(a))throw new hy;return Object.assign(a,{__signature__:void 0}),a},step:2,onProgress:this.#e})}},Ny=async()=>J(window.PublicKeyCredential)&&"isUserVerifyingPlatformAuthenticatorAvailable"in PublicKeyCredential?await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():!1;var Co=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 Co{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 Ai=({message:e,detail:t})=>{let r=new CustomEvent(e,{detail:t,bubbles:!0});document.dispatchEvent(r)};var Vo="http://127.0.0.1:5987",cp="rdmx6-jaaaa-aaaaa-aaadq-cai";var lp=async({identity:e,container:t})=>{let n=J(t)&&t!==!1?t===!0?Vo:t:"https://icp-api.io",o=J(t);return await kr.create({identity:e,shouldFetchRootKey:o,host:n})};var Po=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 lp({identity:t,...r});return this.#e={...this.#e??{},[n]:o},o}return this.#e[n]}reset(){this.#e=null}};var Fo=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 Po.getInstance().getAgent(n);return So.createActor(t,{agent:o,canisterId:r})}};function up(e){return e!==null&&typeof e=="object"}var Si=class e{static from(t){if(typeof t=="string"){let r=Ee(t);return this.fromRaw(r)}if(up(t)){let r=t;if(up(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=no(t,ro);return r.__derEncodedPublicKey__=void 0,r}static derDecode(t){let r=oo(t,ro);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()),cu(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(Si.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(Si.fromRaw(t),r)}static fromSecretKey(t){let r=Je.getPublicKey(t);return e.fromKeyPair(r,t)}#e;#t;constructor(t,r){super(),this.#e=Si.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 sl=class e extends Error{constructor(t){super(t),this.message=t,Object.setPrototypeOf(this,e.prototype)}};function dp(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 sl("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=dp(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=dp(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 ra=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 na(e){return e instanceof Uint8Array?j(e):j(new Uint8Array(e))}function al(e){if(typeof e!="string"||e.length<64)throw new Error("Invalid public key.");return Ee(e)}var un=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:na(this.pubkey),...this.targets&&{targets:this.targets.map(t=>t.toHex())}}}};async function Oy(e,t,r,n){let o=new un(t.toDer(),BigInt(+r)*BigInt(1e6),n),i=new Uint8Array([...cc,...new Uint8Array(Rr({...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 Oy(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 un(al(c),BigInt(`0x${l}`),d&&d.map(p=>{if(typeof p!="string")throw new Error("Invalid target.");return q.fromHex(p)})),signature:al(a)}});return new this(o,al(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:na(r.pubkey),...o&&{targets:o.map(i=>i.toHex())}},signature:na(n)}}),publicKey:na(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 Rr(r);return{...n,body:{content:r,sender_sig:await this.sign(new Uint8Array([...si,...new Uint8Array(o)])),sender_delegation:this._delegation.delegations,sender_pubkey:this._delegation.publicKey}}}},Ci=class e extends ra{#e;get delegation(){return this.#e}constructor(t,r){super(t),this.#e=r}static fromDelegation(t,r){return new e(t,r)}};function cl(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 pp=["mousedown","mousemove","keydown","touchstart","wheel"],Vi=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),pp.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);pp.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 Ey=(e,t)=>t.some(r=>e instanceof r),fp,hp;function Ry(){return fp||(fp=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function vy(){return hp||(hp=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var mp=new WeakMap,ul=new WeakMap,_p=new WeakMap,ll=new WeakMap,pl=new WeakMap;function Iy(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&&mp.set(r,e)}).catch(()=>{}),pl.set(t,e),t}function Ay(e){if(ul.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)});ul.set(e,t)}var dl={get(e,t,r){if(e instanceof IDBTransaction){if(t==="done")return ul.get(e);if(t==="objectStoreNames")return e.objectStoreNames||_p.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 yp(e){dl=e(dl)}function Sy(e){return e===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(t,...r){let n=e.call(oa(this),t,...r);return _p.set(n,t.sort?t.sort():[t]),Yt(n)}:vy().includes(e)?function(...t){return e.apply(oa(this),t),Yt(mp.get(this))}:function(...t){return Yt(e.apply(oa(this),t))}}function Cy(e){return typeof e=="function"?Sy(e):(e instanceof IDBTransaction&&Ay(e),Ey(e,Ry())?new Proxy(e,dl):e)}function Yt(e){if(e instanceof IDBRequest)return Iy(e);if(ll.has(e))return ll.get(e);let t=Cy(e);return t!==e&&(ll.set(e,t),pl.set(t,e)),t}var oa=e=>pl.get(e);function xp(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 Vy=["get","getKey","getAll","getAllKeys","count"],Py=["put","add","delete","clear"],fl=new Map;function gp(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(fl.get(t))return fl.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,o=Py.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||Vy.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 fl.set(t,i),i}yp(e=>({...e,get:(t,r,n)=>gp(t,r)||e.get(t,r,n),has:(t,r)=>!!gp(t,r)||e.has(t,r)}));var bp="auth-client-db",wp="ic-keyval",Fy=async(e=bp,t=wp,r)=>(globalThis.localStorage?.getItem(ke)&&(globalThis.localStorage.removeItem(ke),globalThis.localStorage.removeItem(We)),await xp(e,r,{upgrade:n=>{n.objectStoreNames.contains(t)&&n.clear(t),n.createObjectStore(t)}}));async function By(e,t,r){return await e.get(t,r)}async function Dy(e,t,r,n){return await e.put(t,n,r)}async function Uy(e,t,r){return await e.delete(t,r)}var ia=class e{constructor(t,r){this._db=t,this._storeName=r}static async create(t){let{dbName:r=bp,storeName:n=wp,version:o=Tp}=t??{},i=await Fy(r,n,o);return new e(i,n)}async set(t,r){return await Dy(this._db,this._storeName,t,r)}async get(t){return await By(this._db,this._storeName,t)??null}async remove(t){return await Uy(this._db,this._storeName,t)}};var We="identity",ke="delegation",Np="iv",Tp=1,Pi=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}ia.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 ky=BigInt(1e9),Ly=BigInt(3600),qy=ky*Ly,My="https://identity.internetcomputer.org",jy="#authorize",Ky=BigInt(8)*qy,hl="ECDSA",ml="Ed25519",$y=500,sa="UserInterrupt",Fi=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??hl,o=null;if(t.identity)o=t.identity;else{let c=await r.get(We);if(!c)try{let l=new Pi,d=await l.get(ke),p=await l.get(We);d&&p&&n===hl&&(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===ml&&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),cl(s)?"toDer"in o?i=Ci.fromDelegation(o,s):i=qt.fromDelegation(o,s):(await _l(r),o=null))}catch(c){console.error(c),await _l(r),o=null}let a;return t.idleOptions?.disableIdle?a=void 0:(s||t.identity)&&(a=Vi.create(t.idleOptions)),o||(n===ml?o=dt.generate():(t.storage&&n===hl&&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 '${ml}' as the key type, as it can serialize to a string`),o=await xt.generate()),await Op(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 un(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=Ci.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=Vi.create(s),this._registerDefaultIdleCallback()),this._removeEventListener(),delete this._idpWindow,this._chain&&await this._storage.set(ke,JSON.stringify(this._chain.toJSON())),await Op(this._storage,this._key),r?.(t)}getIdentity(){return this._identity}async isAuthenticated(){return!this.getIdentity().getPrincipal().isAnonymous()&&this._chain!==null&&cl(this._chain)}async login(t){let r=Hy(this._createOptions?.loginOptions,t),n=r?.maxTimeToLive??Ky,o=new URL(r?.identityProvider?.toString()||My);o.hash=jy,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(sa,r?.onError):setTimeout(i,$y))};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 _l(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 _l(e){await e.remove(We),await e.remove(ke),await e.remove(Np)}function Hy(e,t){if(!e&&!t)return;let r=e?.customValues||t?.customValues?{...e?.customValues,...t?.customValues}:void 0;return{...e,...t,customValues:r}}function Gy(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 Op(e,t){let r=Gy(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 Fi.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 yl=async e=>{await Jy(),await Ce.getInstance().createAuthClient(),e?.windowReload!==!1&&window.location.reload()},Jy=async()=>{await Ce.getInstance().logout(),Ue.getInstance().reset(),Fo.getInstance().reset(),Po.getInstance().reset()};var Ep=e=>{let t=e===!0?"./workers/auth.worker.js":e,r=new Worker(t),n=async()=>{Ai({message:"junoSignOutAuthTimer"}),await yl()};return r.onmessage=async({data:o})=>{let{msg:i,data:s}=o;switch(i){case"junoSignOutAuthTimer":await n();return;case"junoDelegationRemainingTime":Ai({message:"junoDelegationRemainingTime",detail:s?.authRemainingTime})}},Ue.getInstance().subscribe(o=>{if(U(o)){r.postMessage({msg:"junoStopAuthTimer"});return}r.postMessage({msg:"junoStartAuthTimer"})})};var Bo=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 Co{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 Bi=async({fn:e,syncTabsOnSuccess:t})=>{let{authenticated:r}=await Wy({fn:e});!r||!t||Ie.getInstance().get()?.syncTabs===!1||zy()},Rp=async({fn:e})=>{let{createAuthClient:t}=Ce.getInstance(),n=await(await t()).isAuthenticated();await e({authenticated:n})},Wy=async({fn:e})=>{let{createAuthClient:t,safeCreateAuthClient:r}=Ce.getInstance();return await(await t()).isAuthenticated()?(await e(),{authenticated:!0}):(await r(),{authenticated:!1})},zy=()=>{try{Bo.getInstance().postLoginSuccess()}catch(e){console.warn("Auth BroadcastChannel posting failed",e)}};var gl=({error:e,type:t})=>typeof e=="string"?e.includes(t):e instanceof Error?e.message.includes(t):!1;var vp="juno.datastore.error.user.cannot_update";var Xt={certified:!1};var aa=()=>Ce.getInstance().getAuthClient()?.getIdentity(),Yy=async()=>{let{getAuthClient:e,createAuthClient:t}=Ce.getInstance();return(e()??await t()).getIdentity()},Zy=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:aa()??new at;var xl=({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)}),pn=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,pn))}),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)}),fn=e.Record({owner:e.Text,name:e.Text}),hn=e.Record({refs:e.Opt(e.Vec(e.Text))}),bt=e.Record({controller:e.Opt(or),repositories:e.Vec(e.Tuple(fn,hn))}),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)))}),mn=e.Record({db:e.Opt(nt),authentication:e.Opt(et),storage:Le,automation:e.Opt(wt)}),_n=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),yn=e.Variant({OpenId:_n}),gn=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),xn=e.Record({signature:e.Vec(e.Nat8),delegation:gn}),bn=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:d,GetOrFetchJwks:p,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),wn=e.Variant({Ok:xn,Err:bn}),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)}),Tn=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:Tn}),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)}),Nn=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}),On=e.Variant({Callback:e.Record({token:Ot,callback:e.Func([],[],["query"])})}),En=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(On),status_code:e.Nat16}),Rn=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}),vn=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}),In=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}),An=e.Record({desc:e.Bool}),Sn=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Cn=e.Record({order:e.Opt(An),paginate:e.Opt(Sn)}),Vn=e.Record({proposal_id:e.Nat}),pr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Vn,qe)),items_length:e.Nat64}),Pn=e.Record({include_system:e.Bool}),Fn=e.Record({matcher:e.Opt(Pn)}),fr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,Nt)),items_length:e.Nat64}),Bn=e.Record({stable:e.Nat64,heap:e.Nat64}),Dn=e.Record({openid:e.Opt(tr),version:e.Opt(e.Nat64),internet_identity:e.Opt(rr),rules:e.Opt(nr)}),Aa=e.Record({openid:e.Opt(ir),version:e.Opt(e.Nat64)}),Sa=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(F),scope:D,expires_at:e.Opt(e.Nat64)}),Ca=e.Record({controller:Sa,controllers:e.Vec(e.Principal)}),Va=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt(rt)}),ko=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),Pa=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)}),Lo=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)))}),Fa=e.Record({skip_certification:e.Opt(e.Bool)}),Ba=e.Record({config:Lo,options:Fa}),qo=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Mo=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([],[mn],[]),get_db_config:e.Func([],[e.Opt(nt)],["query"]),get_delegation:e.Func([yn],[wn],["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([Nn],[En],["query"]),http_request_streaming_callback:e.Func([Ot],[Rn],["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],[vn],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,k))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,In))],["query"]),list_docs:e.Func([e.Text,R],[it],["query"]),list_proposals:e.Func([Cn],[pr],["query"]),list_rules:e.Func([Z,Fn],[fr],["query"]),memory_size:e.Func([],[Bn],["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([Dn],[et],[]),set_automation_config:e.Func([Aa],[wt],[]),set_controllers:e.Func([Ca],[e.Vec(e.Tuple(e.Principal,k))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([Va],[nt],[]),set_doc:e.Func([e.Text,e.Text,ko],[s],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,ko))],[e.Vec(e.Tuple(e.Text,s))],[]),set_rule:e.Func([Z,e.Text,Pa],[Nt],[]),set_storage_config:e.Func([Lo],[Le],[]),set_storage_config_with_options:e.Func([Ba],[Le],[]),submit_proposal:e.Func([e.Nat],[e.Nat,qe],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([qo],[Mo],[]),upload_proposal_asset_chunk:e.Func([qo],[Mo],[])})},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)}),pn=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,pn))}),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)}),fn=e.Record({owner:e.Text,name:e.Text}),hn=e.Record({refs:e.Opt(e.Vec(e.Text))}),bt=e.Record({controller:e.Opt(or),repositories:e.Vec(e.Tuple(fn,hn))}),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)))}),mn=e.Record({db:e.Opt(nt),authentication:e.Opt(et),storage:Le,automation:e.Opt(wt)}),_n=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),yn=e.Variant({OpenId:_n}),gn=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),xn=e.Record({signature:e.Vec(e.Nat8),delegation:gn}),bn=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:d,GetOrFetchJwks:p,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),wn=e.Variant({Ok:xn,Err:bn}),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)}),Tn=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:Tn}),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)}),Nn=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}),On=e.Variant({Callback:e.Record({token:Ot,callback:e.Func([],[],[])})}),En=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(On),status_code:e.Nat16}),Rn=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}),vn=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}),In=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}),An=e.Record({desc:e.Bool}),Sn=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Cn=e.Record({order:e.Opt(An),paginate:e.Opt(Sn)}),Vn=e.Record({proposal_id:e.Nat}),pr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Vn,qe)),items_length:e.Nat64}),Pn=e.Record({include_system:e.Bool}),Fn=e.Record({matcher:e.Opt(Pn)}),fr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,Nt)),items_length:e.Nat64}),Bn=e.Record({stable:e.Nat64,heap:e.Nat64}),Dn=e.Record({openid:e.Opt(tr),version:e.Opt(e.Nat64),internet_identity:e.Opt(rr),rules:e.Opt(nr)}),Aa=e.Record({openid:e.Opt(ir),version:e.Opt(e.Nat64)}),Sa=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(F),scope:D,expires_at:e.Opt(e.Nat64)}),Ca=e.Record({controller:Sa,controllers:e.Vec(e.Principal)}),Va=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt(rt)}),ko=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),Pa=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)}),Lo=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)))}),Fa=e.Record({skip_certification:e.Opt(e.Bool)}),Ba=e.Record({config:Lo,options:Fa}),qo=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Mo=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([],[mn],[]),get_db_config:e.Func([],[e.Opt(nt)],[]),get_delegation:e.Func([yn],[wn],[]),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([Nn],[En],[]),http_request_streaming_callback:e.Func([Ot],[Rn],[]),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],[vn],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,k))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,In))],[]),list_docs:e.Func([e.Text,R],[it],[]),list_proposals:e.Func([Cn],[pr],[]),list_rules:e.Func([Z,Fn],[fr],[]),memory_size:e.Func([],[Bn],[]),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([Dn],[et],[]),set_automation_config:e.Func([Aa],[wt],[]),set_controllers:e.Func([Ca],[e.Vec(e.Tuple(e.Principal,k))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([Va],[nt],[]),set_doc:e.Func([e.Text,e.Text,ko],[s],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,ko))],[e.Vec(e.Tuple(e.Text,s))],[]),set_rule:e.Func([Z,e.Text,Pa],[Nt],[]),set_storage_config:e.Func([Lo],[Le],[]),set_storage_config_with_options:e.Func([Ba],[Le],[]),submit_proposal:e.Func([e.Nat],[e.Nat,qe],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([qo],[Mo],[]),upload_proposal_asset_chunk:e.Func([qo],[Mo],[])})},Xy=({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}),pn=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}),fn=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)}),hn=e.Variant({Heap:e.Null,Stable:e.Null}),bt=e.Record({memory:hn,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}),mn=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(Le),description:e.Opt(e.Text),created_at:e.Opt(Le)}),_n=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),yn=e.Record({order:e.Opt(ar),owner:e.Opt(e.Principal),matcher:e.Opt(mn),paginate:e.Opt(_n)}),gn=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}),xn=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),bn=e.Record({key:gn,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,xn)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),wn=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,bn)),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}),Tn=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))}),Nn=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}),On=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),En=e.Record({order:e.Opt(Ot),paginate:e.Opt(On)}),Rn=e.Record({proposal_id:e.Nat}),Et=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Rn,tt)),items_length:e.Nat64}),we=e.Variant({Orbiter:e.Null,Satellite:e.Null}),vn=e.Record({segment_id:e.Opt(e.Principal),segment_kind:e.Opt(we)}),In=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}),An=e.Record({openid:e.Opt(x),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(S)}),Sn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(cr),scope:lr,expires_at:e.Opt(e.Nat64)}),Cn=e.Record({controller:Sn,controllers:e.Vec(e.Principal)}),Vn=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}),Pn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:we}),Fn=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}),Bn=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Dn=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],[pn],["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([fn],[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,yn],[wn],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,Tn))],["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,Nn))],["query"]),list_proposals:e.Func([En],[Et],["query"]),list_segments:e.Func([vn],[e.Vec(e.Tuple(In,it))],["query"]),reject_proposal:e.Func([b],[e.Null],[]),set_auth_config:e.Func([An],[B],[]),set_controllers:e.Func([Cn],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([ie,Vn],[],[]),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([Pn],[it],[]),set_storage_config:e.Func([Fn],[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([Bn],[Dn],[])})},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}),pn=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}),fn=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)}),hn=e.Variant({Heap:e.Null,Stable:e.Null}),bt=e.Record({memory:hn,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}),mn=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(Le),description:e.Opt(e.Text),created_at:e.Opt(Le)}),_n=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),yn=e.Record({order:e.Opt(ar),owner:e.Opt(e.Principal),matcher:e.Opt(mn),paginate:e.Opt(_n)}),gn=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}),xn=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),bn=e.Record({key:gn,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,xn)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),wn=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,bn)),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}),Tn=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))}),Nn=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}),On=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),En=e.Record({order:e.Opt(Ot),paginate:e.Opt(On)}),Rn=e.Record({proposal_id:e.Nat}),Et=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Rn,tt)),items_length:e.Nat64}),we=e.Variant({Orbiter:e.Null,Satellite:e.Null}),vn=e.Record({segment_id:e.Opt(e.Principal),segment_kind:e.Opt(we)}),In=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}),An=e.Record({openid:e.Opt(x),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(S)}),Sn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(cr),scope:lr,expires_at:e.Opt(e.Nat64)}),Cn=e.Record({controller:Sn,controllers:e.Vec(e.Principal)}),Vn=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}),Pn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:we}),Fn=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}),Bn=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Dn=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],[pn],[]),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([fn],[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,yn],[wn],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,Tn))],[]),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,Nn))],[]),list_proposals:e.Func([En],[Et],[]),list_segments:e.Func([vn],[e.Vec(e.Tuple(In,it))],[]),reject_proposal:e.Func([b],[e.Null],[]),set_auth_config:e.Func([An],[B],[]),set_controllers:e.Func([Cn],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([ie,Vn],[],[]),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([Pn],[it],[]),set_storage_config:e.Func([Fn],[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([Bn],[Dn],[])})};var e0=async({identity:e,host:t,localActor:r})=>await kr.create({identity:e,host:t,retryTimes:10,shouldFetchRootKey:r}),t0=async({agent:e,...t})=>e??await r0(t),r0=async({identity:e,container:t})=>{let r=J(t)&&t!==!1;return await e0({identity:e,host:r?t===!0?"http://127.0.0.1:5987":t:"https://icp-api.io",localActor:r})};var Ip=({satelliteId:e,certified:t=!1,...r})=>Sp({canisterId:e,...r,idlFactory:t?bl:xl});var Ap=({consoleId:e,certified:t=!1,...r})=>Sp({canisterId:e,...r,idlFactory:t?Qy:Xy}),Sp=({canisterId:e,idlFactory:t,...r})=>{if(U(e))throw new Error("No canister ID provided.");return n0({canisterId:e,idlFactory:t,...r})},n0=async({canisterId:e,idlFactory:t,config:r,...n})=>{let o=await t0(n);return So.createActor(t,{agent:o,canisterId:e,...r??{}})};var Cp=({satelliteId:e,container:t})=>{let{satelliteId:r}=wl({satelliteId:e}),{container:n}=Tl({container:t});if(J(n)&&n!==!1){let{host:o,protocol:i}=new URL(n===!0?Vo:n);return`${i}//${r??"unknown"}.${o.replace("127.0.0.1","localhost")}`}return`https://${r??"unknown"}.icp0.io`},wl=({satelliteId:e})=>J(e)?{satelliteId:e}:Ie.getInstance().get()??{satelliteId:void 0},Tl=({container:e})=>J(e)?{container:e}:Ie.getInstance().get()??{container:void 0};var ge=({satellite:e,options:{certified:t}})=>Pp({idlFactory:t?bl:xl,actorKey:`stock#${t?"update":"query"}`,...e}),Vp=({idlFactory:e,...t})=>Pp({idlFactory:e,actorKey:"extended#query",...t}),Pp=async({satelliteId:e,container:t,...r})=>{let{satelliteId:n}=wl({satelliteId:e});jo(n,"No satellite ID defined. Did you initialize Juno?");let{container:o}=Tl({container:t});return await Fo.getInstance().getActor({satelliteId:n,container:o,...r})};var ca=class extends Error{},Lr=class extends Error{},la=class extends Error{},ua=class extends Error{},Do=class extends Error{},da=class extends Error{},pa=class extends Error{},fa=class extends Error{},ha=class extends Error{};var Fp=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 ha("Invalid list matcher for timestamp",e)}},dn=({matcher:e,paginate:t,order:r,owner:n})=>({matcher:U(e)?[]:[{key:se(e.key),description:se(e.description),created_at:Fp(e.createdAt),updated_at:Fp(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 Bp=async({data:e})=>{try{return await Mi(e)}catch(t){console.error("The data parsing has failed, mapping to undefined as a fallback.",t);return}};var Nl=async e=>{let{data:t,version:r,description:n}=e;return{description:se(n),data:await kl(t),version:se(r)}},Ol=e=>{let{version:t}=e;return{version:se(t)}},io=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 Mi(i),version:me(n),...s}};var Dp=async({collection:e,key:t,...r})=>{let{get_doc:n}=await ge(r),o=me(await n(e,t));if(!U(o))return io({doc:o,key:t})},Up=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 io({key:s,doc:c}):void 0)}return i},kp=async({collection:e,doc:t,...r})=>{let{set_doc:n}=await ge(r),{key:o}=t,i=await Nl(t),s=await n(e,o,i);return await io({key:o,doc:s})},Lp=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 Nl(a)])}let o=await r(n),i=[];for(let[s,a]of o)i.push(await io({key:s,doc:a}));return i},qp=async({collection:e,doc:t,...r})=>{let{del_doc:n}=await ge(r),{key:o}=t;return n(e,o,Ol(t))},Mp=async({docs:e,...t})=>{let{del_many_docs:r}=await ge(t),n=e.map(({collection:o,doc:i})=>[o,i.key,Ol(i)]);await r(n)},jp=async({collection:e,filter:t,...r})=>{let{del_filtered_docs:n}=await ge(r);return n(e,dn(t))},Kp=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,dn(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 Bp({data:u}),version:me(_),...y})}return{items:l,items_length:s,items_page:me(i),matches_length:a,matches_pages:me(c)}},$p=async({collection:e,filter:t,...r})=>{let{count_docs:n}=await ge(r);return n(e,dn(t))};var ma=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await Dp({...r,satellite:{...e,identity:n},options:t??Xt})},HO=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await Up({...r,satellite:{...e,identity:n},options:t??Xt})},Hp=async({satellite:e,...t})=>{let r=ue(e?.identity);return await kp({...t,satellite:{...e,identity:r},options:{certified:!0}})},Gp=async({satellite:e,...t})=>{let r=ue(e?.identity);return await Lp({...t,satellite:{...e,identity:r},options:{certified:!0}})},GO=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,filter:t,...r})=>{let n=ue(e?.identity);return await jp({...r,filter:t??{},satellite:{...e,identity:n},options:{certified:!0}})},zO=async({satellite:e,options:t,filter:r,...n})=>{let o=ue(e?.identity);return await Kp({...n,filter:r??{},satellite:{...e,identity:o},options:t??Xt})},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})};var Jp=async({provider:e})=>{let{user:t,userId:r}=await _a();if(J(t))return t;try{return await o0({userId:r,provider:e})}catch(n){if(gl({error:n,type:vp})){let o=await Wp({userId:r});if(J(o))return o}throw n}},_a=async()=>{let e=aa();if(U(e))throw new fa("No identity to initialize the user. Have you initialized Juno?");let t=e.getPrincipal().toText(),r=await Wp({userId:t});return{userId:t,user:r}},Wp=({userId:e})=>ma({collection:"#user",key:e}),o0=({userId:e,...t})=>Hp({collection:"#user",doc:{key:e,data:t}});var ya=async({syncTabsOnSuccess:e}={syncTabsOnSuccess:!1})=>{await Bi({fn:async()=>{let{user:r}=await _a();Ue.getInstance().set(r??null)},syncTabsOnSuccess:e})},zp=async()=>{await Rp({fn:async({authenticated:t})=>{let n=t?_a:()=>Promise.resolve({user:null}),{user:o}=await n();Ue.getInstance().set(o??null)}})},ga=async({user:e})=>{await Bi({fn:async()=>{Ue.getInstance().set(e)},syncTabsOnSuccess:!0})};var Yp=()=>{try{let e=Bo.getInstance(),t=async()=>{await zp(),Ai({message:"junoSignInReload"})};return e.onLoginSuccess(t),()=>{e?.destroy()}}catch(e){console.warn("Auth BroadcastChannel initialization failed",e);return}};var Zp=()=>{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()},Xp=()=>{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()},Qp=()=>{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()},ef=()=>{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()},xa=()=>{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 tf=BigInt(144e11),rf=!1,nf={width:576,height:576},of={width:424,height:576},El="internetcomputer.org",sf="ic0.app",ba="id.ai";var af=({width:e,height:t})=>{if(!ji()||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 cf=(r=>(r[r.AuthorizingWithProvider=0]="AuthorizingWithProvider",r[r.CreatingOrRetrievingUser=1]="CreatingOrRetrievingUser",r))(cf||{});var wa=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 Lr("No client is ready to perform a sign-in. Have you initialized the Satellite?"));return}await r.login({onSuccess:n,onError:i=>{if(i===sa){o(new la(i));return}o(new ca(i))},maxTimeToLive:t?.maxTimeToLiveInNanoseconds??tf,allowPinAuthentication:t?.allowPin??rf,...t?.derivationOrigin!==void 0&&{derivationOrigin:t.derivationOrigin},...this.signInOptions({windowed:t?.windowed})})})}};var Ta=class extends wa{#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=[El,sf].includes(this.#e??ba);return pt(this.#e)?`https://${ba}`:d?`https://identity.${this.#e??El}`:`https://${this.#e}`}let s=Ie.getInstance().get(),a=J(s)&&J(s?.internetIdentityId)?s.internetIdentityId:cp,{host:c,protocol:l}=new URL(i===!0?Vo:i);return/apple/i.test(navigator?.vendor)?`${l}//${c}?canisterId=${a}`:`${l}//${a}.${c.replace("127.0.0.1","localhost")}`})();return{...t!==!1&&{windowOpenerFeatures:af((()=>{try{let{hostname:i}=new URL(n);return i.includes(ba)}catch{return!1}})()?of:nf)},identityProvider:n}}};var Rl=e=>Kr(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),i0=()=>crypto.getRandomValues(new Uint8Array(32)),s0=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 Rl(mr(o))},lf=async({caller:e})=>{let t=i0();return{nonce:await s0({salt:t,caller:e}),salt:t}};var pf="juno:auth:openid",uf={authUrl:"https://accounts.google.com/o/oauth2/v2/auth",authScopes:["openid","profile","email"],configUrl:"https://accounts.google.com/gsi/fedcm.json"},ff={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"},a0=class extends Error{},c0=class extends Error{},l0=class extends Error{},u0=class extends Error{},d0=class extends Error{},p0=class extends Error{},f0=class extends Error{},hf=class extends Error{},h0=class extends Error{},m0=class extends Error{},_0=class extends Error{constructor(e){super("GitHub OAuth initialization failed",e)}},y0=class extends Error{constructor(e){super("GitHub OAuth finalization failed",e)}},mf="__caller__",_f="__salt__",yf="__state__",g0=({caller:e,state:t,salt:r})=>{let n={[mf]:e.toJSON(),[_f]:Kr(r),[yf]:t};return JSON.stringify(n)},x0=e=>{let{[mf]:t,[_f]:r,[yf]:n}=JSON.parse(e);return{caller:dt.fromParsedJson(t),salt:Bl(r),state:n}},df=async({generateState:e})=>{let t=dt.generate(),{nonce:r,salt:n}=await lf({caller:t}),o=await e({nonce:r}),i=g0({caller:t,salt:n,state:o});return sessionStorage.setItem(pf,i),{nonce:r,state:o}},b0=()=>{let e=sessionStorage.getItem(pf);if(U(e))throw new c0;return x0(e)},gf=({auth:e,identity:t})=>"satellite"in e?Ip({...e.satellite,identity:t}):Ap({...e.console,identity:t}),w0=async({actorParams:e,args:t})=>{let{authenticate:r}=await gf(e);return await r(t)},T0=async({actorParams:e,args:t})=>{let{get_delegation:r}=await gf(e);return await r(t)},N0=({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}},vl=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 O0({jwt:e,publicKey:o,context:t,auth:r});return{identity:N0({sessionKey:n,delegations:i}),data:s}},O0=async({jwt:e,publicKey:t,context:{caller:r,salt:n},auth:o})=>{let i=await w0({args:{OpenId:{jwt:e,session_key:t,salt:n}},actorParams:{auth:o,identity:r}});if("Err"in i)throw new d0("Authentication failed",{cause:i});let{delegation:{user_key:s,expiration:a},...c}=i.Ok,l=await E0({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 un(Uint8Array.from(u),f,me(h)),signature:Uint8Array.from(p)}]],data:c}},E0=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 T0({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 h0("Getting delegation failed",{cause:c})}return c.Ok}throw new m0},R0=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 _0({cause:t})}}},v0=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 y0({cause:r})}}},I0=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 v0({url:r,body:{code:i,state:s}});if("error"in a)throw a.error;let{success:{token:c}}=a;if(pt(c))throw new hf;return await vl({jwt:c,auth:e,context:t})},A0=async({auth:e,context:t})=>{let{location:{hash:r}}=window;if(pt(r)||!r.startsWith("#"))throw new p0("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 f0("The provided state is invalid",{cause:o});if(pt(i))throw new hf;return await vl({jwt:i,auth:e,context:t})},xf=async e=>{let t=b0();if("github"in e){let{github:{redirect:n,auth:o}}=e,{finalizeUrl:i}=ff;return await I0({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 vl({jwt:n,context:t,auth:o})}return await A0({...r,context:t})},Il=({url:e})=>{try{return new URL(e)}catch{throw new a0("Cannot parse authURL",{cause:e})}},S0=({initUrl:e})=>async({nonce:t})=>{let r=Il({url:e});r.searchParams.set("nonce",t);let n=await R0({url:r.toString()});if("error"in n)throw n.error;let{success:{state:o}}=n;return o},C0=({authUrl:e,clientId:t,authScopes:r,state:n,redirectUrl:o})=>{let i=Il({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()},V0=()=>Rl(crypto.getRandomValues(new Uint8Array(12))),P0=async e=>V0(),F0=({authUrl:e,clientId:t,nonce:r,loginHint:n,authScopes:o,state:i,redirectUrl:s})=>{let a=Il({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()},B0=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 l0;let{type:s}=i;if(s!=="identity"||!("token"in i)||typeof i.token!="string")throw new u0("Invalid credential received from FedCM API",{cause:i});let{token:a}=i;return{jwt:a}};async function Na(e){if("github"in e){let{github:s}=e,{redirect:a}=s,{initUrl:c,...l}=a,{authUrl:d,authScopes:p,initUrl:u}=ff,f=await df({generateState:S0({initUrl:c??u})});C0({...l,...f,authUrl:d,authScopes:p});return}let t=await df({generateState:P0}),{google:r}=e;if("credentials"in r){let{credentials:s}=r,{configUrl:a}=uf;return await B0({...s,...t,configUrl:a})}let{redirect:n}=r,{authUrl:o,authScopes:i}=uf;F0({...n,...t,authUrl:o,authScopes:i})}var Oa=({url:e})=>{try{return new URL(e)}catch{return console.warn(`Cannot parse URL ${e}. Skipping option.`),null}};var D0=async e=>{let{satelliteId:t}=Ie.getInstance().get()??{satelliteId:void 0};if(U(t))throw new Lr("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=xa();return pt(u)?null:Oa({url:`${u}/v1/auth/finalize/github`})?.toString()??null})(),{identity:{delegationChain:s,sessionKey:a,identity:c},data:{doc:l}}=await xf("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 io({doc:l,key:c.getPrincipal().toText()});await ga({user:d})};var bf=e=>(e.preventDefault(),e.returnValue="Are you sure you want to exit?"),U0=()=>{window.addEventListener("beforeunload",bf,{capture:!0})},k0=()=>{window.removeEventListener("beforeunload",bf,{capture:!0})},Ea=async({fn:e})=>{try{return U0(),await e()}finally{k0()}};function wf(e){return new Promise((t,r)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>r(e.error)})}function Sl(e,t){let r,n=()=>{if(r)return r;let o=indexedDB.open(e);return o.onupgradeneeded=()=>o.result.createObjectStore(t),r=wf(o),r.then(i=>{i.onclose=()=>r=void 0},()=>{}),r};return(o,i)=>n().then(s=>i(s.transaction(t,o).objectStore(t)))}var Al;function L0(){return Al||(Al=Sl("keyval-store","keyval")),Al}function Tf(e,t,r=L0()){return r("readwrite",n=>new Promise((o,i)=>{n.get(e).onsuccess=function(){try{n.put(t(this.result),e),o(wf(n.transaction))}catch(s){i(s)}}}))}var q0=class extends Error{constructor(){super("A dev identity can only be used in browser environments")}},M0=class extends Error{constructor(){super("A dev identity must only be used on localhost (127.0.0.1 or localhost)")}},j0=class extends Error{constructor(e){super(`Identifier must be 32 characters or less, got ${e}`)}},K0=Sl("juno-dev-identifiers","juno-dev-identifiers-store");var Nf=async({identifier:e="dev",maxTimeToLiveInMilliseconds:t}={})=>{if(!(typeof window<"u"))throw new q0;let{location:{hostname:r}}=window;if(!["127.0.0.1","localhost"].includes(r))throw new M0;let n=()=>{if(e.length>32)throw new j0(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 Tf(e,a=>{let c=Date.now();return{createdAt:a?.createdAt??c,updatedAt:c}},K0)},s=await o();return await i(),s};var Ra=class{async signIn({options:t,initAuth:r,setStorage:n}){let{sessionKey:o,delegationChain:i}=await Nf(t);await n({sessionKey:o,delegationChain:i}),await r({provider:void 0})}};var va=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??ef();if(U(r))throw new Do;let{redirect:n}=t;await Na({github:{redirect:{...n??{},clientId:r,initUrl:(()=>{let i=t?.redirect?.initUrl;if(_r(i))return i;let s=xa();if(!pt(s))return Oa({url:`${s}/v1/auth/init/github`})?.toString()})()}}})}};var Ia=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??Qp();if(U(r))throw new Do;let{redirect:n}=t;await Na({google:{redirect:{...n??{},clientId:r}}})}};var Of=async({delegationIdentity:e,passkeyIdentity:t,satelliteId:r})=>{let n=t.getCredential().getAAGUID(),[o,i]=await Gp({docs:[{collection:"#user",doc:{key:e.getPrincipal().toText(),data:{provider:"webauthn",providerData:{webauthn:{...J(n)&&{aaguid:Li(n)}}}}}},{collection:"#user-webauthn",doc:{key:t.getCredential().getCredentialIdText(),data:{publicKey:t.getPublicKey().toRaw()}}}],satellite:{identity:e,satelliteId:r}});return o};var Ef=(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))(Ef||{}),Rf=(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))(Rf||{});var Uo=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 Lr("Satellite ID not set. Have you initialized the Satellite?");let s=({step:_,state:y})=>{switch(_){case ln.RequestingUserCredential:t?.({step:1,state:y});break;case ln.FinalizingCredential:t?.({step:2,state:y});break;case ln.Signing:t?.({step:3,state:y});break}},c=await Qt({fn:async()=>await il.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 Of({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 Lr("Satellite ID not set. Have you initialized the Satellite?");let i=async({credentialId:p})=>{let u=await ma({collection:"#user-webauthn",key:Kr(p),options:{certified:!0},satellite:{identity:new at,satelliteId:o}});if(U(u))throw new da("No public key found for the selected passkey.");let{data:f}=u,{publicKey:h}=f;return oo(h,vi)},s=({step:p,state:u})=>{switch(p){case ln.RequestingUserCredential:t?.({step:0,state:u});break;case ln.FinalizingCredential:t?.({step:1,state:u});break;case ln.Signing:t?.({step:2,state:u});break}},a=await il.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 vf=async({provider:e})=>{await Bi({fn:async()=>{let r=await Jp({provider:e});Ue.getInstance().set(r)},syncTabsOnSuccess:!0})},H0=async e=>{if("google"in e){let{google:{options:t}}=e;await Di({fn:()=>new Ia().signIn({options:t}),context:{windowGuard:!1}});return}if("github"in e){let{github:{options:t}}=e;await Di({fn:()=>new va().signIn({options:t}),context:{windowGuard:!1}});return}if("webauthn"in e){let{webauthn:{options:t,context:r}}=e;await Di({fn:()=>new Uo().signIn({options:t,loadAuth:()=>ya({syncTabsOnSuccess:!0})}),context:r});return}if("internet_identity"in e){let{internet_identity:{options:t,context:r}}=e,{domain:n,...o}=t??{};await Di({fn:()=>new Ta({domain:n}).signIn({options:o,authClient:Ce.getInstance().getAuthClient(),initAuth:vf}),context:r});return}if("dev"in e){let{dev:{options:t}}=e,{setAuthClientStorage:r}=Ce.getInstance();await Di({fn:()=>new Ra().signIn({options:t,initAuth:vf,setStorage:r}),context:{windowGuard:!1}});return}throw new ua("An unknown or unsupported provider was provided for sign-in.")},Di=async({fn:e,context:t})=>{if(t?.windowGuard===!1){await e();return}await Ea({fn:e})};var G0=async e=>{let t=async()=>await J0(e);if(Object.values(e)?.[0].context?.windowGuard===!1){await t();return}await Ea({fn:t})},J0=async e=>{if("webauthn"in e){let{webauthn:{options:t}}=e;await new Uo().signUp({options:t,loadAuthWithUser:ga});return}throw new pa("An unknown or unsupported provider was provided for sign-up.")};var w2=e=>e?.data?.provider==="webauthn",T2=e=>e?.data?.provider==="google",N2=e=>e?.data?.provider==="github";var v2=async({idlFactory:e,satellite:t})=>{let r=ue(t?.identity);return await Vp({idlFactory:e,...t,identity:r})};var If=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(W0(r));o?.onInitiatedBatch();let{chunkIds:l}=await Z0({data:e,uploadFn:s,batchId:c});o?.onUploadedFileChunks(r.fullPath),await Y0({commitFn:a,batchId:c,data:e,headers:t,chunkIds:l}),o?.onCommittedBatch()};var W0=({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)}),z0=({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??[]]}},Y0=async({commitFn:e,...t})=>{let r=z0(t);await e(r)},Z0=async({data:e,uploadFn:t,batchId:r})=>{let n=[],o=ji()?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 X0({uploadChunks:n}))s=[...s,...a];return{chunkIds:s}};async function*X0({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=>Q0(o)))}}var Q0=async({batchId:e,chunk:t,uploadFn:r,orderId:n})=>r({batch_id:e,content:new Uint8Array(await t.arrayBuffer()),order_id:se(n)});var Af=async({asset:e,...t})=>{let r=await ge(t);await If({actor:r,asset:e})},Sf=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,dn(t));return{items:o.map(([l,d])=>d),items_length:i,items_page:me(s),matches_length:a,matches_pages:me(c)}},Cf=async({collection:e,filter:t,...r})=>{let{count_assets:n}=await ge(r);return n(e,dn(t))},Vf=async({collection:e,fullPath:t,...r})=>(await ge(r)).del_asset(e,t),Pf=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)},Ff=async({collection:e,filter:t,...r})=>{let{del_filtered_assets:n}=await ge(r);return n(e,dn(t))},Bf=async({collection:e,fullPath:t,token:r,...n})=>{let{set_asset_token:o}=await ge(n);return o(e,t,se(r))},Df=async({collection:e,fullPath:t,...r})=>{let{get_asset:n}=await ge(r);return me(await n(e,t))},Uf=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 kf=e=>btoa([...e].map(t=>String.fromCharCode(t)).join(""));var K2=e=>Lf(e),$2=e=>Lf({filename:e.data.name,...e}),Lf=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 Af({asset:{data:t,filename:d,collection:r,token:i,headers:n,fullPath:p,encoding:a,description:c},satellite:u,options:{certified:!0}}),{downloadUrl:qf({satellite:u,assetKey:{fullPath:p,token:i}}),fullPath:p,...J(i)&&{token:i},name:d}},H2=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:ue(r?.identity)},{items:i,...s}=await Sf({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:qf({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:kf(O),total_length:v}}),{}),owner:p.toText(),created_at:_,updated_at:y}});return{items:a,assets:a,...s}},G2=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:ue(r?.identity)};return await Cf({collection:e,satellite:o,filter:t??{},options:n??Xt})},J2=({collection:e,fullPath:t,satellite:r})=>Vf({collection:e,fullPath:t,satellite:{...r,identity:ue(r?.identity)},options:{certified:!0}}),W2=({collection:e,fullPath:t,token:r,satellite:n})=>Bf({collection:e,fullPath:t,token:r,satellite:{...n,identity:ue(n?.identity)},options:{certified:!0}}),z2=({assets:e,satellite:t})=>Pf({assets:e,satellite:{...t,identity:ue(t?.identity)},options:{certified:!0}}),Y2=async({collection:e,satellite:t,filter:r})=>{let n={...t,identity:ue(t?.identity)};return await Ff({collection:e,satellite:n,filter:r??{},options:{certified:!0}})},Z2=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await Df({...r,satellite:{...e,identity:n},options:t??Xt})},X2=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await Uf({...r,satellite:{...e,identity:n},options:t??Xt})},qf=({assetKey:{fullPath:e,token:t},satellite:r})=>{let n={...r,identity:ue(r?.identity)};return`${Cp(n)}${e}${J(t)?`?token=${t}`:""}`};var eg=e=>{let t=e?.satelliteId??Zp();jo(t,"Satellite ID is not configured. Juno cannot be initialized.");let r=e?.container??Xp();return{satelliteId:t,internetIdentityId:e?.internetIdentityId,workers:e?.workers,syncTabs:e?.syncTabs,container:r}},cE=e=>tg(e),tg=async e=>{let t=eg(e);Ie.getInstance().set(t),await ya();let r=t.workers?.auth!==void 0?Ep(t.workers.auth):void 0,n=t.syncTabs===!1?void 0:Yp();return[...J(r)?[r]:[],...J(n)?[n]:[]]},rg=e=>Ue.getInstance().subscribe(e),lE=rg;export{cf as AuthClientSignInProgressStep,fa as InitError,Ta as InternetIdentityProvider,ha as ListError,ca as SignInError,Lr as SignInInitError,Do as SignInMissingClientIdError,ua as SignInProviderNotSupportedError,la as SignInUserInterruptError,pa as SignUpProviderNotSupportedError,Ef as WebAuthnSignInProgressStep,da as WebAuthnSignInRetrievePublicKeyError,Rf as WebAuthnSignUpProgressStep,lE as authSubscribe,G2 as countAssets,YO as countDocs,J2 as deleteAsset,GO as deleteDoc,Y2 as deleteFilteredAssets,WO as deleteFilteredDocs,z2 as deleteManyAssets,JO as deleteManyDocs,qf as downloadUrl,Z2 as getAsset,ma as getDoc,Zy as getIdentityOnce,X2 as getManyAssets,HO as getManyDocs,v2 as getSatelliteExtendedActor,D0 as handleRedirectCallback,cE as initJuno,tg as initSatellite,N2 as isGitHubUser,T2 as isGoogleUser,Ny as isWebAuthnAvailable,w2 as isWebAuthnUser,H2 as listAssets,zO as listDocs,rg as onAuthStateChange,W2 as setAssetToken,Hp as setDoc,Gp as setManyDocs,H0 as signIn,yl as signOut,G0 as signUp,Yy as unsafeIdentity,K2 as uploadBlob,$2 as uploadFile};
56
+ Retrying request.`),await this.#y({requestFn:r,backoff:n,tries:o+1});throw Go.fromCode(new Yo(d))}let c=mc(s.headers);if(s.status===el||s.status===Yd)return{ok:s.ok,status:s.status,statusText:s.statusText,responseBodyBytes:a,headers:c};let l=await s.text();if(s.status===X_&&s.url.includes("api/v4"))throw re.fromCode(new zo);if(Zd(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 Wo(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 Wr);let c=q.from(t),l=a.getPrincipal(),d=tl(this.#u,this.#r),p={request_type:Yn.Query,canister_id:c,method_name:r.methodName,arg:r.arg,sender:l,ingress_expiry:d},u=Rr(p);s=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#c?{Authorization:`Basic ${btoa(this.#c)}`}:{}}},endpoint:Ir.Query,body:p}),s=await a.transformRequest(s);let f=pi(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 Wr);let o=n.getPrincipal(),i=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#c?{Authorization:`Basic ${btoa(this.#c)}`}:{}}},endpoint:Ir.ReadState,body:{request_type:Yn.ReadState,paths:t.paths,sender:o,ingress_expiry:tl(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(Jn(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 Wr);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:pi(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??Rr(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 zr("Could not decode time from response"));let o=Br(["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 Qi("Time was not in its expected format."));let i=nn(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 Ud({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 kd({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(!Kc({canisterId:t,subnetId:a,tree:o.cert.tree}))throw Ye.fromCode(new Mn(t,a))}let i=Hc(o.cert,r),s=vo(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 Hc(o.cert,this.rootKey)}_transform(t){let r=Promise.resolve(t);if(t.endpoint===Ir.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 tl(e,t){let r=e*rl;return zn.fromDeltaInMilliseconds(r,t)}function Zd(e){return e.includes("Invalid request expiry: ")}var ut=Symbol.for("ic-agent-metadata"),So=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:Gn});class o extends e{constructor(s){if(!s.canisterId)throw z.fromCode(new Zo(s.canisterId));let a=typeof s.canisterId=="string"?q.fromText(s.canisterId):s.canisterId;super({config:{...Xd,...s,canisterId:a},service:n});for(let[c,l]of n._fields)r?.httpDetails&&l.annotations.push(nl),r?.certificate&&l.annotations.push(Qd),this[c]=ey(this,c,l,s.blsVerify)}}return o}static createActor(t,r){if(!r.canisterId)throw z.fromCode(new Zo(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 Ao(e,t){let r=Gn.decode(e,t);switch(r.length){case 0:return;case 1:return r[0];default:return r}}var Xd={pollingOptions:Wd,queryStrategy:"query"},nl="http-details",Qd="certificate";function ey(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 kr,p=q.from(c.canisterId||e[ut].config.canisterId),u=Gn.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 $r.Rejected:{let _=new as(f.requestId,f.reject_code,f.reject_message,f.error_code,f.signatures);throw _.callContext={canisterId:p,methodName:t,httpDetails:h},vt.fromCode(_)}case $r.Replied:return r.annotations.includes(nl)?{httpDetails:h,result:Ao(r.retTypes,f.reply.arg)}:Ao(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||kr.createSync(),{canisterId:p,effectiveCanisterId:u,pollingOptions:f}={...Xd,...e[ut].config,...c},h=q.from(p),_=u!==void 0?q.from(u):h,y=Gn.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(nl),v=r.annotations.includes(Qd),E={...g,requestDetails:T};return O&&v?{httpDetails:E,certificate:b,result:Ao(r.retTypes,m)}:v?{certificate:b,result:Ao(r.retTypes,m)}:O?{httpDetails:E,result:Ao(r.retTypes,m)}:Ao(r.retTypes,m)};let a=(...c)=>o({},...c);return a.withOptions=c=>(...l)=>o(c,...l),a}var ty=({authData:e})=>{if(e.byteLength<37)return{invalidAuthData:null};if(e.byteLength<53)return{invalidAuthData:null};let t=e.slice(37,53),r=ry({bytes:t});return"aaguid"in r?{aaguidBytes:t,aaguidText:r.aaguid}:{unknownProvider:null}},ry=({bytes:e})=>{if(e.length!==16)return{invalidBytes:null};let t=(e instanceof Uint8Array?Li(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 ny(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 oy(e){return no(e,vi)}var iy=class{constructor(e){this._cose=e,this.#e=oy(e)}#e;toDer(){return this.#e}toRaw(){return new Uint8Array(this.#e)}},op=class{#e;#t;constructor({rawId:e,cose:t}){this.#e=e,this.#t=new iy(t)}getPublicKey(){return this.#t}getCredentialId(){return this.#e}getCredentialIdText(){return Kr(this.#e)}},sy=class extends op{#e;#t;constructor({authData:e,...t}){super(t);let r=ty({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}},ay=class extends op{},cy=class extends Error{},ly=class extends Error{},uy=class extends Error{},dy=class extends Error{},py=class extends Error{},fy=class extends Error{},hy=class extends Error{},ep=class extends Error{};var my={ECDSA_WITH_SHA256:-7,RSA_WITH_SHA256:-257},_y=6e4,ip=()=>window.crypto.getRandomValues(new Uint8Array(16)),yy=()=>ip(),gy=()=>ip(),xy=()=>{let{location:{href:e}}=window;try{let{hostname:t}=new URL(e);return t}catch{throw new cy}},sp=({appId:e})=>e?.id??xy(),by=({appId:e,user:t}={})=>{let{document:{title:r}}=window,n=()=>({rp:{name:e?.name??r,id:sp({appId:e})}}),o=()=>({user:{id:gy(),name:t?.name??t?.displayName??r,displayName:t?.displayName??r}});return{attestation:"direct",challenge:yy(),...n(),...o(),pubKeyCredParams:Object.values(my).map(i=>({type:"public-key",alg:i})),excludeCredentials:[],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred",residentKey:"required",requireResidentKey:!0}}},wy=(e={})=>({rpId:sp(e),allowCredentials:[],userVerification:"required"}),ol=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}},ln=(e=>(e[e.RequestingUserCredential=0]="RequestingUserCredential",e[e.FinalizingCredential=1]="FinalizingCredential",e[e.Signing=2]="Signing",e))(ln||{}),ap=({timeout:e})=>AbortSignal.timeout(e??_y),Ty=async({challenge:e,credentialIds:t,passkeyOptions:r,timeout:n})=>await navigator.credentials.get({publicKey:{...wy(r),challenge:e.buffer,allowCredentials:(t??[]).map(o=>({id:o.buffer,type:"public-key"}))},signal:ap({timeout:n})}),tp=e=>{if(e.status!=="initialized")throw new ly},rp=e=>{if(U(e))throw new uy},np=({type:e})=>{if(e!=="public-key")throw new dy},il=class Ii 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=Ii.#r({credential:new sy(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:by(t),signal:ap({timeout:r})});rp(o),np(o);let{response:{attestationObject:i},rawId:s}=o;if(U(i))throw new py;let{authData:a}=As.decode(mr(i)),c=ny(a);return new Ii({...n,rawId:mr(s),cose:c,authData:a})}static async createWithExistingCredential(t){return new Ii(t)}getPublicKey(){tp(this.#t);let{credential:t}=this.#t;return t.getPublicKey()}getCredential(){tp(this.#t);let{credential:t}=this.#t;return t}async sign(t){let r=await ol({fn:async()=>{let n=await Ty({challenge:t,...this.#t.status==="initialized"&&{credentialIds:[this.#t.credential.getCredentialId()]}});return rp(n),np(n),n},step:0,onProgress:this.#e});return await ol({fn:async()=>{let{rawId:n}=r;if(this.#t.status==="initialized"){if(!Fl({a:this.#t.credential.getCredentialId(),b:mr(n)}))throw new fy;return}let{retrievePublicKey:o}=this.#t,i=await o({credentialId:mr(n)});this.#t=Ii.#r({credential:new ay({rawId:mr(n),cose:i})})},step:1,onProgress:this.#e}),await ol({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 ep;if(U(s))throw new ep;let a=As.encode({authenticator_data:i,client_data_json:new TextDecoder().decode(o),signature:mr(s)});if(U(a))throw new hy;return Object.assign(a,{__signature__:void 0}),a},step:2,onProgress:this.#e})}},Ny=async()=>J(window.PublicKeyCredential)&&"isUserVerifyingPlatformAuthenticatorAvailable"in PublicKeyCredential?await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():!1;var Co=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 Co{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 Ai=({message:e,detail:t})=>{let r=new CustomEvent(e,{detail:t,bubbles:!0});document.dispatchEvent(r)};var Vo="http://127.0.0.1:5987",cp="rdmx6-jaaaa-aaaaa-aaadq-cai";var lp=async({identity:e,container:t})=>{let n=J(t)&&t!==!1?t===!0?Vo:t:"https://icp-api.io",o=J(t);return await kr.create({identity:e,shouldFetchRootKey:o,host:n})};var Po=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 lp({identity:t,...r});return this.#e={...this.#e??{},[n]:o},o}return this.#e[n]}reset(){this.#e=null}};var Fo=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 Po.getInstance().getAgent(n);return So.createActor(t,{agent:o,canisterId:r})}};function up(e){return e!==null&&typeof e=="object"}var Si=class e{static from(t){if(typeof t=="string"){let r=Ee(t);return this.fromRaw(r)}if(up(t)){let r=t;if(up(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=no(t,ro);return r.__derEncodedPublicKey__=void 0,r}static derDecode(t){let r=oo(t,ro);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()),cu(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(Si.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(Si.fromRaw(t),r)}static fromSecretKey(t){let r=Je.getPublicKey(t);return e.fromKeyPair(r,t)}#e;#t;constructor(t,r){super(),this.#e=Si.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 sl=class e extends Error{constructor(t){super(t),this.message=t,Object.setPrototypeOf(this,e.prototype)}};function dp(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 sl("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=dp(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=dp(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 ra=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 na(e){return e instanceof Uint8Array?j(e):j(new Uint8Array(e))}function al(e){if(typeof e!="string"||e.length<64)throw new Error("Invalid public key.");return Ee(e)}var un=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:na(this.pubkey),...this.targets&&{targets:this.targets.map(t=>t.toHex())}}}};async function Oy(e,t,r,n){let o=new un(t.toDer(),BigInt(+r)*BigInt(1e6),n),i=new Uint8Array([...cc,...new Uint8Array(Rr({...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 Oy(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 un(al(c),BigInt(`0x${l}`),d&&d.map(p=>{if(typeof p!="string")throw new Error("Invalid target.");return q.fromHex(p)})),signature:al(a)}});return new this(o,al(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:na(r.pubkey),...o&&{targets:o.map(i=>i.toHex())}},signature:na(n)}}),publicKey:na(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 Rr(r);return{...n,body:{content:r,sender_sig:await this.sign(new Uint8Array([...si,...new Uint8Array(o)])),sender_delegation:this._delegation.delegations,sender_pubkey:this._delegation.publicKey}}}},Ci=class e extends ra{#e;get delegation(){return this.#e}constructor(t,r){super(t),this.#e=r}static fromDelegation(t,r){return new e(t,r)}};function cl(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 pp=["mousedown","mousemove","keydown","touchstart","wheel"],Vi=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),pp.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);pp.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 Ey=(e,t)=>t.some(r=>e instanceof r),fp,hp;function Ry(){return fp||(fp=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function vy(){return hp||(hp=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var mp=new WeakMap,ul=new WeakMap,_p=new WeakMap,ll=new WeakMap,pl=new WeakMap;function Iy(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&&mp.set(r,e)}).catch(()=>{}),pl.set(t,e),t}function Ay(e){if(ul.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)});ul.set(e,t)}var dl={get(e,t,r){if(e instanceof IDBTransaction){if(t==="done")return ul.get(e);if(t==="objectStoreNames")return e.objectStoreNames||_p.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 yp(e){dl=e(dl)}function Sy(e){return e===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(t,...r){let n=e.call(oa(this),t,...r);return _p.set(n,t.sort?t.sort():[t]),Yt(n)}:vy().includes(e)?function(...t){return e.apply(oa(this),t),Yt(mp.get(this))}:function(...t){return Yt(e.apply(oa(this),t))}}function Cy(e){return typeof e=="function"?Sy(e):(e instanceof IDBTransaction&&Ay(e),Ey(e,Ry())?new Proxy(e,dl):e)}function Yt(e){if(e instanceof IDBRequest)return Iy(e);if(ll.has(e))return ll.get(e);let t=Cy(e);return t!==e&&(ll.set(e,t),pl.set(t,e)),t}var oa=e=>pl.get(e);function xp(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 Vy=["get","getKey","getAll","getAllKeys","count"],Py=["put","add","delete","clear"],fl=new Map;function gp(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(fl.get(t))return fl.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,o=Py.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||Vy.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 fl.set(t,i),i}yp(e=>({...e,get:(t,r,n)=>gp(t,r)||e.get(t,r,n),has:(t,r)=>!!gp(t,r)||e.has(t,r)}));var bp="auth-client-db",wp="ic-keyval",Fy=async(e=bp,t=wp,r)=>(globalThis.localStorage?.getItem(ke)&&(globalThis.localStorage.removeItem(ke),globalThis.localStorage.removeItem(We)),await xp(e,r,{upgrade:n=>{n.objectStoreNames.contains(t)&&n.clear(t),n.createObjectStore(t)}}));async function By(e,t,r){return await e.get(t,r)}async function Dy(e,t,r,n){return await e.put(t,n,r)}async function Uy(e,t,r){return await e.delete(t,r)}var ia=class e{constructor(t,r){this._db=t,this._storeName=r}static async create(t){let{dbName:r=bp,storeName:n=wp,version:o=Tp}=t??{},i=await Fy(r,n,o);return new e(i,n)}async set(t,r){return await Dy(this._db,this._storeName,t,r)}async get(t){return await By(this._db,this._storeName,t)??null}async remove(t){return await Uy(this._db,this._storeName,t)}};var We="identity",ke="delegation",Np="iv",Tp=1,Pi=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}ia.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 ky=BigInt(1e9),Ly=BigInt(3600),qy=ky*Ly,My="https://identity.internetcomputer.org",jy="#authorize",Ky=BigInt(8)*qy,hl="ECDSA",ml="Ed25519",$y=500,sa="UserInterrupt",Fi=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??hl,o=null;if(t.identity)o=t.identity;else{let c=await r.get(We);if(!c)try{let l=new Pi,d=await l.get(ke),p=await l.get(We);d&&p&&n===hl&&(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===ml&&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),cl(s)?"toDer"in o?i=Ci.fromDelegation(o,s):i=qt.fromDelegation(o,s):(await _l(r),o=null))}catch(c){console.error(c),await _l(r),o=null}let a;return t.idleOptions?.disableIdle?a=void 0:(s||t.identity)&&(a=Vi.create(t.idleOptions)),o||(n===ml?o=dt.generate():(t.storage&&n===hl&&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 '${ml}' as the key type, as it can serialize to a string`),o=await xt.generate()),await Op(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 un(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=Ci.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=Vi.create(s),this._registerDefaultIdleCallback()),this._removeEventListener(),delete this._idpWindow,this._chain&&await this._storage.set(ke,JSON.stringify(this._chain.toJSON())),await Op(this._storage,this._key),r?.(t)}getIdentity(){return this._identity}async isAuthenticated(){return!this.getIdentity().getPrincipal().isAnonymous()&&this._chain!==null&&cl(this._chain)}async login(t){let r=Hy(this._createOptions?.loginOptions,t),n=r?.maxTimeToLive??Ky,o=new URL(r?.identityProvider?.toString()||My);o.hash=jy,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(sa,r?.onError):setTimeout(i,$y))};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 _l(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 _l(e){await e.remove(We),await e.remove(ke),await e.remove(Np)}function Hy(e,t){if(!e&&!t)return;let r=e?.customValues||t?.customValues?{...e?.customValues,...t?.customValues}:void 0;return{...e,...t,customValues:r}}function Gy(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 Op(e,t){let r=Gy(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 Fi.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 yl=async e=>{await Jy(),await Ce.getInstance().createAuthClient(),e?.windowReload!==!1&&window.location.reload()},Jy=async()=>{await Ce.getInstance().logout(),Ue.getInstance().reset(),Fo.getInstance().reset(),Po.getInstance().reset()};var Ep=e=>{let t=e===!0?"./workers/auth.worker.js":e,r=new Worker(t),n=async()=>{Ai({message:"junoSignOutAuthTimer"}),await yl()};return r.onmessage=async({data:o})=>{let{msg:i,data:s}=o;switch(i){case"junoSignOutAuthTimer":await n();return;case"junoDelegationRemainingTime":Ai({message:"junoDelegationRemainingTime",detail:s?.authRemainingTime})}},Ue.getInstance().subscribe(o=>{if(U(o)){r.postMessage({msg:"junoStopAuthTimer"});return}r.postMessage({msg:"junoStartAuthTimer"})})};var Bo=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 Co{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 Bi=async({fn:e,syncTabsOnSuccess:t})=>{let{authenticated:r}=await Wy({fn:e});!r||!t||Ie.getInstance().get()?.syncTabs===!1||zy()},Rp=async({fn:e})=>{let{createAuthClient:t}=Ce.getInstance(),n=await(await t()).isAuthenticated();await e({authenticated:n})},Wy=async({fn:e})=>{let{createAuthClient:t,safeCreateAuthClient:r}=Ce.getInstance();return await(await t()).isAuthenticated()?(await e(),{authenticated:!0}):(await r(),{authenticated:!1})},zy=()=>{try{Bo.getInstance().postLoginSuccess()}catch(e){console.warn("Auth BroadcastChannel posting failed",e)}};var gl=({error:e,type:t})=>typeof e=="string"?e.includes(t):e instanceof Error?e.message.includes(t):!1;var vp="juno.datastore.error.user.cannot_update";var Xt={certified:!1};var aa=()=>Ce.getInstance().getAuthClient()?.getIdentity(),Yy=async()=>{let{getAuthClient:e,createAuthClient:t}=Ce.getInstance();return(e()??await t()).getIdentity()},Zy=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:aa()??new at;var xl=({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)}),pn=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,pn))}),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)}),fn=e.Record({owner:e.Text,name:e.Text}),hn=e.Record({refs:e.Opt(e.Vec(e.Text))}),bt=e.Record({controller:e.Opt(or),repositories:e.Vec(e.Tuple(fn,hn))}),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)))}),mn=e.Record({db:e.Opt(nt),authentication:e.Opt(et),storage:Le,automation:e.Opt(wt)}),_n=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),yn=e.Variant({OpenId:_n}),gn=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),xn=e.Record({signature:e.Vec(e.Nat8),delegation:gn}),bn=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:d,GetOrFetchJwks:p,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),wn=e.Variant({Ok:xn,Err:bn}),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)}),Tn=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:Tn}),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)}),Nn=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}),On=e.Variant({Callback:e.Record({token:Ot,callback:e.Func([],[],["query"])})}),En=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(On),status_code:e.Nat16}),Rn=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}),vn=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}),In=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}),An=e.Record({desc:e.Bool}),Sn=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Cn=e.Record({order:e.Opt(An),paginate:e.Opt(Sn)}),Vn=e.Record({proposal_id:e.Nat}),pr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Vn,qe)),items_length:e.Nat64}),Pn=e.Record({include_system:e.Bool}),Fn=e.Record({matcher:e.Opt(Pn)}),fr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,Nt)),items_length:e.Nat64}),Bn=e.Record({stable:e.Nat64,heap:e.Nat64}),Dn=e.Record({openid:e.Opt(tr),version:e.Opt(e.Nat64),internet_identity:e.Opt(rr),rules:e.Opt(nr)}),Aa=e.Record({openid:e.Opt(ir),version:e.Opt(e.Nat64)}),Sa=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(F),scope:D,expires_at:e.Opt(e.Nat64)}),Ca=e.Record({controller:Sa,controllers:e.Vec(e.Principal)}),Va=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt(rt)}),ko=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),Pa=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)}),Lo=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)))}),Fa=e.Record({skip_certification:e.Opt(e.Bool)}),Ba=e.Record({config:Lo,options:Fa}),qo=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Mo=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([],[mn],[]),get_db_config:e.Func([],[e.Opt(nt)],["query"]),get_delegation:e.Func([yn],[wn],["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([Nn],[En],["query"]),http_request_streaming_callback:e.Func([Ot],[Rn],["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],[vn],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,k))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,In))],["query"]),list_docs:e.Func([e.Text,R],[it],["query"]),list_proposals:e.Func([Cn],[pr],["query"]),list_rules:e.Func([Z,Fn],[fr],["query"]),memory_size:e.Func([],[Bn],["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([Dn],[et],[]),set_automation_config:e.Func([Aa],[wt],[]),set_controllers:e.Func([Ca],[e.Vec(e.Tuple(e.Principal,k))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([Va],[nt],[]),set_doc:e.Func([e.Text,e.Text,ko],[s],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,ko))],[e.Vec(e.Tuple(e.Text,s))],[]),set_rule:e.Func([Z,e.Text,Pa],[Nt],[]),set_storage_config:e.Func([Lo],[Le],[]),set_storage_config_with_options:e.Func([Ba],[Le],[]),submit_proposal:e.Func([e.Nat],[e.Nat,qe],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([qo],[Mo],[]),upload_proposal_asset_chunk:e.Func([qo],[Mo],[])})},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)}),pn=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,pn))}),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)}),fn=e.Record({owner:e.Text,name:e.Text}),hn=e.Record({refs:e.Opt(e.Vec(e.Text))}),bt=e.Record({controller:e.Opt(or),repositories:e.Vec(e.Tuple(fn,hn))}),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)))}),mn=e.Record({db:e.Opt(nt),authentication:e.Opt(et),storage:Le,automation:e.Opt(wt)}),_n=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),yn=e.Variant({OpenId:_n}),gn=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),xn=e.Record({signature:e.Vec(e.Nat8),delegation:gn}),bn=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:d,GetOrFetchJwks:p,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),wn=e.Variant({Ok:xn,Err:bn}),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)}),Tn=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:Tn}),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)}),Nn=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}),On=e.Variant({Callback:e.Record({token:Ot,callback:e.Func([],[],[])})}),En=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(On),status_code:e.Nat16}),Rn=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}),vn=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}),In=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}),An=e.Record({desc:e.Bool}),Sn=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Cn=e.Record({order:e.Opt(An),paginate:e.Opt(Sn)}),Vn=e.Record({proposal_id:e.Nat}),pr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Vn,qe)),items_length:e.Nat64}),Pn=e.Record({include_system:e.Bool}),Fn=e.Record({matcher:e.Opt(Pn)}),fr=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,Nt)),items_length:e.Nat64}),Bn=e.Record({stable:e.Nat64,heap:e.Nat64}),Dn=e.Record({openid:e.Opt(tr),version:e.Opt(e.Nat64),internet_identity:e.Opt(rr),rules:e.Opt(nr)}),Aa=e.Record({openid:e.Opt(ir),version:e.Opt(e.Nat64)}),Sa=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(F),scope:D,expires_at:e.Opt(e.Nat64)}),Ca=e.Record({controller:Sa,controllers:e.Vec(e.Principal)}),Va=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt(rt)}),ko=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),Pa=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)}),Lo=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)))}),Fa=e.Record({skip_certification:e.Opt(e.Bool)}),Ba=e.Record({config:Lo,options:Fa}),qo=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Mo=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([],[mn],[]),get_db_config:e.Func([],[e.Opt(nt)],[]),get_delegation:e.Func([yn],[wn],[]),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([Nn],[En],[]),http_request_streaming_callback:e.Func([Ot],[Rn],[]),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],[vn],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,k))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,In))],[]),list_docs:e.Func([e.Text,R],[it],[]),list_proposals:e.Func([Cn],[pr],[]),list_rules:e.Func([Z,Fn],[fr],[]),memory_size:e.Func([],[Bn],[]),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([Dn],[et],[]),set_automation_config:e.Func([Aa],[wt],[]),set_controllers:e.Func([Ca],[e.Vec(e.Tuple(e.Principal,k))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([Va],[nt],[]),set_doc:e.Func([e.Text,e.Text,ko],[s],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,ko))],[e.Vec(e.Tuple(e.Text,s))],[]),set_rule:e.Func([Z,e.Text,Pa],[Nt],[]),set_storage_config:e.Func([Lo],[Le],[]),set_storage_config_with_options:e.Func([Ba],[Le],[]),submit_proposal:e.Func([e.Nat],[e.Nat,qe],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([qo],[Mo],[]),upload_proposal_asset_chunk:e.Func([qo],[Mo],[])})},Xy=({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}),pn=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}),fn=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)}),hn=e.Variant({Heap:e.Null,Stable:e.Null}),bt=e.Record({memory:hn,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}),mn=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(Le),description:e.Opt(e.Text),created_at:e.Opt(Le)}),_n=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),yn=e.Record({order:e.Opt(ar),owner:e.Opt(e.Principal),matcher:e.Opt(mn),paginate:e.Opt(_n)}),gn=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}),xn=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),bn=e.Record({key:gn,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,xn)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),wn=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,bn)),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}),Tn=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))}),Nn=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}),On=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),En=e.Record({order:e.Opt(Ot),paginate:e.Opt(On)}),Rn=e.Record({proposal_id:e.Nat}),Et=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Rn,tt)),items_length:e.Nat64}),we=e.Variant({Orbiter:e.Null,Satellite:e.Null}),vn=e.Record({segment_id:e.Opt(e.Principal),segment_kind:e.Opt(we)}),In=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}),An=e.Record({openid:e.Opt(x),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(S)}),Sn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(cr),scope:lr,expires_at:e.Opt(e.Nat64)}),Cn=e.Record({controller:Sn,controllers:e.Vec(e.Principal)}),Vn=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}),Pn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:we}),Fn=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}),Bn=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Dn=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],[pn],["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([fn],[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,yn],[wn],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,Tn))],["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,Nn))],["query"]),list_proposals:e.Func([En],[Et],["query"]),list_segments:e.Func([vn],[e.Vec(e.Tuple(In,it))],["query"]),reject_proposal:e.Func([b],[e.Null],[]),set_auth_config:e.Func([An],[B],[]),set_controllers:e.Func([Cn],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([ie,Vn],[],[]),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([Pn],[it],[]),set_storage_config:e.Func([Fn],[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([Bn],[Dn],[])})},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}),pn=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}),fn=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)}),hn=e.Variant({Heap:e.Null,Stable:e.Null}),bt=e.Record({memory:hn,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}),mn=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(Le),description:e.Opt(e.Text),created_at:e.Opt(Le)}),_n=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),yn=e.Record({order:e.Opt(ar),owner:e.Opt(e.Principal),matcher:e.Opt(mn),paginate:e.Opt(_n)}),gn=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}),xn=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),bn=e.Record({key:gn,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,xn)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),wn=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,bn)),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}),Tn=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))}),Nn=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}),On=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),En=e.Record({order:e.Opt(Ot),paginate:e.Opt(On)}),Rn=e.Record({proposal_id:e.Nat}),Et=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Rn,tt)),items_length:e.Nat64}),we=e.Variant({Orbiter:e.Null,Satellite:e.Null}),vn=e.Record({segment_id:e.Opt(e.Principal),segment_kind:e.Opt(we)}),In=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}),An=e.Record({openid:e.Opt(x),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(S)}),Sn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(cr),scope:lr,expires_at:e.Opt(e.Nat64)}),Cn=e.Record({controller:Sn,controllers:e.Vec(e.Principal)}),Vn=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}),Pn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:we}),Fn=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}),Bn=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Dn=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],[pn],[]),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([fn],[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,yn],[wn],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,Tn))],[]),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,Nn))],[]),list_proposals:e.Func([En],[Et],[]),list_segments:e.Func([vn],[e.Vec(e.Tuple(In,it))],[]),reject_proposal:e.Func([b],[e.Null],[]),set_auth_config:e.Func([An],[B],[]),set_controllers:e.Func([Cn],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([ie,Vn],[],[]),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([Pn],[it],[]),set_storage_config:e.Func([Fn],[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([Bn],[Dn],[])})};var e0=async({identity:e,host:t,localActor:r})=>await kr.create({identity:e,host:t,retryTimes:10,shouldFetchRootKey:r}),t0=async({agent:e,...t})=>e??await r0(t),r0=async({identity:e,container:t})=>{let r=J(t)&&t!==!1;return await e0({identity:e,host:r?t===!0?"http://127.0.0.1:5987":t:"https://icp-api.io",localActor:r})};var Ip=({satelliteId:e,certified:t=!1,...r})=>Sp({canisterId:e,...r,idlFactory:t?bl:xl});var Ap=({consoleId:e,certified:t=!1,...r})=>Sp({canisterId:e,...r,idlFactory:t?Qy:Xy}),Sp=({canisterId:e,idlFactory:t,...r})=>{if(U(e))throw new Error("No canister ID provided.");return n0({canisterId:e,idlFactory:t,...r})},n0=async({canisterId:e,idlFactory:t,config:r,...n})=>{let o=await t0(n);return So.createActor(t,{agent:o,canisterId:e,...r??{}})};var Cp=({satelliteId:e,container:t})=>{let{satelliteId:r}=wl({satelliteId:e}),{container:n}=Tl({container:t});if(J(n)&&n!==!1){let{host:o,protocol:i}=new URL(n===!0?Vo:n);return`${i}//${r??"unknown"}.${o.replace("127.0.0.1","localhost")}`}return`https://${r??"unknown"}.icp0.io`},wl=({satelliteId:e})=>J(e)?{satelliteId:e}:Ie.getInstance().get()??{satelliteId:void 0},Tl=({container:e})=>J(e)?{container:e}:Ie.getInstance().get()??{container:void 0};var ge=({satellite:e,options:{certified:t}})=>Pp({idlFactory:t?bl:xl,actorKey:`stock#${t?"update":"query"}`,...e}),Vp=({idlFactory:e,...t})=>Pp({idlFactory:e,actorKey:"extended#query",...t}),Pp=async({satelliteId:e,container:t,...r})=>{let{satelliteId:n}=wl({satelliteId:e});jo(n,"No satellite ID defined. Did you initialize Juno?");let{container:o}=Tl({container:t});return await Fo.getInstance().getActor({satelliteId:n,container:o,...r})};var ca=class extends Error{},Lr=class extends Error{},la=class extends Error{},ua=class extends Error{},Do=class extends Error{},da=class extends Error{},pa=class extends Error{},fa=class extends Error{},ha=class extends Error{};var Fp=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 ha("Invalid list matcher for timestamp",e)}},dn=({matcher:e,paginate:t,order:r,owner:n})=>({matcher:U(e)?[]:[{key:se(e.key),description:se(e.description),created_at:Fp(e.createdAt),updated_at:Fp(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 Bp=async({data:e})=>{try{return await Mi(e)}catch(t){console.error("The data parsing has failed, mapping to undefined as a fallback.",t);return}};var Nl=async e=>{let{data:t,version:r,description:n}=e;return{description:se(n),data:await kl(t),version:se(r)}},Ol=e=>{let{version:t}=e;return{version:se(t)}},io=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 Mi(i),version:me(n),...s}};var Dp=async({collection:e,key:t,...r})=>{let{get_doc:n}=await ge(r),o=me(await n(e,t));if(!U(o))return io({doc:o,key:t})},Up=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 io({key:s,doc:c}):void 0)}return i},kp=async({collection:e,doc:t,...r})=>{let{set_doc:n}=await ge(r),{key:o}=t,i=await Nl(t),s=await n(e,o,i);return await io({key:o,doc:s})},Lp=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 Nl(a)])}let o=await r(n),i=[];for(let[s,a]of o)i.push(await io({key:s,doc:a}));return i},qp=async({collection:e,doc:t,...r})=>{let{del_doc:n}=await ge(r),{key:o}=t;return n(e,o,Ol(t))},Mp=async({docs:e,...t})=>{let{del_many_docs:r}=await ge(t),n=e.map(({collection:o,doc:i})=>[o,i.key,Ol(i)]);await r(n)},jp=async({collection:e,filter:t,...r})=>{let{del_filtered_docs:n}=await ge(r);return n(e,dn(t))},Kp=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,dn(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 Bp({data:u}),version:me(_),...y})}return{items:l,items_length:s,items_page:me(i),matches_length:a,matches_pages:me(c)}},$p=async({collection:e,filter:t,...r})=>{let{count_docs:n}=await ge(r);return n(e,dn(t))};var ma=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await Dp({...r,satellite:{...e,identity:n},options:t??Xt})},HO=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await Up({...r,satellite:{...e,identity:n},options:t??Xt})},Hp=async({satellite:e,...t})=>{let r=ue(e?.identity);return await kp({...t,satellite:{...e,identity:r},options:{certified:!0}})},Gp=async({satellite:e,...t})=>{let r=ue(e?.identity);return await Lp({...t,satellite:{...e,identity:r},options:{certified:!0}})},GO=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,filter:t,...r})=>{let n=ue(e?.identity);return await jp({...r,filter:t??{},satellite:{...e,identity:n},options:{certified:!0}})},zO=async({satellite:e,options:t,filter:r,...n})=>{let o=ue(e?.identity);return await Kp({...n,filter:r??{},satellite:{...e,identity:o},options:t??Xt})},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})};var Jp=async({provider:e})=>{let{user:t,userId:r}=await _a();if(J(t))return t;try{return await o0({userId:r,provider:e})}catch(n){if(gl({error:n,type:vp})){let o=await Wp({userId:r});if(J(o))return o}throw n}},_a=async()=>{let e=aa();if(U(e))throw new fa("No identity to initialize the user. Have you initialized Juno?");let t=e.getPrincipal().toText(),r=await Wp({userId:t});return{userId:t,user:r}},Wp=({userId:e})=>ma({collection:"#user",key:e}),o0=({userId:e,...t})=>Hp({collection:"#user",doc:{key:e,data:t}});var ya=async({syncTabsOnSuccess:e}={syncTabsOnSuccess:!1})=>{await Bi({fn:async()=>{let{user:r}=await _a();Ue.getInstance().set(r??null)},syncTabsOnSuccess:e})},zp=async()=>{await Rp({fn:async({authenticated:t})=>{let n=t?_a:()=>Promise.resolve({user:null}),{user:o}=await n();Ue.getInstance().set(o??null)}})},ga=async({user:e})=>{await Bi({fn:async()=>{Ue.getInstance().set(e)},syncTabsOnSuccess:!0})};var Yp=()=>{try{let e=Bo.getInstance(),t=async()=>{await zp(),Ai({message:"junoSignInReload"})};return e.onLoginSuccess(t),()=>{e?.destroy()}}catch(e){console.warn("Auth BroadcastChannel initialization failed",e);return}};var Zp=()=>{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()},Xp=()=>{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()},Qp=()=>{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()},ef=()=>{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()},xa=()=>{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 tf=BigInt(144e11),rf=!1,nf={width:576,height:576},of={width:424,height:576},El="internetcomputer.org",sf="ic0.app",ba="id.ai";var af=({width:e,height:t})=>{if(!ji()||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 cf=(r=>(r[r.AuthorizingWithProvider=0]="AuthorizingWithProvider",r[r.CreatingOrRetrievingUser=1]="CreatingOrRetrievingUser",r))(cf||{});var wa=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 Lr("No client is ready to perform a sign-in. Have you initialized the Satellite?"));return}await r.login({onSuccess:n,onError:i=>{if(i===sa){o(new la(i));return}o(new ca(i))},maxTimeToLive:t?.maxTimeToLiveInNanoseconds??tf,allowPinAuthentication:t?.allowPin??rf,...t?.derivationOrigin!==void 0&&{derivationOrigin:t.derivationOrigin},...this.signInOptions({windowed:t?.windowed})})})}};var Ta=class extends wa{#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=[El,sf].includes(this.#e??ba);return pt(this.#e)?`https://${ba}`:d?`https://identity.${this.#e??El}`:`https://${this.#e}`}let s=Ie.getInstance().get(),a=J(s)&&J(s?.internetIdentityId)?s.internetIdentityId:cp,{host:c,protocol:l}=new URL(i===!0?Vo:i);return/apple/i.test(navigator?.vendor)?`${l}//${c}?canisterId=${a}`:`${l}//${a}.${c.replace("127.0.0.1","localhost")}`})();return{...t!==!1&&{windowOpenerFeatures:af((()=>{try{let{hostname:i}=new URL(n);return i.includes(ba)}catch{return!1}})()?of:nf)},identityProvider:n}}};var Rl=e=>Kr(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),i0=()=>crypto.getRandomValues(new Uint8Array(32)),s0=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 Rl(mr(o))},lf=async({caller:e})=>{let t=i0();return{nonce:await s0({salt:t,caller:e}),salt:t}};var pf="juno:auth:openid",uf={authUrl:"https://accounts.google.com/o/oauth2/v2/auth",authScopes:["openid","profile","email"],configUrl:"https://accounts.google.com/gsi/fedcm.json"},ff={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"},a0=class extends Error{},c0=class extends Error{},l0=class extends Error{},u0=class extends Error{},d0=class extends Error{},p0=class extends Error{},f0=class extends Error{},hf=class extends Error{},h0=class extends Error{},m0=class extends Error{},_0=class extends Error{constructor(e){super("GitHub OAuth initialization failed",e)}},y0=class extends Error{constructor(e){super("GitHub OAuth finalization failed",e)}},mf="__caller__",_f="__salt__",yf="__state__",g0=({caller:e,state:t,salt:r})=>{let n={[mf]:e.toJSON(),[_f]:Kr(r),[yf]:t};return JSON.stringify(n)},x0=e=>{let{[mf]:t,[_f]:r,[yf]:n}=JSON.parse(e);return{caller:dt.fromParsedJson(t),salt:Bl(r),state:n}},df=async({generateState:e})=>{let t=dt.generate(),{nonce:r,salt:n}=await lf({caller:t}),o=await e({nonce:r}),i=g0({caller:t,salt:n,state:o});return sessionStorage.setItem(pf,i),{nonce:r,state:o}},b0=()=>{let e=sessionStorage.getItem(pf);if(U(e))throw new c0;return x0(e)},gf=({auth:e,identity:t})=>"satellite"in e?Ip({...e.satellite,identity:t}):Ap({...e.console,identity:t}),w0=async({actorParams:e,args:t})=>{let{authenticate:r}=await gf(e);return await r(t)},T0=async({actorParams:e,args:t})=>{let{get_delegation:r}=await gf(e);return await r(t)},N0=({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}},vl=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 O0({jwt:e,publicKey:o,context:t,auth:r});return{identity:N0({sessionKey:n,delegations:i}),data:s}},O0=async({jwt:e,publicKey:t,context:{caller:r,salt:n},auth:o})=>{let i=await w0({args:{OpenId:{jwt:e,session_key:t,salt:n}},actorParams:{auth:o,identity:r}});if("Err"in i)throw new d0("Authentication failed",{cause:i});let{delegation:{user_key:s,expiration:a},...c}=i.Ok,l=await E0({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 un(Uint8Array.from(u),f,me(h)),signature:Uint8Array.from(p)}]],data:c}},E0=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 T0({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 h0("Getting delegation failed",{cause:c})}return c.Ok}throw new m0},R0=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 _0({cause:t})}}},v0=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 y0({cause:r})}}},I0=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 v0({url:r,body:{code:i,state:s}});if("error"in a)throw a.error;let{success:{token:c}}=a;if(pt(c))throw new hf;return await vl({jwt:c,auth:e,context:t})},A0=async({auth:e,context:t})=>{let{location:{hash:r}}=window;if(pt(r)||!r.startsWith("#"))throw new p0("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 f0("The provided state is invalid",{cause:o});if(pt(i))throw new hf;return await vl({jwt:i,auth:e,context:t})},xf=async e=>{let t=b0();if("github"in e){let{github:{redirect:n,auth:o}}=e,{finalizeUrl:i}=ff;return await I0({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 vl({jwt:n,context:t,auth:o})}return await A0({...r,context:t})},Il=({url:e})=>{try{return new URL(e)}catch{throw new a0("Cannot parse authURL",{cause:e})}},S0=({initUrl:e})=>async({nonce:t})=>{let r=Il({url:e});r.searchParams.set("nonce",t);let n=await R0({url:r.toString()});if("error"in n)throw n.error;let{success:{state:o}}=n;return o},C0=({authUrl:e,clientId:t,authScopes:r,state:n,redirectUrl:o})=>{let i=Il({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()},V0=()=>Rl(crypto.getRandomValues(new Uint8Array(12))),P0=async e=>V0(),F0=({authUrl:e,clientId:t,nonce:r,loginHint:n,authScopes:o,state:i,redirectUrl:s})=>{let a=Il({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()},B0=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 l0;let{type:s}=i;if(s!=="identity"||!("token"in i)||typeof i.token!="string")throw new u0("Invalid credential received from FedCM API",{cause:i});let{token:a}=i;return{jwt:a}};async function Na(e){if("github"in e){let{github:s}=e,{redirect:a}=s,{initUrl:c,...l}=a,{authUrl:d,authScopes:p,initUrl:u}=ff,f=await df({generateState:S0({initUrl:c??u})});C0({...l,...f,authUrl:d,authScopes:p});return}let t=await df({generateState:P0}),{google:r}=e;if("credentials"in r){let{credentials:s}=r,{configUrl:a}=uf;return await B0({...s,...t,configUrl:a})}let{redirect:n}=r,{authUrl:o,authScopes:i}=uf;F0({...n,...t,authUrl:o,authScopes:i})}var Oa=({url:e})=>{try{return new URL(e)}catch{return console.warn(`Cannot parse URL ${e}. Skipping option.`),null}};var D0=async e=>{let{satelliteId:t}=Ie.getInstance().get()??{satelliteId:void 0};if(U(t))throw new Lr("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=xa();return pt(u)?null:Oa({url:`${u}/v1/auth/finalize/github`})?.toString()??null})(),{identity:{delegationChain:s,sessionKey:a,identity:c},data:{doc:l}}=await xf("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 io({doc:l,key:c.getPrincipal().toText()});await ga({user:d})};var bf=e=>(e.preventDefault(),e.returnValue="Are you sure you want to exit?"),U0=()=>{window.addEventListener("beforeunload",bf,{capture:!0})},k0=()=>{window.removeEventListener("beforeunload",bf,{capture:!0})},Ea=async({fn:e})=>{try{return U0(),await e()}finally{k0()}};function wf(e){return new Promise((t,r)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>r(e.error)})}function Sl(e,t){let r,n=()=>{if(r)return r;let o=indexedDB.open(e);return o.onupgradeneeded=()=>o.result.createObjectStore(t),r=wf(o),r.then(i=>{i.onclose=()=>r=void 0},()=>{}),r};return(o,i)=>n().then(s=>i(s.transaction(t,o).objectStore(t)))}var Al;function L0(){return Al||(Al=Sl("keyval-store","keyval")),Al}function Tf(e,t,r=L0()){return r("readwrite",n=>new Promise((o,i)=>{n.get(e).onsuccess=function(){try{n.put(t(this.result),e),o(wf(n.transaction))}catch(s){i(s)}}}))}var q0=class extends Error{constructor(){super("A dev identity can only be used in browser environments")}},M0=class extends Error{constructor(){super("A dev identity must only be used on localhost (127.0.0.1 or localhost)")}},j0=class extends Error{constructor(e){super(`Identifier must be 32 characters or less, got ${e}`)}},K0=Sl("juno-dev-identifiers","juno-dev-identifiers-store");var Nf=async({identifier:e="dev",maxTimeToLiveInMilliseconds:t}={})=>{if(!(typeof window<"u"))throw new q0;let{location:{hostname:r}}=window;if(!["127.0.0.1","localhost"].includes(r))throw new M0;let n=()=>{if(e.length>32)throw new j0(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 Tf(e,a=>{let c=Date.now();return{createdAt:a?.createdAt??c,updatedAt:c}},K0)},s=await o();return await i(),s};var Ra=class{async signIn({options:t,initAuth:r,setStorage:n}){let{sessionKey:o,delegationChain:i}=await Nf(t);await n({sessionKey:o,delegationChain:i}),await r({provider:void 0})}};var va=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??ef();if(U(r))throw new Do;let{redirect:n}=t;await Na({github:{redirect:{...n??{},clientId:r,initUrl:(()=>{let i=t?.redirect?.initUrl;if(_r(i))return i;let s=xa();if(!pt(s))return Oa({url:`${s}/v1/auth/init/github`})?.toString()})()}}})}};var Ia=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??Qp();if(U(r))throw new Do;let{redirect:n}=t;await Na({google:{redirect:{...n??{},clientId:r}}})}};var Of=async({delegationIdentity:e,passkeyIdentity:t,satelliteId:r})=>{let n=t.getCredential().getAAGUID(),[o,i]=await Gp({docs:[{collection:"#user",doc:{key:e.getPrincipal().toText(),data:{provider:"webauthn",providerData:{webauthn:{...J(n)&&{aaguid:Li(n)}}}}}},{collection:"#user-webauthn",doc:{key:t.getCredential().getCredentialIdText(),data:{publicKey:t.getPublicKey().toRaw()}}}],satellite:{identity:e,satelliteId:r}});return o};var Ef=(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))(Ef||{}),Rf=(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))(Rf||{});var Uo=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 Lr("Satellite ID not set. Have you initialized the Satellite?");let s=({step:_,state:y})=>{switch(_){case ln.RequestingUserCredential:t?.({step:1,state:y});break;case ln.FinalizingCredential:t?.({step:2,state:y});break;case ln.Signing:t?.({step:3,state:y});break}},c=await Qt({fn:async()=>await il.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 Of({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 Lr("Satellite ID not set. Have you initialized the Satellite?");let i=async({credentialId:p})=>{let u=await ma({collection:"#user-webauthn",key:Kr(p),options:{certified:!0},satellite:{identity:new at,satelliteId:o}});if(U(u))throw new da("No public key found for the selected passkey.");let{data:f}=u,{publicKey:h}=f;return oo(h,vi)},s=({step:p,state:u})=>{switch(p){case ln.RequestingUserCredential:t?.({step:0,state:u});break;case ln.FinalizingCredential:t?.({step:1,state:u});break;case ln.Signing:t?.({step:2,state:u});break}},a=await il.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 vf=async({provider:e})=>{await Bi({fn:async()=>{let r=await Jp({provider:e});Ue.getInstance().set(r)},syncTabsOnSuccess:!0})},H0=async e=>{if("google"in e){let{google:{options:t}}=e;await Di({fn:()=>new Ia().signIn({options:t}),context:{windowGuard:!1}});return}if("github"in e){let{github:{options:t}}=e;await Di({fn:()=>new va().signIn({options:t}),context:{windowGuard:!1}});return}if("webauthn"in e){let{webauthn:{options:t,context:r}}=e;await Di({fn:()=>new Uo().signIn({options:t,loadAuth:()=>ya({syncTabsOnSuccess:!0})}),context:r});return}if("internet_identity"in e){let{internet_identity:{options:t,context:r}}=e,{domain:n,...o}=t??{};await Di({fn:()=>new Ta({domain:n}).signIn({options:o,authClient:Ce.getInstance().getAuthClient(),initAuth:vf}),context:r});return}if("dev"in e){let{dev:{options:t}}=e,{setAuthClientStorage:r}=Ce.getInstance();await Di({fn:()=>new Ra().signIn({options:t,initAuth:vf,setStorage:r}),context:{windowGuard:!1}});return}throw new ua("An unknown or unsupported provider was provided for sign-in.")},Di=async({fn:e,context:t})=>{if(t?.windowGuard===!1){await e();return}await Ea({fn:e})};var G0=async e=>{let t=async()=>await J0(e);if(Object.values(e)?.[0].context?.windowGuard===!1){await t();return}await Ea({fn:t})},J0=async e=>{if("webauthn"in e){let{webauthn:{options:t}}=e;await new Uo().signUp({options:t,loadAuthWithUser:ga});return}throw new pa("An unknown or unsupported provider was provided for sign-up.")};var w2=e=>e?.data?.provider==="webauthn",T2=e=>e?.data?.provider==="google",N2=e=>e?.data?.provider==="github";var v2=async({idlFactory:e,satellite:t})=>{let r=ue(t?.identity);return await Vp({idlFactory:e,...t,identity:r})};var If=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(W0(r));o?.onInitiatedBatch();let{chunkIds:l}=await Z0({data:e,uploadFn:s,batchId:c});o?.onUploadedFileChunks(r.fullPath),await Y0({commitFn:a,batchId:c,data:e,headers:t,chunkIds:l}),o?.onCommittedBatch()};var W0=({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)}),z0=({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??[]]}},Y0=async({commitFn:e,...t})=>{let r=z0(t);await e(r)},Z0=async({data:e,uploadFn:t,batchId:r})=>{let n=[],o=ji()?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 X0({uploadChunks:n}))s=[...s,...a];return{chunkIds:s}};async function*X0({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=>Q0(o)))}}var Q0=async({batchId:e,chunk:t,uploadFn:r,orderId:n})=>r({batch_id:e,content:new Uint8Array(await t.arrayBuffer()),order_id:se(n)});var Af=async({asset:e,...t})=>{let r=await ge(t);await If({actor:r,asset:e})},Sf=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,dn(t));return{items:o.map(([l,d])=>d),items_length:i,items_page:me(s),matches_length:a,matches_pages:me(c)}},Cf=async({collection:e,filter:t,...r})=>{let{count_assets:n}=await ge(r);return n(e,dn(t))},Vf=async({collection:e,fullPath:t,...r})=>(await ge(r)).del_asset(e,t),Pf=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)},Ff=async({collection:e,filter:t,...r})=>{let{del_filtered_assets:n}=await ge(r);return n(e,dn(t))},Bf=async({collection:e,fullPath:t,token:r,...n})=>{let{set_asset_token:o}=await ge(n);return o(e,t,se(r))},Df=async({collection:e,fullPath:t,...r})=>{let{get_asset:n}=await ge(r);return me(await n(e,t))},Uf=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 kf=e=>btoa([...e].map(t=>String.fromCharCode(t)).join(""));var K2=e=>Lf(e),$2=e=>Lf({filename:e.data.name,...e}),Lf=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 Af({asset:{data:t,filename:d,collection:r,token:i,headers:n,fullPath:p,encoding:a,description:c},satellite:u,options:{certified:!0}}),{downloadUrl:qf({satellite:u,assetKey:{fullPath:p,token:i}}),fullPath:p,...J(i)&&{token:i},name:d}},H2=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:ue(r?.identity)},{items:i,...s}=await Sf({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:qf({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:kf(O),total_length:v}}),{}),owner:p.toText(),created_at:_,updated_at:y}});return{items:a,assets:a,...s}},G2=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:ue(r?.identity)};return await Cf({collection:e,satellite:o,filter:t??{},options:n??Xt})},J2=({collection:e,fullPath:t,satellite:r})=>Vf({collection:e,fullPath:t,satellite:{...r,identity:ue(r?.identity)},options:{certified:!0}}),W2=({collection:e,fullPath:t,token:r,satellite:n})=>Bf({collection:e,fullPath:t,token:r,satellite:{...n,identity:ue(n?.identity)},options:{certified:!0}}),z2=({assets:e,satellite:t})=>Pf({assets:e,satellite:{...t,identity:ue(t?.identity)},options:{certified:!0}}),Y2=async({collection:e,satellite:t,filter:r})=>{let n={...t,identity:ue(t?.identity)};return await Ff({collection:e,satellite:n,filter:r??{},options:{certified:!0}})},Z2=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await Df({...r,satellite:{...e,identity:n},options:t??Xt})},X2=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await Uf({...r,satellite:{...e,identity:n},options:t??Xt})},qf=({assetKey:{fullPath:e,token:t},satellite:r})=>{let n={...r,identity:ue(r?.identity)};return`${Cp(n)}${e}${J(t)?`?token=${t}`:""}`};var eg=e=>{let t=e?.satelliteId??Zp();jo(t,"Satellite ID is not configured. Juno cannot be initialized.");let r=e?.container??Xp();return{satelliteId:t,internetIdentityId:e?.internetIdentityId,workers:e?.workers,syncTabs:e?.syncTabs,container:r}},cE=e=>tg(e),tg=async e=>{let t=eg(e);Ie.getInstance().set(t),await ya();let r=t.workers?.auth!==void 0?Ep(t.workers.auth):void 0,n=t.syncTabs===!1?void 0:Yp();return[...J(r)?[r]:[],...J(n)?[n]:[]]},rg=e=>Ue.getInstance().subscribe(e),lE=rg;export{cf as AuthClientSignInProgressStep,fa as InitError,Ta as InternetIdentityProvider,ha as ListError,ca as SignInError,Lr as SignInInitError,Do as SignInMissingClientIdError,ua as SignInProviderNotSupportedError,la as SignInUserInterruptError,pa as SignUpProviderNotSupportedError,Ef as WebAuthnSignInProgressStep,da as WebAuthnSignInRetrievePublicKeyError,Rf as WebAuthnSignUpProgressStep,lE as authSubscribe,G2 as countAssets,YO as countDocs,J2 as deleteAsset,GO as deleteDoc,Y2 as deleteFilteredAssets,WO as deleteFilteredDocs,z2 as deleteManyAssets,JO as deleteManyDocs,qf as downloadUrl,Z2 as getAsset,ma as getDoc,Zy as getIdentityOnce,X2 as getManyAssets,HO as getManyDocs,v2 as getSatelliteExtendedActor,D0 as handleRedirectCallback,cE as initJuno,tg as initSatellite,N2 as isGitHubUser,T2 as isGoogleUser,Ny as isWebAuthnAvailable,w2 as isWebAuthnUser,H2 as listAssets,zO as listDocs,rg as onAuthStateChange,W2 as setAssetToken,Hp as setDoc,Gp as setManyDocs,H0 as signIn,yl as signOut,G0 as signUp,Yy as unsafeIdentity,K2 as uploadBlob,$2 as uploadFile};
57
57
  /*! Bundled license information:
58
58
 
59
59
  @noble/hashes/esm/utils.js: