@tinybirdco/sdk 0.0.41 → 0.0.43

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 (95) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +29 -3
  3. package/dist/api/resources.d.ts +72 -1
  4. package/dist/api/resources.d.ts.map +1 -1
  5. package/dist/api/resources.js +197 -1
  6. package/dist/api/resources.js.map +1 -1
  7. package/dist/api/resources.test.js +82 -1
  8. package/dist/api/resources.test.js.map +1 -1
  9. package/dist/cli/commands/migrate.d.ts +11 -0
  10. package/dist/cli/commands/migrate.d.ts.map +1 -0
  11. package/dist/cli/commands/migrate.js +196 -0
  12. package/dist/cli/commands/migrate.js.map +1 -0
  13. package/dist/cli/commands/migrate.test.d.ts +2 -0
  14. package/dist/cli/commands/migrate.test.d.ts.map +1 -0
  15. package/dist/cli/commands/migrate.test.js +473 -0
  16. package/dist/cli/commands/migrate.test.js.map +1 -0
  17. package/dist/cli/commands/pull.d.ts +59 -0
  18. package/dist/cli/commands/pull.d.ts.map +1 -0
  19. package/dist/cli/commands/pull.js +104 -0
  20. package/dist/cli/commands/pull.js.map +1 -0
  21. package/dist/cli/commands/pull.test.d.ts +2 -0
  22. package/dist/cli/commands/pull.test.d.ts.map +1 -0
  23. package/dist/cli/commands/pull.test.js +140 -0
  24. package/dist/cli/commands/pull.test.js.map +1 -0
  25. package/dist/cli/config.d.ts +10 -0
  26. package/dist/cli/config.d.ts.map +1 -1
  27. package/dist/cli/config.js +22 -0
  28. package/dist/cli/config.js.map +1 -1
  29. package/dist/cli/index.js +77 -0
  30. package/dist/cli/index.js.map +1 -1
  31. package/dist/generator/client.js +2 -2
  32. package/dist/generator/client.js.map +1 -1
  33. package/dist/index.d.ts +1 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +1 -1
  36. package/dist/index.js.map +1 -1
  37. package/dist/migrate/discovery.d.ts +7 -0
  38. package/dist/migrate/discovery.d.ts.map +1 -0
  39. package/dist/migrate/discovery.js +125 -0
  40. package/dist/migrate/discovery.js.map +1 -0
  41. package/dist/migrate/emit-ts.d.ts +4 -0
  42. package/dist/migrate/emit-ts.d.ts.map +1 -0
  43. package/dist/migrate/emit-ts.js +387 -0
  44. package/dist/migrate/emit-ts.js.map +1 -0
  45. package/dist/migrate/parse-connection.d.ts +3 -0
  46. package/dist/migrate/parse-connection.d.ts.map +1 -0
  47. package/dist/migrate/parse-connection.js +74 -0
  48. package/dist/migrate/parse-connection.js.map +1 -0
  49. package/dist/migrate/parse-datasource.d.ts +3 -0
  50. package/dist/migrate/parse-datasource.d.ts.map +1 -0
  51. package/dist/migrate/parse-datasource.js +324 -0
  52. package/dist/migrate/parse-datasource.js.map +1 -0
  53. package/dist/migrate/parse-pipe.d.ts +3 -0
  54. package/dist/migrate/parse-pipe.d.ts.map +1 -0
  55. package/dist/migrate/parse-pipe.js +332 -0
  56. package/dist/migrate/parse-pipe.js.map +1 -0
  57. package/dist/migrate/parse.d.ts +3 -0
  58. package/dist/migrate/parse.d.ts.map +1 -0
  59. package/dist/migrate/parse.js +18 -0
  60. package/dist/migrate/parse.js.map +1 -0
  61. package/dist/migrate/parser-utils.d.ts +20 -0
  62. package/dist/migrate/parser-utils.d.ts.map +1 -0
  63. package/dist/migrate/parser-utils.js +130 -0
  64. package/dist/migrate/parser-utils.js.map +1 -0
  65. package/dist/migrate/types.d.ts +110 -0
  66. package/dist/migrate/types.d.ts.map +1 -0
  67. package/dist/migrate/types.js +2 -0
  68. package/dist/migrate/types.js.map +1 -0
  69. package/dist/schema/project.d.ts +20 -9
  70. package/dist/schema/project.d.ts.map +1 -1
  71. package/dist/schema/project.js +127 -136
  72. package/dist/schema/project.js.map +1 -1
  73. package/dist/schema/project.test.js +22 -0
  74. package/dist/schema/project.test.js.map +1 -1
  75. package/package.json +2 -1
  76. package/src/api/resources.test.ts +121 -0
  77. package/src/api/resources.ts +292 -1
  78. package/src/cli/commands/migrate.test.ts +564 -0
  79. package/src/cli/commands/migrate.ts +240 -0
  80. package/src/cli/commands/pull.test.ts +173 -0
  81. package/src/cli/commands/pull.ts +177 -0
  82. package/src/cli/config.ts +26 -0
  83. package/src/cli/index.ts +112 -0
  84. package/src/generator/client.ts +2 -2
  85. package/src/index.ts +1 -1
  86. package/src/migrate/discovery.ts +151 -0
  87. package/src/migrate/emit-ts.ts +469 -0
  88. package/src/migrate/parse-connection.ts +128 -0
  89. package/src/migrate/parse-datasource.ts +453 -0
  90. package/src/migrate/parse-pipe.ts +518 -0
  91. package/src/migrate/parse.ts +20 -0
  92. package/src/migrate/parser-utils.ts +160 -0
  93. package/src/migrate/types.ts +125 -0
  94. package/src/schema/project.test.ts +28 -0
  95. package/src/schema/project.ts +173 -181
