@mediaproc/cli 0.1.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 (59) hide show
  1. package/LICENSE +72 -0
  2. package/README.md +947 -0
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +51 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/commands/add.d.ts +4 -0
  8. package/dist/commands/add.d.ts.map +1 -0
  9. package/dist/commands/add.js +170 -0
  10. package/dist/commands/add.js.map +1 -0
  11. package/dist/commands/config.d.ts +3 -0
  12. package/dist/commands/config.d.ts.map +1 -0
  13. package/dist/commands/config.js +50 -0
  14. package/dist/commands/config.js.map +1 -0
  15. package/dist/commands/help.d.ts +3 -0
  16. package/dist/commands/help.d.ts.map +1 -0
  17. package/dist/commands/help.js +55 -0
  18. package/dist/commands/help.js.map +1 -0
  19. package/dist/commands/init.d.ts +3 -0
  20. package/dist/commands/init.d.ts.map +1 -0
  21. package/dist/commands/init.js +57 -0
  22. package/dist/commands/init.js.map +1 -0
  23. package/dist/commands/list.d.ts +4 -0
  24. package/dist/commands/list.d.ts.map +1 -0
  25. package/dist/commands/list.js +30 -0
  26. package/dist/commands/list.js.map +1 -0
  27. package/dist/commands/remove.d.ts +4 -0
  28. package/dist/commands/remove.d.ts.map +1 -0
  29. package/dist/commands/remove.js +38 -0
  30. package/dist/commands/remove.js.map +1 -0
  31. package/dist/commands/run.d.ts +3 -0
  32. package/dist/commands/run.d.ts.map +1 -0
  33. package/dist/commands/run.js +16 -0
  34. package/dist/commands/run.js.map +1 -0
  35. package/dist/commands/validate.d.ts +3 -0
  36. package/dist/commands/validate.d.ts.map +1 -0
  37. package/dist/commands/validate.js +16 -0
  38. package/dist/commands/validate.js.map +1 -0
  39. package/dist/index.d.ts +4 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +3 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/plugin-api.d.ts +45 -0
  44. package/dist/plugin-api.d.ts.map +1 -0
  45. package/dist/plugin-api.js +2 -0
  46. package/dist/plugin-api.js.map +1 -0
  47. package/dist/plugin-manager.d.ts +31 -0
  48. package/dist/plugin-manager.d.ts.map +1 -0
  49. package/dist/plugin-manager.js +88 -0
  50. package/dist/plugin-manager.js.map +1 -0
  51. package/dist/plugin-registry.d.ts +27 -0
  52. package/dist/plugin-registry.d.ts.map +1 -0
  53. package/dist/plugin-registry.js +167 -0
  54. package/dist/plugin-registry.js.map +1 -0
  55. package/dist/types.d.ts +36 -0
  56. package/dist/types.d.ts.map +1 -0
  57. package/dist/types.js +2 -0
  58. package/dist/types.js.map +1 -0
  59. package/package.json +72 -0
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export declare function cli(): Promise<void>;
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAiBA,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAmCzC"}
package/dist/cli.js ADDED
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import chalk from 'chalk';
4
+ import { PluginManager } from './plugin-manager.js';
5
+ import { addCommand } from './commands/add.js';
6
+ import { removeCommand } from './commands/remove.js';
7
+ import { listCommand } from './commands/list.js';
8
+ import { helpCommand } from './commands/help.js';
9
+ import { initCommand } from './commands/init.js';
10
+ import { configCommand } from './commands/config.js';
11
+ import { runCommand } from './commands/run.js';
12
+ import { validateCommand } from './commands/validate.js';
13
+ const program = new Command();
14
+ const pluginManager = new PluginManager();
15
+ export async function cli() {
16
+ program
17
+ .name('mediaproc')
18
+ .description('Modern, plugin-based media processing CLI')
19
+ .version('1.0.0');
20
+ // Plugin management commands
21
+ addCommand(program, pluginManager);
22
+ removeCommand(program, pluginManager);
23
+ listCommand(program, pluginManager);
24
+ helpCommand(program);
25
+ // Project management commands
26
+ initCommand(program);
27
+ configCommand(program);
28
+ // Utility commands
29
+ runCommand(program);
30
+ validateCommand(program);
31
+ // Load and register all installed plugins
32
+ try {
33
+ await pluginManager.loadPlugins(program);
34
+ }
35
+ catch (error) {
36
+ const errorMessage = error instanceof Error ? error.message : String(error);
37
+ console.error(chalk.red('Error loading plugins:'), errorMessage);
38
+ }
39
+ // Parse arguments
40
+ program.parse(process.argv);
41
+ // Show help if no command provided
42
+ if (!process.argv.slice(2).length) {
43
+ program.outputHelp();
44
+ }
45
+ }
46
+ // Run CLI if this is the main module
47
+ cli().catch((error) => {
48
+ console.error(chalk.red('Fatal error:'), error);
49
+ process.exit(1);
50
+ });
51
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAE1C,MAAM,CAAC,KAAK,UAAU,GAAG;IACvB,OAAO;SACJ,IAAI,CAAC,WAAW,CAAC;SACjB,WAAW,CAAC,2CAA2C,CAAC;SACxD,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,6BAA6B;IAC7B,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACnC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACtC,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACpC,WAAW,CAAC,OAAO,CAAC,CAAC;IAErB,8BAA8B;IAC9B,WAAW,CAAC,OAAO,CAAC,CAAC;IACrB,aAAa,CAAC,OAAO,CAAC,CAAC;IAEvB,mBAAmB;IACnB,UAAU,CAAC,OAAO,CAAC,CAAC;IACpB,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzB,0CAA0C;IAC1C,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,YAAY,CAAC,CAAC;IACnE,CAAC;IAED,kBAAkB;IAClB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B,mCAAmC;IACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAClC,OAAO,CAAC,UAAU,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED,qCAAqC;AACrC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Command } from 'commander';
2
+ import type { PluginManager } from '../plugin-manager.js';
3
+ export declare function addCommand(program: Command, pluginManager: PluginManager): void;
4
+ //# sourceMappingURL=add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AA2B1D,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,GAAG,IAAI,CAiJ/E"}
@@ -0,0 +1,170 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import { execa } from 'execa';
4
+ import { join } from 'path';
5
+ import { resolvePluginPackage, PLUGIN_REGISTRY } from '../plugin-registry.js';
6
+ /**
7
+ * Detect if mediaproc core is installed globally or locally
8
+ */
9
+ function isGlobalInstall() {
10
+ // Check if we're running from global node_modules
11
+ const globalPaths = process.env.NODE_PATH?.split(':') || [];
12
+ const execPath = process.argv[1];
13
+ for (const globalPath of globalPaths) {
14
+ if (execPath.includes(globalPath)) {
15
+ return true;
16
+ }
17
+ }
18
+ // Check common global installation paths
19
+ const globalDirs = [
20
+ '/usr/local/lib/node_modules',
21
+ '/usr/lib/node_modules',
22
+ join(process.env.HOME || '', '.nvm'),
23
+ join(process.env.HOME || '', '.npm-global'),
24
+ ];
25
+ return globalDirs.some(dir => execPath.includes(dir));
26
+ }
27
+ export function addCommand(program, pluginManager) {
28
+ program
29
+ .command('add <plugin>')
30
+ .description('Install a mediaproc plugin')
31
+ .option('-g, --global', 'Force global installation')
32
+ .option('-l, --local', 'Force local installation')
33
+ .option('--save-dev', 'Save as dev dependency (local only)')
34
+ .action(async (plugin, options) => {
35
+ try {
36
+ // Resolve plugin name using registry
37
+ const pluginName = resolvePluginPackage(plugin);
38
+ const registryEntry = Object.values(PLUGIN_REGISTRY).find(e => e.package === pluginName);
39
+ const spinner = ora(`Installing ${chalk.cyan(pluginName)}...`).start();
40
+ // Show plugin info
41
+ if (registryEntry) {
42
+ spinner.info(chalk.dim(`Description: ${registryEntry.description}`));
43
+ if (registryEntry.systemRequirements && registryEntry.systemRequirements.length > 0) {
44
+ spinner.info(chalk.yellow(`System requirements: ${registryEntry.systemRequirements.join(', ')}`));
45
+ }
46
+ spinner.start(`Installing ${chalk.cyan(pluginName)}...`);
47
+ }
48
+ // Determine installation scope
49
+ let installGlobally = false;
50
+ if (options.global) {
51
+ installGlobally = true;
52
+ }
53
+ else if (options.local) {
54
+ installGlobally = false;
55
+ }
56
+ else {
57
+ // Auto-detect based on how core was installed
58
+ installGlobally = isGlobalInstall();
59
+ }
60
+ // Determine package manager (prefer pnpm, fallback to npm)
61
+ let packageManager = 'pnpm';
62
+ try {
63
+ await execa('pnpm', ['--version'], { stdio: 'pipe' });
64
+ }
65
+ catch {
66
+ packageManager = 'npm';
67
+ }
68
+ // Build install command
69
+ const args = [];
70
+ if (packageManager === 'pnpm') {
71
+ args.push(installGlobally ? 'add' : 'add');
72
+ if (installGlobally)
73
+ args.push('-g');
74
+ if (options.saveDev)
75
+ args.push('-D');
76
+ }
77
+ else {
78
+ args.push('install');
79
+ if (installGlobally)
80
+ args.push('-g');
81
+ if (options.saveDev)
82
+ args.push('--save-dev');
83
+ }
84
+ args.push(pluginName);
85
+ // Execute installation
86
+ await execa(packageManager, args, {
87
+ stdio: 'pipe',
88
+ cwd: installGlobally ? undefined : process.cwd(),
89
+ });
90
+ spinner.succeed(chalk.green(`✓ Successfully installed ${pluginName}`));
91
+ const scope = installGlobally ? 'globally' : 'locally';
92
+ console.log(chalk.dim(`\nInstalled ${scope} using ${packageManager}`));
93
+ // Try to load the plugin immediately if installed locally
94
+ if (!installGlobally) {
95
+ try {
96
+ const loadSpinner = ora('Loading plugin...').start();
97
+ const loaded = await pluginManager.loadPlugin(pluginName, program);
98
+ if (loaded) {
99
+ loadSpinner.succeed(chalk.green('Plugin loaded and ready to use'));
100
+ }
101
+ else {
102
+ loadSpinner.info(chalk.yellow('Plugin installed but requires restart to use'));
103
+ }
104
+ }
105
+ catch (loadError) {
106
+ // Not critical if loading fails - user can restart CLI
107
+ console.log(chalk.yellow('Note: Restart the CLI to use the new plugin'));
108
+ }
109
+ }
110
+ console.log(chalk.dim(`You can now use: ${chalk.white(`mediaproc ${plugin.replace('@mediaproc/', '')} <command>`)}`));
111
+ // Show example commands
112
+ if (registryEntry) {
113
+ console.log(chalk.dim('\nExample commands:'));
114
+ const shortName = registryEntry.name;
115
+ // Show category-specific examples
116
+ switch (registryEntry.package) {
117
+ case '@mediaproc/image':
118
+ console.log(chalk.dim(` mediaproc ${shortName} resize photo.jpg -w 800`));
119
+ console.log(chalk.dim(` mediaproc ${shortName} convert image.png --format webp`));
120
+ break;
121
+ case '@mediaproc/video':
122
+ console.log(chalk.dim(` mediaproc ${shortName} compress movie.mp4 --quality high`));
123
+ console.log(chalk.dim(` mediaproc ${shortName} transcode video.avi --format mp4`));
124
+ break;
125
+ case '@mediaproc/audio':
126
+ console.log(chalk.dim(` mediaproc ${shortName} convert song.wav --format mp3`));
127
+ console.log(chalk.dim(` mediaproc ${shortName} normalize audio.mp3`));
128
+ break;
129
+ case '@mediaproc/document':
130
+ console.log(chalk.dim(` mediaproc ${shortName} compress report.pdf --quality ebook`));
131
+ console.log(chalk.dim(` mediaproc ${shortName} ocr scanned.pdf`));
132
+ break;
133
+ case '@mediaproc/animation':
134
+ console.log(chalk.dim(` mediaproc ${shortName} gifify video.mp4 --fps 15`));
135
+ break;
136
+ case '@mediaproc/3d':
137
+ console.log(chalk.dim(` mediaproc ${shortName} optimize model.glb`));
138
+ console.log(chalk.dim(` mediaproc ${shortName} compress textures/`));
139
+ break;
140
+ case '@mediaproc/metadata':
141
+ console.log(chalk.dim(` mediaproc ${shortName} inspect video.mp4`));
142
+ console.log(chalk.dim(` mediaproc ${shortName} strip-metadata image.jpg`));
143
+ break;
144
+ case '@mediaproc/stream':
145
+ console.log(chalk.dim(` mediaproc ${shortName} pack video.mp4 --hls`));
146
+ break;
147
+ case '@mediaproc/ai':
148
+ console.log(chalk.dim(` mediaproc ${shortName} blur-faces video.mp4`));
149
+ console.log(chalk.dim(` mediaproc ${shortName} caption audio.wav`));
150
+ break;
151
+ case '@mediaproc/pipeline':
152
+ console.log(chalk.dim(` mediaproc ${shortName} run workflow.yaml`));
153
+ break;
154
+ }
155
+ }
156
+ }
157
+ catch (error) {
158
+ if (error instanceof Error && error.message.includes('Unknown plugin')) {
159
+ console.error(chalk.red(`\n${error.message}`));
160
+ }
161
+ else {
162
+ console.error(chalk.red(`\nFailed to install ${plugin}`));
163
+ const errorMessage = error instanceof Error ? error.message : String(error);
164
+ console.error(chalk.red(errorMessage));
165
+ }
166
+ process.exit(1);
167
+ }
168
+ });
169
+ }
170
+ //# sourceMappingURL=add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function configCommand(program: Command): void;
3
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqDpD"}
@@ -0,0 +1,50 @@
1
+ import chalk from 'chalk';
2
+ import { readFileSync, writeFileSync, existsSync } from 'fs';
3
+ import { join } from 'path';
4
+ export function configCommand(program) {
5
+ const configCmd = program
6
+ .command('config')
7
+ .description('Manage mediaproc configuration');
8
+ configCmd
9
+ .command('show')
10
+ .description('Show current configuration')
11
+ .action(() => {
12
+ const configPath = join(process.cwd(), 'mediaproc.config.json');
13
+ if (!existsSync(configPath)) {
14
+ console.log(chalk.yellow('No config file found. Run: mediaproc init'));
15
+ return;
16
+ }
17
+ const config = JSON.parse(readFileSync(configPath, 'utf-8'));
18
+ console.log(chalk.bold('\nCurrent Configuration:\n'));
19
+ console.log(JSON.stringify(config, null, 2));
20
+ });
21
+ configCmd
22
+ .command('set <key> <value>')
23
+ .description('Set a configuration value')
24
+ .action((key, value) => {
25
+ const configPath = join(process.cwd(), 'mediaproc.config.json');
26
+ if (!existsSync(configPath)) {
27
+ console.log(chalk.yellow('No config file found. Run: mediaproc init'));
28
+ return;
29
+ }
30
+ const config = JSON.parse(readFileSync(configPath, 'utf-8'));
31
+ // Simple dot notation support
32
+ const keys = key.split('.');
33
+ let current = config;
34
+ for (let i = 0; i < keys.length - 1; i++) {
35
+ if (!current[keys[i]])
36
+ current[keys[i]] = {};
37
+ current = current[keys[i]];
38
+ }
39
+ // Try to parse value as JSON, fallback to string
40
+ try {
41
+ current[keys[keys.length - 1]] = JSON.parse(value);
42
+ }
43
+ catch {
44
+ current[keys[keys.length - 1]] = value;
45
+ }
46
+ writeFileSync(configPath, JSON.stringify(config, null, 2));
47
+ console.log(chalk.green(`✓ Set ${key} = ${value}`));
48
+ });
49
+ }
50
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function helpCommand(program: Command): void;
3
+ //# sourceMappingURL=help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyDlD"}
@@ -0,0 +1,55 @@
1
+ import chalk from 'chalk';
2
+ import { getPluginsByCategory } from '../plugin-registry.js';
3
+ export function helpCommand(program) {
4
+ program
5
+ .command('plugins')
6
+ .description('Show available plugins and their descriptions')
7
+ .action(() => {
8
+ console.log(chalk.bold('\n📦 MediaProc Plugin Registry\n'));
9
+ const grouped = getPluginsByCategory();
10
+ // Core plugins
11
+ console.log(chalk.cyan.bold('■ Core Plugins') + chalk.dim(' (Essential media processing)'));
12
+ console.log('');
13
+ grouped.core.forEach((plugin) => {
14
+ console.log(chalk.green(` ${plugin.name.padEnd(12)}`), chalk.dim(plugin.package));
15
+ console.log(chalk.dim(` ${''.padEnd(12)} ${plugin.description}`));
16
+ if (plugin.systemRequirements && plugin.systemRequirements.length > 0) {
17
+ console.log(chalk.yellow(` ${''.padEnd(12)} Requires: ${plugin.systemRequirements.join(', ')}`));
18
+ }
19
+ console.log('');
20
+ });
21
+ // Advanced plugins
22
+ console.log(chalk.cyan.bold('■ Advanced Plugins') + chalk.dim(' (Production & enterprise features)'));
23
+ console.log('');
24
+ grouped.advanced.forEach((plugin) => {
25
+ console.log(chalk.green(` ${plugin.name.padEnd(12)}`), chalk.dim(plugin.package));
26
+ console.log(chalk.dim(` ${''.padEnd(12)} ${plugin.description}`));
27
+ if (plugin.systemRequirements && plugin.systemRequirements.length > 0) {
28
+ console.log(chalk.yellow(` ${''.padEnd(12)} Requires: ${plugin.systemRequirements.join(', ')}`));
29
+ }
30
+ console.log('');
31
+ });
32
+ // Future-proof plugins
33
+ console.log(chalk.cyan.bold('■ Future-Proof Plugins') + chalk.dim(' (AI & next-gen features)'));
34
+ console.log('');
35
+ grouped['future-proof'].forEach((plugin) => {
36
+ console.log(chalk.green(` ${plugin.name.padEnd(12)}`), chalk.dim(plugin.package));
37
+ console.log(chalk.dim(` ${''.padEnd(12)} ${plugin.description}`));
38
+ if (plugin.systemRequirements && plugin.systemRequirements.length > 0) {
39
+ console.log(chalk.yellow(` ${''.padEnd(12)} Requires: ${plugin.systemRequirements.join(', ')}`));
40
+ }
41
+ console.log('');
42
+ });
43
+ console.log(chalk.bold('Installation:'));
44
+ console.log(chalk.dim(` mediaproc add <plugin-name>`));
45
+ console.log(chalk.dim(` mediaproc add image # Install image processing`));
46
+ console.log(chalk.dim(` mediaproc add video # Install video processing`));
47
+ console.log(chalk.dim(` mediaproc add doc # Install document processing`));
48
+ console.log('');
49
+ console.log(chalk.bold('Options:'));
50
+ console.log(chalk.dim(` -g, --global # Install globally`));
51
+ console.log(chalk.dim(` -l, --local # Install locally`));
52
+ console.log('');
53
+ });
54
+ }
55
+ //# sourceMappingURL=help.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/commands/help.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function initCommand(program: Command): void;
3
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwDlD"}
@@ -0,0 +1,57 @@
1
+ import chalk from 'chalk';
2
+ import { writeFileSync, existsSync } from 'fs';
3
+ import { join } from 'path';
4
+ export function initCommand(program) {
5
+ program
6
+ .command('init')
7
+ .description('Initialize a mediaproc project with config file')
8
+ .option('--pipeline', 'Initialize with pipeline config')
9
+ .action((options) => {
10
+ const configPath = join(process.cwd(), 'mediaproc.config.json');
11
+ if (existsSync(configPath)) {
12
+ console.log(chalk.yellow('⚠️ mediaproc.config.json already exists'));
13
+ process.exit(1);
14
+ }
15
+ const config = options.pipeline ? {
16
+ version: '1.0',
17
+ plugins: [],
18
+ pipelines: {
19
+ example: {
20
+ name: 'Example Pipeline',
21
+ steps: [
22
+ {
23
+ plugin: 'image',
24
+ command: 'resize',
25
+ options: { width: 1920, height: 1080 }
26
+ },
27
+ {
28
+ plugin: 'image',
29
+ command: 'convert',
30
+ options: { format: 'webp', quality: 85 }
31
+ }
32
+ ]
33
+ }
34
+ }
35
+ } : {
36
+ version: '1.0',
37
+ plugins: [],
38
+ defaults: {
39
+ image: {
40
+ quality: 90,
41
+ format: 'webp'
42
+ },
43
+ video: {
44
+ codec: 'h264',
45
+ preset: 'medium'
46
+ }
47
+ }
48
+ };
49
+ writeFileSync(configPath, JSON.stringify(config, null, 2));
50
+ console.log(chalk.green('✓ Created mediaproc.config.json'));
51
+ console.log(chalk.dim('\nNext steps:'));
52
+ console.log(chalk.dim(' 1. Install plugins: mediaproc add image'));
53
+ console.log(chalk.dim(' 2. Customize config in mediaproc.config.json'));
54
+ console.log(chalk.dim(' 3. Run commands: mediaproc image resize photo.jpg'));
55
+ });
56
+ }
57
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,iDAAiD,CAAC;SAC9D,MAAM,CAAC,YAAY,EAAE,iCAAiC,CAAC;SACvD,MAAM,CAAC,CAAC,OAA+B,EAAE,EAAE;QAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,uBAAuB,CAAC,CAAC;QAEhE,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YAChC,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,EAAE;YACX,SAAS,EAAE;gBACT,OAAO,EAAE;oBACP,IAAI,EAAE,kBAAkB;oBACxB,KAAK,EAAE;wBACL;4BACE,MAAM,EAAE,OAAO;4BACf,OAAO,EAAE,QAAQ;4BACjB,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;yBACvC;wBACD;4BACE,MAAM,EAAE,OAAO;4BACf,OAAO,EAAE,SAAS;4BAClB,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;yBACzC;qBACF;iBACF;aACF;SACF,CAAC,CAAC,CAAC;YACF,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,EAAE;YACX,QAAQ,EAAE;gBACR,KAAK,EAAE;oBACL,OAAO,EAAE,EAAE;oBACX,MAAM,EAAE,MAAM;iBACf;gBACD,KAAK,EAAE;oBACL,KAAK,EAAE,MAAM;oBACb,MAAM,EAAE,QAAQ;iBACjB;aACF;SACF,CAAC;QAEF,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Command } from 'commander';
2
+ import type { PluginManager } from '../plugin-manager.js';
3
+ export declare function listCommand(program: Command, pluginManager: PluginManager): void;
4
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,GAAG,IAAI,CAkChF"}
@@ -0,0 +1,30 @@
1
+ import chalk from 'chalk';
2
+ export function listCommand(program, pluginManager) {
3
+ program
4
+ .command('list')
5
+ .alias('ls')
6
+ .description('List all installed mediaproc plugins')
7
+ .action(() => {
8
+ const plugins = pluginManager.getLoadedPlugins();
9
+ if (plugins.length === 0) {
10
+ console.log(chalk.yellow('No plugins installed'));
11
+ console.log(chalk.dim('\nInstall a plugin with: mediaproc add <plugin-name>'));
12
+ console.log(chalk.dim('Available plugins: image, video, audio, document, animation'));
13
+ return;
14
+ }
15
+ console.log(chalk.bold('\nInstalled Plugins:\n'));
16
+ plugins.forEach((pluginName, index) => {
17
+ const shortName = pluginName.replace('@mediaproc/', '');
18
+ const plugin = pluginManager.getPlugin(pluginName);
19
+ console.log(`${chalk.green('✓')} ${chalk.cyan(shortName)} ${chalk.dim(`(${pluginName})`)}`);
20
+ if (plugin) {
21
+ console.log(chalk.dim(` Version: ${plugin.version || 'unknown'}`));
22
+ }
23
+ if (index < plugins.length - 1) {
24
+ console.log('');
25
+ }
26
+ });
27
+ console.log('');
28
+ });
29
+ }
30
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,UAAU,WAAW,CAAC,OAAgB,EAAE,aAA4B;IACxE,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,KAAK,CAAC,IAAI,CAAC;SACX,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,OAAO,GAAG,aAAa,CAAC,gBAAgB,EAAE,CAAC;QAEjD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC,CAAC;YACtF,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAElD,OAAO,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;YACpC,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAEnD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC;YAE5F,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC;YACtE,CAAC;YAED,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Command } from 'commander';
2
+ import type { PluginManager } from '../plugin-manager.js';
3
+ export declare function removeCommand(program: Command, pluginManager: PluginManager): void;
4
+ //# sourceMappingURL=remove.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,GAAG,IAAI,CAsClF"}
@@ -0,0 +1,38 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import { execa } from 'execa';
4
+ export function removeCommand(program, pluginManager) {
5
+ program
6
+ .command('remove <plugin>')
7
+ .alias('rm')
8
+ .description('Uninstall a mediaproc plugin')
9
+ .option('-g, --global', 'Uninstall plugin globally')
10
+ .action(async (plugin, options) => {
11
+ const spinner = ora(`Removing ${chalk.cyan(plugin)}...`).start();
12
+ try {
13
+ // Ensure plugin name starts with @mediaproc/
14
+ const pluginName = plugin.startsWith('@mediaproc/')
15
+ ? plugin
16
+ : `@mediaproc/${plugin}`;
17
+ // Check if plugin is currently loaded
18
+ const wasLoaded = pluginManager.isPluginLoaded(pluginName);
19
+ if (wasLoaded) {
20
+ spinner.info(chalk.dim(`Plugin ${pluginName} is currently loaded`));
21
+ }
22
+ // Uninstall using pnpm
23
+ const removeCmd = options.global ? 'uninstall' : 'remove';
24
+ const globalFlag = options.global ? '-g' : '';
25
+ await execa('pnpm', [removeCmd, globalFlag, pluginName].filter(Boolean), {
26
+ stdio: 'pipe'
27
+ });
28
+ spinner.succeed(chalk.green(`✓ Successfully removed ${pluginName}`));
29
+ }
30
+ catch (error) {
31
+ spinner.fail(chalk.red(`Failed to remove ${plugin}`));
32
+ const errorMessage = error instanceof Error ? error.message : String(error);
33
+ console.error(chalk.red(errorMessage));
34
+ process.exit(1);
35
+ }
36
+ });
37
+ }
38
+ //# sourceMappingURL=remove.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAG9B,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,aAA4B;IAC1E,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,KAAK,CAAC,IAAI,CAAC;SACX,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,cAAc,EAAE,2BAA2B,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAA6B,EAAE,EAAE;QAC9D,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;QAEjE,IAAI,CAAC;YACH,6CAA6C;YAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC;gBACjD,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,cAAc,MAAM,EAAE,CAAC;YAE3B,sCAAsC;YACtC,MAAM,SAAS,GAAG,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,UAAU,sBAAsB,CAAC,CAAC,CAAC;YACtE,CAAC;YAED,uBAAuB;YACvB,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC1D,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAE9C,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;gBACvE,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;YAEH,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC,CAAC;QAEvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC,CAAC;YACtD,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function runCommand(program: Command): void;
3
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAajD"}
@@ -0,0 +1,16 @@
1
+ import chalk from 'chalk';
2
+ export function runCommand(program) {
3
+ program
4
+ .command('run <pipeline>')
5
+ .description('Run a media processing pipeline (YAML/JSON)')
6
+ .option('--dry-run', 'Preview pipeline without executing')
7
+ .option('-v, --verbose', 'Verbose output')
8
+ .action((pipeline, _options) => {
9
+ console.log(chalk.blue('🔄 Run pipeline command'));
10
+ console.log(chalk.dim(`Pipeline: ${pipeline}`));
11
+ console.log(chalk.yellow('\n⚠️ Pipeline execution requires @mediaproc/pipeline plugin'));
12
+ console.log(chalk.dim('Install: mediaproc add pipeline'));
13
+ console.log(chalk.dim('\nThis is a placeholder - implementation will be in pipeline plugin'));
14
+ });
15
+ }
16
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,6CAA6C,CAAC;SAC1D,MAAM,CAAC,WAAW,EAAE,oCAAoC,CAAC;SACzD,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;SACzC,MAAM,CAAC,CAAC,QAAgB,EAAE,QAAiD,EAAE,EAAE;QAC9E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,8DAA8D,CAAC,CAAC,CAAC;QAC1F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function validateCommand(program: Command): void;
3
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAatD"}
@@ -0,0 +1,16 @@
1
+ import chalk from 'chalk';
2
+ export function validateCommand(program) {
3
+ program
4
+ .command('validate <file>')
5
+ .description('Validate media file (check codec, format, integrity)')
6
+ .option('--strict', 'Enable strict validation')
7
+ .option('--format <format>', 'Expected format')
8
+ .action((file, _options) => {
9
+ console.log(chalk.blue('✓ Validate command'));
10
+ console.log(chalk.dim(`File: ${file}`));
11
+ console.log(chalk.yellow('\n⚠️ Validation requires @mediaproc/metadata plugin'));
12
+ console.log(chalk.dim('Install: mediaproc add metadata'));
13
+ console.log(chalk.dim('\nThis is a placeholder - implementation will be in metadata plugin'));
14
+ });
15
+ }
16
+ //# sourceMappingURL=validate.js.map