@query-farm/vgi-rpc 0.6.1 → 0.6.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/http/handler.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAa/C,OAAO,EAAE,KAAK,kBAAkB,EAAuB,MAAM,YAAY,CAAC;AAI1E;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiSpD"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/http/handler.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAa/C,OAAO,EAAE,KAAK,kBAAkB,EAAuB,MAAM,YAAY,CAAC;AAI1E;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAkSpD"}
package/dist/index.js CHANGED
@@ -2762,7 +2762,8 @@ function createHttpHandler(protocol, options) {
2762
2762
  if (corsOrigins) {
2763
2763
  headers.set("Access-Control-Allow-Origin", corsOrigins);
2764
2764
  headers.set("Access-Control-Allow-Methods", "POST, OPTIONS");
2765
- headers.set("Access-Control-Allow-Headers", "Content-Type");
2765
+ headers.set("Access-Control-Allow-Headers", "Content-Type, Authorization");
2766
+ headers.set("Access-Control-Expose-Headers", "WWW-Authenticate, X-Request-ID, X-VGI-Content-Encoding");
2766
2767
  }
2767
2768
  }
2768
2769
  async function compressIfAccepted(response, clientAcceptsZstd) {
@@ -4845,4 +4846,4 @@ export {
4845
4846
  ARROW_CONTENT_TYPE
4846
4847
  };
4847
4848
 
4848
- //# debugId=37CD76108224132A64756E2164756E21
4849
+ //# debugId=1CDD4B067C444B3764756E2164756E21
package/dist/index.js.map CHANGED
@@ -19,7 +19,7 @@
19
19
  "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n Field,\n makeData,\n RecordBatch,\n RecordBatchStreamWriter,\n Schema,\n Struct,\n vectorFromArray,\n} from \"@query-farm/apache-arrow\";\nimport { DESCRIBE_METHOD_NAME } from \"../constants.js\";\nimport { RpcError } from \"../errors.js\";\nimport { type ExternalLocationConfig, isExternalLocationBatch, resolveExternalLocation } from \"../external.js\";\nimport { serializeIpcStream } from \"../http/common.js\";\nimport { IpcStreamReader } from \"../wire/reader.js\";\nimport type { RpcClient } from \"./connect.js\";\nimport { type MethodInfo, parseDescribeResponse, type ServiceDescription } from \"./introspect.js\";\nimport { buildRequestIpc, dispatchLogOrError, extractBatchRows, inferArrowType } from \"./ipc.js\";\nimport type { LogMessage, PipeConnectOptions, StreamSession, SubprocessConnectOptions } from \"./types.js\";\n\n// ---------------------------------------------------------------------------\n// Writable abstraction\n// ---------------------------------------------------------------------------\n\ninterface PipeWritable {\n write(data: Uint8Array): void;\n flush?(): void;\n end(): void;\n}\n\ntype WriteFn = (bytes: Uint8Array) => void;\n\n// ---------------------------------------------------------------------------\n// PipeIncrementalWriter — batch-by-batch IPC writing for lockstep streaming\n// ---------------------------------------------------------------------------\n\nclass PipeIncrementalWriter {\n private writer: RecordBatchStreamWriter;\n private writeFn: WriteFn;\n private closed = false;\n\n constructor(writeFn: WriteFn, schema: Schema) {\n this.writeFn = writeFn;\n this.writer = new RecordBatchStreamWriter();\n this.writer.reset(undefined, schema);\n this.drain(); // flushes schema message\n }\n\n write(batch: RecordBatch): void {\n if (this.closed) throw new Error(\"PipeIncrementalWriter already closed\");\n (this.writer as any)._writeRecordBatch(batch);\n this.drain();\n }\n\n close(): void {\n if (this.closed) return;\n this.closed = true;\n // EOS marker: continuation (0xFFFFFFFF) + metadata length (0x00000000)\n const eos = new Uint8Array(new Int32Array([-1, 0]).buffer);\n this.writeFn(eos);\n }\n\n private drain(): void {\n const values = (this.writer as any)._sink._values as Uint8Array[];\n for (const chunk of values) {\n this.writeFn(chunk);\n }\n values.length = 0;\n }\n}\n\n// ---------------------------------------------------------------------------\n// PipeStreamSession — lockstep streaming over pipes\n// ---------------------------------------------------------------------------\n\nexport class PipeStreamSession implements StreamSession {\n private _reader: IpcStreamReader;\n private _writeFn: WriteFn;\n private _onLog?: (msg: LogMessage) => void;\n private _header: Record<string, any> | null;\n private _inputWriter: PipeIncrementalWriter | null = null;\n private _inputSchema: Schema | null = null;\n private _outputStreamOpened = false;\n private _closed = false;\n private _outputSchema: Schema;\n private _releaseBusy: () => void;\n private _setDrainPromise: (p: Promise<void>) => void;\n private _externalConfig?: ExternalLocationConfig;\n\n constructor(opts: {\n reader: IpcStreamReader;\n writeFn: WriteFn;\n onLog?: (msg: LogMessage) => void;\n header: Record<string, any> | null;\n outputSchema: Schema;\n releaseBusy: () => void;\n setDrainPromise: (p: Promise<void>) => void;\n externalConfig?: ExternalLocationConfig;\n }) {\n this._reader = opts.reader;\n this._writeFn = opts.writeFn;\n this._onLog = opts.onLog;\n this._header = opts.header;\n this._outputSchema = opts.outputSchema;\n this._releaseBusy = opts.releaseBusy;\n this._setDrainPromise = opts.setDrainPromise;\n this._externalConfig = opts.externalConfig;\n }\n\n get header(): Record<string, any> | null {\n return this._header;\n }\n\n /**\n * Read output batches from the server until a data batch is found.\n * Dispatches log/error batches along the way.\n * Returns null when server closes output stream (EOS).\n */\n private async _readOutputBatch(): Promise<RecordBatch | null> {\n while (true) {\n const batch = await this._reader.readNextBatch();\n if (batch === null) return null; // Server closed output stream\n\n if (batch.numRows === 0) {\n // Check for external location pointer batch\n if (isExternalLocationBatch(batch)) {\n return await resolveExternalLocation(batch, this._externalConfig);\n }\n // Check if it's a log/error batch. If so, dispatch and continue.\n // Otherwise it's a zero-row data batch — return it.\n if (dispatchLogOrError(batch, this._onLog)) {\n continue;\n }\n }\n\n return batch;\n }\n }\n\n /**\n * Ensure the server's output stream is opened for reading.\n * Must be called AFTER sending the first input batch, because\n * the server's output schema may not be flushed until it processes\n * the first input and writes the first output batch.\n */\n private async _ensureOutputStream(): Promise<void> {\n if (this._outputStreamOpened) return;\n this._outputStreamOpened = true;\n const schema = await this._reader.openNextStream();\n if (!schema) {\n throw new RpcError(\"ProtocolError\", \"Expected output stream but got EOF\", \"\");\n }\n }\n\n /**\n * Send an exchange request and return the data rows.\n */\n async exchange(input: Record<string, any>[]): Promise<Record<string, any>[]> {\n if (this._closed) {\n throw new RpcError(\"ProtocolError\", \"Stream session is closed\", \"\");\n }\n\n // Build input batch\n let inputSchema: Schema;\n let batch: RecordBatch;\n\n if (input.length === 0) {\n // Zero-row exchange: use cached input schema from a prior exchange,\n // then fall back to the output schema from describe. The cached\n // schema is preferred because input and output schemas may differ\n // (e.g. exchange_accumulate: input {value} → output {running_sum, exchange_count}).\n inputSchema = this._inputSchema ?? this._outputSchema;\n const children = inputSchema.fields.map((f) => {\n return makeData({ type: f.type, length: 0, nullCount: 0 });\n });\n const structType = new Struct(inputSchema.fields);\n const data = makeData({\n type: structType,\n length: 0,\n children,\n nullCount: 0,\n });\n batch = new RecordBatch(inputSchema, data);\n } else {\n // Infer schema from first row.\n // Always use nullable fields — the server validates input schemas\n // strictly and its schema typically uses nullable columns.\n const keys = Object.keys(input[0]);\n const fields = keys.map((key) => {\n let sample: any;\n for (const row of input) {\n if (row[key] != null) {\n sample = row[key];\n break;\n }\n }\n const arrowType = inferArrowType(sample);\n return new Field(key, arrowType, /* nullable */ true);\n });\n inputSchema = new Schema(fields);\n\n // Validate schema consistency: all exchanges on the same pipe session\n // share a single IPC stream, so the schema is locked to the first call.\n if (this._inputSchema) {\n const cached = this._inputSchema;\n if (\n cached.fields.length !== inputSchema.fields.length ||\n cached.fields.some((f, i) => f.name !== inputSchema.fields[i].name)\n ) {\n throw new RpcError(\n \"ProtocolError\",\n `Exchange input schema changed: expected [${cached.fields.map((f) => f.name).join(\", \")}] ` +\n `but got [${inputSchema.fields.map((f) => f.name).join(\", \")}]`,\n \"\",\n );\n }\n } else {\n this._inputSchema = inputSchema;\n }\n\n const children = inputSchema.fields.map((f) => {\n const values = input.map((row) => row[f.name]);\n return vectorFromArray(values, f.type).data[0];\n });\n const structType = new Struct(inputSchema.fields);\n const data = makeData({\n type: structType,\n length: input.length,\n children,\n nullCount: 0,\n });\n batch = new RecordBatch(inputSchema, data);\n }\n\n // Lazy-open input writer on first exchange\n if (!this._inputWriter) {\n this._inputWriter = new PipeIncrementalWriter(this._writeFn, inputSchema);\n }\n\n // Write one input batch FIRST, then open output stream.\n // The server may not flush the output schema until it processes the\n // first input batch and writes the first output batch.\n this._inputWriter.write(batch);\n await this._ensureOutputStream();\n\n // Read output batch(es) from server\n try {\n const outputBatch = await this._readOutputBatch();\n if (outputBatch === null) {\n return [];\n }\n return extractBatchRows(outputBatch);\n } catch (e) {\n // On error, clean up the pipe so it's ready for the next request\n await this._cleanup();\n throw e;\n }\n }\n\n /**\n * Clean up after an error: close input, drain output, release busy.\n */\n private async _cleanup(): Promise<void> {\n if (this._closed) return;\n this._closed = true;\n if (this._inputWriter) {\n this._inputWriter.close();\n this._inputWriter = null;\n }\n try {\n if (this._outputStreamOpened) {\n while ((await this._reader.readNextBatch()) !== null) {}\n }\n } catch {\n // Suppress errors during drain\n }\n this._releaseBusy();\n }\n\n /**\n * Iterate over producer stream batches (lockstep).\n */\n async *[Symbol.asyncIterator](): AsyncIterableIterator<Record<string, any>[]> {\n if (this._closed) return;\n\n try {\n // Open input writer with empty schema for tick batches\n const tickSchema = new Schema([]);\n this._inputWriter = new PipeIncrementalWriter(this._writeFn, tickSchema);\n\n // Build a zero-row tick batch\n const structType = new Struct(tickSchema.fields);\n const tickData = makeData({\n type: structType,\n length: 0,\n children: [],\n nullCount: 0,\n });\n const tickBatch = new RecordBatch(tickSchema, tickData);\n\n while (true) {\n // Send one tick FIRST, then open output stream on first iteration.\n // The server may not flush the output schema until it processes the\n // first tick and writes the first output batch.\n this._inputWriter.write(tickBatch);\n await this._ensureOutputStream();\n\n // Read output batch(es)\n const outputBatch = await this._readOutputBatch();\n if (outputBatch === null) {\n // Server finished — EOS on output stream\n break;\n }\n\n yield extractBatchRows(outputBatch);\n }\n } finally {\n // Close input stream if still open\n if (this._inputWriter) {\n this._inputWriter.close();\n this._inputWriter = null;\n }\n // Drain any remaining output batches\n try {\n if (this._outputStreamOpened) {\n while ((await this._reader.readNextBatch()) !== null) {}\n }\n } catch {\n // Suppress errors during drain\n }\n this._closed = true;\n this._releaseBusy();\n }\n }\n\n close(): void {\n if (this._closed) return;\n this._closed = true;\n\n if (this._inputWriter) {\n // Close the input stream (EOS)\n this._inputWriter.close();\n this._inputWriter = null;\n } else {\n // Never iterated/exchanged — send empty schema stream so server unblocks.\n // Server is blocked at reader.openNextStream() waiting for client's input.\n const emptySchema = new Schema([]);\n const ipc = serializeIpcStream(emptySchema, []);\n this._writeFn(ipc);\n }\n\n // Drain remaining output batches asynchronously. Register the drain\n // promise so that the next acquireBusy() waits for it to complete.\n const drainPromise = (async () => {\n try {\n if (!this._outputStreamOpened) {\n const schema = await this._reader.openNextStream();\n if (schema) {\n while ((await this._reader.readNextBatch()) !== null) {}\n }\n } else {\n while ((await this._reader.readNextBatch()) !== null) {}\n }\n } catch {\n // Suppress errors during drain\n } finally {\n this._releaseBusy();\n }\n })();\n this._setDrainPromise(drainPromise);\n }\n}\n\n// ---------------------------------------------------------------------------\n// pipeConnect — create an RpcClient over raw readable/writable streams\n// ---------------------------------------------------------------------------\n\nexport function pipeConnect(\n readable: ReadableStream<Uint8Array>,\n writable: PipeWritable,\n options?: PipeConnectOptions,\n): RpcClient {\n const onLog = options?.onLog;\n const externalConfig = options?.externalLocation;\n\n let reader: IpcStreamReader | null = null;\n let readerPromise: Promise<IpcStreamReader> | null = null;\n let methodCache: Map<string, MethodInfo> | null = null;\n let protocolName = \"\";\n let _busy = false;\n let _drainPromise: Promise<void> | null = null;\n let closed = false;\n\n const writeFn: WriteFn = (bytes: Uint8Array) => {\n writable.write(bytes);\n writable.flush?.();\n };\n\n // The IpcStreamReader.create() blocks until the first IPC schema arrives\n // on the readable. To avoid deadlock, we must send our first request\n // (the __describe__ call) BEFORE opening the reader. After that, the\n // response bytes are in the pipe buffer and the reader can consume them.\n async function ensureReader(): Promise<IpcStreamReader> {\n if (reader) return reader;\n if (!readerPromise) {\n readerPromise = IpcStreamReader.create(readable);\n }\n reader = await readerPromise;\n return reader;\n }\n\n async function acquireBusy(): Promise<void> {\n // Wait for any pending drain from a previous close()\n if (_drainPromise) {\n await _drainPromise;\n _drainPromise = null;\n }\n if (_busy) {\n throw new Error(\n \"Pipe transport is busy — another call or stream is in progress. \" +\n \"Pipe connections are single-threaded; wait for the current operation to complete.\",\n );\n }\n _busy = true;\n }\n\n function releaseBusy(): void {\n _busy = false;\n }\n\n function setDrainPromise(p: Promise<void>): void {\n _drainPromise = p;\n }\n\n async function ensureMethodCache(): Promise<Map<string, MethodInfo>> {\n if (methodCache) return methodCache;\n\n await acquireBusy();\n try {\n // Send __describe__ request BEFORE opening the reader.\n // IpcStreamReader.create() blocks on reader.open() which reads the\n // first schema message. The server won't write anything until it\n // receives a request. Sending first avoids deadlock.\n const emptySchema = new Schema([]);\n const body = buildRequestIpc(emptySchema, {}, DESCRIBE_METHOD_NAME);\n writeFn(body);\n\n const r = await ensureReader();\n\n // Read response (first IPC stream = describe response schema + batches)\n // ensureReader() consumed the schema via open(). Use readStream()\n // which — on the first call (initialized=false) — returns the current\n // stream without calling reset().\n const response = await r.readStream();\n if (!response) {\n throw new Error(\"EOF reading __describe__ response\");\n }\n\n const desc = await parseDescribeResponse(response.batches, onLog);\n protocolName = desc.protocolName;\n methodCache = new Map(desc.methods.map((m) => [m.name, m]));\n return methodCache;\n } finally {\n releaseBusy();\n }\n }\n\n return {\n async call(method: string, params?: Record<string, any>): Promise<Record<string, any> | null> {\n const methods = await ensureMethodCache();\n await acquireBusy();\n try {\n const info = methods.get(method);\n if (!info) {\n throw new Error(`Unknown method: '${method}'`);\n }\n\n const r = await ensureReader();\n\n // Apply defaults\n const fullParams = { ...(info.defaults ?? {}), ...(params ?? {}) };\n\n // Send request\n const body = buildRequestIpc(info.paramsSchema, fullParams, method);\n writeFn(body);\n\n // Read response\n const response = await r.readStream();\n if (!response) {\n throw new Error(\"EOF reading response\");\n }\n\n // Process batches: dispatch logs, resolve external pointers, find result\n let resultBatch: RecordBatch | null = null;\n for (let batch of response.batches) {\n if (batch.numRows === 0) {\n if (isExternalLocationBatch(batch)) {\n batch = await resolveExternalLocation(batch, externalConfig);\n } else {\n dispatchLogOrError(batch, onLog);\n continue;\n }\n }\n resultBatch = batch;\n }\n\n if (!resultBatch) {\n return null;\n }\n\n const rows = extractBatchRows(resultBatch);\n if (rows.length === 0) return null;\n\n if (info.resultSchema.fields.length === 0) return null;\n\n return rows[0];\n } finally {\n releaseBusy();\n }\n },\n\n async stream(method: string, params?: Record<string, any>): Promise<StreamSession> {\n const methods = await ensureMethodCache();\n await acquireBusy();\n\n try {\n const info = methods.get(method);\n if (!info) {\n throw new Error(`Unknown method: '${method}'`);\n }\n\n const r = await ensureReader();\n\n // Apply defaults\n const fullParams = { ...(info.defaults ?? {}), ...(params ?? {}) };\n\n // Send init request (params as a complete IPC stream)\n const body = buildRequestIpc(info.paramsSchema, fullParams, method);\n writeFn(body);\n\n // Read header if method has headerSchema\n let header: Record<string, any> | null = null;\n if (info.headerSchema) {\n const headerStream = await r.readStream();\n if (headerStream) {\n for (const batch of headerStream.batches) {\n if (batch.numRows === 0) {\n dispatchLogOrError(batch, onLog);\n continue;\n }\n const rows = extractBatchRows(batch);\n if (rows.length > 0) {\n header = rows[0];\n }\n }\n }\n }\n\n const outputSchema = info.outputSchema ?? info.resultSchema;\n\n // Don't release busy here — PipeStreamSession owns the lock\n // and will release it when done\n return new PipeStreamSession({\n reader: r,\n writeFn,\n onLog,\n header,\n outputSchema,\n releaseBusy,\n setDrainPromise,\n externalConfig,\n });\n } catch (e) {\n // Init error (e.g., server raised exception during init).\n // Send empty input stream so server's drain unblocks, then\n // drain the server's output stream if needed.\n try {\n const r = await ensureReader();\n const emptySchema = new Schema([]);\n const ipc = serializeIpcStream(emptySchema, []);\n writeFn(ipc);\n // Drain server's output stream (error response + EOS)\n const outStream = await r.readStream();\n // outStream may be null or contain remaining batches — just consume\n void outStream;\n } catch {\n // Suppress errors during cleanup\n }\n releaseBusy();\n throw e;\n }\n },\n\n async describe(): Promise<ServiceDescription> {\n const methods = await ensureMethodCache();\n return {\n protocolName,\n methods: [...methods.values()],\n };\n },\n\n close(): void {\n if (closed) return;\n closed = true;\n writable.end();\n },\n };\n}\n\n// ---------------------------------------------------------------------------\n// subprocessConnect — spawn a process and wrap with pipeConnect\n// ---------------------------------------------------------------------------\n\nexport function subprocessConnect(cmd: string[], options?: SubprocessConnectOptions): RpcClient {\n const proc = Bun.spawn(cmd, {\n stdin: \"pipe\",\n stdout: \"pipe\",\n stderr: options?.stderr ?? \"ignore\",\n cwd: options?.cwd,\n env: options?.env ? { ...process.env, ...options.env } : undefined,\n });\n\n const stdout = proc.stdout as ReadableStream<Uint8Array>;\n\n const writable: PipeWritable = {\n write(data: Uint8Array) {\n (proc.stdin as any).write(data);\n },\n flush() {\n (proc.stdin as any).flush();\n },\n end() {\n (proc.stdin as any).end();\n },\n };\n\n const client = pipeConnect(stdout, writable, {\n onLog: options?.onLog,\n externalLocation: options?.externalLocation,\n });\n\n // Wrap close to also kill the subprocess\n const originalClose = client.close;\n client.close = () => {\n originalClose.call(client);\n try {\n proc.kill();\n } catch {\n // Process may have already exited\n }\n };\n\n return client;\n}\n",
20
20
  "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { AuthContext } from \"../auth.js\";\n\n/** Async function that authenticates an incoming HTTP request. */\nexport type AuthenticateFn = (request: Request) => AuthContext | Promise<AuthContext>;\n\n/** RFC 9728 OAuth Protected Resource Metadata. */\nexport interface OAuthResourceMetadata {\n resource: string;\n authorizationServers: string[];\n scopesSupported?: string[];\n bearerMethodsSupported?: string[];\n resourceSigningAlgValuesSupported?: string[];\n resourceName?: string;\n resourceDocumentation?: string;\n resourcePolicyUri?: string;\n resourceTosUri?: string;\n /** OAuth client_id that clients should use with the authorization server. */\n clientId?: string;\n /** OAuth client_secret that clients should use with the authorization server. */\n clientSecret?: string;\n /** OAuth client_id for device code flow. */\n deviceCodeClientId?: string;\n /** OAuth client_secret for device code flow. */\n deviceCodeClientSecret?: string;\n /** When true, clients should use the OIDC id_token as the Bearer token instead of access_token. */\n useIdTokenAsBearer?: boolean;\n}\n\n/** Convert OAuthResourceMetadata to RFC 9728 snake_case JSON object. */\nexport function oauthResourceMetadataToJson(metadata: OAuthResourceMetadata): Record<string, any> {\n const json: Record<string, any> = {\n resource: metadata.resource,\n authorization_servers: metadata.authorizationServers,\n };\n if (metadata.scopesSupported) json.scopes_supported = metadata.scopesSupported;\n if (metadata.bearerMethodsSupported) json.bearer_methods_supported = metadata.bearerMethodsSupported;\n if (metadata.resourceSigningAlgValuesSupported)\n json.resource_signing_alg_values_supported = metadata.resourceSigningAlgValuesSupported;\n if (metadata.resourceName) json.resource_name = metadata.resourceName;\n if (metadata.resourceDocumentation) json.resource_documentation = metadata.resourceDocumentation;\n if (metadata.resourcePolicyUri) json.resource_policy_uri = metadata.resourcePolicyUri;\n if (metadata.resourceTosUri) json.resource_tos_uri = metadata.resourceTosUri;\n if (metadata.clientId) {\n if (!/^[A-Za-z0-9\\-._~]+$/.test(metadata.clientId)) {\n throw new Error(`Invalid client_id: must contain only URL-safe characters [A-Za-z0-9\\\\-._~]`);\n }\n json.client_id = metadata.clientId;\n }\n if (metadata.clientSecret) {\n if (!/^[A-Za-z0-9\\-._~]+$/.test(metadata.clientSecret)) {\n throw new Error(`Invalid client_secret: must contain only URL-safe characters [A-Za-z0-9\\\\-._~]`);\n }\n json.client_secret = metadata.clientSecret;\n }\n if (metadata.deviceCodeClientId) {\n if (!/^[A-Za-z0-9\\-._~]+$/.test(metadata.deviceCodeClientId)) {\n throw new Error(`Invalid device_code_client_id: must contain only URL-safe characters [A-Za-z0-9\\\\-._~]`);\n }\n json.device_code_client_id = metadata.deviceCodeClientId;\n }\n if (metadata.deviceCodeClientSecret) {\n if (!/^[A-Za-z0-9\\-._~]+$/.test(metadata.deviceCodeClientSecret)) {\n throw new Error(`Invalid device_code_client_secret: must contain only URL-safe characters [A-Za-z0-9\\\\-._~]`);\n }\n json.device_code_client_secret = metadata.deviceCodeClientSecret;\n }\n if (metadata.useIdTokenAsBearer) {\n json.use_id_token_as_bearer = true;\n }\n return json;\n}\n\n/** Compute the well-known path for OAuth Protected Resource Metadata. */\nexport function wellKnownPath(prefix: string): string {\n return `/.well-known/oauth-protected-resource${prefix}`;\n}\n\n/** Build a WWW-Authenticate header value with optional resource_metadata URL, client_id, client_secret, device_code_client_id, device_code_client_secret, and use_id_token_as_bearer. */\nexport function buildWwwAuthenticateHeader(\n metadataUrl?: string,\n clientId?: string,\n clientSecret?: string,\n useIdTokenAsBearer?: boolean,\n deviceCodeClientId?: string,\n deviceCodeClientSecret?: string,\n): string {\n let header = \"Bearer\";\n if (metadataUrl) {\n header += ` resource_metadata=\"${metadataUrl}\"`;\n }\n if (clientId) {\n header += `, client_id=\"${clientId}\"`;\n }\n if (clientSecret) {\n header += `, client_secret=\"${clientSecret}\"`;\n }\n if (deviceCodeClientId) {\n header += `, device_code_client_id=\"${deviceCodeClientId}\"`;\n }\n if (deviceCodeClientSecret) {\n header += `, device_code_client_secret=\"${deviceCodeClientSecret}\"`;\n }\n if (useIdTokenAsBearer) {\n header += `, use_id_token_as_bearer=\"true\"`;\n }\n return header;\n}\n",
21
21
  "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport { timingSafeEqual } from \"node:crypto\";\nimport type { AuthContext } from \"../auth.js\";\nimport type { AuthenticateFn } from \"./auth.js\";\n\n/** Receives the raw bearer token string, returns an AuthContext on success. Must throw on failure. */\nexport type BearerValidateFn = (token: string) => AuthContext | Promise<AuthContext>;\n\n/**\n * Create a bearer-token authenticate callback.\n *\n * Extracts the `Authorization: Bearer <token>` header and delegates\n * validation to the user-supplied `validate` callback.\n */\nexport function bearerAuthenticate(options: { validate: BearerValidateFn }): AuthenticateFn {\n const { validate } = options;\n\n return async function authenticate(request: Request): Promise<AuthContext> {\n const authHeader = request.headers.get(\"Authorization\") ?? \"\";\n if (!authHeader.startsWith(\"Bearer \")) {\n throw new Error(\"Missing or invalid Authorization header\");\n }\n const token = authHeader.slice(7);\n return validate(token);\n };\n}\n\n/** Constant-time string comparison to prevent timing attacks on token lookup. */\nfunction safeEqual(a: string, b: string): boolean {\n const enc = new TextEncoder();\n const bufA = enc.encode(a);\n const bufB = enc.encode(b);\n if (bufA.byteLength !== bufB.byteLength) return false;\n return timingSafeEqual(bufA, bufB);\n}\n\n/**\n * Create a bearer-token authenticate callback from a static token map.\n *\n * Convenience wrapper around `bearerAuthenticate` that looks up the\n * token in a pre-built mapping using constant-time comparison.\n */\nexport function bearerAuthenticateStatic(options: {\n tokens: ReadonlyMap<string, AuthContext> | Record<string, AuthContext>;\n}): AuthenticateFn {\n const entries: [string, AuthContext][] =\n options.tokens instanceof Map ? [...options.tokens.entries()] : Object.entries(options.tokens);\n\n function validate(token: string): AuthContext {\n for (const [key, ctx] of entries) {\n if (safeEqual(token, key)) return ctx;\n }\n throw new Error(\"Unknown bearer token\");\n }\n\n return bearerAuthenticate({ validate });\n}\n\n/**\n * Check whether an error represents a credential rejection (should be\n * caught by the chain) vs a bug or authorization failure (should propagate).\n *\n * Mirrors Python's semantics where only `ValueError` is caught:\n * - Plain `Error` (constructor === Error) without `PermissionError` name → credential rejection\n * - `TypeError`, `RangeError`, etc. (Error subclasses) → bug, propagate\n * - `PermissionError` name → authorization failure, propagate\n * - Non-Error throws → propagate\n */\nfunction isCredentialError(err: unknown): err is Error {\n return err instanceof Error && err.constructor === Error && err.name !== \"PermissionError\";\n}\n\n/**\n * Chain multiple authenticate callbacks, trying each in order.\n *\n * Each authenticator is called in sequence. Plain `Error` (credential\n * rejection) causes the next authenticator to be tried. Error subclasses\n * (`TypeError`, `RangeError`, etc.), `PermissionError`-named errors, and\n * non-Error throws propagate immediately.\n *\n * @throws Error if no authenticators are provided.\n */\nexport function chainAuthenticate(...authenticators: AuthenticateFn[]): AuthenticateFn {\n if (authenticators.length === 0) {\n throw new Error(\"chainAuthenticate requires at least one authenticator\");\n }\n\n return async function authenticate(request: Request): Promise<AuthContext> {\n let lastError: Error | null = null;\n for (const authFn of authenticators) {\n try {\n return await authFn(request);\n } catch (err) {\n if (isCredentialError(err)) {\n lastError = err;\n continue;\n }\n throw err;\n }\n }\n const error = new Error(\"No authenticator accepted the request\");\n if (lastError) error.cause = lastError;\n throw error;\n };\n}\n",
22
- "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport { randomBytes } from \"node:crypto\";\nimport { Schema } from \"@query-farm/apache-arrow\";\nimport type { AuthContext } from \"../auth.js\";\nimport { DESCRIBE_METHOD_NAME } from \"../constants.js\";\nimport type { Protocol } from \"../protocol.js\";\nimport { type CallStatistics, type DispatchInfo, MethodType } from \"../types.js\";\nimport { zstdCompress, zstdDecompress } from \"../util/zstd.js\";\nimport { buildErrorBatch } from \"../wire/response.js\";\nimport { buildWwwAuthenticateHeader, oauthResourceMetadataToJson, wellKnownPath } from \"./auth.js\";\nimport { ARROW_CONTENT_TYPE, arrowResponse, HttpRpcError, serializeIpcStream } from \"./common.js\";\nimport {\n httpDispatchDescribe,\n httpDispatchStreamExchange,\n httpDispatchStreamInit,\n httpDispatchUnary,\n} from \"./dispatch.js\";\nimport { buildDescribePage, buildLandingPage, buildNotFoundPage } from \"./pages.js\";\nimport { type HttpHandlerOptions, jsonStateSerializer } from \"./types.js\";\n\nconst EMPTY_SCHEMA = new Schema([]);\n\n/**\n * Create a fetch-compatible HTTP handler for a vgi-rpc Protocol.\n *\n * Compatible with Bun.serve(), Deno.serve(), Cloudflare Workers, and any\n * Web API runtime that uses the standard Request/Response types.\n *\n * @example\n * ```typescript\n * const handler = createHttpHandler(protocol);\n * Bun.serve({ port: 8080, fetch: handler });\n * ```\n */\nexport function createHttpHandler(\n protocol: Protocol,\n options?: HttpHandlerOptions,\n): (request: Request) => Response | Promise<Response> {\n const prefix = (options?.prefix ?? \"\").replace(/\\/+$/, \"\");\n const signingKey = options?.signingKey ?? randomBytes(32);\n const tokenTtl = options?.tokenTtl ?? 3600;\n const corsOrigins = options?.corsOrigins;\n const maxRequestBytes = options?.maxRequestBytes;\n const maxStreamResponseBytes = options?.maxStreamResponseBytes;\n const serverId = options?.serverId ?? crypto.randomUUID().replace(/-/g, \"\").slice(0, 12);\n\n const authenticate = options?.authenticate;\n const oauthMetadata = options?.oauthResourceMetadata;\n\n const methods = protocol.getMethods();\n\n const compressionLevel = options?.compressionLevel;\n const stateSerializer = options?.stateSerializer ?? jsonStateSerializer;\n const dispatchHook = options?.dispatchHook;\n\n // HTML page configuration\n const enableLandingPage = options?.enableLandingPage ?? true;\n const enableDescribePage = options?.enableDescribePage ?? true;\n const enableNotFoundPage = options?.enableNotFoundPage ?? true;\n const displayName = options?.protocolName ?? protocol.name;\n const repoUrl = options?.repositoryUrl ?? null;\n\n // Pre-render HTML pages for zero per-request overhead\n const landingHtml = enableLandingPage\n ? buildLandingPage(displayName, serverId, enableDescribePage ? `${prefix}/describe` : null, repoUrl)\n : null;\n const describeHtml = enableDescribePage ? buildDescribePage(displayName, serverId, methods, repoUrl) : null;\n const notFoundHtml = enableNotFoundPage ? buildNotFoundPage(prefix, displayName) : null;\n\n const externalLocation = options?.externalLocation;\n\n // ctx is built per-request to include authContext; base fields set here\n const baseCtx = {\n signingKey,\n tokenTtl,\n serverId,\n maxStreamResponseBytes,\n stateSerializer,\n externalLocation,\n };\n\n function addCorsHeaders(headers: Headers): void {\n if (corsOrigins) {\n headers.set(\"Access-Control-Allow-Origin\", corsOrigins);\n headers.set(\"Access-Control-Allow-Methods\", \"POST, OPTIONS\");\n headers.set(\"Access-Control-Allow-Headers\", \"Content-Type\");\n }\n }\n\n async function compressIfAccepted(response: Response, clientAcceptsZstd: boolean): Promise<Response> {\n if (compressionLevel == null || !clientAcceptsZstd) return response;\n const responseBody = new Uint8Array(await response.arrayBuffer());\n const compressed = zstdCompress(responseBody, compressionLevel);\n const headers = new Headers(response.headers);\n headers.set(\"Content-Encoding\", \"zstd\");\n return new Response(compressed as unknown as BodyInit, {\n status: response.status,\n headers,\n });\n }\n\n function makeErrorResponse(error: Error, statusCode: number, schema: Schema = EMPTY_SCHEMA): Response {\n const errBatch = buildErrorBatch(schema, error, serverId, null);\n const body = serializeIpcStream(schema, [errBatch]);\n const resp = arrowResponse(body, statusCode);\n addCorsHeaders(resp.headers);\n return resp;\n }\n\n return async function handler(request: Request): Promise<Response> {\n const url = new URL(request.url);\n const path = url.pathname;\n\n // Well-known endpoint: RFC 9728 OAuth Protected Resource Metadata\n if (oauthMetadata && path === wellKnownPath(prefix)) {\n if (request.method !== \"GET\") {\n return new Response(\"Method Not Allowed\", { status: 405 });\n }\n const body = JSON.stringify(oauthResourceMetadataToJson(oauthMetadata));\n const headers = new Headers({\n \"Content-Type\": \"application/json\",\n \"Cache-Control\": \"public, max-age=60\",\n });\n addCorsHeaders(headers);\n return new Response(body, { status: 200, headers });\n }\n\n // CORS preflight\n if (request.method === \"OPTIONS\") {\n if (path === `${prefix}/__capabilities__`) {\n const headers = new Headers();\n addCorsHeaders(headers);\n if (maxRequestBytes != null) {\n headers.set(\"VGI-Max-Request-Bytes\", String(maxRequestBytes));\n }\n return new Response(null, { status: 204, headers });\n }\n\n if (corsOrigins) {\n const headers = new Headers();\n addCorsHeaders(headers);\n return new Response(null, { status: 204, headers });\n }\n\n return new Response(null, { status: 405 });\n }\n\n // HTML pages for GET requests\n if (request.method === \"GET\") {\n // Landing page: GET {prefix}/ or GET {prefix}\n if (landingHtml && (path === prefix || path === `${prefix}/`)) {\n const headers = new Headers({ \"Content-Type\": \"text/html; charset=utf-8\" });\n addCorsHeaders(headers);\n return new Response(landingHtml, { status: 200, headers });\n }\n\n // Describe page: GET {prefix}/describe\n if (describeHtml && path === `${prefix}/describe`) {\n const headers = new Headers({ \"Content-Type\": \"text/html; charset=utf-8\" });\n addCorsHeaders(headers);\n return new Response(describeHtml, { status: 200, headers });\n }\n\n // 404 page for any other GET\n if (notFoundHtml) {\n const headers = new Headers({ \"Content-Type\": \"text/html; charset=utf-8\" });\n addCorsHeaders(headers);\n return new Response(notFoundHtml, { status: 404, headers });\n }\n\n return new Response(\"Not Found\", { status: 404 });\n }\n\n if (request.method !== \"POST\") {\n return new Response(\"Method Not Allowed\", { status: 405 });\n }\n\n // Validate Content-Type\n const contentType = request.headers.get(\"Content-Type\");\n if (!contentType || !contentType.includes(ARROW_CONTENT_TYPE)) {\n return new Response(`Unsupported Media Type: expected ${ARROW_CONTENT_TYPE}`, { status: 415 });\n }\n\n // Check request body size\n if (maxRequestBytes != null) {\n const contentLength = request.headers.get(\"Content-Length\");\n if (contentLength && parseInt(contentLength, 10) > maxRequestBytes) {\n return new Response(\"Request body too large\", { status: 413 });\n }\n }\n\n const clientAcceptsZstd = (request.headers.get(\"Accept-Encoding\") ?? \"\").includes(\"zstd\");\n\n // Read body, decompressing if needed\n let body = new Uint8Array(await request.arrayBuffer());\n const contentEncoding = request.headers.get(\"Content-Encoding\");\n if (contentEncoding === \"zstd\") {\n body = zstdDecompress(body);\n }\n\n // Build per-request dispatch context\n const ctx = { ...baseCtx } as typeof baseCtx & { authContext?: AuthContext };\n\n // Authentication\n if (authenticate) {\n try {\n ctx.authContext = await authenticate(request);\n } catch (error: any) {\n const headers = new Headers({ \"Content-Type\": \"text/plain\" });\n addCorsHeaders(headers);\n if (oauthMetadata) {\n const metadataUrl = new URL(request.url);\n metadataUrl.pathname = wellKnownPath(prefix);\n metadataUrl.search = \"\";\n headers.set(\n \"WWW-Authenticate\",\n buildWwwAuthenticateHeader(\n metadataUrl.toString(),\n oauthMetadata.clientId,\n oauthMetadata.clientSecret,\n oauthMetadata.useIdTokenAsBearer,\n oauthMetadata.deviceCodeClientId,\n oauthMetadata.deviceCodeClientSecret,\n ),\n );\n }\n return new Response(error.message || \"Unauthorized\", { status: 401, headers });\n }\n }\n\n // Route: {prefix}/__describe__\n if (path === `${prefix}/${DESCRIBE_METHOD_NAME}`) {\n try {\n const response = httpDispatchDescribe(protocol.name, methods, serverId);\n addCorsHeaders(response.headers);\n return compressIfAccepted(response, clientAcceptsZstd);\n } catch (error: any) {\n return compressIfAccepted(makeErrorResponse(error, 500), clientAcceptsZstd);\n }\n }\n\n // Parse method name and sub-path from URL\n if (!path.startsWith(`${prefix}/`)) {\n return new Response(\"Not Found\", { status: 404 });\n }\n\n const subPath = path.slice(prefix.length + 1);\n let methodName: string;\n let action: \"call\" | \"init\" | \"exchange\";\n\n if (subPath.endsWith(\"/init\")) {\n methodName = subPath.slice(0, -5);\n action = \"init\";\n } else if (subPath.endsWith(\"/exchange\")) {\n methodName = subPath.slice(0, -9);\n action = \"exchange\";\n } else {\n methodName = subPath;\n action = \"call\";\n }\n\n // Look up method\n const method = methods.get(methodName);\n if (!method) {\n const available = [...methods.keys()].sort();\n const err = new Error(`Unknown method: '${methodName}'. Available methods: [${available.join(\", \")}]`);\n return compressIfAccepted(makeErrorResponse(err, 404), clientAcceptsZstd);\n }\n\n const methodType = method.type === MethodType.UNARY ? \"unary\" : \"stream\";\n const info: DispatchInfo = { method: methodName, methodType, serverId, requestId: null };\n const stats: CallStatistics = {\n inputBatches: 0,\n outputBatches: 0,\n inputRows: 0,\n outputRows: 0,\n inputBytes: 0,\n outputBytes: 0,\n };\n\n const hookToken = dispatchHook?.onDispatchStart(info);\n let dispatchError: Error | undefined;\n\n try {\n let response: Response;\n\n if (action === \"call\") {\n if (method.type !== MethodType.UNARY) {\n throw new HttpRpcError(`Method '${methodName}' is a stream method. Use /init and /exchange endpoints.`, 400);\n }\n response = await httpDispatchUnary(method, body, ctx);\n } else if (action === \"init\") {\n if (method.type !== MethodType.STREAM) {\n throw new HttpRpcError(\n `Method '${methodName}' is a unary method. Use POST ${prefix}/${methodName} instead.`,\n 400,\n );\n }\n response = await httpDispatchStreamInit(method, body, ctx);\n } else {\n if (method.type !== MethodType.STREAM) {\n throw new HttpRpcError(\n `Method '${methodName}' is a unary method. Use POST ${prefix}/${methodName} instead.`,\n 400,\n );\n }\n response = await httpDispatchStreamExchange(method, body, ctx);\n }\n\n // Check if the dispatch function caught an error internally\n const internalError = (response as any).__dispatchError;\n if (internalError) {\n dispatchError = internalError instanceof Error ? internalError : new Error(String(internalError));\n }\n addCorsHeaders(response.headers);\n return compressIfAccepted(response, clientAcceptsZstd);\n } catch (error: any) {\n dispatchError = error instanceof Error ? error : new Error(String(error));\n if (error instanceof HttpRpcError) {\n return compressIfAccepted(makeErrorResponse(error, error.statusCode), clientAcceptsZstd);\n }\n return compressIfAccepted(makeErrorResponse(error, 500), clientAcceptsZstd);\n } finally {\n dispatchHook?.onDispatchEnd(hookToken, info, stats, dispatchError);\n }\n };\n}\n",
22
+ "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport { randomBytes } from \"node:crypto\";\nimport { Schema } from \"@query-farm/apache-arrow\";\nimport type { AuthContext } from \"../auth.js\";\nimport { DESCRIBE_METHOD_NAME } from \"../constants.js\";\nimport type { Protocol } from \"../protocol.js\";\nimport { type CallStatistics, type DispatchInfo, MethodType } from \"../types.js\";\nimport { zstdCompress, zstdDecompress } from \"../util/zstd.js\";\nimport { buildErrorBatch } from \"../wire/response.js\";\nimport { buildWwwAuthenticateHeader, oauthResourceMetadataToJson, wellKnownPath } from \"./auth.js\";\nimport { ARROW_CONTENT_TYPE, arrowResponse, HttpRpcError, serializeIpcStream } from \"./common.js\";\nimport {\n httpDispatchDescribe,\n httpDispatchStreamExchange,\n httpDispatchStreamInit,\n httpDispatchUnary,\n} from \"./dispatch.js\";\nimport { buildDescribePage, buildLandingPage, buildNotFoundPage } from \"./pages.js\";\nimport { type HttpHandlerOptions, jsonStateSerializer } from \"./types.js\";\n\nconst EMPTY_SCHEMA = new Schema([]);\n\n/**\n * Create a fetch-compatible HTTP handler for a vgi-rpc Protocol.\n *\n * Compatible with Bun.serve(), Deno.serve(), Cloudflare Workers, and any\n * Web API runtime that uses the standard Request/Response types.\n *\n * @example\n * ```typescript\n * const handler = createHttpHandler(protocol);\n * Bun.serve({ port: 8080, fetch: handler });\n * ```\n */\nexport function createHttpHandler(\n protocol: Protocol,\n options?: HttpHandlerOptions,\n): (request: Request) => Response | Promise<Response> {\n const prefix = (options?.prefix ?? \"\").replace(/\\/+$/, \"\");\n const signingKey = options?.signingKey ?? randomBytes(32);\n const tokenTtl = options?.tokenTtl ?? 3600;\n const corsOrigins = options?.corsOrigins;\n const maxRequestBytes = options?.maxRequestBytes;\n const maxStreamResponseBytes = options?.maxStreamResponseBytes;\n const serverId = options?.serverId ?? crypto.randomUUID().replace(/-/g, \"\").slice(0, 12);\n\n const authenticate = options?.authenticate;\n const oauthMetadata = options?.oauthResourceMetadata;\n\n const methods = protocol.getMethods();\n\n const compressionLevel = options?.compressionLevel;\n const stateSerializer = options?.stateSerializer ?? jsonStateSerializer;\n const dispatchHook = options?.dispatchHook;\n\n // HTML page configuration\n const enableLandingPage = options?.enableLandingPage ?? true;\n const enableDescribePage = options?.enableDescribePage ?? true;\n const enableNotFoundPage = options?.enableNotFoundPage ?? true;\n const displayName = options?.protocolName ?? protocol.name;\n const repoUrl = options?.repositoryUrl ?? null;\n\n // Pre-render HTML pages for zero per-request overhead\n const landingHtml = enableLandingPage\n ? buildLandingPage(displayName, serverId, enableDescribePage ? `${prefix}/describe` : null, repoUrl)\n : null;\n const describeHtml = enableDescribePage ? buildDescribePage(displayName, serverId, methods, repoUrl) : null;\n const notFoundHtml = enableNotFoundPage ? buildNotFoundPage(prefix, displayName) : null;\n\n const externalLocation = options?.externalLocation;\n\n // ctx is built per-request to include authContext; base fields set here\n const baseCtx = {\n signingKey,\n tokenTtl,\n serverId,\n maxStreamResponseBytes,\n stateSerializer,\n externalLocation,\n };\n\n function addCorsHeaders(headers: Headers): void {\n if (corsOrigins) {\n headers.set(\"Access-Control-Allow-Origin\", corsOrigins);\n headers.set(\"Access-Control-Allow-Methods\", \"POST, OPTIONS\");\n headers.set(\"Access-Control-Allow-Headers\", \"Content-Type, Authorization\");\n headers.set(\"Access-Control-Expose-Headers\", \"WWW-Authenticate, X-Request-ID, X-VGI-Content-Encoding\");\n }\n }\n\n async function compressIfAccepted(response: Response, clientAcceptsZstd: boolean): Promise<Response> {\n if (compressionLevel == null || !clientAcceptsZstd) return response;\n const responseBody = new Uint8Array(await response.arrayBuffer());\n const compressed = zstdCompress(responseBody, compressionLevel);\n const headers = new Headers(response.headers);\n headers.set(\"Content-Encoding\", \"zstd\");\n return new Response(compressed as unknown as BodyInit, {\n status: response.status,\n headers,\n });\n }\n\n function makeErrorResponse(error: Error, statusCode: number, schema: Schema = EMPTY_SCHEMA): Response {\n const errBatch = buildErrorBatch(schema, error, serverId, null);\n const body = serializeIpcStream(schema, [errBatch]);\n const resp = arrowResponse(body, statusCode);\n addCorsHeaders(resp.headers);\n return resp;\n }\n\n return async function handler(request: Request): Promise<Response> {\n const url = new URL(request.url);\n const path = url.pathname;\n\n // Well-known endpoint: RFC 9728 OAuth Protected Resource Metadata\n if (oauthMetadata && path === wellKnownPath(prefix)) {\n if (request.method !== \"GET\") {\n return new Response(\"Method Not Allowed\", { status: 405 });\n }\n const body = JSON.stringify(oauthResourceMetadataToJson(oauthMetadata));\n const headers = new Headers({\n \"Content-Type\": \"application/json\",\n \"Cache-Control\": \"public, max-age=60\",\n });\n addCorsHeaders(headers);\n return new Response(body, { status: 200, headers });\n }\n\n // CORS preflight\n if (request.method === \"OPTIONS\") {\n if (path === `${prefix}/__capabilities__`) {\n const headers = new Headers();\n addCorsHeaders(headers);\n if (maxRequestBytes != null) {\n headers.set(\"VGI-Max-Request-Bytes\", String(maxRequestBytes));\n }\n return new Response(null, { status: 204, headers });\n }\n\n if (corsOrigins) {\n const headers = new Headers();\n addCorsHeaders(headers);\n return new Response(null, { status: 204, headers });\n }\n\n return new Response(null, { status: 405 });\n }\n\n // HTML pages for GET requests\n if (request.method === \"GET\") {\n // Landing page: GET {prefix}/ or GET {prefix}\n if (landingHtml && (path === prefix || path === `${prefix}/`)) {\n const headers = new Headers({ \"Content-Type\": \"text/html; charset=utf-8\" });\n addCorsHeaders(headers);\n return new Response(landingHtml, { status: 200, headers });\n }\n\n // Describe page: GET {prefix}/describe\n if (describeHtml && path === `${prefix}/describe`) {\n const headers = new Headers({ \"Content-Type\": \"text/html; charset=utf-8\" });\n addCorsHeaders(headers);\n return new Response(describeHtml, { status: 200, headers });\n }\n\n // 404 page for any other GET\n if (notFoundHtml) {\n const headers = new Headers({ \"Content-Type\": \"text/html; charset=utf-8\" });\n addCorsHeaders(headers);\n return new Response(notFoundHtml, { status: 404, headers });\n }\n\n return new Response(\"Not Found\", { status: 404 });\n }\n\n if (request.method !== \"POST\") {\n return new Response(\"Method Not Allowed\", { status: 405 });\n }\n\n // Validate Content-Type\n const contentType = request.headers.get(\"Content-Type\");\n if (!contentType || !contentType.includes(ARROW_CONTENT_TYPE)) {\n return new Response(`Unsupported Media Type: expected ${ARROW_CONTENT_TYPE}`, { status: 415 });\n }\n\n // Check request body size\n if (maxRequestBytes != null) {\n const contentLength = request.headers.get(\"Content-Length\");\n if (contentLength && parseInt(contentLength, 10) > maxRequestBytes) {\n return new Response(\"Request body too large\", { status: 413 });\n }\n }\n\n const clientAcceptsZstd = (request.headers.get(\"Accept-Encoding\") ?? \"\").includes(\"zstd\");\n\n // Read body, decompressing if needed\n let body = new Uint8Array(await request.arrayBuffer());\n const contentEncoding = request.headers.get(\"Content-Encoding\");\n if (contentEncoding === \"zstd\") {\n body = zstdDecompress(body);\n }\n\n // Build per-request dispatch context\n const ctx = { ...baseCtx } as typeof baseCtx & { authContext?: AuthContext };\n\n // Authentication\n if (authenticate) {\n try {\n ctx.authContext = await authenticate(request);\n } catch (error: any) {\n const headers = new Headers({ \"Content-Type\": \"text/plain\" });\n addCorsHeaders(headers);\n if (oauthMetadata) {\n const metadataUrl = new URL(request.url);\n metadataUrl.pathname = wellKnownPath(prefix);\n metadataUrl.search = \"\";\n headers.set(\n \"WWW-Authenticate\",\n buildWwwAuthenticateHeader(\n metadataUrl.toString(),\n oauthMetadata.clientId,\n oauthMetadata.clientSecret,\n oauthMetadata.useIdTokenAsBearer,\n oauthMetadata.deviceCodeClientId,\n oauthMetadata.deviceCodeClientSecret,\n ),\n );\n }\n return new Response(error.message || \"Unauthorized\", { status: 401, headers });\n }\n }\n\n // Route: {prefix}/__describe__\n if (path === `${prefix}/${DESCRIBE_METHOD_NAME}`) {\n try {\n const response = httpDispatchDescribe(protocol.name, methods, serverId);\n addCorsHeaders(response.headers);\n return compressIfAccepted(response, clientAcceptsZstd);\n } catch (error: any) {\n return compressIfAccepted(makeErrorResponse(error, 500), clientAcceptsZstd);\n }\n }\n\n // Parse method name and sub-path from URL\n if (!path.startsWith(`${prefix}/`)) {\n return new Response(\"Not Found\", { status: 404 });\n }\n\n const subPath = path.slice(prefix.length + 1);\n let methodName: string;\n let action: \"call\" | \"init\" | \"exchange\";\n\n if (subPath.endsWith(\"/init\")) {\n methodName = subPath.slice(0, -5);\n action = \"init\";\n } else if (subPath.endsWith(\"/exchange\")) {\n methodName = subPath.slice(0, -9);\n action = \"exchange\";\n } else {\n methodName = subPath;\n action = \"call\";\n }\n\n // Look up method\n const method = methods.get(methodName);\n if (!method) {\n const available = [...methods.keys()].sort();\n const err = new Error(`Unknown method: '${methodName}'. Available methods: [${available.join(\", \")}]`);\n return compressIfAccepted(makeErrorResponse(err, 404), clientAcceptsZstd);\n }\n\n const methodType = method.type === MethodType.UNARY ? \"unary\" : \"stream\";\n const info: DispatchInfo = { method: methodName, methodType, serverId, requestId: null };\n const stats: CallStatistics = {\n inputBatches: 0,\n outputBatches: 0,\n inputRows: 0,\n outputRows: 0,\n inputBytes: 0,\n outputBytes: 0,\n };\n\n const hookToken = dispatchHook?.onDispatchStart(info);\n let dispatchError: Error | undefined;\n\n try {\n let response: Response;\n\n if (action === \"call\") {\n if (method.type !== MethodType.UNARY) {\n throw new HttpRpcError(`Method '${methodName}' is a stream method. Use /init and /exchange endpoints.`, 400);\n }\n response = await httpDispatchUnary(method, body, ctx);\n } else if (action === \"init\") {\n if (method.type !== MethodType.STREAM) {\n throw new HttpRpcError(\n `Method '${methodName}' is a unary method. Use POST ${prefix}/${methodName} instead.`,\n 400,\n );\n }\n response = await httpDispatchStreamInit(method, body, ctx);\n } else {\n if (method.type !== MethodType.STREAM) {\n throw new HttpRpcError(\n `Method '${methodName}' is a unary method. Use POST ${prefix}/${methodName} instead.`,\n 400,\n );\n }\n response = await httpDispatchStreamExchange(method, body, ctx);\n }\n\n // Check if the dispatch function caught an error internally\n const internalError = (response as any).__dispatchError;\n if (internalError) {\n dispatchError = internalError instanceof Error ? internalError : new Error(String(internalError));\n }\n addCorsHeaders(response.headers);\n return compressIfAccepted(response, clientAcceptsZstd);\n } catch (error: any) {\n dispatchError = error instanceof Error ? error : new Error(String(error));\n if (error instanceof HttpRpcError) {\n return compressIfAccepted(makeErrorResponse(error, error.statusCode), clientAcceptsZstd);\n }\n return compressIfAccepted(makeErrorResponse(error, 500), clientAcceptsZstd);\n } finally {\n dispatchHook?.onDispatchEnd(hookToken, info, stats, dispatchError);\n }\n };\n}\n",
23
23
  "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport { RecordBatch, recordBatchFromArrays, type Schema } from \"@query-farm/apache-arrow\";\nimport { AuthContext } from \"./auth.js\";\nimport { buildLogBatch, coerceInt64 } from \"./wire/response.js\";\n\nexport enum MethodType {\n UNARY = \"unary\",\n STREAM = \"stream\",\n}\n\n/** Logging interface available to handlers. */\nexport interface LogContext {\n clientLog(level: string, message: string, extra?: Record<string, string>): void;\n}\n\n/** Extended context with authentication info, available to handlers. */\nexport interface CallContext extends LogContext {\n readonly auth: AuthContext;\n}\n\n/** Handler for unary (request-response) RPC methods. */\nexport type UnaryHandler = (\n params: Record<string, any>,\n ctx: LogContext,\n) => Promise<Record<string, any>> | Record<string, any>;\n\n/** Initialization function for producer streams. Returns the initial state object. */\nexport type ProducerInit<S = any> = (params: Record<string, any>) => Promise<S> | S;\n/** Called repeatedly to produce output batches. Call `out.finish()` to end the stream. */\nexport type ProducerFn<S = any> = (state: S, out: OutputCollector) => Promise<void> | void;\n\n/** Initialization function for exchange streams. Returns the initial state object. */\nexport type ExchangeInit<S = any> = (params: Record<string, any>) => Promise<S> | S;\n/** Called once per input batch. Must emit exactly one output batch per call. */\nexport type ExchangeFn<S = any> = (state: S, input: RecordBatch, out: OutputCollector) => Promise<void> | void;\n\n/** Produces a header batch sent before the first output batch in a stream. */\nexport type HeaderInit = (params: Record<string, any>, state: any, ctx: LogContext) => Record<string, any>;\n\nexport interface MethodDefinition {\n name: string;\n type: MethodType;\n paramsSchema: Schema;\n resultSchema: Schema;\n outputSchema?: Schema;\n inputSchema?: Schema;\n handler?: UnaryHandler;\n producerInit?: ProducerInit;\n producerFn?: ProducerFn;\n exchangeInit?: ExchangeInit;\n exchangeFn?: ExchangeFn;\n headerSchema?: Schema;\n headerInit?: HeaderInit;\n doc?: string;\n defaults?: Record<string, any>;\n paramTypes?: Record<string, string>;\n}\n\n/** Metadata passed to dispatch hooks before and after RPC method execution. */\nexport interface DispatchInfo {\n /** RPC method name. */\n method: string;\n /** \"unary\" or \"stream\". */\n methodType: string;\n /** Server identifier. */\n serverId: string;\n /** Client-supplied request identifier, or null. */\n requestId: string | null;\n}\n\n/** Per-call I/O counters, matching Python's CallStatistics. */\nexport interface CallStatistics {\n inputBatches: number;\n outputBatches: number;\n inputRows: number;\n outputRows: number;\n inputBytes: number;\n outputBytes: number;\n}\n\n/** Opaque token returned by onDispatchStart, passed back to onDispatchEnd. */\nexport type HookToken = unknown;\n\n/**\n * Observability hook called around RPC dispatch.\n * Implementations must be safe for concurrent use (HTTP transport is concurrent).\n */\nexport interface DispatchHook {\n onDispatchStart(info: DispatchInfo): HookToken;\n onDispatchEnd(token: HookToken, info: DispatchInfo, stats: CallStatistics, error?: Error): void;\n}\n\nexport interface EmittedBatch {\n batch: RecordBatch;\n metadata?: Map<string, string>;\n}\n\n/**\n * Accumulates output batches during a produce/exchange call.\n * Enforces that exactly one data batch is emitted per call (plus any number of log batches).\n */\nexport class OutputCollector implements CallContext {\n private _batches: EmittedBatch[] = [];\n private _dataBatchIdx: number | null = null;\n private _finished = false;\n private _producerMode: boolean;\n private _outputSchema: Schema;\n private _serverId: string;\n private _requestId: string | null;\n readonly auth: AuthContext;\n\n constructor(\n outputSchema: Schema,\n producerMode = true,\n serverId = \"\",\n requestId: string | null = null,\n authContext?: AuthContext,\n ) {\n this._outputSchema = outputSchema;\n this._producerMode = producerMode;\n this._serverId = serverId;\n this._requestId = requestId;\n this.auth = authContext ?? AuthContext.anonymous();\n }\n\n get outputSchema(): Schema {\n return this._outputSchema;\n }\n\n get finished(): boolean {\n return this._finished;\n }\n\n get batches(): EmittedBatch[] {\n return this._batches;\n }\n\n /** Emit a pre-built RecordBatch as the data batch for this call. */\n emit(batch: RecordBatch, metadata?: Map<string, string>): void;\n /** Emit a data batch from column arrays keyed by field name. Int64 Number values are coerced to BigInt. */\n emit(columns: Record<string, any[]>): void;\n emit(batchOrColumns: RecordBatch | Record<string, any[]>, metadata?: Map<string, string>): void {\n let batch: RecordBatch;\n if (batchOrColumns instanceof RecordBatch) {\n batch = batchOrColumns;\n } else {\n const coerced = coerceInt64(this._outputSchema, batchOrColumns);\n batch = recordBatchFromArrays(coerced, this._outputSchema);\n }\n if (this._dataBatchIdx !== null) {\n throw new Error(\"Only one data batch may be emitted per call\");\n }\n this._dataBatchIdx = this._batches.length;\n this._batches.push({ batch, metadata });\n }\n\n /** Single-row convenience. Wraps each value in `[value]` then calls `emit()`. */\n emitRow(values: Record<string, any>): void {\n const columns: Record<string, any[]> = {};\n for (const [key, value] of Object.entries(values)) {\n columns[key] = [value];\n }\n this.emit(columns);\n }\n\n /** Signal stream completion for producer streams. Throws if called on exchange streams. */\n finish(): void {\n if (!this._producerMode) {\n throw new Error(\n \"finish() is not allowed on exchange streams; \" + \"exchange streams must emit exactly one data batch per call\",\n );\n }\n this._finished = true;\n }\n\n /** Emit a zero-row client-directed log batch. */\n clientLog(level: string, message: string, extra?: Record<string, string>): void {\n const batch = buildLogBatch(this._outputSchema, level, message, extra, this._serverId, this._requestId);\n this._batches.push({ batch });\n }\n}\n",
24
24
  "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport { RecordBatch, RecordBatchReader, Schema } from \"@query-farm/apache-arrow\";\nimport type { AuthContext } from \"../auth.js\";\nimport { STATE_KEY } from \"../constants.js\";\nimport { buildDescribeBatch, DESCRIBE_SCHEMA } from \"../dispatch/describe.js\";\nimport { type ExternalLocationConfig, maybeExternalizeBatch } from \"../external.js\";\nimport type { MethodDefinition } from \"../types.js\";\nimport { OutputCollector } from \"../types.js\";\nimport { conformBatchToSchema } from \"../util/conform.js\";\nimport { serializeSchema } from \"../util/schema.js\";\nimport { parseRequest } from \"../wire/request.js\";\nimport { buildEmptyBatch, buildErrorBatch, buildResultBatch } from \"../wire/response.js\";\nimport { arrowResponse, HttpRpcError, readRequestFromBody, serializeIpcStream } from \"./common.js\";\nimport { packStateToken, unpackStateToken } from \"./token.js\";\nimport type { StateSerializer } from \"./types.js\";\n\nasync function deserializeSchema(bytes: Uint8Array): Promise<Schema> {\n const reader = await RecordBatchReader.from(bytes);\n await reader.open();\n return reader.schema!;\n}\n\nconst EMPTY_SCHEMA = new Schema([]);\n\nexport interface DispatchContext {\n signingKey: Uint8Array;\n tokenTtl: number;\n serverId: string;\n maxStreamResponseBytes?: number;\n stateSerializer: StateSerializer;\n authContext?: AuthContext;\n externalLocation?: ExternalLocationConfig;\n}\n\n/** Dispatch a __describe__ request. */\nexport function httpDispatchDescribe(\n protocolName: string,\n methods: Map<string, MethodDefinition>,\n serverId: string,\n): Response {\n const { batch } = buildDescribeBatch(protocolName, methods, serverId);\n const body = serializeIpcStream(DESCRIBE_SCHEMA, [batch]);\n return arrowResponse(body);\n}\n\n/** Dispatch a unary HTTP request. */\nexport async function httpDispatchUnary(\n method: MethodDefinition,\n body: Uint8Array,\n ctx: DispatchContext,\n): Promise<Response> {\n const schema = method.resultSchema;\n const { schema: reqSchema, batch: reqBatch } = await readRequestFromBody(body);\n const parsed = parseRequest(reqSchema, reqBatch);\n\n if (parsed.methodName !== method.name) {\n throw new HttpRpcError(`Method name in request '${parsed.methodName}' does not match URL '${method.name}'`, 400);\n }\n\n const out = new OutputCollector(schema, true, ctx.serverId, parsed.requestId, ctx.authContext);\n\n try {\n const result = await method.handler!(parsed.params, out);\n let resultBatch = buildResultBatch(schema, result, ctx.serverId, parsed.requestId);\n if (ctx.externalLocation) {\n resultBatch = await maybeExternalizeBatch(resultBatch, ctx.externalLocation);\n }\n const batches = [...out.batches.map((b) => b.batch), resultBatch];\n return arrowResponse(serializeIpcStream(schema, batches));\n } catch (error: any) {\n const errBatch = buildErrorBatch(schema, error, ctx.serverId, parsed.requestId);\n const response = arrowResponse(serializeIpcStream(schema, [errBatch]), 500);\n // Attach the error so the dispatch hook can see it\n (response as any).__dispatchError = error;\n return response;\n }\n}\n\n/** Dispatch a stream init HTTP request (producer or exchange). */\nexport async function httpDispatchStreamInit(\n method: MethodDefinition,\n body: Uint8Array,\n ctx: DispatchContext,\n): Promise<Response> {\n const isProducer = !!method.producerFn;\n const outputSchema = method.outputSchema!;\n const inputSchema = method.inputSchema ?? EMPTY_SCHEMA;\n\n const { schema: reqSchema, batch: reqBatch } = await readRequestFromBody(body);\n const parsed = parseRequest(reqSchema, reqBatch);\n\n if (parsed.methodName !== method.name) {\n throw new HttpRpcError(`Method name in request '${parsed.methodName}' does not match URL '${method.name}'`, 400);\n }\n\n // Init state\n let state: any;\n try {\n if (isProducer) {\n state = await method.producerInit!(parsed.params);\n } else {\n state = await method.exchangeInit!(parsed.params);\n }\n } catch (error: any) {\n const errSchema = method.headerSchema ?? EMPTY_SCHEMA;\n const errBatch = buildErrorBatch(errSchema, error, ctx.serverId, parsed.requestId);\n const response = arrowResponse(serializeIpcStream(errSchema, [errBatch]), 500);\n (response as any).__dispatchError = error;\n return response;\n }\n\n // Support dynamic output schemas (same as pipe transport)\n const resolvedOutputSchema = state?.__outputSchema ?? outputSchema;\n const effectiveProducer = state?.__isProducer ?? isProducer;\n\n // Build header IPC stream if method has a header schema\n let headerBytes: Uint8Array | null = null;\n if (method.headerSchema && method.headerInit) {\n try {\n const headerOut = new OutputCollector(method.headerSchema, true, ctx.serverId, parsed.requestId, ctx.authContext);\n const headerValues = method.headerInit(parsed.params, state, headerOut);\n const headerBatch = buildResultBatch(method.headerSchema, headerValues, ctx.serverId, parsed.requestId);\n const headerBatches = [...headerOut.batches.map((b) => b.batch), headerBatch];\n headerBytes = serializeIpcStream(method.headerSchema, headerBatches);\n } catch (error: any) {\n const errBatch = buildErrorBatch(method.headerSchema, error, ctx.serverId, parsed.requestId);\n const response = arrowResponse(serializeIpcStream(method.headerSchema, [errBatch]), 500);\n (response as any).__dispatchError = error;\n return response;\n }\n }\n\n if (effectiveProducer) {\n // Producer method — produce data inline in the init response.\n // For exchange-registered methods acting as producers (__isProducer),\n // produceStreamResponse falls back to exchangeFn with tick batches.\n return produceStreamResponse(method, state, resolvedOutputSchema, inputSchema, ctx, parsed.requestId, headerBytes);\n } else {\n // Exchange: serialize state into signed token, return zero-row batch with token\n const stateBytes = ctx.stateSerializer.serialize(state);\n const schemaBytes = serializeSchema(resolvedOutputSchema);\n const inputSchemaBytes = serializeSchema(inputSchema);\n const token = packStateToken(stateBytes, schemaBytes, inputSchemaBytes, ctx.signingKey);\n\n const tokenMeta = new Map<string, string>();\n tokenMeta.set(STATE_KEY, token);\n const tokenBatch = buildEmptyBatch(resolvedOutputSchema, tokenMeta);\n const tokenStreamBytes = serializeIpcStream(resolvedOutputSchema, [tokenBatch]);\n\n let responseBody: Uint8Array;\n if (headerBytes) {\n responseBody = concatBytes(headerBytes, tokenStreamBytes);\n } else {\n responseBody = tokenStreamBytes;\n }\n\n return arrowResponse(responseBody);\n }\n}\n\n/** Dispatch a stream exchange HTTP request (producer continuation or exchange round). */\nexport async function httpDispatchStreamExchange(\n method: MethodDefinition,\n body: Uint8Array,\n ctx: DispatchContext,\n): Promise<Response> {\n const isProducer = !!method.producerFn;\n\n const { batch: reqBatch } = await readRequestFromBody(body);\n\n // Get state token from batch metadata\n const tokenBase64 = reqBatch.metadata?.get(STATE_KEY);\n if (!tokenBase64) {\n throw new HttpRpcError(\"Missing state token in exchange request\", 400);\n }\n\n let unpacked: import(\"./token.js\").UnpackedToken;\n try {\n unpacked = unpackStateToken(tokenBase64, ctx.signingKey, ctx.tokenTtl);\n } catch (error: any) {\n throw new HttpRpcError(`Invalid state token: ${error.message}`, 400);\n }\n\n let state: any;\n try {\n state = ctx.stateSerializer.deserialize(unpacked.stateBytes);\n } catch (error: any) {\n console.error(`[httpDispatchStreamExchange] state deserialize error:`, error.message);\n throw new HttpRpcError(`State deserialization failed: ${error.message}`, 500);\n }\n\n // Recover schemas from the token (the state itself may not contain\n // Schema objects after JSON round-trip — always prefer the token).\n let outputSchema: Schema;\n if (unpacked.schemaBytes.length > 0) {\n outputSchema = await deserializeSchema(unpacked.schemaBytes);\n } else {\n outputSchema = state?.__outputSchema ?? method.outputSchema!;\n }\n let inputSchema: Schema;\n if (unpacked.inputSchemaBytes.length > 0) {\n inputSchema = await deserializeSchema(unpacked.inputSchemaBytes);\n } else {\n inputSchema = method.inputSchema ?? EMPTY_SCHEMA;\n }\n const effectiveProducer = state?.__isProducer ?? isProducer;\n if (process.env.VGI_DISPATCH_DEBUG)\n console.error(\n `[httpDispatchStreamExchange] method=${method.name} effectiveProducer=${effectiveProducer} stateKeys=${Object.keys(state || {})}`,\n );\n\n if (effectiveProducer) {\n // Producer continuation — produce more data inline.\n // For exchange-registered methods, falls back to exchangeFn with tick batches.\n return produceStreamResponse(method, state, outputSchema, inputSchema, ctx, null, null);\n } else {\n // Exchange path — also handles exchange-registered methods acting as\n // producers (__isProducer=true). Use producer mode on the OutputCollector\n // when effectiveProducer so finish() is allowed.\n const out = new OutputCollector(outputSchema, effectiveProducer, ctx.serverId, null, ctx.authContext);\n\n // Cast compatible input types (e.g., decimal→double, int32→int64)\n const conformedBatch = conformBatchToSchema(reqBatch, inputSchema);\n\n try {\n if (method.exchangeFn) {\n await method.exchangeFn(state, conformedBatch, out);\n } else {\n await method.producerFn!(state, out);\n }\n } catch (error: any) {\n if (process.env.VGI_DISPATCH_DEBUG)\n console.error(\n `[httpDispatchStreamExchange] exchange handler error:`,\n error.message,\n error.stack?.split(\"\\n\").slice(0, 5).join(\"\\n\"),\n );\n const errBatch = buildErrorBatch(outputSchema, error, ctx.serverId, null);\n const response = arrowResponse(serializeIpcStream(outputSchema, [errBatch]), 500);\n (response as any).__dispatchError = error;\n return response;\n }\n\n // Collect emitted batches\n const batches: RecordBatch[] = [];\n\n if (out.finished) {\n // Stream is done — return data WITHOUT state token.\n // The absence of a token tells the client there's no more data.\n for (const emitted of out.batches) {\n batches.push(emitted.batch);\n }\n } else {\n // More data may follow — repack state into token for next exchange.\n const stateBytes = ctx.stateSerializer.serialize(state);\n const schemaBytes = serializeSchema(outputSchema);\n const inputSchemaBytes = serializeSchema(inputSchema);\n const token = packStateToken(stateBytes, schemaBytes, inputSchemaBytes, ctx.signingKey);\n\n for (const emitted of out.batches) {\n const batch = emitted.batch;\n if (batch.numRows > 0) {\n const mergedMeta = new Map<string, string>(batch.metadata ?? []);\n mergedMeta.set(STATE_KEY, token);\n batches.push(new RecordBatch(batch.schema, batch.data, mergedMeta));\n } else {\n batches.push(batch);\n }\n }\n\n // Safety net: if no batch carries a state token (e.g. all rows were\n // filtered out by pushdown filters), emit an empty batch with the\n // token so the client knows to continue exchanging.\n if (!batches.some((b) => b.metadata?.get(STATE_KEY))) {\n const tokenMeta = new Map<string, string>();\n tokenMeta.set(STATE_KEY, token);\n batches.push(buildEmptyBatch(outputSchema, tokenMeta));\n }\n }\n\n return arrowResponse(serializeIpcStream(outputSchema, batches));\n }\n}\n\n/** Run the producer loop and build the response. */\nasync function produceStreamResponse(\n method: MethodDefinition,\n state: any,\n outputSchema: Schema,\n inputSchema: Schema,\n ctx: DispatchContext,\n requestId: string | null,\n headerBytes: Uint8Array | null,\n): Promise<Response> {\n const allBatches: RecordBatch[] = [];\n const maxBytes = ctx.maxStreamResponseBytes;\n let estimatedBytes = 0;\n let producerError: Error | undefined;\n\n while (true) {\n const out = new OutputCollector(outputSchema, true, ctx.serverId, requestId, ctx.authContext);\n\n try {\n if (method.producerFn) {\n await method.producerFn(state, out);\n } else {\n // Exchange-registered method acting as producer (e.g. VGI's \"init\"\n // method which is registered as exchange but may produce based on\n // the __isProducer state flag). Call exchangeFn with an empty tick\n // batch, matching how the subprocess transport dispatches these.\n const tickBatch = buildEmptyBatch(inputSchema);\n await method.exchangeFn!(state, tickBatch, out);\n }\n } catch (error: any) {\n if (process.env.VGI_DISPATCH_DEBUG)\n console.error(`[produceStreamResponse] error:`, error.message, error.stack?.split(\"\\n\").slice(0, 3).join(\"\\n\"));\n allBatches.push(buildErrorBatch(outputSchema, error, ctx.serverId, requestId));\n producerError = error instanceof Error ? error : new Error(String(error));\n break;\n }\n\n for (const emitted of out.batches) {\n allBatches.push(emitted.batch);\n if (maxBytes != null) {\n estimatedBytes += emitted.batch.data.byteLength;\n }\n }\n\n if (out.finished) {\n break;\n }\n\n // Check byte budget — if exceeded, emit continuation token\n if (maxBytes != null && estimatedBytes >= maxBytes) {\n const stateBytes = ctx.stateSerializer.serialize(state);\n const schemaBytes = serializeSchema(outputSchema);\n const inputSchemaBytes = serializeSchema(inputSchema);\n const token = packStateToken(stateBytes, schemaBytes, inputSchemaBytes, ctx.signingKey);\n const tokenMeta = new Map<string, string>();\n tokenMeta.set(STATE_KEY, token);\n allBatches.push(buildEmptyBatch(outputSchema, tokenMeta));\n break;\n }\n }\n\n const dataBytes = serializeIpcStream(outputSchema, allBatches);\n let responseBody: Uint8Array;\n if (headerBytes) {\n responseBody = concatBytes(headerBytes, dataBytes);\n } else {\n responseBody = dataBytes;\n }\n const response = arrowResponse(responseBody);\n if (producerError) {\n (response as any).__dispatchError = producerError;\n }\n return response;\n}\n\nfunction concatBytes(...arrays: Uint8Array[]): Uint8Array {\n const totalLen = arrays.reduce((sum, a) => sum + a.length, 0);\n const result = new Uint8Array(totalLen);\n let offset = 0;\n for (const arr of arrays) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\n",
25
25
  "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport {\n Binary,\n Bool,\n Field,\n makeData,\n RecordBatch,\n Schema,\n Struct,\n Utf8,\n vectorFromArray,\n} from \"@query-farm/apache-arrow\";\nimport {\n DESCRIBE_VERSION,\n DESCRIBE_VERSION_KEY,\n PROTOCOL_NAME_KEY,\n REQUEST_VERSION,\n REQUEST_VERSION_KEY,\n SERVER_ID_KEY,\n} from \"../constants.js\";\nimport type { MethodDefinition } from \"../types.js\";\nimport { serializeSchema } from \"../util/schema.js\";\n\n/**\n * The schema for the __describe__ response, matching Python's _DESCRIBE_SCHEMA.\n */\nexport const DESCRIBE_SCHEMA = new Schema([\n new Field(\"name\", new Utf8(), false),\n new Field(\"method_type\", new Utf8(), false),\n new Field(\"doc\", new Utf8(), true),\n new Field(\"has_return\", new Bool(), false),\n new Field(\"params_schema_ipc\", new Binary(), false),\n new Field(\"result_schema_ipc\", new Binary(), false),\n new Field(\"param_types_json\", new Utf8(), true),\n new Field(\"param_defaults_json\", new Utf8(), true),\n new Field(\"has_header\", new Bool(), false),\n new Field(\"header_schema_ipc\", new Binary(), true),\n new Field(\"is_exchange\", new Bool(), true),\n new Field(\"param_docs_json\", new Utf8(), true),\n]);\n\n/**\n * Build the __describe__ response batch and metadata.\n */\nexport function buildDescribeBatch(\n protocolName: string,\n methods: Map<string, MethodDefinition>,\n serverId: string,\n): { batch: RecordBatch; metadata: Map<string, string> } {\n // Sort methods by name for consistent ordering\n const sortedEntries = [...methods.entries()].sort(([a], [b]) => a.localeCompare(b));\n\n const names: (string | null)[] = [];\n const methodTypes: (string | null)[] = [];\n const docs: (string | null)[] = [];\n const hasReturns: boolean[] = [];\n const paramsSchemas: (Uint8Array | null)[] = [];\n const resultSchemas: (Uint8Array | null)[] = [];\n const paramTypesJsons: (string | null)[] = [];\n const paramDefaultsJsons: (string | null)[] = [];\n const hasHeaders: boolean[] = [];\n const headerSchemas: (Uint8Array | null)[] = [];\n const isExchanges: (boolean | null)[] = [];\n const paramDocsJsons: (string | null)[] = [];\n\n for (const [name, method] of sortedEntries) {\n names.push(name);\n methodTypes.push(method.type);\n docs.push(method.doc ?? null);\n\n // Unary methods with non-empty result schema have a return value\n const hasReturn = method.type === \"unary\" && method.resultSchema.fields.length > 0;\n hasReturns.push(hasReturn);\n\n paramsSchemas.push(serializeSchema(method.paramsSchema));\n resultSchemas.push(serializeSchema(method.resultSchema));\n\n // Build param_types_json\n if (method.paramTypes && Object.keys(method.paramTypes).length > 0) {\n paramTypesJsons.push(JSON.stringify(method.paramTypes));\n } else {\n paramTypesJsons.push(null);\n }\n\n // Build param_defaults_json\n if (method.defaults && Object.keys(method.defaults).length > 0) {\n const safe: Record<string, any> = {};\n for (const [k, v] of Object.entries(method.defaults)) {\n if (v === null || typeof v === \"string\" || typeof v === \"number\" || typeof v === \"boolean\") {\n safe[k] = v;\n }\n }\n paramDefaultsJsons.push(Object.keys(safe).length > 0 ? JSON.stringify(safe) : null);\n } else {\n paramDefaultsJsons.push(null);\n }\n\n hasHeaders.push(!!method.headerSchema);\n headerSchemas.push(method.headerSchema ? serializeSchema(method.headerSchema) : null);\n\n // is_exchange: true for exchange, false for producer, null for unary\n if (method.exchangeFn) {\n isExchanges.push(true);\n } else if (method.producerFn) {\n isExchanges.push(false);\n } else {\n isExchanges.push(null);\n }\n\n // param_docs_json: no docstring source in TypeScript, always null\n paramDocsJsons.push(null);\n }\n\n // Build the batch using vectorFromArray for each column\n const nameArr = vectorFromArray(names, new Utf8());\n const methodTypeArr = vectorFromArray(methodTypes, new Utf8());\n const docArr = vectorFromArray(docs, new Utf8());\n const hasReturnArr = vectorFromArray(hasReturns, new Bool());\n const paramsSchemaArr = vectorFromArray(paramsSchemas, new Binary());\n const resultSchemaArr = vectorFromArray(resultSchemas, new Binary());\n const paramTypesArr = vectorFromArray(paramTypesJsons, new Utf8());\n const paramDefaultsArr = vectorFromArray(paramDefaultsJsons, new Utf8());\n const hasHeaderArr = vectorFromArray(hasHeaders, new Bool());\n const headerSchemaArr = vectorFromArray(headerSchemas, new Binary());\n const isExchangeArr = vectorFromArray(isExchanges, new Bool());\n const paramDocsArr = vectorFromArray(paramDocsJsons, new Utf8());\n\n const children = [\n nameArr.data[0],\n methodTypeArr.data[0],\n docArr.data[0],\n hasReturnArr.data[0],\n paramsSchemaArr.data[0],\n resultSchemaArr.data[0],\n paramTypesArr.data[0],\n paramDefaultsArr.data[0],\n hasHeaderArr.data[0],\n headerSchemaArr.data[0],\n isExchangeArr.data[0],\n paramDocsArr.data[0],\n ];\n\n const structType = new Struct(DESCRIBE_SCHEMA.fields);\n const data = makeData({\n type: structType,\n length: sortedEntries.length,\n children,\n nullCount: 0,\n });\n\n // Build metadata for the batch\n const metadata = new Map<string, string>();\n metadata.set(PROTOCOL_NAME_KEY, protocolName);\n metadata.set(REQUEST_VERSION_KEY, REQUEST_VERSION);\n metadata.set(DESCRIBE_VERSION_KEY, DESCRIBE_VERSION);\n metadata.set(SERVER_ID_KEY, serverId);\n\n const batch = new RecordBatch(DESCRIBE_SCHEMA, data, metadata);\n\n return { batch, metadata };\n}\n",
@@ -38,7 +38,7 @@
38
38
  "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport { type ExternalLocationConfig, maybeExternalizeBatch } from \"../external.js\";\nimport type { MethodDefinition } from \"../types.js\";\nimport { OutputCollector } from \"../types.js\";\nimport { buildErrorBatch, buildResultBatch } from \"../wire/response.js\";\nimport type { IpcStreamWriter } from \"../wire/writer.js\";\n\n/**\n * Dispatch a unary RPC call.\n * Calls the handler with parsed params, writes result or error batch.\n * Supports client-directed logging via ctx.clientLog().\n */\nexport async function dispatchUnary(\n method: MethodDefinition,\n params: Record<string, any>,\n writer: IpcStreamWriter,\n serverId: string,\n requestId: string | null,\n externalConfig?: ExternalLocationConfig,\n): Promise<void> {\n const schema = method.resultSchema;\n const out = new OutputCollector(schema, true, serverId, requestId);\n\n try {\n const result = await method.handler!(params, out);\n let resultBatch = buildResultBatch(schema, result, serverId, requestId);\n if (externalConfig) {\n resultBatch = await maybeExternalizeBatch(resultBatch, externalConfig);\n }\n // Collect log batches (from clientLog) + result batch\n const batches = [...out.batches.map((b) => b.batch), resultBatch];\n writer.writeStream(schema, batches);\n } catch (error: any) {\n const batch = buildErrorBatch(schema, error, serverId, requestId);\n writer.writeStream(schema, [batch]);\n }\n}\n",
39
39
  "// © Copyright 2025-2026, Query.Farm LLC - https://query.farm\n// SPDX-License-Identifier: Apache-2.0\n\nimport { writeSync } from \"node:fs\";\nimport { type RecordBatch, RecordBatchStreamWriter, type Schema } from \"@query-farm/apache-arrow\";\n\nconst STDOUT_FD = 1;\n\n/**\n * Write all bytes to a file descriptor, looping on partial writes.\n * Handles EAGAIN (pipe buffer full) by busy-waiting with Atomics.wait().\n * writeSync() can return fewer bytes than requested when the pipe buffer\n * is full (e.g., 64KB limit), and throws EAGAIN on non-blocking fds.\n */\nfunction writeAll(fd: number, data: Uint8Array): void {\n let offset = 0;\n while (offset < data.length) {\n try {\n const written = writeSync(fd, data, offset, data.length - offset);\n if (written <= 0) throw new Error(`writeSync returned ${written}`);\n offset += written;\n } catch (e: any) {\n if (e.code === \"EAGAIN\") {\n // Pipe buffer full — busy-wait briefly then retry\n Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, 1);\n continue;\n }\n throw e;\n }\n }\n}\n\n/**\n * Writes sequential IPC streams to a file descriptor (e.g., stdout).\n * Each call to writeStream() writes a complete IPC stream: schema + batches + EOS.\n *\n * All writes use synchronous I/O (writeSync) to avoid deadlocks when\n * interleaving stdout writes with blocking stdin reads.\n */\nexport class IpcStreamWriter {\n private readonly fd: number;\n\n constructor(fd: number = STDOUT_FD) {\n this.fd = fd;\n }\n\n /**\n * Write a complete IPC stream with the given schema and batches.\n * Creates schema message, writes all batches (with their metadata), writes EOS.\n */\n writeStream(schema: Schema, batches: RecordBatch[]): void {\n const writer = new RecordBatchStreamWriter();\n writer.reset(undefined, schema);\n for (const batch of batches) {\n // Use _writeRecordBatch to bypass schema comparison (see IncrementalStream.write)\n (writer as any)._writeRecordBatch(batch);\n }\n writer.close();\n const bytes = writer.toUint8Array(true);\n writeAll(this.fd, bytes);\n }\n\n /**\n * Open an incremental IPC stream for writing batches one at a time.\n * Used for streaming methods where output batches are produced incrementally.\n * Bytes are written synchronously after each batch.\n */\n openStream(schema: Schema): IncrementalStream {\n return new IncrementalStream(this.fd, schema);\n }\n}\n\n/**\n * An open IPC stream that supports incremental batch writes.\n *\n * Uses RecordBatchStreamWriter with internal buffering (no pipe to stdout).\n * After each operation, drains the writer's internal AsyncByteQueue buffer\n * and writes bytes synchronously via writeAll(). This avoids deadlocks\n * caused by Node.js async stream piping when stdin reads block before\n * stdout writes flush through the event loop.\n */\nexport class IncrementalStream {\n private writer: RecordBatchStreamWriter;\n private readonly fd: number;\n private closed = false;\n\n constructor(fd: number, schema: Schema) {\n this.fd = fd;\n this.writer = new RecordBatchStreamWriter();\n // Buffer internally (no sink) — we drain manually via writeAll\n this.writer.reset(undefined, schema);\n this.drain();\n }\n\n /**\n * Write a single batch to the stream. Bytes are flushed synchronously.\n *\n * Uses _writeRecordBatch() directly to bypass the Arrow writer's schema\n * comparison in write(). The public write() method calls compareSchemas()\n * and auto-closes the writer if the batch's schema differs (e.g., in\n * nullability), silently dropping the batch. Since our output schema is\n * set at stream open time and all batches are structurally compatible,\n * we skip the comparison.\n */\n write(batch: RecordBatch): void {\n if (this.closed) throw new Error(\"Stream already closed\");\n (this.writer as any)._writeRecordBatch(batch);\n this.drain();\n }\n\n /**\n * Close the stream (writes EOS marker synchronously).\n */\n close(): void {\n if (this.closed) return;\n this.closed = true;\n // EOS marker: continuation (0xFFFFFFFF) + metadata length (0x00000000)\n const eos = new Uint8Array(new Int32Array([-1, 0]).buffer);\n writeAll(this.fd, eos);\n }\n\n /**\n * Drain buffered bytes from the Arrow writer's internal queue\n * and write them synchronously to the output fd.\n */\n private drain(): void {\n const values = (this.writer as any)._sink._values as Uint8Array[];\n for (const chunk of values) {\n writeAll(this.fd, chunk);\n }\n values.length = 0;\n }\n}\n"
40
40
  ],
41
- "mappings": "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",
42
- "debugId": "37CD76108224132A64756E2164756E21",
41
+ "mappings": "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",
42
+ "debugId": "1CDD4B067C444B3764756E2164756E21",
43
43
  "names": []
44
44
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@query-farm/vgi-rpc",
3
- "version": "0.6.1",
3
+ "version": "0.6.3",
4
4
  "license": "Apache-2.0",
5
5
  "homepage": "https://vgi-rpc-typescript.query.farm",
6
6
  "repository": {
@@ -85,7 +85,8 @@ export function createHttpHandler(
85
85
  if (corsOrigins) {
86
86
  headers.set("Access-Control-Allow-Origin", corsOrigins);
87
87
  headers.set("Access-Control-Allow-Methods", "POST, OPTIONS");
88
- headers.set("Access-Control-Allow-Headers", "Content-Type");
88
+ headers.set("Access-Control-Allow-Headers", "Content-Type, Authorization");
89
+ headers.set("Access-Control-Expose-Headers", "WWW-Authenticate, X-Request-ID, X-VGI-Content-Encoding");
89
90
  }
90
91
  }
91
92