@codemarc/blt 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +107 -7
- package/dist/blt +32 -0
- package/dist/blt.d.ts +3 -0
- package/dist/blt.d.ts.map +1 -0
- package/dist/blt.js.map +1 -0
- package/dist/commands/check.js +7 -13
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/cleanup.js +12 -48
- package/dist/commands/cleanup.js.map +1 -1
- package/dist/commands/data.js +37 -43
- package/dist/commands/data.js.map +1 -1
- package/dist/commands/env.js +3 -6
- package/dist/commands/env.js.map +1 -1
- package/dist/commands/image/color.js +12 -52
- package/dist/commands/image/color.js.map +1 -1
- package/dist/commands/image/convert.js +28 -68
- package/dist/commands/image/convert.js.map +1 -1
- package/dist/commands/image/enhance.js +12 -52
- package/dist/commands/image/enhance.js.map +1 -1
- package/dist/commands/image/sharpen.js +24 -64
- package/dist/commands/image/sharpen.js.map +1 -1
- package/dist/commands/image.js +9 -12
- package/dist/commands/image.js.map +1 -1
- package/dist/commands/repo.js +3 -9
- package/dist/commands/repo.js.map +1 -1
- package/dist/commands/version/update-version.d.ts +3 -0
- package/dist/commands/version/update-version.d.ts.map +1 -0
- package/dist/commands/version/update-version.js +97 -0
- package/dist/commands/version/update-version.js.map +1 -0
- package/dist/commands/version/update.d.ts +8 -0
- package/dist/commands/version/update.d.ts.map +1 -0
- package/dist/commands/version/update.js +171 -0
- package/dist/commands/version/update.js.map +1 -0
- package/dist/commands/version.d.ts +6 -0
- package/dist/commands/version.d.ts.map +1 -0
- package/dist/commands/version.js +44 -0
- package/dist/commands/version.js.map +1 -0
- package/dist/config/config.js +11 -15
- package/dist/config/config.js.map +1 -1
- package/dist/lib/constants.js +4 -8
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/data-generator.js +27 -31
- package/dist/lib/data-generator.js.map +1 -1
- package/dist/lib/database-runner.js +17 -25
- package/dist/lib/database-runner.js.map +1 -1
- package/dist/lib/instance-discovery.js +14 -19
- package/dist/lib/instance-discovery.js.map +1 -1
- package/dist/lib/schema-discovery.js +18 -24
- package/dist/lib/schema-discovery.js.map +1 -1
- package/dist/lib/sql-builder.js +22 -29
- package/dist/lib/sql-builder.js.map +1 -1
- package/dist/lib/version-types.d.ts +77 -0
- package/dist/lib/version-types.d.ts.map +1 -0
- package/dist/lib/version-types.js +8 -0
- package/dist/lib/version-types.js.map +1 -0
- package/dist/lib/yaml-converter.js +17 -60
- package/dist/lib/yaml-converter.js.map +1 -1
- package/dist/utils/supabase.js +5 -11
- package/dist/utils/supabase.js.map +1 -1
- package/package.json +12 -8
|
@@ -1,48 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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() {
|
|
1
|
+
import debug from "debug";
|
|
2
|
+
import { statSync, renameSync } from "fs";
|
|
3
|
+
import { join, basename, dirname } from "path";
|
|
4
|
+
const log = debug("blt:image:color");
|
|
5
|
+
export function imageColorHelp() {
|
|
46
6
|
console.log("\nChange the base color of an image\n");
|
|
47
7
|
console.log("Usage:");
|
|
48
8
|
console.log(" blt image color <input> [options]\n");
|
|
@@ -157,7 +117,7 @@ function replaceColor(data, info, sourceColor, targetColor, tolerance) {
|
|
|
157
117
|
return output;
|
|
158
118
|
}
|
|
159
119
|
// entry point for the image color command
|
|
160
|
-
async function imageColorCommand(args, options, logger) {
|
|
120
|
+
export async function imageColorCommand(args, options, logger) {
|
|
161
121
|
try {
|
|
162
122
|
const inputPath = args.input;
|
|
163
123
|
const targetColor = (options.to || "").toLowerCase();
|
|
@@ -176,7 +136,7 @@ async function imageColorCommand(args, options, logger) {
|
|
|
176
136
|
}
|
|
177
137
|
// Check if input exists
|
|
178
138
|
try {
|
|
179
|
-
|
|
139
|
+
statSync(inputPath);
|
|
180
140
|
}
|
|
181
141
|
catch {
|
|
182
142
|
logger.error(`Input file not found: ${inputPath}`);
|
|
@@ -195,7 +155,7 @@ async function imageColorCommand(args, options, logger) {
|
|
|
195
155
|
// Import sharp dynamically
|
|
196
156
|
let sharp;
|
|
197
157
|
try {
|
|
198
|
-
const sharpModule = await
|
|
158
|
+
const sharpModule = await import("sharp");
|
|
199
159
|
sharp = sharpModule.default;
|
|
200
160
|
}
|
|
201
161
|
catch {
|
|
@@ -220,7 +180,7 @@ async function imageColorCommand(args, options, logger) {
|
|
|
220
180
|
const isSameFile = !outputPath;
|
|
221
181
|
const finalOutputPath = outputPath || inputPath;
|
|
222
182
|
const tempPath = isSameFile
|
|
223
|
-
?
|
|
183
|
+
? join(dirname(inputPath), `.${basename(inputPath)}.tmp`)
|
|
224
184
|
: finalOutputPath;
|
|
225
185
|
const image = sharp(inputPath);
|
|
226
186
|
const metadata = await image.metadata();
|
|
@@ -254,11 +214,11 @@ async function imageColorCommand(args, options, logger) {
|
|
|
254
214
|
.toFile(tempPath);
|
|
255
215
|
// If same file, replace original with temp
|
|
256
216
|
if (isSameFile) {
|
|
257
|
-
|
|
217
|
+
renameSync(tempPath, inputPath);
|
|
258
218
|
}
|
|
259
|
-
const inputSize =
|
|
219
|
+
const inputSize = statSync(inputPath).size;
|
|
260
220
|
const finalPath = isSameFile ? inputPath : finalOutputPath;
|
|
261
|
-
const outputSize =
|
|
221
|
+
const outputSize = statSync(finalPath).size;
|
|
262
222
|
console.log(`✓ Color changed: ${finalPath}`);
|
|
263
223
|
console.log(` Input: ${(inputSize / 1024).toFixed(2)} KB`);
|
|
264
224
|
console.log(` Output: ${(outputSize / 1024).toFixed(2)} KB`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../../src/commands/image/color.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../../src/commands/image/color.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,48 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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) {
|
|
1
|
+
import debug from "debug";
|
|
2
|
+
import { readdirSync, statSync } from "fs";
|
|
3
|
+
import { join, extname, basename } from "path";
|
|
4
|
+
const log = debug("blt:image:convert");
|
|
5
|
+
export function imageConvertHelp(logger) {
|
|
46
6
|
console.log("\nConvert images to WebP format\n");
|
|
47
7
|
console.log("Usage:");
|
|
48
8
|
console.log(" blt image convert <input> [options]\n");
|
|
@@ -54,17 +14,17 @@ function imageConvertHelp(logger) {
|
|
|
54
14
|
}
|
|
55
15
|
// Helper functions
|
|
56
16
|
function isImageFile(filePath) {
|
|
57
|
-
const ext =
|
|
17
|
+
const ext = extname(filePath).toLowerCase();
|
|
58
18
|
return [".png", ".jpg", ".jpeg", ".gif", ".tiff", ".tif", ".bmp"].includes(ext);
|
|
59
19
|
}
|
|
60
20
|
function getImageFiles(dirPath) {
|
|
61
|
-
const files =
|
|
21
|
+
const files = readdirSync(dirPath);
|
|
62
22
|
return files
|
|
63
23
|
.filter((file) => file !== '.DS_Store' && !file.startsWith('._'))
|
|
64
|
-
.map((file) =>
|
|
24
|
+
.map((file) => join(dirPath, file))
|
|
65
25
|
.filter((filePath) => {
|
|
66
26
|
try {
|
|
67
|
-
return
|
|
27
|
+
return statSync(filePath).isFile() && isImageFile(filePath);
|
|
68
28
|
}
|
|
69
29
|
catch {
|
|
70
30
|
return false;
|
|
@@ -72,15 +32,15 @@ function getImageFiles(dirPath) {
|
|
|
72
32
|
});
|
|
73
33
|
}
|
|
74
34
|
function getAllImageFiles(dirPath, arrayOfFiles = []) {
|
|
75
|
-
const files =
|
|
35
|
+
const files = readdirSync(dirPath);
|
|
76
36
|
files.forEach((file) => {
|
|
77
37
|
// Skip .DS_Store and other hidden system files
|
|
78
38
|
if (file === '.DS_Store' || file.startsWith('._')) {
|
|
79
39
|
return;
|
|
80
40
|
}
|
|
81
|
-
const filePath =
|
|
41
|
+
const filePath = join(dirPath, file);
|
|
82
42
|
try {
|
|
83
|
-
if (
|
|
43
|
+
if (statSync(filePath).isDirectory()) {
|
|
84
44
|
arrayOfFiles = getAllImageFiles(filePath, arrayOfFiles);
|
|
85
45
|
}
|
|
86
46
|
else if (isImageFile(filePath)) {
|
|
@@ -102,7 +62,7 @@ function formatBytes(bytes) {
|
|
|
102
62
|
return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`;
|
|
103
63
|
}
|
|
104
64
|
// entry point for the image convert command
|
|
105
|
-
async function imageConvertCommand(args, options, logger) {
|
|
65
|
+
export async function imageConvertCommand(args, options, logger) {
|
|
106
66
|
try {
|
|
107
67
|
const inputPath = args.input;
|
|
108
68
|
const outputPath = options.output;
|
|
@@ -113,7 +73,7 @@ async function imageConvertCommand(args, options, logger) {
|
|
|
113
73
|
// Check if input exists
|
|
114
74
|
let isDirectory = false;
|
|
115
75
|
try {
|
|
116
|
-
const stat =
|
|
76
|
+
const stat = statSync(inputPath);
|
|
117
77
|
isDirectory = stat.isDirectory();
|
|
118
78
|
}
|
|
119
79
|
catch {
|
|
@@ -127,7 +87,7 @@ async function imageConvertCommand(args, options, logger) {
|
|
|
127
87
|
}
|
|
128
88
|
let sharp;
|
|
129
89
|
try {
|
|
130
|
-
const sharpModule = await
|
|
90
|
+
const sharpModule = await import("sharp");
|
|
131
91
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
132
92
|
sharp = sharpModule.default;
|
|
133
93
|
}
|
|
@@ -150,21 +110,21 @@ async function imageConvertCommand(args, options, logger) {
|
|
|
150
110
|
let errorCount = 0;
|
|
151
111
|
let skippedCount = 0;
|
|
152
112
|
for (const filePath of files) {
|
|
153
|
-
const ext =
|
|
113
|
+
const ext = extname(filePath).toLowerCase();
|
|
154
114
|
if (ext === ".webp") {
|
|
155
|
-
console.log(` ⊘ ${
|
|
115
|
+
console.log(` ⊘ ${basename(filePath)} (already WebP)`);
|
|
156
116
|
skippedCount++;
|
|
157
117
|
continue;
|
|
158
118
|
}
|
|
159
119
|
try {
|
|
160
120
|
const outputFilePath = outputPath
|
|
161
|
-
?
|
|
121
|
+
? join(outputPath, basename(filePath, ext) + ".webp")
|
|
162
122
|
: filePath.replace(ext, ".webp");
|
|
163
123
|
// Check if output exists
|
|
164
124
|
if (!overwrite) {
|
|
165
125
|
try {
|
|
166
|
-
|
|
167
|
-
console.log(` ⊘ ${
|
|
126
|
+
statSync(outputFilePath);
|
|
127
|
+
console.log(` ⊘ ${basename(filePath)} (output exists, use --overwrite)`);
|
|
168
128
|
skippedCount++;
|
|
169
129
|
continue;
|
|
170
130
|
}
|
|
@@ -173,14 +133,14 @@ async function imageConvertCommand(args, options, logger) {
|
|
|
173
133
|
}
|
|
174
134
|
}
|
|
175
135
|
await sharp(filePath).webp({ quality }).toFile(outputFilePath);
|
|
176
|
-
const inputSize =
|
|
177
|
-
const outputSize =
|
|
136
|
+
const inputSize = statSync(filePath).size;
|
|
137
|
+
const outputSize = statSync(outputFilePath).size;
|
|
178
138
|
const savings = ((1 - outputSize / inputSize) * 100).toFixed(1);
|
|
179
|
-
console.log(` ✓ ${
|
|
139
|
+
console.log(` ✓ ${basename(filePath)} → ${basename(outputFilePath)} (${savings}% smaller)`);
|
|
180
140
|
successCount++;
|
|
181
141
|
}
|
|
182
142
|
catch (error) {
|
|
183
|
-
logger.error(` ✗ ${
|
|
143
|
+
logger.error(` ✗ ${basename(filePath)}: ${error.message}`);
|
|
184
144
|
errorCount++;
|
|
185
145
|
}
|
|
186
146
|
}
|
|
@@ -189,7 +149,7 @@ async function imageConvertCommand(args, options, logger) {
|
|
|
189
149
|
}
|
|
190
150
|
else {
|
|
191
151
|
// Process single file
|
|
192
|
-
const ext =
|
|
152
|
+
const ext = extname(inputPath).toLowerCase();
|
|
193
153
|
if (ext === ".webp") {
|
|
194
154
|
console.log("Input is already a WebP file");
|
|
195
155
|
return;
|
|
@@ -204,7 +164,7 @@ async function imageConvertCommand(args, options, logger) {
|
|
|
204
164
|
// Check if output exists
|
|
205
165
|
if (!overwrite) {
|
|
206
166
|
try {
|
|
207
|
-
|
|
167
|
+
statSync(outputFilePath);
|
|
208
168
|
logger.error(`Output file exists: ${outputFilePath}. Use --overwrite to replace it.`);
|
|
209
169
|
process.exit(1);
|
|
210
170
|
}
|
|
@@ -213,8 +173,8 @@ async function imageConvertCommand(args, options, logger) {
|
|
|
213
173
|
}
|
|
214
174
|
}
|
|
215
175
|
await sharp(inputPath).webp({ quality }).toFile(outputFilePath);
|
|
216
|
-
const inputSize =
|
|
217
|
-
const outputSize =
|
|
176
|
+
const inputSize = statSync(inputPath).size;
|
|
177
|
+
const outputSize = statSync(outputFilePath).size;
|
|
218
178
|
const savings = ((1 - outputSize / inputSize) * 100).toFixed(1);
|
|
219
179
|
console.log(`✓ Converted: ${outputFilePath}`);
|
|
220
180
|
console.log(` Input: ${formatBytes(inputSize)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/commands/image/convert.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/commands/image/convert.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAE/C,MAAM,GAAG,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAEvC,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC3C,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtB,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;AACzE,CAAC;AAED,mBAAmB;AACnB,SAAS,WAAW,CAAC,QAAgB;IACnC,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAClF,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SAChE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SAClC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE;QACnB,IAAI,CAAC;YACH,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC9D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe,EAAE,eAAyB,EAAE;IACpE,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAEnC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,+CAA+C;QAC/C,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC;YACH,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBACrC,YAAY,GAAG,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAC1D,CAAC;iBAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;QAC/B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9B,MAAM,CAAC,GAAG,IAAI,CAAC;IACf,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,GAAG,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1E,CAAC;AAGD,4CAA4C;AAC5C,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAwB,EACxB,OAKC,EACD,MAAc;IAEd,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAe,CAAC;QACvC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAgB,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAiB,CAAC;QAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAoB,CAAC;QAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAoB,CAAC;QAE/C,GAAG,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAC;QAEzC,wBAAwB;QACxB,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;YACjC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,KAAK,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;YAC9C,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;QAWD,IAAI,KAAoB,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;YAC1C,8DAA8D;YAC9D,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,IAAI,WAAW,EAAE,CAAC;YAChB,oBAAoB;YACpB,MAAM,KAAK,GAAG,SAAS;gBACrB,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC;gBAC7B,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAE7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,MAAM,sBAAsB,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;gBAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC5C,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;oBACpB,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;oBACxD,YAAY,EAAE,CAAC;oBACf,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,cAAc,GAAG,UAAU;wBAC/B,CAAC,CAAC,IAAI,CACF,UAAU,EACV,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,OAAO,CAClC;wBACH,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;oBAEnC,yBAAyB;oBACzB,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,IAAI,CAAC;4BACH,QAAQ,CAAC,cAAc,CAAC,CAAC;4BACzB,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC;4BAC1E,YAAY,EAAE,CAAC;4BACf,SAAS;wBACX,CAAC;wBAAC,MAAM,CAAC;4BACP,8BAA8B;wBAChC,CAAC;oBACH,CAAC;oBAED,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;oBAE/D,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;oBAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC;oBACjD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAEhE,OAAO,CAAC,GAAG,CACT,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,QAAQ,CAAC,cAAc,CAAC,KAAK,OAAO,YAAY,CAChF,CAAC;oBACF,YAAY,EAAE,CAAC;gBACjB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;oBACvE,UAAU,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CACT,cAAc,YAAY,eAAe,YAAY,aAAa,UAAU,SAAS,CACtF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,sBAAsB;YACtB,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YAE7C,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;gBAC5C,OAAO;YACT,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5B,MAAM,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;gBACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,cAAc,GAAG,UAAU;gBAC/B,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAEpC,yBAAyB;YACzB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,IAAI,CAAC;oBACH,QAAQ,CAAC,cAAc,CAAC,CAAC;oBACzB,MAAM,CAAC,KAAK,CAAC,uBAAuB,cAAc,kCAAkC,CAAC,CAAC;oBACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBAAC,MAAM,CAAC;oBACP,8BAA8B;gBAChC,CAAC;YACH,CAAC;YAED,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAEhE,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC;YAC3C,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC;YACjD,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAEhE,OAAO,CAAC,GAAG,CAAC,gBAAgB,cAAc,EAAE,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,aAAa,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,aAAa,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,aAAa,OAAO,GAAG,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -1,48 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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.imageEnhanceHelp = imageEnhanceHelp;
|
|
40
|
-
exports.imageEnhanceCommand = imageEnhanceCommand;
|
|
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:enhance");
|
|
45
|
-
function imageEnhanceHelp() {
|
|
1
|
+
import debug from "debug";
|
|
2
|
+
import { statSync, renameSync } from "fs";
|
|
3
|
+
import { join, basename, dirname } from "path";
|
|
4
|
+
const log = debug("blt:image:enhance");
|
|
5
|
+
export function imageEnhanceHelp() {
|
|
46
6
|
console.log("\nEnhance avatar image for dark or light mode\n");
|
|
47
7
|
console.log("Usage:");
|
|
48
8
|
console.log(" blt image enhance <input> [options]\n");
|
|
@@ -52,7 +12,7 @@ function imageEnhanceHelp() {
|
|
|
52
12
|
console.log(" -q, --quality <quality> WebP quality (0-100)\n");
|
|
53
13
|
}
|
|
54
14
|
// entry point for the image enhance command
|
|
55
|
-
async function imageEnhanceCommand(args, options, logger) {
|
|
15
|
+
export async function imageEnhanceCommand(args, options, logger) {
|
|
56
16
|
try {
|
|
57
17
|
const inputPath = args.input;
|
|
58
18
|
const mode = (options.mode || "dark").toLowerCase();
|
|
@@ -65,7 +25,7 @@ async function imageEnhanceCommand(args, options, logger) {
|
|
|
65
25
|
}
|
|
66
26
|
// Check if input exists
|
|
67
27
|
try {
|
|
68
|
-
|
|
28
|
+
statSync(inputPath);
|
|
69
29
|
}
|
|
70
30
|
catch {
|
|
71
31
|
logger.error(`Input file not found: ${inputPath}`);
|
|
@@ -84,7 +44,7 @@ async function imageEnhanceCommand(args, options, logger) {
|
|
|
84
44
|
// Import sharp dynamically
|
|
85
45
|
let sharp;
|
|
86
46
|
try {
|
|
87
|
-
const sharpModule = await
|
|
47
|
+
const sharpModule = await import("sharp");
|
|
88
48
|
sharp = sharpModule.default;
|
|
89
49
|
}
|
|
90
50
|
catch {
|
|
@@ -95,7 +55,7 @@ async function imageEnhanceCommand(args, options, logger) {
|
|
|
95
55
|
const isSameFile = !outputPath;
|
|
96
56
|
const finalOutputPath = outputPath || inputPath;
|
|
97
57
|
const tempPath = isSameFile
|
|
98
|
-
?
|
|
58
|
+
? join(dirname(inputPath), `.${basename(inputPath)}.tmp`)
|
|
99
59
|
: finalOutputPath;
|
|
100
60
|
const image = sharp(inputPath);
|
|
101
61
|
const metadata = await image.metadata();
|
|
@@ -153,11 +113,11 @@ async function imageEnhanceCommand(args, options, logger) {
|
|
|
153
113
|
await pipeline.toFile(tempPath);
|
|
154
114
|
// If same file, replace original with temp
|
|
155
115
|
if (isSameFile) {
|
|
156
|
-
|
|
116
|
+
renameSync(tempPath, inputPath);
|
|
157
117
|
}
|
|
158
|
-
const inputSize =
|
|
118
|
+
const inputSize = statSync(inputPath).size;
|
|
159
119
|
const finalPath = isSameFile ? inputPath : finalOutputPath;
|
|
160
|
-
const outputSize =
|
|
120
|
+
const outputSize = statSync(finalPath).size;
|
|
161
121
|
console.log(`✓ Enhanced: ${finalPath}`);
|
|
162
122
|
console.log(` Input: ${(inputSize / 1024).toFixed(2)} KB`);
|
|
163
123
|
console.log(` Output: ${(outputSize / 1024).toFixed(2)} KB`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enhance.js","sourceRoot":"","sources":["../../../src/commands/image/enhance.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"enhance.js","sourceRoot":"","sources":["../../../src/commands/image/enhance.ts"],"names":[],"mappings":"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"}
|