@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.
- package/README.md +87 -14
- package/dist/api/deploy.d.ts +41 -3
- package/dist/api/deploy.d.ts.map +1 -1
- package/dist/api/deploy.js +141 -19
- package/dist/api/deploy.js.map +1 -1
- package/dist/api/deploy.test.js +77 -29
- package/dist/api/deploy.test.js.map +1 -1
- package/dist/api/local.d.ts +92 -0
- package/dist/api/local.d.ts.map +1 -0
- package/dist/api/local.js +176 -0
- package/dist/api/local.js.map +1 -0
- package/dist/api/local.test.d.ts +2 -0
- package/dist/api/local.test.d.ts.map +1 -0
- package/dist/api/local.test.js +182 -0
- package/dist/api/local.test.js.map +1 -0
- package/dist/api/resources.d.ts +178 -0
- package/dist/api/resources.d.ts.map +1 -0
- package/dist/api/resources.js +244 -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/cli/commands/build.d.ts +6 -4
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +95 -47
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/deploy.d.ts +39 -0
- package/dist/cli/commands/deploy.d.ts.map +1 -0
- package/dist/cli/commands/deploy.js +90 -0
- package/dist/cli/commands/deploy.js.map +1 -0
- package/dist/cli/commands/dev.d.ts +9 -2
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +60 -31
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/init.d.ts +24 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +174 -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/config.d.ts +14 -0
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +7 -0
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/config.test.js +29 -0
- package/dist/cli/config.test.js.map +1 -1
- package/dist/cli/index.js +107 -11
- 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/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/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/deploy.test.ts +135 -34
- package/src/api/deploy.ts +203 -23
- package/src/api/local.test.ts +250 -0
- package/src/api/local.ts +270 -0
- package/src/api/resources.test.ts +332 -0
- package/src/api/resources.ts +554 -0
- package/src/cli/commands/build.ts +115 -53
- package/src/cli/commands/deploy.ts +126 -0
- package/src/cli/commands/dev.ts +81 -36
- package/src/cli/commands/init.test.ts +239 -30
- package/src/cli/commands/init.ts +243 -26
- package/src/cli/config.test.ts +47 -0
- package/src/cli/config.ts +20 -0
- package/src/cli/index.ts +120 -11
- package/src/cli/utils/package-manager.test.ts +118 -0
- package/src/cli/utils/package-manager.ts +44 -0
- 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/test/handlers.ts +58 -0
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Build command - generates and pushes resources to Tinybird
|
|
2
|
+
* Build command - generates and pushes resources to Tinybird branches
|
|
3
3
|
*/
|
|
4
|
-
import { loadConfig } from "../config.js";
|
|
4
|
+
import { loadConfig, LOCAL_BASE_URL } from "../config.js";
|
|
5
5
|
import { buildFromInclude } from "../../generator/index.js";
|
|
6
6
|
import { buildToTinybird } from "../../api/build.js";
|
|
7
|
-
import { deployToMain } from "../../api/deploy.js";
|
|
8
7
|
import { getOrCreateBranch } from "../../api/branches.js";
|
|
8
|
+
import { getLocalTokens, getOrCreateLocalWorkspace, getLocalWorkspaceName, LocalNotRunningError, } from "../../api/local.js";
|
|
9
9
|
/**
|
|
10
10
|
* Run the build command
|
|
11
11
|
*
|
|
12
|
-
*
|
|
12
|
+
* Builds resources and pushes to Tinybird branches (not main).
|
|
13
|
+
* Use runDeploy for deploying to production.
|
|
13
14
|
*
|
|
14
15
|
* @param options - Build options
|
|
15
16
|
* @returns Build command result
|
|
@@ -52,72 +53,119 @@ export async function runBuild(options = {}) {
|
|
|
52
53
|
durationMs: Date.now() - startTime,
|
|
53
54
|
};
|
|
54
55
|
}
|
|
55
|
-
//
|
|
56
|
-
|
|
57
|
-
let effectiveToken = options.tokenOverride ?? config.token;
|
|
58
|
-
let useDeployEndpoint = options.useDeployEndpoint ?? config.isMainBranch;
|
|
59
|
-
// For feature branches, get or create the Tinybird branch and use its token
|
|
56
|
+
// Determine devMode
|
|
57
|
+
const devMode = options.devModeOverride ?? config.devMode;
|
|
60
58
|
const debug = !!process.env.TINYBIRD_DEBUG;
|
|
61
59
|
if (debug) {
|
|
62
|
-
console.log(`[debug]
|
|
63
|
-
console.log(`[debug] tinybirdBranch: ${config.tinybirdBranch}`);
|
|
64
|
-
console.log(`[debug] tokenOverride: ${!!options.tokenOverride}`);
|
|
60
|
+
console.log(`[debug] devMode: ${devMode}`);
|
|
65
61
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
62
|
+
let deployResult;
|
|
63
|
+
// Handle local mode
|
|
64
|
+
if (devMode === "local") {
|
|
70
65
|
try {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
|
|
66
|
+
// Get tokens from local container
|
|
67
|
+
if (debug) {
|
|
68
|
+
console.log(`[debug] Getting local tokens from ${LOCAL_BASE_URL}/tokens`);
|
|
69
|
+
}
|
|
70
|
+
const localTokens = await getLocalTokens();
|
|
71
|
+
// Get or create workspace based on branch name
|
|
72
|
+
const workspaceName = getLocalWorkspaceName(config.tinybirdBranch, config.cwd);
|
|
73
|
+
if (debug) {
|
|
74
|
+
console.log(`[debug] Using local workspace: ${workspaceName}`);
|
|
75
|
+
}
|
|
76
|
+
const { workspace, wasCreated } = await getOrCreateLocalWorkspace(localTokens, workspaceName);
|
|
77
|
+
if (debug) {
|
|
78
|
+
console.log(`[debug] Workspace ${wasCreated ? "created" : "found"}: ${workspace.name}`);
|
|
79
|
+
}
|
|
80
|
+
// Always use /v1/build for local (no deploy endpoint)
|
|
81
|
+
deployResult = await buildToTinybird({
|
|
82
|
+
baseUrl: LOCAL_BASE_URL,
|
|
83
|
+
token: workspace.token,
|
|
84
|
+
}, buildResult.resources);
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
if (error instanceof LocalNotRunningError) {
|
|
76
88
|
return {
|
|
77
89
|
success: false,
|
|
78
90
|
build: buildResult,
|
|
79
|
-
error:
|
|
91
|
+
error: error.message,
|
|
80
92
|
durationMs: Date.now() - startTime,
|
|
81
93
|
};
|
|
82
94
|
}
|
|
83
|
-
effectiveToken = tinybirdBranch.token;
|
|
84
|
-
useDeployEndpoint = false; // Always use /v1/build for branches
|
|
85
|
-
if (debug) {
|
|
86
|
-
console.log(`[debug] Using branch token for branch: ${config.tinybirdBranch}`);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
catch (error) {
|
|
90
95
|
return {
|
|
91
96
|
success: false,
|
|
92
97
|
build: buildResult,
|
|
93
|
-
error: `
|
|
98
|
+
error: `Local build failed: ${error.message}`,
|
|
94
99
|
durationMs: Date.now() - startTime,
|
|
95
100
|
};
|
|
96
101
|
}
|
|
97
102
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
//
|
|
101
|
-
if (
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
103
|
+
else {
|
|
104
|
+
// Branch mode (default)
|
|
105
|
+
// Prevent building to main - must use deploy command
|
|
106
|
+
// Skip this check if tokenOverride is provided (dev command passes branch token)
|
|
107
|
+
const isMainBranch = config.isMainBranch || !config.tinybirdBranch;
|
|
108
|
+
if (isMainBranch && !options.tokenOverride) {
|
|
109
|
+
return {
|
|
110
|
+
success: false,
|
|
111
|
+
build: buildResult,
|
|
112
|
+
error: `Cannot deploy to main workspace with 'build' command. Use 'tinybird deploy' to deploy to production, or switch to a feature branch.`,
|
|
113
|
+
durationMs: Date.now() - startTime,
|
|
114
|
+
};
|
|
106
115
|
}
|
|
107
|
-
|
|
116
|
+
if (debug) {
|
|
117
|
+
console.log(`[debug] isMainBranch: ${config.isMainBranch}`);
|
|
118
|
+
console.log(`[debug] tinybirdBranch: ${config.tinybirdBranch}`);
|
|
119
|
+
console.log(`[debug] tokenOverride: ${!!options.tokenOverride}`);
|
|
120
|
+
}
|
|
121
|
+
let effectiveToken = options.tokenOverride ?? config.token;
|
|
122
|
+
// Get or create the Tinybird branch and use its token
|
|
123
|
+
if (!options.tokenOverride) {
|
|
124
|
+
if (debug) {
|
|
125
|
+
console.log(`[debug] Getting/creating Tinybird branch: ${config.tinybirdBranch}`);
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
const tinybirdBranch = await getOrCreateBranch({
|
|
129
|
+
baseUrl: config.baseUrl,
|
|
130
|
+
token: config.token,
|
|
131
|
+
}, config.tinybirdBranch);
|
|
132
|
+
if (!tinybirdBranch.token) {
|
|
133
|
+
return {
|
|
134
|
+
success: false,
|
|
135
|
+
build: buildResult,
|
|
136
|
+
error: `Branch '${config.tinybirdBranch}' was created but no token was returned.`,
|
|
137
|
+
durationMs: Date.now() - startTime,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
effectiveToken = tinybirdBranch.token;
|
|
141
|
+
if (debug) {
|
|
142
|
+
console.log(`[debug] Using branch token for branch: ${config.tinybirdBranch}`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
return {
|
|
147
|
+
success: false,
|
|
148
|
+
build: buildResult,
|
|
149
|
+
error: `Failed to get/create branch: ${error.message}`,
|
|
150
|
+
durationMs: Date.now() - startTime,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
try {
|
|
155
|
+
// Always use /v1/build for branches
|
|
108
156
|
deployResult = await buildToTinybird({
|
|
109
157
|
baseUrl: config.baseUrl,
|
|
110
158
|
token: effectiveToken,
|
|
111
159
|
}, buildResult.resources);
|
|
112
160
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
return {
|
|
163
|
+
success: false,
|
|
164
|
+
build: buildResult,
|
|
165
|
+
error: `Deploy failed: ${error.message}`,
|
|
166
|
+
durationMs: Date.now() - startTime,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
121
169
|
}
|
|
122
170
|
if (!deployResult.success) {
|
|
123
171
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAqC,MAAM,cAAc,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAA+B,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAAE,eAAe,EAAuB,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EACL,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAgC5B;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,UAA+B,EAAE;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEzC,cAAc;IACd,IAAI,MAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAG,KAAe,CAAC,OAAO;YAC/B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;IACJ,CAAC;IAED,qCAAqC;IACrC,IAAI,WAAmC,CAAC;IACxC,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,gBAAgB,CAAC;YACnC,YAAY,EAAE,MAAM,CAAC,OAAO;YAC5B,GAAG,EAAE,MAAM,CAAC,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,iBAAkB,KAAe,CAAC,OAAO,EAAE;YAClD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;IACJ,CAAC;IAED,qCAAqC;IACrC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,WAAW;YAClB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;IACJ,CAAC;IAED,oBAAoB;IACpB,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,IAAI,MAAM,CAAC,OAAO,CAAC;IAC1D,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAE3C,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,YAA4B,CAAC;IAEjC,oBAAoB;IACpB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,kCAAkC;YAClC,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CAAC,qCAAqC,cAAc,SAAS,CAAC,CAAC;YAC5E,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;YAE3C,+CAA+C;YAC/C,MAAM,aAAa,GAAG,qBAAqB,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/E,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CAAC,kCAAkC,aAAa,EAAE,CAAC,CAAC;YACjE,CAAC;YAED,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,yBAAyB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YAC9F,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CAAC,qBAAqB,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1F,CAAC;YAED,sDAAsD;YACtD,YAAY,GAAG,MAAM,eAAe,CAClC;gBACE,OAAO,EAAE,cAAc;gBACvB,KAAK,EAAE,SAAS,CAAC,KAAK;aACvB,EACD,WAAW,CAAC,SAAS,CACtB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;gBAC1C,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,WAAW;oBAClB,KAAK,EAAE,KAAK,CAAC,OAAO;oBACpB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBACnC,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,uBAAwB,KAAe,CAAC,OAAO,EAAE;gBACxD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACnC,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,wBAAwB;QACxB,qDAAqD;QACrD,iFAAiF;QACjF,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;QAEnE,IAAI,YAAY,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3C,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,qIAAqI;gBAC5I,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACnC,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,cAAc,GAAG,OAAO,CAAC,aAAa,IAAI,MAAM,CAAC,KAAK,CAAC;QAE3D,sDAAsD;QACtD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CAAC,6CAA6C,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;YACpF,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAC5C;oBACE,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB,EACD,MAAM,CAAC,cAAe,CACvB,CAAC;gBAEF,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;oBAC1B,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,WAAW;wBAClB,KAAK,EAAE,WAAW,MAAM,CAAC,cAAc,0CAA0C;wBACjF,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;qBACnC,CAAC;gBACJ,CAAC;gBAED,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC;gBACtC,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,CAAC,GAAG,CAAC,0CAA0C,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,WAAW;oBAClB,KAAK,EAAE,gCAAiC,KAAe,CAAC,OAAO,EAAE;oBACjE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBACnC,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,oCAAoC;YACpC,YAAY,GAAG,MAAM,eAAe,CAClC;gBACE,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,KAAK,EAAE,cAAc;aACtB,EACD,WAAW,CAAC,SAAS,CACtB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,kBAAmB,KAAe,CAAC,OAAO,EAAE;gBACnD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACnC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;KACnC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deploy command - deploys resources to main Tinybird workspace
|
|
3
|
+
*/
|
|
4
|
+
import { type BuildFromIncludeResult } from "../../generator/index.js";
|
|
5
|
+
import type { BuildApiResult } from "../../api/build.js";
|
|
6
|
+
/**
|
|
7
|
+
* Deploy command options
|
|
8
|
+
*/
|
|
9
|
+
export interface DeployCommandOptions {
|
|
10
|
+
/** Working directory (defaults to cwd) */
|
|
11
|
+
cwd?: string;
|
|
12
|
+
/** Skip pushing to API (just generate) */
|
|
13
|
+
dryRun?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Deploy command result
|
|
17
|
+
*/
|
|
18
|
+
export interface DeployCommandResult {
|
|
19
|
+
/** Whether the deploy was successful */
|
|
20
|
+
success: boolean;
|
|
21
|
+
/** Build result with generated resources */
|
|
22
|
+
build?: BuildFromIncludeResult;
|
|
23
|
+
/** Deploy API result (if not dry run) */
|
|
24
|
+
deploy?: BuildApiResult;
|
|
25
|
+
/** Error message if failed */
|
|
26
|
+
error?: string;
|
|
27
|
+
/** Duration in milliseconds */
|
|
28
|
+
durationMs: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Run the deploy command
|
|
32
|
+
*
|
|
33
|
+
* Builds resources and deploys to main Tinybird workspace (production).
|
|
34
|
+
*
|
|
35
|
+
* @param options - Deploy options
|
|
36
|
+
* @returns Deploy command result
|
|
37
|
+
*/
|
|
38
|
+
export declare function runDeploy(options?: DeployCommandOptions): Promise<DeployCommandResult>;
|
|
39
|
+
//# sourceMappingURL=deploy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/deploy.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAoB,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,0CAA0C;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,yCAAyC;IACzC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAkFhG"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deploy command - deploys resources to main Tinybird workspace
|
|
3
|
+
*/
|
|
4
|
+
import { loadConfig } from "../config.js";
|
|
5
|
+
import { buildFromInclude } from "../../generator/index.js";
|
|
6
|
+
import { deployToMain } from "../../api/deploy.js";
|
|
7
|
+
/**
|
|
8
|
+
* Run the deploy command
|
|
9
|
+
*
|
|
10
|
+
* Builds resources and deploys to main Tinybird workspace (production).
|
|
11
|
+
*
|
|
12
|
+
* @param options - Deploy options
|
|
13
|
+
* @returns Deploy command result
|
|
14
|
+
*/
|
|
15
|
+
export async function runDeploy(options = {}) {
|
|
16
|
+
const startTime = Date.now();
|
|
17
|
+
const cwd = options.cwd ?? process.cwd();
|
|
18
|
+
// Load config
|
|
19
|
+
let config;
|
|
20
|
+
try {
|
|
21
|
+
config = loadConfig(cwd);
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
return {
|
|
25
|
+
success: false,
|
|
26
|
+
error: error.message,
|
|
27
|
+
durationMs: Date.now() - startTime,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
// Build resources from include paths
|
|
31
|
+
let buildResult;
|
|
32
|
+
try {
|
|
33
|
+
buildResult = await buildFromInclude({
|
|
34
|
+
includePaths: config.include,
|
|
35
|
+
cwd: config.cwd,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
return {
|
|
40
|
+
success: false,
|
|
41
|
+
error: `Build failed: ${error.message}`,
|
|
42
|
+
durationMs: Date.now() - startTime,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
// If dry run, return without pushing
|
|
46
|
+
if (options.dryRun) {
|
|
47
|
+
return {
|
|
48
|
+
success: true,
|
|
49
|
+
build: buildResult,
|
|
50
|
+
durationMs: Date.now() - startTime,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
const debug = !!process.env.TINYBIRD_DEBUG;
|
|
54
|
+
if (debug) {
|
|
55
|
+
console.log(`[debug] Deploying to main workspace`);
|
|
56
|
+
console.log(`[debug] baseUrl: ${config.baseUrl}`);
|
|
57
|
+
}
|
|
58
|
+
// Deploy to main workspace using /v1/deploy endpoint
|
|
59
|
+
let deployResult;
|
|
60
|
+
try {
|
|
61
|
+
deployResult = await deployToMain({
|
|
62
|
+
baseUrl: config.baseUrl,
|
|
63
|
+
token: config.token,
|
|
64
|
+
}, buildResult.resources);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
return {
|
|
68
|
+
success: false,
|
|
69
|
+
build: buildResult,
|
|
70
|
+
error: `Deploy failed: ${error.message}`,
|
|
71
|
+
durationMs: Date.now() - startTime,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
if (!deployResult.success) {
|
|
75
|
+
return {
|
|
76
|
+
success: false,
|
|
77
|
+
build: buildResult,
|
|
78
|
+
deploy: deployResult,
|
|
79
|
+
error: deployResult.error,
|
|
80
|
+
durationMs: Date.now() - startTime,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
success: true,
|
|
85
|
+
build: buildResult,
|
|
86
|
+
deploy: deployResult,
|
|
87
|
+
durationMs: Date.now() - startTime,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/cli/commands/deploy.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAuB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAA+B,MAAM,0BAA0B,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AA6BnD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,UAAgC,EAAE;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEzC,cAAc;IACd,IAAI,MAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAG,KAAe,CAAC,OAAO;YAC/B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;IACJ,CAAC;IAED,qCAAqC;IACrC,IAAI,WAAmC,CAAC;IACxC,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,gBAAgB,CAAC;YACnC,YAAY,EAAE,MAAM,CAAC,OAAO;YAC5B,GAAG,EAAE,MAAM,CAAC,GAAG;SAChB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,iBAAkB,KAAe,CAAC,OAAO,EAAE;YAClD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;IACJ,CAAC;IAED,qCAAqC;IACrC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,WAAW;YAClB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAE3C,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,qDAAqD;IACrD,IAAI,YAA4B,CAAC;IACjC,IAAI,CAAC;QACH,YAAY,GAAG,MAAM,YAAY,CAC/B;YACE,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,EACD,WAAW,CAAC,SAAS,CACtB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,kBAAmB,KAAe,CAAC,OAAO,EAAE;YACnD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,YAAY;QACpB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;KACnC,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Dev command - watch mode with automatic sync
|
|
3
3
|
*/
|
|
4
|
-
import { type ResolvedConfig } from "../config.js";
|
|
4
|
+
import { type ResolvedConfig, type DevMode } from "../config.js";
|
|
5
5
|
import { type BuildCommandResult } from "./build.js";
|
|
6
6
|
import { type TinybirdBranch } from "../../api/branches.js";
|
|
7
7
|
import { type SchemaValidationResult } from "../utils/schema-validation.js";
|
|
8
|
+
import { type LocalWorkspace } from "../../api/local.js";
|
|
8
9
|
/**
|
|
9
10
|
* Login result info
|
|
10
11
|
*/
|
|
@@ -34,6 +35,8 @@ export interface DevCommandOptions {
|
|
|
34
35
|
onLoginComplete?: (info: LoginInfo) => void;
|
|
35
36
|
/** Callback when schema validation completes */
|
|
36
37
|
onSchemaValidation?: (result: SchemaValidationResult) => void;
|
|
38
|
+
/** Override the devMode from config */
|
|
39
|
+
devModeOverride?: DevMode;
|
|
37
40
|
}
|
|
38
41
|
/**
|
|
39
42
|
* Information about the branch being used
|
|
@@ -43,10 +46,14 @@ export interface BranchReadyInfo {
|
|
|
43
46
|
gitBranch: string | null;
|
|
44
47
|
/** Whether we're on the main branch */
|
|
45
48
|
isMainBranch: boolean;
|
|
46
|
-
/** Tinybird branch info (null if on main) */
|
|
49
|
+
/** Tinybird branch info (null if on main or local mode) */
|
|
47
50
|
tinybirdBranch?: TinybirdBranch;
|
|
48
51
|
/** Whether the branch was newly created */
|
|
49
52
|
wasCreated?: boolean;
|
|
53
|
+
/** Whether using local mode */
|
|
54
|
+
isLocal?: boolean;
|
|
55
|
+
/** Local workspace info (only in local mode) */
|
|
56
|
+
localWorkspace?: LocalWorkspace;
|
|
50
57
|
}
|
|
51
58
|
/**
|
|
52
59
|
* Dev command controller
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAyF,KAAK,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AACxJ,OAAO,EAAY,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG/E,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,oCAAoC;IACpC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACvD,oCAAoC;IACpC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,+CAA+C;IAC/C,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;IAChD,kDAAkD;IAClD,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IAC5C,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC9D,uCAAuC;IACvC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,uCAAuC;IACvC,YAAY,EAAE,OAAO,CAAC;IACtB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,2CAA2C;IAC3C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,+BAA+B;IAC/B,OAAO,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC3C,mCAAmC;IACnC,MAAM,EAAE,cAAc,CAAC;IACvB,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB;IAClB,UAAU,EAAE,eAAe,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,MAAM,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,aAAa,CAAC,CAqRpF"}
|
package/dist/cli/commands/dev.js
CHANGED
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as path from "path";
|
|
5
5
|
import { watch } from "chokidar";
|
|
6
|
-
import { loadConfig, configExists, findConfigFile, hasValidToken, updateConfig } from "../config.js";
|
|
6
|
+
import { loadConfig, configExists, findConfigFile, hasValidToken, updateConfig, LOCAL_BASE_URL } from "../config.js";
|
|
7
7
|
import { runBuild } from "./build.js";
|
|
8
8
|
import { getOrCreateBranch } from "../../api/branches.js";
|
|
9
9
|
import { browserLogin } from "../auth.js";
|
|
10
10
|
import { saveTinybirdToken } from "../env.js";
|
|
11
11
|
import { validatePipeSchemas, } from "../utils/schema-validation.js";
|
|
12
|
+
import { getLocalTokens, getOrCreateLocalWorkspace, getLocalWorkspaceName, } from "../../api/local.js";
|
|
12
13
|
/**
|
|
13
14
|
* Run the dev command
|
|
14
15
|
*
|
|
@@ -27,8 +28,18 @@ export async function runDev(options = {}) {
|
|
|
27
28
|
if (!configExists(cwd)) {
|
|
28
29
|
throw new Error("No tinybird.json found. Run 'npx tinybird init' to initialize a project.");
|
|
29
30
|
}
|
|
30
|
-
//
|
|
31
|
-
|
|
31
|
+
// Load config first to determine devMode
|
|
32
|
+
let config;
|
|
33
|
+
try {
|
|
34
|
+
config = loadConfig(cwd);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
throw error;
|
|
38
|
+
}
|
|
39
|
+
// Determine devMode
|
|
40
|
+
const devMode = options.devModeOverride ?? config.devMode;
|
|
41
|
+
// Check if authentication is set up, if not trigger login (skip for local mode)
|
|
42
|
+
if (devMode !== "local" && !hasValidToken(cwd)) {
|
|
32
43
|
console.log("No authentication found. Starting login flow...\n");
|
|
33
44
|
const authResult = await browserLogin();
|
|
34
45
|
if (!authResult.success || !authResult.token) {
|
|
@@ -54,42 +65,59 @@ export async function runDev(options = {}) {
|
|
|
54
65
|
workspaceName: authResult.workspaceName,
|
|
55
66
|
userEmail: authResult.userEmail,
|
|
56
67
|
});
|
|
57
|
-
|
|
58
|
-
// Load config (now should have valid token)
|
|
59
|
-
let config;
|
|
60
|
-
try {
|
|
68
|
+
// Reload config after login
|
|
61
69
|
config = loadConfig(cwd);
|
|
62
70
|
}
|
|
63
|
-
|
|
64
|
-
throw error;
|
|
65
|
-
}
|
|
66
|
-
// Determine effective token based on git branch
|
|
71
|
+
// Determine effective token and branch info based on devMode
|
|
67
72
|
let effectiveToken = config.token;
|
|
73
|
+
let effectiveBaseUrl = config.baseUrl;
|
|
68
74
|
let branchInfo = {
|
|
69
75
|
gitBranch: config.gitBranch,
|
|
70
76
|
isMainBranch: config.isMainBranch,
|
|
71
77
|
};
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
token: config.token,
|
|
80
|
-
}, branchName);
|
|
81
|
-
if (!tinybirdBranch.token) {
|
|
82
|
-
throw new Error(`Branch '${branchName}' was created but no token was returned. ` +
|
|
83
|
-
`This may be an API issue.`);
|
|
84
|
-
}
|
|
85
|
-
effectiveToken = tinybirdBranch.token;
|
|
78
|
+
if (devMode === "local") {
|
|
79
|
+
// Local mode: get tokens from local container and set up workspace
|
|
80
|
+
const localTokens = await getLocalTokens();
|
|
81
|
+
const workspaceName = getLocalWorkspaceName(config.tinybirdBranch, config.cwd);
|
|
82
|
+
const { workspace, wasCreated } = await getOrCreateLocalWorkspace(localTokens, workspaceName);
|
|
83
|
+
effectiveToken = workspace.token;
|
|
84
|
+
effectiveBaseUrl = LOCAL_BASE_URL;
|
|
86
85
|
branchInfo = {
|
|
87
|
-
gitBranch: config.gitBranch,
|
|
88
|
-
isMainBranch: false,
|
|
89
|
-
|
|
90
|
-
|
|
86
|
+
gitBranch: config.gitBranch,
|
|
87
|
+
isMainBranch: false, // Local mode always uses build, not deploy
|
|
88
|
+
isLocal: true,
|
|
89
|
+
localWorkspace: workspace,
|
|
90
|
+
wasCreated,
|
|
91
91
|
};
|
|
92
92
|
}
|
|
93
|
+
else {
|
|
94
|
+
// Branch mode: use Tinybird cloud with branches
|
|
95
|
+
// Prevent dev mode on main branch - must use deploy command
|
|
96
|
+
if (config.isMainBranch || !config.tinybirdBranch) {
|
|
97
|
+
throw new Error(`Cannot use 'dev' command on main branch. Use 'tinybird deploy' to deploy to production, or switch to a feature branch.`);
|
|
98
|
+
}
|
|
99
|
+
// Get or create the Tinybird branch
|
|
100
|
+
// Use tinybirdBranch (sanitized name) for Tinybird API, gitBranch for display
|
|
101
|
+
if (config.tinybirdBranch) {
|
|
102
|
+
const branchName = config.tinybirdBranch; // Sanitized name for Tinybird
|
|
103
|
+
// Always fetch fresh from API to avoid stale cache issues
|
|
104
|
+
const tinybirdBranch = await getOrCreateBranch({
|
|
105
|
+
baseUrl: config.baseUrl,
|
|
106
|
+
token: config.token,
|
|
107
|
+
}, branchName);
|
|
108
|
+
if (!tinybirdBranch.token) {
|
|
109
|
+
throw new Error(`Branch '${branchName}' was created but no token was returned. ` +
|
|
110
|
+
`This may be an API issue.`);
|
|
111
|
+
}
|
|
112
|
+
effectiveToken = tinybirdBranch.token;
|
|
113
|
+
branchInfo = {
|
|
114
|
+
gitBranch: config.gitBranch, // Original git branch name for display
|
|
115
|
+
isMainBranch: false,
|
|
116
|
+
tinybirdBranch,
|
|
117
|
+
wasCreated: tinybirdBranch.wasCreated ?? false,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
}
|
|
93
121
|
// Notify about branch readiness
|
|
94
122
|
options.onBranchReady?.(branchInfo);
|
|
95
123
|
// Get directories to watch from include paths
|
|
@@ -113,10 +141,11 @@ export async function runDev(options = {}) {
|
|
|
113
141
|
isBuilding = true;
|
|
114
142
|
options.onBuildStart?.();
|
|
115
143
|
try {
|
|
144
|
+
// Always use runBuild - main branch is blocked at startup
|
|
116
145
|
const result = await runBuild({
|
|
117
146
|
cwd: config.cwd,
|
|
118
147
|
tokenOverride: effectiveToken,
|
|
119
|
-
|
|
148
|
+
devModeOverride: devMode,
|
|
120
149
|
});
|
|
121
150
|
options.onBuildComplete?.(result);
|
|
122
151
|
// Validate pipe schemas after successful deploy
|
|
@@ -134,7 +163,7 @@ export async function runDev(options = {}) {
|
|
|
134
163
|
const validation = await validatePipeSchemas({
|
|
135
164
|
entities: result.build.entities,
|
|
136
165
|
pipeNames: changedPipes,
|
|
137
|
-
baseUrl:
|
|
166
|
+
baseUrl: effectiveBaseUrl,
|
|
138
167
|
token: effectiveToken,
|
|
139
168
|
});
|
|
140
169
|
options.onSchemaValidation(validation);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../src/cli/commands/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Init command - scaffolds a new Tinybird TypeScript project
|
|
3
3
|
*/
|
|
4
|
+
import { type DevMode } from "../config.js";
|
|
4
5
|
/**
|
|
5
6
|
* Init command options
|
|
6
7
|
*/
|
|
@@ -11,6 +12,14 @@ export interface InitOptions {
|
|
|
11
12
|
force?: boolean;
|
|
12
13
|
/** Skip the login flow */
|
|
13
14
|
skipLogin?: boolean;
|
|
15
|
+
/** Development mode - if provided, skip interactive prompt */
|
|
16
|
+
devMode?: DevMode;
|
|
17
|
+
/** Client path - if provided, skip interactive prompt */
|
|
18
|
+
clientPath?: string;
|
|
19
|
+
/** Skip prompts for existing datafiles - for testing */
|
|
20
|
+
skipDatafilePrompt?: boolean;
|
|
21
|
+
/** Auto-include existing datafiles without prompting - for testing */
|
|
22
|
+
includeExistingDatafiles?: boolean;
|
|
14
23
|
}
|
|
15
24
|
/**
|
|
16
25
|
* Init command result
|
|
@@ -30,13 +39,27 @@ export interface InitResult {
|
|
|
30
39
|
workspaceName?: string;
|
|
31
40
|
/** User email after login */
|
|
32
41
|
userEmail?: string;
|
|
42
|
+
/** Selected development mode */
|
|
43
|
+
devMode?: DevMode;
|
|
44
|
+
/** Selected client path */
|
|
45
|
+
clientPath?: string;
|
|
46
|
+
/** Existing datafiles that were added to config */
|
|
47
|
+
existingDatafiles?: string[];
|
|
33
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Find existing .datasource and .pipe files in the repository
|
|
51
|
+
*
|
|
52
|
+
* @param cwd - Working directory to search from
|
|
53
|
+
* @param maxDepth - Maximum directory depth to search (default: 5)
|
|
54
|
+
* @returns Array of relative file paths
|
|
55
|
+
*/
|
|
56
|
+
export declare function findExistingDatafiles(cwd: string, maxDepth?: number): string[];
|
|
34
57
|
/**
|
|
35
58
|
* Run the init command
|
|
36
59
|
*
|
|
37
60
|
* Creates:
|
|
38
61
|
* - tinybird.json in the project root
|
|
39
|
-
* - src/tinybird/ folder with datasources.ts,
|
|
62
|
+
* - src/tinybird/ folder with datasources.ts, endpoints.ts, and client.ts
|
|
40
63
|
*
|
|
41
64
|
* @param options - Init options
|
|
42
65
|
* @returns Init result
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,EAKL,KAAK,OAAO,EACb,MAAM,cAAc,CAAC;AA2HtB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,sEAAsE;IACtE,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,QAAQ,GAAE,MAAU,GACnB,MAAM,EAAE,CA0CV;AAED;;;;;;;;;GASG;AACH,wBAAsB,OAAO,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAmS5E"}
|