@mediaproc/cli 0.8.4 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +25 -13
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/add.d.ts +1 -1
  5. package/dist/commands/add.d.ts.map +1 -1
  6. package/dist/commands/add.js +56 -131
  7. package/dist/commands/add.js.map +1 -1
  8. package/dist/commands/help.js +1 -1
  9. package/dist/commands/help.js.map +1 -1
  10. package/dist/commands/history.js +1 -1
  11. package/dist/commands/history.js.map +1 -1
  12. package/dist/commands/list.d.ts +1 -1
  13. package/dist/commands/list.d.ts.map +1 -1
  14. package/dist/commands/list.js +3 -3
  15. package/dist/commands/list.js.map +1 -1
  16. package/dist/commands/plugins.d.ts +1 -1
  17. package/dist/commands/plugins.d.ts.map +1 -1
  18. package/dist/commands/plugins.js +1 -1
  19. package/dist/commands/plugins.js.map +1 -1
  20. package/dist/commands/remove.d.ts +1 -1
  21. package/dist/commands/remove.d.ts.map +1 -1
  22. package/dist/commands/remove.js +14 -47
  23. package/dist/commands/remove.js.map +1 -1
  24. package/dist/commands/update.d.ts +2 -1
  25. package/dist/commands/update.d.ts.map +1 -1
  26. package/dist/commands/update.js +121 -142
  27. package/dist/commands/update.js.map +1 -1
  28. package/dist/index.d.ts +1 -1
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/types.d.ts +3 -0
  33. package/dist/types.d.ts.map +1 -1
  34. package/dist/utils/history-manager.d.ts.map +1 -0
  35. package/dist/{history-manager.js → utils/history-manager.js} +1 -1
  36. package/dist/utils/history-manager.js.map +1 -0
  37. package/dist/utils/index.d.ts +4 -0
  38. package/dist/utils/index.d.ts.map +1 -0
  39. package/dist/utils/index.js +7 -0
  40. package/dist/utils/index.js.map +1 -0
  41. package/dist/utils/package-manager.d.ts +37 -0
  42. package/dist/utils/package-manager.d.ts.map +1 -0
  43. package/dist/utils/package-manager.js +195 -0
  44. package/dist/utils/package-manager.js.map +1 -0
  45. package/dist/utils/plugin-helpers.d.ts +39 -0
  46. package/dist/utils/plugin-helpers.d.ts.map +1 -0
  47. package/dist/utils/plugin-helpers.js +156 -0
  48. package/dist/utils/plugin-helpers.js.map +1 -0
  49. package/dist/utils/plugins/api.d.ts +106 -0
  50. package/dist/utils/plugins/api.d.ts.map +1 -0
  51. package/dist/utils/plugins/api.js +20 -0
  52. package/dist/utils/plugins/api.js.map +1 -0
  53. package/dist/utils/plugins/index.d.ts +4 -0
  54. package/dist/utils/plugins/index.d.ts.map +1 -0
  55. package/dist/utils/plugins/index.js +7 -0
  56. package/dist/utils/plugins/index.js.map +1 -0
  57. package/dist/utils/plugins/manager.d.ts +88 -0
  58. package/dist/utils/plugins/manager.d.ts.map +1 -0
  59. package/dist/utils/plugins/manager.js +267 -0
  60. package/dist/utils/plugins/manager.js.map +1 -0
  61. package/dist/{plugin-registry.d.ts → utils/plugins/registry.d.ts} +22 -1
  62. package/dist/utils/plugins/registry.d.ts.map +1 -0
  63. package/dist/{plugin-registry.js → utils/plugins/registry.js} +105 -7
  64. package/dist/utils/plugins/registry.js.map +1 -0
  65. package/package.json +4 -18
  66. package/dist/commands/delete.d.ts +0 -7
  67. package/dist/commands/delete.d.ts.map +0 -1
  68. package/dist/commands/delete.js +0 -250
  69. package/dist/commands/delete.js.map +0 -1
  70. package/dist/commands/stats.d.ts +0 -3
  71. package/dist/commands/stats.d.ts.map +0 -1
  72. package/dist/commands/stats.js +0 -157
  73. package/dist/commands/stats.js.map +0 -1
  74. package/dist/history-manager.d.ts.map +0 -1
  75. package/dist/history-manager.js.map +0 -1
  76. package/dist/plugin-api.d.ts +0 -44
  77. package/dist/plugin-api.d.ts.map +0 -1
  78. package/dist/plugin-api.js +0 -2
  79. package/dist/plugin-api.js.map +0 -1
  80. package/dist/plugin-manager.d.ts +0 -42
  81. package/dist/plugin-manager.d.ts.map +0 -1
  82. package/dist/plugin-manager.js +0 -113
  83. package/dist/plugin-manager.js.map +0 -1
  84. package/dist/plugin-registry.d.ts.map +0 -1
  85. package/dist/plugin-registry.js.map +0 -1
  86. /package/dist/{history-manager.d.ts → utils/history-manager.d.ts} +0 -0
