@query-farm/vgi-rpc 0.6.3 → 0.7.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 (160) hide show
  1. package/dist/access-log.d.ts +50 -0
  2. package/dist/access-log.d.ts.map +1 -0
  3. package/dist/arrow/impl-arrowjs/index.d.ts +96 -0
  4. package/dist/arrow/impl-arrowjs/index.d.ts.map +1 -0
  5. package/dist/arrow/impl-flechette/index.d.ts +102 -0
  6. package/dist/arrow/impl-flechette/index.d.ts.map +1 -0
  7. package/dist/arrow/impl-flechette/message-meta.d.ts +11 -0
  8. package/dist/arrow/impl-flechette/message-meta.d.ts.map +1 -0
  9. package/dist/arrow/index.d.ts +4 -0
  10. package/dist/arrow/index.d.ts.map +1 -0
  11. package/dist/arrow/predicates.d.ts +44 -0
  12. package/dist/arrow/predicates.d.ts.map +1 -0
  13. package/dist/arrow/types.d.ts +62 -0
  14. package/dist/arrow/types.d.ts.map +1 -0
  15. package/dist/client/capabilities.d.ts +25 -0
  16. package/dist/client/capabilities.d.ts.map +1 -0
  17. package/dist/client/connect.d.ts.map +1 -1
  18. package/dist/client/introspect.d.ts +7 -0
  19. package/dist/client/introspect.d.ts.map +1 -1
  20. package/dist/client/ipc.d.ts +8 -2
  21. package/dist/client/ipc.d.ts.map +1 -1
  22. package/dist/client/pipe.d.ts.map +1 -1
  23. package/dist/client/stream.d.ts +11 -2
  24. package/dist/client/stream.d.ts.map +1 -1
  25. package/dist/client/uploadUrl.d.ts +25 -0
  26. package/dist/client/uploadUrl.d.ts.map +1 -0
  27. package/dist/constants.d.ts +15 -1
  28. package/dist/constants.d.ts.map +1 -1
  29. package/dist/crypto.d.ts +22 -0
  30. package/dist/crypto.d.ts.map +1 -0
  31. package/dist/dispatch/describe.d.ts +10 -6
  32. package/dist/dispatch/describe.d.ts.map +1 -1
  33. package/dist/dispatch/stream.d.ts +2 -2
  34. package/dist/dispatch/stream.d.ts.map +1 -1
  35. package/dist/dispatch/unary.d.ts +2 -2
  36. package/dist/dispatch/unary.d.ts.map +1 -1
  37. package/dist/errors.d.ts +46 -0
  38. package/dist/errors.d.ts.map +1 -1
  39. package/dist/external.d.ts +25 -5
  40. package/dist/external.d.ts.map +1 -1
  41. package/dist/http/bearer.d.ts.map +1 -1
  42. package/dist/http/common.d.ts +42 -7
  43. package/dist/http/common.d.ts.map +1 -1
  44. package/dist/http/dispatch.d.ts +20 -2
  45. package/dist/http/dispatch.d.ts.map +1 -1
  46. package/dist/http/handler.d.ts.map +1 -1
  47. package/dist/http/index.d.ts +1 -0
  48. package/dist/http/index.d.ts.map +1 -1
  49. package/dist/http/mtls.d.ts +2 -1
  50. package/dist/http/mtls.d.ts.map +1 -1
  51. package/dist/http/oauth-pkce.d.ts +141 -0
  52. package/dist/http/oauth-pkce.d.ts.map +1 -0
  53. package/dist/http/pages.d.ts +3 -0
  54. package/dist/http/pages.d.ts.map +1 -1
  55. package/dist/http/sticky.d.ts +124 -0
  56. package/dist/http/sticky.d.ts.map +1 -0
  57. package/dist/http/token.d.ts +38 -12
  58. package/dist/http/token.d.ts.map +1 -1
  59. package/dist/http/types.d.ts +68 -5
  60. package/dist/http/types.d.ts.map +1 -1
  61. package/dist/index.d.ts +6 -4
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +1275 -3507
  64. package/dist/index.js.map +19 -37
  65. package/dist/launcher/hash.d.ts +22 -0
  66. package/dist/launcher/hash.d.ts.map +1 -0
  67. package/dist/launcher/index.d.ts +23 -0
  68. package/dist/launcher/index.d.ts.map +1 -0
  69. package/dist/launcher/launch.d.ts +27 -0
  70. package/dist/launcher/launch.d.ts.map +1 -0
  71. package/dist/launcher/lock.d.ts +19 -0
  72. package/dist/launcher/lock.d.ts.map +1 -0
  73. package/dist/launcher/serve-unix.d.ts +54 -0
  74. package/dist/launcher/serve-unix.d.ts.map +1 -0
  75. package/dist/launcher/state.d.ts +59 -0
  76. package/dist/launcher/state.d.ts.map +1 -0
  77. package/dist/otel.d.ts.map +1 -1
  78. package/dist/protocol.d.ts +16 -2
  79. package/dist/protocol.d.ts.map +1 -1
  80. package/dist/schema.d.ts +45 -18
  81. package/dist/schema.d.ts.map +1 -1
  82. package/dist/server.d.ts +23 -2
  83. package/dist/server.d.ts.map +1 -1
  84. package/dist/types.d.ts +216 -12
  85. package/dist/types.d.ts.map +1 -1
  86. package/dist/util/gzip.d.ts +10 -0
  87. package/dist/util/gzip.d.ts.map +1 -0
  88. package/dist/util/schema.d.ts +3 -15
  89. package/dist/util/schema.d.ts.map +1 -1
  90. package/dist/util/web-crypto.d.ts +22 -0
  91. package/dist/util/web-crypto.d.ts.map +1 -0
  92. package/dist/util/zstd.d.ts +26 -3
  93. package/dist/util/zstd.d.ts.map +1 -1
  94. package/dist/wire/opaque.d.ts +11 -0
  95. package/dist/wire/opaque.d.ts.map +1 -0
  96. package/dist/wire/reader.d.ts +5 -5
  97. package/dist/wire/reader.d.ts.map +1 -1
  98. package/dist/wire/request.d.ts +11 -3
  99. package/dist/wire/request.d.ts.map +1 -1
  100. package/dist/wire/response.d.ts +6 -6
  101. package/dist/wire/response.d.ts.map +1 -1
  102. package/dist/wire/writer.d.ts +49 -39
  103. package/dist/wire/writer.d.ts.map +1 -1
  104. package/package.json +24 -10
  105. package/src/access-log.ts +195 -0
  106. package/src/arrow/impl-arrowjs/index.ts +433 -0
  107. package/src/arrow/impl-flechette/index.ts +414 -0
  108. package/src/arrow/impl-flechette/message-meta.ts +174 -0
  109. package/src/arrow/index.ts +89 -0
  110. package/src/arrow/predicates.ts +56 -0
  111. package/src/arrow/types.ts +73 -0
  112. package/src/client/capabilities.ts +84 -0
  113. package/src/client/connect.ts +103 -26
  114. package/src/client/introspect.ts +60 -38
  115. package/src/client/ipc.ts +37 -27
  116. package/src/client/pipe.ts +12 -9
  117. package/src/client/stream.ts +34 -19
  118. package/src/client/uploadUrl.ts +169 -0
  119. package/src/constants.ts +18 -1
  120. package/src/crypto.ts +95 -0
  121. package/src/dispatch/describe.ts +146 -107
  122. package/src/dispatch/stream.ts +53 -24
  123. package/src/dispatch/unary.ts +5 -4
  124. package/src/errors.ts +76 -0
  125. package/src/external.ts +43 -29
  126. package/src/http/bearer.ts +2 -5
  127. package/src/http/common.ts +90 -23
  128. package/src/http/dispatch.ts +373 -46
  129. package/src/http/handler.ts +794 -68
  130. package/src/http/index.ts +1 -0
  131. package/src/http/mtls.ts +18 -3
  132. package/src/http/oauth-pkce.ts +1035 -0
  133. package/src/http/pages.ts +30 -15
  134. package/src/http/sticky.ts +429 -0
  135. package/src/http/token.ts +165 -75
  136. package/src/http/types.ts +69 -5
  137. package/src/index.ts +40 -1
  138. package/src/launcher/hash.ts +104 -0
  139. package/src/launcher/index.ts +35 -0
  140. package/src/launcher/launch.ts +284 -0
  141. package/src/launcher/lock.ts +171 -0
  142. package/src/launcher/serve-unix.ts +385 -0
  143. package/src/launcher/state.ts +245 -0
  144. package/src/otel.ts +39 -33
  145. package/src/protocol.ts +27 -3
  146. package/src/schema.ts +107 -56
  147. package/src/server.ts +196 -20
  148. package/src/types.ts +322 -18
  149. package/src/util/gzip.ts +63 -0
  150. package/src/util/schema.ts +4 -22
  151. package/src/util/web-crypto.ts +98 -0
  152. package/src/util/zstd.ts +133 -14
  153. package/src/wire/opaque.ts +37 -0
  154. package/src/wire/reader.ts +5 -4
  155. package/src/wire/request.ts +67 -8
  156. package/src/wire/response.ts +51 -85
  157. package/src/wire/writer.ts +165 -69
  158. package/dist/util/conform.d.ts +0 -18
  159. package/dist/util/conform.d.ts.map +0 -1
  160. package/src/util/conform.ts +0 -94
