@tinybirdco/sdk 0.0.36 → 0.0.38
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/README.md +50 -1
- package/dist/api/api.d.ts +66 -1
- package/dist/api/api.d.ts.map +1 -1
- package/dist/api/api.js +114 -0
- package/dist/api/api.js.map +1 -1
- package/dist/api/api.test.js +192 -0
- package/dist/api/api.test.js.map +1 -1
- package/dist/api/tokens.d.ts +79 -0
- package/dist/api/tokens.d.ts.map +1 -0
- package/dist/api/tokens.js +80 -0
- package/dist/api/tokens.js.map +1 -0
- package/dist/api/tokens.test.d.ts +2 -0
- package/dist/api/tokens.test.d.ts.map +1 -0
- package/dist/api/tokens.test.js +209 -0
- package/dist/api/tokens.test.js.map +1 -0
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +2 -3
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/client/base.d.ts +29 -1
- package/dist/client/base.d.ts.map +1 -1
- package/dist/client/base.js +44 -0
- package/dist/client/base.js.map +1 -1
- package/dist/client/base.test.js +25 -0
- package/dist/client/base.test.js.map +1 -1
- package/dist/client/tokens.d.ts +42 -0
- package/dist/client/tokens.d.ts.map +1 -0
- package/dist/client/tokens.js +67 -0
- package/dist/client/tokens.js.map +1 -0
- package/dist/client/tokens.test.d.ts +2 -0
- package/dist/client/tokens.test.d.ts.map +1 -0
- package/dist/client/tokens.test.js +79 -0
- package/dist/client/tokens.test.js.map +1 -0
- package/dist/client/types.d.ts +49 -0
- package/dist/client/types.d.ts.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/schema/project.d.ts +40 -12
- package/dist/schema/project.d.ts.map +1 -1
- package/dist/schema/project.js +67 -13
- package/dist/schema/project.js.map +1 -1
- package/dist/schema/project.test.js +63 -10
- package/dist/schema/project.test.js.map +1 -1
- package/package.json +1 -1
- package/src/api/api.test.ts +265 -0
- package/src/api/api.ts +196 -0
- package/src/api/tokens.test.ts +253 -0
- package/src/api/tokens.ts +169 -0
- package/src/cli/commands/init.ts +5 -3
- package/src/client/base.test.ts +32 -0
- package/src/client/base.ts +60 -0
- package/src/client/tokens.test.ts +103 -0
- package/src/client/tokens.ts +69 -0
- package/src/client/types.ts +54 -0
- package/src/index.ts +20 -0
- package/src/schema/project.test.ts +75 -10
- package/src/schema/project.ts +134 -27
package/dist/schema/project.js
CHANGED
|
@@ -61,9 +61,16 @@ export function isProjectDefinition(value) {
|
|
|
61
61
|
/**
|
|
62
62
|
* Build a typed Tinybird client from datasources and pipes
|
|
63
63
|
*
|
|
64
|
-
* This is an internal helper that builds query
|
|
64
|
+
* This is an internal helper that builds pipe query and datasource ingest methods.
|
|
65
65
|
*/
|
|
66
66
|
function buildProjectClient(datasources, pipes, options) {
|
|
67
|
+
const RESERVED_CLIENT_NAMES = new Set([
|
|
68
|
+
"ingest",
|
|
69
|
+
"tokens",
|
|
70
|
+
"datasources",
|
|
71
|
+
"sql",
|
|
72
|
+
"client",
|
|
73
|
+
]);
|
|
67
74
|
// Lazy client initialization
|
|
68
75
|
let _client = null;
|
|
69
76
|
const getClient = async () => {
|
|
@@ -83,28 +90,44 @@ function buildProjectClient(datasources, pipes, options) {
|
|
|
83
90
|
}
|
|
84
91
|
return _client;
|
|
85
92
|
};
|
|
86
|
-
// Build query methods
|
|
87
|
-
const
|
|
93
|
+
// Build pipe accessors with query methods
|
|
94
|
+
const pipeAccessors = {};
|
|
88
95
|
for (const [name, pipe] of Object.entries(pipes)) {
|
|
96
|
+
if (name in datasources) {
|
|
97
|
+
throw new Error(`Name conflict in createTinybirdClient(): "${name}" is defined as both datasource and pipe. ` +
|
|
98
|
+
`Rename one of them to expose both as top-level client properties.`);
|
|
99
|
+
}
|
|
100
|
+
if (RESERVED_CLIENT_NAMES.has(name)) {
|
|
101
|
+
throw new Error(`Name conflict in createTinybirdClient(): "${name}" is reserved by the client API. ` +
|
|
102
|
+
`Rename this pipe to expose it as a top-level client property.`);
|
|
103
|
+
}
|
|
89
104
|
const endpointConfig = getEndpointConfig(pipe);
|
|
90
105
|
if (!endpointConfig) {
|
|
91
106
|
// Non-endpoint pipes get a stub that throws a clear error
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
`
|
|
107
|
+
pipeAccessors[name] = {
|
|
108
|
+
query: async () => {
|
|
109
|
+
throw new Error(`Pipe "${name}" is not exposed as an endpoint. ` +
|
|
110
|
+
`Set "endpoint: true" in the pipe definition to enable querying.`);
|
|
111
|
+
},
|
|
95
112
|
};
|
|
96
113
|
continue;
|
|
97
114
|
}
|
|
98
115
|
// Use the Tinybird pipe name (snake_case)
|
|
99
116
|
const tinybirdName = pipe._name;
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
117
|
+
pipeAccessors[name] = {
|
|
118
|
+
query: async (params) => {
|
|
119
|
+
const client = await getClient();
|
|
120
|
+
return client.query(tinybirdName, (params ?? {}));
|
|
121
|
+
},
|
|
103
122
|
};
|
|
104
123
|
}
|
|
105
124
|
// Build ingest methods for datasources
|
|
106
125
|
const ingestMethods = {};
|
|
107
126
|
for (const [name, datasource] of Object.entries(datasources)) {
|
|
127
|
+
if (RESERVED_CLIENT_NAMES.has(name)) {
|
|
128
|
+
throw new Error(`Name conflict in createTinybirdClient(): "${name}" is reserved by the client API. ` +
|
|
129
|
+
`Rename this datasource to expose it as a top-level client property.`);
|
|
130
|
+
}
|
|
108
131
|
// Use the Tinybird datasource name (snake_case)
|
|
109
132
|
const tinybirdName = datasource._name;
|
|
110
133
|
// Single event ingest
|
|
@@ -118,10 +141,40 @@ function buildProjectClient(datasources, pipes, options) {
|
|
|
118
141
|
await client.ingestBatch(tinybirdName, events);
|
|
119
142
|
};
|
|
120
143
|
}
|
|
144
|
+
// Build datasource accessors for top-level access
|
|
145
|
+
const datasourceAccessors = {};
|
|
146
|
+
for (const [name, datasource] of Object.entries(datasources)) {
|
|
147
|
+
const tinybirdName = datasource._name;
|
|
148
|
+
datasourceAccessors[name] = {
|
|
149
|
+
append: async (options) => {
|
|
150
|
+
const client = await getClient();
|
|
151
|
+
return client.datasources.append(tinybirdName, options);
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
}
|
|
121
155
|
// Create the typed client object
|
|
122
156
|
return {
|
|
123
|
-
|
|
157
|
+
...datasourceAccessors,
|
|
158
|
+
...pipeAccessors,
|
|
124
159
|
ingest: ingestMethods,
|
|
160
|
+
sql: async (sql, options = {}) => {
|
|
161
|
+
const client = await getClient();
|
|
162
|
+
return client.sql(sql, options);
|
|
163
|
+
},
|
|
164
|
+
get tokens() {
|
|
165
|
+
// Synchronous access - will throw if not initialized
|
|
166
|
+
if (!_client) {
|
|
167
|
+
throw new Error("Client not initialized. Call a query or ingest method first, or access client asynchronously.");
|
|
168
|
+
}
|
|
169
|
+
return _client.tokens;
|
|
170
|
+
},
|
|
171
|
+
get datasources() {
|
|
172
|
+
// Synchronous access - will throw if not initialized
|
|
173
|
+
if (!_client) {
|
|
174
|
+
throw new Error("Client not initialized. Call a query or ingest method first, or access client asynchronously.");
|
|
175
|
+
}
|
|
176
|
+
return _client.datasources;
|
|
177
|
+
},
|
|
125
178
|
get client() {
|
|
126
179
|
// Synchronous client access - will throw if not initialized
|
|
127
180
|
if (!_client) {
|
|
@@ -134,12 +187,13 @@ function buildProjectClient(datasources, pipes, options) {
|
|
|
134
187
|
/**
|
|
135
188
|
* Create a typed Tinybird client
|
|
136
189
|
*
|
|
137
|
-
* Creates a client with typed query and ingest methods based on
|
|
190
|
+
* Creates a client with typed pipe query and datasource ingest methods based on
|
|
191
|
+
* the provided
|
|
138
192
|
* datasources and pipes. This is the recommended way to create a Tinybird client
|
|
139
193
|
* when using the SDK's auto-generated client file.
|
|
140
194
|
*
|
|
141
195
|
* @param config - Client configuration with datasources and pipes
|
|
142
|
-
* @returns A typed client with query and ingest methods
|
|
196
|
+
* @returns A typed client with pipe query and datasource ingest methods
|
|
143
197
|
*
|
|
144
198
|
* @example
|
|
145
199
|
* ```ts
|
|
@@ -153,7 +207,7 @@ function buildProjectClient(datasources, pipes, options) {
|
|
|
153
207
|
* });
|
|
154
208
|
*
|
|
155
209
|
* // Query a pipe (fully typed)
|
|
156
|
-
* const result = await tinybird.query
|
|
210
|
+
* const result = await tinybird.topPages.query({
|
|
157
211
|
* start_date: new Date('2024-01-01'),
|
|
158
212
|
* end_date: new Date('2024-01-31'),
|
|
159
213
|
* });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/schema/project.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/schema/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,7 +49,7 @@ describe("Project Schema", () => {
|
|
|
49
49
|
expect(project.datasources.events).toBe(events);
|
|
50
50
|
expect(project.pipes.topEvents).toBe(topEvents);
|
|
51
51
|
});
|
|
52
|
-
it("creates tinybird client with
|
|
52
|
+
it("creates tinybird client with pipe accessors and ingest methods", () => {
|
|
53
53
|
const events = defineDatasource("events", {
|
|
54
54
|
schema: { id: t.string() },
|
|
55
55
|
});
|
|
@@ -62,11 +62,37 @@ describe("Project Schema", () => {
|
|
|
62
62
|
datasources: { events },
|
|
63
63
|
pipes: { topEvents },
|
|
64
64
|
});
|
|
65
|
-
expect(project.tinybird.query).toBeDefined();
|
|
66
65
|
expect(project.tinybird.ingest).toBeDefined();
|
|
67
|
-
expect(typeof project.tinybird.query
|
|
66
|
+
expect(typeof project.tinybird.topEvents.query).toBe("function");
|
|
68
67
|
expect(typeof project.tinybird.ingest.events).toBe("function");
|
|
69
68
|
expect(typeof project.tinybird.ingest.eventsBatch).toBe("function");
|
|
69
|
+
expect(project.tinybird.query).toBeUndefined();
|
|
70
|
+
expect(project.tinybird.pipes).toBeUndefined();
|
|
71
|
+
});
|
|
72
|
+
it("creates datasource accessors with append method", () => {
|
|
73
|
+
const events = defineDatasource("events", {
|
|
74
|
+
schema: { timestamp: t.dateTime() },
|
|
75
|
+
});
|
|
76
|
+
const project = defineProject({
|
|
77
|
+
datasources: { events },
|
|
78
|
+
});
|
|
79
|
+
expect(project.tinybird.events).toBeDefined();
|
|
80
|
+
expect(typeof project.tinybird.events.append).toBe("function");
|
|
81
|
+
});
|
|
82
|
+
it("creates multiple datasource accessors", () => {
|
|
83
|
+
const events = defineDatasource("events", {
|
|
84
|
+
schema: { timestamp: t.dateTime() },
|
|
85
|
+
});
|
|
86
|
+
const pageViews = defineDatasource("page_views", {
|
|
87
|
+
schema: { pathname: t.string() },
|
|
88
|
+
});
|
|
89
|
+
const project = defineProject({
|
|
90
|
+
datasources: { events, pageViews },
|
|
91
|
+
});
|
|
92
|
+
expect(project.tinybird.events).toBeDefined();
|
|
93
|
+
expect(project.tinybird.pageViews).toBeDefined();
|
|
94
|
+
expect(typeof project.tinybird.events.append).toBe("function");
|
|
95
|
+
expect(typeof project.tinybird.pageViews.append).toBe("function");
|
|
70
96
|
});
|
|
71
97
|
it("throws error when accessing client before initialization", () => {
|
|
72
98
|
const project = defineProject({});
|
|
@@ -82,7 +108,7 @@ describe("Project Schema", () => {
|
|
|
82
108
|
pipes: { internalPipe },
|
|
83
109
|
});
|
|
84
110
|
// Cast to any since the type system expects params but stub throws regardless
|
|
85
|
-
const queryFn = project.tinybird.query
|
|
111
|
+
const queryFn = project.tinybird.internalPipe.query;
|
|
86
112
|
await expect(queryFn()).rejects.toThrow('Pipe "internalPipe" is not exposed as an endpoint');
|
|
87
113
|
});
|
|
88
114
|
});
|
|
@@ -184,7 +210,7 @@ describe("Project Schema", () => {
|
|
|
184
210
|
afterEach(() => {
|
|
185
211
|
process.env.NODE_ENV = originalNodeEnv;
|
|
186
212
|
});
|
|
187
|
-
it("creates a client with
|
|
213
|
+
it("creates a client with pipe accessors and ingest methods", () => {
|
|
188
214
|
const events = defineDatasource("events", {
|
|
189
215
|
schema: { id: t.string() },
|
|
190
216
|
});
|
|
@@ -197,11 +223,41 @@ describe("Project Schema", () => {
|
|
|
197
223
|
datasources: { events },
|
|
198
224
|
pipes: { topEvents },
|
|
199
225
|
});
|
|
200
|
-
expect(client.query).toBeDefined();
|
|
201
226
|
expect(client.ingest).toBeDefined();
|
|
202
|
-
expect(
|
|
227
|
+
expect(client.sql).toBeDefined();
|
|
228
|
+
expect(typeof client.topEvents.query).toBe("function");
|
|
203
229
|
expect(typeof client.ingest.events).toBe("function");
|
|
204
230
|
expect(typeof client.ingest.eventsBatch).toBe("function");
|
|
231
|
+
expect(typeof client.sql).toBe("function");
|
|
232
|
+
expect(client.query).toBeUndefined();
|
|
233
|
+
expect(client.pipes).toBeUndefined();
|
|
234
|
+
});
|
|
235
|
+
it("creates datasource accessors with append method", () => {
|
|
236
|
+
const events = defineDatasource("events", {
|
|
237
|
+
schema: { id: t.string() },
|
|
238
|
+
});
|
|
239
|
+
const client = createTinybirdClient({
|
|
240
|
+
datasources: { events },
|
|
241
|
+
pipes: {},
|
|
242
|
+
});
|
|
243
|
+
expect(client.events).toBeDefined();
|
|
244
|
+
expect(typeof client.events.append).toBe("function");
|
|
245
|
+
});
|
|
246
|
+
it("creates multiple datasource accessors", () => {
|
|
247
|
+
const events = defineDatasource("events", {
|
|
248
|
+
schema: { id: t.string() },
|
|
249
|
+
});
|
|
250
|
+
const pageViews = defineDatasource("page_views", {
|
|
251
|
+
schema: { pathname: t.string() },
|
|
252
|
+
});
|
|
253
|
+
const client = createTinybirdClient({
|
|
254
|
+
datasources: { events, pageViews },
|
|
255
|
+
pipes: {},
|
|
256
|
+
});
|
|
257
|
+
expect(client.events).toBeDefined();
|
|
258
|
+
expect(client.pageViews).toBeDefined();
|
|
259
|
+
expect(typeof client.events.append).toBe("function");
|
|
260
|
+
expect(typeof client.pageViews.append).toBe("function");
|
|
205
261
|
});
|
|
206
262
|
it("accepts devMode option", () => {
|
|
207
263
|
const events = defineDatasource("events", {
|
|
@@ -213,14 +269,12 @@ describe("Project Schema", () => {
|
|
|
213
269
|
pipes: {},
|
|
214
270
|
devMode: true,
|
|
215
271
|
});
|
|
216
|
-
expect(clientWithDevMode.query).toBeDefined();
|
|
217
272
|
expect(clientWithDevMode.ingest).toBeDefined();
|
|
218
273
|
const clientWithoutDevMode = createTinybirdClient({
|
|
219
274
|
datasources: { events },
|
|
220
275
|
pipes: {},
|
|
221
276
|
devMode: false,
|
|
222
277
|
});
|
|
223
|
-
expect(clientWithoutDevMode.query).toBeDefined();
|
|
224
278
|
expect(clientWithoutDevMode.ingest).toBeDefined();
|
|
225
279
|
});
|
|
226
280
|
it("accepts all configuration options", () => {
|
|
@@ -236,7 +290,6 @@ describe("Project Schema", () => {
|
|
|
236
290
|
configDir: "/custom/config/dir",
|
|
237
291
|
devMode: true,
|
|
238
292
|
});
|
|
239
|
-
expect(client.query).toBeDefined();
|
|
240
293
|
expect(client.ingest).toBeDefined();
|
|
241
294
|
});
|
|
242
295
|
it("throws error when accessing underlying client before initialization", () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.test.js","sourceRoot":"","sources":["../../src/schema/project.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project.test.js","sourceRoot":"","sources":["../../src/schema/project.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/api/api.test.ts
CHANGED
|
@@ -215,6 +215,49 @@ describe("TinybirdApi", () => {
|
|
|
215
215
|
expect(rawSql).toBe("SELECT 1 AS value");
|
|
216
216
|
});
|
|
217
217
|
|
|
218
|
+
it("creates tokens via tinybirdApi.createToken", async () => {
|
|
219
|
+
let expirationTime: string | null = null;
|
|
220
|
+
let fromParam: string | null = null;
|
|
221
|
+
let contentType: string | null = null;
|
|
222
|
+
let parsedBody: Record<string, unknown> | null = null;
|
|
223
|
+
|
|
224
|
+
server.use(
|
|
225
|
+
http.post(`${BASE_URL}/v0/tokens/`, async ({ request }) => {
|
|
226
|
+
const url = new URL(request.url);
|
|
227
|
+
expirationTime = url.searchParams.get("expiration_time");
|
|
228
|
+
fromParam = url.searchParams.get("from");
|
|
229
|
+
contentType = request.headers.get("content-type");
|
|
230
|
+
parsedBody = (await request.json()) as Record<string, unknown>;
|
|
231
|
+
|
|
232
|
+
return HttpResponse.json({
|
|
233
|
+
token: "eyJ.test",
|
|
234
|
+
});
|
|
235
|
+
})
|
|
236
|
+
);
|
|
237
|
+
|
|
238
|
+
const api = createTinybirdApi({
|
|
239
|
+
baseUrl: BASE_URL,
|
|
240
|
+
token: "p.default-token",
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
const result = await api.createToken(
|
|
244
|
+
{
|
|
245
|
+
name: "user_token",
|
|
246
|
+
scopes: [{ type: "PIPES:READ", resource: "pipe_a" }],
|
|
247
|
+
},
|
|
248
|
+
{ expirationTime: 1700000000 }
|
|
249
|
+
);
|
|
250
|
+
|
|
251
|
+
expect(result).toEqual({ token: "eyJ.test" });
|
|
252
|
+
expect(expirationTime).toBe("1700000000");
|
|
253
|
+
expect(fromParam).toBe(TINYBIRD_FROM_PARAM);
|
|
254
|
+
expect(contentType).toBe("application/json");
|
|
255
|
+
expect(parsedBody).toEqual({
|
|
256
|
+
name: "user_token",
|
|
257
|
+
scopes: [{ type: "PIPES:READ", resource: "pipe_a" }],
|
|
258
|
+
});
|
|
259
|
+
});
|
|
260
|
+
|
|
218
261
|
it("returns zero counts for empty ingest batches", async () => {
|
|
219
262
|
const api = createTinybirdApi({
|
|
220
263
|
baseUrl: BASE_URL,
|
|
@@ -292,4 +335,226 @@ describe("TinybirdApi", () => {
|
|
|
292
335
|
},
|
|
293
336
|
});
|
|
294
337
|
});
|
|
338
|
+
|
|
339
|
+
describe("appendDatasource", () => {
|
|
340
|
+
it("appends data from URL", async () => {
|
|
341
|
+
let datasourceName: string | null = null;
|
|
342
|
+
let modeParam: string | null = null;
|
|
343
|
+
let formatParam: string | null = null;
|
|
344
|
+
let contentType: string | null = null;
|
|
345
|
+
let requestBody: string | null = null;
|
|
346
|
+
|
|
347
|
+
server.use(
|
|
348
|
+
http.post(`${BASE_URL}/v0/datasources`, async ({ request }) => {
|
|
349
|
+
const url = new URL(request.url);
|
|
350
|
+
datasourceName = url.searchParams.get("name");
|
|
351
|
+
modeParam = url.searchParams.get("mode");
|
|
352
|
+
formatParam = url.searchParams.get("format");
|
|
353
|
+
contentType = request.headers.get("content-type");
|
|
354
|
+
requestBody = await request.text();
|
|
355
|
+
|
|
356
|
+
return HttpResponse.json({
|
|
357
|
+
successful_rows: 100,
|
|
358
|
+
quarantined_rows: 0,
|
|
359
|
+
import_id: "import_123",
|
|
360
|
+
});
|
|
361
|
+
})
|
|
362
|
+
);
|
|
363
|
+
|
|
364
|
+
const api = createTinybirdApi({
|
|
365
|
+
baseUrl: BASE_URL,
|
|
366
|
+
token: "p.default-token",
|
|
367
|
+
});
|
|
368
|
+
|
|
369
|
+
const result = await api.appendDatasource("events", {
|
|
370
|
+
url: "https://example.com/data.csv",
|
|
371
|
+
});
|
|
372
|
+
|
|
373
|
+
expect(result).toEqual({
|
|
374
|
+
successful_rows: 100,
|
|
375
|
+
quarantined_rows: 0,
|
|
376
|
+
import_id: "import_123",
|
|
377
|
+
});
|
|
378
|
+
expect(datasourceName).toBe("events");
|
|
379
|
+
expect(modeParam).toBe("append");
|
|
380
|
+
expect(formatParam).toBe("csv");
|
|
381
|
+
expect(contentType).toBe("application/x-www-form-urlencoded");
|
|
382
|
+
expect(requestBody).toBe("url=https%3A%2F%2Fexample.com%2Fdata.csv");
|
|
383
|
+
});
|
|
384
|
+
|
|
385
|
+
it("detects ndjson format from URL extension", async () => {
|
|
386
|
+
let formatParam: string | null = null;
|
|
387
|
+
|
|
388
|
+
server.use(
|
|
389
|
+
http.post(`${BASE_URL}/v0/datasources`, async ({ request }) => {
|
|
390
|
+
const url = new URL(request.url);
|
|
391
|
+
formatParam = url.searchParams.get("format");
|
|
392
|
+
return HttpResponse.json({ successful_rows: 1, quarantined_rows: 0 });
|
|
393
|
+
})
|
|
394
|
+
);
|
|
395
|
+
|
|
396
|
+
const api = createTinybirdApi({
|
|
397
|
+
baseUrl: BASE_URL,
|
|
398
|
+
token: "p.default-token",
|
|
399
|
+
});
|
|
400
|
+
|
|
401
|
+
await api.appendDatasource("events", {
|
|
402
|
+
url: "https://example.com/data.ndjson",
|
|
403
|
+
});
|
|
404
|
+
|
|
405
|
+
expect(formatParam).toBe("ndjson");
|
|
406
|
+
});
|
|
407
|
+
|
|
408
|
+
it("detects jsonl as ndjson format", async () => {
|
|
409
|
+
let formatParam: string | null = null;
|
|
410
|
+
|
|
411
|
+
server.use(
|
|
412
|
+
http.post(`${BASE_URL}/v0/datasources`, async ({ request }) => {
|
|
413
|
+
const url = new URL(request.url);
|
|
414
|
+
formatParam = url.searchParams.get("format");
|
|
415
|
+
return HttpResponse.json({ successful_rows: 1, quarantined_rows: 0 });
|
|
416
|
+
})
|
|
417
|
+
);
|
|
418
|
+
|
|
419
|
+
const api = createTinybirdApi({
|
|
420
|
+
baseUrl: BASE_URL,
|
|
421
|
+
token: "p.default-token",
|
|
422
|
+
});
|
|
423
|
+
|
|
424
|
+
await api.appendDatasource("events", {
|
|
425
|
+
url: "https://example.com/data.jsonl",
|
|
426
|
+
});
|
|
427
|
+
|
|
428
|
+
expect(formatParam).toBe("ndjson");
|
|
429
|
+
});
|
|
430
|
+
|
|
431
|
+
it("detects parquet format from URL extension", async () => {
|
|
432
|
+
let formatParam: string | null = null;
|
|
433
|
+
|
|
434
|
+
server.use(
|
|
435
|
+
http.post(`${BASE_URL}/v0/datasources`, async ({ request }) => {
|
|
436
|
+
const url = new URL(request.url);
|
|
437
|
+
formatParam = url.searchParams.get("format");
|
|
438
|
+
return HttpResponse.json({ successful_rows: 1, quarantined_rows: 0 });
|
|
439
|
+
})
|
|
440
|
+
);
|
|
441
|
+
|
|
442
|
+
const api = createTinybirdApi({
|
|
443
|
+
baseUrl: BASE_URL,
|
|
444
|
+
token: "p.default-token",
|
|
445
|
+
});
|
|
446
|
+
|
|
447
|
+
await api.appendDatasource("events", {
|
|
448
|
+
url: "https://example.com/data.parquet",
|
|
449
|
+
});
|
|
450
|
+
|
|
451
|
+
expect(formatParam).toBe("parquet");
|
|
452
|
+
});
|
|
453
|
+
|
|
454
|
+
it("strips query string when detecting format", async () => {
|
|
455
|
+
let formatParam: string | null = null;
|
|
456
|
+
|
|
457
|
+
server.use(
|
|
458
|
+
http.post(`${BASE_URL}/v0/datasources`, async ({ request }) => {
|
|
459
|
+
const url = new URL(request.url);
|
|
460
|
+
formatParam = url.searchParams.get("format");
|
|
461
|
+
return HttpResponse.json({ successful_rows: 1, quarantined_rows: 0 });
|
|
462
|
+
})
|
|
463
|
+
);
|
|
464
|
+
|
|
465
|
+
const api = createTinybirdApi({
|
|
466
|
+
baseUrl: BASE_URL,
|
|
467
|
+
token: "p.default-token",
|
|
468
|
+
});
|
|
469
|
+
|
|
470
|
+
await api.appendDatasource("events", {
|
|
471
|
+
url: "https://example.com/data.csv?token=abc",
|
|
472
|
+
});
|
|
473
|
+
|
|
474
|
+
expect(formatParam).toBe("csv");
|
|
475
|
+
});
|
|
476
|
+
|
|
477
|
+
it("includes CSV dialect options", async () => {
|
|
478
|
+
let delimiterParam: string | null = null;
|
|
479
|
+
let newLineParam: string | null = null;
|
|
480
|
+
let escapeCharParam: string | null = null;
|
|
481
|
+
|
|
482
|
+
server.use(
|
|
483
|
+
http.post(`${BASE_URL}/v0/datasources`, async ({ request }) => {
|
|
484
|
+
const url = new URL(request.url);
|
|
485
|
+
delimiterParam = url.searchParams.get("dialect_delimiter");
|
|
486
|
+
newLineParam = url.searchParams.get("dialect_new_line");
|
|
487
|
+
escapeCharParam = url.searchParams.get("dialect_escapechar");
|
|
488
|
+
return HttpResponse.json({ successful_rows: 1, quarantined_rows: 0 });
|
|
489
|
+
})
|
|
490
|
+
);
|
|
491
|
+
|
|
492
|
+
const api = createTinybirdApi({
|
|
493
|
+
baseUrl: BASE_URL,
|
|
494
|
+
token: "p.default-token",
|
|
495
|
+
});
|
|
496
|
+
|
|
497
|
+
await api.appendDatasource("events", {
|
|
498
|
+
url: "https://example.com/data.csv",
|
|
499
|
+
csvDialect: {
|
|
500
|
+
delimiter: ";",
|
|
501
|
+
newLine: "\r\n",
|
|
502
|
+
escapeChar: "\\",
|
|
503
|
+
},
|
|
504
|
+
});
|
|
505
|
+
|
|
506
|
+
expect(delimiterParam).toBe(";");
|
|
507
|
+
expect(newLineParam).toBe("\r\n");
|
|
508
|
+
expect(escapeCharParam).toBe("\\");
|
|
509
|
+
});
|
|
510
|
+
|
|
511
|
+
it("throws error when neither url nor file is provided", async () => {
|
|
512
|
+
const api = createTinybirdApi({
|
|
513
|
+
baseUrl: BASE_URL,
|
|
514
|
+
token: "p.default-token",
|
|
515
|
+
});
|
|
516
|
+
|
|
517
|
+
await expect(api.appendDatasource("events", {})).rejects.toThrow(
|
|
518
|
+
"Either 'url' or 'file' must be provided in options"
|
|
519
|
+
);
|
|
520
|
+
});
|
|
521
|
+
|
|
522
|
+
it("throws error when both url and file are provided", async () => {
|
|
523
|
+
const api = createTinybirdApi({
|
|
524
|
+
baseUrl: BASE_URL,
|
|
525
|
+
token: "p.default-token",
|
|
526
|
+
});
|
|
527
|
+
|
|
528
|
+
await expect(
|
|
529
|
+
api.appendDatasource("events", {
|
|
530
|
+
url: "https://example.com/data.csv",
|
|
531
|
+
file: "./data.csv",
|
|
532
|
+
})
|
|
533
|
+
).rejects.toThrow("Only one of 'url' or 'file' can be provided, not both");
|
|
534
|
+
});
|
|
535
|
+
|
|
536
|
+
it("allows per-request token override", async () => {
|
|
537
|
+
let authorizationHeader: string | null = null;
|
|
538
|
+
|
|
539
|
+
server.use(
|
|
540
|
+
http.post(`${BASE_URL}/v0/datasources`, async ({ request }) => {
|
|
541
|
+
authorizationHeader = request.headers.get("Authorization");
|
|
542
|
+
return HttpResponse.json({ successful_rows: 1, quarantined_rows: 0 });
|
|
543
|
+
})
|
|
544
|
+
);
|
|
545
|
+
|
|
546
|
+
const api = createTinybirdApi({
|
|
547
|
+
baseUrl: BASE_URL,
|
|
548
|
+
token: "p.default-token",
|
|
549
|
+
});
|
|
550
|
+
|
|
551
|
+
await api.appendDatasource(
|
|
552
|
+
"events",
|
|
553
|
+
{ url: "https://example.com/data.csv" },
|
|
554
|
+
{ token: "p.override-token" }
|
|
555
|
+
);
|
|
556
|
+
|
|
557
|
+
expect(authorizationHeader).toBe("Bearer p.override-token");
|
|
558
|
+
});
|
|
559
|
+
});
|
|
295
560
|
});
|