@tinybirdco/sdk 0.0.3 → 0.0.6

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 (122) hide show
  1. package/README.md +87 -14
  2. package/dist/api/deploy.d.ts +41 -3
  3. package/dist/api/deploy.d.ts.map +1 -1
  4. package/dist/api/deploy.js +141 -19
  5. package/dist/api/deploy.js.map +1 -1
  6. package/dist/api/deploy.test.js +77 -29
  7. package/dist/api/deploy.test.js.map +1 -1
  8. package/dist/api/local.d.ts +92 -0
  9. package/dist/api/local.d.ts.map +1 -0
  10. package/dist/api/local.js +176 -0
  11. package/dist/api/local.js.map +1 -0
  12. package/dist/api/local.test.d.ts +2 -0
  13. package/dist/api/local.test.d.ts.map +1 -0
  14. package/dist/api/local.test.js +182 -0
  15. package/dist/api/local.test.js.map +1 -0
  16. package/dist/api/resources.d.ts +178 -0
  17. package/dist/api/resources.d.ts.map +1 -0
  18. package/dist/api/resources.js +244 -0
  19. package/dist/api/resources.js.map +1 -0
  20. package/dist/api/resources.test.d.ts +2 -0
  21. package/dist/api/resources.test.d.ts.map +1 -0
  22. package/dist/api/resources.test.js +255 -0
  23. package/dist/api/resources.test.js.map +1 -0
  24. package/dist/cli/commands/build.d.ts +6 -4
  25. package/dist/cli/commands/build.d.ts.map +1 -1
  26. package/dist/cli/commands/build.js +95 -47
  27. package/dist/cli/commands/build.js.map +1 -1
  28. package/dist/cli/commands/deploy.d.ts +39 -0
  29. package/dist/cli/commands/deploy.d.ts.map +1 -0
  30. package/dist/cli/commands/deploy.js +90 -0
  31. package/dist/cli/commands/deploy.js.map +1 -0
  32. package/dist/cli/commands/dev.d.ts +9 -2
  33. package/dist/cli/commands/dev.d.ts.map +1 -1
  34. package/dist/cli/commands/dev.js +60 -31
  35. package/dist/cli/commands/dev.js.map +1 -1
  36. package/dist/cli/commands/init.d.ts +24 -1
  37. package/dist/cli/commands/init.d.ts.map +1 -1
  38. package/dist/cli/commands/init.js +174 -23
  39. package/dist/cli/commands/init.js.map +1 -1
  40. package/dist/cli/commands/init.test.js +190 -30
  41. package/dist/cli/commands/init.test.js.map +1 -1
  42. package/dist/cli/config.d.ts +14 -0
  43. package/dist/cli/config.d.ts.map +1 -1
  44. package/dist/cli/config.js +7 -0
  45. package/dist/cli/config.js.map +1 -1
  46. package/dist/cli/config.test.js +29 -0
  47. package/dist/cli/config.test.js.map +1 -1
  48. package/dist/cli/index.js +107 -11
  49. package/dist/cli/index.js.map +1 -1
  50. package/dist/cli/utils/package-manager.d.ts +8 -0
  51. package/dist/cli/utils/package-manager.d.ts.map +1 -0
  52. package/dist/cli/utils/package-manager.js +45 -0
  53. package/dist/cli/utils/package-manager.js.map +1 -0
  54. package/dist/cli/utils/package-manager.test.d.ts +2 -0
  55. package/dist/cli/utils/package-manager.test.d.ts.map +1 -0
  56. package/dist/cli/utils/package-manager.test.js +85 -0
  57. package/dist/cli/utils/package-manager.test.js.map +1 -0
  58. package/dist/codegen/index.d.ts +39 -0
  59. package/dist/codegen/index.d.ts.map +1 -0
  60. package/dist/codegen/index.js +300 -0
  61. package/dist/codegen/index.js.map +1 -0
  62. package/dist/codegen/index.test.d.ts +2 -0
  63. package/dist/codegen/index.test.d.ts.map +1 -0
  64. package/dist/codegen/index.test.js +310 -0
  65. package/dist/codegen/index.test.js.map +1 -0
  66. package/dist/codegen/type-mapper.d.ts +20 -0
  67. package/dist/codegen/type-mapper.d.ts.map +1 -0
  68. package/dist/codegen/type-mapper.js +238 -0
  69. package/dist/codegen/type-mapper.js.map +1 -0
  70. package/dist/codegen/type-mapper.test.d.ts +2 -0
  71. package/dist/codegen/type-mapper.test.d.ts.map +1 -0
  72. package/dist/codegen/type-mapper.test.js +167 -0
  73. package/dist/codegen/type-mapper.test.js.map +1 -0
  74. package/dist/codegen/utils.d.ts +46 -0
  75. package/dist/codegen/utils.d.ts.map +1 -0
  76. package/dist/codegen/utils.js +141 -0
  77. package/dist/codegen/utils.js.map +1 -0
  78. package/dist/codegen/utils.test.d.ts +2 -0
  79. package/dist/codegen/utils.test.d.ts.map +1 -0
  80. package/dist/codegen/utils.test.js +178 -0
  81. package/dist/codegen/utils.test.js.map +1 -0
  82. package/dist/generator/index.d.ts +3 -0
  83. package/dist/generator/index.d.ts.map +1 -1
  84. package/dist/generator/index.js +17 -1
  85. package/dist/generator/index.js.map +1 -1
  86. package/dist/generator/index.test.js +104 -1
  87. package/dist/generator/index.test.js.map +1 -1
  88. package/dist/generator/loader.d.ts +15 -0
  89. package/dist/generator/loader.d.ts.map +1 -1
  90. package/dist/generator/loader.js +24 -0
  91. package/dist/generator/loader.js.map +1 -1
  92. package/dist/test/handlers.d.ts +49 -0
  93. package/dist/test/handlers.d.ts.map +1 -1
  94. package/dist/test/handlers.js +45 -0
  95. package/dist/test/handlers.js.map +1 -1
  96. package/package.json +4 -2
  97. package/src/api/deploy.test.ts +135 -34
  98. package/src/api/deploy.ts +203 -23
  99. package/src/api/local.test.ts +250 -0
  100. package/src/api/local.ts +270 -0
  101. package/src/api/resources.test.ts +332 -0
  102. package/src/api/resources.ts +554 -0
  103. package/src/cli/commands/build.ts +115 -53
  104. package/src/cli/commands/deploy.ts +126 -0
  105. package/src/cli/commands/dev.ts +81 -36
  106. package/src/cli/commands/init.test.ts +239 -30
  107. package/src/cli/commands/init.ts +243 -26
  108. package/src/cli/config.test.ts +47 -0
  109. package/src/cli/config.ts +20 -0
  110. package/src/cli/index.ts +120 -11
  111. package/src/cli/utils/package-manager.test.ts +118 -0
  112. package/src/cli/utils/package-manager.ts +44 -0
  113. package/src/codegen/index.test.ts +367 -0
  114. package/src/codegen/index.ts +379 -0
  115. package/src/codegen/type-mapper.test.ts +224 -0
  116. package/src/codegen/type-mapper.ts +265 -0
  117. package/src/codegen/utils.test.ts +221 -0
  118. package/src/codegen/utils.ts +174 -0
  119. package/src/generator/index.test.ts +121 -1
  120. package/src/generator/index.ts +19 -1
  121. package/src/generator/loader.ts +43 -0
  122. package/src/test/handlers.ts +58 -0
