@codemarc/blt 1.4.4 → 1.4.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 +17 -1
- package/dist/commands/bucket/clear.d.ts +9 -0
- package/dist/commands/bucket/clear.d.ts.map +1 -0
- package/dist/commands/bucket/clear.js +105 -0
- package/dist/commands/bucket/clear.js.map +1 -0
- package/dist/commands/bucket.d.ts.map +1 -1
- package/dist/commands/bucket.js +21 -0
- package/dist/commands/bucket.js.map +1 -1
- package/dist/lib/repositories.d.ts.map +1 -1
- package/dist/lib/repositories.js +0 -6
- package/dist/lib/repositories.js.map +1 -1
- package/package.json +2 -2
- package/dist/commands/build copy.d.ts +0 -6
- package/dist/commands/build copy.d.ts.map +0 -1
- package/dist/commands/build copy.js +0 -56
- package/dist/commands/build copy.js.map +0 -1
- package/dist/commands/check.d.ts +0 -3
- package/dist/commands/check.d.ts.map +0 -1
- package/dist/commands/check.js +0 -37
- package/dist/commands/check.js.map +0 -1
- package/dist/commands/data/build.d.ts +0 -11
- package/dist/commands/data/build.d.ts.map +0 -1
- package/dist/commands/data/build.js +0 -69
- package/dist/commands/data/build.js.map +0 -1
- package/dist/commands/data/deploy.d.ts +0 -9
- package/dist/commands/data/deploy.d.ts.map +0 -1
- package/dist/commands/data/deploy.js +0 -38
- package/dist/commands/data/deploy.js.map +0 -1
- package/dist/commands/data/rows.d.ts +0 -5
- package/dist/commands/data/rows.d.ts.map +0 -1
- package/dist/commands/data/rows.js +0 -63
- package/dist/commands/data/rows.js.map +0 -1
- package/dist/commands/data/schema-info.d.ts +0 -10
- package/dist/commands/data/schema-info.d.ts.map +0 -1
- package/dist/commands/data/schema-info.js +0 -64
- package/dist/commands/data/schema-info.js.map +0 -1
- package/dist/commands/data.d.ts +0 -8
- package/dist/commands/data.d.ts.map +0 -1
- package/dist/commands/data.js +0 -28
- package/dist/commands/data.js.map +0 -1
- package/dist/commands/deploy/data.ts 21-46-08-256.d.ts +0 -6
- package/dist/commands/deploy/data.ts 21-46-08-256.d.ts.map +0 -1
- package/dist/commands/deploy/data.ts 21-46-08-256.js +0 -20
- package/dist/commands/deploy/data.ts 21-46-08-256.js.map +0 -1
- package/dist/commands/deploy/deploy.d.ts +0 -9
- package/dist/commands/deploy/deploy.d.ts.map +0 -1
- package/dist/commands/deploy/deploy.js +0 -38
- package/dist/commands/deploy/deploy.js.map +0 -1
- package/dist/commands/env.d.ts +0 -6
- package/dist/commands/env.d.ts.map +0 -1
- package/dist/commands/env.js +0 -26
- package/dist/commands/env.js.map +0 -1
- package/dist/commands/repo.d.ts +0 -6
- package/dist/commands/repo.d.ts.map +0 -1
- package/dist/commands/repo.js +0 -69
- package/dist/commands/repo.js.map +0 -1
- package/dist/commands/show/schema-info.d.ts +0 -10
- package/dist/commands/show/schema-info.d.ts.map +0 -1
- package/dist/commands/show/schema-info.js +0 -64
- package/dist/commands/show/schema-info.js.map +0 -1
- package/dist/commands/version/update-version.d.ts +0 -3
- package/dist/commands/version/update-version.d.ts.map +0 -1
- package/dist/commands/version/update-version.js +0 -97
- package/dist/commands/version/update-version.js.map +0 -1
- package/dist/commands/version copy.d.ts +0 -6
- package/dist/commands/version copy.d.ts.map +0 -1
- package/dist/commands/version copy.js +0 -66
- package/dist/commands/version copy.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -27
- package/dist/index.js.map +0 -1
package/README.md
CHANGED
|
@@ -56,7 +56,7 @@ blt deploy schema
|
|
|
56
56
|
| `blt version` | Update, string, sql |
|
|
57
57
|
| `blt build` | Schema (DDL), data (instance) |
|
|
58
58
|
| `blt deploy` | Schema, data, sql file |
|
|
59
|
-
| `blt bucket` | names, list, upload, download, url
|
|
59
|
+
| `blt bucket` | names, list, upload, download, url, clear |
|
|
60
60
|
| `blt show` | schema, counts, env, db, repo |
|
|
61
61
|
| `blt cleanup` | generated, tags |
|
|
62
62
|
|
|
@@ -392,6 +392,22 @@ blt bucket url my-bucket docs/file.pdf --signed --expires-in 7200
|
|
|
392
392
|
- `--signed` — Generate signed URL (default: false)
|
|
393
393
|
- `--expires-in <seconds>` — Signed URL expiry (default: 3600).
|
|
394
394
|
|
|
395
|
+
### `blt bucket clear <bucket-name>`
|
|
396
|
+
|
|
397
|
+
Remove all files from a bucket. Requires `--yes` to confirm. Use `--dry-run` to preview.
|
|
398
|
+
|
|
399
|
+
```bash
|
|
400
|
+
blt bucket clear my-bucket --yes
|
|
401
|
+
blt bucket clear avatars --prefix bae/ --dry-run
|
|
402
|
+
blt bucket clear avatars --prefix bae/ --yes
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
**Options:**
|
|
406
|
+
|
|
407
|
+
- `-p, --prefix <prefix>` — Only clear files under this path prefix
|
|
408
|
+
- `--dry-run` — Show what would be deleted without deleting
|
|
409
|
+
- `-y, --yes` — Skip confirmation prompt (required to actually delete)
|
|
410
|
+
|
|
395
411
|
---
|
|
396
412
|
|
|
397
413
|
## Show Commands
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clear.d.ts","sourceRoot":"","sources":["../../../src/commands/bucket/clear.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAsD5C,wBAAsB,WAAW,CAChC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,EAC5B,OAAO,EAAE;IACR,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;CACb,EACD,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAyEf"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import debug from "debug";
|
|
2
|
+
import { getSupabaseClient } from "../../utils/supabase";
|
|
3
|
+
const log = debug("blt:bucket");
|
|
4
|
+
const REMOVE_BATCH_SIZE = 1000;
|
|
5
|
+
async function listAllFilePaths(bucketName, prefix) {
|
|
6
|
+
const supabase = getSupabaseClient();
|
|
7
|
+
const paths = [];
|
|
8
|
+
async function listAtPath(currentPrefix) {
|
|
9
|
+
let offset = 0;
|
|
10
|
+
const limit = 1000;
|
|
11
|
+
while (true) {
|
|
12
|
+
const { data, error } = await supabase.storage
|
|
13
|
+
.from(bucketName)
|
|
14
|
+
.list(currentPrefix, {
|
|
15
|
+
limit,
|
|
16
|
+
offset,
|
|
17
|
+
sortBy: { column: "name", order: "asc" },
|
|
18
|
+
});
|
|
19
|
+
if (error) {
|
|
20
|
+
throw error;
|
|
21
|
+
}
|
|
22
|
+
if (!data?.length)
|
|
23
|
+
break;
|
|
24
|
+
for (const item of data) {
|
|
25
|
+
const itemPath = currentPrefix ? `${currentPrefix}/${item.name}` : item.name;
|
|
26
|
+
// Files have id; folder prefixes have id: null
|
|
27
|
+
if (item.id != null) {
|
|
28
|
+
paths.push(itemPath);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
await listAtPath(itemPath);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (data.length < limit)
|
|
35
|
+
break;
|
|
36
|
+
offset += limit;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
await listAtPath(prefix);
|
|
40
|
+
return paths;
|
|
41
|
+
}
|
|
42
|
+
export async function clearBucket(args, options, logger) {
|
|
43
|
+
try {
|
|
44
|
+
const bucketName = args.bucketName;
|
|
45
|
+
const prefix = options.prefix;
|
|
46
|
+
const dryRun = options.dryRun;
|
|
47
|
+
const yes = options.yes;
|
|
48
|
+
log("Clearing bucket: %s", bucketName);
|
|
49
|
+
const supabase = getSupabaseClient();
|
|
50
|
+
// Verify bucket exists
|
|
51
|
+
const { data: buckets, error: listError } = await supabase.storage.listBuckets();
|
|
52
|
+
if (listError) {
|
|
53
|
+
logger.error("Error listing buckets:", listError.message);
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
if (!buckets?.some((b) => b.name === bucketName)) {
|
|
57
|
+
logger.error(`Bucket not found: ${bucketName}`);
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
const filePaths = await listAllFilePaths(bucketName, prefix);
|
|
61
|
+
if (filePaths.length === 0) {
|
|
62
|
+
logger.info("No files to clear");
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const scope = prefix ? `prefix "${prefix}"` : "entire bucket";
|
|
66
|
+
logger.info(`Found ${filePaths.length} file(s) in ${scope}`);
|
|
67
|
+
if (dryRun) {
|
|
68
|
+
logger.info("");
|
|
69
|
+
logger.info("DRY RUN - Files that would be deleted:");
|
|
70
|
+
for (const p of filePaths.slice(0, 20)) {
|
|
71
|
+
logger.info(` ${p}`);
|
|
72
|
+
}
|
|
73
|
+
if (filePaths.length > 20) {
|
|
74
|
+
logger.info(` ... and ${filePaths.length - 20} more`);
|
|
75
|
+
}
|
|
76
|
+
logger.info("");
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (!yes) {
|
|
80
|
+
logger.warn(`This will permanently delete ${filePaths.length} file(s).`);
|
|
81
|
+
logger.warn("Run with --yes to confirm.");
|
|
82
|
+
process.exit(1);
|
|
83
|
+
}
|
|
84
|
+
let deletedCount = 0;
|
|
85
|
+
for (let i = 0; i < filePaths.length; i += REMOVE_BATCH_SIZE) {
|
|
86
|
+
const batch = filePaths.slice(i, i + REMOVE_BATCH_SIZE);
|
|
87
|
+
const { error } = await supabase.storage
|
|
88
|
+
.from(bucketName)
|
|
89
|
+
.remove(batch);
|
|
90
|
+
if (error) {
|
|
91
|
+
logger.error(`Error deleting batch: ${error.message}`);
|
|
92
|
+
process.exit(1);
|
|
93
|
+
}
|
|
94
|
+
deletedCount += batch.length;
|
|
95
|
+
logger.info(`Deleted ${deletedCount}/${filePaths.length}...`);
|
|
96
|
+
}
|
|
97
|
+
logger.info("");
|
|
98
|
+
logger.info(`Cleared ${deletedCount} file(s)`);
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
logger.error("Error:", error.message);
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=clear.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clear.js","sourceRoot":"","sources":["../../../src/commands/bucket/clear.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bucket.d.ts","sourceRoot":"","sources":["../../src/commands/bucket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"bucket.d.ts","sourceRoot":"","sources":["../../src/commands/bucket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAS7C;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,OAAO,EAAE,OAAO,QA4JrD"}
|
package/dist/commands/bucket.js
CHANGED
|
@@ -4,6 +4,7 @@ import { uploadFile } from "./bucket/upload";
|
|
|
4
4
|
import { uploadFolder } from "./bucket/upload-folder";
|
|
5
5
|
import { downloadFile } from "./bucket/download";
|
|
6
6
|
import { getFileUrl } from "./bucket/url";
|
|
7
|
+
import { clearBucket } from "./bucket/clear";
|
|
7
8
|
/**
|
|
8
9
|
* Register bucket commands with the CLI program
|
|
9
10
|
*/
|
|
@@ -22,6 +23,7 @@ Available operations:
|
|
|
22
23
|
upload-folder Upload all files in a folder to a bucket
|
|
23
24
|
download Download a file from a bucket
|
|
24
25
|
url Get public or signed URL for a file
|
|
26
|
+
clear Remove all files from a bucket (or prefix)
|
|
25
27
|
|
|
26
28
|
Run 'blt bucket <operation> --help' for more information on a specific command.
|
|
27
29
|
`;
|
|
@@ -109,6 +111,25 @@ Run 'blt bucket <operation> --help' for more information on a specific command.
|
|
|
109
111
|
.action(async ({ args, logger }) => {
|
|
110
112
|
await downloadFile({ bucketName: args.bucketName, remotePath: args.remotePath, localPath: args.localPath }, logger);
|
|
111
113
|
});
|
|
114
|
+
// Clear all files from a bucket
|
|
115
|
+
program
|
|
116
|
+
.command("bucket clear", "Remove all files from a bucket (or prefix)")
|
|
117
|
+
.hide()
|
|
118
|
+
.argument("<bucket-name>", "Name of the bucket")
|
|
119
|
+
.option("-p, --prefix <prefix>", "Only clear files under this path prefix", {
|
|
120
|
+
default: "",
|
|
121
|
+
})
|
|
122
|
+
.option("--dry-run", "Show what would be deleted without deleting", {
|
|
123
|
+
default: false,
|
|
124
|
+
})
|
|
125
|
+
.option("-y, --yes", "Skip confirmation prompt", { default: false })
|
|
126
|
+
.action(async ({ args, options, logger }) => {
|
|
127
|
+
await clearBucket({ bucketName: args.bucketName }, {
|
|
128
|
+
prefix: options.prefix,
|
|
129
|
+
dryRun: options.dryRun,
|
|
130
|
+
yes: options.yes,
|
|
131
|
+
}, logger);
|
|
132
|
+
});
|
|
112
133
|
// Get public URL for a file
|
|
113
134
|
program
|
|
114
135
|
.command("bucket url", "Get public URL for a file")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bucket.js","sourceRoot":"","sources":["../../src/commands/bucket.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"bucket.js","sourceRoot":"","sources":["../../src/commands/bucket.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repositories.d.ts","sourceRoot":"","sources":["../../src/lib/repositories.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"repositories.d.ts","sourceRoot":"","sources":["../../src/lib/repositories.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,UAAU,EA2CpC,CAAC"}
|
package/dist/lib/repositories.js
CHANGED
|
@@ -2,12 +2,6 @@
|
|
|
2
2
|
* Hardcoded list of valid repositories in the current working set
|
|
3
3
|
*/
|
|
4
4
|
export const REPOSITORIES = [
|
|
5
|
-
{
|
|
6
|
-
name: "cli",
|
|
7
|
-
url: "https://github.com/codemarc/blt-cli.git",
|
|
8
|
-
sshUrl: "git@github.com:codemarc/blt-cli.git",
|
|
9
|
-
description: "BLT command line interface",
|
|
10
|
-
},
|
|
11
5
|
{
|
|
12
6
|
name: "tools",
|
|
13
7
|
url: "https://github.com/bltcore-com/tools.git",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repositories.js","sourceRoot":"","sources":["../../src/lib/repositories.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC;QACE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"repositories.js","sourceRoot":"","sources":["../../src/lib/repositories.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC;QACE,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,0CAA0C;QAC/C,MAAM,EAAE,sCAAsC;QAC9C,WAAW,EAAE,qBAAqB;KACnC;IACD;QACE,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,iDAAiD;QACtD,MAAM,EAAE,6CAA6C;QACrD,WAAW,EAAE,sBAAsB;KACpC;IACD;QACE,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,kDAAkD;QACvD,MAAM,EAAE,8CAA8C;QACtD,WAAW,EAAE,2BAA2B;KACzC;IACD;QACE,IAAI,EAAE,SAAS;QACf,GAAG,EAAE,uDAAuD;QAC5D,MAAM,EAAE,mDAAmD;QAC3D,WAAW,EAAE,gBAAgB;KAC9B;IACD;QACE,IAAI,EAAE,QAAQ;QACd,GAAG,EAAE,2CAA2C;QAChD,MAAM,EAAE,uCAAuC;QAC/C,WAAW,EAAE,oBAAoB;KAClC;IACD;QACE,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,8CAA8C;QACnD,MAAM,EAAE,0CAA0C;QAClD,WAAW,EAAE,qBAAqB;KACnC;IACD;QACE,IAAI,EAAE,MAAM;QACZ,GAAG,EAAE,kDAAkD;QACvD,MAAM,EAAE,8CAA8C;QACtD,WAAW,EAAE,0BAA0B;KACxC;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codemarc/blt",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.6",
|
|
4
4
|
"description": "blt cli",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/blt",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"license": "MIT",
|
|
38
38
|
"repository": {
|
|
39
39
|
"type": "git",
|
|
40
|
-
"url": "https://github.com/
|
|
40
|
+
"url": "https://github.com/bltcore-com/tools.git"
|
|
41
41
|
},
|
|
42
42
|
"engines": {
|
|
43
43
|
"bun": ">=1.0.0"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build copy.d.ts","sourceRoot":"","sources":["../../src/commands/build copy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAiC,MAAM,eAAe,CAAC;AAI5E;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,OAAO,EAAE,OAAO,QAkDpD"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { buildSchema } from "./build/schema";
|
|
2
|
-
import { buildData } from "./build/data";
|
|
3
|
-
/**
|
|
4
|
-
* Register build commands with the CLI program
|
|
5
|
-
*/
|
|
6
|
-
export default function buildCommand(program) {
|
|
7
|
-
const buildHelpText = `
|
|
8
|
-
build utilities
|
|
9
|
-
|
|
10
|
-
Usage:
|
|
11
|
-
blt build <operation>
|
|
12
|
-
|
|
13
|
-
Available operations:
|
|
14
|
-
schema Build schema from DDL files
|
|
15
|
-
data Build data from instance directory
|
|
16
|
-
|
|
17
|
-
Run 'blt build <operation> --help' for more information on a specific command.
|
|
18
|
-
`;
|
|
19
|
-
program
|
|
20
|
-
.command("build", "schema/data build utilities")
|
|
21
|
-
.help(buildHelpText)
|
|
22
|
-
.action(() => {
|
|
23
|
-
console.log(buildHelpText);
|
|
24
|
-
});
|
|
25
|
-
program
|
|
26
|
-
.command("build schema", "Build schema from DDL files")
|
|
27
|
-
.hide()
|
|
28
|
-
.argument("[name]", "Schema name")
|
|
29
|
-
.action(async ({ args, logger }) => {
|
|
30
|
-
try {
|
|
31
|
-
const name = args.name;
|
|
32
|
-
await buildSchema(name, logger);
|
|
33
|
-
}
|
|
34
|
-
catch (error) {
|
|
35
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
36
|
-
logger.error(`Failed to build schema: ${message}`);
|
|
37
|
-
process.exit(1);
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
program
|
|
41
|
-
.command("build data", "Build data from instance directory")
|
|
42
|
-
.hide()
|
|
43
|
-
.argument("[name]", "Instance name")
|
|
44
|
-
.action(async ({ args, logger }) => {
|
|
45
|
-
try {
|
|
46
|
-
const name = args.name;
|
|
47
|
-
await buildData(name, logger);
|
|
48
|
-
}
|
|
49
|
-
catch (error) {
|
|
50
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
51
|
-
logger.error(`Failed to build data: ${message}`);
|
|
52
|
-
process.exit(1);
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=build%20copy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build copy.js","sourceRoot":"","sources":["../../src/commands/build copy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,OAAgB;IACpD,MAAM,aAAa,GAAG;;;;;;;;;;;CAWtB,CAAC;IAED,OAAO;SACL,OAAO,CAAC,OAAO,EAAE,6BAA6B,CAAC;SAC/C,IAAI,CAAC,aAAa,CAAC;SACnB,MAAM,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEJ,OAAO;SACL,OAAO,CAAC,cAAc,EAAE,6BAA6B,CAAC;SACtD,IAAI,EAAE;SACN,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;SACjC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAmD,EAAE,EAAE;QACnF,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;YAC7C,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,CAAC,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC,CAAC;IAEJ,OAAO;SACL,OAAO,CAAC,YAAY,EAAE,oCAAoC,CAAC;SAC3D,IAAI,EAAE;SACN,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAmD,EAAE,EAAE;QACnF,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;YAC7C,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,MAAM,CAAC,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/commands/check.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,OAAO,EAAE,OAAO,QAuCpD"}
|
package/dist/commands/check.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { execSync } from "node:child_process";
|
|
2
|
-
import fs from "node:fs";
|
|
3
|
-
import dotenv from "dotenv";
|
|
4
|
-
export default function checkCommand(program) {
|
|
5
|
-
program
|
|
6
|
-
.command("check", "Check the environment setup")
|
|
7
|
-
.argument("[buckets]", "check bucket, {default:'all'}")
|
|
8
|
-
.action(async ({ args, options, logger }) => {
|
|
9
|
-
// console.log(args);
|
|
10
|
-
// check if SMASH_KEY is set
|
|
11
|
-
if (!process.env.SMASH_KEY)
|
|
12
|
-
console.warn("SMASH_KEY is not set");
|
|
13
|
-
// check if .env file exists
|
|
14
|
-
if (!fs.existsSync(".env")) {
|
|
15
|
-
console.error("❌ No .env file found, please create one");
|
|
16
|
-
process.exit(1);
|
|
17
|
-
}
|
|
18
|
-
// load the .env file
|
|
19
|
-
dotenv.config({ path: ".env", quiet: true, override: true });
|
|
20
|
-
console.log(`.env first line: ${execSync("head -n 1 .env").toString().trim()}`);
|
|
21
|
-
// // check for important environment variables
|
|
22
|
-
// if(!process.env.VITE_SUPABASE_URL)console.warn('VITE_SUPABASE_URL is not set');
|
|
23
|
-
// if(!process.env.VITE_SUPABASE_SERVICE_ROLE_KEY)console.warn('VITE_SUPABASE_SERVICE_ROLE_KEY is not set');
|
|
24
|
-
// if(!process.env.VITE_SUPABASE_DASHBOARD_URL)console.warn('VITE_SUPABASE_DASHBOARD_URL is not set');
|
|
25
|
-
// if(!process.env.VITE_SUPABASE_PROJECT_REF)console.warn('VITE_SUPABASE_PROJECT_REF is not set');
|
|
26
|
-
// if(!process.env.VITE_SUPABASE_PROJECT_ID)console.warn('VITE_SUPABASE_PROJECT_ID is not set');
|
|
27
|
-
// if(!process.env.VITE_SUPABASE_PROJECT_NAME)console.warn('VITE_SUPABASE_PROJECT_NAME is not set');
|
|
28
|
-
// if(!process.env.VITE_SUPABASE_PROJECT_URL)console.warn('VITE_SUPABASE_PROJECT_URL is not set');
|
|
29
|
-
// if(!process.env.VITE_SUPABASE_PROJECT_ID)console.warn('VITE_SUPABASE_PROJECT_ID is not set');
|
|
30
|
-
});
|
|
31
|
-
// '✅', // checkmark
|
|
32
|
-
// '❌', // xmark
|
|
33
|
-
// '❓', // question mark
|
|
34
|
-
// '❗', // double exclamation mark
|
|
35
|
-
// '👍' // thumbs up
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=check.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,OAAgB;IACpD,OAAO;SACL,OAAO,CAAC,OAAO,EAAE,6BAA6B,CAAC;SAC/C,QAAQ,CAAC,WAAW,EAAE,+BAA+B,CAAC;SACtD,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QAC3C,qBAAqB;QAErB,4BAA4B;QAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAEjE,4BAA4B;QAC5B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;QAED,qBAAqB;QACrB,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7D,OAAO,CAAC,GAAG,CACV,oBAAoB,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAClE,CAAC;QAEF,+CAA+C;QAC/C,kFAAkF;QAClF,4GAA4G;QAC5G,sGAAsG;QACtG,kGAAkG;QAClG,gGAAgG;QAChG,oGAAoG;QACpG,kGAAkG;QAClG,gGAAgG;IACjG,CAAC,CAAC,CAAC;IAEJ,sBAAsB;IACtB,kBAAkB;IAClB,0BAA0B;IAC1B,oCAAoC;IACpC,uBAAuB;AACxB,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { Logger } from "@caporal/core";
|
|
2
|
-
export declare function buildSchema(name: string, logger: Logger): Promise<void>;
|
|
3
|
-
export declare function buildData(name: string, logger: Logger): Promise<void>;
|
|
4
|
-
/**
|
|
5
|
-
* Build command implementation
|
|
6
|
-
*/
|
|
7
|
-
export declare function buildCommand(args: {
|
|
8
|
-
type: string;
|
|
9
|
-
name?: string;
|
|
10
|
-
}, logger: Logger): Promise<void>;
|
|
11
|
-
//# sourceMappingURL=build.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/commands/data/build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAe5C,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ7E;AAGD,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK3E;AAGD;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EACrC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAkDf"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { join } from "node:path";
|
|
2
|
-
import { existsSync } from "node:fs";
|
|
3
|
-
import { getDefaultSchemaName } from "../../lib/schema-discovery";
|
|
4
|
-
import { getDefaultInstanceName } from "../../lib/instance-discovery";
|
|
5
|
-
import { buildSchemaFile, getPackageVersion, getSortedSqlFiles, writeSchemaFile, } from "../../lib/sql-builder";
|
|
6
|
-
import { buildDataFile, writeDataFile } from "../../lib/data-generator";
|
|
7
|
-
import { getPaths } from "../../lib/constants";
|
|
8
|
-
export async function buildSchema(name, logger) {
|
|
9
|
-
const schemaName = name || getDefaultSchemaName();
|
|
10
|
-
const paths = getPaths();
|
|
11
|
-
const sqlDir = join(process.cwd(), paths.SCHEMA_BASE, schemaName, "sql");
|
|
12
|
-
if (!existsSync(sqlDir)) {
|
|
13
|
-
logger.error(`Schema directory does not exist: ${sqlDir}`);
|
|
14
|
-
process.exit(1);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
export async function buildData(name, logger) {
|
|
18
|
-
const instanceName = name || getDefaultInstanceName();
|
|
19
|
-
const version = getPackageVersion();
|
|
20
|
-
const dataContent = buildDataFile(instanceName, version);
|
|
21
|
-
writeDataFile(dataContent, instanceName);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Build command implementation
|
|
25
|
-
*/
|
|
26
|
-
export async function buildCommand(args, logger) {
|
|
27
|
-
const buildType = args.type;
|
|
28
|
-
const name = args.name;
|
|
29
|
-
if (buildType === "schema") {
|
|
30
|
-
// Build schema
|
|
31
|
-
const schemaName = name || getDefaultSchemaName();
|
|
32
|
-
const paths = getPaths();
|
|
33
|
-
// Validate schema directory exists
|
|
34
|
-
const sqlDir = join(process.cwd(), paths.SCHEMA_BASE, schemaName, "sql");
|
|
35
|
-
if (!existsSync(sqlDir)) {
|
|
36
|
-
logger.error(`Schema directory does not exist: ${sqlDir}`);
|
|
37
|
-
process.exit(1);
|
|
38
|
-
}
|
|
39
|
-
const version = getPackageVersion();
|
|
40
|
-
// Build schema file from DDL files only
|
|
41
|
-
const sqlFiles = getSortedSqlFiles(sqlDir, schemaName);
|
|
42
|
-
if (sqlFiles.length === 0) {
|
|
43
|
-
logger.error(`No SQL files found in schema directory: ${sqlDir}`);
|
|
44
|
-
process.exit(1);
|
|
45
|
-
}
|
|
46
|
-
const combinedContent = buildSchemaFile(sqlDir, schemaName, sqlFiles, version);
|
|
47
|
-
// Write to dist directory
|
|
48
|
-
writeSchemaFile(combinedContent, schemaName);
|
|
49
|
-
console.log(`✅ Schema built successfully: dist/${schemaName}.sql`);
|
|
50
|
-
}
|
|
51
|
-
else if (buildType === "data") {
|
|
52
|
-
// Build data
|
|
53
|
-
const instanceName = name || getDefaultInstanceName();
|
|
54
|
-
const version = getPackageVersion();
|
|
55
|
-
try {
|
|
56
|
-
// Build data file from instance directory
|
|
57
|
-
const dataContent = buildDataFile(instanceName, version);
|
|
58
|
-
// Write to dist directory
|
|
59
|
-
writeDataFile(dataContent, instanceName);
|
|
60
|
-
console.log(`✅ Data generated successfully: dist/data.sql`);
|
|
61
|
-
}
|
|
62
|
-
catch (error) {
|
|
63
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
64
|
-
logger.error(message);
|
|
65
|
-
process.exit(1);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=build.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/data/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/data/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAQ5C;;GAEG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EACrC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { join } from "node:path";
|
|
2
|
-
import { existsSync } from "node:fs";
|
|
3
|
-
import { getDefaultSchemaName } from "../../lib/schema-discovery";
|
|
4
|
-
import { getDefaultInstanceName } from "../../lib/instance-discovery";
|
|
5
|
-
import { runSqlFile } from "../../lib/database-runner";
|
|
6
|
-
import { getPaths } from "../../lib/constants";
|
|
7
|
-
/**
|
|
8
|
-
* Deploy command implementation
|
|
9
|
-
*/
|
|
10
|
-
export async function deployCommand(args, logger) {
|
|
11
|
-
const deployType = args.type;
|
|
12
|
-
const name = args.name;
|
|
13
|
-
if (deployType === "schema") {
|
|
14
|
-
// Deploy schema
|
|
15
|
-
const schemaName = name || getDefaultSchemaName();
|
|
16
|
-
const paths = getPaths();
|
|
17
|
-
const schemaFile = join(process.cwd(), paths.DIST, `${schemaName}.sql`);
|
|
18
|
-
if (!existsSync(schemaFile)) {
|
|
19
|
-
logger.error(`Schema file not found: ${schemaFile}`);
|
|
20
|
-
logger.error(`Please run 'blt build schema ${schemaName}' first.`);
|
|
21
|
-
process.exit(1);
|
|
22
|
-
}
|
|
23
|
-
await runSqlFile(schemaFile);
|
|
24
|
-
}
|
|
25
|
-
else if (deployType === "data") {
|
|
26
|
-
// Deploy data
|
|
27
|
-
const paths = getPaths();
|
|
28
|
-
const dataFile = join(process.cwd(), paths.DIST, "data.sql");
|
|
29
|
-
if (!existsSync(dataFile)) {
|
|
30
|
-
logger.error(`Data file not found: ${dataFile}`);
|
|
31
|
-
const instanceName = name || getDefaultInstanceName();
|
|
32
|
-
logger.error(`Please run 'blt build data ${instanceName}' first.`);
|
|
33
|
-
process.exit(1);
|
|
34
|
-
}
|
|
35
|
-
await runSqlFile(dataFile);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=deploy.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/data/deploy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,IAAqC,EACrC,MAAc;IAEd,MAAM,UAAU,GAAG,IAAI,CAAC,IAAc,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,IAA0B,CAAC;IAE7C,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,gBAAgB;QAChB,MAAM,UAAU,GAAG,IAAI,IAAI,oBAAoB,EAAE,CAAC;QAClD,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,UAAU,MAAM,CAAC,CAAC;QAExE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,gCAAgC,UAAU,UAAU,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;SAAM,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QACjC,cAAc;QACd,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAE7D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,wBAAwB,QAAQ,EAAE,CAAC,CAAC;YACjD,MAAM,YAAY,GAAG,IAAI,IAAI,sBAAsB,EAAE,CAAC;YACtD,MAAM,CAAC,KAAK,CAAC,8BAA8B,YAAY,UAAU,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../../src/commands/data/rows.ts"],"names":[],"mappings":"AAgBA;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAqDjD"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { executeQuery } from "../../lib/database-runner";
|
|
2
|
-
/**
|
|
3
|
-
* Render a table row for ASCII table display
|
|
4
|
-
*/
|
|
5
|
-
function renderRow(row, colWidths) {
|
|
6
|
-
return "| " + row.map((cell, i) => cell.padEnd(colWidths[i])).join(" | ") + " |";
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Render a table divider row
|
|
10
|
-
*/
|
|
11
|
-
function renderDivider(colWidths) {
|
|
12
|
-
return "|-" + colWidths.map((w) => "-".repeat(w)).join("-|-") + "-|";
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Rows command implementation - display row counts for all tables
|
|
16
|
-
*/
|
|
17
|
-
export async function rowsCommand() {
|
|
18
|
-
try {
|
|
19
|
-
console.log("\n📊 Fetching row counts from database...\n");
|
|
20
|
-
const rows = await executeQuery("SELECT * FROM get_row_counts()");
|
|
21
|
-
if (rows.length === 0) {
|
|
22
|
-
console.log("No tables found in the database.");
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
// Build ASCII table
|
|
26
|
-
const headers = ["Table Name", "Row Count"];
|
|
27
|
-
const tableRows = [headers];
|
|
28
|
-
for (const row of rows) {
|
|
29
|
-
// Handle bigint which may come as string from PostgreSQL
|
|
30
|
-
const count = typeof row.row_count === 'string'
|
|
31
|
-
? parseInt(row.row_count, 10).toLocaleString()
|
|
32
|
-
: Number(row.row_count).toLocaleString();
|
|
33
|
-
tableRows.push([
|
|
34
|
-
row.table_name,
|
|
35
|
-
count,
|
|
36
|
-
]);
|
|
37
|
-
}
|
|
38
|
-
// Calculate column widths
|
|
39
|
-
const colWidths = headers.map((_header, i) => Math.max(...tableRows.map((row) => row[i].toString().length)));
|
|
40
|
-
// Print table
|
|
41
|
-
console.log(renderRow(tableRows[0], colWidths));
|
|
42
|
-
console.log(renderDivider(colWidths));
|
|
43
|
-
for (let i = 1; i < tableRows.length; i++) {
|
|
44
|
-
console.log(renderRow(tableRows[i], colWidths));
|
|
45
|
-
}
|
|
46
|
-
console.log("");
|
|
47
|
-
// Calculate and display total
|
|
48
|
-
const total = rows.reduce((sum, row) => {
|
|
49
|
-
const count = typeof row.row_count === 'string'
|
|
50
|
-
? parseInt(row.row_count, 10)
|
|
51
|
-
: Number(row.row_count);
|
|
52
|
-
return sum + count;
|
|
53
|
-
}, 0);
|
|
54
|
-
console.log(`Total rows across all tables: ${total.toLocaleString()}\n`);
|
|
55
|
-
}
|
|
56
|
-
catch (error) {
|
|
57
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
58
|
-
console.error(`\n❌ Error: ${message}`);
|
|
59
|
-
console.error("\nMake sure the database is accessible and get_row_counts() function exists.");
|
|
60
|
-
process.exit(1);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=rows.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rows.js","sourceRoot":"","sources":["../../../src/commands/data/rows.ts"],"names":[],"mappings":"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"}
|