@mediaproc/image 1.2.1 → 1.3.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.
Files changed (215) hide show
  1. package/README.md +6 -4
  2. package/dist/cli.js +4 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/affine.d.ts +1 -0
  5. package/dist/commands/affine.d.ts.map +1 -1
  6. package/dist/commands/affine.js +8 -10
  7. package/dist/commands/affine.js.map +1 -1
  8. package/dist/commands/auto-enhance.d.ts +1 -0
  9. package/dist/commands/auto-enhance.d.ts.map +1 -1
  10. package/dist/commands/auto-enhance.js +7 -10
  11. package/dist/commands/auto-enhance.js.map +1 -1
  12. package/dist/commands/auto-orient.d.ts +1 -0
  13. package/dist/commands/auto-orient.d.ts.map +1 -1
  14. package/dist/commands/auto-orient.js +8 -10
  15. package/dist/commands/auto-orient.js.map +1 -1
  16. package/dist/commands/batch.d.ts +1 -0
  17. package/dist/commands/batch.d.ts.map +1 -1
  18. package/dist/commands/batch.js +5 -7
  19. package/dist/commands/batch.js.map +1 -1
  20. package/dist/commands/blur.d.ts +1 -0
  21. package/dist/commands/blur.d.ts.map +1 -1
  22. package/dist/commands/blur.js +8 -11
  23. package/dist/commands/blur.js.map +1 -1
  24. package/dist/commands/boolean.d.ts +1 -0
  25. package/dist/commands/boolean.d.ts.map +1 -1
  26. package/dist/commands/boolean.js +8 -11
  27. package/dist/commands/boolean.js.map +1 -1
  28. package/dist/commands/border.d.ts +1 -0
  29. package/dist/commands/border.d.ts.map +1 -1
  30. package/dist/commands/border.js +7 -10
  31. package/dist/commands/border.js.map +1 -1
  32. package/dist/commands/clahe.d.ts +1 -0
  33. package/dist/commands/clahe.d.ts.map +1 -1
  34. package/dist/commands/clahe.js +7 -10
  35. package/dist/commands/clahe.js.map +1 -1
  36. package/dist/commands/composite.d.ts +1 -0
  37. package/dist/commands/composite.d.ts.map +1 -1
  38. package/dist/commands/composite.js +7 -11
  39. package/dist/commands/composite.js.map +1 -1
  40. package/dist/commands/compress.d.ts +4 -0
  41. package/dist/commands/compress.d.ts.map +1 -0
  42. package/dist/commands/compress.js +190 -0
  43. package/dist/commands/compress.js.map +1 -0
  44. package/dist/commands/convert.d.ts +1 -0
  45. package/dist/commands/convert.d.ts.map +1 -1
  46. package/dist/commands/convert.js +7 -11
  47. package/dist/commands/convert.js.map +1 -1
  48. package/dist/commands/convolve.d.ts +1 -0
  49. package/dist/commands/convolve.d.ts.map +1 -1
  50. package/dist/commands/convolve.js +7 -10
  51. package/dist/commands/convolve.js.map +1 -1
  52. package/dist/commands/crop.d.ts +1 -0
  53. package/dist/commands/crop.d.ts.map +1 -1
  54. package/dist/commands/crop.js +8 -10
  55. package/dist/commands/crop.js.map +1 -1
  56. package/dist/commands/dilate.d.ts +1 -0
  57. package/dist/commands/dilate.d.ts.map +1 -1
  58. package/dist/commands/dilate.js +8 -10
  59. package/dist/commands/dilate.js.map +1 -1
  60. package/dist/commands/dominant-color.d.ts +1 -0
  61. package/dist/commands/dominant-color.d.ts.map +1 -1
  62. package/dist/commands/dominant-color.js +4 -5
  63. package/dist/commands/dominant-color.js.map +1 -1
  64. package/dist/commands/erode.d.ts +1 -0
  65. package/dist/commands/erode.d.ts.map +1 -1
  66. package/dist/commands/erode.js +8 -10
  67. package/dist/commands/erode.js.map +1 -1
  68. package/dist/commands/extend.d.ts +1 -0
  69. package/dist/commands/extend.d.ts.map +1 -1
  70. package/dist/commands/extend.js +8 -10
  71. package/dist/commands/extend.js.map +1 -1
  72. package/dist/commands/extract.d.ts +1 -0
  73. package/dist/commands/extract.d.ts.map +1 -1
  74. package/dist/commands/extract.js +7 -11
  75. package/dist/commands/extract.js.map +1 -1
  76. package/dist/commands/flatten.d.ts +1 -0
  77. package/dist/commands/flatten.d.ts.map +1 -1
  78. package/dist/commands/flatten.js +8 -10
  79. package/dist/commands/flatten.js.map +1 -1
  80. package/dist/commands/flip.d.ts +1 -0
  81. package/dist/commands/flip.d.ts.map +1 -1
  82. package/dist/commands/flip.js +8 -10
  83. package/dist/commands/flip.js.map +1 -1
  84. package/dist/commands/flop.d.ts +1 -0
  85. package/dist/commands/flop.d.ts.map +1 -1
  86. package/dist/commands/flop.js +8 -10
  87. package/dist/commands/flop.js.map +1 -1
  88. package/dist/commands/gamma.d.ts +1 -0
  89. package/dist/commands/gamma.d.ts.map +1 -1
  90. package/dist/commands/gamma.js +8 -10
  91. package/dist/commands/gamma.js.map +1 -1
  92. package/dist/commands/grayscale.d.ts +1 -0
  93. package/dist/commands/grayscale.d.ts.map +1 -1
  94. package/dist/commands/grayscale.js +8 -10
  95. package/dist/commands/grayscale.js.map +1 -1
  96. package/dist/commands/grid.d.ts +1 -0
  97. package/dist/commands/grid.d.ts.map +1 -1
  98. package/dist/commands/grid.js +3 -3
  99. package/dist/commands/grid.js.map +1 -1
  100. package/dist/commands/info.d.ts +4 -0
  101. package/dist/commands/info.d.ts.map +1 -0
  102. package/dist/commands/info.js +185 -0
  103. package/dist/commands/info.js.map +1 -0
  104. package/dist/commands/linear.d.ts +1 -0
  105. package/dist/commands/linear.d.ts.map +1 -1
  106. package/dist/commands/linear.js +8 -10
  107. package/dist/commands/linear.js.map +1 -1
  108. package/dist/commands/median.d.ts +1 -0
  109. package/dist/commands/median.d.ts.map +1 -1
  110. package/dist/commands/median.js +8 -10
  111. package/dist/commands/median.js.map +1 -1
  112. package/dist/commands/metadata-cmd.d.ts +1 -0
  113. package/dist/commands/metadata-cmd.d.ts.map +1 -1
  114. package/dist/commands/metadata-cmd.js +6 -8
  115. package/dist/commands/metadata-cmd.js.map +1 -1
  116. package/dist/commands/mirror.d.ts +1 -0
  117. package/dist/commands/mirror.d.ts.map +1 -1
  118. package/dist/commands/mirror.js +7 -11
  119. package/dist/commands/mirror.js.map +1 -1
  120. package/dist/commands/modulate.d.ts +1 -0
  121. package/dist/commands/modulate.d.ts.map +1 -1
  122. package/dist/commands/modulate.js +8 -10
  123. package/dist/commands/modulate.js.map +1 -1
  124. package/dist/commands/negate.d.ts +1 -0
  125. package/dist/commands/negate.d.ts.map +1 -1
  126. package/dist/commands/negate.js +8 -10
  127. package/dist/commands/negate.js.map +1 -1
  128. package/dist/commands/normalize.d.ts +1 -0
  129. package/dist/commands/normalize.d.ts.map +1 -1
  130. package/dist/commands/normalize.js +8 -10
  131. package/dist/commands/normalize.js.map +1 -1
  132. package/dist/commands/optimize.d.ts +1 -0
  133. package/dist/commands/optimize.d.ts.map +1 -1
  134. package/dist/commands/optimize.js +8 -10
  135. package/dist/commands/optimize.js.map +1 -1
  136. package/dist/commands/palette.d.ts +1 -0
  137. package/dist/commands/palette.d.ts.map +1 -1
  138. package/dist/commands/palette.js +5 -6
  139. package/dist/commands/palette.js.map +1 -1
  140. package/dist/commands/pixelate.d.ts +1 -0
  141. package/dist/commands/pixelate.d.ts.map +1 -1
  142. package/dist/commands/pixelate.js +7 -10
  143. package/dist/commands/pixelate.js.map +1 -1
  144. package/dist/commands/recomb.d.ts +1 -0
  145. package/dist/commands/recomb.d.ts.map +1 -1
  146. package/dist/commands/recomb.js +8 -10
  147. package/dist/commands/recomb.js.map +1 -1
  148. package/dist/commands/resize.d.ts +1 -0
  149. package/dist/commands/resize.d.ts.map +1 -1
  150. package/dist/commands/resize.js +9 -16
  151. package/dist/commands/resize.js.map +1 -1
  152. package/dist/commands/rotate.d.ts +1 -0
  153. package/dist/commands/rotate.d.ts.map +1 -1
  154. package/dist/commands/rotate.js +8 -10
  155. package/dist/commands/rotate.js.map +1 -1
  156. package/dist/commands/sepia.d.ts +1 -0
  157. package/dist/commands/sepia.d.ts.map +1 -1
  158. package/dist/commands/sepia.js +7 -10
  159. package/dist/commands/sepia.js.map +1 -1
  160. package/dist/commands/sharpen.d.ts +1 -0
  161. package/dist/commands/sharpen.d.ts.map +1 -1
  162. package/dist/commands/sharpen.js +8 -10
  163. package/dist/commands/sharpen.js.map +1 -1
  164. package/dist/commands/smart-crop.d.ts +1 -0
  165. package/dist/commands/smart-crop.d.ts.map +1 -1
  166. package/dist/commands/smart-crop.js +7 -11
  167. package/dist/commands/smart-crop.js.map +1 -1
  168. package/dist/commands/split.d.ts +1 -0
  169. package/dist/commands/split.d.ts.map +1 -1
  170. package/dist/commands/split.js +9 -9
  171. package/dist/commands/split.js.map +1 -1
  172. package/dist/commands/stack.d.ts +1 -0
  173. package/dist/commands/stack.d.ts.map +1 -1
  174. package/dist/commands/stack.js +3 -3
  175. package/dist/commands/stack.js.map +1 -1
  176. package/dist/commands/stats.d.ts +1 -0
  177. package/dist/commands/stats.d.ts.map +1 -1
  178. package/dist/commands/stats.js +4 -5
  179. package/dist/commands/stats.js.map +1 -1
  180. package/dist/commands/threshold.d.ts +1 -0
  181. package/dist/commands/threshold.d.ts.map +1 -1
  182. package/dist/commands/threshold.js +8 -10
  183. package/dist/commands/threshold.js.map +1 -1
  184. package/dist/commands/thumbnail.d.ts +1 -0
  185. package/dist/commands/thumbnail.d.ts.map +1 -1
  186. package/dist/commands/thumbnail.js +8 -10
  187. package/dist/commands/thumbnail.js.map +1 -1
  188. package/dist/commands/tint.d.ts +1 -0
  189. package/dist/commands/tint.d.ts.map +1 -1
  190. package/dist/commands/tint.js +8 -10
  191. package/dist/commands/tint.js.map +1 -1
  192. package/dist/commands/trim.d.ts +1 -0
  193. package/dist/commands/trim.d.ts.map +1 -1
  194. package/dist/commands/trim.js +8 -10
  195. package/dist/commands/trim.js.map +1 -1
  196. package/dist/commands/unflatten.d.ts +1 -0
  197. package/dist/commands/unflatten.d.ts.map +1 -1
  198. package/dist/commands/unflatten.js +8 -10
  199. package/dist/commands/unflatten.js.map +1 -1
  200. package/dist/commands/vignette.d.ts +1 -0
  201. package/dist/commands/vignette.d.ts.map +1 -1
  202. package/dist/commands/vignette.js +7 -10
  203. package/dist/commands/vignette.js.map +1 -1
  204. package/dist/commands/watermark.d.ts +1 -0
  205. package/dist/commands/watermark.d.ts.map +1 -1
  206. package/dist/commands/watermark.js +8 -11
  207. package/dist/commands/watermark.js.map +1 -1
  208. package/dist/register.d.ts.map +1 -1
  209. package/dist/register.js +4 -0
  210. package/dist/register.js.map +1 -1
  211. package/dist/utils/pathValidator.d.ts +33 -59
  212. package/dist/utils/pathValidator.d.ts.map +1 -1
  213. package/dist/utils/pathValidator.js +121 -146
  214. package/dist/utils/pathValidator.js.map +1 -1
  215. package/package.json +1 -1
