@tinybirdco/sdk 0.0.4 → 0.0.7
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 +52 -13
- package/dist/api/branches.d.ts.map +1 -1
- package/dist/api/branches.js +6 -5
- package/dist/api/branches.js.map +1 -1
- package/dist/api/branches.test.js +32 -6
- package/dist/api/branches.test.js.map +1 -1
- package/dist/api/build.d.ts.map +1 -1
- package/dist/api/build.js +2 -1
- package/dist/api/build.js.map +1 -1
- package/dist/api/deploy.d.ts +42 -3
- package/dist/api/deploy.d.ts.map +1 -1
- package/dist/api/deploy.js +162 -19
- package/dist/api/deploy.js.map +1 -1
- package/dist/api/deploy.test.js +83 -31
- package/dist/api/deploy.test.js.map +1 -1
- package/dist/api/fetcher.d.ts +6 -0
- package/dist/api/fetcher.d.ts.map +1 -0
- package/dist/api/fetcher.js +13 -0
- package/dist/api/fetcher.js.map +1 -0
- package/dist/api/local.d.ts.map +1 -1
- package/dist/api/local.js +5 -4
- package/dist/api/local.js.map +1 -1
- package/dist/api/local.test.js.map +1 -1
- package/dist/api/resources.d.ts +178 -0
- package/dist/api/resources.d.ts.map +1 -0
- package/dist/api/resources.js +245 -0
- package/dist/api/resources.js.map +1 -0
- package/dist/api/resources.test.d.ts +2 -0
- package/dist/api/resources.test.d.ts.map +1 -0
- package/dist/api/resources.test.js +255 -0
- package/dist/api/resources.test.js.map +1 -0
- package/dist/api/workspaces.d.ts.map +1 -1
- package/dist/api/workspaces.js +2 -1
- package/dist/api/workspaces.js.map +1 -1
- package/dist/api/workspaces.test.js +9 -1
- package/dist/api/workspaces.test.js.map +1 -1
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +2 -1
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/commands/build.d.ts +3 -4
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +23 -25
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/deploy.d.ts +41 -0
- package/dist/cli/commands/deploy.d.ts.map +1 -0
- package/dist/cli/commands/deploy.js +92 -0
- package/dist/cli/commands/deploy.js.map +1 -0
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +7 -3
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/init.d.ts +38 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +434 -23
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/init.test.js +190 -30
- package/dist/cli/commands/init.test.js.map +1 -1
- package/dist/cli/index.js +80 -15
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/utils/package-manager.d.ts +8 -0
- package/dist/cli/utils/package-manager.d.ts.map +1 -0
- package/dist/cli/utils/package-manager.js +45 -0
- package/dist/cli/utils/package-manager.js.map +1 -0
- package/dist/cli/utils/package-manager.test.d.ts +2 -0
- package/dist/cli/utils/package-manager.test.d.ts.map +1 -0
- package/dist/cli/utils/package-manager.test.js +85 -0
- package/dist/cli/utils/package-manager.test.js.map +1 -0
- package/dist/client/base.d.ts.map +1 -1
- package/dist/client/base.js +2 -1
- package/dist/client/base.js.map +1 -1
- package/dist/codegen/index.d.ts +39 -0
- package/dist/codegen/index.d.ts.map +1 -0
- package/dist/codegen/index.js +300 -0
- package/dist/codegen/index.js.map +1 -0
- package/dist/codegen/index.test.d.ts +2 -0
- package/dist/codegen/index.test.d.ts.map +1 -0
- package/dist/codegen/index.test.js +310 -0
- package/dist/codegen/index.test.js.map +1 -0
- package/dist/codegen/type-mapper.d.ts +20 -0
- package/dist/codegen/type-mapper.d.ts.map +1 -0
- package/dist/codegen/type-mapper.js +238 -0
- package/dist/codegen/type-mapper.js.map +1 -0
- package/dist/codegen/type-mapper.test.d.ts +2 -0
- package/dist/codegen/type-mapper.test.d.ts.map +1 -0
- package/dist/codegen/type-mapper.test.js +167 -0
- package/dist/codegen/type-mapper.test.js.map +1 -0
- package/dist/codegen/utils.d.ts +46 -0
- package/dist/codegen/utils.d.ts.map +1 -0
- package/dist/codegen/utils.js +141 -0
- package/dist/codegen/utils.js.map +1 -0
- package/dist/codegen/utils.test.d.ts +2 -0
- package/dist/codegen/utils.test.d.ts.map +1 -0
- package/dist/codegen/utils.test.js +178 -0
- package/dist/codegen/utils.test.js.map +1 -0
- package/dist/generator/index.d.ts +3 -0
- package/dist/generator/index.d.ts.map +1 -1
- package/dist/generator/index.js +17 -1
- package/dist/generator/index.js.map +1 -1
- package/dist/generator/index.test.js +104 -1
- package/dist/generator/index.test.js.map +1 -1
- package/dist/generator/loader.d.ts +15 -0
- package/dist/generator/loader.d.ts.map +1 -1
- package/dist/generator/loader.js +24 -0
- package/dist/generator/loader.js.map +1 -1
- package/dist/schema/connection.d.ts.map +1 -1
- package/dist/schema/connection.js +3 -2
- package/dist/schema/connection.js.map +1 -1
- package/dist/schema/datasource.d.ts.map +1 -1
- package/dist/schema/datasource.js +3 -2
- package/dist/schema/datasource.js.map +1 -1
- package/dist/schema/params.d.ts.map +1 -1
- package/dist/schema/params.js +3 -2
- package/dist/schema/params.js.map +1 -1
- package/dist/schema/pipe.d.ts +2 -2
- package/dist/schema/pipe.d.ts.map +1 -1
- package/dist/schema/pipe.js +4 -4
- package/dist/schema/pipe.js.map +1 -1
- package/dist/schema/project.d.ts.map +1 -1
- package/dist/schema/project.js +3 -2
- package/dist/schema/project.js.map +1 -1
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/types.js +3 -2
- package/dist/schema/types.js.map +1 -1
- package/dist/test/handlers.d.ts +49 -0
- package/dist/test/handlers.d.ts.map +1 -1
- package/dist/test/handlers.js +45 -0
- package/dist/test/handlers.js.map +1 -1
- package/package.json +4 -2
- package/src/api/branches.test.ts +65 -57
- package/src/api/branches.ts +7 -5
- package/src/api/build.ts +2 -1
- package/src/api/deploy.test.ts +141 -36
- package/src/api/deploy.ts +231 -23
- package/src/api/fetcher.ts +17 -0
- package/src/api/local.test.ts +43 -31
- package/src/api/local.ts +5 -4
- package/src/api/resources.test.ts +332 -0
- package/src/api/resources.ts +555 -0
- package/src/api/workspaces.test.ts +15 -9
- package/src/api/workspaces.ts +3 -1
- package/src/cli/auth.ts +2 -1
- package/src/cli/commands/build.ts +29 -33
- package/src/cli/commands/deploy.ts +131 -0
- package/src/cli/commands/dev.ts +10 -3
- package/src/cli/commands/init.test.ts +239 -30
- package/src/cli/commands/init.ts +548 -26
- package/src/cli/index.ts +117 -20
- package/src/cli/utils/package-manager.test.ts +118 -0
- package/src/cli/utils/package-manager.ts +44 -0
- package/src/client/base.ts +3 -2
- package/src/codegen/index.test.ts +367 -0
- package/src/codegen/index.ts +379 -0
- package/src/codegen/type-mapper.test.ts +224 -0
- package/src/codegen/type-mapper.ts +265 -0
- package/src/codegen/utils.test.ts +221 -0
- package/src/codegen/utils.ts +174 -0
- package/src/generator/index.test.ts +121 -1
- package/src/generator/index.ts +19 -1
- package/src/generator/loader.ts +43 -0
- package/src/schema/connection.ts +3 -2
- package/src/schema/datasource.ts +3 -2
- package/src/schema/params.ts +3 -2
- package/src/schema/pipe.ts +4 -4
- package/src/schema/project.ts +3 -2
- package/src/schema/types.ts +3 -2
- 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
|
|
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
|
|
36
|
+
* Default starter content for endpoints.ts
|
|
35
37
|
*/
|
|
36
|
-
const
|
|
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
|
|
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 "./
|
|
92
|
+
import { topPages, type TopPagesParams, type TopPagesOutput } from "./endpoints";
|
|
91
93
|
|
|
92
94
|
// Create the typed Tinybird client
|
|
93
95
|
export const tinybird = createTinybirdClient({
|
|
@@ -101,25 +103,126 @@ export type { PageViewsRow, TopPagesParams, TopPagesOutput };
|
|
|
101
103
|
// Re-export entities
|
|
102
104
|
export { pageViews, topPages };
|
|
103
105
|
`;
|
|
106
|
+
const TINYBIRD_CI_WORKFLOW = `name: Tinybird CI
|
|
107
|
+
|
|
108
|
+
on:
|
|
109
|
+
pull_request:
|
|
110
|
+
paths:
|
|
111
|
+
- "tinybird.json"
|
|
112
|
+
- "src/tinybird/**"
|
|
113
|
+
- "tinybird/**"
|
|
114
|
+
- "**/*.datasource"
|
|
115
|
+
- "**/*.pipe"
|
|
116
|
+
|
|
117
|
+
jobs:
|
|
118
|
+
tinybird:
|
|
119
|
+
runs-on: ubuntu-latest
|
|
120
|
+
steps:
|
|
121
|
+
- uses: actions/checkout@v4
|
|
122
|
+
- uses: pnpm/action-setup@v4
|
|
123
|
+
- uses: actions/setup-node@v4
|
|
124
|
+
with:
|
|
125
|
+
node-version: "20"
|
|
126
|
+
cache: "pnpm"
|
|
127
|
+
- run: pnpm install --frozen-lockfile
|
|
128
|
+
- run: pnpm run tinybird:deploy -- --check
|
|
129
|
+
env:
|
|
130
|
+
TINYBIRD_TOKEN: \${{ secrets.TINYBIRD_TOKEN }}
|
|
131
|
+
`;
|
|
132
|
+
const TINYBIRD_CD_WORKFLOW = `name: Tinybird CD
|
|
133
|
+
|
|
134
|
+
on:
|
|
135
|
+
push:
|
|
136
|
+
branches:
|
|
137
|
+
- main
|
|
138
|
+
paths:
|
|
139
|
+
- "tinybird.json"
|
|
140
|
+
- "src/tinybird/**"
|
|
141
|
+
- "tinybird/**"
|
|
142
|
+
- "**/*.datasource"
|
|
143
|
+
- "**/*.pipe"
|
|
144
|
+
|
|
145
|
+
jobs:
|
|
146
|
+
tinybird:
|
|
147
|
+
runs-on: ubuntu-latest
|
|
148
|
+
steps:
|
|
149
|
+
- uses: actions/checkout@v4
|
|
150
|
+
- uses: pnpm/action-setup@v4
|
|
151
|
+
- uses: actions/setup-node@v4
|
|
152
|
+
with:
|
|
153
|
+
node-version: "20"
|
|
154
|
+
cache: "pnpm"
|
|
155
|
+
- run: pnpm install --frozen-lockfile
|
|
156
|
+
- run: pnpm run tinybird:deploy
|
|
157
|
+
env:
|
|
158
|
+
TINYBIRD_TOKEN: \${{ secrets.TINYBIRD_TOKEN }}
|
|
159
|
+
`;
|
|
160
|
+
const TINYBIRD_GITLAB_CI = `stages:\n - tinybird\n\ntinybird_ci:\n stage: tinybird\n image: node:20\n rules:\n - changes:\n - tinybird.json\n - src/tinybird/**\n - tinybird/**\n - **/*.datasource\n - **/*.pipe\n script:\n - corepack enable\n - pnpm install --frozen-lockfile\n - pnpm run tinybird:deploy -- --check\n variables:\n TINYBIRD_TOKEN: \${TINYBIRD_TOKEN}\n\ntinybird_cd:\n stage: tinybird\n image: node:20\n rules:\n - if: '$CI_COMMIT_BRANCH == \"main\"'\n changes:\n - tinybird.json\n - src/tinybird/**\n - tinybird/**\n - **/*.datasource\n - **/*.pipe\n script:\n - corepack enable\n - pnpm install --frozen-lockfile\n - pnpm run tinybird:deploy\n variables:\n TINYBIRD_TOKEN: \${TINYBIRD_TOKEN}\n`;
|
|
104
161
|
/**
|
|
105
162
|
* Default config content generator
|
|
106
163
|
*/
|
|
107
|
-
function createDefaultConfig(tinybirdDir) {
|
|
164
|
+
function createDefaultConfig(tinybirdDir, devMode, additionalIncludes = []) {
|
|
165
|
+
const include = [
|
|
166
|
+
`${tinybirdDir}/datasources.ts`,
|
|
167
|
+
`${tinybirdDir}/endpoints.ts`,
|
|
168
|
+
...additionalIncludes,
|
|
169
|
+
];
|
|
108
170
|
return {
|
|
109
|
-
include
|
|
110
|
-
`${tinybirdDir}/datasources.ts`,
|
|
111
|
-
`${tinybirdDir}/pipes.ts`,
|
|
112
|
-
],
|
|
171
|
+
include,
|
|
113
172
|
token: "${TINYBIRD_TOKEN}",
|
|
114
173
|
baseUrl: "https://api.tinybird.co",
|
|
174
|
+
devMode,
|
|
115
175
|
};
|
|
116
176
|
}
|
|
177
|
+
/**
|
|
178
|
+
* Find existing .datasource and .pipe files in the repository
|
|
179
|
+
*
|
|
180
|
+
* @param cwd - Working directory to search from
|
|
181
|
+
* @param maxDepth - Maximum directory depth to search (default: 5)
|
|
182
|
+
* @returns Array of relative file paths
|
|
183
|
+
*/
|
|
184
|
+
export function findExistingDatafiles(cwd, maxDepth = 5) {
|
|
185
|
+
const files = [];
|
|
186
|
+
function searchDir(dir, depth) {
|
|
187
|
+
if (depth > maxDepth)
|
|
188
|
+
return;
|
|
189
|
+
let entries;
|
|
190
|
+
try {
|
|
191
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
return; // Skip directories we can't read
|
|
195
|
+
}
|
|
196
|
+
for (const entry of entries) {
|
|
197
|
+
const fullPath = path.join(dir, entry.name);
|
|
198
|
+
// Skip node_modules and hidden directories
|
|
199
|
+
if (entry.isDirectory() &&
|
|
200
|
+
(entry.name === "node_modules" ||
|
|
201
|
+
entry.name.startsWith(".") ||
|
|
202
|
+
entry.name === "dist" ||
|
|
203
|
+
entry.name === "build")) {
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
if (entry.isDirectory()) {
|
|
207
|
+
searchDir(fullPath, depth + 1);
|
|
208
|
+
}
|
|
209
|
+
else if (entry.isFile() &&
|
|
210
|
+
(entry.name.endsWith(".datasource") || entry.name.endsWith(".pipe"))) {
|
|
211
|
+
// Convert to relative path
|
|
212
|
+
const relativePath = path.relative(cwd, fullPath);
|
|
213
|
+
files.push(relativePath);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
searchDir(cwd, 0);
|
|
218
|
+
return files.sort();
|
|
219
|
+
}
|
|
117
220
|
/**
|
|
118
221
|
* Run the init command
|
|
119
222
|
*
|
|
120
223
|
* Creates:
|
|
121
224
|
* - tinybird.json in the project root
|
|
122
|
-
* - src/tinybird/ folder with datasources.ts,
|
|
225
|
+
* - src/tinybird/ folder with datasources.ts, endpoints.ts, and client.ts
|
|
123
226
|
*
|
|
124
227
|
* @param options - Init options
|
|
125
228
|
* @returns Init result
|
|
@@ -130,12 +233,187 @@ export async function runInit(options = {}) {
|
|
|
130
233
|
const skipLogin = options.skipLogin ?? false;
|
|
131
234
|
const created = [];
|
|
132
235
|
const skipped = [];
|
|
236
|
+
let didPrompt = false;
|
|
237
|
+
let existingDatafiles = [];
|
|
238
|
+
let ciWorkflowCreated = false;
|
|
239
|
+
let cdWorkflowCreated = false;
|
|
240
|
+
let workflowProvider = options.workflowProvider;
|
|
241
|
+
// Check for existing .datasource and .pipe files
|
|
242
|
+
const foundDatafiles = findExistingDatafiles(cwd);
|
|
243
|
+
// Determine devMode - prompt if not provided
|
|
244
|
+
let devMode = options.devMode ?? "branch";
|
|
245
|
+
if (!options.devMode) {
|
|
246
|
+
// Show interactive prompt for workflow selection
|
|
247
|
+
p.intro(pc.cyan("tinybird init"));
|
|
248
|
+
const workflowChoice = await p.select({
|
|
249
|
+
message: "How do you want to develop with Tinybird?",
|
|
250
|
+
options: [
|
|
251
|
+
{
|
|
252
|
+
value: "branch",
|
|
253
|
+
label: "Branches",
|
|
254
|
+
hint: "Use Tinybird Cloud with git-based branching",
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
value: "local",
|
|
258
|
+
label: "Tinybird Local",
|
|
259
|
+
hint: "Run your own Tinybird instance locally",
|
|
260
|
+
},
|
|
261
|
+
],
|
|
262
|
+
});
|
|
263
|
+
if (p.isCancel(workflowChoice)) {
|
|
264
|
+
p.cancel("Operation cancelled");
|
|
265
|
+
return {
|
|
266
|
+
success: false,
|
|
267
|
+
created: [],
|
|
268
|
+
skipped: [],
|
|
269
|
+
error: "Cancelled by user",
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
didPrompt = true;
|
|
273
|
+
devMode = workflowChoice;
|
|
274
|
+
}
|
|
133
275
|
// Determine tinybird folder path based on project structure
|
|
134
|
-
const
|
|
135
|
-
|
|
276
|
+
const defaultRelativePath = getRelativeTinybirdDir(cwd);
|
|
277
|
+
let relativeTinybirdDir = options.clientPath ?? defaultRelativePath;
|
|
278
|
+
if (!options.clientPath && !options.devMode) {
|
|
279
|
+
// Ask user to confirm or change the client path
|
|
280
|
+
const clientPathChoice = await p.text({
|
|
281
|
+
message: "Where should we create Tinybird definitions?",
|
|
282
|
+
placeholder: defaultRelativePath,
|
|
283
|
+
defaultValue: defaultRelativePath,
|
|
284
|
+
});
|
|
285
|
+
if (p.isCancel(clientPathChoice)) {
|
|
286
|
+
p.cancel("Operation cancelled");
|
|
287
|
+
return {
|
|
288
|
+
success: false,
|
|
289
|
+
created: [],
|
|
290
|
+
skipped: [],
|
|
291
|
+
error: "Cancelled by user",
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
didPrompt = true;
|
|
295
|
+
relativeTinybirdDir = clientPathChoice || defaultRelativePath;
|
|
296
|
+
}
|
|
297
|
+
const skipWorkflowPrompt = options.skipWorkflowPrompt ??
|
|
298
|
+
(options.devMode !== undefined || options.clientPath !== undefined);
|
|
299
|
+
let includeCiWorkflow = options.includeCiWorkflow ?? false;
|
|
300
|
+
let includeCdWorkflow = options.includeCdWorkflow ?? false;
|
|
301
|
+
const shouldPromptWorkflows = !skipWorkflowPrompt && options.includeCiWorkflow === undefined;
|
|
302
|
+
const shouldPromptProvider = !skipWorkflowPrompt && !workflowProvider;
|
|
303
|
+
if (shouldPromptProvider && shouldPromptWorkflows) {
|
|
304
|
+
const providerChoice = await p.select({
|
|
305
|
+
message: "Which git provider are you using?",
|
|
306
|
+
options: [
|
|
307
|
+
{ value: "github", label: "GitHub" },
|
|
308
|
+
{ value: "gitlab", label: "GitLab" },
|
|
309
|
+
],
|
|
310
|
+
});
|
|
311
|
+
if (p.isCancel(providerChoice)) {
|
|
312
|
+
p.cancel("Operation cancelled");
|
|
313
|
+
return {
|
|
314
|
+
success: false,
|
|
315
|
+
created: [],
|
|
316
|
+
skipped: [],
|
|
317
|
+
error: "Cancelled by user",
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
didPrompt = true;
|
|
321
|
+
workflowProvider = providerChoice;
|
|
322
|
+
}
|
|
323
|
+
if (shouldPromptWorkflows) {
|
|
324
|
+
const confirmWorkflows = await p.confirm({
|
|
325
|
+
message: "Create CI/CD workflows for Tinybird?",
|
|
326
|
+
initialValue: true,
|
|
327
|
+
});
|
|
328
|
+
if (p.isCancel(confirmWorkflows)) {
|
|
329
|
+
p.cancel("Operation cancelled");
|
|
330
|
+
return {
|
|
331
|
+
success: false,
|
|
332
|
+
created: [],
|
|
333
|
+
skipped: [],
|
|
334
|
+
error: "Cancelled by user",
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
didPrompt = true;
|
|
338
|
+
includeCiWorkflow = confirmWorkflows;
|
|
339
|
+
includeCdWorkflow = confirmWorkflows;
|
|
340
|
+
}
|
|
341
|
+
if (shouldPromptProvider && !shouldPromptWorkflows && !workflowProvider) {
|
|
342
|
+
const providerChoice = await p.select({
|
|
343
|
+
message: "Which git provider are you using?",
|
|
344
|
+
options: [
|
|
345
|
+
{ value: "github", label: "GitHub" },
|
|
346
|
+
{ value: "gitlab", label: "GitLab" },
|
|
347
|
+
],
|
|
348
|
+
});
|
|
349
|
+
if (p.isCancel(providerChoice)) {
|
|
350
|
+
p.cancel("Operation cancelled");
|
|
351
|
+
return {
|
|
352
|
+
success: false,
|
|
353
|
+
created: [],
|
|
354
|
+
skipped: [],
|
|
355
|
+
error: "Cancelled by user",
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
didPrompt = true;
|
|
359
|
+
workflowProvider = providerChoice;
|
|
360
|
+
}
|
|
361
|
+
if ((includeCiWorkflow || includeCdWorkflow) && !workflowProvider) {
|
|
362
|
+
workflowProvider = "github";
|
|
363
|
+
}
|
|
364
|
+
// Ask about existing datafiles if found
|
|
365
|
+
if (foundDatafiles.length > 0 && !options.skipDatafilePrompt) {
|
|
366
|
+
const includeDatafiles = options.includeExistingDatafiles ??
|
|
367
|
+
(await (async () => {
|
|
368
|
+
didPrompt = true;
|
|
369
|
+
return promptForExistingDatafiles(foundDatafiles);
|
|
370
|
+
})());
|
|
371
|
+
if (includeDatafiles) {
|
|
372
|
+
existingDatafiles = foundDatafiles;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
else if (options.includeExistingDatafiles && foundDatafiles.length > 0) {
|
|
376
|
+
existingDatafiles = foundDatafiles;
|
|
377
|
+
}
|
|
378
|
+
if (didPrompt) {
|
|
379
|
+
const devModeLabel = devMode === "local" ? "Tinybird Local" : "Branches";
|
|
380
|
+
const datafileSummary = foundDatafiles.length > 0
|
|
381
|
+
? existingDatafiles.length > 0
|
|
382
|
+
? `${existingDatafiles.length} included`
|
|
383
|
+
: "none included"
|
|
384
|
+
: "none found";
|
|
385
|
+
let workflowSummary = "none";
|
|
386
|
+
if (includeCiWorkflow || includeCdWorkflow) {
|
|
387
|
+
workflowSummary =
|
|
388
|
+
workflowProvider === "gitlab"
|
|
389
|
+
? "GitLab (.gitlab-ci.yml)"
|
|
390
|
+
: "GitHub Actions (tinybird-ci.yaml, tinybird-cd.yaml)";
|
|
391
|
+
}
|
|
392
|
+
const summaryLines = [
|
|
393
|
+
`Mode: ${devModeLabel}`,
|
|
394
|
+
`Definitions: ${relativeTinybirdDir}/`,
|
|
395
|
+
`Existing datafiles: ${datafileSummary}`,
|
|
396
|
+
`Workflows: ${workflowSummary}`,
|
|
397
|
+
];
|
|
398
|
+
p.note(summaryLines.join("\n"), "Installation Summary");
|
|
399
|
+
const confirmInit = await p.confirm({
|
|
400
|
+
message: "Proceed with initialization?",
|
|
401
|
+
initialValue: true,
|
|
402
|
+
});
|
|
403
|
+
if (p.isCancel(confirmInit) || !confirmInit) {
|
|
404
|
+
p.cancel("Init cancelled.");
|
|
405
|
+
return {
|
|
406
|
+
success: false,
|
|
407
|
+
created: [],
|
|
408
|
+
skipped: [],
|
|
409
|
+
error: "Cancelled by user",
|
|
410
|
+
};
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
const tinybirdDir = path.join(cwd, relativeTinybirdDir);
|
|
136
414
|
// File paths
|
|
137
415
|
const datasourcesPath = path.join(tinybirdDir, "datasources.ts");
|
|
138
|
-
const
|
|
416
|
+
const endpointsPath = path.join(tinybirdDir, "endpoints.ts");
|
|
139
417
|
const clientPath = path.join(tinybirdDir, "client.ts");
|
|
140
418
|
// Create config file (tinybird.json)
|
|
141
419
|
const configPath = getConfigPath(cwd);
|
|
@@ -144,7 +422,7 @@ export async function runInit(options = {}) {
|
|
|
144
422
|
}
|
|
145
423
|
else {
|
|
146
424
|
try {
|
|
147
|
-
const config = createDefaultConfig(relativeTinybirdDir);
|
|
425
|
+
const config = createDefaultConfig(relativeTinybirdDir, devMode, existingDatafiles);
|
|
148
426
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n");
|
|
149
427
|
created.push("tinybird.json");
|
|
150
428
|
}
|
|
@@ -187,21 +465,21 @@ export async function runInit(options = {}) {
|
|
|
187
465
|
};
|
|
188
466
|
}
|
|
189
467
|
}
|
|
190
|
-
// Create
|
|
191
|
-
if (fs.existsSync(
|
|
192
|
-
skipped.push(`${relativeTinybirdDir}/
|
|
468
|
+
// Create endpoints.ts
|
|
469
|
+
if (fs.existsSync(endpointsPath) && !force) {
|
|
470
|
+
skipped.push(`${relativeTinybirdDir}/endpoints.ts`);
|
|
193
471
|
}
|
|
194
472
|
else {
|
|
195
473
|
try {
|
|
196
|
-
fs.writeFileSync(
|
|
197
|
-
created.push(`${relativeTinybirdDir}/
|
|
474
|
+
fs.writeFileSync(endpointsPath, ENDPOINTS_CONTENT);
|
|
475
|
+
created.push(`${relativeTinybirdDir}/endpoints.ts`);
|
|
198
476
|
}
|
|
199
477
|
catch (error) {
|
|
200
478
|
return {
|
|
201
479
|
success: false,
|
|
202
480
|
created,
|
|
203
481
|
skipped,
|
|
204
|
-
error: `Failed to create
|
|
482
|
+
error: `Failed to create endpoints.ts: ${error.message}`,
|
|
205
483
|
};
|
|
206
484
|
}
|
|
207
485
|
}
|
|
@@ -240,6 +518,10 @@ export async function runInit(options = {}) {
|
|
|
240
518
|
packageJson.scripts["tinybird:build"] = "tinybird build";
|
|
241
519
|
modified = true;
|
|
242
520
|
}
|
|
521
|
+
if (!packageJson.scripts["tinybird:deploy"]) {
|
|
522
|
+
packageJson.scripts["tinybird:deploy"] = "tinybird deploy";
|
|
523
|
+
modified = true;
|
|
524
|
+
}
|
|
243
525
|
if (modified) {
|
|
244
526
|
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + "\n");
|
|
245
527
|
created.push("package.json (added tinybird scripts)");
|
|
@@ -249,6 +531,88 @@ export async function runInit(options = {}) {
|
|
|
249
531
|
// Silently ignore package.json errors - not critical
|
|
250
532
|
}
|
|
251
533
|
}
|
|
534
|
+
const workflowsDir = path.join(cwd, ".github", "workflows");
|
|
535
|
+
const ciWorkflowPath = path.join(workflowsDir, "tinybird-ci.yaml");
|
|
536
|
+
const cdWorkflowPath = path.join(workflowsDir, "tinybird-cd.yaml");
|
|
537
|
+
const gitlabWorkflowPath = path.join(cwd, ".gitlab-ci.yml");
|
|
538
|
+
if (includeCiWorkflow || includeCdWorkflow) {
|
|
539
|
+
if (workflowProvider === "github") {
|
|
540
|
+
try {
|
|
541
|
+
fs.mkdirSync(workflowsDir, { recursive: true });
|
|
542
|
+
}
|
|
543
|
+
catch (error) {
|
|
544
|
+
return {
|
|
545
|
+
success: false,
|
|
546
|
+
created,
|
|
547
|
+
skipped,
|
|
548
|
+
error: `Failed to create .github/workflows folder: ${error.message}`,
|
|
549
|
+
};
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
if (workflowProvider === "gitlab") {
|
|
553
|
+
if (fs.existsSync(gitlabWorkflowPath) && !force) {
|
|
554
|
+
skipped.push(".gitlab-ci.yml");
|
|
555
|
+
}
|
|
556
|
+
else {
|
|
557
|
+
try {
|
|
558
|
+
fs.writeFileSync(gitlabWorkflowPath, TINYBIRD_GITLAB_CI);
|
|
559
|
+
created.push(".gitlab-ci.yml");
|
|
560
|
+
ciWorkflowCreated = includeCiWorkflow;
|
|
561
|
+
cdWorkflowCreated = includeCdWorkflow;
|
|
562
|
+
}
|
|
563
|
+
catch (error) {
|
|
564
|
+
return {
|
|
565
|
+
success: false,
|
|
566
|
+
created,
|
|
567
|
+
skipped,
|
|
568
|
+
error: `Failed to create .gitlab-ci.yml: ${error.message}`,
|
|
569
|
+
};
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
if (workflowProvider === "github") {
|
|
575
|
+
if (includeCiWorkflow) {
|
|
576
|
+
if (fs.existsSync(ciWorkflowPath) && !force) {
|
|
577
|
+
skipped.push(".github/workflows/tinybird-ci.yaml");
|
|
578
|
+
}
|
|
579
|
+
else {
|
|
580
|
+
try {
|
|
581
|
+
fs.writeFileSync(ciWorkflowPath, TINYBIRD_CI_WORKFLOW);
|
|
582
|
+
created.push(".github/workflows/tinybird-ci.yaml");
|
|
583
|
+
ciWorkflowCreated = true;
|
|
584
|
+
}
|
|
585
|
+
catch (error) {
|
|
586
|
+
return {
|
|
587
|
+
success: false,
|
|
588
|
+
created,
|
|
589
|
+
skipped,
|
|
590
|
+
error: `Failed to create tinybird-ci.yaml: ${error.message}`,
|
|
591
|
+
};
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
if (includeCdWorkflow) {
|
|
596
|
+
if (fs.existsSync(cdWorkflowPath) && !force) {
|
|
597
|
+
skipped.push(".github/workflows/tinybird-cd.yaml");
|
|
598
|
+
}
|
|
599
|
+
else {
|
|
600
|
+
try {
|
|
601
|
+
fs.writeFileSync(cdWorkflowPath, TINYBIRD_CD_WORKFLOW);
|
|
602
|
+
created.push(".github/workflows/tinybird-cd.yaml");
|
|
603
|
+
cdWorkflowCreated = true;
|
|
604
|
+
}
|
|
605
|
+
catch (error) {
|
|
606
|
+
return {
|
|
607
|
+
success: false,
|
|
608
|
+
created,
|
|
609
|
+
skipped,
|
|
610
|
+
error: `Failed to create tinybird-cd.yaml: ${error.message}`,
|
|
611
|
+
};
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
}
|
|
252
616
|
// Check if login is needed
|
|
253
617
|
if (!skipLogin && !hasValidToken(cwd)) {
|
|
254
618
|
console.log("\nNo authentication found. Starting login flow...\n");
|
|
@@ -261,8 +625,9 @@ export async function runInit(options = {}) {
|
|
|
261
625
|
created.push(".env.local");
|
|
262
626
|
}
|
|
263
627
|
// If custom base URL, update tinybird.json
|
|
264
|
-
|
|
265
|
-
|
|
628
|
+
const baseUrl = authResult.baseUrl ?? "https://api.tinybird.co";
|
|
629
|
+
if (baseUrl !== "https://api.tinybird.co") {
|
|
630
|
+
updateConfig(configPath, { baseUrl });
|
|
266
631
|
}
|
|
267
632
|
return {
|
|
268
633
|
success: true,
|
|
@@ -271,6 +636,12 @@ export async function runInit(options = {}) {
|
|
|
271
636
|
loggedIn: true,
|
|
272
637
|
workspaceName: authResult.workspaceName,
|
|
273
638
|
userEmail: authResult.userEmail,
|
|
639
|
+
devMode,
|
|
640
|
+
clientPath: relativeTinybirdDir,
|
|
641
|
+
existingDatafiles: existingDatafiles.length > 0 ? existingDatafiles : undefined,
|
|
642
|
+
ciWorkflowCreated,
|
|
643
|
+
cdWorkflowCreated,
|
|
644
|
+
workflowProvider,
|
|
274
645
|
};
|
|
275
646
|
}
|
|
276
647
|
catch (error) {
|
|
@@ -281,6 +652,12 @@ export async function runInit(options = {}) {
|
|
|
281
652
|
created,
|
|
282
653
|
skipped,
|
|
283
654
|
loggedIn: false,
|
|
655
|
+
devMode,
|
|
656
|
+
clientPath: relativeTinybirdDir,
|
|
657
|
+
existingDatafiles: existingDatafiles.length > 0 ? existingDatafiles : undefined,
|
|
658
|
+
ciWorkflowCreated,
|
|
659
|
+
cdWorkflowCreated,
|
|
660
|
+
workflowProvider,
|
|
284
661
|
};
|
|
285
662
|
}
|
|
286
663
|
}
|
|
@@ -291,6 +668,12 @@ export async function runInit(options = {}) {
|
|
|
291
668
|
created,
|
|
292
669
|
skipped,
|
|
293
670
|
loggedIn: false,
|
|
671
|
+
devMode,
|
|
672
|
+
clientPath: relativeTinybirdDir,
|
|
673
|
+
existingDatafiles: existingDatafiles.length > 0 ? existingDatafiles : undefined,
|
|
674
|
+
ciWorkflowCreated,
|
|
675
|
+
cdWorkflowCreated,
|
|
676
|
+
workflowProvider,
|
|
294
677
|
};
|
|
295
678
|
}
|
|
296
679
|
}
|
|
@@ -298,6 +681,34 @@ export async function runInit(options = {}) {
|
|
|
298
681
|
success: true,
|
|
299
682
|
created,
|
|
300
683
|
skipped,
|
|
684
|
+
devMode,
|
|
685
|
+
clientPath: relativeTinybirdDir,
|
|
686
|
+
existingDatafiles: existingDatafiles.length > 0 ? existingDatafiles : undefined,
|
|
687
|
+
ciWorkflowCreated,
|
|
688
|
+
cdWorkflowCreated,
|
|
689
|
+
workflowProvider,
|
|
301
690
|
};
|
|
302
691
|
}
|
|
692
|
+
/**
|
|
693
|
+
* Prompt user about including existing datafiles
|
|
694
|
+
*/
|
|
695
|
+
async function promptForExistingDatafiles(datafiles) {
|
|
696
|
+
const datasourceCount = datafiles.filter((f) => f.endsWith(".datasource")).length;
|
|
697
|
+
const pipeCount = datafiles.filter((f) => f.endsWith(".pipe")).length;
|
|
698
|
+
const parts = [];
|
|
699
|
+
if (datasourceCount > 0) {
|
|
700
|
+
parts.push(`${datasourceCount} .datasource file${datasourceCount > 1 ? "s" : ""}`);
|
|
701
|
+
}
|
|
702
|
+
if (pipeCount > 0) {
|
|
703
|
+
parts.push(`${pipeCount} .pipe file${pipeCount > 1 ? "s" : ""}`);
|
|
704
|
+
}
|
|
705
|
+
const confirmInclude = await p.confirm({
|
|
706
|
+
message: `Found ${parts.join(" and ")} in your project. Include them in tinybird.json?`,
|
|
707
|
+
initialValue: true,
|
|
708
|
+
});
|
|
709
|
+
if (p.isCancel(confirmInclude)) {
|
|
710
|
+
return false;
|
|
711
|
+
}
|
|
712
|
+
return confirmInclude;
|
|
713
|
+
}
|
|
303
714
|
//# 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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"}
|