@livequery/client 2.0.105 → 2.0.106
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
CHANGED
|
@@ -75,7 +75,7 @@ type DocState<T extends Doc> = T & {
|
|
|
75
75
|
|
|
76
76
|
### `DataChangeEvent`
|
|
77
77
|
|
|
78
|
-
Transporters stream incremental change events back into the
|
|
78
|
+
Transporters stream incremental change events back into the client.
|
|
79
79
|
|
|
80
80
|
```ts
|
|
81
81
|
type DataChangeEvent = {
|
|
@@ -149,14 +149,14 @@ const transporter: LivequeryTransporter = {
|
|
|
149
149
|
},
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
const
|
|
152
|
+
const client = new LivequeryClient({
|
|
153
153
|
storage,
|
|
154
154
|
transporters: {
|
|
155
155
|
primary: transporter,
|
|
156
156
|
},
|
|
157
157
|
})
|
|
158
158
|
|
|
159
|
-
const todos = new LivequeryCollection<Todo>(
|
|
159
|
+
const todos = new LivequeryCollection<Todo>(client, {
|
|
160
160
|
filters: { "createdAt:sort": "desc" },
|
|
161
161
|
mode: "server-first",
|
|
162
162
|
})
|
|
@@ -175,10 +175,10 @@ await todos.delete("todo-1")
|
|
|
175
175
|
|
|
176
176
|
## `LivequeryClient`
|
|
177
177
|
|
|
178
|
-
Create one
|
|
178
|
+
Create one client with a storage adapter and one or more transporters:
|
|
179
179
|
|
|
180
180
|
```ts
|
|
181
|
-
const
|
|
181
|
+
const client = new LivequeryClient({
|
|
182
182
|
storage,
|
|
183
183
|
transporters: {
|
|
184
184
|
primary: transporter,
|
|
@@ -188,7 +188,7 @@ const core = new LivequeryClient({
|
|
|
188
188
|
|
|
189
189
|
### Mutation flow
|
|
190
190
|
|
|
191
|
-
For `add`, `update`, and `delete`, the
|
|
191
|
+
For `add`, `update`, and `delete`, the client:
|
|
192
192
|
|
|
193
193
|
1. writes to local storage first
|
|
194
194
|
2. broadcasts the optimistic change to active watchers
|
|
@@ -213,7 +213,7 @@ Implementation detail: in `local-first` mode, filters are applied by the storage
|
|
|
213
213
|
|
|
214
214
|
```ts
|
|
215
215
|
type LivequeryCollectionOptions<T extends Doc> = {
|
|
216
|
-
|
|
216
|
+
client: LivequeryClient
|
|
217
217
|
filters: Partial<LivequeryFilters<T>>
|
|
218
218
|
lazy: boolean
|
|
219
219
|
debounce: number
|
|
@@ -223,10 +223,10 @@ type LivequeryCollectionOptions<T extends Doc> = {
|
|
|
223
223
|
|
|
224
224
|
### Create and initialize a collection
|
|
225
225
|
|
|
226
|
-
The current constructor takes `
|
|
226
|
+
The current constructor takes `client` as the first argument and options as the second argument.
|
|
227
227
|
|
|
228
228
|
```ts
|
|
229
|
-
const posts = new LivequeryCollection<Post>(
|
|
229
|
+
const posts = new LivequeryCollection<Post>(client, {
|
|
230
230
|
filters: { "publishedAt:sort": "desc" },
|
|
231
231
|
lazy: false,
|
|
232
232
|
debounce: 250,
|
|
@@ -460,7 +460,7 @@ The helper module also exports `matchesAllFilters(doc, filters)` for direct pred
|
|
|
460
460
|
- Optimistic flags such as `_adding`, `_updating`, `_deleting`, and `_prev` are system-managed fields.
|
|
461
461
|
- Transporter query streams are expected to emit incremental `changes`, not full snapshots.
|
|
462
462
|
- `LivequeryCollection` declares a `metadata` subject but does not initialize it in the constructor, so transporter-emitted `metadata` is not safe to rely on yet.
|
|
463
|
-
- `trigger()` is typed at the collection and document layer as `Observable<{ data, error? }>` but currently forwards raw transporter results from `
|
|
463
|
+
- `trigger()` is typed at the collection and document layer as `Observable<{ data, error? }>` but currently forwards raw transporter results from `LivequeryClient.trigger()`.
|
|
464
464
|
|
|
465
465
|
## Development
|
|
466
466
|
|
|
@@ -3,7 +3,7 @@ import { LivequeryClient, type CollectionMetadata, type LivequeryLoadingState }
|
|
|
3
3
|
import type { Doc, DocState, LivequeryFilters, LivequeryPaging } from "./types.js";
|
|
4
4
|
import { LivequeryDocument } from "./LivequeryDocument.js";
|
|
5
5
|
export type LivequeryCollectionOptions<T extends Doc> = {
|
|
6
|
-
|
|
6
|
+
client: LivequeryClient;
|
|
7
7
|
filters: Partial<LivequeryFilters<T>>;
|
|
8
8
|
lazy: boolean;
|
|
9
9
|
debounce: number;
|
|
@@ -11,7 +11,7 @@ export type LivequeryCollectionOptions<T extends Doc> = {
|
|
|
11
11
|
};
|
|
12
12
|
export declare class LivequeryCollection<T extends Doc> {
|
|
13
13
|
#private;
|
|
14
|
-
private
|
|
14
|
+
private client;
|
|
15
15
|
private options;
|
|
16
16
|
readonly id: string;
|
|
17
17
|
ref: string | undefined;
|
|
@@ -26,7 +26,7 @@ export declare class LivequeryCollection<T extends Doc> {
|
|
|
26
26
|
code: string;
|
|
27
27
|
message: string;
|
|
28
28
|
} | null>;
|
|
29
|
-
constructor(
|
|
29
|
+
constructor(client: LivequeryClient, options?: Partial<LivequeryCollectionOptions<T>>);
|
|
30
30
|
initialize(ref: string): Subscription | undefined;
|
|
31
31
|
query(filters: Partial<LivequeryFilters<T>>): Promise<void>;
|
|
32
32
|
debounceQuery(filters: Partial<LivequeryFilters<T>>): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LivequeryCollection.d.ts","sourceRoot":"","sources":["../src/LivequeryCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAgD,UAAU,EAAqB,YAAY,EAAkB,MAAM,MAAM,CAAA;AACjJ,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC3G,OAAO,KAAK,EAAmB,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAI1D,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,GAAG,IAAI;IACpD,
|
|
1
|
+
{"version":3,"file":"LivequeryCollection.d.ts","sourceRoot":"","sources":["../src/LivequeryCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAgD,UAAU,EAAqB,YAAY,EAAkB,MAAM,MAAM,CAAA;AACjJ,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC3G,OAAO,KAAK,EAAmB,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAI1D,MAAM,MAAM,0BAA0B,CAAC,CAAC,SAAS,GAAG,IAAI;IACpD,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAA;IACrC,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAA;CACnC,CAAA;AAED,qBAAa,mBAAmB,CAAC,CAAC,SAAS,GAAG;;IAkB9B,OAAO,CAAC,MAAM;IAAmB,OAAO,CAAC,OAAO;IAhB5D,SAAgB,EAAE,SAAsC;IAKjD,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;IACvB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAEzC,SAAgB,KAAK,EAAE,eAAe,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACxE,SAAgB,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;IAC7D,SAAgB,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;IAC9D,SAAgB,OAAO,EAAE,eAAe,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAA;IACtE,SAAgB,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACtE,SAAgB,MAAM,EAAE,eAAe,CAAC,eAAe,CAAC,CAAA;IACxD,SAAgB,KAAK,EAAE,eAAe,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;gBAE5D,MAAM,EAAE,eAAe,EAAU,OAAO,GAAE,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAM;IA0BzG,UAAU,CAAC,GAAG,EAAE,MAAM;IA0IhB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAI3C,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAInD,QAAQ;IAWR,QAAQ;IAUR,UAAU,CAAC,MAAM,EAAE,MAAM;IASzB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;;;IAM7B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;;;;;IAMtC,MAAM,CAAC,EAAE,EAAE,MAAM;;;;;IAKjB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAM9C,UAAU,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC;IAGhD,UAAU;IAIV,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYvC"}
|
|
@@ -2,7 +2,7 @@ import { BehaviorSubject, debounceTime, EMPTY, filter, finalize, merge, Observab
|
|
|
2
2
|
import { LivequeryClient } from "./LivequeryClient.js";
|
|
3
3
|
import { LivequeryDocument } from "./LivequeryDocument.js";
|
|
4
4
|
export class LivequeryCollection {
|
|
5
|
-
|
|
5
|
+
client;
|
|
6
6
|
options;
|
|
7
7
|
id = (Math.random() * 1e18).toString(36);
|
|
8
8
|
#keys = new Map();
|
|
@@ -17,8 +17,8 @@ export class LivequeryCollection {
|
|
|
17
17
|
filters;
|
|
18
18
|
paging;
|
|
19
19
|
error;
|
|
20
|
-
constructor(
|
|
21
|
-
this.
|
|
20
|
+
constructor(client, options = {}) {
|
|
21
|
+
this.client = client;
|
|
22
22
|
this.options = options;
|
|
23
23
|
this.#indexes = new Map();
|
|
24
24
|
this.items = new BehaviorSubject([]);
|
|
@@ -52,7 +52,7 @@ export class LivequeryCollection {
|
|
|
52
52
|
this.collection_ref = refs.length % 2 == 0 ? refs.slice(0, -1).join('/') : ref;
|
|
53
53
|
const timer = this.options.lazy !== true && setTimeout(() => !ref.includes('undefined') && this.query(this.filters.value || {}));
|
|
54
54
|
this.#subscription?.unsubscribe();
|
|
55
|
-
this.#subscription = merge(this.options.debounce ? merge(this.#filters.pipe(debounceTime(this.options.debounce), switchMap(filters => this.query(filters)))) : EMPTY, this.
|
|
55
|
+
this.#subscription = merge(this.options.debounce ? merge(this.#filters.pipe(debounceTime(this.options.debounce), switchMap(filters => this.query(filters)))) : EMPTY, this.client.watch(this.ref, this.id, this.options.mode || 'server-first').pipe(finalize(() => {
|
|
56
56
|
timer && clearTimeout(timer);
|
|
57
57
|
}), tap(event => {
|
|
58
58
|
event.loading !== undefined && event.loading !== this.loading.value && this.loading.next(event.loading);
|
|
@@ -152,7 +152,7 @@ export class LivequeryCollection {
|
|
|
152
152
|
return p;
|
|
153
153
|
}, new Map());
|
|
154
154
|
this.filters.next(filters);
|
|
155
|
-
const cache = await this.
|
|
155
|
+
const cache = await this.client.query({
|
|
156
156
|
ref: this.ref,
|
|
157
157
|
filters,
|
|
158
158
|
collection_id: this.id
|
|
@@ -198,22 +198,22 @@ export class LivequeryCollection {
|
|
|
198
198
|
async add(payload) {
|
|
199
199
|
if (!this.collection_ref)
|
|
200
200
|
throw new Error('LivequeryCollection is not initialized with a ref');
|
|
201
|
-
return await this.
|
|
201
|
+
return await this.client.add(this.collection_ref, payload);
|
|
202
202
|
}
|
|
203
203
|
update(id, payload) {
|
|
204
204
|
if (!this.collection_ref)
|
|
205
205
|
throw new Error('LivequeryCollection is not initialized with a ref');
|
|
206
|
-
return this.
|
|
206
|
+
return this.client.update(this.collection_ref, id, payload);
|
|
207
207
|
}
|
|
208
208
|
delete(id) {
|
|
209
209
|
if (!this.collection_ref)
|
|
210
210
|
throw new Error('LivequeryCollection is not initialized with a ref');
|
|
211
|
-
return this.
|
|
211
|
+
return this.client.delete(this.collection_ref, id);
|
|
212
212
|
}
|
|
213
213
|
trigger(action, payload) {
|
|
214
214
|
if (!this.ref)
|
|
215
215
|
throw new Error('LivequeryCollection is not initialized with a ref');
|
|
216
|
-
return this.
|
|
216
|
+
return this.client.trigger({
|
|
217
217
|
action,
|
|
218
218
|
payload,
|
|
219
219
|
ref: this.ref
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LivequeryCollection.js","sourceRoot":"","sources":["../src/LivequeryCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AACjJ,OAAO,EAAE,eAAe,EAAuD,MAAM,sBAAsB,CAAA;AAE3G,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAY1D,MAAM,OAAO,mBAAmB;IAkBR;
|
|
1
|
+
{"version":3,"file":"LivequeryCollection.js","sourceRoot":"","sources":["../src/LivequeryCollection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AACjJ,OAAO,EAAE,eAAe,EAAuD,MAAM,sBAAsB,CAAA;AAE3G,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAY1D,MAAM,OAAO,mBAAmB;IAkBR;IAAiC;IAhBrC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACxD,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAA;IAClC,QAAQ,CAAqB;IAC7B,QAAQ,GAAG,IAAI,OAAO,EAAgC,CAAA;IAE/C,GAAG,CAAoB;IACvB,cAAc,CAAoB;IAEzB,KAAK,CAAmD;IACxD,OAAO,CAAsC;IAC7C,QAAQ,CAAsC;IAC9C,OAAO,CAA+C;IACtD,OAAO,CAA+C;IACtD,MAAM,CAAkC;IACxC,KAAK,CAA2D;IAEhF,YAAoB,MAAuB,EAAU,UAAkD,EAAE;QAArF,WAAM,GAAN,MAAM,CAAiB;QAAU,YAAO,GAAP,OAAO,CAA6C;QACrG,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,CAAmC,EAAE,CAAC,CAAA;QACtE,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,CAAA;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAwB,IAAI,CAAC,CAAA;QAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAA+B,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC,CAAA;QACxF,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAkB;YAC/C,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;SACb,CAAC,CAAA;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,CAA2C,IAAI,CAAC,CAAA;QAChF,IAAI,OAAO,EAAE,CAAC;YACV,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QAC1B,CAAC;IACL,CAAC;IAED,OAAO,CAAC,KAA6B;QACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;YACzC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;YACxB,OAAO,CAAC,CAAA;QACZ,CAAC,EAAE,IAAI,GAAG,EAAkB,CAAC,CAAA;IACjC,CAAC;IAGD,aAAa,GAAwB,IAAI,CAAA;IACzC,UAAU,CAAC,GAAW;QAClB,IAAI,CAAC,GAAG;YAAE,OAAM;QAChB,IAAI,OAAO,MAAM,IAAI,WAAW;YAAE,OAAM;QACxC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,IAAI,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAA;QAChI,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,CAAA;QACjC,IAAI,CAAC,aAAa,GAAG,KAAK,CACtB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CACd,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EACnC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAC5C,CACJ,CAAC,CAAC,CAAC,KAAK,EAET,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,cAAc,CAAC,CAAC,IAAI,CAC1E,QAAQ,CAAC,GAAG,EAAE;YACV,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,CAAA;QAChC,CAAC,CAAC,EACF,GAAG,CAAC,KAAK,CAAC,EAAE;YACR,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACvG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACjD,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YACpD,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC9C,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAE3C,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC;gBAAE,OAAM;YACvD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBACvD,IAAI,MAAM,CAAC,IAAI,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS;oBAAE,OAAO,IAAI,CAAA;gBACnE,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE;oBAAE,OAAO,IAAI,CAAA;gBAC3D,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAY,CAAC,CAAC,CAAA;YACjF,CAAC,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,CAAC,CAAqB,EAAE,CAAqB,EAAE,EAAE;gBAC5D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACpC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBACvB,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBACvB,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;wBACnD,IAAI,EAAE,GAAG,EAAE;4BAAE,OAAO,CAAC,KAAK,CAAA;wBAC1B,IAAI,EAAE,GAAG,EAAE;4BAAE,OAAO,KAAK,CAAA;oBAC7B,CAAC;oBACD,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;wBACnD,IAAI,EAAE,GAAG,EAAE;4BAAE,OAAO,CAAC,KAAK,CAAA;wBAC1B,IAAI,EAAE,GAAG,EAAE;4BAAE,OAAO,KAAK,CAAA;oBAC7B,CAAC;gBACL,CAAC;gBACD,OAAO,CAAC,CAAA;YACZ,CAAC,CAAA;YAED,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACzC,OAAO;oBACH,GAAG,CAAC;oBACJ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;wBACN,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;wBACpB,CAAC;qBACJ;iBACJ,CAAA;YACL,CAAC,EAAE;gBACC,KAAK,EAAE,EAAuB;gBAC9B,QAAQ,EAAE,EAAuB;gBACjC,OAAO,EAAE,EAAuB;aACnC,CAAC,CAAA;YAEF,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;gBAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACnC,MAAM,MAAM,GAAG,KAAK,IAAI,SAAS,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;gBACjE,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;gBACnD,OAAO,CAAC,CAAA;YACZ,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAEpB,MAAM,SAAS,GAAG,CACd,MAAM,CAAC,KAAK;iBACP,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBACnB,MAAM,CACH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACL,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;oBACvB,MAAM,GAAG,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,EAAc,CAAC,CAAA;oBAC5E,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;oBAChB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;gBACvB,CAAC;gBACD,OAAO,CAAC,CAAA;YACZ,CAAC,EACD;gBACI,IAAI,EAAE,EAAsC;gBAC5C,OAAO,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;aACzC,CACJ,CACR,CAAA;YAED,MAAM,cAAc,GAAG,CACnB,MAAM,CAAC,OAAO;iBACT,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBACjC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,SAAS,CAAC;iBAC3B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAC7B,CAAA;YAED,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;gBACpD,OAAO;oBACH,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;oBACpB,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;iBACxB,CAAA;YACL,CAAC,EAAE;gBACC,GAAG,aAAa;gBAChB,GAAG,SAAS,CAAC,IAAI;aACpB,CAAC,CAAA;YAEF,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;YAC9D,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAC5B,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAClD,CAAC,CAAC,CACL,CACJ,CAAC,SAAS,EAAE,CAAA;QACb,OAAO,IAAI,CAAC,aAAa,CAAA;IAC7B,CAAC;IAGD,KAAK,CAAC,MAAM,CAAC,OAAqC,EAAE,KAAc;QAC9D,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAM;QACrB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACzB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YACtD,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAY,CAAA;gBACxC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACtC,CAAC;YACD,OAAO,CAAC,CAAA;QACZ,CAAC,EAAE,IAAI,GAAG,EAAmB,CAAC,CAAA;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAI;YACrC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO;YACP,aAAa,EAAE,IAAI,CAAC,EAAE;SACzB,CAAC,CAAA;QACF,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1E,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAqC;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAqC;QACrD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,QAAQ;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAA;QACnC,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,MAAM,OAAO,GAAG;YACZ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK;YACrB,QAAQ,EAAE,IAAI,CAAC,MAAM;SACxB,CAAA;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,CAAA;IAC3C,CAAC;IAGD,KAAK,CAAC,QAAQ;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAA;QACnC,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,MAAM,OAAO,GAAG;YACZ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK;YACrB,SAAS,EAAE,IAAI,CAAC,MAAM;SACzB,CAAA;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC3B,MAAM,OAAO,GAAG;YACZ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK;YACrB,QAAQ,EAAE,MAAM;YAChB,SAAS,EAAE,MAAM;SACpB,CAAA;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAmB;QACzB,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;QAC9F,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAI,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAA;IACjE,CAAC;IAGD,MAAM,CAAC,EAAU,EAAE,OAAmB;QAClC,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;QAC9F,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAI,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;IAClE,CAAC;IAGD,MAAM,CAAC,EAAU;QACb,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;QAC9F,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IACzD,CAAC;IAED,OAAO,CAAI,MAAc,EAAE,OAA6B;QACpD,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;QACnF,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAI;YAC1B,MAAM;YACN,OAAO;YACP,GAAG,EAAE,IAAI,CAAC,GAAG;SAChB,CAA2C,CAAA;IAChD,CAAC;IAED,UAAU;QACN,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,KAA8B;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAClB,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CACpB,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAC1B,QAAQ,EAAE,EACV,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YACd,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACtB,CAAC,CAAC,CACL,CAAC,CACL,CAAC,CACL,CAAA;IACL,CAAC;CACJ"}
|