@@ -38,8 +38,8 @@ export function defineProject(config) {
38
38
  const datasources = (config.datasources ?? {});
39
39
  const pipes = (config.pipes ?? {});
40
40
  const connections = (config.connections ?? {});
41
- // Use the shared client builder
42
- const tinybird = buildProjectClient(datasources, pipes);
41
+ // Create the typed Tinybird client
42
+ const tinybird = new Tinybird({ datasources, pipes });
43
43
  return {
44
44
  [PROJECT_BRAND]: true,
45
45
  _type: "project",
@@ -58,148 +58,20 @@ export function isProjectDefinition(value) {
58
58
  PROJECT_BRAND in value &&
59
59
  value[PROJECT_BRAND] === true);
60
60
  }
61
+ const RESERVED_CLIENT_NAMES = new Set(["tokens", "datasources", "sql", "client"]);
61
62
  /**
62
- * Build a typed Tinybird client from datasources and pipes
63
- *
64
- * This is an internal helper that builds pipe query and datasource methods.
65
- */
66
- function buildProjectClient(datasources, pipes, options) {
67
- const RESERVED_CLIENT_NAMES = new Set([
68
- "tokens",
69
- "datasources",
70
- "sql",
71
- "client",
72
- ]);
73
- // Lazy client initialization
74
- let _client = null;
75
- const getClient = async () => {
76
- if (!_client) {
77
- // Dynamic imports to avoid circular dependencies
78
- const { createClient } = await import("../client/base.js");
79
- const { resolveToken } = await import("../client/preview.js");
80
- // Resolve the token (handles preview environment detection)
81
- const baseUrl = options?.baseUrl ?? process.env.TINYBIRD_URL ?? "https://api.tinybird.co";
82
- const token = await resolveToken({ baseUrl, token: options?.token });
83
- _client = createClient({
84
- baseUrl,
85
- token,
86
- devMode: options?.devMode ?? process.env.NODE_ENV === "development",
87
- configDir: options?.configDir,
88
- });
89
- }
90
- return _client;
91
- };
92
- // Build pipe accessors with query methods
93
- const pipeAccessors = {};
94
- for (const [name, pipe] of Object.entries(pipes)) {
95
- if (name in datasources) {
96
- throw new Error(`Name conflict in createTinybirdClient(): "${name}" is defined as both datasource and pipe. ` +
97
- `Rename one of them to expose both as top-level client properties.`);
98
- }
99
- if (RESERVED_CLIENT_NAMES.has(name)) {
100
- throw new Error(`Name conflict in createTinybirdClient(): "${name}" is reserved by the client API. ` +
101
- `Rename this pipe to expose it as a top-level client property.`);
102
- }
103
- const endpointConfig = getEndpointConfig(pipe);
104
- if (!endpointConfig) {
105
- // Non-endpoint pipes get a stub that throws a clear error
106
- pipeAccessors[name] = {
107
- query: async () => {
108
- throw new Error(`Pipe "${name}" is not exposed as an endpoint. ` +
109
- `Set "endpoint: true" in the pipe definition to enable querying.`);
110
- },
111
- };
112
- continue;
113
- }
114
- // Use the Tinybird pipe name (snake_case)
115
- const tinybirdName = pipe._name;
116
- pipeAccessors[name] = {
117
- query: async (params) => {
118
- const client = await getClient();
119
- return client.query(tinybirdName, (params ?? {}));
120
- },
121
- };
122
- }
123
- // Build datasource accessors for top-level access
124
- const datasourceAccessors = {};
125
- for (const [name, datasource] of Object.entries(datasources)) {
126
- if (RESERVED_CLIENT_NAMES.has(name)) {
127
- throw new Error(`Name conflict in createTinybirdClient(): "${name}" is reserved by the client API. ` +
128
- `Rename this datasource to expose it as a top-level client property.`);
129
- }
130
- const tinybirdName = datasource._name;
131
- datasourceAccessors[name] = {
132
- ingest: async (event) => {
133
- const client = await getClient();
134
- return client.datasources.ingest(tinybirdName, event);
135
- },
136
- append: async (options) => {
137
- const client = await getClient();
138
- return client.datasources.append(tinybirdName, options);
139
- },
140
- replace: async (options) => {
141
- const client = await getClient();
142
- return client.datasources.replace(tinybirdName, options);
143
- },
144
- delete: async (options) => {
145
- const client = await getClient();
146
- return client.datasources.delete(tinybirdName, options);
147
- },
148
- truncate: async (options = {}) => {
149
- const client = await getClient();
150
- return client.datasources.truncate(tinybirdName, options);
151
- },
152
- };
153
- }
154
- // Create the typed client object
155
- return {
156
- ...datasourceAccessors,
157
- ...pipeAccessors,
158
- sql: async (sql, options = {}) => {
159
- const client = await getClient();
160
- return client.sql(sql, options);
161
- },
162
- get tokens() {
163
- // Synchronous access - will throw if not initialized
164
- if (!_client) {
165
- throw new Error("Client not initialized. Call a query or ingest method first, or access client asynchronously.");
166
- }
167
- return _client.tokens;
168
- },
169
- get datasources() {
170
- // Synchronous access - will throw if not initialized
171
- if (!_client) {
172
- throw new Error("Client not initialized. Call a query or ingest method first, or access client asynchronously.");
173
- }
174
- return _client.datasources;
175
- },
176
- get client() {
177
- // Synchronous client access - will throw if not initialized
178
- if (!_client) {
179
- throw new Error("Client not initialized. Call a query or ingest method first, or access client asynchronously.");
180
- }
181
- return _client;
182
- },
183
- };
184
- }
185
- /**
186
- * Create a typed Tinybird client
63
+ * Typed Tinybird client
187
64
  *
188
65
  * Creates a client with typed pipe query and datasource methods based on
189
- * the provided
190
- * datasources and pipes. This is the recommended way to create a Tinybird client
191
- * when using the SDK's auto-generated client file.
192
- *
193
- * @param config - Client configuration with datasources and pipes
194
- * @returns A typed client with pipe query and datasource methods
66
+ * the provided datasources and pipes.
195
67
  *
196
68
  * @example
197
69
  * ```ts
198
- * import { createTinybirdClient } from '@tinybirdco/sdk';
70
+ * import { Tinybird } from '@tinybirdco/sdk';
199
71
  * import { pageViews, events } from './datasources';
200
72
  * import { topPages } from './pipes';
201
73
  *
202
- * export const tinybird = createTinybirdClient({
74
+ * export const tinybird = new Tinybird({
203
75
  * datasources: { pageViews, events },
204
76
  * pipes: { topPages },
205
77
  * });
@@ -218,8 +90,127 @@ function buildProjectClient(datasources, pipes, options) {
218
90
  * });
219
91
  * ```
220
92
  */
93
+ export const Tinybird = class Tinybird {
94
+ #client = null;
95
+ #options;
96
+ constructor(config) {
97
+ this.#options = {
98
+ baseUrl: config.baseUrl,
99
+ token: config.token,
100
+ configDir: config.configDir,
101
+ devMode: config.devMode,
102
+ };
103
+ // Build pipe accessors with query methods
104
+ for (const [name, pipe] of Object.entries(config.pipes)) {
105
+ if (name in config.datasources) {
106
+ throw new Error(`Name conflict: "${name}" is defined as both datasource and pipe. ` +
107
+ `Rename one of them to expose both as top-level client properties.`);
108
+ }
109
+ if (RESERVED_CLIENT_NAMES.has(name)) {
110
+ throw new Error(`Name conflict: "${name}" is reserved by the client API. ` +
111
+ `Rename this pipe to expose it as a top-level client property.`);
112
+ }
113
+ const endpointConfig = getEndpointConfig(pipe);
114
+ if (!endpointConfig) {
115
+ this[name] = {
116
+ query: async () => {
117
+ throw new Error(`Pipe "${name}" is not exposed as an endpoint. ` +
118
+ `Set "endpoint: true" in the pipe definition to enable querying.`);
119
+ },
120
+ };
121
+ continue;
122
+ }
123
+ const tinybirdName = pipe._name;
124
+ this[name] = {
125
+ query: async (params) => {
126
+ const client = await this.#getClient();
127
+ return client.query(tinybirdName, (params ?? {}));
128
+ },
129
+ };
130
+ }
131
+ // Build datasource accessors for top-level access
132
+ for (const [name, datasource] of Object.entries(config.datasources)) {
133
+ if (RESERVED_CLIENT_NAMES.has(name)) {
134
+ throw new Error(`Name conflict: "${name}" is reserved by the client API. ` +
135
+ `Rename this datasource to expose it as a top-level client property.`);
136
+ }
137
+ const tinybirdName = datasource._name;
138
+ this[name] = {
139
+ ingest: async (event) => {
140
+ const client = await this.#getClient();
141
+ return client.datasources.ingest(tinybirdName, event);
142
+ },
143
+ append: async (options) => {
144
+ const client = await this.#getClient();
145
+ return client.datasources.append(tinybirdName, options);
146
+ },
147
+ replace: async (options) => {
148
+ const client = await this.#getClient();
149
+ return client.datasources.replace(tinybirdName, options);
150
+ },
151
+ delete: async (options) => {
152
+ const client = await this.#getClient();
153
+ return client.datasources.delete(tinybirdName, options);
154
+ },
155
+ truncate: async (options = {}) => {
156
+ const client = await this.#getClient();
157
+ return client.datasources.truncate(tinybirdName, options);
158
+ },
159
+ };
160
+ }
161
+ }
162
+ async #getClient() {
163
+ if (!this.#client) {
164
+ const { createClient } = await import("../client/base.js");
165
+ const { resolveToken } = await import("../client/preview.js");
166
+ const baseUrl = this.#options.baseUrl ?? process.env.TINYBIRD_URL ?? "https://api.tinybird.co";
167
+ const token = await resolveToken({ baseUrl, token: this.#options.token });
168
+ this.#client = createClient({
169
+ baseUrl,
170
+ token,
171
+ devMode: this.#options.devMode ?? process.env.NODE_ENV === "development",
172
+ configDir: this.#options.configDir,
173
+ });
174
+ }
175
+ return this.#client;
176
+ }
177
+ /** Execute raw SQL queries */
178
+ async sql(sqlQuery, options = {}) {
179
+ const client = await this.#getClient();
180
+ return client.sql(sqlQuery, options);
181
+ }
182
+ /** Token operations (JWT creation, etc.) */
183
+ get tokens() {
184
+ if (!this.#client) {
185
+ throw new Error("Client not initialized. Call a query or ingest method first, or access client asynchronously.");
186
+ }
187
+ return this.#client.tokens;
188
+ }
189
+ /** Datasource operations (ingest/append/replace/delete/truncate) */
190
+ get datasources() {
191
+ if (!this.#client) {
192
+ throw new Error("Client not initialized. Call a query or ingest method first, or access client asynchronously.");
193
+ }
194
+ return this.#client.datasources;
195
+ }
196
+ /** Raw client for advanced usage */
197
+ get client() {
198
+ if (!this.#client) {
199
+ throw new Error("Client not initialized. Call a query or ingest method first, or access client asynchronously.");
200
+ }
201
+ return this.#client;
202
+ }
203
+ };
204
+ /**
205
+ * Create a typed Tinybird client
206
+ *
207
+ * @deprecated Use `new Tinybird(...)` instead. This function is kept for backward compatibility.
208
+ *
209
+ * @param config - Client configuration with datasources and pipes
210
+ * @returns A typed client with pipe query and datasource methods
211
+ */
221
212
  export function createTinybirdClient(config) {
222
- return buildProjectClient(config.datasources, config.pipes, { baseUrl: config.baseUrl, token: config.token, configDir: config.configDir, devMode: config.devMode });
213
+ return new Tinybird(config);
223
214
  }
