@tinybirdco/sdk 0.0.45 → 0.0.47

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 (46) hide show
  1. package/README.md +8 -8
  2. package/dist/api/api.d.ts.map +1 -1
  3. package/dist/api/api.js +8 -3
  4. package/dist/api/api.js.map +1 -1
  5. package/dist/api/api.test.js +24 -6
  6. package/dist/api/api.test.js.map +1 -1
  7. package/dist/cli/commands/init.d.ts +1 -0
  8. package/dist/cli/commands/init.d.ts.map +1 -1
  9. package/dist/cli/commands/init.js +6 -2
  10. package/dist/cli/commands/init.js.map +1 -1
  11. package/dist/cli/commands/init.test.js +69 -1
  12. package/dist/cli/commands/init.test.js.map +1 -1
  13. package/dist/cli/commands/login.d.ts.map +1 -1
  14. package/dist/cli/commands/login.js +3 -1
  15. package/dist/cli/commands/login.js.map +1 -1
  16. package/dist/cli/commands/login.test.js +9 -3
  17. package/dist/cli/commands/login.test.js.map +1 -1
  18. package/dist/client/base.d.ts +1 -1
  19. package/dist/client/base.js +1 -1
  20. package/dist/generator/datasource.test.js +4 -4
  21. package/dist/generator/datasource.test.js.map +1 -1
  22. package/dist/infer/index.d.ts +3 -3
  23. package/dist/schema/params.d.ts +3 -3
  24. package/dist/schema/params.d.ts.map +1 -1
  25. package/dist/schema/params.js +3 -3
  26. package/dist/schema/params.js.map +1 -1
  27. package/dist/schema/project.d.ts +3 -3
  28. package/dist/schema/project.js +3 -3
  29. package/dist/schema/types.d.ts +8 -8
  30. package/dist/schema/types.d.ts.map +1 -1
  31. package/dist/schema/types.js +4 -4
  32. package/dist/schema/types.js.map +1 -1
  33. package/extension/tinybird-ts-sdk-extension-0.1.0.vsix +0 -0
  34. package/package.json +3 -2
  35. package/src/api/api.test.ts +32 -6
  36. package/src/api/api.ts +14 -3
  37. package/src/cli/commands/init.test.ts +89 -1
  38. package/src/cli/commands/init.ts +10 -2
  39. package/src/cli/commands/login.test.ts +13 -3
  40. package/src/cli/commands/login.ts +3 -1
  41. package/src/client/base.ts +1 -1
  42. package/src/generator/datasource.test.ts +4 -4
  43. package/src/infer/index.ts +3 -3
  44. package/src/schema/params.ts +3 -3
  45. package/src/schema/project.ts +3 -3
  46. package/src/schema/types.ts +10 -10
@@ -95,14 +95,14 @@ export declare const t: {
95
95
  readonly decimal: (precision: number, scale: number) => TypeValidator<number, `Decimal(${number}, ${number})`, TypeModifiers>;
96
96
  /** Bool - boolean value (true/false) */
97
97
  readonly bool: () => TypeValidator<boolean, "Bool", TypeModifiers>;
98
- /** Date - date without time (YYYY-MM-DD) */
99
- readonly date: () => TypeValidator<Date, "Date", TypeModifiers>;
100
- /** Date32 - extended date range */
101
- readonly date32: () => TypeValidator<Date, "Date32", TypeModifiers>;
102
- /** DateTime - date and time with second precision */
103
- readonly dateTime: (timezone?: string) => TypeValidator<Date, `DateTime('${string}')`, TypeModifiers> | TypeValidator<Date, "DateTime", TypeModifiers>;
104
- /** DateTime64 - date and time with sub-second precision */
105
- readonly dateTime64: (precision?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9, timezone?: string) => TypeValidator<Date, `DateTime64(${number}, '${string}')`, TypeModifiers> | TypeValidator<Date, `DateTime64(${number})`, TypeModifiers>;
98
+ /** Date - string in YYYY-MM-DD format (e.g. 2024-01-15) */
99
+ readonly date: () => TypeValidator<string, "Date", TypeModifiers>;
100
+ /** Date32 - string in YYYY-MM-DD format (e.g. 2024-01-15, extended date range) */
101
+ readonly date32: () => TypeValidator<string, "Date32", TypeModifiers>;
102
+ /** DateTime - string in YYYY-MM-DD HH:MM:SS format (e.g. 2024-01-15 10:30:00) */
103
+ readonly dateTime: (timezone?: string) => TypeValidator<string, `DateTime('${string}')`, TypeModifiers> | TypeValidator<string, "DateTime", TypeModifiers>;
104
+ /** DateTime64 - string in YYYY-MM-DD HH:MM:SS[.fraction] format (e.g. 2024-01-15 10:30:00.123) */
105
+ readonly dateTime64: (precision?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9, timezone?: string) => TypeValidator<string, `DateTime64(${number}, '${string}')`, TypeModifiers> | TypeValidator<string, `DateTime64(${number})`, TypeModifiers>;
106
106
  /** Array(T) - array of elements of type T */
107
107
  readonly array: <TElement extends TypeValidator<unknown, string, TypeModifiers>>(element: TElement) => TypeValidator<TElement["_type"][], `Array(${TElement["_tinybirdType"]})`, TypeModifiers>;
108
108
  /** Tuple(T1, T2, ...) - tuple of heterogeneous types */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"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"}
