@batadata/cli 0.1.0

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 (55) hide show
  1. package/dist/api.d.ts +28 -0
  2. package/dist/api.js +115 -0
  3. package/dist/api.js.map +1 -0
  4. package/dist/args.d.ts +20 -0
  5. package/dist/args.js +42 -0
  6. package/dist/args.js.map +1 -0
  7. package/dist/commands/api-keys.d.ts +11 -0
  8. package/dist/commands/api-keys.js +223 -0
  9. package/dist/commands/api-keys.js.map +1 -0
  10. package/dist/commands/auth.d.ts +3 -0
  11. package/dist/commands/auth.js +133 -0
  12. package/dist/commands/auth.js.map +1 -0
  13. package/dist/commands/connect.d.ts +7 -0
  14. package/dist/commands/connect.js +103 -0
  15. package/dist/commands/connect.js.map +1 -0
  16. package/dist/commands/create.d.ts +7 -0
  17. package/dist/commands/create.js +197 -0
  18. package/dist/commands/create.js.map +1 -0
  19. package/dist/commands/db.d.ts +8 -0
  20. package/dist/commands/db.js +316 -0
  21. package/dist/commands/db.js.map +1 -0
  22. package/dist/commands/dev.d.ts +1 -0
  23. package/dist/commands/dev.js +28 -0
  24. package/dist/commands/dev.js.map +1 -0
  25. package/dist/commands/generate.d.ts +1 -0
  26. package/dist/commands/generate.js +83 -0
  27. package/dist/commands/generate.js.map +1 -0
  28. package/dist/commands/migrate.d.ts +1 -0
  29. package/dist/commands/migrate.js +38 -0
  30. package/dist/commands/migrate.js.map +1 -0
  31. package/dist/commands/projects.d.ts +5 -0
  32. package/dist/commands/projects.js +259 -0
  33. package/dist/commands/projects.js.map +1 -0
  34. package/dist/commands/schema.d.ts +1 -0
  35. package/dist/commands/schema.js +38 -0
  36. package/dist/commands/schema.js.map +1 -0
  37. package/dist/commands/status.d.ts +7 -0
  38. package/dist/commands/status.js +106 -0
  39. package/dist/commands/status.js.map +1 -0
  40. package/dist/config.d.ts +45 -0
  41. package/dist/config.js +96 -0
  42. package/dist/config.js.map +1 -0
  43. package/dist/index.d.ts +2 -0
  44. package/dist/index.js +169 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/utils/logger.d.ts +26 -0
  47. package/dist/utils/logger.js +130 -0
  48. package/dist/utils/logger.js.map +1 -0
  49. package/dist/utils/open.d.ts +1 -0
  50. package/dist/utils/open.js +20 -0
  51. package/dist/utils/open.js.map +1 -0
  52. package/dist/utils/prompts.d.ts +7 -0
  53. package/dist/utils/prompts.js +92 -0
  54. package/dist/utils/prompts.js.map +1 -0
  55. package/package.json +39 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/commands/db.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function dev(): Promise<void>;