package/dist/types.d.ts CHANGED
@@ -1,16 +1,142 @@
1
- import { RecordBatch, type Schema } from "@query-farm/apache-arrow";
1
+ import { type VgiBatch, type VgiSchema } from "./arrow/index.js";
2
2
  import { AuthContext } from "./auth.js";
3
3
  export declare enum MethodType {
4
4
  UNARY = "unary",
5
5
  STREAM = "stream"
6
6
  }
7
+ /**
8
+ * Coarse identifier of the transport binding a {@link VgiRpcServer} or
9
+ * HTTP handler. Workers (RPC implementations) read this via
10
+ * {@link CallContext.kind} or the {@link ServeStartHook} lifecycle hook
11
+ * to tailor startup behaviour (skip HTTP-only caching, enable
12
+ * transport-specific metrics, etc.).
13
+ *
14
+ * Values are wire/log-friendly strings to match Python's `TransportKind`
15
+ * StrEnum byte-for-byte across language boundaries.
16
+ *
17
+ * - `PIPE` — Stdio worker (the standalone {@link VgiRpcServer} loop).
18
+ * - `HTTP` — Fetch-style HTTP handler (`createHttpHandler`).
19
+ * - `UNIX` — AF_UNIX socket handler (the launcher path).
20
+ */
21
+ export declare enum TransportKind {
22
+ PIPE = "pipe",
23
+ HTTP = "http",
24
+ UNIX = "unix"
25
+ }
26
+ /**
27
+ * Optional lifecycle hook fired once per process before the first
28
+ * dispatched request.
29
+ *
30
+ * For the stdio server, fires inside `VgiRpcServer.run()` before the
31
+ * first read. For HTTP, fires lazily on the first request handled
32
+ * (fork-safe for pre-fork servers).
33
+ *
34
+ * If the hook raises, the server logs the exception and propagates it,
35
+ * leaving the bind state unset so the next attempt re-fires the hook
36
+ * rather than silently skipping it.
37
+ */
38
+ export type ServeStartHook = (kind: TransportKind) => void | Promise<void>;
7
39
  /** Logging interface available to handlers. */
