@junobuild/cdn
Version:
A toolkit for working with modules that implement Juno's CDN functionality
5 lines (4 loc) • 18.4 kB
JavaScript
import { createRequire as topLevelCreateRequire } from 'module';
const require = topLevelCreateRequire(import.meta.url);
import{assertNonNullish as St}from"@dfinity/utils";var pt=({IDL:t})=>{let e=t.Record({e8s:t.Nat64}),o=t.Record({mission_control_id:t.Principal,user:t.Principal}),a=t.Record({batch_id:t.Nat,headers:t.Vec(t.Tuple(t.Text,t.Text)),chunk_ids:t.Vec(t.Nat)}),s=t.Record({sha256:t.Vec(t.Nat8),proposal_id:t.Nat}),r=t.Record({block_index:t.Opt(t.Nat64),subnet_id:t.Opt(t.Principal),user:t.Principal}),n=t.Record({controllers:t.Vec(t.Principal)}),u=t.Record({proposal_ids:t.Vec(t.Nat)}),i=t.Variant({Deny:t.Null,AllowAny:t.Null,SameOrigin:t.Null}),K=t.Record({stable:t.Opt(t.Nat64),heap:t.Opt(t.Nat64)}),f=t.Variant({Deny:t.Null,Allow:t.Null}),y=t.Record({status_code:t.Nat16,location:t.Text}),m=t.Record({iframe:t.Opt(i),rewrites:t.Vec(t.Tuple(t.Text,t.Text)),headers:t.Vec(t.Tuple(t.Text,t.Vec(t.Tuple(t.Text,t.Text)))),max_memory_size:t.Opt(K),raw_access:t.Opt(f),redirects:t.Opt(t.Vec(t.Tuple(t.Text,y)))}),_=t.Record({storage:m}),F=t.Record({user:t.Principal}),W=t.Variant({Initialized:t.Null,Failed:t.Null,Open:t.Null,Rejected:t.Null,Executed:t.Null,Accepted:t.Null}),G=t.Record({clear_existing_assets:t.Opt(t.Bool)}),J=t.Record({orbiter:t.Opt(t.Text),mission_control_version:t.Opt(t.Text),satellite_version:t.Opt(t.Text)}),C=t.Variant({AssetsUpgrade:G,SegmentsDeployment:J}),l=t.Record({status:W,updated_at:t.Nat64,sha256:t.Opt(t.Vec(t.Nat8)),executed_at:t.Opt(t.Nat64),owner:t.Principal,created_at:t.Nat64,version:t.Opt(t.Nat64),proposal_type:C}),P=t.Record({updated_at:t.Nat64,credits:e,mission_control_id:t.Opt(t.Principal),owner:t.Principal,created_at:t.Nat64}),g=t.Record({url:t.Text,method:t.Text,body:t.Vec(t.Nat8),headers:t.Vec(t.Tuple(t.Text,t.Text)),certificate_version:t.Opt(t.Nat16)}),A=t.Variant({Heap:t.Null,Stable:t.Null}),p=t.Record({memory:A,token:t.Opt(t.Text),sha256:t.Opt(t.Vec(t.Nat8)),headers:t.Vec(t.Tuple(t.Text,t.Text)),index:t.Nat64,encoding_type:t.Text,full_path:t.Text}),Q=t.Variant({Callback:t.Record({token:p,callback:t.Func([],[],["query"])})}),X=t.Record({body:t.Vec(t.Nat8),headers:t.Vec(t.Tuple(t.Text,t.Text)),streaming_strategy:t.Opt(Q),status_code:t.Nat16}),Y=t.Record({token:t.Opt(p),body:t.Vec(t.Nat8)}),N=t.Record({token:t.Opt(t.Text),collection:t.Text,name:t.Text,description:t.Opt(t.Text),encoding_type:t.Opt(t.Text),full_path:t.Text}),V=t.Record({batch_id:t.Nat}),d=t.Variant({UpdatedAt:t.Null,Keys:t.Null,CreatedAt:t.Null}),Z=t.Record({field:d,desc:t.Bool}),w=t.Variant({Equal:t.Nat64,Between:t.Tuple(t.Nat64,t.Nat64),GreaterThan:t.Nat64,LessThan:t.Nat64}),$=t.Record({key:t.Opt(t.Text),updated_at:t.Opt(w),description:t.Opt(t.Text),created_at:t.Opt(w)}),S=t.Record({start_after:t.Opt(t.Text),limit:t.Opt(t.Nat64)}),T=t.Record({order:t.Opt(Z),owner:t.Opt(t.Principal),matcher:t.Opt($),paginate:t.Opt(S)}),O=t.Record({token:t.Opt(t.Text),collection:t.Text,owner:t.Principal,name:t.Text,description:t.Opt(t.Text),full_path:t.Text}),x=t.Record({modified:t.Nat64,sha256:t.Vec(t.Nat8),total_length:t.Nat}),b=t.Record({key:O,updated_at:t.Nat64,encodings:t.Vec(t.Tuple(t.Text,x)),headers:t.Vec(t.Tuple(t.Text,t.Text)),created_at:t.Nat64,version:t.Opt(t.Nat64)}),R=t.Record({matches_pages:t.Opt(t.Nat64),matches_length:t.Nat64,items_page:t.Opt(t.Nat64),items:t.Vec(t.Tuple(t.Text,b)),items_length:t.Nat64}),k=t.Variant({Write:t.Null,Admin:t.Null,Submit:t.Null}),h=t.Record({updated_at:t.Nat64,metadata:t.Vec(t.Tuple(t.Text,t.Text)),created_at:t.Nat64,scope:k,expires_at:t.Opt(t.Nat64)}),I=t.Record({updated_at:t.Nat64,created_at:t.Nat64,version:t.Opt(t.Nat64),bn_id:t.Opt(t.Text)}),L=t.Variant({Refunded:t.Null,Acknowledged:t.Null,Completed:t.Null}),D=t.Record({status:L,updated_at:t.Nat64,block_index_payment:t.Nat64,mission_control_id:t.Opt(t.Principal),created_at:t.Nat64,block_index_refunded:t.Opt(t.Nat64)}),q=t.Record({desc:t.Bool}),v=t.Record({start_after:t.Opt(t.Nat),limit:t.Opt(t.Nat)}),tt=t.Record({order:t.Opt(q),paginate:t.Opt(v)}),et=t.Record({proposal_id:t.Nat}),ot=t.Record({matches_length:t.Nat64,items:t.Vec(t.Tuple(et,l)),items_length:t.Nat64}),at=t.Record({metadata:t.Vec(t.Tuple(t.Text,t.Text)),scope:k,expires_at:t.Opt(t.Nat64)}),st=t.Record({controller:at,controllers:t.Vec(t.Principal)}),j=t.Variant({Orbiter:t.Null,MissionControl:t.Null,Satellite:t.Null}),rt=t.Record({max_tokens:t.Nat64,time_per_token_ns:t.Nat64}),M=t.Record({content:t.Vec(t.Nat8),batch_id:t.Nat,order_id:t.Opt(t.Nat)}),U=t.Record({chunk_id:t.Nat});return t.Service({add_credits:t.Func([t.Principal,e],[],[]),add_invitation_code:t.Func([t.Text],[],[]),assert_mission_control_center:t.Func([o],[],["query"]),commit_asset_upload:t.Func([a],[],[]),commit_proposal:t.Func([s],[t.Null],[]),commit_proposal_asset_upload:t.Func([a],[],[]),count_proposals:t.Func([],[t.Nat64],["query"]),create_orbiter:t.Func([r],[t.Principal],[]),create_satellite:t.Func([r],[t.Principal],[]),del_controllers:t.Func([n],[],[]),del_custom_domain:t.Func([t.Text],[],[]),delete_proposal_assets:t.Func([u],[],[]),get_config:t.Func([],[_],["query"]),get_create_orbiter_fee:t.Func([F],[t.Opt(e)],["query"]),get_create_satellite_fee:t.Func([F],[t.Opt(e)],["query"]),get_credits:t.Func([],[e],["query"]),get_proposal:t.Func([t.Nat],[t.Opt(l)],["query"]),get_storage_config:t.Func([],[m],["query"]),get_user_mission_control_center:t.Func([],[t.Opt(P)],["query"]),http_request:t.Func([g],[X],["query"]),http_request_streaming_callback:t.Func([p],[Y],["query"]),init_asset_upload:t.Func([N,t.Nat],[V],[]),init_proposal:t.Func([C],[t.Nat,l],[]),init_proposal_asset_upload:t.Func([N,t.Nat],[V],[]),init_user_mission_control_center:t.Func([],[P],[]),list_assets:t.Func([t.Text,T],[R],["query"]),list_controllers:t.Func([],[t.Vec(t.Tuple(t.Principal,h))],["query"]),list_custom_domains:t.Func([],[t.Vec(t.Tuple(t.Text,I))],["query"]),list_payments:t.Func([],[t.Vec(t.Tuple(t.Nat64,D))],["query"]),list_proposals:t.Func([tt],[ot],["query"]),list_user_mission_control_centers:t.Func([],[t.Vec(t.Tuple(t.Principal,P))],["query"]),reject_proposal:t.Func([s],[t.Null],[]),set_controllers:t.Func([st],[],[]),set_custom_domain:t.Func([t.Text,t.Opt(t.Text)],[],[]),set_fee:t.Func([j,e],[],[]),set_storage_config:t.Func([m],[],[]),submit_proposal:t.Func([t.Nat],[t.Nat,l],[]),update_rate_config:t.Func([j,rt],[],[]),upload_asset_chunk:t.Func([M],[U],[]),upload_proposal_asset_chunk:t.Func([M],[U],[])})};var dt=({IDL:t})=>{let e=t.Record({batch_id:t.Nat,headers:t.Vec(t.Tuple(t.Text,t.Text)),chunk_ids:t.Vec(t.Nat)}),o=t.Record({sha256:t.Vec(t.Nat8),proposal_id:t.Nat}),a=t.Variant({UpdatedAt:t.Null,Keys:t.Null,CreatedAt:t.Null}),s=t.Record({field:a,desc:t.Bool}),r=t.Variant({Equal:t.Nat64,Between:t.Tuple(t.Nat64,t.Nat64),GreaterThan:t.Nat64,LessThan:t.Nat64}),n=t.Record({key:t.Opt(t.Text),updated_at:t.Opt(r),description:t.Opt(t.Text),created_at:t.Opt(r)}),u=t.Record({start_after:t.Opt(t.Text),limit:t.Opt(t.Nat64)}),i=t.Record({order:t.Opt(s),owner:t.Opt(t.Principal),matcher:t.Opt(n),paginate:t.Opt(u)}),K=t.Record({controllers:t.Vec(t.Principal)}),f=t.Variant({Write:t.Null,Admin:t.Null,Submit:t.Null}),y=t.Record({updated_at:t.Nat64,metadata:t.Vec(t.Tuple(t.Text,t.Text)),created_at:t.Nat64,scope:f,expires_at:t.Opt(t.Nat64)}),m=t.Record({version:t.Opt(t.Nat64)}),_=t.Variant({Db:t.Null,Storage:t.Null}),F=t.Record({version:t.Opt(t.Nat64)}),W=t.Record({proposal_ids:t.Vec(t.Nat)}),G=t.Record({cycles:t.Nat,destination_id:t.Principal}),J=t.Record({token:t.Opt(t.Text),collection:t.Text,owner:t.Principal,name:t.Text,description:t.Opt(t.Text),full_path:t.Text}),C=t.Record({modified:t.Nat64,sha256:t.Vec(t.Nat8),total_length:t.Nat}),l=t.Record({key:J,updated_at:t.Nat64,encodings:t.Vec(t.Tuple(t.Text,C)),headers:t.Vec(t.Tuple(t.Text,t.Text)),created_at:t.Nat64,version:t.Opt(t.Nat64)}),P=t.Record({derivation_origin:t.Opt(t.Text),external_alternative_origins:t.Opt(t.Vec(t.Text))}),g=t.Record({internet_identity:t.Opt(P)}),A=t.Record({stable:t.Opt(t.Nat64),heap:t.Opt(t.Nat64)}),p=t.Record({max_memory_size:t.Opt(A)}),Q=t.Variant({Deny:t.Null,AllowAny:t.Null,SameOrigin:t.Null}),X=t.Variant({Deny:t.Null,Allow:t.Null}),Y=t.Record({status_code:t.Nat16,location:t.Text}),N=t.Record({iframe:t.Opt(Q),rewrites:t.Vec(t.Tuple(t.Text,t.Text)),headers:t.Vec(t.Tuple(t.Text,t.Vec(t.Tuple(t.Text,t.Text)))),max_memory_size:t.Opt(A),raw_access:t.Opt(X),redirects:t.Opt(t.Vec(t.Tuple(t.Text,Y)))}),V=t.Record({db:t.Opt(p),authentication:t.Opt(g),storage:N}),d=t.Record({updated_at:t.Nat64,owner:t.Principal,data:t.Vec(t.Nat8),description:t.Opt(t.Text),created_at:t.Nat64,version:t.Opt(t.Nat64)}),Z=t.Variant({Initialized:t.Null,Failed:t.Null,Open:t.Null,Rejected:t.Null,Executed:t.Null,Accepted:t.Null}),w=t.Record({clear_existing_assets:t.Opt(t.Bool)}),$=t.Record({orbiter:t.Opt(t.Text),mission_control_version:t.Opt(t.Text),satellite_version:t.Opt(t.Text)}),S=t.Variant({AssetsUpgrade:w,SegmentsDeployment:$}),T=t.Record({status:Z,updated_at:t.Nat64,sha256:t.Opt(t.Vec(t.Nat8)),executed_at:t.Opt(t.Nat64),owner:t.Principal,created_at:t.Nat64,version:t.Opt(t.Nat64),proposal_type:S}),O=t.Variant({Heap:t.Null,Stable:t.Null}),x=t.Variant({Controllers:t.Null,Private:t.Null,Public:t.Null,Managed:t.Null}),b=t.Record({max_tokens:t.Nat64,time_per_token_ns:t.Nat64}),R=t.Record({max_capacity:t.Opt(t.Nat32),memory:t.Opt(O),updated_at:t.Nat64,max_size:t.Opt(t.Nat),read:x,created_at:t.Nat64,version:t.Opt(t.Nat64),mutable_permissions:t.Opt(t.Bool),rate_config:t.Opt(b),write:x,max_changes_per_user:t.Opt(t.Nat32)}),k=t.Record({url:t.Text,method:t.Text,body:t.Vec(t.Nat8),headers:t.Vec(t.Tuple(t.Text,t.Text)),certificate_version:t.Opt(t.Nat16)}),h=t.Record({memory:O,token:t.Opt(t.Text),sha256:t.Opt(t.Vec(t.Nat8)),headers:t.Vec(t.Tuple(t.Text,t.Text)),index:t.Nat64,encoding_type:t.Text,full_path:t.Text}),I=t.Variant({Callback:t.Record({token:h,callback:t.Func([],[],["query"])})}),L=t.Record({body:t.Vec(t.Nat8),headers:t.Vec(t.Tuple(t.Text,t.Text)),streaming_strategy:t.Opt(I),status_code:t.Nat16}),D=t.Record({token:t.Opt(h),body:t.Vec(t.Nat8)}),q=t.Record({token:t.Opt(t.Text),collection:t.Text,name:t.Text,description:t.Opt(t.Text),encoding_type:t.Opt(t.Text),full_path:t.Text}),v=t.Record({batch_id:t.Nat}),tt=t.Record({matches_pages:t.Opt(t.Nat64),matches_length:t.Nat64,items_page:t.Opt(t.Nat64),items:t.Vec(t.Tuple(t.Text,l)),items_length:t.Nat64}),et=t.Record({updated_at:t.Nat64,created_at:t.Nat64,version:t.Opt(t.Nat64),bn_id:t.Opt(t.Text)}),ot=t.Record({matches_pages:t.Opt(t.Nat64),matches_length:t.Nat64,items_page:t.Opt(t.Nat64),items:t.Vec(t.Tuple(t.Text,d)),items_length:t.Nat64}),at=t.Record({desc:t.Bool}),st=t.Record({start_after:t.Opt(t.Nat),limit:t.Opt(t.Nat)}),j=t.Record({order:t.Opt(at),paginate:t.Opt(st)}),rt=t.Record({proposal_id:t.Nat}),M=t.Record({matches_length:t.Nat64,items:t.Vec(t.Tuple(rt,T)),items_length:t.Nat64}),U=t.Record({include_system:t.Bool}),gt=t.Record({matcher:t.Opt(U)}),Ot=t.Record({matches_length:t.Nat64,items:t.Vec(t.Tuple(t.Text,R)),items_length:t.Nat64}),Rt=t.Record({stable:t.Nat64,heap:t.Nat64}),ht=t.Record({metadata:t.Vec(t.Tuple(t.Text,t.Text)),scope:f,expires_at:t.Opt(t.Nat64)}),ft=t.Record({controller:ht,controllers:t.Vec(t.Principal)}),nt=t.Record({data:t.Vec(t.Nat8),description:t.Opt(t.Text),version:t.Opt(t.Nat64)}),Ft=t.Record({max_capacity:t.Opt(t.Nat32),memory:t.Opt(O),max_size:t.Opt(t.Nat),read:x,version:t.Opt(t.Nat64),mutable_permissions:t.Opt(t.Bool),rate_config:t.Opt(b),write:x,max_changes_per_user:t.Opt(t.Nat32)}),it=t.Record({content:t.Vec(t.Nat8),batch_id:t.Nat,order_id:t.Opt(t.Nat)}),lt=t.Record({chunk_id:t.Nat});return t.Service({commit_asset_upload:t.Func([e],[],[]),commit_proposal:t.Func([o],[t.Null],[]),commit_proposal_asset_upload:t.Func([e],[],[]),count_assets:t.Func([t.Text,i],[t.Nat64],["query"]),count_collection_assets:t.Func([t.Text],[t.Nat64],["query"]),count_collection_docs:t.Func([t.Text],[t.Nat64],["query"]),count_docs:t.Func([t.Text,i],[t.Nat64],["query"]),count_proposals:t.Func([],[t.Nat64],["query"]),del_asset:t.Func([t.Text,t.Text],[],[]),del_assets:t.Func([t.Text],[],[]),del_controllers:t.Func([K],[t.Vec(t.Tuple(t.Principal,y))],[]),del_custom_domain:t.Func([t.Text],[],[]),del_doc:t.Func([t.Text,t.Text,m],[],[]),del_docs:t.Func([t.Text],[],[]),del_filtered_assets:t.Func([t.Text,i],[],[]),del_filtered_docs:t.Func([t.Text,i],[],[]),del_many_assets:t.Func([t.Vec(t.Tuple(t.Text,t.Text))],[],[]),del_many_docs:t.Func([t.Vec(t.Tuple(t.Text,t.Text,m))],[],[]),del_rule:t.Func([_,t.Text,F],[],[]),delete_proposal_assets:t.Func([W],[],[]),deposit_cycles:t.Func([G],[],[]),get_asset:t.Func([t.Text,t.Text],[t.Opt(l)],["query"]),get_auth_config:t.Func([],[t.Opt(g)],["query"]),get_config:t.Func([],[V],[]),get_db_config:t.Func([],[t.Opt(p)],["query"]),get_doc:t.Func([t.Text,t.Text],[t.Opt(d)],["query"]),get_many_assets:t.Func([t.Vec(t.Tuple(t.Text,t.Text))],[t.Vec(t.Tuple(t.Text,t.Opt(l)))],["query"]),get_many_docs:t.Func([t.Vec(t.Tuple(t.Text,t.Text))],[t.Vec(t.Tuple(t.Text,t.Opt(d)))],["query"]),get_proposal:t.Func([t.Nat],[t.Opt(T)],["query"]),get_rule:t.Func([_,t.Text],[t.Opt(R)],["query"]),get_storage_config:t.Func([],[N],["query"]),http_request:t.Func([k],[L],["query"]),http_request_streaming_callback:t.Func([h],[D],["query"]),init_asset_upload:t.Func([q],[v],[]),init_proposal:t.Func([S],[t.Nat,T],[]),init_proposal_asset_upload:t.Func([q,t.Nat],[v],[]),list_assets:t.Func([t.Text,i],[tt],["query"]),list_controllers:t.Func([],[t.Vec(t.Tuple(t.Principal,y))],["query"]),list_custom_domains:t.Func([],[t.Vec(t.Tuple(t.Text,et))],["query"]),list_docs:t.Func([t.Text,i],[ot],["query"]),list_proposals:t.Func([j],[M],["query"]),list_rules:t.Func([_,gt],[Ot],["query"]),memory_size:t.Func([],[Rt],["query"]),reject_proposal:t.Func([o],[t.Null],[]),set_auth_config:t.Func([g],[],[]),set_controllers:t.Func([ft],[t.Vec(t.Tuple(t.Principal,y))],[]),set_custom_domain:t.Func([t.Text,t.Opt(t.Text)],[],[]),set_db_config:t.Func([p],[],[]),set_doc:t.Func([t.Text,t.Text,nt],[d],[]),set_many_docs:t.Func([t.Vec(t.Tuple(t.Text,t.Text,nt))],[t.Vec(t.Tuple(t.Text,d))],[]),set_rule:t.Func([_,t.Text,Ft],[R],[]),set_storage_config:t.Func([N],[],[]),submit_proposal:t.Func([t.Nat],[t.Nat,T],[]),upload_asset_chunk:t.Func([it],[lt],[]),upload_proposal_asset_chunk:t.Func([it],[lt],[])})};import{Actor as Ct,HttpAgent as At}from"@dfinity/agent";import{nonNullish as Vt}from"@dfinity/utils";var ut=async({canisterId:t,idlFactory:e,config:o,...a})=>{let s=await B(a);return Ct.createActor(e,{agent:s,canisterId:t,...o??{}})},B=async({agent:t,...e})=>t??await wt(e),wt=async({identity:t,container:e})=>{let o=Vt(e)&&e!==!1,a=o?e===!0?"http://127.0.0.1:5987":e:"https://icp-api.io";return await At.create({identity:t,host:a,retryTimes:10,shouldFetchRootKey:o})};var c=t=>"satellite"in t?kt(t.satellite):bt(t.console),bt=({consoleId:t,...e})=>mt({canisterId:t,...e,idlFactory:pt}),kt=({satelliteId:t,...e})=>mt({canisterId:t,...e,idlFactory:dt}),mt=({canisterId:t,idlFactory:e,...o})=>(St(t,"No canister ID provided."),ut({canisterId:t,idlFactory:e,...o}));var Zt=async({cdn:t,proposalType:e})=>{let{init_proposal:o}=await c(t);return o(e)},$t=async({cdn:t,proposalId:e})=>{let{submit_proposal:o}=await c(t);return o(e)},_t=async({cdn:t,proposal:e})=>{let{reject_proposal:o}=await c(t);await o(e)},Nt=async({cdn:t,proposal:e})=>{let{commit_proposal:o}=await c(t);await o(e)},z=async({cdn:t,proposalIds:e})=>{let{delete_proposal_assets:o}=await c(t);await o({proposal_ids:e})},It=async({cdn:t})=>{let{count_proposals:e}=await c(t);return e()},Lt=async({cdn:t,filter:e})=>{let{list_proposals:o}=await c(t);return o(e)},Dt=async({cdn:t,proposalId:e})=>{let{get_proposal:o}=await c(t);return o(e)};import{uploadAssetWithProposal as qt}from"@junobuild/storage";var ae=async({cdn:t,proposalId:e,asset:o})=>{let a=await c(t);await qt({actor:a,asset:o,proposalId:e})};import{nonNullish as Mt}from"@dfinity/utils";import{ICManagementCanister as Tt}from"@dfinity/ic-management";import{Principal as H}from"@dfinity/principal";var vt=async({actor:t,canisterId:e})=>{let o=await B(t),{listCanisterSnapshots:a}=Tt.create({agent:o});return a({canisterId:e})},jt=async({actor:t,...e})=>{let o=await B(t),{takeCanisterSnapshot:a}=Tt.create({agent:o});return a(e)},xt=async({cdn:t})=>{let o=(()=>{if("satellite"in t){let{satellite:{satelliteId:n,...u}}=t;return{canisterId:n instanceof H?n:H.fromText(n),actor:u}}let{console:{consoleId:s,...r}}=t;return{canisterId:s instanceof H?s:H.fromText(s),actor:r}})(),a=await vt(o);await jt({...o,snapshotId:a?.[0]?.id})};var yt=(s=>(s[s.TakingSnapshot=0]="TakingSnapshot",s[s.CommittingProposal=1]="CommittingProposal",s[s.ClearingProposalAssets=2]="ClearingProposalAssets",s[s.PostApply=3]="PostApply",s))(yt||{}),Pt=(a=>(a[a.RejectingProposal=0]="RejectingProposal",a[a.ClearingProposalAssets=1]="ClearingProposalAssets",a[a.PostReject=2]="PostReject",a))(Pt||{});var _e=async({takeSnapshot:t=!1,clearProposalAssets:e=!1,onProgress:o,cdn:a,proposal:s,postApply:r})=>{try{await E({fn:async()=>t?await xt({cdn:a}):Promise.resolve(),onProgress:o,step:0}),await E({fn:async()=>await Nt({cdn:a,proposal:s}),onProgress:o,step:1}),await E({fn:async()=>e?await z({cdn:a,proposalIds:[s.proposal_id]}):Promise.resolve(),onProgress:o,step:2})}finally{await E({fn:async()=>Mt(r)?await r():Promise.resolve(),onProgress:o,step:3})}},E=async({fn:t,step:e,onProgress:o})=>{o?.({step:e,state:"in_progress"});try{await t(),o?.({step:e,state:"success"})}catch(a){throw o?.({step:e,state:"error"}),a}};import{nonNullish as Ut}from"@dfinity/utils";var Pe=async({clearProposalAssets:t=!1,onProgress:e,cdn:o,proposal:a,postReject:s})=>{try{await ct({fn:async()=>await _t({cdn:o,proposal:a}),onProgress:e,step:0}),await ct({fn:async()=>t?await z({cdn:o,proposalIds:[a.proposal_id]}):Promise.resolve(),onProgress:e,step:1})}finally{await ct({fn:async()=>Ut(s)?await s():Promise.resolve(),onProgress:e,step:2})}},ct=async({fn:t,step:e,onProgress:o})=>{o?.({step:e,state:"in_progress"});try{await t(),o?.({step:e,state:"success"})}catch(a){throw o?.({step:e,state:"error"}),a}};export{yt as ApplyProposalProgressStep,Pt as RejectProposalProgressStep,Nt as commitProposal,It as countProposals,z as deleteProposalAssets,_e as executeApplyProposal,Pe as executeRejectProposal,Dt as getProposal,Zt as initProposal,Lt as listProposals,_t as rejectProposal,$t as submitProposal,ae as uploadAssetWithProposal};
//# sourceMappingURL=index.mjs.map