@@ -1,10 +1,10 @@
1
1
  import chalk from 'chalk';
2
2
  import ora from 'ora';
3
- import path from 'path';
4
3
  import { createSharpInstance } from '../utils/sharp.js';
5
4
  import { createStandardHelp } from '../utils/helpFormatter.js';
6
- // Dependency injection: Import global path validator from core
7
- import { validatePaths, resolveOutputPaths, MediaExtensions } from '../utils/pathValidator.js';
5
+ import { validatePaths, resolveOutputPaths, IMAGE_EXTENSIONS, getFileName } from '../utils/pathValidator.js';
6
+ import path from 'node:path';
7
+ export { getFileName } from '../utils/pathValidator.js';
8
8
  export function resizeCommand(imageCmd) {
9
9
  imageCmd
10
10
  .command('resize <input>')
@@ -92,10 +92,9 @@ export function resizeCommand(imageCmd) {
92
92
  spinner.fail(chalk.red('At least one dimension (width or height) must be specified'));
93
93
  process.exit(1);
94
94
  }
95
- // Use global path validator (dependency injection)
96
- const { inputFiles, outputDir, errors } = validatePaths(input, options.output, {
97
- allowedExtensions: MediaExtensions.IMAGE,
98
- recursive: true,
95
+ // Validate input and output paths
96
+ const { inputFiles, outputPath, errors } = validatePaths(input, options.output, {
97
+ allowedExtensions: IMAGE_EXTENSIONS,
99
98
  });
100
99
  // Check for validation errors
101
100
  if (errors.length > 0) {
@@ -103,14 +102,9 @@ export function resizeCommand(imageCmd) {
103
102
  errors.forEach(err => console.log(chalk.red(` ✗ ${err}`)));
104
103
  process.exit(1);
105
104
  }
106
- if (inputFiles.length === 0) {
107
- spinner.fail(chalk.red('No valid image files found'));
108
- process.exit(1);
109
- }
110
105
  // Resolve output paths for all input files
111
- const outputPaths = resolveOutputPaths(inputFiles, outputDir, {
106
+ const outputPaths = resolveOutputPaths(inputFiles, outputPath, {
112
107
  suffix: '-resized',
113
- preserveStructure: inputFiles.length > 1,
114
108
  });
115
109
  spinner.succeed(chalk.green(`Found ${inputFiles.length} image(s) to process`));
116
110
  if (options.verbose) {
@@ -128,7 +122,7 @@ export function resizeCommand(imageCmd) {
128
122
  console.log(chalk.green(`Would resize ${inputFiles.length} image(s):`));
129
123
  inputFiles.forEach((inputFile, index) => {
130
124
  const outputPath = outputPaths.get(inputFile);
131
- console.log(chalk.dim(` ${index + 1}. ${path.basename(inputFile)} → ${path.basename(outputPath)}`));
125
+ console.log(chalk.dim(` ${index + 1}. ${getFileName(inputFile)} → ${getFileName(outputPath)}`));
132
126
  });
133
127
  return;
134
128
  }
@@ -137,7 +131,7 @@ export function resizeCommand(imageCmd) {
137
131
  let failCount = 0;
138
132
  for (const [index, inputFile] of inputFiles.entries()) {
139
133
  const outputPath = outputPaths.get(inputFile);
140
- const fileName = path.basename(inputFile);
134
+ const fileName = getFileName(inputFile);
141
135
  spinner.start(`Processing ${index + 1}/${inputFiles.length}: ${fileName}...`);
142
136
  try {
143
137
  // Get input image metadata
@@ -200,7 +194,6 @@ export function resizeCommand(imageCmd) {
200
194
  if (failCount > 0) {
201
195
  console.log(chalk.red(` ✗ Failed: ${failCount}`));
202
196
  }
203
- console.log(chalk.dim(` Output directory: ${outputDir}`));
204
197
  }
205
198
  catch (error) {
206
199
  spinner.fail(chalk.red('Failed to resize images'));
@@ -1 +1 @@
1
- {"version":3,"file":"resize.js","sourceRoot":"","sources":["../../src/commands/resize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resize.js","sourceRoot":"","sources":["../../src/commands/resize.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import type { Command } from 'commander';
2
+ export { getFileName } from '../utils/pathValidator.js';
2
3
  export declare function rotateCommand(imageCmd: Command): void;
3
4
  //# sourceMappingURL=rotate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rotate.d.ts","sourceRoot":"","sources":["../../src/commands/rotate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAezC,wBAAgB,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CA2IrD"}
1
+ {"version":3,"file":"rotate.d.ts","sourceRoot":"","sources":["../../src/commands/rotate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIqE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAYtK,wBAAgB,aAAa,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAwIrD"}
@@ -1,9 +1,10 @@
1
1
  import chalk from 'chalk';
2
2
  import ora from 'ora';
3
- import path from 'path';
4
- import { validatePaths, resolveOutputPaths, MediaExtensions } from '../utils/pathValidator.js';
3
+ import { validatePaths, resolveOutputPaths, IMAGE_EXTENSIONS, getFileName } from '../utils/pathValidator.js';
4
+ export { getFileName } from '../utils/pathValidator.js';
5
5
  import { createSharpInstance } from '../utils/sharp.js';
6
6
  import { createStandardHelp } from '../utils/helpFormatter.js';
7
+ import path from 'node:path';
7
8
  export function rotateCommand(imageCmd) {
8
9
  imageCmd
9
10
  .command('rotate <input>')
@@ -43,9 +44,8 @@ export function rotateCommand(imageCmd) {
43
44
  }
44
45
  const spinner = ora('Validating inputs...').start();
45
46
  try {
46
- const { inputFiles, outputDir, errors } = validatePaths(input, options.output, {
47
- allowedExtensions: MediaExtensions.IMAGE,
48
- recursive: true,
47
+ const { inputFiles, outputPath, errors } = validatePaths(input, options.output, {
48
+ allowedExtensions: IMAGE_EXTENSIONS,
49
49
  });
50
50
  if (errors.length > 0) {
51
51
  spinner.fail(chalk.red('Validation failed:'));
@@ -56,9 +56,8 @@ export function rotateCommand(imageCmd) {
56
56
  spinner.fail(chalk.red('No valid image files found'));
57
57
  process.exit(1);
58
58
  }
59
- const outputPaths = resolveOutputPaths(inputFiles, outputDir, {
59
+ const outputPaths = resolveOutputPaths(inputFiles, outputPath, {
60
60
  suffix: '-rotated',
61
- preserveStructure: inputFiles.length > 1,
62
61
  });
63
62
  spinner.succeed(chalk.green(`Found ${inputFiles.length} image(s) to process`));
64
63
  if (options.verbose) {
@@ -72,7 +71,7 @@ export function rotateCommand(imageCmd) {
72
71
  console.log(chalk.green(`Would process ${inputFiles.length} image(s):`));
73
72
  inputFiles.forEach((inputFile, index) => {
74
73
  const outputPath = outputPaths.get(inputFile);
75
- console.log(chalk.dim(` ${index + 1}. ${path.basename(inputFile)} → ${path.basename(outputPath)}`));
74
+ console.log(chalk.dim(` ${index + 1}. ${getFileName(inputFile)} → ${getFileName(outputPath)}`));
76
75
  });
77
76
  return;
78
77
  }
@@ -80,7 +79,7 @@ export function rotateCommand(imageCmd) {
80
79
  let failCount = 0;
81
80
  for (const [index, inputFile] of inputFiles.entries()) {
82
81
  const outputPath = outputPaths.get(inputFile);
83
- const fileName = path.basename(inputFile);
82
+ const fileName = getFileName(inputFile);
84
83
  spinner.start(`Processing ${index + 1}/${inputFiles.length}: ${fileName}...`);
85
84
  try {
86
85
  const metadata = await createSharpInstance(inputFile).metadata();
@@ -119,7 +118,6 @@ export function rotateCommand(imageCmd) {
119
118
  if (failCount > 0) {
120
119
  console.log(chalk.red(` ✗ Failed: ${failCount}`));
121
120
  }
122
- console.log(chalk.dim(` Output directory: ${outputDir}`));
123
121
  }
124
122
  catch (error) {
125
123
  spinner.fail(chalk.red('Processing failed'));
@@ -1 +1 @@
1
- {"version":3,"file":"rotate.js","sourceRoot":"","sources":["../../src/commands/rotate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAQ/D,MAAM,UAAU,aAAa,CAAC,QAAiB;IAC7C,QAAQ;SACL,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,uBAAuB,EAAE,yCAAyC,EAAE,UAAU,EAAE,EAAE,CAAC;SAC1F,MAAM,CAAC,sBAAsB,EAAE,iEAAiE,EAAE,aAAa,CAAC;SAChH,MAAM,CAAC,qBAAqB,EAAE,kBAAkB,CAAC;SACjD,MAAM,CAAC,yBAAyB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,EAAE,CAAC;SAClE,MAAM,CAAC,WAAW,EAAE,2CAA2C,CAAC;SAChE,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;SACzC,MAAM,CAAC,QAAQ,EAAE,iCAAiC,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAAsB,EAAE,EAAE;QACtD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,kBAAkB,CAAC;gBACjB,WAAW,EAAE,QAAQ;gBACrB,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,yGAAyG;gBACtH,KAAK,EAAE,CAAC,gBAAgB,EAAE,2BAA2B,EAAE,gDAAgD,CAAC;gBACxG,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,uBAAuB,EAAE,WAAW,EAAE,yCAAyC,EAAE;oBACzF,EAAE,IAAI,EAAE,sBAAsB,EAAE,WAAW,EAAE,yDAAyD,EAAE;oBACxG,EAAE,IAAI,EAAE,qBAAqB,EAAE,WAAW,EAAE,mDAAmD,EAAE;oBACjG,EAAE,IAAI,EAAE,yBAAyB,EAAE,WAAW,EAAE,oCAAoC,EAAE;oBACtF,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,mCAAmC,EAAE;oBACvE,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,sBAAsB,EAAE;iBAC/D;gBACD,QAAQ,EAAE;oBACR,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,gCAAgC,EAAE;oBAC9E,EAAE,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,2BAA2B,EAAE;oBAChF,EAAE,OAAO,EAAE,uBAAuB,EAAE,WAAW,EAAE,8BAA8B,EAAE;oBACjF,EAAE,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,sBAAsB,EAAE;oBAC1E,EAAE,OAAO,EAAE,2CAA2C,EAAE,WAAW,EAAE,8BAA8B,EAAE;iBACtG;gBACD,IAAI,EAAE,CAAC,qCAAqC,EAAE,0CAA0C,CAAC;aAC1F,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;QAEpD,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE;gBAC7E,iBAAiB,EAAE,eAAe,CAAC,KAAK;gBACxC,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAC9C,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,UAAU,EAAE,SAAS,EAAE;gBAC5D,MAAM,EAAE,UAAU;gBAClB,iBAAiB,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC;aACzC,CAAC,CAAC;YAEH,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,UAAU,CAAC,MAAM,sBAAsB,CAAC,CAAC,CAAC;YAE/E,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,KAAK,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,OAAO,CAAC,UAAU,IAAI,aAAa,EAAE,CAAC,CAAC,CAAC;gBAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YAChE,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,4CAA4C,CAAC,CAAC,CAAC;gBACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,iBAAiB,UAAU,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC;gBACzE,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;oBACtC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAW,CAAC,EAAE,CAAC,CAAC,CAAC;gBACxG,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,SAAS,GAAG,CAAC,CAAC;YAElB,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBACtD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAE1C,OAAO,CAAC,KAAK,CAAC,cAAc,KAAK,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,KAAK,CAAC,CAAC;gBAE9E,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACjE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE;wBAC1E,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,aAAa;qBAChD,CAAC,CAAC;oBAEH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;oBACzD,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;wBAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;oBACpD,CAAC;yBAAM,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;wBAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;oBACnD,CAAC;yBAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;wBACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;oBACpD,CAAC;oBAED,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBAElC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;wBACpB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ,eAAe,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACjG,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ,YAAY,CAAC,CAAC,CAAC;oBAC1D,CAAC;oBACD,YAAY,EAAE,CAAC;gBACjB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC,CAAC;oBACjD,IAAI,OAAO,CAAC,OAAO,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;wBAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBACxD,CAAC;oBACD,SAAS,EAAE,CAAC;gBACd,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC,CAAC;YACzD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,SAAS,EAAE,CAAC,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC,CAAC;QAE7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC7C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"rotate.js","sourceRoot":"","sources":["../../src/commands/rotate.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import type { Command } from 'commander';
2
+ export { getFileName } from '../utils/pathValidator.js';
2
3
  export declare function sepiaCommand(imageCmd: Command): void;
3
4
  //# sourceMappingURL=sepia.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sepia.d.ts","sourceRoot":"","sources":["../../src/commands/sepia.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBzC,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CA8JpD"}
1
+ {"version":3,"file":"sepia.d.ts","sourceRoot":"","sources":["../../src/commands/sepia.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIqE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAatK,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CA2JpD"}
@@ -1,7 +1,7 @@
1
1
  import chalk from 'chalk';
2
2
  import ora from 'ora';
3
- import path from 'path';
4
- import { validatePaths, resolveOutputPaths, MediaExtensions } from '../utils/pathValidator.js';
3
+ import { validatePaths, resolveOutputPaths, IMAGE_EXTENSIONS, getFileName } from '../utils/pathValidator.js';
4
+ export { getFileName } from '../utils/pathValidator.js';
5
5
  import { createSharpInstance } from '../utils/sharp.js';
6
6
  import { createStandardHelp } from '../utils/helpFormatter.js';
7
7
  export function sepiaCommand(imageCmd) {
@@ -65,9 +65,8 @@ export function sepiaCommand(imageCmd) {
65
65
  const spinner = ora('Validating inputs...').start();
66
66
  try {
67
67
  const intensity = Math.max(0, Math.min(100, options.intensity || 80)) / 100;
68
- const { inputFiles, outputDir, errors } = validatePaths(input, options.output, {
69
- allowedExtensions: MediaExtensions.IMAGE,
70
- recursive: true,
68
+ const { inputFiles, outputPath, errors } = validatePaths(input, options.output, {
69
+ allowedExtensions: IMAGE_EXTENSIONS,
71
70
  });
72
71
  if (errors.length > 0) {
73
72
  spinner.fail(chalk.red('Validation failed:'));
@@ -78,9 +77,8 @@ export function sepiaCommand(imageCmd) {
78
77
  spinner.fail(chalk.red('No valid image files found'));
79
78
  process.exit(1);
80
79
  }
81
- const outputPaths = resolveOutputPaths(inputFiles, outputDir, {
80
+ const outputPaths = resolveOutputPaths(inputFiles, outputPath, {
82
81
  suffix: '-sepia',
83
- preserveStructure: inputFiles.length > 1,
84
82
  });
85
83
  spinner.succeed(chalk.green(`Found ${inputFiles.length} image(s) to process`));
86
84
  if (options.verbose) {
@@ -92,7 +90,7 @@ export function sepiaCommand(imageCmd) {
92
90
  console.log(chalk.green(`Would process ${inputFiles.length} image(s):`));
93
91
  inputFiles.forEach((inputFile, index) => {
94
92
  const outputPath = outputPaths.get(inputFile);
95
- console.log(chalk.dim(` ${index + 1}. ${path.basename(inputFile)} → ${path.basename(outputPath)}`));
93
+ console.log(chalk.dim(` ${index + 1}. ${getFileName(inputFile)} → ${getFileName(outputPath)}`));
96
94
  });
97
95
  return;
98
96
  }
@@ -100,7 +98,7 @@ export function sepiaCommand(imageCmd) {
100
98
  let failCount = 0;
101
99
  for (const [index, inputFile] of inputFiles.entries()) {
102
100
  const outputPath = outputPaths.get(inputFile);
103
- const fileName = path.basename(inputFile);
101
+ const fileName = getFileName(inputFile);
104
102
  spinner.start(`Processing ${index + 1}/${inputFiles.length}: ${fileName}...`);
105
103
  try {
106
104
  const metadata = await createSharpInstance(inputFile).metadata();
@@ -135,7 +133,6 @@ export function sepiaCommand(imageCmd) {
135
133
  if (failCount > 0) {
136
134
  console.log(chalk.red(` ✗ Failed: ${failCount}`));
137
135
  }
138
- console.log(chalk.dim(` Output directory: ${outputDir}`));
139
136
  }
140
137
  catch (error) {
141
138
  spinner.fail(chalk.red('Processing failed'));
@@ -1 +1 @@
1
- {"version":3,"file":"sepia.js","sourceRoot":"","sources":["../../src/commands/sepia.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sepia.js","sourceRoot":"","sources":["../../src/commands/sepia.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import type { Command } from 'commander';
2
+ export { getFileName } from '../utils/pathValidator.js';
2
3
  export declare function sharpenCommand(imageCmd: Command): void;
3
4
  //# sourceMappingURL=sharpen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sharpen.d.ts","sourceRoot":"","sources":["../../src/commands/sharpen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBzC,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CA+JtD"}
1
+ {"version":3,"file":"sharpen.d.ts","sourceRoot":"","sources":["../../src/commands/sharpen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIqE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAatK,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CA4JtD"}
@@ -1,9 +1,10 @@
1
1
  import chalk from 'chalk';
2
2
  import ora from 'ora';
3
- import path from 'path';
4
- import { validatePaths, resolveOutputPaths, MediaExtensions } from '../utils/pathValidator.js';
3
+ import { validatePaths, resolveOutputPaths, IMAGE_EXTENSIONS, getFileName } from '../utils/pathValidator.js';
4
+ export { getFileName } from '../utils/pathValidator.js';
5
5
  import { createSharpInstance } from '../utils/sharp.js';
6
6
  import { createStandardHelp } from '../utils/helpFormatter.js';
7
+ import path from 'node:path';
7
8
  export function sharpenCommand(imageCmd) {
8
9
  imageCmd
9
10
  .command('sharpen <input>')
@@ -60,9 +61,8 @@ export function sharpenCommand(imageCmd) {
60
61
  }
61
62
  const spinner = ora('Validating inputs...').start();
62
63
  try {
63
- const { inputFiles, outputDir, errors } = validatePaths(input, options.output, {
64
- allowedExtensions: MediaExtensions.IMAGE,
65
- recursive: true,
64
+ const { inputFiles, outputPath, errors } = validatePaths(input, options.output, {
65
+ allowedExtensions: IMAGE_EXTENSIONS,
66
66
  });
67
67
  if (errors.length > 0) {
68
68
  spinner.fail(chalk.red('Validation failed:'));
@@ -73,9 +73,8 @@ export function sharpenCommand(imageCmd) {
73
73
  spinner.fail(chalk.red('No valid image files found'));
74
74
  process.exit(1);
75
75
  }
76
- const outputPaths = resolveOutputPaths(inputFiles, outputDir, {
76
+ const outputPaths = resolveOutputPaths(inputFiles, outputPath, {
77
77
  suffix: '-sharpened',
78
- preserveStructure: inputFiles.length > 1,
79
78
  });
80
79
  spinner.succeed(chalk.green(`Found ${inputFiles.length} image(s) to process`));
81
80
  if (options.verbose) {
@@ -90,7 +89,7 @@ export function sharpenCommand(imageCmd) {
90
89
  console.log(chalk.green(`Would process ${inputFiles.length} image(s):`));
91
90
  inputFiles.forEach((inputFile, index) => {
92
91
  const outputPath = outputPaths.get(inputFile);
93
- console.log(chalk.dim(` ${index + 1}. ${path.basename(inputFile)} → ${path.basename(outputPath)}`));
92
+ console.log(chalk.dim(` ${index + 1}. ${getFileName(inputFile)} → ${getFileName(outputPath)}`));
94
93
  });
95
94
  return;
96
95
  }
@@ -98,7 +97,7 @@ export function sharpenCommand(imageCmd) {
98
97
  let failCount = 0;
99
98
  for (const [index, inputFile] of inputFiles.entries()) {
100
99
  const outputPath = outputPaths.get(inputFile);
101
- const fileName = path.basename(inputFile);
100
+ const fileName = getFileName(inputFile);
102
101
  spinner.start(`Processing ${index + 1}/${inputFiles.length}: ${fileName}...`);
103
102
  try {
104
103
  const metadata = await createSharpInstance(inputFile).metadata();
@@ -139,7 +138,6 @@ export function sharpenCommand(imageCmd) {
139
138
  if (failCount > 0) {
140
139
  console.log(chalk.red(` ✗ Failed: ${failCount}`));
141
140
  }
142
- console.log(chalk.dim(` Output directory: ${outputDir}`));
143
141
  }
144
142
  catch (error) {
145
143
  spinner.fail(chalk.red('Processing failed'));
@@ -1 +1 @@
1
- {"version":3,"file":"sharpen.js","sourceRoot":"","sources":["../../src/commands/sharpen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sharpen.js","sourceRoot":"","sources":["../../src/commands/sharpen.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import type { Command } from 'commander';
2
+ export { getFileName } from '../utils/pathValidator.js';
2
3
  export declare function smartCropCommand(imageCmd: Command): void;
3
4
  //# sourceMappingURL=smart-crop.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"smart-crop.d.ts","sourceRoot":"","sources":["../../src/commands/smart-crop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBzC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAmKxD"}
1
+ {"version":3,"file":"smart-crop.d.ts","sourceRoot":"","sources":["../../src/commands/smart-crop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIqE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAetK,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CA+JxD"}
@@ -1,7 +1,7 @@
1
1
  import chalk from 'chalk';
2
2
  import ora from 'ora';
3
- import path from 'path';
4
- import { validatePaths, resolveOutputPaths, MediaExtensions } from '../utils/pathValidator.js';
3
+ import { validatePaths, resolveOutputPaths, IMAGE_EXTENSIONS, getFileName } from '../utils/pathValidator.js';
4
+ export { getFileName } from '../utils/pathValidator.js';
5
5
  import { createSharpInstance } from '../utils/sharp.js';
6
6
  import { createStandardHelp } from '../utils/helpFormatter.js';
7
7
  export function smartCropCommand(imageCmd) {
@@ -80,9 +80,8 @@ export function smartCropCommand(imageCmd) {
80
80
  const spinner = ora('Analyzing image content...').start();
81
81
  try {
82
82
  // Validate input paths
83
- const { inputFiles, outputDir, errors } = validatePaths(input, options.output, {
84
- allowedExtensions: MediaExtensions.IMAGE,
85
- recursive: true,
83
+ const { inputFiles, outputPath, errors } = validatePaths(input, options.output, {
84
+ allowedExtensions: IMAGE_EXTENSIONS,
86
85
  });
87
86
  if (errors.length > 0) {
88
87
  spinner.fail(chalk.red('Validation failed:'));
@@ -93,9 +92,8 @@ export function smartCropCommand(imageCmd) {
93
92
  spinner.fail(chalk.red('No valid image files found'));
94
93
  process.exit(1);
95
94
  }
96
- const outputPaths = resolveOutputPaths(inputFiles, outputDir, {
95
+ const outputPaths = resolveOutputPaths(inputFiles, outputPath, {
97
96
  suffix: '-cropped',
98
- preserveStructure: inputFiles.length > 1,
99
97
  });
100
98
  let successCount = 0;
101
99
  let failCount = 0;
@@ -104,7 +102,6 @@ export function smartCropCommand(imageCmd) {
104
102
  console.log(chalk.dim(` Found ${inputFiles.length} file(s)`));
105
103
  console.log(chalk.dim(` Target: ${options.width}x${options.height}`));
106
104
  console.log(chalk.dim(` Strategy: ${options.strategy}`));
107
- console.log(chalk.dim(` Output directory: ${outputDir}`));
108
105
  spinner.start('Processing...');
109
106
  }
110
107
  if (options.dryRun) {
@@ -119,7 +116,7 @@ export function smartCropCommand(imageCmd) {
119
116
  // Process all files
120
117
  for (const inputFile of inputFiles) {
121
118
  try {
122
- const fileName = path.basename(inputFile);
119
+ const fileName = getFileName(inputFile);
123
120
  const outputPath = outputPaths.get(inputFile);
124
121
  await createSharpInstance(inputFile)
125
122
  .resize(options.width, options.height, {
@@ -131,7 +128,7 @@ export function smartCropCommand(imageCmd) {
131
128
  successCount++;
132
129
  }
133
130
  catch (error) {
134
- spinner.fail(chalk.red(`✗ Failed: ${path.basename(inputFile)}`));
131
+ spinner.fail(chalk.red(`✗ Failed: ${getFileName(inputFile)}`));
135
132
  if (options.verbose && error instanceof Error) {
136
133
  console.log(chalk.red(` Error: ${error.message}`));
137
134
  }
@@ -143,7 +140,6 @@ export function smartCropCommand(imageCmd) {
143
140
  if (failCount > 0) {
144
141
  console.log(chalk.red(` ✗ Failed: ${failCount}`));
145
142
  }
146
- console.log(chalk.dim(` Output directory: ${outputDir}`));
147
143
  }
148
144
  catch (error) {
149
145
  spinner.fail(chalk.red('Processing failed'));
@@ -1 +1 @@
1
- {"version":3,"file":"smart-crop.js","sourceRoot":"","sources":["../../src/commands/smart-crop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smart-crop.js","sourceRoot":"","sources":["../../src/commands/smart-crop.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import type { Command } from 'commander';
2
+ export { getFileName } from '../utils/pathValidator.js';
2
3
  export declare function splitCommand(imageCmd: Command): void;
3
4
  //# sourceMappingURL=split.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"split.d.ts","sourceRoot":"","sources":["../../src/commands/split.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBzC,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CA6NpD"}
1
+ {"version":3,"file":"split.d.ts","sourceRoot":"","sources":["../../src/commands/split.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKiD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAgBlJ,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CA6NpD"}
@@ -1,10 +1,11 @@
1
1
  import chalk from 'chalk';
2
2
  import ora from 'ora';
3
- import path from 'path';
4
3
  import * as fs from 'fs';
5
- import { validatePaths, MediaExtensions } from '../utils/pathValidator.js';
4
+ import { validatePaths, IMAGE_EXTENSIONS, getFileName } from '../utils/pathValidator.js';
5
+ export { getFileName } from '../utils/pathValidator.js';
6
6
  import { createSharpInstance } from '../utils/sharp.js';
7
7
  import { createStandardHelp } from '../utils/helpFormatter.js';
8
+ import path from 'path';
8
9
  export function splitCommand(imageCmd) {
9
10
  imageCmd
10
11
  .command('split <input>')
@@ -83,9 +84,8 @@ export function splitCommand(imageCmd) {
83
84
  const spinner = ora('Analyzing image...').start();
84
85
  try {
85
86
  // Validate input paths
86
- const { inputFiles, outputDir: baseOutputDir, errors } = validatePaths(input, options.output || './tiles', {
87
- allowedExtensions: MediaExtensions.IMAGE,
88
- recursive: true,
87
+ const { inputFiles, outputPath, errors } = validatePaths(input, options.output || './tiles', {
88
+ allowedExtensions: IMAGE_EXTENSIONS,
89
89
  });
90
90
  if (errors.length > 0) {
91
91
  spinner.fail(chalk.red('Validation failed:'));
@@ -96,6 +96,8 @@ export function splitCommand(imageCmd) {
96
96
  spinner.fail(chalk.red('No valid image files found'));
97
97
  process.exit(1);
98
98
  }
99
+ // Use outputPath or default to ./tiles
100
+ const baseOutputDir = outputPath || './tiles';
99
101
  let successCount = 0;
100
102
  let failCount = 0;
101
103
  // Parse grid dimensions
@@ -123,7 +125,6 @@ export function splitCommand(imageCmd) {
123
125
  spinner.info(chalk.blue('Configuration:'));
124
126
  console.log(chalk.dim(` Found ${inputFiles.length} file(s)`));
125
127
  console.log(chalk.dim(` Grid: ${rows}x${columns} (${totalTiles} tiles per image)`));
126
- console.log(chalk.dim(` Output directory: ${baseOutputDir}`));
127
128
  spinner.start('Processing...');
128
129
  }
129
130
  if (options.dryRun) {
@@ -140,7 +141,7 @@ export function splitCommand(imageCmd) {
140
141
  // Process all files
141
142
  for (const inputFile of inputFiles) {
142
143
  try {
143
- const fileName = path.basename(inputFile);
144
+ const fileName = getFileName(inputFile);
144
145
  const inputPath = path.parse(inputFile);
145
146
  const metadata = await createSharpInstance(inputFile).metadata();
146
147
  if (!metadata.width || !metadata.height) {
@@ -179,7 +180,7 @@ export function splitCommand(imageCmd) {
179
180
  successCount++;
180
181
  }
181
182
  catch (error) {
182
- spinner.fail(chalk.red(`✗ Failed: ${path.basename(inputFile)}`));
183
+ spinner.fail(chalk.red(`✗ Failed: ${getFileName(inputFile)}`));
183
184
  if (options.verbose && error instanceof Error) {
184
185
  console.log(chalk.red(` Error: ${error.message}`));
185
186
  }
@@ -191,7 +192,6 @@ export function splitCommand(imageCmd) {
191
192
  if (failCount > 0) {
192
193
  console.log(chalk.red(` ✗ Failed: ${failCount}`));
193
194
  }
194
- console.log(chalk.dim(` Output directory: ${baseOutputDir}`));
195
195
  console.log(chalk.dim(` Tiles per image: ${totalTiles} (${rows}x${columns})`));
196
196
  }
197
197
  catch (error) {