8
40
  export interface LogContext {
9
41
  clientLog(level: string, message: string, extra?: Record<string, string>): void;
10
42
  }
43
+ /**
44
+ * Attributes for a Set-Cookie directive queued via {@link CallContext.setCookie}.
45
+ * All fields are optional; omitted attributes are not serialized onto the header.
46
+ */
47
+ export interface CookieAttrs {
48
+ expires?: Date;
49
+ maxAge?: number;
50
+ domain?: string;
51
+ path?: string;
52
+ secure?: boolean;
53
+ httpOnly?: boolean;
54
+ sameSite?: "Strict" | "Lax" | "None";
55
+ partitioned?: boolean;
56
+ }
57
+ /**
58
+ * A queued cookie mutation for the HTTP response. Internal — callers
59
+ * interact through {@link CallContext.setCookie} / {@link CallContext.deleteCookie}.
60
+ */
61
+ export interface CookieSpec extends CookieAttrs {
62
+ name: string;
63
+ value: string;
64
+ delete: boolean;
65
+ }
66
+ /** Per-request sticky-session sink. Internal — populated by the HTTP handler
67
+ * when sticky sessions are enabled, read/mutated by {@link CallContext}'s
68
+ * `openSession` / `closeSession` / `session` getters. */
69
+ export interface StickyContext {
70
+ readonly acceptOpens: boolean;
71
+ state: unknown | null;
72
+ sessionId: string | null;
73
+ mintToken: string | null;
74
+ closed: boolean;
75
+ action: "none" | "resume" | "open" | "close";
76
+ _open(state: unknown, ttl: number | undefined): void;
77
+ _close(): void;
78
+ }
11
79
  /** Extended context with authentication info, available to handlers. */
