@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.
- package/LICENSE +72 -0
- package/README.md +947 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +51 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/add.d.ts +4 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +170 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +50 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/help.d.ts +3 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +55 -0
- package/dist/commands/help.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +57 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts +4 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +30 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/remove.d.ts +4 -0
- package/dist/commands/remove.d.ts.map +1 -0
- package/dist/commands/remove.js +38 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/run.d.ts +3 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +16 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/validate.d.ts +3 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +16 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin-api.d.ts +45 -0
- package/dist/plugin-api.d.ts.map +1 -0
- package/dist/plugin-api.js +2 -0
- package/dist/plugin-api.js.map +1 -0
- package/dist/plugin-manager.d.ts +31 -0
- package/dist/plugin-manager.d.ts.map +1 -0
- package/dist/plugin-manager.js +88 -0
- package/dist/plugin-manager.js.map +1 -0
- package/dist/plugin-registry.d.ts +27 -0
- package/dist/plugin-registry.d.ts.map +1 -0
- package/dist/plugin-registry.js +167 -0
- package/dist/plugin-registry.js.map +1 -0
- package/dist/types.d.ts +36 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +72 -0
package/dist/cli.d.ts
ADDED
|
@@ -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
|
package/dist/cli.js.map
ADDED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,MAAM,SAAS,GAAG,OAAO;SACtB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gCAAgC,CAAC,CAAC;IAEjD,SAAS;SACN,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4BAA4B,CAAC;SACzC,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,uBAAuB,CAAC,CAAC;QAEhE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEL,SAAS;SACN,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,uBAAuB,CAAC,CAAC;QAEhE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAE7D,8BAA8B;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,OAAO,GAAQ,MAAM,CAAC;QAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YAC7C,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;QAED,iDAAiD;QACjD,IAAI,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACzC,CAAC;QAED,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|