224
215
  /**
225
216
  * Get all datasource names from a project
@@ -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;AAiB9C,iEAAiE;AACjE,+DAA+D;AAC/D,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAwJrD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,aAAa,CAK3B,MAAyD;IAEzD,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAiB,CAAC;IAC/D,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAW,CAAC;IAC7C,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAiB,CAAC;IAE/D,gCAAgC;IAChC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAExD,OAAO;QACL,CAAC,aAAa,CAAC,EAAE,IAAI;QACrB,KAAK,EAAE,SAAS;QAChB,WAAW;QACX,KAAK;QACL,WAAW;QACX,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,aAAa,IAAI,KAAK;QACrB,KAAiC,CAAC,aAAa,CAAC,KAAK,IAAI,CAC3D,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAIzB,WAAyB,EACzB,KAAa,EACb,OAAqF;IAErF,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;QACpC,QAAQ;QACR,aAAa;QACb,KAAK;QACL,QAAQ;KACT,CAAC,CAAC;IAEH,6BAA6B;IAC7B,IAAI,OAAO,GAA0B,IAAI,CAAC;IAE1C,MAAM,SAAS,GAAG,KAAK,IAA6B,EAAE;QACpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,iDAAiD;YACjD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAC3D,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAE9D,4DAA4D;YAC5D,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,yBAAyB,CAAC;YAC1F,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAErE,OAAO,GAAG,YAAY,CAAC;gBACrB,OAAO;gBACP,KAAK;gBACL,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;gBACnE,SAAS,EAAE,OAAO,EAAE,SAAS;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,0CAA0C;IAC1C,MAAM,aAAa,GAAsE,EAAE,CAAC;IAC5F,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,IAAI,IAAI,WAAW,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,6CAA6C,IAAI,4CAA4C;gBAC3F,mEAAmE,CACtE,CAAC;QACJ,CAAC;QACD,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,6CAA6C,IAAI,mCAAmC;gBAClF,+DAA+D,CAClE,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE/C,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,0DAA0D;YAC1D,aAAa,CAAC,IAAI,CAAC,GAAG;gBACpB,KAAK,EAAE,KAAK,IAAI,EAAE;oBAChB,MAAM,IAAI,KAAK,CACb,SAAS,IAAI,mCAAmC;wBAC9C,iEAAiE,CACpE,CAAC;gBACJ,CAAC;aACF,CAAC;YACF,SAAS;QACX,CAAC;QAED,0CAA0C;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,aAAa,CAAC,IAAI,CAAC,GAAG;YACpB,KAAK,EAAE,KAAK,EAAE,MAAgB,EAAE,EAAE;gBAChC,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;gBACjC,OAAO,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC,CAAC;YAC/E,CAAC;SACF,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,MAAM,mBAAmB,GASrB,EAAE,CAAC;IACP,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7D,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,6CAA6C,IAAI,mCAAmC;gBAClF,qEAAqE,CACxE,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC;QAEtC,mBAAmB,CAAC,IAAI,CAAC,GAAG;YAC1B,MAAM,EAAE,KAAK,EAAE,KAAc,EAAE,EAAE;gBAC/B,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;gBACjC,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,KAAgC,CAAC,CAAC;YACnF,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,OAAsB,EAAE,EAAE;gBACvC,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;gBACjC,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,OAAsB,EAAE,EAAE;gBACxC,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;gBACjC,OAAO,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,OAAsB,EAAE,EAAE;gBACvC,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;gBACjC,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC1D,CAAC;YACD,QAAQ,EAAE,KAAK,EAAE,UAA2B,EAAE,EAAE,EAAE;gBAChD,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;gBACjC,OAAO,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YAC5D,CAAC;SACF,CAAC;IACJ,CAAC;IAED,iCAAiC;IACjC,OAAO;QACL,GAAG,mBAAmB;QACtB,GAAG,aAAa;QAChB,GAAG,EAAE,KAAK,EAAe,GAAW,EAAE,UAAwB,EAAE,EAAE,EAAE;YAClE,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;YACjC,OAAO,MAAM,CAAC,GAAG,CAAI,GAAG,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,MAAM;YACR,qDAAqD;YACrD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,MAAM,CAAC;QACxB,CAAC;QACD,IAAI,WAAW;YACb,qDAAqD;YACrD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,WAAW,CAAC;QAC7B,CAAC;QACD,IAAI,MAAM;YACR,4DAA4D;YAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;KACqC,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,UAAU,oBAAoB,CAIlC,MAAkD;IAElD,OAAO,kBAAkB,CACvB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,KAAK,EACZ,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CACvG,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAU;IAEV,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAA+B,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAA8B,OAAU;IAClE,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAyB,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAI3B,OAAgD,EAAE,IAAO;IACzD,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAIrB,OAAgD,EAAE,IAAO;IACzD,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/schema/project.ts"],"names":[],"mappings":"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"}
@@ -323,6 +323,28 @@ describe("Project Schema", () => {
323
323
  });
324
324
  expect(() => client.client).toThrow("Client not initialized");
325
325
  });
326
+ it("does not allow datasource names to overwrite internal client state", () => {
327
+ const events = defineDatasource("events", {
328
+ schema: { id: t.string() },
329
+ });
330
+ const client = createTinybirdClient({
331
+ datasources: { _client: events },
332
+ pipes: {},
333
+ });
334
+ expect(client._client).toBeDefined();
335
+ expect(() => client.client).toThrow("Client not initialized");
336
+ });
337
+ it("does not allow datasource names to overwrite internal options state", () => {
338
+ const events = defineDatasource("events", {
339
+ schema: { id: t.string() },
340
+ });
341
+ const client = createTinybirdClient({
342
+ datasources: { _options: events },
343
+ pipes: {},
344
+ });
345
+ expect(client._options).toBeDefined();
346
+ expect(() => client.client).toThrow("Client not initialized");
347
+ });
326
348
  });
327
349
  });
328
350
  //# sourceMappingURL=project.test.js.map
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tinybirdco/sdk",
3
- "version": "0.0.41",
3
+ "version": "0.0.43",
4
4
  "description": "TypeScript SDK for Tinybird Forward - define datasources and pipes as TypeScript",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -80,6 +80,7 @@
80
80
  "clean": "rm -rf dist",
81
81
  "test": "vitest",
82
82
  "test:run": "vitest run",
83
+ "test:e2e:live": "vitest run --config vitest.e2e.live.config.ts",
83
84
  "test:coverage": "vitest run --coverage"
84
85
  }
85
86
  }
@@ -5,7 +5,13 @@ import {
5
5
  listDatasources,
6
6
  getDatasource,
7
7
  listPipes,
8
+ listPipesV1,
8
9
  getPipe,
10
+ listConnectors,
11
+ getDatasourceFile,
12
+ getPipeFile,
13
+ getConnectorFile,
14
+ pullAllResourceFiles,
9
15
  fetchAllResources,
10
16
  hasResources,
11
17
  ResourceApiError,
@@ -66,6 +72,13 @@ const handlers = [
66
72
  });
67
73
  }),
68
74
 
75
+ // List pipes v1
76
+ http.get(`${BASE_URL}/v1/pipes`, () => {
77
+ return HttpResponse.json({
78
+ pipes: [{ name: "top_events" }, { name: "daily_stats_mv" }],
79
+ });
80
+ }),
81
+
69
82
  // Get pipe detail - endpoint
70
83
  http.get(`${BASE_URL}/v0/pipes/top_events`, () => {
71
84
  return HttpResponse.json({
@@ -119,6 +132,45 @@ const handlers = [
119
132
  ],
120
133
  });
121
134
  }),
135
+
136
+ // List connectors
137
+ http.get(`${BASE_URL}/v0/connectors`, () => {
138
+ return HttpResponse.json({
139
+ connectors: [{ name: "main_kafka" }],
140
+ });
141
+ }),
142
+
143
+ // Raw datasource datafile
144
+ http.get(`${BASE_URL}/v0/datasources/events.datasource`, () => {
145
+ return new HttpResponse(
146
+ "SCHEMA >\n timestamp DateTime,\n event_name String",
147
+ { headers: { "Content-Type": "text/plain" } }
148
+ );
149
+ }),
150
+ http.get(`${BASE_URL}/v0/datasources/users.datasource`, () => {
151
+ return new HttpResponse("SCHEMA >\n user_id String", {
152
+ headers: { "Content-Type": "text/plain" },
153
+ });
154
+ }),
155
+
156
+ // Raw pipe datafiles
157
+ http.get(`${BASE_URL}/v1/pipes/top_events.pipe`, () => {
158
+ return new HttpResponse("NODE endpoint\nSQL >\n SELECT 1", {
159
+ headers: { "Content-Type": "text/plain" },
160
+ });
161
+ }),
162
+ http.get(`${BASE_URL}/v1/pipes/daily_stats_mv.pipe`, () => {
163
+ return new HttpResponse("TYPE MATERIALIZED\nDATASOURCE daily_stats", {
164
+ headers: { "Content-Type": "text/plain" },
165
+ });
166
+ }),
167
+
168
+ // Raw connector datafile
169
+ http.get(`${BASE_URL}/v0/connectors/main_kafka.connection`, () => {
170
+ return new HttpResponse("TYPE kafka\nKAFKA_BOOTSTRAP_SERVERS localhost:9092", {
171
+ headers: { "Content-Type": "text/plain" },
172
+ });
173
+ }),
122
174
  ];
123
175
 
124
176
  const server = setupServer(...handlers);
@@ -207,6 +259,26 @@ describe("listPipes", () => {
207
259
  });
208
260
  });
209
261
 
262
+ describe("listPipesV1", () => {
263
+ it("returns array of pipe names from /v1/pipes", async () => {
264
+ const result = await listPipesV1({ baseUrl: BASE_URL, token: TOKEN });
265
+
266
+ expect(result).toEqual(["top_events", "daily_stats_mv"]);
267
+ });
268
+
269
+ it("falls back to /v0/pipes when /v1/pipes is unavailable", async () => {
270
+ server.use(
271
+ http.get(`${BASE_URL}/v1/pipes`, () => {
272
+ return new HttpResponse(null, { status: 404 });
273
+ })
274
+ );
275
+
276
+ const result = await listPipesV1({ baseUrl: BASE_URL, token: TOKEN });
277
+
278
+ expect(result).toEqual(["top_events", "daily_stats_mv"]);
279
+ });
280
+ });
281
+
210
282
  describe("getPipe", () => {
211
283
  it("returns endpoint pipe info", async () => {
212
284
  const result = await getPipe({ baseUrl: BASE_URL, token: TOKEN }, "top_events");
@@ -264,6 +336,55 @@ describe("fetchAllResources", () => {
264
336
  });
265
337
  });
266
338
 
339
+ describe("raw datafile APIs", () => {
340
+ it("lists connectors", async () => {
341
+ const result = await listConnectors({ baseUrl: BASE_URL, token: TOKEN });
342
+ expect(result).toEqual(["main_kafka"]);
343
+ });
344
+
345
+ it("gets datasource .datasource content", async () => {
346
+ const result = await getDatasourceFile(
347
+ { baseUrl: BASE_URL, token: TOKEN },
348
+ "events"
349
+ );
350
+
351
+ expect(result).toContain("SCHEMA >");
352
+ expect(result).toContain("timestamp DateTime");
353
+ });
354
+
355
+ it("gets pipe .pipe content", async () => {
356
+ const result = await getPipeFile(
357
+ { baseUrl: BASE_URL, token: TOKEN },
358
+ "top_events"
359
+ );
360
+
361
+ expect(result).toContain("NODE endpoint");
362
+ });
363
+
364
+ it("gets connector .connection content", async () => {
365
+ const result = await getConnectorFile(
366
+ { baseUrl: BASE_URL, token: TOKEN },
367
+ "main_kafka"
368
+ );
369
+
370
+ expect(result).toContain("TYPE kafka");
371
+ });
372
+ });
373
+
374
+ describe("pullAllResourceFiles", () => {
375
+ it("pulls datasources, pipes, and connectors as raw datafiles", async () => {
376
+ const result = await pullAllResourceFiles({ baseUrl: BASE_URL, token: TOKEN });
377
+
378
+ expect(result.datasources).toHaveLength(2);
379
+ expect(result.pipes).toHaveLength(2);
380
+ expect(result.connections).toHaveLength(1);
381
+
382
+ expect(result.datasources[0]?.filename).toMatch(/\.datasource$/);
383
+ expect(result.pipes[0]?.filename).toMatch(/\.pipe$/);
384
+ expect(result.connections[0]?.filename).toMatch(/\.connection$/);
385
+ });
386
+ });
387
+
267
388
  describe("hasResources", () => {
268
389
  it("returns true when workspace has resources", async () => {
269
390
  const result = await hasResources({ baseUrl: BASE_URL, token: TOKEN });