12
80
  export interface CallContext extends LogContext {
13
81
  readonly auth: AuthContext;
82
+ /** Coarse identifier of the bound transport, or `undefined` until the
83
+ * server begins serving (the value is committed by the lifecycle hook
84
+ * on the very first request). */
85
+ readonly kind?: TransportKind;
86
+ /**
87
+ * Wire body bytes the framework will accept this iteration before
88
+ * triggering a continuation token (producer streams) or strict-fail
89
+ * with an EXCEPTION batch (unary / stream-exchange). Snapshot at
90
+ * collector construction; not live. `undefined` when no cap is
91
+ * configured or the transport doesn't expose one (stdio).
92
+ */
93
+ readonly remainingResponseBytes?: number;
94
+ /**
95
+ * External-channel bytes left this iteration. Always a hard cap —
96
+ * externalised uploads have no escape valve like producer
97
+ * continuation tokens. Undefined when no cap is configured or
98
+ * externalisation is disabled.
99
+ */
100
+ readonly remainingExternalizedResponseBytes?: number;
101
+ /** True iff the server has an externalisation backend wired up. */
102
+ readonly externalizationEnabled?: boolean;
103
+ /**
104
+ * Incoming request cookies. Empty for non-HTTP transports.
105
+ */
106
+ readonly cookies: ReadonlyMap<string, string>;
107
+ /**
108
+ * Queue a Set-Cookie header on the HTTP response. Only valid inside a
109
+ * unary RPC method served over HTTP; throws otherwise.
110
+ */
111
+ setCookie(name: string, value: string, attrs?: CookieAttrs): void;
112
+ /**
113
+ * Queue an unset-cookie directive on the HTTP response. Only valid
114
+ * inside a unary RPC method served over HTTP; throws otherwise.
115
+ */
116
+ deleteCookie(name: string, opts?: {
117
+ path?: string;
118
+ domain?: string;
119
+ }): void;
120
+ /**
121
+ * Live sticky-session state object, or `null` when no session is bound to
122
+ * this request. HTTP-only — other transports always return `null`.
123
+ */
124
+ readonly session: unknown | null;
125
+ /**
126
+ * Opaque 24-char-hex session ID, or `null` when no session is bound.
127
+ * Survives {@link closeSession} so post-close access-log records still
128
+ * carry the id.
129
+ */
130
+ readonly sessionId: string | null;
131
+ /**
132
+ * Register a sticky session holding *state* for subsequent requests on
133
+ * this transport. HTTP-only — throws on other transports, on calls
134
+ * without the `VGI-Session-Accept: true` opt-in header, or when a
135
+ * session is already bound to this request.
136
+ */
137
+ openSession(state: unknown, ttl?: number): void;
138
+ /** Invalidate the sticky session bound to this request. Idempotent. */
139
+ closeSession(): void;
14
140
  }
15
141
  /** Handler for unary (request-response) RPC methods. */
16
142
  export type UnaryHandler = (params: Record<string, any>, ctx: LogContext) => Promise<Record<string, any>> | Record<string, any>;
@@ -21,23 +147,31 @@ export type ProducerFn<S = any> = (state: S, out: OutputCollector) => Promise<vo
21
147
  /** Initialization function for exchange streams. Returns the initial state object. */
22
148
  export type ExchangeInit<S = any> = (params: Record<string, any>) => Promise<S> | S;
23
149
  /** Called once per input batch. Must emit exactly one output batch per call. */
24
- export type ExchangeFn<S = any> = (state: S, input: RecordBatch, out: OutputCollector) => Promise<void> | void;
150
+ export type ExchangeFn<S = any> = (state: S, input: VgiBatch, out: OutputCollector) => Promise<void> | void;
25
151
  /** Produces a header batch sent before the first output batch in a stream. */
26
152
  export type HeaderInit = (params: Record<string, any>, state: any, ctx: LogContext) => Record<string, any>;
