@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/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# MediaProc
|
|
2
2
|
|
|
3
|
-
> ✨ **v0.2.0 Released!** - Image Plugin with
|
|
3
|
+
> ✨ **v0.2.0 Released!** - Image Plugin with 49 commands + Universal convert/info/optimize commands
|
|
4
4
|
|
|
5
5
|
Universal media processing CLI with an extensible plugin architecture. One tool to process all your media - images, videos, audio, documents, and more.
|
|
6
6
|
|
|
@@ -20,6 +20,7 @@ Universal media processing CLI with an extensible plugin architecture. One tool
|
|
|
20
20
|
- [Features](#-features)
|
|
21
21
|
- [Quick Start](#-quick-start)
|
|
22
22
|
- [Available Plugins](#-available-plugins)
|
|
23
|
+
- [Plugin Terminology](#-plugin-terminology)
|
|
23
24
|
- [Documentation](#-documentation)
|
|
24
25
|
- [Examples](#-examples)
|
|
25
26
|
- [Development](#-development)
|
|
@@ -129,25 +130,114 @@ mediaproc document compress input.pdf --quality high
|
|
|
129
130
|
## 📊 Current Status
|
|
130
131
|
|
|
131
132
|
**Version**: 0.2.0 (Alpha - Feature Complete Image Plugin!)
|
|
132
|
-
**Status**: ✅ Image plugin with
|
|
133
|
+
**Status**: ✅ Image plugin with 49 commands + Universal CLI commands
|
|
133
134
|
**Next Release**: Video & Audio plugins (Q1 2026)
|
|
134
135
|
**Expected v1.0**: Q2 2026
|
|
135
136
|
|
|
136
|
-
###
|
|
137
|
+
### Plugin Management
|
|
137
138
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
139
|
+
- `mediaproc list` - List all plugins (built-in and installed)
|
|
140
|
+
- `mediaproc add <plugin>` - Install add-on plugins from npm
|
|
141
|
+
- `mediaproc remove <plugin>` - Uninstall add-on plugins
|
|
142
|
+
- `mediaproc plugins` - Show available plugins
|
|
143
|
+
- `mediaproc init` - Initialize configuration
|
|
144
|
+
- `mediaproc config` - Manage settings
|
|
145
|
+
|
|
146
|
+
### Universal Commands (Work Without Plugins)
|
|
147
|
+
|
|
148
|
+
- `mediaproc convert <input> <output>` - Auto-detect and convert any media file
|
|
149
|
+
- `mediaproc info <file>` - Show file information for any media type
|
|
150
|
+
- `mediaproc optimize <file>` - Suggest optimization strategy based on file type
|
|
151
|
+
|
|
152
|
+
### Image Processing (@mediaproc/image)
|
|
153
|
+
|
|
154
|
+
**Install:** `mediaproc add image`
|
|
155
|
+
|
|
156
|
+
**49 Professional Commands Available:**
|
|
157
|
+
|
|
158
|
+
**Transform & Resize** (10 commands)
|
|
159
|
+
|
|
160
|
+
- `resize` - Resize with fit modes (cover, contain, fill, inside, outside)
|
|
161
|
+
- `crop` - Extract rectangular regions with positioning
|
|
162
|
+
- `rotate` - Any angle rotation with background control
|
|
163
|
+
- `flip` - Vertical mirroring (top-bottom)
|
|
164
|
+
- `flop` - Horizontal mirroring (left-right)
|
|
165
|
+
- `auto-orient` - Auto-rotate based on EXIF orientation
|
|
166
|
+
- `affine` - Apply affine transformation matrix (scale, shear, reflect)
|
|
167
|
+
- `trim` - Auto-remove uniform borders
|
|
168
|
+
- `extend` - Add padding/borders with custom colors
|
|
169
|
+
- `thumbnail` - Generate thumbnails (64px to 512px)
|
|
170
|
+
|
|
171
|
+
**Color & Tone** (10 commands)
|
|
172
|
+
|
|
173
|
+
- `modulate` - Adjust brightness, saturation, hue
|
|
174
|
+
- `gamma` - Gamma correction for midtones (0.1-3.0)
|
|
175
|
+
- `tint` - Apply color tint overlays (RGB hex)
|
|
176
|
+
- `grayscale` - Convert to black & white
|
|
177
|
+
- `negate` - Create negative/inverted images
|
|
178
|
+
- `normalize` - Auto-enhance contrast and brightness
|
|
179
|
+
- `linear` - Apply linear formula: output = (a \* input) + b
|
|
180
|
+
- `recomb` - Recombine RGB channels using matrix
|
|
181
|
+
- `flatten` - Remove alpha transparency with background color
|
|
182
|
+
- `unflatten` - Add alpha channel (RGB→RGBA)
|
|
183
|
+
|
|
184
|
+
**Effects & Filters** (9 commands)
|
|
185
|
+
|
|
186
|
+
- `blur` - Gaussian blur (0.3-1000 sigma)
|
|
187
|
+
- `sharpen` - Enhance details and edges (flat/jagged modes)
|
|
188
|
+
- `median` - Noise reduction filter (1-50 size)
|
|
189
|
+
- `sepia` - Vintage sepia tone effect
|
|
190
|
+
- `vignette` - Darken edges for artistic focus
|
|
191
|
+
- `pixelate` - Retro pixel art effect (custom pixel size)
|
|
192
|
+
- `threshold` - Binary black/white conversion (0-255)
|
|
193
|
+
- `dilate` - Morphological dilation (expand bright regions)
|
|
194
|
+
- `erode` - Morphological erosion (expand dark regions)
|
|
195
|
+
|
|
196
|
+
**Advanced Operations** (6 commands)
|
|
197
|
+
|
|
198
|
+
- `composite` - Layer images with blend modes (overlay, multiply, screen)
|
|
199
|
+
- `extract` - Extract color channels (red, green, blue, alpha)
|
|
200
|
+
- `border` - Add decorative frames with custom colors
|
|
201
|
+
- `clahe` - Contrast-limited adaptive histogram equalization
|
|
202
|
+
- `convolve` - Apply custom convolution kernels (sharpen, emboss, edge)
|
|
203
|
+
- `boolean` - Perform boolean operations between images (AND, OR, XOR)
|
|
204
|
+
|
|
205
|
+
**Smart/AI Operations** (6 commands)
|
|
206
|
+
|
|
207
|
+
- `smart-crop` - Intelligent content-aware cropping (attention/entropy)
|
|
208
|
+
- `auto-enhance` - Automatic color and contrast enhancement
|
|
209
|
+
- `palette` - Extract dominant color palettes (2-256 colors)
|
|
210
|
+
- `dominant-color` - Quick dominant color extraction
|
|
211
|
+
- `grid` - Combine images into collage layouts
|
|
212
|
+
- `batch` - Process multiple images at once with any operation
|
|
213
|
+
|
|
214
|
+
**Utility** (10 commands)
|
|
142
215
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
216
|
+
- `convert` - Format conversion (JPG, PNG, WebP, AVIF, TIFF, GIF)
|
|
217
|
+
- `optimize` - Size optimization (up to 70% reduction, lossless/lossy)
|
|
218
|
+
- `compress` - Advanced compression with quality control
|
|
219
|
+
- `watermark` - Add watermarks with positioning and opacity
|
|
220
|
+
- `info` - Display detailed image metadata
|
|
221
|
+
- `stats` - Technical image statistics (channels, depth, color space)
|
|
222
|
+
- `split` - Split image into grid tiles
|
|
223
|
+
- `stack` - Stack images horizontally/vertically
|
|
224
|
+
- `mirror` - Create mirror/kaleidoscope effects
|
|
225
|
+
- `metadata` - View, export, or remove EXIF data
|
|
226
|
+
|
|
227
|
+
**Format Support:**
|
|
228
|
+
|
|
229
|
+
- Input: JPG, PNG, WebP, AVIF, TIFF, GIF, SVG, HEIF
|
|
230
|
+
- Output: JPG, PNG, WebP, AVIF, TIFF, GIF
|
|
231
|
+
- Modern formats: WebP (25-35% smaller), AVIF (50% smaller)
|
|
232
|
+
|
|
233
|
+
**Professional Features:**
|
|
234
|
+
|
|
235
|
+
- Quality control (1-100)
|
|
236
|
+
- Dry-run mode (preview before executing)
|
|
237
|
+
- Verbose logging
|
|
238
|
+
- Built-in help for every command
|
|
239
|
+
- Comprehensive error handling
|
|
240
|
+
- File size reporting
|
|
151
241
|
|
|
152
242
|
✅ **Architecture** - Plugin system designed and implemented
|
|
153
243
|
✅ **Core CLI** - Command framework with plugin discovery
|
|
@@ -183,7 +273,7 @@ See [Upcoming Features](docs/upcoming-features.md) for detailed roadmap.
|
|
|
183
273
|
|
|
184
274
|
MediaProc ships with essential plugins pre-installed, giving you immediate productivity:
|
|
185
275
|
|
|
186
|
-
- **@mediaproc/image** - Professional image processing (
|
|
276
|
+
- **@mediaproc/image** - Professional image processing (40 commands)
|
|
187
277
|
- Resize, crop, rotate, flip, convert formats
|
|
188
278
|
- Filters: blur, sharpen, tint, grayscale, median
|
|
189
279
|
- Color adjustments: modulate, gamma, normalize
|
|
@@ -233,7 +323,7 @@ npm install -g @mediaproc/image
|
|
|
233
323
|
mediaproc-image resize photo.jpg -w 1920
|
|
234
324
|
```
|
|
235
325
|
|
|
236
|
-
### Current Features (v0.
|
|
326
|
+
### Current Features (v0.2.0)
|
|
237
327
|
|
|
238
328
|
#### Core CLI
|
|
239
329
|
|
|
@@ -512,12 +602,73 @@ _Coming soon: Browse community plugins at https://plugins.mediaproc.dev_
|
|
|
512
602
|
|
|
513
603
|
---
|
|
514
604
|
|
|
515
|
-
##
|
|
605
|
+
## � Plugin Terminology
|
|
606
|
+
|
|
607
|
+
### Important: No Plugins Are Pre-Installed!
|
|
608
|
+
|
|
609
|
+
MediaProc CLI is lightweight and contains **NO plugin code**. All plugins must be explicitly installed.
|
|
610
|
+
|
|
611
|
+
### Plugin Types
|
|
612
|
+
|
|
613
|
+
1. **Official Plugins** (`@mediaproc/*`) - Maintained by MediaProc team
|
|
614
|
+
- Example: `@mediaproc/image`, `@mediaproc/video`
|
|
615
|
+
- High quality, regularly updated
|
|
616
|
+
- Install: `mediaproc add image`
|
|
617
|
+
|
|
618
|
+
2. **Community Plugins** (`mediaproc-*`) - Community-maintained
|
|
619
|
+
- Example: `mediaproc-custom-filter`
|
|
620
|
+
- Follow community standards
|
|
621
|
+
- Install: `mediaproc add mediaproc-custom-filter`
|
|
622
|
+
|
|
623
|
+
3. **Third-Party Plugins** - Any compatible npm package
|
|
624
|
+
- No naming convention required
|
|
625
|
+
- Must implement MediaProc plugin interface
|
|
626
|
+
- Install: `mediaproc add package-name`
|
|
627
|
+
|
|
628
|
+
### Quick Reference
|
|
629
|
+
|
|
630
|
+
```bash
|
|
631
|
+
# Install CLI (no plugins included)
|
|
632
|
+
npm install -g @mediaproc/cli
|
|
633
|
+
|
|
634
|
+
# Browse available plugins
|
|
635
|
+
mediaproc plugins
|
|
636
|
+
|
|
637
|
+
# Install official plugins
|
|
638
|
+
mediaproc add image # Image processing
|
|
639
|
+
mediaproc add video # Video processing
|
|
640
|
+
|
|
641
|
+
# Check what's installed
|
|
642
|
+
mediaproc list
|
|
643
|
+
|
|
644
|
+
# Use installed plugins
|
|
645
|
+
mediaproc image resize photo.jpg -w 800
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
**📘 Full Guide:** See [Plugin Terminology Guide](docs/plugin-terminology.md) for detailed explanations.
|
|
649
|
+
|
|
650
|
+
---
|
|
651
|
+
|
|
652
|
+
## �📚 Documentation
|
|
516
653
|
|
|
517
654
|
Comprehensive documentation is available in the [docs/](docs/) folder:
|
|
518
655
|
|
|
519
656
|
### Core Documentation
|
|
520
657
|
|
|
658
|
+
- **[Plugin Terminology](docs/plugin-terminology.md)** - **START HERE!** Clear definitions and common misconceptions
|
|
659
|
+
|
|
660
|
+
- Official vs Community vs Third-Party plugins
|
|
661
|
+
- No plugins are pre-installed (explained)
|
|
662
|
+
- Installation workflow and plugin states
|
|
663
|
+
- Best practices and FAQ
|
|
664
|
+
|
|
665
|
+
- **[Plugin Architecture](docs/plugin-architecture.md)** - How the plugin system works
|
|
666
|
+
|
|
667
|
+
- On-demand loading architecture
|
|
668
|
+
- Plugin discovery and lifecycle
|
|
669
|
+
- Why no auto-loading
|
|
670
|
+
- Technical implementation
|
|
671
|
+
|
|
521
672
|
- **[Plugin System](docs/plugin-system.md)** - Complete guide to the plugin architecture
|
|
522
673
|
|
|
523
674
|
- How plugins work
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAkCA,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAqCzC"}
|
package/dist/cli.js
CHANGED
|
@@ -5,9 +5,11 @@ import { readFileSync } from 'fs';
|
|
|
5
5
|
import { join, dirname } from 'path';
|
|
6
6
|
import { fileURLToPath } from 'url';
|
|
7
7
|
import { PluginManager } from './plugin-manager.js';
|
|
8
|
+
import { ConfigManager } from './config-manager.js';
|
|
8
9
|
import { addCommand } from './commands/add.js';
|
|
9
10
|
import { removeCommand } from './commands/remove.js';
|
|
10
11
|
import { listCommand } from './commands/list.js';
|
|
12
|
+
import { pluginsCommand } from './commands/plugins.js';
|
|
11
13
|
import { helpCommand } from './commands/help.js';
|
|
12
14
|
import { initCommand } from './commands/init.js';
|
|
13
15
|
import { configCommand } from './commands/config.js';
|
|
@@ -18,6 +20,9 @@ import { infoCommand } from './commands/info.js';
|
|
|
18
20
|
import { optimizeCommand } from './commands/optimize.js';
|
|
19
21
|
const program = new Command();
|
|
20
22
|
const pluginManager = new PluginManager();
|
|
23
|
+
// Initialize config on startup (creates default if not exists)
|
|
24
|
+
const configManager = new ConfigManager();
|
|
25
|
+
configManager.load();
|
|
21
26
|
// Get version from package.json
|
|
22
27
|
const __filename = fileURLToPath(import.meta.url);
|
|
23
28
|
const __dirname = dirname(__filename);
|
|
@@ -31,25 +36,21 @@ export async function cli() {
|
|
|
31
36
|
addCommand(program, pluginManager);
|
|
32
37
|
removeCommand(program, pluginManager);
|
|
33
38
|
listCommand(program, pluginManager);
|
|
39
|
+
pluginsCommand(program, pluginManager);
|
|
34
40
|
helpCommand(program);
|
|
35
41
|
// Project management commands
|
|
36
42
|
initCommand(program);
|
|
37
43
|
configCommand(program);
|
|
38
|
-
// Universal commands (
|
|
39
|
-
convertCommand(program);
|
|
40
|
-
infoCommand(program);
|
|
41
|
-
optimizeCommand(program);
|
|
44
|
+
// Universal commands (auto-install plugins if needed)
|
|
45
|
+
convertCommand(program, pluginManager);
|
|
46
|
+
infoCommand(program, pluginManager);
|
|
47
|
+
optimizeCommand(program, pluginManager);
|
|
42
48
|
// Utility commands
|
|
43
49
|
runCommand(program);
|
|
44
50
|
validateCommand(program);
|
|
45
|
-
//
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
catch (error) {
|
|
50
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
51
|
-
console.error(chalk.red('Error loading plugins:'), errorMessage);
|
|
52
|
-
}
|
|
51
|
+
// Plugins are NOT loaded at startup
|
|
52
|
+
// Users must explicitly install plugins using: mediaproc add <plugin>
|
|
53
|
+
// This gives users full control over which plugins they want
|
|
53
54
|
// Parse arguments
|
|
54
55
|
program.parse(process.argv);
|
|
55
56
|
// Show help if no command provided
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +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,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,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;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAE1C,gCAAgC;AAChC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAE1F,MAAM,CAAC,KAAK,UAAU,GAAG;IACvB,OAAO;SACJ,IAAI,CAAC,WAAW,CAAC;SACjB,WAAW,CAAC,2CAA2C,CAAC;SACxD,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEhC,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,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAwC1D,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,GAAG,IAAI,CAmN/E"}
|
package/dist/commands/add.js
CHANGED
|
@@ -1,28 +1,40 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import ora from 'ora';
|
|
3
3
|
import { execa } from 'execa';
|
|
4
|
-
import {
|
|
5
|
-
import { resolvePluginPackage, PLUGIN_REGISTRY } from '../plugin-registry.js';
|
|
4
|
+
import { resolvePluginPackage, PLUGIN_REGISTRY, detectPluginType } from '../plugin-registry.js';
|
|
6
5
|
/**
|
|
7
6
|
* Detect if mediaproc core is installed globally or locally
|
|
8
7
|
*/
|
|
9
|
-
function isGlobalInstall() {
|
|
10
|
-
// Check if we're running from global node_modules
|
|
11
|
-
const globalPaths = process.env.NODE_PATH?.split(':') || [];
|
|
8
|
+
async function isGlobalInstall() {
|
|
12
9
|
const execPath = process.argv[1];
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
// Check if we're running from global node_modules
|
|
11
|
+
if (execPath.includes('/node_modules/@mediaproc/cli') ||
|
|
12
|
+
execPath.includes('\\node_modules\\@mediaproc\\cli')) {
|
|
13
|
+
// Check if it's under a project's node_modules (local) or global
|
|
14
|
+
const hasLocalPackageJson = execPath.includes('/node_modules/') &&
|
|
15
|
+
!execPath.includes('/usr/') &&
|
|
16
|
+
!execPath.includes('/.nvm/') &&
|
|
17
|
+
!execPath.includes('/.npm-global/');
|
|
18
|
+
if (!hasLocalPackageJson) {
|
|
19
|
+
return true; // Global install
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// Check npm/pnpm global root
|
|
23
|
+
try {
|
|
24
|
+
const { stdout: npmRoot } = await execa('npm', ['root', '-g'], { stdio: 'pipe' });
|
|
25
|
+
if (execPath.includes(npmRoot.trim())) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch { }
|
|
30
|
+
try {
|
|
31
|
+
const { stdout: pnpmRoot } = await execa('pnpm', ['root', '-g'], { stdio: 'pipe' });
|
|
32
|
+
if (execPath.includes(pnpmRoot.trim())) {
|
|
15
33
|
return true;
|
|
16
34
|
}
|
|
17
35
|
}
|
|
18
|
-
|
|
19
|
-
|
|
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));
|
|
36
|
+
catch { }
|
|
37
|
+
return false;
|
|
26
38
|
}
|
|
27
39
|
export function addCommand(program, pluginManager) {
|
|
28
40
|
program
|
|
@@ -33,18 +45,55 @@ export function addCommand(program, pluginManager) {
|
|
|
33
45
|
.option('--save-dev', 'Save as dev dependency (local only)')
|
|
34
46
|
.action(async (plugin, options) => {
|
|
35
47
|
try {
|
|
36
|
-
// Resolve plugin name using registry
|
|
48
|
+
// Resolve plugin name using registry (official or third-party)
|
|
37
49
|
const pluginName = resolvePluginPackage(plugin);
|
|
38
50
|
const registryEntry = Object.values(PLUGIN_REGISTRY).find(e => e.package === pluginName);
|
|
51
|
+
// Check if plugin is already installed in package.json
|
|
52
|
+
if (pluginManager.isPluginInstalled(pluginName)) {
|
|
53
|
+
// Check if it's also loaded
|
|
54
|
+
if (pluginManager.isPluginLoaded(pluginName)) {
|
|
55
|
+
ora().info(chalk.blue(`Plugin ${chalk.cyan(pluginName)} is already installed and loaded`));
|
|
56
|
+
console.log(chalk.dim(`You can use: ${chalk.white(`mediaproc ${plugin.replace('@mediaproc/', '')} <command>`)}`));
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
// Installed but not loaded - load it
|
|
61
|
+
ora().info(chalk.blue(`Plugin ${chalk.cyan(pluginName)} is already installed, loading...`));
|
|
62
|
+
try {
|
|
63
|
+
const loaded = await pluginManager.loadPlugin(pluginName, program);
|
|
64
|
+
if (loaded) {
|
|
65
|
+
ora().succeed(chalk.green(`✓ Plugin ${pluginName} loaded successfully`));
|
|
66
|
+
console.log(chalk.dim(`You can now use: ${chalk.white(`mediaproc ${plugin.replace('@mediaproc/', '')} <command>`)}`));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch (loadError) {
|
|
70
|
+
ora().fail(chalk.yellow(`Plugin installed but failed to load. Try restarting the CLI.`));
|
|
71
|
+
}
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
39
75
|
const spinner = ora(`Installing ${chalk.cyan(pluginName)}...`).start();
|
|
76
|
+
// Detect plugin type
|
|
77
|
+
const pluginType = detectPluginType(pluginName);
|
|
78
|
+
const typeLabel = pluginType === 'official' ? chalk.blue('★ OFFICIAL')
|
|
79
|
+
: pluginType === 'community' ? chalk.green('🌐 COMMUNITY')
|
|
80
|
+
: chalk.yellow('📦 THIRD-PARTY');
|
|
40
81
|
// Show plugin info
|
|
41
82
|
if (registryEntry) {
|
|
83
|
+
spinner.info(chalk.dim(`Type: ${typeLabel}`));
|
|
42
84
|
spinner.info(chalk.dim(`Description: ${registryEntry.description}`));
|
|
43
85
|
if (registryEntry.systemRequirements && registryEntry.systemRequirements.length > 0) {
|
|
44
86
|
spinner.info(chalk.yellow(`System requirements: ${registryEntry.systemRequirements.join(', ')}`));
|
|
45
87
|
}
|
|
46
|
-
spinner.start(`Installing ${chalk.cyan(pluginName)}...`);
|
|
47
88
|
}
|
|
89
|
+
else {
|
|
90
|
+
// Not in registry - show type
|
|
91
|
+
spinner.info(chalk.dim(`Type: ${typeLabel}`));
|
|
92
|
+
if (pluginType === 'third-party') {
|
|
93
|
+
spinner.info(chalk.yellow(`Warning: Third-party plugin not in official registry`));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
spinner.start(`Installing ${chalk.cyan(pluginName)}...`);
|
|
48
97
|
// Determine installation scope
|
|
49
98
|
let installGlobally = false;
|
|
50
99
|
if (options.global) {
|
|
@@ -55,7 +104,7 @@ export function addCommand(program, pluginManager) {
|
|
|
55
104
|
}
|
|
56
105
|
else {
|
|
57
106
|
// Auto-detect based on how core was installed
|
|
58
|
-
installGlobally = isGlobalInstall();
|
|
107
|
+
installGlobally = await isGlobalInstall();
|
|
59
108
|
}
|
|
60
109
|
// Determine package manager (prefer pnpm, fallback to npm)
|
|
61
110
|
let packageManager = 'pnpm';
|
|
@@ -68,45 +117,65 @@ export function addCommand(program, pluginManager) {
|
|
|
68
117
|
// Build install command
|
|
69
118
|
const args = [];
|
|
70
119
|
if (packageManager === 'pnpm') {
|
|
71
|
-
args.push(
|
|
72
|
-
if (installGlobally)
|
|
120
|
+
args.push('add');
|
|
121
|
+
if (installGlobally) {
|
|
73
122
|
args.push('-g');
|
|
74
|
-
|
|
123
|
+
}
|
|
124
|
+
else if (options.saveDev) {
|
|
75
125
|
args.push('-D');
|
|
126
|
+
}
|
|
76
127
|
}
|
|
77
128
|
else {
|
|
78
129
|
args.push('install');
|
|
79
|
-
if (installGlobally)
|
|
130
|
+
if (installGlobally) {
|
|
80
131
|
args.push('-g');
|
|
81
|
-
|
|
132
|
+
}
|
|
133
|
+
else if (options.saveDev) {
|
|
82
134
|
args.push('--save-dev');
|
|
135
|
+
}
|
|
83
136
|
}
|
|
84
137
|
args.push(pluginName);
|
|
85
138
|
// Execute installation
|
|
86
|
-
|
|
139
|
+
const installOptions = {
|
|
87
140
|
stdio: 'pipe',
|
|
88
|
-
|
|
89
|
-
|
|
141
|
+
};
|
|
142
|
+
// Only set cwd for local installs
|
|
143
|
+
if (!installGlobally) {
|
|
144
|
+
installOptions.cwd = process.cwd();
|
|
145
|
+
}
|
|
146
|
+
await execa(packageManager, args, installOptions);
|
|
90
147
|
spinner.succeed(chalk.green(`✓ Successfully installed ${pluginName}`));
|
|
148
|
+
// Update config to mark as installed
|
|
149
|
+
const configManager = pluginManager.getConfigManager();
|
|
150
|
+
configManager.addInstalledPlugin(pluginName);
|
|
91
151
|
const scope = installGlobally ? 'globally' : 'locally';
|
|
92
152
|
console.log(chalk.dim(`\nInstalled ${scope} using ${packageManager}`));
|
|
93
|
-
//
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
153
|
+
// Configure and load the plugin
|
|
154
|
+
try {
|
|
155
|
+
const loadSpinner = ora('Configuring plugin...').start();
|
|
156
|
+
// Try to load the plugin to verify it works
|
|
157
|
+
const loaded = await pluginManager.loadPlugin(pluginName, program);
|
|
158
|
+
if (loaded) {
|
|
159
|
+
loadSpinner.succeed(chalk.green('✓ Plugin configured and ready to use'));
|
|
160
|
+
// Verify plugin commands are available
|
|
161
|
+
const pluginInstance = pluginManager.getPlugin(pluginName);
|
|
162
|
+
if (pluginInstance) {
|
|
163
|
+
const commandCount = program.commands.filter(cmd => cmd.name().startsWith(plugin.replace('@mediaproc/', ''))).length;
|
|
164
|
+
if (commandCount > 0) {
|
|
165
|
+
console.log(chalk.green(`✓ Registered ${commandCount} commands`));
|
|
166
|
+
}
|
|
103
167
|
}
|
|
104
168
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
console.log(chalk.
|
|
169
|
+
else {
|
|
170
|
+
loadSpinner.warn(chalk.yellow('Plugin installed but requires CLI restart to use'));
|
|
171
|
+
console.log(chalk.dim('Run your command again to use the plugin'));
|
|
108
172
|
}
|
|
109
173
|
}
|
|
174
|
+
catch (loadError) {
|
|
175
|
+
const errorMsg = loadError instanceof Error ? loadError.message : String(loadError);
|
|
176
|
+
console.log(chalk.yellow(`⚠ Plugin installed but configuration failed: ${errorMsg}`));
|
|
177
|
+
console.log(chalk.dim(`Restart the CLI to use the plugin ${installGlobally ? '(global install)' : '(local install)'}`));
|
|
178
|
+
}
|
|
110
179
|
console.log(chalk.dim(`You can now use: ${chalk.white(`mediaproc ${plugin.replace('@mediaproc/', '')} <command>`)}`));
|
|
111
180
|
// Show example commands
|
|
112
181
|
if (registryEntry) {
|
package/dist/commands/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmHpD"}
|