@reifydb/core 0.1.6 → 0.2.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/dist/index.d.ts +4 -28
- package/dist/index.js +0 -69
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/constant.d.ts +0 -7
- package/dist/constant.d.ts.map +0 -1
- package/dist/constant.js +0 -7
- package/dist/constant.js.map +0 -1
- package/dist/decoder.d.ts +0 -8
- package/dist/decoder.d.ts.map +0 -1
- package/dist/decoder.js +0 -59
- package/dist/decoder.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/schema/builder.d.ts +0 -45
- package/dist/schema/builder.d.ts.map +0 -1
- package/dist/schema/builder.js +0 -114
- package/dist/schema/builder.js.map +0 -1
- package/dist/schema/index.d.ts +0 -11
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/schema/index.js +0 -12
- package/dist/schema/index.js.map +0 -1
- package/dist/schema/inference.d.ts +0 -16
- package/dist/schema/inference.d.ts.map +0 -1
- package/dist/schema/inference.js +0 -7
- package/dist/schema/inference.js.map +0 -1
- package/dist/schema/parser.d.ts +0 -8
- package/dist/schema/parser.d.ts.map +0 -1
- package/dist/schema/parser.js +0 -96
- package/dist/schema/parser.js.map +0 -1
- package/dist/schema/simple-test.d.ts +0 -7
- package/dist/schema/simple-test.d.ts.map +0 -1
- package/dist/schema/simple-test.js +0 -26
- package/dist/schema/simple-test.js.map +0 -1
- package/dist/schema/test-refactor.d.ts +0 -7
- package/dist/schema/test-refactor.d.ts.map +0 -1
- package/dist/schema/test-refactor.js +0 -97
- package/dist/schema/test-refactor.js.map +0 -1
- package/dist/schema/types.d.ts +0 -27
- package/dist/schema/types.d.ts.map +0 -1
- package/dist/schema/types.js +0 -7
- package/dist/schema/types.js.map +0 -1
- package/dist/schema/validator.d.ts +0 -8
- package/dist/schema/validator.d.ts.map +0 -1
- package/dist/schema/validator.js +0 -79
- package/dist/schema/validator.js.map +0 -1
- package/dist/value/blob.d.ts +0 -85
- package/dist/value/blob.d.ts.map +0 -1
- package/dist/value/blob.js +0 -255
- package/dist/value/blob.js.map +0 -1
- package/dist/value/bool.d.ts +0 -16
- package/dist/value/bool.d.ts.map +0 -1
- package/dist/value/bool.js +0 -46
- package/dist/value/bool.js.map +0 -1
- package/dist/value/date.d.ts +0 -71
- package/dist/value/date.d.ts.map +0 -1
- package/dist/value/date.js +0 -261
- package/dist/value/date.js.map +0 -1
- package/dist/value/datetime.d.ts +0 -99
- package/dist/value/datetime.d.ts.map +0 -1
- package/dist/value/datetime.js +0 -401
- package/dist/value/datetime.js.map +0 -1
- package/dist/value/float4.d.ts +0 -19
- package/dist/value/float4.d.ts.map +0 -1
- package/dist/value/float4.js +0 -68
- package/dist/value/float4.js.map +0 -1
- package/dist/value/float8.d.ts +0 -16
- package/dist/value/float8.d.ts.map +0 -1
- package/dist/value/float8.js +0 -44
- package/dist/value/float8.js.map +0 -1
- package/dist/value/index.d.ts +0 -38
- package/dist/value/index.d.ts.map +0 -1
- package/dist/value/index.js +0 -31
- package/dist/value/index.js.map +0 -1
- package/dist/value/int1.d.ts +0 -18
- package/dist/value/int1.d.ts.map +0 -1
- package/dist/value/int1.js +0 -46
- package/dist/value/int1.js.map +0 -1
- package/dist/value/int16.d.ts +0 -18
- package/dist/value/int16.d.ts.map +0 -1
- package/dist/value/int16.js +0 -67
- package/dist/value/int16.js.map +0 -1
- package/dist/value/int2.d.ts +0 -18
- package/dist/value/int2.d.ts.map +0 -1
- package/dist/value/int2.js +0 -46
- package/dist/value/int2.js.map +0 -1
- package/dist/value/int4.d.ts +0 -18
- package/dist/value/int4.d.ts.map +0 -1
- package/dist/value/int4.js +0 -46
- package/dist/value/int4.js.map +0 -1
- package/dist/value/int8.d.ts +0 -18
- package/dist/value/int8.d.ts.map +0 -1
- package/dist/value/int8.js +0 -53
- package/dist/value/int8.js.map +0 -1
- package/dist/value/interval.d.ts +0 -144
- package/dist/value/interval.d.ts.map +0 -1
- package/dist/value/interval.js +0 -357
- package/dist/value/interval.js.map +0 -1
- package/dist/value/rowid.d.ts +0 -18
- package/dist/value/rowid.d.ts.map +0 -1
- package/dist/value/rowid.js +0 -53
- package/dist/value/rowid.js.map +0 -1
- package/dist/value/time.d.ts +0 -74
- package/dist/value/time.d.ts.map +0 -1
- package/dist/value/time.js +0 -214
- package/dist/value/time.js.map +0 -1
- package/dist/value/uint1.d.ts +0 -18
- package/dist/value/uint1.d.ts.map +0 -1
- package/dist/value/uint1.js +0 -46
- package/dist/value/uint1.js.map +0 -1
- package/dist/value/uint16.d.ts +0 -18
- package/dist/value/uint16.d.ts.map +0 -1
- package/dist/value/uint16.js +0 -67
- package/dist/value/uint16.js.map +0 -1
- package/dist/value/uint2.d.ts +0 -18
- package/dist/value/uint2.d.ts.map +0 -1
- package/dist/value/uint2.js +0 -46
- package/dist/value/uint2.js.map +0 -1
- package/dist/value/uint4.d.ts +0 -18
- package/dist/value/uint4.d.ts.map +0 -1
- package/dist/value/uint4.js +0 -46
- package/dist/value/uint4.js.map +0 -1
- package/dist/value/uint8.d.ts +0 -19
- package/dist/value/uint8.d.ts.map +0 -1
- package/dist/value/uint8.js +0 -58
- package/dist/value/uint8.js.map +0 -1
- package/dist/value/undefined.d.ts +0 -48
- package/dist/value/undefined.d.ts.map +0 -1
- package/dist/value/undefined.js +0 -77
- package/dist/value/undefined.js.map +0 -1
- package/dist/value/utf8.d.ts +0 -16
- package/dist/value/utf8.d.ts.map +0 -1
- package/dist/value/utf8.js +0 -39
- package/dist/value/utf8.js.map +0 -1
- package/dist/value/uuid4.d.ts +0 -69
- package/dist/value/uuid4.d.ts.map +0 -1
- package/dist/value/uuid4.js +0 -162
- package/dist/value/uuid4.js.map +0 -1
- package/dist/value/uuid7.d.ts +0 -74
- package/dist/value/uuid7.d.ts.map +0 -1
- package/dist/value/uuid7.js +0 -175
- package/dist/value/uuid7.js.map +0 -1
package/dist/value/uuid7.js
DELETED
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MIT License
|
|
3
|
-
* Copyright (c) 2025 ReifyDB
|
|
4
|
-
* See license.md file for full license text
|
|
5
|
-
*/
|
|
6
|
-
import { v7 as uuidv7, NIL as NIL_UUID, validate, version } from 'uuid';
|
|
7
|
-
import { UNDEFINED_VALUE } from "../constant";
|
|
8
|
-
/**
|
|
9
|
-
* A UUID version 7 (timestamp-based) value type
|
|
10
|
-
*/
|
|
11
|
-
export class Uuid7Value {
|
|
12
|
-
constructor(value) {
|
|
13
|
-
this.type = "Uuid7";
|
|
14
|
-
if (value !== undefined) {
|
|
15
|
-
if (typeof value !== 'string') {
|
|
16
|
-
throw new Error(`Uuid7 value must be a string, got ${typeof value}`);
|
|
17
|
-
}
|
|
18
|
-
// Validate UUID format
|
|
19
|
-
if (!validate(value)) {
|
|
20
|
-
throw new Error(`Invalid UUID format: ${value}`);
|
|
21
|
-
}
|
|
22
|
-
// Check version (allow v7 or nil UUID)
|
|
23
|
-
const ver = version(value);
|
|
24
|
-
if (value !== NIL_UUID && ver !== 7) {
|
|
25
|
-
throw new Error(`Invalid UUID version for Uuid7: expected v7, got v${ver}`);
|
|
26
|
-
}
|
|
27
|
-
this.uuid = value.toLowerCase();
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
this.uuid = undefined;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Generate a new timestamp-based UUID v7
|
|
35
|
-
*/
|
|
36
|
-
static generate() {
|
|
37
|
-
return new Uuid7Value(uuidv7());
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Create a new Uuid7Value from a string
|
|
41
|
-
*/
|
|
42
|
-
static new(uuid) {
|
|
43
|
-
return new Uuid7Value(uuid);
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Get the nil UUID (all zeros)
|
|
47
|
-
*/
|
|
48
|
-
static nil() {
|
|
49
|
-
return new Uuid7Value(NIL_UUID);
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Get default Uuid7Value (nil UUID)
|
|
53
|
-
*/
|
|
54
|
-
static default() {
|
|
55
|
-
return Uuid7Value.nil();
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Parse a UUID string
|
|
59
|
-
*/
|
|
60
|
-
static parse(str) {
|
|
61
|
-
const trimmed = str.trim();
|
|
62
|
-
if (trimmed === '' || trimmed === UNDEFINED_VALUE) {
|
|
63
|
-
return new Uuid7Value(undefined);
|
|
64
|
-
}
|
|
65
|
-
// Try to parse as UUID
|
|
66
|
-
if (!validate(trimmed)) {
|
|
67
|
-
throw new Error(`Cannot parse "${str}" as Uuid7`);
|
|
68
|
-
}
|
|
69
|
-
const ver = version(trimmed);
|
|
70
|
-
if (trimmed !== NIL_UUID && ver !== 7) {
|
|
71
|
-
throw new Error(`Cannot parse "${str}" as Uuid7: wrong version (v${ver})`);
|
|
72
|
-
}
|
|
73
|
-
return new Uuid7Value(trimmed);
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Get the UUID string
|
|
77
|
-
*/
|
|
78
|
-
asString() {
|
|
79
|
-
return this.uuid;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Get the UUID as bytes (16-byte array)
|
|
83
|
-
*/
|
|
84
|
-
asBytes() {
|
|
85
|
-
if (this.uuid === undefined)
|
|
86
|
-
return undefined;
|
|
87
|
-
// Remove hyphens and convert hex to bytes
|
|
88
|
-
const hex = this.uuid.replace(/-/g, '');
|
|
89
|
-
const bytes = new Uint8Array(16);
|
|
90
|
-
for (let i = 0; i < 16; i++) {
|
|
91
|
-
bytes[i] = parseInt(hex.substring(i * 2, i * 2 + 2), 16);
|
|
92
|
-
}
|
|
93
|
-
return bytes;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Extract the timestamp from UUID v7 (milliseconds since Unix epoch)
|
|
97
|
-
*/
|
|
98
|
-
getTimestamp() {
|
|
99
|
-
if (this.uuid === undefined || this.uuid === NIL_UUID)
|
|
100
|
-
return undefined;
|
|
101
|
-
// UUID v7 has a 48-bit timestamp in the first 6 bytes
|
|
102
|
-
const hex = this.uuid.replace(/-/g, '');
|
|
103
|
-
const timestampHex = hex.substring(0, 12);
|
|
104
|
-
const timestamp = parseInt(timestampHex, 16);
|
|
105
|
-
return timestamp;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Check if this is the nil UUID
|
|
109
|
-
*/
|
|
110
|
-
isNil() {
|
|
111
|
-
return this.uuid === NIL_UUID;
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Get the UUID version
|
|
115
|
-
*/
|
|
116
|
-
getVersion() {
|
|
117
|
-
if (this.uuid === undefined)
|
|
118
|
-
return undefined;
|
|
119
|
-
return version(this.uuid);
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Format as string
|
|
123
|
-
*/
|
|
124
|
-
toString() {
|
|
125
|
-
if (this.uuid === undefined) {
|
|
126
|
-
return 'undefined';
|
|
127
|
-
}
|
|
128
|
-
return this.uuid;
|
|
129
|
-
}
|
|
130
|
-
valueOf() {
|
|
131
|
-
return this.uuid;
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Get the internal representation
|
|
135
|
-
*/
|
|
136
|
-
get value() {
|
|
137
|
-
return this.valueOf();
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Compare two UUID7 values for equality
|
|
141
|
-
*/
|
|
142
|
-
equals(other) {
|
|
143
|
-
return this.uuid === other.uuid;
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Compare two UUID7 values (for ordering)
|
|
147
|
-
* UUID v7 has timestamp-based ordering for UUIDs generated close in time
|
|
148
|
-
*/
|
|
149
|
-
compare(other) {
|
|
150
|
-
if (this.uuid === undefined || other.uuid === undefined) {
|
|
151
|
-
if (this.uuid === other.uuid)
|
|
152
|
-
return 0;
|
|
153
|
-
if (this.uuid === undefined)
|
|
154
|
-
return -1;
|
|
155
|
-
return 1;
|
|
156
|
-
}
|
|
157
|
-
// Compare as bytes for consistent ordering
|
|
158
|
-
const thisBytes = this.asBytes();
|
|
159
|
-
const otherBytes = other.asBytes();
|
|
160
|
-
for (let i = 0; i < 16; i++) {
|
|
161
|
-
if (thisBytes[i] < otherBytes[i])
|
|
162
|
-
return -1;
|
|
163
|
-
if (thisBytes[i] > otherBytes[i])
|
|
164
|
-
return 1;
|
|
165
|
-
}
|
|
166
|
-
return 0;
|
|
167
|
-
}
|
|
168
|
-
encode() {
|
|
169
|
-
return {
|
|
170
|
-
type: this.type,
|
|
171
|
-
value: this.value === undefined ? UNDEFINED_VALUE : this.toString()
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
//# sourceMappingURL=uuid7.js.map
|
package/dist/value/uuid7.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"uuid7.js","sourceRoot":"","sources":["../../src/value/uuid7.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,MAAM,OAAO,UAAU;IAInB,YAAY,KAAc;QAHjB,SAAI,GAAS,OAAgB,CAAC;QAInC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,KAAK,EAAE,CAAC,CAAC;YACzE,CAAC;YAED,uBAAuB;YACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC;YACrD,CAAC;YAED,uCAAuC;YACvC,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,KAAK,KAAK,QAAQ,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,qDAAqD,GAAG,EAAE,CAAC,CAAC;YAChF,CAAC;YAED,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QAC1B,CAAC;IACL,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ;QACX,OAAO,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,IAAY;QACnB,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,GAAG;QACN,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO;QACV,OAAO,UAAU,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,GAAW;QACpB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAE3B,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;YAChD,OAAO,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC;QAED,uBAAuB;QACvB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,YAAY,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,OAAO,KAAK,QAAQ,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,+BAA+B,GAAG,GAAG,CAAC,CAAC;QAC/E,CAAC;QAED,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,OAAO;QACH,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAE9C,0CAA0C;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1B,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,YAAY;QACR,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAExE,sDAAsD;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC7C,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK;QACD,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,UAAU;QACN,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9C,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,QAAQ;QACJ,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,WAAW,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAiB;QACpB,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,KAAiB;QACrB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACtD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,CAAC,CAAC;YACvC,OAAO,CAAC,CAAC;QACb,CAAC;QAED,2CAA2C;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAG,CAAC;QAClC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,EAAG,CAAC;QAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1B,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC5C,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,CAAC,CAAC;IACb,CAAC;IAED,MAAM;QACF,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE;SACtE,CAAC;IACN,CAAC;CACJ"}
|