@junobuild/core 5.1.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import{assertNonNullish as Ho,nonNullish as ln}from"@dfinity/utils";import{uint8ArrayToArrayOfNumber as dn}from"@dfinity/utils";import{DER_COSE_OID as _n,wrapDER as mn}from"@icp-sdk/core/agent";import{uint8ArrayToBase64 as yn}from"@dfinity/utils";import{arrayBufferToUint8Array as He,isNullish as na,uint8ArraysEqual as Pn}from"@dfinity/utils";import{Cbor as Ir,SignIdentity as En}from"@icp-sdk/core/agent";import{nonNullish as Ln}from"@dfinity/utils";var pn=({authData:e})=>{if(e.byteLength<37)return{invalidAuthData:null};if(e.byteLength<53)return{invalidAuthData:null};let a=e.slice(37,53),r=un({bytes:a});return"aaguid"in r?{aaguidBytes:a,aaguidText:r.aaguid}:{unknownProvider:null}},un=({bytes:e})=>{if(e.length!==16)return{invalidBytes:null};let a=(e instanceof Uint8Array?dn(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 Nn(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 Tn(e){return mn(e,_n)}var On=class{constructor(e){this._cose=e,this.#e=Tn(e)}#e;toDer(){return this.#e}toRaw(){return new Uint8Array(this.#e)}},Cr=class{#e;#a;constructor({rawId:e,cose:a}){this.#e=e,this.#a=new On(a)}getPublicKey(){return this.#a}getCredentialId(){return this.#e}getCredentialIdText(){return yn(this.#e)}},gn=class extends Cr{#e;#a;constructor({authData:e,...a}){super(a);let r=pn({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}},xn=class extends Cr{},Rn=class extends Error{},hn=class extends Error{},fn=class extends Error{},Fn=class extends Error{},Vn=class extends Error{},An=class extends Error{},wn=class extends Error{},vr=class extends Error{};var vn={ECDSA_WITH_SHA256:-7,RSA_WITH_SHA256:-257},In=6e4,Ur=()=>window.crypto.getRandomValues(new Uint8Array(16)),bn=()=>Ur(),Sn=()=>Ur(),Dn=()=>{let{location:{href:e}}=window;try{let{hostname:a}=new URL(e);return a}catch{throw new Rn}},kr=({appId:e})=>e?.id??Dn(),Cn=({appId:e,user:a}={})=>{let{document:{title:r}}=window,i=()=>({rp:{name:e?.name??r,id:kr({appId:e})}}),n=()=>({user:{id:Sn(),name:a?.name??a?.displayName??r,displayName:a?.displayName??r}});return{attestation:"direct",challenge:bn(),...i(),...n(),pubKeyCredParams:Object.values(vn).map(t=>({type:"public-key",alg:t})),excludeCredentials:[],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred",residentKey:"required",requireResidentKey:!0}}},Un=(e={})=>({rpId:kr(e),allowCredentials:[],userVerification:"required"}),$a=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||{}),Lr=({timeout:e})=>AbortSignal.timeout(e??In),kn=async({challenge:e,credentialIds:a,passkeyOptions:r,timeout:i})=>await navigator.credentials.get({publicKey:{...Un(r),challenge:e.buffer,allowCredentials:(a??[]).map(n=>({id:n.buffer,type:"public-key"}))},signal:Lr({timeout:i})}),br=e=>{if(e.status!=="initialized")throw new hn},Sr=e=>{if(na(e))throw new fn},Dr=({type:e})=>{if(e!=="public-key")throw new Fn},Ya=class ta extends En{#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=ta.#r({credential:new gn(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:Cn(a),signal:Lr({timeout:r})});Sr(n),Dr(n);let{response:{attestationObject:t},rawId:o}=n;if(na(t))throw new Vn;let{authData:s}=Ir.decode(He(t)),c=Nn(s);return new ta({...i,rawId:He(o),cose:c,authData:s})}static async createWithExistingCredential(a){return new ta(a)}getPublicKey(){br(this.#a);let{credential:a}=this.#a;return a.getPublicKey()}getCredential(){br(this.#a);let{credential:a}=this.#a;return a}async sign(a){let r=await $a({fn:async()=>{let i=await kn({challenge:a,...this.#a.status==="initialized"&&{credentialIds:[this.#a.credential.getCredentialId()]}});return Sr(i),Dr(i),i},step:0,onProgress:this.#e});return await $a({fn:async()=>{let{rawId:i}=r;if(this.#a.status==="initialized"){if(!Pn({a:this.#a.credential.getCredentialId(),b:He(i)}))throw new An;return}let{retrievePublicKey:n}=this.#a,t=await n({credentialId:He(i)});this.#a=ta.#r({credential:new xn({rawId:He(i),cose:t})})},step:1,onProgress:this.#e}),await $a({fn:async()=>{let{response:i}=r,{clientDataJSON:n}=i,{authenticatorData:t,signature:o}="authenticatorData"in i&&"signature"in i?i:{};if(na(t))throw new vr;if(na(o))throw new vr;let s=Ir.encode({authenticator_data:t,client_data_json:new TextDecoder().decode(n),signature:He(o)});if(na(s))throw new wn;return Object.assign(s,{__signature__:void 0}),s},step:2,onProgress:this.#e})}},qn=async()=>Ln(window.PublicKeyCredential)&&"isUserVerifyingPlatformAuthenticatorAvailable"in PublicKeyCredential?await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():!1;import{isNullish as Wn}from"@dfinity/utils";var $e=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 f=class e extends $e{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 oa=({message:e,detail:a})=>{let r=new CustomEvent(e,{detail:a,bubbles:!0});document.dispatchEvent(r)};import{isNullish as Qa}from"@dfinity/utils";import{Actor as jn}from"@icp-sdk/core/agent";import{isNullish as Xa}from"@dfinity/utils";import{nonNullish as Br}from"@dfinity/utils";import{HttpAgent as Bn}from"@icp-sdk/core/agent";var Ye="http://127.0.0.1:5987",qr="rdmx6-jaaaa-aaaaa-aaadq-cai";var jr=async({identity:e,container:a})=>{let i=Br(a)&&a!==!1?a===!0?Ye:a:"https://icp-api.io",n=Br(a);return await Bn.create({identity:e,shouldFetchRootKey:n,host:i})};var Xe=class e{static instance;#e=void 0;constructor(){}static getInstance(){return Xa(e.instance)&&(e.instance=new e),e.instance}async getAgent({identity:a,...r}){let i=a.getPrincipal().toText();if(Xa(this.#e)||Xa(this.#e[i])){let n=await jr({identity:a,...r});return this.#e={...this.#e??{},[i]:n},n}return this.#e[i]}reset(){this.#e=null}};var Qe=class e{static instance;#e=void 0;constructor(){}static getInstance(){return Qa(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(Qa(this.#e)||Qa(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 Xe.getInstance().getAgent(i);return jn.createActor(a,{agent:n,canisterId:r})}};import{isNullish as Jn}from"@dfinity/utils";import{AuthClient as Kn,IdbStorage as Jr,KEY_STORAGE_DELEGATION as Mn,KEY_STORAGE_KEY as Kr}from"@icp-sdk/auth/client";var h=class e{static#e;#a;constructor(){}static getInstance(){return Jn(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 Jr().remove(Kr),await this.createAuthClient());getAuthClient=()=>this.#a;logout=async()=>{await this.#a?.logout(),this.#a=null};setAuthClientStorage=async({delegationChain:a,sessionKey:r})=>{let i=new Jr;await Promise.all([i.set(Kr,r.getKeyPair()),i.set(Mn,JSON.stringify(a.toJSON()))])}};var Za=async e=>{await Gn(),await h.getInstance().createAuthClient(),e?.windowReload!==!1&&window.location.reload()},Gn=async()=>{await h.getInstance().logout(),f.getInstance().reset(),Qe.getInstance().reset(),Xe.getInstance().reset()};var Mr=e=>{let a=e===!0?"./workers/auth.worker.js":e,r=new Worker(a),i=async()=>{oa({message:"junoSignOutAuthTimer"}),await Za()};return r.onmessage=async({data:n})=>{let{msg:t,data:o}=n;switch(t){case"junoSignOutAuthTimer":await i();return;case"junoDelegationRemainingTime":oa({message:"junoDelegationRemainingTime",detail:o?.authRemainingTime})}},f.getInstance().subscribe(n=>{if(Wn(n)){r.postMessage({msg:"junoStopAuthTimer"});return}r.postMessage({msg:"junoStartAuthTimer"})})};import{isNullish as zn,nonNullish as Hn,notEmptyString as $n}from"@dfinity/utils";var Ze=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 zn(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&&Hn(n)&&n.msg==="authClientLoginSuccess"&&$n(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 $e{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 Yn({fn:e});!r||!a||y.getInstance().get()?.syncTabs===!1||Xn()},Gr=async({fn:e})=>{let{createAuthClient:a}=h.getInstance(),i=await(await a()).isAuthenticated();await e({authenticated:i})},Yn=async({fn:e})=>{let{createAuthClient:a,safeCreateAuthClient:r}=h.getInstance();return await(await a()).isAuthenticated()?(await e(),{authenticated:!0}):(await r(),{authenticated:!1})},Xn=()=>{try{Ze.getInstance().postLoginSuccess()}catch(e){console.warn("Auth BroadcastChannel posting failed",e)}};import{isNullish as gt,nonNullish as mi}from"@dfinity/utils";var er=({error:e,type:a})=>typeof e=="string"?e.includes(a):e instanceof Error?e.message.includes(a):!1;var Wr="juno.datastore.error.user.cannot_update";var z={certified:!1};import{nonNullish as at}from"@dfinity/utils";import{AnonymousIdentity as rt}from"@icp-sdk/core/agent";import{isNullish as Qn}from"@dfinity/utils";var da=()=>h.getInstance().getAuthClient()?.getIdentity(),Zn=async()=>{let{getAuthClient:e,createAuthClient:a}=h.getInstance();return(e()??await a()).getIdentity()},et=async()=>{let e=f.getInstance().get();if(Qn(e))return null;let a=h.getInstance().getAuthClient();return await a?.isAuthenticated()??!1?a?.getIdentity()??null:null};var _=e=>at(e)?e:da()??new rt;import{fromNullable as ra,isNullish as Ot,nonNullish as yt}from"@dfinity/utils";import{assertNonNullish as _t}from"@dfinity/utils";import{isNullish as it}from"@dfinity/utils";import{Actor as nt}from"@icp-sdk/core/agent";import{nonNullish as st}from"@dfinity/utils";import{HttpAgent as ct}from"@icp-sdk/core/agent";var ar=({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}),m=e.Variant({PrepareDelegation:u,RegisterUser:e.Text}),O=e.Variant({Ok:c,Err:m}),g=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),x=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),W=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),k=e.Record({field:W,desc:e.Bool}),V=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),$=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(V),description:e.Opt(e.Text),created_at:e.Opt(V)}),Y=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),T=e.Record({order:e.Opt(k),owner:e.Opt(e.Principal),matcher:e.Opt($),paginate:e.Opt(Y)}),he=e.Record({controllers:e.Vec(e.Principal)}),X=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),L=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,scope:X,expires_at:e.Opt(e.Nat64)}),Q=e.Record({version:e.Opt(e.Nat64)}),A=e.Variant({Db:e.Null,Storage:e.Null}),fe=e.Record({version:e.Opt(e.Nat64)}),Z=e.Record({proposal_ids:e.Vec(e.Nat)}),ee=e.Record({cycles:e.Nat,destination_id:e.Principal}),ae=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}),q=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),w=e.Record({key:ae,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,q)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),re=e.Variant({Google:e.Null}),ie=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),ne=e.Record({delegation:e.Opt(ie),client_id:e.Text}),P=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(re,ne))}),te=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)}),j=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(P),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(te),rules:e.Opt(B)}),E=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),J=e.Record({updated_at:e.Opt(e.Nat64),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(E)}),oe=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),se=e.Variant({Deny:e.Null,Allow:e.Null}),ce=e.Record({status_code:e.Nat16,location:e.Text}),R=e.Record({iframe:e.Opt(oe),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(E),raw_access:e.Opt(se),redirects:e.Opt(e.Vec(e.Tuple(e.Text,ce)))}),le=e.Record({db:e.Opt(J),authentication:e.Opt(j),storage:R}),Fe=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Ve=e.Variant({OpenId:Fe}),Ae=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),we=e.Record({signature:e.Vec(e.Nat8),delegation:Ae}),de=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:d,GetOrFetchJwks:p,DeriveSeedFailed:e.Text}),v=e.Variant({Ok:we,Err:de}),pe=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),Pe=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Ee=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),I=e.Variant({AssetsUpgrade:Pe,SegmentsDeployment:Ee}),b=e.Record({status:pe,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:I}),S=e.Variant({Controllers:e.Null,Private:e.Null,Public:e.Null,Managed:e.Null}),ue=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),D=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(a),updated_at:e.Nat64,max_size:e.Opt(e.Nat),read:S,created_at:e.Nat64,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(ue),write:S,max_changes_per_user:e.Opt(e.Nat32)}),_e=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)}),K=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}),ve=e.Variant({Callback:e.Record({token:K,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(ve),status_code:e.Nat16}),Ie=e.Record({token:e.Opt(K),body:e.Vec(e.Nat8)}),M=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}),G=e.Record({batch_id:e.Nat}),be=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,w)),items_length:e.Nat64}),Se=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),De=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}),Ce=e.Record({desc:e.Bool}),Ne=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Ue=e.Record({order:e.Opt(Ce),paginate:e.Opt(Ne)}),ke=e.Record({proposal_id:e.Nat}),Te=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(ke,b)),items_length:e.Nat64}),Le=e.Record({include_system:e.Bool}),qe=e.Record({matcher:e.Opt(Le)}),Be=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,D)),items_length:e.Nat64}),je=e.Record({stable:e.Nat64,heap:e.Nat64}),Je=e.Record({openid:e.Opt(P),version:e.Opt(e.Nat64),internet_identity:e.Opt(te),rules:e.Opt(B)}),Ke=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:X,expires_at:e.Opt(e.Nat64)}),Me=e.Record({controller:Ke,controllers:e.Vec(e.Principal)}),Ge=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt(E)}),Oe=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),F=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(a),max_size:e.Opt(e.Nat),read:S,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(ue),write:S,max_changes_per_user:e.Opt(e.Nat32)}),We=e.Record({iframe:e.Opt(oe),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(E),raw_access:e.Opt(se),redirects:e.Opt(e.Vec(e.Tuple(e.Text,ce)))}),ye=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),C=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([t],[O],[]),commit_asset_upload:e.Func([g],[],[]),commit_proposal:e.Func([x],[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,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_controllers:e.Func([he],[e.Vec(e.Tuple(e.Principal,L))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,Q],[],[]),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,Q))],[],[]),del_rule:e.Func([A,e.Text,fe],[],[]),delete_proposal_assets:e.Func([Z],[],[]),deposit_cycles:e.Func([ee],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(w)],["query"]),get_auth_config:e.Func([],[e.Opt(j)],["query"]),get_config:e.Func([],[le],[]),get_db_config:e.Func([],[e.Opt(J)],["query"]),get_delegation:e.Func([Ve],[v],["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(w)))],["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(b)],["query"]),get_rule:e.Func([A,e.Text],[e.Opt(D)],["query"]),get_storage_config:e.Func([],[R],["query"]),http_request:e.Func([_e],[me],["query"]),http_request_streaming_callback:e.Func([K],[Ie],["query"]),init_asset_upload:e.Func([M],[G],[]),init_proposal:e.Func([I],[e.Nat,b],[]),init_proposal_asset_upload:e.Func([M,e.Nat],[G],[]),init_proposal_many_assets_upload:e.Func([e.Vec(M),e.Nat],[e.Vec(e.Tuple(e.Text,G))],[]),list_assets:e.Func([e.Text,T],[be],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,L))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Se))],["query"]),list_docs:e.Func([e.Text,T],[De],["query"]),list_proposals:e.Func([Ue],[Te],["query"]),list_rules:e.Func([A,qe],[Be],["query"]),memory_size:e.Func([],[je],["query"]),reject_proposal:e.Func([x],[e.Null],[]),set_asset_token:e.Func([e.Text,e.Text,e.Opt(e.Text)],[],[]),set_auth_config:e.Func([Je],[j],[]),set_controllers:e.Func([Me],[e.Vec(e.Tuple(e.Principal,L))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([Ge],[J],[]),set_doc:e.Func([e.Text,e.Text,Oe],[o],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,Oe))],[e.Vec(e.Tuple(e.Text,o))],[]),set_rule:e.Func([A,e.Text,F],[D],[]),set_storage_config:e.Func([We],[R],[]),submit_proposal:e.Func([e.Nat],[e.Nat,b],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([ye],[C],[]),upload_proposal_asset_chunk:e.Func([ye],[C],[])})},rr=({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}),m=e.Variant({PrepareDelegation:u,RegisterUser:e.Text}),O=e.Variant({Ok:c,Err:m}),g=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),x=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),W=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),k=e.Record({field:W,desc:e.Bool}),V=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),$=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(V),description:e.Opt(e.Text),created_at:e.Opt(V)}),Y=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),T=e.Record({order:e.Opt(k),owner:e.Opt(e.Principal),matcher:e.Opt($),paginate:e.Opt(Y)}),he=e.Record({controllers:e.Vec(e.Principal)}),X=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),L=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,scope:X,expires_at:e.Opt(e.Nat64)}),Q=e.Record({version:e.Opt(e.Nat64)}),A=e.Variant({Db:e.Null,Storage:e.Null}),fe=e.Record({version:e.Opt(e.Nat64)}),Z=e.Record({proposal_ids:e.Vec(e.Nat)}),ee=e.Record({cycles:e.Nat,destination_id:e.Principal}),ae=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}),q=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),w=e.Record({key:ae,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,q)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),re=e.Variant({Google:e.Null}),ie=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),ne=e.Record({delegation:e.Opt(ie),client_id:e.Text}),P=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(re,ne))}),te=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)}),j=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(P),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(te),rules:e.Opt(B)}),E=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),J=e.Record({updated_at:e.Opt(e.Nat64),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(E)}),oe=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),se=e.Variant({Deny:e.Null,Allow:e.Null}),ce=e.Record({status_code:e.Nat16,location:e.Text}),R=e.Record({iframe:e.Opt(oe),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(E),raw_access:e.Opt(se),redirects:e.Opt(e.Vec(e.Tuple(e.Text,ce)))}),le=e.Record({db:e.Opt(J),authentication:e.Opt(j),storage:R}),Fe=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Ve=e.Variant({OpenId:Fe}),Ae=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),we=e.Record({signature:e.Vec(e.Nat8),delegation:Ae}),de=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:d,GetOrFetchJwks:p,DeriveSeedFailed:e.Text}),v=e.Variant({Ok:we,Err:de}),pe=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),Pe=e.Record({clear_existing_assets:e.Opt(e.Bool)}),Ee=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),I=e.Variant({AssetsUpgrade:Pe,SegmentsDeployment:Ee}),b=e.Record({status:pe,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:I}),S=e.Variant({Controllers:e.Null,Private:e.Null,Public:e.Null,Managed:e.Null}),ue=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),D=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(a),updated_at:e.Nat64,max_size:e.Opt(e.Nat),read:S,created_at:e.Nat64,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(ue),write:S,max_changes_per_user:e.Opt(e.Nat32)}),_e=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)}),K=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}),ve=e.Variant({Callback:e.Record({token:K,callback:e.Func([],[],[])})}),me=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(ve),status_code:e.Nat16}),Ie=e.Record({token:e.Opt(K),body:e.Vec(e.Nat8)}),M=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}),G=e.Record({batch_id:e.Nat}),be=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,w)),items_length:e.Nat64}),Se=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),De=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}),Ce=e.Record({desc:e.Bool}),Ne=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Ue=e.Record({order:e.Opt(Ce),paginate:e.Opt(Ne)}),ke=e.Record({proposal_id:e.Nat}),Te=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(ke,b)),items_length:e.Nat64}),Le=e.Record({include_system:e.Bool}),qe=e.Record({matcher:e.Opt(Le)}),Be=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,D)),items_length:e.Nat64}),je=e.Record({stable:e.Nat64,heap:e.Nat64}),Je=e.Record({openid:e.Opt(P),version:e.Opt(e.Nat64),internet_identity:e.Opt(te),rules:e.Opt(B)}),Ke=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:X,expires_at:e.Opt(e.Nat64)}),Me=e.Record({controller:Ke,controllers:e.Vec(e.Principal)}),Ge=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt(E)}),Oe=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),F=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(a),max_size:e.Opt(e.Nat),read:S,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(ue),write:S,max_changes_per_user:e.Opt(e.Nat32)}),We=e.Record({iframe:e.Opt(oe),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(E),raw_access:e.Opt(se),redirects:e.Opt(e.Vec(e.Tuple(e.Text,ce)))}),ye=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),C=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([t],[O],[]),commit_asset_upload:e.Func([g],[],[]),commit_proposal:e.Func([x],[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,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_controllers:e.Func([he],[e.Vec(e.Tuple(e.Principal,L))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,Q],[],[]),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,Q))],[],[]),del_rule:e.Func([A,e.Text,fe],[],[]),delete_proposal_assets:e.Func([Z],[],[]),deposit_cycles:e.Func([ee],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(w)],[]),get_auth_config:e.Func([],[e.Opt(j)],[]),get_config:e.Func([],[le],[]),get_db_config:e.Func([],[e.Opt(J)],[]),get_delegation:e.Func([Ve],[v],[]),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(w)))],[]),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(b)],[]),get_rule:e.Func([A,e.Text],[e.Opt(D)],[]),get_storage_config:e.Func([],[R],[]),http_request:e.Func([_e],[me],[]),http_request_streaming_callback:e.Func([K],[Ie],[]),init_asset_upload:e.Func([M],[G],[]),init_proposal:e.Func([I],[e.Nat,b],[]),init_proposal_asset_upload:e.Func([M,e.Nat],[G],[]),init_proposal_many_assets_upload:e.Func([e.Vec(M),e.Nat],[e.Vec(e.Tuple(e.Text,G))],[]),list_assets:e.Func([e.Text,T],[be],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,L))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,Se))],[]),list_docs:e.Func([e.Text,T],[De],[]),list_proposals:e.Func([Ue],[Te],[]),list_rules:e.Func([A,qe],[Be],[]),memory_size:e.Func([],[je],[]),reject_proposal:e.Func([x],[e.Null],[]),set_asset_token:e.Func([e.Text,e.Text,e.Opt(e.Text)],[],[]),set_auth_config:e.Func([Je],[j],[]),set_controllers:e.Func([Me],[e.Vec(e.Tuple(e.Principal,L))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([Ge],[J],[]),set_doc:e.Func([e.Text,e.Text,Oe],[o],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,Oe))],[e.Vec(e.Tuple(e.Text,o))],[]),set_rule:e.Func([A,e.Text,F],[D],[]),set_storage_config:e.Func([We],[R],[]),submit_proposal:e.Func([e.Nat],[e.Nat,b],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([ye],[C],[]),upload_proposal_asset_chunk:e.Func([ye],[C],[])})},tt=({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({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)}),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}),g=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,JwtVerify:m,GetOrFetchJwks:O,DeriveSeedFailed:e.Text}),x=e.Variant({PrepareDelegation:g,RegisterUser:e.Text}),W=e.Variant({Ok:p,Err:x}),k=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),V=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),$=e.Record({subnet_id:e.Opt(e.Principal)}),Y=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),name:e.Opt(e.Text),user:e.Principal}),T=e.Variant({Heap:e.Null,Stable:e.Null}),he=e.Record({system_memory:e.Opt(T)}),X=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),storage:e.Opt(he),name:e.Opt(e.Text),user:e.Principal}),L=e.Record({controllers:e.Vec(e.Principal)}),Q=e.Record({proposal_ids:e.Vec(e.Nat)}),A=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),fe=e.Record({delegation:e.Opt(A),client_id:e.Text}),Z=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(o,fe))}),ee=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),ae=e.Record({allowed_callers:e.Vec(e.Principal)}),q=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(Z),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(ee),rules:e.Opt(ae)}),w=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),re=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),ie=e.Variant({Deny:e.Null,Allow:e.Null}),ne=e.Record({status_code:e.Nat16,location:e.Text}),P=e.Record({iframe:e.Opt(w),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(re),raw_access:e.Opt(ie),redirects:e.Opt(e.Vec(e.Tuple(e.Text,ne)))}),te=e.Record({authentication:e.Opt(q),storage:P}),B=e.Record({user:e.Principal}),j=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),E=e.Variant({OpenId:j}),J=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),oe=e.Record({signature:e.Vec(e.Nat8),delegation:J}),se=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:m,GetOrFetchJwks:O,DeriveSeedFailed:e.Text}),ce=e.Variant({Ok:oe,Err:se}),R=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),le=e.Record({e12s:e.Nat64}),Fe=e.Record({updated_at:e.Nat64,fee_cycles:le,fee_icp:e.Opt(a)}),Ve=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),Ae=e.Record({clear_existing_assets:e.Opt(e.Bool)}),we=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),de=e.Variant({AssetsUpgrade:Ae,SegmentsDeployment:we}),v=e.Record({status:Ve,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:de}),pe=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),Pe=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)}),Ee=e.Variant({Heap:e.Null,Stable:e.Null}),I=e.Record({memory:Ee,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}),b=e.Variant({Callback:e.Record({token:I,callback:e.Func([],[],["query"])})}),S=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(b),status_code:e.Nat16}),ue=e.Record({token:e.Opt(I),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}),_e=e.Record({batch_id:e.Nat}),K=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),ve=e.Record({field:K,desc:e.Bool}),me=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),Ie=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(me),description:e.Opt(e.Text),created_at:e.Opt(me)}),M=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),G=e.Record({order:e.Opt(ve),owner:e.Opt(e.Principal),matcher:e.Opt(Ie),paginate:e.Opt(M)}),be=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}),Se=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),De=e.Record({key:be,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,Se)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),Ce=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,De)),items_length:e.Nat64}),Ne=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),Ue=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,scope:Ne,expires_at:e.Opt(e.Nat64)}),ke=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}),Le=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)}),qe=e.Record({block_index:e.Nat64,ledger_id:e.Principal}),Be=e.Record({owner:e.Principal,subaccount:e.Opt(e.Vec(e.Nat8))}),je=e.Record({status:Te,updated_at:e.Nat64,created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64),purchaser:Be}),Je=e.Record({desc:e.Bool}),Ke=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Me=e.Record({order:e.Opt(Je),paginate:e.Opt(Ke)}),Ge=e.Record({proposal_id:e.Nat}),Oe=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Ge,v)),items_length:e.Nat64}),F=e.Variant({Orbiter:e.Null,Satellite:e.Null}),We=e.Record({segment_id:e.Opt(e.Principal),segment_kind:e.Opt(F)}),ye=e.Record({user:e.Principal,segment_id:e.Principal,segment_kind:F}),C=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,created_at:e.Nat64}),qa=e.Record({openid:e.Opt(Z),version:e.Opt(e.Nat64),internet_identity:e.Opt(ee),rules:e.Opt(ae)}),Ba=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:Ne,expires_at:e.Opt(e.Nat64)}),ja=e.Record({controller:Ba,controllers:e.Vec(e.Principal)}),Ja=e.Record({fee_cycles:le,fee_icp:e.Opt(a)}),Ka=e.Record({metadata:e.Opt(e.Vec(e.Tuple(e.Text,e.Text))),segment_id:e.Principal,segment_kind:F}),Ma=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:F}),Ga=e.Record({iframe:e.Opt(w),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(re),raw_access:e.Opt(ie),redirects:e.Opt(e.Vec(e.Tuple(e.Text,ne)))}),Wa=e.Record({segment_id:e.Principal,segment_kind:F}),za=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Ha=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],[W],[]),commit_proposal:e.Func([k],[e.Null],[]),commit_proposal_asset_upload:e.Func([V],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(V)],[],[]),count_proposals:e.Func([],[e.Nat64],["query"]),create_mission_control:e.Func([$],[e.Principal],[]),create_orbiter:e.Func([Y],[e.Principal],[]),create_satellite:e.Func([X],[e.Principal],[]),del_controllers:e.Func([L],[],[]),del_custom_domain:e.Func([e.Text],[],[]),delete_proposal_assets:e.Func([Q],[],[]),get_account:e.Func([],[e.Opt(d)],["query"]),get_auth_config:e.Func([],[e.Opt(q)],["query"]),get_config:e.Func([],[te],["query"]),get_create_orbiter_fee:e.Func([B],[e.Opt(a)],["query"]),get_create_satellite_fee:e.Func([B],[e.Opt(a)],["query"]),get_credits:e.Func([],[a],["query"]),get_delegation:e.Func([E],[ce],["query"]),get_fee:e.Func([R],[Fe],["query"]),get_or_init_account:e.Func([],[d],[]),get_proposal:e.Func([e.Nat],[e.Opt(v)],["query"]),get_rate_config:e.Func([R],[pe],["query"]),get_storage_config:e.Func([],[P],["query"]),http_request:e.Func([Pe],[S],["query"]),http_request_streaming_callback:e.Func([I],[ue],["query"]),init_proposal:e.Func([de],[e.Nat,v],[]),init_proposal_asset_upload:e.Func([D,e.Nat],[_e],[]),init_proposal_many_assets_upload:e.Func([e.Vec(D),e.Nat],[e.Vec(e.Tuple(e.Text,_e))],[]),list_accounts:e.Func([],[e.Vec(e.Tuple(e.Principal,d))],["query"]),list_assets:e.Func([e.Text,G],[Ce],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,Ue))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,ke))],["query"]),list_icp_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,Le))],["query"]),list_icrc_payments:e.Func([],[e.Vec(e.Tuple(qe,je))],["query"]),list_proposals:e.Func([Me],[Oe],["query"]),list_segments:e.Func([We],[e.Vec(e.Tuple(ye,C))],["query"]),reject_proposal:e.Func([k],[e.Null],[]),set_auth_config:e.Func([qa],[q],[]),set_controllers:e.Func([ja],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([R,Ja],[],[]),set_rate_config:e.Func([R,pe],[],[]),set_segment:e.Func([Ka],[C],[]),set_segment_metadata:e.Func([Ma],[C],[]),set_storage_config:e.Func([Ga],[P],[]),submit_proposal:e.Func([e.Nat],[e.Nat,v],[]),unset_segment:e.Func([Wa],[],[]),upload_proposal_asset_chunk:e.Func([za],[Ha],[])})},ot=({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({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)}),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}),g=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,JwtVerify:m,GetOrFetchJwks:O,DeriveSeedFailed:e.Text}),x=e.Variant({PrepareDelegation:g,RegisterUser:e.Text}),W=e.Variant({Ok:p,Err:x}),k=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),V=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),$=e.Record({subnet_id:e.Opt(e.Principal)}),Y=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),name:e.Opt(e.Text),user:e.Principal}),T=e.Variant({Heap:e.Null,Stable:e.Null}),he=e.Record({system_memory:e.Opt(T)}),X=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),storage:e.Opt(he),name:e.Opt(e.Text),user:e.Principal}),L=e.Record({controllers:e.Vec(e.Principal)}),Q=e.Record({proposal_ids:e.Vec(e.Nat)}),A=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),fe=e.Record({delegation:e.Opt(A),client_id:e.Text}),Z=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(o,fe))}),ee=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),ae=e.Record({allowed_callers:e.Vec(e.Principal)}),q=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(Z),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(ee),rules:e.Opt(ae)}),w=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),re=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),ie=e.Variant({Deny:e.Null,Allow:e.Null}),ne=e.Record({status_code:e.Nat16,location:e.Text}),P=e.Record({iframe:e.Opt(w),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(re),raw_access:e.Opt(ie),redirects:e.Opt(e.Vec(e.Tuple(e.Text,ne)))}),te=e.Record({authentication:e.Opt(q),storage:P}),B=e.Record({user:e.Principal}),j=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),E=e.Variant({OpenId:j}),J=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),oe=e.Record({signature:e.Vec(e.Nat8),delegation:J}),se=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:m,GetOrFetchJwks:O,DeriveSeedFailed:e.Text}),ce=e.Variant({Ok:oe,Err:se}),R=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),le=e.Record({e12s:e.Nat64}),Fe=e.Record({updated_at:e.Nat64,fee_cycles:le,fee_icp:e.Opt(a)}),Ve=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),Ae=e.Record({clear_existing_assets:e.Opt(e.Bool)}),we=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),de=e.Variant({AssetsUpgrade:Ae,SegmentsDeployment:we}),v=e.Record({status:Ve,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:de}),pe=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),Pe=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)}),Ee=e.Variant({Heap:e.Null,Stable:e.Null}),I=e.Record({memory:Ee,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}),b=e.Variant({Callback:e.Record({token:I,callback:e.Func([],[],[])})}),S=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(b),status_code:e.Nat16}),ue=e.Record({token:e.Opt(I),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}),_e=e.Record({batch_id:e.Nat}),K=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),ve=e.Record({field:K,desc:e.Bool}),me=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),Ie=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(me),description:e.Opt(e.Text),created_at:e.Opt(me)}),M=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),G=e.Record({order:e.Opt(ve),owner:e.Opt(e.Principal),matcher:e.Opt(Ie),paginate:e.Opt(M)}),be=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}),Se=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),De=e.Record({key:be,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,Se)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),Ce=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,De)),items_length:e.Nat64}),Ne=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),Ue=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,scope:Ne,expires_at:e.Opt(e.Nat64)}),ke=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}),Le=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)}),qe=e.Record({block_index:e.Nat64,ledger_id:e.Principal}),Be=e.Record({owner:e.Principal,subaccount:e.Opt(e.Vec(e.Nat8))}),je=e.Record({status:Te,updated_at:e.Nat64,created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64),purchaser:Be}),Je=e.Record({desc:e.Bool}),Ke=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Me=e.Record({order:e.Opt(Je),paginate:e.Opt(Ke)}),Ge=e.Record({proposal_id:e.Nat}),Oe=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(Ge,v)),items_length:e.Nat64}),F=e.Variant({Orbiter:e.Null,Satellite:e.Null}),We=e.Record({segment_id:e.Opt(e.Principal),segment_kind:e.Opt(F)}),ye=e.Record({user:e.Principal,segment_id:e.Principal,segment_kind:F}),C=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,created_at:e.Nat64}),qa=e.Record({openid:e.Opt(Z),version:e.Opt(e.Nat64),internet_identity:e.Opt(ee),rules:e.Opt(ae)}),Ba=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:Ne,expires_at:e.Opt(e.Nat64)}),ja=e.Record({controller:Ba,controllers:e.Vec(e.Principal)}),Ja=e.Record({fee_cycles:le,fee_icp:e.Opt(a)}),Ka=e.Record({metadata:e.Opt(e.Vec(e.Tuple(e.Text,e.Text))),segment_id:e.Principal,segment_kind:F}),Ma=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:F}),Ga=e.Record({iframe:e.Opt(w),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(re),raw_access:e.Opt(ie),redirects:e.Opt(e.Vec(e.Tuple(e.Text,ne)))}),Wa=e.Record({segment_id:e.Principal,segment_kind:F}),za=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Ha=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],[W],[]),commit_proposal:e.Func([k],[e.Null],[]),commit_proposal_asset_upload:e.Func([V],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(V)],[],[]),count_proposals:e.Func([],[e.Nat64],[]),create_mission_control:e.Func([$],[e.Principal],[]),create_orbiter:e.Func([Y],[e.Principal],[]),create_satellite:e.Func([X],[e.Principal],[]),del_controllers:e.Func([L],[],[]),del_custom_domain:e.Func([e.Text],[],[]),delete_proposal_assets:e.Func([Q],[],[]),get_account:e.Func([],[e.Opt(d)],[]),get_auth_config:e.Func([],[e.Opt(q)],[]),get_config:e.Func([],[te],[]),get_create_orbiter_fee:e.Func([B],[e.Opt(a)],[]),get_create_satellite_fee:e.Func([B],[e.Opt(a)],[]),get_credits:e.Func([],[a],[]),get_delegation:e.Func([E],[ce],[]),get_fee:e.Func([R],[Fe],[]),get_or_init_account:e.Func([],[d],[]),get_proposal:e.Func([e.Nat],[e.Opt(v)],[]),get_rate_config:e.Func([R],[pe],[]),get_storage_config:e.Func([],[P],[]),http_request:e.Func([Pe],[S],[]),http_request_streaming_callback:e.Func([I],[ue],[]),init_proposal:e.Func([de],[e.Nat,v],[]),init_proposal_asset_upload:e.Func([D,e.Nat],[_e],[]),init_proposal_many_assets_upload:e.Func([e.Vec(D),e.Nat],[e.Vec(e.Tuple(e.Text,_e))],[]),list_accounts:e.Func([],[e.Vec(e.Tuple(e.Principal,d))],[]),list_assets:e.Func([e.Text,G],[Ce],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,Ue))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,ke))],[]),list_icp_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,Le))],[]),list_icrc_payments:e.Func([],[e.Vec(e.Tuple(qe,je))],[]),list_proposals:e.Func([Me],[Oe],[]),list_segments:e.Func([We],[e.Vec(e.Tuple(ye,C))],[]),reject_proposal:e.Func([k],[e.Null],[]),set_auth_config:e.Func([qa],[q],[]),set_controllers:e.Func([ja],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([R,Ja],[],[]),set_rate_config:e.Func([R,pe],[],[]),set_segment:e.Func([Ka],[C],[]),set_segment_metadata:e.Func([Ma],[C],[]),set_storage_config:e.Func([Ga],[P],[]),submit_proposal:e.Func([e.Nat],[e.Nat,v],[]),unset_segment:e.Func([Wa],[],[]),upload_proposal_asset_chunk:e.Func([za],[Ha],[])})};var lt=async({identity:e,host:a,localActor:r})=>await ct.create({identity:e,host:a,retryTimes:10,shouldFetchRootKey:r}),dt=async({agent:e,...a})=>e??await pt(a),pt=async({identity:e,container:a})=>{let r=st(a)&&a!==!1;return await lt({identity:e,host:r?a===!0?"http://127.0.0.1:5987":a:"https://icp-api.io",localActor:r})};var zr=({satelliteId:e,certified:a=!1,...r})=>$r({canisterId:e,...r,idlFactory:a?rr:ar});var Hr=({consoleId:e,certified:a=!1,...r})=>$r({canisterId:e,...r,idlFactory:a?ot:tt}),$r=({canisterId:e,idlFactory:a,...r})=>{if(it(e))throw new Error("No canister ID provided.");return ut({canisterId:e,idlFactory:a,...r})},ut=async({canisterId:e,idlFactory:a,config:r,...i})=>{let n=await dt(i);return nt.createActor(a,{agent:n,canisterId:e,...r??{}})};import{nonNullish as ir}from"@dfinity/utils";var Yr=({satelliteId:e,container:a})=>{let{satelliteId:r}=nr({satelliteId:e}),{container:i}=tr({container:a});if(ir(i)&&i!==!1){let{host:n,protocol:t}=new URL(i===!0?Ye:i);return`${t}//${r??"unknown"}.${n.replace("127.0.0.1","localhost")}`}return`https://${r??"unknown"}.icp0.io`},nr=({satelliteId:e})=>ir(e)?{satelliteId:e}:y.getInstance().get()??{satelliteId:void 0},tr=({container:e})=>ir(e)?{container:e}:y.getInstance().get()??{container:void 0};var N=({satellite:e,options:{certified:a}})=>Qr({idlFactory:a?rr:ar,actorKey:`stock#${a?"update":"query"}`,...e}),Xr=({idlFactory:e,...a})=>Qr({idlFactory:e,actorKey:"extended#query",...a}),Qr=async({satelliteId:e,container:a,...r})=>{let{satelliteId:i}=nr({satelliteId:e});_t(i,"No satellite ID defined. Did you initialize Juno?");let{container:n}=tr({container:a});return await Qe.getInstance().getActor({satelliteId:i,container:n,...r})};import{isNullish as aa,toNullable as U}from"@dfinity/utils";import{Principal as mt}from"@icp-sdk/core/principal";var pa=class extends Error{},ge=class extends Error{},ua=class extends Error{},_a=class extends Error{},ea=class extends Error{},ma=class extends Error{},Na=class extends Error{},Ta=class extends Error{},Oa=class extends Error{};var Zr=e=>{if(aa(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 Oa("Invalid list matcher for timestamp",e)}},Re=({matcher:e,paginate:a,order:r,owner:i})=>({matcher:aa(e)?[]:[{key:U(e.key),description:U(e.description),created_at:Zr(e.createdAt),updated_at:Zr(e.updatedAt)}],paginate:U(aa(a)?void 0:{start_after:U(a.startAfter),limit:U(aa(a.limit)?void 0:BigInt(a.limit))}),order:U(aa(r)?void 0:{desc:r.desc,field:r.field==="created_at"?{CreatedAt:null}:r.field==="updated_at"?{UpdatedAt:null}:{Keys:null}}),owner:U(aa(i)?void 0:typeof i=="string"?mt.fromText(i):i)});import{jsonReplacer as Nt,jsonReviver as Tt}from"@dfinity/utils";var ei=async e=>{let a=new Blob([JSON.stringify(e,Nt)],{type:"application/json; charset=utf-8"});return new Uint8Array(await a.arrayBuffer())},ya=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(),Tt)},ga=()=>typeof window<"u";var ai=async({data:e})=>{try{return await ya(e)}catch(a){console.error("The data parsing has failed, mapping to undefined as a fallback.",a);return}};import{fromNullable as ri,toNullable as or}from"@dfinity/utils";var sr=async e=>{let{data:a,version:r,description:i}=e;return{description:or(i),data:await ei(a),version:or(r)}},cr=e=>{let{version:a}=e;return{version:or(a)}},ze=async({doc:e,key:a})=>{let{owner:r,version:i,description:n,data:t,...o}=e;return{key:a,description:ri(n),owner:r.toText(),data:await ya(t),version:ri(i),...o}};var ii=async({collection:e,key:a,...r})=>{let{get_doc:i}=await N(r),n=ra(await i(e,a));if(!Ot(n))return ze({doc:n,key:a})},ni=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=ra(s);t.push(yt(c)?await ze({key:o,doc:c}):void 0)}return t},ti=async({collection:e,doc:a,...r})=>{let{set_doc:i}=await N(r),{key:n}=a,t=await sr(a),o=await i(e,n,t);return await ze({key:n,doc:o})},oi=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 sr(s)])}let n=await r(i),t=[];for(let[o,s]of n)t.push(await ze({key:o,doc:s}));return t},si=async({collection:e,doc:a,...r})=>{let{del_doc:i}=await N(r),{key:n}=a;return i(e,n,cr(a))},ci=async({docs:e,...a})=>{let{del_many_docs:r}=await N(a),i=e.map(({collection:n,doc:t})=>[n,t.key,cr(t)]);await r(i)},li=async({collection:e,filter:a,...r})=>{let{del_filtered_docs:i}=await N(r);return i(e,Re(a))},di=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:g,...x}=p;l.push({key:d,description:ra(O),owner:m.toText(),data:await ai({data:u}),version:ra(g),...x})}return{items:l,items_length:o,items_page:ra(t),matches_length:s,matches_pages:ra(c)}},pi=async({collection:e,filter:a,...r})=>{let{count_docs:i}=await N(r);return i(e,Re(a))};var xa=async({satellite:e,options:a,...r})=>{let i=_(e?.identity);return await ii({...r,satellite:{...e,identity:i},options:a??z})},zc=async({satellite:e,options:a,...r})=>{let i=_(e?.identity);return await ni({...r,satellite:{...e,identity:i},options:a??z})},ui=async({satellite:e,...a})=>{let r=_(e?.identity);return await ti({...a,satellite:{...e,identity:r},options:{certified:!0}})},_i=async({satellite:e,...a})=>{let r=_(e?.identity);return await oi({...a,satellite:{...e,identity:r},options:{certified:!0}})},Hc=async({satellite:e,...a})=>{let r=_(e?.identity);return await si({...a,satellite:{...e,identity:r},options:{certified:!0}})},$c=async({satellite:e,...a})=>{let r=_(e?.identity);return await ci({...a,satellite:{...e,identity:r},options:{certified:!0}})},Yc=async({satellite:e,filter:a,...r})=>{let i=_(e?.identity);return await li({...r,filter:a??{},satellite:{...e,identity:i},options:{certified:!0}})},Xc=async({satellite:e,options:a,filter:r,...i})=>{let n=_(e?.identity);return await di({...i,filter:r??{},satellite:{...e,identity:n},options:a??z})},Qc=async({satellite:e,options:a,filter:r,...i})=>{let n=_(e?.identity);return await pi({...i,filter:r??{},satellite:{...e,identity:n},options:a??z})};var Ni=async({provider:e})=>{let{user:a,userId:r}=await Ra();if(mi(a))return a;try{return await xt({userId:r,provider:e})}catch(i){if(er({error:i,type:Wr})){let n=await Ti({userId:r});if(mi(n))return n}throw i}},Ra=async()=>{let e=da();if(gt(e))throw new Ta("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})=>xa({collection:"#user",key:e}),xt=({userId:e,...a})=>ui({collection:"#user",doc:{key:e,data:a}});var ha=async({syncTabsOnSuccess:e}={syncTabsOnSuccess:!1})=>{await sa({fn:async()=>{let{user:r}=await Ra();f.getInstance().set(r??null)},syncTabsOnSuccess:e})},Oi=async()=>{await Gr({fn:async({authenticated:a})=>{let i=a?Ra:()=>Promise.resolve({user:null}),{user:n}=await i();f.getInstance().set(n??null)}})},fa=async({user:e})=>{await sa({fn:async()=>{f.getInstance().set(e)},syncTabsOnSuccess:!0})};var yi=()=>{try{let e=Ze.getInstance(),a=async()=>{await Oi(),oa({message:"junoSignInReload"})};return e.onLoginSuccess(a),()=>{e?.destroy()}}catch(e){console.warn("Auth BroadcastChannel initialization failed",e);return}};var gi=()=>{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()},xi=()=>{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()},Ri=()=>{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()},hi=()=>{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()},Fa=()=>{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 ft,isNullish as Ft,nonNullish as Ii}from"@dfinity/utils";var fi=BigInt(144e11),Fi=!1,Vi={width:576,height:576},Ai={width:424,height:576},lr="internetcomputer.org",wi="ic0.app",Va="id.ai";import{isNullish as Pi}from"@dfinity/utils";var Ei=({width:e,height:a})=>{if(!ga()||Pi(window)||Pi(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 Rt}from"@dfinity/utils";import{ERROR_USER_INTERRUPT as ht}from"@icp-sdk/auth/client";var H=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 vi=(r=>(r[r.AuthorizingWithProvider=0]="AuthorizingWithProvider",r[r.CreatingOrRetrievingUser=1]="CreatingOrRetrievingUser",r))(vi||{});var Aa=class{async signIn({options:a,authClient:r,initAuth:i}){await H({fn:async()=>await this.#e({options:a,authClient:r}),step:0,onProgress:a?.onProgress}),await H({fn:async()=>await i({provider:this.id}),step:1,onProgress:a?.onProgress})}#e({options:a,authClient:r}){return new Promise(async(i,n)=>{if(Rt(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===ht){n(new ua(t));return}n(new pa(t))},maxTimeToLive:a?.maxTimeToLiveInNanoseconds??fi,allowPinAuthentication:a?.allowPin??Fi,...a?.derivationOrigin!==void 0&&{derivationOrigin:a.derivationOrigin},...this.signInOptions({windowed:a?.windowed})})})}};var wa=class extends Aa{#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(Ft(t)||t===!1){let d=[lr,wi].includes(this.#e??Va);return ft(this.#e)?`https://${Va}`:d?`https://identity.${this.#e??lr}`:`https://${this.#e}`}let o=y.getInstance().get(),s=Ii(o)&&Ii(o?.internetIdentityId)?o.internetIdentityId:qr,{host:c,protocol:l}=new URL(t===!0?Ye:t);return/apple/i.test(navigator?.vendor)?`${l}//${c}?canisterId=${s}`:`${l}//${s}.${c.replace("127.0.0.1","localhost")}`})();return{...a!==!1&&{windowOpenerFeatures:Ei((()=>{try{let{hostname:t}=new URL(i);return t.includes(Va)}catch{return!1}})()?Ai:Vi)},identityProvider:i}}};import{isEmptyString as no,isNullish as to,nonNullish as oo,notEmptyString as so}from"@dfinity/utils";var dr=class extends Error{},pr=class extends Error{},ur=class extends Error{},_r=class extends Error{},mr=class extends Error{},Nr=class extends Error{},Tr=class extends Error{},Pa=class extends Error{},Or=class extends Error{},yr=class extends Error{},gr=class extends Error{constructor(e){super("GitHub OAuth initialization failed",e)}},xr=class extends Error{constructor(e){super("GitHub OAuth finalization failed",e)}};import{fromNullable as Vt}from"@dfinity/utils";import{Delegation as At,ECDSAKeyIdentity as wt}from"@icp-sdk/core/identity";import{DelegationChain as vt,DelegationIdentity as It}from"@icp-sdk/core/identity";var bi=({auth:e,identity:a})=>"satellite"in e?zr({...e.satellite,identity:a}):Hr({...e.console,identity:a}),Pt=async({actorParams:e,args:a})=>{let{authenticate:r}=await bi(e);return await r(a)},Et=async({actorParams:e,args:a})=>{let{get_delegation:r}=await bi(e);return await r(a)},bt=({delegations:e,sessionKey:a})=>{let[r,i]=e,n=vt.fromDelegations(i,Uint8Array.from(r));return{identity:It.fromDelegation(a,n),delegationChain:n,sessionKey:a}},Ea=async({jwt:e,context:a,auth:r})=>{let i=await wt.generate({extractable:!1}),n=new Uint8Array(i.getPublicKey().toDer()),{delegations:t,data:o}=await St({jwt:e,publicKey:n,context:a,auth:r});return{identity:bt({sessionKey:i,delegations:t}),data:o}},St=async({jwt:e,publicKey:a,context:{caller:r,salt:i},auth:n})=>{let t=await Pt({args:{OpenId:{jwt:e,session_key:a,salt:i}},actorParams:{auth:n,identity:r}});if("Err"in t)throw new mr("Authentication failed",{cause:t});let{delegation:{user_key:o,expiration:s},...c}=t.Ok,l=await Dt({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 At(Uint8Array.from(u),m,Vt(O)),signature:Uint8Array.from(p)}]],data:c}},Dt=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 Et({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 Or("Getting delegation failed",{cause:c})}return c.Ok}throw new yr};var Si=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 gr({cause:a})}}},Di=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 xr({cause:r})}}};var Rr="juno:auth:openid",hr={authUrl:"https://accounts.google.com/o/oauth2/v2/auth",authScopes:["openid","profile","email"],configUrl:"https://accounts.google.com/gsi/fedcm.json"},va={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"};import{isNullish as Ct}from"@dfinity/utils";import{Ed25519KeyIdentity as Ut}from"@icp-sdk/core/identity";import{arrayBufferToUint8Array as kt}from"@dfinity/utils";import{uint8ArrayToBase64 as Lt}from"@dfinity/utils";import{base64ToUint8Array as Jt,uint8ArrayToBase64 as Kt}from"@dfinity/utils";import{Ed25519KeyIdentity as Mt}from"@icp-sdk/core/identity";var fr=e=>Lt(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),Ia=({url:e})=>{try{return new URL(e)}catch{throw new dr("Cannot parse authURL",{cause:e})}},qt=()=>window.crypto.getRandomValues(new Uint8Array(32)),Bt=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 window.crypto.subtle.digest("SHA-256",i);return fr(kt(n))},jt=async({caller:e})=>{let a=qt();return{nonce:await Bt({salt:a,caller:e}),salt:a}},Ci="__caller__",Ui="__salt__",ki="__state__",Gt=({caller:e,state:a,salt:r})=>{let i={[Ci]:e.toJSON(),[Ui]:Kt(r),[ki]:a};return JSON.stringify(i)},Wt=e=>{let{[Ci]:a,[Ui]:r,[ki]:i}=JSON.parse(e);return{caller:Mt.fromParsedJson(a),salt:Jt(r),state:i}},Fr=async({generateState:e})=>{let a=Ut.generate(),{nonce:r,salt:i}=await jt({caller:a}),n=await e({nonce:r}),t=Gt({caller:a,salt:i,state:n});return sessionStorage.setItem(Rr,t),{nonce:r,state:n}},Li=()=>{let e=sessionStorage.getItem(Rr);if(Ct(e))throw new pr;return Wt(e)};import{isEmptyString as zt}from"@dfinity/utils";import{isEmptyString as Vr}from"@dfinity/utils";var Ht=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 Di({url:r,body:{code:t,state:o}});if("error"in s)throw s.error;let{success:{token:c}}=s;if(zt(c))throw new Pa;return await Ea({jwt:c,auth:e,context:a})},$t=async({auth:e,context:a})=>{let{location:{hash:r}}=window;if(Vr(r)||!r.startsWith("#"))throw new Nr("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(Vr(o)||n!==o)throw new Tr("The provided state is invalid",{cause:n});if(Vr(t))throw new Pa;return await Ea({jwt:t,auth:e,context:a})},Ar=async e=>{let a=Li();if("github"in e){let{github:{redirect:i,auth:n}}=e,{finalizeUrl:t}=va;return await Ht({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 Ea({jwt:i,context:a,auth:n})}return await $t({...r,context:a})};import{isNullish as eo,notEmptyString as ao}from"@dfinity/utils";var Yt=({initUrl:e})=>async({nonce:a})=>{let r=Ia({url:e});r.searchParams.set("nonce",a);let i=await Si({url:r.toString()});if("error"in i)throw i.error;let{success:{state:n}}=i;return n},Xt=({authUrl:e,clientId:a,authScopes:r,state:i,redirectUrl:n})=>{let t=Ia({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()},Qt=()=>fr(window.crypto.getRandomValues(new Uint8Array(12))),Zt=async e=>Qt(),ro=({authUrl:e,clientId:a,nonce:r,loginHint:i,authScopes:n,state:t,redirectUrl:o})=>{let s=Ia({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),ao(i)?s.searchParams.set("login_hint",i):s.searchParams.set("prompt","select_account"),window.location.href=s.toString()},io=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(eo(t))throw new ur;let{type:o}=t;if(o!=="identity"||!("token"in t)||typeof t.token!="string")throw new _r("Invalid credential received from FedCM API",{cause:t});let{token:s}=t;return{jwt:s}};async function ca(e){if("github"in e){let{github:o}=e,{redirect:s}=o,{initUrl:c,...l}=s,{authUrl:d,authScopes:p,initUrl:u}=va,m=await Fr({generateState:Yt({initUrl:c??u})});Xt({...l,...m,authUrl:d,authScopes:p});return}let a=await Fr({generateState:Zt}),{google:r}=e;if("credentials"in r){let{credentials:o}=r,{configUrl:s}=hr;return await io({...o,...a,configUrl:s})}let{redirect:i}=r,{authUrl:n,authScopes:t}=hr;ro({...i,...a,authUrl:n,authScopes:t})}var ba=({url:e})=>{try{return new URL(e)}catch{return console.warn(`Cannot parse URL ${e}. Skipping option.`),null}};var co=async e=>{let{satelliteId:a}=y.getInstance().get()??{satelliteId:void 0};if(to(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(so(p))return p;let u=Fa();return no(u)?null:ba({url:`${u}/v1/auth/finalize/github`})?.toString()??null})(),{identity:{delegationChain:o,sessionKey:s,identity:c},data:{doc:l}}=await Ar("github"in e?{github:{redirect:oo(t)?{finalizeUrl:t}:null,...i}}:{google:{redirect:null,...i}});await h.getInstance().setAuthClientStorage({delegationChain:o,sessionKey:s});let d=await ze({doc:l,key:c.getPrincipal().toText()});await fa({user:d})};var qi=e=>(e.preventDefault(),e.returnValue="Are you sure you want to exit?"),lo=()=>{window.addEventListener("beforeunload",qi,{capture:!0})},po=()=>{window.removeEventListener("beforeunload",qi,{capture:!0})},Sa=async({fn:e})=>{try{return lo(),await e()}finally{po()}};import{DelegationChain as To,DelegationIdentity as Oo,ECDSAKeyIdentity as yo,Ed25519KeyIdentity as go}from"@icp-sdk/core/identity";function Bi(e){return new Promise((a,r)=>{e.oncomplete=e.onsuccess=()=>a(e.result),e.onabort=e.onerror=()=>r(e.error)})}function Pr(e,a){let r,i=()=>{if(r)return r;let n=indexedDB.open(e);return n.onupgradeneeded=()=>n.result.createObjectStore(a),r=Bi(n),r.then(t=>{t.onclose=()=>r=void 0},()=>{}),r};return(n,t)=>i().then(o=>t(o.transaction(a,n).objectStore(a)))}var wr;function uo(){return wr||(wr=Pr("keyval-store","keyval")),wr}function ji(e,a,r=uo()){return r("readwrite",i=>new Promise((n,t)=>{i.get(e).onsuccess=function(){try{i.put(a(this.result),e),n(Bi(i.transaction))}catch(o){t(o)}}}))}var _o=class extends Error{constructor(){super("A dev identity can only be used in browser environments")}},mo=class extends Error{constructor(){super("A dev identity must only be used on localhost (127.0.0.1 or localhost)")}},No=class extends Error{constructor(e){super(`Identifier must be 32 characters or less, got ${e}`)}},xo=Pr("juno-dev-identifiers","juno-dev-identifiers-store");var Ji=async({identifier:e="dev",maxTimeToLiveInMilliseconds:a}={})=>{if(!(typeof window<"u"))throw new _o;let{location:{hostname:r}}=window;if(!["127.0.0.1","localhost"].includes(r))throw new mo;let i=()=>{if(e.length>32)throw new No(e.length);return new TextEncoder().encode(e.padEnd(32,"0"))},n=async()=>{let s=i(),c=go.generate(s),l=await yo.generate({extractable:!1}),d=a??6048e5,p=await To.create(c,l.getPublicKey(),new Date(Date.now()+d));return{identity:Oo.fromDelegation(l,p),sessionKey:l,delegationChain:p}},t=async()=>{await ji(e,s=>{let c=Date.now();return{createdAt:s?.createdAt??c,updatedAt:c}},xo)},o=await n();return await t(),o};var Da=class{async signIn({options:a,initAuth:r,setStorage:i}){let{sessionKey:n,delegationChain:t}=await Ji(a);await i({sessionKey:n,delegationChain:t}),await r({provider:void 0})}};import{isEmptyString as Ro,isNullish as ho,notEmptyString as fo}from"@dfinity/utils";var Ca=class{async signIn({options:a={}}){let r=a?.redirect?.clientId??hi();if(ho(r))throw new ea;let{redirect:i}=a;await ca({github:{redirect:{...i??{},clientId:r,initUrl:(()=>{let t=a?.redirect?.initUrl;if(fo(t))return t;let o=Fa();if(!Ro(o))return ba({url:`${o}/v1/auth/init/github`})?.toString()})()}}})}};import{isNullish as Fo}from"@dfinity/utils";var Ua=class{async signIn({options:a={}}){let r=a?.redirect?.clientId??Ri();if(Fo(r))throw new ea;let{redirect:i}=a;await ca({google:{redirect:{...i??{},clientId:r}}})}};import{isNullish as Er,uint8ArrayToBase64 as Po}from"@dfinity/utils";import{IdbStorage as Eo,KEY_STORAGE_DELEGATION as vo,KEY_STORAGE_KEY as Io}from"@icp-sdk/auth/client";import{AnonymousIdentity as bo}from"@icp-sdk/core/agent";import{DelegationChain as So,DelegationIdentity as Do,DER_COSE_OID as Co,ECDSAKeyIdentity as Uo,unwrapDER as ko}from"@icp-sdk/core/identity";import{nonNullish as Vo,uint8ArrayToArrayOfNumber as Ao}from"@dfinity/utils";var Ki=async({delegationIdentity:e,passkeyIdentity:a,satelliteId:r})=>{let i=a.getCredential().getAAGUID(),[n,t]=await _i({docs:[{collection:"#user",doc:{key:e.getPrincipal().toText(),data:{provider:"webauthn",providerData:{webauthn:{...Vo(i)&&{aaguid:Ao(i)}}}}}},{collection:"#user-webauthn",doc:{key:a.getCredential().getCredentialIdText(),data:{publicKey:a.getPublicKey().toRaw()}}}],satellite:{identity:e,satelliteId:r}});return n};var Mi=(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))(Mi||{}),Gi=(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))(Gi||{});var ia=class{async signUp({options:{onProgress:a,maxTimeToLiveInMilliseconds:r,passkey:i}={},loadAuthWithUser:n}){let{satelliteId:t}=y.getInstance().get()??{satelliteId:void 0};if(Er(t))throw new ge("Satellite ID not set. Have you initialized the Satellite?");let o=({step:g,state:x})=>{switch(g){case xe.RequestingUserCredential:a?.({step:1,state:x});break;case xe.FinalizingCredential:a?.({step:2,state:x});break;case xe.Signing:a?.({step:3,state:x});break}},c=await H({fn:async()=>await Ya.createWithNewCredential({onProgress:o,passkeyOptions:i}),step:0,onProgress:a}),{delegationIdentity:l,sessionKey:d}=await this.#e({identity:c,maxTimeToLiveInMilliseconds:r}),u=await H({fn:async()=>await Ki({delegationIdentity:l,passkeyIdentity:c,satelliteId:t}),step:5,onProgress:a});await H({fn:async()=>await this.#a({delegationIdentity:l,sessionKey:d}),step:4,onProgress:a}),await H({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(Er(n))throw new ge("Satellite ID not set. Have you initialized the Satellite?");let t=async({credentialId:p})=>{let u=await xa({collection:"#user-webauthn",key:Po(p),options:{certified:!0},satellite:{identity:new bo,satelliteId:n}});if(Er(u))throw new ma("No public key found for the selected passkey.");let{data:m}=u,{publicKey:O}=m;return ko(O,Co)},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 Ya.createWithExistingCredential({retrievePublicKey:t,onProgress:o}),{delegationIdentity:c,sessionKey:l}=await this.#e({identity:s,maxTimeToLiveInMilliseconds:r});await H({fn:async()=>await this.#a({delegationIdentity:c,sessionKey:l}),step:3,onProgress:a}),await H({fn:i,step:4,onProgress:a})}async#e({identity:a,maxTimeToLiveInMilliseconds:r}){let i=await Uo.generate({extractable:!1}),n=r??144e5,t=await So.create(a,i.getPublicKey(),new Date(Date.now()+n));return{delegationIdentity:Do.fromDelegation(i,t),sessionKey:i}}async#a({sessionKey:a,delegationIdentity:r}){let i=new Eo;await Promise.all([i.set(Io,a.getKeyPair()),i.set(vo,JSON.stringify(r.getDelegation().toJSON()))])}};var Wi=async({provider:e})=>{await sa({fn:async()=>{let r=await Ni({provider:e});f.getInstance().set(r)},syncTabsOnSuccess:!0})},Lo=async e=>{if("google"in e){let{google:{options:a}}=e;await la({fn:()=>new Ua().signIn({options:a}),context:{windowGuard:!1}});return}if("github"in e){let{github:{options:a}}=e;await la({fn:()=>new Ca().signIn({options:a}),context:{windowGuard:!1}});return}if("webauthn"in e){let{webauthn:{options:a,context:r}}=e;await la({fn:()=>new ia().signIn({options:a,loadAuth:()=>ha({syncTabsOnSuccess:!0})}),context:r});return}if("internet_identity"in e){let{internet_identity:{options:a,context:r}}=e,{domain:i,...n}=a??{};await la({fn:()=>new wa({domain:i}).signIn({options:n,authClient:h.getInstance().getAuthClient(),initAuth:Wi}),context:r});return}if("dev"in e){let{dev:{options:a}}=e,{setAuthClientStorage:r}=h.getInstance();await la({fn:()=>new Da().signIn({options:a,initAuth:Wi,setStorage:r}),context:{windowGuard:!1}});return}throw new _a("An unknown or unsupported provider was provided for sign-in.")},la=async({fn:e,context:a})=>{if(a?.windowGuard===!1){await e();return}await Sa({fn:e})};var qo=async e=>{let a=async()=>await Bo(e);if(Object.values(e)?.[0].context?.windowGuard===!1){await a();return}await Sa({fn:a})},Bo=async e=>{if("webauthn"in e){let{webauthn:{options:a}}=e;await new ia().signUp({options:a,loadAuthWithUser:fa});return}throw new Na("An unknown or unsupported provider was provided for sign-up.")};var $p=e=>e?.data?.provider==="webauthn",Yp=e=>e?.data?.provider==="google";var eu=async({idlFactory:e,satellite:a})=>{let r=_(a?.identity);return await Xr({idlFactory:e,...a,identity:r})};import{fromNullable as tn,nonNullish as on}from"@dfinity/utils";import{fromNullable as La,toNullable as zo}from"@dfinity/utils";import{assertNonNullish as iu,toNullable as ka}from"@dfinity/utils";var zi=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(jo(r));n?.onInitiatedBatch();let{chunkIds:l}=await Mo({data:e,uploadFn:o,batchId:c});n?.onUploadedFileChunks(r.fullPath),await Ko({commitFn:s,batchId:c,data:e,headers:a,chunkIds:l}),n?.onCommittedBatch()};var jo=({filename:e,collection:a,token:r,fullPath:i,encoding:n,description:t})=>({collection:a,full_path:i,name:e,token:ka(r),encoding_type:ka(n),description:ka(t)}),Jo=({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??[]]}},Ko=async({commitFn:e,...a})=>{let r=Jo(a);await e(r)},Mo=async({data:e,uploadFn:a,batchId:r})=>{let i=[],n=ga()?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 Go({uploadChunks:i}))o=[...o,...s];return{chunkIds:o}};async function*Go({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=>Wo(n)))}}var Wo=async({batchId:e,chunk:a,uploadFn:r,orderId:i})=>r({batch_id:e,content:new Uint8Array(await a.arrayBuffer()),order_id:ka(i)});var Hi=async({asset:e,...a})=>{let r=await N(a);await zi({actor:r,asset:e})},$i=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:La(o),matches_length:s,matches_pages:La(c)}},Yi=async({collection:e,filter:a,...r})=>{let{count_assets:i}=await N(r);return i(e,Re(a))},Xi=async({collection:e,fullPath:a,...r})=>(await N(r)).del_asset(e,a),Qi=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)},Zi=async({collection:e,filter:a,...r})=>{let{del_filtered_assets:i}=await N(r);return i(e,Re(a))},en=async({collection:e,fullPath:a,token:r,...i})=>{let{set_asset_token:n}=await N(i);return n(e,a,zo(r))},an=async({collection:e,fullPath:a,...r})=>{let{get_asset:i}=await N(r);return La(await i(e,a))},rn=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])=>La(o))};var nn=e=>btoa([...e].map(a=>String.fromCharCode(a)).join(""));var yu=e=>sn(e),gu=e=>sn({filename:e.data.name,...e}),sn=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 Hi({asset:{data:a,filename:d,collection:r,token:t,headers:i,fullPath:p,encoding:s,description:c},satellite:u,options:{certified:!0}}),{downloadUrl:cn({satellite:u,assetKey:{fullPath:p,token:t}}),fullPath:p,...on(t)&&{token:t},name:d}},xu=async({collection:e,filter:a,satellite:r,options:i})=>{let n={...r,identity:_(r?.identity)},{items:t,...o}=await $i({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:g,updated_at:x})=>{let W=tn(l);return{fullPath:c,description:tn(u),name:d,downloadUrl:cn({satellite:n,assetKey:{fullPath:c,token:W}}),token:W,headers:m,encodings:O.reduce((k,[V,{modified:$,sha256:Y,total_length:T}])=>({...k,[V]:{modified:$,sha256:nn(Y),total_length:T}}),{}),owner:p.toText(),created_at:g,updated_at:x}});return{items:s,assets:s,...o}},Ru=async({collection:e,filter:a,satellite:r,options:i})=>{let n={...r,identity:_(r?.identity)};return await Yi({collection:e,satellite:n,filter:a??{},options:i??z})},hu=({collection:e,fullPath:a,satellite:r})=>Xi({collection:e,fullPath:a,satellite:{...r,identity:_(r?.identity)},options:{certified:!0}}),fu=({collection:e,fullPath:a,token:r,satellite:i})=>en({collection:e,fullPath:a,token:r,satellite:{...i,identity:_(i?.identity)},options:{certified:!0}}),Fu=({assets:e,satellite:a})=>Qi({assets:e,satellite:{...a,identity:_(a?.identity)},options:{certified:!0}}),Vu=async({collection:e,satellite:a,filter:r})=>{let i={...a,identity:_(a?.identity)};return await Zi({collection:e,satellite:i,filter:r??{},options:{certified:!0}})},Au=async({satellite:e,options:a,...r})=>{let i=_(e?.identity);return await an({...r,satellite:{...e,identity:i},options:a??z})},wu=async({satellite:e,options:a,...r})=>{let i=_(e?.identity);return await rn({...r,satellite:{...e,identity:i},options:a??z})},cn=({assetKey:{fullPath:e,token:a},satellite:r})=>{let i={...r,identity:_(r?.identity)};return`${Yr(i)}${e}${on(a)?`?token=${a}`:""}`};var $o=e=>{let a=e?.satelliteId??gi();Ho(a,"Satellite ID is not configured. Juno cannot be initialized.");let r=e?.container??xi();return{satelliteId:a,internetIdentityId:e?.internetIdentityId,workers:e?.workers,syncTabs:e?.syncTabs,container:r}},ku=e=>Yo(e),Yo=async e=>{let a=$o(e);y.getInstance().set(a),await ha();let r=a.workers?.auth!==void 0?Mr(a.workers.auth):void 0,i=a.syncTabs===!1?void 0:yi();return[...ln(r)?[r]:[],...ln(i)?[i]:[]]},Xo=e=>f.getInstance().subscribe(e),Lu=Xo;export{vi as AuthClientSignInProgressStep,Ta as InitError,wa as InternetIdentityProvider,Oa as ListError,pa as SignInError,ge as SignInInitError,ea as SignInMissingClientIdError,_a as SignInProviderNotSupportedError,ua as SignInUserInterruptError,Na as SignUpProviderNotSupportedError,Mi as WebAuthnSignInProgressStep,ma as WebAuthnSignInRetrievePublicKeyError,Gi as WebAuthnSignUpProgressStep,Lu as authSubscribe,Ru as countAssets,Qc as countDocs,hu as deleteAsset,Hc as deleteDoc,Vu as deleteFilteredAssets,Yc as deleteFilteredDocs,Fu as deleteManyAssets,$c as deleteManyDocs,cn as downloadUrl,Au as getAsset,xa as getDoc,et as getIdentityOnce,wu as getManyAssets,zc as getManyDocs,eu as getSatelliteExtendedActor,co as handleRedirectCallback,ku as initJuno,Yo as initSatellite,Yp as isGoogleUser,qn as isWebAuthnAvailable,$p as isWebAuthnUser,xu as listAssets,Xc as listDocs,Xo as onAuthStateChange,fu as setAssetToken,ui as setDoc,_i as setManyDocs,Lo as signIn,Za as signOut,qo as signUp,Zn as unsafeIdentity,yu as uploadBlob,gu as uploadFile};
1
+ import{assertNonNullish as es,nonNullish as ri}from"@dfinity/utils";import{uint8ArrayToArrayOfNumber as ni}from"@dfinity/utils";import{DER_COSE_OID as oi,wrapDER as si}from"@icp-sdk/core/agent";import{uint8ArrayToBase64 as pi}from"@dfinity/utils";import{arrayBufferToUint8Array as ta,isNullish as ya,uint8ArraysEqual as Ri}from"@dfinity/utils";import{Cbor as xr,SignIdentity as hi}from"@icp-sdk/core/agent";import{nonNullish as Ei}from"@dfinity/utils";var ii=({authData:e})=>{if(e.byteLength<37)return{invalidAuthData:null};if(e.byteLength<53)return{invalidAuthData:null};let a=e.slice(37,53),r=ti({bytes:a});return"aaguid"in r?{aaguidBytes:a,aaguidText:r.aaguid}:{unknownProvider:null}},ti=({bytes:e})=>{if(e.length!==16)return{invalidBytes:null};let a=(e instanceof Uint8Array?ni(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 ci(e){let a=new DataView(new ArrayBuffer(2)),r=e.slice(53,55);[...new Uint8Array(r)].forEach((i,t)=>a.setUint8(t,i));let n=a.getUint16(0);return e.slice(55+n)}function li(e){return si(e,oi)}var di=class{constructor(e){this._cose=e,this.#e=li(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 di(a)}getPublicKey(){return this.#a}getCredentialId(){return this.#e}getCredentialIdText(){return pi(this.#e)}},ui=class extends Fr{#e;#a;constructor({authData:e,...a}){super(a);let r=ii({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}},_i=class extends Fr{},mi=class extends Error{},Ni=class extends Error{},Ti=class extends Error{},Oi=class extends Error{},yi=class extends Error{},gi=class extends Error{},xi=class extends Error{},gr=class extends Error{};var fi={ECDSA_WITH_SHA256:-7,RSA_WITH_SHA256:-257},Fi=6e4,Vr=()=>window.crypto.getRandomValues(new Uint8Array(16)),Vi=()=>Vr(),Ai=()=>Vr(),wi=()=>{let{location:{href:e}}=window;try{let{hostname:a}=new URL(e);return a}catch{throw new mi}},Ar=({appId:e})=>e?.id??wi(),vi=({appId:e,user:a}={})=>{let{document:{title:r}}=window,n=()=>({rp:{name:e?.name??r,id:Ar({appId:e})}}),i=()=>({user:{id:Ai(),name:a?.name??a?.displayName??r,displayName:a?.displayName??r}});return{attestation:"direct",challenge:Vi(),...n(),...i(),pubKeyCredParams:Object.values(fi).map(t=>({type:"public-key",alg:t})),excludeCredentials:[],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred",residentKey:"required",requireResidentKey:!0}}},Ii=(e={})=>({rpId:Ar(e),allowCredentials:[],userVerification:"required"}),Xa=async({fn:e,step:a,onProgress:r})=>{r?.({step:a,state:"in_progress"});try{let n=await e();return r?.({step:a,state:"success"}),n}catch(n){throw r?.({step:a,state:"error"}),n}},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??Fi),Pi=async({challenge:e,credentialIds:a,passkeyOptions:r,timeout:n})=>await navigator.credentials.get({publicKey:{...Ii(r),challenge:e.buffer,allowCredentials:(a??[]).map(i=>({id:i.buffer,type:"public-key"}))},signal:wr({timeout:n})}),Rr=e=>{if(e.status!=="initialized")throw new Ni},hr=e=>{if(ya(e))throw new Ti},fr=({type:e})=>{if(e!=="public-key")throw new Oi},Za=class ga extends hi{#e;#a;constructor({onProgress:a,...r}){if(super(),this.#e=a,"retrievePublicKey"in r){let{retrievePublicKey:n}=r;this.#a={status:"pending",retrievePublicKey:n};return}this.#a=ga.#r({credential:new ui(r)})}static#r({credential:a}){return{status:"initialized",credential:a}}static async createWithNewCredential({passkeyOptions:a,timeout:r,...n}={}){let i=await navigator.credentials.create({publicKey:vi(a),signal:wr({timeout:r})});hr(i),fr(i);let{response:{attestationObject:t},rawId:o}=i;if(ya(t))throw new yi;let{authData:s}=xr.decode(ta(t)),c=ci(s);return new ga({...n,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 n=await Pi({challenge:a,...this.#a.status==="initialized"&&{credentialIds:[this.#a.credential.getCredentialId()]}});return hr(n),fr(n),n},step:0,onProgress:this.#e});return await Xa({fn:async()=>{let{rawId:n}=r;if(this.#a.status==="initialized"){if(!Ri({a:this.#a.credential.getCredentialId(),b:ta(n)}))throw new gi;return}let{retrievePublicKey:i}=this.#a,t=await i({credentialId:ta(n)});this.#a=ga.#r({credential:new _i({rawId:ta(n),cose:t})})},step:1,onProgress:this.#e}),await Xa({fn:async()=>{let{response:n}=r,{clientDataJSON:i}=n,{authenticatorData:t,signature:o}="authenticatorData"in n&&"signature"in n?n:{};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(i),signature:ta(o)});if(ya(s))throw new xi;return Object.assign(s,{__signature__:void 0}),s},step:2,onProgress:this.#e})}},bi=async()=>Ei(window.PublicKeyCredential)&&"isUserVerifyingPlatformAuthenticatorAvailable"in PublicKeyCredential?await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():!1;import{isNullish as qi}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:n})=>n!==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 Di}from"@icp-sdk/core/agent";import{isNullish as Qa}from"@dfinity/utils";import{nonNullish as Ir}from"@dfinity/utils";import{HttpAgent as Si}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 n=Ir(a)&&a!==!1?a===!0?sa:a:"https://icp-api.io",i=Ir(a);return await Si.create({identity:e,shouldFetchRootKey:i,host:n})};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 n=a.getPrincipal().toText();if(Qa(this.#e)||Qa(this.#e[n])){let i=await Pr({identity:a,...r});return this.#e={...this.#e??{},[n]:i},i}return this.#e[n]}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:n,...i}){let t=`${n}#${r.getPrincipal().toText()}#${a};`;if(er(this.#e)||er(this.#e[t])){let o=await this.createActor({satelliteId:a,identity:r,...i});return this.#e={...this.#e??{},[t]:o},o}return this.#e[t]}reset(){this.#e=null}async createActor({idlFactory:a,satelliteId:r,...n}){let i=await ca.getInstance().getAgent(n);return Di.createActor(a,{agent:i,canisterId:r})}};import{isNullish as Ci}from"@dfinity/utils";import{AuthClient as ki,IdbStorage as Er,KEY_STORAGE_DELEGATION as Ui,KEY_STORAGE_KEY as br}from"@icp-sdk/auth/client";var g=class e{static#e;#a;constructor(){}static getInstance(){return Ci(this.#e)&&(this.#e=new e),this.#e}createAuthClient=async()=>(this.#a=await ki.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 n=new Er;await Promise.all([n.set(br,r.getKeyPair()),n.set(Ui,JSON.stringify(a.toJSON()))])}};var ar=async e=>{await Li(),await g.getInstance().createAuthClient(),e?.windowReload!==!1&&window.location.reload()},Li=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),n=async()=>{xa({message:"junoSignOutAuthTimer"}),await ar()};return r.onmessage=async({data:i})=>{let{msg:t,data:o}=i;switch(t){case"junoSignOutAuthTimer":await n();return;case"junoDelegationRemainingTime":xa({message:"junoDelegationRemainingTime",detail:o?.authRemainingTime})}},x.getInstance().subscribe(i=>{if(qi(i)){r.postMessage({msg:"junoStopAuthTimer"});return}r.postMessage({msg:"junoStartAuthTimer"})})};import{isNullish as Bi,nonNullish as Ji,notEmptyString as ji}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 Bi(this.#e)&&(this.#e=new e),this.#e}onLoginSuccess=a=>{let{location:{origin:r}}=window;this.#a.onmessage=async({origin:n,data:i})=>{n===r&&Ji(i)&&i.msg==="authClientLoginSuccess"&&ji(i.emitterId)&&i.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 Mi({fn:e});!r||!a||y.getInstance().get()?.syncTabs===!1||Ki()},Dr=async({fn:e})=>{let{createAuthClient:a}=g.getInstance(),n=await(await a()).isAuthenticated();await e({authenticated:n})},Mi=async({fn:e})=>{let{createAuthClient:a,safeCreateAuthClient:r}=g.getInstance();return await(await a()).isAuthenticated()?(await e(),{authenticated:!0}):(await r(),{authenticated:!1})},Ki=()=>{try{da.getInstance().postLoginSuccess()}catch(e){console.warn("Auth BroadcastChannel posting failed",e)}};import{isNullish as ut,nonNullish as nn}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 zi}from"@dfinity/utils";import{AnonymousIdentity as $i}from"@icp-sdk/core/agent";import{isNullish as Gi}from"@dfinity/utils";var fa=()=>g.getInstance().getAuthClient()?.getIdentity(),Wi=async()=>{let{getAuthClient:e,createAuthClient:a}=g.getInstance();return(e()??await a()).getIdentity()},Hi=async()=>{let e=x.getInstance().get();if(Gi(e))return null;let a=g.getInstance().getAuthClient();return await a?.isAuthenticated()??!1?a?.getIdentity()??null:null};var _=e=>zi(e)?e:fa()??new $i;import{fromNullable as _a,isNullish as dt,nonNullish as pt}from"@dfinity/utils";import{assertNonNullish as ot}from"@dfinity/utils";import{isNullish as Yi}from"@dfinity/utils";import{Actor as Xi}from"@icp-sdk/core/agent";import{nonNullish as et}from"@dfinity/utils";import{HttpAgent as at}from"@icp-sdk/core/agent";var nr=({IDL:e})=>{let a=e.Variant({Heap:e.Null,Stable:e.Null}),r=e.Record({system_memory:e.Opt(a)}),n=e.Record({controllers:e.Vec(e.Principal),storage:e.Opt(r)}),i=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),t=e.Variant({OpenId:i}),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}),ne=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(ne),description:e.Opt(e.Text),created_at:e.Opt(ne)}),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)}),ie=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))}),H=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(H)}),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}),z=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)}),He=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}),ze=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),$e=e.Record({order:e.Opt(w),paginate:e.Opt(ze)}),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,z)),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)}),na=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([ie],[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(H)],["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(z)],["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],[He],["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],[H],[]),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([na],[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],[z],[]),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],[])})},ir=({IDL:e})=>{let a=e.Variant({Heap:e.Null,Stable:e.Null}),r=e.Record({system_memory:e.Opt(a)}),n=e.Record({controllers:e.Vec(e.Principal),storage:e.Opt(r)}),i=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),t=e.Variant({OpenId:i}),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}),ne=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(ne),description:e.Opt(e.Text),created_at:e.Opt(ne)}),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)}),ie=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))}),H=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(H)}),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}),z=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)}),He=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}),ze=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),$e=e.Record({order:e.Opt(w),paginate:e.Opt(ze)}),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,z)),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)}),na=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([ie],[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(H)],[]),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(z)],[]),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],[He],[]),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],[H],[]),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([na],[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],[z],[]),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],[])})},Zi=({IDL:e})=>{let a=e.Record({e8s:e.Nat64}),r=e.Record({mission_control_id:e.Principal,user:e.Principal}),n=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),i=e.Variant({OpenId:n}),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)}),ne=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))}),ie=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(ie),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}),H=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)}),z=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}),He=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}),ze=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(ie),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)}),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([i],[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([ne],[],[]),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([H],[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,z))],["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],[He],["query"]),list_segments:e.Func([ze],[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],[na],[])})},Qi=({IDL:e})=>{let a=e.Record({e8s:e.Nat64}),r=e.Record({mission_control_id:e.Principal,user:e.Principal}),n=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),i=e.Variant({OpenId:n}),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)}),ne=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))}),ie=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(ie),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}),H=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)}),z=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}),He=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}),ze=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(ie),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)}),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([i],[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([ne],[],[]),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([H],[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,z))],[]),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],[He],[]),list_segments:e.Func([ze],[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],[na],[])})};var rt=async({identity:e,host:a,localActor:r})=>await at.create({identity:e,host:a,retryTimes:10,shouldFetchRootKey:r}),nt=async({agent:e,...a})=>e??await it(a),it=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?ir:nr});var Ur=({consoleId:e,certified:a=!1,...r})=>Lr({canisterId:e,...r,idlFactory:a?Qi:Zi}),Lr=({canisterId:e,idlFactory:a,...r})=>{if(Yi(e))throw new Error("No canister ID provided.");return tt({canisterId:e,idlFactory:a,...r})},tt=async({canisterId:e,idlFactory:a,config:r,...n})=>{let i=await nt(n);return Xi.createActor(a,{agent:i,canisterId:e,...r??{}})};import{nonNullish as tr}from"@dfinity/utils";var qr=({satelliteId:e,container:a})=>{let{satelliteId:r}=or({satelliteId:e}),{container:n}=sr({container:a});if(tr(n)&&n!==!1){let{host:i,protocol:t}=new URL(n===!0?sa:n);return`${t}//${r??"unknown"}.${i.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?ir:nr,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:n}=or({satelliteId:e});ot(n,"No satellite ID defined. Did you initialize Juno?");let{container:i}=sr({container:a});return await la.getInstance().getActor({satelliteId:n,container:i,...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:n})=>({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(n)?void 0:typeof n=="string"?st.fromText(n):n)});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:n}=e;return{description:cr(n),data:await Mr(a),version:cr(r)}},dr=e=>{let{version:a}=e;return{version:cr(a)}},ia=async({doc:e,key:a})=>{let{owner:r,version:n,description:i,data:t,...o}=e;return{key:a,description:Gr(i),owner:r.toText(),data:await Ea(t),version:Gr(n),...o}};var Wr=async({collection:e,key:a,...r})=>{let{get_doc:n}=await N(r),i=_a(await n(e,a));if(!dt(i))return ia({doc:i,key:a})},Hr=async({docs:e,...a})=>{let{get_many_docs:r}=await N(a),n=e.map(({collection:o,key:s})=>[o,s]),i=await r(n),t=[];for(let[o,s]of i){let c=_a(s);t.push(pt(c)?await ia({key:o,doc:c}):void 0)}return t},zr=async({collection:e,doc:a,...r})=>{let{set_doc:n}=await N(r),{key:i}=a,t=await lr(a),o=await n(e,i,t);return await ia({key:i,doc:o})},$r=async({docs:e,...a})=>{let{set_many_docs:r}=await N(a),n=[];for(let{collection:o,doc:s}of e){let{key:c}=s;n.push([o,c,await lr(s)])}let i=await r(n),t=[];for(let[o,s]of i)t.push(await ia({key:o,doc:s}));return t},Yr=async({collection:e,doc:a,...r})=>{let{del_doc:n}=await N(r),{key:i}=a;return n(e,i,dr(a))},Xr=async({docs:e,...a})=>{let{del_many_docs:r}=await N(a),n=e.map(({collection:i,doc:t})=>[i,t.key,dr(t)]);await r(n)},Zr=async({collection:e,filter:a,...r})=>{let{del_filtered_docs:n}=await N(r);return n(e,Re(a))},Qr=async({collection:e,filter:a,...r})=>{let{list_docs:n}=await N(r),{items:i,items_page:t,items_length:o,matches_length:s,matches_pages:c}=await n(e,Re(a)),l=[];for(let[d,p]of i){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)}},en=async({collection:e,filter:a,...r})=>{let{count_docs:n}=await N(r);return n(e,Re(a))};var Sa=async({satellite:e,options:a,...r})=>{let n=_(e?.identity);return await Wr({...r,satellite:{...e,identity:n},options:a??Z})},Qc=async({satellite:e,options:a,...r})=>{let n=_(e?.identity);return await Hr({...r,satellite:{...e,identity:n},options:a??Z})},an=async({satellite:e,...a})=>{let r=_(e?.identity);return await zr({...a,satellite:{...e,identity:r},options:{certified:!0}})},rn=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 n=_(e?.identity);return await Zr({...r,filter:a??{},satellite:{...e,identity:n},options:{certified:!0}})},nl=async({satellite:e,options:a,filter:r,...n})=>{let i=_(e?.identity);return await Qr({...n,filter:r??{},satellite:{...e,identity:i},options:a??Z})},il=async({satellite:e,options:a,filter:r,...n})=>{let i=_(e?.identity);return await en({...n,filter:r??{},satellite:{...e,identity:i},options:a??Z})};var tn=async({provider:e})=>{let{user:a,userId:r}=await Da();if(nn(a))return a;try{return await _t({userId:r,provider:e})}catch(n){if(rr({error:n,type:Cr})){let i=await on({userId:r});if(nn(i))return i}throw n}},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 on({userId:a});return{userId:a,user:r}},on=({userId:e})=>Sa({collection:"#user",key:e}),_t=({userId:e,...a})=>an({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})},sn=async()=>{await Dr({fn:async({authenticated:a})=>{let n=a?Da:()=>Promise.resolve({user:null}),{user:i}=await n();x.getInstance().set(i??null)}})},ka=async({user:e})=>{await Ra({fn:async()=>{x.getInstance().set(e)},syncTabsOnSuccess:!0})};var cn=()=>{try{let e=da.getInstance(),a=async()=>{await sn(),xa({message:"junoSignInReload"})};return e.onLoginSuccess(a),()=>{e?.destroy()}}catch(e){console.warn("Auth BroadcastChannel initialization failed",e);return}};var ln=()=>{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()},dn=()=>{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()},pn=()=>{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()},un=()=>{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 Rn}from"@dfinity/utils";var _n=BigInt(144e11),mn=!1,Nn={width:576,height:576},Tn={width:424,height:576},pr="internetcomputer.org",On="ic0.app",La="id.ai";import{isNullish as yn}from"@dfinity/utils";var gn=({width:e,height:a})=>{if(!ba()||yn(window)||yn(window.top))return;let{top:{innerWidth:r,innerHeight:n}}=window,i=n/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=${i}, 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 n=await e();return r?.({step:a,state:"success"}),n}catch(n){throw r?.({step:a,state:"error"}),n}};var xn=(r=>(r[r.AuthorizingWithProvider=0]="AuthorizingWithProvider",r[r.CreatingOrRetrievingUser=1]="CreatingOrRetrievingUser",r))(xn||{});var qa=class{async signIn({options:a,authClient:r,initAuth:n}){await Q({fn:async()=>await this.#e({options:a,authClient:r}),step:0,onProgress:a?.onProgress}),await Q({fn:async()=>await n({provider:this.id}),step:1,onProgress:a?.onProgress})}#e({options:a,authClient:r}){return new Promise(async(n,i)=>{if(mt(r)){i(new ge("No client is ready to perform a sign-in. Have you initialized the Satellite?"));return}await r.login({onSuccess:n,onError:t=>{if(t===Nt){i(new Va(t));return}i(new Fa(t))},maxTimeToLive:a?.maxTimeToLiveInNanoseconds??_n,allowPinAuthentication:a?.allowPin??mn,...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 n=(()=>{let t=y.getInstance().get()?.container;if(Ot(t)||t===!1){let d=[pr,On].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=Rn(o)&&Rn(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:gn((()=>{try{let{hostname:t}=new URL(n);return t.includes(La)}catch{return!1}})()?Tn:Nn)},identityProvider:n}}};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(),n=new Uint8Array(e.length+r.byteLength);n.set(e),n.set(r,e.length);let i=await crypto.subtle.digest("SHA-256",n);return ur(yt(i))},hn=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 Ht}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 Vn="juno:auth:openid",fn={authUrl:"https://accounts.google.com/o/oauth2/v2/auth",authScopes:["openid","profile","email"],configUrl:"https://accounts.google.com/gsi/fedcm.json"},An={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{},wn=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)}},vn="__caller__",In="__salt__",Pn="__state__",Lt=({caller:e,state:a,salt:r})=>{let n={[vn]:e.toJSON(),[In]:kt(r),[Pn]:a};return JSON.stringify(n)},qt=e=>{let{[vn]:a,[In]:r,[Pn]:n}=JSON.parse(e);return{caller:Ut.fromParsedJson(a),salt:Ct(r),state:n}},Fn=async({generateState:e})=>{let a=ft.generate(),{nonce:r,salt:n}=await hn({caller:a}),i=await e({nonce:r}),t=Lt({caller:a,salt:n,state:i});return sessionStorage.setItem(Vn,t),{nonce:r,state:i}},Bt=()=>{let e=sessionStorage.getItem(Vn);if(ht(e))throw new Vt;return qt(e)},En=({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 En(e);return await r(a)},Gt=async({actorParams:e,args:a})=>{let{get_delegation:r}=await En(e);return await r(a)},zt=({delegations:e,sessionKey:a})=>{let[r,n]=e,i=Wt.fromDelegations(n,Uint8Array.from(r));return{identity:Ht.fromDelegation(a,i),delegationChain:i,sessionKey:a}},mr=async({jwt:e,context:a,auth:r})=>{let n=await Mt.generate({extractable:!1}),i=new Uint8Array(n.getPublicKey().toDer()),{delegations:t,data:o}=await $t({jwt:e,publicKey:i,context:a,auth:r});return{identity:zt({sessionKey:n,delegations:t}),data:o}},$t=async({jwt:e,publicKey:a,context:{caller:r,salt:n},auth:i})=>{let t=await Kt({args:{OpenId:{jwt:e,session_key:a,salt:n}},actorParams:{auth:i,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:n},auth:i,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:n},auth:i,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:i,identity:n}});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:n}}=window,i=new URLSearchParams(n),t=i.get("code"),o=i.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 wn;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 n=new URLSearchParams(r.slice(1)),i=n.get("state"),t=n.get("id_token"),{state:o}=a;if(_r(o)||i!==o)throw new Pt("The provided state is invalid",{cause:i});if(_r(t))throw new wn;return await mr({jwt:t,auth:e,context:a})},bn=async e=>{let a=Bt();if("github"in e){let{github:{redirect:n,auth:i}}=e,{finalizeUrl:t}=An;return await eo({redirect:n??{finalizeUrl:t},auth:i,context:a})}let{google:r}=e;if("credentials"in r){let{credentials:{jwt:n},auth:i}=r;return await mr({jwt:n,context:a,auth:i})}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 n=await Zt({url:r.toString()});if("error"in n)throw n.error;let{success:{state:i}}=n;return i},no=({authUrl:e,clientId:a,authScopes:r,state:n,redirectUrl:i})=>{let t=Nr({url:e});t.searchParams.set("client_id",a);let{location:{origin:o}}=window;t.searchParams.set("redirect_uri",i??o),t.searchParams.set("scope",r.join(" ")),t.searchParams.set("state",n),window.location.href=t.toString()},io=()=>ur(crypto.getRandomValues(new Uint8Array(12))),to=async e=>io(),co=({authUrl:e,clientId:a,nonce:r,loginHint:n,authScopes:i,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",i.join(" ")),s.searchParams.set("state",t),s.searchParams.set("nonce",r),so(n)?s.searchParams.set("login_hint",n):s.searchParams.set("prompt","select_account"),window.location.href=s.toString()},lo=async({configUrl:e,clientId:a,nonce:r,loginHint:n,domainHint:i})=>{let t=await navigator.credentials.get({identity:{context:"use",providers:[{configURL:e,clientId:a,nonce:r,loginHint:n,domainHint:i}],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}=An,m=await Fn({generateState:ro({initUrl:c??u})});no({...l,...m,authUrl:d,authScopes:p});return}let a=await Fn({generateState:to}),{google:r}=e;if("credentials"in r){let{credentials:o}=r,{configUrl:s}=fn;return await lo({...o,...a,configUrl:s})}let{redirect:n}=r,{authUrl:i,authScopes:t}=fn;co({...n,...a,authUrl:i,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,n={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 bn("github"in e?{github:{redirect:_o(t)?{finalizeUrl:t}:null,...n}}:{google:{redirect:null,...n}});await g.getInstance().setAuthClientStorage({delegationChain:o,sessionKey:s});let d=await ia({doc:l,key:c.getPrincipal().toText()});await ka({user:d})};var Sn=e=>(e.preventDefault(),e.returnValue="Are you sure you want to exit?"),To=()=>{window.addEventListener("beforeunload",Sn,{capture:!0})},Oo=()=>{window.removeEventListener("beforeunload",Sn,{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 Dn(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,n=()=>{if(r)return r;let i=indexedDB.open(e);return i.onupgradeneeded=()=>i.result.createObjectStore(a),r=Dn(i),r.then(t=>{t.onclose=()=>r=void 0},()=>{}),r};return(i,t)=>n().then(o=>t(o.transaction(a,i).objectStore(a)))}var Tr;function yo(){return Tr||(Tr=Or("keyval-store","keyval")),Tr}function Cn(e,a,r=yo()){return r("readwrite",n=>new Promise((i,t)=>{n.get(e).onsuccess=function(){try{n.put(a(this.result),e),i(Dn(n.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 kn=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 n=()=>{if(e.length>32)throw new Ro(e.length);return new TextEncoder().encode(e.padEnd(32,"0"))},i=async()=>{let s=n(),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 Cn(e,s=>{let c=Date.now();return{createdAt:s?.createdAt??c,updatedAt:c}},Ao)},o=await i();return await t(),o};var Ka=class{async signIn({options:a,initAuth:r,setStorage:n}){let{sessionKey:i,delegationChain:t}=await kn(a);await n({sessionKey:i,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??un();if(vo(r))throw new pa;let{redirect:n}=a;await Ja({github:{redirect:{...n??{},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??pn();if(Po(r))throw new pa;let{redirect:n}=a;await Ja({google:{redirect:{...n??{},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 Un=async({delegationIdentity:e,passkeyIdentity:a,satelliteId:r})=>{let n=a.getCredential().getAAGUID(),[i,t]=await rn({docs:[{collection:"#user",doc:{key:e.getPrincipal().toText(),data:{provider:"webauthn",providerData:{webauthn:{...Eo(n)&&{aaguid:bo(n)}}}}}},{collection:"#user-webauthn",doc:{key:a.getCredential().getCredentialIdText(),data:{publicKey:a.getPublicKey().toRaw()}}}],satellite:{identity:e,satelliteId:r}});return i};var Ln=(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))(Ln||{}),qn=(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))(qn||{});var ma=class{async signUp({options:{onProgress:a,maxTimeToLiveInMilliseconds:r,passkey:n}={},loadAuthWithUser:i}){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:n}),step:0,onProgress:a}),{delegationIdentity:l,sessionKey:d}=await this.#e({identity:c,maxTimeToLiveInMilliseconds:r}),u=await Q({fn:async()=>await Un({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 i({user:u}),step:5,onProgress:a})}async signIn({options:{onProgress:a,maxTimeToLiveInMilliseconds:r}={},loadAuth:n}){let{satelliteId:i}=y.getInstance().get()??{satelliteId:void 0};if(yr(i))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:i}});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:n,step:4,onProgress:a})}async#e({identity:a,maxTimeToLiveInMilliseconds:r}){let n=await jo.generate({extractable:!1}),i=r??144e5,t=await qo.create(a,n.getPublicKey(),new Date(Date.now()+i));return{delegationIdentity:Bo.fromDelegation(n,t),sessionKey:n}}async#a({sessionKey:a,delegationIdentity:r}){let n=new Co;await Promise.all([n.set(Uo,a.getKeyPair()),n.set(ko,JSON.stringify(r.getDelegation().toJSON()))])}};var Bn=async({provider:e})=>{await Ra({fn:async()=>{let r=await tn({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:n,...i}=a??{};await ha({fn:()=>new Ba({domain:n}).signIn({options:i,authClient:g.getInstance().getAuthClient(),initAuth:Bn}),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:Bn,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 Zn,nonNullish as Qn}from"@dfinity/utils";import{fromNullable as za,toNullable as Qo}from"@dfinity/utils";import{assertNonNullish as qp,toNullable as Ha}from"@dfinity/utils";var Jn=async({asset:{data:e,headers:a,...r},actor:n,progress:i})=>{let{init_asset_upload:t,upload_asset_chunk:o,commit_asset_upload:s}=n,{batch_id:c}=await t(Ho(r));i?.onInitiatedBatch();let{chunkIds:l}=await Yo({data:e,uploadFn:o,batchId:c});i?.onUploadedFileChunks(r.fullPath),await $o({commitFn:s,batchId:c,data:e,headers:a,chunkIds:l}),i?.onCommittedBatch()};var Ho=({filename:e,collection:a,token:r,fullPath:n,encoding:i,description:t})=>({collection:a,full_path:n,name:e,token:Ha(r),encoding_type:Ha(i),description:Ha(t)}),zo=({batchId:e,chunkIds:a,headers:r,data:n})=>{let i=r.find(([t,o])=>t.toLowerCase()==="content-type")===void 0&&n.type!==void 0&&n.type!==""?[["Content-Type",n.type]]:void 0;return{batch_id:e,chunk_ids:a.map(({chunk_id:t})=>t),headers:[...r,...i??[]]}},$o=async({commitFn:e,...a})=>{let r=zo(a);await e(r)},Yo=async({data:e,uploadFn:a,batchId:r})=>{let n=[],i=ba()?new Blob([await e.arrayBuffer()]):e,t=0n;for(let s=0;s<i.size;s+=19e5){let c=i.slice(s,s+19e5);n.push({batchId:r,chunk:c,uploadFn:a,orderId:t}),t++}let o=[];for await(let s of Xo({uploadChunks:n}))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 n=e.slice(r,r+a);yield await Promise.all(n.map(i=>Zo(i)))}}var Zo=async({batchId:e,chunk:a,uploadFn:r,orderId:n})=>r({batch_id:e,content:new Uint8Array(await a.arrayBuffer()),order_id:Ha(n)});var jn=async({asset:e,...a})=>{let r=await N(a);await Jn({actor:r,asset:e})},Mn=async({collection:e,filter:a,...r})=>{let{list_assets:n}=await N(r),{items:i,items_length:t,items_page:o,matches_length:s,matches_pages:c}=await n(e,Re(a));return{items:i.map(([l,d])=>d),items_length:t,items_page:za(o),matches_length:s,matches_pages:za(c)}},Kn=async({collection:e,filter:a,...r})=>{let{count_assets:n}=await N(r);return n(e,Re(a))},Gn=async({collection:e,fullPath:a,...r})=>(await N(r)).del_asset(e,a),Wn=async({assets:e,satellite:a})=>{let{del_many_assets:r}=await N({satellite:a,options:{certified:!0}}),n=e.map(({collection:i,fullPath:t})=>[i,t]);await r(n)},Hn=async({collection:e,filter:a,...r})=>{let{del_filtered_assets:n}=await N(r);return n(e,Re(a))},zn=async({collection:e,fullPath:a,token:r,...n})=>{let{set_asset_token:i}=await N(n);return i(e,a,Qo(r))},$n=async({collection:e,fullPath:a,...r})=>{let{get_asset:n}=await N(r);return za(await n(e,a))},Yn=async({assets:e,...a})=>{let{get_many_assets:r}=await N(a),n=e.map(({collection:t,fullPath:o})=>[t,o]);return(await r(n)).map(([t,o])=>za(o))};var Xn=e=>btoa([...e].map(a=>String.fromCharCode(a)).join(""));var eu=e=>ei(e),au=e=>ei({filename:e.data.name,...e}),ei=async({filename:e,data:a,collection:r,headers:n=[],fullPath:i,token:t,satellite:o,encoding:s,description:c})=>{let l=_(o?.identity),d=decodeURI(e),p=i??`/${r}/${d}`,u={...o,identity:l};return await jn({asset:{data:a,filename:d,collection:r,token:t,headers:n,fullPath:p,encoding:s,description:c},satellite:u,options:{certified:!0}}),{downloadUrl:ai({satellite:u,assetKey:{fullPath:p,token:t}}),fullPath:p,...Qn(t)&&{token:t},name:d}},ru=async({collection:e,filter:a,satellite:r,options:n})=>{let i={...r,identity:_(r?.identity)},{items:t,...o}=await Mn({collection:e,filter:a??{},satellite:i,options:n??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=Zn(l);return{fullPath:c,description:Zn(u),name:d,downloadUrl:ai({satellite:i,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:Xn(ae),total_length:I}}),{}),owner:p.toText(),created_at:v,updated_at:R}});return{items:s,assets:s,...o}},nu=async({collection:e,filter:a,satellite:r,options:n})=>{let i={...r,identity:_(r?.identity)};return await Kn({collection:e,satellite:i,filter:a??{},options:n??Z})},iu=({collection:e,fullPath:a,satellite:r})=>Gn({collection:e,fullPath:a,satellite:{...r,identity:_(r?.identity)},options:{certified:!0}}),tu=({collection:e,fullPath:a,token:r,satellite:n})=>zn({collection:e,fullPath:a,token:r,satellite:{...n,identity:_(n?.identity)},options:{certified:!0}}),ou=({assets:e,satellite:a})=>Wn({assets:e,satellite:{...a,identity:_(a?.identity)},options:{certified:!0}}),su=async({collection:e,satellite:a,filter:r})=>{let n={...a,identity:_(a?.identity)};return await Hn({collection:e,satellite:n,filter:r??{},options:{certified:!0}})},cu=async({satellite:e,options:a,...r})=>{let n=_(e?.identity);return await $n({...r,satellite:{...e,identity:n},options:a??Z})},lu=async({satellite:e,options:a,...r})=>{let n=_(e?.identity);return await Yn({...r,satellite:{...e,identity:n},options:a??Z})},ai=({assetKey:{fullPath:e,token:a},satellite:r})=>{let n={...r,identity:_(r?.identity)};return`${qr(n)}${e}${Qn(a)?`?token=${a}`:""}`};var as=e=>{let a=e?.satelliteId??ln();es(a,"Satellite ID is not configured. Juno cannot be initialized.");let r=e?.container??dn();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,n=a.syncTabs===!1?void 0:cn();return[...ri(r)?[r]:[],...ri(n)?[n]:[]]},ns=e=>x.getInstance().subscribe(e),xu=ns;export{xn 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,Ln as WebAuthnSignInProgressStep,wa as WebAuthnSignInRetrievePublicKeyError,qn as WebAuthnSignUpProgressStep,xu as authSubscribe,nu as countAssets,il as countDocs,iu as deleteAsset,el as deleteDoc,su as deleteFilteredAssets,rl as deleteFilteredDocs,ou as deleteManyAssets,al as deleteManyDocs,ai as downloadUrl,cu as getAsset,Sa as getDoc,Hi 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,bi as isWebAuthnAvailable,Pp as isWebAuthnUser,ru as listAssets,nl as listDocs,ns as onAuthStateChange,tu as setAssetToken,an as setDoc,rn as setManyDocs,Ko as signIn,ar as signOut,Go as signUp,Wi as unsafeIdentity,eu as uploadBlob,au as uploadFile};
2
2
  //# sourceMappingURL=index.js.map