@peerbit/indexer-interface 0.0.1-cccc078

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.
@@ -0,0 +1,579 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { deserialize, field, fixedArray, serialize, variant, vec, } from "@dao-xyz/borsh";
11
+ import { randomBytes, sha256Base64Sync, toBase64 } from "@peerbit/crypto";
12
+ import { v4 as uuid } from "uuid";
13
+ import { BigUnsignedIntegerValue, IntegerValue, UnsignedIntegerValue, } from "./id.js";
14
+ export var Compare;
15
+ (function (Compare) {
16
+ Compare[Compare["Equal"] = 0] = "Equal";
17
+ Compare[Compare["Greater"] = 1] = "Greater";
18
+ Compare[Compare["GreaterOrEqual"] = 2] = "GreaterOrEqual";
19
+ Compare[Compare["Less"] = 3] = "Less";
20
+ Compare[Compare["LessOrEqual"] = 4] = "LessOrEqual";
21
+ })(Compare || (Compare = {}));
22
+ export const compare = (test, compare, value) => {
23
+ switch (compare) {
24
+ case Compare.Equal:
25
+ // eslint-disable-next-line eqeqeq
26
+ return test == value; // == because with want bigint == number at some cases
27
+ case Compare.Greater:
28
+ return test > value;
29
+ case Compare.GreaterOrEqual:
30
+ return test >= value;
31
+ case Compare.Less:
32
+ return test < value;
33
+ case Compare.LessOrEqual:
34
+ return test <= value;
35
+ default:
36
+ // eslint-disable-next-line no-console
37
+ console.warn("Unexpected compare");
38
+ return false;
39
+ }
40
+ };
41
+ /// ----- QUERY -----
42
+ export class Query {
43
+ clone() {
44
+ return deserialize(serialize(this), this.constructor);
45
+ }
46
+ }
47
+ export var SortDirection;
48
+ (function (SortDirection) {
49
+ SortDirection[SortDirection["ASC"] = 0] = "ASC";
50
+ SortDirection[SortDirection["DESC"] = 1] = "DESC";
51
+ })(SortDirection || (SortDirection = {}));
52
+ let Sort = class Sort {
53
+ key;
54
+ direction;
55
+ constructor(properties) {
56
+ this.key = Array.isArray(properties.key)
57
+ ? properties.key
58
+ : [properties.key];
59
+ if (properties.direction) {
60
+ if (properties.direction === "asc") {
61
+ this.direction = SortDirection.ASC;
62
+ }
63
+ else if (properties.direction === "desc") {
64
+ this.direction = SortDirection.DESC;
65
+ }
66
+ else {
67
+ this.direction = properties.direction;
68
+ }
69
+ }
70
+ else {
71
+ this.direction = SortDirection.ASC;
72
+ }
73
+ }
74
+ };
75
+ __decorate([
76
+ field({ type: vec("string") }),
77
+ __metadata("design:type", Array)
78
+ ], Sort.prototype, "key", void 0);
79
+ __decorate([
80
+ field({ type: "u8" }),
81
+ __metadata("design:type", Number)
82
+ ], Sort.prototype, "direction", void 0);
83
+ Sort = __decorate([
84
+ variant(0),
85
+ __metadata("design:paramtypes", [Object])
86
+ ], Sort);
87
+ export { Sort };
88
+ export class AbstractSearchRequest {
89
+ }
90
+ /**
91
+ * Search with query and collect with sort conditionss
92
+ */
93
+ const toArray = (arr) => (arr ? (Array.isArray(arr) ? arr : [arr]) : undefined) || [];
94
+ let SearchRequest = class SearchRequest extends AbstractSearchRequest {
95
+ id; // Session id
96
+ query;
97
+ sort;
98
+ fetch;
99
+ constructor(props) {
100
+ super();
101
+ this.id = randomBytes(32);
102
+ this.query = props?.query ? toQuery(props.query) : [];
103
+ this.sort = toArray(props?.sort);
104
+ this.fetch = props?.fetch ?? 10; // default fetch 10 documents
105
+ }
106
+ _idString;
107
+ get idString() {
108
+ return this._idString || (this._idString = sha256Base64Sync(this.id));
109
+ }
110
+ };
111
+ __decorate([
112
+ field({ type: fixedArray("u8", 32) }),
113
+ __metadata("design:type", Uint8Array)
114
+ ], SearchRequest.prototype, "id", void 0);
115
+ __decorate([
116
+ field({ type: vec(Query) }),
117
+ __metadata("design:type", Array)
118
+ ], SearchRequest.prototype, "query", void 0);
119
+ __decorate([
120
+ field({ type: vec(Sort) }),
121
+ __metadata("design:type", Array)
122
+ ], SearchRequest.prototype, "sort", void 0);
123
+ __decorate([
124
+ field({ type: "u32" }),
125
+ __metadata("design:type", Number)
126
+ ], SearchRequest.prototype, "fetch", void 0);
127
+ SearchRequest = __decorate([
128
+ variant(0),
129
+ __metadata("design:paramtypes", [Object])
130
+ ], SearchRequest);
131
+ export { SearchRequest };
132
+ /**
133
+ * Collect documents from peers using 'collect' session ids. This is used for distributed sorting internally
134
+ */
135
+ let CollectNextRequest = class CollectNextRequest extends AbstractSearchRequest {
136
+ id; // collect with id
137
+ amount; // number of documents to ask for
138
+ constructor(properties) {
139
+ super();
140
+ this.id = properties.id;
141
+ this.amount = properties.amount;
142
+ }
143
+ _idString;
144
+ get idString() {
145
+ return this._idString || (this._idString = sha256Base64Sync(this.id));
146
+ }
147
+ };
148
+ __decorate([
149
+ field({ type: fixedArray("u8", 32) }),
150
+ __metadata("design:type", Uint8Array)
151
+ ], CollectNextRequest.prototype, "id", void 0);
152
+ __decorate([
153
+ field({ type: "u32" }),
154
+ __metadata("design:type", Number)
155
+ ], CollectNextRequest.prototype, "amount", void 0);
156
+ CollectNextRequest = __decorate([
157
+ variant(1),
158
+ __metadata("design:paramtypes", [Object])
159
+ ], CollectNextRequest);
160
+ export { CollectNextRequest };
161
+ let CloseIteratorRequest = class CloseIteratorRequest extends AbstractSearchRequest {
162
+ id; // collect with id
163
+ constructor(properties) {
164
+ super();
165
+ this.id = properties.id;
166
+ }
167
+ _idString;
168
+ get idString() {
169
+ return this._idString || (this._idString = sha256Base64Sync(this.id));
170
+ }
171
+ };
172
+ __decorate([
173
+ field({ type: fixedArray("u8", 32) }),
174
+ __metadata("design:type", Uint8Array)
175
+ ], CloseIteratorRequest.prototype, "id", void 0);
176
+ CloseIteratorRequest = __decorate([
177
+ variant(2),
178
+ __metadata("design:paramtypes", [Object])
179
+ ], CloseIteratorRequest);
180
+ export { CloseIteratorRequest };
181
+ let LogicalQuery = class LogicalQuery extends Query {
182
+ };
183
+ LogicalQuery = __decorate([
184
+ variant(1)
185
+ ], LogicalQuery);
186
+ export { LogicalQuery };
187
+ let And = class And extends LogicalQuery {
188
+ and;
189
+ constructor(and) {
190
+ super();
191
+ this.and = and;
192
+ if (this.and.length === 0) {
193
+ throw new Error("And query must have at least one query");
194
+ }
195
+ }
196
+ };
197
+ __decorate([
198
+ field({ type: vec(Query) }),
199
+ __metadata("design:type", Array)
200
+ ], And.prototype, "and", void 0);
201
+ And = __decorate([
202
+ variant(0),
203
+ __metadata("design:paramtypes", [Array])
204
+ ], And);
205
+ export { And };
206
+ let Or = class Or extends LogicalQuery {
207
+ or;
208
+ constructor(or) {
209
+ super();
210
+ this.or = or;
211
+ if (this.or.length === 0) {
212
+ throw new Error("Or query must have at least one query");
213
+ }
214
+ }
215
+ };
216
+ __decorate([
217
+ field({ type: vec(Query) }),
218
+ __metadata("design:type", Array)
219
+ ], Or.prototype, "or", void 0);
220
+ Or = __decorate([
221
+ variant(1),
222
+ __metadata("design:paramtypes", [Array])
223
+ ], Or);
224
+ export { Or };
225
+ let Not = class Not extends LogicalQuery {
226
+ not;
227
+ constructor(not) {
228
+ super();
229
+ this.not = not;
230
+ }
231
+ };
232
+ __decorate([
233
+ field({ type: Query }),
234
+ __metadata("design:type", Query)
235
+ ], Not.prototype, "not", void 0);
236
+ Not = __decorate([
237
+ variant(2),
238
+ __metadata("design:paramtypes", [Query])
239
+ ], Not);
240
+ export { Not };
241
+ let StateQuery = class StateQuery extends Query {
242
+ };
243
+ StateQuery = __decorate([
244
+ variant(2)
245
+ ], StateQuery);
246
+ export { StateQuery };
247
+ let StateFieldQuery = class StateFieldQuery extends StateQuery {
248
+ key;
249
+ constructor(props) {
250
+ super();
251
+ this.key = Array.isArray(props.key) ? props.key : [props.key];
252
+ }
253
+ };
254
+ __decorate([
255
+ field({ type: vec("string") }),
256
+ __metadata("design:type", Array)
257
+ ], StateFieldQuery.prototype, "key", void 0);
258
+ StateFieldQuery = __decorate([
259
+ variant(1),
260
+ __metadata("design:paramtypes", [Object])
261
+ ], StateFieldQuery);
262
+ export { StateFieldQuery };
263
+ let ByteMatchQuery = class ByteMatchQuery extends StateFieldQuery {
264
+ value;
265
+ _reserved; // Replicate MemoryCompare query with this?
266
+ constructor(props) {
267
+ super(props);
268
+ this.value = props.value;
269
+ this._reserved = 0;
270
+ }
271
+ _valueString;
272
+ /**
273
+ * value `asString`
274
+ */
275
+ get valueString() {
276
+ return this._valueString ?? (this._valueString = toBase64(this.value));
277
+ }
278
+ };
279
+ __decorate([
280
+ field({ type: Uint8Array }),
281
+ __metadata("design:type", Uint8Array)
282
+ ], ByteMatchQuery.prototype, "value", void 0);
283
+ __decorate([
284
+ field({ type: "u8" })
285
+ // @ts-expect-error: unused
286
+ ,
287
+ __metadata("design:type", Number)
288
+ ], ByteMatchQuery.prototype, "_reserved", void 0);
289
+ ByteMatchQuery = __decorate([
290
+ variant(1),
291
+ __metadata("design:paramtypes", [Object])
292
+ ], ByteMatchQuery);
293
+ export { ByteMatchQuery };
294
+ export var StringMatchMethod;
295
+ (function (StringMatchMethod) {
296
+ StringMatchMethod[StringMatchMethod["exact"] = 0] = "exact";
297
+ StringMatchMethod[StringMatchMethod["prefix"] = 1] = "prefix";
298
+ StringMatchMethod[StringMatchMethod["contains"] = 2] = "contains";
299
+ })(StringMatchMethod || (StringMatchMethod = {}));
300
+ let StringMatch = class StringMatch extends StateFieldQuery {
301
+ value;
302
+ method;
303
+ caseInsensitive;
304
+ constructor(props) {
305
+ super(props);
306
+ this.value = props.value;
307
+ this.method = props.method ?? StringMatchMethod.exact;
308
+ this.caseInsensitive = props.caseInsensitive ?? false;
309
+ }
310
+ };
311
+ __decorate([
312
+ field({ type: "string" }),
313
+ __metadata("design:type", String)
314
+ ], StringMatch.prototype, "value", void 0);
315
+ __decorate([
316
+ field({ type: "u8" }),
317
+ __metadata("design:type", Number)
318
+ ], StringMatch.prototype, "method", void 0);
319
+ __decorate([
320
+ field({ type: "bool" }),
321
+ __metadata("design:type", Boolean)
322
+ ], StringMatch.prototype, "caseInsensitive", void 0);
323
+ StringMatch = __decorate([
324
+ variant(2),
325
+ __metadata("design:paramtypes", [Object])
326
+ ], StringMatch);
327
+ export { StringMatch };
328
+ let IntegerCompare = class IntegerCompare extends StateFieldQuery {
329
+ compare;
330
+ value;
331
+ constructor(props) {
332
+ super(props);
333
+ if (props.value instanceof IntegerValue) {
334
+ this.value = props.value;
335
+ }
336
+ else {
337
+ if (typeof props.value === "bigint") {
338
+ this.value = new BigUnsignedIntegerValue(props.value);
339
+ }
340
+ else {
341
+ this.value = new UnsignedIntegerValue(props.value);
342
+ }
343
+ }
344
+ if (typeof props.compare === "string") {
345
+ if (props.compare === "eq") {
346
+ this.compare = Compare.Equal;
347
+ }
348
+ else if (props.compare === "gt") {
349
+ this.compare = Compare.Greater;
350
+ }
351
+ else if (props.compare === "gte") {
352
+ this.compare = Compare.GreaterOrEqual;
353
+ }
354
+ else if (props.compare === "lt") {
355
+ this.compare = Compare.Less;
356
+ }
357
+ else if (props.compare === "lte") {
358
+ this.compare = Compare.LessOrEqual;
359
+ }
360
+ else {
361
+ throw new Error("Invalid compare string");
362
+ }
363
+ }
364
+ else {
365
+ this.compare = props.compare;
366
+ }
367
+ }
368
+ };
369
+ __decorate([
370
+ field({ type: "u8" }),
371
+ __metadata("design:type", Number)
372
+ ], IntegerCompare.prototype, "compare", void 0);
373
+ __decorate([
374
+ field({ type: IntegerValue }),
375
+ __metadata("design:type", IntegerValue)
376
+ ], IntegerCompare.prototype, "value", void 0);
377
+ IntegerCompare = __decorate([
378
+ variant(3),
379
+ __metadata("design:paramtypes", [Object])
380
+ ], IntegerCompare);
381
+ export { IntegerCompare };
382
+ let IsNull = class IsNull extends StateFieldQuery {
383
+ };
384
+ IsNull = __decorate([
385
+ variant(4)
386
+ ], IsNull);
387
+ export { IsNull };
388
+ let BoolQuery = class BoolQuery extends StateFieldQuery {
389
+ value;
390
+ constructor(props) {
391
+ super(props);
392
+ this.value = props.value;
393
+ }
394
+ };
395
+ __decorate([
396
+ field({ type: "bool" }),
397
+ __metadata("design:type", Boolean)
398
+ ], BoolQuery.prototype, "value", void 0);
399
+ BoolQuery = __decorate([
400
+ variant(5),
401
+ __metadata("design:paramtypes", [Object])
402
+ ], BoolQuery);
403
+ export { BoolQuery };
404
+ let Nested = class Nested extends Query {
405
+ id;
406
+ path;
407
+ query;
408
+ constructor(props) {
409
+ super();
410
+ this.path = props.path;
411
+ this.id = props.id ?? uuid();
412
+ this.query = toQuery(props.query);
413
+ }
414
+ };
415
+ __decorate([
416
+ field({ type: "string" }),
417
+ __metadata("design:type", String)
418
+ ], Nested.prototype, "id", void 0);
419
+ __decorate([
420
+ field({ type: "string" }),
421
+ __metadata("design:type", String)
422
+ ], Nested.prototype, "path", void 0);
423
+ __decorate([
424
+ field({ type: vec(Query) }),
425
+ __metadata("design:type", Array)
426
+ ], Nested.prototype, "query", void 0);
427
+ Nested = __decorate([
428
+ variant(2),
429
+ __metadata("design:paramtypes", [Object])
430
+ ], Nested);
431
+ export { Nested };
432
+ // TODO MemoryCompareQuery can be replaces with ByteMatchQuery? Or Nesteed Queries + ByteMatchQuery?
433
+ /* @variant(0)
434
+ export class MemoryCompare {
435
+ @field({ type: Uint8Array })
436
+ bytes: Uint8Array;
437
+
438
+ @field({ type: "u64" })
439
+ offset: bigint;
440
+
441
+ constructor(opts?: { bytes: Uint8Array; offset: bigint }) {
442
+ if (opts) {
443
+ this.bytes = opts.bytes;
444
+ this.offset = opts.offset;
445
+ }
446
+ }
447
+ }
448
+
449
+ @variant(4)
450
+ export class MemoryCompareQuery extends Query {
451
+ @field({ type: vec(MemoryCompare) })
452
+ compares: MemoryCompare[];
453
+
454
+ constructor(opts?: { compares: MemoryCompare[] }) {
455
+ super();
456
+ if (opts) {
457
+ this.compares = opts.compares;
458
+ }
459
+ }
460
+ } */
461
+ export class AbstractAggregationRequest {
462
+ }
463
+ let SumRequest = class SumRequest extends AbstractAggregationRequest {
464
+ id;
465
+ query;
466
+ key;
467
+ constructor(props) {
468
+ super();
469
+ this.id = randomBytes(32);
470
+ this.query = props.query ? toQuery(props.query) : [];
471
+ this.key = Array.isArray(props.key) ? props.key : [props.key];
472
+ }
473
+ };
474
+ __decorate([
475
+ field({ type: fixedArray("u8", 32) }),
476
+ __metadata("design:type", Uint8Array)
477
+ ], SumRequest.prototype, "id", void 0);
478
+ __decorate([
479
+ field({ type: vec(Query) }),
480
+ __metadata("design:type", Array)
481
+ ], SumRequest.prototype, "query", void 0);
482
+ __decorate([
483
+ field({ type: vec("string") }),
484
+ __metadata("design:type", Array)
485
+ ], SumRequest.prototype, "key", void 0);
486
+ SumRequest = __decorate([
487
+ variant(0),
488
+ __metadata("design:paramtypes", [Object])
489
+ ], SumRequest);
490
+ export { SumRequest };
491
+ export class AbstractCountRequest {
492
+ }
493
+ let CountRequest = class CountRequest extends AbstractCountRequest {
494
+ id; // Session id
495
+ query;
496
+ constructor(props = { query: [] }) {
497
+ super();
498
+ this.id = randomBytes(32);
499
+ this.query = toQuery(props.query);
500
+ }
501
+ };
502
+ __decorate([
503
+ field({ type: fixedArray("u8", 32) }),
504
+ __metadata("design:type", Uint8Array)
505
+ ], CountRequest.prototype, "id", void 0);
506
+ __decorate([
507
+ field({ type: vec(Query) }),
508
+ __metadata("design:type", Array)
509
+ ], CountRequest.prototype, "query", void 0);
510
+ CountRequest = __decorate([
511
+ variant(0),
512
+ __metadata("design:paramtypes", [Object])
513
+ ], CountRequest);
514
+ export { CountRequest };
515
+ export class AbstractDeleteRequest {
516
+ }
517
+ let DeleteRequest = class DeleteRequest extends AbstractDeleteRequest {
518
+ id; // Session id
519
+ query;
520
+ constructor(props) {
521
+ super();
522
+ this.id = randomBytes(32);
523
+ this.query = toQuery(props.query);
524
+ }
525
+ };
526
+ __decorate([
527
+ field({ type: fixedArray("u8", 32) }),
528
+ __metadata("design:type", Uint8Array)
529
+ ], DeleteRequest.prototype, "id", void 0);
530
+ __decorate([
531
+ field({ type: vec(Query) }),
532
+ __metadata("design:type", Array)
533
+ ], DeleteRequest.prototype, "query", void 0);
534
+ DeleteRequest = __decorate([
535
+ variant(0),
536
+ __metadata("design:paramtypes", [Object])
537
+ ], DeleteRequest);
538
+ export { DeleteRequest };
539
+ const toQuery = (query) => {
540
+ if (Array.isArray(query)) {
541
+ return query;
542
+ }
543
+ if (query instanceof Query) {
544
+ return [query];
545
+ }
546
+ return convertQueryRecordToObject(query);
547
+ };
548
+ const convertQueryRecordToObject = (obj, queries = [], path) => {
549
+ for (const [k, v] of Object.entries(obj)) {
550
+ let mergedKey = path ? [...path, k] : [k];
551
+ if (typeof v === "object" && v instanceof Uint8Array === false) {
552
+ convertQueryRecordToObject(v, queries, mergedKey);
553
+ }
554
+ else {
555
+ const matcher = getMatcher(mergedKey, v);
556
+ queries.push(matcher);
557
+ }
558
+ }
559
+ return queries;
560
+ };
561
+ export const getMatcher = (key, value) => {
562
+ if (typeof value === "string") {
563
+ return new StringMatch({ key, value });
564
+ }
565
+ else if (typeof value === "bigint" || typeof value === "number") {
566
+ return new IntegerCompare({ key, value, compare: Compare.Equal });
567
+ }
568
+ else if (typeof value === "boolean") {
569
+ return new BoolQuery({ key, value });
570
+ }
571
+ else if (value == null) {
572
+ return new IsNull({ key });
573
+ }
574
+ else if (value instanceof Uint8Array) {
575
+ return new ByteMatchQuery({ key, value });
576
+ }
577
+ throw new Error("Invalid query value");
578
+ };
579
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type SearchRequest } from "./query.js";
2
+ export type IDocumentStore<T> = {
3
+ index: {
4
+ search: (query: SearchRequest) => Promise<T[]>;
5
+ };
6
+ };
7
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC/B,KAAK,EAAE;QAAE,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;KAAE,CAAC;CAC1D,CAAC"}
@@ -0,0 +1,2 @@
1
+ import {} from "./query.js";
2
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type AbstractType, type CustomField, type SimpleField } from "@dao-xyz/borsh";
2
+ import { type Sort } from "./query.js";
3
+ export declare const stringArraysEquals: (a: string[] | string, b: string[] | string) => boolean;
4
+ export declare const extractSortCompare: (a: Record<string, any>, b: Record<string, any>, sorts: Sort[], aliases?: Map<string, string>) => number;
5
+ export declare const sortCompare: (av: any, bv: any) => number;
6
+ export declare const extractFieldValue: <T>(doc: any, path: string[], aliases?: Map<string, string>) => T;
7
+ export declare function id(properties: SimpleField | CustomField<any>): (target: any, name: string) => void;
8
+ export declare const getIdProperty: (clazz: AbstractType<any>) => string[] | undefined;
9
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,WAAW,EAGhB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,IAAI,EAAiB,MAAM,YAAY,CAAC;AAEtD,eAAO,MAAM,kBAAkB,MAC3B,MAAM,EAAE,GAAG,MAAM,KACjB,MAAM,EAAE,GAAG,MAAM,YAWpB,CAAC;AAaF,eAAO,MAAM,kBAAkB,MAC3B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KACnB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SACf,IAAI,EAAE,YACH,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,WAe7B,CAAC;AAEF,eAAO,MAAM,WAAW,OAAQ,GAAG,MAAM,GAAG,WAU3C,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,CAAC,OAC7B,GAAG,QACF,MAAM,EAAE,YACJ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAC3B,CAKF,CAAC;AAIF,wBAAgB,EAAE,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,YAE5C,GAAG,QAAQ,MAAM,UAIjC;AAED,eAAO,MAAM,aAAa,UAClB,YAAY,CAAC,GAAG,CAAC,KACtB,MAAM,EAAE,GAAG,SAuBb,CAAC"}