@mediaproc/cli 0.5.2 โ†’ 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.
Files changed (78) hide show
  1. package/README.md +202 -1297
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +21 -12
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/add.d.ts.map +1 -1
  6. package/dist/commands/add.js +1 -0
  7. package/dist/commands/add.js.map +1 -1
  8. package/dist/commands/batch.d.ts +3 -0
  9. package/dist/commands/batch.d.ts.map +1 -0
  10. package/dist/commands/batch.js +269 -0
  11. package/dist/commands/batch.js.map +1 -0
  12. package/dist/commands/benchmark.d.ts +3 -0
  13. package/dist/commands/benchmark.d.ts.map +1 -0
  14. package/dist/commands/benchmark.js +124 -0
  15. package/dist/commands/benchmark.js.map +1 -0
  16. package/dist/commands/compare.d.ts +3 -0
  17. package/dist/commands/compare.d.ts.map +1 -0
  18. package/dist/commands/compare.js +102 -0
  19. package/dist/commands/compare.js.map +1 -0
  20. package/dist/commands/detect.d.ts +6 -0
  21. package/dist/commands/detect.d.ts.map +1 -0
  22. package/dist/commands/detect.js +90 -0
  23. package/dist/commands/detect.js.map +1 -0
  24. package/dist/commands/doctor.d.ts +3 -0
  25. package/dist/commands/doctor.d.ts.map +1 -0
  26. package/dist/commands/doctor.js +222 -0
  27. package/dist/commands/doctor.js.map +1 -0
  28. package/dist/commands/history.d.ts +15 -0
  29. package/dist/commands/history.d.ts.map +1 -0
  30. package/dist/commands/history.js +215 -0
  31. package/dist/commands/history.js.map +1 -0
  32. package/dist/commands/remove.js +1 -1
  33. package/dist/commands/remove.js.map +1 -1
  34. package/dist/commands/search.d.ts +3 -0
  35. package/dist/commands/search.d.ts.map +1 -0
  36. package/dist/commands/search.js +193 -0
  37. package/dist/commands/search.js.map +1 -0
  38. package/dist/commands/stats.d.ts +3 -0
  39. package/dist/commands/stats.d.ts.map +1 -0
  40. package/dist/commands/stats.js +155 -0
  41. package/dist/commands/stats.js.map +1 -0
  42. package/dist/commands/template.d.ts +3 -0
  43. package/dist/commands/template.d.ts.map +1 -0
  44. package/dist/commands/template.js +184 -0
  45. package/dist/commands/template.js.map +1 -0
  46. package/dist/commands/watch.d.ts +3 -0
  47. package/dist/commands/watch.d.ts.map +1 -0
  48. package/dist/commands/watch.js +106 -0
  49. package/dist/commands/watch.js.map +1 -0
  50. package/dist/commands/workspace.d.ts +3 -0
  51. package/dist/commands/workspace.d.ts.map +1 -0
  52. package/dist/commands/workspace.js +201 -0
  53. package/dist/commands/workspace.js.map +1 -0
  54. package/dist/utils/branding.d.ts +11 -0
  55. package/dist/utils/branding.d.ts.map +1 -0
  56. package/dist/utils/branding.js +59 -0
  57. package/dist/utils/branding.js.map +1 -0
  58. package/package.json +2 -2
  59. package/dist/commands/convert.d.ts +0 -7
  60. package/dist/commands/convert.d.ts.map +0 -1
  61. package/dist/commands/convert.js +0 -96
  62. package/dist/commands/convert.js.map +0 -1
  63. package/dist/commands/info.d.ts +0 -7
  64. package/dist/commands/info.d.ts.map +0 -1
  65. package/dist/commands/info.js +0 -117
  66. package/dist/commands/info.js.map +0 -1
  67. package/dist/commands/optimize.d.ts +0 -7
  68. package/dist/commands/optimize.d.ts.map +0 -1
  69. package/dist/commands/optimize.js +0 -196
  70. package/dist/commands/optimize.js.map +0 -1
  71. package/dist/commands/run.d.ts +0 -3
  72. package/dist/commands/run.d.ts.map +0 -1
  73. package/dist/commands/run.js +0 -16
  74. package/dist/commands/run.js.map +0 -1
  75. package/dist/commands/validate.d.ts +0 -3
  76. package/dist/commands/validate.d.ts.map +0 -1
  77. package/dist/commands/validate.js +0 -16
  78. package/dist/commands/validate.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const templateCommand: Command;
