diginext-img-magic-cli 0.3.2 → 0.4.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/dist/esm/chunk-F2OZKBDD.js +21 -0
- package/dist/esm/chunk-FTA5RKYX.js +8 -0
- package/dist/esm/chunk-PFOUXJUO.js +14 -0
- package/dist/esm/index.js +380 -0
- package/dist/esm/plugins/getAllFiles.js +7 -0
- package/dist/esm/plugins/isImageSupported.js +7 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.js +38 -10
- package/dist/plugins/getAllFiles.d.mts +3 -0
- package/dist/plugins/getAllFiles.js +0 -1
- package/dist/plugins/isImageSupported.d.mts +3 -0
- package/dist/plugins/isImageSupported.js +0 -1
- package/esm/index.js +38 -10
- package/esm/plugins/getAllFiles.js +0 -1
- package/esm/plugins/isImageSupported.js +0 -1
- package/package.json +8 -15
- package/dist/index.js.map +0 -1
- package/dist/plugins/getAllFiles.js.map +0 -1
- package/dist/plugins/isImageSupported.js.map +0 -1
- package/esm/index.js.map +0 -1
- package/esm/plugins/getAllFiles.js.map +0 -1
- package/esm/plugins/isImageSupported.js.map +0 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// src/plugins/getAllFiles.ts
|
|
2
|
+
import fs from "fs";
|
|
3
|
+
import path from "path";
|
|
4
|
+
var getAllFiles = function(dirPath, arrayOfFiles) {
|
|
5
|
+
const files = fs.readdirSync(dirPath);
|
|
6
|
+
arrayOfFiles = arrayOfFiles || [];
|
|
7
|
+
files.forEach(function(file) {
|
|
8
|
+
if (fs.statSync(dirPath + "/" + file).isDirectory()) {
|
|
9
|
+
arrayOfFiles = getAllFiles(dirPath + "/" + file, arrayOfFiles);
|
|
10
|
+
} else {
|
|
11
|
+
const __path = path.join(dirPath, "/", file).replace(/\\/g, "/");
|
|
12
|
+
if (arrayOfFiles) arrayOfFiles.push(__path);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
return arrayOfFiles;
|
|
16
|
+
};
|
|
17
|
+
var getAllFiles_default = getAllFiles;
|
|
18
|
+
|
|
19
|
+
export {
|
|
20
|
+
getAllFiles_default
|
|
21
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// src/plugins/isImageSupported.ts
|
|
2
|
+
var isImageSupported = (url) => {
|
|
3
|
+
if (!url) return false;
|
|
4
|
+
const arr = [".png", ".jpg", ".jpeg"];
|
|
5
|
+
const index = arr.findIndex((item) => {
|
|
6
|
+
return url.indexOf(item) >= 0;
|
|
7
|
+
});
|
|
8
|
+
return index >= 0;
|
|
9
|
+
};
|
|
10
|
+
var isImageSupported_default = isImageSupported;
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
isImageSupported_default
|
|
14
|
+
};
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getAllFiles_default
|
|
3
|
+
} from "./chunk-F2OZKBDD.js";
|
|
4
|
+
import {
|
|
5
|
+
isImageSupported_default
|
|
6
|
+
} from "./chunk-PFOUXJUO.js";
|
|
7
|
+
import {
|
|
8
|
+
__commonJS
|
|
9
|
+
} from "./chunk-FTA5RKYX.js";
|
|
10
|
+
|
|
11
|
+
// package.json
|
|
12
|
+
var require_package = __commonJS({
|
|
13
|
+
"package.json"(exports, module) {
|
|
14
|
+
module.exports = {
|
|
15
|
+
name: "diginext-img-magic-cli",
|
|
16
|
+
version: "0.4.0",
|
|
17
|
+
sideEffects: false,
|
|
18
|
+
readme: "README.md",
|
|
19
|
+
bin: {
|
|
20
|
+
towebp: "bin/towebp"
|
|
21
|
+
},
|
|
22
|
+
homepage: "https://wearetopgroup.com",
|
|
23
|
+
author: {
|
|
24
|
+
name: "TOP GROUP (a.k.a Digitop)",
|
|
25
|
+
email: "dev@wearetopgroup.com"
|
|
26
|
+
},
|
|
27
|
+
keywords: [
|
|
28
|
+
"utils",
|
|
29
|
+
"plugins",
|
|
30
|
+
"diginext",
|
|
31
|
+
"diginext-img-magic-cli",
|
|
32
|
+
"utilities",
|
|
33
|
+
"helper",
|
|
34
|
+
"extra"
|
|
35
|
+
],
|
|
36
|
+
main: "./dist/index.js",
|
|
37
|
+
files: [
|
|
38
|
+
"bin",
|
|
39
|
+
"dist",
|
|
40
|
+
"esm"
|
|
41
|
+
],
|
|
42
|
+
scripts: {
|
|
43
|
+
build: "tsc --module commonjs --outDir dist && tsc --module esnext --outDir esm ",
|
|
44
|
+
build_tsup: "tsup src/**/*.ts --format esm,cjs --dts --legacy-output",
|
|
45
|
+
"prebuild:win32": "rd /S /Q dist esm",
|
|
46
|
+
"prebuild:darwin:linux": "rm -rf dist && rm -rf esm",
|
|
47
|
+
"prebuild:default": "rm -rf dist && rm -rf esm",
|
|
48
|
+
release: "npm run build && npm publish",
|
|
49
|
+
dev: 'npm run prebuild && concurrently "tsc --module commonjs --outDir dist --watch "',
|
|
50
|
+
lint: "TIMING=1 eslint src --fix",
|
|
51
|
+
clean: "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
|
|
52
|
+
},
|
|
53
|
+
dependencies: {
|
|
54
|
+
async: "3.2.6",
|
|
55
|
+
dayjs: "1.11.7",
|
|
56
|
+
"diginext-utils": "4.1.3",
|
|
57
|
+
dotenv: "16.6.1",
|
|
58
|
+
sharp: "0.34.5",
|
|
59
|
+
yargs: "17.7.1"
|
|
60
|
+
},
|
|
61
|
+
publishConfig: {
|
|
62
|
+
access: "public"
|
|
63
|
+
},
|
|
64
|
+
devDependencies: {
|
|
65
|
+
"@types/async": "3.2.24",
|
|
66
|
+
"@types/jest": "29.4.4",
|
|
67
|
+
"@types/node": "20.15.0",
|
|
68
|
+
"@types/yargs": "17.0.22",
|
|
69
|
+
concurrently: "7.6.0",
|
|
70
|
+
eslint: "8.36.0",
|
|
71
|
+
"eslint-plugin-import": "2.27.5",
|
|
72
|
+
esm: "3.2.25",
|
|
73
|
+
tsup: "8.5.1",
|
|
74
|
+
typescript: "4.9.5"
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
// src/index.ts
|
|
81
|
+
import yargs from "yargs";
|
|
82
|
+
import fs from "fs/promises";
|
|
83
|
+
import fsSync from "fs";
|
|
84
|
+
import path from "path";
|
|
85
|
+
import { queue } from "async";
|
|
86
|
+
import { getFileExtension, getFileNameWithoutExtension } from "diginext-utils/string";
|
|
87
|
+
import sharp from "sharp";
|
|
88
|
+
var { version } = require_package();
|
|
89
|
+
var ImageConverter = class {
|
|
90
|
+
constructor(options) {
|
|
91
|
+
this.outputDirWebp = "";
|
|
92
|
+
this.outputDirThumb = "";
|
|
93
|
+
this.results = [];
|
|
94
|
+
this.processedCount = 0;
|
|
95
|
+
this.options = options;
|
|
96
|
+
this.setupOutputDirectories();
|
|
97
|
+
}
|
|
98
|
+
setupOutputDirectories() {
|
|
99
|
+
const normalizedDir = this.options.dir.replace(/\\/g, "/");
|
|
100
|
+
const folderName = getFileNameWithoutExtension(normalizedDir);
|
|
101
|
+
const parentDir = path.dirname(normalizedDir);
|
|
102
|
+
this.outputDirWebp = path.join(parentDir, `${folderName}-webp`);
|
|
103
|
+
this.outputDirThumb = path.join(parentDir, `${folderName}-thumb-webp`);
|
|
104
|
+
}
|
|
105
|
+
async ensureDirectoryExists(dirPath) {
|
|
106
|
+
try {
|
|
107
|
+
if (fsSync.existsSync(dirPath)) {
|
|
108
|
+
await fs.rm(dirPath, { recursive: true });
|
|
109
|
+
}
|
|
110
|
+
await fs.mkdir(dirPath, { recursive: true });
|
|
111
|
+
} catch (error) {
|
|
112
|
+
throw new Error(`Failed to create directory ${dirPath}: ${error}`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
async validateDirectory() {
|
|
116
|
+
try {
|
|
117
|
+
const stats = await fs.lstat(this.options.dir);
|
|
118
|
+
if (!stats.isDirectory()) {
|
|
119
|
+
throw new Error("Path is not a directory");
|
|
120
|
+
}
|
|
121
|
+
} catch (error) {
|
|
122
|
+
throw new Error(`Invalid directory: ${this.options.dir}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
checkForDuplicateNames(files) {
|
|
126
|
+
const nameMap = /* @__PURE__ */ new Map();
|
|
127
|
+
files.forEach((file) => {
|
|
128
|
+
if (isImageSupported_default(file)) {
|
|
129
|
+
const nameWithoutExt = getFileNameWithoutExtension(file);
|
|
130
|
+
const relativePath = path.dirname(file.replace(this.options.dir, ""));
|
|
131
|
+
const key = path.join(relativePath, nameWithoutExt);
|
|
132
|
+
if (!nameMap.has(key)) {
|
|
133
|
+
nameMap.set(key, []);
|
|
134
|
+
}
|
|
135
|
+
nameMap.get(key).push(file);
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
const duplicates = [];
|
|
139
|
+
nameMap.forEach((files2, name) => {
|
|
140
|
+
if (files2.length > 1) {
|
|
141
|
+
duplicates.push(...files2);
|
|
142
|
+
console.warn(`\u26A0\uFE0F Duplicate names found for: ${name}`);
|
|
143
|
+
console.warn(` Files: ${files2.join(", ")}`);
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
return duplicates;
|
|
147
|
+
}
|
|
148
|
+
async convertSingleImage(task) {
|
|
149
|
+
const { inputPath, index, total } = task;
|
|
150
|
+
const startTime = performance.now();
|
|
151
|
+
const startMemory = process.memoryUsage().heapUsed;
|
|
152
|
+
try {
|
|
153
|
+
const normalizedPath = inputPath.replace(/\\/g, "/");
|
|
154
|
+
const fileExt = getFileExtension(normalizedPath);
|
|
155
|
+
const isSupported = isImageSupported_default(normalizedPath);
|
|
156
|
+
if (!isSupported) {
|
|
157
|
+
const outputPath = normalizedPath.replace(this.options.dir, this.outputDirWebp);
|
|
158
|
+
await fs.mkdir(path.dirname(outputPath), { recursive: true });
|
|
159
|
+
await fs.copyFile(normalizedPath, outputPath);
|
|
160
|
+
const endTime2 = performance.now();
|
|
161
|
+
const endMemory2 = process.memoryUsage().heapUsed;
|
|
162
|
+
return {
|
|
163
|
+
success: true,
|
|
164
|
+
input: inputPath,
|
|
165
|
+
output: outputPath,
|
|
166
|
+
metrics: {
|
|
167
|
+
durationMs: endTime2 - startTime,
|
|
168
|
+
memoryUsedMB: (endMemory2 - startMemory) / 1024 / 1024
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
const webpOutputPath = normalizedPath.replace(this.options.dir, this.outputDirWebp).replace(`.${fileExt}`, ".webp");
|
|
173
|
+
await fs.mkdir(path.dirname(webpOutputPath), { recursive: true });
|
|
174
|
+
await sharp(normalizedPath).webp().toFile(webpOutputPath);
|
|
175
|
+
const endTime = performance.now();
|
|
176
|
+
const endMemory = process.memoryUsage().heapUsed;
|
|
177
|
+
return {
|
|
178
|
+
success: true,
|
|
179
|
+
input: inputPath,
|
|
180
|
+
output: webpOutputPath,
|
|
181
|
+
metrics: {
|
|
182
|
+
durationMs: endTime - startTime,
|
|
183
|
+
memoryUsedMB: (endMemory - startMemory) / 1024 / 1024
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
} catch (error) {
|
|
187
|
+
const endTime = performance.now();
|
|
188
|
+
const endMemory = process.memoryUsage().heapUsed;
|
|
189
|
+
return {
|
|
190
|
+
success: false,
|
|
191
|
+
input: inputPath,
|
|
192
|
+
error: error instanceof Error ? error.message : String(error),
|
|
193
|
+
metrics: {
|
|
194
|
+
durationMs: endTime - startTime,
|
|
195
|
+
memoryUsedMB: (endMemory - startMemory) / 1024 / 1024
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
createWorker() {
|
|
201
|
+
return async (task) => {
|
|
202
|
+
try {
|
|
203
|
+
const result = await this.convertSingleImage(task);
|
|
204
|
+
this.results.push(result);
|
|
205
|
+
this.processedCount++;
|
|
206
|
+
if (!result.success) {
|
|
207
|
+
console.error(`\u274C Failed to convert ${task.inputPath}: ${result.error}`);
|
|
208
|
+
} else {
|
|
209
|
+
console.log(`\u2714 [${this.processedCount}/${task.total}] Completed: ${path.basename(task.inputPath)}`);
|
|
210
|
+
}
|
|
211
|
+
} catch (error) {
|
|
212
|
+
const errorResult = {
|
|
213
|
+
success: false,
|
|
214
|
+
input: task.inputPath,
|
|
215
|
+
error: error instanceof Error ? error.message : String(error)
|
|
216
|
+
};
|
|
217
|
+
this.results.push(errorResult);
|
|
218
|
+
this.processedCount++;
|
|
219
|
+
console.error(`\u274C Worker error for ${task.inputPath}:`, error);
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
async processWithQueue(files) {
|
|
224
|
+
return new Promise((resolve, reject) => {
|
|
225
|
+
const concurrency = this.options.concurrency || 10;
|
|
226
|
+
console.log(`\u{1F680} Starting conversion of ${files.length} files with concurrency: ${concurrency}`);
|
|
227
|
+
const q = queue(this.createWorker(), concurrency);
|
|
228
|
+
q.error((error, task) => {
|
|
229
|
+
console.error("Queue error occurred:", error);
|
|
230
|
+
console.error("Failed task:", task);
|
|
231
|
+
});
|
|
232
|
+
q.drain(() => {
|
|
233
|
+
console.log("\n\u{1F3AF} All tasks completed!");
|
|
234
|
+
resolve(this.results);
|
|
235
|
+
});
|
|
236
|
+
q.empty(() => {
|
|
237
|
+
console.log("\u{1F4ED} Queue is empty, waiting for workers to finish...");
|
|
238
|
+
});
|
|
239
|
+
const tasks = files.map((file, index) => ({
|
|
240
|
+
inputPath: file,
|
|
241
|
+
index: index + 1,
|
|
242
|
+
total: files.length
|
|
243
|
+
}));
|
|
244
|
+
q.push(tasks, (error) => {
|
|
245
|
+
if (error) {
|
|
246
|
+
console.error("Task completion error:", error);
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
if (files.length === 0) {
|
|
250
|
+
resolve([]);
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
async cleanup() {
|
|
255
|
+
try {
|
|
256
|
+
if (fsSync.existsSync(".temp")) {
|
|
257
|
+
await fs.rm(".temp", { recursive: true });
|
|
258
|
+
}
|
|
259
|
+
} catch (error) {
|
|
260
|
+
console.warn("\u26A0\uFE0F Warning: Failed to cleanup temp directory:", error);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
printSummary(results, totalDurationMs) {
|
|
264
|
+
const successful = results.filter((r) => r.success).length;
|
|
265
|
+
const failed = results.filter((r) => !r.success).length;
|
|
266
|
+
const totalProcessingTime = results.reduce((sum, r) => {
|
|
267
|
+
var _a;
|
|
268
|
+
return sum + (((_a = r.metrics) == null ? void 0 : _a.durationMs) || 0);
|
|
269
|
+
}, 0);
|
|
270
|
+
const avgTimePerImage = results.length > 0 ? totalProcessingTime / results.length : 0;
|
|
271
|
+
const maxMemoryUsed = Math.max(...results.map((r) => {
|
|
272
|
+
var _a;
|
|
273
|
+
return ((_a = r.metrics) == null ? void 0 : _a.memoryUsedMB) || 0;
|
|
274
|
+
}), 0);
|
|
275
|
+
const currentMemory = process.memoryUsage();
|
|
276
|
+
console.log("\n" + "=".repeat(50));
|
|
277
|
+
console.log("\u{1F4CA} CONVERSION SUMMARY");
|
|
278
|
+
console.log("=".repeat(50));
|
|
279
|
+
console.log(`\u2714 Successful: ${successful}`);
|
|
280
|
+
console.log(`\u274C Failed: ${failed}`);
|
|
281
|
+
console.log(`\u{1F4C1} Output directory: ${this.outputDirWebp}`);
|
|
282
|
+
if (this.options.thumb) {
|
|
283
|
+
console.log(`\u{1F5BC}\uFE0F Thumbnail directory: ${this.outputDirThumb}`);
|
|
284
|
+
}
|
|
285
|
+
console.log("\n" + "-".repeat(50));
|
|
286
|
+
console.log("\u23F1\uFE0F PERFORMANCE METRICS");
|
|
287
|
+
console.log("-".repeat(50));
|
|
288
|
+
console.log(`\u23F1\uFE0F Total wall time: ${(totalDurationMs / 1e3).toFixed(2)}s`);
|
|
289
|
+
console.log(`\u23F1\uFE0F Total processing time: ${(totalProcessingTime / 1e3).toFixed(2)}s`);
|
|
290
|
+
console.log(`\u23F1\uFE0F Avg time per image: ${avgTimePerImage.toFixed(0)}ms`);
|
|
291
|
+
console.log(`\u{1F4BE} Peak heap memory: ${(currentMemory.heapUsed / 1024 / 1024).toFixed(2)} MB`);
|
|
292
|
+
console.log(`\u{1F4BE} Heap total: ${(currentMemory.heapTotal / 1024 / 1024).toFixed(2)} MB`);
|
|
293
|
+
console.log(`\u{1F4BE} RSS (total process): ${(currentMemory.rss / 1024 / 1024).toFixed(2)} MB`);
|
|
294
|
+
if (failed > 0) {
|
|
295
|
+
console.log("\n\u274C Failed conversions:");
|
|
296
|
+
results.filter((r) => !r.success).forEach((r) => console.log(` \u2022 ${path.basename(r.input)}: ${r.error}`));
|
|
297
|
+
}
|
|
298
|
+
console.log("=".repeat(50));
|
|
299
|
+
}
|
|
300
|
+
async convert() {
|
|
301
|
+
const conversionStartTime = performance.now();
|
|
302
|
+
try {
|
|
303
|
+
this.results = [];
|
|
304
|
+
this.processedCount = 0;
|
|
305
|
+
await this.validateDirectory();
|
|
306
|
+
const files = getAllFiles_default(this.options.dir);
|
|
307
|
+
if (files.length === 0) {
|
|
308
|
+
console.log("\u{1F4C2} No files found in the specified directory.");
|
|
309
|
+
return;
|
|
310
|
+
}
|
|
311
|
+
const duplicates = this.checkForDuplicateNames(files);
|
|
312
|
+
if (duplicates.length > 0) {
|
|
313
|
+
throw new Error("Cannot proceed: Found files with duplicate names but different extensions.");
|
|
314
|
+
}
|
|
315
|
+
await this.ensureDirectoryExists(this.outputDirWebp);
|
|
316
|
+
if (this.options.thumb) {
|
|
317
|
+
await this.ensureDirectoryExists(this.outputDirThumb);
|
|
318
|
+
}
|
|
319
|
+
const results = await this.processWithQueue(files);
|
|
320
|
+
await this.cleanup();
|
|
321
|
+
const totalDurationMs = performance.now() - conversionStartTime;
|
|
322
|
+
this.printSummary(results, totalDurationMs);
|
|
323
|
+
} catch (error) {
|
|
324
|
+
console.error("\u{1F4A5} Conversion failed:", error instanceof Error ? error.message : String(error));
|
|
325
|
+
throw error;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
};
|
|
329
|
+
async function parseArguments() {
|
|
330
|
+
const argv = await yargs(process.argv.slice(2)).usage("Usage: $0 [options]").example('$0 --dir "./images" --thumb --maxsize 2048 --concurrency 5', "Convert images with 5 concurrent workers").option("dir", {
|
|
331
|
+
alias: "d",
|
|
332
|
+
describe: "Source directory containing images",
|
|
333
|
+
type: "string",
|
|
334
|
+
demandOption: true
|
|
335
|
+
}).option("thumb", {
|
|
336
|
+
alias: "t",
|
|
337
|
+
describe: "Generate thumbnails",
|
|
338
|
+
type: "boolean",
|
|
339
|
+
default: false
|
|
340
|
+
}).option("maxsize", {
|
|
341
|
+
alias: "m",
|
|
342
|
+
describe: "Maximum size for converted images",
|
|
343
|
+
type: "number",
|
|
344
|
+
default: 4096
|
|
345
|
+
}).option("concurrency", {
|
|
346
|
+
alias: "c",
|
|
347
|
+
describe: "Number of concurrent workers",
|
|
348
|
+
type: "number",
|
|
349
|
+
default: 12
|
|
350
|
+
}).help("h").alias("h", "help").epilog(`Version: ${version}`).parseAsync();
|
|
351
|
+
return {
|
|
352
|
+
dir: argv.dir,
|
|
353
|
+
thumb: argv.thumb,
|
|
354
|
+
maxsize: argv.maxsize,
|
|
355
|
+
concurrency: argv.concurrency
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
async function main() {
|
|
359
|
+
try {
|
|
360
|
+
console.log(`\u{1F3A8} Image Converter v${version}`);
|
|
361
|
+
console.log("=".repeat(30));
|
|
362
|
+
const options = await parseArguments();
|
|
363
|
+
console.log(`\u{1F4C1} Source: ${options.dir}`);
|
|
364
|
+
console.log(`\u{1F4CF} Max size: ${options.maxsize}px`);
|
|
365
|
+
console.log(`\u{1F5BC}\uFE0F Generate thumbnails: ${options.thumb ? "Yes" : "No"}`);
|
|
366
|
+
console.log(`\u26A1 Concurrency: ${options.concurrency}`);
|
|
367
|
+
console.log("=".repeat(30));
|
|
368
|
+
const converter = new ImageConverter(options);
|
|
369
|
+
await converter.convert();
|
|
370
|
+
console.log("\u{1F389} All done!");
|
|
371
|
+
} catch (error) {
|
|
372
|
+
console.error("\u{1F4A5} Application error:", error instanceof Error ? error.message : String(error));
|
|
373
|
+
process.exit(1);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
process.on("unhandledRejection", (reason, promise) => {
|
|
377
|
+
console.error("Unhandled Rejection at:", promise, "reason:", reason);
|
|
378
|
+
process.exit(1);
|
|
379
|
+
});
|
|
380
|
+
main();
|
package/dist/index.d.mts
ADDED
package/dist/index.js
CHANGED
|
@@ -76,6 +76,8 @@ class ImageConverter {
|
|
|
76
76
|
}
|
|
77
77
|
async convertSingleImage(task) {
|
|
78
78
|
const { inputPath, index, total } = task;
|
|
79
|
+
const startTime = performance.now();
|
|
80
|
+
const startMemory = process.memoryUsage().heapUsed;
|
|
79
81
|
try {
|
|
80
82
|
// console.log(`📸 [${index}/${total}] Processing: ${path.basename(inputPath)}`);
|
|
81
83
|
const normalizedPath = inputPath.replace(/\\/g, "/");
|
|
@@ -86,34 +88,45 @@ class ImageConverter {
|
|
|
86
88
|
const outputPath = normalizedPath.replace(this.options.dir, this.outputDirWebp);
|
|
87
89
|
await promises_1.default.mkdir(path_1.default.dirname(outputPath), { recursive: true });
|
|
88
90
|
await promises_1.default.copyFile(normalizedPath, outputPath);
|
|
91
|
+
const endTime = performance.now();
|
|
92
|
+
const endMemory = process.memoryUsage().heapUsed;
|
|
89
93
|
return {
|
|
90
94
|
success: true,
|
|
91
95
|
input: inputPath,
|
|
92
96
|
output: outputPath,
|
|
97
|
+
metrics: {
|
|
98
|
+
durationMs: endTime - startTime,
|
|
99
|
+
memoryUsedMB: (endMemory - startMemory) / 1024 / 1024,
|
|
100
|
+
},
|
|
93
101
|
};
|
|
94
102
|
}
|
|
95
103
|
// Convert image to WebP
|
|
96
104
|
const webpOutputPath = normalizedPath.replace(this.options.dir, this.outputDirWebp).replace(`.${fileExt}`, ".webp");
|
|
97
105
|
await promises_1.default.mkdir(path_1.default.dirname(webpOutputPath), { recursive: true });
|
|
98
106
|
await (0, sharp_1.default)(normalizedPath).webp().toFile(webpOutputPath);
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
// const thumbOutputPath = normalizedPath.replace(this.options.dir, this.outputDirThumb).replace(`.${fileExt}`, ".webp");
|
|
102
|
-
// await fs.mkdir(path.dirname(thumbOutputPath), { recursive: true });
|
|
103
|
-
// await fs.copyFile(result.small, thumbOutputPath);
|
|
104
|
-
// await fs.rm(result.small);
|
|
105
|
-
// }
|
|
107
|
+
const endTime = performance.now();
|
|
108
|
+
const endMemory = process.memoryUsage().heapUsed;
|
|
106
109
|
return {
|
|
107
110
|
success: true,
|
|
108
111
|
input: inputPath,
|
|
109
112
|
output: webpOutputPath,
|
|
113
|
+
metrics: {
|
|
114
|
+
durationMs: endTime - startTime,
|
|
115
|
+
memoryUsedMB: (endMemory - startMemory) / 1024 / 1024,
|
|
116
|
+
},
|
|
110
117
|
};
|
|
111
118
|
}
|
|
112
119
|
catch (error) {
|
|
120
|
+
const endTime = performance.now();
|
|
121
|
+
const endMemory = process.memoryUsage().heapUsed;
|
|
113
122
|
return {
|
|
114
123
|
success: false,
|
|
115
124
|
input: inputPath,
|
|
116
125
|
error: error instanceof Error ? error.message : String(error),
|
|
126
|
+
metrics: {
|
|
127
|
+
durationMs: endTime - startTime,
|
|
128
|
+
memoryUsedMB: (endMemory - startMemory) / 1024 / 1024,
|
|
129
|
+
},
|
|
117
130
|
};
|
|
118
131
|
}
|
|
119
132
|
}
|
|
@@ -193,9 +206,14 @@ class ImageConverter {
|
|
|
193
206
|
console.warn("⚠️ Warning: Failed to cleanup temp directory:", error);
|
|
194
207
|
}
|
|
195
208
|
}
|
|
196
|
-
printSummary(results) {
|
|
209
|
+
printSummary(results, totalDurationMs) {
|
|
197
210
|
const successful = results.filter((r) => r.success).length;
|
|
198
211
|
const failed = results.filter((r) => !r.success).length;
|
|
212
|
+
// Calculate metrics
|
|
213
|
+
const totalProcessingTime = results.reduce((sum, r) => { var _a; return sum + (((_a = r.metrics) === null || _a === void 0 ? void 0 : _a.durationMs) || 0); }, 0);
|
|
214
|
+
const avgTimePerImage = results.length > 0 ? totalProcessingTime / results.length : 0;
|
|
215
|
+
const maxMemoryUsed = Math.max(...results.map((r) => { var _a; return ((_a = r.metrics) === null || _a === void 0 ? void 0 : _a.memoryUsedMB) || 0; }), 0);
|
|
216
|
+
const currentMemory = process.memoryUsage();
|
|
199
217
|
console.log("\n" + "=".repeat(50));
|
|
200
218
|
console.log("📊 CONVERSION SUMMARY");
|
|
201
219
|
console.log("=".repeat(50));
|
|
@@ -205,6 +223,15 @@ class ImageConverter {
|
|
|
205
223
|
if (this.options.thumb) {
|
|
206
224
|
console.log(`🖼️ Thumbnail directory: ${this.outputDirThumb}`);
|
|
207
225
|
}
|
|
226
|
+
console.log("\n" + "-".repeat(50));
|
|
227
|
+
console.log("⏱️ PERFORMANCE METRICS");
|
|
228
|
+
console.log("-".repeat(50));
|
|
229
|
+
console.log(`⏱️ Total wall time: ${(totalDurationMs / 1000).toFixed(2)}s`);
|
|
230
|
+
console.log(`⏱️ Total processing time: ${(totalProcessingTime / 1000).toFixed(2)}s`);
|
|
231
|
+
console.log(`⏱️ Avg time per image: ${avgTimePerImage.toFixed(0)}ms`);
|
|
232
|
+
console.log(`💾 Peak heap memory: ${(currentMemory.heapUsed / 1024 / 1024).toFixed(2)} MB`);
|
|
233
|
+
console.log(`💾 Heap total: ${(currentMemory.heapTotal / 1024 / 1024).toFixed(2)} MB`);
|
|
234
|
+
console.log(`💾 RSS (total process): ${(currentMemory.rss / 1024 / 1024).toFixed(2)} MB`);
|
|
208
235
|
if (failed > 0) {
|
|
209
236
|
console.log("\n❌ Failed conversions:");
|
|
210
237
|
results.filter((r) => !r.success).forEach((r) => console.log(` • ${path_1.default.basename(r.input)}: ${r.error}`));
|
|
@@ -212,6 +239,7 @@ class ImageConverter {
|
|
|
212
239
|
console.log("=".repeat(50));
|
|
213
240
|
}
|
|
214
241
|
async convert() {
|
|
242
|
+
const conversionStartTime = performance.now();
|
|
215
243
|
try {
|
|
216
244
|
// Reset state
|
|
217
245
|
this.results = [];
|
|
@@ -238,7 +266,8 @@ class ImageConverter {
|
|
|
238
266
|
const results = await this.processWithQueue(files);
|
|
239
267
|
// Cleanup and summary
|
|
240
268
|
await this.cleanup();
|
|
241
|
-
|
|
269
|
+
const totalDurationMs = performance.now() - conversionStartTime;
|
|
270
|
+
this.printSummary(results, totalDurationMs);
|
|
242
271
|
}
|
|
243
272
|
catch (error) {
|
|
244
273
|
console.error("💥 Conversion failed:", error instanceof Error ? error.message : String(error));
|
|
@@ -311,4 +340,3 @@ process.on("unhandledRejection", (reason, promise) => {
|
|
|
311
340
|
});
|
|
312
341
|
// Run the application
|
|
313
342
|
main();
|
|
314
|
-
//# sourceMappingURL=index.js.map
|
package/esm/index.js
CHANGED
|
@@ -71,6 +71,8 @@ class ImageConverter {
|
|
|
71
71
|
}
|
|
72
72
|
async convertSingleImage(task) {
|
|
73
73
|
const { inputPath, index, total } = task;
|
|
74
|
+
const startTime = performance.now();
|
|
75
|
+
const startMemory = process.memoryUsage().heapUsed;
|
|
74
76
|
try {
|
|
75
77
|
// console.log(`📸 [${index}/${total}] Processing: ${path.basename(inputPath)}`);
|
|
76
78
|
const normalizedPath = inputPath.replace(/\\/g, "/");
|
|
@@ -81,34 +83,45 @@ class ImageConverter {
|
|
|
81
83
|
const outputPath = normalizedPath.replace(this.options.dir, this.outputDirWebp);
|
|
82
84
|
await fs.mkdir(path.dirname(outputPath), { recursive: true });
|
|
83
85
|
await fs.copyFile(normalizedPath, outputPath);
|
|
86
|
+
const endTime = performance.now();
|
|
87
|
+
const endMemory = process.memoryUsage().heapUsed;
|
|
84
88
|
return {
|
|
85
89
|
success: true,
|
|
86
90
|
input: inputPath,
|
|
87
91
|
output: outputPath,
|
|
92
|
+
metrics: {
|
|
93
|
+
durationMs: endTime - startTime,
|
|
94
|
+
memoryUsedMB: (endMemory - startMemory) / 1024 / 1024,
|
|
95
|
+
},
|
|
88
96
|
};
|
|
89
97
|
}
|
|
90
98
|
// Convert image to WebP
|
|
91
99
|
const webpOutputPath = normalizedPath.replace(this.options.dir, this.outputDirWebp).replace(`.${fileExt}`, ".webp");
|
|
92
100
|
await fs.mkdir(path.dirname(webpOutputPath), { recursive: true });
|
|
93
101
|
await sharp(normalizedPath).webp().toFile(webpOutputPath);
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
// const thumbOutputPath = normalizedPath.replace(this.options.dir, this.outputDirThumb).replace(`.${fileExt}`, ".webp");
|
|
97
|
-
// await fs.mkdir(path.dirname(thumbOutputPath), { recursive: true });
|
|
98
|
-
// await fs.copyFile(result.small, thumbOutputPath);
|
|
99
|
-
// await fs.rm(result.small);
|
|
100
|
-
// }
|
|
102
|
+
const endTime = performance.now();
|
|
103
|
+
const endMemory = process.memoryUsage().heapUsed;
|
|
101
104
|
return {
|
|
102
105
|
success: true,
|
|
103
106
|
input: inputPath,
|
|
104
107
|
output: webpOutputPath,
|
|
108
|
+
metrics: {
|
|
109
|
+
durationMs: endTime - startTime,
|
|
110
|
+
memoryUsedMB: (endMemory - startMemory) / 1024 / 1024,
|
|
111
|
+
},
|
|
105
112
|
};
|
|
106
113
|
}
|
|
107
114
|
catch (error) {
|
|
115
|
+
const endTime = performance.now();
|
|
116
|
+
const endMemory = process.memoryUsage().heapUsed;
|
|
108
117
|
return {
|
|
109
118
|
success: false,
|
|
110
119
|
input: inputPath,
|
|
111
120
|
error: error instanceof Error ? error.message : String(error),
|
|
121
|
+
metrics: {
|
|
122
|
+
durationMs: endTime - startTime,
|
|
123
|
+
memoryUsedMB: (endMemory - startMemory) / 1024 / 1024,
|
|
124
|
+
},
|
|
112
125
|
};
|
|
113
126
|
}
|
|
114
127
|
}
|
|
@@ -188,9 +201,14 @@ class ImageConverter {
|
|
|
188
201
|
console.warn("⚠️ Warning: Failed to cleanup temp directory:", error);
|
|
189
202
|
}
|
|
190
203
|
}
|
|
191
|
-
printSummary(results) {
|
|
204
|
+
printSummary(results, totalDurationMs) {
|
|
192
205
|
const successful = results.filter((r) => r.success).length;
|
|
193
206
|
const failed = results.filter((r) => !r.success).length;
|
|
207
|
+
// Calculate metrics
|
|
208
|
+
const totalProcessingTime = results.reduce((sum, r) => { var _a; return sum + (((_a = r.metrics) === null || _a === void 0 ? void 0 : _a.durationMs) || 0); }, 0);
|
|
209
|
+
const avgTimePerImage = results.length > 0 ? totalProcessingTime / results.length : 0;
|
|
210
|
+
const maxMemoryUsed = Math.max(...results.map((r) => { var _a; return ((_a = r.metrics) === null || _a === void 0 ? void 0 : _a.memoryUsedMB) || 0; }), 0);
|
|
211
|
+
const currentMemory = process.memoryUsage();
|
|
194
212
|
console.log("\n" + "=".repeat(50));
|
|
195
213
|
console.log("📊 CONVERSION SUMMARY");
|
|
196
214
|
console.log("=".repeat(50));
|
|
@@ -200,6 +218,15 @@ class ImageConverter {
|
|
|
200
218
|
if (this.options.thumb) {
|
|
201
219
|
console.log(`🖼️ Thumbnail directory: ${this.outputDirThumb}`);
|
|
202
220
|
}
|
|
221
|
+
console.log("\n" + "-".repeat(50));
|
|
222
|
+
console.log("⏱️ PERFORMANCE METRICS");
|
|
223
|
+
console.log("-".repeat(50));
|
|
224
|
+
console.log(`⏱️ Total wall time: ${(totalDurationMs / 1000).toFixed(2)}s`);
|
|
225
|
+
console.log(`⏱️ Total processing time: ${(totalProcessingTime / 1000).toFixed(2)}s`);
|
|
226
|
+
console.log(`⏱️ Avg time per image: ${avgTimePerImage.toFixed(0)}ms`);
|
|
227
|
+
console.log(`💾 Peak heap memory: ${(currentMemory.heapUsed / 1024 / 1024).toFixed(2)} MB`);
|
|
228
|
+
console.log(`💾 Heap total: ${(currentMemory.heapTotal / 1024 / 1024).toFixed(2)} MB`);
|
|
229
|
+
console.log(`💾 RSS (total process): ${(currentMemory.rss / 1024 / 1024).toFixed(2)} MB`);
|
|
203
230
|
if (failed > 0) {
|
|
204
231
|
console.log("\n❌ Failed conversions:");
|
|
205
232
|
results.filter((r) => !r.success).forEach((r) => console.log(` • ${path.basename(r.input)}: ${r.error}`));
|
|
@@ -207,6 +234,7 @@ class ImageConverter {
|
|
|
207
234
|
console.log("=".repeat(50));
|
|
208
235
|
}
|
|
209
236
|
async convert() {
|
|
237
|
+
const conversionStartTime = performance.now();
|
|
210
238
|
try {
|
|
211
239
|
// Reset state
|
|
212
240
|
this.results = [];
|
|
@@ -233,7 +261,8 @@ class ImageConverter {
|
|
|
233
261
|
const results = await this.processWithQueue(files);
|
|
234
262
|
// Cleanup and summary
|
|
235
263
|
await this.cleanup();
|
|
236
|
-
|
|
264
|
+
const totalDurationMs = performance.now() - conversionStartTime;
|
|
265
|
+
this.printSummary(results, totalDurationMs);
|
|
237
266
|
}
|
|
238
267
|
catch (error) {
|
|
239
268
|
console.error("💥 Conversion failed:", error instanceof Error ? error.message : String(error));
|
|
@@ -306,4 +335,3 @@ process.on("unhandledRejection", (reason, promise) => {
|
|
|
306
335
|
});
|
|
307
336
|
// Run the application
|
|
308
337
|
main();
|
|
309
|
-
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "diginext-img-magic-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"readme": "README.md",
|
|
6
6
|
"bin": {
|
|
@@ -34,25 +34,15 @@
|
|
|
34
34
|
"prebuild:default": "rm -rf dist && rm -rf esm",
|
|
35
35
|
"release": "npm run build && npm publish",
|
|
36
36
|
"dev": "npm run prebuild && concurrently \"tsc --module commonjs --outDir dist --watch \"",
|
|
37
|
-
"test": "mocha test/*.test.js",
|
|
38
37
|
"lint": "TIMING=1 eslint src --fix",
|
|
39
38
|
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
|
|
40
39
|
},
|
|
41
40
|
"dependencies": {
|
|
42
|
-
"@types/jest": "29.4.4",
|
|
43
|
-
"@types/node": "20.15.0",
|
|
44
41
|
"async": "3.2.6",
|
|
45
|
-
"concurrently": "7.6.0",
|
|
46
|
-
"core-js": "3.29.1",
|
|
47
42
|
"dayjs": "1.11.7",
|
|
48
|
-
"diginext-utils": "4.1.
|
|
49
|
-
"dotenv": "16.
|
|
50
|
-
"esm": "3.2.25",
|
|
51
|
-
"jimp": "0.22.4",
|
|
43
|
+
"diginext-utils": "4.1.3",
|
|
44
|
+
"dotenv": "16.6.1",
|
|
52
45
|
"sharp": "0.34.5",
|
|
53
|
-
"tsconfig": "*",
|
|
54
|
-
"tsup": "8.5.1",
|
|
55
|
-
"typescript": "4.9.5",
|
|
56
46
|
"yargs": "17.7.1"
|
|
57
47
|
},
|
|
58
48
|
"publishConfig": {
|
|
@@ -60,11 +50,14 @@
|
|
|
60
50
|
},
|
|
61
51
|
"devDependencies": {
|
|
62
52
|
"@types/async": "3.2.24",
|
|
53
|
+
"@types/jest": "29.4.4",
|
|
54
|
+
"@types/node": "20.15.0",
|
|
63
55
|
"@types/yargs": "17.0.22",
|
|
56
|
+
"concurrently": "7.6.0",
|
|
64
57
|
"eslint": "8.36.0",
|
|
65
58
|
"eslint-plugin-import": "2.27.5",
|
|
66
59
|
"esm": "3.2.25",
|
|
67
|
-
"
|
|
68
|
-
"
|
|
60
|
+
"tsup": "8.5.1",
|
|
61
|
+
"typescript": "4.9.5"
|
|
69
62
|
}
|
|
70
63
|
}
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getAllFiles.js","sourceRoot":"","sources":["../../src/plugins/getAllFiles.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAExB,MAAM,WAAW,GAAG,UAAU,OAAe,EAAE,YAA4B;IAC1E,MAAM,KAAK,GAAG,YAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEtC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;IAElC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI;QAC3B,IAAI,YAAE,CAAC,QAAQ,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;YACpD,YAAY,GAAG,WAAW,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC;SAC/D;aAAM;YACN,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACjE,IAAI,YAAY;gBAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC5C;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACrB,CAAC,CAAC;AAEF,kBAAe,WAAW,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isImageSupported.js","sourceRoot":"","sources":["../../src/plugins/isImageSupported.ts"],"names":[],"mappings":";;AAAA,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE;IACxC,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAEvB,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAEtC,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;QACpC,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,IAAI,CAAC,CAAC;AACnB,CAAC,CAAC;AAEF,kBAAe,gBAAgB,CAAC"}
|
package/esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getAllFiles.js","sourceRoot":"","sources":["../../src/plugins/getAllFiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,WAAW,GAAG,UAAU,OAAe,EAAE,YAA4B;IAC1E,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEtC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;IAElC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI;QAC3B,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;YACpD,YAAY,GAAG,WAAW,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC;SAC/D;aAAM;YACN,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACjE,IAAI,YAAY;gBAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC5C;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,YAAY,CAAC;AACrB,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"isImageSupported.js","sourceRoot":"","sources":["../../src/plugins/isImageSupported.ts"],"names":[],"mappings":"AAAA,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE;IACxC,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAEvB,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAEtC,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;QACpC,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,IAAI,CAAC,CAAC;AACnB,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|