webpocalypse 1.0.0 → 1.0.2

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/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAgB,MAAM,YAAY,CAAC;AAI3D,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAiEnF"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAgB,MAAM,YAAY,CAAC;AAI3D,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAmEnF"}
package/dist/cli.js CHANGED
@@ -20,7 +20,8 @@ function parseArgs(argv) {
20
20
  .option('--max-width <number>', 'Maximum output width in pixels (no upscaling)')
21
21
  .option('--max-height <number>', 'Maximum output height in pixels (no upscaling)')
22
22
  .option('-o, --out <path>', 'Output directory (default: <input>-optimized)')
23
- .option('--in-place', 'Overwrite source directory safely via temp dir', false);
23
+ .option('--in-place', 'Overwrite source directory safely via temp dir', false)
24
+ .option('--json', 'Output structured JSON results to stdout', false);
24
25
  program.parse(argv);
25
26
  const opts = program.opts();
26
27
  const [inputArg] = program.args;
@@ -60,6 +61,7 @@ function parseArgs(argv) {
60
61
  maxHeight,
61
62
  out: opts.out ? path_1.default.resolve(opts.out) : undefined,
62
63
  inPlace: opts.inPlace,
64
+ json: opts.json,
63
65
  },
64
66
  };
65
67
  }
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;AAMA,8BAiEC;AAvED,yCAAoC;AACpC,gDAAwB;AAGxB,MAAM,aAAa,GAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE/D,SAAgB,SAAS,CAAC,IAAc;IACtC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,cAAc,CAAC;SACpB,WAAW,CAAC,6FAA6F,CAAC;SAC1G,OAAO,CAAC,OAAO,CAAC;SAChB,QAAQ,CAAC,SAAS,EAAE,8CAA8C,CAAC;SACnE,MAAM,CAAC,uBAAuB,EAAE,oCAAoC,EAAE,MAAM,CAAC;SAC7E,MAAM,CAAC,wBAAwB,EAAE,8BAA8B,EAAE,IAAI,CAAC;SACtE,MAAM,CAAC,YAAY,EAAE,0BAA0B,EAAE,KAAK,CAAC;SACvD,MAAM,CAAC,sBAAsB,EAAE,+CAA+C,CAAC;SAC/E,MAAM,CAAC,uBAAuB,EAAE,gDAAgD,CAAC;SACjF,MAAM,CAAC,kBAAkB,EAAE,+CAA+C,CAAC;SAC3E,MAAM,CAAC,YAAY,EAAE,gDAAgD,EAAE,KAAK,CAAC,CAAC;IAEjF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEpB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAEhC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAC;IACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAsB,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,mBAAmB,MAAM,sBAAsB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAiB,EAAE,EAAE,CAAC,CAAC;IACrD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;QACnD,OAAO,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,OAAO,uCAAuC,CAAC,CAAC;IACzF,CAAC;IAED,IAAI,QAA4B,CAAC;IACjC,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAkB,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,QAAQ,+BAA+B,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,IAAI,SAA6B,CAAC;IAClC,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACjC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAmB,EAAE,EAAE,CAAC,CAAC;QACnD,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,KAAK,CAAC,yBAAyB,IAAI,CAAC,SAAS,+BAA+B,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAExC,OAAO;QACL,QAAQ;QACR,OAAO,EAAE;YACP,MAAM,EAAE,MAAsB;YAC9B,OAAO;YACP,QAAQ,EAAE,IAAI,CAAC,QAAmB;YAClC,QAAQ;YACR,SAAS;YACT,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAa,CAAC,CAAC,CAAC,CAAC,SAAS;YAC5D,OAAO,EAAE,IAAI,CAAC,OAAkB;SACjC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/convert.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { FileEntry, CliOptions, ConversionResult } from './types.js';
1
+ import type { FileEntry, CliOptions, ConversionResult } from "./types.js";
2
2
  /**
3
3
  * Convert all files and write directly to outputDir.
4
4
  * Calls onProgress after each file finishes (success or failure).
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAgF1E;;;GAGG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,SAAS,EAAE,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,GAC7C,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAuD7B"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAkF1E;;;GAGG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,SAAS,EAAE,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,GAC7C,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAyD7B"}
package/dist/convert.js CHANGED
@@ -16,7 +16,7 @@ function applyResize(image, options) {
16
16
  return image.resize({
17
17
  width: options.maxWidth,
18
18
  height: options.maxHeight,
19
- fit: 'inside',
19
+ fit: "inside",
20
20
  withoutEnlargement: true,
21
21
  });
22
22
  }
@@ -28,7 +28,7 @@ async function encodeToFile(file, format, outputDir, options) {
28
28
  await fs_extra_1.default.ensureDir(path_1.default.dirname(outputPath));
29
29
  let image = (0, sharp_1.default)(inputBuffer);
30
30
  image = applyResize(image, options);
31
- if (format === 'webp') {
31
+ if (format === "webp") {
32
32
  await (options.lossless
33
33
  ? image.webp({ lossless: true })
34
34
  : image.webp({ quality: options.quality })).toFile(outputPath);
@@ -74,9 +74,7 @@ async function passthroughFile(file, outputDir) {
74
74
  */
