@mediaproc/image 1.4.6 → 1.4.8
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/dist/commands/watermark.d.ts.map +1 -1
- package/dist/commands/watermark.js +23 -20
- package/dist/commands/watermark.js.map +1 -1
- package/dist/register.js +1 -1
- package/package.json +6 -6
- package/dist/commands/auto-enhance.d.ts +0 -3
- package/dist/commands/auto-enhance.d.ts.map +0 -1
- package/dist/commands/auto-enhance.js +0 -172
- package/dist/commands/auto-enhance.js.map +0 -1
- package/dist/commands/auto-orient.d.ts +0 -3
- package/dist/commands/auto-orient.d.ts.map +0 -1
- package/dist/commands/auto-orient.js +0 -131
- package/dist/commands/auto-orient.js.map +0 -1
- package/dist/commands/grid.d.ts +0 -3
- package/dist/commands/grid.d.ts.map +0 -1
- package/dist/commands/grid.js +0 -230
- package/dist/commands/grid.js.map +0 -1
- package/dist/commands/smart-crop.d.ts +0 -3
- package/dist/commands/smart-crop.d.ts.map +0 -1
- package/dist/commands/smart-crop.js +0 -158
- package/dist/commands/smart-crop.js.map +0 -1
- package/dist/commands/stack.d.ts +0 -3
- package/dist/commands/stack.d.ts.map +0 -1
- package/dist/commands/stack.js +0 -242
- package/dist/commands/stack.js.map +0 -1
- package/dist/utils/branding.d.ts +0 -6
- package/dist/utils/branding.d.ts.map +0 -1
- package/dist/utils/branding.js +0 -45
- package/dist/utils/branding.js.map +0 -1
- package/dist/utils/colorUtils.d.ts +0 -7
- package/dist/utils/colorUtils.d.ts.map +0 -1
- package/dist/utils/colorUtils.js +0 -82
- package/dist/utils/colorUtils.js.map +0 -1
- package/dist/utils/explainFormatter.d.ts +0 -2
- package/dist/utils/explainFormatter.d.ts.map +0 -1
- package/dist/utils/explainFormatter.js +0 -4
- package/dist/utils/explainFormatter.js.map +0 -1
- package/dist/utils/helpFormatter.d.ts +0 -63
- package/dist/utils/helpFormatter.d.ts.map +0 -1
- package/dist/utils/helpFormatter.js +0 -171
- package/dist/utils/helpFormatter.js.map +0 -1
- package/dist/utils/pathValidator.d.ts +0 -48
- package/dist/utils/pathValidator.d.ts.map +0 -1
- package/dist/utils/pathValidator.js +0 -183
- package/dist/utils/pathValidator.js.map +0 -1
package/dist/commands/stack.js
DELETED
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import ora from 'ora';
|
|
3
|
-
import * as fs from 'fs';
|
|
4
|
-
import { validatePaths, IMAGE_EXTENSIONS, createStandardHelp } from '@mediaproc/core';
|
|
5
|
-
import { createSharpInstance } from '../utils/sharp.js';
|
|
6
|
-
export function stackCommand(imageCmd) {
|
|
7
|
-
imageCmd
|
|
8
|
-
.command('stack <images...>')
|
|
9
|
-
.description('Stack multiple images horizontally or vertically')
|
|
10
|
-
.option('-d, --direction <direction>', 'Stack direction: horizontal, vertical (default: horizontal)', 'horizontal')
|
|
11
|
-
.option('-a, --align <alignment>', 'Alignment: start, center, end (default: center)', 'center')
|
|
12
|
-
.option('-g, --gap <pixels>', 'Gap between images in pixels (default: 0)', parseInt, 0)
|
|
13
|
-
.option('-b, --background <color>', 'Background color for gaps (default: transparent)', 'rgba(0,0,0,0)')
|
|
14
|
-
.option('-o, --output <path>', 'Output file path (default: stacked.png)')
|
|
15
|
-
.option('-q, --quality <quality>', 'Output quality 1-100 (default: 90)', parseInt, 90)
|
|
16
|
-
.option('--dry-run', 'Show what would be done without executing')
|
|
17
|
-
.option('-v, --verbose', 'Verbose output')
|
|
18
|
-
.option('--explain [mode]', 'Show a detailed explanation of what this command will do, including technical and human-readable output. Modes: human, details, json. Adds context like timestamp, user, and platform.')
|
|
19
|
-
.option('--help', 'Display help for stack command')
|
|
20
|
-
.action(async (images, options) => {
|
|
21
|
-
if (options.help || !images) {
|
|
22
|
-
createStandardHelp({
|
|
23
|
-
commandName: 'stack',
|
|
24
|
-
emoji: '📚',
|
|
25
|
-
description: 'Stack multiple images horizontally or vertically with customizable alignment and spacing. Perfect for before/after comparisons, image sequences, and panoramas.',
|
|
26
|
-
usage: ['stack image1.jpg image2.jpg', 'stack *.jpg --direction vertical', 'stack img1.png img2.png -d horizontal -a center -g 10'],
|
|
27
|
-
options: [
|
|
28
|
-
{ flag: '-d, --direction <direction>', description: 'Stack direction: horizontal or vertical (default: horizontal)' },
|
|
29
|
-
{ flag: '-a, --align <alignment>', description: 'Alignment: start (top/left), center, end (bottom/right) (default: center)' },
|
|
30
|
-
{ flag: '-g, --gap <pixels>', description: 'Gap between images in pixels (default: 0)' },
|
|
31
|
-
{ flag: '-b, --background <color>', description: 'Background color for gaps (default: transparent)' },
|
|
32
|
-
{ flag: '-o, --output <path>', description: 'Output file path (default: stacked.png)' },
|
|
33
|
-
{ flag: '--dry-run', description: 'Preview changes without executing' },
|
|
34
|
-
{ flag: '--explain [mode]', description: 'Show a detailed explanation of what this command will do, including technical and human-readable output. Modes: human, details, json. Adds context like timestamp, user, and platform.' },
|
|
35
|
-
{ flag: '-v, --verbose', description: 'Show detailed output' }
|
|
36
|
-
],
|
|
37
|
-
examples: [
|
|
38
|
-
{ command: 'stack before.jpg after.jpg', description: 'Horizontal before/after comparison' },
|
|
39
|
-
{ command: 'stack img1.jpg img2.jpg img3.jpg --direction vertical', description: 'Stack 3 images vertically' },
|
|
40
|
-
{ command: 'stack *.png -d horizontal -g 20 -b white', description: 'Horizontal with white gaps' },
|
|
41
|
-
{ command: 'stack photo1.jpg photo2.jpg -a end -o result.png', description: 'Right-aligned horizontal stack' },
|
|
42
|
-
{ command: 'stack panorama*.jpg -d horizontal -o panorama.jpg', description: 'Create panorama' }
|
|
43
|
-
],
|
|
44
|
-
additionalSections: [
|
|
45
|
-
{
|
|
46
|
-
title: 'Direction & Alignment',
|
|
47
|
-
items: [
|
|
48
|
-
'horizontal + start - Images aligned to top',
|
|
49
|
-
'horizontal + center - Images centered vertically',
|
|
50
|
-
'horizontal + end - Images aligned to bottom',
|
|
51
|
-
'vertical + start - Images aligned to left',
|
|
52
|
-
'vertical + center - Images centered horizontally',
|
|
53
|
-
'vertical + end - Images aligned to right'
|
|
54
|
-
]
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
title: 'Use Cases',
|
|
58
|
-
items: [
|
|
59
|
-
'Before/after comparisons',
|
|
60
|
-
'Image sequences and timelines',
|
|
61
|
-
'Panorama stitching',
|
|
62
|
-
'Portfolio layouts',
|
|
63
|
-
'Tutorial step-by-step images',
|
|
64
|
-
'Product variations display',
|
|
65
|
-
'Comparison charts'
|
|
66
|
-
]
|
|
67
|
-
}
|
|
68
|
-
],
|
|
69
|
-
tips: [
|
|
70
|
-
'Use gaps for visual separation',
|
|
71
|
-
'Transparent background works best with PNGs',
|
|
72
|
-
'Horizontal for wide comparisons, vertical for tall',
|
|
73
|
-
'Center alignment usually looks best'
|
|
74
|
-
]
|
|
75
|
-
});
|
|
76
|
-
process.exit(0);
|
|
77
|
-
}
|
|
78
|
-
const spinner = ora('Preparing images...').start();
|
|
79
|
-
try {
|
|
80
|
-
// Validate all input files and output path using core helpers
|
|
81
|
-
const { inputFiles, errors } = validatePaths(images.join(','), options.output, {
|
|
82
|
-
allowedExtensions: IMAGE_EXTENSIONS,
|
|
83
|
-
});
|
|
84
|
-
if (errors.length > 0) {
|
|
85
|
-
spinner.fail(chalk.red('Validation failed:'));
|
|
86
|
-
errors.forEach(err => console.log(chalk.red(` ✗ ${err}`)));
|
|
87
|
-
process.exit(1);
|
|
88
|
-
}
|
|
89
|
-
if (inputFiles.length < 2) {
|
|
90
|
-
spinner.fail(chalk.red('Need at least 2 valid images to stack'));
|
|
91
|
-
process.exit(1);
|
|
92
|
-
}
|
|
93
|
-
const validImages = inputFiles;
|
|
94
|
-
// Use resolveOutputPaths to get output path
|
|
95
|
-
const outputMap = require('@mediaproc/core').resolveOutputPaths(validImages, options.output || 'stacked.png', {
|
|
96
|
-
newExtension: '.png',
|
|
97
|
-
});
|
|
98
|
-
// For stack, only one output file is created
|
|
99
|
-
const outputPath = outputMap.values().next().value;
|
|
100
|
-
// Validate quality
|
|
101
|
-
let quality = Number(options.quality);
|
|
102
|
-
if (isNaN(quality) || quality < 1 || quality > 100) {
|
|
103
|
-
const { MediaProcError, ErrorType, EXIT_CODES } = require('@mediaproc/core');
|
|
104
|
-
throw new MediaProcError({
|
|
105
|
-
message: 'Quality must be an integer between 1 and 100',
|
|
106
|
-
type: ErrorType.UserInput,
|
|
107
|
-
exitCode: EXIT_CODES.USER_INPUT,
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
const direction = options.direction === 'vertical' ? 'vertical' : 'horizontal';
|
|
111
|
-
const align = options.align || 'center';
|
|
112
|
-
const gap = options.gap || 0;
|
|
113
|
-
const background = options.background || 'rgba(0,0,0,0)';
|
|
114
|
-
// Load all images and get dimensions
|
|
115
|
-
const imageDimensions = await Promise.all(validImages.map(async (img) => {
|
|
116
|
-
const meta = await createSharpInstance(img).metadata();
|
|
117
|
-
return {
|
|
118
|
-
path: img,
|
|
119
|
-
width: meta.width,
|
|
120
|
-
height: meta.height
|
|
121
|
-
};
|
|
122
|
-
}));
|
|
123
|
-
// Calculate canvas size
|
|
124
|
-
let canvasWidth;
|
|
125
|
-
let canvasHeight;
|
|
126
|
-
if (direction === 'horizontal') {
|
|
127
|
-
canvasWidth = imageDimensions.reduce((sum, img) => sum + img.width, 0) + gap * (validImages.length - 1);
|
|
128
|
-
canvasHeight = Math.max(...imageDimensions.map(img => img.height));
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
canvasWidth = Math.max(...imageDimensions.map(img => img.width));
|
|
132
|
-
canvasHeight = imageDimensions.reduce((sum, img) => sum + img.height, 0) + gap * (validImages.length - 1);
|
|
133
|
-
}
|
|
134
|
-
if (options.verbose) {
|
|
135
|
-
spinner.info(chalk.blue('Configuration:'));
|
|
136
|
-
console.log(chalk.dim(` Images: ${validImages.length}`));
|
|
137
|
-
console.log(chalk.dim(` Direction: ${direction}`));
|
|
138
|
-
console.log(chalk.dim(` Alignment: ${align}`));
|
|
139
|
-
console.log(chalk.dim(` Gap: ${gap}px`));
|
|
140
|
-
console.log(chalk.dim(` Canvas: ${canvasWidth}x${canvasHeight}`));
|
|
141
|
-
console.log(chalk.dim(` Output: ${outputPath}`));
|
|
142
|
-
console.log(chalk.dim(` Quality: ${quality}`));
|
|
143
|
-
spinner.start('Processing...');
|
|
144
|
-
}
|
|
145
|
-
if (options.dryRun) {
|
|
146
|
-
spinner.info(chalk.yellow('Dry run mode - no changes will be made'));
|
|
147
|
-
console.log(chalk.green('✓ Would stack images:'));
|
|
148
|
-
console.log(chalk.dim(` Images: ${validImages.length}`));
|
|
149
|
-
console.log(chalk.dim(` Direction: ${direction}`));
|
|
150
|
-
console.log(chalk.dim(` Output size: ${canvasWidth}x${canvasHeight}`));
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
// Create canvas
|
|
154
|
-
const canvas = await createSharpInstance({
|
|
155
|
-
create: {
|
|
156
|
-
width: canvasWidth,
|
|
157
|
-
height: canvasHeight,
|
|
158
|
-
channels: 4,
|
|
159
|
-
background: background
|
|
160
|
-
}
|
|
161
|
-
}).png().toBuffer();
|
|
162
|
-
// Position images
|
|
163
|
-
const composites = [];
|
|
164
|
-
let currentPos = 0;
|
|
165
|
-
for (let i = 0; i < validImages.length; i++) {
|
|
166
|
-
const img = imageDimensions[i];
|
|
167
|
-
let left, top;
|
|
168
|
-
if (direction === 'horizontal') {
|
|
169
|
-
left = currentPos;
|
|
170
|
-
// Vertical alignment
|
|
171
|
-
if (align === 'start') {
|
|
172
|
-
top = 0;
|
|
173
|
-
}
|
|
174
|
-
else if (align === 'end') {
|
|
175
|
-
top = canvasHeight - img.height;
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
top = Math.floor((canvasHeight - img.height) / 2);
|
|
179
|
-
}
|
|
180
|
-
currentPos += img.width + gap;
|
|
181
|
-
}
|
|
182
|
-
else {
|
|
183
|
-
top = currentPos;
|
|
184
|
-
// Horizontal alignment
|
|
185
|
-
if (align === 'start') {
|
|
186
|
-
left = 0;
|
|
187
|
-
}
|
|
188
|
-
else if (align === 'end') {
|
|
189
|
-
left = canvasWidth - img.width;
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
left = Math.floor((canvasWidth - img.width) / 2);
|
|
193
|
-
}
|
|
194
|
-
currentPos += img.height + gap;
|
|
195
|
-
}
|
|
196
|
-
const imageBuffer = await createSharpInstance(img.path).toBuffer();
|
|
197
|
-
composites.push({
|
|
198
|
-
input: imageBuffer,
|
|
199
|
-
left,
|
|
200
|
-
top
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
// Composite all images
|
|
204
|
-
let sharpInstance = createSharpInstance(canvas).composite(composites);
|
|
205
|
-
const ext = require('path').extname(outputPath).toLowerCase();
|
|
206
|
-
if (ext === '.jpg' || ext === '.jpeg') {
|
|
207
|
-
sharpInstance = sharpInstance.jpeg({ quality });
|
|
208
|
-
}
|
|
209
|
-
else if (ext === '.png') {
|
|
210
|
-
sharpInstance = sharpInstance.png({ quality });
|
|
211
|
-
}
|
|
212
|
-
else if (ext === '.webp') {
|
|
213
|
-
sharpInstance = sharpInstance.webp({ quality });
|
|
214
|
-
}
|
|
215
|
-
else if (ext === '.avif') {
|
|
216
|
-
sharpInstance = sharpInstance.avif({ quality });
|
|
217
|
-
}
|
|
218
|
-
else if (ext === '.tiff' || ext === '.tif') {
|
|
219
|
-
sharpInstance = sharpInstance.tiff({ quality });
|
|
220
|
-
}
|
|
221
|
-
await sharpInstance.toFile(outputPath);
|
|
222
|
-
const outputStats = fs.statSync(outputPath);
|
|
223
|
-
spinner.succeed(chalk.green('✓ Images stacked successfully!'));
|
|
224
|
-
console.log(chalk.dim(` Images: ${validImages.length}`));
|
|
225
|
-
console.log(chalk.dim(` Direction: ${direction}`));
|
|
226
|
-
console.log(chalk.dim(` Alignment: ${align}`));
|
|
227
|
-
console.log(chalk.dim(` Output: ${outputPath} (${canvasWidth}x${canvasHeight})`));
|
|
228
|
-
console.log(chalk.dim(` File size: ${(outputStats.size / 1024).toFixed(2)}KB`));
|
|
229
|
-
}
|
|
230
|
-
catch (error) {
|
|
231
|
-
spinner.fail(chalk.red('Failed to stack images'));
|
|
232
|
-
if (options.verbose) {
|
|
233
|
-
console.error(chalk.red('Error details:'), error);
|
|
234
|
-
}
|
|
235
|
-
else {
|
|
236
|
-
console.error(chalk.red(error.message));
|
|
237
|
-
}
|
|
238
|
-
process.exit(1);
|
|
239
|
-
}
|
|
240
|
-
});
|
|
241
|
-
}
|
|
242
|
-
//# sourceMappingURL=stack.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stack.js","sourceRoot":"","sources":["../../src/commands/stack.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/branding.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"branding.d.ts","sourceRoot":"","sources":["../../src/utils/branding.ts"],"names":[],"mappings":"AAiCA;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAO3D"}
|
package/dist/utils/branding.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { readFileSync } from 'fs';
|
|
2
|
-
import { join, dirname } from 'path';
|
|
3
|
-
import { fileURLToPath } from 'url';
|
|
4
|
-
/**
|
|
5
|
-
* Get version from package.json
|
|
6
|
-
*/
|
|
7
|
-
function getVersion(packagePath) {
|
|
8
|
-
try {
|
|
9
|
-
const packageJson = JSON.parse(readFileSync(packagePath, 'utf-8'));
|
|
10
|
-
return packageJson.version || '0.0.0';
|
|
11
|
-
}
|
|
12
|
-
catch {
|
|
13
|
-
return '0.0.0';
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Get plugin version from package.json
|
|
18
|
-
*/
|
|
19
|
-
function getPluginVersion() {
|
|
20
|
-
try {
|
|
21
|
-
if (typeof import.meta.url !== 'undefined') {
|
|
22
|
-
const currentDir = dirname(fileURLToPath(import.meta.url));
|
|
23
|
-
const packagePath = join(currentDir, '../../package.json');
|
|
24
|
-
return getVersion(packagePath);
|
|
25
|
-
}
|
|
26
|
-
const packagePath = join(process.cwd(), 'package.json');
|
|
27
|
-
return getVersion(packagePath);
|
|
28
|
-
}
|
|
29
|
-
catch {
|
|
30
|
-
return '0.0.0';
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Show plugin branding footer
|
|
35
|
-
* @param pluginName - Name of the plugin (e.g., 'Image', 'Video', 'Audio')
|
|
36
|
-
*/
|
|
37
|
-
export function showPluginBranding(pluginName) {
|
|
38
|
-
const version = getPluginVersion();
|
|
39
|
-
console.log('\n' + '─'.repeat(60));
|
|
40
|
-
console.log(` 💙 ${pluginName} Plugin v${version} · Powered by MediaProc`);
|
|
41
|
-
console.log(' 📚 Documentation: \x1b[36mhttps://docs-mediaproc.vercel.app/\x1b[0m');
|
|
42
|
-
console.log(' ⭐ Star us: \x1b[36mhttps://github.com/0xshariq/mediaproc-cli\x1b[0m');
|
|
43
|
-
console.log('─'.repeat(60) + '\n');
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=branding.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"branding.js","sourceRoot":"","sources":["../../src/utils/branding.ts"],"names":[],"mappings":"AAAA,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;AAEpC;;GAEG;AACH,SAAS,UAAU,CAAC,WAAmB;IACrC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;QACnE,OAAO,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB;IACvB,IAAI,CAAC;QACH,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;YAC3D,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;QACxD,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAkB;IACnD,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,QAAQ,UAAU,YAAY,OAAO,yBAAyB,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"colorUtils.d.ts","sourceRoot":"","sources":["../../src/utils/colorUtils.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CA8E/H"}
|
package/dist/utils/colorUtils.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
// Utility to normalize color input for plugins
|
|
2
|
-
// Accepts hex, rgb(a), named, and ascii color codes
|
|
3
|
-
export function normalizeColor(input, colorFormat) {
|
|
4
|
-
if (!input)
|
|
5
|
-
input = '#000000';
|
|
6
|
-
const namedColors = {
|
|
7
|
-
red: '#ff0000', green: '#00ff00', blue: '#0000ff', black: '#000000', white: '#ffffff', yellow: '#ffff00', cyan: '#00ffff', magenta: '#ff00ff', gray: '#808080', grey: '#808080', orange: '#ffa500', gold: '#ffd700', silver: '#c0c0c0', purple: '#800080', pink: '#ffc0cb', brown: '#a52a2a', transparent: '#00000000', // add more as needed
|
|
8
|
-
};
|
|
9
|
-
let hex = null;
|
|
10
|
-
let rgb = null;
|
|
11
|
-
// Named color
|
|
12
|
-
if (namedColors[input.toLowerCase()]) {
|
|
13
|
-
hex = namedColors[input.toLowerCase()];
|
|
14
|
-
rgb = hexToRgb(hex);
|
|
15
|
-
}
|
|
16
|
-
// Hex (#fff, #ffffff)
|
|
17
|
-
else if (/^#([a-fA-F0-9]{3}){1,2}$/.test(input)) {
|
|
18
|
-
hex = input;
|
|
19
|
-
rgb = hexToRgb(hex);
|
|
20
|
-
}
|
|
21
|
-
// Hex (#ffffffff)
|
|
22
|
-
else if (/^#([a-fA-F0-9]{4,8})$/.test(input)) {
|
|
23
|
-
hex = input;
|
|
24
|
-
rgb = hexToRgb(hex.substring(0, 7));
|
|
25
|
-
}
|
|
26
|
-
// RGB/RGBA
|
|
27
|
-
else {
|
|
28
|
-
const rgbMatch = input.match(/^rgba?\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})(?:,\s*(\d*\.?\d+))?\)$/);
|
|
29
|
-
if (rgbMatch) {
|
|
30
|
-
const [, r, g, b, a] = rgbMatch;
|
|
31
|
-
rgb = { r: Number(r), g: Number(g), b: Number(b) };
|
|
32
|
-
if (a !== undefined)
|
|
33
|
-
rgb.alpha = Number(a);
|
|
34
|
-
hex = '#' + ((1 << 24) + (rgb.r << 16) + (rgb.g << 8) + rgb.b).toString(16).slice(1);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
// ASCII code (e.g., '27,255,0' or '27,255,0,0.5')
|
|
38
|
-
const asciiMatch = input.match(/^(\d{1,3}),(\d{1,3}),(\d{1,3})(?:,(\d*\.?\d+))?$/);
|
|
39
|
-
if (asciiMatch) {
|
|
40
|
-
const [, r, g, b, a] = asciiMatch;
|
|
41
|
-
rgb = { r: Number(r), g: Number(g), b: Number(b) };
|
|
42
|
-
if (a !== undefined)
|
|
43
|
-
rgb.alpha = Number(a);
|
|
44
|
-
hex = '#' + ((1 << 24) + (rgb.r << 16) + (rgb.g << 8) + rgb.b).toString(16).slice(1);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
// Helper to parse hex to RGB
|
|
49
|
-
function hexToRgb(hex) {
|
|
50
|
-
hex = hex.replace('#', '');
|
|
51
|
-
if (hex.length === 3) {
|
|
52
|
-
hex = hex.split('').map(x => x + x).join('');
|
|
53
|
-
}
|
|
54
|
-
const num = parseInt(hex, 16);
|
|
55
|
-
return {
|
|
56
|
-
r: (num >> 16) & 255,
|
|
57
|
-
g: (num >> 8) & 255,
|
|
58
|
-
b: num & 255
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
// Output based on colorFormat
|
|
62
|
-
switch (colorFormat) {
|
|
63
|
-
case 'hex':
|
|
64
|
-
return hex || input;
|
|
65
|
-
case 'rgb':
|
|
66
|
-
if (rgb) {
|
|
67
|
-
if (rgb.alpha !== undefined) {
|
|
68
|
-
return `rgba(${rgb.r},${rgb.g},${rgb.b},${rgb.alpha})`;
|
|
69
|
-
}
|
|
70
|
-
return `rgb(${rgb.r},${rgb.g},${rgb.b})`;
|
|
71
|
-
}
|
|
72
|
-
return input;
|
|
73
|
-
case 'auto':
|
|
74
|
-
default:
|
|
75
|
-
// If alpha present, prefer rgba, else hex
|
|
76
|
-
if (rgb && rgb.alpha !== undefined) {
|
|
77
|
-
return `rgba(${rgb.r},${rgb.g},${rgb.b},${rgb.alpha})`;
|
|
78
|
-
}
|
|
79
|
-
return hex || input;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
//# sourceMappingURL=colorUtils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"colorUtils.js","sourceRoot":"","sources":["../../src/utils/colorUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"explainFormatter.d.ts","sourceRoot":"","sources":["../../src/utils/explainFormatter.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"explainFormatter.js","sourceRoot":"","sources":["../../src/utils/explainFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC,CAAC;AACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sGAAsG,CAAC,CAAC,CAAC"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Standardized Help Formatter for MediaProc Image CLI
|
|
3
|
-
* Creates consistent, beautiful help displays for all image commands
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Interface for command help options
|
|
7
|
-
*/
|
|
8
|
-
export interface HelpOption {
|
|
9
|
-
flag: string;
|
|
10
|
-
description: string;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Interface for command help examples
|
|
14
|
-
*/
|
|
15
|
-
export interface HelpExample {
|
|
16
|
-
command: string;
|
|
17
|
-
description: string;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Interface for help section
|
|
21
|
-
*/
|
|
22
|
-
export interface HelpSection {
|
|
23
|
-
title: string;
|
|
24
|
-
items: string[];
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Interface for command help configuration
|
|
28
|
-
*/
|
|
29
|
-
export interface CommandHelpConfig {
|
|
30
|
-
commandName: string;
|
|
31
|
-
emoji: string;
|
|
32
|
-
description: string;
|
|
33
|
-
usage: string[];
|
|
34
|
-
options: HelpOption[];
|
|
35
|
-
examples: HelpExample[];
|
|
36
|
-
additionalSections?: HelpSection[];
|
|
37
|
-
tips?: string[];
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Create standardized help display for commands
|
|
41
|
-
*/
|
|
42
|
-
export declare function createStandardHelp(config: CommandHelpConfig): void;
|
|
43
|
-
/**
|
|
44
|
-
* Quick help display for commands with minimal options
|
|
45
|
-
*/
|
|
46
|
-
export declare function createQuickHelp(commandName: string, emoji: string, description: string, usage: string, options: string[]): void;
|
|
47
|
-
/**
|
|
48
|
-
* Create error help display
|
|
49
|
-
*/
|
|
50
|
-
export declare function createErrorHelp(commandName: string, error: string, suggestion?: string): void;
|
|
51
|
-
/**
|
|
52
|
-
* Create success message display
|
|
53
|
-
*/
|
|
54
|
-
export declare function createSuccessMessage(message: string, details?: string[]): void;
|
|
55
|
-
/**
|
|
56
|
-
* Create info message display
|
|
57
|
-
*/
|
|
58
|
-
export declare function createInfoMessage(title: string, items: string[]): void;
|
|
59
|
-
/**
|
|
60
|
-
* Create warning message display
|
|
61
|
-
*/
|
|
62
|
-
export declare function createWarningMessage(message: string, details?: string[]): void;
|
|
63
|
-
//# sourceMappingURL=helpFormatter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpFormatter.d.ts","sourceRoot":"","sources":["../../src/utils/helpFormatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,kBAAkB,CAAC,EAAE,WAAW,EAAE,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAsCD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAiFlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EAAE,GAChB,IAAI,CAgBN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAa7F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAW9E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAMtE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAW9E"}
|