@mediaproc/cli 0.2.0 ā 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +169 -18
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +13 -12
- package/dist/cli.js.map +1 -1
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +108 -39
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +70 -27
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/convert.d.ts +3 -2
- package/dist/commands/convert.d.ts.map +1 -1
- package/dist/commands/convert.js +59 -37
- package/dist/commands/convert.js.map +1 -1
- package/dist/commands/help.js +2 -2
- package/dist/commands/help.js.map +1 -1
- package/dist/commands/info.d.ts +3 -2
- package/dist/commands/info.d.ts.map +1 -1
- package/dist/commands/info.js +17 -3
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +25 -47
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +60 -13
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/optimize.d.ts +3 -2
- package/dist/commands/optimize.d.ts.map +1 -1
- package/dist/commands/optimize.js +25 -19
- package/dist/commands/optimize.js.map +1 -1
- package/dist/commands/plugins.d.ts +4 -0
- package/dist/commands/plugins.d.ts.map +1 -0
- package/dist/commands/plugins.js +79 -0
- package/dist/commands/plugins.js.map +1 -0
- package/dist/commands/remove.d.ts.map +1 -1
- package/dist/commands/remove.js +73 -10
- package/dist/commands/remove.js.map +1 -1
- package/dist/config-manager.d.ts +110 -0
- package/dist/config-manager.d.ts.map +1 -0
- package/dist/config-manager.js +201 -0
- package/dist/config-manager.js.map +1 -0
- package/dist/plugin-manager.d.ts +25 -10
- package/dist/plugin-manager.d.ts.map +1 -1
- package/dist/plugin-manager.js +51 -49
- package/dist/plugin-manager.js.map +1 -1
- package/dist/plugin-registry.d.ts +9 -0
- package/dist/plugin-registry.d.ts.map +1 -1
- package/dist/plugin-registry.js +41 -6
- package/dist/plugin-registry.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/list.js
CHANGED
|
@@ -1,26 +1,41 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
|
+
import { detectPluginType } from '../plugin-registry.js';
|
|
2
3
|
export function listCommand(program, pluginManager) {
|
|
3
4
|
program
|
|
4
5
|
.command('list')
|
|
5
6
|
.alias('ls')
|
|
6
|
-
.description('List
|
|
7
|
+
.description('List installed mediaproc plugins')
|
|
7
8
|
.action(() => {
|
|
8
|
-
const
|
|
9
|
-
|
|
9
|
+
const loadedPlugins = pluginManager.getLoadedPlugins();
|
|
10
|
+
const installedPlugins = pluginManager.getInstalledPlugins();
|
|
11
|
+
// Find plugins that are installed but not loaded
|
|
12
|
+
const notLoaded = installedPlugins.filter(p => !loadedPlugins.includes(p));
|
|
13
|
+
if (loadedPlugins.length === 0 && installedPlugins.length === 0) {
|
|
10
14
|
console.log(chalk.yellow('No plugins installed yet'));
|
|
11
15
|
console.log(chalk.dim('\nš” Get started by installing a plugin:'));
|
|
12
16
|
console.log(chalk.cyan(' mediaproc add image') + chalk.dim(' # Image processing'));
|
|
13
17
|
console.log(chalk.cyan(' mediaproc add video') + chalk.dim(' # Video processing'));
|
|
14
18
|
console.log(chalk.cyan(' mediaproc add audio') + chalk.dim(' # Audio processing'));
|
|
15
|
-
console.log(chalk.dim('\nView all available plugins: mediaproc plugins'));
|
|
19
|
+
console.log(chalk.dim('\nView all available plugins: ') + chalk.white('mediaproc plugins'));
|
|
16
20
|
return;
|
|
17
21
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const
|
|
22
|
+
console.log(chalk.bold(`\nš¦ Installed Plugins (${installedPlugins.length} total, ${loadedPlugins.length} loaded)\n`));
|
|
23
|
+
// Separate official, community, and third-party plugins (from loaded list)
|
|
24
|
+
const official = loadedPlugins.filter(p => {
|
|
25
|
+
const type = detectPluginType(p);
|
|
26
|
+
return type === 'official';
|
|
27
|
+
});
|
|
28
|
+
const community = loadedPlugins.filter(p => {
|
|
29
|
+
const type = detectPluginType(p);
|
|
30
|
+
return type === 'community';
|
|
31
|
+
});
|
|
32
|
+
const thirdParty = loadedPlugins.filter(p => {
|
|
33
|
+
const type = detectPluginType(p);
|
|
34
|
+
return type === 'third-party';
|
|
35
|
+
});
|
|
21
36
|
// Show official plugins
|
|
22
37
|
if (official.length > 0) {
|
|
23
|
-
console.log(chalk.bold('\
|
|
38
|
+
console.log(chalk.bold('\u2728 Official Plugins:\n'));
|
|
24
39
|
official.forEach((pluginName, index) => {
|
|
25
40
|
const shortName = pluginName.replace('@mediaproc/', '');
|
|
26
41
|
const plugin = pluginManager.getPlugin(pluginName);
|
|
@@ -33,13 +48,27 @@ export function listCommand(program, pluginManager) {
|
|
|
33
48
|
}
|
|
34
49
|
});
|
|
35
50
|
}
|
|
51
|
+
// Show community plugins
|
|
52
|
+
if (community.length > 0) {
|
|
53
|
+
console.log(chalk.bold('\nš Community Plugins:\n'));
|
|
54
|
+
community.forEach((pluginName, index) => {
|
|
55
|
+
const shortName = pluginName.replace('mediaproc-', '');
|
|
56
|
+
const plugin = pluginManager.getPlugin(pluginName);
|
|
57
|
+
console.log(`${chalk.green('ā')} ${chalk.cyan(shortName)} ${chalk.dim(`(${pluginName})`)}`);
|
|
58
|
+
if (plugin) {
|
|
59
|
+
console.log(chalk.dim(` Version: ${plugin.version || 'unknown'}`));
|
|
60
|
+
}
|
|
61
|
+
if (index < community.length - 1) {
|
|
62
|
+
console.log('');
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
36
66
|
// Show third-party plugins
|
|
37
67
|
if (thirdParty.length > 0) {
|
|
38
|
-
console.log(chalk.bold('\n
|
|
68
|
+
console.log(chalk.bold('\nš¦ Third-Party Plugins:\n'));
|
|
39
69
|
thirdParty.forEach((pluginName, index) => {
|
|
40
|
-
const shortName = pluginName.replace('@mediaproc/', '');
|
|
41
70
|
const plugin = pluginManager.getPlugin(pluginName);
|
|
42
|
-
console.log(`${chalk.green('ā')} ${chalk.cyan(
|
|
71
|
+
console.log(`${chalk.green('ā')} ${chalk.cyan(pluginName)}`);
|
|
43
72
|
if (plugin) {
|
|
44
73
|
console.log(chalk.dim(` Version: ${plugin.version || 'unknown'}`));
|
|
45
74
|
}
|
|
@@ -48,8 +77,26 @@ export function listCommand(program, pluginManager) {
|
|
|
48
77
|
}
|
|
49
78
|
});
|
|
50
79
|
}
|
|
51
|
-
|
|
52
|
-
|
|
80
|
+
// Show plugins that are installed but not loaded
|
|
81
|
+
if (notLoaded.length > 0) {
|
|
82
|
+
console.log(chalk.bold('\nā ļø Installed but Not Loaded:\n'));
|
|
83
|
+
console.log(chalk.yellow('These plugins are in package.json but not loaded. Restart CLI or run "mediaproc add <plugin>" to load them.\n'));
|
|
84
|
+
notLoaded.forEach((pluginName, index) => {
|
|
85
|
+
const shortName = pluginName.replace('@mediaproc/', '').replace('mediaproc-', '');
|
|
86
|
+
console.log(`${chalk.yellow('ā')} ${chalk.dim(shortName)} ${chalk.dim(`(${pluginName})`)}`);
|
|
87
|
+
console.log(chalk.dim(` Load: ${chalk.white(`mediaproc add ${shortName}`)}`));
|
|
88
|
+
if (index < notLoaded.length - 1) {
|
|
89
|
+
console.log('');
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
console.log(chalk.dim('\nš” Plugin types:'));
|
|
94
|
+
console.log(chalk.dim(' ⨠Official: @mediaproc/* packages'));
|
|
95
|
+
console.log(chalk.dim(' š Community: mediaproc-* packages'));
|
|
96
|
+
console.log(chalk.dim(' š¦ Third-party: Other npm packages'));
|
|
97
|
+
console.log(chalk.dim('\nš„ Install more: ') + chalk.white('mediaproc add <plugin-name>'));
|
|
98
|
+
console.log(chalk.dim(' Remove: ') + chalk.white('mediaproc remove <plugin-name>'));
|
|
99
|
+
console.log(chalk.dim(' Browse all: ') + chalk.white('mediaproc plugins'));
|
|
53
100
|
console.log('');
|
|
54
101
|
});
|
|
55
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
+
import type { PluginManager } from '../plugin-manager.js';
|
|
2
3
|
/**
|
|
3
|
-
* Universal optimize command -
|
|
4
|
+
* Universal optimize command - shows optimization suggestions based on file type
|
|
4
5
|
*/
|
|
5
|
-
export declare function optimizeCommand(program: Command): void;
|
|
6
|
+
export declare function optimizeCommand(program: Command, pluginManager?: PluginManager): void;
|
|
6
7
|
//# sourceMappingURL=optimize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimize.d.ts","sourceRoot":"","sources":["../../src/commands/optimize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"optimize.d.ts","sourceRoot":"","sources":["../../src/commands/optimize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAoLrF"}
|
|
@@ -2,9 +2,9 @@ import chalk from 'chalk';
|
|
|
2
2
|
import { existsSync } from 'fs';
|
|
3
3
|
import { extname } from 'path';
|
|
4
4
|
/**
|
|
5
|
-
* Universal optimize command -
|
|
5
|
+
* Universal optimize command - shows optimization suggestions based on file type
|
|
6
6
|
*/
|
|
7
|
-
export function optimizeCommand(program) {
|
|
7
|
+
export function optimizeCommand(program, pluginManager) {
|
|
8
8
|
program
|
|
9
9
|
.command('optimize <file>')
|
|
10
10
|
.description('Auto-optimize any media file')
|
|
@@ -85,13 +85,13 @@ export function optimizeCommand(program) {
|
|
|
85
85
|
];
|
|
86
86
|
}
|
|
87
87
|
else if (options.aggressive) {
|
|
88
|
-
optimizationStrategy = 'Aggressive (Opus
|
|
88
|
+
optimizationStrategy = 'Aggressive (Opus 96kbps)';
|
|
89
89
|
commands = [
|
|
90
90
|
`mediaproc audio convert ${file} ${options.output || file.replace(`.${ext}`, '.optimized.opus')} --bitrate 96k`,
|
|
91
91
|
];
|
|
92
92
|
}
|
|
93
93
|
else {
|
|
94
|
-
optimizationStrategy = 'Balanced (Opus
|
|
94
|
+
optimizationStrategy = 'Balanced (Opus 128kbps)';
|
|
95
95
|
commands = [
|
|
96
96
|
`mediaproc audio convert ${file} ${options.output || file.replace(`.${ext}`, '.optimized.opus')} --bitrate 128k`,
|
|
97
97
|
];
|
|
@@ -100,31 +100,24 @@ export function optimizeCommand(program) {
|
|
|
100
100
|
else if (documentExts.includes(ext)) {
|
|
101
101
|
pluginName = 'document';
|
|
102
102
|
mediaType = 'Document';
|
|
103
|
-
optimizationStrategy = '
|
|
103
|
+
optimizationStrategy = 'Compression and optimization';
|
|
104
104
|
commands = [
|
|
105
|
-
`mediaproc document
|
|
105
|
+
`mediaproc document optimize ${file} ${options.output || file.replace(`.${ext}`, `.optimized.${ext}`)}`,
|
|
106
106
|
];
|
|
107
107
|
}
|
|
108
108
|
else if (modelExts.includes(ext)) {
|
|
109
109
|
pluginName = '3d';
|
|
110
110
|
mediaType = '3D Model';
|
|
111
|
-
if (options.
|
|
112
|
-
optimizationStrategy = '
|
|
113
|
-
commands = [
|
|
114
|
-
`mediaproc 3d optimize ${file} ${options.output || file.replace(`.${ext}`, '.optimized.glb')} --lossless`,
|
|
115
|
-
];
|
|
116
|
-
}
|
|
117
|
-
else if (options.aggressive) {
|
|
118
|
-
optimizationStrategy = 'Aggressive (Draco + texture compression)';
|
|
111
|
+
if (options.aggressive) {
|
|
112
|
+
optimizationStrategy = 'Aggressive (Draco compression, lower precision)';
|
|
119
113
|
commands = [
|
|
120
|
-
`mediaproc 3d optimize ${file} ${options.output || file.replace(`.${ext}`, '.optimized.glb')} --
|
|
121
|
-
`mediaproc 3d compress-textures ${file} ${options.output || file.replace(`.${ext}`, '.optimized.glb')} --format ktx2`,
|
|
114
|
+
`mediaproc 3d optimize ${file} ${options.output || file.replace(`.${ext}`, '.optimized.glb')} --draco --quantize`,
|
|
122
115
|
];
|
|
123
116
|
}
|
|
124
117
|
else {
|
|
125
118
|
optimizationStrategy = 'Balanced (Draco compression)';
|
|
126
119
|
commands = [
|
|
127
|
-
`mediaproc 3d optimize ${file} ${options.output || file.replace(`.${ext}`, '.optimized.glb')}`,
|
|
120
|
+
`mediaproc 3d optimize ${file} ${options.output || file.replace(`.${ext}`, '.optimized.glb')} --draco`,
|
|
128
121
|
];
|
|
129
122
|
}
|
|
130
123
|
}
|
|
@@ -155,8 +148,21 @@ export function optimizeCommand(program) {
|
|
|
155
148
|
console.log('');
|
|
156
149
|
});
|
|
157
150
|
console.log('');
|
|
158
|
-
|
|
159
|
-
|
|
151
|
+
// Check plugin status
|
|
152
|
+
const pluginPackage = `@mediaproc/${pluginName}`;
|
|
153
|
+
const isLoaded = pluginManager?.isPluginLoaded(pluginPackage);
|
|
154
|
+
const isInstalled = pluginManager?.isPluginInstalled(pluginPackage);
|
|
155
|
+
if (isLoaded) {
|
|
156
|
+
console.log(chalk.green(`ā ${pluginName} plugin is loaded - commands are ready`));
|
|
157
|
+
}
|
|
158
|
+
else if (isInstalled) {
|
|
159
|
+
console.log(chalk.yellow(`ā ļø ${pluginName} plugin is installed but not loaded`));
|
|
160
|
+
console.log(chalk.dim(` Load it: ${chalk.cyan(`mediaproc add ${pluginName}`)}`));
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
console.log(chalk.red(`ā ${pluginName} plugin not installed`));
|
|
164
|
+
console.log(chalk.dim(` Install: ${chalk.cyan(`mediaproc add ${pluginName}`)}`));
|
|
165
|
+
}
|
|
160
166
|
console.log('');
|
|
161
167
|
// Show size estimates
|
|
162
168
|
if (mediaType === 'Image') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimize.js","sourceRoot":"","sources":["../../src/commands/optimize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"optimize.js","sourceRoot":"","sources":["../../src/commands/optimize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.d.ts","sourceRoot":"","sources":["../../src/commands/plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,GAAG,IAAI,CA4FnF"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { getPluginsByCategory } from '../plugin-registry.js';
|
|
3
|
+
export function pluginsCommand(program, pluginManager) {
|
|
4
|
+
program
|
|
5
|
+
.command('plugins')
|
|
6
|
+
.alias('marketplace')
|
|
7
|
+
.description('Show all available plugins from registry')
|
|
8
|
+
.action(() => {
|
|
9
|
+
const grouped = getPluginsByCategory();
|
|
10
|
+
const loadedPlugins = new Set(pluginManager.getLoadedPlugins());
|
|
11
|
+
console.log(chalk.bold('\nš¦ Available MediaProc Plugins\n'));
|
|
12
|
+
console.log(chalk.dim('Official plugins from the MediaProc ecosystem\n'));
|
|
13
|
+
// Core plugins
|
|
14
|
+
if (grouped.core && grouped.core.length > 0) {
|
|
15
|
+
console.log(chalk.bold('šÆ Core Media Plugins:\n'));
|
|
16
|
+
const seen = new Set();
|
|
17
|
+
grouped.core.forEach((entry) => {
|
|
18
|
+
if (seen.has(entry.package))
|
|
19
|
+
return;
|
|
20
|
+
seen.add(entry.package);
|
|
21
|
+
const isInstalled = loadedPlugins.has(entry.package);
|
|
22
|
+
const status = isInstalled ? chalk.green('ā INSTALLED') : chalk.dim('Not installed');
|
|
23
|
+
console.log(`${chalk.cyan(entry.name.padEnd(12))} ${status}`);
|
|
24
|
+
console.log(chalk.dim(` ${entry.description}`));
|
|
25
|
+
if (entry.systemRequirements && entry.systemRequirements.length > 0) {
|
|
26
|
+
console.log(chalk.yellow(` Requirements: ${entry.systemRequirements.join(', ')}`));
|
|
27
|
+
}
|
|
28
|
+
console.log(chalk.dim(` Install: ${chalk.white(`mediaproc add ${entry.name}`)}`));
|
|
29
|
+
console.log('');
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
// Advanced plugins
|
|
33
|
+
if (grouped.advanced && grouped.advanced.length > 0) {
|
|
34
|
+
console.log(chalk.bold('š Advanced Plugins:\n'));
|
|
35
|
+
const seen = new Set();
|
|
36
|
+
grouped.advanced.forEach((entry) => {
|
|
37
|
+
if (seen.has(entry.package))
|
|
38
|
+
return;
|
|
39
|
+
seen.add(entry.package);
|
|
40
|
+
const isInstalled = loadedPlugins.has(entry.package);
|
|
41
|
+
const status = isInstalled ? chalk.green('ā INSTALLED') : chalk.dim('Not installed');
|
|
42
|
+
console.log(`${chalk.cyan(entry.name.padEnd(12))} ${status}`);
|
|
43
|
+
console.log(chalk.dim(` ${entry.description}`));
|
|
44
|
+
if (entry.systemRequirements && entry.systemRequirements.length > 0) {
|
|
45
|
+
console.log(chalk.yellow(` Requirements: ${entry.systemRequirements.join(', ')}`));
|
|
46
|
+
}
|
|
47
|
+
console.log(chalk.dim(` Install: ${chalk.white(`mediaproc add ${entry.name}`)}`));
|
|
48
|
+
console.log('');
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
// Future-proof plugins
|
|
52
|
+
if (grouped['future-proof'] && grouped['future-proof'].length > 0) {
|
|
53
|
+
console.log(chalk.bold('š® Future-Proof Plugins:\n'));
|
|
54
|
+
const seen = new Set();
|
|
55
|
+
grouped['future-proof'].forEach((entry) => {
|
|
56
|
+
if (seen.has(entry.package))
|
|
57
|
+
return;
|
|
58
|
+
seen.add(entry.package);
|
|
59
|
+
const isInstalled = loadedPlugins.has(entry.package);
|
|
60
|
+
const status = isInstalled ? chalk.green('ā INSTALLED') : chalk.dim('Not installed');
|
|
61
|
+
console.log(`${chalk.cyan(entry.name.padEnd(12))} ${status}`);
|
|
62
|
+
console.log(chalk.dim(` ${entry.description}`));
|
|
63
|
+
if (entry.systemRequirements && entry.systemRequirements.length > 0) {
|
|
64
|
+
console.log(chalk.yellow(` Requirements: ${entry.systemRequirements.join(', ')}`));
|
|
65
|
+
}
|
|
66
|
+
console.log(chalk.dim(` Install: ${chalk.white(`mediaproc add ${entry.name}`)}`));
|
|
67
|
+
console.log('');
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
console.log(chalk.dim('š” Plugin Types:'));
|
|
71
|
+
console.log(chalk.dim(' ⨠Official: @mediaproc/* packages (maintained by MediaProc team)'));
|
|
72
|
+
console.log(chalk.dim(' š Community: mediaproc-* packages (community-maintained)'));
|
|
73
|
+
console.log(chalk.dim(' š¦ Third-party: Other npm packages'));
|
|
74
|
+
console.log(chalk.dim('\nš„ Install any plugin: ') + chalk.white('mediaproc add <plugin-name>'));
|
|
75
|
+
console.log(chalk.dim('š Show installed plugins: ') + chalk.white('mediaproc list'));
|
|
76
|
+
console.log('');
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=plugins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugins.js","sourceRoot":"","sources":["../../src/commands/plugins.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAG7D,MAAM,UAAU,cAAc,CAAC,OAAgB,EAAE,aAA4B;IAC3E,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,KAAK,CAAC,aAAa,CAAC;SACpB,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;QACvC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAEhE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAE1E,eAAe;QACf,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;YAEpD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;oBAAE,OAAO;gBACpC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAExB,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACrD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAErF,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAEjD,IAAI,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtF,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,mBAAmB;QACnB,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAElD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACjC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;oBAAE,OAAO;gBACpC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAExB,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACrD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAErF,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAEjD,IAAI,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtF,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,uBAAuB;QACvB,IAAI,OAAO,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC;YAEtD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;YAC/B,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;oBAAE,OAAO;gBACpC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAExB,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACrD,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAErF,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAEjD,IAAI,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBACtF,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACjG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACtF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +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;
|
|
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;AA2B1D,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,GAAG,IAAI,CAiGlF"}
|
package/dist/commands/remove.js
CHANGED
|
@@ -1,23 +1,71 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import ora from 'ora';
|
|
3
3
|
import { execa } from 'execa';
|
|
4
|
+
/**
|
|
5
|
+
* Check if a plugin is installed globally
|
|
6
|
+
*/
|
|
7
|
+
async function isPluginGlobal(pluginName) {
|
|
8
|
+
try {
|
|
9
|
+
// Try npm list -g
|
|
10
|
+
const { stdout } = await execa('npm', ['list', '-g', '--depth=0', pluginName], {
|
|
11
|
+
stdio: 'pipe',
|
|
12
|
+
reject: false
|
|
13
|
+
});
|
|
14
|
+
return stdout.includes(pluginName);
|
|
15
|
+
}
|
|
16
|
+
catch { }
|
|
17
|
+
try {
|
|
18
|
+
// Try pnpm list -g
|
|
19
|
+
const { stdout } = await execa('pnpm', ['list', '-g', '--depth=0', pluginName], {
|
|
20
|
+
stdio: 'pipe',
|
|
21
|
+
reject: false
|
|
22
|
+
});
|
|
23
|
+
return stdout.includes(pluginName);
|
|
24
|
+
}
|
|
25
|
+
catch { }
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
4
28
|
export function removeCommand(program, pluginManager) {
|
|
5
29
|
program
|
|
6
30
|
.command('remove <plugin>')
|
|
7
31
|
.alias('rm')
|
|
8
32
|
.description('Uninstall a mediaproc plugin')
|
|
9
|
-
.option('-g, --global', '
|
|
33
|
+
.option('-g, --global', 'Force global uninstall')
|
|
34
|
+
.option('-l, --local', 'Force local uninstall')
|
|
10
35
|
.action(async (plugin, options) => {
|
|
11
36
|
const spinner = ora(`Removing ${chalk.cyan(plugin)}...`).start();
|
|
12
37
|
try {
|
|
13
|
-
// Ensure plugin name
|
|
38
|
+
// Ensure plugin name is properly formatted
|
|
14
39
|
const pluginName = plugin.startsWith('@mediaproc/')
|
|
15
40
|
? plugin
|
|
16
41
|
: `@mediaproc/${plugin}`;
|
|
42
|
+
// Check if plugin is loaded and is marked as built-in (shouldn't happen, but safety check)
|
|
43
|
+
const pluginInstance = pluginManager.getPlugin(pluginName);
|
|
44
|
+
if (pluginInstance?.isBuiltIn) {
|
|
45
|
+
spinner.fail(chalk.red(`Cannot remove plugin: ${chalk.cyan(plugin)}`));
|
|
46
|
+
console.log(chalk.dim('This plugin is marked as built-in and cannot be removed'));
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
17
49
|
// Check if plugin is currently loaded
|
|
18
50
|
const wasLoaded = pluginManager.isPluginLoaded(pluginName);
|
|
19
51
|
if (wasLoaded) {
|
|
20
|
-
spinner.info(chalk.dim(`
|
|
52
|
+
spinner.info(chalk.dim(`Unloading plugin ${pluginName}...`));
|
|
53
|
+
pluginManager.unloadPlugin(pluginName);
|
|
54
|
+
spinner.start(`Removing ${chalk.cyan(pluginName)}...`);
|
|
55
|
+
}
|
|
56
|
+
// Determine installation scope
|
|
57
|
+
let uninstallGlobally = false;
|
|
58
|
+
if (options.global) {
|
|
59
|
+
uninstallGlobally = true;
|
|
60
|
+
}
|
|
61
|
+
else if (options.local) {
|
|
62
|
+
uninstallGlobally = false;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
// Auto-detect: check if plugin is installed globally
|
|
66
|
+
spinner.text = 'Detecting installation scope...';
|
|
67
|
+
uninstallGlobally = await isPluginGlobal(pluginName);
|
|
68
|
+
spinner.text = `Removing ${chalk.cyan(pluginName)}${uninstallGlobally ? ' (global)' : ' (local)'}...`;
|
|
21
69
|
}
|
|
22
70
|
// Determine package manager (prefer pnpm, fallback to npm)
|
|
23
71
|
let packageManager = 'pnpm';
|
|
@@ -30,20 +78,35 @@ export function removeCommand(program, pluginManager) {
|
|
|
30
78
|
// Build uninstall command
|
|
31
79
|
const args = [];
|
|
32
80
|
if (packageManager === 'pnpm') {
|
|
33
|
-
args.push(
|
|
34
|
-
if (
|
|
81
|
+
args.push('remove');
|
|
82
|
+
if (uninstallGlobally)
|
|
35
83
|
args.push('-g');
|
|
36
84
|
}
|
|
37
85
|
else {
|
|
38
86
|
args.push('uninstall');
|
|
39
|
-
if (
|
|
87
|
+
if (uninstallGlobally)
|
|
40
88
|
args.push('-g');
|
|
41
89
|
}
|
|
42
90
|
args.push(pluginName);
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
91
|
+
// Set working directory for local uninstalls
|
|
92
|
+
const uninstallOptions = {
|
|
93
|
+
stdio: 'pipe',
|
|
94
|
+
reject: false
|
|
95
|
+
};
|
|
96
|
+
if (!uninstallGlobally) {
|
|
97
|
+
uninstallOptions.cwd = process.cwd();
|
|
98
|
+
}
|
|
99
|
+
await execa(packageManager, args, uninstallOptions);
|
|
100
|
+
const scope = uninstallGlobally ? 'globally' : 'locally';
|
|
101
|
+
spinner.succeed(chalk.green(`ā Successfully removed ${pluginName} (${scope})`));
|
|
102
|
+
// Update config to remove from installed and loaded
|
|
103
|
+
const configManager = pluginManager.getConfigManager();
|
|
104
|
+
configManager.removeInstalledPlugin(pluginName);
|
|
105
|
+
if (wasLoaded) {
|
|
106
|
+
console.log(chalk.green('ā Plugin unloaded and cleaned up'));
|
|
107
|
+
}
|
|
108
|
+
console.log(chalk.dim(`\nPlugin has been completely removed ${scope}`));
|
|
109
|
+
console.log(chalk.dim('View remaining plugins: ') + chalk.white('mediaproc list'));
|
|
47
110
|
}
|
|
48
111
|
catch (error) {
|
|
49
112
|
spinner.fail(chalk.red(`Failed to remove ${plugin}`));
|
|
@@ -1 +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,
|
|
1
|
+
{"version":3,"file":"remove.js","sourceRoot":"","sources":["../../src/commands/remove.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration structure for MediaProc
|
|
3
|
+
*/
|
|
4
|
+
export interface MediaProcConfig {
|
|
5
|
+
version: string;
|
|
6
|
+
installedPlugins: string[];
|
|
7
|
+
loadedPlugins: string[];
|
|
8
|
+
defaults?: {
|
|
9
|
+
[plugin: string]: {
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
pipelines?: {
|
|
14
|
+
[name: string]: {
|
|
15
|
+
name: string;
|
|
16
|
+
steps: Array<{
|
|
17
|
+
plugin: string;
|
|
18
|
+
command: string;
|
|
19
|
+
options?: Record<string, any>;
|
|
20
|
+
}>;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
lastUpdated?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Configuration manager for MediaProc
|
|
27
|
+
* Handles reading/writing config from ~/.mediaproc/config.json
|
|
28
|
+
*/
|
|
29
|
+
export declare class ConfigManager {
|
|
30
|
+
private static readonly CONFIG_DIR;
|
|
31
|
+
private static readonly CONFIG_FILE;
|
|
32
|
+
private config;
|
|
33
|
+
/**
|
|
34
|
+
* Get the config directory path
|
|
35
|
+
*/
|
|
36
|
+
static getConfigDir(): string;
|
|
37
|
+
/**
|
|
38
|
+
* Get the config file path
|
|
39
|
+
*/
|
|
40
|
+
static getConfigPath(): string;
|
|
41
|
+
/**
|
|
42
|
+
* Ensure config directory exists
|
|
43
|
+
*/
|
|
44
|
+
private ensureConfigDir;
|
|
45
|
+
/**
|
|
46
|
+
* Load config from file
|
|
47
|
+
*/
|
|
48
|
+
load(): MediaProcConfig;
|
|
49
|
+
/**
|
|
50
|
+
* Create default config
|
|
51
|
+
*/
|
|
52
|
+
private createDefaultConfig;
|
|
53
|
+
/**
|
|
54
|
+
* Save config to file
|
|
55
|
+
*/
|
|
56
|
+
save(): void;
|
|
57
|
+
/**
|
|
58
|
+
* Get current config
|
|
59
|
+
*/
|
|
60
|
+
get(): MediaProcConfig;
|
|
61
|
+
/**
|
|
62
|
+
* Check if a plugin is installed
|
|
63
|
+
*/
|
|
64
|
+
isPluginInstalled(pluginName: string): boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Check if a plugin is loaded
|
|
67
|
+
*/
|
|
68
|
+
isPluginLoaded(pluginName: string): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Add plugin to installed list
|
|
71
|
+
*/
|
|
72
|
+
addInstalledPlugin(pluginName: string): void;
|
|
73
|
+
/**
|
|
74
|
+
* Remove plugin from installed list
|
|
75
|
+
*/
|
|
76
|
+
removeInstalledPlugin(pluginName: string): void;
|
|
77
|
+
/**
|
|
78
|
+
* Add plugin to loaded list
|
|
79
|
+
*/
|
|
80
|
+
addLoadedPlugin(pluginName: string): void;
|
|
81
|
+
/**
|
|
82
|
+
* Remove plugin from loaded list
|
|
83
|
+
*/
|
|
84
|
+
removeLoadedPlugin(pluginName: string): void;
|
|
85
|
+
/**
|
|
86
|
+
* Get list of installed plugins
|
|
87
|
+
*/
|
|
88
|
+
getInstalledPlugins(): string[];
|
|
89
|
+
/**
|
|
90
|
+
* Get list of loaded plugins
|
|
91
|
+
*/
|
|
92
|
+
getLoadedPlugins(): string[];
|
|
93
|
+
/**
|
|
94
|
+
* Set a configuration value
|
|
95
|
+
*/
|
|
96
|
+
set(key: string, value: any): void;
|
|
97
|
+
/**
|
|
98
|
+
* Get a configuration value
|
|
99
|
+
*/
|
|
100
|
+
getValue(key: string): any;
|
|
101
|
+
/**
|
|
102
|
+
* Reset config to defaults
|
|
103
|
+
*/
|
|
104
|
+
reset(): void;
|
|
105
|
+
/**
|
|
106
|
+
* Check if config file exists
|
|
107
|
+
*/
|
|
108
|
+
exists(): boolean;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=config-manager.d.ts.map
|