@@ -110,15 +110,15 @@ export const t = {
110
110
  /** Bool - boolean value (true/false) */
111
111
  bool: () => createValidator("Bool"),
112
112
  // ============ Date/Time Types ============
113
- /** Date - date without time (YYYY-MM-DD) */
113
+ /** Date - string in YYYY-MM-DD format (e.g. 2024-01-15) */
114
114
  date: () => createValidator("Date"),
115
- /** Date32 - extended date range */
115
+ /** Date32 - string in YYYY-MM-DD format (e.g. 2024-01-15, extended date range) */
116
116
  date32: () => createValidator("Date32"),
117
- /** DateTime - date and time with second precision */
117
+ /** DateTime - string in YYYY-MM-DD HH:MM:SS format (e.g. 2024-01-15 10:30:00) */
118
118
  dateTime: (timezone) => timezone
119
119
  ? createValidator(`DateTime('${timezone}')`)
120
120
  : createValidator("DateTime"),
121
- /** DateTime64 - date and time with sub-second precision */
121
+ /** DateTime64 - string in YYYY-MM-DD HH:MM:SS[.fraction] format (e.g. 2024-01-15 10:30:00.123) */
122
122
  dateTime64: (precision = 3, timezone) => timezone
123
123
  ? createValidator(`DateTime64(${precision}, '${timezone}')`)
124
124
  : createValidator(`DateTime64(${precision})`),
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tinybirdco/sdk",
3
- "version": "0.0.45",
3
+ "version": "0.0.47",
4
4
  "description": "TypeScript SDK for Tinybird Forward - define datasources and pipes as TypeScript",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -42,7 +42,8 @@
42
42
  "files": [
43
43
  "dist",
44
44
  "bin",
45
- "src"
45
+ "src",
46
+ "extension/*.vsix"
46
47
  ],
47
48
  "keywords": [
48
49
  "tinybird",
@@ -116,7 +116,7 @@ describe("TinybirdApi", () => {
116
116
  });
117
117
 
118
118
  const result = await api.query<{ pathname: string; views: number }>("top_pages", {
119
- start_date: new Date("2024-01-01T00:00:00.000Z"),
119
+ start_date: "2024-01-01 00:00:00",
120
120
  limit: 5,
121
121
  tags: ["a", "b"],
122
122
  });
@@ -124,11 +124,24 @@ describe("TinybirdApi", () => {
124
124
  expect(result.rows).toBe(1);
125
125
  expect(result.data[0]).toEqual({ pathname: "/", views: 1 });
126
126
  expect(fromParam).toBe(TINYBIRD_FROM_PARAM);
127
- expect(startDateParam).toBe("2024-01-01T00:00:00.000Z");
127
+ expect(startDateParam).toBe("2024-01-01 00:00:00");
128
128
  expect(limitParam).toBe("5");
129
129
  expect(tagsParams).toEqual(["a", "b"]);
130
130
  });
131
131
 
132
+ it("throws when query params include Date values", async () => {
133
+ const api = createTinybirdApi({
134
+ baseUrl: BASE_URL,
135
+ token: "p.default-token",
136
+ });
137
+
138
+ await expect(
139
+ api.query("top_pages", {
140
+ start_date: new Date("2024-01-01T00:00:00.000Z"),
141
+ })
142
+ ).rejects.toThrow("Date values are not supported for query parameter");
143
+ });
144
+
132
145
  it("ingests rows via tinybirdApi.ingest", async () => {
133
146
  let datasourceName: string | null = null;
134
147
  let waitParam: string | null = null;
@@ -160,11 +173,11 @@ describe("TinybirdApi", () => {
160
173
  });
161
174
 
162
175
  const result = await api.ingest("events", {
163
- timestamp: new Date("2024-01-01T00:00:00.000Z"),
176
+ timestamp: "2024-01-01 00:00:00",
164
177
  count: 10n,
165
178
  payload: new Map([["k", "v"]]),
166
179
  nested: {
167
- when: new Date("2024-01-02T00:00:00.000Z"),
180
+ when: "2024-01-02 00:00:00",
168
181
  },
169
182
  });
170
183
 
@@ -174,13 +187,26 @@ describe("TinybirdApi", () => {
174
187
  expect(fromParam).toBe(TINYBIRD_FROM_PARAM);
175
188
  expect(contentType).toBe("application/x-ndjson");
176
189
  expect(parsedBody).toEqual({
177
- timestamp: "2024-01-01T00:00:00.000Z",
190
+ timestamp: "2024-01-01 00:00:00",
178
191
  count: "10",
179
192
  payload: { k: "v" },
180
- nested: { when: "2024-01-02T00:00:00.000Z" },
193
+ nested: { when: "2024-01-02 00:00:00" },
181
194
  });
182
195
  });
183
196
 
197
+ it("throws when ingest payload includes Date values", async () => {
198
+ const api = createTinybirdApi({
199
+ baseUrl: BASE_URL,
200
+ token: "p.default-token",
201
+ });
202
+
203
+ await expect(
204
+ api.ingest("events", {
205
+ timestamp: new Date("2024-01-01T00:00:00.000Z"),
206
+ })
207
+ ).rejects.toThrow("Date values are not supported in ingest payloads");
208
+ });
209
+
184
210
  it("executes raw SQL via tinybirdApi.sql", async () => {
185
211
  let rawSql: string | null = null;
186
212
  let contentType: string | null = null;
package/src/api/api.ts CHANGED
@@ -212,14 +212,22 @@ export class TinybirdApi {
212
212
 
213
213
  if (Array.isArray(value)) {
214
214
  for (const item of value) {
215
+ if (item instanceof Date) {
216
+ throw new Error(
217
+ `Date values are not supported for query parameter "${key}". ` +
218
+ "Pass a string in YYYY-MM-DD HH:MM:SS format (or YYYY-MM-DD HH:MM:SS.sss for DateTime64)."
219
+ );
220
+ }
215
221
  url.searchParams.append(key, String(item));
216
222
  }
217
223
  continue;
218
224
  }
219
225
 
220
226
  if (value instanceof Date) {
221
- url.searchParams.set(key, value.toISOString());
222
- continue;
227
+ throw new Error(
228
+ `Date values are not supported for query parameter "${key}". ` +
229
+ "Pass a string in YYYY-MM-DD HH:MM:SS format (or YYYY-MM-DD HH:MM:SS.sss for DateTime64)."
230
+ );
223
231
  }
224
232
 
225
233
  url.searchParams.set(key, String(value));
@@ -581,7 +589,10 @@ export class TinybirdApi {
581
589
 
582
590
  private serializeValue(value: unknown): unknown {
583
591
  if (value instanceof Date) {
584
- return value.toISOString();
592
+ throw new Error(
593
+ "Date values are not supported in ingest payloads. " +
594
+ "Pass strings in YYYY-MM-DD, YYYY-MM-DD HH:MM:SS, or YYYY-MM-DD HH:MM:SS.sss format."
595
+ );
585
596
  }
586
597
 
587
598
  if (value instanceof Map) {
@@ -2,7 +2,7 @@ import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
2
2
  import * as fs from "fs";
3
3
  import * as path from "path";
4
4
  import * as os from "os";
5
- import { runInit, findExistingDatafiles } from "./init.js";
5
+ import { runInit, findExistingDatafiles, findSyntaxHighlightingVsix } from "./init.js";
6
6
 
7
7
  // Mock the auth module to avoid browser login
8
8
  vi.mock("../auth.js", () => ({
@@ -17,11 +17,23 @@ vi.mock("../region-selector.js", () => ({
17
17
  }),
18
18
  }));
19
19
 
20
+ import { browserLogin } from "../auth.js";
21
+ import { selectRegion } from "../region-selector.js";
22
+
23
+ const mockedBrowserLogin = vi.mocked(browserLogin);
24
+ const mockedSelectRegion = vi.mocked(selectRegion);
25
+
20
26
  describe("Init Command", () => {
21
27
  let tempDir: string;
22
28
 
23
29
  beforeEach(() => {
24
30
  tempDir = fs.mkdtempSync(path.join(os.tmpdir(), "tinybird-init-test-"));
31
+ vi.clearAllMocks();
32
+ mockedSelectRegion.mockResolvedValue({
33
+ success: true,
34
+ apiHost: "https://api.tinybird.co",
35
+ });
36
+ mockedBrowserLogin.mockResolvedValue({ success: false });
25
37
  });
26
38
 
27
39
  afterEach(() => {
@@ -532,4 +544,80 @@ describe("Init Command", () => {
532
544
  expect(result.installedTools).toBeUndefined();
533
545
  });
534
546
  });
547
+
548
+ describe("syntax highlighting VSIX lookup", () => {
549
+ it("finds the packaged VSIX when cwd is outside a git repo", () => {
550
+ const originalCwd = process.cwd();
551
+ const externalCwd = fs.mkdtempSync(path.join(os.tmpdir(), "tinybird-init-cwd-"));
552
+
553
+ try {
554
+ process.chdir(externalCwd);
555
+ const vsixPath = findSyntaxHighlightingVsix(externalCwd);
556
+
557
+ expect(vsixPath).toBeDefined();
558
+ expect(path.basename(vsixPath ?? "")).toMatch(
559
+ /^tinybird-ts-sdk-extension.*\.vsix$/
560
+ );
561
+ } finally {
562
+ process.chdir(originalCwd);
563
+ fs.rmSync(externalCwd, { recursive: true, force: true });
564
+ }
565
+ });
566
+ });
567
+
568
+ describe("login flow", () => {
569
+ it("saves TINYBIRD_URL during init login", async () => {
570
+ mockedBrowserLogin.mockResolvedValue({
571
+ success: true,
572
+ token: "new-token-123",
573
+ baseUrl: "https://api.us-east.tinybird.co",
574
+ workspaceName: "test-workspace",
575
+ });
576
+
577
+ const result = await runInit({
578
+ cwd: tempDir,
579
+ skipLogin: false,
580
+ devMode: "branch",
581
+ clientPath: "lib/tinybird.ts",
582
+ });
583
+
584
+ expect(result.success).toBe(true);
585
+ expect(result.loggedIn).toBe(true);
586
+
587
+ const envContent = fs.readFileSync(
588
+ path.join(tempDir, ".env.local"),
589
+ "utf-8"
590
+ );
591
+ expect(envContent).toContain("TINYBIRD_TOKEN=new-token-123");
592
+ expect(envContent).toContain("TINYBIRD_URL=https://api.us-east.tinybird.co");
593
+ });
594
+
595
+ it("uses selected region as TINYBIRD_URL when auth response has no baseUrl", async () => {
596
+ mockedSelectRegion.mockResolvedValue({
597
+ success: true,
598
+ apiHost: "https://api.eu-west.tinybird.co",
599
+ });
600
+ mockedBrowserLogin.mockResolvedValue({
601
+ success: true,
602
+ token: "new-token-456",
603
+ workspaceName: "test-workspace",
604
+ });
605
+
606
+ const result = await runInit({
607
+ cwd: tempDir,
608
+ skipLogin: false,
609
+ devMode: "branch",
610
+ clientPath: "lib/tinybird.ts",
611
+ });
612
+
613
+ expect(result.success).toBe(true);
614
+ expect(result.loggedIn).toBe(true);
615
+
616
+ const envContent = fs.readFileSync(
617
+ path.join(tempDir, ".env.local"),
618
+ "utf-8"
619
+ );
620
+ expect(envContent).toContain("TINYBIRD_URL=https://api.eu-west.tinybird.co");
621
+ });
622
+ });
535
623
  });
@@ -6,6 +6,7 @@ import * as fs from "fs";
6
6
  import * as path from "path";
7
7
  import * as p from "@clack/prompts";
8
8
  import pc from "picocolors";
9
+ import { fileURLToPath } from "url";
9
10
  import {
10
11
  hasValidToken,
11
12
  getRelativeTinybirdDir,
@@ -16,7 +17,7 @@ import {
16
17
  type DevMode,
17
18
  } from "../config.js";
18
19
  import { browserLogin } from "../auth.js";
19
- import { saveTinybirdToken } from "../env.js";
20
+ import { saveTinybirdBaseUrl, saveTinybirdToken } from "../env.js";
20
21
  import { selectRegion } from "../region-selector.js";
21
22
  import { getGitRoot } from "../git.js";
22
23
  import { fetchAllResources } from "../../api/resources.js";
@@ -999,6 +1000,7 @@ export async function runInit(options: InitOptions = {}): Promise<InitResult> {
999
1000
 
1000
1001
  // Update config with selected region's baseUrl
1001
1002
  const baseUrl = authResult.baseUrl ?? regionResult.apiHost;
1003
+ saveTinybirdBaseUrl(cwd, baseUrl);
1002
1004
  const currentConfigPath = findExistingConfigPath(cwd);
1003
1005
  if (currentConfigPath && currentConfigPath.endsWith(".json")) {
1004
1006
  updateConfig(currentConfigPath, { baseUrl });
@@ -1133,6 +1135,10 @@ const SKILLS_INSTALL_ARGS = [
1133
1135
  ];
1134
1136
  const SYNTAX_EXTENSION_DIR = path.join("extension");
1135
1137
  const SYNTAX_EXTENSION_PREFIX = "tinybird-ts-sdk-extension";
1138
+ const SDK_MODULE_ROOT = path.resolve(
1139
+ path.dirname(fileURLToPath(import.meta.url)),
1140
+ "../../.."
1141
+ );
1136
1142
 
1137
1143
  async function installSelectedTools(
1138
1144
  cwd: string,
@@ -1294,8 +1300,10 @@ function isCommandAvailable(command: string): boolean {
1294
1300
  }
1295
1301
  }
1296
1302
 
1297
- function findSyntaxHighlightingVsix(cwd: string): string | undefined {
1303
+ export function findSyntaxHighlightingVsix(cwd: string): string | undefined {
1298
1304
  const searchRoots = new Set<string>();
1305
+ searchRoots.add(SDK_MODULE_ROOT);
1306
+
1299
1307
  const gitRoot = getGitRoot();
1300
1308
  if (gitRoot) {
1301
1309
  searchRoots.add(gitRoot);
@@ -161,7 +161,7 @@ describe("Login Command", () => {
161
161
  );
162
162
  });
163
163
 
164
- it("creates .env.local with token", async () => {
164
+ it("creates .env.local with token and base URL", async () => {
165
165
  mockedBrowserLogin.mockResolvedValue({
166
166
  success: true,
167
167
  token: "new-token-123",
@@ -178,19 +178,20 @@ describe("Login Command", () => {
178
178
  "utf-8"
179
179
  );
180
180
  expect(envContent).toContain("TINYBIRD_TOKEN=new-token-123");
181
+ expect(envContent).toContain("TINYBIRD_URL=https://api.tinybird.co");
181
182
  });
182
183
 
183
184
  it("updates existing token in .env.local", async () => {
184
185
  // Create existing .env.local with old token
185
186
  fs.writeFileSync(
186
187
  path.join(tempDir, ".env.local"),
187
- "TINYBIRD_TOKEN=old-token\nOTHER_VAR=value\n"
188
+ "TINYBIRD_TOKEN=old-token\nTINYBIRD_URL=https://old.tinybird.co\nOTHER_VAR=value\n"
188
189
  );
189
190
 
190
191
  mockedBrowserLogin.mockResolvedValue({
191
192
  success: true,
192
193
  token: "new-token-456",
193
- baseUrl: "https://api.tinybird.co",
194
+ baseUrl: "https://api.us-east.tinybird.co",
194
195
  workspaceName: "test-workspace",
195
196
  });
196
197
 
@@ -203,8 +204,10 @@ describe("Login Command", () => {
203
204
  "utf-8"
204
205
  );
205
206
  expect(envContent).toContain("TINYBIRD_TOKEN=new-token-456");
207
+ expect(envContent).toContain("TINYBIRD_URL=https://api.us-east.tinybird.co");
206
208
  expect(envContent).toContain("OTHER_VAR=value");
207
209
  expect(envContent).not.toContain("old-token");
210
+ expect(envContent).not.toContain("https://old.tinybird.co");
208
211
  });
209
212
 
210
213
  it("appends token to existing .env.local without TINYBIRD_TOKEN", async () => {
@@ -231,6 +234,7 @@ describe("Login Command", () => {
231
234
  );
232
235
  expect(envContent).toContain("OTHER_VAR=value");
233
236
  expect(envContent).toContain("TINYBIRD_TOKEN=new-token-789");
237
+ expect(envContent).toContain("TINYBIRD_URL=https://api.tinybird.co");
234
238
  });
235
239
 
236
240
  it("saves .env.local in same directory as tinybird.json (monorepo)", async () => {
@@ -312,6 +316,12 @@ describe("Login Command", () => {
312
316
  );
313
317
  // Original baseUrl preserved
314
318
  expect(config.baseUrl).toBe("https://api.tinybird.co");
319
+
320
+ const envContent = fs.readFileSync(
321
+ path.join(tempDir, ".env.local"),
322
+ "utf-8"
323
+ );
324
+ expect(envContent).toContain("TINYBIRD_URL=https://api.tinybird.co");
315
325
  });
316
326
  });
317
327
 
@@ -5,7 +5,7 @@
5
5
  import * as path from "path";
6
6
  import { browserLogin, type LoginOptions, type AuthResult } from "../auth.js";
7
7
  import { updateConfig, findConfigFile } from "../config.js";
8
- import { saveTinybirdToken } from "../env.js";
8
+ import { saveTinybirdBaseUrl, saveTinybirdToken } from "../env.js";
9
9
  import { getApiHostWithRegionSelection } from "../region-selector.js";
10
10
 
11
11
  /**
@@ -87,6 +87,8 @@ export async function runLogin(options: RunLoginOptions = {}): Promise<LoginResu
87
87
  // Save token to .env.local (in same directory as config file)
88
88
  try {
89
89
  saveTinybirdToken(configDir, authResult.token);
90
+ const baseUrl = authResult.baseUrl ?? apiHost;
91
+ saveTinybirdBaseUrl(configDir, baseUrl);
90
92
 
91
93
  // Update baseUrl in config file if it changed (only for JSON configs)
92
94
  if (authResult.baseUrl && configPath.endsWith(".json")) {
@@ -53,7 +53,7 @@ interface ResolvedTokenInfo {
53
53
  *
54
54
  * // Ingest an event
55
55
  * await client.ingest('events', {
56
- * timestamp: new Date().toISOString(),
56
+ * timestamp: '2024-01-15 10:30:00',
57
57
  * event_type: 'page_view',
58
58
  * user_id: 'user_123',
59
59
  * });
@@ -180,10 +180,10 @@ describe('Datasource Generator', () => {
180
180
  expect(result.content).toContain('is_deleted Bool `json:$.is_deleted` DEFAULT 0');
181
181
  });
182
182
 
183
- it('formats Date default values for DateTime type', () => {
183
+ it('formats string default values for DateTime type', () => {
184
184
  const ds = defineDatasource('test_ds', {
185
185
  schema: {
186
- created_at: t.dateTime().default(new Date('2024-01-15T10:30:00Z')),
186
+ created_at: t.dateTime().default('2024-01-15 10:30:00'),
187
187
  },
188
188
  });
189
189
 
@@ -191,10 +191,10 @@ describe('Datasource Generator', () => {
191
191
  expect(result.content).toContain("created_at DateTime `json:$.created_at` DEFAULT '2024-01-15 10:30:00'");
192
192
  });
193
193
 
194
- it('formats Date default values for Date type', () => {
194
+ it('formats string default values for Date type', () => {
195
195
  const ds = defineDatasource('test_ds', {
196
196
  schema: {
197
- birth_date: t.date().default(new Date('2024-01-15T10:30:00Z')),
197
+ birth_date: t.date().default('2024-01-15'),
198
198
  },
199
199
  });
200
200
 
@@ -52,7 +52,7 @@ type InferColumn<T> = T extends TypeValidator<infer U, string, TypeModifiers>
52
52
  * });
53
53
  *
54
54
  * type EventRow = InferRow<typeof events>;
55
- * // { id: string; count: number; timestamp: Date }
55
+ * // { id: string; count: number; timestamp: string }
56
56
  * ```
57
57
  */
58
58
  export type InferRow<T> = T extends DatasourceDefinition<infer S>
@@ -156,10 +156,10 @@ export type InferOutputRow<T> = T extends PipeDefinition<ParamsDefinition, infer
156
156
  * });
157
157
  *
158
158
  * type Event = InferEvent<typeof events>;
159
- * // { id: string; timestamp: Date }
159
+ * // { id: string; timestamp: string }
160
160
  *
161
161
  * // Use for type-safe event ingestion
162
- * const event: Event = { id: '123', timestamp: new Date() };
162
+ * const event: Event = { id: '123', timestamp: '2024-01-01 00:00:00' };
163
163
  * ```
164
164
  */
165
165
  export type InferEvent<T> = InferRow<T>;
@@ -173,13 +173,13 @@ export const p = {
173
173
 
174
174
  // ============ Date/Time Types ============
175
175
 
176
- /** Date parameter (YYYY-MM-DD format) */
176
+ /** Date parameter (YYYY-MM-DD format, e.g. 2024-01-15) */
177
177
  date: () => createParamValidator<string, "Date">("Date"),
178
178
 
179
- /** DateTime parameter (YYYY-MM-DD HH:MM:SS format) */
179
+ /** DateTime parameter (YYYY-MM-DD HH:MM:SS format, e.g. 2024-01-15 10:30:00) */
180
180
  dateTime: () => createParamValidator<string, "DateTime">("DateTime"),
181
181
 
182
- /** DateTime64 parameter with sub-second precision */
182
+ /** DateTime64 parameter (YYYY-MM-DD HH:MM:SS[.fraction] format, e.g. 2024-01-15 10:30:00.123) */
183
183
  dateTime64: () => createParamValidator<string, "DateTime64">("DateTime64"),
184
184
 
185
185
  // ============ Array Types ============
@@ -272,13 +272,13 @@ interface TinybirdConstructor {
272
272
  *
273
273
  * // Query a pipe (fully typed)
274
274
  * const result = await tinybird.topPages.query({
275
- * start_date: new Date('2024-01-01'),
276
- * end_date: new Date('2024-01-31'),
275
+ * start_date: '2024-01-01 00:00:00',
276
+ * end_date: '2024-01-31 23:59:59',
277
277
  * });
278
278
  *
279
279
  * // Ingest an event (fully typed)
280
280
  * await tinybird.pageViews.ingest({
281
- * timestamp: new Date(),
281
+ * timestamp: '2024-01-15 10:30:00',
282
282
  * pathname: '/home',
283
283
  * session_id: 'abc123',
284
284
  * });
@@ -203,25 +203,25 @@ export const t = {
203
203
 
204
204
  // ============ Date/Time Types ============
205
205
 
206
- /** Date - date without time (YYYY-MM-DD) */
207
- date: () => createValidator<Date, "Date">("Date"),
206
+ /** Date - string in YYYY-MM-DD format (e.g. 2024-01-15) */
207
+ date: () => createValidator<string, "Date">("Date"),
208
208
 
209
- /** Date32 - extended date range */
210
- date32: () => createValidator<Date, "Date32">("Date32"),
209
+ /** Date32 - string in YYYY-MM-DD format (e.g. 2024-01-15, extended date range) */
210
+ date32: () => createValidator<string, "Date32">("Date32"),
211
211
 
212
- /** DateTime - date and time with second precision */
212
+ /** DateTime - string in YYYY-MM-DD HH:MM:SS format (e.g. 2024-01-15 10:30:00) */
213
213
  dateTime: (timezone?: string) =>
214
214
  timezone
215
- ? createValidator<Date, `DateTime('${string}')`>(`DateTime('${timezone}')`)
216
- : createValidator<Date, "DateTime">("DateTime"),
215
+ ? createValidator<string, `DateTime('${string}')`>(`DateTime('${timezone}')`)
216
+ : createValidator<string, "DateTime">("DateTime"),
217
217
 
218
- /** DateTime64 - date and time with sub-second precision */
218
+ /** DateTime64 - string in YYYY-MM-DD HH:MM:SS[.fraction] format (e.g. 2024-01-15 10:30:00.123) */
219
219
  dateTime64: (precision: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 = 3, timezone?: string) =>
220
220
  timezone
221
- ? createValidator<Date, `DateTime64(${number}, '${string}')`>(
221
+ ? createValidator<string, `DateTime64(${number}, '${string}')`>(
222
222
  `DateTime64(${precision}, '${timezone}')`
223
223
  )
224
- : createValidator<Date, `DateTime64(${number})`>(`DateTime64(${precision})`),
224
+ : createValidator<string, `DateTime64(${number})`>(`DateTime64(${precision})`),
225
225
 
226
226
  // ============ Complex Types ============
227
227