@teamflojo/floimg 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cli/commands/config.d.ts +3 -0
  3. package/dist/cli/commands/config.d.ts.map +1 -0
  4. package/dist/cli/commands/config.js +165 -0
  5. package/dist/cli/commands/config.js.map +1 -0
  6. package/dist/cli/commands/filter.d.ts +4 -0
  7. package/dist/cli/commands/filter.d.ts.map +1 -0
  8. package/dist/cli/commands/filter.js +102 -0
  9. package/dist/cli/commands/filter.js.map +1 -0
  10. package/dist/cli/commands/generate.d.ts +3 -0
  11. package/dist/cli/commands/generate.d.ts.map +1 -0
  12. package/dist/cli/commands/generate.js +49 -0
  13. package/dist/cli/commands/generate.js.map +1 -0
  14. package/dist/cli/commands/mcp.d.ts +3 -0
  15. package/dist/cli/commands/mcp.d.ts.map +1 -0
  16. package/dist/cli/commands/mcp.js +88 -0
  17. package/dist/cli/commands/mcp.js.map +1 -0
  18. package/dist/cli/commands/plugins.d.ts +3 -0
  19. package/dist/cli/commands/plugins.d.ts.map +1 -0
  20. package/dist/cli/commands/plugins.js +66 -0
  21. package/dist/cli/commands/plugins.js.map +1 -0
  22. package/dist/cli/commands/run.d.ts +3 -0
  23. package/dist/cli/commands/run.d.ts.map +1 -0
  24. package/dist/cli/commands/run.js +45 -0
  25. package/dist/cli/commands/run.js.map +1 -0
  26. package/dist/cli/commands/save.d.ts +3 -0
  27. package/dist/cli/commands/save.d.ts.map +1 -0
  28. package/dist/cli/commands/save.js +54 -0
  29. package/dist/cli/commands/save.js.map +1 -0
  30. package/dist/cli/commands/text.d.ts +3 -0
  31. package/dist/cli/commands/text.d.ts.map +1 -0
  32. package/dist/cli/commands/text.js +143 -0
  33. package/dist/cli/commands/text.js.map +1 -0
  34. package/dist/cli/commands/transform.d.ts +3 -0
  35. package/dist/cli/commands/transform.d.ts.map +1 -0
  36. package/dist/cli/commands/transform.js +59 -0
  37. package/dist/cli/commands/transform.js.map +1 -0
  38. package/dist/cli/commands/upload.d.ts +3 -0
  39. package/dist/cli/commands/upload.d.ts.map +1 -0
  40. package/dist/cli/commands/upload.js +59 -0
  41. package/dist/cli/commands/upload.js.map +1 -0
  42. package/dist/cli/index.d.ts +3 -0
  43. package/dist/cli/index.d.ts.map +1 -0
  44. package/dist/cli/index.js +139 -0
  45. package/dist/cli/index.js.map +1 -0
  46. package/dist/config/index.d.ts +10 -0
  47. package/dist/config/index.d.ts.map +1 -0
  48. package/dist/config/index.js +38 -0
  49. package/dist/config/index.js.map +1 -0
  50. package/dist/config/loader.d.ts +23 -0
  51. package/dist/config/loader.d.ts.map +1 -0
  52. package/dist/config/loader.js +189 -0
  53. package/dist/config/loader.js.map +1 -0
  54. package/dist/core/client.d.ts +63 -0
  55. package/dist/core/client.d.ts.map +1 -0
  56. package/dist/core/client.js +318 -0
  57. package/dist/core/client.js.map +1 -0
  58. package/dist/core/errors.d.ts +38 -0
  59. package/dist/core/errors.d.ts.map +1 -0
  60. package/dist/core/errors.js +75 -0
  61. package/dist/core/errors.js.map +1 -0
  62. package/dist/core/logger.d.ts +12 -0
  63. package/dist/core/logger.d.ts.map +1 -0
  64. package/dist/core/logger.js +26 -0
  65. package/dist/core/logger.js.map +1 -0
  66. package/dist/core/pipeline-runner.d.ts +64 -0
  67. package/dist/core/pipeline-runner.d.ts.map +1 -0
  68. package/dist/core/pipeline-runner.js +109 -0
  69. package/dist/core/pipeline-runner.js.map +1 -0
  70. package/dist/core/types.d.ts +392 -0
  71. package/dist/core/types.d.ts.map +1 -0
  72. package/dist/core/types.js +5 -0
  73. package/dist/core/types.js.map +1 -0
  74. package/dist/index.d.ts +18 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +49 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/mcp/server.d.ts +3 -0
  79. package/dist/mcp/server.d.ts.map +1 -0
  80. package/dist/mcp/server.js +731 -0
  81. package/dist/mcp/server.js.map +1 -0
  82. package/dist/providers/ai/index.d.ts +3 -0
  83. package/dist/providers/ai/index.d.ts.map +1 -0
  84. package/dist/providers/ai/index.js +2 -0
  85. package/dist/providers/ai/index.js.map +1 -0
  86. package/dist/providers/ai/openai.d.ts +44 -0
  87. package/dist/providers/ai/openai.d.ts.map +1 -0
  88. package/dist/providers/ai/openai.js +133 -0
  89. package/dist/providers/ai/openai.js.map +1 -0
  90. package/dist/providers/save/FsSaveProvider.d.ts +20 -0
  91. package/dist/providers/save/FsSaveProvider.d.ts.map +1 -0
  92. package/dist/providers/save/FsSaveProvider.js +34 -0
  93. package/dist/providers/save/FsSaveProvider.js.map +1 -0
  94. package/dist/providers/save/S3SaveProvider.d.ts +26 -0
  95. package/dist/providers/save/S3SaveProvider.d.ts.map +1 -0
  96. package/dist/providers/save/S3SaveProvider.js +42 -0
  97. package/dist/providers/save/S3SaveProvider.js.map +1 -0
  98. package/dist/providers/store/fs.d.ts +20 -0
  99. package/dist/providers/store/fs.d.ts.map +1 -0
  100. package/dist/providers/store/fs.js +42 -0
  101. package/dist/providers/store/fs.js.map +1 -0
  102. package/dist/providers/store/index.d.ts +3 -0
  103. package/dist/providers/store/index.d.ts.map +1 -0
  104. package/dist/providers/store/index.js +3 -0
  105. package/dist/providers/store/index.js.map +1 -0
  106. package/dist/providers/store/s3.d.ts +62 -0
  107. package/dist/providers/store/s3.d.ts.map +1 -0
  108. package/dist/providers/store/s3.js +92 -0
  109. package/dist/providers/store/s3.js.map +1 -0
  110. package/dist/providers/svg/index.d.ts +2 -0
  111. package/dist/providers/svg/index.d.ts.map +1 -0
  112. package/dist/providers/svg/index.js +2 -0
  113. package/dist/providers/svg/index.js.map +1 -0
  114. package/dist/providers/svg/shapes.d.ts +18 -0
  115. package/dist/providers/svg/shapes.d.ts.map +1 -0
  116. package/dist/providers/svg/shapes.js +161 -0
  117. package/dist/providers/svg/shapes.js.map +1 -0
  118. package/dist/providers/transform/index.d.ts +2 -0
  119. package/dist/providers/transform/index.d.ts.map +1 -0
  120. package/dist/providers/transform/index.js +2 -0
  121. package/dist/providers/transform/index.js.map +1 -0
  122. package/dist/providers/transform/presets.d.ts +44 -0
  123. package/dist/providers/transform/presets.d.ts.map +1 -0
  124. package/dist/providers/transform/presets.js +205 -0
  125. package/dist/providers/transform/presets.js.map +1 -0
  126. package/dist/providers/transform/sharp.d.ts +64 -0
  127. package/dist/providers/transform/sharp.d.ts.map +1 -0
  128. package/dist/providers/transform/sharp.js +732 -0
  129. package/dist/providers/transform/sharp.js.map +1 -0
  130. package/dist/providers/transform/text.d.ts +38 -0
  131. package/dist/providers/transform/text.d.ts.map +1 -0
  132. package/dist/providers/transform/text.js +116 -0
  133. package/dist/providers/transform/text.js.map +1 -0
  134. package/package.json +84 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3.js","sourceRoot":"","sources":["../../../src/providers/store/s3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAmBnD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,UAAU;IACrB,IAAI,CAAS;IACL,MAAM,CAAW;IACjB,MAAM,CAAS;IACf,MAAM,CAAS;IACf,SAAS,CAAU;IAE3B,YAAY,MAAwB;QAClC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QAEjF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,IAAI,CAAC,MAAM,GAAG,IAAI,QAAQ,CAAC;YACzB,MAAM;YACN,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC7B,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;SACpC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAIT;QACC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC;QAE1C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC;gBACnC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,GAAG;gBACR,IAAI,EAAE,IAAI,CAAC,KAAK;gBAChB,WAAW,EAAE,IAAI,CAAC,IAAI;gBACtB,GAAG,OAAO;aACX,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEjD,sBAAsB;YACtB,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;YAExC,OAAO;gBACL,GAAG;gBACH,GAAG;gBACH,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE;oBACR,SAAS,EAAE,QAAQ,CAAC,SAAS;iBAC9B;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,WAAW,CACnB,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACpF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACK,iBAAiB,CAAC,GAAW;QACnC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,6BAA6B;YAC7B,OAAO,IAAI,CAAC,SAAS;iBAClB,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;iBAChC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC;iBAChC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;kBACpB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,4BAA4B;QAC5B,OAAO,WAAW,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;IACzE,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export { ShapesProvider } from "./shapes.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/svg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { ShapesProvider } from "./shapes.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/svg/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { SvgProvider, ImageBlob, GeneratorSchema } from "../../core/types.js";
