UNPKG

@junobuild/admin

Version:

A library for interfacing with admin features of Juno

5 lines (4 loc) 24.1 kB
import { createRequire as topLevelCreateRequire } from 'module'; const require = topLevelCreateRequire(import.meta.url); var K=class extends Error{constructor(){super("The Wasm code for the upgrade is identical to the code currently installed. No upgrade is necessary.")}};import{JUNO_PACKAGE_MISSION_CONTROL_ID as Gt,JUNO_PACKAGE_ORBITER_ID as Ht,JUNO_PACKAGE_SATELLITE_ID as Vt}from"@junobuild/config";var E=class extends Error{constructor(){super(`Invalid dependency tree: required module ${Vt} is missing.`)}},B=class extends Error{constructor(){super(`Invalid package: the provided module name is not ${Gt}.`)}},G=class extends Error{constructor(){super(`Invalid package: the provided module name is not ${Ht}.`)}};var Se=e=>crypto.subtle.digest("SHA-256",e),he=e=>Array.from(new Uint8Array(e)).map(o=>o.toString(16).padStart(2,"0")).join(""),Ae=async e=>{let t=await Se(await e.arrayBuffer());return he(t)},H=async e=>{let t=await Se(e);return he(t)};var L=({dependencyId:e,dependencies:t})=>Object.entries(t??{}).find(([o,r])=>o===e);import{major as xe,minor as De,patch as _e}from"semver";var Ko=({currentVersion:e,selectedVersion:t})=>{let o=xe(e),r=xe(t),i=De(e),a=De(t),n=_e(e),s=_e(t);return o<r-1||i<a-1||n<s-1?{canUpgrade:!1}:{canUpgrade:!0}};import{JUNO_PACKAGE_SATELLITE_ID as we,JunoPackageSchema as Wt}from"@junobuild/config";import{isNullish as be,nonNullish as ae}from"@junobuild/utils";var Wo=async({junoPackage:e,wasm:t})=>{if(be(e))return await Ft({wasm:t});let{name:o,dependencies:r}=e;if(o===we)return"stock";let i=L({dependencies:r,dependencyId:we});return ae(i)?"extended":void 0},Ft=async({wasm:e})=>{let t=await ke({wasm:e,sectionName:"icp:public juno:build"});return ae(t)&&["stock","extended"].includes(t)?t:void 0},Fo=async({wasm:e})=>{let t=await ke({wasm:e,sectionName:"icp:public juno:package"});if(be(t))return;let o=JSON.parse(t),{success:r,data:i}=Wt.safeParse(o);return r?i:void 0},ke=async({sectionName:e,wasm:t})=>{let o=await WebAssembly.compile(t),r=WebAssembly.Module.customSections(o,e),[i]=r;return ae(i)?new TextDecoder().decode(i):void 0};import*as Me from"zod";var Xo=Me.enum(["stock","extended"]);import*as k from"zod";var b=k.string().refine(e=>/^\d+\.\d+\.\d+$/.test(e),{message:"Version does not match x.y.z format"}),qt=k.strictObject({tag:b,console:b,observatory:b.optional(),mission_control:b,satellite:b,orbiter:b.optional(),sputnik:b.optional()}),Xt=k.array(qt).min(1).refine(e=>new Set(e.map(({tag:t})=>t)).size===e.length,{message:"A release tag appears multiple times but must be unique"}),ne=k.array(b).min(1),$o=k.strictObject({mission_controls:ne,satellites:ne,orbiters:ne,releases:Xt});import{getDeprecatedMissionControlVersionActor as Zt,getMissionControlActor as V}from"@junobuild/ic-client/actor";var Ie=async({missionControl:e})=>{let{version:t}=await Zt(e);return t()},Te=async({missionControl:e})=>{let{get_user:t}=await V(e);return t()},ve=async({missionControl:e})=>{let{list_mission_control_controllers:t}=await V(e);return t()},Re=async({missionControl:e,satelliteIds:t,controllerIds:o,controller:r})=>{let{set_satellites_controllers:i}=await V(e);return i(t,o,r)},Oe=async({missionControl:e,controllerIds:t,controller:o})=>{let{set_mission_control_controllers:r}=await V(e);return r(t,o)};import{Principal as $t}from"@icp-sdk/core/principal";import{nonNullish as Qt,toNullable as Ue}from"@junobuild/utils";var se=({controllerId:e,profile:t})=>({controllerIds:[$t.fromText(e)],controller:Yt(t)}),Yt=e=>({metadata:Qt(e)&&e!==""?[["profile",e]]:[],expires_at:Ue(void 0),scope:{Admin:null},kind:Ue()});var nr=({controllerId:e,profile:t,...o})=>Re({...o,...se({controllerId:e,profile:t})}),sr=({controllerId:e,profile:t,...o})=>Oe({...o,...se({controllerId:e,profile:t})}),lr=e=>ve(e);import{toPrincipal as fo}from"@junobuild/ic-client/utils";var z={reinstall:null},I={upgrade:[{skip_pre_upgrade:[!1],wasm_memory_persistence:[{replace:null}]}]};import{fromNullable as so,isNullish as lo,uint8ArrayToHexString as co}from"@junobuild/utils";import{IcManagementCanister as A}from"@icp-sdk/canisters/ic-management";import{CanisterStatus as Ne}from"@icp-sdk/core/agent";import{Principal as Ee}from"@icp-sdk/core/principal";import{useOrInitAgent as h}from"@junobuild/ic-client/actor";var Le=async({canisterId:e,actor:t})=>{let o=await h(t),{stopCanister:r}=A.create({agent:o});await r(e)},ze=async({canisterId:e,actor:t})=>{let o=await h(t),{startCanister:r}=A.create({agent:o});await r(e)},je=async({actor:e,code:t})=>{let o=await h(e),{installCode:r}=A.create({agent:o});return r(t)},Je=async({actor:e,canisterId:t})=>{let o=await h(e),{storedChunks:r}=A.create({agent:o});return r({canisterId:t})},W=async({actor:e,canisterId:t})=>{let o=await h(e),{clearChunkStore:r}=A.create({agent:o});return r({canisterId:t})},Ke=async({actor:e,chunk:t})=>{let o=await h(e),{uploadChunk:r}=A.create({agent:o});return r(t)},Be=async({actor:e,code:t})=>{let o=await h(e),{installChunkedCode:r}=A.create({agent:o});return r(t)},Ge=async({actor:e,canisterId:t})=>{let o=await h(e),{canisterStatus:r}=A.create({agent:o});return r({canisterId:t})},F=async({canisterId:e,path:t,...o})=>{let r=await h(o),i=globalThis.console.warn;globalThis.console.warn=()=>null;let a=await Ne.request({canisterId:e instanceof Ee?e:Ee.from(e),agent:r,paths:[new Ne.CustomPath(t,t,"utf-8")]});return globalThis.console.warn=i,a.get(t)},He=async({actor:e,canisterId:t})=>{let o=await h(e),{listCanisterSnapshots:r}=A.create({agent:o});return r({canisterId:t})},Ve=async({actor:e,...t})=>{let o=await h(e),{takeCanisterSnapshot:r}=A.create({agent:o});return r(t)};var We=(a=>(a[a.AssertingExistingCode=0]="AssertingExistingCode",a[a.StoppingCanister=1]="StoppingCanister",a[a.TakingSnapshot=2]="TakingSnapshot",a[a.UpgradingCode=3]="UpgradingCode",a[a.RestartingCanister=4]="RestartingCanister",a))(We||{});import{nonNullish as Fe,uint8ArrayToHexString as to}from"@junobuild/utils";var qe=async({actor:e,canisterId:t,wasmModule:o,preClearChunks:r,...i})=>{r&&await W({actor:e,canisterId:t});let a=await oo({wasmModule:o}),{uploadChunks:n,storedChunks:s,preClearChunks:l,postClearChunks:c}=await ro({actor:e,wasmChunks:a,canisterId:t});l&&await W({actor:e,canisterId:t});let m=[];for await(let g of io({uploadChunks:n,actor:e,canisterId:t}))m=[...m,...g];await Be({actor:e,code:{...i,chunkHashesList:[...m,...s].sort(({orderId:g},{orderId:p})=>g-p).map(({chunkHash:g})=>g),targetCanisterId:t,wasmModuleHash:await H(o)}}),c&&await W({actor:e,canisterId:t})},oo=async({wasmModule:e})=>{let t=new Blob([e]),o=[],r=1e6,i=0;for(let a=0;a<t.size;a+=r){let n=t.slice(a,a+r);o.push({chunk:n,orderId:i,sha256:await Ae(n)}),i++}return o},ro=async({canisterId:e,actor:t,wasmChunks:o})=>{let r=await Je({actor:t,canisterId:e}),i=r.map(({hash:s})=>({chunkHash:{hash:s},sha256:to(s)})),{storedChunks:a,uploadChunks:n}=o.reduce(({uploadChunks:s,storedChunks:l},{sha256:c,...m})=>{let g=i.find(({sha256:p})=>p===c);return{uploadChunks:[...s,...Fe(g)?[]:[{sha256:c,...m}]],storedChunks:[...l,...Fe(g)?[{...m,...g}]:[]]}},{uploadChunks:[],storedChunks:[]});return{uploadChunks:n,storedChunks:a,preClearChunks:r.length>0&&a.length===0,postClearChunks:!0}};async function*io({uploadChunks:e,limit:t=12,...o}){for(let r=0;r<e.length;r=r+t){let i=e.slice(r,r+t);yield await Promise.all(i.map(n=>ao({uploadChunk:n,...o})))}}var ao=async({actor:e,canisterId:t,uploadChunk:{chunk:o,...r}})=>({chunkHash:await Ke({actor:e,chunk:{canisterId:t,chunk:new Uint8Array(await o.arrayBuffer())}}),...r});var Xe=async({actor:e,...t})=>{await je({actor:e,code:t})};var _=async({wasmModule:e,canisterId:t,actor:o,onProgress:r,takeSnapshot:i=!0,...a})=>{await j({fn:async()=>await mo({wasmModule:e,canisterId:t,actor:o,...a}),onProgress:r,step:0}),await j({fn:async()=>await Le({canisterId:t,actor:o}),onProgress:r,step:1});try{await j({fn:async()=>i?await uo({canisterId:t,actor:o}):Promise.resolve(),onProgress:r,step:2}),await j({fn:async()=>await po({wasmModule:e,canisterId:t,actor:o,...a}),onProgress:r,step:3})}finally{await j({fn:async()=>await ze({canisterId:t,actor:o}),onProgress:r,step:4})}},j=async({fn:e,step:t,onProgress:o})=>{o?.({step:t,state:"in_progress"});try{await e(),o?.({step:t,state:"success"})}catch(r){throw o?.({step:t,state:"error"}),r}},mo=async({actor:e,canisterId:t,wasmModule:o,reset:r})=>{if(r===!0)return;let{module_hash:i}=await Ge({actor:e,canisterId:t}),a=so(i);if(lo(a))return;let n=await H(o),s=co(a);if(n===s)throw new K},po=async({wasmModule:e,canisterId:t,actor:o,...r})=>{await((new Blob([e]).size>2e6?"chunked":"single")==="chunked"?qe:Xe)({wasmModule:e,canisterId:t,actor:o,...r})},uo=async e=>{let t=await He(e);await Ve({...e,snapshotId:t?.[0]?.id})};import{IDL as T}from"@icp-sdk/core/candid";var Ze=e=>T.encode([T.Record({user:T.Principal})],[{user:e}]),q=e=>T.encode([T.Record({controllers:T.Vec(T.Principal)})],[{controllers:e.filter(([t,{scope:o}])=>"Admin"in o).map(([t,o])=>t)}]);var Jr=async({missionControl:e,...t})=>{let o=await Te({missionControl:e}),{missionControlId:r,...i}=e;if(!r)throw new Error("No mission control principal defined.");let a=Ze(o);await _({actor:i,canisterId:fo(r),arg:a,mode:I,...t})};import{JUNO_PACKAGE_MISSION_CONTROL_ID as Po}from"@junobuild/config";import{assertNonNullish as yo,isNullish as So}from"@junobuild/utils";import{JunoPackageSchema as go}from"@junobuild/config";import{isNullish as Co}from"@junobuild/utils";import*as X from"zod";var w=async({moduleId:e,...t})=>{let o=await F({...t,canisterId:e,path:"juno:package"});if(Co(o))return;if(typeof o!="string")throw new Error("Unexpected metadata type to parse public custom section juno:package");return(i=>X.string().transform((a,n)=>{try{return JSON.parse(a)}catch{return n.addIssue({code:"custom",message:"Invalid JSON"}),X.never}}).pipe(go).parse(i))(o)},Vr=async e=>(await w(e))?.version,Wr=async e=>(await w(e))?.dependencies;var Yr=async({missionControl:{missionControlId:e,...t}})=>{yo(e,"A Mission Control ID must be provided to request its version.");let o=await w({moduleId:e,...t});if(So(o))return await Ie({missionControl:{missionControlId:e,...t}});let{name:r,version:i}=o;if(r===Po)return i;throw new B};var oi=async e=>{await _(e)};import{getDeprecatedOrbiterVersionActor as ho,getOrbiterActor as le}from"@junobuild/ic-client/actor";var $e=async({orbiter:e})=>{let{version:t}=await ho(e);return t()},Z=async({orbiter:e,certified:t})=>{let{list_controllers:o}=await le({...e,certified:t});return o()},Qe=async({args:e,orbiter:t})=>{let{set_controllers:o}=await le(t);return o(e)},Ye=async({orbiter:e})=>{let{memory_size:t}=await le(e);return t()};var si=e=>Z(e),li=e=>Qe(e);var pi=e=>Ye(e);import{toPrincipal as Ao}from"@junobuild/ic-client/utils";var yi=async({orbiter:e,reset:t=!1,...o})=>{let{orbiterId:r,...i}=e;if(!r)throw new Error("No orbiter principal defined.");let a=await Z({orbiter:e,certified:t}),n=q(a);await _({actor:i,canisterId:Ao(r),arg:n,mode:t?z:I,reset:t,...o})};import{JUNO_PACKAGE_ORBITER_ID as xo}from"@junobuild/config";import{assertNonNullish as Do,isNullish as _o}from"@junobuild/utils";var wi=async({orbiter:{orbiterId:e,...t}})=>{Do(e,"An Orbiter ID must be provided to request its version.");let o=await w({moduleId:e,...t});if(_o(o))return await $e({orbiter:{orbiterId:e,...t}});let{name:r,version:i}=o;if(r===xo)return i;throw new G};import{getDeprecatedSatelliteActor as wo,getDeprecatedSatelliteNoScopeActor as bo,getDeprecatedSatelliteVersionActor as ko,getSatelliteActor as d}from"@junobuild/ic-client/actor";import{toNullable as Mo}from"@junobuild/utils";var et=async({config:e,satellite:t})=>{let{set_storage_config:o}=await d(t);return o(e)},tt=async({config:e,satellite:t})=>{let{set_db_config:o}=await d(t);return o(e)},ot=async({config:e,satellite:t})=>{let{set_auth_config:o}=await d(t);return o(e)},rt=async({config:e,satellite:t})=>{let{set_automation_config:o}=await d(t);return o(e)},it=async({satellite:e})=>{let{get_storage_config:t}=await d(e);return t()},at=async({satellite:e})=>{let{get_db_config:t}=await d(e);return t()},nt=async({satellite:e})=>{let{get_auth_config:t}=await d(e);return t()},st=async({satellite:e})=>{let{get_automation_config:t}=await d(e);return t()},lt=async({satellite:e})=>{let{get_config:t}=await d(e);return t()},ct=async({satellite:e,type:t,filter:o})=>{let{list_rules:r}=await d(e);return r(t,o)},mt=async({type:e,collection:t,rule:o,satellite:r})=>{let{set_rule:i}=await d(r);return i(e,t,o)},pt=async({satellite:e})=>{let{version:t}=await ko(e);return t()},dt=async({satellite:e})=>{let{list_controllers:t}=await wo(e);return t()},$=async({satellite:e})=>{let{list_controllers:t}=await bo(e);return t()},Q=async({satellite:e,certified:t})=>{let{list_controllers:o}=await d({...e,certified:t});return o()},ut=async({satellite:e})=>{let{list_custom_domains:t}=await d(e);return t()},ce=async({satellite:e,domainName:t,boundaryNodesId:o})=>{let{set_custom_domain:r}=await d(e);await r(t,Mo(o))},ft=async({satellite:e})=>{let{memory_size:t}=await d(e);return t()},gt=async({collection:e,satellite:t})=>{let{count_collection_docs:o}=await d(t);return o(e)},Ct=async({collection:e,satellite:t})=>{let{count_collection_assets:o}=await d(t);return o(e)},Pt=async({collection:e,satellite:t})=>{let{del_docs:o}=await d(t);return o(e)},yt=async({collection:e,satellite:t})=>{let{del_assets:o}=await d(t);return o(e)},St=async({args:e,satellite:t})=>{let{set_controllers:o}=await d(t);return o(e)},ht=async({args:e,satellite:t})=>{let{del_controllers:o}=await d(t);return o(e)},At=async({satellite:e})=>{let{del_controller_self:t}=await d(e);await t()};var vi=e=>Ct(e),Ri=e=>yt(e);import{fromNullable as N,isNullish as fe,nonNullish as ue}from"@junobuild/utils";import{Principal as xt}from"@icp-sdk/core/principal";import{fromNullable as u,isNullish as v,nonNullish as f,toNullable as P}from"@junobuild/utils";import{fromNullable as me,nonNullish as M,toNullable as J}from"@junobuild/utils";var pe=e=>J(M(e)&&(M(J(e.heap))||M(J(e.stable)))?{heap:J(e.heap),stable:J(e.stable)}:void 0),de=e=>{let t=me(e),o=me(t?.heap??[]),r=me(t?.stable??[]);return{...M(t)&&(M(o)||M(r))&&{maxMemorySize:{...M(o)&&{heap:o},...M(r)&&{stable:r}}}}};var Dt=({headers:e,rewrites:t,redirects:o,iframe:r,rawAccess:i,maxMemorySize:a,version:n})=>{let s=(e??[]).map(({source:p,headers:C})=>[p,C]),l=(t??[]).map(({source:p,destination:C})=>[p,C]),c=(o??[]).map(({source:p,location:C,code:S})=>[p,{status_code:S,location:C}]);return{headers:s,rewrites:l,redirects:[c],iframe:[r==="same-origin"?{SameOrigin:null}:r==="allow-any"?{AllowAny:null}:{Deny:null}],raw_access:[i===!0?{Allow:null}:{Deny:null}],max_memory_size:pe(a),version:P(n)}},Y=({redirects:e,iframe:t,version:o,raw_access:r,max_memory_size:i,headers:a,rewrites:n})=>{let s=u(e)?.map(([y,{status_code:D,...U}])=>({...U,code:D,source:y})),l=u(r),c=f(l)?"Allow"in l:void 0,m=u(t),g=f(m)?"SameOrigin"in m?"same-origin":"AllowAny"in m?"allow-any":"deny":void 0,p=de(i),C=a.map(([y,D])=>({source:y,headers:D})),S=n.map(([y,D])=>({source:y,destination:D}));return{...C.length>0&&{headers:C},...S.length>0&&{rewrites:S},...f(s)&&{redirects:s},...f(g)&&{iframe:g},version:u(o),...f(c)&&{rawAccess:c},...p}},_t=({maxMemorySize:e,version:t})=>({max_memory_size:pe(e),version:P(t)}),ee=({version:e,max_memory_size:t})=>({...de(t),version:u(e)}),wt=({internetIdentity:e,github:t,google:o,rules:r,version:i})=>{let a=s=>({client_id:s.clientId,delegation:v(s.delegation)?[]:[{targets:s.delegation.allowedTargets===null?[]:[(s.delegation.allowedTargets??[])?.map(l=>xt.fromText(l))],max_time_to_live:P(s.delegation.sessionDuration)}]}),n=[...v(o)?[]:[[{Google:null},a(o)]],...v(t)?[]:[[{GitHub:null},a(t)]]];return{internet_identity:v(e)?[]:[{derivation_origin:P(e?.derivationOrigin),external_alternative_origins:P(e?.externalAlternativeOrigins)}],openid:n.length===0?[]:[{providers:n,observatory_id:[]}],rules:v(r)?[]:[{allowed_callers:r.allowedCallers.map(s=>xt.fromText(s))}],version:P(i)}},te=({version:e,internet_identity:t,openid:o,rules:r})=>{let i=u(t),a=u(i?.derivation_origin??[]),n=u(i?.external_alternative_origins??[]),s=p=>{let C=u(p?.delegation??[]),S=f(C)&&f(C.targets)&&C.targets.length===0?null:(u(C?.targets??[])??[]).length===0?void 0:(u(C?.targets??[])??[]).map(U=>U.toText()),y=u(C?.max_time_to_live??[]);return{...(S!==void 0||f(y))&&{delegation:{...S!==void 0&&{allowedTargets:S},...f(y)&&{sessionDuration:y}}}}},l=u(o),c=l?.providers.find(([p])=>"Google"in p)?.[1],m=l?.providers.find(([p])=>"GitHub"in p)?.[1],g=u(r);return{...f(i)&&{internetIdentity:{...f(a)&&{derivationOrigin:a},...f(n)&&{externalAlternativeOrigins:n}}},...f(c)&&{google:{clientId:c.client_id,...s(c)}},...f(m)&&{github:{clientId:m.client_id,...s(m)}},...f(g)&&{rules:{allowedCallers:g.allowed_callers.map(p=>p.toText())}},version:u(e)}},bt=({github:e,version:t})=>{if(v(e))return{openid:[],version:P(t)};let{repositories:o,accessKeys:r}=e,i=new Map(o.map(({owner:n,name:s,refs:l})=>[{owner:n,name:s},{refs:(l?.length??0)>0?P(l):P()}])),a=v(r)?void 0:{scope:P(r.scope==="Write"?{Write:null}:r.scope==="Submit"?{Submit:null}:void 0),max_time_to_live:P(r.timeToLive)};return{openid:[{providers:[[{GitHub:null},{repositories:[...i],controller:P(a)}]],observatory_id:[]}],version:P(t)}},oe=({version:e,openid:t})=>{let r=u(t)?.providers.find(([c])=>"GitHub"in c)?.[1],i=(r?.repositories??[]).map(([c,m])=>({...c,...f(u(m.refs))&&{refs:u(m.refs)}})),a=u(r?.controller??[]),n=u(a?.scope??[]),s=u(a?.max_time_to_live??[]),l=f(n)||f(s);return{...f(r)&&{github:{repositories:i,...l&&{accessKeys:{...f(n)&&{scope:"Write"in n?"Write":"Submit"in n?"Submit":void 0},...f(s)&&{timeToLive:s}}}}},version:u(e)}};var Gi=async({config:e,satellite:t})=>{let o=await et({satellite:t,config:Dt(e)});return Y(o)},Hi=async({config:e,...t})=>{let o=await tt({config:_t(e),...t});return ee(o)},Vi=async({config:e,...t})=>{let o=await ot({config:wt(e),...t});return te(o)},Wi=async({config:e,...t})=>{let o=await rt({config:bt(e),...t});return oe(o)},Fi=async({satellite:e})=>{let t=await nt({satellite:e}),o=N(t);if(!fe(o))return te(o)},qi=async({satellite:e})=>{let t=await st({satellite:e}),o=N(t);if(!fe(o))return oe(o)},Xi=async({satellite:e})=>{let t=await it({satellite:e});return Y(t)},Zi=async({satellite:e})=>{let t=await at({satellite:e}),o=N(t);if(!fe(o))return ee(o)},$i=async({satellite:e})=>{let{storage:t,db:o,authentication:r,automation:i}=await lt({satellite:e}),a=N(o),n=N(r),s=N(i);return{storage:Y(t),...ue(a)&&{datastore:ee(a)},...ue(n)&&{auth:te(n)},...ue(s)&&{automation:oe(s)}}};var ea=({deprecatedNoScope:e,...t})=>(e===!0?$:Q)(t),ta=e=>St(e),oa=e=>ht(e),ra=e=>At(e);var na=e=>gt(e),sa=e=>Pt(e);import{fromNullable as kt,nonNullish as Io}from"@junobuild/utils";var pa=async({satellite:e})=>(await ut({satellite:e})).map(([o,r])=>{let i=kt(r.version);return{domain:o,bn_id:kt(r.bn_id),created_at:r.created_at,updated_at:r.updated_at,...Io(i)&&{version:i}}}),da=({satellite:e,domains:t})=>Promise.all(t.map(({domain:o,bn_id:r})=>ce({satellite:e,domainName:o,boundaryNodesId:r}))),ua=({satellite:e,domain:t})=>ce({satellite:e,domainName:t.domain,boundaryNodesId:t.bn_id});var Ca=e=>ft(e);import{fromNullable as R,isNullish as To,nonNullish as x,toNullable as O}from"@junobuild/utils";var Mt={Db:null},It={Storage:null},Tt={Public:null},vt={Private:null},Rt={Managed:null},Ot={Controllers:null},ge={Heap:null},Ut={Stable:null},Nt=600000000n;var Ce=e=>e==="storage"?It:Mt,zt=e=>({matcher:To(e)?O():O({include_system:e.include_system})}),jt=({read:e,write:t,memory:o,maxSize:r,maxChangesPerUser:i,maxCapacity:a,version:n,mutablePermissions:s,maxTokens:l})=>({read:Lt(e),write:Lt(t),memory:x(o)?[vo(o)]:[],version:O(n),max_size:O(x(r)&&r>0n?r:void 0),max_capacity:O(x(a)&&a>0?a:void 0),max_changes_per_user:O(x(i)&&i>0?i:void 0),mutable_permissions:O(s??!0),rate_config:x(l)&&l>0n?[{max_tokens:l,time_per_token_ns:Nt}]:[]}),Pe=([e,t])=>{let{read:o,write:r,updated_at:i,created_at:a,max_size:n,max_changes_per_user:s,max_capacity:l,memory:c,mutable_permissions:m,version:g,rate_config:p}=t,C=n?.[0]??0n>0n?R(n):void 0,S=s?.[0]??!1?R(s):void 0,y=l?.[0]??!1?R(l):void 0,D=R(g),U=p?.[0]?.max_tokens??0n>0n?R(p)?.max_tokens:void 0;return{collection:e,read:Et(o),write:Et(r),memory:Ro(R(c)??ge),updatedAt:i,createdAt:a,...x(D)&&{version:D},...x(S)&&{maxChangesPerUser:S},...x(C)&&{maxSize:C},...x(y)&&{maxCapacity:y},mutablePermissions:R(m)??!0,...x(U)&&{maxTokens:U}}},Et=e=>"Public"in e?"public":"Private"in e?"private":"Managed"in e?"managed":"controllers",Lt=e=>{switch(e){case"public":return Tt;case"private":return vt;case"managed":return Rt;default:return Ot}},vo=e=>e.toLowerCase()==="heap"?ge:Ut,Ro=e=>"Heap"in e?"heap":"stable";var _a=async({type:e,satellite:t,filter:o})=>{let{items:r,...i}=await ct({satellite:t,type:Ce(e),filter:zt(o)});return{...i,items:r.map(a=>Pe(a))}},wa=async({rule:{collection:e,...t},type:o,satellite:r})=>{let i=await mt({type:Ce(o),rule:jt(t),satellite:r,collection:e});return Pe([e,i])};import{IDL as re}from"@icp-sdk/core/candid";import{toPrincipal as Jt}from"@junobuild/ic-client/utils";import{isNullish as Oo}from"@junobuild/utils";var Ua=async({satellite:e,deprecated:t,deprecatedNoScope:o,reset:r=!1,...i})=>{let{satelliteId:a,...n}=e;if(Oo(a))throw new Error("No satellite principal defined.");if(t){let m=await dt({satellite:e}),g=re.encode([re.Record({controllers:re.Vec(re.Principal)})],[{controllers:m}]);await _({actor:n,canisterId:Jt(a),arg:new Uint8Array(g),mode:r?z:I,reset:r,...i});return}let l=await(o?$:Q)({satellite:e,certified:r}),c=q(l);await _({actor:n,canisterId:Jt(a),arg:c,mode:r?z:I,reset:r,...i})};import{JUNO_PACKAGE_SATELLITE_ID as ie}from"@junobuild/config";import{assertNonNullish as Kt,isNullish as Bt,nonNullish as ye}from"@junobuild/utils";var Ga=async({satellite:{satelliteId:e,...t}})=>{Kt(e,"A Satellite ID must be provided to request its version.");let o=await w({moduleId:e,...t});if(Bt(o))return await pt({satellite:{satelliteId:e,...t}});let{name:r,version:i,dependencies:a}=o;if(r===ie)return i;let n=L({dependencies:a,dependencyId:ie});if(ye(n)){let[s,l]=n;return l}throw new E},Ha=async({satellite:{satelliteId:e,...t}})=>{Kt(e,"A Satellite ID must be provided to request its version.");let o=await w({moduleId:e,...t});if(Bt(o))return await Uo({satellite:{satelliteId:e,...t}});let{name:r,dependencies:i}=o;if(r===ie)return"stock";let a=L({dependencies:i,dependencyId:ie});if(ye(a))return"extended";throw new E},Uo=async({satellite:{satelliteId:e,...t}})=>{let o=await F({...t,canisterId:e,path:"juno:build"});return ye(o)&&["stock","extended"].includes(o)?o:void 0};export{Xo as BuildTypeSchema,b as MetadataVersionSchema,ne as MetadataVersionsSchema,B as MissionControlVersionError,G as OrbiterVersionError,qt as ReleaseMetadataSchema,$o as ReleasesMetadataSchema,Xt as ReleasesSchema,E as SatelliteMissingDependencyError,We as UpgradeCodeProgressStep,K as UpgradeCodeUnchangedError,Ae as blobSha256,Ko as checkUpgradeVersion,vi as countAssets,na as countDocs,Ri as deleteAssets,sa as deleteDocs,ra as deleteSatelliteControllerSelf,oa as deleteSatelliteControllers,Wo as extractBuildType,L as findJunoPackageDependency,Fi as getAuthConfig,qi as getAutomationConfig,$i as getConfig,Zi as getDatastoreConfig,w as getJunoPackage,Wr as getJunoPackageDependencies,Vr as getJunoPackageVersion,Xi as getStorageConfig,pa as listCustomDomains,lr as listMissionControlControllers,si as listOrbiterControllers,_a as listRules,ea as listSatelliteControllers,Yr as missionControlVersion,pi as orbiterMemorySize,wi as orbiterVersion,Fo as readCustomSectionJunoPackage,Ha as satelliteBuildType,Ca as satelliteMemorySize,Ga as satelliteVersion,Vi as setAuthConfig,Wi as setAutomationConfig,ua as setCustomDomain,da as setCustomDomains,Hi as setDatastoreConfig,sr as setMissionControlController,li as setOrbiterControllers,wa as setRule,ta as setSatelliteControllers,nr as setSatellitesController,Gi as setStorageConfig,H as uint8ArraySha256,Jr as upgradeMissionControl,oi as upgradeModule,yi as upgradeOrbiter,Ua as upgradeSatellite}; //# sourceMappingURL=index.mjs.map