stow-cli 1.0.3 → 2.0.1

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 (63) hide show
  1. package/dist/{app-JPUDM4LJ.js → app-2A2CFVBC.js} +1 -1
  2. package/dist/app-2H4TLSN7.js +239 -0
  3. package/dist/app-DTW2LNXW.js +249 -0
  4. package/dist/app-HYCPA7GA.js +239 -0
  5. package/dist/app-IZGSPZPX.js +239 -0
  6. package/dist/app-UGUM75MC.js +239 -0
  7. package/dist/app-XPOEAZJC.js +239 -0
  8. package/dist/app-YITP5APT.js +233 -0
  9. package/dist/{backfill-QZTVNJZM.js → backfill-G57M2BRA.js} +3 -3
  10. package/dist/{buckets-JQKZ3PH3.js → buckets-NXIVHPW5.js} +2 -2
  11. package/dist/chunk-2AORPTQB.js +23 -0
  12. package/dist/chunk-5LU25QZK.js +17 -0
  13. package/dist/chunk-FEMMZ4YZ.js +125 -0
  14. package/dist/chunk-LYCXXF2T.js +79 -0
  15. package/dist/chunk-MHRMBH4Y.js +36 -0
  16. package/dist/{chunk-WAQSCS57.js → chunk-QF7PVPWQ.js} +1 -1
  17. package/dist/chunk-R5CCBTXZ.js +79 -0
  18. package/dist/chunk-TOADDO2F.js +23 -0
  19. package/dist/chunk-YRHPOFJT.js +115 -0
  20. package/dist/chunk-ZDVARBCV.js +43 -0
  21. package/dist/cli.d.ts +1 -0
  22. package/dist/cli.js +43 -43
  23. package/dist/delete-AECEJX5W.js +18 -0
  24. package/dist/delete-GEX3O7YS.js +14 -0
  25. package/dist/delete-KYOZEODD.js +18 -0
  26. package/dist/delete-OLOAJRRO.js +18 -0
  27. package/dist/delete-V4EY4UBG.js +18 -0
  28. package/dist/{drops-QXGTYB5E.js → drops-RD55IDZ4.js} +2 -2
  29. package/dist/{files-OCYICIAM.js → files-E662TXUP.js} +3 -3
  30. package/dist/{health-YMZTZUFX.js → health-6LWM7KAT.js} +3 -3
  31. package/dist/{jobs-6JY4SVV5.js → jobs-CLXYKZ3B.js} +4 -4
  32. package/dist/{jobs-OKKGKSIH.js → jobs-K3LTNETU.js} +5 -5
  33. package/dist/list-7A3VZA2T.js +97 -0
  34. package/dist/list-DHXVIMRI.js +94 -0
  35. package/dist/list-DJEAKEZJ.js +106 -0
  36. package/dist/list-DQRU6QHO.js +106 -0
  37. package/dist/list-I5A6LTHX.js +106 -0
  38. package/dist/list-KEQPJY7I.js +109 -0
  39. package/dist/list-Z3MPT6MI.js +109 -0
  40. package/dist/{maintenance-EZUHQK5Q.js → maintenance-7LOAGG6J.js} +6 -6
  41. package/dist/open-2YNHG3MA.js +15 -0
  42. package/dist/open-F73Q2OHD.js +15 -0
  43. package/dist/{profiles-GWLBEEIT.js → profiles-C6SCFXS6.js} +2 -2
  44. package/dist/{queues-EQX7EJZF.js → queues-2GJAMMNF.js} +4 -4
  45. package/dist/{search-2PXM6XQ6.js → search-DV4VV62L.js} +2 -2
  46. package/dist/{tags-LSVEIIUF.js → tags-URHK2YH5.js} +2 -2
  47. package/dist/upload-3NS5O3UL.js +120 -0
  48. package/dist/upload-5RIDB2C5.js +92 -0
  49. package/dist/upload-B2PGW3AN.js +125 -0
  50. package/dist/{upload-ESYKBYHA.js → upload-DQDBDIDI.js} +1 -1
  51. package/dist/upload-FGNGNPC3.js +93 -0
  52. package/dist/upload-HKUPWTK2.js +173 -0
  53. package/dist/upload-JDVSJVWK.js +173 -0
  54. package/dist/upload-K4H7ZVRW.js +98 -0
  55. package/dist/upload-MI6VFGTC.js +92 -0
  56. package/dist/whoami-2SLCNVKP.js +27 -0
  57. package/dist/whoami-5IYRZKWS.js +28 -0
  58. package/dist/{whoami-4UYMSRVP.js → whoami-754O5IML.js} +1 -1
  59. package/dist/whoami-DOMX3Z5K.js +28 -0
  60. package/dist/whoami-IPMCUEUH.js +27 -0
  61. package/dist/whoami-JSQA2IDN.js +27 -0
  62. package/dist/whoami-RKH5HHPR.js +27 -0
  63. package/package.json +1 -1
