@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watermark.d.ts","sourceRoot":"","sources":["../../src/commands/watermark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"watermark.d.ts","sourceRoot":"","sources":["../../src/commands/watermark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBzC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAoTxD"}
|
|
@@ -6,9 +6,10 @@ import { createSharpInstance, sharp } from '../utils/sharp.js';
|
|
|
6
6
|
import path from 'path';
|
|
7
7
|
export function watermarkCommand(imageCmd) {
|
|
8
8
|
imageCmd
|
|
9
|
-
.command('watermark [input]
|
|
9
|
+
.command('watermark [input]')
|
|
10
10
|
.description('Add image or text watermark to image')
|
|
11
11
|
.option('-o, --output <path>', 'Output file path')
|
|
12
|
+
.option('-w, --watermark <value>', 'Text or image path to use as watermark')
|
|
12
13
|
.option('--position <position>', 'Position: center, top-left, top-right, bottom-left, bottom-right', 'bottom-right')
|
|
13
14
|
.option('--opacity <opacity>', 'Watermark opacity (0-1, default: 0.5)', parseFloat, 0.5)
|
|
14
15
|
.option('--scale <scale>', 'Scale: for images (0.1-1 of width, default: 0.2), for text (multiplier, default: 1.0)', parseFloat)
|
|
@@ -20,7 +21,7 @@ export function watermarkCommand(imageCmd) {
|
|
|
20
21
|
.option('-v, --verbose', 'Verbose output')
|
|
21
22
|
.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.')
|
|
22
23
|
.option('--help', 'Display help for watermark command')
|
|
23
|
-
.action(async (input,
|
|
24
|
+
.action(async (input, options) => {
|
|
24
25
|
if (options.help || !input) {
|
|
25
26
|
createStandardHelp({
|
|
26
27
|
pluginName: 'image',
|
|
@@ -28,13 +29,14 @@ export function watermarkCommand(imageCmd) {
|
|
|
28
29
|
emoji: '©️',
|
|
29
30
|
description: 'Add image or text watermark to images for copyright protection, branding, or attribution. Automatically detects if watermark is a file or text.',
|
|
30
31
|
usage: [
|
|
31
|
-
'watermark <input> <watermark>',
|
|
32
|
-
'watermark <input> logo.png --position center',
|
|
33
|
-
'watermark <input> "Powered by MediaProc" --font-size 64',
|
|
34
|
-
'watermark <input> "© 2026" --position bottom-right --opacity 0.7'
|
|
32
|
+
'watermark <input> -w <watermark>',
|
|
33
|
+
'watermark <input> -w logo.png --position center',
|
|
34
|
+
'watermark <input> -w "Powered by MediaProc" --font-size 64',
|
|
35
|
+
'watermark <input> -w "© 2026" --position bottom-right --opacity 0.7'
|
|
35
36
|
],
|
|
36
37
|
options: [
|
|
37
38
|
{ flag: '-o, --output <path>', description: 'Output file path (default: <input>-watermarked.<ext>)' },
|
|
39
|
+
{ flag: '-w, --watermark <value>', description: 'Text or image path to use as watermark' },
|
|
38
40
|
{ flag: '--position <position>', description: 'Position: center, top-left, top-right, bottom-left, bottom-right (default: bottom-right)' },
|
|
39
41
|
{ flag: '--opacity <opacity>', description: 'Watermark opacity 0-1 (default: 0.5)' },
|
|
40
42
|
{ flag: '--scale <scale>', description: 'Scale factor - Image: 0.1-1 of image width (default: 0.2), Text: size multiplier (default: 1.0)' },
|
|
@@ -47,11 +49,11 @@ export function watermarkCommand(imageCmd) {
|
|
|
47
49
|
{ flag: '-v, --verbose', description: 'Show detailed output' }
|
|
48
50
|
],
|
|
49
51
|
examples: [
|
|
50
|
-
{ command: 'watermark photo.jpg logo.png', description: 'Add image watermark from file' },
|
|
51
|
-
{ command: 'watermark image.jpg "© 2026 Company"', description: 'Add text watermark' },
|
|
52
|
-
{ command: 'watermark pic.jpg "Powered by MediaProc" --scale 1.5', description: 'Larger text watermark (1.5x)' },
|
|
53
|
-
{ command: 'watermark photo.jpg brand.png --scale 0.3 --position top-right', description: 'Larger image watermark (30% of width)' },
|
|
54
|
-
{ command: 'watermark *.jpg "DRAFT" --font-color red --scale 2', description: 'Batch large text watermark in red' }
|
|
52
|
+
{ command: 'watermark photo.jpg -w logo.png', description: 'Add image watermark from file' },
|
|
53
|
+
{ command: 'watermark image.jpg -w "© 2026 Company"', description: 'Add text watermark' },
|
|
54
|
+
{ command: 'watermark pic.jpg -w "Powered by MediaProc" --scale 1.5', description: 'Larger text watermark (1.5x)' },
|
|
55
|
+
{ command: 'watermark photo.jpg -w brand.png --scale 0.3 --position top-right', description: 'Larger image watermark (30% of width)' },
|
|
56
|
+
{ command: 'watermark *.jpg -w "DRAFT" --font-color red --scale 2', description: 'Batch large text watermark in red' }
|
|
55
57
|
],
|
|
56
58
|
additionalSections: [
|
|
57
59
|
{
|
|
@@ -81,19 +83,20 @@ export function watermarkCommand(imageCmd) {
|
|
|
81
83
|
});
|
|
82
84
|
process.exit(0);
|
|
83
85
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
+
const watermarkValue = options.watermark?.trim();
|
|
87
|
+
if (!input || !watermarkValue) {
|
|
88
|
+
console.error(chalk.red('Error: input and watermark are required (use -w, --watermark <value>)'));
|
|
86
89
|
process.exit(1);
|
|
87
90
|
}
|
|
88
91
|
const spinner = ora('Processing image...').start();
|
|
89
92
|
try {
|
|
90
93
|
// Detect if watermark is a file or text
|
|
91
|
-
const isWatermarkFile = fs.existsSync(
|
|
94
|
+
const isWatermarkFile = fs.existsSync(watermarkValue);
|
|
92
95
|
const watermarkType = isWatermarkFile ? 'image' : 'text';
|
|
93
96
|
if (options.verbose) {
|
|
94
97
|
spinner.info(chalk.blue(`Watermark type: ${watermarkType}`));
|
|
95
98
|
if (!isWatermarkFile) {
|
|
96
|
-
spinner.info(chalk.dim(`Text: "${
|
|
99
|
+
spinner.info(chalk.dim(`Text: "${watermarkValue}"`));
|
|
97
100
|
}
|
|
98
101
|
}
|
|
99
102
|
// Validate input paths (can be multiple)
|
|
@@ -118,7 +121,7 @@ export function watermarkCommand(imageCmd) {
|
|
|
118
121
|
spinner.info(chalk.blue('Configuration:'));
|
|
119
122
|
console.log(chalk.dim(` Found ${inputFiles.length} file(s)`));
|
|
120
123
|
console.log(chalk.dim(` Watermark type: ${watermarkType}`));
|
|
121
|
-
console.log(chalk.dim(` Watermark: ${
|
|
124
|
+
console.log(chalk.dim(` Watermark: ${watermarkValue}`));
|
|
122
125
|
console.log(chalk.dim(` Position: ${options.position || 'bottom-right'}`));
|
|
123
126
|
console.log(chalk.dim(` Opacity: ${options.opacity || 0.5}`));
|
|
124
127
|
if (watermarkType === 'image') {
|
|
@@ -136,7 +139,7 @@ export function watermarkCommand(imageCmd) {
|
|
|
136
139
|
spinner.info(chalk.yellow('Dry run mode - no changes will be made'));
|
|
137
140
|
console.log(chalk.green(`✓ Would add ${watermarkType} watermark to ${inputFiles.length} file(s):`));
|
|
138
141
|
inputFiles.forEach(f => console.log(chalk.dim(` - ${f}`)));
|
|
139
|
-
console.log(chalk.dim(` Watermark: ${
|
|
142
|
+
console.log(chalk.dim(` Watermark: ${watermarkValue}`));
|
|
140
143
|
if (watermarkType === 'text') {
|
|
141
144
|
console.log(chalk.dim(` Text watermark with font size: ${options.fontSize || 48}px`));
|
|
142
145
|
}
|
|
@@ -160,7 +163,7 @@ export function watermarkCommand(imageCmd) {
|
|
|
160
163
|
if (watermarkType === 'image') {
|
|
161
164
|
// For image watermarks, preload the watermark
|
|
162
165
|
// We'll scale it per image based on each image's dimensions
|
|
163
|
-
watermarkBuffer = await createSharpInstance(
|
|
166
|
+
watermarkBuffer = await createSharpInstance(watermarkValue).toBuffer();
|
|
164
167
|
}
|
|
165
168
|
// For text watermarks, we create them dynamically per image
|
|
166
169
|
// Process all files
|
|
@@ -199,7 +202,7 @@ export function watermarkCommand(imageCmd) {
|
|
|
199
202
|
const fontColor = options.fontColor || 'white';
|
|
200
203
|
const fontFamily = options.fontFamily || 'Arial';
|
|
201
204
|
// Estimate text dimensions
|
|
202
|
-
const textWidth =
|
|
205
|
+
const textWidth = watermarkValue.length * fontSize * 0.6;
|
|
203
206
|
const textHeight = fontSize * 1.5;
|
|
204
207
|
const padding = 20;
|
|
205
208
|
const svgText = `
|
|
@@ -211,7 +214,7 @@ export function watermarkCommand(imageCmd) {
|
|
|
211
214
|
font-size="${fontSize}"
|
|
212
215
|
fill="${fontColor}"
|
|
213
216
|
font-weight="bold"
|
|
214
|
-
>${
|
|
217
|
+
>${watermarkValue}</text>
|
|
215
218
|
</svg>
|
|
216
219
|
`;
|
|
217
220
|
const textBuffer = Buffer.from(svgText);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watermark.js","sourceRoot":"","sources":["../../src/commands/watermark.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEvH,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,IAAI,MAAM,MAAM,CAAC;AAYxB,MAAM,UAAU,gBAAgB,CAAC,QAAiB;IAChD,QAAQ;SACL,OAAO,CAAC,+BAA+B,CAAC;SACxC,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;SACjD,MAAM,CAAC,uBAAuB,EAAE,kEAAkE,EAAE,cAAc,CAAC;SACnH,MAAM,CAAC,qBAAqB,EAAE,uCAAuC,EAAE,UAAU,EAAE,GAAG,CAAC;SACvF,MAAM,CAAC,iBAAiB,EAAE,uFAAuF,EAAE,UAAU,CAAC;SAC9H,MAAM,CAAC,oBAAoB,EAAE,0DAA0D,EAAE,QAAQ,CAAC;SAClG,MAAM,CAAC,sBAAsB,EAAE,oDAAoD,EAAE,OAAO,CAAC;SAC7F,MAAM,CAAC,wBAAwB,EAAE,6CAA6C,EAAE,OAAO,CAAC;SACxF,MAAM,CAAC,yBAAyB,EAAE,iBAAiB,EAAE,QAAQ,CAAC;SAC9D,MAAM,CAAC,WAAW,EAAE,2CAA2C,CAAC;SAChE,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;SACzC,MAAM,CAAC,kBAAkB,EAAE,wLAAwL,CAAC;SACpN,MAAM,CAAC,QAAQ,EAAE,oCAAoC,CAAC;SACtD,MAAM,CAAC,KAAK,EAAE,KAAyB,EAAE,SAA6B,EAAE,OAAyB,EAAE,EAAE;QACpG,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,kBAAkB,CAAC;gBACjB,UAAU,EAAE,OAAO;gBACnB,WAAW,EAAE,WAAW;gBACxB,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,iJAAiJ;gBAC9J,KAAK,EAAE;oBACL,+BAA+B;oBAC/B,8CAA8C;oBAC9C,yDAAyD;oBACzD,kEAAkE;iBACnE;gBACD,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,qBAAqB,EAAE,WAAW,EAAE,uDAAuD,EAAE;oBACrG,EAAE,IAAI,EAAE,uBAAuB,EAAE,WAAW,EAAE,0FAA0F,EAAE;oBAC1I,EAAE,IAAI,EAAE,qBAAqB,EAAE,WAAW,EAAE,sCAAsC,EAAE;oBACpF,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,iGAAiG,EAAE;oBAC3I,EAAE,IAAI,EAAE,oBAAoB,EAAE,WAAW,EAAE,4EAA4E,EAAE;oBACzH,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,uCAAuC,EAAE;oBACtF,EAAE,IAAI,EAAE,wBAAwB,EAAE,WAAW,EAAE,6CAA6C,EAAE;oBAC9F,EAAE,IAAI,EAAE,yBAAyB,EAAE,WAAW,EAAE,yGAAyG,EAAE;oBAC3J,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,mCAAmC,EAAE;oBACvE,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,wLAAwL,EAAE;oBACnO,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,sBAAsB,EAAE;iBAC/D;gBACD,QAAQ,EAAE;oBACR,EAAE,OAAO,EAAE,8BAA8B,EAAE,WAAW,EAAE,+BAA+B,EAAE;oBACzF,EAAE,OAAO,EAAE,sCAAsC,EAAE,WAAW,EAAE,oBAAoB,EAAE;oBACtF,EAAE,OAAO,EAAE,sDAAsD,EAAE,WAAW,EAAE,8BAA8B,EAAE;oBAChH,EAAE,OAAO,EAAE,gEAAgE,EAAE,WAAW,EAAE,uCAAuC,EAAE;oBACnI,EAAE,OAAO,EAAE,oDAAoD,EAAE,WAAW,EAAE,mCAAmC,EAAE;iBACpH;gBACD,kBAAkB,EAAE;oBAClB;wBACE,KAAK,EAAE,iBAAiB;wBACxB,KAAK,EAAE;4BACL,6DAA6D;4BAC7D,yEAAyE;yBAC1E;qBACF;oBACD;wBACE,KAAK,EAAE,WAAW;wBAClB,KAAK,EAAE;4BACL,0BAA0B;4BAC1B,8BAA8B;4BAC9B,gCAAgC;4BAChC,iCAAiC;4BACjC,6CAA6C;yBAC9C;qBACF;iBACF;gBACD,IAAI,EAAE;oBACJ,uDAAuD;oBACvD,oEAAoE;oBACpE,2DAA2D;oBAC3D,kEAAkE;iBACnE;aACF,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;QAEnD,IAAI,CAAC;YACH,wCAAwC;YACxC,MAAM,eAAe,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YAEzD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,aAAa,EAAE,CAAC,CAAC,CAAC;gBAC7D,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,SAAS,GAAG,CAAC,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;YAED,yCAAyC;YACzC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE;gBAC9E,iBAAiB,EAAE,gBAAgB;aACpC,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAC9C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE;gBAC7D,MAAM,EAAE,cAAc;aACvB,CAAC,CAAC;YAEH,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,SAAS,GAAG,CAAC,CAAC;YAElB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,UAAU,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC;gBAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,aAAa,EAAE,CAAC,CAAC,CAAC;gBAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,QAAQ,IAAI,cAAc,EAAE,CAAC,CAAC,CAAC;gBAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC/D,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBAC5H,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,KAAK,IAAI,GAAG,0BAA0B,CAAC,CAAC,CAAC;oBACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACnG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,OAAO,CAAC,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;oBACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,UAAU,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACjC,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,aAAa,iBAAiB,UAAU,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC;gBACpG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC,CAAC;gBACpD,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,OAAO,CAAC,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBACzF,CAAC;gBACD,OAAO;YACT,CAAC;YAED,yBAAyB;YACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,cAAc,CAAC;YACpD,IAAI,OAAO,GAAkB,WAAW,CAAC;YACzC,IAAI,QAAQ,KAAK,QAAQ;gBAAE,OAAO,GAAG,QAAQ,CAAC;iBACzC,IAAI,QAAQ,KAAK,UAAU;gBAAE,OAAO,GAAG,WAAW,CAAC;iBACnD,IAAI,QAAQ,KAAK,WAAW;gBAAE,OAAO,GAAG,WAAW,CAAC;iBACpD,IAAI,QAAQ,KAAK,aAAa;gBAAE,OAAO,GAAG,WAAW,CAAC;iBACtD,IAAI,QAAQ,KAAK,cAAc;gBAAE,OAAO,GAAG,WAAW,CAAC;YAE5D,yCAAyC;YACzC,IAAI,eAAe,GAAkB,IAAI,CAAC;YAE1C,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;gBAC9B,8CAA8C;gBAC9C,4DAA4D;gBAC5D,eAAe,GAAG,MAAM,mBAAmB,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;YACpE,CAAC;YACD,4DAA4D;YAE5D,oBAAoB;YACpB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;oBACxC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;oBAE/C,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACjE,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,IAAI,GAAG,CAAC;oBACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC;oBAE3C,IAAI,oBAA4B,CAAC;oBAEjC,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;wBAC9B,+DAA+D;wBAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;wBAChE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC;wBACnD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;wBAErD,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,eAAgB,CAAC;6BACnD,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC;6BACjC,QAAQ,EAAE,CAAC;wBAEd,mCAAmC;wBACnC,oBAAoB,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC;6BACjD,SAAS,CAAC,CAAC;gCACV,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gCAC/E,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;gCACzC,IAAI,EAAE,IAAI;gCACV,KAAK,EAAE,SAAS;6BACjB,CAAC,CAAC;6BACF,QAAQ,EAAE,CAAC;oBAChB,CAAC;yBAAM,CAAC;wBACN,qEAAqE;wBACrE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;wBAEhE,qEAAqE;wBACrE,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;wBACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC;wBAElD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC;wBAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC;wBAEjD,2BAA2B;wBAC3B,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,QAAQ,GAAG,GAAG,CAAC;wBACpD,MAAM,UAAU,GAAG,QAAQ,GAAG,GAAG,CAAC;wBAClC,MAAM,OAAO,GAAG,EAAE,CAAC;wBAEnB,MAAM,OAAO,GAAG;8BACA,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;;yBAEnF,OAAO;yBACP,QAAQ,GAAG,OAAO,GAAG,CAAC;mCACZ,UAAU;iCACZ,QAAQ;4BACb,SAAS;;qBAEhB,SAAS;;eAEf,CAAC;wBAEF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAExC,kCAAkC;wBAClC,oBAAoB,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC;6BAC3C,SAAS,CAAC,CAAC;gCACV,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gCAC/E,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;gCACzC,IAAI,EAAE,IAAI;gCACV,KAAK,EAAE,SAAS;6BACjB,CAAC,CAAC;6BACF,GAAG,EAAE;6BACL,QAAQ,EAAE,CAAC;oBAChB,CAAC;oBAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;4BACzD,KAAK,EAAE,oBAAoB;4BAC3B,OAAO;yBACR,CAAC,CAAC,CAAC;oBAEJ,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;oBACzD,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;wBAClD,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;4BACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC9C,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,IAAI,EAAE,CAAC;wBAClB,CAAC;oBACH,CAAC;yBAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;wBACjC,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;4BACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC9C,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,IAAI,EAAE,CAAC;wBAClB,CAAC;oBACH,CAAC;yBAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;wBACjC,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;4BACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC9C,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,IAAI,EAAE,CAAC;wBAClB,CAAC;oBACH,CAAC;yBAAM,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;wBAChC,IAAI,gBAAgB,GAAG,CAAC,CAAC;wBACzB,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;4BACxC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC9F,CAAC;wBACD,QAAQ,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;oBACrC,CAAC;oBACD,wCAAwC;oBAExC,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAElC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ,cAAc,CAAC,CAAC,CAAC;oBAC1D,YAAY,EAAE,CAAC;gBACjB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC/D,IAAI,OAAO,CAAC,OAAO,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;wBAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACxD,CAAC;oBACD,SAAS,EAAE,CAAC;gBACd,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC,CAAC;YACzD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,SAAS,EAAE,CAAC,CAAC,CAAC;YACrD,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC7C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"watermark.js","sourceRoot":"","sources":["../../src/commands/watermark.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEvH,OAAO,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,IAAI,MAAM,MAAM,CAAC;AAaxB,MAAM,UAAU,gBAAgB,CAAC,QAAiB;IAChD,QAAQ;SACL,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;SACjD,MAAM,CAAC,yBAAyB,EAAE,wCAAwC,CAAC;SAC3E,MAAM,CAAC,uBAAuB,EAAE,kEAAkE,EAAE,cAAc,CAAC;SACnH,MAAM,CAAC,qBAAqB,EAAE,uCAAuC,EAAE,UAAU,EAAE,GAAG,CAAC;SACvF,MAAM,CAAC,iBAAiB,EAAE,uFAAuF,EAAE,UAAU,CAAC;SAC9H,MAAM,CAAC,oBAAoB,EAAE,0DAA0D,EAAE,QAAQ,CAAC;SAClG,MAAM,CAAC,sBAAsB,EAAE,oDAAoD,EAAE,OAAO,CAAC;SAC7F,MAAM,CAAC,wBAAwB,EAAE,6CAA6C,EAAE,OAAO,CAAC;SACxF,MAAM,CAAC,yBAAyB,EAAE,iBAAiB,EAAE,QAAQ,CAAC;SAC9D,MAAM,CAAC,WAAW,EAAE,2CAA2C,CAAC;SAChE,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;SACzC,MAAM,CAAC,kBAAkB,EAAE,wLAAwL,CAAC;SACpN,MAAM,CAAC,QAAQ,EAAE,oCAAoC,CAAC;SACtD,MAAM,CAAC,KAAK,EAAE,KAAyB,EAAE,OAAyB,EAAE,EAAE;QACrE,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,kBAAkB,CAAC;gBACjB,UAAU,EAAE,OAAO;gBACnB,WAAW,EAAE,WAAW;gBACxB,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,iJAAiJ;gBAC9J,KAAK,EAAE;oBACL,kCAAkC;oBAClC,iDAAiD;oBACjD,4DAA4D;oBAC5D,qEAAqE;iBACtE;gBACD,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,qBAAqB,EAAE,WAAW,EAAE,uDAAuD,EAAE;oBACrG,EAAE,IAAI,EAAE,yBAAyB,EAAE,WAAW,EAAE,wCAAwC,EAAE;oBAC1F,EAAE,IAAI,EAAE,uBAAuB,EAAE,WAAW,EAAE,0FAA0F,EAAE;oBAC1I,EAAE,IAAI,EAAE,qBAAqB,EAAE,WAAW,EAAE,sCAAsC,EAAE;oBACpF,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,iGAAiG,EAAE;oBAC3I,EAAE,IAAI,EAAE,oBAAoB,EAAE,WAAW,EAAE,4EAA4E,EAAE;oBACzH,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,uCAAuC,EAAE;oBACtF,EAAE,IAAI,EAAE,wBAAwB,EAAE,WAAW,EAAE,6CAA6C,EAAE;oBAC9F,EAAE,IAAI,EAAE,yBAAyB,EAAE,WAAW,EAAE,yGAAyG,EAAE;oBAC3J,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,mCAAmC,EAAE;oBACvE,EAAE,IAAI,EAAE,kBAAkB,EAAE,WAAW,EAAE,wLAAwL,EAAE;oBACnO,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,sBAAsB,EAAE;iBAC/D;gBACD,QAAQ,EAAE;oBACR,EAAE,OAAO,EAAE,iCAAiC,EAAE,WAAW,EAAE,+BAA+B,EAAE;oBAC5F,EAAE,OAAO,EAAE,yCAAyC,EAAE,WAAW,EAAE,oBAAoB,EAAE;oBACzF,EAAE,OAAO,EAAE,yDAAyD,EAAE,WAAW,EAAE,8BAA8B,EAAE;oBACnH,EAAE,OAAO,EAAE,mEAAmE,EAAE,WAAW,EAAE,uCAAuC,EAAE;oBACtI,EAAE,OAAO,EAAE,uDAAuD,EAAE,WAAW,EAAE,mCAAmC,EAAE;iBACvH;gBACD,kBAAkB,EAAE;oBAClB;wBACE,KAAK,EAAE,iBAAiB;wBACxB,KAAK,EAAE;4BACL,6DAA6D;4BAC7D,yEAAyE;yBAC1E;qBACF;oBACD;wBACE,KAAK,EAAE,WAAW;wBAClB,KAAK,EAAE;4BACL,0BAA0B;4BAC1B,8BAA8B;4BAC9B,gCAAgC;4BAChC,iCAAiC;4BACjC,6CAA6C;yBAC9C;qBACF;iBACF;gBACD,IAAI,EAAE;oBACJ,uDAAuD;oBACvD,oEAAoE;oBACpE,2DAA2D;oBAC3D,kEAAkE;iBACnE;aACF,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;QAEjD,IAAI,CAAC,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC,CAAC;YAClG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;QAEnD,IAAI,CAAC;YACH,wCAAwC;YACxC,MAAM,eAAe,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YACtD,MAAM,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YAEzD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,aAAa,EAAE,CAAC,CAAC,CAAC;gBAC7D,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,cAAc,GAAG,CAAC,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;YAED,yCAAyC;YACzC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE;gBAC9E,iBAAiB,EAAE,gBAAgB;aACpC,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAC9C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE;gBAC7D,MAAM,EAAE,cAAc;aACvB,CAAC,CAAC;YAEH,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,SAAS,GAAG,CAAC,CAAC;YAElB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,UAAU,CAAC,MAAM,UAAU,CAAC,CAAC,CAAC;gBAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,aAAa,EAAE,CAAC,CAAC,CAAC;gBAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,cAAc,EAAE,CAAC,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,QAAQ,IAAI,cAAc,EAAE,CAAC,CAAC,CAAC;gBAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC/D,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;oBAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBAC5H,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,KAAK,IAAI,GAAG,0BAA0B,CAAC,CAAC,CAAC;oBACnF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;oBACnG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,OAAO,CAAC,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;oBACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,UAAU,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC5E,CAAC;gBACD,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACjC,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,aAAa,iBAAiB,UAAU,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC;gBACpG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,cAAc,EAAE,CAAC,CAAC,CAAC;gBACzD,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oCAAoC,OAAO,CAAC,QAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBACzF,CAAC;gBACD,OAAO;YACT,CAAC;YAED,yBAAyB;YACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,cAAc,CAAC;YACpD,IAAI,OAAO,GAAkB,WAAW,CAAC;YACzC,IAAI,QAAQ,KAAK,QAAQ;gBAAE,OAAO,GAAG,QAAQ,CAAC;iBACzC,IAAI,QAAQ,KAAK,UAAU;gBAAE,OAAO,GAAG,WAAW,CAAC;iBACnD,IAAI,QAAQ,KAAK,WAAW;gBAAE,OAAO,GAAG,WAAW,CAAC;iBACpD,IAAI,QAAQ,KAAK,aAAa;gBAAE,OAAO,GAAG,WAAW,CAAC;iBACtD,IAAI,QAAQ,KAAK,cAAc;gBAAE,OAAO,GAAG,WAAW,CAAC;YAE5D,yCAAyC;YACzC,IAAI,eAAe,GAAkB,IAAI,CAAC;YAE1C,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;gBAC9B,8CAA8C;gBAC9C,4DAA4D;gBAC5D,eAAe,GAAG,MAAM,mBAAmB,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC;YACzE,CAAC;YACD,4DAA4D;YAE5D,oBAAoB;YACpB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACnC,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;oBACxC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;oBAE/C,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACjE,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,IAAI,GAAG,CAAC;oBACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC;oBAE3C,IAAI,oBAA4B,CAAC;oBAEjC,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;wBAC9B,+DAA+D;wBAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;wBAChE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC;wBACnD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC;wBAErD,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,eAAgB,CAAC;6BACnD,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC;6BACjC,QAAQ,EAAE,CAAC;wBAEd,mCAAmC;wBACnC,oBAAoB,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC;6BACjD,SAAS,CAAC,CAAC;gCACV,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gCAC/E,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;gCACzC,IAAI,EAAE,IAAI;gCACV,KAAK,EAAE,SAAS;6BACjB,CAAC,CAAC;6BACF,QAAQ,EAAE,CAAC;oBAChB,CAAC;yBAAM,CAAC;wBACN,qEAAqE;wBACrE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;wBAEhE,qEAAqE;wBACrE,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;wBACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC;wBAElD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC;wBAC/C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC;wBAEjD,2BAA2B;wBAC3B,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,GAAG,QAAQ,GAAG,GAAG,CAAC;wBACzD,MAAM,UAAU,GAAG,QAAQ,GAAG,GAAG,CAAC;wBAClC,MAAM,OAAO,GAAG,EAAE,CAAC;wBAEnB,MAAM,OAAO,GAAG;8BACA,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;;yBAEnF,OAAO;yBACP,QAAQ,GAAG,OAAO,GAAG,CAAC;mCACZ,UAAU;iCACZ,QAAQ;4BACb,SAAS;;qBAEhB,cAAc;;eAEpB,CAAC;wBAEF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAExC,kCAAkC;wBAClC,oBAAoB,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC;6BAC3C,SAAS,CAAC,CAAC;gCACV,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gCAC/E,GAAG,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;gCACzC,IAAI,EAAE,IAAI;gCACV,KAAK,EAAE,SAAS;6BACjB,CAAC,CAAC;6BACF,GAAG,EAAE;6BACL,QAAQ,EAAE,CAAC;oBAChB,CAAC;oBAED,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;4BACzD,KAAK,EAAE,oBAAoB;4BAC3B,OAAO;yBACR,CAAC,CAAC,CAAC;oBAEJ,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;oBACzD,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;wBAClD,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;4BACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC9C,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,IAAI,EAAE,CAAC;wBAClB,CAAC;oBACH,CAAC;yBAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;wBACjC,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;4BACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC9C,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,IAAI,EAAE,CAAC;wBAClB,CAAC;oBACH,CAAC;yBAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;wBACjC,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;4BACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC9C,CAAC;6BAAM,CAAC;4BACN,QAAQ,CAAC,IAAI,EAAE,CAAC;wBAClB,CAAC;oBACH,CAAC;yBAAM,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;wBAChC,IAAI,gBAAgB,GAAG,CAAC,CAAC;wBACzB,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;4BACxC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;wBAC9F,CAAC;wBACD,QAAQ,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;oBACrC,CAAC;oBACD,wCAAwC;oBAExC,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAElC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ,cAAc,CAAC,CAAC,CAAC;oBAC1D,YAAY,EAAE,CAAC;gBACjB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC/D,IAAI,OAAO,CAAC,OAAO,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;wBAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACxD,CAAC;oBACD,SAAS,EAAE,CAAC;gBACd,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC,CAAC;YACzD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,SAAS,EAAE,CAAC,CAAC,CAAC;YACrD,CAAC;QAEH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC7C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/register.js
CHANGED
|
@@ -69,7 +69,7 @@ export function register(program) {
|
|
|
69
69
|
const imageCmd = program
|
|
70
70
|
.command('image')
|
|
71
71
|
.description('Image processing commands (powered by Sharp)')
|
|
72
|
-
.version(currentVersion, '-
|
|
72
|
+
.version(currentVersion, '-V, --version', 'Output the image plugin version')
|
|
73
73
|
.helpOption('-h, --help', 'Display help for image plugin');
|
|
74
74
|
// Transform operations
|
|
75
75
|
resizeCommand(imageCmd);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mediaproc/image",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.8",
|
|
4
4
|
"description": "Image processing plugin for mediaproc - powered by Sharp",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"node": ">=22.0.0"
|
|
31
31
|
},
|
|
32
32
|
"scripts": {
|
|
33
|
-
"build": "tsc",
|
|
33
|
+
"build": "rm -rf dist/ && tsc",
|
|
34
34
|
"dev": "tsx src/cli.ts",
|
|
35
35
|
"watch": "tsc --watch",
|
|
36
36
|
"clean": "rm -rf dist",
|
|
@@ -40,14 +40,14 @@
|
|
|
40
40
|
"@mediaproc/core": "^1.11.0",
|
|
41
41
|
"boxen": "^8.0.1",
|
|
42
42
|
"chalk": "^5.6.2",
|
|
43
|
-
"commander": "^14.0.
|
|
43
|
+
"commander": "^14.0.3",
|
|
44
44
|
"execa": "^9.6.1",
|
|
45
45
|
"sharp": "^0.34.5",
|
|
46
|
-
"ora": "^9.
|
|
46
|
+
"ora": "^9.3.0"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@types/node": "^25.0
|
|
49
|
+
"@types/node": "^25.5.0",
|
|
50
50
|
"ts-node": "^10.9.2",
|
|
51
|
-
"typescript": "^
|
|
51
|
+
"typescript": "^6.0.2"
|
|
52
52
|
}
|
|
53
53
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-enhance.d.ts","sourceRoot":"","sources":["../../src/commands/auto-enhance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBzC,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAsL1D"}
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import ora from 'ora';
|
|
3
|
-
import { validatePaths, resolveOutputPaths, IMAGE_EXTENSIONS, getFileName, showPluginBranding, createStandardHelp } from '@mediaproc/core';
|
|
4
|
-
import { createSharpInstance } from '../utils/sharp.js';
|
|
5
|
-
export function autoEnhanceCommand(imageCmd) {
|
|
6
|
-
imageCmd
|
|
7
|
-
.command('auto-enhance <input>')
|
|
8
|
-
.description('Automatically enhance image with intelligent adjustments')
|
|
9
|
-
.option('-l, --level <level>', 'Enhancement level: low, medium, high (default: medium)', 'medium')
|
|
10
|
-
.option('-o, --output <path>', 'Output file path')
|
|
11
|
-
.option('--dry-run', 'Show what would be done without executing')
|
|
12
|
-
.option('-v, --verbose', 'Verbose output')
|
|
13
|
-
.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.')
|
|
14
|
-
.option('--help', 'Display help for auto-enhance command')
|
|
15
|
-
.action(async (input, options) => {
|
|
16
|
-
if (options.help || !input) {
|
|
17
|
-
createStandardHelp({
|
|
18
|
-
commandName: 'auto-enhance',
|
|
19
|
-
emoji: '✨',
|
|
20
|
-
description: 'Automatically enhance images with intelligent adjustments. Applies normalization, sharpening, and contrast optimization in one command.',
|
|
21
|
-
usage: ['auto-enhance <input>', 'auto-enhance <input> --level high', 'auto-enhance <input> -l low -o enhanced.jpg'],
|
|
22
|
-
options: [
|
|
23
|
-
{ flag: '-l, --level <level>', description: 'Enhancement level: low, medium, high (default: medium)' },
|
|
24
|
-
{ flag: '-o, --output <path>', description: 'Output file path' },
|
|
25
|
-
{ flag: '--dry-run', description: 'Preview changes without executing' },
|
|
26
|
-
{ 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.' },
|
|
27
|
-
{ flag: '-v, --verbose', description: 'Show detailed output' }
|
|
28
|
-
],
|
|
29
|
-
examples: [
|
|
30
|
-
{ command: 'auto-enhance photo.jpg', description: 'Apply medium enhancement' },
|
|
31
|
-
{ command: 'auto-enhance dark.jpg --level high', description: 'Strong enhancement for poor lighting' },
|
|
32
|
-
{ command: 'auto-enhance image.png -l low', description: 'Subtle enhancement' },
|
|
33
|
-
{ command: 'auto-enhance pic.jpg -o enhanced.jpg', description: 'Save enhanced version' }
|
|
34
|
-
],
|
|
35
|
-
additionalSections: [
|
|
36
|
-
{
|
|
37
|
-
title: 'Enhancement Levels',
|
|
38
|
-
items: [
|
|
39
|
-
'low - Subtle: Normalize + Light sharpen',
|
|
40
|
-
'medium - Balanced: Normalize + Moderate sharpen + Contrast (recommended)',
|
|
41
|
-
'high - Aggressive: Normalize + Strong sharpen + High contrast + CLAHE'
|
|
42
|
-
]
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
title: 'What Gets Enhanced',
|
|
46
|
-
items: [
|
|
47
|
-
'Color normalization - Balance histogram',
|
|
48
|
-
'Sharpness - Enhance edge definition',
|
|
49
|
-
'Contrast - Improve dynamic range',
|
|
50
|
-
'Brightness - Auto-level exposure',
|
|
51
|
-
'Clarity - Reduce dullness',
|
|
52
|
-
'Detail - Enhance fine features'
|
|
53
|
-
]
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
title: 'Use Cases',
|
|
57
|
-
items: [
|
|
58
|
-
'Quick photo fixes for social media',
|
|
59
|
-
'Old/faded photo restoration',
|
|
60
|
-
'Low-light image improvement',
|
|
61
|
-
'Batch processing automation',
|
|
62
|
-
'Smartphone photo enhancement',
|
|
63
|
-
'Scan cleanup and improvement'
|
|
64
|
-
]
|
|
65
|
-
}
|
|
66
|
-
],
|
|
67
|
-
tips: [
|
|
68
|
-
'Start with medium and adjust if needed',
|
|
69
|
-
'High level great for dark/dull images',
|
|
70
|
-
'Low level for already good photos',
|
|
71
|
-
'Combine with other commands for custom workflows'
|
|
72
|
-
]
|
|
73
|
-
});
|
|
74
|
-
process.exit(0);
|
|
75
|
-
}
|
|
76
|
-
const spinner = ora('Validating inputs...').start();
|
|
77
|
-
try {
|
|
78
|
-
const { inputFiles, outputPath, errors } = validatePaths(input, options.output, {
|
|
79
|
-
allowedExtensions: IMAGE_EXTENSIONS,
|
|
80
|
-
});
|
|
81
|
-
if (errors.length > 0) {
|
|
82
|
-
spinner.fail(chalk.red('Validation failed:'));
|
|
83
|
-
errors.forEach(err => console.log(chalk.red(` ✗ ${err}`)));
|
|
84
|
-
process.exit(1);
|
|
85
|
-
}
|
|
86
|
-
if (inputFiles.length === 0) {
|
|
87
|
-
spinner.fail(chalk.red('No valid image files found'));
|
|
88
|
-
process.exit(1);
|
|
89
|
-
}
|
|
90
|
-
const outputPaths = resolveOutputPaths(inputFiles, outputPath, {
|
|
91
|
-
suffix: '-enhanced',
|
|
92
|
-
});
|
|
93
|
-
spinner.succeed(chalk.green(`Found ${inputFiles.length} image(s) to process`));
|
|
94
|
-
const level = ['low', 'medium', 'high'].includes(options.level || 'medium') ? options.level : 'medium';
|
|
95
|
-
if (options.verbose) {
|
|
96
|
-
console.log(chalk.blue('\nConfiguration:'));
|
|
97
|
-
console.log(chalk.dim(` Enhancement level: ${level}`));
|
|
98
|
-
}
|
|
99
|
-
if (options.dryRun) {
|
|
100
|
-
console.log(chalk.yellow('\nDry run mode - no changes will be made\n'));
|
|
101
|
-
console.log(chalk.green(`Would process ${inputFiles.length} image(s):`));
|
|
102
|
-
inputFiles.forEach((inputFile, index) => {
|
|
103
|
-
const outputPath = outputPaths.get(inputFile);
|
|
104
|
-
console.log(chalk.dim(` ${index + 1}. ${getFileName(inputFile)} → ${getFileName(outputPath)}`));
|
|
105
|
-
});
|
|
106
|
-
showPluginBranding('Image', '../../package.json');
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
let successCount = 0;
|
|
110
|
-
let failCount = 0;
|
|
111
|
-
for (const [index, inputFile] of inputFiles.entries()) {
|
|
112
|
-
const outputPath = outputPaths.get(inputFile);
|
|
113
|
-
const fileName = getFileName(inputFile);
|
|
114
|
-
spinner.start(`Processing ${index + 1}/${inputFiles.length}: ${fileName}...`);
|
|
115
|
-
try {
|
|
116
|
-
let pipeline = createSharpInstance(inputFile);
|
|
117
|
-
// Apply enhancements based on level
|
|
118
|
-
switch (level) {
|
|
119
|
-
case 'low':
|
|
120
|
-
// Subtle enhancement
|
|
121
|
-
pipeline = pipeline
|
|
122
|
-
.normalize() // Histogram normalization
|
|
123
|
-
.sharpen({ sigma: 0.5 }); // Light sharpen
|
|
124
|
-
break;
|
|
125
|
-
case 'medium':
|
|
126
|
-
// Balanced enhancement (default)
|
|
127
|
-
pipeline = pipeline
|
|
128
|
-
.normalize() // Histogram normalization
|
|
129
|
-
.modulate({ brightness: 1.05, saturation: 1.1 }) // Slight boost
|
|
130
|
-
.sharpen({ sigma: 1.0 }); // Moderate sharpen
|
|
131
|
-
break;
|
|
132
|
-
case 'high':
|
|
133
|
-
// Aggressive enhancement
|
|
134
|
-
pipeline = pipeline
|
|
135
|
-
.normalize() // Histogram normalization
|
|
136
|
-
.clahe({ width: 3, height: 3, maxSlope: 3 }) // Local contrast
|
|
137
|
-
.modulate({ brightness: 1.1, saturation: 1.2, hue: 0 }) // Boost colors
|
|
138
|
-
.sharpen({ sigma: 1.5 }); // Strong sharpen
|
|
139
|
-
break;
|
|
140
|
-
}
|
|
141
|
-
await pipeline.toFile(outputPath);
|
|
142
|
-
spinner.succeed(chalk.green(`✓ ${fileName} processed`));
|
|
143
|
-
successCount++;
|
|
144
|
-
}
|
|
145
|
-
catch (error) {
|
|
146
|
-
spinner.fail(chalk.red(`✗ Failed: ${fileName}`));
|
|
147
|
-
if (options.verbose && error instanceof Error) {
|
|
148
|
-
console.log(chalk.red(` Error: ${error.message}`));
|
|
149
|
-
}
|
|
150
|
-
failCount++;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
console.log(chalk.bold('\nSummary:'));
|
|
154
|
-
console.log(chalk.green(` ✓ Success: ${successCount}`));
|
|
155
|
-
if (failCount > 0) {
|
|
156
|
-
console.log(chalk.red(` ✗ Failed: ${failCount}`));
|
|
157
|
-
}
|
|
158
|
-
showPluginBranding('Image', '../../package.json');
|
|
159
|
-
}
|
|
160
|
-
catch (error) {
|
|
161
|
-
spinner.fail(chalk.red('Auto-enhancement failed'));
|
|
162
|
-
if (options.verbose) {
|
|
163
|
-
console.error(chalk.red('Error details:'), error);
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
console.error(chalk.red(error.message));
|
|
167
|
-
}
|
|
168
|
-
process.exit(1);
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
//# sourceMappingURL=auto-enhance.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-enhance.js","sourceRoot":"","sources":["../../src/commands/auto-enhance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-orient.d.ts","sourceRoot":"","sources":["../../src/commands/auto-orient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWzC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAyIzD"}
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
import ora from 'ora';
|
|
3
|
-
import { validatePaths, resolveOutputPaths, IMAGE_EXTENSIONS, getFileName, createStandardHelp, showPluginBranding } from '@mediaproc/core';
|
|
4
|
-
import { createSharpInstance } from '../utils/sharp.js';
|
|
5
|
-
import path from 'node:path';
|
|
6
|
-
export function autoOrientCommand(imageCmd) {
|
|
7
|
-
const cmd = imageCmd
|
|
8
|
-
.command('auto-orient <input>')
|
|
9
|
-
.alias('rotate-auto')
|
|
10
|
-
.description('Auto-rotate image based on EXIF orientation')
|
|
11
|
-
.option('-o, --output <path>', 'Output file path')
|
|
12
|
-
.option('-q, --quality <quality>', 'Quality (1-100)', parseInt, 90)
|
|
13
|
-
.option('--dry-run', 'Show what would be done without executing')
|
|
14
|
-
.option('-v, --verbose', 'Verbose output')
|
|
15
|
-
.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.');
|
|
16
|
-
cmd.addHelpText('after', () => {
|
|
17
|
-
return '\n' + createStandardHelp({
|
|
18
|
-
commandName: 'auto-orient',
|
|
19
|
-
emoji: '🧭',
|
|
20
|
-
description: 'Automatically rotate image based on EXIF orientation metadata. Corrects photos taken with rotated cameras.',
|
|
21
|
-
usage: ['auto-orient <input>', 'rotate-auto <input>'],
|
|
22
|
-
options: [
|
|
23
|
-
{ flag: '-o, --output <path>', description: 'Output file path (default: <input>-oriented.<ext>)' },
|
|
24
|
-
{ flag: '-q, --quality <quality>', description: 'Output quality 1-100 (default: 90)' },
|
|
25
|
-
{ flag: '--dry-run', description: 'Preview changes without executing' },
|
|
26
|
-
{ 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.' },
|
|
27
|
-
{ flag: '-v, --verbose', description: 'Show detailed output' }
|
|
28
|
-
],
|
|
29
|
-
examples: [
|
|
30
|
-
{ command: 'auto-orient photo.jpg', description: 'Auto-correct orientation' },
|
|
31
|
-
{ command: 'rotate-auto image.jpg', description: 'Fix camera rotation (using alias)' },
|
|
32
|
-
{ command: 'auto-orient *.jpg', description: 'Batch fix orientation for all JPGs' }
|
|
33
|
-
],
|
|
34
|
-
additionalSections: [
|
|
35
|
-
{
|
|
36
|
-
title: 'EXIF Orientation',
|
|
37
|
-
items: [
|
|
38
|
-
'1: No rotation needed',
|
|
39
|
-
'3: 180° rotation',
|
|
40
|
-
'6: 90° clockwise (vertical photo)',
|
|
41
|
-
'8: 90° counter-clockwise',
|
|
42
|
-
'Also handles horizontal/vertical flips'
|
|
43
|
-
]
|
|
44
|
-
}
|
|
45
|
-
],
|
|
46
|
-
tips: [
|
|
47
|
-
'Essential for photos from cameras/phones',
|
|
48
|
-
'Removes EXIF orientation tag after correction',
|
|
49
|
-
'Safe to run on already-oriented images'
|
|
50
|
-
]
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
cmd.action(async (input, options) => {
|
|
54
|
-
const spinner = ora('Validating inputs...').start();
|
|
55
|
-
try {
|
|
56
|
-
const { inputFiles, outputPath, errors } = validatePaths(input, options.output, {
|
|
57
|
-
allowedExtensions: IMAGE_EXTENSIONS,
|
|
58
|
-
});
|
|
59
|
-
if (errors.length > 0) {
|
|
60
|
-
spinner.fail(chalk.red('Validation failed:'));
|
|
61
|
-
errors.forEach(err => console.log(chalk.red(` ✗ ${err}`)));
|
|
62
|
-
process.exit(1);
|
|
63
|
-
}
|
|
64
|
-
if (inputFiles.length === 0) {
|
|
65
|
-
spinner.fail(chalk.red('No valid image files found'));
|
|
66
|
-
process.exit(1);
|
|
67
|
-
}
|
|
68
|
-
const outputPaths = resolveOutputPaths(inputFiles, outputPath, {
|
|
69
|
-
suffix: '-oriented',
|
|
70
|
-
});
|
|
71
|
-
spinner.succeed(chalk.green(`Found ${inputFiles.length} image(s) to process`));
|
|
72
|
-
if (options.verbose) {
|
|
73
|
-
console.log(chalk.blue('\nConfiguration:'));
|
|
74
|
-
console.log(chalk.dim(` Quality: ${options.quality || 90}`));
|
|
75
|
-
}
|
|
76
|
-
if (options.dryRun) {
|
|
77
|
-
console.log(chalk.yellow('\nDry run mode - no changes will be made\n'));
|
|
78
|
-
console.log(chalk.green(`Would process ${inputFiles.length} image(s):`));
|
|
79
|
-
inputFiles.forEach((inputFile, index) => {
|
|
80
|
-
const outputPath = outputPaths.get(inputFile);
|
|
81
|
-
console.log(chalk.dim(` ${index + 1}. ${getFileName(inputFile)} → ${getFileName(outputPath)}`));
|
|
82
|
-
});
|
|
83
|
-
showPluginBranding('Image', '../../package.json');
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
let successCount = 0;
|
|
87
|
-
let failCount = 0;
|
|
88
|
-
for (const [index, inputFile] of inputFiles.entries()) {
|
|
89
|
-
const outputPath = outputPaths.get(inputFile);
|
|
90
|
-
const fileName = getFileName(inputFile);
|
|
91
|
-
spinner.start(`Processing ${index + 1}/${inputFiles.length}: ${fileName}...`);
|
|
92
|
-
try {
|
|
93
|
-
const pipeline = createSharpInstance(inputFile).rotate(); // rotate() with no args uses EXIF
|
|
94
|
-
const outputExt = path.extname(outputPath).toLowerCase();
|
|
95
|
-
if (outputExt === '.jpg' || outputExt === '.jpeg') {
|
|
96
|
-
pipeline.jpeg({ quality: options.quality || 90 });
|
|
97
|
-
}
|
|
98
|
-
else if (outputExt === '.png') {
|
|
99
|
-
pipeline.png({ quality: options.quality || 90 });
|
|
100
|
-
}
|
|
101
|
-
else if (outputExt === '.webp') {
|
|
102
|
-
pipeline.webp({ quality: options.quality || 90 });
|
|
103
|
-
}
|
|
104
|
-
await pipeline.toFile(outputPath);
|
|
105
|
-
spinner.succeed(chalk.green(`✓ ${fileName} processed`));
|
|
106
|
-
successCount++;
|
|
107
|
-
}
|
|
108
|
-
catch (error) {
|
|
109
|
-
spinner.fail(chalk.red(`✗ Failed: ${fileName}`));
|
|
110
|
-
if (options.verbose && error instanceof Error) {
|
|
111
|
-
console.log(chalk.red(` Error: ${error.message}`));
|
|
112
|
-
}
|
|
113
|
-
failCount++;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
console.log(chalk.bold('\nSummary:'));
|
|
117
|
-
console.log(chalk.green(` ✓ Success: ${successCount}`));
|
|
118
|
-
if (failCount > 0) {
|
|
119
|
-
console.log(chalk.red(` ✗ Failed: ${failCount}`));
|
|
120
|
-
}
|
|
121
|
-
showPluginBranding('Image', '../../package.json');
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
spinner.fail(chalk.red('Failed to auto-orient image'));
|
|
125
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
126
|
-
console.error(chalk.red(errorMessage));
|
|
127
|
-
process.exit(1);
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
//# sourceMappingURL=auto-orient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auto-orient.js","sourceRoot":"","sources":["../../src/commands/auto-orient.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/grid.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../src/commands/grid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBzC,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CA6OnD"}
|