153
+ /**
154
+ * Optional handler invoked when the client signals cancellation by writing an
155
+ * input batch carrying the ``vgi_rpc.cancel`` metadata key. The server runs
156
+ * this hook once, before breaking out of the streaming loop, giving state
157
+ * objects a chance to release resources. Errors are logged and swallowed.
158
+ */
159
+ export type OnCancelFn<S = any> = (state: S) => Promise<void> | void;
27
160
  export interface MethodDefinition {
28
161
  name: string;
29
162
  type: MethodType;
30
- paramsSchema: Schema;
31
- resultSchema: Schema;
32
- outputSchema?: Schema;
33
- inputSchema?: Schema;
163
+ paramsSchema: VgiSchema;
164
+ resultSchema: VgiSchema;
165
+ outputSchema?: VgiSchema;
166
+ inputSchema?: VgiSchema;
34
167
  handler?: UnaryHandler;
35
168
  producerInit?: ProducerInit;
36
169
  producerFn?: ProducerFn;
37
170
  exchangeInit?: ExchangeInit;
38
171
  exchangeFn?: ExchangeFn;
39
- headerSchema?: Schema;
172
+ headerSchema?: VgiSchema;
40
173
  headerInit?: HeaderInit;
174
+ onCancel?: OnCancelFn;
41
175
  doc?: string;
42
176
  defaults?: Record<string, any>;
43
177
  paramTypes?: Record<string, string>;
@@ -52,6 +186,36 @@ export interface DispatchInfo {
52
186
  serverId: string;
53
187
  /** Client-supplied request identifier, or null. */
54
188
  requestId: string | null;
189
+ /** Coarse transport identifier — `pipe` for stdio, `http` for fetch
190
+ * handlers, `unix` for AF_UNIX. */
191
+ kind?: TransportKind;
192
+ /** Logical service / protocol name. */
193
+ protocol?: string;
194
+ /** SHA-256 hex of the canonical __describe__ payload (always required in access log). */
195
+ protocolHash?: string;
196
+ /** Operator-supplied protocol-contract version label (optional). */
197
+ protocolVersion?: string;
198
+ /** Authenticated principal, empty string when anonymous. */
199
+ principal?: string;
200
+ /** Authentication domain, empty string when anonymous. */
201
+ authDomain?: string;
202
+ /** True when the call was authenticated. */
203
+ authenticated?: boolean;
204
+ /** HTTP transport: remote IP:port. */
205
+ remoteAddr?: string;
206
+ /** Self-contained Arrow IPC stream of the request batch (unary + stream init only). */
207
+ requestData?: Uint8Array;
208
+ /** Stream lifecycle identifier (32-char lowercase hex); empty on unary. */
209
+ streamId?: string;
210
+ /** True when a stream was cancelled by the client. */
211
+ cancelled?: boolean;
212
+ /** Sticky session ID (24-char hex). Present only when the request was bound
213
+ * to a sticky session or the method opened/closed one. */
214
+ sessionId?: string;
215
+ /** Sticky-session lifecycle action observed during dispatch — one of
216
+ * `"none"` / `"resume"` / `"open"` / `"close"`. Omitted when sticky is
217
+ * disabled or the request never touched the sticky middleware. */
218
+ sessionAction?: "none" | "resume" | "open" | "close";
55
219
  }
56
220
  /** Per-call I/O counters, matching Python's CallStatistics. */
57
221
  export interface CallStatistics {
@@ -73,7 +237,7 @@ export interface DispatchHook {
73
237
  onDispatchEnd(token: HookToken, info: DispatchInfo, stats: CallStatistics, error?: Error): void;
74
238
  }
75
239
  export interface EmittedBatch {
76
- batch: RecordBatch;
240
+ batch: VgiBatch;
77
241
  metadata?: Map<string, string>;
78
242
  }
79
243
  /**
@@ -88,13 +252,53 @@ export declare class OutputCollector implements CallContext {
88
252
  private _outputSchema;
89
253
  private _serverId;
90
254
  private _requestId;
255
+ private _cookieSinkEnabled;
256
+ private _responseCookies;
257
+ private _stickyContext;
91
258
  readonly auth: AuthContext;
92
- constructor(outputSchema: Schema, producerMode?: boolean, serverId?: string, requestId?: string | null, authContext?: AuthContext);
93
- get outputSchema(): Schema;
259
+ readonly cookies: ReadonlyMap<string, string>;
260
+ readonly kind?: TransportKind;
261
+ readonly remainingResponseBytes?: number;
262
+ readonly remainingExternalizedResponseBytes?: number;
263
+ readonly externalizationEnabled?: boolean;
264
+ constructor(outputSchema: VgiSchema, producerMode?: boolean, serverId?: string, requestId?: string | null, authContext?: AuthContext, cookies?: ReadonlyMap<string, string>, kind?: TransportKind,
265
+ /** Snapshot budget fields exposed to worker code via {@link CallContext}.
266
+ * Optional — non-HTTP transports omit them and existing call sites
267
+ * remain source-compatible. */
268
+ budgets?: {
269
+ remainingResponseBytes?: number;
270
+ remainingExternalizedResponseBytes?: number;
271
+ externalizationEnabled?: boolean;
272
+ });
273
+ /**
274
+ * Mark this collector as able to accept Set-Cookie directives. Called
275
+ * by the unary HTTP dispatcher only; streaming and non-HTTP paths leave
276
+ * the sink disabled so setCookie/deleteCookie throw.
277
+ * @internal
278
+ */
279
+ enableCookieSink(): void;
280
+ /**
281
+ * Return and clear all queued cookie mutations.
282
+ * @internal
283
+ */
284
+ drainResponseCookies(): CookieSpec[];
285
+ setCookie(name: string, value: string, attrs?: CookieAttrs): void;
286
+ deleteCookie(name: string, opts?: {
287
+ path?: string;
288
+ domain?: string;
289
+ }): void;
290
+ /** Attach the sticky-session sink the HTTP handler built for this request.
291
+ * @internal */
292
+ attachStickyContext(ctx: StickyContext): void;
293
+ get session(): unknown | null;
294
+ get sessionId(): string | null;
295
+ openSession(state: unknown, ttl?: number): void;
296
+ closeSession(): void;
297
+ get outputSchema(): VgiSchema;
94
298
  get finished(): boolean;
95
299
  get batches(): EmittedBatch[];
96
- /** Emit a pre-built RecordBatch as the data batch for this call. */
97
- emit(batch: RecordBatch, metadata?: Map<string, string>): void;
300
+ /** Emit a pre-built batch as the data batch for this call. */
301
+ emit(batch: VgiBatch, metadata?: Map<string, string>): void;
98
302
  /** Emit a data batch from column arrays keyed by field name. Int64 Number values are coerced to BigInt. */
99
303
  emit(columns: Record<string, any[]>): void;
100
304
  /** Single-row convenience. Wraps each value in `[value]` then calls `emit()`. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Decompress gzip-encoded data, optionally bounded by `maxOutputSize`.
3
+ *
4
+ * The gzip footer's ISIZE field is mod 2^32 so it can't be trusted for a
5
+ * pre-check — we bound output incrementally during streaming decode.
6
+ */
7
+ export declare function gzipDecompress(data: Uint8Array, maxOutputSize?: number): Promise<Uint8Array<ArrayBuffer>>;
8
+ /** Compress data with gzip. `level` is accepted for API parity with zstd but ignored — the Web API doesn't expose a level. */
9
+ export declare function gzipCompress(data: Uint8Array, _level?: number): Promise<Uint8Array<ArrayBuffer>>;
10
+ //# sourceMappingURL=gzip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gzip.d.ts","sourceRoot":"","sources":["../../src/util/gzip.ts"],"names":[],"mappings":"AAiDA;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAE/G;AAED,8HAA8H;AAC9H,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAEtG"}
@@ -1,20 +1,8 @@
1
- import { type Schema } from "@query-farm/apache-arrow";
1
+ import { type VgiSchema } from "../arrow/index.js";
2
2
  /**
3
3
  * Serialize a Schema to the Arrow IPC Schema message format.
4
4
  * This produces bytes compatible with Python's `pa.ipc.read_schema()`.
5
- *
6
- * We serialize by writing an empty-batch IPC stream and extracting
7
- * the bytes, which includes the schema message. Python's read_schema()
8
- * uses `pa.ipc.read_schema(pa.py_buffer(bytes))` which expects
9
- * the schema flatbuffer message bytes directly — but the Python side
10
- * actually uses `schema.serialize()` which produces Schema message bytes.
11
- *
12
- * In arrow-js, we can get the equivalent by using Message.from(schema)
13
- * and encoding it, or by serializing a zero-batch stream.
14
- *
15
- * The Python `schema.serialize()` produces the Schema flatbuffer message bytes,
16
- * and `pa.ipc.read_schema()` expects an IPC stream containing a schema message.
17
- * The actual format is: continuation marker (0xFFFFFFFF) + length + flatbuffer bytes.
5
+ * Equivalent to writing an empty-batch IPC stream — schema message + EOS marker.
18
6
  */
19
- export declare function serializeSchema(schema: Schema): Uint8Array;
7
+ export declare function serializeSchema(schema: VgiSchema): Uint8Array;
20
8
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/util/schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEhF;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAQ1D"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/util/schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAA4C,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE7F;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,CAE7D"}
@@ -0,0 +1,22 @@
1
+ /** Cryptographically-strong random bytes. */
2
+ export declare function randomBytes(length: number): Uint8Array;
3
+ /**
4
+ * Constant-time byte-array comparison. Returns false fast on length mismatch
5
+ * (the length itself is not a secret), and otherwise XOR-accumulates without
6
+ * an early return so the comparison takes the same wall time regardless of
7
+ * which byte differs.
8
+ */
9
+ export declare function constantTimeEqual(a: Uint8Array, b: Uint8Array): boolean;
10
+ /** HMAC-SHA256 over `data` with `key`. Returns a 32-byte tag. */
11
+ export declare function hmacSha256(key: Uint8Array, data: Uint8Array): Promise<Uint8Array>;
12
+ /**
13
+ * Verify an HMAC-SHA256 tag in constant time. Equivalent to
14
+ * `constantTimeEqual(await hmacSha256(key, data), tag)`, but routes through
15
+ * `crypto.subtle.verify` which is also constant-time on conforming runtimes.
16
+ */
17
+ export declare function hmacSha256Verify(key: Uint8Array, data: Uint8Array, tag: Uint8Array): Promise<boolean>;
18
+ /** SHA-256 of `data` as raw bytes. */
19
+ export declare function sha256(data: Uint8Array): Promise<Uint8Array>;
20
+ /** SHA-256 of `data` as lower-case hex. */
21
+ export declare function sha256Hex(data: Uint8Array): Promise<string>;
22
+ //# sourceMappingURL=web-crypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-crypto.d.ts","sourceRoot":"","sources":["../../src/util/web-crypto.ts"],"names":[],"mappings":"AAWA,6CAA6C;AAC7C,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAItD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAKvE;AAuCD,iEAAiE;AACjE,wBAAsB,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAIvF;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAG3G;AAED,sCAAsC;AACtC,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAGlE;AAED,2CAA2C;AAC3C,wBAAsB,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAKjE"}
@@ -1,5 +1,28 @@
1
+ /** Return true when the current runtime can produce zstd-compressed output.
2
+ *
3
+ * Bun has `Bun.zstdCompressSync`; Node ≥22.15 / Deno ≥2.6.9 expose it via
4
+ * `node:zlib`. Other runtimes (workerd, older Node) have no encoder. The
5
+ * fzstd fallback is decompress-only so it doesn't count.
6
+ */
7
+ export declare function isZstdCompressAvailable(): boolean;
1
8
  /** Compress data with zstd at the given level (1-22). */
