@yydb/light-db 0.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.
Files changed (150) hide show
  1. package/dist/api/LightDB.d.ts +194 -0
  2. package/dist/api/LightDB.d.ts.map +1 -0
  3. package/dist/api/LightDB.js +299 -0
  4. package/dist/api/LightDB.js.map +1 -0
  5. package/dist/api/Transaction.d.ts +100 -0
  6. package/dist/api/Transaction.d.ts.map +1 -0
  7. package/dist/api/Transaction.js +263 -0
  8. package/dist/api/Transaction.js.map +1 -0
  9. package/dist/api/index.d.ts +24 -0
  10. package/dist/api/index.d.ts.map +1 -0
  11. package/dist/api/index.js +54 -0
  12. package/dist/api/index.js.map +1 -0
  13. package/dist/api/types.d.ts +154 -0
  14. package/dist/api/types.d.ts.map +1 -0
  15. package/dist/api/types.js +7 -0
  16. package/dist/api/types.js.map +1 -0
  17. package/dist/collection/Collection.d.ts +235 -0
  18. package/dist/collection/Collection.d.ts.map +1 -0
  19. package/dist/collection/Collection.js +671 -0
  20. package/dist/collection/Collection.js.map +1 -0
  21. package/dist/collection/QueryBuilder.d.ts +225 -0
  22. package/dist/collection/QueryBuilder.d.ts.map +1 -0
  23. package/dist/collection/QueryBuilder.js +475 -0
  24. package/dist/collection/QueryBuilder.js.map +1 -0
  25. package/dist/collection/QueryParser.d.ts +117 -0
  26. package/dist/collection/QueryParser.d.ts.map +1 -0
  27. package/dist/collection/QueryParser.js +438 -0
  28. package/dist/collection/QueryParser.js.map +1 -0
  29. package/dist/collection/index.d.ts +42 -0
  30. package/dist/collection/index.d.ts.map +1 -0
  31. package/dist/collection/index.js +41 -0
  32. package/dist/collection/index.js.map +1 -0
  33. package/dist/collection/types.d.ts +365 -0
  34. package/dist/collection/types.d.ts.map +1 -0
  35. package/dist/collection/types.js +7 -0
  36. package/dist/collection/types.js.map +1 -0
  37. package/dist/constants/index.d.ts +51 -0
  38. package/dist/constants/index.d.ts.map +1 -0
  39. package/dist/constants/index.js +68 -0
  40. package/dist/constants/index.js.map +1 -0
  41. package/dist/errors/index.d.ts +69 -0
  42. package/dist/errors/index.d.ts.map +1 -0
  43. package/dist/errors/index.js +132 -0
  44. package/dist/errors/index.js.map +1 -0
  45. package/dist/index.d.ts +220 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +729 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/indexes/BPlusTree.d.ts +181 -0
  50. package/dist/indexes/BPlusTree.d.ts.map +1 -0
  51. package/dist/indexes/BPlusTree.js +528 -0
  52. package/dist/indexes/BPlusTree.js.map +1 -0
  53. package/dist/indexes/IndexManager.d.ts +236 -0
  54. package/dist/indexes/IndexManager.d.ts.map +1 -0
  55. package/dist/indexes/IndexManager.js +502 -0
  56. package/dist/indexes/IndexManager.js.map +1 -0
  57. package/dist/indexes/PrimaryIndex.d.ts +240 -0
  58. package/dist/indexes/PrimaryIndex.d.ts.map +1 -0
  59. package/dist/indexes/PrimaryIndex.js +354 -0
  60. package/dist/indexes/PrimaryIndex.js.map +1 -0
  61. package/dist/indexes/SecondaryIndex.d.ts +204 -0
  62. package/dist/indexes/SecondaryIndex.d.ts.map +1 -0
  63. package/dist/indexes/SecondaryIndex.js +480 -0
  64. package/dist/indexes/SecondaryIndex.js.map +1 -0
  65. package/dist/indexes/errors.d.ts +66 -0
  66. package/dist/indexes/errors.d.ts.map +1 -0
  67. package/dist/indexes/errors.js +117 -0
  68. package/dist/indexes/errors.js.map +1 -0
  69. package/dist/indexes/index.d.ts +52 -0
  70. package/dist/indexes/index.d.ts.map +1 -0
  71. package/dist/indexes/index.js +131 -0
  72. package/dist/indexes/index.js.map +1 -0
  73. package/dist/indexes/types.d.ts +246 -0
  74. package/dist/indexes/types.d.ts.map +1 -0
  75. package/dist/indexes/types.js +30 -0
  76. package/dist/indexes/types.js.map +1 -0
  77. package/dist/performance/BatchWALWriter.d.ts +185 -0
  78. package/dist/performance/BatchWALWriter.d.ts.map +1 -0
  79. package/dist/performance/BatchWALWriter.js +490 -0
  80. package/dist/performance/BatchWALWriter.js.map +1 -0
  81. package/dist/performance/ColumnarStorage.d.ts +138 -0
  82. package/dist/performance/ColumnarStorage.d.ts.map +1 -0
  83. package/dist/performance/ColumnarStorage.js +875 -0
  84. package/dist/performance/ColumnarStorage.js.map +1 -0
  85. package/dist/performance/LazyQuery.d.ts +307 -0
  86. package/dist/performance/LazyQuery.d.ts.map +1 -0
  87. package/dist/performance/LazyQuery.js +588 -0
  88. package/dist/performance/LazyQuery.js.map +1 -0
  89. package/dist/performance/OptimizedBuffer.d.ts +375 -0
  90. package/dist/performance/OptimizedBuffer.d.ts.map +1 -0
  91. package/dist/performance/OptimizedBuffer.js +730 -0
  92. package/dist/performance/OptimizedBuffer.js.map +1 -0
  93. package/dist/performance/RWLock.d.ts +260 -0
  94. package/dist/performance/RWLock.d.ts.map +1 -0
  95. package/dist/performance/RWLock.js +570 -0
  96. package/dist/performance/RWLock.js.map +1 -0
  97. package/dist/performance/index.d.ts +41 -0
  98. package/dist/performance/index.d.ts.map +1 -0
  99. package/dist/performance/index.js +162 -0
  100. package/dist/performance/index.js.map +1 -0
  101. package/dist/performance/types.d.ts +247 -0
  102. package/dist/performance/types.d.ts.map +1 -0
  103. package/dist/performance/types.js +26 -0
  104. package/dist/performance/types.js.map +1 -0
  105. package/dist/storage/Checkpoint.d.ts +128 -0
  106. package/dist/storage/Checkpoint.d.ts.map +1 -0
  107. package/dist/storage/Checkpoint.js +251 -0
  108. package/dist/storage/Checkpoint.js.map +1 -0
  109. package/dist/storage/LightFile.d.ts +227 -0
  110. package/dist/storage/LightFile.d.ts.map +1 -0
  111. package/dist/storage/LightFile.js +526 -0
  112. package/dist/storage/LightFile.js.map +1 -0
  113. package/dist/storage/Recovery.d.ts +172 -0
  114. package/dist/storage/Recovery.d.ts.map +1 -0
  115. package/dist/storage/Recovery.js +399 -0
  116. package/dist/storage/Recovery.js.map +1 -0
  117. package/dist/storage/SHMFile.d.ts +243 -0
  118. package/dist/storage/SHMFile.d.ts.map +1 -0
  119. package/dist/storage/SHMFile.js +436 -0
  120. package/dist/storage/SHMFile.js.map +1 -0
  121. package/dist/storage/StorageEngine.d.ts +146 -0
  122. package/dist/storage/StorageEngine.d.ts.map +1 -0
  123. package/dist/storage/StorageEngine.js +353 -0
  124. package/dist/storage/StorageEngine.js.map +1 -0
  125. package/dist/storage/WALFile.d.ts +248 -0
  126. package/dist/storage/WALFile.d.ts.map +1 -0
  127. package/dist/storage/WALFile.js +597 -0
  128. package/dist/storage/WALFile.js.map +1 -0
  129. package/dist/storage/index.d.ts +10 -0
  130. package/dist/storage/index.d.ts.map +1 -0
  131. package/dist/storage/index.js +153 -0
  132. package/dist/storage/index.js.map +1 -0
  133. package/dist/types/index.d.ts +220 -0
  134. package/dist/types/index.d.ts.map +1 -0
  135. package/dist/types/index.js +7 -0
  136. package/dist/types/index.js.map +1 -0
  137. package/dist/utils/binary.d.ts +271 -0
  138. package/dist/utils/binary.d.ts.map +1 -0
  139. package/dist/utils/binary.js +454 -0
  140. package/dist/utils/binary.js.map +1 -0
  141. package/dist/utils/file.d.ts +166 -0
  142. package/dist/utils/file.d.ts.map +1 -0
  143. package/dist/utils/file.js +346 -0
  144. package/dist/utils/file.js.map +1 -0
  145. package/dist/utils/index.d.ts +6 -0
  146. package/dist/utils/index.d.ts.map +1 -0
  147. package/dist/utils/index.js +39 -0
  148. package/dist/utils/index.js.map +1 -0
  149. package/package.json +37 -0
  150. package/readme.md +124 -0
