@junobuild/core-peer 0.0.1 → 0.0.2

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.
@@ -48,6 +48,10 @@ export interface DelDoc {
48
48
  export interface DeleteControllersArgs {
49
49
  controllers: Array<Principal>;
50
50
  }
51
+ export interface DepositCyclesArgs {
52
+ cycles: bigint;
53
+ destination_id: Principal;
54
+ }
51
55
  export interface Doc {
52
56
  updated_at: bigint;
53
57
  owner: Principal;
@@ -60,6 +64,7 @@ export interface HttpRequest {
60
64
  method: string;
61
65
  body: Uint8Array | number[];
62
66
  headers: Array<[string, string]>;
67
+ certificate_version: [] | [number];
63
68
  }
64
69
  export interface HttpResponse {
65
70
  body: Uint8Array | number[];
@@ -146,8 +151,15 @@ export interface SetRule {
146
151
  write: Permission;
147
152
  }
148
153
  export interface StorageConfig {
154
+ iframe: [] | [StorageConfigIFrame];
149
155
  rewrites: Array<[string, string]>;
150
156
  headers: Array<[string, Array<[string, string]>]>;
157
+ redirects: [] | [Array<[string, StorageConfigRedirect]>];
158
+ }
159
+ export type StorageConfigIFrame = {Deny: null} | {AllowAny: null} | {SameOrigin: null};
160
+ export interface StorageConfigRedirect {
161
+ status_code: number;
162
+ location: string;
151
163
  }
152
164
  export interface StreamingCallbackHttpResponse {
153
165
  token: [] | [StreamingCallbackToken];
@@ -183,7 +195,11 @@ export interface _SERVICE {
183
195
  del_controllers: ActorMethod<[DeleteControllersArgs], Array<[Principal, Controller]>>;
184
196
  del_custom_domain: ActorMethod<[string], undefined>;
185
197
  del_doc: ActorMethod<[string, string, DelDoc], undefined>;
198
+ del_docs: ActorMethod<[string], undefined>;
199
+ del_many_assets: ActorMethod<[Array<[string, string]>], undefined>;
200
+ del_many_docs: ActorMethod<[Array<[string, string, DelDoc]>], undefined>;
186
201
  del_rule: ActorMethod<[RulesType, string, DelDoc], undefined>;
202
+ deposit_cycles: ActorMethod<[DepositCyclesArgs], undefined>;
187
203
  get_config: ActorMethod<[], Config>;
188
204
  get_doc: ActorMethod<[string, string], [] | [Doc]>;
189
205
  http_request: ActorMethod<[HttpRequest], HttpResponse>;
@@ -201,6 +217,7 @@ export interface _SERVICE {
201
217
  set_controllers: ActorMethod<[SetControllersArgs], Array<[Principal, Controller]>>;
202
218
  set_custom_domain: ActorMethod<[string, [] | [string]], undefined>;
203
219
  set_doc: ActorMethod<[string, string, SetDoc], Doc>;
220
+ set_many_docs: ActorMethod<[Array<[string, string, SetDoc]>], Array<[string, Doc]>>;
204
221
  set_rule: ActorMethod<[RulesType, string, SetRule], undefined>;
205
222
  upload_asset_chunk: ActorMethod<[UploadChunk], UploadChunkResult>;
206
223
  version: ActorMethod<[], string>;
@@ -21,9 +21,24 @@ export const idlFactory = ({IDL}) => {
21
21
  });
22
22
  const DelDoc = IDL.Record({updated_at: IDL.Opt(IDL.Nat64)});
23
23
  const RulesType = IDL.Variant({Db: IDL.Null, Storage: IDL.Null});
24
+ const DepositCyclesArgs = IDL.Record({
25
+ cycles: IDL.Nat,
26
+ destination_id: IDL.Principal
27
+ });
28
+ const StorageConfigIFrame = IDL.Variant({
29
+ Deny: IDL.Null,
30
+ AllowAny: IDL.Null,
31
+ SameOrigin: IDL.Null
32
+ });
33
+ const StorageConfigRedirect = IDL.Record({
34
+ status_code: IDL.Nat16,
35
+ location: IDL.Text
36
+ });
24
37
  const StorageConfig = IDL.Record({
38
+ iframe: IDL.Opt(StorageConfigIFrame),
25
39
  rewrites: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),
26
- headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))))
40
+ headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)))),
41
+ redirects: IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Text, StorageConfigRedirect)))
27
42
  });
28
43
  const Config = IDL.Record({storage: StorageConfig});
29
44
  const Doc = IDL.Record({
@@ -37,7 +52,8 @@ export const idlFactory = ({IDL}) => {
37
52
  url: IDL.Text,
38
53
  method: IDL.Text,
39
54
  body: IDL.Vec(IDL.Nat8),
40
- headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))
55
+ headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),
56
+ certificate_version: IDL.Opt(IDL.Nat16)
41
57
  });
42
58
  const Memory = IDL.Variant({Heap: IDL.Null, Stable: IDL.Null});
43
59
  const StreamingCallbackToken = IDL.Record({
@@ -187,7 +203,11 @@ export const idlFactory = ({IDL}) => {
187
203
  ),
188
204
  del_custom_domain: IDL.Func([IDL.Text], [], []),
189
205
  del_doc: IDL.Func([IDL.Text, IDL.Text, DelDoc], [], []),
206
+ del_docs: IDL.Func([IDL.Text], [], []),
207
+ del_many_assets: IDL.Func([IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))], [], []),
208
+ del_many_docs: IDL.Func([IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text, DelDoc))], [], []),
190
209
  del_rule: IDL.Func([RulesType, IDL.Text, DelDoc], [], []),
210
+ deposit_cycles: IDL.Func([DepositCyclesArgs], [], []),
191
211
  get_config: IDL.Func([], [Config], []),
192
212
  get_doc: IDL.Func([IDL.Text, IDL.Text], [IDL.Opt(Doc)], ['query']),
193
213
  http_request: IDL.Func([HttpRequest], [HttpResponse], ['query']),
@@ -210,6 +230,11 @@ export const idlFactory = ({IDL}) => {
210
230
  ),
211
231
  set_custom_domain: IDL.Func([IDL.Text, IDL.Opt(IDL.Text)], [], []),
212
232
  set_doc: IDL.Func([IDL.Text, IDL.Text, SetDoc], [Doc], []),
233
+ set_many_docs: IDL.Func(
234
+ [IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text, SetDoc))],
235
+ [IDL.Vec(IDL.Tuple(IDL.Text, Doc))],
236
+ []
237
+ ),
213
238
  set_rule: IDL.Func([RulesType, IDL.Text, SetRule], [], []),
214
239
  upload_asset_chunk: IDL.Func([UploadChunk], [UploadChunkResult], []),
215
240
  version: IDL.Func([], [IDL.Text], ['query'])
@@ -21,9 +21,24 @@ export const idlFactory = ({IDL}) => {
21
21
  });
22
22
  const DelDoc = IDL.Record({updated_at: IDL.Opt(IDL.Nat64)});
23
23
  const RulesType = IDL.Variant({Db: IDL.Null, Storage: IDL.Null});
24
+ const DepositCyclesArgs = IDL.Record({
25
+ cycles: IDL.Nat,
26
+ destination_id: IDL.Principal
27
+ });
28
+ const StorageConfigIFrame = IDL.Variant({
29
+ Deny: IDL.Null,
30
+ AllowAny: IDL.Null,
31
+ SameOrigin: IDL.Null
32
+ });
33
+ const StorageConfigRedirect = IDL.Record({
34
+ status_code: IDL.Nat16,
35
+ location: IDL.Text
36
+ });
24
37
  const StorageConfig = IDL.Record({
38
+ iframe: IDL.Opt(StorageConfigIFrame),
25
39
  rewrites: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),
26
- headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))))
40
+ headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)))),
41
+ redirects: IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Text, StorageConfigRedirect)))
27
42
  });
28
43
  const Config = IDL.Record({storage: StorageConfig});
29
44
  const Doc = IDL.Record({
@@ -37,7 +52,8 @@ export const idlFactory = ({IDL}) => {
37
52
  url: IDL.Text,
38
53
  method: IDL.Text,
39
54
  body: IDL.Vec(IDL.Nat8),
40
- headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))
55
+ headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),
56
+ certificate_version: IDL.Opt(IDL.Nat16)
41
57
  });
42
58
  const Memory = IDL.Variant({Heap: IDL.Null, Stable: IDL.Null});
43
59
  const StreamingCallbackToken = IDL.Record({
@@ -187,7 +203,11 @@ export const idlFactory = ({IDL}) => {
187
203
  ),
188
204
  del_custom_domain: IDL.Func([IDL.Text], [], []),
189
205
  del_doc: IDL.Func([IDL.Text, IDL.Text, DelDoc], [], []),
206
+ del_docs: IDL.Func([IDL.Text], [], []),
207
+ del_many_assets: IDL.Func([IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))], [], []),
208
+ del_many_docs: IDL.Func([IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text, DelDoc))], [], []),
190
209
  del_rule: IDL.Func([RulesType, IDL.Text, DelDoc], [], []),
210
+ deposit_cycles: IDL.Func([DepositCyclesArgs], [], []),
191
211
  get_config: IDL.Func([], [Config], []),
192
212
  get_doc: IDL.Func([IDL.Text, IDL.Text], [IDL.Opt(Doc)], ['query']),
193
213
  http_request: IDL.Func([HttpRequest], [HttpResponse], ['query']),
@@ -210,6 +230,11 @@ export const idlFactory = ({IDL}) => {
210
230
  ),
211
231
  set_custom_domain: IDL.Func([IDL.Text, IDL.Opt(IDL.Text)], [], []),
212
232
  set_doc: IDL.Func([IDL.Text, IDL.Text, SetDoc], [Doc], []),
233
+ set_many_docs: IDL.Func(
234
+ [IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text, SetDoc))],
235
+ [IDL.Vec(IDL.Tuple(IDL.Text, Doc))],
236
+ []
237
+ ),
213
238
  set_rule: IDL.Func([RulesType, IDL.Text, SetRule], [], []),
214
239
  upload_asset_chunk: IDL.Func([UploadChunk], [UploadChunkResult], []),
215
240
  version: IDL.Func([], [IDL.Text], ['query'])
@@ -1,4 +1,4 @@
1
1
  import { createRequire as topLevelCreateRequire } from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
