@channel.io/app-sdk-server 0.14.0 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/__tests__/datasource-runners.test.d.ts +2 -0
  2. package/dist/__tests__/datasource-runners.test.d.ts.map +1 -0
  3. package/dist/__tests__/datasource-runners.test.js +244 -0
  4. package/dist/__tests__/datasource-runners.test.js.map +1 -0
  5. package/dist/__tests__/datasource.test.js +48 -3
  6. package/dist/__tests__/datasource.test.js.map +1 -1
  7. package/dist/datasource/arrow.d.ts +18 -1
  8. package/dist/datasource/arrow.d.ts.map +1 -1
  9. package/dist/datasource/arrow.js +236 -12
  10. package/dist/datasource/arrow.js.map +1 -1
  11. package/dist/datasource/bigquery.d.ts +97 -0
  12. package/dist/datasource/bigquery.d.ts.map +1 -0
  13. package/dist/datasource/bigquery.js +297 -0
  14. package/dist/datasource/bigquery.js.map +1 -0
  15. package/dist/datasource/grpc.d.ts +2 -1
  16. package/dist/datasource/grpc.d.ts.map +1 -1
  17. package/dist/datasource/grpc.js +54 -2
  18. package/dist/datasource/grpc.js.map +1 -1
  19. package/dist/datasource/index.d.ts +3 -0
  20. package/dist/datasource/index.d.ts.map +1 -1
  21. package/dist/datasource/index.js +3 -0
  22. package/dist/datasource/index.js.map +1 -1
  23. package/dist/datasource/policy.d.ts +16 -0
  24. package/dist/datasource/policy.d.ts.map +1 -0
  25. package/dist/datasource/policy.js +112 -0
  26. package/dist/datasource/policy.js.map +1 -0
  27. package/dist/datasource/postgres.d.ts +32 -0
  28. package/dist/datasource/postgres.d.ts.map +1 -0
  29. package/dist/datasource/postgres.js +234 -0
  30. package/dist/datasource/postgres.js.map +1 -0
  31. package/dist/datasource/query-handlers.d.ts +2 -2
  32. package/dist/datasource/query-handlers.d.ts.map +1 -1
  33. package/dist/datasource/query-handlers.js +2 -2
  34. package/dist/datasource/query-handlers.js.map +1 -1
  35. package/dist/datasource/types.d.ts +37 -1
  36. package/dist/datasource/types.d.ts.map +1 -1
  37. package/dist/datasource/types.js +20 -0
  38. package/dist/datasource/types.js.map +1 -1
  39. package/dist/nestjs/channel-app.service.d.ts +8 -0
  40. package/dist/nestjs/channel-app.service.d.ts.map +1 -1
  41. package/dist/nestjs/channel-app.service.js +45 -3
  42. package/dist/nestjs/channel-app.service.js.map +1 -1
  43. package/dist/nestjs/channel-app.service.test.js +28 -0
  44. package/dist/nestjs/channel-app.service.test.js.map +1 -1
  45. package/dist/nestjs/types.d.ts +16 -0
  46. package/dist/nestjs/types.d.ts.map +1 -1
  47. package/dist/nestjs/types.js.map +1 -1
  48. package/package.json +26 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bigquery.js","sourceRoot":"","sources":["../../src/datasource/bigquery.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as grpc from "@grpc/grpc-js";
2
- import { DataSourceErrorCode, type DataSourceError, type DataSourceGrpcOptions, type DataSourceServiceHandlers, type ExecuteQueryRequest, type QueryChunk } from "./types.js";
2
+ import { DataSourceErrorCode, type DataSourceError, type DataSourceGrpcOptions, type DataSourceServiceHandlers, type ExecuteQueryContext, type ExecuteQueryRequest, type QueryChunk } from "./types.js";
3
3
  declare const serviceName = "io.channel.datasource.v1.DataSourceService";
