@mediaproc/cli 0.6.0 → 0.7.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.
- package/README.md +202 -1399
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +21 -12
- package/dist/cli.js.map +1 -1
- package/dist/commands/batch.d.ts +3 -0
- package/dist/commands/batch.d.ts.map +1 -0
- package/dist/commands/batch.js +269 -0
- package/dist/commands/batch.js.map +1 -0
- package/dist/commands/benchmark.d.ts +3 -0
- package/dist/commands/benchmark.d.ts.map +1 -0
- package/dist/commands/benchmark.js +124 -0
- package/dist/commands/benchmark.js.map +1 -0
- package/dist/commands/compare.d.ts +3 -0
- package/dist/commands/compare.d.ts.map +1 -0
- package/dist/commands/compare.js +102 -0
- package/dist/commands/compare.js.map +1 -0
- package/dist/commands/detect.d.ts +6 -0
- package/dist/commands/detect.d.ts.map +1 -0
- package/dist/commands/detect.js +90 -0
- package/dist/commands/detect.js.map +1 -0
- package/dist/commands/doctor.d.ts +3 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +222 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/history.d.ts +15 -0
- package/dist/commands/history.d.ts.map +1 -0
- package/dist/commands/history.js +215 -0
- package/dist/commands/history.js.map +1 -0
- package/dist/commands/search.d.ts +3 -0
- package/dist/commands/search.d.ts.map +1 -0
- package/dist/commands/search.js +193 -0
- package/dist/commands/search.js.map +1 -0
- package/dist/commands/stats.d.ts +3 -0
- package/dist/commands/stats.d.ts.map +1 -0
- package/dist/commands/stats.js +155 -0
- package/dist/commands/stats.js.map +1 -0
- package/dist/commands/template.d.ts +3 -0
- package/dist/commands/template.d.ts.map +1 -0
- package/dist/commands/template.js +184 -0
- package/dist/commands/template.js.map +1 -0
- package/dist/commands/watch.d.ts +3 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +106 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/commands/workspace.d.ts +3 -0
- package/dist/commands/workspace.d.ts.map +1 -0
- package/dist/commands/workspace.js +201 -0
- package/dist/commands/workspace.js.map +1 -0
- package/dist/utils/branding.d.ts +11 -0
- package/dist/utils/branding.d.ts.map +1 -0
- package/dist/utils/branding.js +59 -0
- package/dist/utils/branding.js.map +1 -0
- package/package.json +1 -1
- package/dist/commands/convert.d.ts +0 -7
- package/dist/commands/convert.d.ts.map +0 -1
- package/dist/commands/convert.js +0 -96
- package/dist/commands/convert.js.map +0 -1
- package/dist/commands/info.d.ts +0 -7
- package/dist/commands/info.d.ts.map +0 -1
- package/dist/commands/info.js +0 -117
- package/dist/commands/info.js.map +0 -1
- package/dist/commands/optimize.d.ts +0 -7
- package/dist/commands/optimize.d.ts.map +0 -1
- package/dist/commands/optimize.js +0 -196
- package/dist/commands/optimize.js.map +0 -1
- package/dist/commands/run.d.ts +0 -3
- package/dist/commands/run.d.ts.map +0 -1
- package/dist/commands/run.js +0 -16
- package/dist/commands/run.js.map +0 -1
- package/dist/commands/validate.d.ts +0 -3
- package/dist/commands/validate.d.ts.map +0 -1
- package/dist/commands/validate.js +0 -16
- package/dist/commands/validate.js.map +0 -1
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
export const watchCommand = new Command()
|
|
5
|
+
.name('watch')
|
|
6
|
+
.description('Monitor directories and auto-process files')
|
|
7
|
+
.argument('<directory>', 'Directory to watch')
|
|
8
|
+
.option('--on-image <cmd>', 'Command to run on new images')
|
|
9
|
+
.option('--on-video <cmd>', 'Command to run on new videos')
|
|
10
|
+
.option('--on-audio <cmd>', 'Command to run on new audio files')
|
|
11
|
+
.option('--on-any <cmd>', 'Command to run on any new file')
|
|
12
|
+
.option('--ignore <patterns>', 'Comma-separated patterns to ignore')
|
|
13
|
+
.option('--recursive', 'Watch subdirectories recursively')
|
|
14
|
+
.option('--debounce <ms>', 'Debounce delay in milliseconds', '1000')
|
|
15
|
+
.action(async (directory, options) => {
|
|
16
|
+
if (!fs.existsSync(directory)) {
|
|
17
|
+
console.log(`\n❌ Directory not found: ${directory}\n`);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const config = {
|
|
21
|
+
directory: path.resolve(directory),
|
|
22
|
+
rules: buildWatchRules(options),
|
|
23
|
+
ignorePatterns: options.ignore ? options.ignore.split(',') : [],
|
|
24
|
+
recursive: options.recursive || false
|
|
25
|
+
};
|
|
26
|
+
if (config.rules.length === 0) {
|
|
27
|
+
console.log('\n❌ No watch rules specified\n');
|
|
28
|
+
console.log('💡 Use options like --on-image, --on-video, --on-audio, or --on-any\n');
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
console.log('\n👁️ MediaProc File Watcher\n');
|
|
32
|
+
console.log('━'.repeat(60));
|
|
33
|
+
console.log(`\nWatching: ${config.directory}`);
|
|
34
|
+
console.log(`Recursive: ${config.recursive ? 'Yes' : 'No'}`);
|
|
35
|
+
console.log(`Debounce: ${options.debounce}ms\n`);
|
|
36
|
+
console.log('Rules:');
|
|
37
|
+
config.rules.forEach((rule, index) => {
|
|
38
|
+
console.log(` ${index + 1}. ${rule.pattern} → ${rule.command}`);
|
|
39
|
+
});
|
|
40
|
+
if (config.ignorePatterns.length > 0) {
|
|
41
|
+
console.log(`\nIgnoring: ${config.ignorePatterns.join(', ')}`);
|
|
42
|
+
}
|
|
43
|
+
console.log('\n' + '━'.repeat(60));
|
|
44
|
+
console.log('\n🚀 Watcher started (Ctrl+C to stop)\n');
|
|
45
|
+
console.log('⚠️ Note: Full implementation requires fs.watch with proper event handling\n');
|
|
46
|
+
console.log('Simulated watch mode - no actual monitoring implemented yet.\n');
|
|
47
|
+
// In real implementation, use fs.watch or chokidar
|
|
48
|
+
// fs.watch(directory, { recursive: config.recursive }, (eventType, filename) => {
|
|
49
|
+
// handleFileEvent(eventType, filename, config);
|
|
50
|
+
// });
|
|
51
|
+
});
|
|
52
|
+
// List active watchers
|
|
53
|
+
watchCommand
|
|
54
|
+
.command('list')
|
|
55
|
+
.description('List active watchers')
|
|
56
|
+
.action(async () => {
|
|
57
|
+
console.log('\n👁️ Active Watchers\n');
|
|
58
|
+
console.log('━'.repeat(60));
|
|
59
|
+
console.log('\nNo active watchers (requires daemon implementation)\n');
|
|
60
|
+
});
|
|
61
|
+
// Stop watcher
|
|
62
|
+
watchCommand
|
|
63
|
+
.command('stop')
|
|
64
|
+
.description('Stop a watcher')
|
|
65
|
+
.argument('[directory]', 'Directory being watched (stops all if not specified)')
|
|
66
|
+
.action(async (directory) => {
|
|
67
|
+
if (directory) {
|
|
68
|
+
console.log(`\n✓ Stopped watcher for: ${directory}\n`);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
console.log('\n✓ Stopped all watchers\n');
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
function buildWatchRules(options) {
|
|
75
|
+
const rules = [];
|
|
76
|
+
if (options.onImage) {
|
|
77
|
+
rules.push({
|
|
78
|
+
pattern: '\\.(jpg|jpeg|png|gif|webp|bmp|tiff|avif)$',
|
|
79
|
+
command: options.onImage,
|
|
80
|
+
debounce: parseInt(options.debounce)
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
if (options.onVideo) {
|
|
84
|
+
rules.push({
|
|
85
|
+
pattern: '\\.(mp4|webm|avi|mov|mkv|flv|wmv)$',
|
|
86
|
+
command: options.onVideo,
|
|
87
|
+
debounce: parseInt(options.debounce)
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
if (options.onAudio) {
|
|
91
|
+
rules.push({
|
|
92
|
+
pattern: '\\.(mp3|wav|flac|aac|ogg|m4a)$',
|
|
93
|
+
command: options.onAudio,
|
|
94
|
+
debounce: parseInt(options.debounce)
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
if (options.onAny) {
|
|
98
|
+
rules.push({
|
|
99
|
+
pattern: '.*',
|
|
100
|
+
command: options.onAny,
|
|
101
|
+
debounce: parseInt(options.debounce)
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
return rules;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=watch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,eAAO,MAAM,gBAAgB,SAKzB,CAAC"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
const WORKSPACE_DIR = '.mediaproc';
|
|
5
|
+
export const workspaceCommand = new Command()
|
|
6
|
+
.name('workspace')
|
|
7
|
+
.description('Manage project workspaces and batch processing rules')
|
|
8
|
+
.action(() => {
|
|
9
|
+
workspaceCommand.help();
|
|
10
|
+
});
|
|
11
|
+
// Create workspace
|
|
12
|
+
workspaceCommand
|
|
13
|
+
.command('create')
|
|
14
|
+
.description('Create a new workspace')
|
|
15
|
+
.argument('<name>', 'Workspace name')
|
|
16
|
+
.option('-d, --description <text>', 'Workspace description')
|
|
17
|
+
.option('--preset <type>', 'Use preset (web, mobile, print, social)')
|
|
18
|
+
.action(async (name, options) => {
|
|
19
|
+
if (fs.existsSync(path.join(WORKSPACE_DIR, `${name}.json`))) {
|
|
20
|
+
console.log(`\n⚠️ Workspace "${name}" already exists\n`);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const config = {
|
|
24
|
+
name,
|
|
25
|
+
description: options.description || '',
|
|
26
|
+
presets: getPresets(options.preset),
|
|
27
|
+
rules: [],
|
|
28
|
+
createdAt: Date.now(),
|
|
29
|
+
lastUsed: Date.now()
|
|
30
|
+
};
|
|
31
|
+
ensureWorkspaceDirectory();
|
|
32
|
+
fs.writeFileSync(path.join(WORKSPACE_DIR, `${name}.json`), JSON.stringify(config, null, 2));
|
|
33
|
+
console.log(`\n✓ Workspace "${name}" created\n`);
|
|
34
|
+
if (options.preset) {
|
|
35
|
+
console.log(`Using ${options.preset} preset settings`);
|
|
36
|
+
}
|
|
37
|
+
console.log('');
|
|
38
|
+
});
|
|
39
|
+
// Use workspace
|
|
40
|
+
workspaceCommand
|
|
41
|
+
.command('use')
|
|
42
|
+
.description('Set active workspace')
|
|
43
|
+
.argument('<name>', 'Workspace name')
|
|
44
|
+
.action(async (name) => {
|
|
45
|
+
const workspacePath = path.join(WORKSPACE_DIR, `${name}.json`);
|
|
46
|
+
if (!fs.existsSync(workspacePath)) {
|
|
47
|
+
console.log(`\n❌ Workspace "${name}" not found\n`);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
const config = JSON.parse(fs.readFileSync(workspacePath, 'utf-8'));
|
|
51
|
+
config.lastUsed = Date.now();
|
|
52
|
+
fs.writeFileSync(workspacePath, JSON.stringify(config, null, 2));
|
|
53
|
+
// Set as active workspace
|
|
54
|
+
fs.writeFileSync(path.join(WORKSPACE_DIR, 'active.txt'), name);
|
|
55
|
+
console.log(`\n✓ Workspace "${name}" is now active\n`);
|
|
56
|
+
});
|
|
57
|
+
// List workspaces
|
|
58
|
+
workspaceCommand
|
|
59
|
+
.command('list')
|
|
60
|
+
.description('List all workspaces')
|
|
61
|
+
.option('--json', 'Output as JSON')
|
|
62
|
+
.action(async (options) => {
|
|
63
|
+
const workspaces = listWorkspaces();
|
|
64
|
+
if (workspaces.length === 0) {
|
|
65
|
+
console.log('\n📦 No workspaces created\n');
|
|
66
|
+
console.log('💡 Create one with: mediaproc workspace create <name>\n');
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (options.json) {
|
|
70
|
+
console.log(JSON.stringify(workspaces, null, 2));
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const active = getActiveWorkspace();
|
|
74
|
+
console.log('\n📁 Workspaces\n');
|
|
75
|
+
console.log('━'.repeat(60));
|
|
76
|
+
workspaces.forEach((ws, index) => {
|
|
77
|
+
const isActive = ws.name === active;
|
|
78
|
+
const indicator = isActive ? '\x1b[32m●\x1b[0m' : ' ';
|
|
79
|
+
console.log(`\n${indicator} ${index + 1}. \x1b[36m${ws.name}\x1b[0m${isActive ? ' (active)' : ''}`);
|
|
80
|
+
if (ws.description) {
|
|
81
|
+
console.log(` ${ws.description}`);
|
|
82
|
+
}
|
|
83
|
+
console.log(` Rules: ${ws.rules.length}`);
|
|
84
|
+
console.log(` Last used: ${new Date(ws.lastUsed).toLocaleDateString()}`);
|
|
85
|
+
});
|
|
86
|
+
console.log('\n' + '━'.repeat(60) + '\n');
|
|
87
|
+
});
|
|
88
|
+
// Add rule
|
|
89
|
+
workspaceCommand
|
|
90
|
+
.command('add-rule')
|
|
91
|
+
.description('Add processing rule to workspace')
|
|
92
|
+
.argument('<workspace>', 'Workspace name')
|
|
93
|
+
.option('--pattern <pattern>', 'File pattern (e.g., "*.jpg")', '*')
|
|
94
|
+
.option('--command <cmd>', 'Command to run', 'image optimize')
|
|
95
|
+
.option('--args <json>', 'Command arguments as JSON')
|
|
96
|
+
.action(async (workspace, options) => {
|
|
97
|
+
const workspacePath = path.join(WORKSPACE_DIR, `${workspace}.json`);
|
|
98
|
+
if (!fs.existsSync(workspacePath)) {
|
|
99
|
+
console.log(`\n❌ Workspace "${workspace}" not found\n`);
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const config = JSON.parse(fs.readFileSync(workspacePath, 'utf-8'));
|
|
103
|
+
const rule = {
|
|
104
|
+
pattern: options.pattern,
|
|
105
|
+
command: options.command,
|
|
106
|
+
args: options.args ? JSON.parse(options.args) : {}
|
|
107
|
+
};
|
|
108
|
+
config.rules.push(rule);
|
|
109
|
+
fs.writeFileSync(workspacePath, JSON.stringify(config, null, 2));
|
|
110
|
+
console.log(`\n✓ Rule added to workspace "${workspace}"\n`);
|
|
111
|
+
console.log(`Pattern: ${rule.pattern}`);
|
|
112
|
+
console.log(`Command: ${rule.command}\n`);
|
|
113
|
+
});
|
|
114
|
+
// Process with workspace
|
|
115
|
+
workspaceCommand
|
|
116
|
+
.command('process')
|
|
117
|
+
.description('Process files using workspace rules')
|
|
118
|
+
.argument('<directory>', 'Directory to process')
|
|
119
|
+
.option('--workspace <name>', 'Workspace to use (defaults to active)')
|
|
120
|
+
.option('--dry-run', 'Show what would be processed without executing')
|
|
121
|
+
.action(async (directory, options) => {
|
|
122
|
+
const workspaceName = options.workspace || getActiveWorkspace();
|
|
123
|
+
if (!workspaceName) {
|
|
124
|
+
console.log('\n❌ No active workspace. Set one with: mediaproc workspace use <name>\n');
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const workspacePath = path.join(WORKSPACE_DIR, `${workspaceName}.json`);
|
|
128
|
+
const config = JSON.parse(fs.readFileSync(workspacePath, 'utf-8'));
|
|
129
|
+
console.log(`\n🚀 Processing with workspace "${workspaceName}"\n`);
|
|
130
|
+
console.log(`Directory: ${directory}`);
|
|
131
|
+
console.log(`Rules: ${config.rules.length}\n`);
|
|
132
|
+
if (options.dryRun) {
|
|
133
|
+
console.log('📄 Dry run - showing what would be processed:\n');
|
|
134
|
+
config.rules.forEach((rule, index) => {
|
|
135
|
+
console.log(`${index + 1}. Pattern: ${rule.pattern}`);
|
|
136
|
+
console.log(` Command: mediaproc ${rule.command}`);
|
|
137
|
+
});
|
|
138
|
+
console.log('');
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
console.log('⚠️ Note: Actual processing requires full implementation\n');
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
// Delete workspace
|
|
145
|
+
workspaceCommand
|
|
146
|
+
.command('delete')
|
|
147
|
+
.description('Delete a workspace')
|
|
148
|
+
.argument('<name>', 'Workspace name')
|
|
149
|
+
.action(async (name) => {
|
|
150
|
+
const workspacePath = path.join(WORKSPACE_DIR, `${name}.json`);
|
|
151
|
+
if (!fs.existsSync(workspacePath)) {
|
|
152
|
+
console.log(`\n❌ Workspace "${name}" not found\n`);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
fs.unlinkSync(workspacePath);
|
|
156
|
+
console.log(`\n✓ Workspace "${name}" deleted\n`);
|
|
157
|
+
});
|
|
158
|
+
function ensureWorkspaceDirectory() {
|
|
159
|
+
if (!fs.existsSync(WORKSPACE_DIR)) {
|
|
160
|
+
fs.mkdirSync(WORKSPACE_DIR, { recursive: true });
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
function listWorkspaces() {
|
|
164
|
+
if (!fs.existsSync(WORKSPACE_DIR)) {
|
|
165
|
+
return [];
|
|
166
|
+
}
|
|
167
|
+
const files = fs.readdirSync(WORKSPACE_DIR)
|
|
168
|
+
.filter(f => f.endsWith('.json') && f !== 'workspace.json');
|
|
169
|
+
return files.map(f => {
|
|
170
|
+
const data = fs.readFileSync(path.join(WORKSPACE_DIR, f), 'utf-8');
|
|
171
|
+
return JSON.parse(data);
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
function getActiveWorkspace() {
|
|
175
|
+
const activePath = path.join(WORKSPACE_DIR, 'active.txt');
|
|
176
|
+
if (fs.existsSync(activePath)) {
|
|
177
|
+
return fs.readFileSync(activePath, 'utf-8').trim();
|
|
178
|
+
}
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
function getPresets(preset) {
|
|
182
|
+
const presets = {
|
|
183
|
+
web: {
|
|
184
|
+
image: { format: 'webp', quality: 85, maxWidth: 1920 },
|
|
185
|
+
video: { codec: 'h264', quality: 'medium' }
|
|
186
|
+
},
|
|
187
|
+
mobile: {
|
|
188
|
+
image: { format: 'webp', quality: 80, maxWidth: 1080 },
|
|
189
|
+
video: { codec: 'h264', quality: 'low', maxWidth: 720 }
|
|
190
|
+
},
|
|
191
|
+
print: {
|
|
192
|
+
image: { format: 'tiff', quality: 100, dpi: 300 }
|
|
193
|
+
},
|
|
194
|
+
social: {
|
|
195
|
+
image: { format: 'jpg', quality: 90, maxWidth: 1200 },
|
|
196
|
+
video: { codec: 'h264', quality: 'high', maxDuration: 60 }
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
return preset ? presets[preset] || {} : {};
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=workspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/commands/workspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Show CLI branding footer with documentation and GitHub links
|
|
3
|
+
*/
|
|
4
|
+
export declare function showBranding(): void;
|
|
5
|
+
/**
|
|
6
|
+
* Show plugin branding footer with version
|
|
7
|
+
* @param pluginName - Name of the plugin (e.g., 'image', 'video', 'audio')
|
|
8
|
+
* @param pluginPath - Path to plugin's package.json
|
|
9
|
+
*/
|
|
10
|
+
export declare function showPluginBranding(pluginName: string, pluginPath: string): void;
|
|
11
|
+
//# sourceMappingURL=branding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branding.d.ts","sourceRoot":"","sources":["../../src/utils/branding.ts"],"names":[],"mappings":"AAmCA;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAOnC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAO/E"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
2
|
+
import { join, dirname } from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
/**
|
|
5
|
+
* Get version from package.json
|
|
6
|
+
*/
|
|
7
|
+
function getVersion(packagePath) {
|
|
8
|
+
try {
|
|
9
|
+
const packageJson = JSON.parse(readFileSync(packagePath, 'utf-8'));
|
|
10
|
+
return packageJson.version || '0.0.0';
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return '0.0.0';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Get CLI version from root package.json
|
|
18
|
+
*/
|
|
19
|
+
function getCliVersion() {
|
|
20
|
+
try {
|
|
21
|
+
// For ES modules, use import.meta.url
|
|
22
|
+
if (typeof import.meta.url !== 'undefined') {
|
|
23
|
+
const currentDir = dirname(fileURLToPath(import.meta.url));
|
|
24
|
+
const packagePath = join(currentDir, '../../package.json');
|
|
25
|
+
return getVersion(packagePath);
|
|
26
|
+
}
|
|
27
|
+
// Fallback: try from process.cwd()
|
|
28
|
+
const packagePath = join(process.cwd(), 'package.json');
|
|
29
|
+
return getVersion(packagePath);
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return '0.6.0'; // Fallback version
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Show CLI branding footer with documentation and GitHub links
|
|
37
|
+
*/
|
|
38
|
+
export function showBranding() {
|
|
39
|
+
const version = getCliVersion();
|
|
40
|
+
console.log('\n' + '─'.repeat(60));
|
|
41
|
+
console.log(` 💙 Powered by MediaProc CLI v${version}`);
|
|
42
|
+
console.log(' 📚 Documentation: \x1b[36mhttps://docs-mediaproc.vercel.app/\x1b[0m');
|
|
43
|
+
console.log(' ⭐ Star us: \x1b[36mhttps://github.com/0xshariq/mediaproc-cli\x1b[0m');
|
|
44
|
+
console.log('─'.repeat(60) + '\n');
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Show plugin branding footer with version
|
|
48
|
+
* @param pluginName - Name of the plugin (e.g., 'image', 'video', 'audio')
|
|
49
|
+
* @param pluginPath - Path to plugin's package.json
|
|
50
|
+
*/
|
|
51
|
+
export function showPluginBranding(pluginName, pluginPath) {
|
|
52
|
+
const version = getVersion(pluginPath);
|
|
53
|
+
console.log('\n' + '─'.repeat(60));
|
|
54
|
+
console.log(` 💙 ${pluginName.charAt(0).toUpperCase() + pluginName.slice(1)} Plugin v${version} · Powered by MediaProc`);
|
|
55
|
+
console.log(' 📚 Documentation: \x1b[36mhttps://docs-mediaproc.vercel.app/\x1b[0m');
|
|
56
|
+
console.log(' ⭐ Star us: \x1b[36mhttps://github.com/0xshariq/mediaproc-cli\x1b[0m');
|
|
57
|
+
console.log('─'.repeat(60) + '\n');
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=branding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branding.js","sourceRoot":"","sources":["../../src/utils/branding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC;;GAEG;AACH,SAAS,UAAU,CAAC,WAAmB;IACrC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QACnE,OAAO,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,aAAa;IACpB,IAAI,CAAC;QACH,sCAAsC;QACtC,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;YAC3D,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QACD,mCAAmC;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;QACxD,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC,CAAC,mBAAmB;IACrC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAkB,EAAE,UAAkB;IACvE,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,QAAQ,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,OAAO,yBAAyB,CAAC,CAAC;IAC1H,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACrC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import type { PluginManager } from '../plugin-manager.js';
|
|
3
|
-
/**
|
|
4
|
-
* Universal file conversion command - shows suggestions based on detected file type
|
|
5
|
-
*/
|
|
6
|
-
export declare function convertCommand(program: Command, pluginManager?: PluginManager): void;
|
|
7
|
-
//# sourceMappingURL=convert.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/commands/convert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAyFpF"}
|
package/dist/commands/convert.js
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import { existsSync } from 'fs';
|
|
3
|
-
import { extname } from 'path';
|
|
4
|
-
/**
|
|
5
|
-
* Universal file conversion command - shows suggestions based on detected file type
|
|
6
|
-
*/
|
|
7
|
-
export function convertCommand(program, pluginManager) {
|
|
8
|
-
program
|
|
9
|
-
.command('convert <input> <output>')
|
|
10
|
-
.description('Universal file conversion - auto-detects and converts between formats')
|
|
11
|
-
.option('-q, --quality <number>', 'Output quality (for lossy formats)', '85')
|
|
12
|
-
.option('--preset <preset>', 'Conversion preset (fast, balanced, quality)')
|
|
13
|
-
.option('-v, --verbose', 'Verbose output')
|
|
14
|
-
.action((input, output, options) => {
|
|
15
|
-
if (!existsSync(input)) {
|
|
16
|
-
console.error(chalk.red(`✗ Input file not found: ${input}`));
|
|
17
|
-
process.exit(1);
|
|
18
|
-
}
|
|
19
|
-
const inputExt = extname(input).toLowerCase().slice(1);
|
|
20
|
-
const outputExt = extname(output).toLowerCase().slice(1);
|
|
21
|
-
// Detect media type and suggest appropriate plugin
|
|
22
|
-
const imageExts = ['jpg', 'jpeg', 'png', 'webp', 'gif', 'bmp', 'tiff', 'avif', 'heif'];
|
|
23
|
-
const videoExts = ['mp4', 'webm', 'mkv', 'avi', 'mov', 'flv', 'wmv', 'm4v'];
|
|
24
|
-
const audioExts = ['mp3', 'wav', 'ogg', 'flac', 'aac', 'm4a', 'wma', 'opus'];
|
|
25
|
-
const documentExts = ['pdf', 'docx', 'pptx', 'txt', 'md'];
|
|
26
|
-
const modelExts = ['gltf', 'glb', 'obj', 'fbx'];
|
|
27
|
-
let pluginName = '';
|
|
28
|
-
let mediaType = '';
|
|
29
|
-
let suggestedCommand = '';
|
|
30
|
-
if (imageExts.includes(inputExt)) {
|
|
31
|
-
pluginName = 'image';
|
|
32
|
-
mediaType = 'Image';
|
|
33
|
-
suggestedCommand = `mediaproc image convert ${input} ${output}`;
|
|
34
|
-
if (options.quality) {
|
|
35
|
-
suggestedCommand += ` --quality ${options.quality}`;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
else if (videoExts.includes(inputExt)) {
|
|
39
|
-
pluginName = 'video';
|
|
40
|
-
mediaType = 'Video';
|
|
41
|
-
suggestedCommand = `mediaproc video convert ${input} ${output}`;
|
|
42
|
-
}
|
|
43
|
-
else if (audioExts.includes(inputExt)) {
|
|
44
|
-
pluginName = 'audio';
|
|
45
|
-
mediaType = 'Audio';
|
|
46
|
-
suggestedCommand = `mediaproc audio convert ${input} ${output}`;
|
|
47
|
-
}
|
|
48
|
-
else if (documentExts.includes(inputExt)) {
|
|
49
|
-
pluginName = 'document';
|
|
50
|
-
mediaType = 'Document';
|
|
51
|
-
suggestedCommand = `mediaproc document convert ${input} ${output}`;
|
|
52
|
-
}
|
|
53
|
-
else if (modelExts.includes(inputExt)) {
|
|
54
|
-
pluginName = '3d';
|
|
55
|
-
mediaType = '3D Model';
|
|
56
|
-
suggestedCommand = `mediaproc 3d convert ${input} ${output}`;
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
console.error(chalk.red(`✗ Unsupported input format: .${inputExt}`));
|
|
60
|
-
console.log(chalk.yellow('\n💡 Supported formats:'));
|
|
61
|
-
console.log(chalk.dim(' Images: jpg, png, webp, gif, bmp, tiff, avif, heif'));
|
|
62
|
-
console.log(chalk.dim(' Videos: mp4, webm, mkv, avi, mov, flv, wmv'));
|
|
63
|
-
console.log(chalk.dim(' Audio: mp3, wav, ogg, flac, aac, m4a, wma, opus'));
|
|
64
|
-
console.log(chalk.dim(' Documents: pdf, docx, pptx, txt, md'));
|
|
65
|
-
console.log(chalk.dim(' 3D Models: gltf, glb, obj, fbx'));
|
|
66
|
-
process.exit(1);
|
|
67
|
-
}
|
|
68
|
-
console.log('');
|
|
69
|
-
console.log(chalk.blue(`🔄 ${mediaType} Conversion`));
|
|
70
|
-
console.log(chalk.dim('─'.repeat(50)));
|
|
71
|
-
console.log(chalk.cyan('Input: ') + input + chalk.dim(` (.${inputExt})`));
|
|
72
|
-
console.log(chalk.cyan('Output: ') + output + chalk.dim(` (.${outputExt})`));
|
|
73
|
-
console.log(chalk.cyan('Plugin: ') + chalk.yellow(pluginName));
|
|
74
|
-
console.log('');
|
|
75
|
-
// Check plugin status
|
|
76
|
-
const pluginPackage = `@mediaproc/${pluginName}`;
|
|
77
|
-
const isLoaded = pluginManager?.getPlugin(pluginPackage) !== undefined;
|
|
78
|
-
const isInstalled = isLoaded; // If it can be imported, it's installed
|
|
79
|
-
console.log(chalk.yellow('💡 Suggested command:'));
|
|
80
|
-
console.log(chalk.cyan(` ${suggestedCommand}`));
|
|
81
|
-
console.log('');
|
|
82
|
-
if (isLoaded) {
|
|
83
|
-
console.log(chalk.green(`✓ ${pluginName} plugin is loaded - command is ready`));
|
|
84
|
-
}
|
|
85
|
-
else if (isInstalled) {
|
|
86
|
-
console.log(chalk.yellow(`⚠️ ${pluginName} plugin is installed but not loaded`));
|
|
87
|
-
console.log(chalk.dim(` Load it: ${chalk.cyan(`mediaproc add ${pluginName}`)}`));
|
|
88
|
-
}
|
|
89
|
-
else {
|
|
90
|
-
console.log(chalk.red(`✗ ${pluginName} plugin not installed`));
|
|
91
|
-
console.log(chalk.dim(` Install: ${chalk.cyan(`mediaproc add ${pluginName}`)}`));
|
|
92
|
-
}
|
|
93
|
-
console.log('');
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=convert.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/commands/convert.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/info.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import type { PluginManager } from '../plugin-manager.js';
|
|
3
|
-
/**
|
|
4
|
-
* Universal info command - shows basic file information and suggests plugin for detailed info
|
|
5
|
-
*/
|
|
6
|
-
export declare function infoCommand(program: Command, pluginManager?: PluginManager): void;
|
|
7
|
-
//# sourceMappingURL=info.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CA6GjF"}
|