@junobuild/core
Version:
JavaScript core client for Juno
1 lines • 90.8 kB
JavaScript
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.Nul