@@ -0,0 +1,28 @@
1
+ import { colors, log, heading } from "../utils/logger.js";
2
+ export async function dev() {
3
+ heading("BataDB Local Development");
4
+ log(` Get started with BataDB in your project:`);
5
+ log();
6
+ log(` ${colors.cyan("1.")} ${colors.bold("Install the ORM")}`);
7
+ log(` ${colors.dim("npm install @batadata/turbine")}`);
8
+ log();
9
+ log(` ${colors.cyan("2.")} ${colors.bold("Set your database URL")}`);
10
+ log(` ${colors.dim("Add DATABASE_URL to your .env file:")}`);
11
+ log(` ${colors.dim("DATABASE_URL=$(bata db url)")}`);
12
+ log();
13
+ log(` ${colors.cyan("3.")} ${colors.bold("Generate types from your schema")}`);
14
+ log(` ${colors.dim("bata generate")}`);
15
+ log();
16
+ log(` ${colors.cyan("4.")} ${colors.bold("Import and query")}`);
17
+ log(` ${colors.dim("import { turbine } from '@batadata/turbine'")}`);
18
+ log(` ${colors.dim("const db = turbine('DATABASE_URL')")}`);
19
+ log(` ${colors.dim("const users = await db.users.findMany()")}`);
20
+ log();
21
+ log(` ${colors.bold("Useful commands:")}`);
22
+ log(` ${colors.cyan("bata db connect")} Open psql shell`);
23
+ log(` ${colors.cyan("bata db studio")} Open visual table browser`);
24
+ log(` ${colors.cyan("bata db branches")} List database branches`);
25
+ log(` ${colors.cyan("bata generate -w")} Watch mode for type generation`);
26
+ log();
27
+ }
28
+ //# sourceMappingURL=dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,GAAG;IACvB,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAEpC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAClD,GAAG,EAAE,CAAC;IACN,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAChE,GAAG,CAAC,QAAQ,MAAM,CAAC,GAAG,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAC;IAC3D,GAAG,EAAE,CAAC;IACN,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IACtE,GAAG,CAAC,QAAQ,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC,EAAE,CAAC,CAAC;IACjE,GAAG,CAAC,QAAQ,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC;IACzD,GAAG,EAAE,CAAC;IACN,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;IAChF,GAAG,CAAC,QAAQ,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC3C,GAAG,EAAE,CAAC;IACN,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACjE,GAAG,CAAC,QAAQ,MAAM,CAAC,GAAG,CAAC,6CAA6C,CAAC,EAAE,CAAC,CAAC;IACzE,GAAG,CAAC,QAAQ,MAAM,CAAC,GAAG,CAAC,oCAAoC,CAAC,EAAE,CAAC,CAAC;IAChE,GAAG,CAAC,QAAQ,MAAM,CAAC,GAAG,CAAC,yCAAyC,CAAC,EAAE,CAAC,CAAC;IACrE,GAAG,EAAE,CAAC;IACN,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAC5C,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC;IACjE,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,iCAAiC,CAAC,CAAC;IAC3E,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,4BAA4B,CAAC,CAAC;IACxE,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,oCAAoC,CAAC,CAAC;IAChF,GAAG,EAAE,CAAC;AACR,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function generate(args: string[]): Promise<void>;
@@ -0,0 +1,83 @@
1
+ import { spawn, spawnSync } from "node:child_process";
2
+ import { colors, log, error, warn, info, heading } from "../utils/logger.js";
3
+ function printHelp() {
4
+ log();
5
+ log(` ${colors.bold("bata generate")} ${colors.dim("— generate types from your database schema")}`);
6
+ log();
7
+ log(` Runs the Turbine type generator (${colors.dim("@batadata/turbine")}) against your`);
8
+ log(` database, producing typed query bindings.`);
9
+ log();
10
+ log(` ${colors.bold("Options")}`);
11
+ log(` ${colors.dim("--watch, -w")} Regenerate on schema changes`);
12
+ log(` ${colors.dim("--help, -h")} Show this help`);
13
+ log();
14
+ log(` ${colors.dim("Requires @batadata/turbine. Install with:")} ${colors.cyan("npm install @batadata/turbine")}`);
15
+ log();
16
+ }
17
+ /**
18
+ * Resolve a runnable Turbine binary without invoking the network.
19
+ * Prefers a locally installed binary; falls back to none (we do NOT
20
+ * silently shell out to `npx`, which would try to download an unpublished
21
+ * package and hang/crash).
22
+ */
23
+ function resolveTurbine() {
24
+ // 1. Local node_modules binary
25
+ const localBin = "./node_modules/.bin/turbine";
26
+ const localCheck = spawnSync(localBin, ["--version"], { stdio: "ignore", shell: false });
27
+ if (localCheck.status === 0) {
28
+ return { cmd: localBin, args: [] };
29
+ }
30
+ // 2. Globally installed `turbine` on PATH
31
+ const whichCmd = process.platform === "win32" ? "where" : "which";
32
+ const onPath = spawnSync(whichCmd, ["turbine"], { stdio: "ignore" });
33
+ if (onPath.status === 0) {
34
+ return { cmd: "turbine", args: [] };
35
+ }
36
+ return null;
37
+ }
38
+ export async function generate(args) {
39
+ if (args.includes("--help") || args.includes("-h")) {
40
+ printHelp();
41
+ return;
42
+ }
43
+ const watch = args.includes("--watch") || args.includes("-w");
44
+ heading("Turbine Generate");
45
+ const turbine = resolveTurbine();
46
+ if (!turbine) {
47
+ error("Turbine is not installed.");
48
+ log();
49
+ log(` ${colors.dim("`bata generate` uses the Turbine type generator, which is not")}`);
50
+ log(` ${colors.dim("bundled with the CLI. Install it in your project first:")}`);
51
+ log();
52
+ log(` ${colors.cyan("npm install @batadata/turbine")}`);
53
+ log();
54
+ log(` ${colors.dim("Then run")} ${colors.cyan("bata generate")} ${colors.dim("again.")}`);
55
+ log();
56
+ process.exit(1);
57
+ }
58
+ const cmdArgs = [...turbine.args, "generate"];
59
+ if (watch) {
60
+ cmdArgs.push("--watch");
61
+ info(`Watching for schema changes ${colors.dim("(Ctrl+C to stop)")}`);
62
+ }
63
+ else {
64
+ info("Introspecting database and generating types...");
65
+ }
66
+ log();
67
+ const child = spawn(turbine.cmd, cmdArgs, {
68
+ stdio: "inherit",
69
+ shell: false,
70
+ env: { ...process.env },
71
+ });
72
+ child.on("error", (err) => {
73
+ warn(`Failed to run turbine generate: ${err.message}`);
74
+ error("Make sure @batadata/turbine is installed and on your PATH.");
75
+ process.exit(1);
76
+ });
77
+ child.on("exit", (code) => {
78
+ if (!watch) {
79
+ process.exit(code || 0);
80
+ }
81
+ });
82
+ }
83
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function handleMigrate(args: string[]): Promise<void>;
@@ -0,0 +1,38 @@
1
+ import { colors, log, heading } from "../utils/logger.js";
2
+ function comingSoon(cmd) {
3
+ heading(`Migrate: ${cmd}`);
4
+ log(` ${colors.yellow("!")} ${colors.dim("Coming soon.")} Migrations are not yet implemented.`);
5
+ log();
6
+ log(` ${colors.dim("Track progress at")} ${colors.cyan("https://github.com/zvndev")}`);
7
+ log();
8
+ }
9
+ export async function handleMigrate(args) {
10
+ const sub = args[0];
11
+ switch (sub) {
12
+ case "create":
13
+ comingSoon("create");
14
+ break;
15
+ case "deploy":
16
+ comingSoon("deploy");
17
+ break;
18
+ case "status":
19
+ comingSoon("status");
20
+ break;
21
+ case "reset":
22
+ comingSoon("reset");
23
+ break;
24
+ default:
25
+ log();
26
+ log(` ${colors.bold("bata migrate")} ${colors.dim("— database migration management")}`);
27
+ log();
28
+ log(` ${colors.dim("Commands:")}`);
29
+ log(` ${colors.cyan("create")} Create a new migration`);
30
+ log(` ${colors.cyan("deploy")} Deploy pending migrations`);
31
+ log(` ${colors.cyan("status")} Show migration status`);
32
+ log(` ${colors.cyan("reset")} Reset database (dangerous)`);
33
+ log();
34
+ log(` ${colors.yellow("!")} ${colors.dim("All migration commands are coming soon.")}`);
35
+ log();
36
+ }
37
+ }
38
+ //# sourceMappingURL=migrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../src/commands/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE1D,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;IAC3B,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,sCAAsC,CAAC,CAAC;IACjG,GAAG,EAAE,CAAC;IACN,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;IACxF,GAAG,EAAE,CAAC;AACR,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAc;IAChD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEpB,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,QAAQ;YACX,UAAU,CAAC,QAAQ,CAAC,CAAC;YACrB,MAAM;QACR,KAAK,QAAQ;YACX,UAAU,CAAC,QAAQ,CAAC,CAAC;YACrB,MAAM;QACR,KAAK,QAAQ;YACX,UAAU,CAAC,QAAQ,CAAC,CAAC;YACrB,MAAM;QACR,KAAK,OAAO;YACV,UAAU,CAAC,OAAO,CAAC,CAAC;YACpB,MAAM;QACR;YACE,GAAG,EAAE,CAAC;YACN,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;YACzF,GAAG,EAAE,CAAC;YACN,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACpC,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;YAC7D,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;YAChE,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC;YAC5D,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;YACjE,GAAG,EAAE,CAAC;YACN,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,yCAAyC,CAAC,EAAE,CAAC,CAAC;YACxF,GAAG,EAAE,CAAC;IACV,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function list(): Promise<void>;
2
+ export declare function create(): Promise<void>;
3
+ export declare function info(projectId?: string): Promise<void>;
4
+ export declare function deleteProject(projectId?: string): Promise<void>;
5
+ export declare function handleProjects(args: string[]): Promise<void>;
@@ -0,0 +1,259 @@
1
+ import { api, apiError, resolveTeamId, asList } from "../api.js";
2
+ import { requireToken, loadConfig, saveConfig, isJsonMode } from "../config.js";
3
+ import { colors, log, json, success, error, spinner, table, kvList, heading } from "../utils/logger.js";
4
+ import { prompt, confirm, select } from "../utils/prompts.js";
5
+ function projectCreatedAt(p) {
6
+ return p.created_at ?? p.createdAt ?? "";
7
+ }
8
+ const REGIONS = [
9
+ { label: "US East (Virginia) — iad", value: "iad" },
10
+ { label: "US West (Los Angeles) — lax", value: "lax" },
11
+ { label: "Europe (Amsterdam) — ams", value: "ams" },
12
+ { label: "Asia (Tokyo) — nrt", value: "nrt" },
13
+ { label: "Australia (Sydney) — syd", value: "syd" },
14
+ ];
15
+ function formatDate(iso) {
16
+ if (!iso)
17
+ return "-";
18
+ const d = new Date(iso);
19
+ return d.toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric" });
20
+ }
21
+ function statusBadge(status) {
22
+ switch (status?.toLowerCase()) {
23
+ case "active":
24
+ case "running":
25
+ return colors.green(status);
26
+ case "stopped":
27
+ case "suspended":
28
+ return colors.yellow(status);
29
+ case "deleting":
30
+ case "error":
31
+ return colors.red(status);
32
+ default:
33
+ return colors.dim(status || "unknown");
34
+ }
35
+ }
36
+ export async function list() {
37
+ const token = requireToken();
38
+ const config = loadConfig();
39
+ const jsonMode = isJsonMode();
40
+ const s = jsonMode ? null : spinner("Fetching projects");
41
+ const teamId = await resolveTeamId(token);
42
+ const query = {};
43
+ if (teamId)
44
+ query.team_id = teamId;
45
+ const res = await api.get("/v1/projects", token, query);
46
+ if (!res.ok) {
47
+ s?.stop();
48
+ if (jsonMode)
49
+ json({ error: apiError(res, "Failed to fetch projects") });
50
+ else
51
+ error(apiError(res, "Failed to fetch projects"));
52
+ process.exit(1);
53
+ }
54
+ s?.stop();
55
+ const projects = asList(res.data);
56
+ if (jsonMode) {
57
+ json({
58
+ projects: projects.map((p) => ({
59
+ id: p.id,
60
+ name: p.name,
61
+ region: p.region,
62
+ status: p.status,
63
+ created_at: projectCreatedAt(p),
64
+ })),
65
+ default_project: config.defaultProject ?? null,
66
+ count: projects.length,
67
+ });
68
+ return;
69
+ }
70
+ heading("Projects");
71
+ if (projects.length === 0) {
72
+ log(` ${colors.dim("No projects yet.")} Run ${colors.cyan("bata projects create")} to get started.`);
73
+ log();
74
+ return;
75
+ }
76
+ const defaultProj = config.defaultProject;
77
+ table(["NAME", "REGION", "STATUS", "CREATED"], projects.map((p) => [
78
+ p.id === defaultProj ? `${p.name} ${colors.cyan("*")}` : p.name,
79
+ p.region || "-",
80
+ statusBadge(p.status),
81
+ formatDate(projectCreatedAt(p)),
82
+ ]));
83
+ log();
84
+ }
85
+ export async function create() {
86
+ const token = requireToken();
87
+ const config = loadConfig();
88
+ heading("Create a new project");
89
+ const name = await prompt("Project name");
90
+ if (!name) {
91
+ error("Project name is required.");
92
+ process.exit(1);
93
+ }
94
+ const region = await select("Select a region", REGIONS);
95
+ const s = spinner("Creating project");
96
+ const teamId = await resolveTeamId(token);
97
+ const body = { name, region };
98
+ if (teamId) {
99
+ body.team_id = teamId;
100
+ }
101
+ const res = await api.post("/v1/projects", body, token);
102
+ if (!res.ok) {
103
+ s.stop();
104
+ error(apiError(res, "Failed to create project"));
105
+ process.exit(1);
106
+ }
107
+ s.stop();
108
+ const project = res.data;
109
+ // Set as default project
110
+ saveConfig({ defaultProject: project.id });
111
+ log();
112
+ success(`Project ${colors.cyan(project.name)} created`);
113
+ log();
114
+ kvList([
115
+ ["ID", colors.dim(project.id)],
116
+ ["Region", project.region],
117
+ ["Status", statusBadge(project.status)],
118
+ ]);
119
+ log();
120
+ log(` ${colors.dim("Set as default project. Run")} ${colors.cyan("bata db connect")} ${colors.dim("to connect.")}`);
121
+ log();
122
+ }
123
+ export async function info(projectId) {
124
+ const token = requireToken();
125
+ const config = loadConfig();
126
+ const jsonMode = isJsonMode();
127
+ const id = projectId || config.defaultProject;
128
+ if (!id) {
129
+ const msg = "No project specified. Pass a project ID or set a default with bata projects create.";
130
+ if (jsonMode)
131
+ json({ error: msg });
132
+ else
133
+ error(msg);
134
+ process.exit(1);
135
+ }
136
+ const s = jsonMode ? null : spinner("Fetching project details");
137
+ const teamId = await resolveTeamId(token);
138
+ const query = {};
139
+ if (teamId)
140
+ query.team_id = teamId;
141
+ const res = await api.get(`/v1/projects/${id}`, token, query);
142
+ if (!res.ok) {
143
+ s?.stop();
144
+ if (jsonMode)
145
+ json({ error: apiError(res, "Project not found") });
146
+ else
147
+ error(apiError(res, "Project not found"));
148
+ process.exit(1);
149
+ }
150
+ // Also fetch connection info
151
+ const connRes = await api.get(`/v1/connection-info/${id}`, token);
152
+ s?.stop();
153
+ const project = res.data;
154
+ if (jsonMode) {
155
+ json({
156
+ id: project.id,
157
+ name: project.name,
158
+ region: project.region,
159
+ status: project.status,
160
+ created_at: project.created_at,
161
+ branches: (project.branches ?? []).map((b) => ({
162
+ id: b.id,
163
+ name: b.name,
164
+ is_primary: b.is_primary,
165
+ created_at: b.created_at,
166
+ })),
167
+ connection: connRes.ok ? connRes.data : null,
168
+ });
169
+ return;
170
+ }
171
+ heading(`Project: ${project.name}`);
172
+ kvList([
173
+ ["ID", colors.dim(project.id)],
174
+ ["Region", project.region],
175
+ ["Status", statusBadge(project.status)],
176
+ ["Created", formatDate(project.created_at)],
177
+ ]);
178
+ if (project.branches && project.branches.length > 0) {
179
+ log();
180
+ log(` ${colors.bold("Branches")}`);
181
+ log();
182
+ table(["NAME", "PRIMARY", "CREATED"], project.branches.map((b) => [
183
+ b.name,
184
+ b.is_primary ? colors.green("yes") : "no",
185
+ formatDate(b.created_at),
186
+ ]));
187
+ }
188
+ if (connRes.ok && connRes.data) {
189
+ log();
190
+ log(` ${colors.bold("Connection")}`);
191
+ log();
192
+ const conn = connRes.data;
193
+ if (conn.connection_uri) {
194
+ kvList([["URI", colors.dim(conn.connection_uri)]]);
195
+ }
196
+ if (conn.host) {
197
+ kvList([
198
+ ["Host", conn.host],
199
+ ["Database", conn.database || "-"],
200
+ ["User", conn.user || "-"],
201
+ ]);
202
+ }
203
+ }
204
+ log();
205
+ }
206
+ export async function deleteProject(projectId) {
207
+ const token = requireToken();
208
+ const config = loadConfig();
209
+ const id = projectId || config.defaultProject;
210
+ if (!id) {
211
+ error("No project specified.");
212
+ process.exit(1);
213
+ }
214
+ const ok = await confirm(`Delete project ${colors.cyan(id)}? This cannot be undone.`, false);
215
+ if (!ok) {
216
+ log();
217
+ log(" Aborted.");
218
+ log();
219
+ return;
220
+ }
221
+ const s = spinner("Deleting project");
222
+ const teamId = await resolveTeamId(token);
223
+ const query = {};
224
+ if (teamId)
225
+ query.team_id = teamId;
226
+ const res = await api.del(`/v1/projects/${id}`, token, query);
227
+ if (!res.ok) {
228
+ s.stop();
229
+ error(apiError(res, "Failed to delete project"));
230
+ process.exit(1);
231
+ }
232
+ // Clear default project if it was this one
233
+ if (config.defaultProject === id) {
234
+ saveConfig({ defaultProject: undefined });
235
+ }
236
+ s.stop();
237
+ log();
238
+ success(`Project ${id} deleted.`);
239
+ log();
240
+ }
241
+ export async function handleProjects(args) {
242
+ const sub = args[0];
243
+ switch (sub) {
244
+ case "create":
245
+ return create();
246
+ case "info":
247
+ return info(args[1]);
248
+ case "delete":
249
+ return deleteProject(args[1]);
250
+ case "list":
251
+ case undefined:
252
+ return list();
253
+ default:
254
+ error(`Unknown subcommand: projects ${sub}`);
255
+ log(` ${colors.dim("Available:")} list, create, info, delete`);
256
+ process.exit(1);
257
+ }
258
+ }
259
+ //# sourceMappingURL=projects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function handleSchema(args: string[]): Promise<void>;
@@ -0,0 +1,38 @@
1
+ import { colors, log, heading } from "../utils/logger.js";
2
+ function comingSoon(cmd) {
3
+ heading(`Schema: ${cmd}`);
4
+ log(` ${colors.yellow("!")} ${colors.dim("Coming soon.")} Schema ${cmd} is not yet implemented.`);
5
+ log();
6
+ log(` ${colors.dim("Track progress at")} ${colors.cyan("https://github.com/zvndev")}`);
7
+ log();
8
+ }
9
+ export async function handleSchema(args) {
10
+ const sub = args[0];
11
+ switch (sub) {
12
+ case "init":
13
+ comingSoon("init");
14
+ break;
15
+ case "push":
16
+ comingSoon("push");
17
+ break;
18
+ case "pull":
19
+ comingSoon("pull");
20
+ break;
21
+ case "diff":
22
+ comingSoon("diff");
23
+ break;
24
+ default:
25
+ log();
26
+ log(` ${colors.bold("bata schema")} ${colors.dim("— Turbine ORM schema management")}`);
27
+ log();
28
+ log(` ${colors.dim("Commands:")}`);
29
+ log(` ${colors.cyan("init")} Initialize schema from existing database`);
30
+ log(` ${colors.cyan("push")} Push schema changes to database`);
31
+ log(` ${colors.cyan("pull")} Pull schema from database`);
32
+ log(` ${colors.cyan("diff")} Show pending schema changes`);
33
+ log();
34
+ log(` ${colors.yellow("!")} ${colors.dim("All schema commands are coming soon.")}`);
35
+ log();
36
+ }
37
+ }
38
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/commands/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE1D,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;IAC1B,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,GAAG,0BAA0B,CAAC,CAAC;IACnG,GAAG,EAAE,CAAC;IACN,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;IACxF,GAAG,EAAE,CAAC;AACR,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAc;IAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAEpB,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,MAAM;YACT,UAAU,CAAC,MAAM,CAAC,CAAC;YACnB,MAAM;QACR,KAAK,MAAM;YACT,UAAU,CAAC,MAAM,CAAC,CAAC;YACnB,MAAM;QACR,KAAK,MAAM;YACT,UAAU,CAAC,MAAM,CAAC,CAAC;YACnB,MAAM;QACR,KAAK,MAAM;YACT,UAAU,CAAC,MAAM,CAAC,CAAC;YACnB,MAAM;QACR;YACE,GAAG,EAAE,CAAC;YACN,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;YACxF,GAAG,EAAE,CAAC;YACN,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACpC,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,8CAA8C,CAAC,CAAC;YAC9E,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,qCAAqC,CAAC,CAAC;YACrE,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,+BAA+B,CAAC,CAAC;YAC/D,GAAG,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC;YACjE,GAAG,EAAE,CAAC;YACN,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,sCAAsC,CAAC,EAAE,CAAC,CAAC;YACrF,GAAG,EAAE,CAAC;IACV,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * bata status — Show all projects and their status.
3
+ *
4
+ * Lists projects with branch count, compute status, and storage size.
5
+ * Colorized output: green for running, yellow for suspended, red for error.
6
+ */
7
+ export declare function status(): Promise<void>;
@@ -0,0 +1,106 @@
1
+ /**
2
+ * bata status — Show all projects and their status.
3
+ *
4
+ * Lists projects with branch count, compute status, and storage size.
5
+ * Colorized output: green for running, yellow for suspended, red for error.
6
+ */
7
+ import { api, apiError } from "../api.js";
8
+ import { requireToken, loadConfig, isJsonMode } from "../config.js";
9
+ import { colors, log, json, error, spinner, table, heading } from "../utils/logger.js";
10
+ function statusBadge(status) {
11
+ switch (status?.toLowerCase()) {
12
+ case "active":
13
+ case "running":
14
+ return colors.green(status);
15
+ case "idle":
16
+ case "suspended":
17
+ case "stopped":
18
+ return colors.yellow(status);
19
+ case "creating":
20
+ case "deleting":
21
+ return colors.dim(status);
22
+ case "error":
23
+ return colors.red(status);
24
+ default:
25
+ return colors.dim(status || "unknown");
26
+ }
27
+ }
28
+ function formatDate(iso) {
29
+ if (!iso)
30
+ return "-";
31
+ const d = new Date(iso);
32
+ return d.toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric" });
33
+ }
34
+ export async function status() {
35
+ const token = requireToken();
36
+ const config = loadConfig();
37
+ const jsonMode = isJsonMode();
38
+ const s = jsonMode ? null : spinner("Fetching projects");
39
+ const query = {};
40
+ if (config.defaultTeam)
41
+ query.team_id = config.defaultTeam;
42
+ const res = await api.get("/v1/projects", token, query);
43
+ if (!res.ok) {
44
+ s?.stop();
45
+ if (jsonMode) {
46
+ json({ error: apiError(res, "Failed to fetch projects") });
47
+ }
48
+ else {
49
+ error(apiError(res, "Failed to fetch projects"));
50
+ }
51
+ process.exit(1);
52
+ }
53
+ s?.stop();
54
+ const projects = Array.isArray(res.data) ? res.data : [];
55
+ if (jsonMode) {
56
+ json({
57
+ projects: projects.map((p) => ({
58
+ id: p.id,
59
+ name: p.name,
60
+ region: p.region,
61
+ status: p.status,
62
+ created_at: p.created_at,
63
+ branch_count: p.branches?.length ?? 0,
64
+ compute_status: p.computes?.[0]?.status ?? p.status ?? null,
65
+ })),
66
+ default_project: config.defaultProject ?? null,
67
+ count: projects.length,
68
+ });
69
+ return;
70
+ }
71
+ heading("BataDB Status");
72
+ if (projects.length === 0) {
73
+ log(` ${colors.dim("No projects yet.")} Run ${colors.cyan("bata create <name>")} to get started.`);
74
+ log();
75
+ return;
76
+ }
77
+ const defaultProj = config.defaultProject;
78
+ // Fetch branch/compute details for each project
79
+ const rows = [];
80
+ for (const p of projects) {
81
+ const branchCount = p.branches?.length ?? 0;
82
+ // Determine compute status (take the first/primary compute)
83
+ let computeStatus = "-";
84
+ if (p.computes && p.computes.length > 0) {
85
+ computeStatus = statusBadge(p.computes[0].status);
86
+ }
87
+ else if (p.status) {
88
+ computeStatus = statusBadge(p.status);
89
+ }
90
+ const nameDisplay = p.id === defaultProj
91
+ ? `${p.name} ${colors.cyan("*")}`
92
+ : p.name;
93
+ rows.push([
94
+ nameDisplay,
95
+ p.region || "-",
96
+ computeStatus,
97
+ String(branchCount || "-"),
98
+ formatDate(p.created_at),
99
+ ]);
100
+ }
101
+ table(["PROJECT", "REGION", "STATUS", "BRANCHES", "CREATED"], rows);
102
+ log();
103
+ log(` ${colors.dim(`${projects.length} project(s). ${colors.cyan("*")} = default`)}`);
104
+ log();
105
+ }
106
+ //# sourceMappingURL=status.js.map