@ztimson/momentum 0.52.0 → 0.52.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/actions.d.ts CHANGED
@@ -1,24 +1,39 @@
1
1
  import { Api } from './api';
2
2
  import { Cache, HttpRequestOptions, PathEventEmitter } from '@ztimson/utils';
3
3
  import { Meta } from './core';
4
+ /** Action model */
4
5
  export type Action = Meta & {
6
+ /** Action name */
5
7
  name: string;
8
+ /** Trigger with CRON, CRUD or Event */
6
9
  trigger: {
7
10
  type: ActionType;
8
11
  value: string;
9
12
  };
13
+ /** Run as system or with triggering user permissions */
10
14
  system?: boolean;
15
+ /** Action code */
11
16
  fn: string;
17
+ /** User nodes */
12
18
  notes?: string;
19
+ /** Last execution timestamp */
13
20
  lastRun?: Date;
21
+ /** Last execution duration */
14
22
  lastRunLength?: number;
23
+ /** Next scheduled run time (CRON only) */
15
24
  nextRun?: Date;
16
- response?: ActionResponse;
25
+ /** Last execution results */
26
+ response?: ActionResult;
17
27
  };
18
- export type ActionResponse = {
28
+ /** Action execution result */
29
+ export type ActionResult = {
30
+ /** ID of associated action */
19
31
  action: string;
32
+ /** Console output */
20
33
  stdout: any[];
34
+ /** Console errors */
21
35
  stderr: any[];
36
+ /** Action return value */
22
37
  return?: any;
23
38
  };
24
39
  export declare enum ActionType {
@@ -30,15 +45,42 @@ export declare enum ActionType {
30
45
  'POST' = 5,
31
46
  'PUT' = 6
32
47
  }
48
+ /** Execute custom Javascript on trigger event */
33
49
  export declare class Actions extends PathEventEmitter {
34
50
  private readonly api;
35
51
  cache: Cache<string, Action>;
36
52
  constructor(api: Api | string);
53
+ /**
54
+ * All saved actions
55
+ * @param {boolean} reload Will use cached response if false
56
+ * @return {Promise<Action[]>} List of saved actions
57
+ */
37
58
  all(reload?: boolean): Promise<Action[]>;
59
+ /**
60
+ * Delete an existing action
61
+ * @param {string} id Action ID
62
+ * @return {Promise<void>} Delete complete
63
+ */
38
64
  delete(id: string): Promise<void>;
65
+ /**
66
+ * Fetch action info
67
+ * @param {string} id Action ID
68
+ * @param {boolean} reload Will use cached response if false
69
+ * @return {Promise<Action | null>} Requested action
70
+ */
39
71
  read(id: string, reload?: boolean): Promise<Action | null>;
40
- run<T>(path: string, opts?: HttpRequestOptions): import('@ztimson/utils').PromiseProgress<T>;
41
- runById(action: string | Action, opts?: HttpRequestOptions): import('@ztimson/utils').PromiseProgress<ActionResponse>;
72
+ /**
73
+ * Manually trigger an actions execution
74
+ * @param {string} id Action ID
75
+ * @param {HttpRequestOptions} opts Additional arguments
76
+ * @return {Promise<ActionResult>} Result of action
77
+ */
78
+ runById(id: string, opts?: HttpRequestOptions): Promise<ActionResult>;
79
+ /**
80
+ * Update an action
81
+ * @param {Action} action The new action
82
+ * @return {Promise<Action>} Saved action
83
+ */
42
84
  update(action: Action): Promise<Action>;
43
85
  }
44
86
  //# sourceMappingURL=actions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAM,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QAAC,IAAI,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC;IAC3C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,QAAQ,CAAC,EAAE,cAAc,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,MAAM,CAAC,EAAE,GAAG,CAAC;CACb,CAAA;AAED,oBAAY,UAAU;IACrB,MAAM,IAAA;IACN,OAAO,IAAA;IACP,QAAQ,IAAA;IACR,KAAK,IAAA;IACL,OAAO,IAAA;IACP,MAAM,IAAA;IACN,KAAK,IAAA;CACL;AAED,qBAAa,OAAQ,SAAQ,gBAAgB;IAC5C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAO;IAE3B,KAAK,wBAAoC;gBAE7B,GAAG,EAAE,GAAG,GAAG,MAAM;IAKvB,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAS9C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,UAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAWtD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;IAKlD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,GAAE,kBAAuB;IAM9D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAWvC"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAM,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAC,IAAI,EAAC,MAAM,QAAQ,CAAC;AAE5B,mBAAmB;AACnB,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG;IAC3B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,OAAO,EAAE;QAAC,IAAI,EAAE,UAAU,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC;IAC3C,wDAAwD;IACxD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kBAAkB;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,YAAY,CAAA;CACvB,CAAA;AAED,8BAA8B;AAC9B,MAAM,MAAM,YAAY,GAAG;IAC1B,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,qBAAqB;IACrB,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,0BAA0B;IAC1B,MAAM,CAAC,EAAE,GAAG,CAAC;CACb,CAAA;AAED,oBAAY,UAAU;IACrB,MAAM,IAAA;IACN,OAAO,IAAA;IACP,QAAQ,IAAA;IACR,KAAK,IAAA;IACL,OAAO,IAAA;IACP,MAAM,IAAA;IACN,KAAK,IAAA;CACL;AAED,iDAAiD;AACjD,qBAAa,OAAQ,SAAQ,gBAAgB;IAC5C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAO;IAE3B,KAAK,wBAAoC;gBAE7B,GAAG,EAAE,GAAG,GAAG,MAAM;IAK7B;;;;OAIG;IACG,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAS9C;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAW1D;;;;;OAKG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC;IAIzE;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAWvC"}
package/dist/ai.d.ts CHANGED
@@ -1,10 +1,28 @@
1
1
  import { PathEventEmitter } from '@ztimson/utils';
2
2
  import { Api } from './api';
3
+ /** AI integrations */
3
4
  export declare class Ai extends PathEventEmitter {
4
5
  private readonly api;
5
6
  constructor(api: Api | string);
6
- ask(question: string, context?: any): import('@ztimson/utils').PromiseProgress<any>;
7
+ /**
8
+ * Ask the AI assistant a question
9
+ * @param {string} question Users question
10
+ * @param {any} context Additional data to aid response
11
+ * @return {Promise<string>} AI's response
12
+ */
13
+ ask(question: string, context?: any): Promise<string>;
14
+ /**
15
+ * Clear AI assistant memory & context
16
+ * @return {Promise<void>} Resolves once complete
17
+ */
7
18
  clear(): import('@ztimson/utils').PromiseProgress<any>;
8
- history(): import('@ztimson/utils').PromiseProgress<any>;
19
+ /**
20
+ * Current chat history
21
+ * @return {Promise<{role: string, content: string}[]>}
22
+ */
23
+ history(): Promise<{
24
+ role: string;
25
+ content: string;
26
+ }[]>;
9
27
  }
10
28
  //# sourceMappingURL=ai.d.ts.map
package/dist/ai.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAM,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAE1B,qBAAa,EAAG,SAAQ,gBAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAO;gBAEf,GAAG,EAAE,GAAG,GAAG,MAAM;IAK7B,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG;IAWnC,KAAK;IAKL,OAAO;CAMP"}
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../src/ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAM,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAE1B,sBAAsB;AACtB,qBAAa,EAAG,SAAQ,gBAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAO;gBAEf,GAAG,EAAE,GAAG,GAAG,MAAM;IAK7B;;;;;OAKG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAWrD;;;OAGG;IACH,KAAK;IAKL;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;CAMrD"}
@@ -1,34 +1,64 @@
1
1
  import { PathEventEmitter } from '@ztimson/utils';
2
2
  import { Api } from './api';
3
3
  export type IpTrace = {
4
- "query": string;
5
- "status": string;
6
- "continent": string;
7
- "continentCode": string;
8
- "country": string;
9
- "countryCode": string;
10
- "region": string;
11
- "regionName": string;
12
- "city": string;
13
- "district": string;
14
- "zip": string;
15
- "lat": number;
16
- "lon": number;
17
- "timezone": string;
18
- "offset": number;
19
- "currency": string;
20
- "isp": string;
21
- "org": string;
22
- "as": string;
23
- "asname": string;
24
- "mobile": boolean;
25
- "proxy": boolean;
26
- "hosting": boolean;
4
+ /** Ip trace target */
5
+ query: string;
6
+ /** Trace result */
7
+ status: string;
8
+ /** Geolocated continent */
9
+ continent: string;
10
+ /** Geolocated continent shortcode */
11
+ continentCode: string;
12
+ /** Geolocated country */
13
+ country: string;
14
+ /** Geolocated country shortcode */
15
+ countryCode: string;
16
+ /** Geolocated country region shortcode */
17
+ region: string;
18
+ /** Geolocated country region */
19
+ regionName: string;
20
+ /** Geolocated city */
21
+ city: string;
22
+ /** Geolocated city district/suburb */
23
+ district: string;
24
+ /** Geolocated postal code/zip */
25
+ zip: string;
26
+ /** Geolocated latitude */
27
+ lat: number;
28
+ /** Geolocate longitude */
29
+ lon: number;
30
+ /** Geolocated timezone */
31
+ timezone: string;
32
+ /** Geolocated timezone offset */
33
+ offset: number;
34
+ /** Geolocated currency */
35
+ currency: string;
36
+ /** Address provider */
37
+ isp: string;
38
+ /** Registered organization */
39
+ org: string;
40
+ /** AS number and organization */
41
+ as: string;
42
+ /** AS organization */
43
+ asname: string;
44
+ /** Cellular */
45
+ mobile: boolean;
46
+ /** Known proxy, VPN or Tor exit node */
47
+ proxy: boolean;
48
+ /** Known Host/Datacenter */
49
+ hosting: boolean;
50
+ /** Failed trace reason */
27
51
  message?: string;
28
52
  };
53
+ /** Audience metrics and metadata */
29
54
  export declare class Analytics extends PathEventEmitter {
30
55
  private readonly api;
31
56
  constructor(api: Api | string);
32
- ipTrace(ip: string): import('@ztimson/utils').PromiseProgress<any>;
57
+ /**
58
+ * Perform IP trace
59
+ * @param {string} ip IP address to trace
60
+ * @return {Promise<IpTrace>} Trace results
61
+ */
62
+ ipTrace(ip: string): Promise<IpTrace>;
33
63
  }
34
64
  //# sourceMappingURL=analytics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAM,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,OAAO,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,qBAAa,SAAU,SAAQ,gBAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAO;gBAEf,GAAG,EAAE,GAAG,GAAG,MAAM;IAK7B,OAAO,CAAC,EAAE,EAAE,MAAM;CAQlB"}
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAM,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,OAAO,GAAG;IACrB,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,wCAAwC;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,4BAA4B;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,oCAAoC;AACpC,qBAAa,SAAU,SAAQ,gBAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAO;gBAEf,GAAG,EAAE,GAAG,GAAG,MAAM;IAK7B;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAQrC"}
package/dist/api.d.ts CHANGED
@@ -1,20 +1,33 @@
1
1
  import { Http, HttpDefaults, HttpRequestOptions, IPathEventEmitter, PromiseProgress } from '@ztimson/utils';
2
+ /** Overall Momentum health */
2
3
  export type Health = {
4
+ /** Momentum status */
3
5
  status: 'offline' | 'ok' | 'degraded' | 'error';
4
- actions: HealthStatus;
5
- ai: HealthStatus;
6
- database: HealthStatus;
7
- email: HealthStatus;
8
- payments: HealthStatus;
9
- phone: HealthStatus;
6
+ /** Actions module */
7
+ actions: ModuleStatus;
8
+ /** AI module */
9
+ ai: ModuleStatus;
10
+ /** Database module */
11
+ database: ModuleStatus;
12
+ /** Email module */
13
+ email: ModuleStatus;
14
+ /** Payments module */
15
+ payments: ModuleStatus;
16
+ /** Phone module */
17
+ phone: ModuleStatus;
18
+ /** Version number */
10
19
  version: string;
20
+ /** Last commit */
11
21
  commit: string;
12
22
  };
13
- export type HealthStatus = 'disabled' | 'ok' | 'warn' | 'error';
23
+ /** Momentum module status */
24
+ export type ModuleStatus = 'disabled' | 'ok' | 'warn' | 'error';
25
+ /** API options */
14
26
  export type ApiOptions = {
15
27
  http?: HttpDefaults;
16
28
  persist?: boolean;
17
29
  };
30
+ /** Create API requests */
18
31
  export declare class Api extends Http implements IPathEventEmitter {
19
32
  readonly url: string;
20
33
  readonly opts: ApiOptions;
@@ -23,6 +36,7 @@ export declare class Api extends Http implements IPathEventEmitter {
23
36
  private storageKey;
24
37
  readonly host: string;
25
38
  private _token;
39
+ /** Current API token */
26
40
  get token(): string | null;
27
41
  set token(token: string | null);
28
42
  constructor(url?: string, opts?: ApiOptions);
@@ -31,7 +45,16 @@ export declare class Api extends Http implements IPathEventEmitter {
31
45
  on: (event: string | string[], listener: import('@ztimson/utils').PathListener) => import('@ztimson/utils').PathUnsubscribe;
32
46
  once: (event: string | string[], listener?: import('@ztimson/utils').PathListener) => Promise<any>;
33
47
  relayEvents: (emitter: IPathEventEmitter) => void;
34
- healthcheck(): PromiseProgress<any>;
48
+ /**
49
+ * Fetch current Momentum status
50
+ * @return {Promise<Health>}
51
+ */
52
+ healthcheck(): Promise<Health>;
53
+ /**
54
+ * Create API request
55
+ * @param {HttpRequestOptions} options Request options
56
+ * @return {Promise} Response
57
+ */
35
58
  request<T>(options: HttpRequestOptions): PromiseProgress<T>;
36
59
  }
37
60
  //# sourceMappingURL=api.d.ts.map
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,IAAI,EACJ,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EAEjB,eAAe,EACf,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,MAAM,GAAG;IACpB,MAAM,EAAE,SAAS,GAAG,IAAI,GAAG,UAAU,GAAG,OAAO,CAAC;IAChD,OAAO,EAAE,YAAY,CAAC;IACtB,EAAE,EAAE,YAAY,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CACf,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;AAEhE,MAAM,MAAM,UAAU,GAAG;IACxB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB,CAAC;AAEF,qBAAa,GAAI,SAAQ,IAAK,YAAW,iBAAiB;aAoB7B,GAAG,EAAE,MAAM;aAAoC,IAAI,EAAE,UAAU;IAnB3F,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,OAAO,CAA6C;IAC5D,OAAO,CAAC,UAAU,CAAU;IAE5B,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAC;IAEvB,OAAO,CAAC,MAAM,CAAuB;IACrC,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAAwB;IAClD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAS7B;gBAE2B,GAAG,GAAE,MAAwB,EAAkB,IAAI,GAAE,UAAe;IAWhG,IAAI,+EAAwC;IAC5C,GAAG,4DAAuC;IAC1C,EAAE,0HAAsC;IACxC,IAAI,+FAAwC;IAC5C,WAAW,uCAA+C;IAE1D,WAAW;IAOX,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,GAAG,eAAe,CAAC,CAAC,CAAC;CAgB3D"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,IAAI,EACJ,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EAEjB,eAAe,EACf,MAAM,gBAAgB,CAAC;AAExB,8BAA8B;AAC9B,MAAM,MAAM,MAAM,GAAG;IACpB,sBAAsB;IACtB,MAAM,EAAE,SAAS,GAAG,IAAI,GAAG,UAAU,GAAG,OAAO,CAAC;IAChD,qBAAqB;IACrB,OAAO,EAAE,YAAY,CAAC;IACtB,gBAAgB;IAChB,EAAE,EAAE,YAAY,CAAC;IACjB,sBAAsB;IACtB,QAAQ,EAAE,YAAY,CAAC;IACvB,mBAAmB;IACnB,KAAK,EAAE,YAAY,CAAC;IACpB,sBAAsB;IACtB,QAAQ,EAAE,YAAY,CAAC;IACvB,mBAAmB;IACnB,KAAK,EAAE,YAAY,CAAC;IACpB,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,MAAM,EAAE,MAAM,CAAC;CACf,CAAA;AAED,6BAA6B;AAC7B,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;AAEhE,kBAAkB;AAClB,MAAM,MAAM,UAAU,GAAG;IACxB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;CACjB,CAAC;AAEF,0BAA0B;AAC1B,qBAAa,GAAI,SAAQ,IAAK,YAAW,iBAAiB;aAqB7B,GAAG,EAAE,MAAM;aAAoC,IAAI,EAAE,UAAU;IApB3F,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,OAAO,CAA6C;IAC5D,OAAO,CAAC,UAAU,CAAU;IAE5B,QAAQ,CAAC,IAAI,EAAG,MAAM,CAAC;IAEvB,OAAO,CAAC,MAAM,CAAuB;IACrC,wBAAwB;IACxB,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAAwB;IAClD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAS7B;gBAE2B,GAAG,GAAE,MAAwB,EAAkB,IAAI,GAAE,UAAe;IAWhG,IAAI,+EAAwC;IAC5C,GAAG,4DAAuC;IAC1C,EAAE,0HAAsC;IACxC,IAAI,+FAAwC;IAC5C,WAAW,uCAA+C;IAE1D;;;OAGG;IACH,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAO9B;;;;OAIG;IACH,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,GAAG,eAAe,CAAC,CAAC,CAAC;CAgB3D"}
package/dist/auth.d.ts CHANGED
@@ -7,40 +7,89 @@ export type AuthOptions = {
7
7
  loginUrl?: string;
8
8
  };
9
9
  export type UserToken = Meta & {
10
+ /** User defined name */
10
11
  name: string;
12
+ /** Assigned to */
11
13
  owner: string;
14
+ /** Token value */
12
15
  token: string;
16
+ /** Expiration */
13
17
  expire: null | Date;
14
18
  };
19
+ /** Manage user tokens */
15
20
  export declare class Token extends PathEventEmitter {
16
21
  private api;
17
22
  constructor(api: Api);
23
+ /**
24
+ * Fetch all tokens for user
25
+ * @param {string} username User to search
26
+ * @return {Promise<UserToken[]>} List of tokens
27
+ */
18
28
  all(username: string): Promise<UserToken[]>;
29
+ /**
30
+ * Create a new user token
31
+ * @param {{name: string, owner: string, expire: null | Date}} token Token settings
32
+ * @return {Promise<UserToken>} Crated token
33
+ */
19
34
  create(token: {
20
35
  name: string;
21
36
  owner: string;
22
37
  expire: null | Date;
23
38
  }): Promise<UserToken>;
39
+ /**
40
+ * Delete an existing user token
41
+ * @param {string} id Token ID
42
+ * @return {Promise<void>} Resolves once complete
43
+ */
24
44
  delete(id: string): Promise<void>;
25
45
  }
46
+ /** Mange user 2FA */
26
47
  export declare class Totp {
27
48
  private api;
28
49
  constructor(api: Api);
50
+ /**
51
+ * Disable 2FA for user
52
+ * @param {string} username User to disable 2FA for
53
+ * @return {Promise<void>} Resolves once complete
54
+ */
29
55
  disable(username: string): import('@ztimson/utils').PromiseProgress<void>;
30
- enable: (username: string) => import('@ztimson/utils').PromiseProgress<void>;
31
- reset(username: string): import('@ztimson/utils').PromiseProgress<void>;
56
+ /**
57
+ * Enable 2FA for user
58
+ * @param {string} username User to reset
59
+ * @return {Promise<void>} Resolves once complete
60
+ */
61
+ enable: (username: string) => Promise<void>;
62
+ /**
63
+ * Reset users 2FA
64
+ * @param {string} username User to reset
65
+ * @return {Promise<void>} Resolves once complete
66
+ */
67
+ reset(username: string): Promise<void>;
68
+ /**
69
+ * Setup 2FA authentication method
70
+ * @param {string} username User to setup
71
+ * @param {string} method Authenticator type
72
+ * @param {string | null} totp null to being process, 2FA code to validate method
73
+ * @return {Promise<void>} Resolves once complete
74
+ */
32
75
  setup(username: string, method?: string, totp?: string): import('@ztimson/utils').PromiseProgress<void>;
33
76
  }
77
+ /** Manage User Authentication */
34
78
  export declare class Auth extends PathEventEmitter {
35
79
  private readonly opts;
36
80
  private readonly api;
81
+ /** Manage user tokens */
37
82
  token: Token;
83
+ /** Manage user 2FA */
38
84
  totp: Totp;
39
85
  private _permissions;
86
+ /** Get current user permissions */
40
87
  get permissions(): string[];
41
- set permissions(perms: string[]);
88
+ private set permissions(value);
42
89
  private _user?;
90
+ /** Get current user, undefined if not yet initialized */
43
91
  get user(): User | null | undefined;
92
+ /** Update user info without changing the session */
44
93
  set user(user: User | null | undefined);
45
94
  constructor(api: Api | string, opts?: AuthOptions);
46
95
  filter: (...events: (string | PathEvent)[]) => PathEvent[];
@@ -48,24 +97,74 @@ export declare class Auth extends PathEventEmitter {
48
97
  hasAll: (...events: (string | PathEvent)[]) => boolean;
49
98
  hasFatal: (...events: (string | PathEvent)[]) => void;
50
99
  hasAllFatal: (...events: (string | PathEvent)[]) => void;
100
+ /**
101
+ * Check if origin is recognized & whitelisted
102
+ * @param {string} host Origin to check
103
+ * @return {Promise<void>} Resolves in known, 401 code otherwise
104
+ */
51
105
  knownHost(host?: string): Promise<void>;
106
+ /**
107
+ * Login a user & return the account
108
+ * @param {string} username username
109
+ * @param {string} password user's password
110
+ * @param {{totp: string, expire: null | number | Date}} opts 2FA code and expiry options (null to never expire)
111
+ * @return {Promise<User | null>} User account on success
112
+ */
52
113
  login(username: string, password: string, opts?: {
53
114
  totp?: string;
54
115
  expire?: number | Date | null;
55
116
  }): Promise<User | null>;
117
+ /**
118
+ * Login via Momentum single sign on
119
+ * @param {string} host Host origin attempting to login
120
+ * @return {Promise<string>} Token on success
121
+ */
56
122
  loginRedirect(host?: string): Promise<string>;
123
+ /**
124
+ * Logout current user
125
+ */
57
126
  logout(): void;
58
- register(u: Partial<User> & {
127
+ /**
128
+ * Create a new user with login
129
+ * @param {Partial<User> & {password: string}} user User data with password
130
+ * @return {Promise<User>} Registered user data
131
+ */
132
+ register(user: Partial<User> & {
59
133
  username: string;
60
134
  password: string;
61
135
  }): Promise<User>;
136
+ /**
137
+ * Finish user account reset
138
+ * @param password New password
139
+ * @param token Reset token
140
+ * @return {Promise<void>} Resolves once complete
141
+ */
62
142
  reset(password: string, token?: string): Promise<void>;
143
+ /**
144
+ * Initiate user account reset
145
+ * @param email New password
146
+ * @return {Promise<void>} Resolves once complete
147
+ */
63
148
  reset(email: string): Promise<void>;
149
+ /**
150
+ * Get session information
151
+ * @param {string} token Token to fetch session info for
152
+ * @param {boolean} set Set as current active session
153
+ * @return {Promise<{token: string, user: User, permissions: string[], custom: any} | null>} Session information
154
+ */
64
155
  session(token?: string, set?: boolean): Promise<{
65
156
  token: string;
66
157
  user: User;
67
158
  permissions: string[];
159
+ custom: any;
68
160
  } | null>;
161
+ /**
162
+ * Update password for user
163
+ * @param {string} username User to reset
164
+ * @param {string} password New user password
165
+ * @param {string} oldPassword Old password for validation
166
+ * @return {Promise<void>} Resolves once complete
167
+ */
69
168
  updatePassword(username: string, password: string, oldPassword?: string): Promise<void>;
70
169
  }
71
170
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -5,19 +5,41 @@ export type Platform = 'windows' | 'android' | 'ios' | 'mac' | 'linux' | 'unknow
5
5
  export declare class Client extends PathEventEmitter {
6
6
  private api;
7
7
  private readonly settings;
8
+ /** Check if mobile device */
8
9
  get mobile(): boolean;
9
10
  private _notifications;
11
+ /** Are notifications enabled */
10
12
  get notifications(): boolean;
11
13
  private set notifications(value);
12
14
  private _platform?;
15
+ /** Get the current platform type */
13
16
  get platform(): Platform;
17
+ /** Get Push Subscription info */
14
18
  get pushSubscription(): Promise<PushSubscription | null>;
15
19
  private _pwa?;
20
+ /** Check if running as a PWA */
16
21
  get pwa(): boolean;
17
22
  constructor(api: Api, settings: Settings);
18
- inject(reload?: boolean, firstLoad?: boolean): Promise<void>;
23
+ /**
24
+ * Inject the client theme settings, meta tags & PWA prompt
25
+ * @param {boolean} reload Reload settings
26
+ * @return {Promise<void>} Resolves on completion
27
+ */
28
+ inject(reload?: boolean): Promise<void>;
29
+ /**
30
+ * Create UI prompt for user to install as PWA
31
+ * @param platform Platform prompt, leave blank to auto-detect
32
+ */
19
33
  pwaPrompt(platform?: 'android' | 'ios'): void;
20
- enableNotifications(): Promise<string | null>;
34
+ /**
35
+ * Enable device notifications
36
+ * @return {Promise<null>} Resolves on success
37
+ */
38
+ enableNotifications(): Promise<null>;
39
+ /**
40
+ * Disable device notifications
41
+ * @return {Promise<void>} Resolves on success
42
+ */
21
43
  disableNotifications(): Promise<void>;
22
44
  }
23
45
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAM,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;AAEnF,qBAAa,MAAO,SAAQ,gBAAgB;IAqC/B,OAAO,CAAC,GAAG;IAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAnCvD,IAAI,MAAM,YAAyD;IAEnE,OAAO,CAAC,cAAc,CAAS;IAC/B,IAAI,aAAa,IACkB,OAAO,CADS;IACnD,OAAO,KAAK,aAAa,QAGxB;IAED,OAAO,CAAC,SAAS,CAAC,CAAW;IAC7B,IAAI,QAAQ,IAAI,QAAQ,CAWvB;IAED,IAAI,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAGvD;IAED,OAAO,CAAC,IAAI,CAAC,CAAU;IACvB,IAAI,GAAG,IAAI,OAAO,CAIjB;gBAEmB,GAAG,EAAE,GAAG,EAAmB,QAAQ,EAAE,QAAQ;IAK3D,MAAM,CAAC,MAAM,UAAQ,EAAE,SAAS,UAAO;IAqH7C,SAAS,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,KAAK;IAoIhC,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAa7C,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;CAO3C"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAM,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;AAEnF,qBAAa,MAAO,SAAQ,gBAAgB;IA0C/B,OAAO,CAAC,GAAG;IAAO,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAxCvD,6BAA6B;IAC7B,IAAI,MAAM,YAAyD;IAEnE,OAAO,CAAC,cAAc,CAAS;IAC/B,gCAAgC;IAChC,IAAI,aAAa,IACkB,OAAO,CADS;IACnD,OAAO,KAAK,aAAa,QAGxB;IAED,OAAO,CAAC,SAAS,CAAC,CAAW;IAC7B,oCAAoC;IACpC,IAAI,QAAQ,IAAI,QAAQ,CAWvB;IAED,iCAAiC;IACjC,IAAI,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAGvD;IAED,OAAO,CAAC,IAAI,CAAC,CAAU;IACvB,gCAAgC;IAChC,IAAI,GAAG,IAAI,OAAO,CAIjB;gBAEmB,GAAG,EAAE,GAAG,EAAmB,QAAQ,EAAE,QAAQ;IAKjE;;;;OAIG;IACG,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO;IA6E7B;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,KAAK;IAqItC;;;OAGG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAa1C;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;CAO3C"}
package/dist/core.d.ts CHANGED
@@ -1,24 +1,37 @@
1
1
  import { PathEvent } from '@ztimson/utils';
2
+ /** Metadata model */
2
3
  export type Meta = {
4
+ /** Document ID */
3
5
  _id?: string | any;
6
+ /** Creator username */
4
7
  _createdBy: string;
8
+ /** Created timestamp */
5
9
  _createdDate: Date;
10
+ /** Modifier username */
6
11
  _updatedBy: string;
12
+ /** Modified timestamp */
7
13
  _updatedDate: Date;
8
14
  };
15
+ /** Methods of notification */
9
16
  export type NotificationMethod = 'email' | 'notification' | 'sms' | 'voice';
17
+ /** Notification model */
10
18
  export type Notification = {
19
+ /** Triggering event */
11
20
  event: string;
21
+ /** Notify via methods */
12
22
  method: NotificationMethod[];
23
+ /** Notification name/title */
13
24
  subject?: string | ((event: PathEvent, ...args: any[]) => string);
25
+ /** Body of notification */
14
26
  body: string | ((event: PathEvent, ...args: any[]) => string);
27
+ /** Link to on activation */
15
28
  link?: string;
16
29
  };
17
- /**
18
- * Recursive type for defining tree data
19
- */
30
+ /** Recursive type for defining tree data */
20
31
  export type TreeNode<T> = T & {
32
+ /** Name of node */
21
33
  name: string;
34
+ /** Node children */
22
35
  children: TreeNode<T>[];
23
36
  };
24
37
  //# sourceMappingURL=core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEzC,MAAM,MAAM,IAAI,GAAG;IAClB,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,IAAI,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,IAAI,CAAC;CACnB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAI,OAAO,GAAG,cAAc,GAAG,KAAK,GAAG,OAAO,CAAC;AAE7E,MAAM,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC;IAClE,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEzC,qBAAqB;AACrB,MAAM,MAAM,IAAI,GAAG;IAClB,kBAAkB;IAClB,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;IACnB,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,YAAY,EAAE,IAAI,CAAC;IACnB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,YAAY,EAAE,IAAI,CAAC;CACnB,CAAA;AAED,8BAA8B;AAC9B,MAAM,MAAM,kBAAkB,GAAI,OAAO,GAAG,cAAc,GAAG,KAAK,GAAG,OAAO,CAAC;AAE7E,yBAAyB;AACzB,MAAM,MAAM,YAAY,GAAG;IAC1B,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC;IAClE,2BAA2B;IAC3B,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,CAAC;IAC9D,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAA;AAED,4CAA4C;AAC5C,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG;IAC7B,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB;IACpB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;CACxB,CAAC"}
package/dist/data.d.ts CHANGED
@@ -49,8 +49,20 @@ export type SchemaColumn = {
49
49
  width?: string;
50
50
  };
51
51
  };
52
+ declare class Schemas extends PathEventEmitter {
53
+ private api;
54
+ constructor(api: Api);
55
+ delete(path: string): PromiseProgress<any>;
56
+ read(tree?: false): Promise<string[]>;
57
+ read(tree?: boolean): Promise<TreeNode<Schema>[]>;
58
+ read(path?: string): Promise<Schema>;
59
+ update(schema: Partial<Schema> & {
60
+ path: string;
61
+ }): PromiseProgress<Schema>;
62
+ }
52
63
  export declare class Data extends PathEventEmitter {
53
64
  private readonly api;
65
+ schema: Schemas;
54
66
  constructor(api: Api | string);
55
67
  create<T>(collection: string, document: Document<T>): Promise<Document<T>>;
56
68
  delete(collection: string, id: number): Promise<void>;
@@ -58,12 +70,6 @@ export declare class Data extends PathEventEmitter {
58
70
  read<T extends Meta>(collection: string, id: number): Promise<T>;
59
71
  update<T>(collection: string, document: Document<T>, append?: boolean): Promise<Document<T>>;
60
72
  raw<T>(collection: string, query: RawQuery): Promise<Document<T>>;
61
- deleteSchema(path: string): PromiseProgress<any>;
62
- readSchema(tree?: false): Promise<string[]>;
63
- readSchema(tree?: boolean): Promise<TreeNode<Schema>[]>;
64
- readSchema(path?: string): Promise<Schema>;
65
- updateSchema(schema: Partial<Schema> & {
66
- path: string;
67
- }): PromiseProgress<Schema>;
68
73
  }
74
+ export {};
69
75
  //# sourceMappingURL=data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}