@codemarc/blt 1.0.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 (87) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +184 -0
  3. package/dist/commands/bucket.d.ts +3 -0
  4. package/dist/commands/bucket.d.ts.map +1 -0
  5. package/dist/commands/bucket.js +399 -0
  6. package/dist/commands/bucket.js.map +1 -0
  7. package/dist/commands/check.d.ts +3 -0
  8. package/dist/commands/check.d.ts.map +1 -0
  9. package/dist/commands/check.js +43 -0
  10. package/dist/commands/check.js.map +1 -0
  11. package/dist/commands/cleanup.d.ts +6 -0
  12. package/dist/commands/cleanup.d.ts.map +1 -0
  13. package/dist/commands/cleanup.js +65 -0
  14. package/dist/commands/cleanup.js.map +1 -0
  15. package/dist/commands/data.d.ts +8 -0
  16. package/dist/commands/data.d.ts.map +1 -0
  17. package/dist/commands/data.js +222 -0
  18. package/dist/commands/data.js.map +1 -0
  19. package/dist/commands/env.d.ts +6 -0
  20. package/dist/commands/env.d.ts.map +1 -0
  21. package/dist/commands/env.js +29 -0
  22. package/dist/commands/env.js.map +1 -0
  23. package/dist/commands/image/color.d.ts +12 -0
  24. package/dist/commands/image/color.d.ts.map +1 -0
  25. package/dist/commands/image/color.js +274 -0
  26. package/dist/commands/image/color.js.map +1 -0
  27. package/dist/commands/image/convert.d.ts +11 -0
  28. package/dist/commands/image/convert.d.ts.map +1 -0
  29. package/dist/commands/image/convert.js +230 -0
  30. package/dist/commands/image/convert.js.map +1 -0
  31. package/dist/commands/image/enhance.d.ts +10 -0
  32. package/dist/commands/image/enhance.d.ts.map +1 -0
  33. package/dist/commands/image/enhance.js +174 -0
  34. package/dist/commands/image/enhance.js.map +1 -0
  35. package/dist/commands/image/sharpen.d.ts +13 -0
  36. package/dist/commands/image/sharpen.d.ts.map +1 -0
  37. package/dist/commands/image/sharpen.js +205 -0
  38. package/dist/commands/image/sharpen.js.map +1 -0
  39. package/dist/commands/image.d.ts +3 -0
  40. package/dist/commands/image.d.ts.map +1 -0
  41. package/dist/commands/image.js +125 -0
  42. package/dist/commands/image.js.map +1 -0
  43. package/dist/commands/repo.d.ts +6 -0
  44. package/dist/commands/repo.d.ts.map +1 -0
  45. package/dist/commands/repo.js +75 -0
  46. package/dist/commands/repo.js.map +1 -0
  47. package/dist/config/config.d.ts +16 -0
  48. package/dist/config/config.d.ts.map +1 -0
  49. package/dist/config/config.js +57 -0
  50. package/dist/config/config.js.map +1 -0
  51. package/dist/index.d.ts +3 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +27 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/lib/constants.d.ts +23 -0
  56. package/dist/lib/constants.d.ts.map +1 -0
  57. package/dist/lib/constants.js +22 -0
  58. package/dist/lib/constants.js.map +1 -0
  59. package/dist/lib/data-generator.d.ts +11 -0
  60. package/dist/lib/data-generator.d.ts.map +1 -0
  61. package/dist/lib/data-generator.js +78 -0
  62. package/dist/lib/data-generator.js.map +1 -0
  63. package/dist/lib/database-runner.d.ts +14 -0
  64. package/dist/lib/database-runner.d.ts.map +1 -0
  65. package/dist/lib/database-runner.js +186 -0
  66. package/dist/lib/database-runner.js.map +1 -0
  67. package/dist/lib/instance-discovery.d.ts +13 -0
  68. package/dist/lib/instance-discovery.d.ts.map +1 -0
  69. package/dist/lib/instance-discovery.js +48 -0
  70. package/dist/lib/instance-discovery.js.map +1 -0
  71. package/dist/lib/schema-discovery.d.ts +30 -0
  72. package/dist/lib/schema-discovery.d.ts.map +1 -0
  73. package/dist/lib/schema-discovery.js +85 -0
  74. package/dist/lib/schema-discovery.js.map +1 -0
  75. package/dist/lib/sql-builder.d.ts +25 -0
  76. package/dist/lib/sql-builder.d.ts.map +1 -0
  77. package/dist/lib/sql-builder.js +108 -0
  78. package/dist/lib/sql-builder.js.map +1 -0
  79. package/dist/lib/yaml-converter.d.ts +26 -0
  80. package/dist/lib/yaml-converter.d.ts.map +1 -0
  81. package/dist/lib/yaml-converter.js +350 -0
  82. package/dist/lib/yaml-converter.js.map +1 -0
  83. package/dist/utils/supabase.d.ts +3 -0
  84. package/dist/utils/supabase.d.ts.map +1 -0
  85. package/dist/utils/supabase.js +19 -0
  86. package/dist/utils/supabase.js.map +1 -0
  87. package/package.json +61 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Marc J. Greenberg
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,184 @@
1
+ # @codemarc/blt
2
+
3
+ > BLT CLI - Command-line tools for environment checking and image processing
4
+
5
+ ## Features
6
+
7
+ - **Environment Checking**: Verify environment setup and configuration
8
+ - **Image Processing**: WebP conversion, sharpening, color manipulation, and enhancement
9
+
10
+ ## Installation
11
+
12
+ ```bash
13
+ npm install -g @codemarc/blt
14
+ # or
15
+ yarn global add @codemarc/blt
16
+ # or
17
+ pnpm add -g @codemarc/blt
18
+ ```
19
+
20
+ ## Quick Start
21
+
22
+ ### Check Environment
23
+
24
+ Verify your environment setup:
25
+
26
+ ```bash
27
+ blt check
28
+ ```
29
+
30
+ This command checks for:
31
+ - `.env` file existence
32
+ - `SMASH_KEY` environment variable
33
+ - Other environment configuration
34
+
35
+ ### Process Images
36
+
37
+ Convert an image to WebP:
38
+
39
+ ```bash
40
+ blt image convert ./photo.jpg
41
+ ```
42
+
43
+ Sharpen an image:
44
+
45
+ ```bash
46
+ blt image sharpen ./photo.jpg
47
+ ```
48
+
49
+ ## Commands
50
+
51
+ ### Environment Commands
52
+
53
+ #### `blt check [buckets]`
54
+
55
+ Check the environment setup
56
+
57
+ ```bash
58
+ blt check
59
+ blt check all
60
+ ```
61
+
62
+ This command verifies:
63
+ - Presence of `.env` file
64
+ - `SMASH_KEY` environment variable
65
+ - Other environment configuration
66
+
67
+ ### Image Commands
68
+
69
+ #### `blt image convert <input>`
70
+
71
+ Convert images to WebP format
72
+
73
+ ```bash
74
+ blt image convert ./photo.jpg
75
+ blt image convert ./images/ --recursive
76
+ blt image convert ./photo.jpg --quality 90 --output ./photo.webp
77
+ ```
78
+
79
+ **Options:**
80
+ - `-o, --output <path>`: Output file or directory (default: same location as input)
81
+ - `-q, --quality <quality>`: WebP quality 0-100 (default: 80)
82
+ - `-r, --recursive`: Process directories recursively
83
+ - `--overwrite`: Overwrite existing files
84
+
85
+ #### `blt image sharpen <input>`
86
+
87
+ Sharpen image edges
88
+
89
+ ```bash
90
+ blt image sharpen ./photo.jpg
91
+ blt image sharpen ./images/ --recursive
92
+ ```
93
+
94
+ **Options:**
95
+ - `-o, --output <path>`: Output file or directory (default: same location as input)
96
+ - `-s, --sigma <sigma>`: Sigma value for sharpening 0.3-1000 (default: 1.0)
97
+ - `-f, --flat <flat>`: Flat threshold 0-10000 (default: 1.0)
98
+ - `-j, --jagged <jagged>`: Jagged threshold 0-10000 (default: 2.0)
99
+ - `-r, --recursive`: Process directories recursively
100
+ - `--overwrite`: Overwrite existing files
101
+
102
+ #### `blt image enhance <input>`
103
+
104
+ Enhance avatar images for dark or light mode
105
+
106
+ ```bash
107
+ blt image enhance ./avatar.jpg --mode dark
108
+ blt image enhance ./avatar.jpg --mode light --quality 95
109
+ ```
110
+
111
+ **Options:**
112
+ - `-m, --mode <mode>`: Enhancement mode: `dark` or `light` (default: dark)
113
+ - `-o, --output <path>`: Output file path (default: overwrites input)
114
+ - `-q, --quality <quality>`: WebP quality 0-100 (default: 90)
115
+
116
+ #### `blt image color <input>`
117
+
118
+ Change the base color of an image
119
+
120
+ ```bash
121
+ blt image color ./logo.png --to blue
122
+ blt image color ./logo.png --from red --to blue --tolerance 30
123
+ ```
124
+
125
+ **Options:**
126
+ - `-t, --to <color>`: Target color (hex, rgb, or color name)
127
+ - `-f, --from <color>`: Source color to replace (hex, rgb, or color name). If not specified, detects dominant color
128
+ - `-o, --output <path>`: Output file path (default: overwrites input)
129
+ - `-q, --quality <quality>`: WebP quality 0-100 (default: 90)
130
+ - `-z, --tolerance <tolerance>`: Color matching tolerance 0-100 (default: 30)
131
+
132
+ ## Environment Variables
133
+
134
+ ### Environment Checking
135
+
136
+ - `SMASH_KEY`: Required for certain operations (checked by `blt check`)
137
+
138
+ The `blt check` command looks for a `.env` file in the current directory and verifies environment variable configuration.
139
+
140
+ ## Troubleshooting
141
+
142
+ ### Sharp library errors (image commands)
143
+
144
+ Sharp is an optional dependency. Install manually if needed:
145
+
146
+ ```bash
147
+ npm install sharp
148
+ ```
149
+
150
+ ## Development
151
+
152
+ This package is built with TypeScript and targets Node.js 18+.
153
+
154
+ ### Building from Source
155
+
156
+ ```bash
157
+ git clone https://github.com/codemarc/blt-cli.git
158
+ cd blt-cli
159
+ npm install
160
+ npm run build
161
+ npm link
162
+ ```
163
+
164
+ ### Testing
165
+
166
+ ```bash
167
+ npm test
168
+ ```
169
+
170
+ ## License
171
+
172
+ MIT License - see [LICENSE](LICENSE) file for details.
173
+
174
+ ## Author
175
+
176
+ Marc J. Greenberg <marc@Blt.org>
177
+
178
+ ## Repository
179
+
180
+ https://github.com/codemarc/blt-cli
181
+
182
+ ## Support
183
+
184
+ For issues and questions: https://github.com/codemarc/blt-cli/issues
@@ -0,0 +1,3 @@
1
+ import type { Program } from "@caporal/core";
2
+ export default function bucketCommand(program: Program): void;
3
+ //# sourceMappingURL=bucket.d.ts.map
@@ -0,0 +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;AAW7C,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,OAAO,EAAE,OAAO,QAqYrD"}
@@ -0,0 +1,399 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = bucketCommand;
7
+ const debug_1 = __importDefault(require("debug"));
8
+ const fs_1 = require("fs");
9
+ const promises_1 = require("fs/promises");
10
+ const fs_2 = require("fs");
11
+ const path_1 = require("path");
12
+ const file_type_1 = require("file-type");
13
+ const supabase_1 = require("../utils/supabase");
14
+ const log = (0, debug_1.default)("blt:bucket");
15
+ function bucketCommand(program) {
16
+ // Main bucket command - shows help for subcommands
17
+ program
18
+ .command("bucket", "Manage Supabase storage buckets")
19
+ .action(({ args, options, logger }) => {
20
+ args.subcommand === "names" ? logger.info("Listing all bucket names") : logger.info("Listing all bucket names");
21
+ args.subcommand === "list" ? logger.info("Listing files in a bucket") : logger.info("Listing files in a bucket");
22
+ args.subcommand === "upload" ? logger.info("Uploading a file to a bucket") : logger.info("Uploading a file to a bucket");
23
+ args.subcommand === "upload-folder" ? logger.info("Uploading a folder to a bucket") : logger.info("Uploading a folder to a bucket");
24
+ args.subcommand === "download" ? logger.info("Downloading a file from a bucket") : logger.info("Downloading a file from a bucket");
25
+ args.subcommand === "url" ? logger.info("Getting a file URL") : logger.info("Getting a file URL");
26
+ args.subcommand === "help" ? logger.info("Getting help for a command") : logger.info("Getting help for a command");
27
+ args.subcommand === "version" ? logger.info("Getting version information") : logger.info("Getting version information");
28
+ args.subcommand === "help" ? logger.info("Getting help for a command") : logger.info("Getting help for a command");
29
+ // logger.info("Bucket management commands:");
30
+ // logger.info("");
31
+ // logger.info(" blt bucket buckets List all bucket names");
32
+ // logger.info(" blt bucket list <bucket-name> List files in a bucket");
33
+ // logger.info(" blt bucket upload <bucket> <local> <remote> Upload a file");
34
+ // logger.info(" blt bucket upload-folder <bucket> <folder> Upload a folder");
35
+ // logger.info(" blt bucket download <bucket> <remote> <local> Download a file");
36
+ // logger.info(" blt bucket url <bucket> <remote-path> Get file URL");
37
+ // logger.info("");
38
+ // logger.info("Use 'blt bucket <subcommand> --help' for more information on each command.");
39
+ });
40
+ // List all buckets
41
+ program
42
+ .command("bucket names", "List all bucket names")
43
+ .option("-f, --format <format>", "Output format: table or json", {
44
+ default: "table",
45
+ validator: ["table", "json"],
46
+ })
47
+ .action(async ({ options, logger }) => {
48
+ try {
49
+ log("Listing all buckets");
50
+ const supabase = (0, supabase_1.getSupabaseClient)();
51
+ const { data, error } = await supabase.storage.listBuckets();
52
+ if (error) {
53
+ logger.error("Error listing buckets:", error.message);
54
+ process.exit(1);
55
+ }
56
+ if (!data || data.length === 0) {
57
+ if (options.format === "json") {
58
+ console.log(JSON.stringify({ buckets: [], count: 0 }, null, 2));
59
+ }
60
+ else {
61
+ logger.info("No buckets found");
62
+ }
63
+ return;
64
+ }
65
+ if (options.format === "json") {
66
+ const output = {
67
+ count: data.length,
68
+ buckets: data.map((bucket) => ({
69
+ id: bucket.id,
70
+ name: bucket.name,
71
+ public: bucket.public,
72
+ fileSizeLimit: bucket.file_size_limit,
73
+ allowedMimeTypes: bucket.allowed_mime_types,
74
+ createdAt: bucket.created_at,
75
+ updatedAt: bucket.updated_at,
76
+ })),
77
+ };
78
+ console.log(JSON.stringify(output, null, 2));
79
+ }
80
+ else {
81
+ logger.info("");
82
+ logger.info(`Found ${data.length} bucket(s)`);
83
+ logger.info("");
84
+ data.forEach((bucket) => {
85
+ const publicStatus = bucket.public ? "public" : "private";
86
+ logger.info(`- ${bucket.name} (${publicStatus})`);
87
+ });
88
+ logger.info("");
89
+ }
90
+ }
91
+ catch (error) {
92
+ logger.error("Error:", error.message);
93
+ process.exit(1);
94
+ }
95
+ });
96
+ // List files in a bucket
97
+ program
98
+ .command("bucket list", "List files in a bucket")
99
+ .argument("<bucket-name>", "Name of the bucket")
100
+ .option("-p, --prefix <prefix>", "Filter files by prefix/path", {
101
+ default: "",
102
+ })
103
+ .option("-l, --limit <limit>", "Limit number of results", {
104
+ default: 100,
105
+ validator: program.NUMBER,
106
+ })
107
+ .option("-f, --format <format>", "Output format: table or json", {
108
+ default: "table",
109
+ validator: ["table", "json"],
110
+ })
111
+ .action(async ({ args, options, logger }) => {
112
+ try {
113
+ log("Listing files in bucket: %s", args.bucketName);
114
+ const supabase = (0, supabase_1.getSupabaseClient)();
115
+ const { data, error } = await supabase.storage
116
+ .from(args.bucketName)
117
+ .list(options.prefix, {
118
+ limit: options.limit,
119
+ sortBy: { column: "name", order: "asc" },
120
+ });
121
+ if (error) {
122
+ logger.error("Error listing files:", error.message);
123
+ process.exit(1);
124
+ }
125
+ if (!data || data.length === 0) {
126
+ if (options.format === "json") {
127
+ console.log(JSON.stringify({ files: [], count: 0, totalSize: 0 }, null, 2));
128
+ }
129
+ else {
130
+ logger.info("No files found");
131
+ }
132
+ return;
133
+ }
134
+ const totalSize = data.reduce((acc, file) => acc + (file.metadata?.size || 0), 0);
135
+ if (options.format === "json") {
136
+ const output = {
137
+ bucket: args.bucketName,
138
+ prefix: options.prefix || "/",
139
+ count: data.length,
140
+ totalSize,
141
+ totalSizeFormatted: formatBytes(totalSize),
142
+ files: data.map((file) => ({
143
+ name: file.name,
144
+ id: file.id,
145
+ size: file.metadata?.size || 0,
146
+ sizeFormatted: formatBytes(file.metadata?.size || 0),
147
+ mimetype: file.metadata?.mimetype,
148
+ lastModified: file.metadata?.lastModified,
149
+ createdAt: file.created_at,
150
+ updatedAt: file.updated_at,
151
+ })),
152
+ };
153
+ console.log(JSON.stringify(output, null, 2));
154
+ }
155
+ else {
156
+ logger.info("");
157
+ logger.info(`Found ${data.length} file(s)`);
158
+ logger.info("");
159
+ data.forEach((file) => {
160
+ const size = file.metadata?.size
161
+ ? `(${formatBytes(file.metadata.size)})`
162
+ : "";
163
+ logger.info(`- ${file.name} ${size}`);
164
+ });
165
+ logger.info("");
166
+ logger.info(` Total size: ${formatBytes(totalSize)}`);
167
+ logger.info("");
168
+ }
169
+ }
170
+ catch (error) {
171
+ logger.error("Error:", error.message);
172
+ process.exit(1);
173
+ }
174
+ });
175
+ // Upload a file to a bucket
176
+ program
177
+ .command("bucket upload", "Upload a file to a bucket")
178
+ .argument("<bucket-name>", "Name of the bucket")
179
+ .argument("<local-path>", "Local file path")
180
+ .argument("<remote-path>", "Remote path in bucket")
181
+ .option("--upsert", "Overwrite if file exists", { default: false })
182
+ .action(async ({ args, options, logger }) => {
183
+ try {
184
+ log("Uploading file to bucket: %s", args.bucketName);
185
+ const supabase = (0, supabase_1.getSupabaseClient)();
186
+ // Check if file exists
187
+ try {
188
+ await (0, promises_1.access)(args.localPath, fs_2.constants.F_OK);
189
+ }
190
+ catch {
191
+ logger.error(`File not found: ${args.localPath}`);
192
+ process.exit(1);
193
+ }
194
+ // Read file and detect MIME type
195
+ const fileBuffer = await (0, promises_1.readFile)(args.localPath);
196
+ const fileType = await (0, file_type_1.fileTypeFromFile)(args.localPath);
197
+ const contentType = fileType?.mime || 'application/octet-stream';
198
+ const { data, error } = await supabase.storage
199
+ .from(args.bucketName)
200
+ .upload(args.remotePath, fileBuffer, {
201
+ upsert: options.upsert,
202
+ contentType,
203
+ });
204
+ if (error) {
205
+ logger.error("Error uploading file:", error.message);
206
+ process.exit(1);
207
+ }
208
+ logger.info(`Successfully uploaded to: ${data.path}`);
209
+ }
210
+ catch (error) {
211
+ logger.error("Error:", error.message);
212
+ process.exit(1);
213
+ }
214
+ });
215
+ // Upload all files in a folder to a bucket
216
+ program
217
+ .command("bucket upload-folder", "Upload all files in a folder to a bucket")
218
+ .argument("<bucket-name>", "Name of the bucket")
219
+ .argument("<local-folder>", "Local folder path")
220
+ .option("-r, --remote-prefix <prefix>", "Remote path prefix in bucket", {
221
+ default: "",
222
+ })
223
+ .option("--upsert", "Overwrite if files exist", { default: true })
224
+ .option("--dry-run", "Show what would be uploaded without uploading", {
225
+ default: false,
226
+ })
227
+ .action(async ({ args, options, logger }) => {
228
+ try {
229
+ const localFolder = args.localFolder;
230
+ const bucketName = args.bucketName;
231
+ const remotePrefix = options.remotePrefix;
232
+ const upsert = options.upsert;
233
+ const dryRun = options.dryRun;
234
+ log("Uploading folder to bucket: %s", bucketName);
235
+ // Check if folder exists
236
+ try {
237
+ const stat = (0, fs_1.statSync)(localFolder);
238
+ if (!stat.isDirectory()) {
239
+ logger.error(`Not a directory: ${localFolder}`);
240
+ process.exit(1);
241
+ }
242
+ }
243
+ catch {
244
+ logger.error(`Folder not found: ${localFolder}`);
245
+ process.exit(1);
246
+ }
247
+ // Get all files recursively
248
+ const files = getAllFiles(localFolder);
249
+ if (files.length === 0) {
250
+ logger.info("No files found in folder");
251
+ return;
252
+ }
253
+ logger.info(`Found ${files.length} file(s) to upload`);
254
+ logger.info("");
255
+ if (dryRun) {
256
+ logger.info("DRY RUN - Files that would be uploaded:");
257
+ logger.info("");
258
+ }
259
+ const supabase = (0, supabase_1.getSupabaseClient)();
260
+ let successCount = 0;
261
+ let errorCount = 0;
262
+ for (const filePath of files) {
263
+ const relativePath = (0, path_1.relative)(localFolder, filePath);
264
+ const remotePath = remotePrefix
265
+ ? `${remotePrefix}/${relativePath}`
266
+ : relativePath;
267
+ if (dryRun) {
268
+ logger.info(` ${relativePath} → ${remotePath}`);
269
+ continue;
270
+ }
271
+ try {
272
+ const fileBuffer = await (0, promises_1.readFile)(filePath);
273
+ const fileType = await (0, file_type_1.fileTypeFromFile)(filePath);
274
+ const contentType = fileType?.mime || 'application/octet-stream';
275
+ const { data, error } = await supabase.storage
276
+ .from(bucketName)
277
+ .upload(remotePath, fileBuffer, {
278
+ upsert,
279
+ contentType,
280
+ });
281
+ if (error) {
282
+ logger.error(` ✗ ${relativePath}: ${error.message}`);
283
+ errorCount++;
284
+ }
285
+ else {
286
+ logger.info(` ✓ ${relativePath} → ${data.path}`);
287
+ successCount++;
288
+ }
289
+ }
290
+ catch (error) {
291
+ logger.error(` ✗ ${relativePath}: ${error.message}`);
292
+ errorCount++;
293
+ }
294
+ }
295
+ if (!dryRun) {
296
+ logger.info("");
297
+ logger.info(`Completed: ${successCount} succeeded, ${errorCount} failed`);
298
+ }
299
+ }
300
+ catch (error) {
301
+ logger.error("Error:", error.message);
302
+ process.exit(1);
303
+ }
304
+ });
305
+ // Download a file from a bucket
306
+ program
307
+ .command("bucket download", "Download a file from a bucket")
308
+ .argument("<bucket-name>", "Name of the bucket")
309
+ .argument("<remote-path>", "Remote path in bucket")
310
+ .argument("<local-path>", "Local file path to save")
311
+ .action(async ({ args, logger }) => {
312
+ try {
313
+ log("Downloading file from bucket: %s", args.bucketName);
314
+ const supabase = (0, supabase_1.getSupabaseClient)();
315
+ const { data, error } = await supabase.storage
316
+ .from(args.bucketName)
317
+ .download(args.remotePath);
318
+ if (error) {
319
+ logger.error("Error downloading file:", error.message);
320
+ process.exit(1);
321
+ }
322
+ if (!data) {
323
+ logger.error("No data received");
324
+ process.exit(1);
325
+ }
326
+ const buffer = await data.arrayBuffer();
327
+ await (0, promises_1.writeFile)(args.localPath, Buffer.from(buffer));
328
+ logger.info(`Successfully downloaded to: ${args.localPath}`);
329
+ }
330
+ catch (error) {
331
+ logger.error("Error:", error.message);
332
+ process.exit(1);
333
+ }
334
+ });
335
+ // Get public URL for a file
336
+ program
337
+ .command("bucket url", "Get public URL for a file")
338
+ .argument("<bucket-name>", "Name of the bucket")
339
+ .argument("<remote-path>", "Remote path in bucket")
340
+ .option("--signed", "Generate a signed URL", { default: false })
341
+ .option("--expires-in <seconds>", "Expiry time in seconds for signed URL", {
342
+ default: 3600,
343
+ validator: program.NUMBER,
344
+ })
345
+ .action(async ({ args, options, logger }) => {
346
+ try {
347
+ log("Getting URL for file in bucket: %s", args.bucketName);
348
+ const supabase = (0, supabase_1.getSupabaseClient)();
349
+ if (options.signed) {
350
+ const { data, error } = await supabase.storage
351
+ .from(args.bucketName)
352
+ .createSignedUrl(args.remotePath, options.expiresIn);
353
+ if (error) {
354
+ logger.error("Error generating signed URL:", error.message);
355
+ process.exit(1);
356
+ }
357
+ logger.info(`Signed URL (expires in ${options.expiresIn}s):`);
358
+ logger.info(data.signedUrl);
359
+ }
360
+ else {
361
+ const { data } = supabase.storage
362
+ .from(args.bucketName)
363
+ .getPublicUrl(args.remotePath);
364
+ logger.info("Public URL:");
365
+ logger.info(data.publicUrl);
366
+ }
367
+ }
368
+ catch (error) {
369
+ logger.error("Error:", error.message);
370
+ process.exit(1);
371
+ }
372
+ });
373
+ }
374
+ function formatBytes(bytes) {
375
+ if (bytes === 0)
376
+ return "0 B";
377
+ const k = 1024;
378
+ const sizes = ["B", "KB", "MB", "GB", "TB"];
379
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
380
+ return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`;
381
+ }
382
+ function getAllFiles(dirPath, arrayOfFiles = []) {
383
+ const files = (0, fs_1.readdirSync)(dirPath);
384
+ files.forEach((file) => {
385
+ // Skip .DS_Store and other hidden system files
386
+ if (file === '.DS_Store' || file.startsWith('._')) {
387
+ return;
388
+ }
389
+ const filePath = (0, path_1.join)(dirPath, file);
390
+ if ((0, fs_1.statSync)(filePath).isDirectory()) {
391
+ arrayOfFiles = getAllFiles(filePath, arrayOfFiles);
392
+ }
393
+ else {
394
+ arrayOfFiles.push(filePath);
395
+ }
396
+ });
397
+ return arrayOfFiles;
398
+ }
399
+ //# sourceMappingURL=bucket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bucket.js","sourceRoot":"","sources":["../../src/commands/bucket.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Program } from "@caporal/core";
2
+ export default function checkCommand(program: Program): void;
3
+ //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1 @@
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"}