2
- export declare function zstdCompress(data: Uint8Array, level: number): Uint8Array<ArrayBuffer>;
3
- /** Decompress zstd-compressed data. */
4
- export declare function zstdDecompress(data: Uint8Array): Uint8Array<ArrayBuffer>;
9
+ export declare function zstdCompress(data: Uint8Array, level: number): Promise<Uint8Array<ArrayBuffer>>;
10
+ /**
11
+ * Decompress zstd-compressed data, optionally bounding the output size.
12
+ *
13
+ * Zstd frames carry the decompressed size in the header and decompressors
14
+ * trust it eagerly: a ~3 KB compressed body claiming 100 MB output would
15
+ * allocate 100 MB. When `maxOutputSize` is supplied, this helper:
16
+ *
17
+ * 1. Reads `Frame_Content_Size` from the frame header. If declared and
18
+ * above the cap, refuses *before* allocation with a clear error.
19
+ * 2. Decompresses, then asserts the actual output size is also under the
20
+ * cap (covers frames whose size is not in the header — a streaming
21
+ * cap would be tighter, but neither Bun.zstdDecompressSync nor
22
+ * node:zlib's sync API exposes one, so we use the post-check).
23
+ *
24
+ * Mirrors the Python server-side fix in `_decompress_body` and the
25
+ * client-side fix in `external_fetch.fetch_url`.
26
+ */
27
+ export declare function zstdDecompress(data: Uint8Array, maxOutputSize?: number): Promise<Uint8Array<ArrayBuffer>>;
5
28
  //# sourceMappingURL=zstd.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zstd.d.ts","sourceRoot":"","sources":["../../src/util/zstd.ts"],"names":[],"mappings":"AAcA,yDAAyD;AACzD,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,WAAW,CAAC,CAerF;AAED,uCAAuC;AACvC,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,CASxE"}