2
+ /**
3
+ * Schema for the shapes generator
4
+ */
5
+ export declare const shapesSchema: GeneratorSchema;
6
+ /**
7
+ * Simple SVG shapes provider for generating basic graphics
8
+ */
9
+ export declare class ShapesProvider implements SvgProvider {
10
+ name: string;
11
+ schema: GeneratorSchema;
12
+ generate(params: Record<string, unknown>): Promise<ImageBlob>;
13
+ private generateGradient;
14
+ private generateCircle;
15
+ private generateRectangle;
16
+ private generatePattern;
17
+ }
18
+ //# sourceMappingURL=shapes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shapes.d.ts","sourceRoot":"","sources":["../../../src/providers/svg/shapes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGnF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,eA6D1B,CAAC;AAEF;;GAEG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,IAAI,SAAY;IAChB,MAAM,kBAAgB;IAEhB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IA4DnE,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,eAAe;CA2CxB"}
@@ -0,0 +1,161 @@
1
+ import { GenerationError } from "../../core/errors.js";
2
+ /**
3
+ * Schema for the shapes generator
4
+ */
5
+ export const shapesSchema = {
6
+ name: "shapes",
7
+ description: "Generate basic SVG shapes: gradients, circles, rectangles, and patterns",
8
+ category: "Basic",
9
+ parameters: {
10
+ type: {
11
+ type: "string",
12
+ title: "Shape Type",
13
+ description: "Type of shape to generate",
14
+ enum: ["gradient", "circle", "rectangle", "pattern"],
15
+ default: "gradient",
16
+ },
17
+ width: {
18
+ type: "number",
19
+ title: "Width",
20
+ description: "Width in pixels",
21
+ default: 1200,
22
+ minimum: 1,
23
+ maximum: 4096,
24
+ },
25
+ height: {
26
+ type: "number",
27
+ title: "Height",
28
+ description: "Height in pixels",
29
+ default: 630,
30
+ minimum: 1,
31
+ maximum: 4096,
32
+ },
33
+ color1: {
34
+ type: "string",
35
+ title: "Primary Color",
36
+ description: "Primary color (for gradients)",
37
+ default: "#667eea",
38
+ },
39
+ color2: {
40
+ type: "string",
41
+ title: "Secondary Color",
42
+ description: "Secondary color (for gradients)",
43
+ default: "#764ba2",
44
+ },
45
+ fill: {
46
+ type: "string",
47
+ title: "Fill Color",
48
+ description: "Fill color (for circles and rectangles)",
49
+ },
50
+ rx: {
51
+ type: "number",
52
+ title: "Corner Radius",
53
+ description: "Corner radius for rounded rectangles",
54
+ default: 0,
55
+ minimum: 0,
56
+ },
57
+ patternType: {
58
+ type: "string",
59
+ title: "Pattern Type",
60
+ description: "Type of pattern (for pattern shapes)",
61
+ enum: ["dots", "stripes", "grid"],
62
+ default: "dots",
63
+ },
64
+ },
65
+ requiredParameters: [],
66
+ };
67
+ /**
68
+ * Simple SVG shapes provider for generating basic graphics
69
+ */
70
+ export class ShapesProvider {
71
+ name = "shapes";
72
+ schema = shapesSchema;
73
+ async generate(params) {
74
+ const { type = "gradient", width = 1200, height = 630, color1 = "#667eea", color2 = "#764ba2", ...rest } = params;
75
+ let svgContent;
76
+ switch (type) {
77
+ case "gradient":
78
+ svgContent = this.generateGradient(width, height, color1, color2);
79
+ break;
80
+ case "circle":
81
+ svgContent = this.generateCircle(width, height, rest.fill);
82
+ break;
83
+ case "rectangle":
84
+ svgContent = this.generateRectangle(width, height, rest.fill, rest.rx);
85
+ break;
86
+ case "pattern":
87
+ svgContent = this.generatePattern(width, height, rest.patternType);
88
+ break;
89
+ default:
90
+ throw new GenerationError(`Unknown shape type: ${type}`);
91
+ }
92
+ return {
93
+ bytes: Buffer.from(svgContent, "utf-8"),
94
+ mime: "image/svg+xml",
95
+ width: width,
96
+ height: height,
97
+ source: `svg:shapes:${type}`,
98
+ };
99
+ }
100
+ generateGradient(width, height, color1, color2) {
101
+ return `<svg width="${width}" height="${height}" xmlns="http://www.w3.org/2000/svg">
102
+ <defs>
103
+ <linearGradient id="grad" x1="0%" y1="0%" x2="100%" y2="100%">
104
+ <stop offset="0%" style="stop-color:${color1};stop-opacity:1" />
105
+ <stop offset="100%" style="stop-color:${color2};stop-opacity:1" />
106
+ </linearGradient>
107
+ </defs>
108
+ <rect width="${width}" height="${height}" fill="url(#grad)" />
109
+ </svg>`;
110
+ }
111
+ generateCircle(width, height, fill = "#667eea") {
112
+ const radius = Math.min(width, height) / 2 - 10;
113
+ const cx = width / 2;
114
+ const cy = height / 2;
115
+ return `<svg width="${width}" height="${height}" xmlns="http://www.w3.org/2000/svg">
116
+ <circle cx="${cx}" cy="${cy}" r="${radius}" fill="${fill}" />
117
+ </svg>`;
118
+ }
119
+ generateRectangle(width, height, fill = "#764ba2", rx = 0) {
120
+ return `<svg width="${width}" height="${height}" xmlns="http://www.w3.org/2000/svg">
121
+ <rect width="${width}" height="${height}" fill="${fill}" rx="${rx}" />
122
+ </svg>`;
123
+ }
124
+ generatePattern(width, height, patternType = "dots") {
125
+ if (patternType === "dots") {
126
+ return `<svg width="${width}" height="${height}" xmlns="http://www.w3.org/2000/svg">
127
+ <defs>
128
+ <pattern id="dots" x="0" y="0" width="40" height="40" patternUnits="userSpaceOnUse">
129
+ <circle cx="20" cy="20" r="3" fill="#667eea" />
130
+ </pattern>
131
+ </defs>
132
+ <rect width="${width}" height="${height}" fill="#f0f0f0" />
133
+ <rect width="${width}" height="${height}" fill="url(#dots)" />
134
+ </svg>`;
135
+ }
136
+ if (patternType === "stripes") {
137
+ return `<svg width="${width}" height="${height}" xmlns="http://www.w3.org/2000/svg">
138
+ <defs>
139
+ <pattern id="stripes" x="0" y="0" width="20" height="20" patternUnits="userSpaceOnUse">
140
+ <rect width="10" height="20" fill="#667eea" />
141
+ <rect x="10" width="10" height="20" fill="#764ba2" />
142
+ </pattern>
143
+ </defs>
144
+ <rect width="${width}" height="${height}" fill="url(#stripes)" />
145
+ </svg>`;
146
+ }
147
+ if (patternType === "grid") {
148
+ return `<svg width="${width}" height="${height}" xmlns="http://www.w3.org/2000/svg">
149
+ <defs>
150
+ <pattern id="grid" x="0" y="0" width="40" height="40" patternUnits="userSpaceOnUse">
151
+ <path d="M 40 0 L 0 0 0 40" fill="none" stroke="#667eea" stroke-width="1"/>
152
+ </pattern>
153
+ </defs>
154
+ <rect width="${width}" height="${height}" fill="#ffffff" />
155
+ <rect width="${width}" height="${height}" fill="url(#grid)" />
156
+ </svg>`;
157
+ }
158
+ throw new GenerationError(`Unknown pattern type: ${patternType}`);
159
+ }
160
+ }
161
+ //# sourceMappingURL=shapes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shapes.js","sourceRoot":"","sources":["../../../src/providers/svg/shapes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { SharpTransformProvider } from "./sharp.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/transform/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { SharpTransformProvider } from "./sharp.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/transform/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,44 @@
1
+ import type { ImageBlob } from "../../core/types.js";
2
+ /**
3
+ * Preset filters built using Sharp's primitives
4
+ * These methods directly use Sharp to avoid circular dependencies
5
+ */
6
+ export declare class FilterPresets {
7
+ /**
8
+ * Apply vintage/retro filter
9
+ */
10
+ static vintage(input: ImageBlob): Promise<ImageBlob>;
11
+ /**
12
+ * Apply vibrant/saturated filter
13
+ */
14
+ static vibrant(input: ImageBlob): Promise<ImageBlob>;
15
+ /**
16
+ * Apply black and white filter with enhanced contrast
17
+ */
18
+ static blackAndWhite(input: ImageBlob): Promise<ImageBlob>;
19
+ /**
20
+ * Apply dramatic filter (high contrast, high saturation)
21
+ */
22
+ static dramatic(input: ImageBlob): Promise<ImageBlob>;
23
+ /**
24
+ * Apply soft/dreamy filter
25
+ */
26
+ static soft(input: ImageBlob): Promise<ImageBlob>;
27
+ /**
28
+ * Apply cool tone filter (blue tint)
29
+ */
30
+ static cool(input: ImageBlob): Promise<ImageBlob>;
31
+ /**
32
+ * Apply warm tone filter (orange/red tint)
33
+ */
34
+ static warm(input: ImageBlob): Promise<ImageBlob>;
35
+ /**
36
+ * Apply high contrast black and white
37
+ */
38
+ static highContrast(input: ImageBlob): Promise<ImageBlob>;
39
+ /**
40
+ * Get a preset filter by name
41
+ */
42
+ static applyPreset(input: ImageBlob, presetName: string): Promise<ImageBlob>;
43
+ }
44
+ //# sourceMappingURL=presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../../src/providers/transform/presets.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGrD;;;GAGG;AACH,qBAAa,aAAa;IAExB;;OAEG;WACU,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAuB1D;;OAEG;WACU,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAqB1D;;OAEG;WACU,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAsBhE;;OAEG;WACU,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAsB3D;;OAEG;WACU,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAsBvD;;OAEG;WACU,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAqBvD;;OAEG;WACU,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAqBvD;;OAEG;WACU,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAuB/D;;OAEG;WACU,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;CAsBnF"}
@@ -0,0 +1,205 @@
1
+ import sharp from "sharp";
2
+ import { TransformError } from "../../core/errors.js";
3
+ /**
4
+ * Preset filters built using Sharp's primitives
5
+ * These methods directly use Sharp to avoid circular dependencies
6
+ */
7
+ export class FilterPresets {
8
+ /**
9
+ * Apply vintage/retro filter
10
+ */
11
+ static async vintage(input) {
12
+ try {
13
+ // Reduce saturation and brightness, add warm tint
14
+ const modulated = await sharp(input.bytes)
15
+ .modulate({ brightness: 0.9, saturation: 0.7 })
16
+ .tint({ r: 255, g: 240, b: 200 })
17
+ .toBuffer();
18
+ const metadata = await sharp(modulated).metadata();
19
+ return {
20
+ bytes: modulated,
21
+ mime: input.mime,
22
+ width: metadata.width,
23
+ height: metadata.height,
24
+ source: input.source,
25
+ };
26
+ }
27
+ catch (error) {
28
+ throw new TransformError(`Failed to apply vintage filter: ${error instanceof Error ? error.message : String(error)}`);
29
+ }
30
+ }
31
+ /**
32
+ * Apply vibrant/saturated filter
33
+ */
34
+ static async vibrant(input) {
35
+ try {
36
+ const result = await sharp(input.bytes)
37
+ .modulate({ saturation: 1.5, brightness: 1.1 })
38
+ .toBuffer();
39
+ const metadata = await sharp(result).metadata();
40
+ return {
41
+ bytes: result,
42
+ mime: input.mime,
43
+ width: metadata.width,
44
+ height: metadata.height,
45
+ source: input.source,
46
+ };
47
+ }
48
+ catch (error) {
49
+ throw new TransformError(`Failed to apply vibrant filter: ${error instanceof Error ? error.message : String(error)}`);
50
+ }
51
+ }
52
+ /**
53
+ * Apply black and white filter with enhanced contrast
54
+ */
55
+ static async blackAndWhite(input) {
56
+ try {
57
+ const result = await sharp(input.bytes)
58
+ .grayscale()
59
+ .normalize()
60
+ .toBuffer();
61
+ const metadata = await sharp(result).metadata();
62
+ return {
63
+ bytes: result,
64
+ mime: input.mime,
65
+ width: metadata.width,
66
+ height: metadata.height,
67
+ source: input.source,
68
+ };
69
+ }
70
+ catch (error) {
71
+ throw new TransformError(`Failed to apply black and white filter: ${error instanceof Error ? error.message : String(error)}`);
72
+ }
73
+ }
74
+ /**
75
+ * Apply dramatic filter (high contrast, high saturation)
76
+ */
77
+ static async dramatic(input) {
78
+ try {
79
+ const result = await sharp(input.bytes)
80
+ .sharpen()
81
+ .modulate({ saturation: 1.3, brightness: 0.9 })
82
+ .toBuffer();
83
+ const metadata = await sharp(result).metadata();
84
+ return {
85
+ bytes: result,
86
+ mime: input.mime,
87
+ width: metadata.width,
88
+ height: metadata.height,
89
+ source: input.source,
90
+ };
91
+ }
92
+ catch (error) {
93
+ throw new TransformError(`Failed to apply dramatic filter: ${error instanceof Error ? error.message : String(error)}`);
94
+ }
95
+ }
96
+ /**
97
+ * Apply soft/dreamy filter
98
+ */
99
+ static async soft(input) {
100
+ try {
101
+ const result = await sharp(input.bytes)
102
+ .blur(1)
103
+ .modulate({ brightness: 1.1 })
104
+ .toBuffer();
105
+ const metadata = await sharp(result).metadata();
106
+ return {
107
+ bytes: result,
108
+ mime: input.mime,
109
+ width: metadata.width,
110
+ height: metadata.height,
111
+ source: input.source,
112
+ };
113
+ }
114
+ catch (error) {
115
+ throw new TransformError(`Failed to apply soft filter: ${error instanceof Error ? error.message : String(error)}`);
116
+ }
117
+ }
118
+ /**
119
+ * Apply cool tone filter (blue tint)
120
+ */
121
+ static async cool(input) {
122
+ try {
123
+ const result = await sharp(input.bytes)
124
+ .tint({ r: 200, g: 220, b: 255 })
125
+ .toBuffer();
126
+ const metadata = await sharp(result).metadata();
127
+ return {
128
+ bytes: result,
129
+ mime: input.mime,
130
+ width: metadata.width,
131
+ height: metadata.height,
132
+ source: input.source,
133
+ };
134
+ }
135
+ catch (error) {
136
+ throw new TransformError(`Failed to apply cool filter: ${error instanceof Error ? error.message : String(error)}`);
137
+ }
138
+ }
139
+ /**
140
+ * Apply warm tone filter (orange/red tint)
141
+ */
142
+ static async warm(input) {
143
+ try {
144
+ const result = await sharp(input.bytes)
145
+ .tint({ r: 255, g: 220, b: 180 })
146
+ .toBuffer();
147
+ const metadata = await sharp(result).metadata();
148
+ return {
149
+ bytes: result,
150
+ mime: input.mime,
151
+ width: metadata.width,
152
+ height: metadata.height,
153
+ source: input.source,
154
+ };
155
+ }
156
+ catch (error) {
157
+ throw new TransformError(`Failed to apply warm filter: ${error instanceof Error ? error.message : String(error)}`);
158
+ }
159
+ }
160
+ /**
161
+ * Apply high contrast black and white
162
+ */
163
+ static async highContrast(input) {
164
+ try {
165
+ const result = await sharp(input.bytes)
166
+ .grayscale()
167
+ .normalize()
168
+ .sharpen()
169
+ .toBuffer();
170
+ const metadata = await sharp(result).metadata();
171
+ return {
172
+ bytes: result,
173
+ mime: input.mime,
174
+ width: metadata.width,
175
+ height: metadata.height,
176
+ source: input.source,
177
+ };
178
+ }
179
+ catch (error) {
180
+ throw new TransformError(`Failed to apply high contrast filter: ${error instanceof Error ? error.message : String(error)}`);
181
+ }
182
+ }
183
+ /**
184
+ * Get a preset filter by name
185
+ */
186
+ static async applyPreset(input, presetName) {
187
+ const presets = {
188
+ vintage: this.vintage.bind(this),
189
+ vibrant: this.vibrant.bind(this),
190
+ blackAndWhite: this.blackAndWhite.bind(this),
191
+ bw: this.blackAndWhite.bind(this), // Alias
192
+ dramatic: this.dramatic.bind(this),
193
+ soft: this.soft.bind(this),
194
+ cool: this.cool.bind(this),
195
+ warm: this.warm.bind(this),
196
+ highContrast: this.highContrast.bind(this),
197
+ };
198
+ const preset = presets[presetName];
199
+ if (!preset) {
200
+ throw new Error(`Unknown preset: ${presetName}. Available: ${Object.keys(presets).join(", ")}`);
201
+ }
202
+ return preset(input);
203
+ }
204
+ }
205
+ //# sourceMappingURL=presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/providers/transform/presets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import type { TransformProvider, ImageBlob, MimeType, TransformOperationSchema } from "../../core/types.js";
2
+ /**
3
+ * Operation schemas for the Sharp transform provider
4
+ */
5
+ export declare const sharpOperationSchemas: Record<string, TransformOperationSchema>;
6
+ /**
7
+ * Transform provider using Sharp for image manipulation and Resvg for SVG rendering
8
+ */
9
+ export declare class SharpTransformProvider implements TransformProvider {
10
+ name: string;
11
+ operationSchemas: Record<string, TransformOperationSchema>;
12
+ convert(input: ImageBlob, to: MimeType): Promise<ImageBlob>;
13
+ resize(input: ImageBlob, opts: {
14
+ width?: number;
15
+ height?: number;
16
+ fit?: "cover" | "contain" | "fill";
17
+ }): Promise<ImageBlob>;
18
+ composite(base: ImageBlob, overlays: Array<{
19
+ blob: ImageBlob;
20
+ left: number;
21
+ top: number;
22
+ }>): Promise<ImageBlob>;
23
+ optimizeSvg(svg: ImageBlob): Promise<ImageBlob>;
24
+ blur(input: ImageBlob, sigma?: number): Promise<ImageBlob>;
25
+ sharpen(input: ImageBlob, opts?: Record<string, unknown>): Promise<ImageBlob>;
26
+ grayscale(input: ImageBlob): Promise<ImageBlob>;
27
+ negate(input: ImageBlob): Promise<ImageBlob>;
28
+ normalize(input: ImageBlob): Promise<ImageBlob>;
29
+ threshold(input: ImageBlob, value?: number): Promise<ImageBlob>;
30
+ modulate(input: ImageBlob, opts: {
31
+ brightness?: number;
32
+ saturation?: number;
33
+ hue?: number;
34
+ lightness?: number;
35
+ }): Promise<ImageBlob>;
36
+ tint(input: ImageBlob, color: string | {
37
+ r: number;
38
+ g: number;
39
+ b: number;
40
+ }): Promise<ImageBlob>;
41
+ extend(input: ImageBlob, opts: {
42
+ top: number;
43
+ bottom: number;
44
+ left: number;
45
+ right: number;
46
+ background?: string | {
47
+ r: number;
48
+ g: number;
49
+ b: number;
50
+ alpha?: number;
51
+ };
52
+ }): Promise<ImageBlob>;
53
+ extract(input: ImageBlob, region: {
54
+ left: number;
55
+ top: number;
56
+ width: number;
57
+ height: number;
58
+ }): Promise<ImageBlob>;
59
+ roundCorners(input: ImageBlob, radius: number): Promise<ImageBlob>;
60
+ addText(input: ImageBlob, options: Record<string, unknown>): Promise<ImageBlob>;
61
+ addCaption(input: ImageBlob, options: Record<string, unknown>): Promise<ImageBlob>;
62
+ preset(input: ImageBlob, presetName: string): Promise<ImageBlob>;
63
+ }
64
+ //# sourceMappingURL=sharp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sharp.d.ts","sourceRoot":"","sources":["../../../src/providers/transform/sharp.ts"],"names":[],"mappings":"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"}