- var l=t=>t==null,Ot=t=>!l(t);var p=t=>Ot(t)?[t]:[],g=t=>t?.[0],z=async t=>{let e=new Blob([JSON.stringify(t)],{type:"application/json; charset=utf-8"});return new Uint8Array(await e.arrayBuffer())},G=async t=>{let e=new Blob([t instanceof Uint8Array?t:new Uint8Array(t)],{type:"application/json; charset=utf-8"});return JSON.parse(await e.text())},k=()=>typeof window<"u";var O=class{callbacks=[];populate(e){this.callbacks.forEach(({callback:s})=>s(e))}subscribe(e){let s=Symbol();return this.callbacks.push({id:s,callback:e}),()=>this.callbacks=this.callbacks.filter(({id:i})=>i!==s)}};var w=class t extends O{static instance;authUser=null;constructor(){super()}static getInstance(){return t.instance||(t.instance=new t),t.instance}set(e){this.authUser=e,this.populate(e)}get(){return this.authUser}subscribe(e){let s=super.subscribe(e);return e(this.authUser),s}reset(){this.authUser=null,this.populate(this.authUser)}};var W=({message:t,detail:e})=>{let s=new CustomEvent(t,{detail:e,bubbles:!0});document.dispatchEvent(s)};var Y=BigInt(144e11),J={width:576,height:576},X={width:505,height:705},Q="internetcomputer.org";var f=class t extends O{static instance;env;constructor(){super()}static getInstance(){return t.instance||(t.instance=new t),t.instance}set(e){this.env=e,this.populate(e)}get(){return this.env}localIdentity(){return this.get()?.localIdentityCanisterId!==void 0}subscribe(e){let s=super.subscribe(e);return e(this.env),s}};var B=({width:t,height:e})=>{if(!k()||l(window)||l(window.top))return;let{top:{innerWidth:s,innerHeight:i}}=window,o=i/2+screenY-e/2,r=s/2+screenX-t/2;return`toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=${t}, height=${e}, top=${o}, left=${r}`};var R=class{#t;constructor({domain:e}){this.#t=e}get id(){return"internet_identity"}signInOptions({windowed:e}){let s=f.getInstance().localIdentity()?`http://${f.getInstance().get()?.localIdentityCanisterId}.localhost:8000`:`https://identity.${this.#t??Q}`;return{...e!==!1&&{windowOpenerFeatures:B(J)},identityProvider:s}}},Z=class{#t;#e;constructor({appName:e,logoUrl:s}){this.#t=e,this.#e=s}get id(){return"nfid"}signInOptions({windowed:e}){return{...e!==!1&&{windowOpenerFeatures:B(X)},identityProvider:`https://nfid.one/authenticate/?applicationName=${encodeURI(this.#t)}&applicationLogo=${encodeURI(this.#e)}`}}};import{AuthClient as vt}from"@dfinity/auth-client";var U=()=>vt.create({idleOptions:{disableIdle:!0,disableDefaultIdleCallback:!0}});var $=async({data:t})=>{try{return await G(t)}catch(e){console.error("The data parsing has failed, mapping to undefined as a fallback.",e);return}};import{Principal as kt}from"@dfinity/principal";var C=({matcher:t,paginate:e,order:s,owner:i})=>({matcher:l(t)?[]:[{key:p(t.key),description:p(t.description)}],paginate:p(l(e)?void 0:{start_after:p(e.startAfter),limit:p(l(e.limit)?void 0:BigInt(e.limit))}),order:p(l(s)?void 0:{desc:s.desc,field:s.field==="created_at"?{CreatedAt:null}:s.field==="updated_at"?{UpdatedAt:null}:{Keys:null}}),owner:p(l(i)?void 0:typeof i=="string"?kt.fromText(i):i)});var I=({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)}),s=t.Record({controllers:t.Vec(t.Principal)}),i=t.Variant({Write:t.Null,Admin:t.Null}),o=t.Record({updated_at:t.Nat64,metadata:t.Vec(t.Tuple(t.Text,t.Text)),created_at:t.Nat64,scope:i,expires_at:t.Opt(t.Nat64)}),r=t.Record({updated_at:t.Opt(t.Nat64)}),n=t.Variant({Db:t.Null,Storage:t.Null}),c=t.Record({rewrites:t.Vec(t.Tuple(t.Text,t.Text)),headers:t.Vec(t.Tuple(t.Text,t.Vec(t.Tuple(t.Text,t.Text))))}),d=t.Record({storage:c}),a=t.Record({updated_at:t.Nat64,owner:t.Principal,data:t.Vec(t.Nat8),description:t.Opt(t.Text),created_at:t.Nat64}),u=t.Record({url:t.Text,method:t.Text,body:t.Vec(t.Nat8),headers:t.Vec(t.Tuple(t.Text,t.Text))}),m=t.Variant({Heap:t.Null,Stable:t.Null}),h=t.Record({memory:m,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}),P=t.Variant({Callback:t.Record({token:h,callback:t.Func([],[],["query"])})}),b=t.Record({body:t.Vec(t.Nat8),headers:t.Vec(t.Tuple(t.Text,t.Text)),streaming_strategy:t.Opt(P),status_code:t.Nat16}),x=t.Record({token:t.Opt(h),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}),y=t.Record({batch_id:t.Nat}),S=t.Variant({UpdatedAt:t.Null,Keys:t.Null,CreatedAt:t.Null}),F=t.Record({field:S,desc:t.Bool}),V=t.Record({key:t.Opt(t.Text),description:t.Opt(t.Text)}),mt=t.Record({start_after:t.Opt(t.Text),limit:t.Opt(t.Nat64)}),j=t.Record({order:t.Opt(F),owner:t.Opt(t.Principal),matcher:t.Opt(V),paginate:t.Opt(mt)}),yt=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}),ft=t.Record({modified:t.Nat64,sha256:t.Vec(t.Nat8),total_length:t.Nat}),gt=t.Record({key:yt,updated_at:t.Nat64,encodings:t.Vec(t.Tuple(t.Text,ft)),headers:t.Vec(t.Tuple(t.Text,t.Text)),created_at:t.Nat64}),ht=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,gt)),items_length:t.Nat64}),xt=t.Record({updated_at:t.Nat64,created_at:t.Nat64,bn_id:t.Opt(t.Text)}),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,a)),items_length:t.Nat64}),v=t.Variant({Controllers:t.Null,Private:t.Null,Public:t.Null,Managed:t.Null}),At=t.Record({memory:t.Opt(m),updated_at:t.Nat64,max_size:t.Opt(t.Nat),read:v,created_at:t.Nat64,mutable_permissions:t.Opt(t.Bool),write:v}),_t=t.Record({metadata:t.Vec(t.Tuple(t.Text,t.Text)),scope:i,expires_at:t.Opt(t.Nat64)}),wt=t.Record({controller:_t,controllers:t.Vec(t.Principal)}),Pt=t.Record({updated_at:t.Opt(t.Nat64),data:t.Vec(t.Nat8),description:t.Opt(t.Text)}),bt=t.Record({memory:t.Opt(m),updated_at:t.Opt(t.Nat64),max_size:t.Opt(t.Nat),read:v,mutable_permissions:t.Opt(t.Bool),write:v}),Nt=t.Record({content:t.Vec(t.Nat8),batch_id:t.Nat,order_id:t.Opt(t.Nat)}),St=t.Record({chunk_id:t.Nat});return t.Service({commit_asset_upload:t.Func([e],[],[]),del_asset:t.Func([t.Text,t.Text],[],[]),del_assets:t.Func([t.Text],[],[]),del_controllers:t.Func([s],[t.Vec(t.Tuple(t.Principal,o))],[]),del_custom_domain:t.Func([t.Text],[],[]),del_doc:t.Func([t.Text,t.Text,r],[],[]),del_rule:t.Func([n,t.Text,r],[],[]),get_config:t.Func([],[d],[]),get_doc:t.Func([t.Text,t.Text],[t.Opt(a)],["query"]),http_request:t.Func([u],[b],["query"]),http_request_streaming_callback:t.Func([h],[x],["query"]),init_asset_upload:t.Func([N],[y],[]),list_assets:t.Func([t.Text,j],[ht],["query"]),list_controllers:t.Func([],[t.Vec(t.Tuple(t.Principal,o))],["query"]),list_custom_domains:t.Func([],[t.Vec(t.Tuple(t.Text,xt))],["query"]),list_docs:t.Func([t.Text,j],[Tt],["query"]),list_rules:t.Func([n],[t.Vec(t.Tuple(t.Text,At))],["query"]),set_config:t.Func([d],[],[]),set_controllers:t.Func([wt],[t.Vec(t.Tuple(t.Principal,o))],[]),set_custom_domain:t.Func([t.Text,t.Opt(t.Text)],[],[]),set_doc:t.Func([t.Text,t.Text,Pt],[a],[]),set_rule:t.Func([n,t.Text,bt],[],[]),upload_asset_chunk:t.Func([Nt],[St],[]),version:t.Func([],[t.Text],["query"])})};import{Actor as Rt,HttpAgent as Ut}from"@dfinity/agent";var D=async({satelliteId:t,idlFactory:e,identity:s,fetch:i,env:o="prod"})=>{let r=o==="dev"||f.getInstance().localIdentity(),n=r?"http://127.0.0.1:8000/":"https://icp-api.io",c=new Ut({identity:s,...n&&{host:n},...i&&{fetch:i}});return r&&await c.fetchRootKey(),Rt.createActor(e,{agent:c,canisterId:t})};var T=async({satelliteId:t,...e})=>{let{satelliteId:s}=t!==void 0?{satelliteId:t}:f.getInstance().get()??{satelliteId:void 0};if(!s)throw new Error("No satellite principal defined.");return D({satelliteId:s,idlFactory:I,...e})};var L=async({collection:t,key:e,satellite:s})=>{let i=await T(s),o=g(await i.get_doc(t,e));if(l(o))return;let{data:r,owner:n,description:c,...d}=o,a=await $({data:r});return{key:e,description:g(c),owner:n.toText(),data:a,...d}},tt=async({collection:t,doc:e,satellite:s})=>{let i=await T(s),{key:o,data:r,updated_at:n,description:c}=e,d=await i.set_doc(t,o,{description:p(c),data:await z(r),updated_at:p(n)}),{owner:a,updated_at:u,created_at:m,description:h}=d;return{key:o,description:g(h),owner:a.toText(),data:r,created_at:m,updated_at:u}},et=async({collection:t,doc:e,satellite:s})=>{let i=await T(s),{key:o,updated_at:r}=e;return i.del_doc(t,o,{updated_at:p(r)})},st=async({collection:t,filter:e,satellite:s})=>{let i=await T(s),{items:o,items_page:r,items_length:n,matches_length:c,matches_pages:d}=await i.list_docs(t,C(e)),a=[];for(let[u,m]of o){let{data:h,owner:P,description:b,...x}=m;a.push({key:u,description:g(b),owner:P.toText(),data:await $({data:h}),...x})}return{items:a,items_length:n,items_page:g(r),matches_length:c,matches_pages:g(d)}};import{AnonymousIdentity as Ct}from"@dfinity/agent";var A=t=>t!==void 0?t:E()??new Ct;var it=async({satellite:t,...e})=>{let s=A(t?.identity);return L({...e,satellite:{...t,identity:s}})},ot=async({satellite:t,...e})=>{let s=A(t?.identity);return tt({...e,satellite:{...t,identity:s}})},Pe=async({satellite:t,...e})=>{let s=A(t?.identity);return et({...e,satellite:{...t,identity:s}})},be=async({satellite:t,filter:e,...s})=>{let i=A(t?.identity);return st({...s,filter:e??{},satellite:{...t,identity:i}})};var rt=async t=>{let e=E();if(l(e))throw new Error("No identity to initialize the user. Have you initialized Juno?");let s=e.getPrincipal().toText(),i=await it({collection:"#user",key:s});return l(i)?await Et({userId:s,provider:t}):i},Et=async({userId:t,...e})=>ot({collection:"#user",doc:{key:t,data:e}});var _,q=async t=>{if(_=_??await U(),!(await _?.isAuthenticated()??!1))return;let s=await rt(t);w.getInstance().set(s)},Ft=async t=>new Promise(async(e,s)=>{_=_??await U();let i=t?.provider??new R({});await _.login({onSuccess:async()=>{await q(i.id),e()},onError:o=>s(o),maxTimeToLive:t?.maxTimeToLive??Y,...t?.derivationOrigin!==void 0&&{derivationOrigin:t.derivationOrigin},...i.signInOptions({windowed:t?.windowed})})}),M=async()=>{await _?.logout(),_=void 0,w.getInstance().reset()},E=()=>_?.getIdentity(),Vt=async()=>(_??await U()).getIdentity();var nt=t=>{let e=t===!0?"./workers/auth.worker.js":t,s=new Worker(e),i=async()=>{W({message:"junoSignOutAuthTimer"}),await M()};return s.onmessage=async({data:o})=>{let{msg:r}=o;switch(r){case"junoSignOutAuthTimer":await i();return}},w.getInstance().subscribe(o=>{if(l(o)){s.postMessage({msg:"junoStopAuthTimer"});return}s.postMessage({msg:"junoStartAuthTimer"})})};var at=async({data:t,filename:e,collection:s,headers:i,token:o,fullPath:r,encoding:n,description:c,satellite:d})=>{let a=await T(d),{batch_id:u}=await a.init_asset_upload({collection:s,full_path:r,name:e,token:p(o),encoding_type:p(n),description:p(c)}),m=19e5,h=[],P=k()?new Blob([await t.arrayBuffer()]):t,b=0n;for(let y=0;y<P.size;y+=m){let S=P.slice(y,y+m);h.push({batchId:u,chunk:S,actor:a,orderId:b}),b++}let x=[];for await(let y of Bt({uploadChunks:h}))x=[...x,...y];let N=i.find(([y,S])=>y.toLowerCase()==="content-type")===void 0&&t.type!==void 0&&t.type!==""?[["Content-Type",t.type]]:void 0;await a.commit_asset_upload({batch_id:u,chunk_ids:x.map(({chunk_id:y})=>y),headers:[...i,...N||[]]})};async function*Bt({uploadChunks:t,limit:e=12}){for(let s=0;s<t.length;s=s+e){let i=t.slice(s,s+e);yield await Promise.all(i.map(r=>$t(r)))}}var $t=async({batchId:t,chunk:e,actor:s,orderId:i})=>s.upload_asset_chunk({batch_id:t,content:new Uint8Array(await e.arrayBuffer()),order_id:p(i)}),ct=async({collection:t,satellite:e,filter:s})=>{let i=await T(e),{items:o,items_length:r,items_page:n,matches_length:c,matches_pages:d}=await i.list_assets(t,C(s));return{items:o.map(([a,u])=>u),items_length:r,items_page:g(n),matches_length:c,matches_pages:g(d)}},lt=async({collection:t,fullPath:e,satellite:s})=>(await T(s)).del_asset(t,e),pt=async({collection:t,satellite:e})=>(await T(e)).del_assets(t);var dt=t=>btoa([...t].map(e=>String.fromCharCode(e)).join(""));var K=()=>{let t=f.getInstance().get()?.satelliteId??"unknown";return f.getInstance().localIdentity()?`http://${t}.localhost:8000`:`https://${t}.icp0.io`};var H=t=>encodeURI(t.toLowerCase().replace(/\s/g,"-"));var es=async t=>ut(t),ss=async t=>ut({filename:t.data.name,...t}),ut=async({filename:t,data:e,collection:s,headers:i=[],fullPath:o,token:r,satellite:n,encoding:c,description:d})=>{let a=A(n?.identity),u=H(t),m=o||`/${s}/${u}`;return await at({data:e,filename:H(u),collection:s,token:r,headers:i,fullPath:m,encoding:c,satellite:{...n,identity:a},description:d}),{downloadUrl:`${K()}${m}${r!==void 0?`?token=${r}`:""}`,fullPath:m,name:u}},is=async({collection:t,satellite:e,filter:s})=>{let{items:i,...o}=await ct({collection:t,satellite:{...e,identity:A(e?.identity)},filter:s??{}}),r=K();return{assets:i.map(({key:{full_path:n,token:c,name:d,owner:a,description:u},headers:m,encodings:h,created_at:P,updated_at:b})=>{let x=g(c);return{fullPath:n,description:g(u),name:d,downloadUrl:`${r}${n}${x!==void 0?`?token=${x}`:""}`,token:x,headers:m,encodings:h.reduce((N,[y,{modified:S,sha256:F,total_length:V}])=>({...N,[y]:{modified:S,sha256:dt(F),total_length:V}}),{}),owner:a.toText(),created_at:P,updated_at:b}}),...o}},os=async({collection:t,fullPath:e,satellite:s})=>lt({collection:t,fullPath:e,satellite:{...s,identity:A(s?.identity)}}),rs=async({collection:t,satellite:e})=>pt({collection:t,satellite:{...e,identity:A(e?.identity)}});var ds=async t=>{f.getInstance().set(t),await q();let e=t.workers?.auth!==void 0?nt(t.workers.auth):void 0;return[...e?[e]:[]]},us=t=>w.getInstance().subscribe(t);export{R as InternetIdentityProvider,Z as NFIDProvider,us as authSubscribe,os as deleteAsset,rs as deleteAssets,Pe as deleteDoc,it as getDoc,ds as initJuno,is as listAssets,be as listDocs,ot as setDoc,Ft as signIn,M as signOut,Vt as unsafeIdentity,es as uploadBlob,ss as uploadFile};
3
+ var c=t=>t==null,Bt=t=>!c(t);var l=t=>Bt(t)?[t]:[],y=t=>t?.[0],J=async t=>{let e=new Blob([JSON.stringify(t)],{type:"application/json; charset=utf-8"});return new Uint8Array(await e.arrayBuffer())},k=async t=>{let e=new Blob([t instanceof Uint8Array?t:new Uint8Array(t)],{type:"application/json; charset=utf-8"});return JSON.parse(await e.text())},R=()=>typeof window<"u";var O=class{callbacks=[];populate(e){this.callbacks.forEach(({callback:s})=>s(e))}subscribe(e){let s=Symbol();return this.callbacks.push({id:s,callback:e}),()=>this.callbacks=this.callbacks.filter(({id:o})=>o!==s)}};var w=class t extends O{static instance;authUser=null;constructor(){super()}static getInstance(){return t.instance||(t.instance=new t),t.instance}set(e){this.authUser=e,this.populate(e)}get(){return this.authUser}subscribe(e){let s=super.subscribe(e);return e(this.authUser),s}reset(){this.authUser=null,this.populate(this.authUser)}};var X=({message:t,detail:e})=>{let s=new CustomEvent(t,{detail:e,bubbles:!0});document.dispatchEvent(s)};var Q=BigInt(144e11),Z={width:576,height:576},D={width:505,height:705},I="internetcomputer.org";var f=class t extends O{static instance;env;constructor(){super()}static getInstance(){return t.instance||(t.instance=new t),t.instance}set(e){this.env=e,this.populate(e)}get(){return this.env}localIdentity(){return this.get()?.localIdentityCanisterId!==void 0}subscribe(e){let s=super.subscribe(e);return e(this.env),s}};var B=({width:t,height:e})=>{if(!R()||c(window)||c(window.top))return;let{top:{innerWidth:s,innerHeight:o}}=window,i=o/2+screenY-e/2,n=s/2+screenX-t/2;return`toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=${t}, height=${e}, top=${i}, left=${n}`};var U=class{#t;constructor({domain:e}){this.#t=e}get id(){return"internet_identity"}signInOptions({windowed:e}){let s=f.getInstance().localIdentity()?`http://${f.getInstance().get()?.localIdentityCanisterId}.localhost:8000`:`https://identity.${this.#t??I}`;return{...e!==!1&&{windowOpenerFeatures:B(Z)},identityProvider:s}}},L=class{#t;#e;constructor({appName:e,logoUrl:s}){this.#t=e,this.#e=s}get id(){return"nfid"}signInOptions({windowed:e}){return{...e!==!1&&{windowOpenerFeatures:B(D)},identityProvider:`https://nfid.one/authenticate/?applicationName=${encodeURI(this.#t)}&applicationLogo=${encodeURI(this.#e)}`}}};import{AuthClient as $t}from"@dfinity/auth-client";var C=()=>$t.create({idleOptions:{disableIdle:!0,disableDefaultIdleCallback:!0}});var $=async({data:t})=>{try{return await k(t)}catch(e){console.error("The data parsing has failed, mapping to undefined as a fallback.",e);return}};var q=async t=>{let{data:e,updated_at:s,description:o}=t;return{description:l(o),data:await J(e),updated_at:l(s)}},K=t=>{let{updated_at:e}=t;return{updated_at:l(e)}},H=async({updatedDoc:t,key:e})=>{let{owner:s,updated_at:o,created_at:i,description:n,data:r}=t;return{key:e,description:y(n),owner:s.toText(),data:await k(r),created_at:i,updated_at:o}};import{Principal as qt}from"@dfinity/principal";var E=({matcher:t,paginate:e,order:s,owner:o})=>({matcher:c(t)?[]:[{key:l(t.key),description:l(t.description)}],paginate:l(c(e)?void 0:{start_after:l(e.startAfter),limit:l(c(e.limit)?void 0:BigInt(e.limit))}),order:l(c(s)?void 0:{desc:s.desc,field:s.field==="created_at"?{CreatedAt:null}:s.field==="updated_at"?{UpdatedAt:null}:{Keys:null}}),owner:l(c(o)?void 0:typeof o=="string"?qt.fromText(o):o)});var tt=({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)}),s=t.Record({controllers:t.Vec(t.Principal)}),o=t.Variant({Write:t.Null,Admin:t.Null}),i=t.Record({updated_at:t.Nat64,metadata:t.Vec(t.Tuple(t.Text,t.Text)),created_at:t.Nat64,scope:o,expires_at:t.Opt(t.Nat64)}),n=t.Record({updated_at:t.Opt(t.Nat64)}),r=t.Variant({Db:t.Null,Storage:t.Null}),a=t.Record({cycles:t.Nat,destination_id:t.Principal}),d=t.Variant({Deny:t.Null,AllowAny:t.Null,SameOrigin:t.Null}),p=t.Record({status_code:t.Nat16,location:t.Text}),u=t.Record({iframe:t.Opt(d),rewrites:t.Vec(t.Tuple(t.Text,t.Text)),headers:t.Vec(t.Tuple(t.Text,t.Vec(t.Tuple(t.Text,t.Text)))),redirects:t.Opt(t.Vec(t.Tuple(t.Text,p)))}),x=t.Record({storage:u}),_=t.Record({updated_at:t.Nat64,owner:t.Principal,data:t.Vec(t.Nat8),description:t.Opt(t.Text),created_at:t.Nat64}),b=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}),T=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}),S=t.Variant({Callback:t.Record({token:T,callback:t.Func([],[],["query"])})}),m=t.Record({body:t.Vec(t.Nat8),headers:t.Vec(t.Tuple(t.Text,t.Text)),streaming_strategy:t.Opt(S),status_code:t.Nat16}),N=t.Record({token:t.Opt(T),body:t.Vec(t.Nat8)}),V=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}),M=t.Record({batch_id:t.Nat}),At=t.Variant({UpdatedAt:t.Null,Keys:t.Null,CreatedAt:t.Null}),Pt=t.Record({field:At,desc:t.Bool}),wt=t.Record({key:t.Opt(t.Text),description:t.Opt(t.Text)}),bt=t.Record({start_after:t.Opt(t.Text),limit:t.Opt(t.Nat64)}),W=t.Record({order:t.Opt(Pt),owner:t.Opt(t.Principal),matcher:t.Opt(wt),paginate:t.Opt(bt)}),St=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}),Nt=t.Record({modified:t.Nat64,sha256:t.Vec(t.Nat8),total_length:t.Nat}),Ot=t.Record({key:St,updated_at:t.Nat64,encodings:t.Vec(t.Tuple(t.Text,Nt)),headers:t.Vec(t.Tuple(t.Text,t.Text)),created_at:t.Nat64}),vt=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,Ot)),items_length:t.Nat64}),kt=t.Record({updated_at:t.Nat64,created_at:t.Nat64,bn_id:t.Opt(t.Text)}),Rt=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,_)),items_length:t.Nat64}),v=t.Variant({Controllers:t.Null,Private:t.Null,Public:t.Null,Managed:t.Null}),Ut=t.Record({memory:t.Opt(A),updated_at:t.Nat64,max_size:t.Opt(t.Nat),read:v,created_at:t.Nat64,mutable_permissions:t.Opt(t.Bool),write:v}),Ct=t.Record({metadata:t.Vec(t.Tuple(t.Text,t.Text)),scope:o,expires_at:t.Opt(t.Nat64)}),Et=t.Record({controller:Ct,controllers:t.Vec(t.Principal)}),Y=t.Record({updated_at:t.Opt(t.Nat64),data:t.Vec(t.Nat8),description:t.Opt(t.Text)}),Ft=t.Record({memory:t.Opt(A),updated_at:t.Opt(t.Nat64),max_size:t.Opt(t.Nat),read:v,mutable_permissions:t.Opt(t.Bool),write:v}),Vt=t.Record({content:t.Vec(t.Nat8),batch_id:t.Nat,order_id:t.Opt(t.Nat)}),Mt=t.Record({chunk_id:t.Nat});return t.Service({commit_asset_upload:t.Func([e],[],[]),del_asset:t.Func([t.Text,t.Text],[],[]),del_assets:t.Func([t.Text],[],[]),del_controllers:t.Func([s],[t.Vec(t.Tuple(t.Principal,i))],[]),del_custom_domain:t.Func([t.Text],[],[]),del_doc:t.Func([t.Text,t.Text,n],[],[]),del_docs:t.Func([t.Text],[],[]),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,n))],[],[]),del_rule:t.Func([r,t.Text,n],[],[]),deposit_cycles:t.Func([a],[],[]),get_config:t.Func([],[x],[]),get_doc:t.Func([t.Text,t.Text],[t.Opt(_)],["query"]),http_request:t.Func([b],[m],["query"]),http_request_streaming_callback:t.Func([T],[N],["query"]),init_asset_upload:t.Func([V],[M],[]),list_assets:t.Func([t.Text,W],[vt],["query"]),list_controllers:t.Func([],[t.Vec(t.Tuple(t.Principal,i))],["query"]),list_custom_domains:t.Func([],[t.Vec(t.Tuple(t.Text,kt))],["query"]),list_docs:t.Func([t.Text,W],[Rt],["query"]),list_rules:t.Func([r],[t.Vec(t.Tuple(t.Text,Ut))],["query"]),set_config:t.Func([x],[],[]),set_controllers:t.Func([Et],[t.Vec(t.Tuple(t.Principal,i))],[]),set_custom_domain:t.Func([t.Text,t.Opt(t.Text)],[],[]),set_doc:t.Func([t.Text,t.Text,Y],[_],[]),set_many_docs:t.Func([t.Vec(t.Tuple(t.Text,t.Text,Y))],[t.Vec(t.Tuple(t.Text,_))],[]),set_rule:t.Func([r,t.Text,Ft],[],[]),upload_asset_chunk:t.Func([Vt],[Mt],[]),version:t.Func([],[t.Text],["query"])})};import{Actor as Kt,HttpAgent as Ht}from"@dfinity/agent";var et=async({satelliteId:t,idlFactory:e,identity:s,fetch:o,env:i="prod"})=>{let n=i==="dev"||f.getInstance().localIdentity(),r=n?"http://127.0.0.1:8000/":"https://icp-api.io",a=new Ht({identity:s,...r&&{host:r},...o&&{fetch:o}});return n&&await a.fetchRootKey(),Kt.createActor(e,{agent:a,canisterId:t})};var g=async({satelliteId:t,...e})=>{let{satelliteId:s}=t!==void 0?{satelliteId:t}:f.getInstance().get()??{satelliteId:void 0};if(!s)throw new Error("No satellite principal defined.");return et({satelliteId:s,idlFactory:tt,...e})};var st=async({collection:t,key:e,satellite:s})=>{let o=await g(s),i=y(await o.get_doc(t,e));if(c(i))return;let{data:n,owner:r,description:a,...d}=i,p=await $({data:n});return{key:e,description:y(a),owner:r.toText(),data:p,...d}},ot=async({collection:t,doc:e,satellite:s})=>{let{set_doc:o}=await g(s),{key:i}=e,n=await q(e),r=await o(t,i,n);return await H({key:i,updatedDoc:r})},it=async({docs:t,satellite:e})=>{let{set_many_docs:s}=await g(e),o=[];for(let{collection:r,doc:a}of t){let{key:d}=a;o.push([r,d,await q(a)])}let i=await s(o),n=[];for(let[r,a]of i)n.push(await H({key:r,updatedDoc:a}));return n},nt=async({collection:t,doc:e,satellite:s})=>{let{del_doc:o}=await g(s),{key:i}=e;return o(t,i,K(e))},rt=async({collection:t,satellite:e})=>{let{del_docs:s}=await g(e);return s(t)},at=async({docs:t,satellite:e})=>{let{del_many_docs:s}=await g(e),o=t.map(({collection:i,doc:n})=>[i,n.key,K(n)]);await s(o)},ct=async({collection:t,filter:e,satellite:s})=>{let o=await g(s),{items:i,items_page:n,items_length:r,matches_length:a,matches_pages:d}=await o.list_docs(t,E(e)),p=[];for(let[u,x]of i){let{data:_,owner:b,description:A,...T}=x;p.push({key:u,description:y(A),owner:b.toText(),data:await $({data:_}),...T})}return{items:p,items_length:r,items_page:y(n),matches_length:a,matches_pages:y(d)}};import{AnonymousIdentity as jt}from"@dfinity/agent";var h=t=>t!==void 0?t:F()??new jt;var lt=async({satellite:t,...e})=>{let s=h(t?.identity);return st({...e,satellite:{...t,identity:s}})},dt=async({satellite:t,...e})=>{let s=h(t?.identity);return ot({...e,satellite:{...t,identity:s}})},Me=async({satellite:t,...e})=>{let s=h(t?.identity);return it({...e,satellite:{...t,identity:s}})},Be=async({satellite:t,...e})=>{let s=h(t?.identity);return nt({...e,satellite:{...t,identity:s}})},$e=async({collection:t,satellite:e})=>rt({collection:t,satellite:{...e,identity:h(e?.identity)}}),qe=async({satellite:t,...e})=>{let s=h(t?.identity);return at({...e,satellite:{...t,identity:s}})},Ke=async({satellite:t,filter:e,...s})=>{let o=h(t?.identity);return ct({...s,filter:e??{},satellite:{...t,identity:o}})};var pt=async t=>{let e=F();if(c(e))throw new Error("No identity to initialize the user. Have you initialized Juno?");let s=e.getPrincipal().toText(),o=await lt({collection:"#user",key:s});return c(o)?await zt({userId:s,provider:t}):o},zt=async({userId:t,...e})=>dt({collection:"#user",doc:{key:t,data:e}});var P,j=async t=>{if(P=P??await C(),!(await P?.isAuthenticated()??!1))return;let s=await pt(t);w.getInstance().set(s)},Gt=async t=>new Promise(async(e,s)=>{P=P??await C();let o=t?.provider??new U({});await P.login({onSuccess:async()=>{await j(o.id),e()},onError:i=>s(i),maxTimeToLive:t?.maxTimeToLive??Q,...t?.derivationOrigin!==void 0&&{derivationOrigin:t.derivationOrigin},...o.signInOptions({windowed:t?.windowed})})}),z=async()=>{await P?.logout(),P=void 0,w.getInstance().reset()},F=()=>P?.getIdentity(),Wt=async()=>(P??await C()).getIdentity();var ut=t=>{let e=t===!0?"./workers/auth.worker.js":t,s=new Worker(e),o=async()=>{X({message:"junoSignOutAuthTimer"}),await z()};return s.onmessage=async({data:i})=>{let{msg:n}=i;switch(n){case"junoSignOutAuthTimer":await o();return}},w.getInstance().subscribe(i=>{if(c(i)){s.postMessage({msg:"junoStopAuthTimer"});return}s.postMessage({msg:"junoStartAuthTimer"})})};var mt=async({data:t,filename:e,collection:s,headers:o,token:i,fullPath:n,encoding:r,description:a,satellite:d})=>{let p=await g(d),{batch_id:u}=await p.init_asset_upload({collection:s,full_path:n,name:e,token:l(i),encoding_type:l(r),description:l(a)}),x=19e5,_=[],b=R()?new Blob([await t.arrayBuffer()]):t,A=0n;for(let m=0;m<b.size;m+=x){let N=b.slice(m,m+x);_.push({batchId:u,chunk:N,actor:p,orderId:A}),A++}let T=[];for await(let m of Yt({uploadChunks:_}))T=[...T,...m];let S=o.find(([m,N])=>m.toLowerCase()==="content-type")===void 0&&t.type!==void 0&&t.type!==""?[["Content-Type",t.type]]:void 0;await p.commit_asset_upload({batch_id:u,chunk_ids:T.map(({chunk_id:m})=>m),headers:[...o,...S||[]]})};async function*Yt({uploadChunks:t,limit:e=12}){for(let s=0;s<t.length;s=s+e){let o=t.slice(s,s+e);yield await Promise.all(o.map(n=>Jt(n)))}}var Jt=async({batchId:t,chunk:e,actor:s,orderId:o})=>s.upload_asset_chunk({batch_id:t,content:new Uint8Array(await e.arrayBuffer()),order_id:l(o)}),yt=async({collection:t,satellite:e,filter:s})=>{let o=await g(e),{items:i,items_length:n,items_page:r,matches_length:a,matches_pages:d}=await o.list_assets(t,E(s));return{items:i.map(([p,u])=>u),items_length:n,items_page:y(r),matches_length:a,matches_pages:y(d)}},ft=async({collection:t,fullPath:e,satellite:s})=>(await g(s)).del_asset(t,e),gt=async({collection:t,satellite:e})=>(await g(e)).del_assets(t),ht=async({assets:t,satellite:e})=>{let{del_many_assets:s}=await g(e),o=t.map(({collection:i,fullPath:n})=>[i,n]);await s(o)};var xt=t=>btoa([...t].map(e=>String.fromCharCode(e)).join(""));var G=()=>{let t=f.getInstance().get()?.satelliteId??"unknown";return f.getInstance().localIdentity()?`http://${t}.localhost:8000`:`https://${t}.icp0.io`};var Tt=t=>encodeURI(t.toLowerCase().replace(/\s/g,"-"));var hs=async t=>_t(t),xs=async t=>_t({filename:t.data.name,...t}),_t=async({filename:t,data:e,collection:s,headers:o=[],fullPath:i,token:n,satellite:r,encoding:a,description:d})=>{let p=h(r?.identity),u=Tt(t),x=i??`/${s}/${u}`;return await mt({data:e,filename:u,collection:s,token:n,headers:o,fullPath:x,encoding:a,satellite:{...r,identity:p},description:d}),{downloadUrl:`${G()}${x}${n!==void 0?`?token=${n}`:""}`,fullPath:x,name:u}},Ts=async({collection:t,satellite:e,filter:s})=>{let{items:o,...i}=await yt({collection:t,satellite:{...e,identity:h(e?.identity)},filter:s??{}}),n=G();return{assets:o.map(({key:{full_path:r,token:a,name:d,owner:p,description:u},headers:x,encodings:_,created_at:b,updated_at:A})=>{let T=y(a);return{fullPath:r,description:y(u),name:d,downloadUrl:`${n}${r}${T!==void 0?`?token=${T}`:""}`,token:T,headers:x,encodings:_.reduce((S,[m,{modified:N,sha256:V,total_length:M}])=>({...S,[m]:{modified:N,sha256:xt(V),total_length:M}}),{}),owner:p.toText(),created_at:b,updated_at:A}}),...i}},_s=async({collection:t,fullPath:e,satellite:s})=>ft({collection:t,fullPath:e,satellite:{...s,identity:h(s?.identity)}}),As=async({collection:t,satellite:e})=>gt({collection:t,satellite:{...e,identity:h(e?.identity)}}),Ps=async({assets:t,satellite:e})=>ht({assets:t,satellite:{...e,identity:h(e?.identity)}});var vs=async t=>{f.getInstance().set(t),await j();let e=t.workers?.auth!==void 0?ut(t.workers.auth):void 0;return[...e?[e]:[]]},ks=t=>w.getInstance().subscribe(t);export{U as InternetIdentityProvider,L as NFIDProvider,ks as authSubscribe,_s as deleteAsset,As as deleteAssets,Be as deleteDoc,$e as deleteDocs,Ps as deleteManyAssets,qe as deleteManyDocs,lt as getDoc,vs as initJuno,Ts as listAssets,Ke as listDocs,dt as setDoc,Me as setManyDocs,Gt as signIn,z as signOut,Wt as unsafeIdentity,hs as uploadBlob,xs as uploadFile};
4
4
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../utils/src/utils/debounce.utils.ts", "../../../utils/src/utils/null.utils.ts", "../../../utils/src/utils/did.utils.ts", "../../../utils/src/utils/env.utils.ts", "../../src/stores/store.ts", "../../src/stores/auth.store.ts", "../../src/utils/events.utils.ts", "../../src/constants/auth.constants.ts", "../../src/stores/env.store.ts", "../../src/utils/window.utils.ts", "../../src/providers/auth.providers.ts", "../../src/utils/auth.utils.ts", "../../src/utils/data.utils.ts", "../../src/utils/list.utils.ts", "../../declarations/satellite/satellite.factory.did.js", "../../src/utils/actor.utils.ts", "../../src/api/actor.api.ts", "../../src/api/doc.api.ts", "../../src/services/identity.services.ts", "../../src/services/doc.services.ts", "../../src/services/user.services.ts", "../../src/services/auth.services.ts", "../../src/services/auth-timout.services.ts", "../../src/api/storage.api.ts", "../../src/utils/crypto.utils.ts", "../../src/utils/env.utils.ts", "../../src/utils/storage.utils.ts", "../../src/services/storage.services.ts", "../../src/index.ts"],
4
- "sourcesContent": ["/* eslint-disable-next-line @typescript-eslint/ban-types */\nexport const debounce = (func: Function, timeout?: number) => {\n let timer: NodeJS.Timer | undefined;\n\n return (...args: unknown[]) => {\n const next = () => func(...args);\n\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(next, timeout !== undefined && timeout > 0 ? timeout : 300);\n };\n};\n", "/** Is null or undefined */\nexport const isNullish = <T>(argument: T | undefined | null): argument is undefined | null =>\n argument === null || argument === undefined;\n\n/** Not null and not undefined */\nexport const nonNullish = <T>(argument: T | undefined | null): argument is NonNullable<T> =>\n !isNullish(argument);\n\nexport class NullishError extends Error {}\n\nexport const assertNonNullish: <T>(\n value: T,\n message?: string\n) => asserts value is NonNullable<T> = <T>(value: T, message?: string): void => {\n if (isNullish(value)) {\n throw new NullishError(message);\n }\n};\n", "import {nonNullish} from './null.utils';\n\nexport const toNullable = <T>(value?: T): [] | [T] => {\n return nonNullish(value) ? [value] : [];\n};\n\nexport const fromNullable = <T>(value: [] | [T]): T | undefined => {\n return value?.[0];\n};\n\nexport const toArray = async <T>(data: T): Promise<Uint8Array> => {\n const blob: Blob = new Blob([JSON.stringify(data)], {\n type: 'application/json; charset=utf-8'\n });\n return new Uint8Array(await blob.arrayBuffer());\n};\n\nexport const fromArray = async <T>(data: Uint8Array | number[]): Promise<T> => {\n const blob: Blob = new Blob([data instanceof Uint8Array ? data : new Uint8Array(data)], {\n type: 'application/json; charset=utf-8'\n });\n return JSON.parse(await blob.text());\n};\n", "export const isBrowser = () => typeof window !== `undefined`;\n", "export abstract class Store<T> {\n private callbacks: {id: symbol; callback: (data: T | null) => void}[] = [];\n\n protected populate(data: T | null) {\n this.callbacks.forEach(({callback}: {id: symbol; callback: (data: T | null) => void}) =>\n callback(data)\n );\n }\n\n subscribe(callback: (data: T | null) => void): () => void {\n const callbackId = Symbol();\n this.callbacks.push({id: callbackId, callback});\n\n return () =>\n (this.callbacks = this.callbacks.filter(\n ({id}: {id: symbol; callback: (data: T | null) => void}) => id !== callbackId\n ));\n }\n}\n", "import type {User} from '../types/auth.types';\nimport type {Unsubscribe} from '../types/subscription.types';\nimport {Store} from './store';\n\nexport class AuthStore extends Store<User | null> {\n private static instance: AuthStore;\n\n private authUser: User | null = null;\n\n private constructor() {\n super();\n }\n\n static getInstance() {\n if (!AuthStore.instance) {\n AuthStore.instance = new AuthStore();\n }\n return AuthStore.instance;\n }\n\n set(authUser: User | null) {\n this.authUser = authUser;\n\n this.populate(authUser);\n }\n\n get(): User | null {\n return this.authUser;\n }\n\n override subscribe(callback: (data: User | null) => void): Unsubscribe {\n const unsubscribe: () => void = super.subscribe(callback);\n\n callback(this.authUser);\n\n return unsubscribe;\n }\n\n reset() {\n this.authUser = null;\n\n this.populate(this.authUser);\n }\n}\n", "export const emit = <T>({message, detail}: {message: string; detail?: T | undefined}) => {\n const $event: CustomEvent<T> = new CustomEvent<T>(message, {detail, bubbles: true});\n document.dispatchEvent($event);\n};\n", "// How long the delegation identity should remain valid?\n// e.g. BigInt(7 * 24 * 60 * 60 * 1000 * 1000 * 1000) = 7 days in nanoseconds\n// For Juno: 4 hours\nexport const DELEGATION_IDENTITY_EXPIRATION = BigInt(4 * 60 * 60 * 1000 * 1000 * 1000);\n\nexport const II_POPUP: {width: number; height: number} = {width: 576, height: 576};\nexport const NFID_POPUP: {width: number; height: number} = {width: 505, height: 705};\n\nexport const INTERNET_COMPUTER_ORG = 'internetcomputer.org';\n\n// Worker\nexport const AUTH_TIMER_INTERVAL = 1000;\n", "import type {Environment} from '../types/env.types';\nimport {Store} from './store';\n\nexport class EnvStore extends Store<Environment | undefined> {\n private static instance: EnvStore;\n\n private env: Environment | undefined;\n\n private constructor() {\n super();\n }\n\n static getInstance() {\n if (!EnvStore.instance) {\n EnvStore.instance = new EnvStore();\n }\n return EnvStore.instance;\n }\n\n set(env: Environment | undefined) {\n this.env = env;\n\n this.populate(env);\n }\n\n get(): Environment | undefined {\n return this.env;\n }\n\n localIdentity(): boolean {\n return this.get()?.localIdentityCanisterId !== undefined;\n }\n\n override subscribe(callback: (data: Environment | null | undefined) => void): () => void {\n const unsubscribe: () => void = super.subscribe(callback);\n\n callback(this.env);\n\n return unsubscribe;\n }\n}\n", "import {isBrowser, isNullish} from '@junobuild/utils';\n\nexport const popupCenter = ({\n width,\n height\n}: {\n width: number;\n height: number;\n}): string | undefined => {\n if (!isBrowser()) {\n return undefined;\n }\n\n if (isNullish(window) || isNullish(window.top)) {\n return undefined;\n }\n\n const {\n top: {innerWidth, innerHeight}\n } = window;\n\n const y = innerHeight / 2 + screenY - height / 2;\n const x = innerWidth / 2 + screenX - width / 2;\n\n return `toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=${width}, height=${height}, top=${y}, left=${x}`;\n};\n", "import {II_POPUP, INTERNET_COMPUTER_ORG, NFID_POPUP} from '../constants/auth.constants';\nimport {EnvStore} from '../stores/env.store';\nimport type {Provider, SignInOptions} from '../types/auth.types';\nimport {popupCenter} from '../utils/window.utils';\n\nexport interface AuthProvider {\n readonly id: Provider;\n signInOptions: (options: Pick<SignInOptions, 'windowed'>) => {\n identityProvider: string;\n windowOpenerFeatures?: string;\n };\n}\n\nexport class InternetIdentityProvider implements AuthProvider {\n #domain?: 'internetcomputer.org' | 'ic0.app';\n\n constructor({domain}: {domain?: 'internetcomputer.org' | 'ic0.app'}) {\n this.#domain = domain;\n }\n\n get id(): Provider {\n return 'internet_identity';\n }\n\n signInOptions({windowed}: Pick<SignInOptions, 'windowed'>): {\n identityProvider: string;\n windowOpenerFeatures?: string;\n } {\n const identityProvider = EnvStore.getInstance().localIdentity()\n ? `http://${EnvStore.getInstance().get()?.localIdentityCanisterId}.localhost:8000`\n : `https://identity.${this.#domain ?? INTERNET_COMPUTER_ORG}`;\n\n return {\n ...(windowed !== false && {\n windowOpenerFeatures: popupCenter(II_POPUP)\n }),\n identityProvider\n };\n }\n}\n\nexport class NFIDProvider implements AuthProvider {\n #appName: string;\n #logoUrl: string;\n\n constructor({appName, logoUrl}: {appName: string; logoUrl: string}) {\n this.#appName = appName;\n this.#logoUrl = logoUrl;\n }\n\n get id(): Provider {\n return 'nfid';\n }\n\n signInOptions({windowed}: Pick<SignInOptions, 'windowed'>): {\n identityProvider: string;\n windowOpenerFeatures?: string;\n } {\n return {\n ...(windowed !== false && {\n windowOpenerFeatures: popupCenter(NFID_POPUP)\n }),\n identityProvider: `https://nfid.one/authenticate/?applicationName=${encodeURI(\n this.#appName\n )}&applicationLogo=${encodeURI(this.#logoUrl)}`\n };\n }\n}\n", "import {AuthClient} from '@dfinity/auth-client';\n\nexport const createAuthClient = (): Promise<AuthClient> =>\n AuthClient.create({\n idleOptions: {\n disableIdle: true,\n disableDefaultIdleCallback: true\n }\n });\n", "import {fromArray} from '@junobuild/utils';\nimport type {Doc} from '../../declarations/satellite/satellite.did';\n\nexport const mapData = async <D>({data}: Pick<Doc, 'data'>): Promise<D> => {\n try {\n return await fromArray<D>(data);\n } catch (err: unknown) {\n console.error('The data parsing has failed, mapping to undefined as a fallback.', err);\n return undefined as D;\n }\n};\n", "import {Principal} from '@dfinity/principal';\nimport {isNullish, toNullable} from '@junobuild/utils';\nimport type {ListParams as ListParamsApi} from '../../declarations/satellite/satellite.did';\nimport type {ListParams} from '../types/list.types';\n\nexport const toListParams = ({matcher, paginate, order, owner}: ListParams): ListParamsApi => ({\n matcher: isNullish(matcher)\n ? []\n : [\n {\n key: toNullable(matcher.key),\n description: toNullable(matcher.description)\n }\n ],\n paginate: toNullable(\n isNullish(paginate)\n ? undefined\n : {\n start_after: toNullable(paginate.startAfter),\n limit: toNullable(isNullish(paginate.limit) ? undefined : BigInt(paginate.limit))\n }\n ),\n order: toNullable(\n isNullish(order)\n ? undefined\n : {\n desc: order.desc,\n field:\n order.field === 'created_at'\n ? {CreatedAt: null}\n : order.field === 'updated_at'\n ? {UpdatedAt: null}\n : {Keys: null}\n }\n ),\n owner: toNullable(\n isNullish(owner) ? undefined : typeof owner === 'string' ? Principal.fromText(owner) : owner\n )\n});\n", "// @ts-ignore\nexport const idlFactory = ({IDL}) => {\n const CommitBatch = IDL.Record({\n batch_id: IDL.Nat,\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n chunk_ids: IDL.Vec(IDL.Nat)\n });\n const DeleteControllersArgs = IDL.Record({\n controllers: IDL.Vec(IDL.Principal)\n });\n const ControllerScope = IDL.Variant({\n Write: IDL.Null,\n Admin: IDL.Null\n });\n const Controller = IDL.Record({\n updated_at: IDL.Nat64,\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64,\n scope: ControllerScope,\n expires_at: IDL.Opt(IDL.Nat64)\n });\n const DelDoc = IDL.Record({updated_at: IDL.Opt(IDL.Nat64)});\n const RulesType = IDL.Variant({Db: IDL.Null, Storage: IDL.Null});\n const StorageConfig = IDL.Record({\n rewrites: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))))\n });\n const Config = IDL.Record({storage: StorageConfig});\n const Doc = IDL.Record({\n updated_at: IDL.Nat64,\n owner: IDL.Principal,\n data: IDL.Vec(IDL.Nat8),\n description: IDL.Opt(IDL.Text),\n created_at: IDL.Nat64\n });\n const HttpRequest = IDL.Record({\n url: IDL.Text,\n method: IDL.Text,\n body: IDL.Vec(IDL.Nat8),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))\n });\n const Memory = IDL.Variant({Heap: IDL.Null, Stable: IDL.Null});\n const StreamingCallbackToken = IDL.Record({\n memory: Memory,\n token: IDL.Opt(IDL.Text),\n sha256: IDL.Opt(IDL.Vec(IDL.Nat8)),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n index: IDL.Nat64,\n encoding_type: IDL.Text,\n full_path: IDL.Text\n });\n const StreamingStrategy = IDL.Variant({\n Callback: IDL.Record({\n token: StreamingCallbackToken,\n callback: IDL.Func([], [], ['query'])\n })\n });\n const HttpResponse = IDL.Record({\n body: IDL.Vec(IDL.Nat8),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n streaming_strategy: IDL.Opt(StreamingStrategy),\n status_code: IDL.Nat16\n });\n const StreamingCallbackHttpResponse = IDL.Record({\n token: IDL.Opt(StreamingCallbackToken),\n body: IDL.Vec(IDL.Nat8)\n });\n const InitAssetKey = IDL.Record({\n token: IDL.Opt(IDL.Text),\n collection: IDL.Text,\n name: IDL.Text,\n description: IDL.Opt(IDL.Text),\n encoding_type: IDL.Opt(IDL.Text),\n full_path: IDL.Text\n });\n const InitUploadResult = IDL.Record({batch_id: IDL.Nat});\n const ListOrderField = IDL.Variant({\n UpdatedAt: IDL.Null,\n Keys: IDL.Null,\n CreatedAt: IDL.Null\n });\n const ListOrder = IDL.Record({field: ListOrderField, desc: IDL.Bool});\n const ListMatcher = IDL.Record({\n key: IDL.Opt(IDL.Text),\n description: IDL.Opt(IDL.Text)\n });\n const ListPaginate = IDL.Record({\n start_after: IDL.Opt(IDL.Text),\n limit: IDL.Opt(IDL.Nat64)\n });\n const ListParams = IDL.Record({\n order: IDL.Opt(ListOrder),\n owner: IDL.Opt(IDL.Principal),\n matcher: IDL.Opt(ListMatcher),\n paginate: IDL.Opt(ListPaginate)\n });\n const AssetKey = IDL.Record({\n token: IDL.Opt(IDL.Text),\n collection: IDL.Text,\n owner: IDL.Principal,\n name: IDL.Text,\n description: IDL.Opt(IDL.Text),\n full_path: IDL.Text\n });\n const AssetEncodingNoContent = IDL.Record({\n modified: IDL.Nat64,\n sha256: IDL.Vec(IDL.Nat8),\n total_length: IDL.Nat\n });\n const AssetNoContent = IDL.Record({\n key: AssetKey,\n updated_at: IDL.Nat64,\n encodings: IDL.Vec(IDL.Tuple(IDL.Text, AssetEncodingNoContent)),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64\n });\n const ListResults = IDL.Record({\n matches_pages: IDL.Opt(IDL.Nat64),\n matches_length: IDL.Nat64,\n items_page: IDL.Opt(IDL.Nat64),\n items: IDL.Vec(IDL.Tuple(IDL.Text, AssetNoContent)),\n items_length: IDL.Nat64\n });\n const CustomDomain = IDL.Record({\n updated_at: IDL.Nat64,\n created_at: IDL.Nat64,\n bn_id: IDL.Opt(IDL.Text)\n });\n const ListResults_1 = IDL.Record({\n matches_pages: IDL.Opt(IDL.Nat64),\n matches_length: IDL.Nat64,\n items_page: IDL.Opt(IDL.Nat64),\n items: IDL.Vec(IDL.Tuple(IDL.Text, Doc)),\n items_length: IDL.Nat64\n });\n const Permission = IDL.Variant({\n Controllers: IDL.Null,\n Private: IDL.Null,\n Public: IDL.Null,\n Managed: IDL.Null\n });\n const Rule = IDL.Record({\n memory: IDL.Opt(Memory),\n updated_at: IDL.Nat64,\n max_size: IDL.Opt(IDL.Nat),\n read: Permission,\n created_at: IDL.Nat64,\n mutable_permissions: IDL.Opt(IDL.Bool),\n write: Permission\n });\n const SetController = IDL.Record({\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n scope: ControllerScope,\n expires_at: IDL.Opt(IDL.Nat64)\n });\n const SetControllersArgs = IDL.Record({\n controller: SetController,\n controllers: IDL.Vec(IDL.Principal)\n });\n const SetDoc = IDL.Record({\n updated_at: IDL.Opt(IDL.Nat64),\n data: IDL.Vec(IDL.Nat8),\n description: IDL.Opt(IDL.Text)\n });\n const SetRule = IDL.Record({\n memory: IDL.Opt(Memory),\n updated_at: IDL.Opt(IDL.Nat64),\n max_size: IDL.Opt(IDL.Nat),\n read: Permission,\n mutable_permissions: IDL.Opt(IDL.Bool),\n write: Permission\n });\n const UploadChunk = IDL.Record({\n content: IDL.Vec(IDL.Nat8),\n batch_id: IDL.Nat,\n order_id: IDL.Opt(IDL.Nat)\n });\n const UploadChunkResult = IDL.Record({chunk_id: IDL.Nat});\n return IDL.Service({\n commit_asset_upload: IDL.Func([CommitBatch], [], []),\n del_asset: IDL.Func([IDL.Text, IDL.Text], [], []),\n del_assets: IDL.Func([IDL.Text], [], []),\n del_controllers: IDL.Func(\n [DeleteControllersArgs],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n []\n ),\n del_custom_domain: IDL.Func([IDL.Text], [], []),\n del_doc: IDL.Func([IDL.Text, IDL.Text, DelDoc], [], []),\n del_rule: IDL.Func([RulesType, IDL.Text, DelDoc], [], []),\n get_config: IDL.Func([], [Config], []),\n get_doc: IDL.Func([IDL.Text, IDL.Text], [IDL.Opt(Doc)], ['query']),\n http_request: IDL.Func([HttpRequest], [HttpResponse], ['query']),\n http_request_streaming_callback: IDL.Func(\n [StreamingCallbackToken],\n [StreamingCallbackHttpResponse],\n ['query']\n ),\n init_asset_upload: IDL.Func([InitAssetKey], [InitUploadResult], []),\n list_assets: IDL.Func([IDL.Text, ListParams], [ListResults], ['query']),\n list_controllers: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))], ['query']),\n list_custom_domains: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Text, CustomDomain))], ['query']),\n list_docs: IDL.Func([IDL.Text, ListParams], [ListResults_1], ['query']),\n list_rules: IDL.Func([RulesType], [IDL.Vec(IDL.Tuple(IDL.Text, Rule))], ['query']),\n set_config: IDL.Func([Config], [], []),\n set_controllers: IDL.Func(\n [SetControllersArgs],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n []\n ),\n set_custom_domain: IDL.Func([IDL.Text, IDL.Opt(IDL.Text)], [], []),\n set_doc: IDL.Func([IDL.Text, IDL.Text, SetDoc], [Doc], []),\n set_rule: IDL.Func([RulesType, IDL.Text, SetRule], [], []),\n upload_asset_chunk: IDL.Func([UploadChunk], [UploadChunkResult], []),\n version: IDL.Func([], [IDL.Text], ['query'])\n });\n};\n// @ts-ignore\nexport const init = ({IDL}) => {\n return [];\n};\n", "import type {ActorMethod, ActorSubclass} from '@dfinity/agent';\nimport {Actor, HttpAgent} from '@dfinity/agent';\nimport type {IDL} from '@dfinity/candid';\nimport {EnvStore} from '../stores/env.store';\nimport type {Satellite} from '../types/satellite.types';\n\nexport const createActor = async <T = Record<string, ActorMethod>>({\n satelliteId: canisterId,\n idlFactory,\n identity,\n fetch,\n env = 'prod'\n}: {\n idlFactory: IDL.InterfaceFactory;\n} & Required<Pick<Satellite, 'satelliteId' | 'identity'>> &\n Pick<Satellite, 'fetch' | 'env'>): Promise<ActorSubclass<T>> => {\n const localActor = env === 'dev' || EnvStore.getInstance().localIdentity();\n\n const host: string = localActor ? 'http://127.0.0.1:8000/' : 'https://icp-api.io';\n\n const agent: HttpAgent = new HttpAgent({identity, ...(host && {host}), ...(fetch && {fetch})});\n\n if (localActor) {\n // Fetch root key for certificate validation during development\n await agent.fetchRootKey();\n }\n\n // Creates an actor with using the candid interface and the HttpAgent\n return Actor.createActor(idlFactory, {\n agent,\n canisterId\n });\n};\n", "import type {_SERVICE as SatelliteActor} from '../../declarations/satellite/satellite.did';\nimport {idlFactory} from '../../declarations/satellite/satellite.factory.did.js';\nimport {EnvStore} from '../stores/env.store';\nimport type {Satellite} from '../types/satellite.types';\nimport {createActor} from '../utils/actor.utils';\n\nexport const getSatelliteActor = async ({\n satelliteId,\n ...rest\n}: Satellite): Promise<SatelliteActor> => {\n const {satelliteId: canisterId} =\n satelliteId !== undefined\n ? {satelliteId}\n : EnvStore.getInstance().get() ?? {satelliteId: undefined};\n\n if (!canisterId) {\n throw new Error('No satellite principal defined.');\n }\n\n return createActor({\n satelliteId: canisterId,\n idlFactory,\n ...rest\n });\n};\n", "import {fromNullable, isNullish, toArray, toNullable} from '@junobuild/utils';\nimport type {\n Doc as DocApi,\n ListResults_1 as ListDocsApi,\n _SERVICE as SatelliteActor\n} from '../../declarations/satellite/satellite.did';\nimport type {Doc} from '../types/doc.types';\nimport type {ListParams, ListResults} from '../types/list.types';\nimport type {Satellite} from '../types/satellite.types';\nimport {mapData} from '../utils/data.utils';\nimport {toListParams} from '../utils/list.utils';\nimport {getSatelliteActor} from './actor.api';\n\nexport const getDoc = async <D>({\n collection,\n key,\n satellite\n}: {\n collection: string;\n satellite: Satellite;\n} & Pick<Doc<D>, 'key'>): Promise<Doc<D> | undefined> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n\n const entry: DocApi | undefined = fromNullable(await actor.get_doc(collection, key));\n\n if (isNullish(entry)) {\n return undefined;\n }\n\n const {data: dataArray, owner, description, ...rest} = entry;\n\n const data: D = await mapData<D>({data: dataArray});\n\n return {\n key,\n description: fromNullable(description),\n owner: owner.toText(),\n data,\n ...rest\n };\n};\n\nexport const setDoc = async <D>({\n collection,\n doc,\n satellite\n}: {\n collection: string;\n doc: Doc<D>;\n satellite: Satellite;\n}): Promise<Doc<D>> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n\n const {key, data, updated_at, description} = doc;\n\n const updatedDoc: DocApi = await actor.set_doc(collection, key, {\n description: toNullable(description),\n data: await toArray<D>(data),\n updated_at: toNullable(updated_at)\n });\n\n const {owner, updated_at: updatedAt, created_at, description: updatedDescription} = updatedDoc;\n\n // We update the data with the updated_at timestamp generated in the backend.\n // The canister checks if the updated_at date is equals to the entity timestamp otherwise it rejects the update to prevent overwrite of data if user uses multiple devices.\n // In other words: to update a data, the current updated_at information need to be provided.\n return {\n key,\n description: fromNullable(updatedDescription),\n owner: owner.toText(),\n data,\n created_at,\n updated_at: updatedAt\n };\n};\n\nexport const deleteDoc = async <D>({\n collection,\n doc,\n satellite\n}: {\n collection: string;\n doc: Doc<D>;\n satellite: Satellite;\n}): Promise<void> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n\n const {key, updated_at} = doc;\n\n return actor.del_doc(collection, key, {\n updated_at: toNullable(updated_at)\n });\n};\n\nexport const listDocs = async <D>({\n collection,\n filter,\n satellite\n}: {\n collection: string;\n filter: ListParams;\n satellite: Satellite;\n}): Promise<ListResults<Doc<D>>> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n\n const {items, items_page, items_length, matches_length, matches_pages}: ListDocsApi =\n await actor.list_docs(collection, toListParams(filter));\n\n const docs: Doc<D>[] = [];\n\n for (const [key, item] of items) {\n const {data: dataArray, owner, description, ...rest} = item;\n\n docs.push({\n key,\n description: fromNullable(description),\n owner: owner.toText(),\n data: await mapData<D>({data: dataArray}),\n ...rest\n });\n }\n\n return {\n items: docs,\n items_length,\n items_page: fromNullable(items_page),\n matches_length,\n matches_pages: fromNullable(matches_pages)\n };\n};\n", "import type {Identity} from '@dfinity/agent';\nimport {AnonymousIdentity} from '@dfinity/agent';\nimport {getIdentity as getAuthIdentity} from './auth.services';\n\nexport const getIdentity = (identity?: Identity): Identity => {\n if (identity !== undefined) {\n return identity;\n }\n\n const authIdentity: Identity | undefined = getAuthIdentity();\n\n return authIdentity ?? new AnonymousIdentity();\n};\n", "import {\n deleteDoc as deleteDocApi,\n getDoc as getDocApi,\n listDocs as listDocsApi,\n setDoc as setDocApi\n} from '../api/doc.api';\nimport type {Doc} from '../types/doc.types';\nimport type {ListParams, ListResults} from '../types/list.types';\nimport type {SatelliteOptions} from '../types/satellite.types';\nimport {getIdentity} from './identity.services';\n\nexport const getDoc = async <D>({\n satellite,\n ...rest\n}: {\n collection: string;\n satellite?: SatelliteOptions;\n} & Pick<Doc<D>, 'key'>): Promise<Doc<D> | undefined> => {\n const identity = getIdentity(satellite?.identity);\n\n return getDocApi({...rest, satellite: {...satellite, identity}});\n};\n\nexport const setDoc = async <D>({\n satellite,\n ...rest\n}: {\n collection: string;\n doc: Doc<D>;\n satellite?: SatelliteOptions;\n}): Promise<Doc<D>> => {\n const identity = getIdentity(satellite?.identity);\n\n return setDocApi({...rest, satellite: {...satellite, identity}});\n};\n\nexport const deleteDoc = async <D>({\n satellite,\n ...rest\n}: {\n collection: string;\n doc: Doc<D>;\n satellite?: SatelliteOptions;\n}): Promise<void> => {\n const identity = getIdentity(satellite?.identity);\n\n return deleteDocApi({...rest, satellite: {...satellite, identity}});\n};\n\nexport const listDocs = async <D>({\n satellite,\n filter,\n ...rest\n}: {\n collection: string;\n filter?: ListParams;\n satellite?: SatelliteOptions;\n}): Promise<ListResults<Doc<D>>> => {\n const identity = getIdentity(satellite?.identity);\n\n return listDocsApi<D>({...rest, filter: filter ?? {}, satellite: {...satellite, identity}});\n};\n", "import type {Identity} from '@dfinity/agent';\nimport {isNullish} from '@junobuild/utils';\nimport type {Provider, User, UserData} from '../types/auth.types';\nimport {getIdentity} from './auth.services';\nimport {getDoc, setDoc} from './doc.services';\n\nexport const initUser = async (provider?: Provider): Promise<User> => {\n const identity: Identity | undefined = getIdentity();\n\n if (isNullish(identity)) {\n throw new Error('No identity to initialize the user. Have you initialized Juno?');\n }\n\n const userId = identity.getPrincipal().toText();\n\n const user: User | undefined = await getDoc<UserData>({\n collection: `#user`,\n key: userId\n });\n\n if (isNullish(user)) {\n const newUser: User = await createUser({userId, provider});\n return newUser;\n }\n\n return user;\n};\n\nconst createUser = async ({\n userId,\n ...rest\n}: {\n userId: string;\n} & UserData): Promise<User> =>\n setDoc<UserData>({\n collection: `#user`,\n doc: {\n key: userId,\n data: rest\n }\n });\n", "import type {Identity} from '@dfinity/agent';\nimport type {AuthClient} from '@dfinity/auth-client';\nimport {DELEGATION_IDENTITY_EXPIRATION} from '../constants/auth.constants';\nimport {InternetIdentityProvider} from '../providers/auth.providers';\nimport {AuthStore} from '../stores/auth.store';\nimport type {Provider, SignInOptions} from '../types/auth.types';\nimport {createAuthClient} from '../utils/auth.utils';\nimport {initUser} from './user.services';\n\nlet authClient: AuthClient | undefined;\n\nexport const initAuth = async (provider?: Provider) => {\n authClient = authClient ?? (await createAuthClient());\n\n const isAuthenticated: boolean = (await authClient?.isAuthenticated()) ?? false;\n\n if (!isAuthenticated) {\n return;\n }\n\n const user = await initUser(provider);\n AuthStore.getInstance().set(user);\n};\n\nexport const signIn = async (options?: SignInOptions) =>\n /* eslint-disable no-async-promise-executor */\n new Promise<void>(async (resolve, reject) => {\n authClient = authClient ?? (await createAuthClient());\n\n const provider = options?.provider ?? new InternetIdentityProvider({});\n\n await authClient.login({\n onSuccess: async () => {\n await initAuth(provider.id);\n resolve();\n },\n onError: (error?: string) => reject(error),\n maxTimeToLive: options?.maxTimeToLive ?? DELEGATION_IDENTITY_EXPIRATION,\n ...(options?.derivationOrigin !== undefined && {derivationOrigin: options.derivationOrigin}),\n ...provider.signInOptions({\n windowed: options?.windowed\n })\n });\n });\n\nexport const signOut = async (): Promise<void> => {\n await authClient?.logout();\n\n // Reset local object otherwise next sign in (sign in - sign out - sign in) might not work out - i.e. agent-js might not recreate the delegation or identity if not resetted\n authClient = undefined;\n\n AuthStore.getInstance().reset();\n};\n\nexport const getIdentity = (): Identity | undefined => {\n return authClient?.getIdentity();\n};\n\n/**\n * Return what can be the identity of a sign-in user or an anonymous identity.\n * Useful to load an identity in web workers.\n */\nexport const unsafeIdentity = async (): Promise<Identity> =>\n (authClient ?? (await createAuthClient())).getIdentity();\n", "import {isNullish} from '@junobuild/utils';\nimport {AuthStore} from '../stores/auth.store';\nimport type {User} from '../types/auth.types';\nimport type {EnvironmentWorker} from '../types/env.types';\nimport type {PostMessage} from '../types/post-message';\nimport type {Unsubscribe} from '../types/subscription.types';\nimport {emit} from '../utils/events.utils';\nimport {signOut} from './auth.services';\n\nexport const initAuthTimeoutWorker = (auth: EnvironmentWorker): Unsubscribe => {\n const workerUrl = auth === true ? './workers/auth.worker.js' : auth;\n const worker = new Worker(workerUrl);\n\n const timeoutSignOut = async () => {\n emit({message: 'junoSignOutAuthTimer'});\n await signOut();\n };\n\n worker.onmessage = async ({data}: MessageEvent<PostMessage>) => {\n const {msg} = data;\n\n switch (msg) {\n case 'junoSignOutAuthTimer':\n await timeoutSignOut();\n return;\n }\n };\n\n return AuthStore.getInstance().subscribe((user: User | null) => {\n if (isNullish(user)) {\n worker.postMessage({msg: 'junoStopAuthTimer'});\n return;\n }\n\n worker.postMessage({msg: 'junoStartAuthTimer'});\n });\n};\n", "import {fromNullable, isBrowser, toNullable} from '@junobuild/utils';\nimport type {\n AssetNoContent,\n ListResults as ListAssetsApi,\n _SERVICE as SatelliteActor\n} from '../../declarations/satellite/satellite.did';\nimport type {ListParams, ListResults} from '../types/list.types';\nimport type {Satellite} from '../types/satellite.types';\nimport type {AssetKey, ENCODING_TYPE, Storage} from '../types/storage.types';\nimport {toListParams} from '../utils/list.utils';\nimport {getSatelliteActor} from './actor.api';\n\nexport const uploadAsset = async ({\n data,\n filename,\n collection,\n headers,\n token,\n fullPath,\n encoding,\n description,\n satellite\n}: Required<Omit<Storage, 'token' | 'encoding' | 'description'>> &\n Pick<Storage, 'token' | 'encoding' | 'description'> & {satellite: Satellite}): Promise<void> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n\n const {batch_id: batchId} = await actor.init_asset_upload({\n collection,\n full_path: fullPath,\n name: filename,\n token: toNullable<string>(token),\n encoding_type: toNullable<ENCODING_TYPE>(encoding),\n description: toNullable(description)\n });\n\n // https://forum.dfinity.org/t/optimal-upload-chunk-size/20444/23?u=peterparker\n const chunkSize = 1900000;\n\n const uploadChunks: UploadChunkParams[] = [];\n\n // Prevent transforming chunk to arrayBuffer error: The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.\n const clone: Blob = isBrowser() ? new Blob([await data.arrayBuffer()]) : data;\n\n // Split data into chunks\n let orderId = 0n;\n for (let start = 0; start < clone.size; start += chunkSize) {\n const chunk: Blob = clone.slice(start, start + chunkSize);\n\n uploadChunks.push({\n batchId,\n chunk,\n actor,\n orderId\n });\n\n orderId++;\n }\n\n // Upload chunks to the IC in batch - i.e. 12 chunks uploaded at a time.\n let chunkIds: UploadChunkResult[] = [];\n for await (const results of batchUploadChunks({uploadChunks})) {\n chunkIds = [...chunkIds, ...results];\n }\n\n const contentType: [[string, string]] | undefined =\n headers.find(([type, _]) => type.toLowerCase() === 'content-type') === undefined &&\n data.type !== undefined &&\n data.type !== ''\n ? [['Content-Type', data.type]]\n : undefined;\n\n await actor.commit_asset_upload({\n batch_id: batchId,\n chunk_ids: chunkIds.map(({chunk_id}: UploadChunkResult) => chunk_id),\n headers: [...headers, ...(contentType ? contentType : [])]\n });\n};\n\nasync function* batchUploadChunks({\n uploadChunks,\n limit = 12\n}: {\n uploadChunks: UploadChunkParams[];\n limit?: number;\n}): AsyncGenerator<UploadChunkResult[], void> {\n for (let i = 0; i < uploadChunks.length; i = i + limit) {\n const batch = uploadChunks.slice(i, i + limit);\n const result = await Promise.all(batch.map((params) => uploadChunk(params)));\n yield result;\n }\n}\n\ntype UploadChunkResult = {chunk_id: bigint};\n\ntype UploadChunkParams = {\n batchId: bigint;\n chunk: Blob;\n actor: SatelliteActor;\n orderId: bigint;\n};\n\nconst uploadChunk = async ({\n batchId,\n chunk,\n actor,\n orderId\n}: UploadChunkParams): Promise<UploadChunkResult> =>\n actor.upload_asset_chunk({\n batch_id: batchId,\n content: new Uint8Array(await chunk.arrayBuffer()),\n order_id: toNullable(orderId)\n });\n\nexport const listAssets = async ({\n collection,\n satellite,\n filter\n}: {\n collection: string;\n satellite: Satellite;\n filter: ListParams;\n}): Promise<ListResults<AssetNoContent>> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n\n const {\n items: assets,\n items_length,\n items_page,\n matches_length,\n matches_pages\n }: ListAssetsApi = await actor.list_assets(collection, toListParams(filter));\n\n return {\n items: assets.map(([_, asset]) => asset),\n items_length,\n items_page: fromNullable(items_page),\n matches_length,\n matches_pages: fromNullable(matches_pages)\n };\n};\n\nexport const deleteAsset = async ({\n collection,\n fullPath,\n satellite\n}: {\n collection: string;\n satellite: Satellite;\n} & Pick<AssetKey, 'fullPath'>): Promise<void> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n\n return actor.del_asset(collection, fullPath);\n};\n\nexport const deleteAssets = async ({\n collection,\n satellite\n}: {\n collection: string;\n satellite: Satellite;\n}): Promise<void> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n\n return actor.del_assets(collection);\n};\n", "export const sha256ToBase64String = (sha256: Iterable<number>): string =>\n btoa([...sha256].map((c) => String.fromCharCode(c)).join(''));\n", "import {EnvStore} from '../stores/env.store';\n\nexport const satelliteUrl = (): string => {\n const satelliteId: string = EnvStore.getInstance().get()?.satelliteId ?? 'unknown';\n\n if (EnvStore.getInstance().localIdentity()) {\n return `http://${satelliteId}.localhost:8000`;\n }\n\n return `https://${satelliteId}.icp0.io`;\n};\n", "export const encodeFilename = (filename: string): string =>\n encodeURI(filename.toLowerCase().replace(/\\s/g, '-'));\n", "import {fromNullable} from '@junobuild/utils';\nimport type {AssetNoContent} from '../../declarations/satellite/satellite.did';\nimport {\n deleteAsset as deleteAssetApi,\n deleteAssets as deleteAssetsApi,\n listAssets as listAssetsApi,\n uploadAsset as uploadAssetApi\n} from '../api/storage.api';\nimport type {ListParams, ListResults} from '../types/list.types';\nimport type {SatelliteOptions} from '../types/satellite.types';\nimport type {Asset, AssetEncoding, AssetKey, Assets, Storage} from '../types/storage.types';\nimport {sha256ToBase64String} from '../utils/crypto.utils';\nimport {satelliteUrl} from '../utils/env.utils';\nimport {encodeFilename} from '../utils/storage.utils';\nimport {getIdentity} from './identity.services';\n\nexport const uploadBlob = async (\n params: Storage & {satellite?: SatelliteOptions}\n): Promise<AssetKey> => uploadAssetIC(params);\n\nexport const uploadFile = async (\n params: Partial<Pick<Storage, 'filename'>> &\n Omit<Storage, 'filename' | 'data'> & {data: File} & {satellite?: SatelliteOptions}\n): Promise<AssetKey> =>\n uploadAssetIC({\n filename: params.data.name,\n ...params\n });\n\nconst uploadAssetIC = async ({\n filename: storageFilename,\n data,\n collection,\n headers = [],\n fullPath: storagePath,\n token,\n satellite,\n encoding,\n description\n}: Storage & {satellite?: SatelliteOptions}): Promise<AssetKey> => {\n const identity = getIdentity(satellite?.identity);\n\n const filename: string = encodeFilename(storageFilename);\n const fullPath: string = storagePath || `/${collection}/${filename}`;\n\n await uploadAssetApi({\n data,\n filename: encodeFilename(filename),\n collection,\n token,\n headers,\n fullPath,\n encoding,\n satellite: {...satellite, identity},\n description\n });\n\n return {\n downloadUrl: `${satelliteUrl()}${fullPath}${token !== undefined ? `?token=${token}` : ''}`,\n fullPath,\n name: filename\n };\n};\n\nexport const listAssets = async ({\n collection,\n satellite,\n filter\n}: {\n collection: string;\n satellite?: SatelliteOptions;\n filter?: ListParams;\n}): Promise<Assets> => {\n const {items, ...rest}: ListResults<AssetNoContent> = await listAssetsApi({\n collection,\n satellite: {...satellite, identity: getIdentity(satellite?.identity)},\n filter: filter ?? {}\n });\n\n const host: string = satelliteUrl();\n\n return {\n assets: items.map(\n ({\n key: {full_path, token: t, name, owner, description},\n headers,\n encodings,\n created_at,\n updated_at\n }: AssetNoContent) => {\n const token = fromNullable(t);\n\n return {\n fullPath: full_path,\n description: fromNullable(description),\n name,\n downloadUrl: `${host}${full_path}${token !== undefined ? `?token=${token}` : ''}`,\n token,\n headers,\n encodings: encodings.reduce(\n (acc, [type, {modified, sha256, total_length}]) => ({\n ...acc,\n [type]: {\n modified,\n sha256: sha256ToBase64String(sha256),\n total_length\n }\n }),\n {} as Record<string, AssetEncoding>\n ),\n owner: owner.toText(),\n created_at,\n updated_at\n } as Asset;\n }\n ),\n ...rest\n };\n};\n\nexport const deleteAsset = async ({\n collection,\n fullPath,\n satellite\n}: {\n collection: string;\n satellite?: SatelliteOptions;\n} & Pick<AssetKey, 'fullPath'>): Promise<void> =>\n deleteAssetApi({\n collection,\n fullPath,\n satellite: {...satellite, identity: getIdentity(satellite?.identity)}\n });\n\nexport const deleteAssets = async ({\n collection,\n satellite\n}: {\n collection: string;\n satellite?: SatelliteOptions;\n}): Promise<void> =>\n deleteAssetsApi({\n collection,\n satellite: {...satellite, identity: getIdentity(satellite?.identity)}\n });\n", "import {initAuthTimeoutWorker} from './services/auth-timout.services';\nimport {initAuth} from './services/auth.services';\nimport {AuthStore} from './stores/auth.store';\nimport {EnvStore} from './stores/env.store';\nimport type {User} from './types/auth.types';\nimport type {Environment} from './types/env.types';\nimport type {Unsubscribe} from './types/subscription.types';\n\nexport * from './providers/auth.providers';\nexport {signIn, signOut, unsafeIdentity} from './services/auth.services';\nexport * from './services/doc.services';\nexport * from './services/storage.services';\nexport * from './types/auth.types';\nexport * from './types/doc.types';\nexport * from './types/env.types';\nexport {ListOrder, ListPaginate, ListParams, ListResults} from './types/list.types';\nexport * from './types/satellite.types';\nexport * from './types/storage.types';\nexport * from './types/subscription.types';\n\nexport const initJuno = async (env: Environment): Promise<Unsubscribe[]> => {\n EnvStore.getInstance().set(env);\n\n await initAuth();\n\n const authSubscribe =\n env.workers?.auth !== undefined ? initAuthTimeoutWorker(env.workers.auth) : undefined;\n\n return [...(authSubscribe ? [authSubscribe] : [])];\n};\n\nexport const authSubscribe = (callback: (authUser: User | null) => void): Unsubscribe =>\n AuthStore.getInstance().subscribe(callback);\n"],
5
- "mappings": ";;ACCO,IAAMA,EAAgBC,GAC3BA,GAAa,KAGFC,GAAiBD,GAC5B,CAACD,EAAUC,CAAQ,ECJd,IAAME,EAAiBC,GACrBC,GAAWD,CAAK,EAAI,CAACA,CAAK,EAAI,CAAC,EAG3BE,EAAmBF,GACvBA,IAAQ,CAAC,EAGLG,EAAU,MAAUC,GAAiC,CAChE,IAAMC,EAAa,IAAI,KAAK,CAAC,KAAK,UAAUD,CAAI,CAAC,EAAG,CAClD,KAAM,iCACR,CAAC,EACD,OAAO,IAAI,WAAW,MAAMC,EAAK,YAAY,CAAC,CAChD,EAEaC,EAAY,MAAUF,GAA4C,CAC7E,IAAMC,EAAa,IAAI,KAAK,CAACD,aAAgB,WAAaA,EAAO,IAAI,WAAWA,CAAI,CAAC,EAAG,CACtF,KAAM,iCACR,CAAC,EACD,OAAO,KAAK,MAAM,MAAMC,EAAK,KAAK,CAAC,CACrC,ECtBaE,EAAY,IAAM,OAAO,OAAW,ICA1C,IAAeC,EAAf,KAAwB,CACrB,UAAgE,CAAC,EAE/D,SAASC,EAAgB,CACjC,KAAK,UAAU,QAAQ,CAAC,CAAC,SAAAC,CAAQ,IAC/BA,EAASD,CAAI,CACf,CACF,CAEA,UAAUC,EAAgD,CACxD,IAAMC,EAAa,OAAO,EAC1B,YAAK,UAAU,KAAK,CAAC,GAAIA,EAAY,SAAAD,CAAQ,CAAC,EAEvC,IACJ,KAAK,UAAY,KAAK,UAAU,OAC/B,CAAC,CAAC,GAAAE,CAAE,IAAwDA,IAAOD,CACrE,CACJ,CACF,ECdO,IAAME,EAAN,MAAMC,UAAkBC,CAAmB,CAChD,OAAe,SAEP,SAAwB,KAExB,aAAc,CACpB,MAAM,CACR,CAEA,OAAO,aAAc,CACnB,OAAKD,EAAU,WACbA,EAAU,SAAW,IAAIA,GAEpBA,EAAU,QACnB,CAEA,IAAIE,EAAuB,CACzB,KAAK,SAAWA,EAEhB,KAAK,SAASA,CAAQ,CACxB,CAEA,KAAmB,CACjB,OAAO,KAAK,QACd,CAES,UAAUC,EAAoD,CACrE,IAAMC,EAA0B,MAAM,UAAUD,CAAQ,EAExD,OAAAA,EAAS,KAAK,QAAQ,EAEfC,CACT,CAEA,OAAQ,CACN,KAAK,SAAW,KAEhB,KAAK,SAAS,KAAK,QAAQ,CAC7B,CACF,EC3CO,IAAMC,EAAO,CAAI,CAAC,QAAAC,EAAS,OAAAC,CAAM,IAAiD,CACvF,IAAMC,EAAyB,IAAI,YAAeF,EAAS,CAAC,OAAAC,EAAQ,QAAS,EAAI,CAAC,EAClF,SAAS,cAAcC,CAAM,CAC/B,ECAO,IAAMC,EAAiC,OAAO,MAAgC,EAExEC,EAA4C,CAAC,MAAO,IAAK,OAAQ,GAAG,EACpEC,EAA8C,CAAC,MAAO,IAAK,OAAQ,GAAG,EAEtEC,EAAwB,uBCL9B,IAAMC,EAAN,MAAMC,UAAiBC,CAA+B,CAC3D,OAAe,SAEP,IAEA,aAAc,CACpB,MAAM,CACR,CAEA,OAAO,aAAc,CACnB,OAAKD,EAAS,WACZA,EAAS,SAAW,IAAIA,GAEnBA,EAAS,QAClB,CAEA,IAAIE,EAA8B,CAChC,KAAK,IAAMA,EAEX,KAAK,SAASA,CAAG,CACnB,CAEA,KAA+B,CAC7B,OAAO,KAAK,GACd,CAEA,eAAyB,CACvB,OAAO,KAAK,IAAI,GAAG,0BAA4B,MACjD,CAES,UAAUC,EAAsE,CACvF,IAAMC,EAA0B,MAAM,UAAUD,CAAQ,EAExD,OAAAA,EAAS,KAAK,GAAG,EAEVC,CACT,CACF,ECtCO,IAAMC,EAAc,CAAC,CAC1B,MAAAC,EACA,OAAAC,CACF,IAG0B,CAKxB,GAJI,CAACC,EAAU,GAIXC,EAAU,MAAM,GAAKA,EAAU,OAAO,GAAG,EAC3C,OAGF,GAAM,CACJ,IAAK,CAAC,WAAAC,EAAY,YAAAC,CAAW,CAC/B,EAAI,OAEEH,EAAIG,EAAc,EAAI,QAAUJ,EAAS,EACzCK,EAAIF,EAAa,EAAI,QAAUJ,EAAQ,EAE7C,MAAO,uHAAuHA,CAAK,YAAYC,CAAM,SAASC,CAAC,UAAUI,CAAC,EAC5K,ECZO,IAAMC,EAAN,KAAuD,CAC5DC,GAEA,YAAY,CAAC,OAAAC,CAAM,EAAkD,CACnE,KAAKD,GAAUC,CACjB,CAEA,IAAI,IAAe,CACjB,MAAO,mBACT,CAEA,cAAc,CAAC,SAAAC,CAAQ,EAGrB,CACA,IAAMC,EAAmBC,EAAS,YAAY,EAAE,cAAc,EAC1D,UAAUA,EAAS,YAAY,EAAE,IAAI,GAAG,uBAAuB,kBAC/D,oBAAoB,KAAKJ,IAAWK,CAAqB,GAE7D,MAAO,CACL,GAAIH,IAAa,IAAS,CACxB,qBAAsBI,EAAYC,CAAQ,CAC5C,EACA,iBAAAJ,CACF,CACF,CACF,EAEaK,EAAN,KAA2C,CAChDC,GACAC,GAEA,YAAY,CAAC,QAAAC,EAAS,QAAAC,CAAO,EAAuC,CAClE,KAAKH,GAAWE,EAChB,KAAKD,GAAWE,CAClB,CAEA,IAAI,IAAe,CACjB,MAAO,MACT,CAEA,cAAc,CAAC,SAAAV,CAAQ,EAGrB,CACA,MAAO,CACL,GAAIA,IAAa,IAAS,CACxB,qBAAsBI,EAAYO,CAAU,CAC9C,EACA,iBAAkB,kDAAkD,UAClE,KAAKJ,EACP,CAAC,oBAAoB,UAAU,KAAKC,EAAQ,CAAC,EAC/C,CACF,CACF,ECnEA,OAAQ,cAAAI,OAAiB,uBAElB,IAAMC,EAAmB,IAC9BD,GAAW,OAAO,CAChB,YAAa,CACX,YAAa,GACb,2BAA4B,EAC9B,CACF,CAAC,ECLI,IAAME,EAAU,MAAU,CAAC,KAAAC,CAAI,IAAqC,CACzE,GAAI,CACF,OAAO,MAAMC,EAAaD,CAAI,CAChC,OAASE,EAAc,CACrB,QAAQ,MAAM,mEAAoEA,CAAG,EACrF,MACF,CACF,ECVA,OAAQ,aAAAC,OAAgB,qBAKjB,IAAMC,EAAe,CAAC,CAAC,QAAAC,EAAS,SAAAC,EAAU,MAAAC,EAAO,MAAAC,CAAK,KAAkC,CAC7F,QAASC,EAAUJ,CAAO,EACtB,CAAC,EACD,CACE,CACE,IAAKK,EAAWL,EAAQ,GAAG,EAC3B,YAAaK,EAAWL,EAAQ,WAAW,CAC7C,CACF,EACJ,SAAUK,EACRD,EAAUH,CAAQ,EACd,OACA,CACE,YAAaI,EAAWJ,EAAS,UAAU,EAC3C,MAAOI,EAAWD,EAAUH,EAAS,KAAK,EAAI,OAAY,OAAOA,EAAS,KAAK,CAAC,CAClF,CACN,EACA,MAAOI,EACLD,EAAUF,CAAK,EACX,OACA,CACE,KAAMA,EAAM,KACZ,MACEA,EAAM,QAAU,aACZ,CAAC,UAAW,IAAI,EAChBA,EAAM,QAAU,aAChB,CAAC,UAAW,IAAI,EAChB,CAAC,KAAM,IAAI,CACnB,CACN,EACA,MAAOG,EACLD,EAAUD,CAAK,EAAI,OAAY,OAAOA,GAAU,SAAWG,GAAU,SAASH,CAAK,EAAIA,CACzF,CACF,GCrCO,IAAMI,EAAa,CAAC,CAAC,IAAAC,CAAG,IAAM,CACnC,IAAMC,EAAcD,EAAI,OAAO,CAC7B,SAAUA,EAAI,IACd,QAASA,EAAI,IAAIA,EAAI,MAAMA,EAAI,KAAMA,EAAI,IAAI,CAAC,EAC9C,UAAWA,EAAI,IAAIA,EAAI,GAAG,CAC5B,CAAC,EACKE,EAAwBF,EAAI,OAAO,CACvC,YAAaA,EAAI,IAAIA,EAAI,SAAS,CACpC,CAAC,EACKG,EAAkBH,EAAI,QAAQ,CAClC,MAAOA,EAAI,KACX,MAAOA,EAAI,IACb,CAAC,EACKI,EAAaJ,EAAI,OAAO,CAC5B,WAAYA,EAAI,MAChB,SAAUA,EAAI,IAAIA,EAAI,MAAMA,EAAI,KAAMA,EAAI,IAAI,CAAC,EAC/C,WAAYA,EAAI,MAChB,MAAOG,EACP,WAAYH,EAAI,IAAIA,EAAI,KAAK,CAC/B,CAAC,EACKK,EAASL,EAAI,OAAO,CAAC,WAAYA,EAAI,IAAIA,EAAI,KAAK,CAAC,CAAC,EACpDM,EAAYN,EAAI,QAAQ,CAAC,GAAIA,EAAI,KAAM,QAASA,EAAI,IAAI,CAAC,EACzDO,EAAgBP,EAAI,OAAO,CAC/B,SAAUA,EAAI,IAAIA,EAAI,MAAMA,EAAI,KAAMA,EAAI,IAAI,CAAC,EAC/C,QAASA,EAAI,IAAIA,EAAI,MAAMA,EAAI,KAAMA,EAAI,IAAIA,EAAI,MAAMA,EAAI,KAAMA,EAAI,IAAI,CAAC,CAAC,CAAC,CAC9E,CAAC,EACKQ,EAASR,EAAI,OAAO,CAAC,QAASO,CAAa,CAAC,EAC5CE,EAAMT,EAAI,OAAO,CACrB,WAAYA,EAAI,MAChB,MAAOA,EAAI,UACX,KAAMA,EAAI,IAAIA,EAAI,IAAI,EACtB,YAAaA,EAAI,IAAIA,EAAI,IAAI,EAC7B,WAAYA,EAAI,KAClB,CAAC,EACKU,EAAcV,EAAI,OAAO,CAC7B,IAAKA,EAAI,KACT,OAAQA,EAAI,KACZ,KAAMA,EAAI,IAAIA,EAAI,IAAI,EACtB,QAASA,EAAI,IAAIA,EAAI,MAAMA,EAAI,KAAMA,EAAI,IAAI,CAAC,CAChD,CAAC,EACKW,EAASX,EAAI,QAAQ,CAAC,KAAMA,EAAI,KAAM,OAAQA,EAAI,IAAI,CAAC,EACvDY,EAAyBZ,EAAI,OAAO,CACxC,OAAQW,EACR,MAAOX,EAAI,IAAIA,EAAI,IAAI,EACvB,OAAQA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAI,CAAC,EACjC,QAASA,EAAI,IAAIA,EAAI,MAAMA,EAAI,KAAMA,EAAI,IAAI,CAAC,EAC9C,MAAOA,EAAI,MACX,cAAeA,EAAI,KACnB,UAAWA,EAAI,IACjB,CAAC,EACKa,EAAoBb,EAAI,QAAQ,CACpC,SAAUA,EAAI,OAAO,CACnB,MAAOY,EACP,SAAUZ,EAAI,KAAK,CAAC,EAAG,CAAC,EAAG,CAAC,OAAO,CAAC,CACtC,CAAC,CACH,CAAC,EACKc,EAAed,EAAI,OAAO,CAC9B,KAAMA,EAAI,IAAIA,EAAI,IAAI,EACtB,QAASA,EAAI,IAAIA,EAAI,MAAMA,EAAI,KAAMA,EAAI,IAAI,CAAC,EAC9C,mBAAoBA,EAAI,IAAIa,CAAiB,EAC7C,YAAab,EAAI,KACnB,CAAC,EACKe,EAAgCf,EAAI,OAAO,CAC/C,MAAOA,EAAI,IAAIY,CAAsB,EACrC,KAAMZ,EAAI,IAAIA,EAAI,IAAI,CACxB,CAAC,EACKgB,EAAehB,EAAI,OAAO,CAC9B,MAAOA,EAAI,IAAIA,EAAI,IAAI,EACvB,WAAYA,EAAI,KAChB,KAAMA,EAAI,KACV,YAAaA,EAAI,IAAIA,EAAI,IAAI,EAC7B,cAAeA,EAAI,IAAIA,EAAI,IAAI,EAC/B,UAAWA,EAAI,IACjB,CAAC,EACKiB,EAAmBjB,EAAI,OAAO,CAAC,SAAUA,EAAI,GAAG,CAAC,EACjDkB,EAAiBlB,EAAI,QAAQ,CACjC,UAAWA,EAAI,KACf,KAAMA,EAAI,KACV,UAAWA,EAAI,IACjB,CAAC,EACKmB,EAAYnB,EAAI,OAAO,CAAC,MAAOkB,EAAgB,KAAMlB,EAAI,IAAI,CAAC,EAC9DoB,EAAcpB,EAAI,OAAO,CAC7B,IAAKA,EAAI,IAAIA,EAAI,IAAI,EACrB,YAAaA,EAAI,IAAIA,EAAI,IAAI,CAC/B,CAAC,EACKqB,GAAerB,EAAI,OAAO,CAC9B,YAAaA,EAAI,IAAIA,EAAI,IAAI,EAC7B,MAAOA,EAAI,IAAIA,EAAI,KAAK,CAC1B,CAAC,EACKsB,EAAatB,EAAI,OAAO,CAC5B,MAAOA,EAAI,IAAImB,CAAS,EACxB,MAAOnB,EAAI,IAAIA,EAAI,SAAS,EAC5B,QAASA,EAAI,IAAIoB,CAAW,EAC5B,SAAUpB,EAAI,IAAIqB,EAAY,CAChC,CAAC,EACKE,GAAWvB,EAAI,OAAO,CAC1B,MAAOA,EAAI,IAAIA,EAAI,IAAI,EACvB,WAAYA,EAAI,KAChB,MAAOA,EAAI,UACX,KAAMA,EAAI,KACV,YAAaA,EAAI,IAAIA,EAAI,IAAI,EAC7B,UAAWA,EAAI,IACjB,CAAC,EACKwB,GAAyBxB,EAAI,OAAO,CACxC,SAAUA,EAAI,MACd,OAAQA,EAAI,IAAIA,EAAI,IAAI,EACxB,aAAcA,EAAI,GACpB,CAAC,EACKyB,GAAiBzB,EAAI,OAAO,CAChC,IAAKuB,GACL,WAAYvB,EAAI,MAChB,UAAWA,EAAI,IAAIA,EAAI,MAAMA,EAAI,KAAMwB,EAAsB,CAAC,EAC9D,QAASxB,EAAI,IAAIA,EAAI,MAAMA,EAAI,KAAMA,EAAI,IAAI,CAAC,EAC9C,WAAYA,EAAI,KAClB,CAAC,EACK0B,GAAc1B,EAAI,OAAO,CAC7B,cAAeA,EAAI,IAAIA,EAAI,KAAK,EAChC,eAAgBA,EAAI,MACpB,WAAYA,EAAI,IAAIA,EAAI,KAAK,EAC7B,MAAOA,EAAI,IAAIA,EAAI,MAAMA,EAAI,KAAMyB,EAAc,CAAC,EAClD,aAAczB,EAAI,KACpB,CAAC,EACK2B,GAAe3B,EAAI,OAAO,CAC9B,WAAYA,EAAI,MAChB,WAAYA,EAAI,MAChB,MAAOA,EAAI,IAAIA,EAAI,IAAI,CACzB,CAAC,EACK4B,GAAgB5B,EAAI,OAAO,CAC/B,cAAeA,EAAI,IAAIA,EAAI,KAAK,EAChC,eAAgBA,EAAI,MACpB,WAAYA,EAAI,IAAIA,EAAI,KAAK,EAC7B,MAAOA,EAAI,IAAIA,EAAI,MAAMA,EAAI,KAAMS,CAAG,CAAC,EACvC,aAAcT,EAAI,KACpB,CAAC,EACK6B,EAAa7B,EAAI,QAAQ,CAC7B,YAAaA,EAAI,KACjB,QAASA,EAAI,KACb,OAAQA,EAAI,KACZ,QAASA,EAAI,IACf,CAAC,EACK8B,GAAO9B,EAAI,OAAO,CACtB,OAAQA,EAAI,IAAIW,CAAM,EACtB,WAAYX,EAAI,MAChB,SAAUA,EAAI,IAAIA,EAAI,GAAG,EACzB,KAAM6B,EACN,WAAY7B,EAAI,MAChB,oBAAqBA,EAAI,IAAIA,EAAI,IAAI,EACrC,MAAO6B,CACT,CAAC,EACKE,GAAgB/B,EAAI,OAAO,CAC/B,SAAUA,EAAI,IAAIA,EAAI,MAAMA,EAAI,KAAMA,EAAI,IAAI,CAAC,EAC/C,MAAOG,EACP,WAAYH,EAAI,IAAIA,EAAI,KAAK,CAC/B,CAAC,EACKgC,GAAqBhC,EAAI,OAAO,CACpC,WAAY+B,GACZ,YAAa/B,EAAI,IAAIA,EAAI,SAAS,CACpC,CAAC,EACKiC,GAASjC,EAAI,OAAO,CACxB,WAAYA,EAAI,IAAIA,EAAI,KAAK,EAC7B,KAAMA,EAAI,IAAIA,EAAI,IAAI,EACtB,YAAaA,EAAI,IAAIA,EAAI,IAAI,CAC/B,CAAC,EACKkC,GAAUlC,EAAI,OAAO,CACzB,OAAQA,EAAI,IAAIW,CAAM,EACtB,WAAYX,EAAI,IAAIA,EAAI,KAAK,EAC7B,SAAUA,EAAI,IAAIA,EAAI,GAAG,EACzB,KAAM6B,EACN,oBAAqB7B,EAAI,IAAIA,EAAI,IAAI,EACrC,MAAO6B,CACT,CAAC,EACKM,GAAcnC,EAAI,OAAO,CAC7B,QAASA,EAAI,IAAIA,EAAI,IAAI,EACzB,SAAUA,EAAI,IACd,SAAUA,EAAI,IAAIA,EAAI,GAAG,CAC3B,CAAC,EACKoC,GAAoBpC,EAAI,OAAO,CAAC,SAAUA,EAAI,GAAG,CAAC,EACxD,OAAOA,EAAI,QAAQ,CACjB,oBAAqBA,EAAI,KAAK,CAACC,CAAW,EAAG,CAAC,EAAG,CAAC,CAAC,EACnD,UAAWD,EAAI,KAAK,CAACA,EAAI,KAAMA,EAAI,IAAI,EAAG,CAAC,EAAG,CAAC,CAAC,EAChD,WAAYA,EAAI,KAAK,CAACA,EAAI,IAAI,EAAG,CAAC,EAAG,CAAC,CAAC,EACvC,gBAAiBA,EAAI,KACnB,CAACE,CAAqB,EACtB,CAACF,EAAI,IAAIA,EAAI,MAAMA,EAAI,UAAWI,CAAU,CAAC,CAAC,EAC9C,CAAC,CACH,EACA,kBAAmBJ,EAAI,KAAK,CAACA,EAAI,IAAI,EAAG,CAAC,EAAG,CAAC,CAAC,EAC9C,QAASA,EAAI,KAAK,CAACA,EAAI,KAAMA,EAAI,KAAMK,CAAM,EAAG,CAAC,EAAG,CAAC,CAAC,EACtD,SAAUL,EAAI,KAAK,CAACM,EAAWN,EAAI,KAAMK,CAAM,EAAG,CAAC,EAAG,CAAC,CAAC,EACxD,WAAYL,EAAI,KAAK,CAAC,EAAG,CAACQ,CAAM,EAAG,CAAC,CAAC,EACrC,QAASR,EAAI,KAAK,CAACA,EAAI,KAAMA,EAAI,IAAI,EAAG,CAACA,EAAI,IAAIS,CAAG,CAAC,EAAG,CAAC,OAAO,CAAC,EACjE,aAAcT,EAAI,KAAK,CAACU,CAAW,EAAG,CAACI,CAAY,EAAG,CAAC,OAAO,CAAC,EAC/D,gCAAiCd,EAAI,KACnC,CAACY,CAAsB,EACvB,CAACG,CAA6B,EAC9B,CAAC,OAAO,CACV,EACA,kBAAmBf,EAAI,KAAK,CAACgB,CAAY,EAAG,CAACC,CAAgB,EAAG,CAAC,CAAC,EAClE,YAAajB,EAAI,KAAK,CAACA,EAAI,KAAMsB,CAAU,EAAG,CAACI,EAAW,EAAG,CAAC,OAAO,CAAC,EACtE,iBAAkB1B,EAAI,KAAK,CAAC,EAAG,CAACA,EAAI,IAAIA,EAAI,MAAMA,EAAI,UAAWI,CAAU,CAAC,CAAC,EAAG,CAAC,OAAO,CAAC,EACzF,oBAAqBJ,EAAI,KAAK,CAAC,EAAG,CAACA,EAAI,IAAIA,EAAI,MAAMA,EAAI,KAAM2B,EAAY,CAAC,CAAC,EAAG,CAAC,OAAO,CAAC,EACzF,UAAW3B,EAAI,KAAK,CAACA,EAAI,KAAMsB,CAAU,EAAG,CAACM,EAAa,EAAG,CAAC,OAAO,CAAC,EACtE,WAAY5B,EAAI,KAAK,CAACM,CAAS,EAAG,CAACN,EAAI,IAAIA,EAAI,MAAMA,EAAI,KAAM8B,EAAI,CAAC,CAAC,EAAG,CAAC,OAAO,CAAC,EACjF,WAAY9B,EAAI,KAAK,CAACQ,CAAM,EAAG,CAAC,EAAG,CAAC,CAAC,EACrC,gBAAiBR,EAAI,KACnB,CAACgC,EAAkB,EACnB,CAAChC,EAAI,IAAIA,EAAI,MAAMA,EAAI,UAAWI,CAAU,CAAC,CAAC,EAC9C,CAAC,CACH,EACA,kBAAmBJ,EAAI,KAAK,CAACA,EAAI,KAAMA,EAAI,IAAIA,EAAI,IAAI,CAAC,EAAG,CAAC,EAAG,CAAC,CAAC,EACjE,QAASA,EAAI,KAAK,CAACA,EAAI,KAAMA,EAAI,KAAMiC,EAAM,EAAG,CAACxB,CAAG,EAAG,CAAC,CAAC,EACzD,SAAUT,EAAI,KAAK,CAACM,EAAWN,EAAI,KAAMkC,EAAO,EAAG,CAAC,EAAG,CAAC,CAAC,EACzD,mBAAoBlC,EAAI,KAAK,CAACmC,EAAW,EAAG,CAACC,EAAiB,EAAG,CAAC,CAAC,EACnE,QAASpC,EAAI,KAAK,CAAC,EAAG,CAACA,EAAI,IAAI,EAAG,CAAC,OAAO,CAAC,CAC7C,CAAC,CACH,ECvNA,OAAQ,SAAAqC,GAAO,aAAAC,OAAgB,iBAKxB,IAAMC,EAAc,MAAwC,CACjE,YAAaC,EACb,WAAAC,EACA,SAAAC,EACA,MAAAC,EACA,IAAAC,EAAM,MACR,IAGkE,CAChE,IAAMC,EAAaD,IAAQ,OAASE,EAAS,YAAY,EAAE,cAAc,EAEnEC,EAAeF,EAAa,yBAA2B,qBAEvDG,EAAmB,IAAIC,GAAU,CAAC,SAAAP,EAAU,GAAIK,GAAQ,CAAC,KAAAA,CAAI,EAAI,GAAIJ,GAAS,CAAC,MAAAA,CAAK,CAAE,CAAC,EAE7F,OAAIE,GAEF,MAAMG,EAAM,aAAa,EAIpBE,GAAM,YAAYT,EAAY,CACnC,MAAAO,EACA,WAAAR,CACF,CAAC,CACH,EC1BO,IAAMW,EAAoB,MAAO,CACtC,YAAAC,EACA,GAAGC,CACL,IAA0C,CACxC,GAAM,CAAC,YAAaC,CAAU,EAC5BF,IAAgB,OACZ,CAAC,YAAAA,CAAW,EACZG,EAAS,YAAY,EAAE,IAAI,GAAK,CAAC,YAAa,MAAS,EAE7D,GAAI,CAACD,EACH,MAAM,IAAI,MAAM,iCAAiC,EAGnD,OAAOE,EAAY,CACjB,YAAaF,EACb,WAAAG,EACA,GAAGJ,CACL,CAAC,CACH,ECXO,IAAMK,EAAS,MAAU,CAC9B,WAAAC,EACA,IAAAC,EACA,UAAAC,CACF,IAGyD,CACvD,IAAMC,EAAwB,MAAMC,EAAkBF,CAAS,EAEzDG,EAA4BC,EAAa,MAAMH,EAAM,QAAQH,EAAYC,CAAG,CAAC,EAEnF,GAAIM,EAAUF,CAAK,EACjB,OAGF,GAAM,CAAC,KAAMG,EAAW,MAAAC,EAAO,YAAAC,EAAa,GAAGC,CAAI,EAAIN,EAEjDO,EAAU,MAAMC,EAAW,CAAC,KAAML,CAAS,CAAC,EAElD,MAAO,CACL,IAAAP,EACA,YAAaK,EAAaI,CAAW,EACrC,MAAOD,EAAM,OAAO,EACpB,KAAAG,EACA,GAAGD,CACL,CACF,EAEaG,GAAS,MAAU,CAC9B,WAAAd,EACA,IAAAe,EACA,UAAAb,CACF,IAIuB,CACrB,IAAMC,EAAwB,MAAMC,EAAkBF,CAAS,EAEzD,CAAC,IAAAD,EAAK,KAAAW,EAAM,WAAAI,EAAY,YAAAN,CAAW,EAAIK,EAEvCE,EAAqB,MAAMd,EAAM,QAAQH,EAAYC,EAAK,CAC9D,YAAaiB,EAAWR,CAAW,EACnC,KAAM,MAAMS,EAAWP,CAAI,EAC3B,WAAYM,EAAWF,CAAU,CACnC,CAAC,EAEK,CAAC,MAAAP,EAAO,WAAYW,EAAW,WAAAC,EAAY,YAAaC,CAAkB,EAAIL,EAKpF,MAAO,CACL,IAAAhB,EACA,YAAaK,EAAagB,CAAkB,EAC5C,MAAOb,EAAM,OAAO,EACpB,KAAAG,EACA,WAAAS,EACA,WAAYD,CACd,CACF,EAEaG,GAAY,MAAU,CACjC,WAAAvB,EACA,IAAAe,EACA,UAAAb,CACF,IAIqB,CACnB,IAAMC,EAAwB,MAAMC,EAAkBF,CAAS,EAEzD,CAAC,IAAAD,EAAK,WAAAe,CAAU,EAAID,EAE1B,OAAOZ,EAAM,QAAQH,EAAYC,EAAK,CACpC,WAAYiB,EAAWF,CAAU,CACnC,CAAC,CACH,EAEaQ,GAAW,MAAU,CAChC,WAAAxB,EACA,OAAAyB,EACA,UAAAvB,CACF,IAIoC,CAClC,IAAMC,EAAwB,MAAMC,EAAkBF,CAAS,EAEzD,CAAC,MAAAwB,EAAO,WAAAC,EAAY,aAAAC,EAAc,eAAAC,EAAgB,cAAAC,CAAa,EACnE,MAAM3B,EAAM,UAAUH,EAAY+B,EAAaN,CAAM,CAAC,EAElDO,EAAiB,CAAC,EAExB,OAAW,CAAC/B,EAAKgC,CAAI,IAAKP,EAAO,CAC/B,GAAM,CAAC,KAAMlB,EAAW,MAAAC,EAAO,YAAAC,EAAa,GAAGC,CAAI,EAAIsB,EAEvDD,EAAK,KAAK,CACR,IAAA/B,EACA,YAAaK,EAAaI,CAAW,EACrC,MAAOD,EAAM,OAAO,EACpB,KAAM,MAAMI,EAAW,CAAC,KAAML,CAAS,CAAC,EACxC,GAAGG,CACL,CAAC,CACH,CAEA,MAAO,CACL,MAAOqB,EACP,aAAAJ,EACA,WAAYtB,EAAaqB,CAAU,EACnC,eAAAE,EACA,cAAevB,EAAawB,CAAa,CAC3C,CACF,EChIA,OAAQ,qBAAAI,OAAwB,iBAGzB,IAAMC,EAAeC,GACtBA,IAAa,OACRA,EAGkCD,EAAgB,GAEpC,IAAIE,GCAtB,IAAMC,GAAS,MAAU,CAC9B,UAAAC,EACA,GAAGC,CACL,IAGyD,CACvD,IAAMC,EAAWC,EAAYH,GAAW,QAAQ,EAEhD,OAAOD,EAAU,CAAC,GAAGE,EAAM,UAAW,CAAC,GAAGD,EAAW,SAAAE,CAAQ,CAAC,CAAC,CACjE,EAEaE,GAAS,MAAU,CAC9B,UAAAJ,EACA,GAAGC,CACL,IAIuB,CACrB,IAAMC,EAAWC,EAAYH,GAAW,QAAQ,EAEhD,OAAOI,GAAU,CAAC,GAAGH,EAAM,UAAW,CAAC,GAAGD,EAAW,SAAAE,CAAQ,CAAC,CAAC,CACjE,EAEaG,GAAY,MAAU,CACjC,UAAAL,EACA,GAAGC,CACL,IAIqB,CACnB,IAAMC,EAAWC,EAAYH,GAAW,QAAQ,EAEhD,OAAOK,GAAa,CAAC,GAAGJ,EAAM,UAAW,CAAC,GAAGD,EAAW,SAAAE,CAAQ,CAAC,CAAC,CACpE,EAEaI,GAAW,MAAU,CAChC,UAAAN,EACA,OAAAO,EACA,GAAGN,CACL,IAIoC,CAClC,IAAMC,EAAWC,EAAYH,GAAW,QAAQ,EAEhD,OAAOM,GAAe,CAAC,GAAGL,EAAM,OAAQM,GAAU,CAAC,EAAG,UAAW,CAAC,GAAGP,EAAW,SAAAE,CAAQ,CAAC,CAAC,CAC5F,ECvDO,IAAMM,GAAW,MAAOC,GAAuC,CACpE,IAAMC,EAAiCC,EAAY,EAEnD,GAAIC,EAAUF,CAAQ,EACpB,MAAM,IAAI,MAAM,gEAAgE,EAGlF,IAAMG,EAASH,EAAS,aAAa,EAAE,OAAO,EAExCI,EAAyB,MAAMC,GAAiB,CACpD,WAAY,QACZ,IAAKF,CACP,CAAC,EAED,OAAID,EAAUE,CAAI,EACM,MAAME,GAAW,CAAC,OAAAH,EAAQ,SAAAJ,CAAQ,CAAC,EAIpDK,CACT,EAEME,GAAa,MAAO,CACxB,OAAAH,EACA,GAAGI,CACL,IAGEC,GAAiB,CACf,WAAY,QACZ,IAAK,CACH,IAAKL,EACL,KAAMI,CACR,CACF,CAAC,EC/BH,IAAIE,EAESC,EAAW,MAAOC,GAAwB,CAKrD,GAJAF,EAAaA,GAAe,MAAMG,EAAiB,EAI/C,EAF8B,MAAMH,GAAY,gBAAgB,GAAM,IAGxE,OAGF,IAAMI,EAAO,MAAMC,GAASH,CAAQ,EACpCI,EAAU,YAAY,EAAE,IAAIF,CAAI,CAClC,EAEaG,GAAS,MAAOC,GAE3B,IAAI,QAAc,MAAOC,EAASC,IAAW,CAC3CV,EAAaA,GAAe,MAAMG,EAAiB,EAEnD,IAAMD,EAAWM,GAAS,UAAY,IAAIG,EAAyB,CAAC,CAAC,EAErE,MAAMX,EAAW,MAAM,CACrB,UAAW,SAAY,CACrB,MAAMC,EAASC,EAAS,EAAE,EAC1BO,EAAQ,CACV,EACA,QAAUG,GAAmBF,EAAOE,CAAK,EACzC,cAAeJ,GAAS,eAAiBK,EACzC,GAAIL,GAAS,mBAAqB,QAAa,CAAC,iBAAkBA,EAAQ,gBAAgB,EAC1F,GAAGN,EAAS,cAAc,CACxB,SAAUM,GAAS,QACrB,CAAC,CACH,CAAC,CACH,CAAC,EAEUM,EAAU,SAA2B,CAChD,MAAMd,GAAY,OAAO,EAGzBA,EAAa,OAEbM,EAAU,YAAY,EAAE,MAAM,CAChC,EAEaS,EAAc,IAClBf,GAAY,YAAY,EAOpBgB,GAAiB,UAC3BhB,GAAe,MAAMG,EAAiB,GAAI,YAAY,ECtDlD,IAAMc,GAAyBC,GAAyC,CAC7E,IAAMC,EAAYD,IAAS,GAAO,2BAA6BA,EACzDE,EAAS,IAAI,OAAOD,CAAS,EAE7BE,EAAiB,SAAY,CACjCC,EAAK,CAAC,QAAS,sBAAsB,CAAC,EACtC,MAAMC,EAAQ,CAChB,EAEA,OAAAH,EAAO,UAAY,MAAO,CAAC,KAAAI,CAAI,IAAiC,CAC9D,GAAM,CAAC,IAAAC,CAAG,EAAID,EAEd,OAAQC,EAAK,CACX,IAAK,uBACH,MAAMJ,EAAe,EACrB,MACJ,CACF,EAEOK,EAAU,YAAY,EAAE,UAAWC,GAAsB,CAC9D,GAAIC,EAAUD,CAAI,EAAG,CACnBP,EAAO,YAAY,CAAC,IAAK,mBAAmB,CAAC,EAC7C,MACF,CAEAA,EAAO,YAAY,CAAC,IAAK,oBAAoB,CAAC,CAChD,CAAC,CACH,ECxBO,IAAMS,GAAc,MAAO,CAChC,KAAAC,EACA,SAAAC,EACA,WAAAC,EACA,QAAAC,EACA,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,YAAAC,EACA,UAAAC,CACF,IACkG,CAChG,IAAMC,EAAwB,MAAMC,EAAkBF,CAAS,EAEzD,CAAC,SAAUG,CAAO,EAAI,MAAMF,EAAM,kBAAkB,CACxD,WAAAP,EACA,UAAWG,EACX,KAAMJ,EACN,MAAOW,EAAmBR,CAAK,EAC/B,cAAeQ,EAA0BN,CAAQ,EACjD,YAAaM,EAAWL,CAAW,CACrC,CAAC,EAGKM,EAAY,KAEZC,EAAoC,CAAC,EAGrCC,EAAcC,EAAU,EAAI,IAAI,KAAK,CAAC,MAAMhB,EAAK,YAAY,CAAC,CAAC,EAAIA,EAGrEiB,EAAU,GACd,QAASC,EAAQ,EAAGA,EAAQH,EAAM,KAAMG,GAASL,EAAW,CAC1D,IAAMM,EAAcJ,EAAM,MAAMG,EAAOA,EAAQL,CAAS,EAExDC,EAAa,KAAK,CAChB,QAAAH,EACA,MAAAQ,EACA,MAAAV,EACA,QAAAQ,CACF,CAAC,EAEDA,GACF,CAGA,IAAIG,EAAgC,CAAC,EACrC,cAAiBC,KAAWC,GAAkB,CAAC,aAAAR,CAAY,CAAC,EAC1DM,EAAW,CAAC,GAAGA,EAAU,GAAGC,CAAO,EAGrC,IAAME,EACJpB,EAAQ,KAAK,CAAC,CAACqB,EAAMC,CAAC,IAAMD,EAAK,YAAY,IAAM,cAAc,IAAM,QACvExB,EAAK,OAAS,QACdA,EAAK,OAAS,GACV,CAAC,CAAC,eAAgBA,EAAK,IAAI,CAAC,EAC5B,OAEN,MAAMS,EAAM,oBAAoB,CAC9B,SAAUE,EACV,UAAWS,EAAS,IAAI,CAAC,CAAC,SAAAM,CAAQ,IAAyBA,CAAQ,EACnE,QAAS,CAAC,GAAGvB,EAAS,GAAIoB,GAA4B,CAAC,CAAE,CAC3D,CAAC,CACH,EAEA,eAAgBD,GAAkB,CAChC,aAAAR,EACA,MAAAa,EAAQ,EACV,EAG8C,CAC5C,QAASC,EAAI,EAAGA,EAAId,EAAa,OAAQc,EAAIA,EAAID,EAAO,CACtD,IAAME,EAAQf,EAAa,MAAMc,EAAGA,EAAID,CAAK,EAE7C,MADe,MAAM,QAAQ,IAAIE,EAAM,IAAKC,GAAWC,GAAYD,CAAM,CAAC,CAAC,CAE7E,CACF,CAWA,IAAMC,GAAc,MAAO,CACzB,QAAApB,EACA,MAAAQ,EACA,MAAAV,EACA,QAAAQ,CACF,IACER,EAAM,mBAAmB,CACvB,SAAUE,EACV,QAAS,IAAI,WAAW,MAAMQ,EAAM,YAAY,CAAC,EACjD,SAAUP,EAAWK,CAAO,CAC9B,CAAC,EAEUe,GAAa,MAAO,CAC/B,WAAA9B,EACA,UAAAM,EACA,OAAAyB,CACF,IAI4C,CAC1C,IAAMxB,EAAwB,MAAMC,EAAkBF,CAAS,EAEzD,CACJ,MAAO0B,EACP,aAAAC,EACA,WAAAC,EACA,eAAAC,EACA,cAAAC,CACF,EAAmB,MAAM7B,EAAM,YAAYP,EAAYqC,EAAaN,CAAM,CAAC,EAE3E,MAAO,CACL,MAAOC,EAAO,IAAI,CAAC,CAACT,EAAGe,CAAK,IAAMA,CAAK,EACvC,aAAAL,EACA,WAAYM,EAAaL,CAAU,EACnC,eAAAC,EACA,cAAeI,EAAaH,CAAa,CAC3C,CACF,EAEaI,GAAc,MAAO,CAChC,WAAAxC,EACA,SAAAG,EACA,UAAAG,CACF,KAIgC,MAAME,EAAkBF,CAAS,GAElD,UAAUN,EAAYG,CAAQ,EAGhCsC,GAAe,MAAO,CACjC,WAAAzC,EACA,UAAAM,CACF,KAIgC,MAAME,EAAkBF,CAAS,GAElD,WAAWN,CAAU,ECnK7B,IAAM0C,GAAwBC,GACnC,KAAK,CAAC,GAAGA,CAAM,EAAE,IAAKC,GAAM,OAAO,aAAaA,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,ECCvD,IAAMC,EAAe,IAAc,CACxC,IAAMC,EAAsBC,EAAS,YAAY,EAAE,IAAI,GAAG,aAAe,UAEzE,OAAIA,EAAS,YAAY,EAAE,cAAc,EAChC,UAAUD,CAAW,kBAGvB,WAAWA,CAAW,UAC/B,ECVO,IAAME,EAAkBC,GAC7B,UAAUA,EAAS,YAAY,EAAE,QAAQ,MAAO,GAAG,CAAC,ECe/C,IAAMC,GAAa,MACxBC,GACsBC,GAAcD,CAAM,EAE/BE,GAAa,MACxBF,GAGAC,GAAc,CACZ,SAAUD,EAAO,KAAK,KACtB,GAAGA,CACL,CAAC,EAEGC,GAAgB,MAAO,CAC3B,SAAUE,EACV,KAAAC,EACA,WAAAC,EACA,QAAAC,EAAU,CAAC,EACX,SAAUC,EACV,MAAAC,EACA,UAAAC,EACA,SAAAC,EACA,YAAAC,CACF,IAAmE,CACjE,IAAMC,EAAWC,EAAYJ,GAAW,QAAQ,EAE1CK,EAAmBC,EAAeZ,CAAe,EACjDa,EAAmBT,GAAe,IAAIF,CAAU,IAAIS,CAAQ,GAElE,aAAMG,GAAe,CACnB,KAAAb,EACA,SAAUW,EAAeD,CAAQ,EACjC,WAAAT,EACA,MAAAG,EACA,QAAAF,EACA,SAAAU,EACA,SAAAN,EACA,UAAW,CAAC,GAAGD,EAAW,SAAAG,CAAQ,EAClC,YAAAD,CACF,CAAC,EAEM,CACL,YAAa,GAAGO,EAAa,CAAC,GAAGF,CAAQ,GAAGR,IAAU,OAAY,UAAUA,CAAK,GAAK,EAAE,GACxF,SAAAQ,EACA,KAAMF,CACR,CACF,EAEaK,GAAa,MAAO,CAC/B,WAAAd,EACA,UAAAI,EACA,OAAAW,CACF,IAIuB,CACrB,GAAM,CAAC,MAAAC,EAAO,GAAGC,CAAI,EAAiC,MAAMH,GAAc,CACxE,WAAAd,EACA,UAAW,CAAC,GAAGI,EAAW,SAAUI,EAAYJ,GAAW,QAAQ,CAAC,EACpE,OAAQW,GAAU,CAAC,CACrB,CAAC,EAEKG,EAAeL,EAAa,EAElC,MAAO,CACL,OAAQG,EAAM,IACZ,CAAC,CACC,IAAK,CAAC,UAAAG,EAAW,MAAOC,EAAG,KAAAC,EAAM,MAAAC,EAAO,YAAAhB,CAAW,EACnD,QAAAL,EACA,UAAAsB,EACA,WAAAC,EACA,WAAAC,CACF,IAAsB,CACpB,IAAMtB,EAAQuB,EAAaN,CAAC,EAE5B,MAAO,CACL,SAAUD,EACV,YAAaO,EAAapB,CAAW,EACrC,KAAAe,EACA,YAAa,GAAGH,CAAI,GAAGC,CAAS,GAAGhB,IAAU,OAAY,UAAUA,CAAK,GAAK,EAAE,GAC/E,MAAAA,EACA,QAAAF,EACA,UAAWsB,EAAU,OACnB,CAACI,EAAK,CAACC,EAAM,CAAC,SAAAC,EAAU,OAAAC,EAAQ,aAAAC,CAAY,CAAC,KAAO,CAClD,GAAGJ,EACH,CAACC,CAAI,EAAG,CACN,SAAAC,EACA,OAAQG,GAAqBF,CAAM,EACnC,aAAAC,CACF,CACF,GACA,CAAC,CACH,EACA,MAAOT,EAAM,OAAO,EACpB,WAAAE,EACA,WAAAC,CACF,CACF,CACF,EACA,GAAGR,CACL,CACF,EAEagB,GAAc,MAAO,CAChC,WAAAjC,EACA,SAAAW,EACA,UAAAP,CACF,IAIE6B,GAAe,CACb,WAAAjC,EACA,SAAAW,EACA,UAAW,CAAC,GAAGP,EAAW,SAAUI,EAAYJ,GAAW,QAAQ,CAAC,CACtE,CAAC,EAEU8B,GAAe,MAAO,CACjC,WAAAlC,EACA,UAAAI,CACF,IAIE8B,GAAgB,CACd,WAAAlC,EACA,UAAW,CAAC,GAAGI,EAAW,SAAUI,EAAYJ,GAAW,QAAQ,CAAC,CACtE,CAAC,EC5HI,IAAM+B,GAAW,MAAOC,GAA6C,CAC1EC,EAAS,YAAY,EAAE,IAAID,CAAG,EAE9B,MAAME,EAAS,EAEf,IAAMC,EACJH,EAAI,SAAS,OAAS,OAAYI,GAAsBJ,EAAI,QAAQ,IAAI,EAAI,OAE9E,MAAO,CAAC,GAAIG,EAAgB,CAACA,CAAa,EAAI,CAAC,CAAE,CACnD,EAEaA,GAAiBE,GAC5BC,EAAU,YAAY,EAAE,UAAUD,CAAQ",
6
- "names": ["isNullish", "argument", "nonNullish", "toNullable", "value", "nonNullish", "fromNullable", "toArray", "data", "blob", "fromArray", "isBrowser", "Store", "data", "callback", "callbackId", "id", "AuthStore", "_AuthStore", "Store", "authUser", "callback", "unsubscribe", "emit", "message", "detail", "$event", "DELEGATION_IDENTITY_EXPIRATION", "II_POPUP", "NFID_POPUP", "INTERNET_COMPUTER_ORG", "EnvStore", "_EnvStore", "Store", "env", "callback", "unsubscribe", "popupCenter", "width", "height", "y", "t", "innerWidth", "innerHeight", "x", "InternetIdentityProvider", "#domain", "domain", "windowed", "identityProvider", "EnvStore", "INTERNET_COMPUTER_ORG", "popupCenter", "II_POPUP", "NFIDProvider", "#appName", "#logoUrl", "appName", "logoUrl", "NFID_POPUP", "AuthClient", "createAuthClient", "mapData", "data", "m", "err", "Principal", "toListParams", "matcher", "paginate", "order", "owner", "t", "T", "Principal", "idlFactory", "IDL", "CommitBatch", "DeleteControllersArgs", "ControllerScope", "Controller", "DelDoc", "RulesType", "StorageConfig", "Config", "Doc", "HttpRequest", "Memory", "StreamingCallbackToken", "StreamingStrategy", "HttpResponse", "StreamingCallbackHttpResponse", "InitAssetKey", "InitUploadResult", "ListOrderField", "ListOrder", "ListMatcher", "ListPaginate", "ListParams", "AssetKey", "AssetEncodingNoContent", "AssetNoContent", "ListResults", "CustomDomain", "ListResults_1", "Permission", "Rule", "SetController", "SetControllersArgs", "SetDoc", "SetRule", "UploadChunk", "UploadChunkResult", "Actor", "HttpAgent", "createActor", "canisterId", "idlFactory", "identity", "fetch", "env", "localActor", "EnvStore", "host", "agent", "HttpAgent", "Actor", "getSatelliteActor", "satelliteId", "rest", "canisterId", "EnvStore", "createActor", "idlFactory", "getDoc", "collection", "key", "satellite", "actor", "getSatelliteActor", "entry", "d", "t", "dataArray", "owner", "description", "rest", "data", "mapData", "setDoc", "doc", "updated_at", "updatedDoc", "T", "x", "updatedAt", "created_at", "updatedDescription", "deleteDoc", "listDocs", "filter", "items", "items_page", "items_length", "matches_length", "matches_pages", "toListParams", "docs", "item", "AnonymousIdentity", "getIdentity", "identity", "AnonymousIdentity", "getDoc", "satellite", "rest", "identity", "getIdentity", "setDoc", "deleteDoc", "listDocs", "filter", "initUser", "provider", "identity", "getIdentity", "t", "userId", "user", "getDoc", "createUser", "rest", "setDoc", "authClient", "initAuth", "provider", "createAuthClient", "user", "initUser", "AuthStore", "signIn", "options", "resolve", "reject", "InternetIdentityProvider", "error", "DELEGATION_IDENTITY_EXPIRATION", "signOut", "getIdentity", "unsafeIdentity", "initAuthTimeoutWorker", "auth", "workerUrl", "worker", "timeoutSignOut", "emit", "signOut", "data", "msg", "AuthStore", "user", "t", "uploadAsset", "data", "filename", "collection", "headers", "token", "fullPath", "encoding", "description", "satellite", "actor", "getSatelliteActor", "batchId", "T", "chunkSize", "uploadChunks", "clone", "y", "orderId", "start", "chunk", "chunkIds", "results", "batchUploadChunks", "contentType", "type", "_", "chunk_id", "limit", "i", "batch", "params", "uploadChunk", "listAssets", "filter", "assets", "items_length", "items_page", "matches_length", "matches_pages", "toListParams", "asset", "d", "deleteAsset", "deleteAssets", "sha256ToBase64String", "sha256", "c", "satelliteUrl", "satelliteId", "EnvStore", "encodeFilename", "filename", "uploadBlob", "params", "uploadAssetIC", "uploadFile", "storageFilename", "data", "collection", "headers", "storagePath", "token", "satellite", "encoding", "description", "identity", "getIdentity", "filename", "encodeFilename", "fullPath", "uploadAsset", "satelliteUrl", "listAssets", "filter", "items", "rest", "host", "full_path", "t", "name", "owner", "encodings", "created_at", "updated_at", "d", "acc", "type", "modified", "sha256", "total_length", "sha256ToBase64String", "deleteAsset", "deleteAssets", "initJuno", "env", "EnvStore", "initAuth", "authSubscribe", "initAuthTimeoutWorker", "callback", "AuthStore"]
3
+ "sources": ["../../../utils/src/utils/debounce.utils.ts", "../../../utils/src/utils/null.utils.ts", "../../../utils/src/utils/did.utils.ts", "../../../utils/src/utils/env.utils.ts", "../../src/stores/store.ts", "../../src/stores/auth.store.ts", "../../src/utils/events.utils.ts", "../../src/constants/auth.constants.ts", "../../src/stores/env.store.ts", "../../src/utils/window.utils.ts", "../../src/providers/auth.providers.ts", "../../src/utils/auth.utils.ts", "../../src/utils/data.utils.ts", "../../src/utils/doc.utils.ts", "../../src/utils/list.utils.ts", "../../declarations/satellite/satellite.factory.did.js", "../../src/utils/actor.utils.ts", "../../src/api/actor.api.ts", "../../src/api/doc.api.ts", "../../src/services/identity.services.ts", "../../src/services/doc.services.ts", "../../src/services/user.services.ts", "../../src/services/auth.services.ts", "../../src/services/auth-timout.services.ts", "../../src/api/storage.api.ts", "../../src/utils/crypto.utils.ts", "../../src/utils/env.utils.ts", "../../src/utils/storage.utils.ts", "../../src/services/storage.services.ts", "../../src/index.ts"],
4
+ "sourcesContent": ["/* eslint-disable-next-line @typescript-eslint/ban-types */\nexport const debounce = (func: Function, timeout?: number) => {\n let timer: NodeJS.Timer | undefined;\n\n return (...args: unknown[]) => {\n const next = () => func(...args);\n\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(next, timeout !== undefined && timeout > 0 ? timeout : 300);\n };\n};\n", "/** Is null or undefined */\nexport const isNullish = <T>(argument: T | undefined | null): argument is undefined | null =>\n argument === null || argument === undefined;\n\n/** Not null and not undefined */\nexport const nonNullish = <T>(argument: T | undefined | null): argument is NonNullable<T> =>\n !isNullish(argument);\n\nexport class NullishError extends Error {}\n\nexport const assertNonNullish: <T>(\n value: T,\n message?: string\n) => asserts value is NonNullable<T> = <T>(value: T, message?: string): void => {\n if (isNullish(value)) {\n throw new NullishError(message);\n }\n};\n", "import {nonNullish} from './null.utils';\n\nexport const toNullable = <T>(value?: T): [] | [T] => {\n return nonNullish(value) ? [value] : [];\n};\n\nexport const fromNullable = <T>(value: [] | [T]): T | undefined => {\n return value?.[0];\n};\n\nexport const toArray = async <T>(data: T): Promise<Uint8Array> => {\n const blob: Blob = new Blob([JSON.stringify(data)], {\n type: 'application/json; charset=utf-8'\n });\n return new Uint8Array(await blob.arrayBuffer());\n};\n\nexport const fromArray = async <T>(data: Uint8Array | number[]): Promise<T> => {\n const blob: Blob = new Blob([data instanceof Uint8Array ? data : new Uint8Array(data)], {\n type: 'application/json; charset=utf-8'\n });\n return JSON.parse(await blob.text());\n};\n", "export const isBrowser = () => typeof window !== `undefined`;\n", "export abstract class Store<T> {\n private callbacks: {id: symbol; callback: (data: T | null) => void}[] = [];\n\n protected populate(data: T | null) {\n this.callbacks.forEach(({callback}: {id: symbol; callback: (data: T | null) => void}) =>\n callback(data)\n );\n }\n\n subscribe(callback: (data: T | null) => void): () => void {\n const callbackId = Symbol();\n this.callbacks.push({id: callbackId, callback});\n\n return () =>\n (this.callbacks = this.callbacks.filter(\n ({id}: {id: symbol; callback: (data: T | null) => void}) => id !== callbackId\n ));\n }\n}\n", "import type {User} from '../types/auth.types';\nimport type {Unsubscribe} from '../types/subscription.types';\nimport {Store} from './store';\n\nexport class AuthStore extends Store<User | null> {\n private static instance: AuthStore;\n\n private authUser: User | null = null;\n\n private constructor() {\n super();\n }\n\n static getInstance() {\n if (!AuthStore.instance) {\n AuthStore.instance = new AuthStore();\n }\n return AuthStore.instance;\n }\n\n set(authUser: User | null) {\n this.authUser = authUser;\n\n this.populate(authUser);\n }\n\n get(): User | null {\n return this.authUser;\n }\n\n override subscribe(callback: (data: User | null) => void): Unsubscribe {\n const unsubscribe: () => void = super.subscribe(callback);\n\n callback(this.authUser);\n\n return unsubscribe;\n }\n\n reset() {\n this.authUser = null;\n\n this.populate(this.authUser);\n }\n}\n", "export const emit = <T>({message, detail}: {message: string; detail?: T | undefined}) => {\n const $event: CustomEvent<T> = new CustomEvent<T>(message, {detail, bubbles: true});\n document.dispatchEvent($event);\n};\n", "// How long the delegation identity should remain valid?\n// e.g. BigInt(7 * 24 * 60 * 60 * 1000 * 1000 * 1000) = 7 days in nanoseconds\n// For Juno: 4 hours\nexport const DELEGATION_IDENTITY_EXPIRATION = BigInt(4 * 60 * 60 * 1000 * 1000 * 1000);\n\nexport const II_POPUP: {width: number; height: number} = {width: 576, height: 576};\nexport const NFID_POPUP: {width: number; height: number} = {width: 505, height: 705};\n\nexport const INTERNET_COMPUTER_ORG = 'internetcomputer.org';\n\n// Worker\nexport const AUTH_TIMER_INTERVAL = 1000;\n", "import type {Environment} from '../types/env.types';\nimport {Store} from './store';\n\nexport class EnvStore extends Store<Environment | undefined> {\n private static instance: EnvStore;\n\n private env: Environment | undefined;\n\n private constructor() {\n super();\n }\n\n static getInstance() {\n if (!EnvStore.instance) {\n EnvStore.instance = new EnvStore();\n }\n return EnvStore.instance;\n }\n\n set(env: Environment | undefined) {\n this.env = env;\n\n this.populate(env);\n }\n\n get(): Environment | undefined {\n return this.env;\n }\n\n localIdentity(): boolean {\n return this.get()?.localIdentityCanisterId !== undefined;\n }\n\n override subscribe(callback: (data: Environment | null | undefined) => void): () => void {\n const unsubscribe: () => void = super.subscribe(callback);\n\n callback(this.env);\n\n return unsubscribe;\n }\n}\n", "import {isBrowser, isNullish} from '@junobuild/utils';\n\nexport const popupCenter = ({\n width,\n height\n}: {\n width: number;\n height: number;\n}): string | undefined => {\n if (!isBrowser()) {\n return undefined;\n }\n\n if (isNullish(window) || isNullish(window.top)) {\n return undefined;\n }\n\n const {\n top: {innerWidth, innerHeight}\n } = window;\n\n const y = innerHeight / 2 + screenY - height / 2;\n const x = innerWidth / 2 + screenX - width / 2;\n\n return `toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=${width}, height=${height}, top=${y}, left=${x}`;\n};\n", "import {II_POPUP, INTERNET_COMPUTER_ORG, NFID_POPUP} from '../constants/auth.constants';\nimport {EnvStore} from '../stores/env.store';\nimport type {Provider, SignInOptions} from '../types/auth.types';\nimport {popupCenter} from '../utils/window.utils';\n\nexport interface AuthProvider {\n readonly id: Provider;\n signInOptions: (options: Pick<SignInOptions, 'windowed'>) => {\n identityProvider: string;\n windowOpenerFeatures?: string;\n };\n}\n\nexport class InternetIdentityProvider implements AuthProvider {\n #domain?: 'internetcomputer.org' | 'ic0.app';\n\n constructor({domain}: {domain?: 'internetcomputer.org' | 'ic0.app'}) {\n this.#domain = domain;\n }\n\n get id(): Provider {\n return 'internet_identity';\n }\n\n signInOptions({windowed}: Pick<SignInOptions, 'windowed'>): {\n identityProvider: string;\n windowOpenerFeatures?: string;\n } {\n const identityProvider = EnvStore.getInstance().localIdentity()\n ? `http://${EnvStore.getInstance().get()?.localIdentityCanisterId}.localhost:8000`\n : `https://identity.${this.#domain ?? INTERNET_COMPUTER_ORG}`;\n\n return {\n ...(windowed !== false && {\n windowOpenerFeatures: popupCenter(II_POPUP)\n }),\n identityProvider\n };\n }\n}\n\nexport class NFIDProvider implements AuthProvider {\n #appName: string;\n #logoUrl: string;\n\n constructor({appName, logoUrl}: {appName: string; logoUrl: string}) {\n this.#appName = appName;\n this.#logoUrl = logoUrl;\n }\n\n get id(): Provider {\n return 'nfid';\n }\n\n signInOptions({windowed}: Pick<SignInOptions, 'windowed'>): {\n identityProvider: string;\n windowOpenerFeatures?: string;\n } {\n return {\n ...(windowed !== false && {\n windowOpenerFeatures: popupCenter(NFID_POPUP)\n }),\n identityProvider: `https://nfid.one/authenticate/?applicationName=${encodeURI(\n this.#appName\n )}&applicationLogo=${encodeURI(this.#logoUrl)}`\n };\n }\n}\n", "import {AuthClient} from '@dfinity/auth-client';\n\nexport const createAuthClient = (): Promise<AuthClient> =>\n AuthClient.create({\n idleOptions: {\n disableIdle: true,\n disableDefaultIdleCallback: true\n }\n });\n", "import {fromArray} from '@junobuild/utils';\nimport type {Doc} from '../../declarations/satellite/satellite.did';\n\nexport const mapData = async <D>({data}: Pick<Doc, 'data'>): Promise<D> => {\n try {\n return await fromArray<D>(data);\n } catch (err: unknown) {\n console.error('The data parsing has failed, mapping to undefined as a fallback.', err);\n return undefined as D;\n }\n};\n", "import {fromArray, fromNullable, toArray, toNullable} from '@junobuild/utils';\nimport type {DelDoc, Doc as DocApi, SetDoc} from '../../declarations/satellite/satellite.did';\nimport type {Doc} from '../types/doc.types';\n\nexport const toSetDoc = async <D>(doc: Doc<D>): Promise<SetDoc> => {\n const {data, updated_at, description} = doc;\n\n return {\n description: toNullable(description),\n data: await toArray<D>(data),\n updated_at: toNullable(updated_at)\n };\n};\n\nexport const toDelDoc = <D>(doc: Doc<D>): DelDoc => {\n const {updated_at} = doc;\n\n return {\n updated_at: toNullable(updated_at)\n };\n};\n\nexport const fromDoc = async <D>({\n updatedDoc,\n key\n}: {\n updatedDoc: DocApi;\n key: string;\n}): Promise<Doc<D>> => {\n const {\n owner,\n updated_at: updatedAt,\n created_at,\n description: updatedDescription,\n data\n } = updatedDoc;\n\n // We update the data with the updated_at timestamp generated in the backend.\n // The canister checks if the updated_at date is equals to the entity timestamp otherwise it rejects the update to prevent overwrite of data if user uses multiple devices.\n // In other words: to update a data, the current updated_at information need to be provided.\n return {\n key,\n description: fromNullable(updatedDescription),\n owner: owner.toText(),\n data: await fromArray<D>(data),\n created_at,\n updated_at: updatedAt\n };\n};\n", "import {Principal} from '@dfinity/principal';\nimport {isNullish, toNullable} from '@junobuild/utils';\nimport type {ListParams as ListParamsApi} from '../../declarations/satellite/satellite.did';\nimport type {ListParams} from '../types/list.types';\n\nexport const toListParams = ({matcher, paginate, order, owner}: ListParams): ListParamsApi => ({\n matcher: isNullish(matcher)\n ? []\n : [\n {\n key: toNullable(matcher.key),\n description: toNullable(matcher.description)\n }\n ],\n paginate: toNullable(\n isNullish(paginate)\n ? undefined\n : {\n start_after: toNullable(paginate.startAfter),\n limit: toNullable(isNullish(paginate.limit) ? undefined : BigInt(paginate.limit))\n }\n ),\n order: toNullable(\n isNullish(order)\n ? undefined\n : {\n desc: order.desc,\n field:\n order.field === 'created_at'\n ? {CreatedAt: null}\n : order.field === 'updated_at'\n ? {UpdatedAt: null}\n : {Keys: null}\n }\n ),\n owner: toNullable(\n isNullish(owner) ? undefined : typeof owner === 'string' ? Principal.fromText(owner) : owner\n )\n});\n", "// @ts-ignore\nexport const idlFactory = ({IDL}) => {\n const CommitBatch = IDL.Record({\n batch_id: IDL.Nat,\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n chunk_ids: IDL.Vec(IDL.Nat)\n });\n const DeleteControllersArgs = IDL.Record({\n controllers: IDL.Vec(IDL.Principal)\n });\n const ControllerScope = IDL.Variant({\n Write: IDL.Null,\n Admin: IDL.Null\n });\n const Controller = IDL.Record({\n updated_at: IDL.Nat64,\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64,\n scope: ControllerScope,\n expires_at: IDL.Opt(IDL.Nat64)\n });\n const DelDoc = IDL.Record({updated_at: IDL.Opt(IDL.Nat64)});\n const RulesType = IDL.Variant({Db: IDL.Null, Storage: IDL.Null});\n const DepositCyclesArgs = IDL.Record({\n cycles: IDL.Nat,\n destination_id: IDL.Principal\n });\n const StorageConfigIFrame = IDL.Variant({\n Deny: IDL.Null,\n AllowAny: IDL.Null,\n SameOrigin: IDL.Null\n });\n const StorageConfigRedirect = IDL.Record({\n status_code: IDL.Nat16,\n location: IDL.Text\n });\n const StorageConfig = IDL.Record({\n iframe: IDL.Opt(StorageConfigIFrame),\n rewrites: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)))),\n redirects: IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Text, StorageConfigRedirect)))\n });\n const Config = IDL.Record({storage: StorageConfig});\n const Doc = IDL.Record({\n updated_at: IDL.Nat64,\n owner: IDL.Principal,\n data: IDL.Vec(IDL.Nat8),\n description: IDL.Opt(IDL.Text),\n created_at: IDL.Nat64\n });\n const HttpRequest = IDL.Record({\n url: IDL.Text,\n method: IDL.Text,\n body: IDL.Vec(IDL.Nat8),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n certificate_version: IDL.Opt(IDL.Nat16)\n });\n const Memory = IDL.Variant({Heap: IDL.Null, Stable: IDL.Null});\n const StreamingCallbackToken = IDL.Record({\n memory: Memory,\n token: IDL.Opt(IDL.Text),\n sha256: IDL.Opt(IDL.Vec(IDL.Nat8)),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n index: IDL.Nat64,\n encoding_type: IDL.Text,\n full_path: IDL.Text\n });\n const StreamingStrategy = IDL.Variant({\n Callback: IDL.Record({\n token: StreamingCallbackToken,\n callback: IDL.Func([], [], ['query'])\n })\n });\n const HttpResponse = IDL.Record({\n body: IDL.Vec(IDL.Nat8),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n streaming_strategy: IDL.Opt(StreamingStrategy),\n status_code: IDL.Nat16\n });\n const StreamingCallbackHttpResponse = IDL.Record({\n token: IDL.Opt(StreamingCallbackToken),\n body: IDL.Vec(IDL.Nat8)\n });\n const InitAssetKey = IDL.Record({\n token: IDL.Opt(IDL.Text),\n collection: IDL.Text,\n name: IDL.Text,\n description: IDL.Opt(IDL.Text),\n encoding_type: IDL.Opt(IDL.Text),\n full_path: IDL.Text\n });\n const InitUploadResult = IDL.Record({batch_id: IDL.Nat});\n const ListOrderField = IDL.Variant({\n UpdatedAt: IDL.Null,\n Keys: IDL.Null,\n CreatedAt: IDL.Null\n });\n const ListOrder = IDL.Record({field: ListOrderField, desc: IDL.Bool});\n const ListMatcher = IDL.Record({\n key: IDL.Opt(IDL.Text),\n description: IDL.Opt(IDL.Text)\n });\n const ListPaginate = IDL.Record({\n start_after: IDL.Opt(IDL.Text),\n limit: IDL.Opt(IDL.Nat64)\n });\n const ListParams = IDL.Record({\n order: IDL.Opt(ListOrder),\n owner: IDL.Opt(IDL.Principal),\n matcher: IDL.Opt(ListMatcher),\n paginate: IDL.Opt(ListPaginate)\n });\n const AssetKey = IDL.Record({\n token: IDL.Opt(IDL.Text),\n collection: IDL.Text,\n owner: IDL.Principal,\n name: IDL.Text,\n description: IDL.Opt(IDL.Text),\n full_path: IDL.Text\n });\n const AssetEncodingNoContent = IDL.Record({\n modified: IDL.Nat64,\n sha256: IDL.Vec(IDL.Nat8),\n total_length: IDL.Nat\n });\n const AssetNoContent = IDL.Record({\n key: AssetKey,\n updated_at: IDL.Nat64,\n encodings: IDL.Vec(IDL.Tuple(IDL.Text, AssetEncodingNoContent)),\n headers: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n created_at: IDL.Nat64\n });\n const ListResults = IDL.Record({\n matches_pages: IDL.Opt(IDL.Nat64),\n matches_length: IDL.Nat64,\n items_page: IDL.Opt(IDL.Nat64),\n items: IDL.Vec(IDL.Tuple(IDL.Text, AssetNoContent)),\n items_length: IDL.Nat64\n });\n const CustomDomain = IDL.Record({\n updated_at: IDL.Nat64,\n created_at: IDL.Nat64,\n bn_id: IDL.Opt(IDL.Text)\n });\n const ListResults_1 = IDL.Record({\n matches_pages: IDL.Opt(IDL.Nat64),\n matches_length: IDL.Nat64,\n items_page: IDL.Opt(IDL.Nat64),\n items: IDL.Vec(IDL.Tuple(IDL.Text, Doc)),\n items_length: IDL.Nat64\n });\n const Permission = IDL.Variant({\n Controllers: IDL.Null,\n Private: IDL.Null,\n Public: IDL.Null,\n Managed: IDL.Null\n });\n const Rule = IDL.Record({\n memory: IDL.Opt(Memory),\n updated_at: IDL.Nat64,\n max_size: IDL.Opt(IDL.Nat),\n read: Permission,\n created_at: IDL.Nat64,\n mutable_permissions: IDL.Opt(IDL.Bool),\n write: Permission\n });\n const SetController = IDL.Record({\n metadata: IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text)),\n scope: ControllerScope,\n expires_at: IDL.Opt(IDL.Nat64)\n });\n const SetControllersArgs = IDL.Record({\n controller: SetController,\n controllers: IDL.Vec(IDL.Principal)\n });\n const SetDoc = IDL.Record({\n updated_at: IDL.Opt(IDL.Nat64),\n data: IDL.Vec(IDL.Nat8),\n description: IDL.Opt(IDL.Text)\n });\n const SetRule = IDL.Record({\n memory: IDL.Opt(Memory),\n updated_at: IDL.Opt(IDL.Nat64),\n max_size: IDL.Opt(IDL.Nat),\n read: Permission,\n mutable_permissions: IDL.Opt(IDL.Bool),\n write: Permission\n });\n const UploadChunk = IDL.Record({\n content: IDL.Vec(IDL.Nat8),\n batch_id: IDL.Nat,\n order_id: IDL.Opt(IDL.Nat)\n });\n const UploadChunkResult = IDL.Record({chunk_id: IDL.Nat});\n return IDL.Service({\n commit_asset_upload: IDL.Func([CommitBatch], [], []),\n del_asset: IDL.Func([IDL.Text, IDL.Text], [], []),\n del_assets: IDL.Func([IDL.Text], [], []),\n del_controllers: IDL.Func(\n [DeleteControllersArgs],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n []\n ),\n del_custom_domain: IDL.Func([IDL.Text], [], []),\n del_doc: IDL.Func([IDL.Text, IDL.Text, DelDoc], [], []),\n del_docs: IDL.Func([IDL.Text], [], []),\n del_many_assets: IDL.Func([IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))], [], []),\n del_many_docs: IDL.Func([IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text, DelDoc))], [], []),\n del_rule: IDL.Func([RulesType, IDL.Text, DelDoc], [], []),\n deposit_cycles: IDL.Func([DepositCyclesArgs], [], []),\n get_config: IDL.Func([], [Config], []),\n get_doc: IDL.Func([IDL.Text, IDL.Text], [IDL.Opt(Doc)], ['query']),\n http_request: IDL.Func([HttpRequest], [HttpResponse], ['query']),\n http_request_streaming_callback: IDL.Func(\n [StreamingCallbackToken],\n [StreamingCallbackHttpResponse],\n ['query']\n ),\n init_asset_upload: IDL.Func([InitAssetKey], [InitUploadResult], []),\n list_assets: IDL.Func([IDL.Text, ListParams], [ListResults], ['query']),\n list_controllers: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))], ['query']),\n list_custom_domains: IDL.Func([], [IDL.Vec(IDL.Tuple(IDL.Text, CustomDomain))], ['query']),\n list_docs: IDL.Func([IDL.Text, ListParams], [ListResults_1], ['query']),\n list_rules: IDL.Func([RulesType], [IDL.Vec(IDL.Tuple(IDL.Text, Rule))], ['query']),\n set_config: IDL.Func([Config], [], []),\n set_controllers: IDL.Func(\n [SetControllersArgs],\n [IDL.Vec(IDL.Tuple(IDL.Principal, Controller))],\n []\n ),\n set_custom_domain: IDL.Func([IDL.Text, IDL.Opt(IDL.Text)], [], []),\n set_doc: IDL.Func([IDL.Text, IDL.Text, SetDoc], [Doc], []),\n set_many_docs: IDL.Func(\n [IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text, SetDoc))],\n [IDL.Vec(IDL.Tuple(IDL.Text, Doc))],\n []\n ),\n set_rule: IDL.Func([RulesType, IDL.Text, SetRule], [], []),\n upload_asset_chunk: IDL.Func([UploadChunk], [UploadChunkResult], []),\n version: IDL.Func([], [IDL.Text], ['query'])\n });\n};\n// @ts-ignore\nexport const init = ({IDL}) => {\n return [];\n};\n", "import type {ActorMethod, ActorSubclass} from '@dfinity/agent';\nimport {Actor, HttpAgent} from '@dfinity/agent';\nimport type {IDL} from '@dfinity/candid';\nimport {EnvStore} from '../stores/env.store';\nimport type {Satellite} from '../types/satellite.types';\n\nexport const createActor = async <T = Record<string, ActorMethod>>({\n satelliteId: canisterId,\n idlFactory,\n identity,\n fetch,\n env = 'prod'\n}: {\n idlFactory: IDL.InterfaceFactory;\n} & Required<Pick<Satellite, 'satelliteId' | 'identity'>> &\n Pick<Satellite, 'fetch' | 'env'>): Promise<ActorSubclass<T>> => {\n const localActor = env === 'dev' || EnvStore.getInstance().localIdentity();\n\n const host: string = localActor ? 'http://127.0.0.1:8000/' : 'https://icp-api.io';\n\n const agent: HttpAgent = new HttpAgent({identity, ...(host && {host}), ...(fetch && {fetch})});\n\n if (localActor) {\n // Fetch root key for certificate validation during development\n await agent.fetchRootKey();\n }\n\n // Creates an actor with using the candid interface and the HttpAgent\n return Actor.createActor(idlFactory, {\n agent,\n canisterId\n });\n};\n", "import type {_SERVICE as SatelliteActor} from '../../declarations/satellite/satellite.did';\nimport {idlFactory} from '../../declarations/satellite/satellite.factory.did.js';\nimport {EnvStore} from '../stores/env.store';\nimport type {Satellite} from '../types/satellite.types';\nimport {createActor} from '../utils/actor.utils';\n\nexport const getSatelliteActor = async ({\n satelliteId,\n ...rest\n}: Satellite): Promise<SatelliteActor> => {\n const {satelliteId: canisterId} =\n satelliteId !== undefined\n ? {satelliteId}\n : EnvStore.getInstance().get() ?? {satelliteId: undefined};\n\n if (!canisterId) {\n throw new Error('No satellite principal defined.');\n }\n\n return createActor({\n satelliteId: canisterId,\n idlFactory,\n ...rest\n });\n};\n", "import {fromNullable, isNullish} from '@junobuild/utils';\nimport type {\n DelDoc,\n Doc as DocApi,\n ListResults_1 as ListDocsApi,\n _SERVICE as SatelliteActor,\n SetDoc\n} from '../../declarations/satellite/satellite.did';\nimport type {Doc} from '../types/doc.types';\nimport type {ListParams, ListResults} from '../types/list.types';\nimport type {Satellite} from '../types/satellite.types';\nimport {mapData} from '../utils/data.utils';\nimport {fromDoc, toDelDoc, toSetDoc} from '../utils/doc.utils';\nimport {toListParams} from '../utils/list.utils';\nimport {getSatelliteActor} from './actor.api';\n\nexport const getDoc = async <D>({\n collection,\n key,\n satellite\n}: {\n collection: string;\n satellite: Satellite;\n} & Pick<Doc<D>, 'key'>): Promise<Doc<D> | undefined> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n\n const entry: DocApi | undefined = fromNullable(await actor.get_doc(collection, key));\n\n if (isNullish(entry)) {\n return undefined;\n }\n\n const {data: dataArray, owner, description, ...rest} = entry;\n\n const data: D = await mapData<D>({data: dataArray});\n\n return {\n key,\n description: fromNullable(description),\n owner: owner.toText(),\n data,\n ...rest\n };\n};\n\nexport const setDoc = async <D>({\n collection,\n doc,\n satellite\n}: {\n collection: string;\n doc: Doc<D>;\n satellite: Satellite;\n}): Promise<Doc<D>> => {\n const {set_doc} = await getSatelliteActor(satellite);\n\n const {key} = doc;\n\n const setDoc = await toSetDoc(doc);\n\n const updatedDoc = await set_doc(collection, key, setDoc);\n\n return await fromDoc({key, updatedDoc});\n};\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const setManyDocs = async ({\n docs,\n satellite\n}: {\n docs: {collection: string; doc: Doc<any>}[];\n satellite: Satellite;\n}): Promise<Doc<any>[]> => {\n const {set_many_docs} = await getSatelliteActor(satellite);\n\n const payload: [string, string, SetDoc][] = [];\n for (const {collection, doc} of docs) {\n const {key} = doc;\n payload.push([collection, key, await toSetDoc(doc)]);\n }\n\n const updatedDocs = await set_many_docs(payload);\n\n const results: Doc<any>[] = [];\n for (const [key, updatedDoc] of updatedDocs) {\n results.push(await fromDoc({key, updatedDoc}));\n }\n\n return results;\n};\n/* eslint-enable */\n\nexport const deleteDoc = async <D>({\n collection,\n doc,\n satellite\n}: {\n collection: string;\n doc: Doc<D>;\n satellite: Satellite;\n}): Promise<void> => {\n const {del_doc} = await getSatelliteActor(satellite);\n\n const {key} = doc;\n\n return del_doc(collection, key, toDelDoc(doc));\n};\n\nexport const deleteDocs = async ({\n collection,\n satellite\n}: {\n collection: string;\n satellite: Satellite;\n}): Promise<void> => {\n const {del_docs} = await getSatelliteActor(satellite);\n\n return del_docs(collection);\n};\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const deleteManyDocs = async ({\n docs,\n satellite\n}: {\n docs: {collection: string; doc: Doc<any>}[];\n satellite: Satellite;\n}): Promise<void> => {\n const {del_many_docs} = await getSatelliteActor(satellite);\n\n const payload: [string, string, DelDoc][] = docs.map(({collection, doc}) => [\n collection,\n doc.key,\n toDelDoc(doc)\n ]);\n\n await del_many_docs(payload);\n};\n/* eslint-enable */\n\nexport const listDocs = async <D>({\n collection,\n filter,\n satellite\n}: {\n collection: string;\n filter: ListParams;\n satellite: Satellite;\n}): Promise<ListResults<Doc<D>>> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n\n const {items, items_page, items_length, matches_length, matches_pages}: ListDocsApi =\n await actor.list_docs(collection, toListParams(filter));\n\n const docs: Doc<D>[] = [];\n\n for (const [key, item] of items) {\n const {data: dataArray, owner, description, ...rest} = item;\n\n docs.push({\n key,\n description: fromNullable(description),\n owner: owner.toText(),\n data: await mapData<D>({data: dataArray}),\n ...rest\n });\n }\n\n return {\n items: docs,\n items_length,\n items_page: fromNullable(items_page),\n matches_length,\n matches_pages: fromNullable(matches_pages)\n };\n};\n", "import type {Identity} from '@dfinity/agent';\nimport {AnonymousIdentity} from '@dfinity/agent';\nimport {getIdentity as getAuthIdentity} from './auth.services';\n\nexport const getIdentity = (identity?: Identity): Identity => {\n if (identity !== undefined) {\n return identity;\n }\n\n const authIdentity: Identity | undefined = getAuthIdentity();\n\n return authIdentity ?? new AnonymousIdentity();\n};\n", "import {\n deleteDoc as deleteDocApi,\n deleteDocs as deleteDocsApi,\n deleteManyDocs as deleteManyDocsApi,\n getDoc as getDocApi,\n listDocs as listDocsApi,\n setDoc as setDocApi,\n setManyDocs as setManyDocsApi\n} from '../api/doc.api';\nimport type {Doc} from '../types/doc.types';\nimport type {ListParams, ListResults} from '../types/list.types';\nimport type {SatelliteOptions} from '../types/satellite.types';\nimport {getIdentity} from './identity.services';\n\nexport const getDoc = async <D>({\n satellite,\n ...rest\n}: {\n collection: string;\n satellite?: SatelliteOptions;\n} & Pick<Doc<D>, 'key'>): Promise<Doc<D> | undefined> => {\n const identity = getIdentity(satellite?.identity);\n\n return getDocApi({...rest, satellite: {...satellite, identity}});\n};\n\nexport const setDoc = async <D>({\n satellite,\n ...rest\n}: {\n collection: string;\n doc: Doc<D>;\n satellite?: SatelliteOptions;\n}): Promise<Doc<D>> => {\n const identity = getIdentity(satellite?.identity);\n\n return setDocApi({...rest, satellite: {...satellite, identity}});\n};\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const setManyDocs = async ({\n satellite,\n ...rest\n}: {\n docs: {collection: string; doc: Doc<any>}[];\n satellite?: SatelliteOptions;\n}): Promise<Doc<any>[]> => {\n const identity = getIdentity(satellite?.identity);\n\n return setManyDocsApi({...rest, satellite: {...satellite, identity}});\n};\n/* eslint-enable */\n\nexport const deleteDoc = async <D>({\n satellite,\n ...rest\n}: {\n collection: string;\n doc: Doc<D>;\n satellite?: SatelliteOptions;\n}): Promise<void> => {\n const identity = getIdentity(satellite?.identity);\n\n return deleteDocApi({...rest, satellite: {...satellite, identity}});\n};\n\nexport const deleteDocs = async ({\n collection,\n satellite\n}: {\n collection: string;\n satellite?: SatelliteOptions;\n}): Promise<void> =>\n deleteDocsApi({\n collection,\n satellite: {...satellite, identity: getIdentity(satellite?.identity)}\n });\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nexport const deleteManyDocs = async ({\n satellite,\n ...rest\n}: {\n docs: {collection: string; doc: Doc<any>}[];\n satellite?: SatelliteOptions;\n}): Promise<void> => {\n const identity = getIdentity(satellite?.identity);\n\n return deleteManyDocsApi({...rest, satellite: {...satellite, identity}});\n};\n/* eslint-enable */\n\nexport const listDocs = async <D>({\n satellite,\n filter,\n ...rest\n}: {\n collection: string;\n filter?: ListParams;\n satellite?: SatelliteOptions;\n}): Promise<ListResults<Doc<D>>> => {\n const identity = getIdentity(satellite?.identity);\n\n return listDocsApi<D>({...rest, filter: filter ?? {}, satellite: {...satellite, identity}});\n};\n", "import type {Identity} from '@dfinity/agent';\nimport {isNullish} from '@junobuild/utils';\nimport type {Provider, User, UserData} from '../types/auth.types';\nimport {getIdentity} from './auth.services';\nimport {getDoc, setDoc} from './doc.services';\n\nexport const initUser = async (provider?: Provider): Promise<User> => {\n const identity: Identity | undefined = getIdentity();\n\n if (isNullish(identity)) {\n throw new Error('No identity to initialize the user. Have you initialized Juno?');\n }\n\n const userId = identity.getPrincipal().toText();\n\n const user: User | undefined = await getDoc<UserData>({\n collection: `#user`,\n key: userId\n });\n\n if (isNullish(user)) {\n const newUser: User = await createUser({userId, provider});\n return newUser;\n }\n\n return user;\n};\n\nconst createUser = async ({\n userId,\n ...rest\n}: {\n userId: string;\n} & UserData): Promise<User> =>\n setDoc<UserData>({\n collection: `#user`,\n doc: {\n key: userId,\n data: rest\n }\n });\n", "import type {Identity} from '@dfinity/agent';\nimport type {AuthClient} from '@dfinity/auth-client';\nimport {DELEGATION_IDENTITY_EXPIRATION} from '../constants/auth.constants';\nimport {InternetIdentityProvider} from '../providers/auth.providers';\nimport {AuthStore} from '../stores/auth.store';\nimport type {Provider, SignInOptions} from '../types/auth.types';\nimport {createAuthClient} from '../utils/auth.utils';\nimport {initUser} from './user.services';\n\nlet authClient: AuthClient | undefined;\n\nexport const initAuth = async (provider?: Provider) => {\n authClient = authClient ?? (await createAuthClient());\n\n const isAuthenticated: boolean = (await authClient?.isAuthenticated()) ?? false;\n\n if (!isAuthenticated) {\n return;\n }\n\n const user = await initUser(provider);\n AuthStore.getInstance().set(user);\n};\n\nexport const signIn = async (options?: SignInOptions) =>\n /* eslint-disable no-async-promise-executor */\n new Promise<void>(async (resolve, reject) => {\n authClient = authClient ?? (await createAuthClient());\n\n const provider = options?.provider ?? new InternetIdentityProvider({});\n\n await authClient.login({\n onSuccess: async () => {\n await initAuth(provider.id);\n resolve();\n },\n onError: (error?: string) => reject(error),\n maxTimeToLive: options?.maxTimeToLive ?? DELEGATION_IDENTITY_EXPIRATION,\n ...(options?.derivationOrigin !== undefined && {derivationOrigin: options.derivationOrigin}),\n ...provider.signInOptions({\n windowed: options?.windowed\n })\n });\n });\n\nexport const signOut = async (): Promise<void> => {\n await authClient?.logout();\n\n // Reset local object otherwise next sign in (sign in - sign out - sign in) might not work out - i.e. agent-js might not recreate the delegation or identity if not resetted\n authClient = undefined;\n\n AuthStore.getInstance().reset();\n};\n\nexport const getIdentity = (): Identity | undefined => {\n return authClient?.getIdentity();\n};\n\n/**\n * Return what can be the identity of a sign-in user or an anonymous identity.\n * Useful to load an identity in web workers.\n */\nexport const unsafeIdentity = async (): Promise<Identity> =>\n (authClient ?? (await createAuthClient())).getIdentity();\n", "import {isNullish} from '@junobuild/utils';\nimport {AuthStore} from '../stores/auth.store';\nimport type {User} from '../types/auth.types';\nimport type {EnvironmentWorker} from '../types/env.types';\nimport type {PostMessage} from '../types/post-message';\nimport type {Unsubscribe} from '../types/subscription.types';\nimport {emit} from '../utils/events.utils';\nimport {signOut} from './auth.services';\n\nexport const initAuthTimeoutWorker = (auth: EnvironmentWorker): Unsubscribe => {\n const workerUrl = auth === true ? './workers/auth.worker.js' : auth;\n const worker = new Worker(workerUrl);\n\n const timeoutSignOut = async () => {\n emit({message: 'junoSignOutAuthTimer'});\n await signOut();\n };\n\n worker.onmessage = async ({data}: MessageEvent<PostMessage>) => {\n const {msg} = data;\n\n switch (msg) {\n case 'junoSignOutAuthTimer':\n await timeoutSignOut();\n return;\n }\n };\n\n return AuthStore.getInstance().subscribe((user: User | null) => {\n if (isNullish(user)) {\n worker.postMessage({msg: 'junoStopAuthTimer'});\n return;\n }\n\n worker.postMessage({msg: 'junoStartAuthTimer'});\n });\n};\n", "import {fromNullable, isBrowser, toNullable} from '@junobuild/utils';\nimport type {\n AssetNoContent,\n ListResults as ListAssetsApi,\n _SERVICE as SatelliteActor\n} from '../../declarations/satellite/satellite.did';\nimport type {ListParams, ListResults} from '../types/list.types';\nimport type {Satellite} from '../types/satellite.types';\nimport type {AssetKey, ENCODING_TYPE, Storage} from '../types/storage.types';\nimport {toListParams} from '../utils/list.utils';\nimport {getSatelliteActor} from './actor.api';\n\nexport const uploadAsset = async ({\n data,\n filename,\n collection,\n headers,\n token,\n fullPath,\n encoding,\n description,\n satellite\n}: Required<Omit<Storage, 'token' | 'encoding' | 'description'>> &\n Pick<Storage, 'token' | 'encoding' | 'description'> & {satellite: Satellite}): Promise<void> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n\n const {batch_id: batchId} = await actor.init_asset_upload({\n collection,\n full_path: fullPath,\n name: filename,\n token: toNullable<string>(token),\n encoding_type: toNullable<ENCODING_TYPE>(encoding),\n description: toNullable(description)\n });\n\n // https://forum.dfinity.org/t/optimal-upload-chunk-size/20444/23?u=peterparker\n const chunkSize = 1900000;\n\n const uploadChunks: UploadChunkParams[] = [];\n\n // Prevent transforming chunk to arrayBuffer error: The requested file could not be read, typically due to permission problems that have occurred after a reference to a file was acquired.\n const clone: Blob = isBrowser() ? new Blob([await data.arrayBuffer()]) : data;\n\n // Split data into chunks\n let orderId = 0n;\n for (let start = 0; start < clone.size; start += chunkSize) {\n const chunk: Blob = clone.slice(start, start + chunkSize);\n\n uploadChunks.push({\n batchId,\n chunk,\n actor,\n orderId\n });\n\n orderId++;\n }\n\n // Upload chunks to the IC in batch - i.e. 12 chunks uploaded at a time.\n let chunkIds: UploadChunkResult[] = [];\n for await (const results of batchUploadChunks({uploadChunks})) {\n chunkIds = [...chunkIds, ...results];\n }\n\n const contentType: [[string, string]] | undefined =\n headers.find(([type, _]) => type.toLowerCase() === 'content-type') === undefined &&\n data.type !== undefined &&\n data.type !== ''\n ? [['Content-Type', data.type]]\n : undefined;\n\n await actor.commit_asset_upload({\n batch_id: batchId,\n chunk_ids: chunkIds.map(({chunk_id}: UploadChunkResult) => chunk_id),\n headers: [...headers, ...(contentType ? contentType : [])]\n });\n};\n\nasync function* batchUploadChunks({\n uploadChunks,\n limit = 12\n}: {\n uploadChunks: UploadChunkParams[];\n limit?: number;\n}): AsyncGenerator<UploadChunkResult[], void> {\n for (let i = 0; i < uploadChunks.length; i = i + limit) {\n const batch = uploadChunks.slice(i, i + limit);\n const result = await Promise.all(batch.map((params) => uploadChunk(params)));\n yield result;\n }\n}\n\ntype UploadChunkResult = {chunk_id: bigint};\n\ntype UploadChunkParams = {\n batchId: bigint;\n chunk: Blob;\n actor: SatelliteActor;\n orderId: bigint;\n};\n\nconst uploadChunk = async ({\n batchId,\n chunk,\n actor,\n orderId\n}: UploadChunkParams): Promise<UploadChunkResult> =>\n actor.upload_asset_chunk({\n batch_id: batchId,\n content: new Uint8Array(await chunk.arrayBuffer()),\n order_id: toNullable(orderId)\n });\n\nexport const listAssets = async ({\n collection,\n satellite,\n filter\n}: {\n collection: string;\n satellite: Satellite;\n filter: ListParams;\n}): Promise<ListResults<AssetNoContent>> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n\n const {\n items: assets,\n items_length,\n items_page,\n matches_length,\n matches_pages\n }: ListAssetsApi = await actor.list_assets(collection, toListParams(filter));\n\n return {\n items: assets.map(([_, asset]) => asset),\n items_length,\n items_page: fromNullable(items_page),\n matches_length,\n matches_pages: fromNullable(matches_pages)\n };\n};\n\nexport const deleteAsset = async ({\n collection,\n fullPath,\n satellite\n}: {\n collection: string;\n satellite: Satellite;\n} & Pick<AssetKey, 'fullPath'>): Promise<void> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n\n return actor.del_asset(collection, fullPath);\n};\n\nexport const deleteAssets = async ({\n collection,\n satellite\n}: {\n collection: string;\n satellite: Satellite;\n}): Promise<void> => {\n const actor: SatelliteActor = await getSatelliteActor(satellite);\n\n return actor.del_assets(collection);\n};\n\nexport const deleteManyAssets = async ({\n assets,\n satellite\n}: {\n assets: ({collection: string} & Pick<AssetKey, 'fullPath'>)[];\n satellite: Satellite;\n}): Promise<void> => {\n const {del_many_assets} = await getSatelliteActor(satellite);\n\n const payload: [string, string][] = assets.map(({collection, fullPath}) => [\n collection,\n fullPath\n ]);\n\n await del_many_assets(payload);\n};\n", "export const sha256ToBase64String = (sha256: Iterable<number>): string =>\n btoa([...sha256].map((c) => String.fromCharCode(c)).join(''));\n", "import {EnvStore} from '../stores/env.store';\n\nexport const satelliteUrl = (): string => {\n const satelliteId: string = EnvStore.getInstance().get()?.satelliteId ?? 'unknown';\n\n if (EnvStore.getInstance().localIdentity()) {\n return `http://${satelliteId}.localhost:8000`;\n }\n\n return `https://${satelliteId}.icp0.io`;\n};\n", "export const encodeFilename = (filename: string): string =>\n encodeURI(filename.toLowerCase().replace(/\\s/g, '-'));\n", "import {fromNullable} from '@junobuild/utils';\nimport type {AssetNoContent} from '../../declarations/satellite/satellite.did';\nimport {\n deleteAsset as deleteAssetApi,\n deleteAssets as deleteAssetsApi,\n deleteManyAssets as deleteManyAssetsApi,\n listAssets as listAssetsApi,\n uploadAsset as uploadAssetApi\n} from '../api/storage.api';\nimport type {ListParams, ListResults} from '../types/list.types';\nimport type {SatelliteOptions} from '../types/satellite.types';\nimport type {Asset, AssetEncoding, AssetKey, Assets, Storage} from '../types/storage.types';\nimport {sha256ToBase64String} from '../utils/crypto.utils';\nimport {satelliteUrl} from '../utils/env.utils';\nimport {encodeFilename} from '../utils/storage.utils';\nimport {getIdentity} from './identity.services';\n\nexport const uploadBlob = async (\n params: Storage & {satellite?: SatelliteOptions}\n): Promise<AssetKey> => uploadAssetIC(params);\n\nexport const uploadFile = async (\n params: Partial<Pick<Storage, 'filename'>> &\n Omit<Storage, 'filename' | 'data'> & {data: File} & {satellite?: SatelliteOptions}\n): Promise<AssetKey> =>\n uploadAssetIC({\n filename: params.data.name,\n ...params\n });\n\nconst uploadAssetIC = async ({\n filename: storageFilename,\n data,\n collection,\n headers = [],\n fullPath: storagePath,\n token,\n satellite,\n encoding,\n description\n}: Storage & {satellite?: SatelliteOptions}): Promise<AssetKey> => {\n const identity = getIdentity(satellite?.identity);\n\n const filename: string = encodeFilename(storageFilename);\n const fullPath: string = storagePath ?? `/${collection}/${filename}`;\n\n await uploadAssetApi({\n data,\n filename,\n collection,\n token,\n headers,\n fullPath,\n encoding,\n satellite: {...satellite, identity},\n description\n });\n\n return {\n downloadUrl: `${satelliteUrl()}${fullPath}${token !== undefined ? `?token=${token}` : ''}`,\n fullPath,\n name: filename\n };\n};\n\nexport const listAssets = async ({\n collection,\n satellite,\n filter\n}: {\n collection: string;\n satellite?: SatelliteOptions;\n filter?: ListParams;\n}): Promise<Assets> => {\n const {items, ...rest}: ListResults<AssetNoContent> = await listAssetsApi({\n collection,\n satellite: {...satellite, identity: getIdentity(satellite?.identity)},\n filter: filter ?? {}\n });\n\n const host: string = satelliteUrl();\n\n return {\n assets: items.map(\n ({\n key: {full_path, token: t, name, owner, description},\n headers,\n encodings,\n created_at,\n updated_at\n }: AssetNoContent) => {\n const token = fromNullable(t);\n\n return {\n fullPath: full_path,\n description: fromNullable(description),\n name,\n downloadUrl: `${host}${full_path}${token !== undefined ? `?token=${token}` : ''}`,\n token,\n headers,\n encodings: encodings.reduce(\n (acc, [type, {modified, sha256, total_length}]) => ({\n ...acc,\n [type]: {\n modified,\n sha256: sha256ToBase64String(sha256),\n total_length\n }\n }),\n {} as Record<string, AssetEncoding>\n ),\n owner: owner.toText(),\n created_at,\n updated_at\n } as Asset;\n }\n ),\n ...rest\n };\n};\n\nexport const deleteAsset = async ({\n collection,\n fullPath,\n satellite\n}: {\n collection: string;\n satellite?: SatelliteOptions;\n} & Pick<AssetKey, 'fullPath'>): Promise<void> =>\n deleteAssetApi({\n collection,\n fullPath,\n satellite: {...satellite, identity: getIdentity(satellite?.identity)}\n });\n\nexport const deleteAssets = async ({\n collection,\n satellite\n}: {\n collection: string;\n satellite?: SatelliteOptions;\n}): Promise<void> =>\n deleteAssetsApi({\n collection,\n satellite: {...satellite, identity: getIdentity(satellite?.identity)}\n });\n\nexport const deleteManyAssets = async ({\n assets,\n satellite\n}: {\n assets: ({collection: string} & Pick<AssetKey, 'fullPath'>)[];\n satellite?: SatelliteOptions;\n} & Pick<AssetKey, 'fullPath'>): Promise<void> =>\n deleteManyAssetsApi({\n assets,\n satellite: {...satellite, identity: getIdentity(satellite?.identity)}\n });\n", "import {initAuthTimeoutWorker} from './services/auth-timout.services';\nimport {initAuth} from './services/auth.services';\nimport {AuthStore} from './stores/auth.store';\nimport {EnvStore} from './stores/env.store';\nimport type {User} from './types/auth.types';\nimport type {Environment} from './types/env.types';\nimport type {Unsubscribe} from './types/subscription.types';\n\nexport * from './providers/auth.providers';\nexport {signIn, signOut, unsafeIdentity} from './services/auth.services';\nexport * from './services/doc.services';\nexport * from './services/storage.services';\nexport * from './types/auth.types';\nexport * from './types/doc.types';\nexport * from './types/env.types';\nexport {ListOrder, ListPaginate, ListParams, ListResults} from './types/list.types';\nexport * from './types/satellite.types';\nexport * from './types/storage.types';\nexport * from './types/subscription.types';\n\nexport const initJuno = async (env: Environment): Promise<Unsubscribe[]> => {\n EnvStore.getInstance().set(env);\n\n await initAuth();\n\n const authSubscribe =\n env.workers?.auth !== undefined ? initAuthTimeoutWorker(env.workers.auth) : undefined;\n\n return [...(authSubscribe ? [authSubscribe] : [])];\n};\n\nexport const authSubscribe = (callback: (authUser: User | null) => void): Unsubscribe =>\n AuthStore.getInstance().subscribe(callback);\n"],
5
+ "mappings": "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",
6
+ "names": ["isNullish", "argument", "nonNullish", "toNullable", "value", "nonNullish", "fromNullable", "toArray", "data", "blob", "fromArray", "isBrowser", "Store", "data", "callback", "callbackId", "id", "AuthStore", "_AuthStore", "Store", "authUser", "callback", "unsubscribe", "emit", "message", "detail", "$event", "DELEGATION_IDENTITY_EXPIRATION", "II_POPUP", "NFID_POPUP", "INTERNET_COMPUTER_ORG", "EnvStore", "_EnvStore", "Store", "env", "callback", "unsubscribe", "popupCenter", "width", "height", "y", "t", "innerWidth", "innerHeight", "x", "InternetIdentityProvider", "#domain", "domain", "windowed", "identityProvider", "EnvStore", "INTERNET_COMPUTER_ORG", "popupCenter", "II_POPUP", "NFIDProvider", "#appName", "#logoUrl", "appName", "logoUrl", "NFID_POPUP", "AuthClient", "createAuthClient", "mapData", "data", "m", "err", "toSetDoc", "doc", "data", "updated_at", "description", "T", "x", "toDelDoc", "fromDoc", "updatedDoc", "key", "owner", "updatedAt", "created_at", "updatedDescription", "d", "m", "Principal", "toListParams", "matcher", "paginate", "order", "owner", "t", "T", "Principal", "idlFactory", "IDL", "CommitBatch", "DeleteControllersArgs", "ControllerScope", "Controller", "DelDoc", "RulesType", "DepositCyclesArgs", "StorageConfigIFrame", "StorageConfigRedirect", "StorageConfig", "Config", "Doc", "HttpRequest", "Memory", "StreamingCallbackToken", "StreamingStrategy", "HttpResponse", "StreamingCallbackHttpResponse", "InitAssetKey", "InitUploadResult", "ListOrderField", "ListOrder", "ListMatcher", "ListPaginate", "ListParams", "AssetKey", "AssetEncodingNoContent", "AssetNoContent", "ListResults", "CustomDomain", "ListResults_1", "Permission", "Rule", "SetController", "SetControllersArgs", "SetDoc", "SetRule", "UploadChunk", "UploadChunkResult", "Actor", "HttpAgent", "createActor", "canisterId", "idlFactory", "identity", "fetch", "env", "localActor", "EnvStore", "host", "agent", "HttpAgent", "Actor", "getSatelliteActor", "satelliteId", "rest", "canisterId", "EnvStore", "createActor", "idlFactory", "getDoc", "collection", "key", "satellite", "actor", "getSatelliteActor", "entry", "d", "t", "dataArray", "owner", "description", "rest", "data", "mapData", "setDoc", "doc", "set_doc", "toSetDoc", "updatedDoc", "fromDoc", "setManyDocs", "docs", "set_many_docs", "payload", "updatedDocs", "results", "deleteDoc", "del_doc", "toDelDoc", "deleteDocs", "del_docs", "deleteManyDocs", "del_many_docs", "listDocs", "filter", "items", "items_page", "items_length", "matches_length", "matches_pages", "toListParams", "item", "AnonymousIdentity", "getIdentity", "identity", "AnonymousIdentity", "getDoc", "satellite", "rest", "identity", "getIdentity", "setDoc", "setManyDocs", "deleteDoc", "deleteDocs", "collection", "deleteManyDocs", "listDocs", "filter", "initUser", "provider", "identity", "getIdentity", "t", "userId", "user", "getDoc", "createUser", "rest", "setDoc", "authClient", "initAuth", "provider", "createAuthClient", "user", "initUser", "AuthStore", "signIn", "options", "resolve", "reject", "InternetIdentityProvider", "error", "DELEGATION_IDENTITY_EXPIRATION", "signOut", "getIdentity", "unsafeIdentity", "initAuthTimeoutWorker", "auth", "workerUrl", "worker", "timeoutSignOut", "emit", "signOut", "data", "msg", "AuthStore", "user", "t", "uploadAsset", "data", "filename", "collection", "headers", "token", "fullPath", "encoding", "description", "satellite", "actor", "getSatelliteActor", "batchId", "T", "chunkSize", "uploadChunks", "clone", "y", "orderId", "start", "chunk", "chunkIds", "results", "batchUploadChunks", "contentType", "type", "_", "chunk_id", "limit", "i", "batch", "params", "uploadChunk", "listAssets", "filter", "assets", "items_length", "items_page", "matches_length", "matches_pages", "toListParams", "asset", "d", "deleteAsset", "deleteAssets", "deleteManyAssets", "del_many_assets", "payload", "sha256ToBase64String", "sha256", "c", "satelliteUrl", "satelliteId", "EnvStore", "encodeFilename", "filename", "uploadBlob", "params", "uploadAssetIC", "uploadFile", "storageFilename", "data", "collection", "headers", "storagePath", "token", "satellite", "encoding", "description", "identity", "getIdentity", "filename", "encodeFilename", "fullPath", "uploadAsset", "satelliteUrl", "listAssets", "filter", "items", "rest", "host", "full_path", "t", "name", "owner", "encodings", "created_at", "updated_at", "d", "acc", "type", "modified", "sha256", "total_length", "sha256ToBase64String", "deleteAsset", "deleteAssets", "deleteManyAssets", "assets", "initJuno", "env", "EnvStore", "initAuth", "authSubscribe", "initAuthTimeoutWorker", "callback", "AuthStore"]
7
7
  }