1
+ {"version":3,"file":"zstd.d.ts","sourceRoot":"","sources":["../../src/util/zstd.ts"],"names":[],"mappings":"AA+BA;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAIjD;AAED,yDAAyD;AACzD,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAoBpG;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAsC/G"}
@@ -0,0 +1,11 @@
1
+ import { type VgiDataType } from "../arrow/index.js";
2
+ /**
3
+ * Arrow types whose `.get(0)` / `vectorFromArray` round-trips are unreliable
4
+ * in arrow-js. For these we extract and re-emit the underlying `Data` object
5
+ * directly (passthrough), like we already do for Map_.
6
+ *
7
+ * Covers Date/Time/Timestamp/Duration/Decimal/LargeUtf8/LargeBinary/
8
+ * FixedSizeBinary/Dictionary.
9
+ */
10
+ export declare function isOpaquePassthroughType(type: VgiDataType): boolean;
11
+ //# sourceMappingURL=opaque.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opaque.d.ts","sourceRoot":"","sources":["../../src/wire/opaque.ts"],"names":[],"mappings":"AAGA,OAAO,EAUL,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAYlE"}
@@ -1,7 +1,7 @@
1
- import { type RecordBatch, type Schema } from "@query-farm/apache-arrow";
1
+ import type { VgiBatch, VgiSchema } from "../arrow/index.js";
2
2
  export interface StreamMessage {
3
- schema: Schema;
4
- batches: RecordBatch[];
3
+ schema: VgiSchema;
4
+ batches: VgiBatch[];
5
5
  }
6
6
  /**
7
7
  * Reads sequential IPC streams from a byte source (e.g., process.stdin).
@@ -25,7 +25,7 @@ export declare class IpcStreamReader {
25
25
  * Use readNextBatch() to read batches one at a time.
26
26
  * Returns null on EOF.
27
27
  */
28
- openNextStream(): Promise<Schema | null>;
28
+ openNextStream(): Promise<VgiSchema | null>;
29
29
  /**
30
30
  * Read the next batch from the currently open IPC stream.
31
31
  * Returns null when the stream ends (EOS).
@@ -34,7 +34,7 @@ export declare class IpcStreamReader {
34
34
  * reading from the underlying byte source. This prevents the Arrow-JS
35
35
  * reader from consuming bytes that belong to the next IPC stream.
36
36
  */
37
- readNextBatch(): Promise<RecordBatch | null>;
37
+ readNextBatch(): Promise<VgiBatch | null>;
38
38
  cancel(): Promise<void>;
39
39
  }
40
40
  //# sourceMappingURL=reader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/wire/reader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,WAAW,EAAqB,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAE5F,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,WAAW,CAAS;IAC5B,+EAA+E;IAC/E,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO;WAIM,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IASxG;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IA2BjD;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAY9C;;;;;;;OAOG;IACG,aAAa,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAiB5C,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAG9B"}
