@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.
- package/dist/__tests__/datasource-runners.test.d.ts +2 -0
- package/dist/__tests__/datasource-runners.test.d.ts.map +1 -0
- package/dist/__tests__/datasource-runners.test.js +244 -0
- package/dist/__tests__/datasource-runners.test.js.map +1 -0
- package/dist/__tests__/datasource.test.js +48 -3
- package/dist/__tests__/datasource.test.js.map +1 -1
- package/dist/datasource/arrow.d.ts +18 -1
- package/dist/datasource/arrow.d.ts.map +1 -1
- package/dist/datasource/arrow.js +236 -12
- package/dist/datasource/arrow.js.map +1 -1
- package/dist/datasource/bigquery.d.ts +97 -0
- package/dist/datasource/bigquery.d.ts.map +1 -0
- package/dist/datasource/bigquery.js +297 -0
- package/dist/datasource/bigquery.js.map +1 -0
- package/dist/datasource/grpc.d.ts +2 -1
- package/dist/datasource/grpc.d.ts.map +1 -1
- package/dist/datasource/grpc.js +54 -2
- package/dist/datasource/grpc.js.map +1 -1
- package/dist/datasource/index.d.ts +3 -0
- package/dist/datasource/index.d.ts.map +1 -1
- package/dist/datasource/index.js +3 -0
- package/dist/datasource/index.js.map +1 -1
- package/dist/datasource/policy.d.ts +16 -0
- package/dist/datasource/policy.d.ts.map +1 -0
- package/dist/datasource/policy.js +112 -0
- package/dist/datasource/policy.js.map +1 -0
- package/dist/datasource/postgres.d.ts +32 -0
- package/dist/datasource/postgres.d.ts.map +1 -0
- package/dist/datasource/postgres.js +234 -0
- package/dist/datasource/postgres.js.map +1 -0
- package/dist/datasource/query-handlers.d.ts +2 -2
- package/dist/datasource/query-handlers.d.ts.map +1 -1
- package/dist/datasource/query-handlers.js +2 -2
- package/dist/datasource/query-handlers.js.map +1 -1
- package/dist/datasource/types.d.ts +37 -1
- package/dist/datasource/types.d.ts.map +1 -1
- package/dist/datasource/types.js +20 -0
- package/dist/datasource/types.js.map +1 -1
- package/dist/nestjs/channel-app.service.d.ts +8 -0
- package/dist/nestjs/channel-app.service.d.ts.map +1 -1
- package/dist/nestjs/channel-app.service.js +45 -3
- package/dist/nestjs/channel-app.service.js.map +1 -1
- package/dist/nestjs/channel-app.service.test.js +28 -0
- package/dist/nestjs/channel-app.service.test.js.map +1 -1
- package/dist/nestjs/types.d.ts +16 -0
- package/dist/nestjs/types.d.ts.map +1 -1
- package/dist/nestjs/types.js.map +1 -1
- package/package.json +26 -3
|
@@ -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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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { describe, expect, it } from "vitest";
|
|
2
2
|
import * as grpc from "@grpc/grpc-js";
|
|
3
|
-
import { createBigQueryQueryHandler, createDataSourceGrpcServer, createPostgresQueryHandler, createRowQueryHandler, DataSourceErrorCode, DataSourceServiceDefinition, } from "../datasource/index.js";
|
|
3
|
+
import { createExecuteQueryContext, createBigQueryQueryHandler, createDataSourceGrpcServer, createPostgresQueryHandler, createRowQueryHandler, DataSourceErrorCode, DataSourceServiceDefinition, } from "../datasource/index.js";
|
|
4
4
|
describe("datasource query handlers", () => {
|
|
5
5
|
it("streams rows as Arrow chunks and a result chunk", async () => {
|
|
6
6
|
const chunks = [];
|
|
@@ -84,6 +84,51 @@ describe("datasource query handlers", () => {
|
|
|
84
84
|
await forceShutdown(server);
|
|
85
85
|
}
|
|
86
86
|
});
|
|
87
|
+
it("passes grpc metadata to ExecuteQuery handlers", async () => {
|
|
88
|
+
const server = createDataSourceGrpcServer({
|
|
89
|
+
executeQuery: (_request, sink, context) => {
|
|
90
|
+
sink.send({
|
|
91
|
+
result: {
|
|
92
|
+
rowCount: context?.appIdentity.appSlugOrId === "cafe24" ? 1 : 0,
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
const address = await bind(server);
|
|
98
|
+
const client = createClient(address);
|
|
99
|
+
const metadata = new grpc.Metadata();
|
|
100
|
+
metadata.set("x-app-slug", "cafe24");
|
|
101
|
+
metadata.set("x-channel-app-id", "app-cafe24-id");
|
|
102
|
+
try {
|
|
103
|
+
const chunks = await collectExecuteQuery(client, {
|
|
104
|
+
session: { channelId: "channel-1" },
|
|
105
|
+
sourceId: "bigquery",
|
|
106
|
+
query: "select 1",
|
|
107
|
+
}, metadata);
|
|
108
|
+
expect(chunks[0]).toMatchObject({ result: { rowCount: 1 } });
|
|
109
|
+
}
|
|
110
|
+
finally {
|
|
111
|
+
client.close();
|
|
112
|
+
await forceShutdown(server);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
it("resolves datasource app identity from grpc metadata", () => {
|
|
116
|
+
const metadata = new grpc.Metadata();
|
|
117
|
+
metadata.set("x-channel-app-id", "app-fallback-id");
|
|
118
|
+
const idOnlyContext = createExecuteQueryContext(metadata);
|
|
119
|
+
expect(idOnlyContext.appIdentity).toMatchObject({
|
|
120
|
+
appId: "app-fallback-id",
|
|
121
|
+
appSlugOrId: "app-fallback-id",
|
|
122
|
+
});
|
|
123
|
+
expect(idOnlyContext.getMetadataText("X-CHANNEL-APP-ID")).toBe("app-fallback-id");
|
|
124
|
+
metadata.set("x-app-slug", "cafe24");
|
|
125
|
+
const slugContext = createExecuteQueryContext(metadata);
|
|
126
|
+
expect(slugContext.appIdentity).toMatchObject({
|
|
127
|
+
appSlug: "cafe24",
|
|
128
|
+
appId: "app-fallback-id",
|
|
129
|
+
appSlugOrId: "cafe24",
|
|
130
|
+
});
|
|
131
|
+
});
|
|
87
132
|
it("returns terminal error chunks and grpc status", async () => {
|
|
88
133
|
const server = createDataSourceGrpcServer({
|
|
89
134
|
executeQuery: createRowQueryHandler([{ name: "id", type: "STRING" }], () => [
|
|
@@ -127,10 +172,10 @@ function createClient(address) {
|
|
|
127
172
|
const Client = grpc.makeGenericClientConstructor(DataSourceServiceDefinition, "DataSourceService");
|
|
128
173
|
return new Client(address, grpc.credentials.createInsecure());
|
|
129
174
|
}
|
|
130
|
-
function collectExecuteQuery(client, request) {
|
|
175
|
+
function collectExecuteQuery(client, request, metadata) {
|
|
131
176
|
return new Promise((resolve, reject) => {
|
|
132
177
|
const chunks = [];
|
|
133
|
-
const stream = client.ExecuteQuery(request);
|
|
178
|
+
const stream = metadata ? client.ExecuteQuery(request, metadata) : client.ExecuteQuery(request);
|
|
134
179
|
stream.on("data", (chunk) => chunks.push(chunk));
|
|
135
180
|
stream.on("error", reject);
|
|
136
181
|
stream.on("end", () => resolve(chunks));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datasource.test.js","sourceRoot":"","sources":["../../src/__tests__/datasource.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"datasource.test.js","sourceRoot":"","sources":["../../src/__tests__/datasource.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,27 @@
|
|
|
1
|
-
import type { QueryChunk } from "./types.js";
|
|
1
|
+
import type { QueryChunk, QueryChunkSink } from "./types.js";
|
|
2
2
|
export interface ArrowColumn {
|
|
3
3
|
name: string;
|
|
4
4
|
type?: string;
|
|
5
5
|
}
|
|
6
|
+
export interface ArrowField extends ArrowColumn {
|
|
7
|
+
dataTypeID?: number;
|
|
8
|
+
databaseType?: string;
|
|
9
|
+
nullable?: boolean;
|
|
10
|
+
}
|
|
6
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
|
+
}
|
|
7
23
|
export declare function encodeRowsToArrowIPC(columns: ArrowColumn[], rows: ArrowRow[]): Uint8Array;
|
|
8
24
|
export declare function arrowRowsChunk(columns: ArrowColumn[], rows: ArrowRow[]): QueryChunk;
|
|
9
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;
|
|
10
27
|
//# sourceMappingURL=arrow.d.ts.map
|
|
@@ -1 +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;
|
|
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"}
|