@codemarc/blt 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.
- package/LICENSE +21 -0
- package/README.md +184 -0
- package/dist/commands/bucket.d.ts +3 -0
- package/dist/commands/bucket.d.ts.map +1 -0
- package/dist/commands/bucket.js +399 -0
- package/dist/commands/bucket.js.map +1 -0
- package/dist/commands/check.d.ts +3 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +43 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/cleanup.d.ts +6 -0
- package/dist/commands/cleanup.d.ts.map +1 -0
- package/dist/commands/cleanup.js +65 -0
- package/dist/commands/cleanup.js.map +1 -0
- package/dist/commands/data.d.ts +8 -0
- package/dist/commands/data.d.ts.map +1 -0
- package/dist/commands/data.js +222 -0
- package/dist/commands/data.js.map +1 -0
- package/dist/commands/env.d.ts +6 -0
- package/dist/commands/env.d.ts.map +1 -0
- package/dist/commands/env.js +29 -0
- package/dist/commands/env.js.map +1 -0
- package/dist/commands/image/color.d.ts +12 -0
- package/dist/commands/image/color.d.ts.map +1 -0
- package/dist/commands/image/color.js +274 -0
- package/dist/commands/image/color.js.map +1 -0
- package/dist/commands/image/convert.d.ts +11 -0
- package/dist/commands/image/convert.d.ts.map +1 -0
- package/dist/commands/image/convert.js +230 -0
- package/dist/commands/image/convert.js.map +1 -0
- package/dist/commands/image/enhance.d.ts +10 -0
- package/dist/commands/image/enhance.d.ts.map +1 -0
- package/dist/commands/image/enhance.js +174 -0
- package/dist/commands/image/enhance.js.map +1 -0
- package/dist/commands/image/sharpen.d.ts +13 -0
- package/dist/commands/image/sharpen.d.ts.map +1 -0
- package/dist/commands/image/sharpen.js +205 -0
- package/dist/commands/image/sharpen.js.map +1 -0
- package/dist/commands/image.d.ts +3 -0
- package/dist/commands/image.d.ts.map +1 -0
- package/dist/commands/image.js +125 -0
- package/dist/commands/image.js.map +1 -0
- package/dist/commands/repo.d.ts +6 -0
- package/dist/commands/repo.d.ts.map +1 -0
- package/dist/commands/repo.js +75 -0
- package/dist/commands/repo.js.map +1 -0
- package/dist/config/config.d.ts +16 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +57 -0
- package/dist/config/config.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/constants.d.ts +23 -0
- package/dist/lib/constants.d.ts.map +1 -0
- package/dist/lib/constants.js +22 -0
- package/dist/lib/constants.js.map +1 -0
- package/dist/lib/data-generator.d.ts +11 -0
- package/dist/lib/data-generator.d.ts.map +1 -0
- package/dist/lib/data-generator.js +78 -0
- package/dist/lib/data-generator.js.map +1 -0
- package/dist/lib/database-runner.d.ts +14 -0
- package/dist/lib/database-runner.d.ts.map +1 -0
- package/dist/lib/database-runner.js +186 -0
- package/dist/lib/database-runner.js.map +1 -0
- package/dist/lib/instance-discovery.d.ts +13 -0
- package/dist/lib/instance-discovery.d.ts.map +1 -0
- package/dist/lib/instance-discovery.js +48 -0
- package/dist/lib/instance-discovery.js.map +1 -0
- package/dist/lib/schema-discovery.d.ts +30 -0
- package/dist/lib/schema-discovery.d.ts.map +1 -0
- package/dist/lib/schema-discovery.js +85 -0
- package/dist/lib/schema-discovery.js.map +1 -0
- package/dist/lib/sql-builder.d.ts +25 -0
- package/dist/lib/sql-builder.d.ts.map +1 -0
- package/dist/lib/sql-builder.js +108 -0
- package/dist/lib/sql-builder.js.map +1 -0
- package/dist/lib/yaml-converter.d.ts +26 -0
- package/dist/lib/yaml-converter.d.ts.map +1 -0
- package/dist/lib/yaml-converter.js +350 -0
- package/dist/lib/yaml-converter.js.map +1 -0
- package/dist/utils/supabase.d.ts +3 -0
- package/dist/utils/supabase.d.ts.map +1 -0
- package/dist/utils/supabase.js +19 -0
- package/dist/utils/supabase.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.imageColorHelp = imageColorHelp;
|
|
40
|
+
exports.imageColorCommand = imageColorCommand;
|
|
41
|
+
const debug_1 = __importDefault(require("debug"));
|
|
42
|
+
const fs_1 = require("fs");
|
|
43
|
+
const path_1 = require("path");
|
|
44
|
+
const log = (0, debug_1.default)("blt:image:color");
|
|
45
|
+
function imageColorHelp() {
|
|
46
|
+
console.log("\nChange the base color of an image\n");
|
|
47
|
+
console.log("Usage:");
|
|
48
|
+
console.log(" blt image color <input> [options]\n");
|
|
49
|
+
console.log("Options:");
|
|
50
|
+
console.log(" -t, --to <color> Target color (hex, rgb, or color name)");
|
|
51
|
+
console.log(" -f, --from <color> Source color to replace (hex, rgb, or color name)");
|
|
52
|
+
console.log(" If not specified, detects dominant color");
|
|
53
|
+
console.log(" -o, --output <path> Output file path (defaults to overwriting input)");
|
|
54
|
+
console.log(" -q, --quality <quality> WebP quality (0-100)");
|
|
55
|
+
console.log(" -z, --tolerance <num> Color matching tolerance (0-100, default: 30)\n");
|
|
56
|
+
}
|
|
57
|
+
// Color helper functions
|
|
58
|
+
function parseColor(color) {
|
|
59
|
+
const normalized = color.trim().toLowerCase();
|
|
60
|
+
// Named colors
|
|
61
|
+
const namedColors = {
|
|
62
|
+
red: { r: 255, g: 0, b: 0 },
|
|
63
|
+
green: { r: 0, g: 255, b: 0 },
|
|
64
|
+
blue: { r: 0, g: 0, b: 255 },
|
|
65
|
+
yellow: { r: 255, g: 255, b: 0 },
|
|
66
|
+
cyan: { r: 0, g: 255, b: 255 },
|
|
67
|
+
magenta: { r: 255, g: 0, b: 255 },
|
|
68
|
+
orange: { r: 255, g: 165, b: 0 },
|
|
69
|
+
purple: { r: 128, g: 0, b: 128 },
|
|
70
|
+
pink: { r: 255, g: 192, b: 203 },
|
|
71
|
+
white: { r: 255, g: 255, b: 255 },
|
|
72
|
+
black: { r: 0, g: 0, b: 0 },
|
|
73
|
+
gray: { r: 128, g: 128, b: 128 },
|
|
74
|
+
grey: { r: 128, g: 128, b: 128 },
|
|
75
|
+
};
|
|
76
|
+
if (namedColors[normalized]) {
|
|
77
|
+
return namedColors[normalized];
|
|
78
|
+
}
|
|
79
|
+
// Hex color (#FF0000 or FF0000)
|
|
80
|
+
if (normalized.startsWith("#") || /^[0-9a-f]{6}$/i.test(normalized)) {
|
|
81
|
+
const hex = normalized.startsWith("#") ? normalized.slice(1) : normalized;
|
|
82
|
+
if (/^[0-9a-f]{6}$/i.test(hex)) {
|
|
83
|
+
return {
|
|
84
|
+
r: parseInt(hex.slice(0, 2), 16),
|
|
85
|
+
g: parseInt(hex.slice(2, 4), 16),
|
|
86
|
+
b: parseInt(hex.slice(4, 6), 16),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// RGB format (255,0,0 or rgb(255,0,0))
|
|
91
|
+
const rgbMatch = normalized.match(/(?:rgb\()?(\d+),?\s*(\d+),?\s*(\d+)\)?/);
|
|
92
|
+
if (rgbMatch) {
|
|
93
|
+
return {
|
|
94
|
+
r: parseInt(rgbMatch[1], 10),
|
|
95
|
+
g: parseInt(rgbMatch[2], 10),
|
|
96
|
+
b: parseInt(rgbMatch[3], 10),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
function detectDominantColor(data, info) {
|
|
102
|
+
const colorCounts = new Map();
|
|
103
|
+
const sampleSize = Math.min(10000, data.length); // Sample up to 10k pixels for performance
|
|
104
|
+
const step = Math.max(1, Math.floor(data.length / sampleSize));
|
|
105
|
+
for (let i = 0; i < data.length; i += step * info.channels) {
|
|
106
|
+
if (info.channels >= 3) {
|
|
107
|
+
const r = data[i];
|
|
108
|
+
const g = data[i + 1];
|
|
109
|
+
const b = data[i + 2];
|
|
110
|
+
// Quantize colors to reduce noise (group similar colors)
|
|
111
|
+
const quantizedR = Math.floor(r / 16) * 16;
|
|
112
|
+
const quantizedG = Math.floor(g / 16) * 16;
|
|
113
|
+
const quantizedB = Math.floor(b / 16) * 16;
|
|
114
|
+
const key = `${quantizedR},${quantizedG},${quantizedB}`;
|
|
115
|
+
colorCounts.set(key, (colorCounts.get(key) || 0) + 1);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
// Find most common color
|
|
119
|
+
let maxCount = 0;
|
|
120
|
+
let dominantKey = "0,0,0";
|
|
121
|
+
for (const [key, count] of colorCounts.entries()) {
|
|
122
|
+
if (count > maxCount) {
|
|
123
|
+
maxCount = count;
|
|
124
|
+
dominantKey = key;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
const [r, g, b] = dominantKey.split(",").map(Number);
|
|
128
|
+
return { r, g, b };
|
|
129
|
+
}
|
|
130
|
+
function colorDistance(c1, c2) {
|
|
131
|
+
// Euclidean distance in RGB space
|
|
132
|
+
const dr = c1.r - c2.r;
|
|
133
|
+
const dg = c1.g - c2.g;
|
|
134
|
+
const db = c1.b - c2.b;
|
|
135
|
+
return Math.sqrt(dr * dr + dg * dg + db * db);
|
|
136
|
+
}
|
|
137
|
+
function replaceColor(data, info, sourceColor, targetColor, tolerance) {
|
|
138
|
+
const output = Buffer.from(data);
|
|
139
|
+
const maxDistance = (tolerance / 100) * 441; // Max RGB distance is ~441 (sqrt(255^2 * 3))
|
|
140
|
+
for (let i = 0; i < data.length; i += info.channels) {
|
|
141
|
+
if (info.channels >= 3) {
|
|
142
|
+
const r = data[i];
|
|
143
|
+
const g = data[i + 1];
|
|
144
|
+
const b = data[i + 2];
|
|
145
|
+
const pixelColor = { r, g, b };
|
|
146
|
+
const distance = colorDistance(pixelColor, sourceColor);
|
|
147
|
+
if (distance <= maxDistance) {
|
|
148
|
+
// Calculate replacement strength based on distance
|
|
149
|
+
const strength = 1 - distance / maxDistance;
|
|
150
|
+
// Blend between original and target based on distance
|
|
151
|
+
output[i] = Math.round(r + (targetColor.r - r) * strength);
|
|
152
|
+
output[i + 1] = Math.round(g + (targetColor.g - g) * strength);
|
|
153
|
+
output[i + 2] = Math.round(b + (targetColor.b - b) * strength);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
return output;
|
|
158
|
+
}
|
|
159
|
+
// entry point for the image color command
|
|
160
|
+
async function imageColorCommand(args, options, logger) {
|
|
161
|
+
try {
|
|
162
|
+
const inputPath = args.input;
|
|
163
|
+
const targetColor = (options.to || "").toLowerCase();
|
|
164
|
+
const sourceColor = (options.from || "").toLowerCase();
|
|
165
|
+
const outputPath = options.output;
|
|
166
|
+
const quality = options.quality;
|
|
167
|
+
const tolerance = options.tolerance;
|
|
168
|
+
log("Changing color: %s", inputPath);
|
|
169
|
+
if (!inputPath) {
|
|
170
|
+
imageColorHelp();
|
|
171
|
+
process.exit(1);
|
|
172
|
+
}
|
|
173
|
+
if (!targetColor) {
|
|
174
|
+
logger.error("Target color is required. Use --to <color> to specify the target color.");
|
|
175
|
+
process.exit(1);
|
|
176
|
+
}
|
|
177
|
+
// Check if input exists
|
|
178
|
+
try {
|
|
179
|
+
(0, fs_1.statSync)(inputPath);
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
logger.error(`Input file not found: ${inputPath}`);
|
|
183
|
+
process.exit(1);
|
|
184
|
+
}
|
|
185
|
+
// Validate quality
|
|
186
|
+
if (quality < 0 || quality > 100) {
|
|
187
|
+
logger.error("Quality must be between 0 and 100");
|
|
188
|
+
process.exit(1);
|
|
189
|
+
}
|
|
190
|
+
// Validate tolerance
|
|
191
|
+
if (tolerance < 0 || tolerance > 100) {
|
|
192
|
+
logger.error("Tolerance must be between 0 and 100");
|
|
193
|
+
process.exit(1);
|
|
194
|
+
}
|
|
195
|
+
// Import sharp dynamically
|
|
196
|
+
let sharp;
|
|
197
|
+
try {
|
|
198
|
+
const sharpModule = await Promise.resolve().then(() => __importStar(require("sharp")));
|
|
199
|
+
sharp = sharpModule.default;
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
logger.error("Sharp library not found. Install with: bun add sharp");
|
|
203
|
+
process.exit(1);
|
|
204
|
+
}
|
|
205
|
+
// Parse colors
|
|
206
|
+
const targetRgb = parseColor(targetColor);
|
|
207
|
+
if (!targetRgb) {
|
|
208
|
+
logger.error(`Invalid target color: ${targetColor}. Use hex (#FF0000), rgb (255,0,0), or color name (red).`);
|
|
209
|
+
process.exit(1);
|
|
210
|
+
}
|
|
211
|
+
let sourceRgb = null;
|
|
212
|
+
if (sourceColor) {
|
|
213
|
+
sourceRgb = parseColor(sourceColor);
|
|
214
|
+
if (!sourceRgb) {
|
|
215
|
+
logger.error(`Invalid source color: ${sourceColor}. Use hex (#0000FF), rgb (0,0,255), or color name (blue).`);
|
|
216
|
+
process.exit(1);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
// If output is same as input, use a temp file
|
|
220
|
+
const isSameFile = !outputPath;
|
|
221
|
+
const finalOutputPath = outputPath || inputPath;
|
|
222
|
+
const tempPath = isSameFile
|
|
223
|
+
? (0, path_1.join)((0, path_1.dirname)(inputPath), `.${(0, path_1.basename)(inputPath)}.tmp`)
|
|
224
|
+
: finalOutputPath;
|
|
225
|
+
const image = sharp(inputPath);
|
|
226
|
+
const metadata = await image.metadata();
|
|
227
|
+
console.log(` Original: ${metadata.width}x${metadata.height}, format: ${metadata.format}`);
|
|
228
|
+
// Get image buffer for color analysis
|
|
229
|
+
const { data, info } = await image.raw().toBuffer({ resolveWithObject: true });
|
|
230
|
+
// Detect source color if not provided
|
|
231
|
+
if (!sourceRgb) {
|
|
232
|
+
console.log(" Detecting dominant color...");
|
|
233
|
+
sourceRgb = detectDominantColor(data, info);
|
|
234
|
+
console.log(` Detected base color: rgb(${sourceRgb.r}, ${sourceRgb.g}, ${sourceRgb.b})`);
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
console.log(` Using source color: rgb(${sourceRgb.r}, ${sourceRgb.g}, ${sourceRgb.b})`);
|
|
238
|
+
}
|
|
239
|
+
console.log(` Target color: rgb(${targetRgb.r}, ${targetRgb.g}, ${targetRgb.b})`);
|
|
240
|
+
// Replace colors in the image
|
|
241
|
+
const replacedData = replaceColor(data, info, sourceRgb, targetRgb, tolerance);
|
|
242
|
+
// Reconstruct image with new colors
|
|
243
|
+
await sharp(replacedData, {
|
|
244
|
+
raw: {
|
|
245
|
+
width: info.width,
|
|
246
|
+
height: info.height,
|
|
247
|
+
channels: info.channels,
|
|
248
|
+
},
|
|
249
|
+
})
|
|
250
|
+
.webp({
|
|
251
|
+
quality,
|
|
252
|
+
effort: 6,
|
|
253
|
+
})
|
|
254
|
+
.toFile(tempPath);
|
|
255
|
+
// If same file, replace original with temp
|
|
256
|
+
if (isSameFile) {
|
|
257
|
+
(0, fs_1.renameSync)(tempPath, inputPath);
|
|
258
|
+
}
|
|
259
|
+
const inputSize = (0, fs_1.statSync)(inputPath).size;
|
|
260
|
+
const finalPath = isSameFile ? inputPath : finalOutputPath;
|
|
261
|
+
const outputSize = (0, fs_1.statSync)(finalPath).size;
|
|
262
|
+
console.log(`✓ Color changed: ${finalPath}`);
|
|
263
|
+
console.log(` Input: ${(inputSize / 1024).toFixed(2)} KB`);
|
|
264
|
+
console.log(` Output: ${(outputSize / 1024).toFixed(2)} KB`);
|
|
265
|
+
}
|
|
266
|
+
catch (error) {
|
|
267
|
+
logger.error("Error:", error.message);
|
|
268
|
+
if (error.stack) {
|
|
269
|
+
log("Stack trace: %s", error.stack);
|
|
270
|
+
}
|
|
271
|
+
process.exit(1);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=color.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../../src/commands/image/color.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,wCAWC;AAqJD,8CA2IC;AAjTD,kDAA0B;AAC1B,2BAA0C;AAC1C,+BAA+C;AAE/C,MAAM,GAAG,GAAG,IAAA,eAAK,EAAC,iBAAiB,CAAC,CAAC;AAErC,SAAgB,cAAc;IAC1B,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,6EAA6E,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;IAC1F,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,2EAA2E,CAAC,CAAC;AAC7F,CAAC;AAED,yBAAyB;AACzB,SAAS,UAAU,CAAC,KAAa;IAC/B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE9C,eAAe;IACf,MAAM,WAAW,GAAwD;QACvE,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;QAC3B,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;QAC7B,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;QAC5B,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;QAChC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;QAC9B,OAAO,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;QACjC,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE;QAChC,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;QAChC,IAAI,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;QAChC,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;QACjC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;QAC3B,IAAI,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;QAChC,IAAI,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE;KACjC,CAAC;IAEF,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;IAED,gCAAgC;IAChC,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACpE,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC1E,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO;gBACL,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;gBAChC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;gBAChC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;aACjC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5E,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO;YACL,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC5B,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC5B,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;SAC7B,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAY,EACZ,IAAyD;IAEzD,MAAM,WAAW,GAAwB,IAAI,GAAG,EAAE,CAAC;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,0CAA0C;IAC3F,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;IAE/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3D,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAEtB,yDAAyD;YACzD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;YAE3C,MAAM,GAAG,GAAG,GAAG,UAAU,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;YACxD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,WAAW,GAAG,OAAO,CAAC;IAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QACjD,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;YACrB,QAAQ,GAAG,KAAK,CAAC;YACjB,WAAW,GAAG,GAAG,CAAC;QACpB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrD,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,aAAa,CACpB,EAAuC,EACvC,EAAuC;IAEvC,kCAAkC;IAClC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACvB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,YAAY,CACnB,IAAY,EACZ,IAAyD,EACzD,WAAgD,EAChD,WAAgD,EAChD,SAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,6CAA6C;IAE1F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpD,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAEtB,MAAM,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAExD,IAAI,QAAQ,IAAI,WAAW,EAAE,CAAC;gBAC5B,mDAAmD;gBACnD,MAAM,QAAQ,GAAG,CAAC,GAAG,QAAQ,GAAG,WAAW,CAAC;gBAE5C,sDAAsD;gBACtD,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;gBAC3D,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;gBAC/D,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAeD,0CAA0C;AACnC,KAAK,UAAU,iBAAiB,CACrC,IAAwB,EACxB,OAMC,EACD,MAAc;IAEd,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAe,CAAC;QACvC,MAAM,WAAW,GAAG,CAAE,OAAO,CAAC,EAAa,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACjE,MAAM,WAAW,GAAG,CAAE,OAAO,CAAC,IAAe,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACnE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAgB,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAiB,CAAC;QAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAmB,CAAC;QAE9C,GAAG,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;QAErC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,cAAc,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;YACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,wBAAwB;QACxB,IAAI,CAAC;YACH,IAAA,aAAQ,EAAC,SAAS,CAAC,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,KAAK,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,mBAAmB;QACnB,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,qBAAqB;QACrB,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,2BAA2B;QAC3B,IAAI,KAAoB,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,wDAAa,OAAO,GAAC,CAAC;YAC1C,KAAK,GAAG,WAAW,CAAC,OAAmC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;YACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,eAAe;QACf,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,yBAAyB,WAAW,0DAA0D,CAAC,CAAC;YAC7G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,SAAS,GAA+C,IAAI,CAAC;QACjE,IAAI,WAAW,EAAE,CAAC;YAChB,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,yBAAyB,WAAW,2DAA2D,CAAC,CAAC;gBAC9G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC;QAC/B,MAAM,eAAe,GAAG,UAAU,IAAI,SAAS,CAAC;QAChD,MAAM,QAAQ,GAAG,UAAU;YACzB,CAAC,CAAC,IAAA,WAAI,EAAC,IAAA,cAAO,EAAC,SAAS,CAAC,EAAE,IAAI,IAAA,eAAQ,EAAC,SAAS,CAAC,MAAM,CAAC;YACzD,CAAC,CAAC,eAAe,CAAC;QAEpB,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAO,KAAkC,CAAC,QAAQ,EAAE,CAAC;QAEtE,OAAO,CAAC,GAAG,CAAC,eAAe,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,aAAa,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAE5F,sCAAsC;QACtC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;QAE/E,sCAAsC;QACtC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC7C,SAAS,GAAG,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,8BAA8B,SAAS,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,6BAA6B,SAAS,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3F,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,uBAAuB,SAAS,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;QAEnF,8BAA8B;QAC9B,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAE/E,oCAAoC;QACpC,MAAM,KAAK,CAAC,YAAY,EAAE;YACxB,GAAG,EAAE;gBACH,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB;SACF,CAAC;aACC,IAAI,CAAC;YACJ,OAAO;YACP,MAAM,EAAE,CAAC;SACV,CAAC;aACD,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEpB,2CAA2C;QAC3C,IAAI,UAAU,EAAE,CAAC;YACf,IAAA,eAAU,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,SAAS,GAAG,IAAA,aAAQ,EAAC,SAAS,CAAC,CAAC,IAAI,CAAC;QAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAA,aAAQ,EAAC,SAAS,CAAC,CAAC,IAAI,CAAC;QAE5C,OAAO,CAAC,GAAG,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QACjD,IAAK,KAAe,CAAC,KAAK,EAAE,CAAC;YAC3B,GAAG,CAAC,iBAAiB,EAAG,KAAe,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Logger } from "@caporal/core";
|
|
2
|
+
export declare function imageConvertHelp(logger: Logger): void;
|
|
3
|
+
export declare function imageConvertCommand(args: {
|
|
4
|
+
input?: string;
|
|
5
|
+
}, options: {
|
|
6
|
+
output?: string;
|
|
7
|
+
quality?: number;
|
|
8
|
+
recursive?: boolean;
|
|
9
|
+
overwrite?: boolean;
|
|
10
|
+
}, logger: Logger): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=convert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/commands/image/convert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAO5C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,QAS9C;AAwDD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACxB,OAAO,EAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,EACD,MAAM,EAAE,MAAM,iBA4Jf"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.imageConvertHelp = imageConvertHelp;
|
|
40
|
+
exports.imageConvertCommand = imageConvertCommand;
|
|
41
|
+
const debug_1 = __importDefault(require("debug"));
|
|
42
|
+
const fs_1 = require("fs");
|
|
43
|
+
const path_1 = require("path");
|
|
44
|
+
const log = (0, debug_1.default)("blt:image:convert");
|
|
45
|
+
function imageConvertHelp(logger) {
|
|
46
|
+
console.log("\nConvert images to WebP format\n");
|
|
47
|
+
console.log("Usage:");
|
|
48
|
+
console.log(" blt image convert <input> [options]\n");
|
|
49
|
+
console.log("Options:");
|
|
50
|
+
console.log(" -o, --output <path> Output file or directory");
|
|
51
|
+
console.log(" -q, --quality <quality> WebP quality (0-100)");
|
|
52
|
+
console.log(" -r, --recursive Process directories recursively");
|
|
53
|
+
console.log(" --overwrite Overwrite existing files\n");
|
|
54
|
+
}
|
|
55
|
+
// Helper functions
|
|
56
|
+
function isImageFile(filePath) {
|
|
57
|
+
const ext = (0, path_1.extname)(filePath).toLowerCase();
|
|
58
|
+
return [".png", ".jpg", ".jpeg", ".gif", ".tiff", ".tif", ".bmp"].includes(ext);
|
|
59
|
+
}
|
|
60
|
+
function getImageFiles(dirPath) {
|
|
61
|
+
const files = (0, fs_1.readdirSync)(dirPath);
|
|
62
|
+
return files
|
|
63
|
+
.filter((file) => file !== '.DS_Store' && !file.startsWith('._'))
|
|
64
|
+
.map((file) => (0, path_1.join)(dirPath, file))
|
|
65
|
+
.filter((filePath) => {
|
|
66
|
+
try {
|
|
67
|
+
return (0, fs_1.statSync)(filePath).isFile() && isImageFile(filePath);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
function getAllImageFiles(dirPath, arrayOfFiles = []) {
|
|
75
|
+
const files = (0, fs_1.readdirSync)(dirPath);
|
|
76
|
+
files.forEach((file) => {
|
|
77
|
+
// Skip .DS_Store and other hidden system files
|
|
78
|
+
if (file === '.DS_Store' || file.startsWith('._')) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const filePath = (0, path_1.join)(dirPath, file);
|
|
82
|
+
try {
|
|
83
|
+
if ((0, fs_1.statSync)(filePath).isDirectory()) {
|
|
84
|
+
arrayOfFiles = getAllImageFiles(filePath, arrayOfFiles);
|
|
85
|
+
}
|
|
86
|
+
else if (isImageFile(filePath)) {
|
|
87
|
+
arrayOfFiles.push(filePath);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
// Skip files we can't access
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
return arrayOfFiles;
|
|
95
|
+
}
|
|
96
|
+
function formatBytes(bytes) {
|
|
97
|
+
if (bytes === 0)
|
|
98
|
+
return "0 B";
|
|
99
|
+
const k = 1024;
|
|
100
|
+
const sizes = ["B", "KB", "MB", "GB"];
|
|
101
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
102
|
+
return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`;
|
|
103
|
+
}
|
|
104
|
+
// entry point for the image convert command
|
|
105
|
+
async function imageConvertCommand(args, options, logger) {
|
|
106
|
+
try {
|
|
107
|
+
const inputPath = args.input;
|
|
108
|
+
const outputPath = options.output;
|
|
109
|
+
const quality = options.quality;
|
|
110
|
+
const recursive = options.recursive;
|
|
111
|
+
const overwrite = options.overwrite;
|
|
112
|
+
log("Converting to WebP: %s", inputPath);
|
|
113
|
+
// Check if input exists
|
|
114
|
+
let isDirectory = false;
|
|
115
|
+
try {
|
|
116
|
+
const stat = (0, fs_1.statSync)(inputPath);
|
|
117
|
+
isDirectory = stat.isDirectory();
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
logger.error(`Input not found: ${inputPath}`);
|
|
121
|
+
process.exit(1);
|
|
122
|
+
}
|
|
123
|
+
// Validate quality
|
|
124
|
+
if (quality < 0 || quality > 100) {
|
|
125
|
+
logger.error("Quality must be between 0 and 100");
|
|
126
|
+
process.exit(1);
|
|
127
|
+
}
|
|
128
|
+
let sharp;
|
|
129
|
+
try {
|
|
130
|
+
const sharpModule = await Promise.resolve().then(() => __importStar(require("sharp")));
|
|
131
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
132
|
+
sharp = sharpModule.default;
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
logger.error("Sharp library not found. Install with: bun add sharp");
|
|
136
|
+
process.exit(1);
|
|
137
|
+
}
|
|
138
|
+
if (isDirectory) {
|
|
139
|
+
// Process directory
|
|
140
|
+
const files = recursive
|
|
141
|
+
? getAllImageFiles(inputPath)
|
|
142
|
+
: getImageFiles(inputPath);
|
|
143
|
+
if (files.length === 0) {
|
|
144
|
+
console.log("No image files found");
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
console.log(`Found ${files.length} image(s) to convert`);
|
|
148
|
+
console.log("");
|
|
149
|
+
let successCount = 0;
|
|
150
|
+
let errorCount = 0;
|
|
151
|
+
let skippedCount = 0;
|
|
152
|
+
for (const filePath of files) {
|
|
153
|
+
const ext = (0, path_1.extname)(filePath).toLowerCase();
|
|
154
|
+
if (ext === ".webp") {
|
|
155
|
+
console.log(` ⊘ ${(0, path_1.basename)(filePath)} (already WebP)`);
|
|
156
|
+
skippedCount++;
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
try {
|
|
160
|
+
const outputFilePath = outputPath
|
|
161
|
+
? (0, path_1.join)(outputPath, (0, path_1.basename)(filePath, ext) + ".webp")
|
|
162
|
+
: filePath.replace(ext, ".webp");
|
|
163
|
+
// Check if output exists
|
|
164
|
+
if (!overwrite) {
|
|
165
|
+
try {
|
|
166
|
+
(0, fs_1.statSync)(outputFilePath);
|
|
167
|
+
console.log(` ⊘ ${(0, path_1.basename)(filePath)} (output exists, use --overwrite)`);
|
|
168
|
+
skippedCount++;
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
// File doesn't exist, proceed
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
await sharp(filePath).webp({ quality }).toFile(outputFilePath);
|
|
176
|
+
const inputSize = (0, fs_1.statSync)(filePath).size;
|
|
177
|
+
const outputSize = (0, fs_1.statSync)(outputFilePath).size;
|
|
178
|
+
const savings = ((1 - outputSize / inputSize) * 100).toFixed(1);
|
|
179
|
+
console.log(` ✓ ${(0, path_1.basename)(filePath)} → ${(0, path_1.basename)(outputFilePath)} (${savings}% smaller)`);
|
|
180
|
+
successCount++;
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
logger.error(` ✗ ${(0, path_1.basename)(filePath)}: ${error.message}`);
|
|
184
|
+
errorCount++;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
console.log("");
|
|
188
|
+
console.log(`Completed: ${successCount} converted, ${skippedCount} skipped, ${errorCount} failed`);
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
// Process single file
|
|
192
|
+
const ext = (0, path_1.extname)(inputPath).toLowerCase();
|
|
193
|
+
if (ext === ".webp") {
|
|
194
|
+
console.log("Input is already a WebP file");
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
if (!isImageFile(inputPath)) {
|
|
198
|
+
logger.error("Input is not a supported image file (png, jpg, jpeg, gif, tiff, bmp)");
|
|
199
|
+
process.exit(1);
|
|
200
|
+
}
|
|
201
|
+
const outputFilePath = outputPath
|
|
202
|
+
? outputPath
|
|
203
|
+
: inputPath.replace(ext, ".webp");
|
|
204
|
+
// Check if output exists
|
|
205
|
+
if (!overwrite) {
|
|
206
|
+
try {
|
|
207
|
+
(0, fs_1.statSync)(outputFilePath);
|
|
208
|
+
logger.error(`Output file exists: ${outputFilePath}. Use --overwrite to replace it.`);
|
|
209
|
+
process.exit(1);
|
|
210
|
+
}
|
|
211
|
+
catch {
|
|
212
|
+
// File doesn't exist, proceed
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
await sharp(inputPath).webp({ quality }).toFile(outputFilePath);
|
|
216
|
+
const inputSize = (0, fs_1.statSync)(inputPath).size;
|
|
217
|
+
const outputSize = (0, fs_1.statSync)(outputFilePath).size;
|
|
218
|
+
const savings = ((1 - outputSize / inputSize) * 100).toFixed(1);
|
|
219
|
+
console.log(`✓ Converted: ${outputFilePath}`);
|
|
220
|
+
console.log(` Input: ${formatBytes(inputSize)}`);
|
|
221
|
+
console.log(` Output: ${formatBytes(outputSize)}`);
|
|
222
|
+
console.log(` Saved: ${savings}%`);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
logger.error("Error:", error.message);
|
|
227
|
+
process.exit(1);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=convert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/commands/image/convert.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Logger } from "@caporal/core";
|
|
2
|
+
export declare function imageEnhanceHelp(): void;
|
|
3
|
+
export declare function imageEnhanceCommand(args: {
|
|
4
|
+
input?: string;
|
|
5
|
+
}, options: {
|
|
6
|
+
mode?: string;
|
|
7
|
+
output?: string;
|
|
8
|
+
quality?: number;
|
|
9
|
+
}, logger: Logger): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=enhance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enhance.d.ts","sourceRoot":"","sources":["../../../src/commands/image/enhance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAO5C,wBAAgB,gBAAgB,SAQ/B;AAkBD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACxB,OAAO,EAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,EACD,MAAM,EAAE,MAAM,iBAkIf"}
|