1
+ {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/wire/reader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,QAAQ,EAAE,CAAC;CACrB;AAED;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,WAAW,CAAS;IAC5B,+EAA+E;IAC/E,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO;WAIM,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IASxG;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IA2BjD;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAYjD;;;;;;;OAOG;IACG,aAAa,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAiBzC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAG9B"}
@@ -1,9 +1,9 @@
1
- import { type RecordBatch, type Schema } from "@query-farm/apache-arrow";
1
+ import { type VgiBatch, type VgiSchema } from "../arrow/index.js";
2
2
  export interface ParsedRequest {
3
3
  methodName: string;
4
4
  requestVersion: string;
5
5
  requestId: string | null;
6
- schema: Schema;
6
+ schema: VgiSchema;
7
7
  params: Record<string, any>;
8
8
  rawMetadata: Map<string, string>;
9
9
  }
@@ -11,5 +11,13 @@ export interface ParsedRequest {
11
11
  * Parse a request from a RecordBatch with metadata.
12
12
  * Extracts method name, version, and params from the batch.
13
13
  */
14
- export declare function parseRequest(schema: Schema, batch: RecordBatch): ParsedRequest;
14
+ export declare function parseRequest(schema: VgiSchema, batch: VgiBatch): ParsedRequest;
15
+ /**
16
+ * Fill in `defaults` for any params that arrived as null/undefined.
17
+ * The slim DESCRIBE_VERSION 4 wire format no longer carries defaults to the
18
+ * client, so default substitution must happen server-side: the client sends
19
+ * a null in any column it didn't supply, and dispatch swaps in the registered
20
+ * default before invoking the handler.
21
+ */
22
+ export declare function applyDefaults(params: Record<string, any>, defaults: Record<string, any> | undefined): Record<string, any>;
15
23
  //# sourceMappingURL=request.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/wire/request.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,KAAK,WAAW,EAAE,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAInF,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,aAAa,CAkE9E"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/wire/request.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,QAAQ,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAKlF,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,GAAG,aAAa,CAwG9E;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GACxC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAQrB"}
@@ -1,25 +1,25 @@
1
- import { RecordBatch, type Schema } from "@query-farm/apache-arrow";
1
+ import { type VgiBatch, type VgiSchema } from "../arrow/index.js";
2
2
  /**
3
3
  * Coerce values for Int64 schema fields from Number to BigInt.
4
4
  * Handles both single values and arrays. Returns a new record with coerced values.
5
5
  */
6
- export declare function coerceInt64(schema: Schema, values: Record<string, any>): Record<string, any>;
6
+ export declare function coerceInt64(schema: VgiSchema, values: Record<string, any>): Record<string, any>;
7
7
  /**
8
8
  * Build a 1-row result batch with optional metadata.
9
9
  * For unary methods, `values` maps field names to single values.
10
10
  */
11
- export declare function buildResultBatch(schema: Schema, values: Record<string, any>, serverId: string, requestId: string | null): RecordBatch;
11
+ export declare function buildResultBatch(schema: VgiSchema, values: Record<string, any>, serverId: string, requestId: string | null): VgiBatch;
12
12
  /**
13
13
  * Build a 0-row error batch with EXCEPTION metadata matching Python's Message.from_exception().
14
14
  */
15
- export declare function buildErrorBatch(schema: Schema, error: Error, serverId: string, requestId: string | null): RecordBatch;
15
+ export declare function buildErrorBatch(schema: VgiSchema, error: Error, serverId: string, requestId: string | null): VgiBatch;
16
16
  /**
17
17
  * Build a 0-row log batch.
18
18
  */
19
- export declare function buildLogBatch(schema: Schema, level: string, message: string, extra?: Record<string, any>, serverId?: string, requestId?: string | null): RecordBatch;
19
+ export declare function buildLogBatch(schema: VgiSchema, level: string, message: string, extra?: Record<string, any>, serverId?: string, requestId?: string | null): VgiBatch;
20
20
  /**
21
21
  * Build a 0-row batch from a schema with metadata.
22
22
  * Used for error/log batches.
23
23
  */
24
- export declare function buildEmptyBatch(schema: Schema, metadata?: Map<string, string>): RecordBatch;
24
+ export declare function buildEmptyBatch(schema: VgiSchema, metadata?: Map<string, string>): VgiBatch;
25
25
  //# sourceMappingURL=response.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/wire/response.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,WAAW,EACX,KAAK,MAAM,EAGZ,MAAM,0BAA0B,CAAC;AAGlC;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAc5F;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,WAAW,CAwCb;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAiBrH;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,WAAW,CAeb;AA6BD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,WAAW,CAY3F"}
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../src/wire/response.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,QAAQ,EACb,KAAK,SAAS,EACf,MAAM,mBAAmB,CAAC;AAU3B;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAc/F;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,QAAQ,CAqBV;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,CAmCrH;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,QAAQ,CAeV;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,QAAQ,CAE3F"}