@channel.io/app-sdk-server 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/datasource.test.d.ts +2 -0
- package/dist/__tests__/datasource.test.d.ts.map +1 -0
- package/dist/__tests__/datasource.test.js +152 -0
- package/dist/__tests__/datasource.test.js.map +1 -0
- package/dist/__tests__/testing-utils.test.js +1 -1
- package/dist/__tests__/testing-utils.test.js.map +1 -1
- package/dist/datasource/arrow.d.ts +10 -0
- package/dist/datasource/arrow.d.ts.map +1 -0
- package/dist/datasource/arrow.js +37 -0
- package/dist/datasource/arrow.js.map +1 -0
- package/dist/datasource/grpc.d.ts +28 -0
- package/dist/datasource/grpc.d.ts.map +1 -0
- package/dist/datasource/grpc.js +286 -0
- package/dist/datasource/grpc.js.map +1 -0
- package/dist/datasource/index.d.ts +5 -0
- package/dist/datasource/index.d.ts.map +1 -0
- package/dist/datasource/index.js +5 -0
- package/dist/datasource/index.js.map +1 -0
- package/dist/datasource/query-handlers.d.ts +32 -0
- package/dist/datasource/query-handlers.d.ts.map +1 -0
- package/dist/datasource/query-handlers.js +58 -0
- package/dist/datasource/query-handlers.js.map +1 -0
- package/dist/datasource/types.d.ts +117 -0
- package/dist/datasource/types.d.ts.map +1 -0
- package/dist/datasource/types.js +20 -0
- package/dist/datasource/types.js.map +1 -0
- package/dist/decorators/extension-names.d.ts +1 -1
- package/dist/decorators/extension-names.d.ts.map +1 -1
- package/dist/decorators/extension-names.js +2 -0
- package/dist/decorators/extension-names.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/nestjs/channel-app.controller.d.ts +2 -2
- package/dist/nestjs/channel-app.controller.d.ts.map +1 -1
- package/dist/nestjs/channel-app.controller.js.map +1 -1
- package/package.json +7 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datasource.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/datasource.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import * as grpc from "@grpc/grpc-js";
|
|
3
|
+
import { createBigQueryQueryHandler, createDataSourceGrpcServer, createPostgresQueryHandler, createRowQueryHandler, DataSourceErrorCode, DataSourceServiceDefinition, } from "../datasource/index.js";
|
|
4
|
+
describe("datasource query handlers", () => {
|
|
5
|
+
it("streams rows as Arrow chunks and a result chunk", async () => {
|
|
6
|
+
const chunks = [];
|
|
7
|
+
const handler = createRowQueryHandler([{ name: "order_id", type: "STRING" }], async () => [
|
|
8
|
+
{ order_id: "o-1" },
|
|
9
|
+
]);
|
|
10
|
+
await handler({ session: { channelId: "channel-1" }, sourceId: "bigquery", query: "select 1" }, {
|
|
11
|
+
send: (chunk) => chunks.push(chunk),
|
|
12
|
+
});
|
|
13
|
+
expect(chunks).toHaveLength(2);
|
|
14
|
+
expect(chunks[0]).toMatchObject({ arrow: {} });
|
|
15
|
+
expect(chunks[1]).toMatchObject({ result: { rowCount: 1 } });
|
|
16
|
+
});
|
|
17
|
+
it("streams async iterable rows in batches", async () => {
|
|
18
|
+
const chunks = [];
|
|
19
|
+
const handler = createRowQueryHandler([{ name: "order_id", type: "STRING" }], async function* () {
|
|
20
|
+
yield { order_id: "o-1" };
|
|
21
|
+
yield { order_id: "o-2" };
|
|
22
|
+
}, { batchSize: 1 });
|
|
23
|
+
await handler({ session: { channelId: "channel-1" }, sourceId: "bigquery", query: "select 1" }, {
|
|
24
|
+
send: (chunk) => chunks.push(chunk),
|
|
25
|
+
});
|
|
26
|
+
expect(chunks).toHaveLength(3);
|
|
27
|
+
expect(chunks[2]).toMatchObject({ result: { rowCount: 2 } });
|
|
28
|
+
});
|
|
29
|
+
it("supports pg-like clients", async () => {
|
|
30
|
+
const chunks = [];
|
|
31
|
+
const handler = createPostgresQueryHandler({
|
|
32
|
+
query: async () => ({ rows: [{ id: 1 }] }),
|
|
33
|
+
}, [{ name: "id", type: "INT64" }]);
|
|
34
|
+
await handler({ session: { channelId: "channel-1" }, sourceId: "postgresql", query: "select 1" }, {
|
|
35
|
+
send: (chunk) => chunks.push(chunk),
|
|
36
|
+
});
|
|
37
|
+
expect(chunks[1]).toMatchObject({ result: { rowCount: 1 } });
|
|
38
|
+
});
|
|
39
|
+
it("supports bigquery-like clients", async () => {
|
|
40
|
+
const chunks = [];
|
|
41
|
+
const handler = createBigQueryQueryHandler({
|
|
42
|
+
query: async () => [[{ id: "o-1" }]],
|
|
43
|
+
}, [{ name: "id", type: "STRING" }]);
|
|
44
|
+
await handler({ session: { channelId: "channel-1" }, sourceId: "bigquery", query: "select 1" }, {
|
|
45
|
+
send: (chunk) => chunks.push(chunk),
|
|
46
|
+
});
|
|
47
|
+
expect(chunks[1]).toMatchObject({ result: { rowCount: 1 } });
|
|
48
|
+
});
|
|
49
|
+
it("prefers BigQuery query streams when available", async () => {
|
|
50
|
+
const chunks = [];
|
|
51
|
+
const handler = createBigQueryQueryHandler({
|
|
52
|
+
query: async () => {
|
|
53
|
+
throw new Error("query should not be used when createQueryStream exists");
|
|
54
|
+
},
|
|
55
|
+
async *createQueryStream() {
|
|
56
|
+
yield { id: "o-1" };
|
|
57
|
+
},
|
|
58
|
+
}, [{ name: "id", type: "STRING" }]);
|
|
59
|
+
await handler({ session: { channelId: "channel-1" }, sourceId: "bigquery", query: "select 1" }, {
|
|
60
|
+
send: (chunk) => chunks.push(chunk),
|
|
61
|
+
});
|
|
62
|
+
expect(chunks[1]).toMatchObject({ result: { rowCount: 1 } });
|
|
63
|
+
});
|
|
64
|
+
it("serves ExecuteQuery over grpc", async () => {
|
|
65
|
+
const server = createDataSourceGrpcServer({
|
|
66
|
+
executeQuery: createRowQueryHandler([{ name: "id", type: "STRING" }], () => [
|
|
67
|
+
{ id: "o-1" },
|
|
68
|
+
]),
|
|
69
|
+
}, { allowedSources: ["bigquery"] });
|
|
70
|
+
const address = await bind(server);
|
|
71
|
+
const client = createClient(address);
|
|
72
|
+
try {
|
|
73
|
+
const chunks = await collectExecuteQuery(client, {
|
|
74
|
+
session: { channelId: "channel-1" },
|
|
75
|
+
sourceId: "bigquery",
|
|
76
|
+
query: "select 1",
|
|
77
|
+
});
|
|
78
|
+
expect(chunks).toHaveLength(2);
|
|
79
|
+
expect(chunks[0]?.arrow?.dataBody?.byteLength).toBeGreaterThan(0);
|
|
80
|
+
expect(chunks[1]).toMatchObject({ result: { rowCount: 1 } });
|
|
81
|
+
}
|
|
82
|
+
finally {
|
|
83
|
+
client.close();
|
|
84
|
+
await forceShutdown(server);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
it("returns terminal error chunks and grpc status", async () => {
|
|
88
|
+
const server = createDataSourceGrpcServer({
|
|
89
|
+
executeQuery: createRowQueryHandler([{ name: "id", type: "STRING" }], () => [
|
|
90
|
+
{ id: "o-1" },
|
|
91
|
+
]),
|
|
92
|
+
}, { allowedSources: ["bigquery"] });
|
|
93
|
+
const address = await bind(server);
|
|
94
|
+
const client = createClient(address);
|
|
95
|
+
try {
|
|
96
|
+
const result = await collectExecuteQueryFailure(client, {
|
|
97
|
+
session: { channelId: "channel-1" },
|
|
98
|
+
sourceId: "postgresql",
|
|
99
|
+
query: "select 1",
|
|
100
|
+
});
|
|
101
|
+
expect(result.chunks[0]).toMatchObject({
|
|
102
|
+
error: { code: DataSourceErrorCode.SourceNotFound },
|
|
103
|
+
});
|
|
104
|
+
expect(result.error.code).toBe(grpc.status.NOT_FOUND);
|
|
105
|
+
}
|
|
106
|
+
finally {
|
|
107
|
+
client.close();
|
|
108
|
+
await forceShutdown(server);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
it("exports datasource error codes", () => {
|
|
112
|
+
expect(DataSourceErrorCode.SourceNotFound).toBe(4);
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
function bind(server) {
|
|
116
|
+
return new Promise((resolve, reject) => {
|
|
117
|
+
server.bindAsync("127.0.0.1:0", grpc.ServerCredentials.createInsecure(), (error, port) => {
|
|
118
|
+
if (error) {
|
|
119
|
+
reject(error);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
resolve(`127.0.0.1:${port}`);
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
function createClient(address) {
|
|
127
|
+
const Client = grpc.makeGenericClientConstructor(DataSourceServiceDefinition, "DataSourceService");
|
|
128
|
+
return new Client(address, grpc.credentials.createInsecure());
|
|
129
|
+
}
|
|
130
|
+
function collectExecuteQuery(client, request) {
|
|
131
|
+
return new Promise((resolve, reject) => {
|
|
132
|
+
const chunks = [];
|
|
133
|
+
const stream = client.ExecuteQuery(request);
|
|
134
|
+
stream.on("data", (chunk) => chunks.push(chunk));
|
|
135
|
+
stream.on("error", reject);
|
|
136
|
+
stream.on("end", () => resolve(chunks));
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
function collectExecuteQueryFailure(client, request) {
|
|
140
|
+
return new Promise((resolve, reject) => {
|
|
141
|
+
const chunks = [];
|
|
142
|
+
const stream = client.ExecuteQuery(request);
|
|
143
|
+
stream.on("data", (chunk) => chunks.push(chunk));
|
|
144
|
+
stream.on("error", (error) => resolve({ chunks, error }));
|
|
145
|
+
stream.on("end", () => reject(new Error("expected ExecuteQuery to fail")));
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
function forceShutdown(server) {
|
|
149
|
+
server.forceShutdown();
|
|
150
|
+
return Promise.resolve();
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=datasource.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datasource.test.js","sourceRoot":"","sources":["../../src/__tests__/datasource.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,IAAI,MAAM,eAAe,CAAC;AACtC,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EACnB,2BAA2B,GAE5B,MAAM,wBAAwB,CAAC;AAEhC,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,qBAAqB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;YACxF,EAAE,QAAQ,EAAE,KAAK,EAAE;SACpB,CAAC,CAAC;QAEH,MAAM,OAAO,CACX,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,EAChF;YACE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SACpC,CACF,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,qBAAqB,CACnC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EACtC,KAAK,SAAS,CAAC;YACb,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YAC1B,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC,EACD,EAAE,SAAS,EAAE,CAAC,EAAE,CACjB,CAAC;QAEF,MAAM,OAAO,CACX,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,EAChF;YACE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SACpC,CACF,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,0BAA0B,CACxC;YACE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;SAC3C,EACD,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAChC,CAAC;QAEF,MAAM,OAAO,CACX,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,EAClF;YACE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SACpC,CACF,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,0BAA0B,CACxC;YACE,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;SACrC,EACD,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CACjC,CAAC;QAEF,MAAM,OAAO,CACX,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,EAChF;YACE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SACpC,CACF,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,MAAM,GAAc,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,0BAA0B,CACxC;YACE,KAAK,EAAE,KAAK,IAAI,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;YAC5E,CAAC;YACD,KAAK,CAAC,CAAC,iBAAiB;gBACtB,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;YACtB,CAAC;SACF,EACD,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CACjC,CAAC;QAEF,MAAM,OAAO,CACX,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,EAChF;YACE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SACpC,CACF,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,MAAM,GAAG,0BAA0B,CACvC;YACE,YAAY,EAAE,qBAAqB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;gBAC1E,EAAE,EAAE,EAAE,KAAK,EAAE;aACd,CAAC;SACH,EACD,EAAE,cAAc,EAAE,CAAC,UAAU,CAAC,EAAE,CACjC,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE;gBAC/C,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE;gBACnC,QAAQ,EAAE,UAAU;gBACpB,KAAK,EAAE,UAAU;aAClB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAClE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;QAC7D,MAAM,MAAM,GAAG,0BAA0B,CACvC;YACE,YAAY,EAAE,qBAAqB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;gBAC1E,EAAE,EAAE,EAAE,KAAK,EAAE;aACd,CAAC;SACH,EACD,EAAE,cAAc,EAAE,CAAC,UAAU,CAAC,EAAE,CACjC,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,MAAM,EAAE;gBACtD,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE;gBACnC,QAAQ,EAAE,YAAY;gBACtB,KAAK,EAAE,UAAU;aAClB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;gBACrC,KAAK,EAAE,EAAE,IAAI,EAAE,mBAAmB,CAAC,cAAc,EAAE;aACpD,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACxD,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,SAAS,IAAI,CAAC,MAAmB;IAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACvF,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,OAAO;YACT,CAAC;YACD,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IAGnC,MAAM,MAAM,GAAG,IAAI,CAAC,4BAA4B,CAC9C,2BAA2B,EAC3B,mBAAmB,CACpB,CAAC;IACF,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAE3D,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAuC,EACvC,OAAgB;IAEhB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,0BAA0B,CACjC,MAAuC,EACvC,OAAgB;IAEhB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAwB,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,MAAmB;IACxC,MAAM,CAAC,aAAa,EAAE,CAAC;IACvB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -15,7 +15,7 @@ import "reflect-metadata";
|
|
|
15
15
|
import { z } from "zod";
|
|
16
16
|
import { Extension, Func, Ctx, Input, InputSchema, OutputSchema, Description, } from "../decorators/index.js";
|
|
17
17
|
import { createMockContext, createTestExtension } from "../testing/index.js";
|
|
18
|
-
import { OnMediumMessageCreatedInputSchema, } from "
|
|
18
|
+
import { OnMediumMessageCreatedInputSchema, } from "../../../core/src/index.js";
|
|
19
19
|
// Test extension for testing utilities
|
|
20
20
|
const TestInputSchema = z.object({
|
|
21
21
|
name: z.string(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing-utils.test.js","sourceRoot":"","sources":["../../src/__tests__/testing-utils.test.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,SAAS,EACT,IAAI,EACJ,GAAG,EACH,KAAK,EACL,WAAW,EACX,YAAY,EACZ,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EACL,iCAAiC,GAGlC,MAAM,
|
|
1
|
+
{"version":3,"file":"testing-utils.test.js","sourceRoot":"","sources":["../../src/__tests__/testing-utils.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { QueryChunk } from "./types.js";
|
|
2
|
+
export interface ArrowColumn {
|
|
3
|
+
name: string;
|
|
4
|
+
type?: string;
|
|
5
|
+
}
|
|
6
|
+
export type ArrowRow = Record<string, unknown>;
|
|
7
|
+
export declare function encodeRowsToArrowIPC(columns: ArrowColumn[], rows: ArrowRow[]): Uint8Array;
|
|
8
|
+
export declare function arrowRowsChunk(columns: ArrowColumn[], rows: ArrowRow[]): QueryChunk;
|
|
9
|
+
export declare function resultChunk(rowCount: number, limitExceeded?: boolean, executionMs?: number): QueryChunk;
|
|
10
|
+
//# sourceMappingURL=arrow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrow.d.ts","sourceRoot":"","sources":["../../src/datasource/arrow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE/C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,UAAU,CAUzF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,UAAU,CAMnF;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,UAAQ,EAAE,WAAW,SAAI,GAAG,UAAU,CAQhG"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { tableFromArrays, tableToIPC } from "apache-arrow";
|
|
2
|
+
export function encodeRowsToArrowIPC(columns, rows) {
|
|
3
|
+
if (columns.length === 0) {
|
|
4
|
+
throw new Error("columns are required");
|
|
5
|
+
}
|
|
6
|
+
const arrays = {};
|
|
7
|
+
for (const column of columns) {
|
|
8
|
+
arrays[column.name] = rows.map((row) => normalizeValue(row[column.name]));
|
|
9
|
+
}
|
|
10
|
+
return tableToIPC(tableFromArrays(arrays), "stream");
|
|
11
|
+
}
|
|
12
|
+
export function arrowRowsChunk(columns, rows) {
|
|
13
|
+
return {
|
|
14
|
+
arrow: {
|
|
15
|
+
dataBody: encodeRowsToArrowIPC(columns, rows),
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export function resultChunk(rowCount, limitExceeded = false, executionMs = 0) {
|
|
20
|
+
return {
|
|
21
|
+
result: {
|
|
22
|
+
rowCount,
|
|
23
|
+
limitExceeded,
|
|
24
|
+
executionMs,
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function normalizeValue(value) {
|
|
29
|
+
if (value instanceof Date) {
|
|
30
|
+
return value.toISOString();
|
|
31
|
+
}
|
|
32
|
+
if (typeof value === "bigint") {
|
|
33
|
+
return Number(value);
|
|
34
|
+
}
|
|
35
|
+
return value;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=arrow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrow.js","sourceRoot":"","sources":["../../src/datasource/arrow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAU3D,MAAM,UAAU,oBAAoB,CAAC,OAAsB,EAAE,IAAgB;IAC3E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAsB,EAAE,IAAgB;IACrE,OAAO;QACL,KAAK,EAAE;YACL,QAAQ,EAAE,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC;SAC9C;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,aAAa,GAAG,KAAK,EAAE,WAAW,GAAG,CAAC;IAClF,OAAO;QACL,MAAM,EAAE;YACN,QAAQ;YACR,aAAa;YACb,WAAW;SACZ;KACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as grpc from "@grpc/grpc-js";
|
|
2
|
+
import { DataSourceErrorCode, type DataSourceError, type DataSourceGrpcOptions, type DataSourceServiceHandlers, type ExecuteQueryRequest, type QueryChunk } from "./types.js";
|
|
3
|
+
declare const serviceName = "io.channel.datasource.v1.DataSourceService";
|
|
4
|
+
export declare const DataSourceServiceDefinition: {
|
|
5
|
+
ListTables: grpc.MethodDefinition<unknown, unknown>;
|
|
6
|
+
DescribeTable: grpc.MethodDefinition<unknown, unknown>;
|
|
7
|
+
SearchTables: grpc.MethodDefinition<unknown, unknown>;
|
|
8
|
+
ExecuteQuery: {
|
|
9
|
+
path: string;
|
|
10
|
+
requestStream: false;
|
|
11
|
+
responseStream: true;
|
|
12
|
+
requestSerialize: grpc.serialize<unknown>;
|
|
13
|
+
requestDeserialize: grpc.deserialize<ExecuteQueryRequest>;
|
|
14
|
+
responseSerialize: grpc.serialize<unknown>;
|
|
15
|
+
responseDeserialize: grpc.deserialize<QueryChunk>;
|
|
16
|
+
originalName: string;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export declare function createDataSourceGrpcServer(handlers: DataSourceServiceHandlers, options?: DataSourceGrpcOptions): grpc.Server;
|
|
20
|
+
export declare function addDataSourceService(server: grpc.Server, handlers: DataSourceServiceHandlers, options?: DataSourceGrpcOptions): void;
|
|
21
|
+
export declare function arrowChunk(dataBody: Uint8Array, dataHeader?: Uint8Array): QueryChunk;
|
|
22
|
+
export declare function errorChunk(code: DataSourceErrorCode, message: string, options?: {
|
|
23
|
+
retryable?: boolean;
|
|
24
|
+
upstream?: DataSourceError["upstream"];
|
|
25
|
+
}): QueryChunk;
|
|
26
|
+
export declare function toErrorChunk(error: unknown): QueryChunk;
|
|
27
|
+
export { serviceName as DataSourceGrpcServiceName };
|
|
28
|
+
//# sourceMappingURL=grpc.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
import * as grpc from "@grpc/grpc-js";
|
|
2
|
+
import protobuf from "protobufjs";
|
|
3
|
+
import { DataSourceErrorCode, } from "./types.js";
|
|
4
|
+
const datasourceProto = `
|
|
5
|
+
syntax = "proto3";
|
|
6
|
+
package io.channel.datasource.v1;
|
|
7
|
+
|
|
8
|
+
service DataSourceService {
|
|
9
|
+
rpc ListTables(ListTablesRequest) returns (ListTablesResponse);
|
|
10
|
+
rpc DescribeTable(DescribeTableRequest) returns (TableDefinition);
|
|
11
|
+
rpc SearchTables(SearchTablesRequest) returns (SearchTablesResponse);
|
|
12
|
+
rpc ExecuteQuery(ExecuteQueryRequest) returns (stream QueryChunk);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
message SessionContext {
|
|
16
|
+
string account = 1;
|
|
17
|
+
string channel_id = 2;
|
|
18
|
+
optional string kernel_token = 3;
|
|
19
|
+
string team_member_id = 4;
|
|
20
|
+
optional string datasource_token = 5;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
message Table {
|
|
24
|
+
string name = 1;
|
|
25
|
+
string description = 2;
|
|
26
|
+
int64 estimated_row_count = 3;
|
|
27
|
+
int64 updated_at = 4;
|
|
28
|
+
int32 table_type = 5;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
message Column {
|
|
32
|
+
string name = 1;
|
|
33
|
+
string type = 2;
|
|
34
|
+
bool nullable = 3;
|
|
35
|
+
string description = 4;
|
|
36
|
+
bool partition_key = 5;
|
|
37
|
+
int32 precision = 6;
|
|
38
|
+
int32 scale = 7;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
message TableDefinition {
|
|
42
|
+
Table table = 1;
|
|
43
|
+
repeated Column columns = 2;
|
|
44
|
+
repeated string primary_key = 3;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
message ListTablesRequest {
|
|
48
|
+
SessionContext session = 1;
|
|
49
|
+
string source_id = 2;
|
|
50
|
+
optional string table_name_filter_pattern = 3;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
message ListTablesResponse {
|
|
54
|
+
repeated Table tables = 1;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
message DescribeTableRequest {
|
|
58
|
+
SessionContext session = 1;
|
|
59
|
+
string source_id = 2;
|
|
60
|
+
string table = 3;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
message SearchTablesRequest {
|
|
64
|
+
SessionContext session = 1;
|
|
65
|
+
string source_id = 2;
|
|
66
|
+
repeated string queries = 3;
|
|
67
|
+
int32 limit = 4;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
message SearchTablesResponse {
|
|
71
|
+
repeated Table tables = 1;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
message ExecuteQueryRequest {
|
|
75
|
+
SessionContext session = 1;
|
|
76
|
+
string source_id = 2;
|
|
77
|
+
string query = 3;
|
|
78
|
+
int64 row_limit = 4;
|
|
79
|
+
int64 byte_limit = 5;
|
|
80
|
+
int64 timeout_ms = 6;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
message ArrowIpcMessage {
|
|
84
|
+
bytes data_header = 1;
|
|
85
|
+
bytes data_body = 2;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
message QueryChunk {
|
|
89
|
+
oneof payload {
|
|
90
|
+
ArrowIpcMessage arrow = 1;
|
|
91
|
+
QueryResult result = 2;
|
|
92
|
+
DataSourceError error = 3;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
message QueryResult {
|
|
97
|
+
int64 row_count = 1;
|
|
98
|
+
bool limit_exceeded = 2;
|
|
99
|
+
int64 execution_ms = 3;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
message DataSourceError {
|
|
103
|
+
int32 code = 1;
|
|
104
|
+
string message = 2;
|
|
105
|
+
bool retryable = 3;
|
|
106
|
+
UpstreamError upstream = 4;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
message UpstreamError {
|
|
110
|
+
string engine = 1;
|
|
111
|
+
string code = 2;
|
|
112
|
+
string message = 3;
|
|
113
|
+
}
|
|
114
|
+
`;
|
|
115
|
+
const root = protobuf.parse(datasourceProto).root;
|
|
116
|
+
const serviceName = "io.channel.datasource.v1.DataSourceService";
|
|
117
|
+
const servicePath = "/io.channel.datasource.v1.DataSourceService";
|
|
118
|
+
const messageTypes = {
|
|
119
|
+
ListTablesRequest: root.lookupType("io.channel.datasource.v1.ListTablesRequest"),
|
|
120
|
+
ListTablesResponse: root.lookupType("io.channel.datasource.v1.ListTablesResponse"),
|
|
121
|
+
DescribeTableRequest: root.lookupType("io.channel.datasource.v1.DescribeTableRequest"),
|
|
122
|
+
TableDefinition: root.lookupType("io.channel.datasource.v1.TableDefinition"),
|
|
123
|
+
SearchTablesRequest: root.lookupType("io.channel.datasource.v1.SearchTablesRequest"),
|
|
124
|
+
SearchTablesResponse: root.lookupType("io.channel.datasource.v1.SearchTablesResponse"),
|
|
125
|
+
ExecuteQueryRequest: root.lookupType("io.channel.datasource.v1.ExecuteQueryRequest"),
|
|
126
|
+
QueryChunk: root.lookupType("io.channel.datasource.v1.QueryChunk"),
|
|
127
|
+
};
|
|
128
|
+
export const DataSourceServiceDefinition = {
|
|
129
|
+
ListTables: unaryMethod("ListTables", messageTypes.ListTablesRequest, messageTypes.ListTablesResponse),
|
|
130
|
+
DescribeTable: unaryMethod("DescribeTable", messageTypes.DescribeTableRequest, messageTypes.TableDefinition),
|
|
131
|
+
SearchTables: unaryMethod("SearchTables", messageTypes.SearchTablesRequest, messageTypes.SearchTablesResponse),
|
|
132
|
+
ExecuteQuery: {
|
|
133
|
+
path: `${servicePath}/ExecuteQuery`,
|
|
134
|
+
requestStream: false,
|
|
135
|
+
responseStream: true,
|
|
136
|
+
requestSerialize: serializer(messageTypes.ExecuteQueryRequest),
|
|
137
|
+
requestDeserialize: deserializer(messageTypes.ExecuteQueryRequest),
|
|
138
|
+
responseSerialize: serializer(messageTypes.QueryChunk),
|
|
139
|
+
responseDeserialize: deserializer(messageTypes.QueryChunk),
|
|
140
|
+
originalName: "executeQuery",
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
export function createDataSourceGrpcServer(handlers, options = {}) {
|
|
144
|
+
const server = new grpc.Server();
|
|
145
|
+
addDataSourceService(server, handlers, options);
|
|
146
|
+
return server;
|
|
147
|
+
}
|
|
148
|
+
export function addDataSourceService(server, handlers, options = {}) {
|
|
149
|
+
const allowedSources = new Set(options.allowedSources ?? []);
|
|
150
|
+
server.addService(DataSourceServiceDefinition, {
|
|
151
|
+
ListTables: unaryHandler(handlers.listTables),
|
|
152
|
+
DescribeTable: unaryHandler(handlers.describeTable),
|
|
153
|
+
SearchTables: unaryHandler(handlers.searchTables),
|
|
154
|
+
ExecuteQuery: (call) => {
|
|
155
|
+
void handleExecuteQuery(call, handlers, allowedSources);
|
|
156
|
+
},
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
async function handleExecuteQuery(call, handlers, allowedSources) {
|
|
160
|
+
const validationError = validateExecuteQueryRequest(call.request, allowedSources);
|
|
161
|
+
if (validationError) {
|
|
162
|
+
writeTerminalError(call, errorChunk(validationError.code, validationError.message), validationError.status, validationError.message);
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
const sink = {
|
|
166
|
+
send: (chunk) => call.write(chunk),
|
|
167
|
+
};
|
|
168
|
+
try {
|
|
169
|
+
await handlers.executeQuery(call.request, sink);
|
|
170
|
+
call.end();
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
174
|
+
writeTerminalError(call, toErrorChunk(error), grpc.status.UNKNOWN, message);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
export function arrowChunk(dataBody, dataHeader) {
|
|
178
|
+
return {
|
|
179
|
+
arrow: {
|
|
180
|
+
...(dataHeader ? { dataHeader } : {}),
|
|
181
|
+
dataBody,
|
|
182
|
+
},
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
export function errorChunk(code, message, options = {}) {
|
|
186
|
+
return {
|
|
187
|
+
error: {
|
|
188
|
+
code,
|
|
189
|
+
message,
|
|
190
|
+
retryable: options.retryable ?? false,
|
|
191
|
+
...(options.upstream ? { upstream: options.upstream } : {}),
|
|
192
|
+
},
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
export function toErrorChunk(error) {
|
|
196
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
197
|
+
return errorChunk(DataSourceErrorCode.ExternalError, message);
|
|
198
|
+
}
|
|
199
|
+
function unaryMethod(name, requestType, responseType) {
|
|
200
|
+
return {
|
|
201
|
+
path: `${servicePath}/${name}`,
|
|
202
|
+
requestStream: false,
|
|
203
|
+
responseStream: false,
|
|
204
|
+
requestSerialize: serializer(requestType),
|
|
205
|
+
requestDeserialize: deserializer(requestType),
|
|
206
|
+
responseSerialize: serializer(responseType),
|
|
207
|
+
responseDeserialize: deserializer(responseType),
|
|
208
|
+
originalName: name.charAt(0).toLowerCase() + name.slice(1),
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
function unaryHandler(handler) {
|
|
212
|
+
return (call, callback) => {
|
|
213
|
+
void (async () => {
|
|
214
|
+
if (!handler) {
|
|
215
|
+
callback({ code: grpc.status.UNIMPLEMENTED, message: "method is not implemented" });
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
try {
|
|
219
|
+
callback(null, await handler(call.request));
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
callback({
|
|
223
|
+
code: grpc.status.INTERNAL,
|
|
224
|
+
message: error instanceof Error ? error.message : String(error),
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
})();
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
function serializer(type) {
|
|
231
|
+
return (value) => Buffer.from(type.encode(type.fromObject(value)).finish());
|
|
232
|
+
}
|
|
233
|
+
function deserializer(type) {
|
|
234
|
+
return (buffer) => type.toObject(type.decode(buffer), {
|
|
235
|
+
longs: Number,
|
|
236
|
+
enums: Number,
|
|
237
|
+
bytes: Uint8Array,
|
|
238
|
+
defaults: false,
|
|
239
|
+
arrays: true,
|
|
240
|
+
objects: true,
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
function validateExecuteQueryRequest(request, allowedSources) {
|
|
244
|
+
if (!request.session) {
|
|
245
|
+
return {
|
|
246
|
+
code: DataSourceErrorCode.InvalidArgument,
|
|
247
|
+
status: grpc.status.INVALID_ARGUMENT,
|
|
248
|
+
message: "session is required",
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
if (!request.sourceId) {
|
|
252
|
+
return {
|
|
253
|
+
code: DataSourceErrorCode.InvalidArgument,
|
|
254
|
+
status: grpc.status.INVALID_ARGUMENT,
|
|
255
|
+
message: "source_id is required",
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
if (allowedSources.size > 0 && !allowedSources.has(request.sourceId)) {
|
|
259
|
+
return {
|
|
260
|
+
code: DataSourceErrorCode.SourceNotFound,
|
|
261
|
+
status: grpc.status.NOT_FOUND,
|
|
262
|
+
message: "source_id is not registered",
|
|
263
|
+
};
|
|
264
|
+
}
|
|
265
|
+
if (!request.query?.trim()) {
|
|
266
|
+
return {
|
|
267
|
+
code: DataSourceErrorCode.InvalidArgument,
|
|
268
|
+
status: grpc.status.INVALID_ARGUMENT,
|
|
269
|
+
message: "query is required",
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
return undefined;
|
|
273
|
+
}
|
|
274
|
+
function writeTerminalError(call, chunk, code, message) {
|
|
275
|
+
call.write(chunk, () => {
|
|
276
|
+
call.emit("error", grpcStatus(code, message));
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
function grpcStatus(code, message) {
|
|
280
|
+
const error = new Error(message);
|
|
281
|
+
error.code = code;
|
|
282
|
+
error.details = message;
|
|
283
|
+
return error;
|
|
284
|
+
}
|
|
285
|
+
export { serviceName as DataSourceGrpcServiceName };
|
|
286
|
+
//# sourceMappingURL=grpc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grpc.js","sourceRoot":"","sources":["../../src/datasource/grpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type ArrowColumn, type ArrowRow } from "./arrow.js";
|
|
2
|
+
import type { ExecuteQueryHandler } from "./types.js";
|
|
3
|
+
export interface RowQueryHandlerOptions {
|
|
4
|
+
batchSize?: number;
|
|
5
|
+
}
|
|
6
|
+
export type RowSource = Iterable<ArrowRow> | AsyncIterable<ArrowRow>;
|
|
7
|
+
export type RowReader = (query: string, request: Parameters<ExecuteQueryHandler>[0]) => RowSource | Promise<RowSource>;
|
|
8
|
+
export declare function createRowQueryHandler(columns: ArrowColumn[], reader: RowReader, options?: RowQueryHandlerOptions): ExecuteQueryHandler;
|
|
9
|
+
export interface PostgresLikeClient {
|
|
10
|
+
query(query: string): Promise<{
|
|
11
|
+
rows: ArrowRow[];
|
|
12
|
+
}> | {
|
|
13
|
+
rows: ArrowRow[];
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export declare function createPostgresQueryHandler(client: PostgresLikeClient, columns: ArrowColumn[], options?: RowQueryHandlerOptions): ExecuteQueryHandler;
|
|
17
|
+
export interface BigQueryLikeClient {
|
|
18
|
+
query(query: string | {
|
|
19
|
+
query: string;
|
|
20
|
+
[key: string]: unknown;
|
|
21
|
+
}): Promise<[ArrowRow[], unknown?] | ArrowRow[]>;
|
|
22
|
+
createQueryStream?: (query: string | {
|
|
23
|
+
query: string;
|
|
24
|
+
[key: string]: unknown;
|
|
25
|
+
}) => RowSource;
|
|
26
|
+
}
|
|
27
|
+
export interface BigQueryQueryHandlerOptions extends RowQueryHandlerOptions {
|
|
28
|
+
queryOptions?: Record<string, unknown>;
|
|
29
|
+
preferQueryStream?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export declare function createBigQueryQueryHandler(client: BigQueryLikeClient, columns: ArrowColumn[], options?: BigQueryQueryHandlerOptions): ExecuteQueryHandler;
|
|
32
|
+
//# sourceMappingURL=query-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-handlers.d.ts","sourceRoot":"","sources":["../../src/datasource/query-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,WAAW,sBAAsB;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;AAErE,MAAM,MAAM,SAAS,GAAG,CACtB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,KACxC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAEpC,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,WAAW,EAAE,EACtB,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,sBAA2B,GACnC,mBAAmB,CAqBrB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAC,GAAG;QAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAC;CAC5E;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,WAAW,EAAE,EACtB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,mBAAmB,CASrB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CACH,KAAK,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,GACxD,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC;IAChD,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,KAAK,SAAS,CAAC;CAC9F;AAED,MAAM,WAAW,2BAA4B,SAAQ,sBAAsB;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,WAAW,EAAE,EACtB,OAAO,GAAE,2BAAgC,GACxC,mBAAmB,CAmBrB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { arrowRowsChunk, resultChunk } from "./arrow.js";
|
|
2
|
+
export function createRowQueryHandler(columns, reader, options = {}) {
|
|
3
|
+
const batchSize = options.batchSize && options.batchSize > 0 ? options.batchSize : 1024;
|
|
4
|
+
return async (request, sink) => {
|
|
5
|
+
const startedAt = Date.now();
|
|
6
|
+
const rows = toAsyncRows(await reader(request.query ?? "", request));
|
|
7
|
+
let rowCount = 0;
|
|
8
|
+
let batch = [];
|
|
9
|
+
for await (const row of rows) {
|
|
10
|
+
rowCount += 1;
|
|
11
|
+
batch.push(row);
|
|
12
|
+
if (batch.length >= batchSize) {
|
|
13
|
+
sink.send(arrowRowsChunk(columns, batch));
|
|
14
|
+
batch = [];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
if (batch.length > 0) {
|
|
18
|
+
sink.send(arrowRowsChunk(columns, batch));
|
|
19
|
+
}
|
|
20
|
+
sink.send(resultChunk(rowCount, false, Date.now() - startedAt));
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export function createPostgresQueryHandler(client, columns, options) {
|
|
24
|
+
return createRowQueryHandler(columns, async (query) => {
|
|
25
|
+
const result = await client.query(query);
|
|
26
|
+
return result.rows;
|
|
27
|
+
}, options);
|
|
28
|
+
}
|
|
29
|
+
export function createBigQueryQueryHandler(client, columns, options = {}) {
|
|
30
|
+
return createRowQueryHandler(columns, async (query) => {
|
|
31
|
+
const request = options.queryOptions && Object.keys(options.queryOptions).length > 0
|
|
32
|
+
? { ...options.queryOptions, query }
|
|
33
|
+
: query;
|
|
34
|
+
if (options.preferQueryStream !== false && client.createQueryStream) {
|
|
35
|
+
return client.createQueryStream(request);
|
|
36
|
+
}
|
|
37
|
+
const result = await client.query(request);
|
|
38
|
+
if (Array.isArray(result[0])) {
|
|
39
|
+
return result[0];
|
|
40
|
+
}
|
|
41
|
+
return result;
|
|
42
|
+
}, options);
|
|
43
|
+
}
|
|
44
|
+
async function* toAsyncRows(source) {
|
|
45
|
+
if (isAsyncIterable(source)) {
|
|
46
|
+
for await (const row of source) {
|
|
47
|
+
yield row;
|
|
48
|
+
}
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
for (const row of source) {
|
|
52
|
+
yield row;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function isAsyncIterable(source) {
|
|
56
|
+
return Symbol.asyncIterator in source;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=query-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-handlers.js","sourceRoot":"","sources":["../../src/datasource/query-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
export declare const DataSourceErrorCode: {
|
|
2
|
+
readonly Unspecified: 0;
|
|
3
|
+
readonly Unavailable: 1;
|
|
4
|
+
readonly Unauthenticated: 2;
|
|
5
|
+
readonly PermissionDenied: 3;
|
|
6
|
+
readonly SourceNotFound: 4;
|
|
7
|
+
readonly QueryInvalid: 5;
|
|
8
|
+
readonly QueryFailed: 6;
|
|
9
|
+
readonly LimitExceeded: 7;
|
|
10
|
+
readonly Timeout: 8;
|
|
11
|
+
readonly UpstreamAuthFailed: 9;
|
|
12
|
+
readonly Internal: 10;
|
|
13
|
+
readonly TableNotFound: 11;
|
|
14
|
+
readonly ColumnNotFound: 12;
|
|
15
|
+
readonly Cancelled: 13;
|
|
16
|
+
readonly ResourceExhausted: 14;
|
|
17
|
+
readonly InvalidArgument: 15;
|
|
18
|
+
readonly ExternalError: 16;
|
|
19
|
+
};
|
|
20
|
+
export type DataSourceErrorCode = (typeof DataSourceErrorCode)[keyof typeof DataSourceErrorCode];
|
|
21
|
+
export interface SessionContext {
|
|
22
|
+
account?: string;
|
|
23
|
+
channelId?: string;
|
|
24
|
+
kernelToken?: string;
|
|
25
|
+
teamMemberId?: string;
|
|
26
|
+
datasourceToken?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface ListTablesRequest {
|
|
29
|
+
session?: SessionContext;
|
|
30
|
+
sourceId?: string;
|
|
31
|
+
tableNameFilterPattern?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface Table {
|
|
34
|
+
name?: string;
|
|
35
|
+
description?: string;
|
|
36
|
+
estimatedRowCount?: number;
|
|
37
|
+
updatedAt?: number;
|
|
38
|
+
tableType?: number;
|
|
39
|
+
}
|
|
40
|
+
export interface ListTablesResponse {
|
|
41
|
+
tables?: Table[];
|
|
42
|
+
}
|
|
43
|
+
export interface DescribeTableRequest {
|
|
44
|
+
session?: SessionContext;
|
|
45
|
+
sourceId?: string;
|
|
46
|
+
table?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface Column {
|
|
49
|
+
name?: string;
|
|
50
|
+
type?: string;
|
|
51
|
+
nullable?: boolean;
|
|
52
|
+
description?: string;
|
|
53
|
+
partitionKey?: boolean;
|
|
54
|
+
precision?: number;
|
|
55
|
+
scale?: number;
|
|
56
|
+
}
|
|
57
|
+
export interface TableDefinition {
|
|
58
|
+
table?: Table;
|
|
59
|
+
columns?: Column[];
|
|
60
|
+
primaryKey?: string[];
|
|
61
|
+
}
|
|
62
|
+
export interface SearchTablesRequest {
|
|
63
|
+
session?: SessionContext;
|
|
64
|
+
sourceId?: string;
|
|
65
|
+
queries?: string[];
|
|
66
|
+
limit?: number;
|
|
67
|
+
}
|
|
68
|
+
export interface SearchTablesResponse {
|
|
69
|
+
tables?: Table[];
|
|
70
|
+
}
|
|
71
|
+
export interface ExecuteQueryRequest {
|
|
72
|
+
session?: SessionContext;
|
|
73
|
+
sourceId?: string;
|
|
74
|
+
query?: string;
|
|
75
|
+
rowLimit?: number;
|
|
76
|
+
byteLimit?: number;
|
|
77
|
+
timeoutMs?: number;
|
|
78
|
+
}
|
|
79
|
+
export interface ArrowIpcMessage {
|
|
80
|
+
dataHeader?: Uint8Array;
|
|
81
|
+
dataBody?: Uint8Array;
|
|
82
|
+
}
|
|
83
|
+
export interface QueryResult {
|
|
84
|
+
rowCount?: number;
|
|
85
|
+
limitExceeded?: boolean;
|
|
86
|
+
executionMs?: number;
|
|
87
|
+
}
|
|
88
|
+
export interface UpstreamError {
|
|
89
|
+
engine?: string;
|
|
90
|
+
code?: string;
|
|
91
|
+
message?: string;
|
|
92
|
+
}
|
|
93
|
+
export interface DataSourceError {
|
|
94
|
+
code?: DataSourceErrorCode;
|
|
95
|
+
message?: string;
|
|
96
|
+
retryable?: boolean;
|
|
97
|
+
upstream?: UpstreamError;
|
|
98
|
+
}
|
|
99
|
+
export interface QueryChunk {
|
|
100
|
+
arrow?: ArrowIpcMessage;
|
|
101
|
+
result?: QueryResult;
|
|
102
|
+
error?: DataSourceError;
|
|
103
|
+
}
|
|
104
|
+
export interface QueryChunkSink {
|
|
105
|
+
send(chunk: QueryChunk): void;
|
|
106
|
+
}
|
|
107
|
+
export type ExecuteQueryHandler = (request: ExecuteQueryRequest, sink: QueryChunkSink) => void | Promise<void>;
|
|
108
|
+
export interface DataSourceServiceHandlers {
|
|
109
|
+
listTables?: (request: ListTablesRequest) => ListTablesResponse | Promise<ListTablesResponse>;
|
|
110
|
+
describeTable?: (request: DescribeTableRequest) => TableDefinition | Promise<TableDefinition>;
|
|
111
|
+
searchTables?: (request: SearchTablesRequest) => SearchTablesResponse | Promise<SearchTablesResponse>;
|
|
112
|
+
executeQuery: ExecuteQueryHandler;
|
|
113
|
+
}
|
|
114
|
+
export interface DataSourceGrpcOptions {
|
|
115
|
+
allowedSources?: string[];
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/datasource/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;CAkBtB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC;AAEjG,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,cAAc,KACjB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,WAAW,yBAAyB;IACxC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9F,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9F,YAAY,CAAC,EAAE,CACb,OAAO,EAAE,mBAAmB,KACzB,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC1D,YAAY,EAAE,mBAAmB,CAAC;CACnC;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const DataSourceErrorCode = {
|
|
2
|
+
Unspecified: 0,
|
|
3
|
+
Unavailable: 1,
|
|
4
|
+
Unauthenticated: 2,
|
|
5
|
+
PermissionDenied: 3,
|
|
6
|
+
SourceNotFound: 4,
|
|
7
|
+
QueryInvalid: 5,
|
|
8
|
+
QueryFailed: 6,
|
|
9
|
+
LimitExceeded: 7,
|
|
10
|
+
Timeout: 8,
|
|
11
|
+
UpstreamAuthFailed: 9,
|
|
12
|
+
Internal: 10,
|
|
13
|
+
TableNotFound: 11,
|
|
14
|
+
ColumnNotFound: 12,
|
|
15
|
+
Cancelled: 13,
|
|
16
|
+
ResourceExhausted: 14,
|
|
17
|
+
InvalidArgument: 15,
|
|
18
|
+
ExternalError: 16,
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/datasource/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,WAAW,EAAE,CAAC;IACd,WAAW,EAAE,CAAC;IACd,eAAe,EAAE,CAAC;IAClB,gBAAgB,EAAE,CAAC;IACnB,cAAc,EAAE,CAAC;IACjB,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,CAAC;IACd,aAAa,EAAE,CAAC;IAChB,OAAO,EAAE,CAAC;IACV,kBAAkB,EAAE,CAAC;IACrB,QAAQ,EAAE,EAAE;IACZ,aAAa,EAAE,EAAE;IACjB,cAAc,EAAE,EAAE;IAClB,SAAS,EAAE,EAAE;IACb,iBAAiB,EAAE,EAAE;IACrB,eAAe,EAAE,EAAE;IACnB,aAAa,EAAE,EAAE;CACT,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const SDK_EXTENSION_NAMES: readonly ["oauth", "apikey", "config", "calendar", "messaging", "messenger", "command", "widget", "customtab", "hook", "store", "commerce", "order", "wms", "alfTask"];
|
|
1
|
+
export declare const SDK_EXTENSION_NAMES: readonly ["oauth", "apikey", "config", "calendar", "messaging", "messenger", "command", "widget", "customtab", "hook", "polling", "store", "datasource", "commerce", "order", "wms", "alfTask"];
|
|
2
2
|
export type SdkExtensionName = (typeof SDK_EXTENSION_NAMES)[number];
|
|
3
3
|
//# sourceMappingURL=extension-names.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-names.d.ts","sourceRoot":"","sources":["../../src/decorators/extension-names.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"extension-names.d.ts","sourceRoot":"","sources":["../../src/decorators/extension-names.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,iMAkBtB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension-names.js","sourceRoot":"","sources":["../../src/decorators/extension-names.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,WAAW;IACX,WAAW;IACX,SAAS;IACT,QAAQ;IACR,WAAW;IACX,MAAM;IACN,OAAO;IACP,UAAU;IACV,OAAO;IACP,KAAK;IACL,SAAS;CACD,CAAC"}
|
|
1
|
+
{"version":3,"file":"extension-names.js","sourceRoot":"","sources":["../../src/decorators/extension-names.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,WAAW;IACX,WAAW;IACX,SAAS;IACT,QAAQ;IACR,WAAW;IACX,MAAM;IACN,SAAS;IACT,OAAO;IACP,YAAY;IACZ,UAAU;IACV,OAAO;IACP,KAAK;IACL,SAAS;CACD,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export * from "./token/index.js";
|
|
|
6
6
|
export * from "./appstore/index.js";
|
|
7
7
|
export * from "./guards/index.js";
|
|
8
8
|
export * from "./native/index.js";
|
|
9
|
+
export * from "./datasource/index.js";
|
|
9
10
|
export * from "./simple/index.js";
|
|
10
11
|
export * from "./testing/index.js";
|
|
11
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAC;AAGzC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,0BAA0B,CAAC;AAGzC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,6 +14,8 @@ export * from "./appstore/index.js";
|
|
|
14
14
|
export * from "./guards/index.js";
|
|
15
15
|
// Export native function client
|
|
16
16
|
export * from "./native/index.js";
|
|
17
|
+
// Export datasource gRPC helpers
|
|
18
|
+
export * from "./datasource/index.js";
|
|
17
19
|
// Export simple MCP-like API
|
|
18
20
|
export * from "./simple/index.js";
|
|
19
21
|
// Export testing utilities
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,cAAc,0BAA0B,CAAC;AAEzC,mCAAmC;AACnC,cAAc,mBAAmB,CAAC;AAElC,oBAAoB;AACpB,cAAc,uBAAuB,CAAC;AAEtC,2BAA2B;AAC3B,cAAc,sBAAsB,CAAC;AAErC,oCAAoC;AACpC,cAAc,kBAAkB,CAAC;AAEjC,mCAAmC;AACnC,cAAc,qBAAqB,CAAC;AAEpC,+BAA+B;AAC/B,cAAc,mBAAmB,CAAC;AAElC,gCAAgC;AAChC,cAAc,mBAAmB,CAAC;AAElC,6BAA6B;AAC7B,cAAc,mBAAmB,CAAC;AAElC,2BAA2B;AAC3B,cAAc,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,cAAc,0BAA0B,CAAC;AAEzC,mCAAmC;AACnC,cAAc,mBAAmB,CAAC;AAElC,oBAAoB;AACpB,cAAc,uBAAuB,CAAC;AAEtC,2BAA2B;AAC3B,cAAc,sBAAsB,CAAC;AAErC,oCAAoC;AACpC,cAAc,kBAAkB,CAAC;AAEjC,mCAAmC;AACnC,cAAc,qBAAqB,CAAC;AAEpC,+BAA+B;AAC/B,cAAc,mBAAmB,CAAC;AAElC,gCAAgC;AAChC,cAAc,mBAAmB,CAAC;AAElC,iCAAiC;AACjC,cAAc,uBAAuB,CAAC;AAEtC,6BAA6B;AAC7B,cAAc,mBAAmB,CAAC;AAElC,2BAA2B;AAC3B,cAAc,oBAAoB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type FunctionCallRequest } from "@channel.io/app-sdk-core";
|
|
1
|
+
import { type FunctionCallRequest, type FunctionCallResponse } from "@channel.io/app-sdk-core";
|
|
2
2
|
import { ChannelAppService } from "./channel-app.service.js";
|
|
3
3
|
export declare class ChannelAppController {
|
|
4
4
|
private readonly channelAppService;
|
|
@@ -8,7 +8,7 @@ export declare class ChannelAppController {
|
|
|
8
8
|
* Versioned endpoint: PUT /functions/:version
|
|
9
9
|
* ch-app-store calls this endpoint with systemVersion (e.g., /functions/v1)
|
|
10
10
|
*/
|
|
11
|
-
handleVersionedFunctions(version: string, body: FunctionCallRequest): Promise<
|
|
11
|
+
handleVersionedFunctions(version: string, body: FunctionCallRequest): Promise<FunctionCallResponse>;
|
|
12
12
|
/**
|
|
13
13
|
* Common request handler
|
|
14
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-app.controller.d.ts","sourceRoot":"","sources":["../../src/nestjs/channel-app.controller.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,mBAAmB,
|
|
1
|
+
{"version":3,"file":"channel-app.controller.d.ts","sourceRoot":"","sources":["../../src/nestjs/channel-app.controller.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAG1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,qBACa,oBAAoB;IAGnB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAF9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;gBAEnC,iBAAiB,EAAE,iBAAiB;IAEjE;;;OAGG;IAEG,wBAAwB,CACV,OAAO,EAAE,MAAM,EACzB,IAAI,EAAE,mBAAmB,GAChC,OAAO,CAAC,oBAAoB,CAAC;IAIhC;;OAEG;YACW,aAAa;CAwC5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-app.controller.js","sourceRoot":"","sources":["../../src/nestjs/channel-app.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACjG,OAAO,
|
|
1
|
+
{"version":3,"file":"channel-app.controller.js","sourceRoot":"","sources":["../../src/nestjs/channel-app.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACjG,OAAO,EAGL,qBAAqB,EACrB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGtD,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IAGF;IAFZ,MAAM,GAAG,IAAI,MAAM,CAAC,sBAAoB,CAAC,IAAI,CAAC,CAAC;IAEhE,YAA6B,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;IAAG,CAAC;IAErE;;;OAGG;IAEG,AAAN,KAAK,CAAC,wBAAwB,CACV,OAAe,EACzB,IAAyB;QAEjC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CACzB,IAAyB,EACzB,OAAgB;QAEhB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC;YAEzE,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;gBAC3C,MAAM,IAAI,aAAa,CACrB;oBACE,KAAK,EAAE,oBAAoB;oBAC3B,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,EACD,UAAU,CAAC,SAAS,CACrB,CAAC;YACJ,CAAC;YAED,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;gBACrC,MAAM,IAAI,aAAa,CACrB;oBACE,KAAK,EAAE,kBAAkB;oBACzB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,EACD,UAAU,CAAC,WAAW,CACvB,CAAC;YACJ,CAAC;YAED,6BAA6B;YAC7B,MAAM,IAAI,aAAa,CACrB;gBACE,KAAK,EAAE,gBAAgB;gBACvB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAClE,EACD,UAAU,CAAC,qBAAqB,CACjC,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AAlDO;IADL,GAAG,CAAC,UAAU,CAAC;IAEb,WAAA,KAAK,CAAC,SAAS,CAAC,CAAA;IAChB,WAAA,IAAI,EAAE,CAAA;;;;oEAGR;AAfU,oBAAoB;IADhC,UAAU,CAAC,WAAW,CAAC;qCAI0B,iBAAiB;GAHtD,oBAAoB,CA4DhC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@channel.io/app-sdk-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"description": "NestJS server SDK for Channel.io apps",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -21,9 +21,12 @@
|
|
|
21
21
|
"dist"
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
|
+
"@grpc/grpc-js": "^1.14.4",
|
|
25
|
+
"apache-arrow": "^21.1.0",
|
|
26
|
+
"protobufjs": "^8.6.5",
|
|
24
27
|
"zod": "^3.24.1",
|
|
25
28
|
"zod-to-json-schema": "^3.24.1",
|
|
26
|
-
"@channel.io/app-sdk-core": "0.
|
|
29
|
+
"@channel.io/app-sdk-core": "0.14.0"
|
|
27
30
|
},
|
|
28
31
|
"peerDependencies": {
|
|
29
32
|
"@nestjs/common": ">=10.0.0",
|
|
@@ -51,8 +54,8 @@
|
|
|
51
54
|
},
|
|
52
55
|
"repository": {
|
|
53
56
|
"type": "git",
|
|
54
|
-
"url": "https://github.com/channel-io/app-sdk.git",
|
|
55
|
-
"directory": "packages/server"
|
|
57
|
+
"url": "https://github.com/channel-io/cht-app-sdk.git",
|
|
58
|
+
"directory": "ts/packages/server"
|
|
56
59
|
},
|
|
57
60
|
"license": "MIT",
|
|
58
61
|
"publishConfig": {
|