@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;
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/commands/media.ts"],"names":[],"mappings":"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"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -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