@@ -0,0 +1,375 @@
1
+ /**
2
+ * 优化的二进制序列化工具
3
+ * 使用 Buffer.allocUnsafe + 手动 fill,比 Buffer.alloc 快 2 倍以上
4
+ */
5
+ import { BufferPoolOptions, BufferPoolStats } from "./types";
6
+ /**
7
+ * Buffer 池
8
+ * 预分配 Buffer 块,减少频繁内存分配
9
+ */
10
+ export declare class BufferPool {
11
+ private pool;
12
+ private chunkSize;
13
+ private maxPoolSize;
14
+ private usedCount;
15
+ private totalAllocated;
16
+ private totalFreed;
17
+ /**
18
+ * 创建 Buffer 池
19
+ * @param options 配置选项
20
+ */
21
+ constructor(options?: BufferPoolOptions);
22
+ /**
23
+ * 预分配 Buffer 块
24
+ * @param count 分配数量
25
+ */
26
+ private preallocate;
27
+ /**
28
+ * 创建新的 Buffer 块
29
+ */
30
+ private createChunk;
31
+ /**
32
+ * 从池中获取 Buffer
33
+ * @param size 需要的大小
34
+ * @returns Buffer 实例
35
+ */
36
+ allocate(size: number): Buffer;
37
+ /**
38
+ * 释放 Buffer 回池中
39
+ * @param buffer 要释放的 Buffer
40
+ */
41
+ release(buffer: Buffer): void;
42
+ /**
43
+ * 获取统计信息
44
+ */
45
+ getStats(): BufferPoolStats;
46
+ /**
47
+ * 清空池
48
+ */
49
+ clear(): void;
50
+ /**
51
+ * 获取块大小
52
+ */
53
+ getChunkSize(): number;
54
+ /**
55
+ * 获取分配总数
56
+ */
57
+ getTotalAllocated(): number;
58
+ /**
59
+ * 获取释放总数
60
+ */
61
+ getTotalFreed(): number;
62
+ }
63
+ /**
64
+ * 获取全局 Buffer 池
65
+ */
66
+ export declare function getGlobalBufferPool(): BufferPool;
67
+ /**
68
+ * 优化的 Buffer 写入器
69
+ * 使用 allocUnsafe + 手动 fill,性能更优
70
+ */
71
+ export declare class OptimizedBufferWriter {
72
+ private buffer;
73
+ private offset;
74
+ private static pool;
75
+ /**
76
+ * 创建优化的 Buffer 写入器
77
+ * @param size 初始大小
78
+ */
79
+ constructor(size?: number);
80
+ /**
81
+ * 获取当前写入位置
82
+ */
83
+ get position(): number;
84
+ /**
85
+ * 获取已写入的数据
86
+ */
87
+ get data(): Buffer;
88
+ /**
89
+ * 获取剩余空间
90
+ */
91
+ get remaining(): number;
92
+ /**
93
+ * 确保有足够的空间
94
+ * @param additional 需要的额外空间
95
+ */
96
+ private ensureCapacity;
97
+ /**
98
+ * 写入无符号 8 位整数
99
+ */
100
+ writeUInt8(value: number): this;
101
+ /**
102
+ * 写入无符号 16 位整数(Little-Endian)
103
+ */
104
+ writeUInt16LE(value: number): this;
105
+ /**
106
+ * 写入无符号 32 位整数(Little-Endian)
107
+ */
108
+ writeUInt32LE(value: number): this;
109
+ /**
110
+ * 写入有符号 32 位整数(Little-Endian)
111
+ */
112
+ writeInt32LE(value: number): this;
113
+ /**
114
+ * 写入无符号 64 位整数(Little-Endian)
115
+ */
116
+ writeBigUInt64LE(value: bigint): this;
117
+ /**
118
+ * 写入有符号 64 位整数(Little-Endian)
119
+ */
120
+ writeBigInt64LE(value: bigint): this;
121
+ /**
122
+ * 写入 32 位浮点数(Little-Endian)
123
+ */
124
+ writeFloatLE(value: number): this;
125
+ /**
126
+ * 写入 64 位双精度浮点数(Little-Endian)
127
+ */
128
+ writeDoubleLE(value: number): this;
129
+ /**
130
+ * 写入字符串(带长度前缀)
131
+ */
132
+ writeString(value: string): this;
133
+ /**
134
+ * 写入字符串(不带长度前缀)
135
+ */
136
+ writeStringRaw(value: string): this;
137
+ /**
138
+ * 写入 Buffer
139
+ */
140
+ writeBuffer(value: Buffer): this;
141
+ /**
142
+ * 写入带长度前缀的 Buffer
143
+ */
144
+ writeBufferWithLength(value: Buffer): this;
145
+ /**
146
+ * 写入字节数组
147
+ */
148
+ writeBytes(values: number[]): this;
149
+ /**
150
+ * 填充指定字节
151
+ */
152
+ fill(value: number, count: number): this;
153
+ /**
154
+ * 跳过指定字节数
155
+ */
156
+ skip(count: number): this;
157
+ /**
158
+ * 在指定位置写入值
159
+ */
160
+ writeAt(offset: number, value: number, size: 1 | 2 | 4 | 8): this;
161
+ /**
162
+ * 重置写入器
163
+ */
164
+ reset(): this;
165
+ /**
166
+ * 释放资源
167
+ */
168
+ dispose(): void;
169
+ }
170
+ /**
171
+ * 优化的 Buffer 读取器
172
+ */
173
+ export declare class OptimizedBufferReader {
174
+ private buffer;
175
+ private offset;
176
+ private startOffset;
177
+ /**
178
+ * 创建优化的 Buffer 读取器
179
+ * @param buffer 要读取的 Buffer
180
+ * @param startOffset 起始偏移量
181
+ */
182
+ constructor(buffer: Buffer, startOffset?: number);
183
+ /**
184
+ * 获取当前读取位置
185
+ */
186
+ get position(): number;
187
+ /**
188
+ * 设置读取位置
189
+ */
190
+ set position(value: number);
191
+ /**
192
+ * 获取剩余可读字节数
193
+ */
194
+ get remaining(): number;
195
+ /**
196
+ * 获取总长度
197
+ */
198
+ get length(): number;
199
+ /**
200
+ * 检查是否有足够的可读数据
201
+ */
202
+ hasRemaining(required: number): boolean;
203
+ /**
204
+ * 读取无符号 8 位整数
205
+ */
206
+ readUInt8(): number;
207
+ /**
208
+ * 读取无符号 16 位整数(Little-Endian)
209
+ */
210
+ readUInt16LE(): number;
211
+ /**
212
+ * 读取无符号 32 位整数(Little-Endian)
213
+ */
214
+ readUInt32LE(): number;
215
+ /**
216
+ * 读取有符号 32 位整数(Little-Endian)
217
+ */
218
+ readInt32LE(): number;
219
+ /**
220
+ * 读取无符号 64 位整数(Little-Endian)
221
+ */
222
+ readBigUInt64LE(): bigint;
223
+ /**
224
+ * 读取有符号 64 位整数(Little-Endian)
225
+ */
226
+ readBigInt64LE(): bigint;
227
+ /**
228
+ * 读取 32 位浮点数(Little-Endian)
229
+ */
230
+ readFloatLE(): number;
231
+ /**
232
+ * 读取 64 位双精度浮点数(Little-Endian)
233
+ */
234
+ readDoubleLE(): number;
235
+ /**
236
+ * 读取字符串(带长度前缀)
237
+ */
238
+ readString(): string;
239
+ /**
240
+ * 读取指定长度的字符串
241
+ */
242
+ readStringFixed(length: number): string;
243
+ /**
244
+ * 读取指定长度的 Buffer
245
+ */
246
+ readBuffer(length: number): Buffer;
247
+ /**
248
+ * 读取带长度前缀的 Buffer
249
+ */
250
+ readBufferWithLength(): Buffer;
251
+ /**
252
+ * 读取字节数组
253
+ */
254
+ readBytes(length: number): number[];
255
+ /**
256
+ * 跳过指定字节数
257
+ */
258
+ skip(bytes: number): this;
259
+ /**
260
+ * 回退指定字节数
261
+ */
262
+ back(bytes: number): this;
263
+ /**
264
+ * 重置到起始位置
265
+ */
266
+ reset(): this;
267
+ /**
268
+ * 查看当前位置的字节(不移动指针)
269
+ */
270
+ peek(): number;
271
+ /**
272
+ * 查看指定偏移量的值(不移动指针)
273
+ */
274
+ peekAt(offset: number, size: 1 | 2 | 4 | 8): number | bigint;
275
+ /**
276
+ * 获取底层 Buffer
277
+ */
278
+ getBuffer(): Buffer;
279
+ }
280
+ /**
281
+ * 快速序列化工具
282
+ * 提供常用数据结构的快速序列化方法
283
+ */
284
+ export declare class FastSerializer {
285
+ /**
286
+ * 序列化键值对
287
+ */
288
+ static serializeKeyValue(key: string, value: Buffer): Buffer;
289
+ /**
290
+ * 反序列化键值对
291
+ */
292
+ static deserializeKeyValue(
293
+ buffer: Buffer,
294
+ offset?: number,
295
+ ): {
296
+ key: string;
297
+ value: Buffer;
298
+ bytesRead: number;
299
+ };
300
+ /**
301
+ * 序列化字符串数组
302
+ */
303
+ static serializeStringArray(strings: string[]): Buffer;
304
+ /**
305
+ * 反序列化字符串数组
306
+ */
307
+ static deserializeStringArray(
308
+ buffer: Buffer,
309
+ offset?: number,
310
+ ): {
311
+ strings: string[];
312
+ bytesRead: number;
313
+ };
314
+ /**
315
+ * 序列化数字数组
316
+ */
317
+ static serializeNumberArray(numbers: number[]): Buffer;
318
+ /**
319
+ * 反序列化数字数组
320
+ */
321
+ static deserializeNumberArray(
322
+ buffer: Buffer,
323
+ offset?: number,
324
+ ): {
325
+ numbers: number[];
326
+ bytesRead: number;
327
+ };
328
+ /**
329
+ * 序列化对象(简单 JSON 序列化的优化版本)
330
+ */
331
+ static serializeObject(obj: Record<string, unknown>): Buffer;
332
+ /**
333
+ * 反序列化对象
334
+ */
335
+ static deserializeObject(
336
+ buffer: Buffer,
337
+ offset?: number,
338
+ ): {
339
+ obj: Record<string, unknown>;
340
+ bytesRead: number;
341
+ };
342
+ }
343
+ /**
344
+ * 批量 Buffer 合并工具
345
+ */
346
+ export declare class BufferConcatenator {
347
+ private buffers;
348
+ private totalLength;
349
+ constructor();
350
+ /**
351
+ * 添加 Buffer
352
+ */
353
+ append(buffer: Buffer): this;
354
+ /**
355
+ * 添加多个 Buffer
356
+ */
357
+ appendMany(buffers: Buffer[]): this;
358
+ /**
359
+ * 获取总长度
360
+ */
361
+ get length(): number;
362
+ /**
363
+ * 获取 Buffer 数量
364
+ */
365
+ get count(): number;
366
+ /**
367
+ * 合并所有 Buffer
368
+ */
369
+ concat(): Buffer;
370
+ /**
371
+ * 清空
372
+ */
373
+ clear(): this;
374
+ }
375
+ //# sourceMappingURL=OptimizedBuffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OptimizedBuffer.d.ts","sourceRoot":"","sources":["../../src/performance/OptimizedBuffer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE7D;;;GAGG;AACH,qBAAa,UAAU;IACnB,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAS;IAE3B;;;OAGG;gBACS,OAAO,GAAE,iBAAsB;IAa3C;;;OAGG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;;;OAIG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAYrC;;;OAGG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAapC;;OAEG;IACI,QAAQ,IAAI,eAAe;IAUlC;;OAEG;IACI,KAAK,IAAI,IAAI;IAKpB;;OAEG;IACI,YAAY,IAAI,MAAM;IAI7B;;OAEG;IACI,iBAAiB,IAAI,MAAM;IAIlC;;OAEG;IACI,aAAa,IAAI,MAAM;CAGjC;AAOD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,UAAU,CAKhD;AAED;;;GAGG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAqC;IAExD;;;OAGG;gBACS,IAAI,GAAE,MAAa;IAK/B;;OAEG;IACH,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED;;;OAGG;IACH,OAAO,CAAC,cAAc;IAWtB;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOtC;;OAEG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOzC;;OAEG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOzC;;OAEG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOxC;;OAEG;IACI,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO5C;;OAEG;IACI,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO3C;;OAEG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOxC;;OAEG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOzC;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IASvC;;OAEG;IACI,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ1C;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOvC;;OAEG;IACI,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMjD;;OAEG;IACI,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI;IASzC;;OAEG;IACI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAO/C;;OAEG;IACI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMhC;;OAEG;IACI,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI;IAkBxE;;OAEG;IACI,KAAK,IAAI,IAAI;IAKpB;;OAEG;IACI,OAAO,IAAI,IAAI;CAGzB;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAS;IAE5B;;;;OAIG;gBACS,MAAM,EAAE,MAAM,EAAE,WAAW,GAAE,MAAU;IAMnD;;OAEG;IACH,IAAW,QAAQ,IAAI,MAAM,CAE5B;IAED;;OAEG;IACH,IAAW,QAAQ,CAAC,KAAK,EAAE,MAAM,EAEhC;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED;;OAEG;IACH,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED;;OAEG;IACI,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI9C;;OAEG;IACI,SAAS,IAAI,MAAM;IAM1B;;OAEG;IACI,YAAY,IAAI,MAAM;IAM7B;;OAEG;IACI,YAAY,IAAI,MAAM;IAM7B;;OAEG;IACI,WAAW,IAAI,MAAM;IAM5B;;OAEG;IACI,eAAe,IAAI,MAAM;IAMhC;;OAEG;IACI,cAAc,IAAI,MAAM;IAM/B;;OAEG;IACI,WAAW,IAAI,MAAM;IAM5B;;OAEG;IACI,YAAY,IAAI,MAAM;IAM7B;;OAEG;IACI,UAAU,IAAI,MAAM;IAO3B;;OAEG;IACI,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAM9C;;OAEG;IACI,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAMzC;;OAEG;IACI,oBAAoB,IAAI,MAAM;IAKrC;;OAEG;IACI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAS1C;;OAEG;IACI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhC;;OAEG;IACI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKhC;;OAEG;IACI,KAAK,IAAI,IAAI;IAKpB;;OAEG;IACI,IAAI,IAAI,MAAM;IAIrB;;OAEG;IACI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,MAAM;IAanE;;OAEG;IACI,SAAS,IAAI,MAAM;CAG7B;AAED;;;GAGG;AACH,qBAAa,cAAc;IACvB;;OAEG;WACW,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAanE;;OAEG;WACW,mBAAmB,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,MAAU,GACnB;QACC,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACrB;IAeD;;OAEG;WACW,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAgB7D;;OAEG;WACW,sBAAsB,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,MAAU,GACnB;QACC,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACrB;IAeD;;OAEG;WACW,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM;IAY7D;;OAEG;WACW,sBAAsB,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,MAAU,GACnB;QACC,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACrB;IAeD;;OAEG;WACW,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAWnE;;OAEG;WACW,iBAAiB,CAC3B,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,MAAU,GACnB;QACC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC;KACrB;CAWJ;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,WAAW,CAAS;;IAO5B;;OAEG;IACI,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMnC;;OAEG;IACI,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAO1C;;OAEG;IACH,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,IAAW,KAAK,IAAI,MAAM,CAEzB;IAED;;OAEG;IACI,MAAM,IAAI,MAAM;IAoBvB;;OAEG;IACI,KAAK,IAAI,IAAI;CAKvB"}