@channel.io/app-sdk-server 0.13.1 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) 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.d.ts +2 -0
  6. package/dist/__tests__/datasource.test.d.ts.map +1 -0
  7. package/dist/__tests__/datasource.test.js +152 -0
  8. package/dist/__tests__/datasource.test.js.map +1 -0
  9. package/dist/__tests__/testing-utils.test.js +1 -1
  10. package/dist/__tests__/testing-utils.test.js.map +1 -1
  11. package/dist/datasource/arrow.d.ts +27 -0
  12. package/dist/datasource/arrow.d.ts.map +1 -0
  13. package/dist/datasource/arrow.js +261 -0
  14. package/dist/datasource/arrow.js.map +1 -0
  15. package/dist/datasource/bigquery.d.ts +97 -0
  16. package/dist/datasource/bigquery.d.ts.map +1 -0
  17. package/dist/datasource/bigquery.js +297 -0
  18. package/dist/datasource/bigquery.js.map +1 -0
  19. package/dist/datasource/grpc.d.ts +28 -0
  20. package/dist/datasource/grpc.d.ts.map +1 -0
  21. package/dist/datasource/grpc.js +292 -0
  22. package/dist/datasource/grpc.js.map +1 -0
  23. package/dist/datasource/index.d.ts +8 -0
  24. package/dist/datasource/index.d.ts.map +1 -0
  25. package/dist/datasource/index.js +8 -0
  26. package/dist/datasource/index.js.map +1 -0
  27. package/dist/datasource/policy.d.ts +16 -0
  28. package/dist/datasource/policy.d.ts.map +1 -0
  29. package/dist/datasource/policy.js +112 -0
  30. package/dist/datasource/policy.js.map +1 -0
  31. package/dist/datasource/postgres.d.ts +32 -0
  32. package/dist/datasource/postgres.d.ts.map +1 -0
  33. package/dist/datasource/postgres.js +234 -0
  34. package/dist/datasource/postgres.js.map +1 -0
  35. package/dist/datasource/query-handlers.d.ts +32 -0
  36. package/dist/datasource/query-handlers.d.ts.map +1 -0
  37. package/dist/datasource/query-handlers.js +58 -0
  38. package/dist/datasource/query-handlers.js.map +1 -0
  39. package/dist/datasource/types.d.ts +134 -0
  40. package/dist/datasource/types.d.ts.map +1 -0
  41. package/dist/datasource/types.js +34 -0
  42. package/dist/datasource/types.js.map +1 -0
  43. package/dist/decorators/extension-names.d.ts +1 -1
  44. package/dist/decorators/extension-names.d.ts.map +1 -1
  45. package/dist/decorators/extension-names.js +1 -0
  46. package/dist/decorators/extension-names.js.map +1 -1
  47. package/dist/index.d.ts +1 -0
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +2 -0
  50. package/dist/index.js.map +1 -1
  51. package/dist/nestjs/channel-app.controller.d.ts +2 -2
  52. package/dist/nestjs/channel-app.controller.d.ts.map +1 -1
  53. package/dist/nestjs/channel-app.controller.js.map +1 -1
  54. package/package.json +30 -4
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=datasource-runners.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datasource-runners.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/datasource-runners.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,244 @@
1
+ import { createRequire } from "node:module";
2
+ import { describe, expect, it } from "vitest";
3
+ import { BigQueryDataSourceExecutor, DataSourceErrorCode, PostgresDataSourceExecutor, queryWithRowLimit, validateReadOnlyQuery, writeRowsAsArrowIpcBatch, } from "../datasource/index.js";
4
+ describe("datasource policy helpers", () => {
5
+ it("validates read-only queries and wraps row limits", () => {
6
+ expect(() => validateReadOnlyQuery("select * from orders", [], [{ name: "orders" }])).not.toThrow();
7
+ expect(() => validateReadOnlyQuery("delete from orders", [], [{ name: "orders" }])).toThrow("read-only SELECT");
8
+ expect(queryWithRowLimit("select * from orders;", 10)).toBe("SELECT * FROM (select * from orders) AS datasource_query LIMIT 10");
9
+ });
10
+ });
11
+ describe("Arrow row conversion", () => {
12
+ it("serializes row batches as schema and body frames", () => {
13
+ const sink = new CaptureSink();
14
+ const result = writeRowsAsArrowIpcBatch(sink, [
15
+ { name: "id", dataTypeID: 23 },
16
+ { name: "name", dataTypeID: 25 },
17
+ ], [
18
+ [1, "alpha"],
19
+ [2, "beta"],
20
+ ]);
21
+ expect(result.schemaSent).toBe(true);
22
+ expect(sink.schemas).toHaveLength(1);
23
+ expect(sink.batches.length).toBeGreaterThan(0);
24
+ const arrow = loadApacheArrowForTest();
25
+ const table = arrow.tableFromIPC(concatBytes([...sink.schemas, ...sink.batches, arrowEos()]));
26
+ expect(table.numRows).toBe(2);
27
+ expect(table.schema.fields.map((field) => field.name)).toEqual(["id", "name"]);
28
+ });
29
+ });
30
+ describe("PostgresDataSourceExecutor", () => {
31
+ it("streams pg-query-stream rows in bounded Arrow batches", async () => {
32
+ const client = new FakePostgresClient([
33
+ [1, "first"],
34
+ [2, "second"],
35
+ [3, "third"],
36
+ ]);
37
+ const executor = new PostgresDataSourceExecutor({
38
+ sources: [
39
+ {
40
+ sourceId: "postgresql",
41
+ pool: { connect: async () => client },
42
+ tables: [{ name: "orders" }],
43
+ batchSize: 2,
44
+ },
45
+ ],
46
+ });
47
+ const sink = new CaptureSink();
48
+ await executor.executeQuery({
49
+ session: { channelId: "channel-1" },
50
+ sourceId: "postgresql",
51
+ query: "select * from orders",
52
+ rowLimit: 100,
53
+ byteLimit: 1024 * 1024,
54
+ timeoutMs: 1000,
55
+ }, sink);
56
+ expect(client.sqlQueries).toEqual([
57
+ "BEGIN READ ONLY",
58
+ "SET LOCAL statement_timeout = 1000",
59
+ "COMMIT",
60
+ ]);
61
+ expect(client.streamQueryText).toBe("SELECT * FROM (select * from orders) AS datasource_query LIMIT 100");
62
+ expect(sink.schemas).toHaveLength(1);
63
+ expect(sink.batches.length).toBeGreaterThanOrEqual(2);
64
+ expect(sink.results).toEqual([{ rowCount: 3, limitExceeded: false }]);
65
+ });
66
+ });
67
+ describe("BigQueryDataSourceExecutor", () => {
68
+ it("runs a query job and relays BigQuery Storage Arrow chunks", async () => {
69
+ const job = new FakeBigQueryJob();
70
+ const bigQueryClient = new FakeBigQueryClient(job);
71
+ const readClient = new FakeBigQueryReadClient();
72
+ const executor = new BigQueryDataSourceExecutor({
73
+ projectId: "project-1",
74
+ bigQueryClient,
75
+ readClient,
76
+ sources: [
77
+ {
78
+ sourceId: "bigquery",
79
+ datasetId: "app_cafe24",
80
+ maximumBytesBilled: "1048576",
81
+ tables: [{ name: "orders" }],
82
+ },
83
+ ],
84
+ });
85
+ const sink = new CaptureSink();
86
+ await executor.executeQuery({
87
+ session: { channelId: "channel-1" },
88
+ sourceId: "bigquery",
89
+ query: "select * from orders",
90
+ rowLimit: 10,
91
+ byteLimit: 1024 * 1024,
92
+ timeoutMs: 2000,
93
+ }, sink);
94
+ expect(bigQueryClient.options?.query).toBe("SELECT * FROM (select * from orders) AS datasource_query LIMIT 10");
95
+ expect(bigQueryClient.options?.maximumBytesBilled).toBe("1048576");
96
+ expect(readClient.createReadSessionRequest?.readSession.table).toBe("projects/project-1/datasets/_anon/tables/job_result");
97
+ expect(sink.schemas).toEqual([new Uint8Array([1, 2, 3])]);
98
+ expect(sink.batches).toEqual([new Uint8Array([4, 5]), new Uint8Array([6])]);
99
+ expect(sink.results).toEqual([{ rowCount: 3, limitExceeded: false }]);
100
+ });
101
+ it("maps BigQuery failures to external datasource errors", async () => {
102
+ const bigQueryClient = {
103
+ createQueryJob: async () => {
104
+ const error = new Error("denied");
105
+ error.code = "accessDenied";
106
+ throw error;
107
+ },
108
+ };
109
+ const executor = new BigQueryDataSourceExecutor({
110
+ projectId: "project-1",
111
+ bigQueryClient,
112
+ readClient: new FakeBigQueryReadClient(),
113
+ sources: [{ sourceId: "bigquery", datasetId: "app_cafe24" }],
114
+ });
115
+ await expect(executor.executeQuery({
116
+ session: { channelId: "channel-1" },
117
+ sourceId: "bigquery",
118
+ query: "select 1",
119
+ rowLimit: 10,
120
+ byteLimit: 100,
121
+ timeoutMs: 1000,
122
+ }, new CaptureSink())).rejects.toMatchObject({
123
+ code: DataSourceErrorCode.ExternalError,
124
+ upstream: { engine: "bigquery", code: "accessDenied" },
125
+ });
126
+ });
127
+ });
128
+ class CaptureSink {
129
+ schemas = [];
130
+ batches = [];
131
+ results = [];
132
+ send(chunk) {
133
+ if (chunk.arrow?.dataHeader) {
134
+ this.schemas.push(chunk.arrow.dataHeader);
135
+ }
136
+ if (chunk.arrow?.dataBody) {
137
+ this.batches.push(chunk.arrow.dataBody);
138
+ }
139
+ if (chunk.result) {
140
+ this.results.push({
141
+ rowCount: chunk.result.rowCount ?? 0,
142
+ limitExceeded: chunk.result.limitExceeded ?? false,
143
+ });
144
+ }
145
+ }
146
+ }
147
+ class FakePostgresClient {
148
+ rows;
149
+ sqlQueries = [];
150
+ streamQueryText;
151
+ constructor(rows) {
152
+ this.rows = rows;
153
+ }
154
+ query(query) {
155
+ if (typeof query === "string") {
156
+ this.sqlQueries.push(query);
157
+ return Promise.resolve();
158
+ }
159
+ const queryStream = query;
160
+ if (queryStream.cursor?.text) {
161
+ this.streamQueryText = queryStream.cursor.text;
162
+ }
163
+ queryStream._result = {
164
+ fields: [
165
+ { name: "id", dataTypeID: 23 },
166
+ { name: "name", dataTypeID: 25 },
167
+ ],
168
+ };
169
+ return asyncRows(this.rows);
170
+ }
171
+ release() { }
172
+ }
173
+ class FakeBigQueryClient {
174
+ job;
175
+ options;
176
+ constructor(job) {
177
+ this.job = job;
178
+ }
179
+ async createQueryJob(options) {
180
+ this.options = options;
181
+ return [this.job];
182
+ }
183
+ }
184
+ class FakeBigQueryJob {
185
+ async getQueryResults() {
186
+ return undefined;
187
+ }
188
+ async getMetadata() {
189
+ return [
190
+ {
191
+ configuration: {
192
+ query: {
193
+ destinationTable: {
194
+ projectId: "project-1",
195
+ datasetId: "_anon",
196
+ tableId: "job_result",
197
+ },
198
+ },
199
+ },
200
+ },
201
+ ];
202
+ }
203
+ }
204
+ class FakeBigQueryReadClient {
205
+ createReadSessionRequest;
206
+ async createReadSession(request) {
207
+ this.createReadSessionRequest = request;
208
+ return [
209
+ {
210
+ arrowSchema: { serializedSchema: new Uint8Array([1, 2, 3]) },
211
+ streams: [{ name: "stream-1" }],
212
+ },
213
+ ];
214
+ }
215
+ readRows() {
216
+ return asyncRows([
217
+ { arrowRecordBatch: { serializedRecordBatch: new Uint8Array([4, 5]) }, rowCount: 2 },
218
+ { arrowRecordBatch: { serializedRecordBatch: new Uint8Array([6]) }, rowCount: 1 },
219
+ ]);
220
+ }
221
+ }
222
+ async function* asyncRows(rows) {
223
+ for (const row of rows) {
224
+ yield row;
225
+ }
226
+ }
227
+ function concatBytes(chunks) {
228
+ const total = chunks.reduce((sum, chunk) => sum + chunk.byteLength, 0);
229
+ const out = new Uint8Array(total);
230
+ let offset = 0;
231
+ for (const chunk of chunks) {
232
+ out.set(chunk, offset);
233
+ offset += chunk.byteLength;
234
+ }
235
+ return out;
236
+ }
237
+ function arrowEos() {
238
+ return new Uint8Array([255, 255, 255, 255, 0, 0, 0, 0]);
239
+ }
240
+ function loadApacheArrowForTest() {
241
+ const require = createRequire(import.meta.url);
242
+ return require("apache-arrow");
243
+ }
244
+ //# sourceMappingURL=datasource-runners.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datasource-runners.test.js","sourceRoot":"","sources":["../../src/__tests__/datasource-runners.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=datasource.test.d.ts.map
@@ -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":"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"}
@@ -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 "@channel.io/app-sdk-core";
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":"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"}
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,27 @@
1
+ import type { QueryChunk, QueryChunkSink } from "./types.js";
2
+ export interface ArrowColumn {
3
+ name: string;
4
+ type?: string;
5
+ }
6
+ export interface ArrowField extends ArrowColumn {
7
+ dataTypeID?: number;
8
+ databaseType?: string;
9
+ nullable?: boolean;
10
+ }
11
+ export type ArrowRow = Record<string, unknown>;
12
+ export interface ArrowBatchWriteOptions {
13
+ sendSchema?: boolean;
14
+ byteLimit?: ByteLimitTrackerLike;
15
+ }
16
+ export interface ArrowBatchWriteResult {
17
+ schemaSent: boolean;
18
+ frameCount: number;
19
+ }
20
+ export interface ByteLimitTrackerLike {
21
+ reserve(size: number): void;
22
+ }
23
+ export declare function encodeRowsToArrowIPC(columns: ArrowColumn[], rows: ArrowRow[]): Uint8Array;
24
+ export declare function arrowRowsChunk(columns: ArrowColumn[], rows: ArrowRow[]): QueryChunk;
25
+ export declare function resultChunk(rowCount: number, limitExceeded?: boolean, executionMs?: number): QueryChunk;
26
+ export declare function writeRowsAsArrowIpcBatch(sink: QueryChunkSink, fields: readonly ArrowField[], rows: readonly (readonly unknown[])[], options?: ArrowBatchWriteOptions): ArrowBatchWriteResult;
27
+ //# 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,cAAc,EAAE,MAAM,YAAY,CAAC;AAG7D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE/C,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,oBAAoB,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AA4BD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,UAAU,CAQzF;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;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,IAAI,EAAE,SAAS,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,EACrC,OAAO,GAAE,sBAA2B,GACnC,qBAAqB,CAqBvB"}