@@ -0,0 +1,37 @@
1
+ export type PackageManager = 'npm' | 'pnpm' | 'yarn' | 'bun' | 'deno';
2
+ /**
3
+ * Detect available package managers
4
+ * Checks in preferred order: pnpm > bun > yarn > npm > deno
5
+ * @returns Detected package manager, defaults to 'npm' if none found
6
+ */
7
+ export declare function detectPackageManager(): Promise<PackageManager>;
8
+ /**
9
+ * Check if CLI is running from a global installation
10
+ */
11
+ export declare function isGlobalInstall(): Promise<boolean>;
12
+ /**
13
+ * Check if a plugin is installed globally
14
+ * @param pluginName - Full plugin package name
15
+ * @returns true if plugin is installed globally, false otherwise
16
+ */
17
+ export declare function isPluginGlobal(pluginName: string): Promise<boolean>;
18
+ /**
19
+ * Build package manager installation arguments
20
+ * @param packageManager - The package manager to use
21
+ * @param pluginNames - Plugin name(s) to install (string or array)
22
+ * @param options - Installation options
23
+ */
24
+ export declare function buildInstallArgs(packageManager: PackageManager, pluginNames: string | string[], options?: {
25
+ global?: boolean;
26
+ saveDev?: boolean;
27
+ }): string[];
28
+ /**
29
+ * Build package manager uninstall arguments
30
+ * @param packageManager - The package manager to use
31
+ * @param pluginNames - Plugin name(s) to uninstall (string or array)
32
+ * @param options - Uninstallation options
33
+ */
34
+ export declare function buildUninstallArgs(packageManager: PackageManager, pluginNames: string | string[], options?: {
35
+ global?: boolean;
36
+ }): string[];
37
+ //# sourceMappingURL=package-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../src/utils/package-manager.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAEtE;;;;GAIG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,cAAc,CAAC,CAwBpE;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAqBxD;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAqDzE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,EAC9B,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACd,GACL,MAAM,EAAE,CAkCV;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,EAC9B,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,OAAO,CAAC;CACb,GACL,MAAM,EAAE,CA8BV"}
@@ -0,0 +1,195 @@
1
+ import { execa } from 'execa';
2
+ /**
3
+ * Detect available package managers
4
+ * Checks in preferred order: pnpm > bun > yarn > npm > deno
5
+ * @returns Detected package manager, defaults to 'npm' if none found
6
+ */
7
+ export async function detectPackageManager() {
8
+ const managers = ['pnpm', 'bun', 'yarn', 'npm', 'deno'];
9
+ for (const manager of managers) {
10
+ try {
11
+ // Set timeout to avoid hanging on slow systems
12
+ const { stdout } = await execa(manager, ['--version'], {
13
+ stdio: 'pipe',
14
+ timeout: 5000,
15
+ reject: false
16
+ });
17
+ // Verify we got valid output
18
+ if (stdout && stdout.trim()) {
19
+ return manager;
20
+ }
21
+ }
22
+ catch (error) {
23
+ // Continue to next manager if this one fails
24
+ continue;
25
+ }
26
+ }
27
+ // Always fallback to npm (should be available on most systems)
28
+ return 'npm';
29
+ }
30
+ /**
31
+ * Check if CLI is running from a global installation
32
+ */
33
+ export async function isGlobalInstall() {
34
+ const execPath = process.argv[1];
35
+ // Check common global paths
36
+ const globalPaths = [
37
+ '/usr/local',
38
+ '/usr/lib',
39
+ '/.nvm/',
40
+ '/.npm-global/',
41
+ '/.npm/',
42
+ '/AppData/Roaming/npm',
43
+ '/pnpm-global/',
44
+ '/.bun/install/global',
45
+ '/.yarn/global'
46
+ ];
47
+ if (globalPaths.some(p => execPath.includes(p))) {
48
+ return true;
49
+ }
50
+ return false;
51
+ }
52
+ /**
53
+ * Check if a plugin is installed globally
54
+ * @param pluginName - Full plugin package name
55
+ * @returns true if plugin is installed globally, false otherwise
56
+ */
57
+ export async function isPluginGlobal(pluginName) {
58
+ if (!pluginName || typeof pluginName !== 'string') {
59
+ return false;
60
+ }
61
+ const trimmed = pluginName.trim();
62
+ if (!trimmed) {
63
+ return false;
64
+ }
65
+ // Try npm list -g
66
+ try {
67
+ const { stdout } = await execa('npm', ['list', '-g', '--depth=0', trimmed], {
68
+ stdio: 'pipe',
69
+ reject: false,
70
+ timeout: 10000
71
+ });
72
+ if (stdout && stdout.includes(trimmed)) {
73
+ return true;
74
+ }
75
+ }
76
+ catch {
77
+ // Continue to next check
78
+ }
79
+ // Try pnpm list -g
80
+ try {
81
+ const { stdout } = await execa('pnpm', ['list', '-g', '--depth=0', trimmed], {
82
+ stdio: 'pipe',
83
+ reject: false,
84
+ timeout: 10000
85
+ });
86
+ if (stdout && stdout.includes(trimmed)) {
87
+ return true;
88
+ }
89
+ }
90
+ catch {
91
+ // Continue to next check
92
+ }
93
+ // Try yarn global list
94
+ try {
95
+ const { stdout } = await execa('yarn', ['global', 'list'], {
96
+ stdio: 'pipe',
97
+ reject: false,
98
+ timeout: 10000
99
+ });
100
+ if (stdout && stdout.includes(trimmed)) {
101
+ return true;
102
+ }
103
+ }
104
+ catch {
105
+ // All checks failed
106
+ }
107
+ return false;
108
+ }
109
+ /**
110
+ * Build package manager installation arguments
111
+ * @param packageManager - The package manager to use
112
+ * @param pluginNames - Plugin name(s) to install (string or array)
113
+ * @param options - Installation options
114
+ */
115
+ export function buildInstallArgs(packageManager, pluginNames, options = {}) {
116
+ const args = [];
117
+ const names = Array.isArray(pluginNames) ? pluginNames : [pluginNames];
118
+ switch (packageManager) {
119
+ case 'pnpm':
120
+ args.push('add');
121
+ if (options.global)
122
+ args.push('-g');
123
+ else if (options.saveDev)
124
+ args.push('-D');
125
+ break;
126
+ case 'bun':
127
+ args.push('add');
128
+ if (options.global)
129
+ args.push('-g');
130
+ else if (options.saveDev)
131
+ args.push('-d');
132
+ break;
133
+ case 'yarn':
134
+ if (options.global) {
135
+ args.push('global', 'add');
136
+ }
137
+ else {
138
+ args.push('add');
139
+ if (options.saveDev)
140
+ args.push('--dev');
141
+ }
142
+ break;
143
+ case 'deno':
144
+ // Deno doesn't need traditional installation
145
+ return [];
146
+ default: // npm
147
+ args.push('install');
148
+ if (options.global)
149
+ args.push('-g');
150
+ else if (options.saveDev)
151
+ args.push('--save-dev');
152
+ }
153
+ args.push(...names);
154
+ return args;
155
+ }
156
+ /**
157
+ * Build package manager uninstall arguments
158
+ * @param packageManager - The package manager to use
159
+ * @param pluginNames - Plugin name(s) to uninstall (string or array)
160
+ * @param options - Uninstallation options
161
+ */
162
+ export function buildUninstallArgs(packageManager, pluginNames, options = {}) {
163
+ const args = [];
164
+ const names = Array.isArray(pluginNames) ? pluginNames : [pluginNames];
165
+ switch (packageManager) {
166
+ case 'pnpm':
167
+ args.push('remove');
168
+ if (options.global)
169
+ args.push('-g');
170
+ break;
171
+ case 'yarn':
172
+ if (options.global) {
173
+ args.push('global', 'remove');
174
+ }
175
+ else {
176
+ args.push('remove');
177
+ }
178
+ break;
179
+ case 'bun':
180
+ args.push('remove');
181
+ if (options.global)
182
+ args.push('-g');
183
+ break;
184
+ case 'deno':
185
+ // Deno doesn't have traditional uninstall
186
+ return [];
187
+ default: // npm
188
+ args.push('uninstall');
189
+ if (options.global)
190
+ args.push('-g');
191
+ }
192
+ args.push(...names);
193
+ return args;
194
+ }
195
+ //# sourceMappingURL=package-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../../src/utils/package-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { Command } from 'commander';
2
+ import type { PluginManager } from './plugins/manager.js';
3
+ /**
4
+ * Verify plugin is installed and can be imported
5
+ * @param pluginName - Full plugin package name
6
+ * @param isGlobal - Optional flag to check global installation
7
+ */
8
+ export declare function verifyPluginInstallation(pluginName: string, isGlobal?: boolean): Promise<boolean>;
9
+ /**
10
+ * Load plugin with error handling
11
+ * @param pluginName - Full plugin package name
12
+ * @param program - Commander program instance
13
+ * @param pluginManager - Plugin manager instance
14
+ */
15
+ export declare function loadPluginSafe(pluginName: string, program: Command, pluginManager: PluginManager): Promise<{
16
+ success: boolean;
17
+ error?: string;
18
+ }>;
19
+ /**
20
+ * Check if plugin is already loaded
21
+ */
22
+ export declare function isPluginLoaded(pluginName: string, pluginManager: PluginManager): boolean;
23
+ /**
24
+ * Format plugin name for display (remove @mediaproc/ prefix)
25
+ */
26
+ export declare function formatPluginName(pluginName: string): string;
27
+ /**
28
+ * Resolve plugin command name (e.g., 'image' from '@mediaproc/image')
29
+ */
30
+ export declare function getPluginCommand(pluginName: string): string;
31
+ /**
32
+ * Validate plugin name format
33
+ */
34
+ export declare function isValidPluginName(pluginName: string): boolean;
35
+ /**
36
+ * Get plugin examples by package name
37
+ */
38
+ export declare function getPluginExamples(packageName: string): string[];
39
+ //# sourceMappingURL=plugin-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-helpers.d.ts","sourceRoot":"","sources":["../../src/utils/plugin-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,OAAO,GACjB,OAAO,CAAC,OAAO,CAAC,CAqBlB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAwB/C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,GAAG,OAAO,CAExF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAQ3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAW7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CA0D/D"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Verify plugin is installed and can be imported
3
+ * @param pluginName - Full plugin package name
4
+ * @param isGlobal - Optional flag to check global installation
5
+ */
6
+ export async function verifyPluginInstallation(pluginName, isGlobal) {
7
+ try {
8
+ // Try importing the plugin
9
+ await import(pluginName);
10
+ return true;
11
+ }
12
+ catch (importError) {
13
+ // If import fails and we're checking global, verify via package manager
14
+ if (isGlobal !== undefined) {
15
+ try {
16
+ const { execa } = await import('execa');
17
+ const { stdout } = await execa('npm', ['list', '-g', '--depth=0', pluginName], {
18
+ stdio: 'pipe',
19
+ reject: false
20
+ });
21
+ return stdout.includes(pluginName);
22
+ }
23
+ catch {
24
+ return false;
25
+ }
26
+ }
27
+ return false;
28
+ }
29
+ }
30
+ /**
31
+ * Load plugin with error handling
32
+ * @param pluginName - Full plugin package name
33
+ * @param program - Commander program instance
34
+ * @param pluginManager - Plugin manager instance
35
+ */
36
+ export async function loadPluginSafe(pluginName, program, pluginManager) {
37
+ try {
38
+ // Check if already loaded
39
+ if (pluginManager.getPlugin(pluginName)) {
40
+ return { success: true };
41
+ }
42
+ // Attempt to load
43
+ await pluginManager.loadPlugin(pluginName, program);
44
+ return { success: true };
45
+ }
46
+ catch (error) {
47
+ const errorMessage = error instanceof Error ? error.message : String(error);
48
+ // Check if it's a "module not found" error
49
+ if (errorMessage.includes('Cannot find module') || errorMessage.includes('MODULE_NOT_FOUND')) {
50
+ return {
51
+ success: false,
52
+ error: 'Plugin not installed. Please install it first.'
53
+ };
54
+ }
55
+ // Return the actual error
56
+ return { success: false, error: errorMessage };
57
+ }
58
+ }
59
+ /**
60
+ * Check if plugin is already loaded
61
+ */
62
+ export function isPluginLoaded(pluginName, pluginManager) {
63
+ return pluginManager.getPlugin(pluginName) !== undefined;
64
+ }
65
+ /**
66
+ * Format plugin name for display (remove @mediaproc/ prefix)
67
+ */
68
+ export function formatPluginName(pluginName) {
69
+ return pluginName.replace('@mediaproc/', '').replace('mediaproc-', '');
70
+ }
71
+ /**
72
+ * Resolve plugin command name (e.g., 'image' from '@mediaproc/image')
73
+ */
74
+ export function getPluginCommand(pluginName) {
75
+ if (pluginName.startsWith('@mediaproc/')) {
76
+ return pluginName.replace('@mediaproc/', '');
77
+ }
78
+ if (pluginName.startsWith('mediaproc-')) {
79
+ return pluginName.replace('mediaproc-', '');
80
+ }
81
+ return pluginName;
82
+ }
83
+ /**
84
+ * Validate plugin name format
85
+ */
86
+ export function isValidPluginName(pluginName) {
87
+ // Must be scoped (@mediaproc/), community (mediaproc-), or valid npm package name
88
+ const scopedRegex = /^@[\w-]+\/[\w-]+$/;
89
+ const communityRegex = /^mediaproc-[\w-]+$/;
90
+ const npmRegex = /^[\w-]+$/;
91
+ return (scopedRegex.test(pluginName) ||
92
+ communityRegex.test(pluginName) ||
93
+ npmRegex.test(pluginName));
94
+ }
95
+ /**
96
+ * Get plugin examples by package name
97
+ */
98
+ export function getPluginExamples(packageName) {
99
+ const examples = {
100
+ '@mediaproc/image': [
101
+ 'resize photo.jpg -w 800',
102
+ 'convert image.png --format webp',
103
+ 'grayscale photo.jpg',
104
+ 'compress image.png --quality 80'
105
+ ],
106
+ '@mediaproc/video': [
107
+ 'compress movie.mp4 --quality high',
108
+ 'transcode video.avi --format mp4',
109
+ 'trim video.mp4 -s 00:00:10 -e 00:01:00',
110
+ 'resize video.mp4 -s 720p'
111
+ ],
112
+ '@mediaproc/audio': [
113
+ 'convert song.wav --format mp3',
114
+ 'normalize audio.mp3',
115
+ 'trim music.mp3 -s 30 -d 60',
116
+ 'extract video.mp4 --format flac'
117
+ ],
118
+ '@mediaproc/document': [
119
+ 'compress report.pdf --quality ebook',
120
+ 'ocr scanned.pdf',
121
+ 'convert document.docx --format pdf'
122
+ ],
123
+ '@mediaproc/animation': [
124
+ 'gifify video.mp4 --fps 15',
125
+ 'optimize animation.gif',
126
+ 'convert video.mp4 --format webp'
127
+ ],
128
+ '@mediaproc/3d': [
129
+ 'optimize model.glb',
130
+ 'compress textures/',
131
+ 'convert model.obj --format glb'
132
+ ],
133
+ '@mediaproc/metadata': [
134
+ 'inspect video.mp4',
135
+ 'strip-metadata image.jpg',
136
+ 'extract audio.mp3'
137
+ ],
138
+ '@mediaproc/stream': [
139
+ 'pack video.mp4 --hls',
140
+ 'encrypt video.mp4 --drm',
141
+ 'manifest playlist.m3u8'
142
+ ],
143
+ '@mediaproc/ai': [
144
+ 'blur-faces video.mp4',
145
+ 'caption audio.wav',
146
+ 'detect-scenes video.mp4'
147
+ ],
148
+ '@mediaproc/pipeline': [
149
+ 'run workflow.yaml',
150
+ 'validate pipeline.yaml',
151
+ 'execute batch-process.yaml'
152
+ ]
153
+ };
154
+ return examples[packageName] || [];
155
+ }
156
+ //# sourceMappingURL=plugin-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-helpers.js","sourceRoot":"","sources":["../../src/utils/plugin-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import type { Command } from 'commander';
2
+ /**
3
+ * Plugin API for mediaproc
4
+ *
5
+ * All plugins must export a `register` function that takes a Commander program
6
+ * and registers their commands.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * import type { Command } from 'commander';
11
+ *
12
+ * export const name = '@mediaproc/plugin-name';
13
+ * export const version = '1.0.0';
14
+ *
15
+ * export function register(program: Command): void {
16
+ * const pluginCmd = program
17
+ * .command('plugin')
18
+ * .description('plugin description')
19
+ * .version(version, '-v, --version', 'Output the plugin version')
20
+ * .helpOption('-h, --help', 'Display help for plugin');
21
+ *
22
+ * pluginCmd
23
+ * .command('subcommand <parameters>')
24
+ * .option('--flags', 'Flag description')
25
+ * .action(async (input, options) => {
26
+ * // Implementation
27
+ * });
28
+ * }
29
+ * ```
30
+ */
31
+ export interface PluginAPI {
32
+ /**
33
+ * Plugin name (should match package name)
34
+ * - Official: @mediaproc/plugin-name
35
+ * - Community: mediaproc-plugin-name
36
+ * - Third-party: any valid npm package name
37
+ */
38
+ name: string;
39
+ /**
40
+ * Plugin version (semver format)
41
+ */
42
+ version: string;
43
+ /**
44
+ * Register commands with the CLI
45
+ * This function is called when the plugin is loaded
46
+ */
47
+ register(program: Command): void | Promise<void>;
48
+ /**
49
+ * Optional: Indicates if this is a built-in/bundled plugin
50
+ */
51
+ isBuiltIn?: boolean;
52
+ /**
53
+ * Optional: Plugin description
54
+ */
55
+ description?: string;
56
+ /**
57
+ * Optional: Plugin author
58
+ */
59
+ author?: string;
60
+ /**
61
+ * Optional: System requirements (e.g., FFmpeg, Sharp)
62
+ */
63
+ systemRequirements?: string[];
64
+ }
65
+ /**
66
+ * Plugin metadata structure
67
+ */
68
+ export interface PluginMetadata {
69
+ name: string;
70
+ version: string;
71
+ description?: string;
72
+ author?: string;
73
+ homepage?: string;
74
+ repository?: string;
75
+ license?: string;
76
+ keywords?: string[];
77
+ dependencies?: Record<string, string>;
78
+ peerDependencies?: Record<string, string>;
79
+ }
80
+ /**
81
+ * Plugin load result
82
+ */
83
+ export interface PluginLoadResult {
84
+ success: boolean;
85
+ plugin?: PluginAPI;
86
+ error?: string;
87
+ }
88
+ /**
89
+ * Plugin type enum
90
+ */
91
+ export declare enum PluginType {
92
+ OFFICIAL = "official",
93
+ COMMUNITY = "community",
94
+ THIRD_PARTY = "third-party"
95
+ }
96
+ /**
97
+ * Plugin status
98
+ */
99
+ export declare enum PluginStatus {
100
+ LOADED = "loaded",
101
+ NOT_INSTALLED = "not-installed",
102
+ LOADING = "loading",
103
+ ERROR = "error"
104
+ }
105
+ export type { Command };
106
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/utils/plugins/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,WAAW,SAAS;IACxB;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjD;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,oBAAY,UAAU;IACpB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,WAAW,gBAAgB;CAC5B;AAED;;GAEG;AACH,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,aAAa,kBAAkB;IAC/B,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,YAAY,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Plugin type enum
3
+ */
4
+ export var PluginType;
5
+ (function (PluginType) {
6
+ PluginType["OFFICIAL"] = "official";
7
+ PluginType["COMMUNITY"] = "community";
8
+ PluginType["THIRD_PARTY"] = "third-party";
9
+ })(PluginType || (PluginType = {}));
10
+ /**
11
+ * Plugin status
12
+ */
13
+ export var PluginStatus;
14
+ (function (PluginStatus) {
15
+ PluginStatus["LOADED"] = "loaded";
16
+ PluginStatus["NOT_INSTALLED"] = "not-installed";
17
+ PluginStatus["LOADING"] = "loading";
18
+ PluginStatus["ERROR"] = "error";
19
+ })(PluginStatus || (PluginStatus = {}));
20
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/utils/plugins/api.ts"],"names":[],"mappings":"AAkGA;;GAEG;AACH,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,mCAAqB,CAAA;IACrB,qCAAuB,CAAA;IACvB,yCAA2B,CAAA;AAC7B,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,+CAA+B,CAAA;IAC/B,mCAAmB,CAAA;IACnB,+BAAe,CAAA;AACjB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB"}
@@ -0,0 +1,4 @@
1
+ export * from './api.js';
2
+ export { PluginManager, pluginManager, getPluginNameForCommand } from './manager.js';
3
+ export { resolvePluginPackage, detectPluginType, getPluginsByCategory, getAllPlugins, searchPlugins, getPluginEntry, isValidPlugin, getPluginCategory, PLUGIN_REGISTRY, type PluginRegistryEntry } from './registry.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/plugins/index.ts"],"names":[],"mappings":"AACA,cAAc,UAAU,CAAC;AAGzB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAGrF,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,KAAK,mBAAmB,EACzB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,7 @@
1
+ // Plugin API types and interfaces
2
+ export * from './api.js';
3
+ // Plugin Manager
4
+ export { PluginManager, pluginManager, getPluginNameForCommand } from './manager.js';
5
+ // Plugin Registry
6
+ export { resolvePluginPackage, detectPluginType, getPluginsByCategory, getAllPlugins, searchPlugins, getPluginEntry, isValidPlugin, getPluginCategory, PLUGIN_REGISTRY } from './registry.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/plugins/index.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,cAAc,UAAU,CAAC;AAEzB,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAErF,kBAAkB;AAClB,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,eAAe,EAEhB,MAAM,eAAe,CAAC"}