@agendapanda/cli 0.8.3 → 0.9.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.
@@ -1,7 +1,7 @@
1
1
  import chalk from 'chalk';
2
2
  import { readFile } from 'fs/promises';
3
3
  import { api, ApiError } from '../lib/api.js';
4
- import { initJsonMode, isJsonMode, outputError, outputMutation } from '../lib/output.js';
4
+ import { initJsonMode, isJsonMode, outputError, outputItems, outputMutation, outputTable } from '../lib/output.js';
5
5
  import { filenameFromPath, guessMimeTypeFromPath } from '../lib/media.js';
6
6
  export function registerMediaCommands(program) {
7
7
  const media = program.command('media').description('Manage media files');
@@ -46,5 +46,70 @@ export function registerMediaCommands(program) {
46
46
  process.exit(1);
47
47
  }
48
48
  });
49
+ // ap media list
50
+ media
51
+ .command('list')
52
+ .description('List uploaded media files')
53
+ .option('--json', 'Output as JSON')
54
+ .action(async (options) => {
55
+ initJsonMode(options);
56
+ try {
57
+ const data = await api.get('/api/media');
58
+ if (isJsonMode(options)) {
59
+ outputItems(data.media, options);
60
+ }
61
+ else {
62
+ outputTable(['ID', 'FILENAME', 'TYPE', 'SIZE', 'CREATED'], data.media.map((m) => [
63
+ m.id.slice(0, 8),
64
+ m.filename,
65
+ m.content_type,
66
+ formatBytes(m.size),
67
+ m.created_at,
68
+ ]));
69
+ }
70
+ }
71
+ catch (err) {
72
+ if (err instanceof ApiError) {
73
+ outputError(err.message, err.code);
74
+ }
75
+ else {
76
+ outputError(String(err));
77
+ }
78
+ process.exit(1);
79
+ }
80
+ });
81
+ // ap media delete
82
+ media
83
+ .command('delete <id>')
84
+ .description('Delete a media file')
85
+ .option('--json', 'Output as JSON')
86
+ .action(async (id, options) => {
87
+ initJsonMode(options);
88
+ try {
89
+ await api.delete('/api/media/' + id);
90
+ if (isJsonMode(options)) {
91
+ outputMutation({ id }, options);
92
+ }
93
+ else {
94
+ console.log(chalk.green('✓') + ' Media deleted.');
95
+ }
96
+ }
97
+ catch (err) {
98
+ if (err instanceof ApiError) {
99
+ outputError(err.message, err.code);
100
+ }
101
+ else {
102
+ outputError(String(err));
103
+ }
104
+ process.exit(1);
105
+ }
106
+ });
107
+ }
108
+ function formatBytes(bytes) {
109
+ if (bytes < 1024)
110
+ return bytes + ' B';
111
+ if (bytes < 1024 * 1024)
112
+ return (bytes / 1024).toFixed(1) + ' KB';
113
+ return (bytes / (1024 * 1024)).toFixed(1) + ' MB';
49
114
  }
50
115
  //# sourceMappingURL=media.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/commands/media.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAG1E,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAEzE,kBAAkB;IAClB,KAAK;SACH,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,+BAA+B,CAAC;SAC5C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAC/B,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC;YACJ,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACf,WAAW,CACV,yEAAyE,EACzE,wBAAwB,CACxB,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;YAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAExC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAoB,mBAAmB,EAAE,QAAQ,CAAC,CAAC;YAElF,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzB,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;gBACzC,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBACjD,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,IAAI,QAAQ,CAAC,CAAC;YACjD,CAAC;QACF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;gBAC7B,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACP,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1B,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/commands/media.ts"],"names":[],"mappings":"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"}
@@ -70,6 +70,14 @@ export interface ConnectionHealth {
70
70
  token_expires_at: number | null;
71
71
  expires_in_seconds: number | null;
72
72
  }
73
+ export interface MediaItem {
74
+ id: string;
75
+ filename: string;
76
+ content_type: string;
77
+ size: number;
78
+ url: string;
79
+ created_at: string;
80
+ }
73
81
  export interface MediaUploadResult {
74
82
  id: string;
75
83
  url: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agendapanda/cli",
3
- "version": "0.8.3",
3
+ "version": "0.9.0",
4
4
  "description": "Agenda Panda CLI - schedule social media posts from the terminal",
5
5
  "license": "MIT",
6
6
  "author": "Agenda Panda <hello@agendapanda.com> (https://agendapanda.com)",