@@ -0,0 +1,92 @@
1
+ import {
2
+ createStow
3
+ } from "./chunk-JYOMHKFS.js";
4
+ import {
5
+ formatBytes
6
+ } from "./chunk-ZDVARBCV.js";
7
+ import "./chunk-OZ7QQTIZ.js";
8
+
9
+ // src/commands/upload.ts
10
+ import { existsSync, readFileSync } from "fs";
11
+ import { basename, resolve } from "path";
12
+ var CONTENT_TYPES = {
13
+ png: "image/png",
14
+ jpg: "image/jpeg",
15
+ jpeg: "image/jpeg",
16
+ gif: "image/gif",
17
+ webp: "image/webp",
18
+ svg: "image/svg+xml",
19
+ ico: "image/x-icon",
20
+ avif: "image/avif",
21
+ pdf: "application/pdf",
22
+ mp4: "video/mp4",
23
+ webm: "video/webm",
24
+ mov: "video/quicktime",
25
+ mp3: "audio/mpeg",
26
+ wav: "audio/wav",
27
+ ogg: "audio/ogg",
28
+ zip: "application/zip",
29
+ tar: "application/x-tar",
30
+ gz: "application/gzip",
31
+ txt: "text/plain",
32
+ json: "application/json",
33
+ xml: "application/xml",
34
+ html: "text/html",
35
+ css: "text/css",
36
+ js: "application/javascript"
37
+ };
38
+ function getContentType(filename) {
39
+ const ext = filename.toLowerCase().split(".").pop();
40
+ return CONTENT_TYPES[ext || ""] || "application/octet-stream";
41
+ }
42
+ function readFile(filePath) {
43
+ const resolvedPath = resolve(filePath);
44
+ if (!existsSync(resolvedPath)) {
45
+ console.error(`Error: File not found: ${filePath}`);
46
+ process.exit(1);
47
+ }
48
+ const buffer = readFileSync(resolvedPath);
49
+ const filename = basename(resolvedPath);
50
+ const contentType = getContentType(filename);
51
+ return { buffer, filename, contentType };
52
+ }
53
+ function printUploadResult(url, options, opts) {
54
+ if (options.quiet) {
55
+ console.log(url);
56
+ return;
57
+ }
58
+ console.error(opts?.deduped ? "Done! (deduped)" : "Done!");
59
+ console.log("");
60
+ console.log(url);
61
+ }
62
+ async function uploadDrop(filePath, options) {
63
+ const { buffer, filename, contentType } = readFile(filePath);
64
+ if (!options.quiet) {
65
+ console.error(`Uploading ${filename} (${formatBytes(buffer.length)})...`);
66
+ }
67
+ const stow = createStow();
68
+ const result = await stow.drop(buffer, {
69
+ filename,
70
+ contentType
71
+ });
72
+ printUploadResult(result.url, options);
73
+ }
74
+ async function uploadFile(filePath, options) {
75
+ const { buffer, filename, contentType } = readFile(filePath);
76
+ if (!options.quiet) {
77
+ console.error(`Uploading ${filename} (${formatBytes(buffer.length)})...`);
78
+ }
79
+ const stow = createStow();
80
+ const result = await stow.uploadFile(buffer, {
81
+ ...options.bucket ? { bucket: options.bucket } : {},
82
+ filename,
83
+ contentType
84
+ });
85
+ printUploadResult(result.url ?? result.key, options, {
86
+ deduped: result.deduped
87
+ });
88
+ }
89
+ export {
90
+ uploadDrop,
91
+ uploadFile
92
+ };
@@ -0,0 +1,27 @@
1
+ import {
2
+ formatBytes
3
+ } from "./chunk-ZDVARBCV.js";
4
+ import {
5
+ apiRequest
6
+ } from "./chunk-LYCXXF2T.js";
7
+ import "./chunk-OZ7QQTIZ.js";
8
+
9
+ // src/commands/whoami.ts
10
+ async function whoami() {
11
+ const data = await apiRequest("/api/whoami");
12
+ console.log(`Account: ${data.user.email}`);
13
+ console.log("");
14
+ console.log(`Buckets: ${data.stats.bucketCount}`);
15
+ console.log(`Files: ${data.stats.totalFiles}`);
16
+ console.log(`Storage: ${formatBytes(data.stats.totalBytes)}`);
17
+ if (data.key) {
18
+ console.log("");
19
+ console.log(`API Key: ${data.key.name}`);
20
+ console.log(`Scope: ${data.key.scope}`);
21
+ const perms = Object.entries(data.key.permissions).filter(([, v]) => v).map(([k]) => k);
22
+ console.log(`Perms: ${perms.join(", ")}`);
23
+ }
24
+ }
25
+ export {
26
+ whoami
27
+ };
@@ -0,0 +1,28 @@
1
+ import {
2
+ formatBytes
3
+ } from "./chunk-ELSDWMEB.js";
4
+ import {
5
+ createStow
6
+ } from "./chunk-5LU25QZK.js";
7
+ import "./chunk-TOADDO2F.js";
8
+
9
+ // src/commands/whoami.ts
10
+ async function whoami() {
11
+ const stow = createStow();
12
+ const data = await stow.whoami();
13
+ console.log(`Account: ${data.user.email}`);
14
+ console.log("");
15
+ console.log(`Buckets: ${data.stats.bucketCount}`);
16
+ console.log(`Files: ${data.stats.totalFiles}`);
17
+ console.log(`Storage: ${formatBytes(data.stats.totalBytes)}`);
18
+ if (data.key) {
19
+ console.log("");
20
+ console.log(`API Key: ${data.key.name}`);
21
+ console.log(`Scope: ${data.key.scope}`);
22
+ const perms = Object.entries(data.key.permissions).filter(([, v]) => v).map(([k]) => k);
23
+ console.log(`Perms: ${perms.join(", ")}`);
24
+ }
25
+ }
26
+ export {
27
+ whoami
28
+ };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  formatBytes
3
- } from "./chunk-ELSDWMEB.js";
3
+ } from "./chunk-ZDVARBCV.js";
4
4
  import {
5
5
  createStow
6
6
  } from "./chunk-JYOMHKFS.js";
