@zvndev/powdb-client 0.3.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/pool.d.ts ADDED
@@ -0,0 +1,124 @@
1
+ /**
2
+ * A tiny connection pool for the PowDB TypeScript client.
3
+ *
4
+ * const pool = new Pool({ host, port, max: 8 });
5
+ *
6
+ * // manual acquire/release
7
+ * const c = await pool.acquire();
8
+ * try {
9
+ * await c.query("...");
10
+ * pool.release(c);
11
+ * } catch (err) {
12
+ * // a broken client should NOT be returned to the pool
13
+ * pool.destroy(c);
14
+ * throw err;
15
+ * }
16
+ *
17
+ * // ...or, preferred, use the scoped helper:
18
+ * const users = await pool.withClient((c) => c.query("Users"));
19
+ *
20
+ * await pool.close();
21
+ */
22
+ import { Client, type ClientOptions } from "./index.js";
23
+ export interface PoolOptions extends ClientOptions {
24
+ /** Maximum concurrent clients. Default 10. */
25
+ max?: number;
26
+ /** Acquire timeout in ms. Default 30_000. */
27
+ acquireTimeoutMs?: number;
28
+ /**
29
+ * How many times to retry `Client.connect` on transient errors
30
+ * (connect_failed / timeout). Auth failures and other non-transient
31
+ * errors are never retried. Default 3. Set to 0 to disable.
32
+ */
33
+ connectRetries?: number;
34
+ /**
35
+ * Initial backoff (ms) between connect retries. Each subsequent retry
36
+ * doubles the delay up to `connectMaxBackoffMs`. Default 100.
37
+ */
38
+ connectBackoffMs?: number;
39
+ /** Maximum backoff (ms) between connect retries. Default 2_000. */
40
+ connectMaxBackoffMs?: number;
41
+ }
42
+ /**
43
+ * Lazy, FIFO connection pool.
44
+ *
45
+ * Semantics:
46
+ * - `acquire` returns an idle client if one exists; otherwise creates a new
47
+ * one up to `max`; otherwise waits until `release`/`destroy` frees a slot
48
+ * (subject to `acquireTimeoutMs`).
49
+ * - `release(c)` puts `c` back in the idle queue unconditionally. **If the
50
+ * caller observed a socket/connection error on `c`, they MUST call
51
+ * `destroy(c)` instead** — the pool cannot safely detect dead sockets.
52
+ * - `destroy(c)` closes `c` and decrements the live count, freeing a slot
53
+ * for a new client to be created.
54
+ * - `withClient(fn)` acquires, runs `fn`, and always destroys on error or
55
+ * releases on success. This is the safe default for most call sites.
56
+ * - `close()` rejects any pending waiters and awaits `close()` on every
57
+ * idle client. Subsequent calls to `acquire` reject immediately.
58
+ */
59
+ export declare class Pool {
60
+ private readonly opts;
61
+ private readonly max;
62
+ private readonly acquireTimeoutMs;
63
+ private readonly connectRetries;
64
+ private readonly connectBackoffMs;
65
+ private readonly connectMaxBackoffMs;
66
+ private readonly idleClients;
67
+ private readonly waiters;
68
+ /** Clients owned by this pool (idle + checked-out). Used to reject
69
+ * foreign/double-destroyed clients from corrupting the slot accounting. */
70
+ private readonly owned;
71
+ private live;
72
+ private _closed;
73
+ constructor(opts: PoolOptions);
74
+ /**
75
+ * Wraps Client.connect with the pool's configured retry policy. Used by
76
+ * `acquire` and `drainWaiters`.
77
+ */
78
+ private connect;
79
+ /** Live client count (idle + checked out). */
80
+ get size(): number;
81
+ /** Clients currently sitting in the idle queue. */
82
+ get idle(): number;
83
+ /** `true` once {@link close} has been called. */
84
+ get closed(): boolean;
85
+ /**
86
+ * Acquire a client from the pool.
87
+ *
88
+ * Resolves with an idle client if one is available, creates a new one if
89
+ * `live < max`, or waits in a FIFO queue. Rejects if `acquireTimeoutMs`
90
+ * elapses, or if the pool is closed.
91
+ */
92
+ acquire(): Promise<Client>;
93
+ /**
94
+ * Return `c` to the idle queue so subsequent `acquire` calls can hand it
95
+ * out. If the pool is closed, `c` is closed instead.
96
+ *
97
+ * **Do not call this if `c` has experienced a connection error** — use
98
+ * {@link destroy} for that case.
99
+ */
100
+ release(c: Client): void;
101
+ /**
102
+ * Close `c` and free its slot so a new client can be created on the next
103
+ * `acquire`. Use this when `c` has hit a socket error or is otherwise
104
+ * known-bad.
105
+ */
106
+ destroy(c: Client): void;
107
+ /**
108
+ * Acquire a client, run `fn`, and either release (on success) or destroy
109
+ * (on error). This is the recommended call site — it makes it impossible
110
+ * to leak a client on an unhandled exception.
111
+ */
112
+ withClient<T>(fn: (c: Client) => Promise<T>): Promise<T>;
113
+ /**
114
+ * Close the pool. Rejects all pending waiters, awaits `close()` on every
115
+ * idle client, and marks the pool closed. Subsequent `acquire` calls
116
+ * reject immediately.
117
+ *
118
+ * Checked-out clients are NOT tracked — callers that still hold one when
119
+ * `close()` is called are responsible for closing it themselves.
120
+ */
121
+ close(): Promise<void>;
122
+ private drainWaiters;
123
+ }
124
+ //# sourceMappingURL=pool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool.d.ts","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAGxD,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mEAAmE;IACnE,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAuDD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,IAAI;IACf,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAE7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC;gFAC4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAChD,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,EAAE,WAAW;IA8B7B;;;OAGG;IACH,OAAO,CAAC,OAAO;IASf,8CAA8C;IAC9C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,mDAAmD;IACnD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,iDAAiD;IACjD,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;;;;;OAMG;IACG,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IA+ChC;;;;;;OAMG;IACH,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAwBxB;;;;OAIG;IACH,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAiBxB;;;;OAIG;IACG,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAY9D;;;;;;;OAOG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB5B,OAAO,CAAC,YAAY;CA+BrB"}
package/dist/pool.js ADDED
@@ -0,0 +1,315 @@
1
+ /**
2
+ * A tiny connection pool for the PowDB TypeScript client.
3
+ *
4
+ * const pool = new Pool({ host, port, max: 8 });
5
+ *
6
+ * // manual acquire/release
7
+ * const c = await pool.acquire();
8
+ * try {
9
+ * await c.query("...");
10
+ * pool.release(c);
11
+ * } catch (err) {
12
+ * // a broken client should NOT be returned to the pool
13
+ * pool.destroy(c);
14
+ * throw err;
15
+ * }
16
+ *
17
+ * // ...or, preferred, use the scoped helper:
18
+ * const users = await pool.withClient((c) => c.query("Users"));
19
+ *
20
+ * await pool.close();
21
+ */
22
+ import { Client } from "./index.js";
23
+ import { isPowDBError } from "./errors.js";
24
+ /**
25
+ * Is this error worth retrying? Only the transient connect-phase errors
26
+ * are retryable. Auth failures, size violations, aborts, and protocol
27
+ * errors are not — retrying would just fail the same way.
28
+ */
29
+ function isRetryable(err) {
30
+ if (!isPowDBError(err)) {
31
+ // Raw socket errors surface as generic Error before we wrap them in
32
+ // connect_failed. In practice connect() wraps them, but be defensive.
33
+ return err instanceof Error;
34
+ }
35
+ return err.code === "connect_failed" || err.code === "timeout";
36
+ }
37
+ function sleep(ms) {
38
+ return new Promise((resolve) => {
39
+ const t = setTimeout(resolve, ms);
40
+ if (typeof t.unref === "function")
41
+ t.unref();
42
+ });
43
+ }
44
+ /**
45
+ * Connect to the server with bounded retry + exponential backoff. Throws
46
+ * the last error if every attempt fails, or the first error unchanged if
47
+ * it was not retryable.
48
+ */
49
+ async function connectWithRetry(opts, retries, initialBackoffMs, maxBackoffMs) {
50
+ let lastErr;
51
+ let delay = initialBackoffMs;
52
+ for (let attempt = 0; attempt <= retries; attempt++) {
53
+ try {
54
+ return await Client.connect(opts);
55
+ }
56
+ catch (err) {
57
+ lastErr = err;
58
+ if (!isRetryable(err) || attempt === retries)
59
+ break;
60
+ await sleep(delay);
61
+ delay = Math.min(delay * 2, maxBackoffMs);
62
+ }
63
+ }
64
+ throw lastErr;
65
+ }
66
+ /**
67
+ * Lazy, FIFO connection pool.
68
+ *
69
+ * Semantics:
70
+ * - `acquire` returns an idle client if one exists; otherwise creates a new
71
+ * one up to `max`; otherwise waits until `release`/`destroy` frees a slot
72
+ * (subject to `acquireTimeoutMs`).
73
+ * - `release(c)` puts `c` back in the idle queue unconditionally. **If the
74
+ * caller observed a socket/connection error on `c`, they MUST call
75
+ * `destroy(c)` instead** — the pool cannot safely detect dead sockets.
76
+ * - `destroy(c)` closes `c` and decrements the live count, freeing a slot
77
+ * for a new client to be created.
78
+ * - `withClient(fn)` acquires, runs `fn`, and always destroys on error or
79
+ * releases on success. This is the safe default for most call sites.
80
+ * - `close()` rejects any pending waiters and awaits `close()` on every
81
+ * idle client. Subsequent calls to `acquire` reject immediately.
82
+ */
83
+ export class Pool {
84
+ opts;
85
+ max;
86
+ acquireTimeoutMs;
87
+ connectRetries;
88
+ connectBackoffMs;
89
+ connectMaxBackoffMs;
90
+ idleClients = [];
91
+ waiters = [];
92
+ /** Clients owned by this pool (idle + checked-out). Used to reject
93
+ * foreign/double-destroyed clients from corrupting the slot accounting. */
94
+ owned = new Set();
95
+ live = 0;
96
+ _closed = false;
97
+ constructor(opts) {
98
+ const { max = 10, acquireTimeoutMs = 30_000, connectRetries = 3, connectBackoffMs = 100, connectMaxBackoffMs = 2_000, ...clientOpts } = opts;
99
+ if (!Number.isFinite(max) || max < 1) {
100
+ throw new TypeError(`Pool: max must be a positive integer, got ${max}`);
101
+ }
102
+ if (!Number.isFinite(acquireTimeoutMs) || acquireTimeoutMs < 0) {
103
+ throw new TypeError(`Pool: acquireTimeoutMs must be a non-negative number, got ${acquireTimeoutMs}`);
104
+ }
105
+ if (!Number.isFinite(connectRetries) || connectRetries < 0) {
106
+ throw new TypeError(`Pool: connectRetries must be a non-negative integer, got ${connectRetries}`);
107
+ }
108
+ this.opts = clientOpts;
109
+ this.max = max;
110
+ this.acquireTimeoutMs = acquireTimeoutMs;
111
+ this.connectRetries = connectRetries;
112
+ this.connectBackoffMs = connectBackoffMs;
113
+ this.connectMaxBackoffMs = connectMaxBackoffMs;
114
+ }
115
+ /**
116
+ * Wraps Client.connect with the pool's configured retry policy. Used by
117
+ * `acquire` and `drainWaiters`.
118
+ */
119
+ connect() {
120
+ return connectWithRetry(this.opts, this.connectRetries, this.connectBackoffMs, this.connectMaxBackoffMs);
121
+ }
122
+ /** Live client count (idle + checked out). */
123
+ get size() {
124
+ return this.live;
125
+ }
126
+ /** Clients currently sitting in the idle queue. */
127
+ get idle() {
128
+ return this.idleClients.length;
129
+ }
130
+ /** `true` once {@link close} has been called. */
131
+ get closed() {
132
+ return this._closed;
133
+ }
134
+ /**
135
+ * Acquire a client from the pool.
136
+ *
137
+ * Resolves with an idle client if one is available, creates a new one if
138
+ * `live < max`, or waits in a FIFO queue. Rejects if `acquireTimeoutMs`
139
+ * elapses, or if the pool is closed.
140
+ */
141
+ async acquire() {
142
+ if (this._closed) {
143
+ throw new Error("pool closed");
144
+ }
145
+ const existing = this.idleClients.shift();
146
+ if (existing !== undefined) {
147
+ return existing;
148
+ }
149
+ if (this.live < this.max) {
150
+ this.live++;
151
+ try {
152
+ const c = await this.connect();
153
+ this.owned.add(c);
154
+ return c;
155
+ }
156
+ catch (err) {
157
+ // Creation failed — we never had a live client, so give the slot
158
+ // back and propagate.
159
+ this.live--;
160
+ // A newly-freed slot may let a pending waiter try again... but only
161
+ // via a future release/destroy. To be fair to waiters, schedule a
162
+ // drain here.
163
+ this.drainWaiters();
164
+ throw err;
165
+ }
166
+ }
167
+ return new Promise((resolve, reject) => {
168
+ const waiter = {
169
+ resolve,
170
+ reject,
171
+ timer: null,
172
+ };
173
+ if (this.acquireTimeoutMs > 0) {
174
+ waiter.timer = setTimeout(() => {
175
+ const idx = this.waiters.indexOf(waiter);
176
+ if (idx !== -1)
177
+ this.waiters.splice(idx, 1);
178
+ reject(new Error("pool acquire timeout"));
179
+ }, this.acquireTimeoutMs);
180
+ // Don't keep the event loop alive just for the timeout.
181
+ if (typeof waiter.timer.unref === "function")
182
+ waiter.timer.unref();
183
+ }
184
+ this.waiters.push(waiter);
185
+ });
186
+ }
187
+ /**
188
+ * Return `c` to the idle queue so subsequent `acquire` calls can hand it
189
+ * out. If the pool is closed, `c` is closed instead.
190
+ *
191
+ * **Do not call this if `c` has experienced a connection error** — use
192
+ * {@link destroy} for that case.
193
+ */
194
+ release(c) {
195
+ if (!this.owned.has(c)) {
196
+ // Foreign client or already-destroyed — refuse to touch accounting.
197
+ return;
198
+ }
199
+ if (this._closed) {
200
+ // Pool is gone — just close the client, fire-and-forget.
201
+ this.owned.delete(c);
202
+ if (this.live > 0)
203
+ this.live--;
204
+ void c.close().catch(() => { });
205
+ return;
206
+ }
207
+ const waiter = this.waiters.shift();
208
+ if (waiter !== undefined) {
209
+ if (waiter.timer !== null)
210
+ clearTimeout(waiter.timer);
211
+ waiter.resolve(c);
212
+ return;
213
+ }
214
+ this.idleClients.push(c);
215
+ }
216
+ /**
217
+ * Close `c` and free its slot so a new client can be created on the next
218
+ * `acquire`. Use this when `c` has hit a socket error or is otherwise
219
+ * known-bad.
220
+ */
221
+ destroy(c) {
222
+ if (!this.owned.has(c)) {
223
+ // Foreign client or already destroyed — don't touch slot accounting.
224
+ return;
225
+ }
226
+ this.owned.delete(c);
227
+ // Decrement first so any waiter we hand off to can create a fresh one.
228
+ if (this.live > 0)
229
+ this.live--;
230
+ void c.close().catch(() => { });
231
+ if (this._closed)
232
+ return;
233
+ // Drain one waiter if possible — the freed slot lets them create a new
234
+ // connection.
235
+ this.drainWaiters();
236
+ }
237
+ /**
238
+ * Acquire a client, run `fn`, and either release (on success) or destroy
239
+ * (on error). This is the recommended call site — it makes it impossible
240
+ * to leak a client on an unhandled exception.
241
+ */
242
+ async withClient(fn) {
243
+ const c = await this.acquire();
244
+ try {
245
+ const out = await fn(c);
246
+ this.release(c);
247
+ return out;
248
+ }
249
+ catch (err) {
250
+ this.destroy(c);
251
+ throw err;
252
+ }
253
+ }
254
+ /**
255
+ * Close the pool. Rejects all pending waiters, awaits `close()` on every
256
+ * idle client, and marks the pool closed. Subsequent `acquire` calls
257
+ * reject immediately.
258
+ *
259
+ * Checked-out clients are NOT tracked — callers that still hold one when
260
+ * `close()` is called are responsible for closing it themselves.
261
+ */
262
+ async close() {
263
+ if (this._closed)
264
+ return;
265
+ this._closed = true;
266
+ // Reject every pending waiter.
267
+ while (this.waiters.length > 0) {
268
+ const w = this.waiters.shift();
269
+ if (w.timer !== null)
270
+ clearTimeout(w.timer);
271
+ w.reject(new Error("pool closed"));
272
+ }
273
+ // Close every idle client.
274
+ const idle = this.idleClients.splice(0, this.idleClients.length);
275
+ for (const c of idle)
276
+ this.owned.delete(c);
277
+ this.live -= idle.length;
278
+ await Promise.all(idle.map((c) => c.close().catch(() => { })));
279
+ }
280
+ // ──────────────────────────────────────────────────────────
281
+ // internals
282
+ // ──────────────────────────────────────────────────────────
283
+ drainWaiters() {
284
+ // If we have headroom AND a waiter, try to create a client for them.
285
+ // (Handles the "acquire failed → slot freed" path cleanly without
286
+ // forcing the caller to re-poll.)
287
+ if (this._closed)
288
+ return;
289
+ while (this.waiters.length > 0 && this.live < this.max) {
290
+ const waiter = this.waiters.shift();
291
+ if (waiter.timer !== null)
292
+ clearTimeout(waiter.timer);
293
+ this.live++;
294
+ this.connect().then((c) => {
295
+ // Pool may have been closed while the connect was in flight.
296
+ // If so, close the freshly-opened client instead of handing it
297
+ // to a waiter that's already been rejected.
298
+ if (this._closed) {
299
+ if (this.live > 0)
300
+ this.live--;
301
+ void c.close().catch(() => { });
302
+ return;
303
+ }
304
+ this.owned.add(c);
305
+ waiter.resolve(c);
306
+ }, (err) => {
307
+ this.live--;
308
+ waiter.reject(err);
309
+ // Keep trying for the next waiter, if any.
310
+ this.drainWaiters();
311
+ });
312
+ }
313
+ }
314
+ }
315
+ //# sourceMappingURL=pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pool.js","sourceRoot":"","sources":["../src/pool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * PowDB wire protocol.
3
+ *
4
+ * Frame format: [type(1)][flags(1)][len(4 LE)][payload]
5
+ * Strings are encoded as [len(4 LE)][utf-8 bytes].
6
+ *
7
+ * This mirrors crates/server/src/protocol.rs — keep them in sync.
8
+ */
9
+ export declare const MSG_CONNECT = 1;
10
+ export declare const MSG_CONNECT_OK = 2;
11
+ export declare const MSG_QUERY = 3;
12
+ export declare const MSG_RESULT_ROWS = 7;
13
+ export declare const MSG_RESULT_SCALAR = 8;
14
+ export declare const MSG_RESULT_OK = 9;
15
+ export declare const MSG_ERROR = 10;
16
+ export declare const MSG_DISCONNECT = 16;
17
+ /** Maximum payload size accepted from the wire (64 MB). */
18
+ export declare const MAX_PAYLOAD_SIZE: number;
19
+ /** Maximum number of rows allowed in a single result message. */
20
+ export declare const MAX_ROWS = 10000000;
21
+ /** Maximum number of columns allowed in a result set. */
22
+ export declare const MAX_COLUMNS = 4096;
23
+ export type Message = {
24
+ type: "Connect";
25
+ dbName: string;
26
+ password: string | null;
27
+ } | {
28
+ type: "ConnectOk";
29
+ version: string;
30
+ } | {
31
+ type: "Query";
32
+ query: string;
33
+ } | {
34
+ type: "ResultRows";
35
+ columns: string[];
36
+ rows: string[][];
37
+ } | {
38
+ type: "ResultScalar";
39
+ value: string;
40
+ } | {
41
+ type: "ResultOk";
42
+ affected: bigint;
43
+ } | {
44
+ type: "Error";
45
+ message: string;
46
+ } | {
47
+ type: "Disconnect";
48
+ };
49
+ export declare function encode(msg: Message): Buffer;
50
+ /**
51
+ * Attempts to parse a single frame from the start of `buf`. Returns the parsed
52
+ * message and the number of bytes consumed, or `null` if the buffer does not
53
+ * yet contain a complete frame.
54
+ */
55
+ export declare function tryDecode(buf: Buffer): {
56
+ msg: Message;
57
+ consumed: number;
58
+ } | null;
59
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,WAAW,IAAO,CAAC;AAChC,eAAO,MAAM,cAAc,IAAO,CAAC;AACnC,eAAO,MAAM,SAAS,IAAO,CAAC;AAC9B,eAAO,MAAM,eAAe,IAAO,CAAC;AACpC,eAAO,MAAM,iBAAiB,IAAO,CAAC;AACtC,eAAO,MAAM,aAAa,IAAO,CAAC;AAClC,eAAO,MAAM,SAAS,KAAO,CAAC;AAC9B,eAAO,MAAM,cAAc,KAAO,CAAC;AAInC,2DAA2D;AAC3D,eAAO,MAAM,gBAAgB,QAAmB,CAAC;AAEjD,iEAAiE;AACjE,eAAO,MAAM,QAAQ,WAAa,CAAC;AAEnC,yDAAyD;AACzD,eAAO,MAAM,WAAW,OAAO,CAAC;AAEhC,MAAM,MAAM,OAAO,GACf;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC;AAI3B,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CA6D3C;AAID;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,MAAM,GACV;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAc3C"}