75
75
  async function convertFiles(files, outputDir, options, onProgress) {
76
76
  // AVIF is much heavier to encode — reduce concurrency to avoid CPU saturation
77
- const concurrency = options.format === 'avif' ? 3
78
- : options.format === 'both' ? 4
79
- : 6;
77
+ const concurrency = options.format === "avif" ? 3 : options.format === "both" ? 4 : 6;
80
78
  const limit = (0, p_limit_1.default)(concurrency);
81
79
  const allResults = [];
82
80
  const tasks = files.flatMap((file) => {
@@ -89,7 +87,7 @@ async function convertFiles(files, outputDir, options, onProgress) {
89
87
  }),
90
88
  ];
91
89
  }
92
- const formats = options.format === 'both' ? ['webp', 'avif'] : [options.format];
90
+ const formats = options.format === "both" ? ["webp", "avif"] : [options.format];
93
91
  return formats.map((fmt) => limit(async () => {
94
92
  let result;
95
93
  try {
@@ -107,7 +105,7 @@ async function convertFiles(files, outputDir, options, onProgress) {
107
105
  result = {
108
106
  inputPath: file.inputPath,
109
107
  relativePath: file.relativePath,
110
- outputPath: '',
108
+ outputPath: "",
111
109
  outputRelativePath: (0, scan_js_1.replaceExtension)(file.relativePath, fmt),
112
110
  originalSize: stat?.size ?? 0,
113
111
  convertedSize: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"convert.js","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../src/convert.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -28,14 +28,14 @@ async function main() {
28
28
  const files = (0, scan_js_1.scanDirectory)(inputDir);
29
29
  spinner.stop();
30
30
  if (files.length === 0) {
31
- console.log(chalk_1.default.yellow('⚠ No supported images found in: ') + inputDir);
32
- console.log(chalk_1.default.dim(' Supported formats: .jpg, .jpeg, .png, .webp, .avif'));
31
+ console.log(chalk_1.default.yellow('⚠ No files found in: ') + inputDir);
33
32
  process.exit(0);
34
33
  }
35
- // Each file may produce 1 or 2 output files (when --format both)
34
+ const convertibleCount = files.filter(f => (0, scan_js_1.isConvertible)(f.inputPath)).length;
35
+ const passthroughCount = files.length - convertibleCount;
36
+ // Convertible files produce 1 or 2 outputs (--format both); pass-throughs always 1
36
37
  const totalOutputs = files.reduce((sum, f) => {
37
- const isPassthrough = /\.(webp|avif)$/i.test(f.inputPath);
38
- return sum + (isPassthrough ? 1 : options.format === 'both' ? 2 : 1);
38
+ return sum + ((0, scan_js_1.isConvertible)(f.inputPath) && options.format === 'both' ? 2 : 1);
39
39
  }, 0);
40
40
  const outputDir = options.inPlace
41
41
  ? inputDir
@@ -49,7 +49,10 @@ async function main() {
49
49
  chalk_1.default.dim(' Quality: ') + (options.lossless ? 'lossless' : String(options.quality)) +
50
50
  (options.maxWidth ? chalk_1.default.dim(' Max-W: ') + options.maxWidth : '') +
51
51
  (options.maxHeight ? chalk_1.default.dim(' Max-H: ') + options.maxHeight : ''));
52
- console.log(chalk_1.default.dim(` Files: ${files.length} image${files.length !== 1 ? 's' : ''} found → ${totalOutputs} output${totalOutputs !== 1 ? 's' : ''}`));
52
+ const filesSummary = passthroughCount > 0
53
+ ? `${convertibleCount} image${convertibleCount !== 1 ? 's' : ''} to convert, ${passthroughCount} asset${passthroughCount !== 1 ? 's' : ''} copied as-is`
54
+ : `${convertibleCount} image${convertibleCount !== 1 ? 's' : ''} to convert`;
55
+ console.log(chalk_1.default.dim(` Files: ${filesSummary} → ${totalOutputs} output${totalOutputs !== 1 ? 's' : ''}`));
53
56
  // ── Convert ───────────────────────────────────────────────────────────────
54
57
  (0, logger_js_1.printTableHeader)();
55
58
  let doneCount = 0;
@@ -78,6 +81,20 @@ async function main() {
78
81
  results.sort((a, b) => a.relativePath.localeCompare(b.relativePath));
79
82
  const summary = (0, logger_js_1.buildSummary)(results);
80
83
  (0, logger_js_1.printSummary)(summary, finalOutputDir);
84
+ if (options.json) {
85
+ const jsonOutput = {
86
+ files: results
87
+ .filter((r) => r.success && !r.skipped)
88
+ .map((r) => ({
89
+ path: r.relativePath,
90
+ originalBytes: r.originalSize,
91
+ convertedBytes: r.convertedSize,
92
+ })),
93
+ totalOriginalBytes: summary.totalOriginalBytes,
94
+ totalConvertedBytes: summary.totalConvertedBytes,
95
+ };
96
+ process.stdout.write(JSON.stringify(jsonOutput) + '\n');
97
+ }
81
98
  process.exit(summary.failureCount > 0 ? 1 : 0);
82
99
  }
83
100
  catch (err) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/scan.d.ts CHANGED
@@ -1,11 +1,19 @@
1
- import type { FileEntry } from './types.js';
2
- export declare function isSupportedImage(filename: string): boolean;
1
+ import type { FileEntry } from "./types.js";
2
+ export declare function isConvertible(filename: string): boolean;
3
+ export declare function isIgnored(filename: string): boolean;
4
+ /**
5
+ * Returns true for files that should be copied verbatim to the output.
6
+ * This includes already-optimised images (.webp, .avif) as well as any
7
+ * other asset (.svg, .ico, .gif, fonts, JSON, etc.) that sharp cannot or
8
+ * should not re-encode.
9
+ */
3
10
  export declare function isPassthrough(filename: string): boolean;
4
11
  export declare function replaceExtension(filePath: string, newExt: string): string;
5
12
  /**
6
- * Recursively walk a directory and collect all supported image files.
7
- * Returns paths relative to the given root so that directory structure
8
- * can be replicated in the output.
13
+ * Recursively walk a directory and collect every file that should appear in
14
+ * the output both convertible images (.jpg, .jpeg, .png) and pass-through
15
+ * assets (.webp, .avif, .svg, .ico, fonts, etc.).
16
+ * OS-generated junk (.DS_Store, Thumbs.db …) is silently skipped.
9
17
  */
10
18
  export declare function scanDirectory(rootDir: string): FileEntry[];
11
19
  //# sourceMappingURL=scan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAU5C,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAG1D;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIzE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAoB1D"}
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAc5C,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAIzE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAoB1D"}
package/dist/scan.js CHANGED
@@ -3,34 +3,49 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.isSupportedImage = isSupportedImage;
6
+ exports.isConvertible = isConvertible;
7
+ exports.isIgnored = isIgnored;
7
8
  exports.isPassthrough = isPassthrough;
8
9
  exports.replaceExtension = replaceExtension;
9
10
  exports.scanDirectory = scanDirectory;
10
11
  const fs_1 = __importDefault(require("fs"));
11
12
  const path_1 = __importDefault(require("path"));
12
13
  // Extensions that will be re-encoded by sharp
13
- const CONVERTIBLE_EXTENSIONS = new Set(['.jpg', '.jpeg', '.png']);
14
- // Extensions that are already in a target format — copy as-is
15
- const PASSTHROUGH_EXTENSIONS = new Set(['.webp', '.avif']);
16
- const ALL_SUPPORTED = new Set([...CONVERTIBLE_EXTENSIONS, ...PASSTHROUGH_EXTENSIONS]);
17
- function isSupportedImage(filename) {
18
- const ext = filename.toLowerCase().slice(filename.lastIndexOf('.'));
19
- return ALL_SUPPORTED.has(ext);
14
+ const CONVERTIBLE_EXTENSIONS = new Set([".jpg", ".jpeg", ".png"]);
15
+ // OS/editor-generated files that should never appear in the output
16
+ const IGNORED_FILENAMES = new Set([
17
+ ".ds_store",
18
+ "thumbs.db",
19
+ "desktop.ini",
20
+ ".gitkeep",
21
+ ".gitignore",
22
+ ]);
23
+ function isConvertible(filename) {
24
+ const ext = filename.toLowerCase().slice(filename.lastIndexOf("."));
25
+ return CONVERTIBLE_EXTENSIONS.has(ext);
20
26
  }
27
+ function isIgnored(filename) {
28
+ return IGNORED_FILENAMES.has(path_1.default.basename(filename).toLowerCase());
29
+ }
30
+ /**
31
+ * Returns true for files that should be copied verbatim to the output.
32
+ * This includes already-optimised images (.webp, .avif) as well as any
33
+ * other asset (.svg, .ico, .gif, fonts, JSON, etc.) that sharp cannot or
34
+ * should not re-encode.
35
+ */
21
36
  function isPassthrough(filename) {
22
- const ext = filename.toLowerCase().slice(filename.lastIndexOf('.'));
23
- return PASSTHROUGH_EXTENSIONS.has(ext);
37
+ return !isConvertible(filename) && !isIgnored(filename);
24
38
  }
25
39
  function replaceExtension(filePath, newExt) {
26
- const dotIndex = filePath.lastIndexOf('.');
40
+ const dotIndex = filePath.lastIndexOf(".");
27
41
  const base = dotIndex !== -1 ? filePath.slice(0, dotIndex) : filePath;
28
42
  return `${base}.${newExt}`;
29
43
  }
30
44
  /**
31
- * Recursively walk a directory and collect all supported image files.
32
- * Returns paths relative to the given root so that directory structure
33
- * can be replicated in the output.
45
+ * Recursively walk a directory and collect every file that should appear in
46
+ * the output both convertible images (.jpg, .jpeg, .png) and pass-through
47
+ * assets (.webp, .avif, .svg, .ico, fonts, etc.).
48
+ * OS-generated junk (.DS_Store, Thumbs.db …) is silently skipped.
34
49
  */
35
50
  function scanDirectory(rootDir) {
36
51
  const entries = [];
@@ -41,7 +56,7 @@ function scanDirectory(rootDir) {
41
56
  if (item.isDirectory()) {
42
57
  walk(fullPath);
43
58
  }
44
- else if (item.isFile() && isSupportedImage(item.name)) {
59
+ else if (item.isFile() && !isIgnored(item.name)) {
45
60
  const relativePath = path_1.default.relative(rootDir, fullPath);
46
61
  entries.push({ inputPath: fullPath, relativePath });
47
62
  }
package/dist/scan.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":";;;;;AAYA,4CAGC;AAED,sCAGC;AAED,4CAIC;AAOD,sCAoBC;AArDD,4CAAoB;AACpB,gDAAwB;AAGxB,8CAA8C;AAC9C,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAElE,8DAA8D;AAC9D,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAE3D,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,sBAAsB,EAAE,GAAG,sBAAsB,CAAC,CAAC,CAAC;AAEtF,SAAgB,gBAAgB,CAAC,QAAgB;IAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,OAAO,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED,SAAgB,aAAa,CAAC,QAAgB;IAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,OAAO,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,gBAAgB,CAAC,QAAgB,EAAE,MAAc;IAC/D,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACtE,OAAO,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,OAAe;IAC3C,MAAM,OAAO,GAAgB,EAAE,CAAC;IAEhC,SAAS,IAAI,CAAC,GAAW;QACvB,MAAM,KAAK,GAAG,YAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAE3C,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjB,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxD,MAAM,YAAY,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,CAAC;IACd,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":";;;;;AAgBA,sCAGC;AAED,8BAEC;AAQD,sCAEC;AAED,4CAIC;AAQD,sCAoBC;AAnED,4CAAoB;AACpB,gDAAwB;AAGxB,8CAA8C;AAC9C,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAElE,mEAAmE;AACnE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,WAAW;IACX,WAAW;IACX,aAAa;IACb,UAAU;IACV,YAAY;CACb,CAAC,CAAC;AAEH,SAAgB,aAAa,CAAC,QAAgB;IAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IACpE,OAAO,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,SAAgB,SAAS,CAAC,QAAgB;IACxC,OAAO,iBAAiB,CAAC,GAAG,CAAC,cAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACtE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,QAAgB;IAC5C,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,gBAAgB,CAAC,QAAgB,EAAE,MAAc;IAC/D,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACtE,OAAO,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,OAAe;IAC3C,MAAM,OAAO,GAAgB,EAAE,CAAC;IAEhC,SAAS,IAAI,CAAC,GAAW;QACvB,MAAM,KAAK,GAAG,YAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAE3C,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjB,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClD,MAAM,YAAY,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,CAAC;IACd,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type OutputFormat = 'webp' | 'avif' | 'both';
1
+ export type OutputFormat = "webp" | "avif" | "both";
2
2
  export interface CliOptions {
3
3
  format: OutputFormat;
4
4
  quality: number;
@@ -7,6 +7,7 @@ export interface CliOptions {
7
7
  maxHeight?: number;
8
8
  out?: string;
9
9
  inPlace: boolean;
10
+ json: boolean;
10
11
  }
11
12
  export interface FileEntry {
12
13
  inputPath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;CAC7B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;CAC7B"}
package/package.json CHANGED
@@ -1,15 +1,24 @@
1
1
  {
2
2
  "name": "webpocalypse",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "CLI tool for batch image conversion to WebP/AVIF with quality control and directory structure preservation",
5
- "keywords": ["image", "conversion", "webp", "avif", "optimization", "cli"],
5
+ "keywords": [
6
+ "image",
7
+ "conversion",
8
+ "webp",
9
+ "avif",
10
+ "optimization",
11
+ "cli"
12
+ ],
6
13
  "author": "",
7
14
  "license": "MIT",
8
15
  "main": "dist/index.js",
9
16
  "bin": {
10
17
  "webpocalypse": "dist/index.js"
11
18
  },
12
- "files": ["dist"],
19
+ "files": [
20
+ "dist"
21
+ ],
13
22
  "engines": {
14
23
  "node": ">=18.0.0"
15
24
  },