@mediaproc/image 1.0.0 → 1.2.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 (169) hide show
  1. package/README.md +529 -67
  2. package/dist/cli.js +22 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/affine.d.ts +3 -0
  5. package/dist/commands/affine.d.ts.map +1 -0
  6. package/dist/commands/affine.js +182 -0
  7. package/dist/commands/affine.js.map +1 -0
  8. package/dist/commands/auto-enhance.d.ts.map +1 -1
  9. package/dist/commands/auto-enhance.js +74 -49
  10. package/dist/commands/auto-enhance.js.map +1 -1
  11. package/dist/commands/auto-orient.d.ts +3 -0
  12. package/dist/commands/auto-orient.d.ts.map +1 -0
  13. package/dist/commands/auto-orient.js +131 -0
  14. package/dist/commands/auto-orient.js.map +1 -0
  15. package/dist/commands/batch.d.ts.map +1 -1
  16. package/dist/commands/batch.js +17 -34
  17. package/dist/commands/batch.js.map +1 -1
  18. package/dist/commands/blur.d.ts.map +1 -1
  19. package/dist/commands/blur.js +64 -36
  20. package/dist/commands/blur.js.map +1 -1
  21. package/dist/commands/boolean.d.ts +3 -0
  22. package/dist/commands/boolean.d.ts.map +1 -0
  23. package/dist/commands/boolean.js +182 -0
  24. package/dist/commands/boolean.js.map +1 -0
  25. package/dist/commands/border.d.ts.map +1 -1
  26. package/dist/commands/border.js +60 -34
  27. package/dist/commands/border.js.map +1 -1
  28. package/dist/commands/clahe.d.ts.map +1 -1
  29. package/dist/commands/clahe.js +58 -31
  30. package/dist/commands/clahe.js.map +1 -1
  31. package/dist/commands/composite.d.ts.map +1 -1
  32. package/dist/commands/composite.js +52 -26
  33. package/dist/commands/composite.js.map +1 -1
  34. package/dist/commands/convert.d.ts.map +1 -1
  35. package/dist/commands/convert.js +94 -47
  36. package/dist/commands/convert.js.map +1 -1
  37. package/dist/commands/convolve.d.ts.map +1 -1
  38. package/dist/commands/convolve.js +63 -37
  39. package/dist/commands/convolve.js.map +1 -1
  40. package/dist/commands/crop.d.ts.map +1 -1
  41. package/dist/commands/crop.js +73 -48
  42. package/dist/commands/crop.js.map +1 -1
  43. package/dist/commands/dilate.d.ts +3 -0
  44. package/dist/commands/dilate.d.ts.map +1 -0
  45. package/dist/commands/dilate.js +168 -0
  46. package/dist/commands/dilate.js.map +1 -0
  47. package/dist/commands/dominant-color.d.ts.map +1 -1
  48. package/dist/commands/dominant-color.js +154 -89
  49. package/dist/commands/dominant-color.js.map +1 -1
  50. package/dist/commands/erode.d.ts +3 -0
  51. package/dist/commands/erode.d.ts.map +1 -0
  52. package/dist/commands/erode.js +168 -0
  53. package/dist/commands/erode.js.map +1 -0
  54. package/dist/commands/extend.d.ts.map +1 -1
  55. package/dist/commands/extend.js +66 -41
  56. package/dist/commands/extend.js.map +1 -1
  57. package/dist/commands/extract.d.ts.map +1 -1
  58. package/dist/commands/extract.js +75 -45
  59. package/dist/commands/extract.js.map +1 -1
  60. package/dist/commands/flatten.d.ts +3 -0
  61. package/dist/commands/flatten.d.ts.map +1 -0
  62. package/dist/commands/flatten.js +156 -0
  63. package/dist/commands/flatten.js.map +1 -0
  64. package/dist/commands/flip.d.ts.map +1 -1
  65. package/dist/commands/flip.js +78 -43
  66. package/dist/commands/flip.js.map +1 -1
  67. package/dist/commands/flop.d.ts +3 -0
  68. package/dist/commands/flop.d.ts.map +1 -0
  69. package/dist/commands/flop.js +122 -0
  70. package/dist/commands/flop.js.map +1 -0
  71. package/dist/commands/gamma.d.ts.map +1 -1
  72. package/dist/commands/gamma.js +66 -33
  73. package/dist/commands/gamma.js.map +1 -1
  74. package/dist/commands/grayscale.d.ts.map +1 -1
  75. package/dist/commands/grayscale.js +67 -34
  76. package/dist/commands/grayscale.js.map +1 -1
  77. package/dist/commands/grid.d.ts.map +1 -1
  78. package/dist/commands/grid.js +20 -14
  79. package/dist/commands/grid.js.map +1 -1
  80. package/dist/commands/linear.d.ts +3 -0
  81. package/dist/commands/linear.d.ts.map +1 -0
  82. package/dist/commands/linear.js +161 -0
  83. package/dist/commands/linear.js.map +1 -0
  84. package/dist/commands/median.d.ts.map +1 -1
  85. package/dist/commands/median.js +66 -33
  86. package/dist/commands/median.js.map +1 -1
  87. package/dist/commands/metadata-cmd.d.ts.map +1 -1
  88. package/dist/commands/metadata-cmd.js +229 -93
  89. package/dist/commands/metadata-cmd.js.map +1 -1
  90. package/dist/commands/mirror.d.ts.map +1 -1
  91. package/dist/commands/mirror.js +127 -105
  92. package/dist/commands/mirror.js.map +1 -1
  93. package/dist/commands/modulate.d.ts.map +1 -1
  94. package/dist/commands/modulate.js +64 -41
  95. package/dist/commands/modulate.js.map +1 -1
  96. package/dist/commands/negate.d.ts.map +1 -1
  97. package/dist/commands/negate.js +66 -31
  98. package/dist/commands/negate.js.map +1 -1
  99. package/dist/commands/normalize.d.ts.map +1 -1
  100. package/dist/commands/normalize.js +60 -31
  101. package/dist/commands/normalize.js.map +1 -1
  102. package/dist/commands/optimize.d.ts.map +1 -1
  103. package/dist/commands/optimize.js +68 -45
  104. package/dist/commands/optimize.js.map +1 -1
  105. package/dist/commands/palette.d.ts.map +1 -1
  106. package/dist/commands/palette.js +115 -56
  107. package/dist/commands/palette.js.map +1 -1
  108. package/dist/commands/pixelate.d.ts.map +1 -1
  109. package/dist/commands/pixelate.js +63 -35
  110. package/dist/commands/pixelate.js.map +1 -1
  111. package/dist/commands/recomb.d.ts +3 -0
  112. package/dist/commands/recomb.d.ts.map +1 -0
  113. package/dist/commands/recomb.js +176 -0
  114. package/dist/commands/recomb.js.map +1 -0
  115. package/dist/commands/resize.d.ts.map +1 -1
  116. package/dist/commands/resize.js +99 -69
  117. package/dist/commands/resize.js.map +1 -1
  118. package/dist/commands/rotate.d.ts.map +1 -1
  119. package/dist/commands/rotate.js +69 -36
  120. package/dist/commands/rotate.js.map +1 -1
  121. package/dist/commands/sepia.d.ts.map +1 -1
  122. package/dist/commands/sepia.js +67 -34
  123. package/dist/commands/sepia.js.map +1 -1
  124. package/dist/commands/sharpen.d.ts.map +1 -1
  125. package/dist/commands/sharpen.js +71 -38
  126. package/dist/commands/sharpen.js.map +1 -1
  127. package/dist/commands/smart-crop.d.ts.map +1 -1
  128. package/dist/commands/smart-crop.js +50 -27
  129. package/dist/commands/smart-crop.js.map +1 -1
  130. package/dist/commands/split.d.ts.map +1 -1
  131. package/dist/commands/split.js +79 -47
  132. package/dist/commands/split.js.map +1 -1
  133. package/dist/commands/stack.d.ts.map +1 -1
  134. package/dist/commands/stack.js +19 -3
  135. package/dist/commands/stack.js.map +1 -1
  136. package/dist/commands/stats.d.ts.map +1 -1
  137. package/dist/commands/stats.js +159 -97
  138. package/dist/commands/stats.js.map +1 -1
  139. package/dist/commands/threshold.d.ts +3 -0
  140. package/dist/commands/threshold.d.ts.map +1 -0
  141. package/dist/commands/threshold.js +152 -0
  142. package/dist/commands/threshold.js.map +1 -0
  143. package/dist/commands/thumbnail.d.ts.map +1 -1
  144. package/dist/commands/thumbnail.js +70 -36
  145. package/dist/commands/thumbnail.js.map +1 -1
  146. package/dist/commands/tint.d.ts.map +1 -1
  147. package/dist/commands/tint.js +66 -32
  148. package/dist/commands/tint.js.map +1 -1
  149. package/dist/commands/trim.d.ts.map +1 -1
  150. package/dist/commands/trim.js +60 -34
  151. package/dist/commands/trim.js.map +1 -1
  152. package/dist/commands/unflatten.d.ts +3 -0
  153. package/dist/commands/unflatten.d.ts.map +1 -0
  154. package/dist/commands/unflatten.js +132 -0
  155. package/dist/commands/unflatten.js.map +1 -0
  156. package/dist/commands/vignette.d.ts.map +1 -1
  157. package/dist/commands/vignette.js +69 -50
  158. package/dist/commands/vignette.js.map +1 -1
  159. package/dist/commands/watermark.d.ts.map +1 -1
  160. package/dist/commands/watermark.js +81 -57
  161. package/dist/commands/watermark.js.map +1 -1
  162. package/dist/register.d.ts.map +1 -1
  163. package/dist/register.js +22 -0
  164. package/dist/register.js.map +1 -1
  165. package/dist/utils/pathValidator.d.ts +74 -0
  166. package/dist/utils/pathValidator.d.ts.map +1 -0
  167. package/dist/utils/pathValidator.js +208 -0
  168. package/dist/utils/pathValidator.js.map +1 -0
  169. package/package.json +12 -5
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,MAAM,CAAC,MAAM,IAAI,GAAG,kBAAkB,CAAC;AACvC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,MAAM,UAAU,QAAQ,CAAC,OAAgB;IACvC,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,8CAA8C,CAAC,CAAC;IAE/D,uBAAuB;IACvB,aAAa,CAAC,QAAQ,CAAC,CAAC;IACxB,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtB,aAAa,CAAC,QAAQ,CAAC,CAAC;IACxB,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtB,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtB,aAAa,CAAC,QAAQ,CAAC,CAAC;IACxB,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE3B,oBAAoB;IACpB,cAAc,CAAC,QAAQ,CAAC,CAAC;IACzB,eAAe,CAAC,QAAQ,CAAC,CAAC;IAE1B,oBAAoB;IACpB,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC1B,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvB,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtB,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3B,aAAa,CAAC,QAAQ,CAAC,CAAC;IACxB,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE3B,sBAAsB;IACtB,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtB,cAAc,CAAC,QAAQ,CAAC,CAAC;IACzB,aAAa,CAAC,QAAQ,CAAC,CAAC;IACxB,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvB,eAAe,CAAC,QAAQ,CAAC,CAAC;IAE1B,sBAAsB;IACtB,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3B,cAAc,CAAC,QAAQ,CAAC,CAAC;IACzB,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3B,aAAa,CAAC,QAAQ,CAAC,CAAC;IACxB,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvB,eAAe,CAAC,QAAQ,CAAC,CAAC;IAE1B,sBAAsB;IACtB,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3B,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC7B,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC1B,cAAc,CAAC,QAAQ,CAAC,CAAC;IACzB,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtB,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAE/B,mBAAmB;IACnB,YAAY,CAAC,QAAQ,CAAC,CAAC;IAEvB,qBAAqB;IACrB,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvB,YAAY,CAAC,QAAQ,CAAC,CAAC;IACvB,aAAa,CAAC,QAAQ,CAAC,CAAC;IACxB,eAAe,CAAC,QAAQ,CAAC,CAAC;IAE1B,cAAc;IACd,YAAY,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ export interface PathValidationOptions {
2
+ /**
3
+ * Allowed file extensions (e.g., ['.jpg', '.png'] for images)
4
+ * If not provided, all files are allowed
5
+ */
6
+ allowedExtensions?: string[];
7
+ /**
8
+ * Whether to search directories recursively
9
+ * @default true
10
+ */
11
+ recursive?: boolean;
12
+ /**
13
+ * Maximum depth for recursive directory search
14
+ * @default 10
15
+ */
16
+ maxDepth?: number;
17
+ }
18
+ export interface ValidatedPaths {
19
+ inputFiles: string[];
20
+ outputDir: string;
21
+ errors: string[];
22
+ }
23
+ /**
24
+ * Parse comma-separated input paths and expand them into individual file paths
25
+ * Supports:
26
+ * - Single file: "photo.jpg"
27
+ * - Multiple files: "photo1.jpg,photo2.jpg,photo3.jpg"
28
+ * - Directories: "./photos/" (finds all matching files)
29
+ * - Mixed: "photo.jpg,./photos/,another.jpg"
30
+ */
31
+ export declare function parseInputPaths(inputPath: string, options?: PathValidationOptions): string[];
32
+ /**
33
+ * Find all files in a directory that match the allowed extensions
34
+ */
35
+ export declare function findFilesInDirectory(dirPath: string, options?: PathValidationOptions, currentDepth?: number): string[];
36
+ /**
37
+ * Validate and resolve output path
38
+ * - If outputPath is provided and is a directory, use it
39
+ * - If outputPath is provided and doesn't exist, create it as a directory
40
+ * - If outputPath is not provided, use current working directory
41
+ */
42
+ export declare function validateOutputPath(outputPath?: string): string;
43
+ /**
44
+ * Generate output file paths for a list of input files
45
+ * @param inputFiles - Array of input file paths
46
+ * @param outputDir - Directory where output files should be placed
47
+ * @param suffix - Suffix to add to output filenames (e.g., "-resized")
48
+ * @param newExtension - New extension for output files (e.g., ".webp")
49
+ * @param preserveStructure - Whether to preserve directory structure for nested inputs
50
+ */
51
+ export declare function resolveOutputPaths(inputFiles: string[], outputDir: string, options?: {
52
+ suffix?: string;
53
+ newExtension?: string;
54
+ preserveStructure?: boolean;
55
+ }): Map<string, string>;
56
+ /**
57
+ * Validate paths and return structured result with errors
58
+ * This is a convenience function that combines all validation steps
59
+ */
60
+ export declare function validatePaths(inputPath: string, outputPath: string | undefined, options?: PathValidationOptions): ValidatedPaths;
61
+ /**
62
+ * Common file extension sets for different media types
63
+ * Plugins can use these or define their own
64
+ */
65
+ export declare const MediaExtensions: {
66
+ IMAGE: string[];
67
+ VIDEO: string[];
68
+ AUDIO: string[];
69
+ DOCUMENT: string[];
70
+ THREED: string[];
71
+ ANIMATION: string[];
72
+ ALL: never[];
73
+ };
74
+ //# sourceMappingURL=pathValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathValidator.d.ts","sourceRoot":"","sources":["../../src/utils/pathValidator.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE7B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,qBAA0B,GAClC,MAAM,EAAE,CAoCV;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,qBAA0B,EACnC,YAAY,GAAE,MAAU,GACvB,MAAM,EAAE,CA+BV;AAUD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CA4B9D;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAAE,EACpB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CACxB,GACL,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAmCrB;AA2BD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,GAAE,qBAA0B,GAClC,cAAc,CAqBhB;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;CAQ3B,CAAC"}
@@ -0,0 +1,208 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ /**
4
+ * Parse comma-separated input paths and expand them into individual file paths
5
+ * Supports:
6
+ * - Single file: "photo.jpg"
7
+ * - Multiple files: "photo1.jpg,photo2.jpg,photo3.jpg"
8
+ * - Directories: "./photos/" (finds all matching files)
9
+ * - Mixed: "photo.jpg,./photos/,another.jpg"
10
+ */
11
+ export function parseInputPaths(inputPath, options = {}) {
12
+ const { allowedExtensions, recursive = true, maxDepth = 10 } = options;
13
+ // Split by comma and trim whitespace
14
+ const paths = inputPath.split(',').map(p => p.trim()).filter(p => p.length > 0);
15
+ const allFiles = [];
16
+ for (const p of paths) {
17
+ const resolvedPath = path.resolve(p);
18
+ // Check if path exists
19
+ if (!fs.existsSync(resolvedPath)) {
20
+ continue; // Skip non-existent paths
21
+ }
22
+ const stats = fs.statSync(resolvedPath);
23
+ if (stats.isFile()) {
24
+ // Check if file extension is allowed
25
+ if (!allowedExtensions || isAllowedExtension(resolvedPath, allowedExtensions)) {
26
+ allFiles.push(resolvedPath);
27
+ }
28
+ }
29
+ else if (stats.isDirectory()) {
30
+ // Find all matching files in directory
31
+ const filesInDir = findFilesInDirectory(resolvedPath, {
32
+ allowedExtensions,
33
+ recursive,
34
+ maxDepth,
35
+ });
36
+ allFiles.push(...filesInDir);
37
+ }
38
+ }
39
+ // Remove duplicates
40
+ return [...new Set(allFiles)];
41
+ }
42
+ /**
43
+ * Find all files in a directory that match the allowed extensions
44
+ */
45
+ export function findFilesInDirectory(dirPath, options = {}, currentDepth = 0) {
46
+ const { allowedExtensions, recursive = true, maxDepth = 10 } = options;
47
+ if (currentDepth > maxDepth) {
48
+ return [];
49
+ }
50
+ const files = [];
51
+ try {
52
+ const entries = fs.readdirSync(dirPath, { withFileTypes: true });
53
+ for (const entry of entries) {
54
+ const fullPath = path.join(dirPath, entry.name);
55
+ if (entry.isFile()) {
56
+ // Check if file extension is allowed
57
+ if (!allowedExtensions || isAllowedExtension(fullPath, allowedExtensions)) {
58
+ files.push(fullPath);
59
+ }
60
+ }
61
+ else if (entry.isDirectory() && recursive) {
62
+ // Recursively search subdirectories
63
+ const subFiles = findFilesInDirectory(fullPath, options, currentDepth + 1);
64
+ files.push(...subFiles);
65
+ }
66
+ }
67
+ }
68
+ catch (error) {
69
+ // Ignore errors (e.g., permission denied)
70
+ }
71
+ return files;
72
+ }
73
+ /**
74
+ * Check if a file has an allowed extension
75
+ */
76
+ function isAllowedExtension(filePath, allowedExtensions) {
77
+ const ext = path.extname(filePath).toLowerCase();
78
+ return allowedExtensions.some(allowed => allowed.toLowerCase() === ext);
79
+ }
80
+ /**
81
+ * Validate and resolve output path
82
+ * - If outputPath is provided and is a directory, use it
83
+ * - If outputPath is provided and doesn't exist, create it as a directory
84
+ * - If outputPath is not provided, use current working directory
85
+ */
86
+ export function validateOutputPath(outputPath) {
87
+ if (!outputPath) {
88
+ // Default to current working directory
89
+ return process.cwd();
90
+ }
91
+ const resolvedPath = path.resolve(outputPath);
92
+ // If path exists and is a directory, use it
93
+ if (fs.existsSync(resolvedPath)) {
94
+ const stats = fs.statSync(resolvedPath);
95
+ if (stats.isDirectory()) {
96
+ return resolvedPath;
97
+ }
98
+ else {
99
+ // If it's a file, use its directory
100
+ return path.dirname(resolvedPath);
101
+ }
102
+ }
103
+ // Path doesn't exist - create it as a directory
104
+ try {
105
+ fs.mkdirSync(resolvedPath, { recursive: true });
106
+ return resolvedPath;
107
+ }
108
+ catch (error) {
109
+ // If we can't create the directory, fall back to current directory
110
+ console.warn(`Could not create output directory ${resolvedPath}, using current directory`);
111
+ return process.cwd();
112
+ }
113
+ }
114
+ /**
115
+ * Generate output file paths for a list of input files
116
+ * @param inputFiles - Array of input file paths
117
+ * @param outputDir - Directory where output files should be placed
118
+ * @param suffix - Suffix to add to output filenames (e.g., "-resized")
119
+ * @param newExtension - New extension for output files (e.g., ".webp")
120
+ * @param preserveStructure - Whether to preserve directory structure for nested inputs
121
+ */
122
+ export function resolveOutputPaths(inputFiles, outputDir, options = {}) {
123
+ const { suffix = '', newExtension, preserveStructure = false } = options;
124
+ const outputMap = new Map();
125
+ // Find common base path if preserving structure
126
+ let basePath = '';
127
+ if (preserveStructure && inputFiles.length > 1) {
128
+ basePath = findCommonBasePath(inputFiles);
129
+ }
130
+ for (const inputFile of inputFiles) {
131
+ const inputPath = path.parse(inputFile);
132
+ // Determine output filename
133
+ const ext = newExtension || inputPath.ext;
134
+ const outputFilename = `${inputPath.name}${suffix}${ext}`;
135
+ // Determine output directory
136
+ let finalOutputDir = outputDir;
137
+ if (preserveStructure && basePath) {
138
+ const relativePath = path.relative(basePath, inputPath.dir);
139
+ finalOutputDir = path.join(outputDir, relativePath);
140
+ // Create nested directories if needed
141
+ if (!fs.existsSync(finalOutputDir)) {
142
+ fs.mkdirSync(finalOutputDir, { recursive: true });
143
+ }
144
+ }
145
+ const outputPath = path.join(finalOutputDir, outputFilename);
146
+ outputMap.set(inputFile, outputPath);
147
+ }
148
+ return outputMap;
149
+ }
150
+ /**
151
+ * Find the common base path for a list of file paths
152
+ */
153
+ function findCommonBasePath(files) {
154
+ if (files.length === 0)
155
+ return '';
156
+ if (files.length === 1)
157
+ return path.dirname(files[0]);
158
+ const dirs = files.map(f => path.dirname(f));
159
+ const parts = dirs.map(d => d.split(path.sep));
160
+ const minLength = Math.min(...parts.map(p => p.length));
161
+ const commonParts = [];
162
+ for (let i = 0; i < minLength; i++) {
163
+ const part = parts[0][i];
164
+ if (parts.every(p => p[i] === part)) {
165
+ commonParts.push(part);
166
+ }
167
+ else {
168
+ break;
169
+ }
170
+ }
171
+ return commonParts.join(path.sep) || '/';
172
+ }
173
+ /**
174
+ * Validate paths and return structured result with errors
175
+ * This is a convenience function that combines all validation steps
176
+ */
177
+ export function validatePaths(inputPath, outputPath, options = {}) {
178
+ const errors = [];
179
+ // Parse and validate input paths
180
+ const inputFiles = parseInputPaths(inputPath, options);
181
+ if (inputFiles.length === 0) {
182
+ errors.push(`No valid input files found matching the criteria`);
183
+ if (options.allowedExtensions) {
184
+ errors.push(`Allowed extensions: ${options.allowedExtensions.join(', ')}`);
185
+ }
186
+ }
187
+ // Validate output directory
188
+ const outputDir = validateOutputPath(outputPath);
189
+ return {
190
+ inputFiles,
191
+ outputDir,
192
+ errors,
193
+ };
194
+ }
195
+ /**
196
+ * Common file extension sets for different media types
197
+ * Plugins can use these or define their own
198
+ */
199
+ export const MediaExtensions = {
200
+ IMAGE: ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp', '.tiff', '.tif', '.svg', '.ico', '.heic', '.heif'],
201
+ VIDEO: ['.mp4', '.avi', '.mov', '.mkv', '.flv', '.wmv', '.webm', '.m4v', '.mpg', '.mpeg', '.3gp'],
202
+ AUDIO: ['.mp3', '.wav', '.flac', '.aac', '.ogg', '.m4a', '.wma', '.opus', '.ape', '.alac'],
203
+ DOCUMENT: ['.pdf', '.doc', '.docx', '.txt', '.rtf', '.odt', '.md', '.html', '.xml'],
204
+ THREED: ['.obj', '.fbx', '.gltf', '.glb', '.stl', '.dae', '.3ds', '.blend', '.ply'],
205
+ ANIMATION: ['.gif', '.apng', '.webp', '.mp4'],
206
+ ALL: [], // Empty array means all files are allowed
207
+ };
208
+ //# sourceMappingURL=pathValidator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathValidator.js","sourceRoot":"","sources":["../../src/utils/pathValidator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mediaproc/image",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "description": "Image processing plugin for mediaproc - powered by Sharp",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -38,8 +38,10 @@
38
38
  "dev": "tsx src/cli.ts",
39
39
  "watch": "tsc --watch",
40
40
  "clean": "rm -rf dist",
41
- "prepublishOnly": "pnpm build",
42
- "test": "echo \"No tests yet\""
41
+ "test": "jest --config ../../jest.config.js",
42
+ "test:watch": "jest --config ../../jest.config.js --watch",
43
+ "test:coverage": "jest --config ../../jest.config.js --coverage",
44
+ "prepublishOnly": "pnpm build"
43
45
  },
44
46
  "dependencies": {
45
47
  "chalk": "^5.3.0",
@@ -48,8 +50,13 @@
48
50
  "sharp": "^0.34.5"
49
51
  },
50
52
  "devDependencies": {
53
+ "@jest/globals": "^30.2.0",
54
+ "@types/jest": "^30.0.0",
51
55
  "@types/node": "^25.0.3",
52
- "typescript": "^5.3.3",
53
- "tsx": "^4.7.0"
56
+ "jest": "^30.2.0",
57
+ "ts-jest": "^29.4.6",
58
+ "ts-node": "^10.9.2",
59
+ "tsx": "^4.7.0",
60
+ "typescript": "^5.3.3"
54
61
  }
55
62
  }