3
+ //# sourceMappingURL=template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,eAAO,MAAM,eAAe,SAKxB,CAAC"}
@@ -0,0 +1,184 @@
1
+ import { Command } from 'commander';
2
+ import * as fs from 'fs';
3
+ import * as path from 'path';
4
+ import * as os from 'os';
5
+ const TEMPLATES_FILE = path.join(os.homedir(), '.mediaproc', 'templates.json');
6
+ export const templateCommand = new Command()
7
+ .name('template')
8
+ .description('Manage command templates')
9
+ .action(() => {
10
+ templateCommand.help();
11
+ });
12
+ // Save template
13
+ templateCommand
14
+ .command('save')
15
+ .description('Save command as template')
16
+ .argument('<name>', 'Template name')
17
+ .argument('<command>', 'Command template (use {param} for parameters)')
18
+ .option('-d, --description <text>', 'Template description')
19
+ .action(async (name, command, options) => {
20
+ const templates = loadTemplates();
21
+ if (templates[name]) {
22
+ console.log(`\nโš ๏ธ Template "${name}" already exists. Use --force to overwrite\n`);
23
+ return;
24
+ }
25
+ // Extract parameters from command (anything in {braces})
26
+ const params = command.match(/\{([^}]+)\}/g)?.map(p => p.slice(1, -1)) || [];
27
+ templates[name] = {
28
+ name,
29
+ command,
30
+ description: options.description || '',
31
+ parameters: params,
32
+ createdAt: Date.now()
33
+ };
34
+ saveTemplates(templates);
35
+ console.log(`\nโœ“ Template "${name}" saved\n`);
36
+ console.log(`Command: ${command}`);
37
+ if (params.length > 0) {
38
+ console.log(`Parameters: ${params.join(', ')}`);
39
+ }
40
+ console.log('');
41
+ });
42
+ // Run template
43
+ templateCommand
44
+ .command('run')
45
+ .description('Run a saved template')
46
+ .argument('<name>', 'Template name')
47
+ .argument('[args...]', 'Template arguments (key=value)')
48
+ .action(async (name, args) => {
49
+ const templates = loadTemplates();
50
+ const template = templates[name];
51
+ if (!template) {
52
+ console.log(`\nโŒ Template "${name}" not found\n`);
53
+ console.log('๐Ÿ’ก List templates with: mediaproc template list\n');
54
+ return;
55
+ }
56
+ // Parse arguments
57
+ const params = {};
58
+ args.forEach(arg => {
59
+ const [key, value] = arg.split('=');
60
+ if (key && value) {
61
+ params[key] = value;
62
+ }
63
+ });
64
+ // Replace parameters in command
65
+ let command = template.command;
66
+ template.parameters.forEach(param => {
67
+ if (!params[param]) {
68
+ console.log(`\nโŒ Missing required parameter: ${param}\n`);
69
+ process.exit(1);
70
+ }
71
+ command = command.replace(`{${param}}`, params[param]);
72
+ });
73
+ console.log(`\n๐Ÿš€ Running template "${name}":\n`);
74
+ console.log(` ${command}\n`);
75
+ console.log('โš ๏ธ Note: Actual command execution requires full implementation\n');
76
+ console.log(`Run manually: mediaproc ${command}\n`);
77
+ });
78
+ // List templates
79
+ templateCommand
80
+ .command('list')
81
+ .description('List all saved templates')
82
+ .option('--json', 'Output as JSON')
83
+ .action(async (options) => {
84
+ const templates = loadTemplates();
85
+ const templateList = Object.values(templates);
86
+ if (templateList.length === 0) {
87
+ console.log('\n๐Ÿ“ฆ No templates saved\n');
88
+ console.log('๐Ÿ’ก Save a template with: mediaproc template save <name> <command>\n');
89
+ return;
90
+ }
91
+ if (options.json) {
92
+ console.log(JSON.stringify(templateList, null, 2));
93
+ return;
94
+ }
95
+ console.log('\n๐Ÿ“‹ Saved Templates\n');
96
+ console.log('โ”'.repeat(70));
97
+ templateList.forEach((template, index) => {
98
+ console.log(`\n${index + 1}. \x1b[36m${template.name}\x1b[0m`);
99
+ if (template.description) {
100
+ console.log(` ${template.description}`);
101
+ }
102
+ console.log(` Command: ${template.command}`);
103
+ if (template.parameters.length > 0) {
104
+ console.log(` Parameters: ${template.parameters.join(', ')}`);
105
+ }
106
+ console.log(` Created: ${new Date(template.createdAt).toLocaleDateString()}`);
107
+ });
108
+ console.log('\n' + 'โ”'.repeat(70));
109
+ console.log('\n๐Ÿ’ก Run a template: mediaproc template run <name> [args]\n');
110
+ });
111
+ // Delete template
112
+ templateCommand
113
+ .command('delete')
114
+ .description('Delete a saved template')
115
+ .argument('<name>', 'Template name')
116
+ .action(async (name) => {
117
+ const templates = loadTemplates();
118
+ if (!templates[name]) {
119
+ console.log(`\nโŒ Template "${name}" not found\n`);
120
+ return;
121
+ }
122
+ delete templates[name];
123
+ saveTemplates(templates);
124
+ console.log(`\nโœ“ Template "${name}" deleted\n`);
125
+ });
126
+ // Show template details
127
+ templateCommand
128
+ .command('show')
129
+ .description('Show template details')
130
+ .argument('<name>', 'Template name')
131
+ .action(async (name) => {
132
+ const templates = loadTemplates();
133
+ const template = templates[name];
134
+ if (!template) {
135
+ console.log(`\nโŒ Template "${name}" not found\n`);
136
+ return;
137
+ }
138
+ console.log('\n๐Ÿ“„ Template Details\n');
139
+ console.log('โ”'.repeat(60));
140
+ console.log(`\nName: ${template.name}`);
141
+ if (template.description) {
142
+ console.log(`Description: ${template.description}`);
143
+ }
144
+ console.log(`Command: ${template.command}`);
145
+ if (template.parameters.length > 0) {
146
+ console.log('\nParameters:');
147
+ template.parameters.forEach(param => {
148
+ console.log(` โ€ข ${param}`);
149
+ });
150
+ console.log('\nExample usage:');
151
+ const exampleArgs = template.parameters.map(p => `${p}=value`).join(' ');
152
+ console.log(` mediaproc template run ${template.name} ${exampleArgs}`);
153
+ }
154
+ console.log('\n' + 'โ”'.repeat(60) + '\n');
155
+ });
156
+ function loadTemplates() {
157
+ try {
158
+ ensureTemplatesDirectory();
159
+ if (!fs.existsSync(TEMPLATES_FILE)) {
160
+ return {};
161
+ }
162
+ const data = fs.readFileSync(TEMPLATES_FILE, 'utf-8');
163
+ return JSON.parse(data);
164
+ }
165
+ catch (error) {
166
+ return {};
167
+ }
168
+ }
169
+ function saveTemplates(templates) {
170
+ try {
171
+ ensureTemplatesDirectory();
172
+ fs.writeFileSync(TEMPLATES_FILE, JSON.stringify(templates, null, 2));
173
+ }
174
+ catch (error) {
175
+ console.error('Error saving templates:', error);
176
+ }
177
+ }
178
+ function ensureTemplatesDirectory() {
179
+ const dir = path.dirname(TEMPLATES_FILE);
180
+ if (!fs.existsSync(dir)) {
181
+ fs.mkdirSync(dir, { recursive: true });
182
+ }
183
+ }
184
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const watchCommand: Command;
3
+ //# sourceMappingURL=watch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,eAAO,MAAM,YAAY,SAsDrB,CAAC"}
@@ -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,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const workspaceCommand: Command;
3
+ //# sourceMappingURL=workspace.d.ts.map
@@ -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"}