@@ -0,0 +1,28 @@
1
+ import {
2
+ createStow
3
+ } from "./chunk-JYOMHKFS.js";
4
+ import {
5
+ formatBytes
6
+ } from "./chunk-ZDVARBCV.js";
7
+ import "./chunk-OZ7QQTIZ.js";
8
+
9
+ // src/commands/whoami.ts
10
+ async function whoami() {
11
+ const stow = createStow();
12
+ const data = await stow.whoami();
13
+ console.log(`Account: ${data.user.email}`);
14
+ console.log("");
15
+ console.log(`Buckets: ${data.stats.bucketCount}`);
16
+ console.log(`Files: ${data.stats.totalFiles}`);
17
+ console.log(`Storage: ${formatBytes(data.stats.totalBytes)}`);
18
+ if (data.key) {
19
+ console.log("");
20
+ console.log(`API Key: ${data.key.name}`);
21
+ console.log(`Scope: ${data.key.scope}`);
22
+ const perms = Object.entries(data.key.permissions).filter(([, v]) => v).map(([k]) => k);
23
+ console.log(`Perms: ${perms.join(", ")}`);
24
+ }
25
+ }
26
+ export {
27
+ whoami
28
+ };
@@ -0,0 +1,27 @@
1
+ import {
2
+ formatBytes
3
+ } from "./chunk-MHRMBH4Y.js";
4
+ import {
5
+ apiRequest
6
+ } from "./chunk-YRHPOFJT.js";
7
+ import "./chunk-2AORPTQB.js";
8
+
9
+ // src/commands/whoami.ts
10
+ async function whoami() {
11
+ const data = await apiRequest("/api/whoami");
12
+ console.log(`Account: ${data.user.email}`);
13
+ console.log("");
14
+ console.log(`Buckets: ${data.stats.bucketCount}`);
15
+ console.log(`Files: ${data.stats.totalFiles}`);
16
+ console.log(`Storage: ${formatBytes(data.stats.totalBytes)}`);
17
+ if (data.key) {
18
+ console.log("");
19
+ console.log(`API Key: ${data.key.name}`);
20
+ console.log(`Scope: ${data.key.scope}`);
21
+ const perms = Object.entries(data.key.permissions).filter(([, v]) => v).map(([k]) => k);
22
+ console.log(`Perms: ${perms.join(", ")}`);
23
+ }
24
+ }
25
+ export {
26
+ whoami
27
+ };
@@ -0,0 +1,27 @@
1
+ import {
2
+ formatBytes
3
+ } from "./chunk-ZDVARBCV.js";
4
+ import {
5
+ apiRequest
6
+ } from "./chunk-R5CCBTXZ.js";
7
+ import "./chunk-2AORPTQB.js";
8
+
9
+ // src/commands/whoami.ts
10
+ async function whoami() {
11
+ const data = await apiRequest("/api/whoami");
12
+ console.log(`Account: ${data.user.email}`);
13
+ console.log("");
14
+ console.log(`Buckets: ${data.stats.bucketCount}`);
15
+ console.log(`Files: ${data.stats.totalFiles}`);
16
+ console.log(`Storage: ${formatBytes(data.stats.totalBytes)}`);
17
+ if (data.key) {
18
+ console.log("");
19
+ console.log(`API Key: ${data.key.name}`);
20
+ console.log(`Scope: ${data.key.scope}`);
21
+ const perms = Object.entries(data.key.permissions).filter(([, v]) => v).map(([k]) => k);
22
+ console.log(`Perms: ${perms.join(", ")}`);
23
+ }
24
+ }
25
+ export {
26
+ whoami
27
+ };
@@ -0,0 +1,27 @@
1
+ import {
2
+ formatBytes
3
+ } from "./chunk-ZDVARBCV.js";
4
+ import {
5
+ apiRequest
6
+ } from "./chunk-FEMMZ4YZ.js";
7
+ import "./chunk-2AORPTQB.js";
8
+
9
+ // src/commands/whoami.ts
10
+ async function whoami() {
11
+ const data = await apiRequest("/api/whoami");
12
+ console.log(`Account: ${data.user.email}`);
13
+ console.log("");
14
+ console.log(`Buckets: ${data.stats.bucketCount}`);
15
+ console.log(`Files: ${data.stats.totalFiles}`);
16
+ console.log(`Storage: ${formatBytes(data.stats.totalBytes)}`);
17
+ if (data.key) {
18
+ console.log("");
19
+ console.log(`API Key: ${data.key.name}`);
20
+ console.log(`Scope: ${data.key.scope}`);
21
+ const perms = Object.entries(data.key.permissions).filter(([, v]) => v).map(([k]) => k);
22
+ console.log(`Perms: ${perms.join(", ")}`);
23
+ }
24
+ }
25
+ export {
26
+ whoami
27
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "stow-cli",
3
- "version": "1.0.3",
3
+ "version": "2.0.1",
4
4
  "type": "module",
5
5
  "description": "CLI for Stow file storage",
6
6
  "license": "MIT",