@junobuild/core-peer 5.2.2 → 5.3.0-next-2026-04-03
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.js +6 -1
- package/dist/browser/index.js.map +4 -4
- package/dist/node/index.mjs +6 -1
- package/dist/node/index.mjs.map +4 -4
- package/dist/types/auth/stores/auth-client.store.d.ts +12 -0
- package/dist/workers/auth.worker.js +12 -7
- package/dist/workers/auth.worker.js.map +4 -4
- package/package.json +8 -9
package/dist/browser/index.js
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
import{assertNonNullish as es,nonNullish as an}from"@dfinity/utils";import{uint8ArrayToArrayOfNumber as rn}from"@dfinity/utils";import{DER_COSE_OID as on,wrapDER as sn}from"@icp-sdk/core/agent";import{uint8ArrayToBase64 as pn}from"@dfinity/utils";import{arrayBufferToUint8Array as ta,isNullish as ya,uint8ArraysEqual as Rn}from"@dfinity/utils";import{Cbor as xr,SignIdentity as hn}from"@icp-sdk/core/agent";import{nonNullish as En}from"@dfinity/utils";var nn=({authData:e})=>{if(e.byteLength<37)return{invalidAuthData:null};if(e.byteLength<53)return{invalidAuthData:null};let a=e.slice(37,53),r=tn({bytes:a});return"aaguid"in r?{aaguidBytes:a,aaguidText:r.aaguid}:{unknownProvider:null}},tn=({bytes:e})=>{if(e.length!==16)return{invalidBytes:null};let a=(e instanceof Uint8Array?rn(e):e).map(r=>r.toString(16).padStart(2,"0")).join("").replace(/^(.{8})(.{4})(.{4})(.{4})(.{12})$/,"$1-$2-$3-$4-$5");return a==="00000000-0000-0000-0000-000000000000"?{unknownProvider:null}:{aaguid:a}};function cn(e){let a=new DataView(new ArrayBuffer(2)),r=e.slice(53,55);[...new Uint8Array(r)].forEach((n,t)=>a.setUint8(t,n));let i=a.getUint16(0);return e.slice(55+i)}function ln(e){return sn(e,on)}var dn=class{constructor(e){this._cose=e,this.#e=ln(e)}#e;toDer(){return this.#e}toRaw(){return new Uint8Array(this.#e)}},Fr=class{#e;#a;constructor({rawId:e,cose:a}){this.#e=e,this.#a=new dn(a)}getPublicKey(){return this.#a}getCredentialId(){return this.#e}getCredentialIdText(){return pn(this.#e)}},un=class extends Fr{#e;#a;constructor({authData:e,...a}){super(a);let r=nn({authData:e});this.#e="aaguidText"in r?r.aaguidText:void 0,this.#a="aaguidBytes"in r?r.aaguidBytes:void 0}getAAGUID(){return this.#a}getAAGUIDText(){return this.#e}},_n=class extends Fr{},mn=class extends Error{},Nn=class extends Error{},Tn=class extends Error{},On=class extends Error{},yn=class extends Error{},gn=class extends Error{},xn=class extends Error{},gr=class extends Error{};var fn={ECDSA_WITH_SHA256:-7,RSA_WITH_SHA256:-257},Fn=6e4,Vr=()=>window.crypto.getRandomValues(new Uint8Array(16)),Vn=()=>Vr(),An=()=>Vr(),wn=()=>{let{location:{href:e}}=window;try{let{hostname:a}=new URL(e);return a}catch{throw new mn}},Ar=({appId:e})=>e?.id??wn(),vn=({appId:e,user:a}={})=>{let{document:{title:r}}=window,i=()=>({rp:{name:e?.name??r,id:Ar({appId:e})}}),n=()=>({user:{id:An(),name:a?.name??a?.displayName??r,displayName:a?.displayName??r}});return{attestation:"direct",challenge:Vn(),...i(),...n(),pubKeyCredParams:Object.values(fn).map(t=>({type:"public-key",alg:t})),excludeCredentials:[],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred",residentKey:"required",requireResidentKey:!0}}},In=(e={})=>({rpId:Ar(e),allowCredentials:[],userVerification:"required"}),Xa=async({fn:e,step:a,onProgress:r})=>{r?.({step:a,state:"in_progress"});try{let i=await e();return r?.({step:a,state:"success"}),i}catch(i){throw r?.({step:a,state:"error"}),i}},xe=(e=>(e[e.RequestingUserCredential=0]="RequestingUserCredential",e[e.FinalizingCredential=1]="FinalizingCredential",e[e.Signing=2]="Signing",e))(xe||{}),wr=({timeout:e})=>AbortSignal.timeout(e??Fn),Pn=async({challenge:e,credentialIds:a,passkeyOptions:r,timeout:i})=>await navigator.credentials.get({publicKey:{...In(r),challenge:e.buffer,allowCredentials:(a??[]).map(n=>({id:n.buffer,type:"public-key"}))},signal:wr({timeout:i})}),Rr=e=>{if(e.status!=="initialized")throw new Nn},hr=e=>{if(ya(e))throw new Tn},fr=({type:e})=>{if(e!=="public-key")throw new On},Za=class ga extends hn{#e;#a;constructor({onProgress:a,...r}){if(super(),this.#e=a,"retrievePublicKey"in r){let{retrievePublicKey:i}=r;this.#a={status:"pending",retrievePublicKey:i};return}this.#a=ga.#r({credential:new un(r)})}static#r({credential:a}){return{status:"initialized",credential:a}}static async createWithNewCredential({passkeyOptions:a,timeout:r,...i}={}){let n=await navigator.credentials.create({publicKey:vn(a),signal:wr({timeout:r})});hr(n),fr(n);let{response:{attestationObject:t},rawId:o}=n;if(ya(t))throw new yn;let{authData:s}=xr.decode(ta(t)),c=cn(s);return new ga({...i,rawId:ta(o),cose:c,authData:s})}static async createWithExistingCredential(a){return new ga(a)}getPublicKey(){Rr(this.#a);let{credential:a}=this.#a;return a.getPublicKey()}getCredential(){Rr(this.#a);let{credential:a}=this.#a;return a}async sign(a){let r=await Xa({fn:async()=>{let i=await Pn({challenge:a,...this.#a.status==="initialized"&&{credentialIds:[this.#a.credential.getCredentialId()]}});return hr(i),fr(i),i},step:0,onProgress:this.#e});return await Xa({fn:async()=>{let{rawId:i}=r;if(this.#a.status==="initialized"){if(!Rn({a:this.#a.credential.getCredentialId(),b:ta(i)}))throw new gn;return}let{retrievePublicKey:n}=this.#a,t=await n({credentialId:ta(i)});this.#a=ga.#r({credential:new _n({rawId:ta(i),cose:t})})},step:1,onProgress:this.#e}),await Xa({fn:async()=>{let{response:i}=r,{clientDataJSON:n}=i,{authenticatorData:t,signature:o}="authenticatorData"in i&&"signature"in i?i:{};if(ya(t))throw new gr;if(ya(o))throw new gr;let s=xr.encode({authenticator_data:t,client_data_json:new TextDecoder().decode(n),signature:ta(o)});if(ya(s))throw new xn;return Object.assign(s,{__signature__:void 0}),s},step:2,onProgress:this.#e})}},bn=async()=>En(window.PublicKeyCredential)&&"isUserVerifyingPlatformAuthenticatorAvailable"in PublicKeyCredential?await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():!1;import{isNullish as qn}from"@dfinity/utils";var oa=class{callbacks=[];populate(a){this.callbacks.forEach(({callback:r})=>r(a))}subscribe(a){let r=Symbol();return this.callbacks.push({id:r,callback:a}),()=>this.callbacks=this.callbacks.filter(({id:i})=>i!==r)}};var x=class e extends oa{static instance;authUser=null;constructor(){super()}static getInstance(){return e.instance||(e.instance=new e),e.instance}set(a){this.authUser=a,this.populate(a)}get(){return this.authUser}subscribe(a){let r=super.subscribe(a);return a(this.authUser),r}reset(){this.authUser=null,this.populate(this.authUser)}};var xa=({message:e,detail:a})=>{let r=new CustomEvent(e,{detail:a,bubbles:!0});document.dispatchEvent(r)};import{isNullish as er}from"@dfinity/utils";import{Actor as Dn}from"@icp-sdk/core/agent";import{isNullish as Qa}from"@dfinity/utils";import{nonNullish as Ir}from"@dfinity/utils";import{HttpAgent as Sn}from"@icp-sdk/core/agent";var sa="http://127.0.0.1:5987",vr="rdmx6-jaaaa-aaaaa-aaadq-cai";var Pr=async({identity:e,container:a})=>{let i=Ir(a)&&a!==!1?a===!0?sa:a:"https://icp-api.io",n=Ir(a);return await Sn.create({identity:e,shouldFetchRootKey:n,host:i})};var ca=class e{static instance;#e=void 0;constructor(){}static getInstance(){return Qa(e.instance)&&(e.instance=new e),e.instance}async getAgent({identity:a,...r}){let i=a.getPrincipal().toText();if(Qa(this.#e)||Qa(this.#e[i])){let n=await Pr({identity:a,...r});return this.#e={...this.#e??{},[i]:n},n}return this.#e[i]}reset(){this.#e=null}};var la=class e{static instance;#e=void 0;constructor(){}static getInstance(){return er(e.instance)&&(e.instance=new e),e.instance}async getActor({satelliteId:a,identity:r,actorKey:i,...n}){let t=`${i}#${r.getPrincipal().toText()}#${a};`;if(er(this.#e)||er(this.#e[t])){let o=await this.createActor({satelliteId:a,identity:r,...n});return this.#e={...this.#e??{},[t]:o},o}return this.#e[t]}reset(){this.#e=null}async createActor({idlFactory:a,satelliteId:r,...i}){let n=await ca.getInstance().getAgent(i);return Dn.createActor(a,{agent:n,canisterId:r})}};import{isNullish as Cn}from"@dfinity/utils";import{AuthClient as kn,IdbStorage as Er,KEY_STORAGE_DELEGATION as Un,KEY_STORAGE_KEY as br}from"@icp-sdk/auth/client";var g=class e{static#e;#a;constructor(){}static getInstance(){return Cn(this.#e)&&(this.#e=new e),this.#e}createAuthClient=async()=>(this.#a=await kn.create({idleOptions:{disableIdle:!0,disableDefaultIdleCallback:!0}}),this.#a);safeCreateAuthClient=async()=>(await new Er().remove(br),await this.createAuthClient());getAuthClient=()=>this.#a;logout=async()=>{await this.#a?.logout(),this.#a=null};setAuthClientStorage=async({delegationChain:a,sessionKey:r})=>{let i=new Er;await Promise.all([i.set(br,r.getKeyPair()),i.set(Un,JSON.stringify(a.toJSON()))])}};var ar=async e=>{await Ln(),await g.getInstance().createAuthClient(),e?.windowReload!==!1&&window.location.reload()},Ln=async()=>{await g.getInstance().logout(),x.getInstance().reset(),la.getInstance().reset(),ca.getInstance().reset()};var Sr=e=>{let a=e===!0?"./workers/auth.worker.js":e,r=new Worker(a),i=async()=>{xa({message:"junoSignOutAuthTimer"}),await ar()};return r.onmessage=async({data:n})=>{let{msg:t,data:o}=n;switch(t){case"junoSignOutAuthTimer":await i();return;case"junoDelegationRemainingTime":xa({message:"junoDelegationRemainingTime",detail:o?.authRemainingTime})}},x.getInstance().subscribe(n=>{if(qn(n)){r.postMessage({msg:"junoStopAuthTimer"});return}r.postMessage({msg:"junoStartAuthTimer"})})};import{isNullish as Bn,nonNullish as Jn,notEmptyString as jn}from"@dfinity/utils";var da=class e{static#e;#a;#r;static CHANNEL_NAME="juno_core_auth_channel";static MESSAGE_LOGIN_SUCCESS="authClientLoginSuccess";constructor(){this.#a=new BroadcastChannel(e.CHANNEL_NAME),this.#r=window.crypto.randomUUID()}static getInstance(){return Bn(this.#e)&&(this.#e=new e),this.#e}onLoginSuccess=a=>{let{location:{origin:r}}=window;this.#a.onmessage=async({origin:i,data:n})=>{i===r&&Jn(n)&&n.msg==="authClientLoginSuccess"&&jn(n.emitterId)&&n.emitterId!==this.#r&&await a()}};destroy=()=>{this.#a.close(),e.#e=null};postLoginSuccess=()=>{let a={emitterId:this.#r,msg:e.MESSAGE_LOGIN_SUCCESS};this.#a.postMessage(a)};get __test__only__emitter_id__(){return this.#r}};var y=class e extends oa{static instance;env;constructor(){super()}static getInstance(){return e.instance||(e.instance=new e),e.instance}set(a){this.env=a,this.populate(a)}get(){return this.env}reset(){this.env=null}subscribe(a){let r=super.subscribe(a);return a(this.env),r}};var Ra=async({fn:e,syncTabsOnSuccess:a})=>{let{authenticated:r}=await Mn({fn:e});!r||!a||y.getInstance().get()?.syncTabs===!1||Kn()},Dr=async({fn:e})=>{let{createAuthClient:a}=g.getInstance(),i=await(await a()).isAuthenticated();await e({authenticated:i})},Mn=async({fn:e})=>{let{createAuthClient:a,safeCreateAuthClient:r}=g.getInstance();return await(await a()).isAuthenticated()?(await e(),{authenticated:!0}):(await r(),{authenticated:!1})},Kn=()=>{try{da.getInstance().postLoginSuccess()}catch(e){console.warn("Auth BroadcastChannel posting failed",e)}};import{isNullish as ut,nonNullish as ii}from"@dfinity/utils";var rr=({error:e,type:a})=>typeof e=="string"?e.includes(a):e instanceof Error?e.message.includes(a):!1;var Cr="juno.datastore.error.user.cannot_update";var Z={certified:!1};import{nonNullish as Hn}from"@dfinity/utils";import{AnonymousIdentity as $n}from"@icp-sdk/core/agent";import{isNullish as Gn}from"@dfinity/utils";var fa=()=>g.getInstance().getAuthClient()?.getIdentity(),Wn=async()=>{let{getAuthClient:e,createAuthClient:a}=g.getInstance();return(e()??await a()).getIdentity()},zn=async()=>{let e=x.getInstance().get();if(Gn(e))return null;let a=g.getInstance().getAuthClient();return await a?.isAuthenticated()??!1?a?.getIdentity()??null:null};var _=e=>Hn(e)?e:fa()??new $n;import{fromNullable as _a,isNullish as dt,nonNullish as pt}from"@dfinity/utils";import{assertNonNullish as ot}from"@dfinity/utils";import{isNullish as Yn}from"@dfinity/utils";import{Actor as Xn}from"@icp-sdk/core/agent";import{nonNullish as et}from"@dfinity/utils";import{HttpAgent as at}from"@icp-sdk/core/agent";var ir=({IDL:e})=>{let a=e.Variant({Heap:e.Null,Stable:e.Null}),r=e.Record({system_memory:e.Opt(a)}),i=e.Record({controllers:e.Vec(e.Principal),storage:e.Opt(r)}),n=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),t=e.Variant({OpenId:n}),o=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)}),s=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),c=e.Record({doc:o,delegation:s}),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}),m=e.Variant({PrepareDelegation:u,RegisterUser:e.Text}),O=e.Variant({Ok:c,Err:m}),v=e.Record({jwt:e.Text,salt:e.Vec(e.Nat8)}),R=e.Variant({OpenId:v}),k=e.Variant({Write:e.Null,Submit:e.Null}),L=e.Record({scope:k,expires_at:e.Nat64}),q=e.Variant({JwtFindProvider:l,InvalidController:e.Text,GetCachedJwks:e.Null,JwtVerify:d,GetOrFetchJwks:p,ControllerAlreadyExists:e.Null,InvalidObservatoryId:e.Text,TooManyControllers:e.Text}),ee=e.Variant({PrepareAutomation:q,RegisterController:e.Text,SaveWorkflowMetadata:e.Text,SaveUniqueJtiToken:e.Text}),ae=e.Variant({Ok:e.Tuple(e.Principal,L),Err:ee}),I=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),re=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),he=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),fe=e.Record({field:he,desc:e.Bool}),ie=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),Fe=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(ie),description:e.Opt(e.Text),created_at:e.Opt(ie)}),Ve=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),T=e.Record({order:e.Opt(fe),owner:e.Opt(e.Principal),matcher:e.Opt(Fe),paginate:e.Opt(Ve)}),ne=e.Record({controllers:e.Vec(e.Principal)}),B=e.Variant({Emulator:e.Null,Automation:e.Null}),P=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),E=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(B),created_at:e.Nat64,scope:P,expires_at:e.Opt(e.Nat64)}),J=e.Record({version:e.Opt(e.Nat64)}),h=e.Variant({Db:e.Null,Storage:e.Null}),te=e.Record({version:e.Opt(e.Nat64)}),j=e.Record({proposal_ids:e.Vec(e.Nat)}),Ae=e.Record({cycles:e.Nat,destination_id:e.Principal}),oe=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}),we=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),M=e.Record({key:oe,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,we)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),ve=e.Variant({GitHub:e.Null,Google:e.Null}),Ie=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),Pe=e.Record({delegation:e.Opt(Ie),client_id:e.Text}),se=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(ve,Pe))}),f=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),K=e.Record({allowed_callers:e.Vec(e.Principal)}),G=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(se),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(f),rules:e.Opt(K)}),Ee=e.Variant({GitHub:e.Null}),be=e.Record({scope:e.Opt(k),max_time_to_live:e.Opt(e.Nat64)}),Se=e.Record({owner:e.Text,name:e.Text}),ce=e.Record({refs:e.Opt(e.Vec(e.Text))}),b=e.Record({controller:e.Opt(be),repositories:e.Vec(e.Tuple(Se,ce))}),W=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(Ee,b))}),z=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(W),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64)}),S=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),F=e.Record({updated_at:e.Opt(e.Nat64),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(S)}),le=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),de=e.Variant({Deny:e.Null,Allow:e.Null}),pe=e.Record({status_code:e.Nat16,location:e.Text}),D=e.Record({iframe:e.Opt(le),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(S),raw_access:e.Opt(de),redirects:e.Opt(e.Vec(e.Tuple(e.Text,pe)))}),ue=e.Record({db:e.Opt(F),authentication:e.Opt(G),storage:D,automation:e.Opt(z)}),De=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Ce=e.Variant({OpenId:De}),_e=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),ke=e.Record({signature:e.Vec(e.Nat8),delegation:_e}),Ue=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:d,GetOrFetchJwks:p,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),Le=e.Variant({Ok:ke,Err:Ue}),qe=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),Be=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Je=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),me=e.Variant({AssetsUpgrade:Be,SegmentsDeployment:Je}),V=e.Record({status:qe,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:me}),A=e.Variant({Controllers:e.Null,Private:e.Null,Public:e.Null,Managed:e.Null}),Ne=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),H=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(a),updated_at:e.Nat64,max_size:e.Opt(e.Nat),read:A,created_at:e.Nat64,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(Ne),write:A,max_changes_per_user:e.Opt(e.Nat32)}),Te=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)}),$=e.Record({memory:a,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}),je=e.Variant({Callback:e.Record({token:$,callback:e.Func([],[],["query"])})}),Me=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(je),status_code:e.Nat16}),Ke=e.Record({token:e.Opt($),body:e.Vec(e.Nat8)}),Y=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}),X=e.Record({batch_id:e.Nat}),Ge=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,M)),items_length:e.Nat64}),We=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),ze=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,o)),items_length:e.Nat64}),w=e.Record({desc:e.Bool}),He=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),$e=e.Record({order:e.Opt(w),paginate:e.Opt(He)}),C=e.Record({proposal_id:e.Nat}),Ye=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(C,V)),items_length:e.Nat64}),Xe=e.Record({include_system:e.Bool}),Ze=e.Record({matcher:e.Opt(Xe)}),Qe=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,H)),items_length:e.Nat64}),Oe=e.Record({stable:e.Nat64,heap:e.Nat64}),ea=e.Record({openid:e.Opt(se),version:e.Opt(e.Nat64),internet_identity:e.Opt(f),rules:e.Opt(K)}),aa=e.Record({openid:e.Opt(W),version:e.Opt(e.Nat64)}),ye=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(B),scope:P,expires_at:e.Opt(e.Nat64)}),ra=e.Record({controller:ye,controllers:e.Vec(e.Principal)}),ia=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt(S)}),Na=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),$a=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(a),max_size:e.Opt(e.Nat),read:A,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(Ne),write:A,max_changes_per_user:e.Opt(e.Nat32)}),Ya=e.Record({iframe:e.Opt(le),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(S),raw_access:e.Opt(de),redirects:e.Opt(e.Vec(e.Tuple(e.Text,pe)))}),Ta=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Oa=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([t],[O],[]),authenticate_automation:e.Func([R],[ae],[]),commit_asset_upload:e.Func([I],[],[]),commit_proposal:e.Func([re],[e.Null],[]),commit_proposal_asset_upload:e.Func([I],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(I)],[],[]),count_assets:e.Func([e.Text,T],[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,T],[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([ne],[e.Vec(e.Tuple(e.Principal,E))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,J],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,T],[],[]),del_filtered_docs:e.Func([e.Text,T],[],[]),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,J))],[],[]),del_rule:e.Func([h,e.Text,te],[],[]),delete_proposal_assets:e.Func([j],[],[]),deposit_cycles:e.Func([Ae],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(M)],["query"]),get_auth_config:e.Func([],[e.Opt(G)],["query"]),get_automation_config:e.Func([],[e.Opt(z)],["query"]),get_config:e.Func([],[ue],[]),get_db_config:e.Func([],[e.Opt(F)],["query"]),get_delegation:e.Func([Ce],[Le],["query"]),get_doc:e.Func([e.Text,e.Text],[e.Opt(o)],["query"]),get_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(M)))],["query"]),get_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(o)))],["query"]),get_proposal:e.Func([e.Nat],[e.Opt(V)],["query"]),get_rule:e.Func([h,e.Text],[e.Opt(H)],["query"]),get_storage_config:e.Func([],[D],["query"]),http_request:e.Func([Te],[Me],["query"]),http_request_streaming_callback:e.Func([$],[Ke],["query"]),init_asset_upload:e.Func([Y],[X],[]),init_proposal:e.Func([me],[e.Nat,V],[]),init_proposal_asset_upload:e.Func([Y,e.Nat],[X],[]),init_proposal_many_assets_upload:e.Func([e.Vec(Y),e.Nat],[e.Vec(e.Tuple(e.Text,X))],[]),list_assets:e.Func([e.Text,T],[Ge],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,E))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,We))],["query"]),list_docs:e.Func([e.Text,T],[ze],["query"]),list_proposals:e.Func([$e],[Ye],["query"]),list_rules:e.Func([h,Ze],[Qe],["query"]),memory_size:e.Func([],[Oe],["query"]),reject_proposal:e.Func([re],[e.Null],[]),set_asset_token:e.Func([e.Text,e.Text,e.Opt(e.Text)],[],[]),set_auth_config:e.Func([ea],[G],[]),set_automation_config:e.Func([aa],[z],[]),set_controllers:e.Func([ra],[e.Vec(e.Tuple(e.Principal,E))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([ia],[F],[]),set_doc:e.Func([e.Text,e.Text,Na],[o],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,Na))],[e.Vec(e.Tuple(e.Text,o))],[]),set_rule:e.Func([h,e.Text,$a],[H],[]),set_storage_config:e.Func([Ya],[D],[]),submit_proposal:e.Func([e.Nat],[e.Nat,V],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([Ta],[Oa],[]),upload_proposal_asset_chunk:e.Func([Ta],[Oa],[])})},nr=({IDL:e})=>{let a=e.Variant({Heap:e.Null,Stable:e.Null}),r=e.Record({system_memory:e.Opt(a)}),i=e.Record({controllers:e.Vec(e.Principal),storage:e.Opt(r)}),n=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),t=e.Variant({OpenId:n}),o=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)}),s=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),c=e.Record({doc:o,delegation:s}),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}),m=e.Variant({PrepareDelegation:u,RegisterUser:e.Text}),O=e.Variant({Ok:c,Err:m}),v=e.Record({jwt:e.Text,salt:e.Vec(e.Nat8)}),R=e.Variant({OpenId:v}),k=e.Variant({Write:e.Null,Submit:e.Null}),L=e.Record({scope:k,expires_at:e.Nat64}),q=e.Variant({JwtFindProvider:l,InvalidController:e.Text,GetCachedJwks:e.Null,JwtVerify:d,GetOrFetchJwks:p,ControllerAlreadyExists:e.Null,InvalidObservatoryId:e.Text,TooManyControllers:e.Text}),ee=e.Variant({PrepareAutomation:q,RegisterController:e.Text,SaveWorkflowMetadata:e.Text,SaveUniqueJtiToken:e.Text}),ae=e.Variant({Ok:e.Tuple(e.Principal,L),Err:ee}),I=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),re=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),he=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),fe=e.Record({field:he,desc:e.Bool}),ie=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),Fe=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(ie),description:e.Opt(e.Text),created_at:e.Opt(ie)}),Ve=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),T=e.Record({order:e.Opt(fe),owner:e.Opt(e.Principal),matcher:e.Opt(Fe),paginate:e.Opt(Ve)}),ne=e.Record({controllers:e.Vec(e.Principal)}),B=e.Variant({Emulator:e.Null,Automation:e.Null}),P=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),E=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(B),created_at:e.Nat64,scope:P,expires_at:e.Opt(e.Nat64)}),J=e.Record({version:e.Opt(e.Nat64)}),h=e.Variant({Db:e.Null,Storage:e.Null}),te=e.Record({version:e.Opt(e.Nat64)}),j=e.Record({proposal_ids:e.Vec(e.Nat)}),Ae=e.Record({cycles:e.Nat,destination_id:e.Principal}),oe=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}),we=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),M=e.Record({key:oe,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,we)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),ve=e.Variant({GitHub:e.Null,Google:e.Null}),Ie=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),Pe=e.Record({delegation:e.Opt(Ie),client_id:e.Text}),se=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(ve,Pe))}),f=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),K=e.Record({allowed_callers:e.Vec(e.Principal)}),G=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(se),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(f),rules:e.Opt(K)}),Ee=e.Variant({GitHub:e.Null}),be=e.Record({scope:e.Opt(k),max_time_to_live:e.Opt(e.Nat64)}),Se=e.Record({owner:e.Text,name:e.Text}),ce=e.Record({refs:e.Opt(e.Vec(e.Text))}),b=e.Record({controller:e.Opt(be),repositories:e.Vec(e.Tuple(Se,ce))}),W=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(Ee,b))}),z=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(W),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64)}),S=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),F=e.Record({updated_at:e.Opt(e.Nat64),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(S)}),le=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),de=e.Variant({Deny:e.Null,Allow:e.Null}),pe=e.Record({status_code:e.Nat16,location:e.Text}),D=e.Record({iframe:e.Opt(le),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(S),raw_access:e.Opt(de),redirects:e.Opt(e.Vec(e.Tuple(e.Text,pe)))}),ue=e.Record({db:e.Opt(F),authentication:e.Opt(G),storage:D,automation:e.Opt(z)}),De=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Ce=e.Variant({OpenId:De}),_e=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),ke=e.Record({signature:e.Vec(e.Nat8),delegation:_e}),Ue=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:d,GetOrFetchJwks:p,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),Le=e.Variant({Ok:ke,Err:Ue}),qe=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),Be=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Je=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),me=e.Variant({AssetsUpgrade:Be,SegmentsDeployment:Je}),V=e.Record({status:qe,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:me}),A=e.Variant({Controllers:e.Null,Private:e.Null,Public:e.Null,Managed:e.Null}),Ne=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),H=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(a),updated_at:e.Nat64,max_size:e.Opt(e.Nat),read:A,created_at:e.Nat64,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(Ne),write:A,max_changes_per_user:e.Opt(e.Nat32)}),Te=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)}),$=e.Record({memory:a,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}),je=e.Variant({Callback:e.Record({token:$,callback:e.Func([],[],[])})}),Me=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(je),status_code:e.Nat16}),Ke=e.Record({token:e.Opt($),body:e.Vec(e.Nat8)}),Y=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}),X=e.Record({batch_id:e.Nat}),Ge=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,M)),items_length:e.Nat64}),We=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),ze=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,o)),items_length:e.Nat64}),w=e.Record({desc:e.Bool}),He=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),$e=e.Record({order:e.Opt(w),paginate:e.Opt(He)}),C=e.Record({proposal_id:e.Nat}),Ye=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(C,V)),items_length:e.Nat64}),Xe=e.Record({include_system:e.Bool}),Ze=e.Record({matcher:e.Opt(Xe)}),Qe=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,H)),items_length:e.Nat64}),Oe=e.Record({stable:e.Nat64,heap:e.Nat64}),ea=e.Record({openid:e.Opt(se),version:e.Opt(e.Nat64),internet_identity:e.Opt(f),rules:e.Opt(K)}),aa=e.Record({openid:e.Opt(W),version:e.Opt(e.Nat64)}),ye=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(B),scope:P,expires_at:e.Opt(e.Nat64)}),ra=e.Record({controller:ye,controllers:e.Vec(e.Principal)}),ia=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt(S)}),Na=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),$a=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(a),max_size:e.Opt(e.Nat),read:A,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(Ne),write:A,max_changes_per_user:e.Opt(e.Nat32)}),Ya=e.Record({iframe:e.Opt(le),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(S),raw_access:e.Opt(de),redirects:e.Opt(e.Vec(e.Tuple(e.Text,pe)))}),Ta=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Oa=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([t],[O],[]),authenticate_automation:e.Func([R],[ae],[]),commit_asset_upload:e.Func([I],[],[]),commit_proposal:e.Func([re],[e.Null],[]),commit_proposal_asset_upload:e.Func([I],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(I)],[],[]),count_assets:e.Func([e.Text,T],[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,T],[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([ne],[e.Vec(e.Tuple(e.Principal,E))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,J],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,T],[],[]),del_filtered_docs:e.Func([e.Text,T],[],[]),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,J))],[],[]),del_rule:e.Func([h,e.Text,te],[],[]),delete_proposal_assets:e.Func([j],[],[]),deposit_cycles:e.Func([Ae],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(M)],[]),get_auth_config:e.Func([],[e.Opt(G)],[]),get_automation_config:e.Func([],[e.Opt(z)],[]),get_config:e.Func([],[ue],[]),get_db_config:e.Func([],[e.Opt(F)],[]),get_delegation:e.Func([Ce],[Le],[]),get_doc:e.Func([e.Text,e.Text],[e.Opt(o)],[]),get_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(M)))],[]),get_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(o)))],[]),get_proposal:e.Func([e.Nat],[e.Opt(V)],[]),get_rule:e.Func([h,e.Text],[e.Opt(H)],[]),get_storage_config:e.Func([],[D],[]),http_request:e.Func([Te],[Me],[]),http_request_streaming_callback:e.Func([$],[Ke],[]),init_asset_upload:e.Func([Y],[X],[]),init_proposal:e.Func([me],[e.Nat,V],[]),init_proposal_asset_upload:e.Func([Y,e.Nat],[X],[]),init_proposal_many_assets_upload:e.Func([e.Vec(Y),e.Nat],[e.Vec(e.Tuple(e.Text,X))],[]),list_assets:e.Func([e.Text,T],[Ge],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,E))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,We))],[]),list_docs:e.Func([e.Text,T],[ze],[]),list_proposals:e.Func([$e],[Ye],[]),list_rules:e.Func([h,Ze],[Qe],[]),memory_size:e.Func([],[Oe],[]),reject_proposal:e.Func([re],[e.Null],[]),set_asset_token:e.Func([e.Text,e.Text,e.Opt(e.Text)],[],[]),set_auth_config:e.Func([ea],[G],[]),set_automation_config:e.Func([aa],[z],[]),set_controllers:e.Func([ra],[e.Vec(e.Tuple(e.Principal,E))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([ia],[F],[]),set_doc:e.Func([e.Text,e.Text,Na],[o],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,Na))],[e.Vec(e.Tuple(e.Text,o))],[]),set_rule:e.Func([h,e.Text,$a],[H],[]),set_storage_config:e.Func([Ya],[D],[]),submit_proposal:e.Func([e.Nat],[e.Nat,V],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([Ta],[Oa],[]),upload_proposal_asset_chunk:e.Func([Ta],[Oa],[])})},Zn=({IDL:e})=>{let a=e.Record({e8s:e.Nat64}),r=e.Record({mission_control_id:e.Principal,user:e.Principal}),i=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),n=e.Variant({OpenId:i}),t=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),o=e.Variant({GitHub:e.Null,Google:e.Null}),s=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:o,data:s}),l=e.Variant({InternetIdentity:e.Null,OpenId:c}),d=e.Record({updated_at:e.Nat64,credits:a,mission_control_id:e.Opt(e.Principal),provider:e.Opt(l),owner:e.Principal,created_at:e.Nat64}),p=e.Record({delegation:t,account:d}),u=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),m=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),O=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}),v=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,JwtVerify:m,GetOrFetchJwks:O,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),R=e.Variant({PrepareDelegation:v,RegisterUser:e.Text}),k=e.Variant({Ok:p,Err:R}),L=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),q=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),ee=e.Record({subnet_id:e.Opt(e.Principal)}),ae=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),name:e.Opt(e.Text),user:e.Principal}),I=e.Variant({Heap:e.Null,Stable:e.Null}),re=e.Record({system_memory:e.Opt(I)}),he=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),storage:e.Opt(re),name:e.Opt(e.Text),user:e.Principal}),fe=e.Record({controllers:e.Vec(e.Principal)}),ie=e.Record({proposal_ids:e.Vec(e.Nat)}),Fe=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),Ve=e.Record({delegation:e.Opt(Fe),client_id:e.Text}),T=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(o,Ve))}),ne=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),B=e.Record({allowed_callers:e.Vec(e.Principal)}),P=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(T),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(ne),rules:e.Opt(B)}),E=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),J=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),h=e.Variant({Deny:e.Null,Allow:e.Null}),te=e.Record({status_code:e.Nat16,location:e.Text}),j=e.Record({iframe:e.Opt(E),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(J),raw_access:e.Opt(h),redirects:e.Opt(e.Vec(e.Tuple(e.Text,te)))}),Ae=e.Record({authentication:e.Opt(P),storage:j}),oe=e.Record({user:e.Principal}),we=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),M=e.Variant({OpenId:we}),ve=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),Ie=e.Record({signature:e.Vec(e.Nat8),delegation:ve}),Pe=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:m,GetOrFetchJwks:O,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),se=e.Variant({Ok:Ie,Err:Pe}),f=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),K=e.Record({e12s:e.Nat64}),G=e.Record({updated_at:e.Nat64,fee_cycles:K,fee_icp:e.Opt(a)}),Ee=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),be=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Se=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),ce=e.Variant({AssetsUpgrade:be,SegmentsDeployment:Se}),b=e.Record({status:Ee,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:ce}),W=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),z=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)}),S=e.Variant({Heap:e.Null,Stable:e.Null}),F=e.Record({memory:S,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}),le=e.Variant({Callback:e.Record({token:F,callback:e.Func([],[],["query"])})}),de=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(le),status_code:e.Nat16}),pe=e.Record({token:e.Opt(F),body:e.Vec(e.Nat8)}),D=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}),ue=e.Record({batch_id:e.Nat}),De=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),Ce=e.Record({field:De,desc:e.Bool}),_e=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),ke=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(_e),description:e.Opt(e.Text),created_at:e.Opt(_e)}),Ue=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),Le=e.Record({order:e.Opt(Ce),owner:e.Opt(e.Principal),matcher:e.Opt(ke),paginate:e.Opt(Ue)}),qe=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}),Be=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),Je=e.Record({key:qe,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,Be)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),me=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,Je)),items_length:e.Nat64}),V=e.Variant({Emulator:e.Null,Automation:e.Null}),A=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),Ne=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(V),created_at:e.Nat64,scope:A,expires_at:e.Opt(e.Nat64)}),H=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),Te=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),$=e.Record({status:Te,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)}),je=e.Record({block_index:e.Nat64,ledger_id:e.Principal}),Me=e.Record({owner:e.Principal,subaccount:e.Opt(e.Vec(e.Nat8))}),Ke=e.Record({status:Te,updated_at:e.Nat64,created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64),purchaser:Me}),Y=e.Record({desc:e.Bool}),X=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Ge=e.Record({order:e.Opt(Y),paginate:e.Opt(X)}),We=e.Record({proposal_id:e.Nat}),ze=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(We,b)),items_length:e.Nat64}),w=e.Variant({Orbiter:e.Null,Satellite:e.Null}),He=e.Record({segment_id:e.Opt(e.Principal),segment_kind:e.Opt(w)}),$e=e.Record({user:e.Principal,segment_id:e.Principal,segment_kind:w}),C=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,created_at:e.Nat64}),Ye=e.Record({openid:e.Opt(T),version:e.Opt(e.Nat64),internet_identity:e.Opt(ne),rules:e.Opt(B)}),Xe=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(V),scope:A,expires_at:e.Opt(e.Nat64)}),Ze=e.Record({controller:Xe,controllers:e.Vec(e.Principal)}),Qe=e.Record({fee_cycles:K,fee_icp:e.Opt(a)}),Oe=e.Record({metadata:e.Opt(e.Vec(e.Tuple(e.Text,e.Text))),segment_id:e.Principal,segment_kind:w}),ea=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:w}),aa=e.Record({iframe:e.Opt(E),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(J),raw_access:e.Opt(h),redirects:e.Opt(e.Vec(e.Tuple(e.Text,te)))}),ye=e.Record({segment_id:e.Principal,segment_kind:w}),ra=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),ia=e.Record({chunk_id:e.Nat});return e.Service({add_credits:e.Func([e.Principal,a],[],[]),add_invitation_code:e.Func([e.Text],[],[]),assert_mission_control_center:e.Func([r],[],["query"]),authenticate:e.Func([n],[k],[]),commit_proposal:e.Func([L],[e.Null],[]),commit_proposal_asset_upload:e.Func([q],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(q)],[],[]),count_proposals:e.Func([],[e.Nat64],["query"]),create_mission_control:e.Func([ee],[e.Principal],[]),create_orbiter:e.Func([ae],[e.Principal],[]),create_satellite:e.Func([he],[e.Principal],[]),del_controllers:e.Func([fe],[],[]),del_custom_domain:e.Func([e.Text],[],[]),delete_proposal_assets:e.Func([ie],[],[]),get_account:e.Func([],[e.Opt(d)],["query"]),get_auth_config:e.Func([],[e.Opt(P)],["query"]),get_config:e.Func([],[Ae],["query"]),get_create_orbiter_fee:e.Func([oe],[e.Opt(a)],["query"]),get_create_satellite_fee:e.Func([oe],[e.Opt(a)],["query"]),get_credits:e.Func([],[a],["query"]),get_delegation:e.Func([M],[se],["query"]),get_fee:e.Func([f],[G],["query"]),get_or_init_account:e.Func([],[d],[]),get_proposal:e.Func([e.Nat],[e.Opt(b)],["query"]),get_rate_config:e.Func([f],[W],["query"]),get_storage_config:e.Func([],[j],["query"]),http_request:e.Func([z],[de],["query"]),http_request_streaming_callback:e.Func([F],[pe],["query"]),init_proposal:e.Func([ce],[e.Nat,b],[]),init_proposal_asset_upload:e.Func([D,e.Nat],[ue],[]),init_proposal_many_assets_upload:e.Func([e.Vec(D),e.Nat],[e.Vec(e.Tuple(e.Text,ue))],[]),list_accounts:e.Func([],[e.Vec(e.Tuple(e.Principal,d))],["query"]),list_assets:e.Func([e.Text,Le],[me],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,Ne))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,H))],["query"]),list_icp_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,$))],["query"]),list_icrc_payments:e.Func([],[e.Vec(e.Tuple(je,Ke))],["query"]),list_proposals:e.Func([Ge],[ze],["query"]),list_segments:e.Func([He],[e.Vec(e.Tuple($e,C))],["query"]),reject_proposal:e.Func([L],[e.Null],[]),set_auth_config:e.Func([Ye],[P],[]),set_controllers:e.Func([Ze],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([f,Qe],[],[]),set_many_segments:e.Func([e.Vec(Oe)],[e.Vec(C)],[]),set_rate_config:e.Func([f,W],[],[]),set_segment:e.Func([Oe],[C],[]),set_segment_metadata:e.Func([ea],[C],[]),set_storage_config:e.Func([aa],[j],[]),submit_proposal:e.Func([e.Nat],[e.Nat,b],[]),unset_many_segments:e.Func([e.Vec(ye)],[],[]),unset_segment:e.Func([ye],[],[]),upload_proposal_asset_chunk:e.Func([ra],[ia],[])})},Qn=({IDL:e})=>{let a=e.Record({e8s:e.Nat64}),r=e.Record({mission_control_id:e.Principal,user:e.Principal}),i=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),n=e.Variant({OpenId:i}),t=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),o=e.Variant({GitHub:e.Null,Google:e.Null}),s=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:o,data:s}),l=e.Variant({InternetIdentity:e.Null,OpenId:c}),d=e.Record({updated_at:e.Nat64,credits:a,mission_control_id:e.Opt(e.Principal),provider:e.Opt(l),owner:e.Principal,created_at:e.Nat64}),p=e.Record({delegation:t,account:d}),u=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),m=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),O=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}),v=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,JwtVerify:m,GetOrFetchJwks:O,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),R=e.Variant({PrepareDelegation:v,RegisterUser:e.Text}),k=e.Variant({Ok:p,Err:R}),L=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),q=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),ee=e.Record({subnet_id:e.Opt(e.Principal)}),ae=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),name:e.Opt(e.Text),user:e.Principal}),I=e.Variant({Heap:e.Null,Stable:e.Null}),re=e.Record({system_memory:e.Opt(I)}),he=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),storage:e.Opt(re),name:e.Opt(e.Text),user:e.Principal}),fe=e.Record({controllers:e.Vec(e.Principal)}),ie=e.Record({proposal_ids:e.Vec(e.Nat)}),Fe=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),Ve=e.Record({delegation:e.Opt(Fe),client_id:e.Text}),T=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(o,Ve))}),ne=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),B=e.Record({allowed_callers:e.Vec(e.Principal)}),P=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(T),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(ne),rules:e.Opt(B)}),E=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),J=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),h=e.Variant({Deny:e.Null,Allow:e.Null}),te=e.Record({status_code:e.Nat16,location:e.Text}),j=e.Record({iframe:e.Opt(E),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(J),raw_access:e.Opt(h),redirects:e.Opt(e.Vec(e.Tuple(e.Text,te)))}),Ae=e.Record({authentication:e.Opt(P),storage:j}),oe=e.Record({user:e.Principal}),we=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),M=e.Variant({OpenId:we}),ve=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),Ie=e.Record({signature:e.Vec(e.Nat8),delegation:ve}),Pe=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:m,GetOrFetchJwks:O,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),se=e.Variant({Ok:Ie,Err:Pe}),f=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),K=e.Record({e12s:e.Nat64}),G=e.Record({updated_at:e.Nat64,fee_cycles:K,fee_icp:e.Opt(a)}),Ee=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),be=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Se=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),ce=e.Variant({AssetsUpgrade:be,SegmentsDeployment:Se}),b=e.Record({status:Ee,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:ce}),W=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),z=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)}),S=e.Variant({Heap:e.Null,Stable:e.Null}),F=e.Record({memory:S,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}),le=e.Variant({Callback:e.Record({token:F,callback:e.Func([],[],[])})}),de=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(le),status_code:e.Nat16}),pe=e.Record({token:e.Opt(F),body:e.Vec(e.Nat8)}),D=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}),ue=e.Record({batch_id:e.Nat}),De=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),Ce=e.Record({field:De,desc:e.Bool}),_e=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),ke=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(_e),description:e.Opt(e.Text),created_at:e.Opt(_e)}),Ue=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),Le=e.Record({order:e.Opt(Ce),owner:e.Opt(e.Principal),matcher:e.Opt(ke),paginate:e.Opt(Ue)}),qe=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}),Be=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),Je=e.Record({key:qe,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,Be)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),me=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,Je)),items_length:e.Nat64}),V=e.Variant({Emulator:e.Null,Automation:e.Null}),A=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),Ne=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(V),created_at:e.Nat64,scope:A,expires_at:e.Opt(e.Nat64)}),H=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),Te=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),$=e.Record({status:Te,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)}),je=e.Record({block_index:e.Nat64,ledger_id:e.Principal}),Me=e.Record({owner:e.Principal,subaccount:e.Opt(e.Vec(e.Nat8))}),Ke=e.Record({status:Te,updated_at:e.Nat64,created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64),purchaser:Me}),Y=e.Record({desc:e.Bool}),X=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Ge=e.Record({order:e.Opt(Y),paginate:e.Opt(X)}),We=e.Record({proposal_id:e.Nat}),ze=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(We,b)),items_length:e.Nat64}),w=e.Variant({Orbiter:e.Null,Satellite:e.Null}),He=e.Record({segment_id:e.Opt(e.Principal),segment_kind:e.Opt(w)}),$e=e.Record({user:e.Principal,segment_id:e.Principal,segment_kind:w}),C=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,created_at:e.Nat64}),Ye=e.Record({openid:e.Opt(T),version:e.Opt(e.Nat64),internet_identity:e.Opt(ne),rules:e.Opt(B)}),Xe=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(V),scope:A,expires_at:e.Opt(e.Nat64)}),Ze=e.Record({controller:Xe,controllers:e.Vec(e.Principal)}),Qe=e.Record({fee_cycles:K,fee_icp:e.Opt(a)}),Oe=e.Record({metadata:e.Opt(e.Vec(e.Tuple(e.Text,e.Text))),segment_id:e.Principal,segment_kind:w}),ea=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:w}),aa=e.Record({iframe:e.Opt(E),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(J),raw_access:e.Opt(h),redirects:e.Opt(e.Vec(e.Tuple(e.Text,te)))}),ye=e.Record({segment_id:e.Principal,segment_kind:w}),ra=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),ia=e.Record({chunk_id:e.Nat});return e.Service({add_credits:e.Func([e.Principal,a],[],[]),add_invitation_code:e.Func([e.Text],[],[]),assert_mission_control_center:e.Func([r],[],[]),authenticate:e.Func([n],[k],[]),commit_proposal:e.Func([L],[e.Null],[]),commit_proposal_asset_upload:e.Func([q],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(q)],[],[]),count_proposals:e.Func([],[e.Nat64],[]),create_mission_control:e.Func([ee],[e.Principal],[]),create_orbiter:e.Func([ae],[e.Principal],[]),create_satellite:e.Func([he],[e.Principal],[]),del_controllers:e.Func([fe],[],[]),del_custom_domain:e.Func([e.Text],[],[]),delete_proposal_assets:e.Func([ie],[],[]),get_account:e.Func([],[e.Opt(d)],[]),get_auth_config:e.Func([],[e.Opt(P)],[]),get_config:e.Func([],[Ae],[]),get_create_orbiter_fee:e.Func([oe],[e.Opt(a)],[]),get_create_satellite_fee:e.Func([oe],[e.Opt(a)],[]),get_credits:e.Func([],[a],[]),get_delegation:e.Func([M],[se],[]),get_fee:e.Func([f],[G],[]),get_or_init_account:e.Func([],[d],[]),get_proposal:e.Func([e.Nat],[e.Opt(b)],[]),get_rate_config:e.Func([f],[W],[]),get_storage_config:e.Func([],[j],[]),http_request:e.Func([z],[de],[]),http_request_streaming_callback:e.Func([F],[pe],[]),init_proposal:e.Func([ce],[e.Nat,b],[]),init_proposal_asset_upload:e.Func([D,e.Nat],[ue],[]),init_proposal_many_assets_upload:e.Func([e.Vec(D),e.Nat],[e.Vec(e.Tuple(e.Text,ue))],[]),list_accounts:e.Func([],[e.Vec(e.Tuple(e.Principal,d))],[]),list_assets:e.Func([e.Text,Le],[me],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,Ne))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,H))],[]),list_icp_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,$))],[]),list_icrc_payments:e.Func([],[e.Vec(e.Tuple(je,Ke))],[]),list_proposals:e.Func([Ge],[ze],[]),list_segments:e.Func([He],[e.Vec(e.Tuple($e,C))],[]),reject_proposal:e.Func([L],[e.Null],[]),set_auth_config:e.Func([Ye],[P],[]),set_controllers:e.Func([Ze],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([f,Qe],[],[]),set_many_segments:e.Func([e.Vec(Oe)],[e.Vec(C)],[]),set_rate_config:e.Func([f,W],[],[]),set_segment:e.Func([Oe],[C],[]),set_segment_metadata:e.Func([ea],[C],[]),set_storage_config:e.Func([aa],[j],[]),submit_proposal:e.Func([e.Nat],[e.Nat,b],[]),unset_many_segments:e.Func([e.Vec(ye)],[],[]),unset_segment:e.Func([ye],[],[]),upload_proposal_asset_chunk:e.Func([ra],[ia],[])})};var rt=async({identity:e,host:a,localActor:r})=>await at.create({identity:e,host:a,retryTimes:10,shouldFetchRootKey:r}),it=async({agent:e,...a})=>e??await nt(a),nt=async({identity:e,container:a})=>{let r=et(a)&&a!==!1;return await rt({identity:e,host:r?a===!0?"http://127.0.0.1:5987":a:"https://icp-api.io",localActor:r})};var kr=({satelliteId:e,certified:a=!1,...r})=>Lr({canisterId:e,...r,idlFactory:a?nr:ir});var Ur=({consoleId:e,certified:a=!1,...r})=>Lr({canisterId:e,...r,idlFactory:a?Qn:Zn}),Lr=({canisterId:e,idlFactory:a,...r})=>{if(Yn(e))throw new Error("No canister ID provided.");return tt({canisterId:e,idlFactory:a,...r})},tt=async({canisterId:e,idlFactory:a,config:r,...i})=>{let n=await it(i);return Xn.createActor(a,{agent:n,canisterId:e,...r??{}})};import{nonNullish as tr}from"@dfinity/utils";var qr=({satelliteId:e,container:a})=>{let{satelliteId:r}=or({satelliteId:e}),{container:i}=sr({container:a});if(tr(i)&&i!==!1){let{host:n,protocol:t}=new URL(i===!0?sa:i);return`${t}//${r??"unknown"}.${n.replace("127.0.0.1","localhost")}`}return`https://${r??"unknown"}.icp0.io`},or=({satelliteId:e})=>tr(e)?{satelliteId:e}:y.getInstance().get()??{satelliteId:void 0},sr=({container:e})=>tr(e)?{container:e}:y.getInstance().get()??{container:void 0};var N=({satellite:e,options:{certified:a}})=>Jr({idlFactory:a?nr:ir,actorKey:`stock#${a?"update":"query"}`,...e}),Br=({idlFactory:e,...a})=>Jr({idlFactory:e,actorKey:"extended#query",...a}),Jr=async({satelliteId:e,container:a,...r})=>{let{satelliteId:i}=or({satelliteId:e});ot(i,"No satellite ID defined. Did you initialize Juno?");let{container:n}=sr({container:a});return await la.getInstance().getActor({satelliteId:i,container:n,...r})};import{isNullish as ua,toNullable as U}from"@dfinity/utils";import{Principal as st}from"@icp-sdk/core/principal";var Fa=class extends Error{},ge=class extends Error{},Va=class extends Error{},Aa=class extends Error{},pa=class extends Error{},wa=class extends Error{},va=class extends Error{},Ia=class extends Error{},Pa=class extends Error{};var jr=e=>{if(ua(e))return U();switch(e.matcher){case"equal":return U({Equal:e.timestamp});case"greaterThan":return U({GreaterThan:e.timestamp});case"lessThan":return U({LessThan:e.timestamp});case"between":return U({Between:[e.timestamps.start,e.timestamps.end]});default:throw new Pa("Invalid list matcher for timestamp",e)}},Re=({matcher:e,paginate:a,order:r,owner:i})=>({matcher:ua(e)?[]:[{key:U(e.key),description:U(e.description),created_at:jr(e.createdAt),updated_at:jr(e.updatedAt)}],paginate:U(ua(a)?void 0:{start_after:U(a.startAfter),limit:U(ua(a.limit)?void 0:BigInt(a.limit))}),order:U(ua(r)?void 0:{desc:r.desc,field:r.field==="created_at"?{CreatedAt:null}:r.field==="updated_at"?{UpdatedAt:null}:{Keys:null}}),owner:U(ua(i)?void 0:typeof i=="string"?st.fromText(i):i)});import{jsonReplacer as ct,jsonReviver as lt}from"@dfinity/utils";var Mr=async e=>{let a=new Blob([JSON.stringify(e,ct)],{type:"application/json; charset=utf-8"});return new Uint8Array(await a.arrayBuffer())},Ea=async e=>{let a=new Blob([e instanceof Uint8Array?e:new Uint8Array(e)],{type:"application/json; charset=utf-8"});return JSON.parse(await a.text(),lt)},ba=()=>typeof window<"u";var Kr=async({data:e})=>{try{return await Ea(e)}catch(a){console.error("The data parsing has failed, mapping to undefined as a fallback.",a);return}};import{fromNullable as Gr,toNullable as cr}from"@dfinity/utils";var lr=async e=>{let{data:a,version:r,description:i}=e;return{description:cr(i),data:await Mr(a),version:cr(r)}},dr=e=>{let{version:a}=e;return{version:cr(a)}},na=async({doc:e,key:a})=>{let{owner:r,version:i,description:n,data:t,...o}=e;return{key:a,description:Gr(n),owner:r.toText(),data:await Ea(t),version:Gr(i),...o}};var Wr=async({collection:e,key:a,...r})=>{let{get_doc:i}=await N(r),n=_a(await i(e,a));if(!dt(n))return na({doc:n,key:a})},zr=async({docs:e,...a})=>{let{get_many_docs:r}=await N(a),i=e.map(({collection:o,key:s})=>[o,s]),n=await r(i),t=[];for(let[o,s]of n){let c=_a(s);t.push(pt(c)?await na({key:o,doc:c}):void 0)}return t},Hr=async({collection:e,doc:a,...r})=>{let{set_doc:i}=await N(r),{key:n}=a,t=await lr(a),o=await i(e,n,t);return await na({key:n,doc:o})},$r=async({docs:e,...a})=>{let{set_many_docs:r}=await N(a),i=[];for(let{collection:o,doc:s}of e){let{key:c}=s;i.push([o,c,await lr(s)])}let n=await r(i),t=[];for(let[o,s]of n)t.push(await na({key:o,doc:s}));return t},Yr=async({collection:e,doc:a,...r})=>{let{del_doc:i}=await N(r),{key:n}=a;return i(e,n,dr(a))},Xr=async({docs:e,...a})=>{let{del_many_docs:r}=await N(a),i=e.map(({collection:n,doc:t})=>[n,t.key,dr(t)]);await r(i)},Zr=async({collection:e,filter:a,...r})=>{let{del_filtered_docs:i}=await N(r);return i(e,Re(a))},Qr=async({collection:e,filter:a,...r})=>{let{list_docs:i}=await N(r),{items:n,items_page:t,items_length:o,matches_length:s,matches_pages:c}=await i(e,Re(a)),l=[];for(let[d,p]of n){let{data:u,owner:m,description:O,version:v,...R}=p;l.push({key:d,description:_a(O),owner:m.toText(),data:await Kr({data:u}),version:_a(v),...R})}return{items:l,items_length:o,items_page:_a(t),matches_length:s,matches_pages:_a(c)}},ei=async({collection:e,filter:a,...r})=>{let{count_docs:i}=await N(r);return i(e,Re(a))};var Sa=async({satellite:e,options:a,...r})=>{let i=_(e?.identity);return await Wr({...r,satellite:{...e,identity:i},options:a??Z})},Qc=async({satellite:e,options:a,...r})=>{let i=_(e?.identity);return await zr({...r,satellite:{...e,identity:i},options:a??Z})},ai=async({satellite:e,...a})=>{let r=_(e?.identity);return await Hr({...a,satellite:{...e,identity:r},options:{certified:!0}})},ri=async({satellite:e,...a})=>{let r=_(e?.identity);return await $r({...a,satellite:{...e,identity:r},options:{certified:!0}})},el=async({satellite:e,...a})=>{let r=_(e?.identity);return await Yr({...a,satellite:{...e,identity:r},options:{certified:!0}})},al=async({satellite:e,...a})=>{let r=_(e?.identity);return await Xr({...a,satellite:{...e,identity:r},options:{certified:!0}})},rl=async({satellite:e,filter:a,...r})=>{let i=_(e?.identity);return await Zr({...r,filter:a??{},satellite:{...e,identity:i},options:{certified:!0}})},il=async({satellite:e,options:a,filter:r,...i})=>{let n=_(e?.identity);return await Qr({...i,filter:r??{},satellite:{...e,identity:n},options:a??Z})},nl=async({satellite:e,options:a,filter:r,...i})=>{let n=_(e?.identity);return await ei({...i,filter:r??{},satellite:{...e,identity:n},options:a??Z})};var ni=async({provider:e})=>{let{user:a,userId:r}=await Da();if(ii(a))return a;try{return await _t({userId:r,provider:e})}catch(i){if(rr({error:i,type:Cr})){let n=await ti({userId:r});if(ii(n))return n}throw i}},Da=async()=>{let e=fa();if(ut(e))throw new Ia("No identity to initialize the user. Have you initialized Juno?");let a=e.getPrincipal().toText(),r=await ti({userId:a});return{userId:a,user:r}},ti=({userId:e})=>Sa({collection:"#user",key:e}),_t=({userId:e,...a})=>ai({collection:"#user",doc:{key:e,data:a}});var Ca=async({syncTabsOnSuccess:e}={syncTabsOnSuccess:!1})=>{await Ra({fn:async()=>{let{user:r}=await Da();x.getInstance().set(r??null)},syncTabsOnSuccess:e})},oi=async()=>{await Dr({fn:async({authenticated:a})=>{let i=a?Da:()=>Promise.resolve({user:null}),{user:n}=await i();x.getInstance().set(n??null)}})},ka=async({user:e})=>{await Ra({fn:async()=>{x.getInstance().set(e)},syncTabsOnSuccess:!0})};var si=()=>{try{let e=da.getInstance(),a=async()=>{await oi(),xa({message:"junoSignInReload"})};return e.onLoginSuccess(a),()=>{e?.destroy()}}catch(e){console.warn("Auth BroadcastChannel initialization failed",e);return}};var ci=()=>{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()},li=()=>{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()},di=()=>{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()},pi=()=>{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()},Ua=()=>{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()};import{isEmptyString as Tt,isNullish as Ot,nonNullish as xi}from"@dfinity/utils";var ui=BigInt(144e11),_i=!1,mi={width:576,height:576},Ni={width:424,height:576},pr="internetcomputer.org",Ti="ic0.app",La="id.ai";import{isNullish as Oi}from"@dfinity/utils";var yi=({width:e,height:a})=>{if(!ba()||Oi(window)||Oi(window.top))return;let{top:{innerWidth:r,innerHeight:i}}=window,n=i/2+screenY-a/2,t=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=${a}, top=${n}, left=${t}`};import{isNullish as mt}from"@dfinity/utils";import{ERROR_USER_INTERRUPT as Nt}from"@icp-sdk/auth/client";var Q=async({fn:e,step:a,onProgress:r})=>{r?.({step:a,state:"in_progress"});try{let i=await e();return r?.({step:a,state:"success"}),i}catch(i){throw r?.({step:a,state:"error"}),i}};var gi=(r=>(r[r.AuthorizingWithProvider=0]="AuthorizingWithProvider",r[r.CreatingOrRetrievingUser=1]="CreatingOrRetrievingUser",r))(gi||{});var qa=class{async signIn({options:a,authClient:r,initAuth:i}){await Q({fn:async()=>await this.#e({options:a,authClient:r}),step:0,onProgress:a?.onProgress}),await Q({fn:async()=>await i({provider:this.id}),step:1,onProgress:a?.onProgress})}#e({options:a,authClient:r}){return new Promise(async(i,n)=>{if(mt(r)){n(new ge("No client is ready to perform a sign-in. Have you initialized the Satellite?"));return}await r.login({onSuccess:i,onError:t=>{if(t===Nt){n(new Va(t));return}n(new Fa(t))},maxTimeToLive:a?.maxTimeToLiveInNanoseconds??ui,allowPinAuthentication:a?.allowPin??_i,...a?.derivationOrigin!==void 0&&{derivationOrigin:a.derivationOrigin},...this.signInOptions({windowed:a?.windowed})})})}};var Ba=class extends qa{#e;constructor({domain:a}){super(),this.#e=a}get id(){return"internet_identity"}signInOptions({windowed:a}){let i=(()=>{let t=y.getInstance().get()?.container;if(Ot(t)||t===!1){let d=[pr,Ti].includes(this.#e??La);return Tt(this.#e)?`https://${La}`:d?`https://identity.${this.#e??pr}`:`https://${this.#e}`}let o=y.getInstance().get(),s=xi(o)&&xi(o?.internetIdentityId)?o.internetIdentityId:vr,{host:c,protocol:l}=new URL(t===!0?sa:t);return/apple/i.test(navigator?.vendor)?`${l}//${c}?canisterId=${s}`:`${l}//${s}.${c.replace("127.0.0.1","localhost")}`})();return{...a!==!1&&{windowOpenerFeatures:yi((()=>{try{let{hostname:t}=new URL(i);return t.includes(La)}catch{return!1}})()?Ni:mi)},identityProvider:i}}};import{isEmptyString as po,isNullish as uo,nonNullish as _o,notEmptyString as mo}from"@dfinity/utils";import{arrayBufferToUint8Array as yt}from"@dfinity/utils";import{uint8ArrayToBase64 as gt}from"@dfinity/utils";var ur=e=>gt(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),xt=()=>crypto.getRandomValues(new Uint8Array(32)),Rt=async({salt:e,caller:a})=>{let r=a.getPrincipal().toUint8Array(),i=new Uint8Array(e.length+r.byteLength);i.set(e),i.set(r,e.length);let n=await crypto.subtle.digest("SHA-256",i);return ur(yt(n))},Ri=async({caller:e})=>{let a=xt();return{nonce:await Rt({salt:a,caller:e}),salt:a}};import{isNullish as ht}from"@dfinity/utils";import{Ed25519KeyIdentity as ft}from"@icp-sdk/core/identity";import{base64ToUint8Array as Ct,uint8ArrayToBase64 as kt}from"@dfinity/utils";import{Ed25519KeyIdentity as Ut}from"@icp-sdk/core/identity";import{fromNullable as Jt}from"@dfinity/utils";import{Delegation as jt,ECDSAKeyIdentity as Mt}from"@icp-sdk/core/identity";import{DelegationChain as Wt,DelegationIdentity as zt}from"@icp-sdk/core/identity";import{isEmptyString as Xt}from"@dfinity/utils";import{isEmptyString as _r}from"@dfinity/utils";import{isNullish as oo,notEmptyString as so}from"@dfinity/utils";var Fi="juno:auth:openid",hi={authUrl:"https://accounts.google.com/o/oauth2/v2/auth",authScopes:["openid","profile","email"],configUrl:"https://accounts.google.com/gsi/fedcm.json"},Vi={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"},Ft=class extends Error{},Vt=class extends Error{},At=class extends Error{},wt=class extends Error{},vt=class extends Error{},It=class extends Error{},Pt=class extends Error{},Ai=class extends Error{},Et=class extends Error{},bt=class extends Error{},St=class extends Error{constructor(e){super("GitHub OAuth initialization failed",e)}},Dt=class extends Error{constructor(e){super("GitHub OAuth finalization failed",e)}},wi="__caller__",vi="__salt__",Ii="__state__",Lt=({caller:e,state:a,salt:r})=>{let i={[wi]:e.toJSON(),[vi]:kt(r),[Ii]:a};return JSON.stringify(i)},qt=e=>{let{[wi]:a,[vi]:r,[Ii]:i}=JSON.parse(e);return{caller:Ut.fromParsedJson(a),salt:Ct(r),state:i}},fi=async({generateState:e})=>{let a=ft.generate(),{nonce:r,salt:i}=await Ri({caller:a}),n=await e({nonce:r}),t=Lt({caller:a,salt:i,state:n});return sessionStorage.setItem(Fi,t),{nonce:r,state:n}},Bt=()=>{let e=sessionStorage.getItem(Fi);if(ht(e))throw new Vt;return qt(e)},Pi=({auth:e,identity:a})=>"satellite"in e?kr({...e.satellite,identity:a}):Ur({...e.console,identity:a}),Kt=async({actorParams:e,args:a})=>{let{authenticate:r}=await Pi(e);return await r(a)},Gt=async({actorParams:e,args:a})=>{let{get_delegation:r}=await Pi(e);return await r(a)},Ht=({delegations:e,sessionKey:a})=>{let[r,i]=e,n=Wt.fromDelegations(i,Uint8Array.from(r));return{identity:zt.fromDelegation(a,n),delegationChain:n,sessionKey:a}},mr=async({jwt:e,context:a,auth:r})=>{let i=await Mt.generate({extractable:!1}),n=new Uint8Array(i.getPublicKey().toDer()),{delegations:t,data:o}=await $t({jwt:e,publicKey:n,context:a,auth:r});return{identity:Ht({sessionKey:i,delegations:t}),data:o}},$t=async({jwt:e,publicKey:a,context:{caller:r,salt:i},auth:n})=>{let t=await Kt({args:{OpenId:{jwt:e,session_key:a,salt:i}},actorParams:{auth:n,identity:r}});if("Err"in t)throw new vt("Authentication failed",{cause:t});let{delegation:{user_key:o,expiration:s},...c}=t.Ok,l=await Yt({jwt:e,context:{caller:r,salt:i},auth:n,publicKey:a,expiration:s}),{delegation:d,signature:p}=l,{pubkey:u,expiration:m,targets:O}=d;return{delegations:[o,[{delegation:new jt(Uint8Array.from(u),m,Jt(O)),signature:Uint8Array.from(p)}]],data:c}},Yt=async({jwt:e,publicKey:a,context:{salt:r,caller:i},auth:n,expiration:t,maxRetries:o=5})=>{for(let s=0;s<o;s++){await new Promise(l=>{setInterval(l,1e3*s)});let c=await Gt({args:{OpenId:{jwt:e,session_key:a,salt:r,expiration:t}},actorParams:{auth:n,identity:i}});if("Err"in c){let{Err:l}=c;if("NoSuchDelegation"in l||"GetCachedJwks"in l)continue;throw new Et("Getting delegation failed",{cause:c})}return c.Ok}throw new bt},Zt=async({url:e})=>{try{let a=await fetch(e,{credentials:"include"});return a.ok?{success:await a.json()}:{error:new Error(`Failed to fetch ${e} (${a.status})`)}}catch(a){return{error:new St({cause:a})}}},Qt=async({url:e,body:a})=>{try{let r=await fetch(e,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});return r.ok?{success:await r.json()}:{error:new Error(`Failed to fetch ${e} (${r.status})`)}}catch(r){return{error:new Dt({cause:r})}}},eo=async({auth:e,context:a,redirect:{finalizeUrl:r}})=>{let{location:{search:i}}=window,n=new URLSearchParams(i),t=n.get("code"),o=n.get("state"),s=await Qt({url:r,body:{code:t,state:o}});if("error"in s)throw s.error;let{success:{token:c}}=s;if(Xt(c))throw new Ai;return await mr({jwt:c,auth:e,context:a})},ao=async({auth:e,context:a})=>{let{location:{hash:r}}=window;if(_r(r)||!r.startsWith("#"))throw new It("No hash found in the current location URL");let i=new URLSearchParams(r.slice(1)),n=i.get("state"),t=i.get("id_token"),{state:o}=a;if(_r(o)||n!==o)throw new Pt("The provided state is invalid",{cause:n});if(_r(t))throw new Ai;return await mr({jwt:t,auth:e,context:a})},Ei=async e=>{let a=Bt();if("github"in e){let{github:{redirect:i,auth:n}}=e,{finalizeUrl:t}=Vi;return await eo({redirect:i??{finalizeUrl:t},auth:n,context:a})}let{google:r}=e;if("credentials"in r){let{credentials:{jwt:i},auth:n}=r;return await mr({jwt:i,context:a,auth:n})}return await ao({...r,context:a})},Nr=({url:e})=>{try{return new URL(e)}catch{throw new Ft("Cannot parse authURL",{cause:e})}},ro=({initUrl:e})=>async({nonce:a})=>{let r=Nr({url:e});r.searchParams.set("nonce",a);let i=await Zt({url:r.toString()});if("error"in i)throw i.error;let{success:{state:n}}=i;return n},io=({authUrl:e,clientId:a,authScopes:r,state:i,redirectUrl:n})=>{let t=Nr({url:e});t.searchParams.set("client_id",a);let{location:{origin:o}}=window;t.searchParams.set("redirect_uri",n??o),t.searchParams.set("scope",r.join(" ")),t.searchParams.set("state",i),window.location.href=t.toString()},no=()=>ur(crypto.getRandomValues(new Uint8Array(12))),to=async e=>no(),co=({authUrl:e,clientId:a,nonce:r,loginHint:i,authScopes:n,state:t,redirectUrl:o})=>{let s=Nr({url:e});s.searchParams.set("client_id",a);let{location:{origin:c}}=window;s.searchParams.set("redirect_uri",o??c),s.searchParams.set("response_type","code id_token"),s.searchParams.set("scope",n.join(" ")),s.searchParams.set("state",t),s.searchParams.set("nonce",r),so(i)?s.searchParams.set("login_hint",i):s.searchParams.set("prompt","select_account"),window.location.href=s.toString()},lo=async({configUrl:e,clientId:a,nonce:r,loginHint:i,domainHint:n})=>{let t=await navigator.credentials.get({identity:{context:"use",providers:[{configURL:e,clientId:a,nonce:r,loginHint:i,domainHint:n}],mode:"active"},mediation:"required"});if(oo(t))throw new At;let{type:o}=t;if(o!=="identity"||!("token"in t)||typeof t.token!="string")throw new wt("Invalid credential received from FedCM API",{cause:t});let{token:s}=t;return{jwt:s}};async function Ja(e){if("github"in e){let{github:o}=e,{redirect:s}=o,{initUrl:c,...l}=s,{authUrl:d,authScopes:p,initUrl:u}=Vi,m=await fi({generateState:ro({initUrl:c??u})});io({...l,...m,authUrl:d,authScopes:p});return}let a=await fi({generateState:to}),{google:r}=e;if("credentials"in r){let{credentials:o}=r,{configUrl:s}=hi;return await lo({...o,...a,configUrl:s})}let{redirect:i}=r,{authUrl:n,authScopes:t}=hi;co({...i,...a,authUrl:n,authScopes:t})}var ja=({url:e})=>{try{return new URL(e)}catch{return console.warn(`Cannot parse URL ${e}. Skipping option.`),null}};var No=async e=>{let{satelliteId:a}=y.getInstance().get()??{satelliteId:void 0};if(uo(a))throw new ge("Satellite ID not set. Have you initialized the Satellite?");let r=y.getInstance().get()?.container,i={auth:{satellite:{satelliteId:a,container:r}}},t=(()=>{let p="github"in e?e?.github?.options?.finalizeUrl:void 0;if(mo(p))return p;let u=Ua();return po(u)?null:ja({url:`${u}/v1/auth/finalize/github`})?.toString()??null})(),{identity:{delegationChain:o,sessionKey:s,identity:c},data:{doc:l}}=await Ei("github"in e?{github:{redirect:_o(t)?{finalizeUrl:t}:null,...i}}:{google:{redirect:null,...i}});await g.getInstance().setAuthClientStorage({delegationChain:o,sessionKey:s});let d=await na({doc:l,key:c.getPrincipal().toText()});await ka({user:d})};var bi=e=>(e.preventDefault(),e.returnValue="Are you sure you want to exit?"),To=()=>{window.addEventListener("beforeunload",bi,{capture:!0})},Oo=()=>{window.removeEventListener("beforeunload",bi,{capture:!0})},Ma=async({fn:e})=>{try{return To(),await e()}finally{Oo()}};import{DelegationChain as ho,DelegationIdentity as fo,ECDSAKeyIdentity as Fo,Ed25519KeyIdentity as Vo}from"@icp-sdk/core/identity";function Si(e){return new Promise((a,r)=>{e.oncomplete=e.onsuccess=()=>a(e.result),e.onabort=e.onerror=()=>r(e.error)})}function Or(e,a){let r,i=()=>{if(r)return r;let n=indexedDB.open(e);return n.onupgradeneeded=()=>n.result.createObjectStore(a),r=Si(n),r.then(t=>{t.onclose=()=>r=void 0},()=>{}),r};return(n,t)=>i().then(o=>t(o.transaction(a,n).objectStore(a)))}var Tr;function yo(){return Tr||(Tr=Or("keyval-store","keyval")),Tr}function Di(e,a,r=yo()){return r("readwrite",i=>new Promise((n,t)=>{i.get(e).onsuccess=function(){try{i.put(a(this.result),e),n(Si(i.transaction))}catch(o){t(o)}}}))}var go=class extends Error{constructor(){super("A dev identity can only be used in browser environments")}},xo=class extends Error{constructor(){super("A dev identity must only be used on localhost (127.0.0.1 or localhost)")}},Ro=class extends Error{constructor(e){super(`Identifier must be 32 characters or less, got ${e}`)}},Ao=Or("juno-dev-identifiers","juno-dev-identifiers-store");var Ci=async({identifier:e="dev",maxTimeToLiveInMilliseconds:a}={})=>{if(!(typeof window<"u"))throw new go;let{location:{hostname:r}}=window;if(!["127.0.0.1","localhost"].includes(r))throw new xo;let i=()=>{if(e.length>32)throw new Ro(e.length);return new TextEncoder().encode(e.padEnd(32,"0"))},n=async()=>{let s=i(),c=Vo.generate(s),l=await Fo.generate({extractable:!1}),d=a??6048e5,p=await ho.create(c,l.getPublicKey(),new Date(Date.now()+d));return{identity:fo.fromDelegation(l,p),sessionKey:l,delegationChain:p}},t=async()=>{await Di(e,s=>{let c=Date.now();return{createdAt:s?.createdAt??c,updatedAt:c}},Ao)},o=await n();return await t(),o};var Ka=class{async signIn({options:a,initAuth:r,setStorage:i}){let{sessionKey:n,delegationChain:t}=await Ci(a);await i({sessionKey:n,delegationChain:t}),await r({provider:void 0})}};import{isEmptyString as wo,isNullish as vo,notEmptyString as Io}from"@dfinity/utils";var Ga=class{async signIn({options:a={}}){let r=a?.redirect?.clientId??pi();if(vo(r))throw new pa;let{redirect:i}=a;await Ja({github:{redirect:{...i??{},clientId:r,initUrl:(()=>{let t=a?.redirect?.initUrl;if(Io(t))return t;let o=Ua();if(!wo(o))return ja({url:`${o}/v1/auth/init/github`})?.toString()})()}}})}};import{isNullish as Po}from"@dfinity/utils";var Wa=class{async signIn({options:a={}}){let r=a?.redirect?.clientId??di();if(Po(r))throw new pa;let{redirect:i}=a;await Ja({google:{redirect:{...i??{},clientId:r}}})}};import{isNullish as yr,uint8ArrayToBase64 as Do}from"@dfinity/utils";import{IdbStorage as Co,KEY_STORAGE_DELEGATION as ko,KEY_STORAGE_KEY as Uo}from"@icp-sdk/auth/client";import{AnonymousIdentity as Lo}from"@icp-sdk/core/agent";import{DelegationChain as qo,DelegationIdentity as Bo,DER_COSE_OID as Jo,ECDSAKeyIdentity as jo,unwrapDER as Mo}from"@icp-sdk/core/identity";import{nonNullish as Eo,uint8ArrayToArrayOfNumber as bo}from"@dfinity/utils";var ki=async({delegationIdentity:e,passkeyIdentity:a,satelliteId:r})=>{let i=a.getCredential().getAAGUID(),[n,t]=await ri({docs:[{collection:"#user",doc:{key:e.getPrincipal().toText(),data:{provider:"webauthn",providerData:{webauthn:{...Eo(i)&&{aaguid:bo(i)}}}}}},{collection:"#user-webauthn",doc:{key:a.getCredential().getCredentialIdText(),data:{publicKey:a.getPublicKey().toRaw()}}}],satellite:{identity:e,satelliteId:r}});return n};var Ui=(t=>(t[t.RequestingUserCredential=0]="RequestingUserCredential",t[t.FinalizingCredential=1]="FinalizingCredential",t[t.Signing=2]="Signing",t[t.FinalizingSession=3]="FinalizingSession",t[t.RetrievingUser=4]="RetrievingUser",t))(Ui||{}),Li=(o=>(o[o.CreatingUserCredential=0]="CreatingUserCredential",o[o.ValidatingUserCredential=1]="ValidatingUserCredential",o[o.FinalizingCredential=2]="FinalizingCredential",o[o.Signing=3]="Signing",o[o.FinalizingSession=4]="FinalizingSession",o[o.RegisteringUser=5]="RegisteringUser",o))(Li||{});var ma=class{async signUp({options:{onProgress:a,maxTimeToLiveInMilliseconds:r,passkey:i}={},loadAuthWithUser:n}){let{satelliteId:t}=y.getInstance().get()??{satelliteId:void 0};if(yr(t))throw new ge("Satellite ID not set. Have you initialized the Satellite?");let o=({step:v,state:R})=>{switch(v){case xe.RequestingUserCredential:a?.({step:1,state:R});break;case xe.FinalizingCredential:a?.({step:2,state:R});break;case xe.Signing:a?.({step:3,state:R});break}},c=await Q({fn:async()=>await Za.createWithNewCredential({onProgress:o,passkeyOptions:i}),step:0,onProgress:a}),{delegationIdentity:l,sessionKey:d}=await this.#e({identity:c,maxTimeToLiveInMilliseconds:r}),u=await Q({fn:async()=>await ki({delegationIdentity:l,passkeyIdentity:c,satelliteId:t}),step:5,onProgress:a});await Q({fn:async()=>await this.#a({delegationIdentity:l,sessionKey:d}),step:4,onProgress:a}),await Q({fn:async()=>await n({user:u}),step:5,onProgress:a})}async signIn({options:{onProgress:a,maxTimeToLiveInMilliseconds:r}={},loadAuth:i}){let{satelliteId:n}=y.getInstance().get()??{satelliteId:void 0};if(yr(n))throw new ge("Satellite ID not set. Have you initialized the Satellite?");let t=async({credentialId:p})=>{let u=await Sa({collection:"#user-webauthn",key:Do(p),options:{certified:!0},satellite:{identity:new Lo,satelliteId:n}});if(yr(u))throw new wa("No public key found for the selected passkey.");let{data:m}=u,{publicKey:O}=m;return Mo(O,Jo)},o=({step:p,state:u})=>{switch(p){case xe.RequestingUserCredential:a?.({step:0,state:u});break;case xe.FinalizingCredential:a?.({step:1,state:u});break;case xe.Signing:a?.({step:2,state:u});break}},s=await Za.createWithExistingCredential({retrievePublicKey:t,onProgress:o}),{delegationIdentity:c,sessionKey:l}=await this.#e({identity:s,maxTimeToLiveInMilliseconds:r});await Q({fn:async()=>await this.#a({delegationIdentity:c,sessionKey:l}),step:3,onProgress:a}),await Q({fn:i,step:4,onProgress:a})}async#e({identity:a,maxTimeToLiveInMilliseconds:r}){let i=await jo.generate({extractable:!1}),n=r??144e5,t=await qo.create(a,i.getPublicKey(),new Date(Date.now()+n));return{delegationIdentity:Bo.fromDelegation(i,t),sessionKey:i}}async#a({sessionKey:a,delegationIdentity:r}){let i=new Co;await Promise.all([i.set(Uo,a.getKeyPair()),i.set(ko,JSON.stringify(r.getDelegation().toJSON()))])}};var qi=async({provider:e})=>{await Ra({fn:async()=>{let r=await ni({provider:e});x.getInstance().set(r)},syncTabsOnSuccess:!0})},Ko=async e=>{if("google"in e){let{google:{options:a}}=e;await ha({fn:()=>new Wa().signIn({options:a}),context:{windowGuard:!1}});return}if("github"in e){let{github:{options:a}}=e;await ha({fn:()=>new Ga().signIn({options:a}),context:{windowGuard:!1}});return}if("webauthn"in e){let{webauthn:{options:a,context:r}}=e;await ha({fn:()=>new ma().signIn({options:a,loadAuth:()=>Ca({syncTabsOnSuccess:!0})}),context:r});return}if("internet_identity"in e){let{internet_identity:{options:a,context:r}}=e,{domain:i,...n}=a??{};await ha({fn:()=>new Ba({domain:i}).signIn({options:n,authClient:g.getInstance().getAuthClient(),initAuth:qi}),context:r});return}if("dev"in e){let{dev:{options:a}}=e,{setAuthClientStorage:r}=g.getInstance();await ha({fn:()=>new Ka().signIn({options:a,initAuth:qi,setStorage:r}),context:{windowGuard:!1}});return}throw new Aa("An unknown or unsupported provider was provided for sign-in.")},ha=async({fn:e,context:a})=>{if(a?.windowGuard===!1){await e();return}await Ma({fn:e})};var Go=async e=>{let a=async()=>await Wo(e);if(Object.values(e)?.[0].context?.windowGuard===!1){await a();return}await Ma({fn:a})},Wo=async e=>{if("webauthn"in e){let{webauthn:{options:a}}=e;await new ma().signUp({options:a,loadAuthWithUser:ka});return}throw new va("An unknown or unsupported provider was provided for sign-up.")};var Pp=e=>e?.data?.provider==="webauthn",Ep=e=>e?.data?.provider==="google",bp=e=>e?.data?.provider==="github";var kp=async({idlFactory:e,satellite:a})=>{let r=_(a?.identity);return await Br({idlFactory:e,...a,identity:r})};import{fromNullable as Xi,nonNullish as Zi}from"@dfinity/utils";import{fromNullable as Ha,toNullable as Qo}from"@dfinity/utils";import{assertNonNullish as qp,toNullable as za}from"@dfinity/utils";var Bi=async({asset:{data:e,headers:a,...r},actor:i,progress:n})=>{let{init_asset_upload:t,upload_asset_chunk:o,commit_asset_upload:s}=i,{batch_id:c}=await t(zo(r));n?.onInitiatedBatch();let{chunkIds:l}=await Yo({data:e,uploadFn:o,batchId:c});n?.onUploadedFileChunks(r.fullPath),await $o({commitFn:s,batchId:c,data:e,headers:a,chunkIds:l}),n?.onCommittedBatch()};var zo=({filename:e,collection:a,token:r,fullPath:i,encoding:n,description:t})=>({collection:a,full_path:i,name:e,token:za(r),encoding_type:za(n),description:za(t)}),Ho=({batchId:e,chunkIds:a,headers:r,data:i})=>{let n=r.find(([t,o])=>t.toLowerCase()==="content-type")===void 0&&i.type!==void 0&&i.type!==""?[["Content-Type",i.type]]:void 0;return{batch_id:e,chunk_ids:a.map(({chunk_id:t})=>t),headers:[...r,...n??[]]}},$o=async({commitFn:e,...a})=>{let r=Ho(a);await e(r)},Yo=async({data:e,uploadFn:a,batchId:r})=>{let i=[],n=ba()?new Blob([await e.arrayBuffer()]):e,t=0n;for(let s=0;s<n.size;s+=19e5){let c=n.slice(s,s+19e5);i.push({batchId:r,chunk:c,uploadFn:a,orderId:t}),t++}let o=[];for await(let s of Xo({uploadChunks:i}))o=[...o,...s];return{chunkIds:o}};async function*Xo({uploadChunks:e,limit:a=12}){for(let r=0;r<e.length;r=r+a){let i=e.slice(r,r+a);yield await Promise.all(i.map(n=>Zo(n)))}}var Zo=async({batchId:e,chunk:a,uploadFn:r,orderId:i})=>r({batch_id:e,content:new Uint8Array(await a.arrayBuffer()),order_id:za(i)});var Ji=async({asset:e,...a})=>{let r=await N(a);await Bi({actor:r,asset:e})},ji=async({collection:e,filter:a,...r})=>{let{list_assets:i}=await N(r),{items:n,items_length:t,items_page:o,matches_length:s,matches_pages:c}=await i(e,Re(a));return{items:n.map(([l,d])=>d),items_length:t,items_page:Ha(o),matches_length:s,matches_pages:Ha(c)}},Mi=async({collection:e,filter:a,...r})=>{let{count_assets:i}=await N(r);return i(e,Re(a))},Ki=async({collection:e,fullPath:a,...r})=>(await N(r)).del_asset(e,a),Gi=async({assets:e,satellite:a})=>{let{del_many_assets:r}=await N({satellite:a,options:{certified:!0}}),i=e.map(({collection:n,fullPath:t})=>[n,t]);await r(i)},Wi=async({collection:e,filter:a,...r})=>{let{del_filtered_assets:i}=await N(r);return i(e,Re(a))},zi=async({collection:e,fullPath:a,token:r,...i})=>{let{set_asset_token:n}=await N(i);return n(e,a,Qo(r))},Hi=async({collection:e,fullPath:a,...r})=>{let{get_asset:i}=await N(r);return Ha(await i(e,a))},$i=async({assets:e,...a})=>{let{get_many_assets:r}=await N(a),i=e.map(({collection:t,fullPath:o})=>[t,o]);return(await r(i)).map(([t,o])=>Ha(o))};var Yi=e=>btoa([...e].map(a=>String.fromCharCode(a)).join(""));var eu=e=>Qi(e),au=e=>Qi({filename:e.data.name,...e}),Qi=async({filename:e,data:a,collection:r,headers:i=[],fullPath:n,token:t,satellite:o,encoding:s,description:c})=>{let l=_(o?.identity),d=decodeURI(e),p=n??`/${r}/${d}`,u={...o,identity:l};return await Ji({asset:{data:a,filename:d,collection:r,token:t,headers:i,fullPath:p,encoding:s,description:c},satellite:u,options:{certified:!0}}),{downloadUrl:en({satellite:u,assetKey:{fullPath:p,token:t}}),fullPath:p,...Zi(t)&&{token:t},name:d}},ru=async({collection:e,filter:a,satellite:r,options:i})=>{let n={...r,identity:_(r?.identity)},{items:t,...o}=await ji({collection:e,filter:a??{},satellite:n,options:i??Z}),s=t.map(({key:{full_path:c,token:l,name:d,owner:p,description:u},headers:m,encodings:O,created_at:v,updated_at:R})=>{let k=Xi(l);return{fullPath:c,description:Xi(u),name:d,downloadUrl:en({satellite:n,assetKey:{fullPath:c,token:k}}),token:k,headers:m,encodings:O.reduce((L,[q,{modified:ee,sha256:ae,total_length:I}])=>({...L,[q]:{modified:ee,sha256:Yi(ae),total_length:I}}),{}),owner:p.toText(),created_at:v,updated_at:R}});return{items:s,assets:s,...o}},iu=async({collection:e,filter:a,satellite:r,options:i})=>{let n={...r,identity:_(r?.identity)};return await Mi({collection:e,satellite:n,filter:a??{},options:i??Z})},nu=({collection:e,fullPath:a,satellite:r})=>Ki({collection:e,fullPath:a,satellite:{...r,identity:_(r?.identity)},options:{certified:!0}}),tu=({collection:e,fullPath:a,token:r,satellite:i})=>zi({collection:e,fullPath:a,token:r,satellite:{...i,identity:_(i?.identity)},options:{certified:!0}}),ou=({assets:e,satellite:a})=>Gi({assets:e,satellite:{...a,identity:_(a?.identity)},options:{certified:!0}}),su=async({collection:e,satellite:a,filter:r})=>{let i={...a,identity:_(a?.identity)};return await Wi({collection:e,satellite:i,filter:r??{},options:{certified:!0}})},cu=async({satellite:e,options:a,...r})=>{let i=_(e?.identity);return await Hi({...r,satellite:{...e,identity:i},options:a??Z})},lu=async({satellite:e,options:a,...r})=>{let i=_(e?.identity);return await $i({...r,satellite:{...e,identity:i},options:a??Z})},en=({assetKey:{fullPath:e,token:a},satellite:r})=>{let i={...r,identity:_(r?.identity)};return`${qr(i)}${e}${Zi(a)?`?token=${a}`:""}`};var as=e=>{let a=e?.satelliteId??ci();es(a,"Satellite ID is not configured. Juno cannot be initialized.");let r=e?.container??li();return{satelliteId:a,internetIdentityId:e?.internetIdentityId,workers:e?.workers,syncTabs:e?.syncTabs,container:r}},gu=e=>rs(e),rs=async e=>{let a=as(e);y.getInstance().set(a),await Ca();let r=a.workers?.auth!==void 0?Sr(a.workers.auth):void 0,i=a.syncTabs===!1?void 0:si();return[...an(r)?[r]:[],...an(i)?[i]:[]]},is=e=>x.getInstance().subscribe(e),xu=is;export{gi as AuthClientSignInProgressStep,Ia as InitError,Ba as InternetIdentityProvider,Pa as ListError,Fa as SignInError,ge as SignInInitError,pa as SignInMissingClientIdError,Aa as SignInProviderNotSupportedError,Va as SignInUserInterruptError,va as SignUpProviderNotSupportedError,Ui as WebAuthnSignInProgressStep,wa as WebAuthnSignInRetrievePublicKeyError,Li as WebAuthnSignUpProgressStep,xu as authSubscribe,iu as countAssets,nl as countDocs,nu as deleteAsset,el as deleteDoc,su as deleteFilteredAssets,rl as deleteFilteredDocs,ou as deleteManyAssets,al as deleteManyDocs,en as downloadUrl,cu as getAsset,Sa as getDoc,zn as getIdentityOnce,lu as getManyAssets,Qc as getManyDocs,kp as getSatelliteExtendedActor,No as handleRedirectCallback,gu as initJuno,rs as initSatellite,bp as isGitHubUser,Ep as isGoogleUser,bn as isWebAuthnAvailable,Pp as isWebAuthnUser,ru as listAssets,il as listDocs,is as onAuthStateChange,tu as setAssetToken,ai as setDoc,ri as setManyDocs,Ko as signIn,ar as signOut,Go as signUp,Wn as unsafeIdentity,eu as uploadBlob,au as uploadFile};
|
|
1
|
+
var fn=class extends Error{},Ea=(e,a)=>{if(e==null)throw new fn(a)};var Ie=e=>new Uint8Array(e),ka=e=>Array.from(e);var Jr=({a:e,b:a})=>e.length===a.length&&e.every((r,t)=>r===a[t]);var Ce=e=>{let a=[];for(let r=0;r<e.length;r+=32768)a.push(String.fromCharCode(...e.subarray(r,r+32768)));return btoa(a.join(""))},jr=e=>Uint8Array.from(atob(e),a=>a.charCodeAt(0));var d=e=>e==null,_=e=>!d(e),Ee=e=>_(e)&&e!=="",B=e=>!Ee(e),T=e=>_(e)?[e]:[],y=e=>e?.[0];var Ua="abcdefghijklmnopqrstuvwxyz234567",ga=Object.create(null);for(let e=0;e<Ua.length;e++)ga[Ua[e]]=e;ga[0]=ga.o;ga[1]=ga.i;function Rn(e){let a=0,r=0,t="";function n(i){return a<0?r|=i>>-a:r=i<<a&248,a>3?(a-=8,1):(a<4&&(t+=Ua[r>>3],a+=5),0)}for(let i=0;i<e.length;)i+=n(e[i]);return t+(a<0?Ua[r>>3]:"")}function An(e){let a=0,r=0,t=new Uint8Array(e.length*4/3|0),n=0;function i(o){let s=ga[o.toLowerCase()];if(s===void 0)throw new Error(`Invalid character: ${JSON.stringify(o)}`);s<<=3,r|=s>>>a,a+=5,a>=8&&(t[n++]=r,a-=8,a>0?r=s<<5-a&255:r=0)}for(let o of e)i(o);return t.slice(0,n)}var wn=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);function Fn(e){let a=-1;for(let r=0;r<e.length;r++){let t=(e[r]^a)&255;a=wn[t]^a>>>8}return(a^-1)>>>0}function Vn(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function La(e,...a){if(!Vn(e))throw new Error("Uint8Array expected");if(a.length>0&&!a.includes(e.length))throw new Error("Uint8Array expected of length "+a+", got length="+e.length)}function Lr(e,a=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(a&&e.finished)throw new Error("Hash#digest() has already been called")}function vn(e,a){La(e);let r=a.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}function Or(...e){for(let a=0;a<e.length;a++)e[a].fill(0)}function Tr(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function te(e,a){return e<<32-a|e>>>a}var Mr=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",In=Array.from({length:256},(e,a)=>a.toString(16).padStart(2,"0"));function En(e){if(La(e),Mr)return e.toHex();let a="";for(let r=0;r<e.length;r++)a+=In[e[r]];return a}var ve={_0:48,_9:57,A:65,F:70,a:97,f:102};function qr(e){if(e>=ve._0&&e<=ve._9)return e-ve._0;if(e>=ve.A&&e<=ve.F)return e-(ve.A-10);if(e>=ve.a&&e<=ve.f)return e-(ve.a-10)}function Pn(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(Mr)return Uint8Array.fromHex(e);let a=e.length,r=a/2;if(a%2)throw new Error("hex string expected, got unpadded hex of length "+a);let t=new Uint8Array(r);for(let n=0,i=0;n<r;n++,i+=2){let o=qr(e.charCodeAt(i)),s=qr(e.charCodeAt(i+1));if(o===void 0||s===void 0){let c=e[i]+e[i+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+i)}t[n]=o*16+s}return t}function bn(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function Gr(e){return typeof e=="string"&&(e=bn(e)),La(e),e}var Sn=class{};function Dn(e){let a=t=>e().update(Gr(t)).digest(),r=e();return a.outputLen=r.outputLen,a.blockLen=r.blockLen,a.create=()=>e(),a}function Cn(e,a,r,t){if(typeof e.setBigUint64=="function")return e.setBigUint64(a,r,t);let n=BigInt(32),i=BigInt(4294967295),o=Number(r>>n&i),s=Number(r&i),c=t?4:0,p=t?0:4;e.setUint32(a+c,o,t),e.setUint32(a+p,s,t)}function Un(e,a,r){return e&a^~e&r}function kn(e,a,r){return e&a^e&r^a&r}var Ln=class extends Sn{constructor(e,a,r,t){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=a,this.padOffset=r,this.isLE=t,this.buffer=new Uint8Array(e),this.view=Tr(this.buffer)}update(e){Lr(this),e=Gr(e),La(e);let{view:a,buffer:r,blockLen:t}=this,n=e.length;for(let i=0;i<n;){let o=Math.min(t-this.pos,n-i);if(o===t){let s=Tr(e);for(;t<=n-i;i+=t)this.process(s,i);continue}r.set(e.subarray(i,i+o),this.pos),this.pos+=o,i+=o,this.pos===t&&(this.process(a,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Lr(this),vn(e,this),this.finished=!0;let{buffer:a,view:r,blockLen:t,isLE:n}=this,{pos:i}=this;a[i++]=128,Or(this.buffer.subarray(i)),this.padOffset>t-i&&(this.process(r,0),i=0);for(let l=i;l<t;l++)a[l]=0;Cn(r,t-8,BigInt(this.length*8),n),this.process(r,0);let o=Tr(e),s=this.outputLen;if(s%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let c=s/4,p=this.get();if(c>p.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<c;l++)o.setUint32(4*l,p[l],n)}digest(){let{buffer:e,outputLen:a}=this;this.digestInto(e);let r=e.slice(0,a);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:a,buffer:r,length:t,finished:n,destroyed:i,pos:o}=this;return e.destroyed=i,e.finished=n,e.length=t,e.pos=o,t%a&&e.buffer.set(r),e}clone(){return this._cloneInto()}},be=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Se=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),qn=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),De=new Uint32Array(64),Bn=class extends Ln{constructor(e=32){super(64,e,8,!1),this.A=be[0]|0,this.B=be[1]|0,this.C=be[2]|0,this.D=be[3]|0,this.E=be[4]|0,this.F=be[5]|0,this.G=be[6]|0,this.H=be[7]|0}get(){let{A:e,B:a,C:r,D:t,E:n,F:i,G:o,H:s}=this;return[e,a,r,t,n,i,o,s]}set(e,a,r,t,n,i,o,s){this.A=e|0,this.B=a|0,this.C=r|0,this.D=t|0,this.E=n|0,this.F=i|0,this.G=o|0,this.H=s|0}process(e,a){for(let l=0;l<16;l++,a+=4)De[l]=e.getUint32(a,!1);for(let l=16;l<64;l++){let u=De[l-15],m=De[l-2],N=te(u,7)^te(u,18)^u>>>3,g=te(m,17)^te(m,19)^m>>>10;De[l]=g+De[l-7]+N+De[l-16]|0}let{A:r,B:t,C:n,D:i,E:o,F:s,G:c,H:p}=this;for(let l=0;l<64;l++){let u=te(o,6)^te(o,11)^te(o,25),m=p+u+Un(o,s,c)+qn[l]+De[l]|0,N=(te(r,2)^te(r,13)^te(r,22))+kn(r,t,n)|0;p=c,c=s,s=o,o=i+m|0,i=n,n=t,t=r,r=m+N|0}r=r+this.A|0,t=t+this.B|0,n=n+this.C|0,i=i+this.D|0,o=o+this.E|0,s=s+this.F|0,c=c+this.G|0,p=p+this.H|0,this.set(r,t,n,i,o,s,c,p)}roundClean(){Or(De)}destroy(){this.set(0,0,0,0,0,0,0,0),Or(this.buffer)}},Jn=class extends Bn{constructor(){super(28),this.A=Se[0]|0,this.B=Se[1]|0,this.C=Se[2]|0,this.D=Se[3]|0,this.E=Se[4]|0,this.F=Se[5]|0,this.G=Se[6]|0,this.H=Se[7]|0}},jn=Dn(()=>new Jn),Ca="__principal__",Mn=2,Br=4,Gn="aaaaa-aa",gr=class Oa{static anonymous(){return new this(new Uint8Array([Br]))}static managementCanister(){return this.fromText(Gn)}static selfAuthenticating(a){let r=jn(a);return new this(new Uint8Array([...r,Mn]))}static from(a){if(typeof a=="string")return Oa.fromText(a);if(Object.getPrototypeOf(a)===Uint8Array.prototype)return new Oa(a);if(Oa.isPrincipal(a))return new Oa(a._arr);throw new Error(`Impossible to convert ${JSON.stringify(a)} to Principal.`)}static fromHex(a){return new this(Pn(a))}static fromText(a){let r=a;if(a.includes(Ca)){let o=JSON.parse(a);Ca in o&&(r=o[Ca])}let t=r.toLowerCase().replace(/-/g,""),n=An(t);n=n.slice(4,n.length);let i=new this(n);if(i.toText()!==r)throw new Error(`Principal "${i.toText()}" does not have a valid checksum (original value "${r}" may not be a valid Principal ID).`);return i}static fromUint8Array(a){return new this(a)}static isPrincipal(a){return a instanceof Oa||typeof a=="object"&&a!==null&&"_isPrincipal"in a&&a._isPrincipal===!0&&"_arr"in a&&a._arr instanceof Uint8Array}constructor(a){this._arr=a,this._isPrincipal=!0}isAnonymous(){return this._arr.byteLength===1&&this._arr[0]===Br}toUint8Array(){return this._arr}toHex(){return En(this._arr).toUpperCase()}toText(){let a=new ArrayBuffer(4);new DataView(a).setUint32(0,Fn(this._arr));let r=new Uint8Array(a),t=new Uint8Array([...r,...this._arr]),n=Rn(t).match(/.{1,5}/g);if(!n)throw new Error;return n.join("-")}toString(){return this.toText()}toJSON(){return{[Ca]:this.toText()}}compareTo(a){for(let r=0;r<Math.min(this._arr.length,a._arr.length);r++){if(this._arr[r]<a._arr[r])return"lt";if(this._arr[r]>a._arr[r])return"gt"}return this._arr.length<a._arr.length?"lt":this._arr.length>a._arr.length?"gt":"eq"}ltEq(a){let r=this.compareTo(a);return r=="lt"||r=="eq"}gtEq(a){let r=this.compareTo(a);return r=="gt"||r=="eq"}},yr="__bigint__",xr="__principal__",hr="__uint8array__",Kn=(e,a)=>typeof a=="bigint"?{[yr]:`${a}`}:_(a)&&gr.isPrincipal(a)?{[xr]:gr.from(a).toText()}:_(a)&&a instanceof Uint8Array?{[hr]:Array.from(a)}:a,Wn=(e,a)=>{let r=t=>a[t];return _(a)&&typeof a=="object"&&yr in a?BigInt(r(yr)):_(a)&&typeof a=="object"&&xr in a?gr.fromText(r(xr)):_(a)&&typeof a=="object"&&hr in a?Uint8Array.from(r(hr)):a},Kr=async e=>{let a=new Blob([JSON.stringify(e,Kn)],{type:"application/json; charset=utf-8"});return new Uint8Array(await a.arrayBuffer())},qa=async e=>{let a=new Blob([e instanceof Uint8Array?e:new Uint8Array(e)],{type:"application/json; charset=utf-8"});return JSON.parse(await a.text(),Wn)},Ba=()=>typeof window<"u";import{DER_COSE_OID as $n,wrapDER as Yn}from"@icp-sdk/core/agent";import{Cbor as Hr,SignIdentity as li}from"@icp-sdk/core/agent";var Hn=({authData:e})=>{if(e.byteLength<37)return{invalidAuthData:null};if(e.byteLength<53)return{invalidAuthData:null};let a=e.slice(37,53),r=zn({bytes:a});return"aaguid"in r?{aaguidBytes:a,aaguidText:r.aaguid}:{unknownProvider:null}},zn=({bytes:e})=>{if(e.length!==16)return{invalidBytes:null};let a=(e instanceof Uint8Array?ka(e):e).map(r=>r.toString(16).padStart(2,"0")).join("").replace(/^(.{8})(.{4})(.{4})(.{4})(.{12})$/,"$1-$2-$3-$4-$5");return a==="00000000-0000-0000-0000-000000000000"?{unknownProvider:null}:{aaguid:a}};function Xn(e){let a=new DataView(new ArrayBuffer(2)),r=e.slice(53,55);[...new Uint8Array(r)].forEach((n,i)=>a.setUint8(i,n));let t=a.getUint16(0);return e.slice(55+t)}function Qn(e){return Yn(e,$n)}var Zn=class{constructor(e){this._cose=e,this.#e=Qn(e)}_cose;#e;toDer(){return this.#e}toRaw(){return new Uint8Array(this.#e)}},Xr=class{#e;#a;constructor({rawId:e,cose:a}){this.#e=e,this.#a=new Zn(a)}getPublicKey(){return this.#a}getCredentialId(){return this.#e}getCredentialIdText(){return Ce(this.#e)}},ei=class extends Xr{#e;#a;constructor({authData:e,...a}){super(a);let r=Hn({authData:e});this.#e="aaguidText"in r?r.aaguidText:void 0,this.#a="aaguidBytes"in r?r.aaguidBytes:void 0}getAAGUID(){return this.#a}getAAGUIDText(){return this.#e}},ai=class extends Xr{},ri=class extends Error{},ti=class extends Error{},ni=class extends Error{},ii=class extends Error{},oi=class extends Error{},si=class extends Error{},ci=class extends Error{},Wr=class extends Error{};var di={ECDSA_WITH_SHA256:-7,RSA_WITH_SHA256:-257},pi=6e4,Qr=()=>window.crypto.getRandomValues(new Uint8Array(16)),ui=()=>Qr(),_i=()=>Qr(),mi=()=>{let{location:{href:e}}=window;try{let{hostname:a}=new URL(e);return a}catch{throw new ri}},Zr=({appId:e})=>e?.id??mi(),Ni=({appId:e,user:a}={})=>{let{document:{title:r}}=window,t=()=>({rp:{name:e?.name??r,id:Zr({appId:e})}}),n=()=>({user:{id:_i(),name:a?.name??a?.displayName??r,displayName:a?.displayName??r}});return{attestation:"direct",challenge:ui(),...t(),...n(),pubKeyCredParams:Object.values(di).map(i=>({type:"public-key",alg:i})),excludeCredentials:[],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred",residentKey:"required",requireResidentKey:!0}}},Ti=(e={})=>({rpId:Zr(e),allowCredentials:[],userVerification:"required"}),fr=async({fn:e,step:a,onProgress:r})=>{r?.({step:a,state:"in_progress"});try{let t=await e();return r?.({step:a,state:"success"}),t}catch(t){throw r?.({step:a,state:"error"}),t}},Ue=(e=>(e[e.RequestingUserCredential=0]="RequestingUserCredential",e[e.FinalizingCredential=1]="FinalizingCredential",e[e.Signing=2]="Signing",e))(Ue||{}),et=({timeout:e})=>AbortSignal.timeout(e??pi),Oi=async({challenge:e,credentialIds:a,passkeyOptions:r,timeout:t})=>await navigator.credentials.get({publicKey:{...Ti(r),challenge:e.buffer,allowCredentials:(a??[]).map(n=>({id:n.buffer,type:"public-key"}))},signal:et({timeout:t})}),zr=e=>{if(e.status!=="initialized")throw new ti},$r=e=>{if(d(e))throw new ni},Yr=({type:e})=>{if(e!=="public-key")throw new ii},Rr=class Pa extends li{#e;#a;constructor({onProgress:a,...r}){if(super(),this.#e=a,"retrievePublicKey"in r){let{retrievePublicKey:t}=r;this.#a={status:"pending",retrievePublicKey:t};return}this.#a=Pa.#r({credential:new ei(r)})}static#r({credential:a}){return{status:"initialized",credential:a}}static async createWithNewCredential({passkeyOptions:a,timeout:r,...t}={}){let n=await navigator.credentials.create({publicKey:Ni(a),signal:et({timeout:r})});$r(n),Yr(n);let{response:{attestationObject:i},rawId:o}=n;if(d(i))throw new oi;let{authData:s}=Hr.decode(Ie(i)),c=Xn(s);return new Pa({...t,rawId:Ie(o),cose:c,authData:s})}static async createWithExistingCredential(a){return new Pa(a)}getPublicKey(){zr(this.#a);let{credential:a}=this.#a;return a.getPublicKey()}getCredential(){zr(this.#a);let{credential:a}=this.#a;return a}async sign(a){let r=await fr({fn:async()=>{let t=await Oi({challenge:a,...this.#a.status==="initialized"&&{credentialIds:[this.#a.credential.getCredentialId()]}});return $r(t),Yr(t),t},step:0,onProgress:this.#e});return await fr({fn:async()=>{let{rawId:t}=r;if(this.#a.status==="initialized"){if(!Jr({a:this.#a.credential.getCredentialId(),b:Ie(t)}))throw new si;return}let{retrievePublicKey:n}=this.#a,i=await n({credentialId:Ie(t)});this.#a=Pa.#r({credential:new ai({rawId:Ie(t),cose:i})})},step:1,onProgress:this.#e}),await fr({fn:async()=>{let{response:t}=r,{clientDataJSON:n}=t,{authenticatorData:i,signature:o}="authenticatorData"in t&&"signature"in t?t:{};if(d(i))throw new Wr;if(d(o))throw new Wr;let s=Hr.encode({authenticator_data:i,client_data_json:new TextDecoder().decode(n),signature:Ie(o)});if(d(s))throw new ci;return Object.assign(s,{__signature__:void 0}),s},step:2,onProgress:this.#e})}},gi=async()=>_(window.PublicKeyCredential)&&"isUserVerifyingPlatformAuthenticatorAvailable"in PublicKeyCredential?await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():!1;var ya=class{callbacks=[];populate(a){this.callbacks.forEach(({callback:r})=>r(a))}subscribe(a){let r=Symbol();return this.callbacks.push({id:r,callback:a}),()=>this.callbacks=this.callbacks.filter(({id:t})=>t!==r)}};var w=class e extends ya{static instance;authUser=null;constructor(){super()}static getInstance(){return e.instance||(e.instance=new e),e.instance}set(a){this.authUser=a,this.populate(a)}get(){return this.authUser}subscribe(a){let r=super.subscribe(a);return a(this.authUser),r}reset(){this.authUser=null,this.populate(this.authUser)}};var ba=({message:e,detail:a})=>{let r=new CustomEvent(e,{detail:a,bubbles:!0});document.dispatchEvent(r)};import{Actor as xi}from"@icp-sdk/core/agent";import{HttpAgent as yi}from"@icp-sdk/core/agent";var xa="http://127.0.0.1:5987",at="rdmx6-jaaaa-aaaaa-aaadq-cai";var rt=async({identity:e,container:a})=>{let t=_(a)&&a!==!1?a===!0?xa:a:"https://icp-api.io",n=_(a);return await yi.create({identity:e,shouldFetchRootKey:n,host:t})};var ha=class e{static instance;#e=void 0;constructor(){}static getInstance(){return d(e.instance)&&(e.instance=new e),e.instance}async getAgent({identity:a,...r}){let t=a.getPrincipal().toText();if(d(this.#e)||d(this.#e[t])){let n=await rt({identity:a,...r});return this.#e={...this.#e??{},[t]:n},n}return this.#e[t]}reset(){this.#e=null}};var fa=class e{static instance;#e=void 0;constructor(){}static getInstance(){return d(e.instance)&&(e.instance=new e),e.instance}async getActor({satelliteId:a,identity:r,actorKey:t,...n}){let i=`${t}#${r.getPrincipal().toText()}#${a};`;if(d(this.#e)||d(this.#e[i])){let o=await this.createActor({satelliteId:a,identity:r,...n});return this.#e={...this.#e??{},[i]:o},o}return this.#e[i]}reset(){this.#e=null}async createActor({idlFactory:a,satelliteId:r,...t}){let n=await ha.getInstance().getAgent(t);return xi.createActor(a,{agent:n,canisterId:r})}};import{AuthClient as hi,IdbStorage as tt,KEY_STORAGE_DELEGATION as nt,KEY_STORAGE_KEY as it}from"@icp-sdk/auth/client";var A=class e{static#e;#a;constructor(){}static getInstance(){return d(this.#e)&&(this.#e=new e),this.#e}createAuthClient=async()=>(this.#a=await hi.create({idleOptions:{disableIdle:!0,disableDefaultIdleCallback:!0}}),this.#a);safeCreateAuthClient=async()=>{let a=new tt;return await Promise.all([a.remove(it),a.remove(nt)]),await this.createAuthClient()};getAuthClient=()=>this.#a;logout=async()=>{await this.#a?.logout(),this.#a=null};setAuthClientStorage=async({delegationChain:a,sessionKey:r})=>{let t=new tt;await Promise.all([t.set(it,r.getKeyPair()),t.set(nt,JSON.stringify(a.toJSON()))])}};var Ar=async e=>{await fi(),await A.getInstance().createAuthClient(),e?.windowReload!==!1&&window.location.reload()},fi=async()=>{await A.getInstance().logout(),w.getInstance().reset(),fa.getInstance().reset(),ha.getInstance().reset()};var ot=e=>{let a=e===!0?"./workers/auth.worker.js":e,r=new Worker(a),t=async()=>{ba({message:"junoSignOutAuthTimer"}),await Ar()};return r.onmessage=async({data:n})=>{let{msg:i,data:o}=n;switch(i){case"junoSignOutAuthTimer":await t();return;case"junoDelegationRemainingTime":ba({message:"junoDelegationRemainingTime",detail:o?.authRemainingTime})}},w.getInstance().subscribe(n=>{if(d(n)){r.postMessage({msg:"junoStopAuthTimer"});return}r.postMessage({msg:"junoStartAuthTimer"})})};var Ra=class e{static#e;#a;#r;static CHANNEL_NAME="juno_core_auth_channel";static MESSAGE_LOGIN_SUCCESS="authClientLoginSuccess";constructor(){this.#a=new BroadcastChannel(e.CHANNEL_NAME),this.#r=window.crypto.randomUUID()}static getInstance(){return d(this.#e)&&(this.#e=new e),this.#e}onLoginSuccess=a=>{let{location:{origin:r}}=window;this.#a.onmessage=async({origin:t,data:n})=>{t===r&&_(n)&&n.msg==="authClientLoginSuccess"&&Ee(n.emitterId)&&n.emitterId!==this.#r&&await a()}};destroy=()=>{this.#a.close(),e.#e=null};postLoginSuccess=()=>{let a={emitterId:this.#r,msg:e.MESSAGE_LOGIN_SUCCESS};this.#a.postMessage(a)};get __test__only__emitter_id__(){return this.#r}};var R=class e extends ya{static instance;env;constructor(){super()}static getInstance(){return e.instance||(e.instance=new e),e.instance}set(a){this.env=a,this.populate(a)}get(){return this.env}reset(){this.env=null}subscribe(a){let r=super.subscribe(a);return a(this.env),r}};var Sa=async({fn:e,syncTabsOnSuccess:a})=>{let{authenticated:r}=await Ri({fn:e});!r||!a||R.getInstance().get()?.syncTabs===!1||Ai()},st=async({fn:e})=>{let{createAuthClient:a}=A.getInstance(),t=await(await a()).isAuthenticated();await e({authenticated:t})},Ri=async({fn:e})=>{let{createAuthClient:a,safeCreateAuthClient:r}=A.getInstance();return await(await a()).isAuthenticated()?(await e(),{authenticated:!0}):(await r(),{authenticated:!1})},Ai=()=>{try{Ra.getInstance().postLoginSuccess()}catch(e){console.warn("Auth BroadcastChannel posting failed",e)}};var wr=({error:e,type:a})=>typeof e=="string"?e.includes(a):e instanceof Error?e.message.includes(a):!1;var ct="juno.datastore.error.user.cannot_update";var ne={certified:!1};import{AnonymousIdentity as Vi}from"@icp-sdk/core/agent";var Ja=()=>A.getInstance().getAuthClient()?.getIdentity(),wi=async()=>{let{getAuthClient:e,createAuthClient:a}=A.getInstance();return(e()??await a()).getIdentity()},Fi=async()=>{let e=w.getInstance().get();if(d(e))return null;let a=A.getInstance().getAuthClient();return await a?.isAuthenticated()??!1?a?.getIdentity()??null:null};var O=e=>_(e)?e:Ja()??new Vi;import{Actor as vi}from"@icp-sdk/core/agent";import{HttpAgent as Pi}from"@icp-sdk/core/agent";var Fr=({IDL:e})=>{let a=e.Variant({Heap:e.Null,Stable:e.Null}),r=e.Record({system_memory:e.Opt(a)}),t=e.Record({controllers:e.Vec(e.Principal),storage:e.Opt(r)}),n=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),i=e.Variant({OpenId:n}),o=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)}),s=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),c=e.Record({doc:o,delegation:s}),p=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),l=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),u=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),m=e.Variant({JwtFindProvider:p,GetCachedJwks:e.Null,JwtVerify:l,GetOrFetchJwks:u,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),N=e.Variant({PrepareDelegation:m,RegisterUser:e.Text}),g=e.Variant({Ok:c,Err:N}),I=e.Record({jwt:e.Text,salt:e.Vec(e.Nat8)}),F=e.Variant({OpenId:I}),q=e.Variant({Write:e.Null,Submit:e.Null}),J=e.Record({scope:q,expires_at:e.Nat64}),j=e.Variant({JwtFindProvider:p,InvalidController:e.Text,GetCachedJwks:e.Null,JwtVerify:l,GetOrFetchJwks:u,ControllerAlreadyExists:e.Null,InvalidObservatoryId:e.Text,TooManyControllers:e.Text}),oe=e.Variant({PrepareAutomation:j,RegisterController:e.Text,SaveWorkflowMetadata:e.Text,SaveUniqueJtiToken:e.Text}),se=e.Variant({Ok:e.Tuple(e.Principal,J),Err:oe}),M=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}),ce=e.Variant({Heap:e.Record({offset:e.Nat64}),Stable:e.Record({key:e.Opt(M)})}),Le=e.Variant({Append:e.Null,Clear:e.Null,AppendWithRouting:e.Null}),qe=e.Record({cursor:ce,strategy:Le,chunk_size:e.Opt(e.Nat32)}),Be=e.Record({next_cursor:e.Opt(ce)}),G=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),le=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),de=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),pe=e.Record({field:de,desc:e.Bool}),K=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),W=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(K),description:e.Opt(e.Text),created_at:e.Opt(K)}),ue=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),h=e.Record({order:e.Opt(pe),owner:e.Opt(e.Principal),matcher:e.Opt(W),paginate:e.Opt(ue)}),_e=e.Record({controllers:e.Vec(e.Principal)}),H=e.Variant({Emulator:e.Null,Automation:e.Null}),E=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),z=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(H),created_at:e.Nat64,scope:E,expires_at:e.Opt(e.Nat64)}),$=e.Record({version:e.Opt(e.Nat64)}),P=e.Variant({Db:e.Null,Storage:e.Null}),Je=e.Record({version:e.Opt(e.Nat64)}),je=e.Record({proposal_ids:e.Vec(e.Nat)}),Me=e.Record({cycles:e.Nat,destination_id:e.Principal}),Ge=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),Y=e.Record({key:M,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,Ge)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),b=e.Variant({GitHub:e.Null,Google:e.Null}),me=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),Ke=e.Record({delegation:e.Opt(me),client_id:e.Text}),Ne=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(b,Ke))}),Te=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),Oe=e.Record({allowed_callers:e.Vec(e.Principal)}),S=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(Ne),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(Te),rules:e.Opt(Oe)}),D=e.Variant({GitHub:e.Null}),ge=e.Record({scope:e.Opt(q),max_time_to_live:e.Opt(e.Nat64)}),We=e.Record({owner:e.Text,name:e.Text}),He=e.Record({refs:e.Opt(e.Vec(e.Text))}),X=e.Record({controller:e.Opt(ge),repositories:e.Vec(e.Tuple(We,He))}),ye=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(D,X))}),Q=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(ye),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64)}),C=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),U=e.Record({updated_at:e.Opt(e.Nat64),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(C)}),Z=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),xe=e.Variant({Deny:e.Null,Allow:e.Null}),he=e.Record({status_code:e.Nat16,location:e.Text}),V=e.Record({iframe:e.Opt(Z),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(C),raw_access:e.Opt(xe),redirects:e.Opt(e.Vec(e.Tuple(e.Text,he)))}),ze=e.Record({db:e.Opt(U),authentication:e.Opt(S),storage:V,automation:e.Opt(Q)}),$e=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Ye=e.Variant({OpenId:$e}),Xe=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),Qe=e.Record({signature:e.Vec(e.Nat8),delegation:Xe}),Ze=e.Variant({JwtFindProvider:p,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:l,GetOrFetchJwks:u,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),ea=e.Variant({Ok:Qe,Err:Ze}),fe=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),Re=e.Record({clear_existing_assets:e.Opt(e.Bool)}),aa=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),Ae=e.Variant({AssetsUpgrade:Re,SegmentsDeployment:aa}),v=e.Record({status:fe,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:Ae}),k=e.Variant({Controllers:e.Null,Private:e.Null,Public:e.Null,Managed:e.Null}),we=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),ee=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(a),updated_at:e.Nat64,max_size:e.Opt(e.Nat),read:k,created_at:e.Nat64,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(we),write:k,max_changes_per_user:e.Opt(e.Nat32)}),ra=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)}),ae=e.Record({memory:a,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}),ta=e.Variant({Callback:e.Record({token:ae,callback:e.Func([],[],["query"])})}),na=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(ta),status_code:e.Nat16}),ia=e.Record({token:e.Opt(ae),body:e.Vec(e.Nat8)}),re=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}),f=e.Record({batch_id:e.Nat}),oa=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,Y)),items_length:e.Nat64}),sa=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),L=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,o)),items_length:e.Nat64}),ca=e.Record({desc:e.Bool}),la=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),da=e.Record({order:e.Opt(ca),paginate:e.Opt(la)}),pa=e.Record({proposal_id:e.Nat}),Fe=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(pa,v)),items_length:e.Nat64}),ua=e.Record({include_system:e.Bool}),_a=e.Record({matcher:e.Opt(ua)}),Ve=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,ee)),items_length:e.Nat64}),ma=e.Record({stable:e.Nat64,heap:e.Nat64}),Na=e.Record({openid:e.Opt(Ne),version:e.Opt(e.Nat64),internet_identity:e.Opt(Te),rules:e.Opt(Oe)}),lr=e.Record({openid:e.Opt(ye),version:e.Opt(e.Nat64)}),dr=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(H),scope:E,expires_at:e.Opt(e.Nat64)}),pr=e.Record({controller:dr,controllers:e.Vec(e.Principal)}),ur=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt(C)}),Fa=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),_r=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(a),max_size:e.Opt(e.Nat),read:k,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(we),write:k,max_changes_per_user:e.Opt(e.Nat32)}),Va=e.Record({iframe:e.Opt(Z),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(C),raw_access:e.Opt(xe),redirects:e.Opt(e.Vec(e.Tuple(e.Text,he)))}),mr=e.Record({skip_certification:e.Opt(e.Bool)}),Nr=e.Record({config:Va,options:mr}),va=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Ia=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([i],[g],[]),authenticate_automation:e.Func([F],[se],[]),certify_assets_chunk:e.Func([qe],[Be],[]),commit_asset_upload:e.Func([G],[],[]),commit_proposal:e.Func([le],[e.Null],[]),commit_proposal_asset_upload:e.Func([G],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(G)],[],[]),count_assets:e.Func([e.Text,h],[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,h],[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([_e],[e.Vec(e.Tuple(e.Principal,z))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,$],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,h],[],[]),del_filtered_docs:e.Func([e.Text,h],[],[]),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,$))],[],[]),del_rule:e.Func([P,e.Text,Je],[],[]),delete_proposal_assets:e.Func([je],[],[]),deposit_cycles:e.Func([Me],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(Y)],["query"]),get_auth_config:e.Func([],[e.Opt(S)],["query"]),get_automation_config:e.Func([],[e.Opt(Q)],["query"]),get_config:e.Func([],[ze],[]),get_db_config:e.Func([],[e.Opt(U)],["query"]),get_delegation:e.Func([Ye],[ea],["query"]),get_doc:e.Func([e.Text,e.Text],[e.Opt(o)],["query"]),get_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(Y)))],["query"]),get_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(o)))],["query"]),get_proposal:e.Func([e.Nat],[e.Opt(v)],["query"]),get_rule:e.Func([P,e.Text],[e.Opt(ee)],["query"]),get_storage_config:e.Func([],[V],["query"]),http_request:e.Func([ra],[na],["query"]),http_request_streaming_callback:e.Func([ae],[ia],["query"]),init_asset_upload:e.Func([re],[f],[]),init_proposal:e.Func([Ae],[e.Nat,v],[]),init_proposal_asset_upload:e.Func([re,e.Nat],[f],[]),init_proposal_many_assets_upload:e.Func([e.Vec(re),e.Nat],[e.Vec(e.Tuple(e.Text,f))],[]),list_assets:e.Func([e.Text,h],[oa],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,z))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,sa))],["query"]),list_docs:e.Func([e.Text,h],[L],["query"]),list_proposals:e.Func([da],[Fe],["query"]),list_rules:e.Func([P,_a],[Ve],["query"]),memory_size:e.Func([],[ma],["query"]),reject_proposal:e.Func([le],[e.Null],[]),set_asset_token:e.Func([e.Text,e.Text,e.Opt(e.Text)],[],[]),set_auth_config:e.Func([Na],[S],[]),set_automation_config:e.Func([lr],[Q],[]),set_controllers:e.Func([pr],[e.Vec(e.Tuple(e.Principal,z))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([ur],[U],[]),set_doc:e.Func([e.Text,e.Text,Fa],[o],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,Fa))],[e.Vec(e.Tuple(e.Text,o))],[]),set_rule:e.Func([P,e.Text,_r],[ee],[]),set_storage_config:e.Func([Va],[V],[]),set_storage_config_with_options:e.Func([Nr],[V],[]),submit_proposal:e.Func([e.Nat],[e.Nat,v],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([va],[Ia],[]),upload_proposal_asset_chunk:e.Func([va],[Ia],[])})},Vr=({IDL:e})=>{let a=e.Variant({Heap:e.Null,Stable:e.Null}),r=e.Record({system_memory:e.Opt(a)}),t=e.Record({controllers:e.Vec(e.Principal),storage:e.Opt(r)}),n=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),i=e.Variant({OpenId:n}),o=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)}),s=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),c=e.Record({doc:o,delegation:s}),p=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),l=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),u=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),m=e.Variant({JwtFindProvider:p,GetCachedJwks:e.Null,JwtVerify:l,GetOrFetchJwks:u,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),N=e.Variant({PrepareDelegation:m,RegisterUser:e.Text}),g=e.Variant({Ok:c,Err:N}),I=e.Record({jwt:e.Text,salt:e.Vec(e.Nat8)}),F=e.Variant({OpenId:I}),q=e.Variant({Write:e.Null,Submit:e.Null}),J=e.Record({scope:q,expires_at:e.Nat64}),j=e.Variant({JwtFindProvider:p,InvalidController:e.Text,GetCachedJwks:e.Null,JwtVerify:l,GetOrFetchJwks:u,ControllerAlreadyExists:e.Null,InvalidObservatoryId:e.Text,TooManyControllers:e.Text}),oe=e.Variant({PrepareAutomation:j,RegisterController:e.Text,SaveWorkflowMetadata:e.Text,SaveUniqueJtiToken:e.Text}),se=e.Variant({Ok:e.Tuple(e.Principal,J),Err:oe}),M=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}),ce=e.Variant({Heap:e.Record({offset:e.Nat64}),Stable:e.Record({key:e.Opt(M)})}),Le=e.Variant({Append:e.Null,Clear:e.Null,AppendWithRouting:e.Null}),qe=e.Record({cursor:ce,strategy:Le,chunk_size:e.Opt(e.Nat32)}),Be=e.Record({next_cursor:e.Opt(ce)}),G=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),le=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),de=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),pe=e.Record({field:de,desc:e.Bool}),K=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),W=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(K),description:e.Opt(e.Text),created_at:e.Opt(K)}),ue=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),h=e.Record({order:e.Opt(pe),owner:e.Opt(e.Principal),matcher:e.Opt(W),paginate:e.Opt(ue)}),_e=e.Record({controllers:e.Vec(e.Principal)}),H=e.Variant({Emulator:e.Null,Automation:e.Null}),E=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),z=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(H),created_at:e.Nat64,scope:E,expires_at:e.Opt(e.Nat64)}),$=e.Record({version:e.Opt(e.Nat64)}),P=e.Variant({Db:e.Null,Storage:e.Null}),Je=e.Record({version:e.Opt(e.Nat64)}),je=e.Record({proposal_ids:e.Vec(e.Nat)}),Me=e.Record({cycles:e.Nat,destination_id:e.Principal}),Ge=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),Y=e.Record({key:M,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,Ge)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),b=e.Variant({GitHub:e.Null,Google:e.Null}),me=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),Ke=e.Record({delegation:e.Opt(me),client_id:e.Text}),Ne=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(b,Ke))}),Te=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),Oe=e.Record({allowed_callers:e.Vec(e.Principal)}),S=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(Ne),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(Te),rules:e.Opt(Oe)}),D=e.Variant({GitHub:e.Null}),ge=e.Record({scope:e.Opt(q),max_time_to_live:e.Opt(e.Nat64)}),We=e.Record({owner:e.Text,name:e.Text}),He=e.Record({refs:e.Opt(e.Vec(e.Text))}),X=e.Record({controller:e.Opt(ge),repositories:e.Vec(e.Tuple(We,He))}),ye=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(D,X))}),Q=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(ye),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64)}),C=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),U=e.Record({updated_at:e.Opt(e.Nat64),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(C)}),Z=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),xe=e.Variant({Deny:e.Null,Allow:e.Null}),he=e.Record({status_code:e.Nat16,location:e.Text}),V=e.Record({iframe:e.Opt(Z),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(C),raw_access:e.Opt(xe),redirects:e.Opt(e.Vec(e.Tuple(e.Text,he)))}),ze=e.Record({db:e.Opt(U),authentication:e.Opt(S),storage:V,automation:e.Opt(Q)}),$e=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Ye=e.Variant({OpenId:$e}),Xe=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),Qe=e.Record({signature:e.Vec(e.Nat8),delegation:Xe}),Ze=e.Variant({JwtFindProvider:p,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:l,GetOrFetchJwks:u,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),ea=e.Variant({Ok:Qe,Err:Ze}),fe=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),Re=e.Record({clear_existing_assets:e.Opt(e.Bool)}),aa=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),Ae=e.Variant({AssetsUpgrade:Re,SegmentsDeployment:aa}),v=e.Record({status:fe,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:Ae}),k=e.Variant({Controllers:e.Null,Private:e.Null,Public:e.Null,Managed:e.Null}),we=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),ee=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(a),updated_at:e.Nat64,max_size:e.Opt(e.Nat),read:k,created_at:e.Nat64,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(we),write:k,max_changes_per_user:e.Opt(e.Nat32)}),ra=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)}),ae=e.Record({memory:a,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}),ta=e.Variant({Callback:e.Record({token:ae,callback:e.Func([],[],[])})}),na=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(ta),status_code:e.Nat16}),ia=e.Record({token:e.Opt(ae),body:e.Vec(e.Nat8)}),re=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}),f=e.Record({batch_id:e.Nat}),oa=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,Y)),items_length:e.Nat64}),sa=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),L=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,o)),items_length:e.Nat64}),ca=e.Record({desc:e.Bool}),la=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),da=e.Record({order:e.Opt(ca),paginate:e.Opt(la)}),pa=e.Record({proposal_id:e.Nat}),Fe=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(pa,v)),items_length:e.Nat64}),ua=e.Record({include_system:e.Bool}),_a=e.Record({matcher:e.Opt(ua)}),Ve=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,ee)),items_length:e.Nat64}),ma=e.Record({stable:e.Nat64,heap:e.Nat64}),Na=e.Record({openid:e.Opt(Ne),version:e.Opt(e.Nat64),internet_identity:e.Opt(Te),rules:e.Opt(Oe)}),lr=e.Record({openid:e.Opt(ye),version:e.Opt(e.Nat64)}),dr=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(H),scope:E,expires_at:e.Opt(e.Nat64)}),pr=e.Record({controller:dr,controllers:e.Vec(e.Principal)}),ur=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt(C)}),Fa=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),_r=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(a),max_size:e.Opt(e.Nat),read:k,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(we),write:k,max_changes_per_user:e.Opt(e.Nat32)}),Va=e.Record({iframe:e.Opt(Z),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(C),raw_access:e.Opt(xe),redirects:e.Opt(e.Vec(e.Tuple(e.Text,he)))}),mr=e.Record({skip_certification:e.Opt(e.Bool)}),Nr=e.Record({config:Va,options:mr}),va=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Ia=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([i],[g],[]),authenticate_automation:e.Func([F],[se],[]),certify_assets_chunk:e.Func([qe],[Be],[]),commit_asset_upload:e.Func([G],[],[]),commit_proposal:e.Func([le],[e.Null],[]),commit_proposal_asset_upload:e.Func([G],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(G)],[],[]),count_assets:e.Func([e.Text,h],[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,h],[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([_e],[e.Vec(e.Tuple(e.Principal,z))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,$],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,h],[],[]),del_filtered_docs:e.Func([e.Text,h],[],[]),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,$))],[],[]),del_rule:e.Func([P,e.Text,Je],[],[]),delete_proposal_assets:e.Func([je],[],[]),deposit_cycles:e.Func([Me],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(Y)],[]),get_auth_config:e.Func([],[e.Opt(S)],[]),get_automation_config:e.Func([],[e.Opt(Q)],[]),get_config:e.Func([],[ze],[]),get_db_config:e.Func([],[e.Opt(U)],[]),get_delegation:e.Func([Ye],[ea],[]),get_doc:e.Func([e.Text,e.Text],[e.Opt(o)],[]),get_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(Y)))],[]),get_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(o)))],[]),get_proposal:e.Func([e.Nat],[e.Opt(v)],[]),get_rule:e.Func([P,e.Text],[e.Opt(ee)],[]),get_storage_config:e.Func([],[V],[]),http_request:e.Func([ra],[na],[]),http_request_streaming_callback:e.Func([ae],[ia],[]),init_asset_upload:e.Func([re],[f],[]),init_proposal:e.Func([Ae],[e.Nat,v],[]),init_proposal_asset_upload:e.Func([re,e.Nat],[f],[]),init_proposal_many_assets_upload:e.Func([e.Vec(re),e.Nat],[e.Vec(e.Tuple(e.Text,f))],[]),list_assets:e.Func([e.Text,h],[oa],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,z))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,sa))],[]),list_docs:e.Func([e.Text,h],[L],[]),list_proposals:e.Func([da],[Fe],[]),list_rules:e.Func([P,_a],[Ve],[]),memory_size:e.Func([],[ma],[]),reject_proposal:e.Func([le],[e.Null],[]),set_asset_token:e.Func([e.Text,e.Text,e.Opt(e.Text)],[],[]),set_auth_config:e.Func([Na],[S],[]),set_automation_config:e.Func([lr],[Q],[]),set_controllers:e.Func([pr],[e.Vec(e.Tuple(e.Principal,z))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([ur],[U],[]),set_doc:e.Func([e.Text,e.Text,Fa],[o],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,Fa))],[e.Vec(e.Tuple(e.Text,o))],[]),set_rule:e.Func([P,e.Text,_r],[ee],[]),set_storage_config:e.Func([Va],[V],[]),set_storage_config_with_options:e.Func([Nr],[V],[]),submit_proposal:e.Func([e.Nat],[e.Nat,v],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([va],[Ia],[]),upload_proposal_asset_chunk:e.Func([va],[Ia],[])})},Ii=({IDL:e})=>{let a=e.Record({e8s:e.Nat64}),r=e.Record({mission_control_id:e.Principal,user:e.Principal}),t=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),n=e.Variant({OpenId:t}),i=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),o=e.Variant({GitHub:e.Null,Google:e.Null}),s=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:o,data:s}),p=e.Variant({InternetIdentity:e.Null,OpenId:c}),l=e.Record({updated_at:e.Nat64,credits:a,mission_control_id:e.Opt(e.Principal),provider:e.Opt(p),owner:e.Principal,created_at:e.Nat64}),u=e.Record({delegation:i,account:l}),m=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),N=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),g=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}),I=e.Variant({JwtFindProvider:m,GetCachedJwks:e.Null,JwtVerify:N,GetOrFetchJwks:g,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),F=e.Variant({PrepareDelegation:I,RegisterUser:e.Text}),q=e.Variant({Ok:u,Err:F}),J=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),j=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),oe=e.Record({subnet_id:e.Opt(e.Principal)}),se=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),name:e.Opt(e.Text),user:e.Principal}),M=e.Variant({Heap:e.Null,Stable:e.Null}),ce=e.Record({system_memory:e.Opt(M)}),Le=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),storage:e.Opt(ce),name:e.Opt(e.Text),user:e.Principal}),qe=e.Record({controllers:e.Vec(e.Principal)}),Be=e.Record({proposal_ids:e.Vec(e.Nat)}),G=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),le=e.Record({delegation:e.Opt(G),client_id:e.Text}),de=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(o,le))}),pe=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),K=e.Record({allowed_callers:e.Vec(e.Principal)}),W=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(de),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(pe),rules:e.Opt(K)}),ue=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),h=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),_e=e.Variant({Deny:e.Null,Allow:e.Null}),H=e.Record({status_code:e.Nat16,location:e.Text}),E=e.Record({iframe:e.Opt(ue),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(h),raw_access:e.Opt(_e),redirects:e.Opt(e.Vec(e.Tuple(e.Text,H)))}),z=e.Record({authentication:e.Opt(W),storage:E}),$=e.Record({user:e.Principal}),P=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Je=e.Variant({OpenId:P}),je=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),Me=e.Record({signature:e.Vec(e.Nat8),delegation:je}),Ge=e.Variant({JwtFindProvider:m,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:N,GetOrFetchJwks:g,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),Y=e.Variant({Ok:Me,Err:Ge}),b=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),me=e.Record({e12s:e.Nat64}),Ke=e.Record({updated_at:e.Nat64,fee_cycles:me,fee_icp:e.Opt(a)}),Ne=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),Te=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Oe=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),S=e.Variant({AssetsUpgrade:Te,SegmentsDeployment:Oe}),D=e.Record({status:Ne,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:S}),ge=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),We=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)}),He=e.Variant({Heap:e.Null,Stable:e.Null}),X=e.Record({memory:He,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}),ye=e.Variant({Callback:e.Record({token:X,callback:e.Func([],[],["query"])})}),Q=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(ye),status_code:e.Nat16}),C=e.Record({token:e.Opt(X),body:e.Vec(e.Nat8)}),U=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}),Z=e.Record({batch_id:e.Nat}),xe=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),he=e.Record({field:xe,desc:e.Bool}),V=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),ze=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(V),description:e.Opt(e.Text),created_at:e.Opt(V)}),$e=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),Ye=e.Record({order:e.Opt(he),owner:e.Opt(e.Principal),matcher:e.Opt(ze),paginate:e.Opt($e)}),Xe=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}),Qe=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),Ze=e.Record({key:Xe,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,Qe)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),ea=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,Ze)),items_length:e.Nat64}),fe=e.Variant({Emulator:e.Null,Automation:e.Null}),Re=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),aa=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(fe),created_at:e.Nat64,scope:Re,expires_at:e.Opt(e.Nat64)}),Ae=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),v=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),k=e.Record({status:v,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)}),we=e.Record({block_index:e.Nat64,ledger_id:e.Principal}),ee=e.Record({owner:e.Principal,subaccount:e.Opt(e.Vec(e.Nat8))}),ra=e.Record({status:v,updated_at:e.Nat64,created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64),purchaser:ee}),ae=e.Record({desc:e.Bool}),ta=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),na=e.Record({order:e.Opt(ae),paginate:e.Opt(ta)}),ia=e.Record({proposal_id:e.Nat}),re=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(ia,D)),items_length:e.Nat64}),f=e.Variant({Orbiter:e.Null,Satellite:e.Null}),oa=e.Record({segment_id:e.Opt(e.Principal),segment_kind:e.Opt(f)}),sa=e.Record({user:e.Principal,segment_id:e.Principal,segment_kind:f}),L=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,created_at:e.Nat64}),ca=e.Record({openid:e.Opt(de),version:e.Opt(e.Nat64),internet_identity:e.Opt(pe),rules:e.Opt(K)}),la=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(fe),scope:Re,expires_at:e.Opt(e.Nat64)}),da=e.Record({controller:la,controllers:e.Vec(e.Principal)}),pa=e.Record({fee_cycles:me,fee_icp:e.Opt(a)}),Fe=e.Record({metadata:e.Opt(e.Vec(e.Tuple(e.Text,e.Text))),segment_id:e.Principal,segment_kind:f}),ua=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:f}),_a=e.Record({iframe:e.Opt(ue),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(h),raw_access:e.Opt(_e),redirects:e.Opt(e.Vec(e.Tuple(e.Text,H)))}),Ve=e.Record({segment_id:e.Principal,segment_kind:f}),ma=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Na=e.Record({chunk_id:e.Nat});return e.Service({add_credits:e.Func([e.Principal,a],[],[]),add_invitation_code:e.Func([e.Text],[],[]),assert_mission_control_center:e.Func([r],[],["query"]),authenticate:e.Func([n],[q],[]),commit_proposal:e.Func([J],[e.Null],[]),commit_proposal_asset_upload:e.Func([j],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(j)],[],[]),count_proposals:e.Func([],[e.Nat64],["query"]),create_mission_control:e.Func([oe],[e.Principal],[]),create_orbiter:e.Func([se],[e.Principal],[]),create_satellite:e.Func([Le],[e.Principal],[]),del_controllers:e.Func([qe],[],[]),del_custom_domain:e.Func([e.Text],[],[]),delete_proposal_assets:e.Func([Be],[],[]),get_account:e.Func([],[e.Opt(l)],["query"]),get_auth_config:e.Func([],[e.Opt(W)],["query"]),get_config:e.Func([],[z],["query"]),get_create_orbiter_fee:e.Func([$],[e.Opt(a)],["query"]),get_create_satellite_fee:e.Func([$],[e.Opt(a)],["query"]),get_credits:e.Func([],[a],["query"]),get_delegation:e.Func([Je],[Y],["query"]),get_fee:e.Func([b],[Ke],["query"]),get_or_init_account:e.Func([],[l],[]),get_proposal:e.Func([e.Nat],[e.Opt(D)],["query"]),get_rate_config:e.Func([b],[ge],["query"]),get_storage_config:e.Func([],[E],["query"]),http_request:e.Func([We],[Q],["query"]),http_request_streaming_callback:e.Func([X],[C],["query"]),init_proposal:e.Func([S],[e.Nat,D],[]),init_proposal_asset_upload:e.Func([U,e.Nat],[Z],[]),init_proposal_many_assets_upload:e.Func([e.Vec(U),e.Nat],[e.Vec(e.Tuple(e.Text,Z))],[]),list_accounts:e.Func([],[e.Vec(e.Tuple(e.Principal,l))],["query"]),list_assets:e.Func([e.Text,Ye],[ea],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,aa))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Ae))],["query"]),list_icp_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,k))],["query"]),list_icrc_payments:e.Func([],[e.Vec(e.Tuple(we,ra))],["query"]),list_proposals:e.Func([na],[re],["query"]),list_segments:e.Func([oa],[e.Vec(e.Tuple(sa,L))],["query"]),reject_proposal:e.Func([J],[e.Null],[]),set_auth_config:e.Func([ca],[W],[]),set_controllers:e.Func([da],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([b,pa],[],[]),set_many_segments:e.Func([e.Vec(Fe)],[e.Vec(L)],[]),set_rate_config:e.Func([b,ge],[],[]),set_segment:e.Func([Fe],[L],[]),set_segment_metadata:e.Func([ua],[L],[]),set_storage_config:e.Func([_a],[E],[]),submit_proposal:e.Func([e.Nat],[e.Nat,D],[]),unset_many_segments:e.Func([e.Vec(Ve)],[],[]),unset_segment:e.Func([Ve],[],[]),upload_proposal_asset_chunk:e.Func([ma],[Na],[])})},Ei=({IDL:e})=>{let a=e.Record({e8s:e.Nat64}),r=e.Record({mission_control_id:e.Principal,user:e.Principal}),t=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),n=e.Variant({OpenId:t}),i=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),o=e.Variant({GitHub:e.Null,Google:e.Null}),s=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:o,data:s}),p=e.Variant({InternetIdentity:e.Null,OpenId:c}),l=e.Record({updated_at:e.Nat64,credits:a,mission_control_id:e.Opt(e.Principal),provider:e.Opt(p),owner:e.Principal,created_at:e.Nat64}),u=e.Record({delegation:i,account:l}),m=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),N=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),g=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}),I=e.Variant({JwtFindProvider:m,GetCachedJwks:e.Null,JwtVerify:N,GetOrFetchJwks:g,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),F=e.Variant({PrepareDelegation:I,RegisterUser:e.Text}),q=e.Variant({Ok:u,Err:F}),J=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),j=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),oe=e.Record({subnet_id:e.Opt(e.Principal)}),se=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),name:e.Opt(e.Text),user:e.Principal}),M=e.Variant({Heap:e.Null,Stable:e.Null}),ce=e.Record({system_memory:e.Opt(M)}),Le=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),storage:e.Opt(ce),name:e.Opt(e.Text),user:e.Principal}),qe=e.Record({controllers:e.Vec(e.Principal)}),Be=e.Record({proposal_ids:e.Vec(e.Nat)}),G=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),le=e.Record({delegation:e.Opt(G),client_id:e.Text}),de=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(o,le))}),pe=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),K=e.Record({allowed_callers:e.Vec(e.Principal)}),W=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(de),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(pe),rules:e.Opt(K)}),ue=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),h=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),_e=e.Variant({Deny:e.Null,Allow:e.Null}),H=e.Record({status_code:e.Nat16,location:e.Text}),E=e.Record({iframe:e.Opt(ue),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(h),raw_access:e.Opt(_e),redirects:e.Opt(e.Vec(e.Tuple(e.Text,H)))}),z=e.Record({authentication:e.Opt(W),storage:E}),$=e.Record({user:e.Principal}),P=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Je=e.Variant({OpenId:P}),je=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),Me=e.Record({signature:e.Vec(e.Nat8),delegation:je}),Ge=e.Variant({JwtFindProvider:m,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:N,GetOrFetchJwks:g,DeriveSeedFailed:e.Text,InvalidObservatoryId:e.Text}),Y=e.Variant({Ok:Me,Err:Ge}),b=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),me=e.Record({e12s:e.Nat64}),Ke=e.Record({updated_at:e.Nat64,fee_cycles:me,fee_icp:e.Opt(a)}),Ne=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),Te=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Oe=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),S=e.Variant({AssetsUpgrade:Te,SegmentsDeployment:Oe}),D=e.Record({status:Ne,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:S}),ge=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),We=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)}),He=e.Variant({Heap:e.Null,Stable:e.Null}),X=e.Record({memory:He,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}),ye=e.Variant({Callback:e.Record({token:X,callback:e.Func([],[],[])})}),Q=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(ye),status_code:e.Nat16}),C=e.Record({token:e.Opt(X),body:e.Vec(e.Nat8)}),U=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}),Z=e.Record({batch_id:e.Nat}),xe=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),he=e.Record({field:xe,desc:e.Bool}),V=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),ze=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(V),description:e.Opt(e.Text),created_at:e.Opt(V)}),$e=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),Ye=e.Record({order:e.Opt(he),owner:e.Opt(e.Principal),matcher:e.Opt(ze),paginate:e.Opt($e)}),Xe=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}),Qe=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),Ze=e.Record({key:Xe,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,Qe)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),ea=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,Ze)),items_length:e.Nat64}),fe=e.Variant({Emulator:e.Null,Automation:e.Null}),Re=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),aa=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(fe),created_at:e.Nat64,scope:Re,expires_at:e.Opt(e.Nat64)}),Ae=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),v=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),k=e.Record({status:v,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)}),we=e.Record({block_index:e.Nat64,ledger_id:e.Principal}),ee=e.Record({owner:e.Principal,subaccount:e.Opt(e.Vec(e.Nat8))}),ra=e.Record({status:v,updated_at:e.Nat64,created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64),purchaser:ee}),ae=e.Record({desc:e.Bool}),ta=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),na=e.Record({order:e.Opt(ae),paginate:e.Opt(ta)}),ia=e.Record({proposal_id:e.Nat}),re=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(ia,D)),items_length:e.Nat64}),f=e.Variant({Orbiter:e.Null,Satellite:e.Null}),oa=e.Record({segment_id:e.Opt(e.Principal),segment_kind:e.Opt(f)}),sa=e.Record({user:e.Principal,segment_id:e.Principal,segment_kind:f}),L=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,created_at:e.Nat64}),ca=e.Record({openid:e.Opt(de),version:e.Opt(e.Nat64),internet_identity:e.Opt(pe),rules:e.Opt(K)}),la=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(fe),scope:Re,expires_at:e.Opt(e.Nat64)}),da=e.Record({controller:la,controllers:e.Vec(e.Principal)}),pa=e.Record({fee_cycles:me,fee_icp:e.Opt(a)}),Fe=e.Record({metadata:e.Opt(e.Vec(e.Tuple(e.Text,e.Text))),segment_id:e.Principal,segment_kind:f}),ua=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:f}),_a=e.Record({iframe:e.Opt(ue),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(h),raw_access:e.Opt(_e),redirects:e.Opt(e.Vec(e.Tuple(e.Text,H)))}),Ve=e.Record({segment_id:e.Principal,segment_kind:f}),ma=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Na=e.Record({chunk_id:e.Nat});return e.Service({add_credits:e.Func([e.Principal,a],[],[]),add_invitation_code:e.Func([e.Text],[],[]),assert_mission_control_center:e.Func([r],[],[]),authenticate:e.Func([n],[q],[]),commit_proposal:e.Func([J],[e.Null],[]),commit_proposal_asset_upload:e.Func([j],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(j)],[],[]),count_proposals:e.Func([],[e.Nat64],[]),create_mission_control:e.Func([oe],[e.Principal],[]),create_orbiter:e.Func([se],[e.Principal],[]),create_satellite:e.Func([Le],[e.Principal],[]),del_controllers:e.Func([qe],[],[]),del_custom_domain:e.Func([e.Text],[],[]),delete_proposal_assets:e.Func([Be],[],[]),get_account:e.Func([],[e.Opt(l)],[]),get_auth_config:e.Func([],[e.Opt(W)],[]),get_config:e.Func([],[z],[]),get_create_orbiter_fee:e.Func([$],[e.Opt(a)],[]),get_create_satellite_fee:e.Func([$],[e.Opt(a)],[]),get_credits:e.Func([],[a],[]),get_delegation:e.Func([Je],[Y],[]),get_fee:e.Func([b],[Ke],[]),get_or_init_account:e.Func([],[l],[]),get_proposal:e.Func([e.Nat],[e.Opt(D)],[]),get_rate_config:e.Func([b],[ge],[]),get_storage_config:e.Func([],[E],[]),http_request:e.Func([We],[Q],[]),http_request_streaming_callback:e.Func([X],[C],[]),init_proposal:e.Func([S],[e.Nat,D],[]),init_proposal_asset_upload:e.Func([U,e.Nat],[Z],[]),init_proposal_many_assets_upload:e.Func([e.Vec(U),e.Nat],[e.Vec(e.Tuple(e.Text,Z))],[]),list_accounts:e.Func([],[e.Vec(e.Tuple(e.Principal,l))],[]),list_assets:e.Func([e.Text,Ye],[ea],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,aa))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Ae))],[]),list_icp_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,k))],[]),list_icrc_payments:e.Func([],[e.Vec(e.Tuple(we,ra))],[]),list_proposals:e.Func([na],[re],[]),list_segments:e.Func([oa],[e.Vec(e.Tuple(sa,L))],[]),reject_proposal:e.Func([J],[e.Null],[]),set_auth_config:e.Func([ca],[W],[]),set_controllers:e.Func([da],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([b,pa],[],[]),set_many_segments:e.Func([e.Vec(Fe)],[e.Vec(L)],[]),set_rate_config:e.Func([b,ge],[],[]),set_segment:e.Func([Fe],[L],[]),set_segment_metadata:e.Func([ua],[L],[]),set_storage_config:e.Func([_a],[E],[]),submit_proposal:e.Func([e.Nat],[e.Nat,D],[]),unset_many_segments:e.Func([e.Vec(Ve)],[],[]),unset_segment:e.Func([Ve],[],[]),upload_proposal_asset_chunk:e.Func([ma],[Na],[])})};var bi=async({identity:e,host:a,localActor:r})=>await Pi.create({identity:e,host:a,retryTimes:10,shouldFetchRootKey:r}),Si=async({agent:e,...a})=>e??await Di(a),Di=async({identity:e,container:a})=>{let r=_(a)&&a!==!1;return await bi({identity:e,host:r?a===!0?"http://127.0.0.1:5987":a:"https://icp-api.io",localActor:r})};var lt=({satelliteId:e,certified:a=!1,...r})=>pt({canisterId:e,...r,idlFactory:a?Vr:Fr});var dt=({consoleId:e,certified:a=!1,...r})=>pt({canisterId:e,...r,idlFactory:a?Ei:Ii}),pt=({canisterId:e,idlFactory:a,...r})=>{if(d(e))throw new Error("No canister ID provided.");return Ci({canisterId:e,idlFactory:a,...r})},Ci=async({canisterId:e,idlFactory:a,config:r,...t})=>{let n=await Si(t);return vi.createActor(a,{agent:n,canisterId:e,...r??{}})};var ut=({satelliteId:e,container:a})=>{let{satelliteId:r}=vr({satelliteId:e}),{container:t}=Ir({container:a});if(_(t)&&t!==!1){let{host:n,protocol:i}=new URL(t===!0?xa:t);return`${i}//${r??"unknown"}.${n.replace("127.0.0.1","localhost")}`}return`https://${r??"unknown"}.icp0.io`},vr=({satelliteId:e})=>_(e)?{satelliteId:e}:R.getInstance().get()??{satelliteId:void 0},Ir=({container:e})=>_(e)?{container:e}:R.getInstance().get()??{container:void 0};var x=({satellite:e,options:{certified:a}})=>mt({idlFactory:a?Vr:Fr,actorKey:`stock#${a?"update":"query"}`,...e}),_t=({idlFactory:e,...a})=>mt({idlFactory:e,actorKey:"extended#query",...a}),mt=async({satelliteId:e,container:a,...r})=>{let{satelliteId:t}=vr({satelliteId:e});Ea(t,"No satellite ID defined. Did you initialize Juno?");let{container:n}=Ir({container:a});return await fa.getInstance().getActor({satelliteId:t,container:n,...r})};import{Principal as Ui}from"@icp-sdk/core/principal";var ja=class extends Error{},Pe=class extends Error{},Ma=class extends Error{},Ga=class extends Error{},Aa=class extends Error{},Ka=class extends Error{},Wa=class extends Error{},Ha=class extends Error{},za=class extends Error{};var Nt=e=>{if(d(e))return T();switch(e.matcher){case"equal":return T({Equal:e.timestamp});case"greaterThan":return T({GreaterThan:e.timestamp});case"lessThan":return T({LessThan:e.timestamp});case"between":return T({Between:[e.timestamps.start,e.timestamps.end]});default:throw new za("Invalid list matcher for timestamp",e)}},ke=({matcher:e,paginate:a,order:r,owner:t})=>({matcher:d(e)?[]:[{key:T(e.key),description:T(e.description),created_at:Nt(e.createdAt),updated_at:Nt(e.updatedAt)}],paginate:T(d(a)?void 0:{start_after:T(a.startAfter),limit:T(d(a.limit)?void 0:BigInt(a.limit))}),order:T(d(r)?void 0:{desc:r.desc,field:r.field==="created_at"?{CreatedAt:null}:r.field==="updated_at"?{UpdatedAt:null}:{Keys:null}}),owner:T(d(t)?void 0:typeof t=="string"?Ui.fromText(t):t)});var Tt=async({data:e})=>{try{return await qa(e)}catch(a){console.error("The data parsing has failed, mapping to undefined as a fallback.",a);return}};var Er=async e=>{let{data:a,version:r,description:t}=e;return{description:T(t),data:await Kr(a),version:T(r)}},Pr=e=>{let{version:a}=e;return{version:T(a)}},Ta=async({doc:e,key:a})=>{let{owner:r,version:t,description:n,data:i,...o}=e;return{key:a,description:y(n),owner:r.toText(),data:await qa(i),version:y(t),...o}};var Ot=async({collection:e,key:a,...r})=>{let{get_doc:t}=await x(r),n=y(await t(e,a));if(!d(n))return Ta({doc:n,key:a})},gt=async({docs:e,...a})=>{let{get_many_docs:r}=await x(a),t=e.map(({collection:o,key:s})=>[o,s]),n=await r(t),i=[];for(let[o,s]of n){let c=y(s);i.push(_(c)?await Ta({key:o,doc:c}):void 0)}return i},yt=async({collection:e,doc:a,...r})=>{let{set_doc:t}=await x(r),{key:n}=a,i=await Er(a),o=await t(e,n,i);return await Ta({key:n,doc:o})},xt=async({docs:e,...a})=>{let{set_many_docs:r}=await x(a),t=[];for(let{collection:o,doc:s}of e){let{key:c}=s;t.push([o,c,await Er(s)])}let n=await r(t),i=[];for(let[o,s]of n)i.push(await Ta({key:o,doc:s}));return i},ht=async({collection:e,doc:a,...r})=>{let{del_doc:t}=await x(r),{key:n}=a;return t(e,n,Pr(a))},ft=async({docs:e,...a})=>{let{del_many_docs:r}=await x(a),t=e.map(({collection:n,doc:i})=>[n,i.key,Pr(i)]);await r(t)},Rt=async({collection:e,filter:a,...r})=>{let{del_filtered_docs:t}=await x(r);return t(e,ke(a))},At=async({collection:e,filter:a,...r})=>{let{list_docs:t}=await x(r),{items:n,items_page:i,items_length:o,matches_length:s,matches_pages:c}=await t(e,ke(a)),p=[];for(let[l,u]of n){let{data:m,owner:N,description:g,version:I,...F}=u;p.push({key:l,description:y(g),owner:N.toText(),data:await Tt({data:m}),version:y(I),...F})}return{items:p,items_length:o,items_page:y(i),matches_length:s,matches_pages:y(c)}},wt=async({collection:e,filter:a,...r})=>{let{count_docs:t}=await x(r);return t(e,ke(a))};var $a=async({satellite:e,options:a,...r})=>{let t=O(e?.identity);return await Ot({...r,satellite:{...e,identity:t},options:a??ne})},al=async({satellite:e,options:a,...r})=>{let t=O(e?.identity);return await gt({...r,satellite:{...e,identity:t},options:a??ne})},Ft=async({satellite:e,...a})=>{let r=O(e?.identity);return await yt({...a,satellite:{...e,identity:r},options:{certified:!0}})},Vt=async({satellite:e,...a})=>{let r=O(e?.identity);return await xt({...a,satellite:{...e,identity:r},options:{certified:!0}})},rl=async({satellite:e,...a})=>{let r=O(e?.identity);return await ht({...a,satellite:{...e,identity:r},options:{certified:!0}})},tl=async({satellite:e,...a})=>{let r=O(e?.identity);return await ft({...a,satellite:{...e,identity:r},options:{certified:!0}})},nl=async({satellite:e,filter:a,...r})=>{let t=O(e?.identity);return await Rt({...r,filter:a??{},satellite:{...e,identity:t},options:{certified:!0}})},il=async({satellite:e,options:a,filter:r,...t})=>{let n=O(e?.identity);return await At({...t,filter:r??{},satellite:{...e,identity:n},options:a??ne})},ol=async({satellite:e,options:a,filter:r,...t})=>{let n=O(e?.identity);return await wt({...t,filter:r??{},satellite:{...e,identity:n},options:a??ne})};var vt=async({provider:e})=>{let{user:a,userId:r}=await Ya();if(_(a))return a;try{return await ki({userId:r,provider:e})}catch(t){if(wr({error:t,type:ct})){let n=await It({userId:r});if(_(n))return n}throw t}},Ya=async()=>{let e=Ja();if(d(e))throw new Ha("No identity to initialize the user. Have you initialized Juno?");let a=e.getPrincipal().toText(),r=await It({userId:a});return{userId:a,user:r}},It=({userId:e})=>$a({collection:"#user",key:e}),ki=({userId:e,...a})=>Ft({collection:"#user",doc:{key:e,data:a}});var Xa=async({syncTabsOnSuccess:e}={syncTabsOnSuccess:!1})=>{await Sa({fn:async()=>{let{user:r}=await Ya();w.getInstance().set(r??null)},syncTabsOnSuccess:e})},Et=async()=>{await st({fn:async({authenticated:a})=>{let t=a?Ya:()=>Promise.resolve({user:null}),{user:n}=await t();w.getInstance().set(n??null)}})},Qa=async({user:e})=>{await Sa({fn:async()=>{w.getInstance().set(e)},syncTabsOnSuccess:!0})};var Pt=()=>{try{let e=Ra.getInstance(),a=async()=>{await Et(),ba({message:"junoSignInReload"})};return e.onLoginSuccess(a),()=>{e?.destroy()}}catch(e){console.warn("Auth BroadcastChannel initialization failed",e);return}};var bt=()=>{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()},St=()=>{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()},Dt=()=>{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()},Ct=()=>{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()},Za=()=>{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 Ut=BigInt(144e11),kt=!1,Lt={width:576,height:576},qt={width:424,height:576},br="internetcomputer.org",Bt="ic0.app",er="id.ai";var Jt=({width:e,height:a})=>{if(!Ba()||d(window)||d(window.top))return;let{top:{innerWidth:r,innerHeight:t}}=window,n=t/2+screenY-a/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=${a}, top=${n}, left=${i}`};import{ERROR_USER_INTERRUPT as Li}from"@icp-sdk/auth/client";var ie=async({fn:e,step:a,onProgress:r})=>{r?.({step:a,state:"in_progress"});try{let t=await e();return r?.({step:a,state:"success"}),t}catch(t){throw r?.({step:a,state:"error"}),t}};var jt=(r=>(r[r.AuthorizingWithProvider=0]="AuthorizingWithProvider",r[r.CreatingOrRetrievingUser=1]="CreatingOrRetrievingUser",r))(jt||{});var ar=class{async signIn({options:a,authClient:r,initAuth:t}){await ie({fn:async()=>await this.#e({options:a,authClient:r}),step:0,onProgress:a?.onProgress}),await ie({fn:async()=>await t({provider:this.id}),step:1,onProgress:a?.onProgress})}#e({options:a,authClient:r}){return new Promise(async(t,n)=>{if(d(r)){n(new Pe("No client is ready to perform a sign-in. Have you initialized the Satellite?"));return}await r.login({onSuccess:t,onError:i=>{if(i===Li){n(new Ma(i));return}n(new ja(i))},maxTimeToLive:a?.maxTimeToLiveInNanoseconds??Ut,allowPinAuthentication:a?.allowPin??kt,...a?.derivationOrigin!==void 0&&{derivationOrigin:a.derivationOrigin},...this.signInOptions({windowed:a?.windowed})})})}};var rr=class extends ar{#e;constructor({domain:a}){super(),this.#e=a}get id(){return"internet_identity"}signInOptions({windowed:a}){let t=(()=>{let i=R.getInstance().get()?.container;if(d(i)||i===!1){let l=[br,Bt].includes(this.#e??er);return B(this.#e)?`https://${er}`:l?`https://identity.${this.#e??br}`:`https://${this.#e}`}let o=R.getInstance().get(),s=_(o)&&_(o?.internetIdentityId)?o.internetIdentityId:at,{host:c,protocol:p}=new URL(i===!0?xa:i);return/apple/i.test(navigator?.vendor)?`${p}//${c}?canisterId=${s}`:`${p}//${s}.${c.replace("127.0.0.1","localhost")}`})();return{...a!==!1&&{windowOpenerFeatures:Jt((()=>{try{let{hostname:i}=new URL(t);return i.includes(er)}catch{return!1}})()?qt:Lt)},identityProvider:t}}};var Sr=e=>Ce(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),qi=()=>crypto.getRandomValues(new Uint8Array(32)),Bi=async({salt:e,caller:a})=>{let r=a.getPrincipal().toUint8Array(),t=new Uint8Array(e.length+r.byteLength);t.set(e),t.set(r,e.length);let n=await crypto.subtle.digest("SHA-256",t);return Sr(Ie(n))},Mt=async({caller:e})=>{let a=qi();return{nonce:await Bi({salt:a,caller:e}),salt:a}};import{Ed25519KeyIdentity as Ji}from"@icp-sdk/core/identity";import{Ed25519KeyIdentity as Zi}from"@icp-sdk/core/identity";import{Delegation as to,ECDSAKeyIdentity as no}from"@icp-sdk/core/identity";import{DelegationChain as so,DelegationIdentity as co}from"@icp-sdk/core/identity";var Wt="juno:auth:openid",Gt={authUrl:"https://accounts.google.com/o/oauth2/v2/auth",authScopes:["openid","profile","email"],configUrl:"https://accounts.google.com/gsi/fedcm.json"},Ht={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"},ji=class extends Error{},Mi=class extends Error{},Gi=class extends Error{},Ki=class extends Error{},Wi=class extends Error{},Hi=class extends Error{},zi=class extends Error{},zt=class extends Error{},$i=class extends Error{},Yi=class extends Error{},Xi=class extends Error{constructor(e){super("GitHub OAuth initialization failed",e)}},Qi=class extends Error{constructor(e){super("GitHub OAuth finalization failed",e)}},$t="__caller__",Yt="__salt__",Xt="__state__",eo=({caller:e,state:a,salt:r})=>{let t={[$t]:e.toJSON(),[Yt]:Ce(r),[Xt]:a};return JSON.stringify(t)},ao=e=>{let{[$t]:a,[Yt]:r,[Xt]:t}=JSON.parse(e);return{caller:Zi.fromParsedJson(a),salt:jr(r),state:t}},Kt=async({generateState:e})=>{let a=Ji.generate(),{nonce:r,salt:t}=await Mt({caller:a}),n=await e({nonce:r}),i=eo({caller:a,salt:t,state:n});return sessionStorage.setItem(Wt,i),{nonce:r,state:n}},ro=()=>{let e=sessionStorage.getItem(Wt);if(d(e))throw new Mi;return ao(e)},Qt=({auth:e,identity:a})=>"satellite"in e?lt({...e.satellite,identity:a}):dt({...e.console,identity:a}),io=async({actorParams:e,args:a})=>{let{authenticate:r}=await Qt(e);return await r(a)},oo=async({actorParams:e,args:a})=>{let{get_delegation:r}=await Qt(e);return await r(a)},lo=({delegations:e,sessionKey:a})=>{let[r,t]=e,n=so.fromDelegations(t,Uint8Array.from(r));return{identity:co.fromDelegation(a,n),delegationChain:n,sessionKey:a}},Dr=async({jwt:e,context:a,auth:r})=>{let t=await no.generate({extractable:!1}),n=new Uint8Array(t.getPublicKey().toDer()),{delegations:i,data:o}=await po({jwt:e,publicKey:n,context:a,auth:r});return{identity:lo({sessionKey:t,delegations:i}),data:o}},po=async({jwt:e,publicKey:a,context:{caller:r,salt:t},auth:n})=>{let i=await io({args:{OpenId:{jwt:e,session_key:a,salt:t}},actorParams:{auth:n,identity:r}});if("Err"in i)throw new Wi("Authentication failed",{cause:i});let{delegation:{user_key:o,expiration:s},...c}=i.Ok,p=await uo({jwt:e,context:{caller:r,salt:t},auth:n,publicKey:a,expiration:s}),{delegation:l,signature:u}=p,{pubkey:m,expiration:N,targets:g}=l;return{delegations:[o,[{delegation:new to(Uint8Array.from(m),N,y(g)),signature:Uint8Array.from(u)}]],data:c}},uo=async({jwt:e,publicKey:a,context:{salt:r,caller:t},auth:n,expiration:i,maxRetries:o=5})=>{for(let s=0;s<o;s++){await new Promise(p=>{setInterval(p,1e3*s)});let c=await oo({args:{OpenId:{jwt:e,session_key:a,salt:r,expiration:i}},actorParams:{auth:n,identity:t}});if("Err"in c){let{Err:p}=c;if("NoSuchDelegation"in p||"GetCachedJwks"in p)continue;throw new $i("Getting delegation failed",{cause:c})}return c.Ok}throw new Yi},_o=async({url:e})=>{try{let a=await fetch(e,{credentials:"include"});return a.ok?{success:await a.json()}:{error:new Error(`Failed to fetch ${e} (${a.status})`)}}catch(a){return{error:new Xi({cause:a})}}},mo=async({url:e,body:a})=>{try{let r=await fetch(e,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});return r.ok?{success:await r.json()}:{error:new Error(`Failed to fetch ${e} (${r.status})`)}}catch(r){return{error:new Qi({cause:r})}}},No=async({auth:e,context:a,redirect:{finalizeUrl:r}})=>{let{location:{search:t}}=window,n=new URLSearchParams(t),i=n.get("code"),o=n.get("state"),s=await mo({url:r,body:{code:i,state:o}});if("error"in s)throw s.error;let{success:{token:c}}=s;if(B(c))throw new zt;return await Dr({jwt:c,auth:e,context:a})},To=async({auth:e,context:a})=>{let{location:{hash:r}}=window;if(B(r)||!r.startsWith("#"))throw new Hi("No hash found in the current location URL");let t=new URLSearchParams(r.slice(1)),n=t.get("state"),i=t.get("id_token"),{state:o}=a;if(B(o)||n!==o)throw new zi("The provided state is invalid",{cause:n});if(B(i))throw new zt;return await Dr({jwt:i,auth:e,context:a})},Zt=async e=>{let a=ro();if("github"in e){let{github:{redirect:t,auth:n}}=e,{finalizeUrl:i}=Ht;return await No({redirect:t??{finalizeUrl:i},auth:n,context:a})}let{google:r}=e;if("credentials"in r){let{credentials:{jwt:t},auth:n}=r;return await Dr({jwt:t,context:a,auth:n})}return await To({...r,context:a})},Cr=({url:e})=>{try{return new URL(e)}catch{throw new ji("Cannot parse authURL",{cause:e})}},Oo=({initUrl:e})=>async({nonce:a})=>{let r=Cr({url:e});r.searchParams.set("nonce",a);let t=await _o({url:r.toString()});if("error"in t)throw t.error;let{success:{state:n}}=t;return n},go=({authUrl:e,clientId:a,authScopes:r,state:t,redirectUrl:n})=>{let i=Cr({url:e});i.searchParams.set("client_id",a);let{location:{origin:o}}=window;i.searchParams.set("redirect_uri",n??o),i.searchParams.set("scope",r.join(" ")),i.searchParams.set("state",t),window.location.href=i.toString()},yo=()=>Sr(crypto.getRandomValues(new Uint8Array(12))),xo=async e=>yo(),ho=({authUrl:e,clientId:a,nonce:r,loginHint:t,authScopes:n,state:i,redirectUrl:o})=>{let s=Cr({url:e});s.searchParams.set("client_id",a);let{location:{origin:c}}=window;s.searchParams.set("redirect_uri",o??c),s.searchParams.set("response_type","code id_token"),s.searchParams.set("scope",n.join(" ")),s.searchParams.set("state",i),s.searchParams.set("nonce",r),Ee(t)?s.searchParams.set("login_hint",t):s.searchParams.set("prompt","select_account"),window.location.href=s.toString()},fo=async({configUrl:e,clientId:a,nonce:r,loginHint:t,domainHint:n})=>{let i=await navigator.credentials.get({identity:{context:"use",providers:[{configURL:e,clientId:a,nonce:r,loginHint:t,domainHint:n}],mode:"active"},mediation:"required"});if(d(i))throw new Gi;let{type:o}=i;if(o!=="identity"||!("token"in i)||typeof i.token!="string")throw new Ki("Invalid credential received from FedCM API",{cause:i});let{token:s}=i;return{jwt:s}};async function tr(e){if("github"in e){let{github:o}=e,{redirect:s}=o,{initUrl:c,...p}=s,{authUrl:l,authScopes:u,initUrl:m}=Ht,N=await Kt({generateState:Oo({initUrl:c??m})});go({...p,...N,authUrl:l,authScopes:u});return}let a=await Kt({generateState:xo}),{google:r}=e;if("credentials"in r){let{credentials:o}=r,{configUrl:s}=Gt;return await fo({...o,...a,configUrl:s})}let{redirect:t}=r,{authUrl:n,authScopes:i}=Gt;ho({...t,...a,authUrl:n,authScopes:i})}var nr=({url:e})=>{try{return new URL(e)}catch{return console.warn(`Cannot parse URL ${e}. Skipping option.`),null}};var Ro=async e=>{let{satelliteId:a}=R.getInstance().get()??{satelliteId:void 0};if(d(a))throw new Pe("Satellite ID not set. Have you initialized the Satellite?");let r=R.getInstance().get()?.container,t={auth:{satellite:{satelliteId:a,container:r}}},i=(()=>{let u="github"in e?e?.github?.options?.finalizeUrl:void 0;if(Ee(u))return u;let m=Za();return B(m)?null:nr({url:`${m}/v1/auth/finalize/github`})?.toString()??null})(),{identity:{delegationChain:o,sessionKey:s,identity:c},data:{doc:p}}=await Zt("github"in e?{github:{redirect:_(i)?{finalizeUrl:i}:null,...t}}:{google:{redirect:null,...t}});await A.getInstance().setAuthClientStorage({delegationChain:o,sessionKey:s});let l=await Ta({doc:p,key:c.getPrincipal().toText()});await Qa({user:l})};var en=e=>(e.preventDefault(),e.returnValue="Are you sure you want to exit?"),Ao=()=>{window.addEventListener("beforeunload",en,{capture:!0})},wo=()=>{window.removeEventListener("beforeunload",en,{capture:!0})},ir=async({fn:e})=>{try{return Ao(),await e()}finally{wo()}};import{DelegationChain as Eo,DelegationIdentity as Po,ECDSAKeyIdentity as bo,Ed25519KeyIdentity as So}from"@icp-sdk/core/identity";function an(e){return new Promise((a,r)=>{e.oncomplete=e.onsuccess=()=>a(e.result),e.onabort=e.onerror=()=>r(e.error)})}function kr(e,a){let r,t=()=>{if(r)return r;let n=indexedDB.open(e);return n.onupgradeneeded=()=>n.result.createObjectStore(a),r=an(n),r.then(i=>{i.onclose=()=>r=void 0},()=>{}),r};return(n,i)=>t().then(o=>i(o.transaction(a,n).objectStore(a)))}var Ur;function Fo(){return Ur||(Ur=kr("keyval-store","keyval")),Ur}function rn(e,a,r=Fo()){return r("readwrite",t=>new Promise((n,i)=>{t.get(e).onsuccess=function(){try{t.put(a(this.result),e),n(an(t.transaction))}catch(o){i(o)}}}))}var Vo=class extends Error{constructor(){super("A dev identity can only be used in browser environments")}},vo=class extends Error{constructor(){super("A dev identity must only be used on localhost (127.0.0.1 or localhost)")}},Io=class extends Error{constructor(e){super(`Identifier must be 32 characters or less, got ${e}`)}},Do=kr("juno-dev-identifiers","juno-dev-identifiers-store");var tn=async({identifier:e="dev",maxTimeToLiveInMilliseconds:a}={})=>{if(!(typeof window<"u"))throw new Vo;let{location:{hostname:r}}=window;if(!["127.0.0.1","localhost"].includes(r))throw new vo;let t=()=>{if(e.length>32)throw new Io(e.length);return new TextEncoder().encode(e.padEnd(32,"0"))},n=async()=>{let s=t(),c=So.generate(s),p=await bo.generate({extractable:!1}),l=a??6048e5,u=await Eo.create(c,p.getPublicKey(),new Date(Date.now()+l));return{identity:Po.fromDelegation(p,u),sessionKey:p,delegationChain:u}},i=async()=>{await rn(e,s=>{let c=Date.now();return{createdAt:s?.createdAt??c,updatedAt:c}},Do)},o=await n();return await i(),o};var or=class{async signIn({options:a,initAuth:r,setStorage:t}){let{sessionKey:n,delegationChain:i}=await tn(a);await t({sessionKey:n,delegationChain:i}),await r({provider:void 0})}};var sr=class{async signIn({options:a={}}){let r=a?.redirect?.clientId??Ct();if(d(r))throw new Aa;let{redirect:t}=a;await tr({github:{redirect:{...t??{},clientId:r,initUrl:(()=>{let i=a?.redirect?.initUrl;if(Ee(i))return i;let o=Za();if(!B(o))return nr({url:`${o}/v1/auth/init/github`})?.toString()})()}}})}};var cr=class{async signIn({options:a={}}){let r=a?.redirect?.clientId??Dt();if(d(r))throw new Aa;let{redirect:t}=a;await tr({google:{redirect:{...t??{},clientId:r}}})}};import{IdbStorage as Uo,KEY_STORAGE_DELEGATION as ko,KEY_STORAGE_KEY as Lo}from"@icp-sdk/auth/client";import{AnonymousIdentity as qo}from"@icp-sdk/core/agent";import{DelegationChain as Bo,DelegationIdentity as Jo,DER_COSE_OID as jo,ECDSAKeyIdentity as Mo,unwrapDER as Go}from"@icp-sdk/core/identity";var nn=async({delegationIdentity:e,passkeyIdentity:a,satelliteId:r})=>{let t=a.getCredential().getAAGUID(),[n,i]=await Vt({docs:[{collection:"#user",doc:{key:e.getPrincipal().toText(),data:{provider:"webauthn",providerData:{webauthn:{..._(t)&&{aaguid:ka(t)}}}}}},{collection:"#user-webauthn",doc:{key:a.getCredential().getCredentialIdText(),data:{publicKey:a.getPublicKey().toRaw()}}}],satellite:{identity:e,satelliteId:r}});return n};var on=(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))(on||{}),sn=(o=>(o[o.CreatingUserCredential=0]="CreatingUserCredential",o[o.ValidatingUserCredential=1]="ValidatingUserCredential",o[o.FinalizingCredential=2]="FinalizingCredential",o[o.Signing=3]="Signing",o[o.FinalizingSession=4]="FinalizingSession",o[o.RegisteringUser=5]="RegisteringUser",o))(sn||{});var wa=class{async signUp({options:{onProgress:a,maxTimeToLiveInMilliseconds:r,passkey:t}={},loadAuthWithUser:n}){let{satelliteId:i}=R.getInstance().get()??{satelliteId:void 0};if(d(i))throw new Pe("Satellite ID not set. Have you initialized the Satellite?");let o=({step:I,state:F})=>{switch(I){case Ue.RequestingUserCredential:a?.({step:1,state:F});break;case Ue.FinalizingCredential:a?.({step:2,state:F});break;case Ue.Signing:a?.({step:3,state:F});break}},c=await ie({fn:async()=>await Rr.createWithNewCredential({onProgress:o,passkeyOptions:t}),step:0,onProgress:a}),{delegationIdentity:p,sessionKey:l}=await this.#e({identity:c,maxTimeToLiveInMilliseconds:r}),m=await ie({fn:async()=>await nn({delegationIdentity:p,passkeyIdentity:c,satelliteId:i}),step:5,onProgress:a});await ie({fn:async()=>await this.#a({delegationIdentity:p,sessionKey:l}),step:4,onProgress:a}),await ie({fn:async()=>await n({user:m}),step:5,onProgress:a})}async signIn({options:{onProgress:a,maxTimeToLiveInMilliseconds:r}={},loadAuth:t}){let{satelliteId:n}=R.getInstance().get()??{satelliteId:void 0};if(d(n))throw new Pe("Satellite ID not set. Have you initialized the Satellite?");let i=async({credentialId:u})=>{let m=await $a({collection:"#user-webauthn",key:Ce(u),options:{certified:!0},satellite:{identity:new qo,satelliteId:n}});if(d(m))throw new Ka("No public key found for the selected passkey.");let{data:N}=m,{publicKey:g}=N;return Go(g,jo)},o=({step:u,state:m})=>{switch(u){case Ue.RequestingUserCredential:a?.({step:0,state:m});break;case Ue.FinalizingCredential:a?.({step:1,state:m});break;case Ue.Signing:a?.({step:2,state:m});break}},s=await Rr.createWithExistingCredential({retrievePublicKey:i,onProgress:o}),{delegationIdentity:c,sessionKey:p}=await this.#e({identity:s,maxTimeToLiveInMilliseconds:r});await ie({fn:async()=>await this.#a({delegationIdentity:c,sessionKey:p}),step:3,onProgress:a}),await ie({fn:t,step:4,onProgress:a})}async#e({identity:a,maxTimeToLiveInMilliseconds:r}){let t=await Mo.generate({extractable:!1}),n=r??144e5,i=await Bo.create(a,t.getPublicKey(),new Date(Date.now()+n));return{delegationIdentity:Jo.fromDelegation(t,i),sessionKey:t}}async#a({sessionKey:a,delegationIdentity:r}){let t=new Uo;await Promise.all([t.set(Lo,a.getKeyPair()),t.set(ko,JSON.stringify(r.getDelegation().toJSON()))])}};var cn=async({provider:e})=>{await Sa({fn:async()=>{let r=await vt({provider:e});w.getInstance().set(r)},syncTabsOnSuccess:!0})},Ko=async e=>{if("google"in e){let{google:{options:a}}=e;await Da({fn:()=>new cr().signIn({options:a}),context:{windowGuard:!1}});return}if("github"in e){let{github:{options:a}}=e;await Da({fn:()=>new sr().signIn({options:a}),context:{windowGuard:!1}});return}if("webauthn"in e){let{webauthn:{options:a,context:r}}=e;await Da({fn:()=>new wa().signIn({options:a,loadAuth:()=>Xa({syncTabsOnSuccess:!0})}),context:r});return}if("internet_identity"in e){let{internet_identity:{options:a,context:r}}=e,{domain:t,...n}=a??{};await Da({fn:()=>new rr({domain:t}).signIn({options:n,authClient:A.getInstance().getAuthClient(),initAuth:cn}),context:r});return}if("dev"in e){let{dev:{options:a}}=e,{setAuthClientStorage:r}=A.getInstance();await Da({fn:()=>new or().signIn({options:a,initAuth:cn,setStorage:r}),context:{windowGuard:!1}});return}throw new Ga("An unknown or unsupported provider was provided for sign-in.")},Da=async({fn:e,context:a})=>{if(a?.windowGuard===!1){await e();return}await ir({fn:e})};var Wo=async e=>{let a=async()=>await Ho(e);if(Object.values(e)?.[0].context?.windowGuard===!1){await a();return}await ir({fn:a})},Ho=async e=>{if("webauthn"in e){let{webauthn:{options:a}}=e;await new wa().signUp({options:a,loadAuthWithUser:Qa});return}throw new Wa("An unknown or unsupported provider was provided for sign-up.")};var Pp=e=>e?.data?.provider==="webauthn",bp=e=>e?.data?.provider==="google",Sp=e=>e?.data?.provider==="github";var kp=async({idlFactory:e,satellite:a})=>{let r=O(a?.identity);return await _t({idlFactory:e,...a,identity:r})};var ln=async({asset:{data:e,headers:a,...r},actor:t,progress:n})=>{let{init_asset_upload:i,upload_asset_chunk:o,commit_asset_upload:s}=t,{batch_id:c}=await i(zo(r));n?.onInitiatedBatch();let{chunkIds:p}=await Xo({data:e,uploadFn:o,batchId:c});n?.onUploadedFileChunks(r.fullPath),await Yo({commitFn:s,batchId:c,data:e,headers:a,chunkIds:p}),n?.onCommittedBatch()};var zo=({filename:e,collection:a,token:r,fullPath:t,encoding:n,description:i})=>({collection:a,full_path:t,name:e,token:T(r),encoding_type:T(n),description:T(i)}),$o=({batchId:e,chunkIds:a,headers:r,data:t})=>{let n=r.find(([i,o])=>i.toLowerCase()==="content-type")===void 0&&t.type!==void 0&&t.type!==""?[["Content-Type",t.type]]:void 0;return{batch_id:e,chunk_ids:a.map(({chunk_id:i})=>i),headers:[...r,...n??[]]}},Yo=async({commitFn:e,...a})=>{let r=$o(a);await e(r)},Xo=async({data:e,uploadFn:a,batchId:r})=>{let t=[],n=Ba()?new Blob([await e.arrayBuffer()]):e,i=0n;for(let s=0;s<n.size;s+=19e5){let c=n.slice(s,s+19e5);t.push({batchId:r,chunk:c,uploadFn:a,orderId:i}),i++}let o=[];for await(let s of Qo({uploadChunks:t}))o=[...o,...s];return{chunkIds:o}};async function*Qo({uploadChunks:e,limit:a=12}){for(let r=0;r<e.length;r=r+a){let t=e.slice(r,r+a);yield await Promise.all(t.map(n=>Zo(n)))}}var Zo=async({batchId:e,chunk:a,uploadFn:r,orderId:t})=>r({batch_id:e,content:new Uint8Array(await a.arrayBuffer()),order_id:T(t)});var dn=async({asset:e,...a})=>{let r=await x(a);await ln({actor:r,asset:e})},pn=async({collection:e,filter:a,...r})=>{let{list_assets:t}=await x(r),{items:n,items_length:i,items_page:o,matches_length:s,matches_pages:c}=await t(e,ke(a));return{items:n.map(([p,l])=>l),items_length:i,items_page:y(o),matches_length:s,matches_pages:y(c)}},un=async({collection:e,filter:a,...r})=>{let{count_assets:t}=await x(r);return t(e,ke(a))},_n=async({collection:e,fullPath:a,...r})=>(await x(r)).del_asset(e,a),mn=async({assets:e,satellite:a})=>{let{del_many_assets:r}=await x({satellite:a,options:{certified:!0}}),t=e.map(({collection:n,fullPath:i})=>[n,i]);await r(t)},Nn=async({collection:e,filter:a,...r})=>{let{del_filtered_assets:t}=await x(r);return t(e,ke(a))},Tn=async({collection:e,fullPath:a,token:r,...t})=>{let{set_asset_token:n}=await x(t);return n(e,a,T(r))},On=async({collection:e,fullPath:a,...r})=>{let{get_asset:t}=await x(r);return y(await t(e,a))},gn=async({assets:e,...a})=>{let{get_many_assets:r}=await x(a),t=e.map(({collection:i,fullPath:o})=>[i,o]);return(await r(t)).map(([i,o])=>y(o))};var yn=e=>btoa([...e].map(a=>String.fromCharCode(a)).join(""));var Zp=e=>xn(e),eu=e=>xn({filename:e.data.name,...e}),xn=async({filename:e,data:a,collection:r,headers:t=[],fullPath:n,token:i,satellite:o,encoding:s,description:c})=>{let p=O(o?.identity),l=decodeURI(e),u=n??`/${r}/${l}`,m={...o,identity:p};return await dn({asset:{data:a,filename:l,collection:r,token:i,headers:t,fullPath:u,encoding:s,description:c},satellite:m,options:{certified:!0}}),{downloadUrl:hn({satellite:m,assetKey:{fullPath:u,token:i}}),fullPath:u,..._(i)&&{token:i},name:l}},au=async({collection:e,filter:a,satellite:r,options:t})=>{let n={...r,identity:O(r?.identity)},{items:i,...o}=await pn({collection:e,filter:a??{},satellite:n,options:t??ne}),s=i.map(({key:{full_path:c,token:p,name:l,owner:u,description:m},headers:N,encodings:g,created_at:I,updated_at:F})=>{let q=y(p);return{fullPath:c,description:y(m),name:l,downloadUrl:hn({satellite:n,assetKey:{fullPath:c,token:q}}),token:q,headers:N,encodings:g.reduce((J,[j,{modified:oe,sha256:se,total_length:M}])=>({...J,[j]:{modified:oe,sha256:yn(se),total_length:M}}),{}),owner:u.toText(),created_at:I,updated_at:F}});return{items:s,assets:s,...o}},ru=async({collection:e,filter:a,satellite:r,options:t})=>{let n={...r,identity:O(r?.identity)};return await un({collection:e,satellite:n,filter:a??{},options:t??ne})},tu=({collection:e,fullPath:a,satellite:r})=>_n({collection:e,fullPath:a,satellite:{...r,identity:O(r?.identity)},options:{certified:!0}}),nu=({collection:e,fullPath:a,token:r,satellite:t})=>Tn({collection:e,fullPath:a,token:r,satellite:{...t,identity:O(t?.identity)},options:{certified:!0}}),iu=({assets:e,satellite:a})=>mn({assets:e,satellite:{...a,identity:O(a?.identity)},options:{certified:!0}}),ou=async({collection:e,satellite:a,filter:r})=>{let t={...a,identity:O(a?.identity)};return await Nn({collection:e,satellite:t,filter:r??{},options:{certified:!0}})},su=async({satellite:e,options:a,...r})=>{let t=O(e?.identity);return await On({...r,satellite:{...e,identity:t},options:a??ne})},cu=async({satellite:e,options:a,...r})=>{let t=O(e?.identity);return await gn({...r,satellite:{...e,identity:t},options:a??ne})},hn=({assetKey:{fullPath:e,token:a},satellite:r})=>{let t={...r,identity:O(r?.identity)};return`${ut(t)}${e}${_(a)?`?token=${a}`:""}`};var es=e=>{let a=e?.satelliteId??bt();Ea(a,"Satellite ID is not configured. Juno cannot be initialized.");let r=e?.container??St();return{satelliteId:a,internetIdentityId:e?.internetIdentityId,workers:e?.workers,syncTabs:e?.syncTabs,container:r}},gu=e=>as(e),as=async e=>{let a=es(e);R.getInstance().set(a),await Xa();let r=a.workers?.auth!==void 0?ot(a.workers.auth):void 0,t=a.syncTabs===!1?void 0:Pt();return[..._(r)?[r]:[],..._(t)?[t]:[]]},rs=e=>w.getInstance().subscribe(e),yu=rs;export{jt as AuthClientSignInProgressStep,Ha as InitError,rr as InternetIdentityProvider,za as ListError,ja as SignInError,Pe as SignInInitError,Aa as SignInMissingClientIdError,Ga as SignInProviderNotSupportedError,Ma as SignInUserInterruptError,Wa as SignUpProviderNotSupportedError,on as WebAuthnSignInProgressStep,Ka as WebAuthnSignInRetrievePublicKeyError,sn as WebAuthnSignUpProgressStep,yu as authSubscribe,ru as countAssets,ol as countDocs,tu as deleteAsset,rl as deleteDoc,ou as deleteFilteredAssets,nl as deleteFilteredDocs,iu as deleteManyAssets,tl as deleteManyDocs,hn as downloadUrl,su as getAsset,$a as getDoc,Fi as getIdentityOnce,cu as getManyAssets,al as getManyDocs,kp as getSatelliteExtendedActor,Ro as handleRedirectCallback,gu as initJuno,as as initSatellite,Sp as isGitHubUser,bp as isGoogleUser,gi as isWebAuthnAvailable,Pp as isWebAuthnUser,au as listAssets,il as listDocs,rs as onAuthStateChange,nu as setAssetToken,Ft as setDoc,Vt as setManyDocs,Ko as signIn,Ar as signOut,Wo as signUp,wi as unsafeIdentity,Zp as uploadBlob,eu as uploadFile};
|
|
2
|
+
/*! Bundled license information:
|
|
3
|
+
|
|
4
|
+
@noble/hashes/esm/utils.js:
|
|
5
|
+
(*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
6
|
+
*/
|
|
2
7
|
//# sourceMappingURL=index.js.map
|