@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.
- package/dist/access-log.d.ts +50 -0
- package/dist/access-log.d.ts.map +1 -0
- package/dist/arrow/impl-arrowjs/index.d.ts +96 -0
- package/dist/arrow/impl-arrowjs/index.d.ts.map +1 -0
- package/dist/arrow/impl-flechette/index.d.ts +102 -0
- package/dist/arrow/impl-flechette/index.d.ts.map +1 -0
- package/dist/arrow/impl-flechette/message-meta.d.ts +11 -0
- package/dist/arrow/impl-flechette/message-meta.d.ts.map +1 -0
- package/dist/arrow/index.d.ts +4 -0
- package/dist/arrow/index.d.ts.map +1 -0
- package/dist/arrow/predicates.d.ts +44 -0
- package/dist/arrow/predicates.d.ts.map +1 -0
- package/dist/arrow/types.d.ts +62 -0
- package/dist/arrow/types.d.ts.map +1 -0
- package/dist/client/capabilities.d.ts +25 -0
- package/dist/client/capabilities.d.ts.map +1 -0
- package/dist/client/connect.d.ts.map +1 -1
- package/dist/client/introspect.d.ts +7 -0
- package/dist/client/introspect.d.ts.map +1 -1
- package/dist/client/ipc.d.ts +8 -2
- package/dist/client/ipc.d.ts.map +1 -1
- package/dist/client/pipe.d.ts.map +1 -1
- package/dist/client/stream.d.ts +11 -2
- package/dist/client/stream.d.ts.map +1 -1
- package/dist/client/uploadUrl.d.ts +25 -0
- package/dist/client/uploadUrl.d.ts.map +1 -0
- package/dist/constants.d.ts +15 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/crypto.d.ts +22 -0
- package/dist/crypto.d.ts.map +1 -0
- package/dist/dispatch/describe.d.ts +10 -6
- package/dist/dispatch/describe.d.ts.map +1 -1
- package/dist/dispatch/stream.d.ts +2 -2
- package/dist/dispatch/stream.d.ts.map +1 -1
- package/dist/dispatch/unary.d.ts +2 -2
- package/dist/dispatch/unary.d.ts.map +1 -1
- package/dist/errors.d.ts +46 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/external.d.ts +25 -5
- package/dist/external.d.ts.map +1 -1
- package/dist/http/bearer.d.ts.map +1 -1
- package/dist/http/common.d.ts +42 -7
- package/dist/http/common.d.ts.map +1 -1
- package/dist/http/dispatch.d.ts +20 -2
- package/dist/http/dispatch.d.ts.map +1 -1
- package/dist/http/handler.d.ts.map +1 -1
- package/dist/http/index.d.ts +1 -0
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/mtls.d.ts +2 -1
- package/dist/http/mtls.d.ts.map +1 -1
- package/dist/http/oauth-pkce.d.ts +141 -0
- package/dist/http/oauth-pkce.d.ts.map +1 -0
- package/dist/http/pages.d.ts +3 -0
- package/dist/http/pages.d.ts.map +1 -1
- package/dist/http/sticky.d.ts +124 -0
- package/dist/http/sticky.d.ts.map +1 -0
- package/dist/http/token.d.ts +38 -12
- package/dist/http/token.d.ts.map +1 -1
- package/dist/http/types.d.ts +68 -5
- package/dist/http/types.d.ts.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1275 -3507
- package/dist/index.js.map +19 -37
- package/dist/launcher/hash.d.ts +22 -0
- package/dist/launcher/hash.d.ts.map +1 -0
- package/dist/launcher/index.d.ts +23 -0
- package/dist/launcher/index.d.ts.map +1 -0
- package/dist/launcher/launch.d.ts +27 -0
- package/dist/launcher/launch.d.ts.map +1 -0
- package/dist/launcher/lock.d.ts +19 -0
- package/dist/launcher/lock.d.ts.map +1 -0
- package/dist/launcher/serve-unix.d.ts +54 -0
- package/dist/launcher/serve-unix.d.ts.map +1 -0
- package/dist/launcher/state.d.ts +59 -0
- package/dist/launcher/state.d.ts.map +1 -0
- package/dist/otel.d.ts.map +1 -1
- package/dist/protocol.d.ts +16 -2
- package/dist/protocol.d.ts.map +1 -1
- package/dist/schema.d.ts +45 -18
- package/dist/schema.d.ts.map +1 -1
- package/dist/server.d.ts +23 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/types.d.ts +216 -12
- package/dist/types.d.ts.map +1 -1
- package/dist/util/gzip.d.ts +10 -0
- package/dist/util/gzip.d.ts.map +1 -0
- package/dist/util/schema.d.ts +3 -15
- package/dist/util/schema.d.ts.map +1 -1
- package/dist/util/web-crypto.d.ts +22 -0
- package/dist/util/web-crypto.d.ts.map +1 -0
- package/dist/util/zstd.d.ts +26 -3
- package/dist/util/zstd.d.ts.map +1 -1
- package/dist/wire/opaque.d.ts +11 -0
- package/dist/wire/opaque.d.ts.map +1 -0
- package/dist/wire/reader.d.ts +5 -5
- package/dist/wire/reader.d.ts.map +1 -1
- package/dist/wire/request.d.ts +11 -3
- package/dist/wire/request.d.ts.map +1 -1
- package/dist/wire/response.d.ts +6 -6
- package/dist/wire/response.d.ts.map +1 -1
- package/dist/wire/writer.d.ts +49 -39
- package/dist/wire/writer.d.ts.map +1 -1
- package/package.json +24 -10
- package/src/access-log.ts +195 -0
- package/src/arrow/impl-arrowjs/index.ts +433 -0
- package/src/arrow/impl-flechette/index.ts +414 -0
- package/src/arrow/impl-flechette/message-meta.ts +174 -0
- package/src/arrow/index.ts +89 -0
- package/src/arrow/predicates.ts +56 -0
- package/src/arrow/types.ts +73 -0
- package/src/client/capabilities.ts +84 -0
- package/src/client/connect.ts +103 -26
- package/src/client/introspect.ts +60 -38
- package/src/client/ipc.ts +37 -27
- package/src/client/pipe.ts +12 -9
- package/src/client/stream.ts +34 -19
- package/src/client/uploadUrl.ts +169 -0
- package/src/constants.ts +18 -1
- package/src/crypto.ts +95 -0
- package/src/dispatch/describe.ts +146 -107
- package/src/dispatch/stream.ts +53 -24
- package/src/dispatch/unary.ts +5 -4
- package/src/errors.ts +76 -0
- package/src/external.ts +43 -29
- package/src/http/bearer.ts +2 -5
- package/src/http/common.ts +90 -23
- package/src/http/dispatch.ts +373 -46
- package/src/http/handler.ts +794 -68
- package/src/http/index.ts +1 -0
- package/src/http/mtls.ts +18 -3
- package/src/http/oauth-pkce.ts +1035 -0
- package/src/http/pages.ts +30 -15
- package/src/http/sticky.ts +429 -0
- package/src/http/token.ts +165 -75
- package/src/http/types.ts +69 -5
- package/src/index.ts +40 -1
- package/src/launcher/hash.ts +104 -0
- package/src/launcher/index.ts +35 -0
- package/src/launcher/launch.ts +284 -0
- package/src/launcher/lock.ts +171 -0
- package/src/launcher/serve-unix.ts +385 -0
- package/src/launcher/state.ts +245 -0
- package/src/otel.ts +39 -33
- package/src/protocol.ts +27 -3
- package/src/schema.ts +107 -56
- package/src/server.ts +196 -20
- package/src/types.ts +322 -18
- package/src/util/gzip.ts +63 -0
- package/src/util/schema.ts +4 -22
- package/src/util/web-crypto.ts +98 -0
- package/src/util/zstd.ts +133 -14
- package/src/wire/opaque.ts +37 -0
- package/src/wire/reader.ts +5 -4
- package/src/wire/request.ts +67 -8
- package/src/wire/response.ts +51 -85
- package/src/wire/writer.ts +165 -69
- package/dist/util/conform.d.ts +0 -18
- package/dist/util/conform.d.ts.map +0 -1
- package/src/util/conform.ts +0 -94
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-language conformance access-log hook.
|
|
3
|
+
*
|
|
4
|
+
* Emits one JSON record per RPC dispatch to a {@link Sink} (typically a file
|
|
5
|
+
* descriptor opened in append mode). The record shape conforms to the
|
|
6
|
+
* vgi-rpc access-log specification (`docs/access-log-spec.md` and
|
|
7
|
+
* `vgi_rpc/access_log.schema.json` in the Python reference repo).
|
|
8
|
+
*
|
|
9
|
+
* Use {@link AccessLogHook} to align this implementation with `vgi-rpc-test
|
|
10
|
+
* --access-log` so worker behaviour is checked across language ports by the
|
|
11
|
+
* same tool that gates the conformance suite.
|
|
12
|
+
*/
|
|
13
|
+
import type { CallStatistics, DispatchHook, DispatchInfo, HookToken } from "./types.js";
|
|
14
|
+
/** Where the hook writes formatted JSON lines. */
|
|
15
|
+
export interface AccessLogSink {
|
|
16
|
+
write(line: string): void;
|
|
17
|
+
}
|
|
18
|
+
/** A sink backed by a file descriptor; uses synchronous writes for ordering. */
|
|
19
|
+
export declare class FdSink implements AccessLogSink {
|
|
20
|
+
private readonly fd;
|
|
21
|
+
private readonly _writeSync;
|
|
22
|
+
constructor(fd: number);
|
|
23
|
+
write(line: string): void;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Options for {@link AccessLogHook}.
|
|
27
|
+
*
|
|
28
|
+
* `level` matches Python's logger-level gating in `_emit_access_log`:
|
|
29
|
+
* at "INFO" the heavy `request_data` field (a base64 of the full
|
|
30
|
+
* request batch — typically 8+ KiB per init RPC) is replaced with a
|
|
31
|
+
* `truncated: true` marker plus `original_request_bytes`, so the
|
|
32
|
+
* access-log schema's "unary requires request_data unless truncated"
|
|
33
|
+
* invariant still holds. Bump to "DEBUG" to capture full payloads for
|
|
34
|
+
* replay/audit.
|
|
35
|
+
*/
|
|
36
|
+
export interface AccessLogOptions {
|
|
37
|
+
/** Server version string (optional). */
|
|
38
|
+
serverVersion?: string;
|
|
39
|
+
/** Verbosity for heavy fields. Default: "INFO". */
|
|
40
|
+
level?: "INFO" | "DEBUG";
|
|
41
|
+
}
|
|
42
|
+
export declare class AccessLogHook implements DispatchHook {
|
|
43
|
+
private readonly sink;
|
|
44
|
+
private readonly serverVersion;
|
|
45
|
+
private readonly level;
|
|
46
|
+
constructor(sink: AccessLogSink, options?: AccessLogOptions | string);
|
|
47
|
+
onDispatchStart(_info: DispatchInfo): HookToken;
|
|
48
|
+
onDispatchEnd(token: HookToken, info: DispatchInfo, stats: CallStatistics, error?: Error): void;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=access-log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"access-log.d.ts","sourceRoot":"","sources":["../src/access-log.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExF,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAgBD,gFAAgF;AAChF,qBAAa,MAAO,YAAW,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,EAAE;IAD/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;gBAClB,EAAE,EAAE,MAAM;IACvC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAS1B;AA2BD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,qBAAa,aAAc,YAAW,YAAY;IAK9C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJvB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;gBAGtB,IAAI,EAAE,aAAa,EACpC,OAAO,GAAE,gBAAgB,GAAG,MAAW;IAazC,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS;IAK/C,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;CA2EhG"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import type { IncrementalEncoder, VgiBackendInfo, VgiBatch, VgiColumnData, VgiDataType, VgiField, VgiSchema } from "../types.js";
|
|
2
|
+
export declare const backend: VgiBackendInfo;
|
|
3
|
+
export declare const nullType: () => VgiDataType;
|
|
4
|
+
export declare const bool: () => VgiDataType;
|
|
5
|
+
export declare const int8: () => VgiDataType;
|
|
6
|
+
export declare const int16: () => VgiDataType;
|
|
7
|
+
export declare const int32: () => VgiDataType;
|
|
8
|
+
export declare const int64: () => VgiDataType;
|
|
9
|
+
export declare const uint8: () => VgiDataType;
|
|
10
|
+
export declare const uint16: () => VgiDataType;
|
|
11
|
+
export declare const uint32: () => VgiDataType;
|
|
12
|
+
export declare const uint64: () => VgiDataType;
|
|
13
|
+
export declare const float32: () => VgiDataType;
|
|
14
|
+
export declare const float64: () => VgiDataType;
|
|
15
|
+
export declare const utf8: () => VgiDataType;
|
|
16
|
+
export declare const binary: () => VgiDataType;
|
|
17
|
+
/** Microsecond Timestamp with optional timezone. */
|
|
18
|
+
export declare const timestampMicro: (timezone?: string | null) => VgiDataType;
|
|
19
|
+
/** Date32 with day resolution. */
|
|
20
|
+
export declare const dateDay: () => VgiDataType;
|
|
21
|
+
/** Time64 with microsecond resolution. */
|
|
22
|
+
export declare const timeMicro: () => VgiDataType;
|
|
23
|
+
/** Duration with microsecond resolution. */
|
|
24
|
+
export declare const durationMicro: () => VgiDataType;
|
|
25
|
+
/** Decimal128 by default; pass bitWidth=256 for Decimal256. */
|
|
26
|
+
export declare const decimal: (precision: number, scale: number, bitWidth?: 128 | 256) => VgiDataType;
|
|
27
|
+
/** FixedSizeBinary with the given byte width. */
|
|
28
|
+
export declare const fixedSizeBinary: (byteWidth: number) => VgiDataType;
|
|
29
|
+
/** LargeUtf8 — 64-bit-offset UTF-8 string. */
|
|
30
|
+
export declare const largeUtf8: () => VgiDataType;
|
|
31
|
+
/** LargeBinary — 64-bit-offset binary blob. */
|
|
32
|
+
export declare const largeBinary: () => VgiDataType;
|
|
33
|
+
/** List of `child` items. The child field carries name + nullability + type. */
|
|
34
|
+
export declare const list: (child: VgiField) => VgiDataType;
|
|
35
|
+
/** Struct of `fields`. */
|
|
36
|
+
export declare const struct: (fields: readonly VgiField[]) => VgiDataType;
|
|
37
|
+
/** Map (key → value) carried as a List<Struct<key,value>>. arrow-js's Map_
|
|
38
|
+
* constructor takes a child Field whose type is a Struct of [key, value]. */
|
|
39
|
+
export declare const map: (keyField: VgiField, valueField: VgiField, keysSorted?: boolean) => VgiDataType;
|
|
40
|
+
/** Dictionary-encoded type. `indices` must be an integer type.
|
|
41
|
+
*
|
|
42
|
+
* `id` is left undefined by default so arrow-js's internal `getId()`
|
|
43
|
+
* counter assigns a fresh unique id per Dictionary instance. Passing
|
|
44
|
+
* `-1` (or any concrete number) here would short-circuit that counter
|
|
45
|
+
* and produce id collisions when multiple Dictionary types are used. */
|
|
46
|
+
export declare const dictionary: (indices: VgiDataType, values: VgiDataType, id?: number, ordered?: boolean) => VgiDataType;
|
|
47
|
+
export declare function field(name: string, type: VgiDataType, nullable?: boolean, metadata?: Map<string, string>): VgiField;
|
|
48
|
+
export declare function schema(fields: readonly VgiField[], metadata?: Map<string, string>): VgiSchema;
|
|
49
|
+
export declare function serializeSchema(s: VgiSchema): Uint8Array;
|
|
50
|
+
export declare function deserializeSchema(bytes: Uint8Array): VgiSchema;
|
|
51
|
+
export declare function serializeBatch(batch: VgiBatch): Uint8Array;
|
|
52
|
+
/**
|
|
53
|
+
* Incremental IPC encoder over arrow-js's `RecordBatchStreamWriter`. Each
|
|
54
|
+
* call drains the writer's internal sink queue and returns the new bytes,
|
|
55
|
+
* so the caller can flush them synchronously between lockstep turns.
|
|
56
|
+
*
|
|
57
|
+
* `_writeRecordBatch` is called directly (rather than the public `write`)
|
|
58
|
+
* to bypass arrow-js's schema comparison, which would auto-close the
|
|
59
|
+
* writer and silently drop a batch whose schema differs only in
|
|
60
|
+
* nullability — our output schema is fixed at open time and all batches
|
|
61
|
+
* are structurally compatible.
|
|
62
|
+
*/
|
|
63
|
+
export declare function createIncrementalEncoder(s: VgiSchema): IncrementalEncoder;
|
|
64
|
+
export declare function deserializeBatch(bytes: Uint8Array): VgiBatch;
|
|
65
|
+
export declare function columnFromArray(values: any[], type: VgiDataType): VgiColumnData;
|
|
66
|
+
/** Build a 1-row batch from {colName: value} dict (Int64 numbers auto-coerced). */
|
|
67
|
+
export declare function singleRowBatch(s: VgiSchema, values: Record<string, any>): VgiBatch;
|
|
68
|
+
/** Build an N-row batch from columnar arrays. */
|
|
69
|
+
export declare function batchFromColumns(s: VgiSchema, columns: Record<string, any[]>): VgiBatch;
|
|
70
|
+
/** Build a batch from pre-built column-data handles + schema. */
|
|
71
|
+
export declare function batchFromColumnData(s: VgiSchema, numRows: number, columnData: VgiColumnData[], metadata?: Map<string, string>): VgiBatch;
|
|
72
|
+
/** Empty-Data builder used when assembling batches with pre-built children. */
|
|
73
|
+
export declare function emptyColumnData(type: VgiDataType): VgiColumnData;
|
|
74
|
+
/**
|
|
75
|
+
* 0-row batch with optional batch-level metadata (used for log/error/empty
|
|
76
|
+
* tombstone batches by the wire layer).
|
|
77
|
+
*/
|
|
78
|
+
export declare function emptyBatchWithMetadata(s: VgiSchema, metadata?: Map<string, string>): VgiBatch;
|
|
79
|
+
/** 1-row result batch: vectorFromArray each value, support raw Data
|
|
80
|
+
* passthrough (for Map/opaque types whose .get(0) is unreliable). */
|
|
81
|
+
export declare function singleRowBatchWithMetadata(s: VgiSchema, values: Record<string, any>, metadata?: Map<string, string>): VgiBatch;
|
|
82
|
+
/** Tag a value as a raw Data passthrough. arrow-js: returns true if the
|
|
83
|
+
* value is an arrow-js Data instance. flechette: always false (the
|
|
84
|
+
* flechette backend doesn't surface this opaque-type quirk). */
|
|
85
|
+
export declare function isOpaqueData(val: unknown): boolean;
|
|
86
|
+
/** Re-emit a batch with a different metadata map (same schema + data). */
|
|
87
|
+
export declare function withBatchMetadata(batch: VgiBatch, metadata: Map<string, string>): VgiBatch;
|
|
88
|
+
/**
|
|
89
|
+
* Serialize a sequence of batches into a single multi-batch IPC stream.
|
|
90
|
+
* arrow-js's `RecordBatchStreamWriter` writes schema + N batches + EOS
|
|
91
|
+
* incrementally — exactly what consumers expect for a producer/exchange
|
|
92
|
+
* response that emits more than one batch.
|
|
93
|
+
*/
|
|
94
|
+
export declare function serializeBatches(schema: VgiSchema, batches: VgiBatch[]): Uint8Array;
|
|
95
|
+
export declare function conformBatchToSchema(batch: VgiBatch, schema: VgiSchema): VgiBatch;
|
|
96
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/arrow/impl-arrowjs/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import type { IncrementalEncoder, VgiBackendInfo, VgiBatch, VgiColumnData, VgiDataType, VgiField, VgiSchema } from "../types.js";
|
|
2
|
+
export declare const backend: VgiBackendInfo;
|
|
3
|
+
export declare const nullType: () => VgiDataType;
|
|
4
|
+
export declare const bool: () => VgiDataType;
|
|
5
|
+
export declare const int8: () => VgiDataType;
|
|
6
|
+
export declare const int16: () => VgiDataType;
|
|
7
|
+
export declare const int32: () => VgiDataType;
|
|
8
|
+
export declare const int64: () => VgiDataType;
|
|
9
|
+
export declare const uint8: () => VgiDataType;
|
|
10
|
+
export declare const uint16: () => VgiDataType;
|
|
11
|
+
export declare const uint32: () => VgiDataType;
|
|
12
|
+
export declare const uint64: () => VgiDataType;
|
|
13
|
+
export declare const float32: () => VgiDataType;
|
|
14
|
+
export declare const float64: () => VgiDataType;
|
|
15
|
+
export declare const utf8: () => VgiDataType;
|
|
16
|
+
export declare const binary: () => VgiDataType;
|
|
17
|
+
/** Microsecond Timestamp with optional timezone. */
|
|
18
|
+
export declare const timestampMicro: (timezone?: string | null) => VgiDataType;
|
|
19
|
+
/** Date32 with day resolution. */
|
|
20
|
+
export declare const dateDay: () => VgiDataType;
|
|
21
|
+
/** Time64 with microsecond resolution. */
|
|
22
|
+
export declare const timeMicro: () => VgiDataType;
|
|
23
|
+
/** Duration with microsecond resolution. */
|
|
24
|
+
export declare const durationMicro: () => VgiDataType;
|
|
25
|
+
/** Decimal128 by default; pass bitWidth=256 for Decimal256. */
|
|
26
|
+
export declare const decimal: (precision: number, scale: number, bitWidth?: 128 | 256) => VgiDataType;
|
|
27
|
+
/** FixedSizeBinary with the given byte width. */
|
|
28
|
+
export declare const fixedSizeBinary: (byteWidth: number) => VgiDataType;
|
|
29
|
+
/** LargeUtf8 — 64-bit-offset UTF-8 string. */
|
|
30
|
+
export declare const largeUtf8: () => VgiDataType;
|
|
31
|
+
/** LargeBinary — 64-bit-offset binary blob. */
|
|
32
|
+
export declare const largeBinary: () => VgiDataType;
|
|
33
|
+
/** List of `child` items. */
|
|
34
|
+
export declare const list: (child: VgiField) => VgiDataType;
|
|
35
|
+
/** Struct of `fields`. */
|
|
36
|
+
export declare const struct: (fields: readonly VgiField[]) => VgiDataType;
|
|
37
|
+
/** Map (key → value). flechette's `map(keyField, valueField, keysSorted)`
|
|
38
|
+
* builds the entries Struct internally — same shape as arrow-js's Map_
|
|
39
|
+
* but a less verbose API. */
|
|
40
|
+
export declare const map: (keyField: VgiField, valueField: VgiField, keysSorted?: boolean) => VgiDataType;
|
|
41
|
+
/** Dictionary-encoded type. `indices` must be an integer type. */
|
|
42
|
+
export declare const dictionary: (indices: VgiDataType, values: VgiDataType, id?: number, ordered?: boolean) => VgiDataType;
|
|
43
|
+
export declare function field(name: string, type: VgiDataType, nullable?: boolean, metadata?: Map<string, string>): VgiField;
|
|
44
|
+
export declare function schema(fields: readonly VgiField[], metadata?: Map<string, string>): VgiSchema;
|
|
45
|
+
export declare function serializeSchema(s: VgiSchema): Uint8Array;
|
|
46
|
+
export declare function deserializeSchema(bytes: Uint8Array): VgiSchema;
|
|
47
|
+
export declare function serializeBatch(batch: VgiBatch): Uint8Array;
|
|
48
|
+
export declare function deserializeBatch(bytes: Uint8Array): VgiBatch;
|
|
49
|
+
export declare function columnFromArray(values: any[], type: VgiDataType): VgiColumnData;
|
|
50
|
+
export declare function singleRowBatch(s: VgiSchema, values: Record<string, any>): VgiBatch;
|
|
51
|
+
export declare function batchFromColumns(s: VgiSchema, columns: Record<string, any[]>): VgiBatch;
|
|
52
|
+
export declare function batchFromColumnData(s: VgiSchema, _numRows: number, columnData: VgiColumnData[], _metadata?: Map<string, string>): VgiBatch;
|
|
53
|
+
export declare function emptyColumnData(type: VgiDataType): VgiColumnData;
|
|
54
|
+
/**
|
|
55
|
+
* 0-row batch carrying per-record-batch (NOT schema) custom metadata.
|
|
56
|
+
*
|
|
57
|
+
* The vgi-rpc wire protocol puts per-call metadata (`vgi_rpc.log_level`,
|
|
58
|
+
* `vgi_rpc.server_id`, `vgi_rpc.request_id`, etc.) on the RecordBatch
|
|
59
|
+
* message — not on the Schema message. We stash it on the Table via
|
|
60
|
+
* `_vgiRecordMetadata`; our patched `tablesToIPC` picks it up and emits
|
|
61
|
+
* it as the Message FlatBuffer's `custom_metadata` field.
|
|
62
|
+
*/
|
|
63
|
+
export declare function emptyBatchWithMetadata(s: VgiSchema, metadata?: Map<string, string>): VgiBatch;
|
|
64
|
+
/** 1-row result batch with optional per-record-batch metadata. */
|
|
65
|
+
export declare function singleRowBatchWithMetadata(s: VgiSchema, values: Record<string, any>, metadata?: Map<string, string>): VgiBatch;
|
|
66
|
+
/** flechette has no Data passthrough concept (no opaque-type quirk). */
|
|
67
|
+
export declare function isOpaqueData(_val: unknown): boolean;
|
|
68
|
+
/** Re-emit a batch with a different per-record-batch metadata map (same
|
|
69
|
+
* schema + data). Shallow-clones the Table so the caller's reference is
|
|
70
|
+
* not mutated. */
|
|
71
|
+
export declare function withBatchMetadata(batch: VgiBatch, metadata: Map<string, string>): VgiBatch;
|
|
72
|
+
/**
|
|
73
|
+
* Serialize a sequence of batches into a single multi-batch IPC stream.
|
|
74
|
+
* Uses our flechette fork's `tablesToIPC` (added in
|
|
75
|
+
* github:Query-farm/flechette#fix/timestamp-bigint-encode) to do the
|
|
76
|
+
* concat-then-encode atomically — naive concatenation of multiple
|
|
77
|
+
* `tableToIPC` outputs produces multiple EOS markers, dropping batches
|
|
78
|
+
* past the first.
|
|
79
|
+
*/
|
|
80
|
+
export declare function serializeBatches(_schema: VgiSchema, batches: VgiBatch[]): Uint8Array;
|
|
81
|
+
/**
|
|
82
|
+
* Rebuild a batch's columns to match a target schema's field types.
|
|
83
|
+
*
|
|
84
|
+
* flechette's IPC reader produces specific types upfront (no Int_/Float_
|
|
85
|
+
* generic-type quirk that arrow-js exhibits), but a cast-compatible client
|
|
86
|
+
* can still send e.g. int64 where the method declares float64. Mirror the
|
|
87
|
+
* arrow-js backend: materialize+rebuild numeric columns whose type differs
|
|
88
|
+
* from the expected field type. Non-numeric mismatches (and matching types)
|
|
89
|
+
* keep their existing column. Field-name / field-count mismatches surface as
|
|
90
|
+
* TypeErrors so the dispatch layer can convert them to RpcError.
|
|
91
|
+
*/
|
|
92
|
+
export declare function conformBatchToSchema(batch: VgiBatch, schema: VgiSchema): VgiBatch;
|
|
93
|
+
/**
|
|
94
|
+
* Not supported on flechette: the lockstep stdio exchange protocol needs an
|
|
95
|
+
* incremental IPC writer (emit each batch's framing bytes before reading
|
|
96
|
+
* the next input), and flechette only exposes a one-shot table encoder.
|
|
97
|
+
* The flechette backend is selected for workerd / browser / worker, which
|
|
98
|
+
* are HTTP-only (no stdio), so this factory is never reached there. The
|
|
99
|
+
* stdio server requires the arrow-js backend.
|
|
100
|
+
*/
|
|
101
|
+
export declare function createIncrementalEncoder(_s: VgiSchema): IncrementalEncoder;
|
|
102
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/arrow/impl-flechette/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Walk an Arrow IPC stream and return the first RecordBatch message's
|
|
3
|
+
* (numRows, metadata) — the bits flechette drops on the floor.
|
|
4
|
+
*
|
|
5
|
+
* Returns null if the stream contains no RecordBatch.
|
|
6
|
+
*/
|
|
7
|
+
export declare function readFirstRecordBatchMeta(stream: Uint8Array): {
|
|
8
|
+
numRows: number;
|
|
9
|
+
metadata: Map<string, string>;
|
|
10
|
+
} | null;
|
|
11
|
+
//# sourceMappingURL=message-meta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-meta.d.ts","sourceRoot":"","sources":["../../../src/arrow/impl-flechette/message-meta.ts"],"names":[],"mappings":"AA0IA;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,UAAU,GACjB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,IAAI,CA2B3D"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { backend, batchFromColumnData, batchFromColumns, binary, bool, columnFromArray, conformBatchToSchema, createIncrementalEncoder, dateDay, decimal, deserializeBatch, deserializeSchema, dictionary, durationMicro, emptyBatchWithMetadata, emptyColumnData, field, fixedSizeBinary, float32, float64, int8, int16, int32, int64, isOpaqueData, largeBinary, largeUtf8, list, map, nullType, schema, serializeBatch, serializeBatches, serializeSchema, singleRowBatch, singleRowBatchWithMetadata, struct, timeMicro, timestampMicro, uint8, uint16, uint32, uint64, utf8, withBatchMetadata, } from "#vgi-rpc-arrow";
|
|
2
|
+
export { isBatch, isBinary, isBool, isDate, isDecimal, isDictionary, isDuration, isFixedSizeBinary, isFloat, isInt, isLargeBinary, isLargeUtf8, isList, isMap, isNull, isStruct, isTime, isTimestamp, isUtf8, TypeId, } from "./predicates.js";
|
|
3
|
+
export type { IncrementalEncoder, VgiBackendInfo, VgiBatch, VgiColumn, VgiColumnData, VgiDataType, VgiField, VgiSchema, VgiTypeId, } from "./types.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/arrow/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,OAAO,EACP,mBAAmB,EACnB,gBAAgB,EAChB,MAAM,EACN,IAAI,EAEJ,eAAe,EACf,oBAAoB,EACpB,wBAAwB,EACxB,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,KAAK,EACL,eAAe,EACf,OAAO,EACP,OAAO,EACP,IAAI,EACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,YAAY,EACZ,WAAW,EACX,SAAS,EACT,IAAI,EACJ,GAAG,EAEH,QAAQ,EACR,MAAM,EACN,cAAc,EACd,gBAAgB,EAEhB,eAAe,EACf,cAAc,EACd,0BAA0B,EAC1B,MAAM,EACN,SAAS,EACT,cAAc,EACd,KAAK,EACL,MAAM,EACN,MAAM,EACN,MAAM,EACN,IAAI,EACJ,iBAAiB,GAClB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,OAAO,EACP,QAAQ,EACR,MAAM,EACN,MAAM,EACN,SAAS,EACT,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,OAAO,EACP,KAAK,EACL,aAAa,EACb,WAAW,EACX,MAAM,EACN,KAAK,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,WAAW,EACX,MAAM,EACN,MAAM,GACP,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,QAAQ,EACR,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACR,SAAS,EACT,SAAS,GACV,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { VgiDataType } from "./types.js";
|
|
2
|
+
export declare const TypeId: {
|
|
3
|
+
readonly Null: 1;
|
|
4
|
+
readonly Int: 2;
|
|
5
|
+
readonly Float: 3;
|
|
6
|
+
readonly Binary: 4;
|
|
7
|
+
readonly Utf8: 5;
|
|
8
|
+
readonly Bool: 6;
|
|
9
|
+
readonly Decimal: 7;
|
|
10
|
+
readonly Date: 8;
|
|
11
|
+
readonly Time: 9;
|
|
12
|
+
readonly Timestamp: 10;
|
|
13
|
+
readonly Interval: 11;
|
|
14
|
+
readonly List: 12;
|
|
15
|
+
readonly Struct: 13;
|
|
16
|
+
readonly Union: 14;
|
|
17
|
+
readonly FixedSizeBinary: 15;
|
|
18
|
+
readonly FixedSizeList: 16;
|
|
19
|
+
readonly Map: 17;
|
|
20
|
+
readonly Duration: 18;
|
|
21
|
+
readonly LargeBinary: 19;
|
|
22
|
+
readonly LargeUtf8: 20;
|
|
23
|
+
readonly Dictionary: -1;
|
|
24
|
+
};
|
|
25
|
+
export declare const isNull: (t: VgiDataType) => boolean;
|
|
26
|
+
export declare const isInt: (t: VgiDataType) => boolean;
|
|
27
|
+
export declare const isFloat: (t: VgiDataType) => boolean;
|
|
28
|
+
export declare const isBinary: (t: VgiDataType) => boolean;
|
|
29
|
+
export declare const isUtf8: (t: VgiDataType) => boolean;
|
|
30
|
+
export declare const isLargeUtf8: (t: VgiDataType) => boolean;
|
|
31
|
+
export declare const isLargeBinary: (t: VgiDataType) => boolean;
|
|
32
|
+
export declare const isBool: (t: VgiDataType) => boolean;
|
|
33
|
+
export declare const isDecimal: (t: VgiDataType) => boolean;
|
|
34
|
+
export declare const isDate: (t: VgiDataType) => boolean;
|
|
35
|
+
export declare const isTime: (t: VgiDataType) => boolean;
|
|
36
|
+
export declare const isTimestamp: (t: VgiDataType) => boolean;
|
|
37
|
+
export declare const isDuration: (t: VgiDataType) => boolean;
|
|
38
|
+
export declare const isList: (t: VgiDataType) => boolean;
|
|
39
|
+
export declare const isStruct: (t: VgiDataType) => boolean;
|
|
40
|
+
export declare const isMap: (t: VgiDataType) => boolean;
|
|
41
|
+
export declare const isFixedSizeBinary: (t: VgiDataType) => boolean;
|
|
42
|
+
export declare const isDictionary: (t: VgiDataType) => boolean;
|
|
43
|
+
export declare function isBatch(x: unknown): x is import("./types.js").VgiBatch;
|
|
44
|
+
//# sourceMappingURL=predicates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"predicates.d.ts","sourceRoot":"","sources":["../../src/arrow/predicates.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;CAsBT,CAAC;AAEX,eAAO,MAAM,MAAM,GAAI,GAAG,WAAW,KAAG,OAAmC,CAAC;AAC5E,eAAO,MAAM,KAAK,GAAI,GAAG,WAAW,KAAG,OAAkC,CAAC;AAC1E,eAAO,MAAM,OAAO,GAAI,GAAG,WAAW,KAAG,OAAoC,CAAC;AAC9E,eAAO,MAAM,QAAQ,GAAI,GAAG,WAAW,KAAG,OAAwE,CAAC;AACnH,eAAO,MAAM,MAAM,GAAI,GAAG,WAAW,KAAG,OAAoE,CAAC;AAC7G,eAAO,MAAM,WAAW,GAAI,GAAG,WAAW,KAAG,OAAwC,CAAC;AACtF,eAAO,MAAM,aAAa,GAAI,GAAG,WAAW,KAAG,OAA0C,CAAC;AAC1F,eAAO,MAAM,MAAM,GAAI,GAAG,WAAW,KAAG,OAAmC,CAAC;AAC5E,eAAO,MAAM,SAAS,GAAI,GAAG,WAAW,KAAG,OAAsC,CAAC;AAClF,eAAO,MAAM,MAAM,GAAI,GAAG,WAAW,KAAG,OAAmC,CAAC;AAC5E,eAAO,MAAM,MAAM,GAAI,GAAG,WAAW,KAAG,OAAmC,CAAC;AAC5E,eAAO,MAAM,WAAW,GAAI,GAAG,WAAW,KAAG,OAAwC,CAAC;AACtF,eAAO,MAAM,UAAU,GAAI,GAAG,WAAW,KAAG,OAAuC,CAAC;AACpF,eAAO,MAAM,MAAM,GAAI,GAAG,WAAW,KAAG,OAAmC,CAAC;AAC5E,eAAO,MAAM,QAAQ,GAAI,GAAG,WAAW,KAAG,OAAqC,CAAC;AAChF,eAAO,MAAM,KAAK,GAAI,GAAG,WAAW,KAAG,OAAkC,CAAC;AAC1E,eAAO,MAAM,iBAAiB,GAAI,GAAG,WAAW,KAAG,OAA8C,CAAC;AAClG,eAAO,MAAM,YAAY,GAAI,GAAG,WAAW,KAAG,OAAyC,CAAC;AAExF,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,OAAO,YAAY,EAAE,QAAQ,CAOtE"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export type VgiTypeId = number;
|
|
2
|
+
export interface VgiDataType {
|
|
3
|
+
readonly typeId: VgiTypeId;
|
|
4
|
+
}
|
|
5
|
+
export interface VgiField {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly type: VgiDataType;
|
|
8
|
+
readonly nullable: boolean;
|
|
9
|
+
readonly metadata: Map<string, string>;
|
|
10
|
+
}
|
|
11
|
+
export interface VgiSchema {
|
|
12
|
+
readonly fields: readonly VgiField[];
|
|
13
|
+
readonly metadata: Map<string, string>;
|
|
14
|
+
}
|
|
15
|
+
export interface VgiColumn {
|
|
16
|
+
readonly type: VgiDataType;
|
|
17
|
+
readonly length: number;
|
|
18
|
+
get(index: number): unknown;
|
|
19
|
+
[Symbol.iterator](): Iterator<unknown>;
|
|
20
|
+
}
|
|
21
|
+
export interface VgiBatch {
|
|
22
|
+
readonly schema: VgiSchema;
|
|
23
|
+
readonly numRows: number;
|
|
24
|
+
readonly metadata?: Map<string, string> | null;
|
|
25
|
+
getChild(name: string): VgiColumn | null;
|
|
26
|
+
getChildAt(index: number): VgiColumn | null;
|
|
27
|
+
}
|
|
28
|
+
export interface VgiBackendInfo {
|
|
29
|
+
readonly name: "arrow-js" | "flechette";
|
|
30
|
+
/**
|
|
31
|
+
* Whether this backend's `.get(0)` round-trip is unreliable for opaque
|
|
32
|
+
* column types (Map/Date/Time/Timestamp/Duration/Decimal/LargeUtf8/
|
|
33
|
+
* LargeBinary/FixedSizeBinary/Dictionary), requiring the request parser to
|
|
34
|
+
* pass the raw column data straight through instead of materializing a
|
|
35
|
+
* value. True for arrow-js; false for flechette (which extracts cleanly).
|
|
36
|
+
*/
|
|
37
|
+
readonly opaquePassthrough: boolean;
|
|
38
|
+
}
|
|
39
|
+
export type VgiColumnData = unknown;
|
|
40
|
+
/**
|
|
41
|
+
* Incremental IPC stream encoder for the lockstep stdio transport.
|
|
42
|
+
*
|
|
43
|
+
* The stdio exchange protocol is lockstep — the client reads each response
|
|
44
|
+
* batch (and its framing bytes) before sending the next input — so we
|
|
45
|
+
* cannot buffer-then-emit at close. Each call returns the wire bytes to
|
|
46
|
+
* flush immediately. Only the stdio server uses this; HTTP serializes
|
|
47
|
+
* whole responses via {@link serializeBatches}.
|
|
48
|
+
*
|
|
49
|
+
* The arrow-js backend implements this over `RecordBatchStreamWriter`.
|
|
50
|
+
* The flechette backend has no incremental-writer surface and its
|
|
51
|
+
* factory throws — keeping arrow-js out of the flechette (workerd/
|
|
52
|
+
* browser) bundle, which is HTTP-only anyway.
|
|
53
|
+
*/
|
|
54
|
+
export interface IncrementalEncoder {
|
|
55
|
+
/** Bytes for the schema preamble (continuation + schema message). */
|
|
56
|
+
start(): Uint8Array;
|
|
57
|
+
/** Bytes for one record batch message. */
|
|
58
|
+
writeBatch(batch: VgiBatch): Uint8Array;
|
|
59
|
+
/** Bytes for the end-of-stream marker. */
|
|
60
|
+
finish(): Uint8Array;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/arrow/types.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAE/B,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IACzC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CAAC;IACxC;;;;;;OAMG;IACH,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;CACrC;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;AAEpC;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,kBAAkB;IACjC,qEAAqE;IACrE,KAAK,IAAI,UAAU,CAAC;IACpB,0CAA0C;IAC1C,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU,CAAC;IACxC,0CAA0C;IAC1C,MAAM,IAAI,UAAU,CAAC;CACtB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP server capability discovery.
|
|
3
|
+
*
|
|
4
|
+
* Mirrors Python's `http_capabilities()`: probes `OPTIONS {prefix}/health`
|
|
5
|
+
* and reads three response headers:
|
|
6
|
+
* - `VGI-Max-Request-Bytes` — server-enforced inline request cap
|
|
7
|
+
* - `VGI-Upload-URL-Support` — "true" when the server vends upload URLs
|
|
8
|
+
* - `VGI-Max-Upload-Bytes` — cap on out-of-band upload size
|
|
9
|
+
*
|
|
10
|
+
* Honours `Cache-Control: max-age=N` for refresh scheduling.
|
|
11
|
+
*/
|
|
12
|
+
export interface HttpServerCapabilities {
|
|
13
|
+
/** Server's advertised max inline request body size (bytes). */
|
|
14
|
+
maxRequestBytes: number | null;
|
|
15
|
+
/** Whether the server vends upload URLs via `__upload_url__/init`. */
|
|
16
|
+
uploadUrlSupport: boolean;
|
|
17
|
+
/** Cap on the size of an externalized upload (bytes). */
|
|
18
|
+
maxUploadBytes: number | null;
|
|
19
|
+
/** Monotonic-time-ish epoch (ms) at which this snapshot should be re-probed. */
|
|
20
|
+
cacheExpiresAt: number | null;
|
|
21
|
+
}
|
|
22
|
+
export declare function parseCapabilitiesFromHeaders(headers: Headers): HttpServerCapabilities;
|
|
23
|
+
export declare function discoverHttpCapabilities(baseUrl: string, prefix: string, authorization?: string): Promise<HttpServerCapabilities>;
|
|
24
|
+
export declare function isCapabilitySnapshotFresh(snapshot: HttpServerCapabilities | null): boolean;
|
|
25
|
+
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/client/capabilities.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,sBAAsB;IACrC,gEAAgE;IAChE,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,sEAAsE;IACtE,gBAAgB,EAAE,OAAO,CAAC;IAC1B,yDAAyD;IACzD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gFAAgF;IAChF,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAaD,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,sBAAsB,CAyBrF;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,sBAAsB,CAAC,CASjC;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,GAAG,OAAO,CAI1F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/client/connect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/client/connect.ts"],"names":[],"mappings":"AAaA,OAAO,EAAmC,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAS3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAMpE,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACxF,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7E,QAAQ,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACxC,KAAK,IAAI,IAAI,CAAC;CACf;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,SAAS,CA6WpF"}
|
|
@@ -14,6 +14,10 @@ export interface MethodInfo {
|
|
|
14
14
|
}
|
|
15
15
|
export interface ServiceDescription {
|
|
16
16
|
protocolName: string;
|
|
17
|
+
/** Application protocol surface version surfaced by the server's
|
|
18
|
+
* __describe__ response. Empty string when the server did not declare
|
|
19
|
+
* a `protocolVersion`. */
|
|
20
|
+
protocolVersion: string;
|
|
17
21
|
methods: MethodInfo[];
|
|
18
22
|
}
|
|
19
23
|
/**
|
|
@@ -27,5 +31,8 @@ export declare function parseDescribeResponse(batches: RecordBatch[], onLog?: (m
|
|
|
27
31
|
export declare function httpIntrospect(baseUrl: string, options?: {
|
|
28
32
|
prefix?: string;
|
|
29
33
|
authorization?: string;
|
|
34
|
+
compressionLevel?: number;
|
|
35
|
+
compressFn?: (data: Uint8Array, level: number) => Promise<Uint8Array>;
|
|
36
|
+
decompressFn?: (data: Uint8Array) => Promise<Uint8Array>;
|
|
30
37
|
}): Promise<ServiceDescription>;
|
|
31
38
|
//# sourceMappingURL=introspect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"introspect.d.ts","sourceRoot":"","sources":["../../src/client/introspect.ts"],"names":[],"mappings":"AAGA,OAAO,EAAyB,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"introspect.d.ts","sourceRoot":"","sources":["../../src/client/introspect.ts"],"names":[],"mappings":"AAGA,OAAO,EAAyB,KAAK,WAAW,EAAE,KAAK,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAMhG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB;;+BAE2B;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AAoBD;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,GAChC,OAAO,CAAC,kBAAkB,CAAC,CAyD7B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IACtE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CAC1D,GACA,OAAO,CAAC,kBAAkB,CAAC,CAsC7B"}
|
package/dist/client/ipc.d.ts
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
import { DataType, RecordBatch, type Schema } from "@query-farm/apache-arrow";
|
|
1
|
+
import { DataType, type RecordBatch, type Schema } from "@query-farm/apache-arrow";
|
|
2
2
|
import { IpcStreamReader } from "../wire/reader.js";
|
|
3
3
|
import type { LogMessage } from "./types.js";
|
|
4
4
|
/** Infer an Arrow DataType from a JS value. */
|
|
5
5
|
export declare function inferArrowType(value: any): DataType;
|
|
6
6
|
/**
|
|
7
7
|
* Build a 1-row Arrow IPC request batch with method metadata.
|
|
8
|
+
*
|
|
9
|
+
* When `options.protocolVersion` is non-empty, the value is emitted as
|
|
10
|
+
* `vgi_rpc.protocol_version` so servers that declare a Protocol-level
|
|
11
|
+
* version validate the request at the dispatch boundary.
|
|
8
12
|
*/
|
|
9
|
-
export declare function buildRequestIpc(schema: Schema, params: Record<string, any>, method: string
|
|
13
|
+
export declare function buildRequestIpc(schema: Schema, params: Record<string, any>, method: string, options?: {
|
|
14
|
+
protocolVersion?: string;
|
|
15
|
+
}): Uint8Array;
|
|
10
16
|
/**
|
|
11
17
|
* Read schema + all batches from an IPC stream body.
|
|
12
18
|
*/
|
package/dist/client/ipc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ipc.d.ts","sourceRoot":"","sources":["../../src/client/ipc.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,QAAQ,
|
|
1
|
+
{"version":3,"file":"ipc.d.ts","sourceRoot":"","sources":["../../src/client/ipc.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,QAAQ,EAGR,KAAK,WAAW,EAEhB,KAAK,MAAM,EAEZ,MAAM,0BAA0B,CAAC;AAalC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,+CAA+C;AAC/C,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG,QAAQ,CAOnD;AAyCD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GACrC,UAAU,CAkCZ;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,CAS/G;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,GAAG,OAAO,CAqCjG;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAiB1E;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAQtF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipe.d.ts","sourceRoot":"","sources":["../../src/client/pipe.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,MAAM,EAGP,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,KAAK,sBAAsB,EAAoD,MAAM,gBAAgB,CAAC;AAE/G,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAM1G,UAAU,YAAY;IACpB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,KAAK,CAAC,IAAI,IAAI,CAAC;IACf,GAAG,IAAI,IAAI,CAAC;CACb;AAED,KAAK,OAAO,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;AA6C3C,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,MAAM,CAAC,CAA4B;IAC3C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,eAAe,CAAC,CAAyB;gBAErC,IAAI,EAAE;QAChB,MAAM,EAAE,eAAe,CAAC;QACxB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;QAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;QACnC,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,IAAI,CAAC;QACxB,eAAe,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;QAC5C,cAAc,CAAC,EAAE,sBAAsB,CAAC;KACzC;IAWD,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAEvC;IAED;;;;OAIG;YACW,gBAAgB;IAqB9B;;;;;OAKG;YACW,mBAAmB;IASjC;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAsG5E;;OAEG;YACW,QAAQ;IAiBtB;;OAEG;IACI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAqD7E,KAAK,IAAI,IAAI;CAoCd;AAMD,wBAAgB,WAAW,CACzB,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,EACpC,QAAQ,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,SAAS,
|
|
1
|
+
{"version":3,"file":"pipe.d.ts","sourceRoot":"","sources":["../../src/client/pipe.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,MAAM,EAGP,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,KAAK,sBAAsB,EAAoD,MAAM,gBAAgB,CAAC;AAE/G,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAM1G,UAAU,YAAY;IACpB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,KAAK,CAAC,IAAI,IAAI,CAAC;IACf,GAAG,IAAI,IAAI,CAAC;CACb;AAED,KAAK,OAAO,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;AA6C3C,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,MAAM,CAAC,CAA4B;IAC3C,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,eAAe,CAAC,CAAyB;gBAErC,IAAI,EAAE;QAChB,MAAM,EAAE,eAAe,CAAC;QACxB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;QAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;QACnC,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,IAAI,CAAC;QACxB,eAAe,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;QAC5C,cAAc,CAAC,EAAE,sBAAsB,CAAC;KACzC;IAWD,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAEvC;IAED;;;;OAIG;YACW,gBAAgB;IAqB9B;;;;;OAKG;YACW,mBAAmB;IASjC;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAsG5E;;OAEG;YACW,QAAQ;IAiBtB;;OAEG;IACI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;IAqD7E,KAAK,IAAI,IAAI;CAoCd;AAMD,wBAAgB,WAAW,CACzB,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,EACpC,QAAQ,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,SAAS,CAqOX;AAMD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAwC9F"}
|
package/dist/client/stream.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { RecordBatch, Schema } from "@query-farm/apache-arrow";
|
|
2
2
|
import { type ExternalLocationConfig } from "../external.js";
|
|
3
3
|
import type { LogMessage, StreamSession } from "./types.js";
|
|
4
|
-
type CompressFn = (data: Uint8Array, level: number) => Uint8Array
|
|
5
|
-
type DecompressFn = (data: Uint8Array) => Uint8Array
|
|
4
|
+
type CompressFn = (data: Uint8Array, level: number) => Promise<Uint8Array>;
|
|
5
|
+
type DecompressFn = (data: Uint8Array) => Promise<Uint8Array>;
|
|
6
|
+
/**
|
|
7
|
+
* Posts an Arrow IPC request body to *url*, transparently handling
|
|
8
|
+
* client-vended request externalization. Provided by the parent connection
|
|
9
|
+
* so a single capability cache can drive both unary and stream call paths.
|
|
10
|
+
*/
|
|
11
|
+
export type PostFn = (url: string, body: Uint8Array) => Promise<Response>;
|
|
6
12
|
export declare class HttpStreamSession implements StreamSession {
|
|
7
13
|
private _baseUrl;
|
|
8
14
|
private _prefix;
|
|
@@ -19,6 +25,7 @@ export declare class HttpStreamSession implements StreamSession {
|
|
|
19
25
|
private _decompressFn?;
|
|
20
26
|
private _authorization?;
|
|
21
27
|
private _externalConfig?;
|
|
28
|
+
private _postFn?;
|
|
22
29
|
constructor(opts: {
|
|
23
30
|
baseUrl: string;
|
|
24
31
|
prefix: string;
|
|
@@ -35,7 +42,9 @@ export declare class HttpStreamSession implements StreamSession {
|
|
|
35
42
|
decompressFn?: DecompressFn;
|
|
36
43
|
authorization?: string;
|
|
37
44
|
externalConfig?: ExternalLocationConfig;
|
|
45
|
+
postFn?: PostFn;
|
|
38
46
|
});
|
|
47
|
+
private _post;
|
|
39
48
|
get header(): Record<string, any> | null;
|
|
40
49
|
private _buildHeaders;
|
|
41
50
|
private _prepareBody;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/client/stream.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,WAAW,EAAE,MAAM,EAA2B,MAAM,0BAA0B,CAAC;AAGzG,OAAO,EAAE,KAAK,sBAAsB,EAAoD,MAAM,gBAAgB,CAAC;AAG/G,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE5D,KAAK,UAAU,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/client/stream.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,WAAW,EAAE,MAAM,EAA2B,MAAM,0BAA0B,CAAC;AAGzG,OAAO,EAAE,KAAK,sBAAsB,EAAoD,MAAM,gBAAgB,CAAC;AAG/G,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE5D,KAAK,UAAU,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAC3E,KAAK,YAAY,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAE9D;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE1E,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAC,CAA4B;IAC3C,OAAO,CAAC,eAAe,CAAgB;IACvC,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,iBAAiB,CAAC,CAAS;IACnC,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,aAAa,CAAC,CAAe;IACrC,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,eAAe,CAAC,CAAyB;IACjD,OAAO,CAAC,OAAO,CAAC,CAAS;gBAEb,IAAI,EAAE;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,IAAI,CAAC;QAClC,cAAc,EAAE,WAAW,EAAE,CAAC;QAC9B,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;QACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;QACxB,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,sBAAsB,CAAC;QACxC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;YAmBa,KAAK;IASnB,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAEvC;IAED,OAAO,CAAC,aAAa;YAgBP,YAAY;YAOZ,aAAa;IAQ3B;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;YA0D9D,WAAW;IAmCzB,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;YAoD/D,iBAAiB;IAuB/B,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface UploadUrlPair {
|
|
2
|
+
uploadUrl: string;
|
|
3
|
+
downloadUrl: string;
|
|
4
|
+
expiresAt: Date;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* POST `__upload_url__/init` and return the requested number of pre-signed
|
|
8
|
+
* URL pairs. Server must have an `uploadUrlProvider` configured; otherwise
|
|
9
|
+
* the route returns 404 and we surface that as `RpcError("NotSupported")`.
|
|
10
|
+
*/
|
|
11
|
+
export declare function requestUploadUrls(baseUrl: string, prefix: string, count: number, authorization?: string): Promise<UploadUrlPair[]>;
|
|
12
|
+
export interface ExternalizeOptions {
|
|
13
|
+
baseUrl: string;
|
|
14
|
+
prefix: string;
|
|
15
|
+
authorization?: string;
|
|
16
|
+
/** Optional per-URL validator; throw to reject. */
|
|
17
|
+
urlValidator?: ((url: string) => void) | null;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Upload *body* via a server-vended URL and return the pointer-batch body
|
|
21
|
+
* that should be sent in place of the original. Throws if the server does
|
|
22
|
+
* not advertise upload-URL support or the upload fails.
|
|
23
|
+
*/
|
|
24
|
+
export declare function externalizeRequestBody(body: Uint8Array, opts: ExternalizeOptions): Promise<Uint8Array>;
|
|
25
|
+
//# sourceMappingURL=uploadUrl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uploadUrl.d.ts","sourceRoot":"","sources":["../../src/client/uploadUrl.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,EAAE,CAAC,CAkD1B;AA4CD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;CAC/C;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAmB5G"}
|