@@ -3,7 +3,9 @@
3
3
  */
4
4
  import * as fs from "fs";
5
5
  import * as path from "path";
6
- import { hasValidToken, getTinybirdDir, getRelativeTinybirdDir, getConfigPath, updateConfig, } from "../config.js";
6
+ import * as p from "@clack/prompts";
7
+ import pc from "picocolors";
8
+ import { hasValidToken, getRelativeTinybirdDir, getConfigPath, updateConfig, } from "../config.js";
7
9
  import { browserLogin } from "../auth.js";
8
10
  import { saveTinybirdToken } from "../env.js";
9
11
  /**
@@ -31,9 +33,9 @@ export const pageViews = defineDatasource("page_views", {
31
33
  export type PageViewsRow = InferRow<typeof pageViews>;
32
34
  `;
33
35
  /**
34
- * Default starter content for pipes.ts
36
+ * Default starter content for endpoints.ts
35
37
  */
36
- const PIPES_CONTENT = `import { defineEndpoint, node, t, p, type InferParams, type InferOutputRow } from "@tinybirdco/sdk";
38
+ const ENDPOINTS_CONTENT = `import { defineEndpoint, node, t, p, type InferParams, type InferOutputRow } from "@tinybirdco/sdk";
37
39
 
38
40
  /**
39
41
  * Top pages endpoint - get the most visited pages
@@ -78,7 +80,7 @@ const CLIENT_CONTENT = `/**
78
80
  * Tinybird Client
79
81
  *
80
82
  * This file defines the typed Tinybird client for your project.
81
- * Add your datasources and pipes here as you create them.
83
+ * Add your datasources and endpoints here as you create them.
82
84
  */