4
4
  export declare const DataSourceServiceDefinition: {
5
5
  ListTables: grpc.MethodDefinition<unknown, unknown>;
@@ -18,6 +18,7 @@ export declare const DataSourceServiceDefinition: {
18
18
  };
19
19
  export declare function createDataSourceGrpcServer(handlers: DataSourceServiceHandlers, options?: DataSourceGrpcOptions): grpc.Server;
20
20
  export declare function addDataSourceService(server: grpc.Server, handlers: DataSourceServiceHandlers, options?: DataSourceGrpcOptions): void;
21
+ export declare function createExecuteQueryContext(metadata: grpc.Metadata): ExecuteQueryContext;
21
22
  export declare function arrowChunk(dataBody: Uint8Array, dataHeader?: Uint8Array): QueryChunk;
22
23
  export declare function errorChunk(code: DataSourceErrorCode, message: string, options?: {
23
24
  retryable?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"grpc.d.ts","sourceRoot":"","sources":["../../src/datasource/grpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AAEtC,OAAO,EACL,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,UAAU,EAEhB,MAAM,YAAY,CAAC;AAmHpB,QAAA,MAAM,WAAW,+CAA+C,CAAC;AAcjE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;CA0BN,CAAC;AAEnC,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,yBAAyB,EACnC,OAAO,GAAE,qBAA0B,GAClC,IAAI,CAAC,MAAM,CAIb;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,QAAQ,EAAE,yBAAyB,EACnC,OAAO,GAAE,qBAA0B,GAClC,IAAI,CAUN;AA8BD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,CAOpF;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAA;CAAO,GAC5E,UAAU,CASZ;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAGvD;AA8GD,OAAO,EAAE,WAAW,IAAI,yBAAyB,EAAE,CAAC"}
1
+ {"version":3,"file":"grpc.d.ts","sourceRoot":"","sources":["../../src/datasource/grpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AAEtC,OAAO,EAGL,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAE1B,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,UAAU,EAEhB,MAAM,YAAY,CAAC;AAmHpB,QAAA,MAAM,WAAW,+CAA+C,CAAC;AAcjE,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;CA0BN,CAAC;AAEnC,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,yBAAyB,EACnC,OAAO,GAAE,qBAA0B,GAClC,IAAI,CAAC,MAAM,CAIb;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,QAAQ,EAAE,yBAAyB,EACnC,OAAO,GAAE,qBAA0B,GAClC,IAAI,CAUN;AA8BD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAkCtF;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,CAOpF;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAA;CAAO,GAC5E,UAAU,CASZ;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CASvD;AAiID,OAAO,EAAE,WAAW,IAAI,yBAAyB,EAAE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import * as grpc from "@grpc/grpc-js";
2
2
  import protobuf from "protobufjs";
3
- import { DataSourceErrorCode, } from "./types.js";
3
+ import { DataSourceAppIdentityMetadataKeys, DataSourceExecutionError, DataSourceErrorCode, } from "./types.js";
4
4
  const datasourceProto = `
5
5
  syntax = "proto3";
6
6
  package io.channel.datasource.v1;
@@ -166,7 +166,7 @@ async function handleExecuteQuery(call, handlers, allowedSources) {
166
166
  send: (chunk) => call.write(chunk),
167
167
  };
168
168
  try {
169
- await handlers.executeQuery(call.request, sink);
169
+ await handlers.executeQuery(call.request, sink, createExecuteQueryContext(call.metadata));
170
170
  call.end();
171
171
  }
172
172
  catch (error) {
@@ -174,6 +174,36 @@ async function handleExecuteQuery(call, handlers, allowedSources) {
174
174
  writeTerminalError(call, toErrorChunk(error), grpc.status.UNKNOWN, message);
175
175
  }
176
176
  }
177
+ export function createExecuteQueryContext(metadata) {
178
+ const normalized = normalizeMetadata(metadata);
179
+ const getMetadataValues = (name) => normalized[normalizeMetadataKey(name)] ?? [];
180
+ const getMetadataTextValues = (name) => getMetadataValues(name)
181
+ .map(metadataValueToText)
182
+ .filter((value) => value !== undefined && value.length > 0);
183
+ const getMetadataText = (name) => getMetadataTextValues(name)[0];
184
+ const appSlug = getMetadataText(DataSourceAppIdentityMetadataKeys.AppSlug) ??
185
+ getMetadataText(DataSourceAppIdentityMetadataKeys.ChannelAppSlug);
186
+ const appId = getMetadataText(DataSourceAppIdentityMetadataKeys.AppId) ??
187
+ getMetadataText(DataSourceAppIdentityMetadataKeys.ChannelAppId);
188
+ const appIdentity = {};
189
+ if (appSlug) {
190
+ Object.assign(appIdentity, { appSlug });
191
+ }
192
+ if (appId) {
193
+ Object.assign(appIdentity, { appId });
194
+ }
195
+ const appSlugOrId = appSlug ?? appId;
196
+ if (appSlugOrId) {
197
+ Object.assign(appIdentity, { appSlugOrId });
198
+ }
199
+ return {
200
+ metadata: normalized,
201
+ appIdentity,
202
+ getMetadataValues,
203
+ getMetadataTextValues,
204
+ getMetadataText,
205
+ };
206
+ }
177
207
  export function arrowChunk(dataBody, dataHeader) {
178
208
  return {
179
209
  arrow: {
@@ -193,6 +223,12 @@ export function errorChunk(code, message, options = {}) {
193
223
  };
194
224
  }
195
225
  export function toErrorChunk(error) {
226
+ if (error instanceof DataSourceExecutionError) {
227
+ return errorChunk(error.code, error.message, {
228
+ retryable: error.retryable,
229
+ upstream: error.upstream,
230
+ });
231
+ }
196
232
  const message = error instanceof Error ? error.message : String(error);
197
233
  return errorChunk(DataSourceErrorCode.ExternalError, message);
198
234
  }
@@ -240,6 +276,22 @@ function deserializer(type) {
240
276
  objects: true,
241
277
  });
242
278
  }
279
+ function normalizeMetadata(metadata) {
280
+ const normalized = {};
281
+ for (const key of Object.keys(metadata.getMap())) {
282
+ normalized[normalizeMetadataKey(key)] = metadata.get(key);
283
+ }
284
+ return normalized;
285
+ }
286
+ function normalizeMetadataKey(name) {
287
+ return name.toLowerCase();
288
+ }
289
+ function metadataValueToText(value) {
290
+ if (typeof value === "string") {
291
+ return value;
292
+ }
293
+ return Buffer.from(value).toString("utf8");
294
+ }
243
295
  function validateExecuteQueryRequest(request, allowedSources) {
244
296
  if (!request.session) {
245
297
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"grpc.js","sourceRoot":"","sources":["../../src/datasource/grpc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grpc.js","sourceRoot":"","sources":["../../src/datasource/grpc.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  export * from "./types.js";
2
2
  export * from "./arrow.js";
3
+ export * from "./policy.js";
3
4
  export * from "./query-handlers.js";
5
+ export * from "./postgres.js";
6
+ export * from "./bigquery.js";
4
7
  export * from "./grpc.js";
5
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/datasource/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/datasource/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
@@ -1,5 +1,8 @@
1
1
  export * from "./types.js";
2
2
  export * from "./arrow.js";
3
+ export * from "./policy.js";
3
4
  export * from "./query-handlers.js";
5
+ export * from "./postgres.js";
6
+ export * from "./bigquery.js";
4
7
  export * from "./grpc.js";
5
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/datasource/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/datasource/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,16 @@
1
+ export interface DataSourceTableConfig {
2
+ name: string;
3
+ tenantColumn?: string;
4
+ }
5
+ export declare function isSingleReadOnlyStatement(query: string): boolean;
6
+ export declare function containsIdentifier(query: string, identifier: string): boolean;
7
+ export declare function referencedTables(query: string, explicitTableNames?: readonly string[], tables?: readonly DataSourceTableConfig[]): string[];
8
+ export declare function validateReadOnlyQuery(query: string, explicitTableNames?: readonly string[], tables?: readonly DataSourceTableConfig[]): void;
9
+ export declare function queryWithRowLimit(query: string, rowLimit: number | undefined): string;
10
+ export declare class DataSourceByteLimitTracker {
11
+ private readonly byteLimit;
12
+ private sentBytes;
13
+ constructor(byteLimit: number | undefined);
14
+ reserve(size: number): void;
15
+ }
16
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/datasource/policy.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA0BD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAUhE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAG7E;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,kBAAkB,GAAE,SAAS,MAAM,EAAO,EAC1C,MAAM,GAAE,SAAS,qBAAqB,EAAO,GAC5C,MAAM,EAAE,CAOV;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,kBAAkB,GAAE,SAAS,MAAM,EAAO,EAC1C,MAAM,GAAE,SAAS,qBAAqB,EAAO,GAC5C,IAAI,CAiCN;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAOrF;AAED,qBAAa,0BAA0B;IAGzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAFtC,OAAO,CAAC,SAAS,CAAK;gBAEO,SAAS,EAAE,MAAM,GAAG,SAAS;IAE1D,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAa5B"}
@@ -0,0 +1,112 @@
1
+ import { DataSourceErrorCode, DataSourceExecutionError } from "./types.js";
2
+ const blockedSqlKeywords = [
3
+ "alter",
4
+ "analyze",
5
+ "begin",
6
+ "call",
7
+ "commit",
8
+ "copy",
9
+ "create",
10
+ "delete",
11
+ "drop",
12
+ "export",
13
+ "grant",
14
+ "import",
15
+ "insert",
16
+ "load",
17
+ "merge",
18
+ "revoke",
19
+ "rollback",
20
+ "set",
21
+ "truncate",
22
+ "update",
23
+ "vacuum",
24
+ ];
25
+ export function isSingleReadOnlyStatement(query) {
26
+ const normalized = trimSql(query);
27
+ if (!normalized || normalized.includes(";")) {
28
+ return false;
29
+ }
30
+ const lower = normalized.toLowerCase();
31
+ if (!lower.startsWith("select ") && !lower.startsWith("with ")) {
32
+ return false;
33
+ }
34
+ return !blockedSqlKeywords.some((keyword) => containsIdentifier(lower, keyword));
35
+ }
36
+ export function containsIdentifier(query, identifier) {
37
+ const escaped = identifier.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
38
+ return new RegExp(`(^|[^A-Za-z0-9_])${escaped}([^A-Za-z0-9_]|$)`, "i").test(query);
39
+ }
40
+ export function referencedTables(query, explicitTableNames = [], tables = []) {
41
+ if (explicitTableNames.length > 0) {
42
+ return [...explicitTableNames];
43
+ }
44
+ return tables
45
+ .filter((table) => table.name && containsIdentifier(query, table.name))
46
+ .map((table) => table.name);
47
+ }
48
+ export function validateReadOnlyQuery(query, explicitTableNames = [], tables = []) {
49
+ if (!query.trim()) {
50
+ throw new DataSourceExecutionError({
51
+ code: DataSourceErrorCode.InvalidArgument,
52
+ message: "query is required",
53
+ });
54
+ }
55
+ if (!isSingleReadOnlyStatement(query)) {
56
+ throw new DataSourceExecutionError({
57
+ code: DataSourceErrorCode.QueryInvalid,
58
+ message: "query must be a single read-only SELECT statement",
59
+ });
60
+ }
61
+ if (tables.length === 0) {
62
+ return;
63
+ }
64
+ const allowedTables = new Set(tables.map((table) => table.name.toLowerCase()));
65
+ const tableNames = referencedTables(query, explicitTableNames, tables);
66
+ if (tableNames.length === 0) {
67
+ throw new DataSourceExecutionError({
68
+ code: DataSourceErrorCode.QueryInvalid,
69
+ message: "query must reference a supported datasource table",
70
+ });
71
+ }
72
+ for (const tableName of tableNames) {
73
+ if (!allowedTables.has(tableName.toLowerCase())) {
74
+ throw new DataSourceExecutionError({
75
+ code: DataSourceErrorCode.TableNotFound,
76
+ message: `unsupported datasource table: ${tableName}`,
77
+ });
78
+ }
79
+ }
80
+ }
81
+ export function queryWithRowLimit(query, rowLimit) {
82
+ const normalized = trimSql(query);
83
+ const limit = Math.trunc(rowLimit ?? 0);
84
+ if (limit <= 0) {
85
+ return normalized;
86
+ }
87
+ return `SELECT * FROM (${normalized}) AS datasource_query LIMIT ${limit}`;
88
+ }
89
+ export class DataSourceByteLimitTracker {
90
+ byteLimit;
91
+ sentBytes = 0;
92
+ constructor(byteLimit) {
93
+ this.byteLimit = byteLimit;
94
+ }
95
+ reserve(size) {
96
+ const limit = Math.trunc(this.byteLimit ?? 0);
97
+ if (limit <= 0) {
98
+ return;
99
+ }
100
+ this.sentBytes += size;
101
+ if (this.sentBytes > limit) {
102
+ throw new DataSourceExecutionError({
103
+ code: DataSourceErrorCode.LimitExceeded,
104
+ message: "datasource query byte limit exceeded",
105
+ });
106
+ }
107
+ }
108
+ }
109
+ function trimSql(query) {
110
+ return query.trim().replace(/;+$/, "").trim();
111
+ }
112
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/datasource/policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { DataSourceTableConfig } from "./policy.js";
2
+ import { type DataSourceQueryExecutor, type ExecuteQueryRequest, type QueryChunkSink } from "./types.js";
3
+ export interface PostgresPoolLike {
4
+ connect(): Promise<PostgresClientLike>;
5
+ end?(): Promise<void>;
6
+ }
7
+ export interface PostgresClientLike {
8
+ query(query: unknown, values?: unknown[]): unknown;
9
+ release(error?: unknown): void;
10
+ }
11
+ export interface PostgresDataSourceConfig {
12
+ sources: readonly PostgresDataSourceSourceConfig[];
13
+ defaultBatchSize?: number;
14
+ }
15
+ export interface PostgresDataSourceSourceConfig {
16
+ sourceId: string;
17
+ pool?: PostgresPoolLike;
18
+ connectionString?: string;
19
+ connectionStringEnv?: string;
20
+ tables?: readonly DataSourceTableConfig[];
21
+ batchSize?: number;
22
+ }
23
+ export declare function createPostgresDataSourceExecutor(config: PostgresDataSourceConfig): PostgresDataSourceExecutor;
24
+ export declare class PostgresDataSourceExecutor implements DataSourceQueryExecutor {
25
+ private readonly sources;
26
+ private readonly ownedPools;
27
+ constructor(config: PostgresDataSourceConfig);
28
+ executeQuery(request: ExecuteQueryRequest, sink: QueryChunkSink): Promise<void>;
29
+ close(): Promise<void>;
30
+ private poolForSource;
31
+ }
32
+ //# sourceMappingURL=postgres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/datasource/postgres.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAGL,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,gBAAgB;IAC/B,OAAO,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACvC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACnD,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,SAAS,8BAA8B,EAAE,CAAC;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,wBAAwB,GAC/B,0BAA0B,CAE5B;AAED,qBAAa,0BAA2B,YAAW,uBAAuB;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqD;IAC7E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuC;gBAEtD,MAAM,EAAE,wBAAwB;IAatC,YAAY,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA4E/E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAQd,aAAa;CAsB5B"}
@@ -0,0 +1,234 @@
1
+ import { writeRowsAsArrowIpcBatch } from "./arrow.js";
2
+ import { DataSourceByteLimitTracker, queryWithRowLimit, validateReadOnlyQuery } from "./policy.js";
3
+ import { DataSourceErrorCode, DataSourceExecutionError, } from "./types.js";
4
+ const defaultBatchSize = 1024;
5
+ export function createPostgresDataSourceExecutor(config) {
6
+ return new PostgresDataSourceExecutor(config);
7
+ }
8
+ export class PostgresDataSourceExecutor {
9
+ sources = new Map();
10
+ ownedPools = new Map();
11
+ constructor(config) {
12
+ if (config.sources.length === 0) {
13
+ throw new Error("at least one PostgreSQL datasource source is required");
14
+ }
15
+ for (const source of config.sources) {
16
+ const normalized = normalizeSource(source, config.defaultBatchSize);
17
+ if (this.sources.has(normalized.sourceId)) {
18
+ throw new Error(`duplicate datasource source_id: ${normalized.sourceId}`);
19
+ }
20
+ this.sources.set(normalized.sourceId, normalized);
21
+ }
22
+ }
23
+ async executeQuery(request, sink) {
24
+ const req = normalizeRequest(request);
25
+ const source = this.sources.get(req.sourceId);
26
+ if (!source) {
27
+ throw new DataSourceExecutionError({
28
+ code: DataSourceErrorCode.SourceNotFound,
29
+ message: `unknown datasource source_id: ${req.sourceId}`,
30
+ });
31
+ }
32
+ validateReadOnlyQuery(req.query, [], source.tables ?? []);
33
+ const pool = await this.poolForSource(source);
34
+ const client = await pool.connect();
35
+ let queryStream;
36
+ let committed = false;
37
+ try {
38
+ await promiseQuery(client, "BEGIN READ ONLY");
39
+ if ((req.timeoutMs ?? 0) > 0) {
40
+ await promiseQuery(client, `SET LOCAL statement_timeout = ${Math.trunc(req.timeoutMs ?? 0)}`);
41
+ }
42
+ const QueryStream = await loadQueryStream();
43
+ queryStream = new QueryStream(queryWithRowLimit(req.query, req.rowLimit), [], {
44
+ batchSize: source.batchSize,
45
+ highWaterMark: source.batchSize,
46
+ rowMode: "array",
47
+ });
48
+ const stream = client.query(queryStream);
49
+ const startedAt = Date.now();
50
+ const byteLimit = new DataSourceByteLimitTracker(req.byteLimit);
51
+ const batch = [];
52
+ let rowCount = 0;
53
+ let schemaSent = false;
54
+ for await (const row of stream) {
55
+ batch.push(row);
56
+ rowCount++;
57
+ if (batch.length >= source.batchSize) {
58
+ schemaSent = flushBatch(sink, queryStream, batch, schemaSent, byteLimit);
59
+ batch.length = 0;
60
+ }
61
+ }
62
+ if (batch.length > 0) {
63
+ schemaSent = flushBatch(sink, queryStream, batch, schemaSent, byteLimit);
64
+ }
65
+ if (!schemaSent) {
66
+ const fields = fieldsFromQueryStream(queryStream);
67
+ if (fields.length > 0) {
68
+ writeRowsAsArrowIpcBatch(sink, fields, [], {
69
+ sendSchema: true,
70
+ byteLimit,
71
+ });
72
+ }
73
+ }
74
+ await promiseQuery(client, "COMMIT");
75
+ committed = true;
76
+ sink.send({
77
+ result: { rowCount, limitExceeded: false, executionMs: Date.now() - startedAt },
78
+ });
79
+ }
80
+ catch (error) {
81
+ queryStream?.destroy?.(error);
82
+ if (!committed) {
83
+ await rollback(client);
84
+ }
85
+ throw toPostgresDataSourceError(error);
86
+ }
87
+ finally {
88
+ client.release();
89
+ }
90
+ }
91
+ async close() {
92
+ const pools = [...this.ownedPools.values()];
93
+ this.ownedPools.clear();
94
+ for (const pool of pools) {
95
+ await pool.end?.();
96
+ }
97
+ }
98
+ async poolForSource(source) {
99
+ if (source.pool) {
100
+ return source.pool;
101
+ }
102
+ const existing = this.ownedPools.get(source.sourceId);
103
+ if (existing) {
104
+ return existing;
105
+ }
106
+ const connectionString = source.connectionString ??
107
+ (source.connectionStringEnv ? process.env[source.connectionStringEnv] : undefined);
108
+ if (!connectionString?.trim()) {
109
+ throw new DataSourceExecutionError({
110
+ code: DataSourceErrorCode.Unavailable,
111
+ message: `PostgreSQL connection string is required for source_id ${source.sourceId}`,
112
+ });
113
+ }
114
+ const pg = await loadPg();
115
+ const pool = new pg.Pool({ connectionString });
116
+ this.ownedPools.set(source.sourceId, pool);
117
+ return pool;
118
+ }
119
+ }
120
+ function flushBatch(sink, queryStream, rows, schemaAlreadySent, byteLimit) {
121
+ const fields = fieldsFromQueryStream(queryStream);
122
+ if (fields.length === 0) {
123
+ throw new Error("PostgreSQL query fields are missing");
124
+ }
125
+ const result = writeRowsAsArrowIpcBatch(sink, fields, rows, {
126
+ sendSchema: !schemaAlreadySent,
127
+ byteLimit,
128
+ });
129
+ return schemaAlreadySent || result.schemaSent;
130
+ }
131
+ function normalizeSource(source, defaultBatchSize) {
132
+ const sourceId = source.sourceId.trim();
133
+ if (!sourceId) {
134
+ throw new Error("source_id is required");
135
+ }
136
+ return {
137
+ ...source,
138
+ sourceId,
139
+ batchSize: positiveInt(source.batchSize ?? defaultBatchSize, defaultBatchSize),
140
+ };
141
+ }
142
+ function positiveInt(value, fallback = defaultBatchSize) {
143
+ if (value === undefined || value <= 0) {
144
+ return fallback > 0 ? fallback : defaultBatchSize;
145
+ }
146
+ return Math.trunc(value);
147
+ }
148
+ function normalizeRequest(request) {
149
+ return {
150
+ sourceId: request.sourceId?.trim() ?? "",
151
+ query: request.query?.trim() ?? "",
152
+ rowLimit: request.rowLimit,
153
+ byteLimit: request.byteLimit,
154
+ timeoutMs: request.timeoutMs,
155
+ };
156
+ }
157
+ function fieldsFromQueryStream(queryStream) {
158
+ const fields = queryStream._result?.fields ?? [];
159
+ return fields.map((field) => ({
160
+ name: field.name,
161
+ dataTypeID: field.dataTypeID,
162
+ nullable: true,
163
+ }));
164
+ }
165
+ async function promiseQuery(client, query) {
166
+ await client.query(query);
167
+ }
168
+ async function rollback(client) {
169
+ try {
170
+ await promiseQuery(client, "ROLLBACK");
171
+ }
172
+ catch {
173
+ // Preserve the original query failure.
174
+ }
175
+ }
176
+ function toPostgresDataSourceError(error) {
177
+ if (error instanceof DataSourceExecutionError) {
178
+ return error;
179
+ }
180
+ if (error instanceof Error) {
181
+ const upstream = {
182
+ engine: "postgresql",
183
+ message: error.message,
184
+ };
185
+ const code = errorCode(error);
186
+ if (code) {
187
+ upstream.code = code;
188
+ }
189
+ return new DataSourceExecutionError({
190
+ code: DataSourceErrorCode.ExternalError,
191
+ message: "PostgreSQL datasource query failed",
192
+ upstream,
193
+ cause: error,
194
+ });
195
+ }
196
+ return error;
197
+ }
198
+ function errorCode(error) {
199
+ const code = error.code;
200
+ return typeof code === "string" ? code : undefined;
201
+ }
202
+ async function loadPg() {
203
+ try {
204
+ return (await importOptionalModule("pg"));
205
+ }
206
+ catch (error) {
207
+ throw new DataSourceExecutionError({
208
+ code: DataSourceErrorCode.Unavailable,
209
+ message: `pg is required for PostgreSQL datasource execution: ${errorMessage(error)}`,
210
+ cause: error,
211
+ });
212
+ }
213
+ }
214
+ async function loadQueryStream() {
215
+ try {
216
+ const mod = (await importOptionalModule("pg-query-stream"));
217
+ return mod.default;
218
+ }
219
+ catch (error) {
220
+ throw new DataSourceExecutionError({
221
+ code: DataSourceErrorCode.Unavailable,
222
+ message: `pg-query-stream is required for PostgreSQL datasource streaming: ${errorMessage(error)}`,
223
+ cause: error,
224
+ });
225
+ }
226
+ }
227
+ async function importOptionalModule(specifier) {
228
+ const mod = await import(specifier);
229
+ return mod;
230
+ }
231
+ function errorMessage(error) {
232
+ return error instanceof Error ? error.message : String(error);
233
+ }
234
+ //# sourceMappingURL=postgres.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/datasource/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAmB,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEnG,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GAIzB,MAAM,YAAY,CAAC;AAEpB,MAAM,gBAAgB,GAAG,IAAI,CAAC;AA+B9B,MAAM,UAAU,gCAAgC,CAC9C,MAAgC;IAEhC,OAAO,IAAI,0BAA0B,CAAC,MAAM,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,OAAO,0BAA0B;IACpB,OAAO,GAAG,IAAI,GAAG,EAA0C,CAAC;IAC5D,UAAU,GAAG,IAAI,GAAG,EAA4B,CAAC;IAElE,YAAY,MAAgC;QAC1C,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACpE,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,mCAAmC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5E,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAA4B,EAAE,IAAoB;QACnE,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,wBAAwB,CAAC;gBACjC,IAAI,EAAE,mBAAmB,CAAC,cAAc;gBACxC,OAAO,EAAE,iCAAiC,GAAG,CAAC,QAAQ,EAAE;aACzD,CAAC,CAAC;QACL,CAAC;QACD,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAE1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,WAAwC,CAAC;QAC7C,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;YAC9C,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,YAAY,CAChB,MAAM,EACN,iCAAiC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE,CAClE,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,eAAe,EAAE,CAAC;YAC5C,WAAW,GAAG,IAAI,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE;gBAC5E,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,aAAa,EAAE,MAAM,CAAC,SAAS;gBAC/B,OAAO,EAAE,OAAO;aACjB,CAAoB,CAAC;YAEtB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAsC,CAAC;YAC9E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,IAAI,0BAA0B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAChE,MAAM,KAAK,GAA2B,EAAE,CAAC;YACzC,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,UAAU,GAAG,KAAK,CAAC;YAEvB,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;gBAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChB,QAAQ,EAAE,CAAC;gBACX,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACrC,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;oBACzE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,MAAM,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;gBAClD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;wBACzC,UAAU,EAAE,IAAI;wBAChB,SAAS;qBACV,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACrC,SAAS,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC;gBACR,MAAM,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE;aAChF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YACD,MAAM,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAAsC;QAChE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,gBAAgB,GACpB,MAAM,CAAC,gBAAgB;YACvB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACrF,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,EAAE,CAAC;YAC9B,MAAM,IAAI,wBAAwB,CAAC;gBACjC,IAAI,EAAE,mBAAmB,CAAC,WAAW;gBACrC,OAAO,EAAE,0DAA0D,MAAM,CAAC,QAAQ,EAAE;aACrF,CAAC,CAAC;QACL,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,SAAS,UAAU,CACjB,IAAoB,EACpB,WAA4B,EAC5B,IAAqC,EACrC,iBAA0B,EAC1B,SAAqC;IAErC,MAAM,MAAM,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAC1D,UAAU,EAAE,CAAC,iBAAiB;QAC9B,SAAS;KACV,CAAC,CAAC;IACH,OAAO,iBAAiB,IAAI,MAAM,CAAC,UAAU,CAAC;AAChD,CAAC;AAED,SAAS,eAAe,CACtB,MAAsC,EACtC,gBAAoC;IAEpC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO;QACL,GAAG,MAAM;QACT,QAAQ;QACR,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,SAAS,IAAI,gBAAgB,EAAE,gBAAgB,CAAC;KAC/E,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAyB,EAAE,QAAQ,GAAG,gBAAgB;IACzE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACpD,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAUD,SAAS,gBAAgB,CAAC,OAA4B;IACpD,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE;QACxC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;QAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,WAA4B;IACzD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC;IACjD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC,CAAC;AACN,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,MAA0B,EAAE,KAAa;IACnE,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,MAA0B;IAChD,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAc;IAC/C,IAAI,KAAK,YAAY,wBAAwB,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAuD;YACnE,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC;QACF,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,IAAI,EAAE,CAAC;YACT,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,OAAO,IAAI,wBAAwB,CAAC;YAClC,IAAI,EAAE,mBAAmB,CAAC,aAAa;YACvC,OAAO,EAAE,oCAAoC;YAC7C,QAAQ;YACR,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS,CAAC,KAAY;IAC7B,MAAM,IAAI,GAAI,KAA4B,CAAC,IAAI,CAAC;IAChD,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACrD,CAAC;AAwBD,KAAK,UAAU,MAAM;IACnB,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAa,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,wBAAwB,CAAC;YACjC,IAAI,EAAE,mBAAmB,CAAC,WAAW;YACrC,OAAO,EAAE,uDAAuD,YAAY,CAAC,KAAK,CAAC,EAAE;YACrF,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,CAAC,MAAM,oBAAoB,CAAC,iBAAiB,CAAC,CAEzD,CAAC;QACF,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,wBAAwB,CAAC;YACjC,IAAI,EAAE,mBAAmB,CAAC,WAAW;YACrC,OAAO,EAAE,oEAAoE,YAAY,CACvF,KAAK,CACN,EAAE;YACH,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,SAAiB;IACnD,MAAM,GAAG,GAAY,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { type ArrowColumn, type ArrowRow } from "./arrow.js";
2
- import type { ExecuteQueryHandler } from "./types.js";
2
+ import type { ExecuteQueryContext, ExecuteQueryHandler } from "./types.js";
3
3
  export interface RowQueryHandlerOptions {
4
4
  batchSize?: number;
5
5
  }
6
6
  export type RowSource = Iterable<ArrowRow> | AsyncIterable<ArrowRow>;
7
- export type RowReader = (query: string, request: Parameters<ExecuteQueryHandler>[0]) => RowSource | Promise<RowSource>;
7
+ export type RowReader = (query: string, request: Parameters<ExecuteQueryHandler>[0], context?: ExecuteQueryContext) => RowSource | Promise<RowSource>;
8
8
  export declare function createRowQueryHandler(columns: ArrowColumn[], reader: RowReader, options?: RowQueryHandlerOptions): ExecuteQueryHandler;
9
9
  export interface PostgresLikeClient {
10
10
  query(query: string): Promise<{