@ztimson/momentum 0.53.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +96 -41
- package/bin/build-models.mjs +28 -37
- package/dist/actions.d.ts +67 -52
- package/dist/actions.d.ts.map +1 -1
- package/dist/ai.d.ts +43 -17
- package/dist/ai.d.ts.map +1 -1
- package/dist/analytics.d.ts +169 -36
- package/dist/analytics.d.ts.map +1 -1
- package/dist/api.d.ts +22 -22
- package/dist/api.d.ts.map +1 -1
- package/dist/asset-controller.d.ts +92 -0
- package/dist/asset-controller.d.ts.map +1 -0
- package/dist/audit.d.ts +22 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/auth.d.ts +34 -101
- package/dist/auth.d.ts.map +1 -1
- package/dist/call.d.ts +61 -0
- package/dist/call.d.ts.map +1 -0
- package/dist/captcha.d.ts +14 -0
- package/dist/captcha.d.ts.map +1 -0
- package/dist/client.d.ts +46 -33
- package/dist/client.d.ts.map +1 -1
- package/dist/core.d.ts +50 -21
- package/dist/core.d.ts.map +1 -1
- package/dist/data.d.ts +58 -76
- package/dist/data.d.ts.map +1 -1
- package/dist/dialog.d.ts +11 -0
- package/dist/dialog.d.ts.map +1 -0
- package/dist/discounts.d.ts +8 -12
- package/dist/discounts.d.ts.map +1 -1
- package/dist/email.d.ts +19 -19
- package/dist/email.d.ts.map +1 -1
- package/dist/forms.d.ts +6 -13
- package/dist/forms.d.ts.map +1 -1
- package/dist/groups.d.ts +22 -16
- package/dist/groups.d.ts.map +1 -1
- package/dist/index.d.ts +14 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4473 -0
- package/dist/index.mjs +3469 -1752
- package/dist/logger.d.ts +78 -48
- package/dist/logger.d.ts.map +1 -1
- package/dist/momentum.d.ts +71 -15
- package/dist/momentum.d.ts.map +1 -1
- package/dist/momentum.worker.d.mts +2 -0
- package/dist/momentum.worker.d.mts.map +1 -0
- package/dist/momentum.worker.mjs +124 -0
- package/dist/notifications.d.ts +39 -0
- package/dist/notifications.d.ts.map +1 -0
- package/dist/pdf.d.ts +32 -14
- package/dist/pdf.d.ts.map +1 -1
- package/dist/permissions.d.ts +19 -0
- package/dist/permissions.d.ts.map +1 -0
- package/dist/products.d.ts +47 -0
- package/dist/products.d.ts.map +1 -0
- package/dist/routes.d.ts +40 -0
- package/dist/routes.d.ts.map +1 -0
- package/dist/schemas.d.ts +79 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/settings.d.ts +30 -14
- package/dist/settings.d.ts.map +1 -1
- package/dist/sms.d.ts +14 -0
- package/dist/sms.d.ts.map +1 -0
- package/dist/sockets.d.ts +22 -12
- package/dist/sockets.d.ts.map +1 -1
- package/dist/static.d.ts +4 -2
- package/dist/static.d.ts.map +1 -1
- package/dist/storage.d.ts +103 -24
- package/dist/storage.d.ts.map +1 -1
- package/dist/templates.d.ts +23 -0
- package/dist/templates.d.ts.map +1 -0
- package/dist/tokens.d.ts +50 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/totp.d.ts +45 -0
- package/dist/totp.d.ts.map +1 -0
- package/dist/transactions.d.ts +153 -0
- package/dist/transactions.d.ts.map +1 -0
- package/dist/users.d.ts +63 -25
- package/dist/users.d.ts.map +1 -1
- package/dist/webRtc.d.ts +39 -0
- package/dist/webRtc.d.ts.map +1 -0
- package/package.json +23 -13
- package/dist/index.cjs +0 -2756
- package/dist/momentum.worker.js +0 -16
- package/dist/payments.d.ts +0 -184
- package/dist/payments.d.ts.map +0 -1
- package/dist/phone.d.ts +0 -19
- package/dist/phone.d.ts.map +0 -1
package/dist/analytics.d.ts
CHANGED
|
@@ -1,64 +1,197 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { AssetController } from './asset-controller';
|
|
2
|
+
import { Meta } from './core';
|
|
3
|
+
import { Momentum } from './momentum';
|
|
4
|
+
export type AnalyticInfo = Meta & {
|
|
5
|
+
/** Track ad campaign */
|
|
6
|
+
readonly adCampaign: {
|
|
7
|
+
/** Source of the ad campaign (e.g., search engine or platform) */
|
|
8
|
+
readonly source?: string;
|
|
9
|
+
/** Medium of the ad campaign (e.g., cost-per-click, email) */
|
|
10
|
+
readonly medium?: string;
|
|
11
|
+
/** Name of the ad campaign */
|
|
12
|
+
readonly campaign?: string;
|
|
13
|
+
/** Search term or keywords used in the campaign */
|
|
14
|
+
readonly term?: string;
|
|
15
|
+
/** Specific content that triggered the campaign */
|
|
16
|
+
readonly content?: string;
|
|
17
|
+
};
|
|
18
|
+
/** Browser information */
|
|
19
|
+
readonly browser: {
|
|
20
|
+
/** Browser name */
|
|
21
|
+
readonly name?: string;
|
|
22
|
+
/** Browser version */
|
|
23
|
+
readonly version?: string;
|
|
24
|
+
/** Browser major version */
|
|
25
|
+
readonly major?: string;
|
|
26
|
+
};
|
|
27
|
+
/** CAPTCHA score 0-1 (0 = bot, 1 = human) */
|
|
28
|
+
readonly captcha?: number;
|
|
29
|
+
/** User consent for additional tracking */
|
|
30
|
+
readonly consent?: boolean;
|
|
31
|
+
/** CPU information */
|
|
32
|
+
readonly cpu: {
|
|
33
|
+
/** CPU architecture */
|
|
34
|
+
readonly architecture?: string;
|
|
35
|
+
/** Number of CPU cors */
|
|
36
|
+
readonly cores?: number | 'Unknown';
|
|
37
|
+
};
|
|
38
|
+
/** Device information */
|
|
39
|
+
readonly device: {
|
|
40
|
+
/** Device type (mobile, etc...) */
|
|
41
|
+
readonly type?: string;
|
|
42
|
+
/** Manufacturer */
|
|
43
|
+
readonly vendor?: string;
|
|
44
|
+
/** Device name */
|
|
45
|
+
readonly model?: string;
|
|
46
|
+
};
|
|
47
|
+
/** JavaScript Engine information */
|
|
48
|
+
readonly engine: {
|
|
49
|
+
/** Name of engine */
|
|
50
|
+
readonly name?: string;
|
|
51
|
+
/** Engine version */
|
|
52
|
+
readonly version?: string;
|
|
53
|
+
};
|
|
54
|
+
/** originating IP */
|
|
55
|
+
readonly ip?: string;
|
|
56
|
+
/** System language */
|
|
57
|
+
readonly lang?: string;
|
|
58
|
+
/** JavaScript heap size */
|
|
59
|
+
readonly mem?: number | 'Unknown';
|
|
60
|
+
/** Custom metrics */
|
|
61
|
+
readonly metrics: {
|
|
62
|
+
[key: string]: Metric;
|
|
63
|
+
};
|
|
64
|
+
/** Network speed in bytes-per-second */
|
|
65
|
+
readonly net?: number;
|
|
66
|
+
/** Operating System */
|
|
67
|
+
readonly os: {
|
|
68
|
+
/** OS name */
|
|
69
|
+
readonly name?: string;
|
|
70
|
+
/** OS version */
|
|
71
|
+
readonly version?: string;
|
|
72
|
+
};
|
|
73
|
+
/** User journey */
|
|
74
|
+
readonly pages: {
|
|
75
|
+
page: string | 'CLOSED';
|
|
76
|
+
timestamp: Date;
|
|
77
|
+
duration?: number;
|
|
78
|
+
meta?: any;
|
|
79
|
+
}[];
|
|
80
|
+
/** Website performance */
|
|
81
|
+
readonly performance?: Performance;
|
|
82
|
+
/** Referer */
|
|
83
|
+
readonly referer?: string;
|
|
84
|
+
/** Screen resolution */
|
|
85
|
+
readonly res?: number[];
|
|
86
|
+
/** IP Trace */
|
|
87
|
+
readonly trace?: IpTrace;
|
|
88
|
+
/** Timezone offset */
|
|
89
|
+
readonly tz?: string;
|
|
90
|
+
/** Original user agent string */
|
|
91
|
+
readonly ua?: string;
|
|
92
|
+
};
|
|
3
93
|
export type IpTrace = {
|
|
4
94
|
/** Ip trace target */
|
|
5
|
-
query: string;
|
|
95
|
+
readonly query: string;
|
|
6
96
|
/** Trace result */
|
|
7
|
-
status: string;
|
|
97
|
+
readonly status: string;
|
|
8
98
|
/** Geolocated continent */
|
|
9
|
-
continent: string;
|
|
99
|
+
readonly continent: string;
|
|
10
100
|
/** Geolocated continent shortcode */
|
|
11
|
-
continentCode: string;
|
|
101
|
+
readonly continentCode: string;
|
|
12
102
|
/** Geolocated country */
|
|
13
|
-
country: string;
|
|
103
|
+
readonly country: string;
|
|
14
104
|
/** Geolocated country shortcode */
|
|
15
|
-
countryCode: string;
|
|
105
|
+
readonly countryCode: string;
|
|
16
106
|
/** Geolocated country region shortcode */
|
|
17
|
-
region: string;
|
|
107
|
+
readonly region: string;
|
|
18
108
|
/** Geolocated country region */
|
|
19
|
-
regionName: string;
|
|
109
|
+
readonly regionName: string;
|
|
20
110
|
/** Geolocated city */
|
|
21
|
-
city: string;
|
|
111
|
+
readonly city: string;
|
|
22
112
|
/** Geolocated city district/suburb */
|
|
23
|
-
district: string;
|
|
113
|
+
readonly district: string;
|
|
24
114
|
/** Geolocated postal code/zip */
|
|
25
|
-
zip: string;
|
|
115
|
+
readonly zip: string;
|
|
26
116
|
/** Geolocated latitude */
|
|
27
|
-
lat: number;
|
|
28
|
-
/**
|
|
29
|
-
lon: number;
|
|
117
|
+
readonly lat: number;
|
|
118
|
+
/** Geolocated longitude */
|
|
119
|
+
readonly lon: number;
|
|
30
120
|
/** Geolocated timezone */
|
|
31
|
-
timezone: string;
|
|
121
|
+
readonly timezone: string;
|
|
32
122
|
/** Geolocated timezone offset */
|
|
33
|
-
offset: number;
|
|
123
|
+
readonly offset: number;
|
|
34
124
|
/** Geolocated currency */
|
|
35
|
-
currency: string;
|
|
125
|
+
readonly currency: string;
|
|
36
126
|
/** Address provider */
|
|
37
|
-
isp: string;
|
|
127
|
+
readonly isp: string;
|
|
38
128
|
/** Registered organization */
|
|
39
|
-
org: string;
|
|
129
|
+
readonly org: string;
|
|
40
130
|
/** AS number and organization */
|
|
41
|
-
as: string;
|
|
131
|
+
readonly as: string;
|
|
42
132
|
/** AS organization */
|
|
43
|
-
asname: string;
|
|
44
|
-
/** Cellular */
|
|
45
|
-
mobile: boolean;
|
|
133
|
+
readonly asname: string;
|
|
134
|
+
/** Cellular network */
|
|
135
|
+
readonly mobile: boolean;
|
|
46
136
|
/** Known proxy, VPN or Tor exit node */
|
|
47
|
-
proxy: boolean;
|
|
137
|
+
readonly proxy: boolean;
|
|
48
138
|
/** Known Host/Datacenter */
|
|
49
|
-
hosting: boolean;
|
|
139
|
+
readonly hosting: boolean;
|
|
50
140
|
/** Failed trace reason */
|
|
51
|
-
message?: string;
|
|
141
|
+
readonly message?: string;
|
|
142
|
+
};
|
|
143
|
+
/** Analytics metric */
|
|
144
|
+
export type Metric<T = any> = {
|
|
145
|
+
/** Name of metric */
|
|
146
|
+
name: string;
|
|
147
|
+
/** Metric category for grouping */
|
|
148
|
+
category?: string;
|
|
149
|
+
/** Metric value */
|
|
150
|
+
value: T;
|
|
151
|
+
/** Aggregation strategy, defaults to add */
|
|
152
|
+
strategy?: 'add' | 'avg' | 'count' | 'min' | 'max' | 'set';
|
|
153
|
+
};
|
|
154
|
+
export type Performance = {
|
|
155
|
+
/** Time until first contentful paint (ms) */
|
|
156
|
+
fcp: number;
|
|
157
|
+
/** Time until largest contentful paint (ms) */
|
|
158
|
+
lcp: number;
|
|
159
|
+
/** Time until first byte (ms) */
|
|
160
|
+
ttfb: number;
|
|
161
|
+
/** DOM load time (ms) */
|
|
162
|
+
dom: number;
|
|
163
|
+
/** Total load time (ms) */
|
|
164
|
+
total: number;
|
|
52
165
|
};
|
|
53
166
|
/** Audience metrics and metadata */
|
|
54
|
-
export declare class Analytics extends
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
167
|
+
export declare class Analytics extends AssetController<AnalyticInfo> {
|
|
168
|
+
protected momentum: Momentum;
|
|
169
|
+
private lastPage?;
|
|
170
|
+
private _ready?;
|
|
171
|
+
readonly ready: Promise<void>;
|
|
172
|
+
private _performance;
|
|
173
|
+
performance: Promise<Performance>;
|
|
174
|
+
private _consented?;
|
|
175
|
+
readonly consented: Promise<boolean>;
|
|
176
|
+
_consent?: boolean;
|
|
177
|
+
get consent(): boolean | undefined;
|
|
178
|
+
set consent(value: boolean | undefined);
|
|
179
|
+
private _id;
|
|
180
|
+
get id(): string;
|
|
181
|
+
set id(id: string);
|
|
182
|
+
private _new;
|
|
183
|
+
private set new(value);
|
|
184
|
+
get new(): boolean;
|
|
185
|
+
constructor(momentum: Momentum);
|
|
186
|
+
private canPromptAgain;
|
|
187
|
+
private collectNavigationMetrics;
|
|
188
|
+
private collectLCPMetrics;
|
|
189
|
+
private init;
|
|
190
|
+
consentPrompt(content?: string): Promise<boolean>;
|
|
191
|
+
speedTest(format: true, bytes?: number): Promise<string>;
|
|
192
|
+
speedTest(format?: false, bytes?: number): Promise<number>;
|
|
62
193
|
ipTrace(ip: string): Promise<IpTrace>;
|
|
194
|
+
metric(name: string | [string, string], value: number, strategy?: string): Promise<void>;
|
|
195
|
+
page(page?: string, meta?: any): Promise<void>;
|
|
63
196
|
}
|
|
64
197
|
//# sourceMappingURL=analytics.d.ts.map
|
package/dist/analytics.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"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"}
|
package/dist/api.d.ts
CHANGED
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
import { Http,
|
|
1
|
+
import { Http, HttpRequestOptions, IPathEventEmitter, PromiseProgress } from '@ztimson/utils';
|
|
2
|
+
import { Momentum } from './momentum';
|
|
2
3
|
/** Overall Momentum health */
|
|
3
4
|
export type Health = {
|
|
4
5
|
/** Momentum status */
|
|
5
|
-
status: 'offline' | 'ok' | 'degraded' | 'error';
|
|
6
|
+
readonly status: 'offline' | 'ok' | 'degraded' | 'error';
|
|
6
7
|
/** Actions module */
|
|
7
|
-
actions: ModuleStatus;
|
|
8
|
+
readonly actions: ModuleStatus;
|
|
8
9
|
/** AI module */
|
|
9
|
-
ai: ModuleStatus;
|
|
10
|
+
readonly ai: ModuleStatus;
|
|
10
11
|
/** Database module */
|
|
11
|
-
database: ModuleStatus;
|
|
12
|
+
readonly database: ModuleStatus;
|
|
12
13
|
/** Email module */
|
|
13
|
-
email: ModuleStatus;
|
|
14
|
+
readonly email: ModuleStatus;
|
|
14
15
|
/** Payments module */
|
|
15
|
-
payments: ModuleStatus;
|
|
16
|
+
readonly payments: ModuleStatus;
|
|
16
17
|
/** Phone module */
|
|
17
|
-
phone: ModuleStatus;
|
|
18
|
+
readonly phone: ModuleStatus;
|
|
19
|
+
/** WebRTC TURN server */
|
|
20
|
+
readonly webrtc: ModuleStatus;
|
|
18
21
|
/** Version number */
|
|
19
|
-
version: string;
|
|
22
|
+
readonly version: string;
|
|
20
23
|
/** Last commit */
|
|
21
|
-
commit: string;
|
|
24
|
+
readonly commit: string;
|
|
25
|
+
/** Cluster nodes */
|
|
26
|
+
readonly cluster?: string[];
|
|
27
|
+
/** Uptime in seconds */
|
|
28
|
+
readonly uptime?: number;
|
|
22
29
|
};
|
|
23
30
|
/** Momentum module status */
|
|
24
31
|
export type ModuleStatus = 'disabled' | 'ok' | 'warn' | 'error';
|
|
25
|
-
/** API options */
|
|
26
|
-
export type ApiOptions = {
|
|
27
|
-
http?: HttpDefaults;
|
|
28
|
-
persist?: boolean;
|
|
29
|
-
};
|
|
30
32
|
/** Create API requests */
|
|
31
33
|
export declare class Api extends Http implements IPathEventEmitter {
|
|
32
|
-
|
|
33
|
-
readonly opts: ApiOptions;
|
|
34
|
+
private momentum;
|
|
34
35
|
private emitter;
|
|
35
36
|
private pending;
|
|
36
37
|
private storageKey;
|
|
37
|
-
readonly host: string;
|
|
38
38
|
get sameOrigin(): boolean;
|
|
39
39
|
private _token;
|
|
40
40
|
/** Current API token */
|
|
41
41
|
get token(): string | null;
|
|
42
42
|
set token(token: string | null);
|
|
43
|
-
constructor(
|
|
44
|
-
emit: (event:
|
|
43
|
+
constructor(momentum: Momentum);
|
|
44
|
+
emit: (event: import('@ztimson/utils').Event, ...args: any[]) => void;
|
|
45
45
|
off: (listener: import('@ztimson/utils').PathListener) => void;
|
|
46
|
-
on: (event:
|
|
47
|
-
once: (event:
|
|
46
|
+
on: (event: import('@ztimson/utils').Event | import('@ztimson/utils').Event[], listener: import('@ztimson/utils').PathListener) => import('@ztimson/utils').PathUnsubscribe;
|
|
47
|
+
once: (event: import('@ztimson/utils').Event | import('@ztimson/utils').Event[], listener?: import('@ztimson/utils').PathListener) => Promise<any>;
|
|
48
48
|
relayEvents: (emitter: IPathEventEmitter) => void;
|
|
49
49
|
/**
|
|
50
50
|
* Fetch current Momentum status
|
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,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,IAAI,EACJ,kBAAkB,EAClB,iBAAiB,EAEjB,eAAe,EACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,8BAA8B;AAC9B,MAAM,MAAM,MAAM,GAAG;IACpB,sBAAsB;IACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,GAAG,UAAU,GAAG,OAAO,CAAC;IACzD,qBAAqB;IACrB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,gBAAgB;IAChB,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,sBAAsB;IACtB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,mBAAmB;IACnB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,sBAAsB;IACtB,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,mBAAmB;IACnB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,yBAAyB;IACzB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,qBAAqB;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kBAAkB;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,oBAAoB;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,wBAAwB;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CACzB,CAAA;AAED,6BAA6B;AAC7B,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;AAEhE,0BAA0B;AAC1B,qBAAa,GAAI,SAAQ,IAAK,YAAW,iBAAiB;IA0B7C,OAAO,CAAC,QAAQ;IAzB5B,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,OAAO,CAA6C;IAC5D,OAAO,CAAC,UAAU,CAAU;IAE5B,IAAI,UAAU,YAGb;IAED,OAAO,CAAC,MAAM,CAAuB;IACrC,wBAAwB;IACxB,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAAwB;IAClD,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAW7B;gBAEmB,QAAQ,EAAE,QAAQ;IAUtC,IAAI,kEAAwC;IAC5C,GAAG,4DAAuC;IAC1C,EAAE,0KAAsC;IACxC,IAAI,+IAAwC;IAC5C,WAAW,uCAA+C;IAE1D;;;OAGG;IACH,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9B;;;;OAIG;IACH,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,GAAG,eAAe,CAAC,CAAC,CAAC;CAqB3D"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { Cache, CacheOptions, PathEvent, PathEventEmitter } from '@ztimson/utils';
|
|
2
|
+
import { Meta, TreeNode, Unsubscribe } from './core';
|
|
3
|
+
import { Momentum } from './momentum';
|
|
4
|
+
export type ControllerOptions<T> = any & {
|
|
5
|
+
module: string;
|
|
6
|
+
key?: keyof T;
|
|
7
|
+
storage?: null | keyof CacheOptions['persistentStorage'];
|
|
8
|
+
path?: string;
|
|
9
|
+
};
|
|
10
|
+
/** Boilerplate for connecting to API controllers */
|
|
11
|
+
export declare class AssetController<T extends Meta> extends PathEventEmitter {
|
|
12
|
+
protected momentum: Momentum;
|
|
13
|
+
protected readonly subscribers: {
|
|
14
|
+
[key: string]: Unsubscribe;
|
|
15
|
+
};
|
|
16
|
+
cache: Cache<string, T>;
|
|
17
|
+
opts: ControllerOptions<T>;
|
|
18
|
+
constructor(momentum: Momentum, opts: ControllerOptions<T>);
|
|
19
|
+
/**
|
|
20
|
+
* Process raw data before caching & returning
|
|
21
|
+
* @hidden
|
|
22
|
+
*/
|
|
23
|
+
protected afterRead(value: any): T;
|
|
24
|
+
/**
|
|
25
|
+
* Process raw data before sending
|
|
26
|
+
* @hidden
|
|
27
|
+
*/
|
|
28
|
+
protected beforeWrite(value: any): T;
|
|
29
|
+
/**
|
|
30
|
+
* Fetch all assets as array
|
|
31
|
+
* @param {boolean} reload Force reload instead of using cache
|
|
32
|
+
* @return {Promise<T[]>} All assets as array
|
|
33
|
+
*/
|
|
34
|
+
all(reload?: boolean): Promise<T[]>;
|
|
35
|
+
/**
|
|
36
|
+
* Create new asset
|
|
37
|
+
* @param {T} value Asset that will be created
|
|
38
|
+
* @return {Promise<T>} Saved result
|
|
39
|
+
*/
|
|
40
|
+
create(value: T): Promise<T>;
|
|
41
|
+
/**
|
|
42
|
+
* Delete asset
|
|
43
|
+
* @param {string} key Asset primary key
|
|
44
|
+
* @return {Promise<number>} Returns on success
|
|
45
|
+
*/
|
|
46
|
+
delete(key?: string): Promise<number>;
|
|
47
|
+
/**
|
|
48
|
+
* Read single asset
|
|
49
|
+
* @param {string} key Asset primary key
|
|
50
|
+
* @param {boolean} reload Force reload instead of using cache
|
|
51
|
+
* @return {Promise<T>} Discovered asset
|
|
52
|
+
*/
|
|
53
|
+
read(key: string, reload?: boolean): Promise<T>;
|
|
54
|
+
/**
|
|
55
|
+
* Update exiting asset
|
|
56
|
+
* @param {T} value Asset that will be updated
|
|
57
|
+
* @return {Promise<T>} Saved result
|
|
58
|
+
*/
|
|
59
|
+
update(value: Partial<T>): Promise<T>;
|
|
60
|
+
/**
|
|
61
|
+
* Subscribe to live updates with callback
|
|
62
|
+
* @param {(value: T[]) => any | null} callback Received changes
|
|
63
|
+
* @param opts Additional options: path - scope to events within path, reload - Re-fetch even if cached
|
|
64
|
+
* @return {() => void} Function to unsubscribe
|
|
65
|
+
*/
|
|
66
|
+
sync(callback?: ((event: PathEvent, value: any) => any) | null, opts?: {
|
|
67
|
+
path?: string;
|
|
68
|
+
reload?: boolean;
|
|
69
|
+
}): Unsubscribe;
|
|
70
|
+
}
|
|
71
|
+
export declare class TreeAssetController<T extends Meta & {
|
|
72
|
+
path: string;
|
|
73
|
+
}> extends AssetController<T> {
|
|
74
|
+
/**
|
|
75
|
+
* Get all schemas organized into a map
|
|
76
|
+
* @param {boolean} reload Reload instead of using cache
|
|
77
|
+
* @return {Promise<TreeNode<Schema>[]>} Schemas as a map
|
|
78
|
+
*/
|
|
79
|
+
map(reload?: boolean): Promise<TreeNode<T>[]>;
|
|
80
|
+
/**
|
|
81
|
+
* Subscribe to live updates with optional callback
|
|
82
|
+
* @param {(schema: Schema[]) => any} callback Receives latest data
|
|
83
|
+
* @param opts path - scope events, tree - return as a map or array
|
|
84
|
+
* @return {() => void}
|
|
85
|
+
*/
|
|
86
|
+
sync(callback?: (event: PathEvent, value: any) => any, opts?: {
|
|
87
|
+
path?: string;
|
|
88
|
+
map?: boolean;
|
|
89
|
+
reload?: boolean;
|
|
90
|
+
}): Unsubscribe;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=asset-controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-controller.d.ts","sourceRoot":"","sources":["../src/asset-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAC,IAAI,EAAwB,KAAK,QAAQ,EAAE,WAAW,EAAC,MAAM,QAAQ,CAAC;AAC9E,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,GAAG,GAAG;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IACd,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAA;AAED,oDAAoD;AACpD,qBAAa,eAAe,CAAC,CAAC,SAAS,IAAI,CAAE,SAAQ,gBAAgB;IAMxD,SAAS,CAAC,QAAQ,EAAE,QAAQ;IALxC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;KAAC,CAAM;IAElE,KAAK,EAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzB,IAAI,EAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBAEN,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAoBpE;;;OAGG;IACH,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC;IAElC;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC;IAEpC;;;;OAIG;IACG,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IASzC;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAYlC;;;;OAIG;IACG,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO3C;;;;;OAKG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IASrD;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAY3C;;;;;OAKG;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,IAAI,GAAE;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAM,GAAG,WAAW;CAe1H;AAED,qBAAa,mBAAmB,CAAC,CAAC,SAAS,IAAI,GAAG;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,CAAC;IAC3F;;;;OAIG;IACG,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAKnD;;;;;OAKG;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,EAAE,IAAI,GAAE;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAM,GAAG,WAAW;CAKhI"}
|
package/dist/audit.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Meta, PathEventEmitter } from './core';
|
|
2
|
+
import { Momentum } from './momentum';
|
|
3
|
+
/** Object history */
|
|
4
|
+
export type AuditLog<T = any> = Meta & {
|
|
5
|
+
/** Target module */
|
|
6
|
+
module: string;
|
|
7
|
+
/** Document ID */
|
|
8
|
+
id: string;
|
|
9
|
+
/** Changes */
|
|
10
|
+
delta: any;
|
|
11
|
+
};
|
|
12
|
+
export declare class Audit extends PathEventEmitter {
|
|
13
|
+
protected momentum: Momentum;
|
|
14
|
+
constructor(momentum: Momentum);
|
|
15
|
+
available(): Promise<{
|
|
16
|
+
[module: string]: string;
|
|
17
|
+
}>;
|
|
18
|
+
available(module: string): Promise<string[]>;
|
|
19
|
+
history(module: string, pk?: string): Promise<AuditLog[]>;
|
|
20
|
+
rollback(id: string): Promise<AuditLog<any>[]>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,gBAAgB,EAAC,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAEpC,qBAAqB;AACrB,MAAM,MAAM,QAAQ,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG;IACtC,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,cAAc;IACd,KAAK,EAAE,GAAG,CAAC;CACX,CAAA;AAED,qBAAa,KAAM,SAAQ,gBAAgB;IAE9B,SAAS,CAAC,QAAQ,EAAE,QAAQ;gBAAlB,QAAQ,EAAE,QAAQ;IAIlC,SAAS,IAAI,OAAO,CAAC;QAAC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CAAC;IAChD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAK5C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAKzD,QAAQ,CAAC,EAAE,EAAE,MAAM;CAIzB"}
|
package/dist/auth.d.ts
CHANGED
|
@@ -1,102 +1,34 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { PathEventEmitter } from './core';
|
|
2
|
+
import { Momentum } from './momentum';
|
|
3
|
+
import { Totp, TotpMethods } from './totp';
|
|
4
4
|
import { User } from './users';
|
|
5
|
-
export type
|
|
6
|
-
/**
|
|
7
|
-
|
|
5
|
+
export type SessionData = {
|
|
6
|
+
/** User token */
|
|
7
|
+
token: string | null;
|
|
8
|
+
/** Current user */
|
|
9
|
+
user: User | null;
|
|
10
|
+
/** Combined custom values */
|
|
11
|
+
custom: any;
|
|
12
|
+
/** UI dashboard page */
|
|
13
|
+
dashboardUrl: string | null;
|
|
14
|
+
/** Redirect user to URL on login */
|
|
15
|
+
loginRedirect: string | null;
|
|
16
|
+
/** Combined permissions */
|
|
17
|
+
permissions: string[];
|
|
8
18
|
};
|
|
9
|
-
export type UserToken = Meta & {
|
|
10
|
-
/** User defined name */
|
|
11
|
-
name: string;
|
|
12
|
-
/** Assigned to */
|
|
13
|
-
owner: string;
|
|
14
|
-
/** Token value */
|
|
15
|
-
token: string;
|
|
16
|
-
/** Expiration */
|
|
17
|
-
expire: null | Date;
|
|
18
|
-
};
|
|
19
|
-
/** Manage user tokens */
|
|
20
|
-
export declare class Token extends PathEventEmitter {
|
|
21
|
-
private api;
|
|
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
|
-
*/
|
|
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
|
-
*/
|
|
34
|
-
create(token: {
|
|
35
|
-
name: string;
|
|
36
|
-
owner: string;
|
|
37
|
-
expire: null | Date;
|
|
38
|
-
}): Promise<UserToken>;
|
|
39
|
-
/**
|
|
40
|
-
* Delete an existing user token
|
|
41
|
-
* @param {string} id Token ID
|
|
42
|
-
* @return {Promise<void>} Resolves once complete
|
|
43
|
-
*/
|
|
44
|
-
delete(id: string): Promise<void>;
|
|
45
|
-
}
|
|
46
|
-
/** Mange user 2FA */
|
|
47
|
-
export declare class Totp {
|
|
48
|
-
private api;
|
|
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
|
-
*/
|
|
55
|
-
disable(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
|
-
*/
|
|
75
|
-
setup(username: string, method?: string, totp?: string): import('@ztimson/utils').PromiseProgress<void>;
|
|
76
|
-
}
|
|
77
19
|
/** Manage User Authentication */
|
|
78
20
|
export declare class Auth extends PathEventEmitter {
|
|
79
|
-
|
|
80
|
-
private readonly api;
|
|
81
|
-
/** Manage user tokens */
|
|
82
|
-
token: Token;
|
|
21
|
+
protected momentum: Momentum;
|
|
83
22
|
/** Manage user 2FA */
|
|
84
23
|
totp: Totp;
|
|
85
|
-
|
|
86
|
-
/** Get current user permissions */
|
|
87
|
-
get permissions(): string[];
|
|
88
|
-
private set permissions(value);
|
|
24
|
+
session?: SessionData | null;
|
|
89
25
|
private _user?;
|
|
90
26
|
/** Get current user, undefined if not yet initialized */
|
|
91
27
|
get user(): User | null | undefined;
|
|
92
28
|
/** Update user info without changing the session */
|
|
93
29
|
set user(user: User | null | undefined);
|
|
94
|
-
constructor(
|
|
95
|
-
|
|
96
|
-
has: (...events: (string | PathEvent)[]) => boolean;
|
|
97
|
-
hasAll: (...events: (string | PathEvent)[]) => boolean;
|
|
98
|
-
hasFatal: (...events: (string | PathEvent)[]) => void;
|
|
99
|
-
hasAllFatal: (...events: (string | PathEvent)[]) => void;
|
|
30
|
+
constructor(momentum: Momentum);
|
|
31
|
+
handleLogin(reload?: boolean): Promise<SessionData | null | undefined>;
|
|
100
32
|
/**
|
|
101
33
|
* Check if origin is recognized & whitelisted
|
|
102
34
|
* @param {string} host Origin to check
|
|
@@ -105,15 +37,19 @@ export declare class Auth extends PathEventEmitter {
|
|
|
105
37
|
knownHost(host?: string): Promise<void>;
|
|
106
38
|
/**
|
|
107
39
|
* Login a user & return the account
|
|
108
|
-
* @param {string}
|
|
40
|
+
* @param {string} id username
|
|
109
41
|
* @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<
|
|
42
|
+
* @param {{totp: string, totpMethod: TotpMethods, expire: null | number | Date}} opts 2FA code, 2FA code push method, and expiry options (null to never expire)
|
|
43
|
+
* @return {Promise<{reset?: string, token?: string} | null>} User account on success
|
|
112
44
|
*/
|
|
113
|
-
login(
|
|
45
|
+
login(id: string, password?: string, opts?: {
|
|
114
46
|
totp?: string;
|
|
47
|
+
totpMethod?: TotpMethods;
|
|
115
48
|
expire?: number | Date | null;
|
|
116
|
-
}): Promise<
|
|
49
|
+
}): Promise<{
|
|
50
|
+
reset?: string;
|
|
51
|
+
token?: string;
|
|
52
|
+
} | null>;
|
|
117
53
|
/**
|
|
118
54
|
* Login via Momentum single sign on
|
|
119
55
|
* @param {string} host Host origin attempting to login
|
|
@@ -123,14 +59,14 @@ export declare class Auth extends PathEventEmitter {
|
|
|
123
59
|
/**
|
|
124
60
|
* Logout current user
|
|
125
61
|
*/
|
|
126
|
-
logout(): void
|
|
62
|
+
logout(): Promise<void>;
|
|
127
63
|
/**
|
|
128
64
|
* Create a new user with login
|
|
129
65
|
* @param {Partial<User> & {password: string}} user User data with password
|
|
130
66
|
* @return {Promise<User>} Registered user data
|
|
131
67
|
*/
|
|
132
68
|
register(user: Partial<User> & {
|
|
133
|
-
|
|
69
|
+
_id: string;
|
|
134
70
|
password: string;
|
|
135
71
|
}): Promise<User>;
|
|
136
72
|
/**
|
|
@@ -152,12 +88,9 @@ export declare class Auth extends PathEventEmitter {
|
|
|
152
88
|
* @param {boolean} set Set as current active session
|
|
153
89
|
* @return {Promise<{token: string, user: User, permissions: string[], custom: any} | null>} Session information
|
|
154
90
|
*/
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
permissions: string[];
|
|
159
|
-
custom: any;
|
|
160
|
-
} | null>;
|
|
91
|
+
readSession(token?: string | null, set?: boolean): Promise<SessionData | null>;
|
|
92
|
+
/** Unlock an account that has been locked from too many login attempts */
|
|
93
|
+
unlock(username: string): Promise<any>;
|
|
161
94
|
/**
|
|
162
95
|
* Update password for user
|
|
163
96
|
* @param {string} username User to reset
|
package/dist/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAM,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,IAAI,EAAE,WAAW,EAAC,MAAM,QAAQ,CAAC;AACzC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAElC,MAAM,MAAM,WAAW,GAAG;IACzB,iBAAiB;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,mBAAmB;IACnB,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,6BAA6B;IAC7B,MAAM,EAAE,GAAG,CAAC;IACZ,wBAAwB;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oCAAoC;IACpC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,2BAA2B;IAC3B,WAAW,EAAE,MAAM,EAAE,CAAA;CACrB,CAAA;AAED,iCAAiC;AACjC,qBAAa,IAAK,SAAQ,gBAAgB;IAiB7B,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAhBxC,sBAAsB;IACf,IAAI,EAAG,IAAI,CAAC;IAEnB,OAAO,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAE7B,OAAO,CAAC,KAAK,CAAC,CAAc;IAC5B,yDAAyD;IACzD,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,SAAS,CAAuB;IAC1D,oDAAoD;IACpD,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,EAKrC;gBAEqB,QAAQ,EAAE,QAAQ;IAiBlC,WAAW,CAAC,MAAM,UAAQ;IAgBhC;;;;OAIG;IACH,SAAS,CAAC,IAAI,GAAE,MAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,WAAW,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAA;KAAC,GAAG,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAC,GAAG,IAAI,CAAC;IAqBvK;;;;OAIG;IACH,aAAa,CAAC,IAAI,GAAE,MAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;IAqB9D;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAM7B;;;;OAIG;IACG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpF;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACtD;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcnC;;;;;OAKG;IACG,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,UAAQ,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAgBlF,0EAA0E;IACpE,MAAM,CAAC,QAAQ,EAAE,MAAM;IAK7B;;;;;;OAMG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAW7F"}
|