83
85
 
84
86
  import { createTinybirdClient } from "@tinybirdco/sdk";
@@ -87,7 +89,7 @@ import { createTinybirdClient } from "@tinybirdco/sdk";
87
89
  import { pageViews, type PageViewsRow } from "./datasources";
88
90
 
89
91
  // Import endpoints and their types
90
- import { topPages, type TopPagesParams, type TopPagesOutput } from "./pipes";
92
+ import { topPages, type TopPagesParams, type TopPagesOutput } from "./endpoints";
91
93
 
92
94
  // Create the typed Tinybird client
93
95
  export const tinybird = createTinybirdClient({
@@ -104,22 +106,68 @@ export { pageViews, topPages };
104
106
  /**
105
107
  * Default config content generator
106
108
  */
107
- function createDefaultConfig(tinybirdDir) {
109
+ function createDefaultConfig(tinybirdDir, devMode, additionalIncludes = []) {
110
+ const include = [
111
+ `${tinybirdDir}/datasources.ts`,
112
+ `${tinybirdDir}/endpoints.ts`,
113
+ ...additionalIncludes,
114
+ ];
108
115
  return {
109
- include: [
110
- `${tinybirdDir}/datasources.ts`,
111
- `${tinybirdDir}/pipes.ts`,
112
- ],
116
+ include,
113
117
  token: "${TINYBIRD_TOKEN}",
114
118
  baseUrl: "https://api.tinybird.co",
119
+ devMode,
115
120
  };
116
121
  }
122
+ /**
123
+ * Find existing .datasource and .pipe files in the repository
124
+ *
125
+ * @param cwd - Working directory to search from
126
+ * @param maxDepth - Maximum directory depth to search (default: 5)
127
+ * @returns Array of relative file paths
128
+ */
129
+ export function findExistingDatafiles(cwd, maxDepth = 5) {
130
+ const files = [];
131
+ function searchDir(dir, depth) {
132
+ if (depth > maxDepth)
133
+ return;
134
+ let entries;
135
+ try {
136
+ entries = fs.readdirSync(dir, { withFileTypes: true });
137
+ }
138
+ catch {
139
+ return; // Skip directories we can't read
140
+ }
141
+ for (const entry of entries) {
142
+ const fullPath = path.join(dir, entry.name);
143
+ // Skip node_modules and hidden directories
144
+ if (entry.isDirectory() &&
145
+ (entry.name === "node_modules" ||
146
+ entry.name.startsWith(".") ||
147
+ entry.name === "dist" ||
148
+ entry.name === "build")) {
149
+ continue;
150
+ }
151
+ if (entry.isDirectory()) {
152
+ searchDir(fullPath, depth + 1);
153
+ }
154
+ else if (entry.isFile() &&
155
+ (entry.name.endsWith(".datasource") || entry.name.endsWith(".pipe"))) {
156
+ // Convert to relative path
157
+ const relativePath = path.relative(cwd, fullPath);
158
+ files.push(relativePath);
159
+ }
160
+ }
161
+ }
162
+ searchDir(cwd, 0);
163
+ return files.sort();
164
+ }
117
165
  /**
118
166
  * Run the init command
119
167
  *
120
168
  * Creates:
121
169
  * - tinybird.json in the project root
122
- * - src/tinybird/ folder with datasources.ts, pipes.ts, and client.ts
170
+ * - src/tinybird/ folder with datasources.ts, endpoints.ts, and client.ts
123
171
  *
124
172
  * @param options - Init options
125
173
  * @returns Init result
@@ -130,12 +178,76 @@ export async function runInit(options = {}) {
130
178
  const skipLogin = options.skipLogin ?? false;
131
179
  const created = [];
132
180
  const skipped = [];
181
+ let existingDatafiles = [];
182
+ // Check for existing .datasource and .pipe files
183
+ const foundDatafiles = findExistingDatafiles(cwd);
184
+ // Determine devMode - prompt if not provided
185
+ let devMode = options.devMode ?? "branch";
186
+ if (!options.devMode) {
187
+ // Show interactive prompt for workflow selection
188
+ p.intro(pc.cyan("tinybird init"));
189
+ const workflowChoice = await p.select({
190
+ message: "How do you want to develop with Tinybird?",
191
+ options: [
192
+ {
193
+ value: "branch",
194
+ label: "Branches",
195
+ hint: "Use Tinybird Cloud with git-based branching",
196
+ },
197
+ {
198
+ value: "local",
199
+ label: "Tinybird Local",
200
+ hint: "Run your own Tinybird instance locally",
201
+ },
202
+ ],
203
+ });
204
+ if (p.isCancel(workflowChoice)) {
205
+ p.cancel("Init cancelled.");
206
+ return {
207
+ success: false,
208
+ created: [],
209
+ skipped: [],
210
+ error: "Cancelled by user",
211
+ };
212
+ }
213
+ devMode = workflowChoice;
214
+ }
133
215
  // Determine tinybird folder path based on project structure
134
- const tinybirdDir = getTinybirdDir(cwd);
135
- const relativeTinybirdDir = getRelativeTinybirdDir(cwd);
216
+ const defaultRelativePath = getRelativeTinybirdDir(cwd);
217
+ let relativeTinybirdDir = options.clientPath ?? defaultRelativePath;
218
+ if (!options.clientPath && !options.devMode) {
219
+ // Ask user to confirm or change the client path
220
+ const clientPathChoice = await p.text({
221
+ message: "Where should we generate the Tinybird client?",
222
+ placeholder: defaultRelativePath,
223
+ defaultValue: defaultRelativePath,
224
+ });
225
+ if (p.isCancel(clientPathChoice)) {
226
+ p.cancel("Init cancelled.");
227
+ return {
228
+ success: false,
229
+ created: [],
230
+ skipped: [],
231
+ error: "Cancelled by user",
232
+ };
233
+ }
234
+ relativeTinybirdDir = clientPathChoice || defaultRelativePath;
235
+ }
236
+ // Ask about existing datafiles if found
237
+ if (foundDatafiles.length > 0 && !options.skipDatafilePrompt) {
238
+ const includeDatafiles = options.includeExistingDatafiles ??
239
+ (await promptForExistingDatafiles(foundDatafiles));
240
+ if (includeDatafiles) {
241
+ existingDatafiles = foundDatafiles;
242
+ }
243
+ }
244
+ else if (options.includeExistingDatafiles && foundDatafiles.length > 0) {
245
+ existingDatafiles = foundDatafiles;
246
+ }
247
+ const tinybirdDir = path.join(cwd, relativeTinybirdDir);
136
248
  // File paths
137
249
  const datasourcesPath = path.join(tinybirdDir, "datasources.ts");
138
- const pipesPath = path.join(tinybirdDir, "pipes.ts");
250
+ const endpointsPath = path.join(tinybirdDir, "endpoints.ts");
139
251
  const clientPath = path.join(tinybirdDir, "client.ts");
140
252
  // Create config file (tinybird.json)
141
253
  const configPath = getConfigPath(cwd);
@@ -144,7 +256,7 @@ export async function runInit(options = {}) {
144
256
  }
145
257
  else {
146
258
  try {
147
- const config = createDefaultConfig(relativeTinybirdDir);
259
+ const config = createDefaultConfig(relativeTinybirdDir, devMode, existingDatafiles);
148
260
  fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n");
149
261
  created.push("tinybird.json");
150
262
  }
@@ -187,21 +299,21 @@ export async function runInit(options = {}) {
187
299
  };
188
300
  }
189
301
  }
190
- // Create pipes.ts
191
- if (fs.existsSync(pipesPath) && !force) {
192
- skipped.push(`${relativeTinybirdDir}/pipes.ts`);
302
+ // Create endpoints.ts
303
+ if (fs.existsSync(endpointsPath) && !force) {
304
+ skipped.push(`${relativeTinybirdDir}/endpoints.ts`);
193
305
  }
194
306
  else {
195
307
  try {
196
- fs.writeFileSync(pipesPath, PIPES_CONTENT);
197
- created.push(`${relativeTinybirdDir}/pipes.ts`);
308
+ fs.writeFileSync(endpointsPath, ENDPOINTS_CONTENT);
309
+ created.push(`${relativeTinybirdDir}/endpoints.ts`);
198
310
  }
199
311
  catch (error) {
200
312
  return {
201
313
  success: false,
202
314
  created,
203
315
  skipped,
204
- error: `Failed to create pipes.ts: ${error.message}`,
316
+ error: `Failed to create endpoints.ts: ${error.message}`,
205
317
  };
206
318
  }
207
319
  }
@@ -240,6 +352,10 @@ export async function runInit(options = {}) {
240
352
  packageJson.scripts["tinybird:build"] = "tinybird build";
241
353
  modified = true;
242
354
  }
355
+ if (!packageJson.scripts["tinybird:deploy"]) {
356
+ packageJson.scripts["tinybird:deploy"] = "tinybird deploy";
357
+ modified = true;
358
+ }
243
359
  if (modified) {
244
360
  fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + "\n");
245
361
  created.push("package.json (added tinybird scripts)");
@@ -261,8 +377,9 @@ export async function runInit(options = {}) {
261
377
  created.push(".env.local");
262
378
  }
263
379
  // If custom base URL, update tinybird.json
264
- if (authResult.baseUrl && authResult.baseUrl !== "https://api.tinybird.co") {
265
- updateConfig(configPath, { baseUrl: authResult.baseUrl });
380
+ const baseUrl = authResult.baseUrl ?? "https://api.tinybird.co";
381
+ if (baseUrl !== "https://api.tinybird.co") {
382
+ updateConfig(configPath, { baseUrl });
266
383
  }
267
384
  return {
268
385
  success: true,
@@ -271,6 +388,9 @@ export async function runInit(options = {}) {
271
388
  loggedIn: true,
272
389
  workspaceName: authResult.workspaceName,
273
390
  userEmail: authResult.userEmail,
391
+ devMode,
392
+ clientPath: relativeTinybirdDir,
393
+ existingDatafiles: existingDatafiles.length > 0 ? existingDatafiles : undefined,
274
394
  };
275
395
  }
276
396
  catch (error) {
@@ -281,6 +401,9 @@ export async function runInit(options = {}) {
281
401
  created,
282
402
  skipped,
283
403
  loggedIn: false,
404
+ devMode,
405
+ clientPath: relativeTinybirdDir,
406
+ existingDatafiles: existingDatafiles.length > 0 ? existingDatafiles : undefined,
284
407
  };
285
408
  }
286
409
  }
@@ -291,6 +414,9 @@ export async function runInit(options = {}) {
291
414
  created,
292
415
  skipped,
293
416
  loggedIn: false,
417
+ devMode,
418
+ clientPath: relativeTinybirdDir,
419
+ existingDatafiles: existingDatafiles.length > 0 ? existingDatafiles : undefined,
294
420
  };
295
421
  }
296
422
  }
@@ -298,6 +424,31 @@ export async function runInit(options = {}) {
298
424
  success: true,
299
425
  created,
300
426
  skipped,
427
+ devMode,
428
+ clientPath: relativeTinybirdDir,
429
+ existingDatafiles: existingDatafiles.length > 0 ? existingDatafiles : undefined,
301
430
  };
302
431
  }
432
+ /**
433
+ * Prompt user about including existing datafiles
434
+ */
435
+ async function promptForExistingDatafiles(datafiles) {
436
+ const datasourceCount = datafiles.filter((f) => f.endsWith(".datasource")).length;
437
+ const pipeCount = datafiles.filter((f) => f.endsWith(".pipe")).length;
438
+ const parts = [];
439
+ if (datasourceCount > 0) {
440
+ parts.push(`${datasourceCount} .datasource file${datasourceCount > 1 ? "s" : ""}`);
441
+ }
442
+ if (pipeCount > 0) {
443
+ parts.push(`${pipeCount} .pipe file${pipeCount > 1 ? "s" : ""}`);
444
+ }
445
+ const confirmInclude = await p.confirm({
446
+ message: `Found ${parts.join(" and ")} in your project. Include them in tinybird.json?`,
447
+ initialValue: true,
448
+ });
449
+ if (p.isCancel(confirmInclude)) {
450
+ return false;
451
+ }
452
+ return confirmInclude;
453
+ }
303
454
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}