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