@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,392 @@
1
+ /**
2
+ * Core types for floimg
3
+ */
4
+ export type MimeType = "image/svg+xml" | "image/png" | "image/jpeg" | "image/webp" | "image/avif";
5
+ /**
6
+ * Represents an image as a buffer with metadata
7
+ */
8
+ export interface ImageBlob {
9
+ /** Raw image bytes */
10
+ bytes: Buffer;
11
+ /** MIME type of the image */
12
+ mime: MimeType;
13
+ /** Image width in pixels (if known) */
14
+ width?: number;
15
+ /** Image height in pixels (if known) */
16
+ height?: number;
17
+ /** Additional metadata about the image */
18
+ metadata?: Record<string, unknown>;
19
+ /** Source identifier (e.g., "svg:gradient", "ai:openai") */
20
+ source?: string;
21
+ }
22
+ /**
23
+ * Result from uploading an image to storage
24
+ */
25
+ export interface UploadResult {
26
+ /** Storage key/path where the image was uploaded */
27
+ key: string;
28
+ /** Public URL to access the image (if available) */
29
+ url?: string;
30
+ /** ETag or version identifier from the storage provider */
31
+ etag?: string;
32
+ /** Additional metadata from the upload operation */
33
+ metadata?: Record<string, unknown>;
34
+ }
35
+ /**
36
+ * Configuration for floimg client
37
+ */
38
+ export interface FloimgConfig {
39
+ /** Directory for caching generated images */
40
+ cacheDir?: string;
41
+ /** Enable verbose logging */
42
+ verbose?: boolean;
43
+ /** Image generator configuration */
44
+ generators?: {
45
+ default?: string;
46
+ [generatorName: string]: unknown;
47
+ };
48
+ /** Transform provider configuration */
49
+ transform?: {
50
+ default?: string;
51
+ [providerName: string]: unknown;
52
+ };
53
+ /** Save provider configuration (filesystem, S3, R2, etc.) */
54
+ save?: {
55
+ default?: string;
56
+ fs?: {
57
+ baseDir?: string;
58
+ chmod?: number;
59
+ };
60
+ s3?: {
61
+ bucket?: string;
62
+ region?: string;
63
+ endpoint?: string;
64
+ credentials?: {
65
+ accessKeyId: string;
66
+ secretAccessKey: string;
67
+ };
68
+ };
69
+ r2?: {
70
+ accountId: string;
71
+ accessKeyId: string;
72
+ secretAccessKey: string;
73
+ };
74
+ [providerName: string]: unknown;
75
+ };
76
+ ai?: {
77
+ default?: string;
78
+ openai?: {
79
+ apiKey: string;
80
+ };
81
+ [providerName: string]: unknown;
82
+ };
83
+ }
84
+ /**
85
+ * JSON Schema-compatible type for a single parameter
86
+ */
87
+ export interface ParameterSchema {
88
+ /** Parameter data type */
89
+ type: "string" | "number" | "boolean" | "object" | "array";
90
+ /** Human-readable title for UI display */
91
+ title?: string;
92
+ /** Description of what the parameter does */
93
+ description?: string;
94
+ /** Default value */
95
+ default?: unknown;
96
+ /** Allowed values (for string enums) */
97
+ enum?: string[];
98
+ /** Minimum value (for numbers) */
99
+ minimum?: number;
100
+ /** Maximum value (for numbers) */
101
+ maximum?: number;
102
+ /** For object types: nested property schemas */
103
+ properties?: Record<string, ParameterSchema>;
104
+ /** For array types: schema of array items */
105
+ items?: ParameterSchema;
106
+ }
107
+ /**
108
+ * Schema for an image generator
109
+ */
110
+ export interface GeneratorSchema {
111
+ /** Generator identifier (matches ImageGenerator.name) */
112
+ name: string;
113
+ /** Human-readable description */
114
+ description?: string;
115
+ /** Category for UI grouping (e.g., 'Basic', 'AI', 'Utility') */
116
+ category?: string;
117
+ /** Parameter definitions */
118
+ parameters: Record<string, ParameterSchema>;
119
+ /** Names of required parameters */
120
+ requiredParameters?: string[];
121
+ }
122
+ /**
123
+ * Schema for a transform operation
124
+ */
125
+ export interface TransformOperationSchema {
126
+ /** Operation name (e.g., 'resize', 'blur') */
127
+ name: string;
128
+ /** Human-readable description */
129
+ description?: string;
130
+ /** Category for UI grouping (e.g., 'Size', 'Filters', 'Text') */
131
+ category?: string;
132
+ /** Parameter definitions */
133
+ parameters: Record<string, ParameterSchema>;
134
+ /** Names of required parameters */
135
+ requiredParameters?: string[];
136
+ }
137
+ /**
138
+ * Schema for a save provider
139
+ */
140
+ export interface SaveProviderSchema {
141
+ /** Provider name (e.g., 'fs', 's3') */
142
+ name: string;
143
+ /** Human-readable description */
144
+ description?: string;
145
+ /** URL protocols this provider handles (e.g., ['s3://', 'r2://']) */
146
+ protocols?: string[];
147
+ }
148
+ /**
149
+ * Complete capabilities of a floimg client
150
+ */
151
+ export interface ClientCapabilities {
152
+ /** Available image generators */
153
+ generators: GeneratorSchema[];
154
+ /** Available transform operations */
155
+ transforms: TransformOperationSchema[];
156
+ /** Available save providers */
157
+ saveProviders: SaveProviderSchema[];
158
+ }
159
+ /**
160
+ * Image generator interface - unified for all generation types
161
+ * (SVG, AI, procedural, etc.)
162
+ */
163
+ export interface ImageGenerator {
164
+ /** Generator name (e.g., 'shapes', 'openai', 'trianglify') */
165
+ name: string;
166
+ /** Schema describing this generator's parameters */
167
+ schema: GeneratorSchema;
168
+ /** Generate an image from parameters */
169
+ generate(params: Record<string, unknown>): Promise<ImageBlob>;
170
+ }
171
+ export type SvgProvider = ImageGenerator;
172
+ export type AiProvider = ImageGenerator;
173
+ /**
174
+ * Image transformation provider interface
175
+ */
176
+ export interface TransformProvider {
177
+ /** Provider name */
178
+ name: string;
179
+ /** Schemas for all operations this provider supports */
180
+ operationSchemas: Record<string, TransformOperationSchema>;
181
+ /** Convert image to a different format */
182
+ convert(input: ImageBlob, to: MimeType): Promise<ImageBlob>;
183
+ /** Resize an image (optional) */
184
+ resize?(input: ImageBlob, opts: {
185
+ width?: number;
186
+ height?: number;
187
+ fit?: "cover" | "contain" | "fill";
188
+ }): Promise<ImageBlob>;
189
+ /** Composite multiple images together (optional) */
190
+ composite?(base: ImageBlob, overlays: Array<{
191
+ blob: ImageBlob;
192
+ left: number;
193
+ top: number;
194
+ }>): Promise<ImageBlob>;
195
+ /** Optimize SVG file size (optional) */
196
+ optimizeSvg?(svg: ImageBlob): Promise<ImageBlob>;
197
+ /** Apply Gaussian blur */
198
+ blur?(input: ImageBlob, sigma?: number): Promise<ImageBlob>;
199
+ /** Sharpen the image */
200
+ sharpen?(input: ImageBlob, opts?: Record<string, unknown>): Promise<ImageBlob>;
201
+ /** Convert to grayscale */
202
+ grayscale?(input: ImageBlob): Promise<ImageBlob>;
203
+ /** Negate/invert colors */
204
+ negate?(input: ImageBlob): Promise<ImageBlob>;
205
+ /** Auto-enhance contrast */
206
+ normalize?(input: ImageBlob): Promise<ImageBlob>;
207
+ /** Apply threshold (pure B&W) */
208
+ threshold?(input: ImageBlob, value?: number): Promise<ImageBlob>;
209
+ /** Adjust brightness, saturation, hue, lightness */
210
+ modulate?(input: ImageBlob, opts: {
211
+ brightness?: number;
212
+ saturation?: number;
213
+ hue?: number;
214
+ lightness?: number;
215
+ }): Promise<ImageBlob>;
216
+ /** Apply color tint overlay */
217
+ tint?(input: ImageBlob, color: string | {
218
+ r: number;
219
+ g: number;
220
+ b: number;
221
+ }): Promise<ImageBlob>;
222
+ /** Add borders to image */
223
+ extend?(input: ImageBlob, opts: {
224
+ top: number;
225
+ bottom: number;
226
+ left: number;
227
+ right: number;
228
+ background?: string | {
229
+ r: number;
230
+ g: number;
231
+ b: number;
232
+ alpha?: number;
233
+ };
234
+ }): Promise<ImageBlob>;
235
+ /** Extract a region from image */
236
+ extract?(input: ImageBlob, region: {
237
+ left: number;
238
+ top: number;
239
+ width: number;
240
+ height: number;
241
+ }): Promise<ImageBlob>;
242
+ /** Round corners of image */
243
+ roundCorners?(input: ImageBlob, radius: number): Promise<ImageBlob>;
244
+ /** Add text to image */
245
+ addText?(input: ImageBlob, options: Record<string, unknown>): Promise<ImageBlob>;
246
+ /** Add caption bar to image */
247
+ addCaption?(input: ImageBlob, options: Record<string, unknown>): Promise<ImageBlob>;
248
+ /** Apply preset filter */
249
+ preset?(input: ImageBlob, presetName: string): Promise<ImageBlob>;
250
+ }
251
+ /**
252
+ * Cloud storage provider interface
253
+ */
254
+ export interface StoreProvider {
255
+ /** Provider name */
256
+ name: string;
257
+ /** Upload an image to storage */
258
+ put(input: {
259
+ key: string;
260
+ blob: ImageBlob;
261
+ headers?: Record<string, string>;
262
+ }): Promise<UploadResult>;
263
+ /** Get public URL for a stored image (optional) */
264
+ getUrl?(key: string): Promise<string>;
265
+ }
266
+ /**
267
+ * Input for generate operation
268
+ */
269
+ export interface GenerateInput {
270
+ /** Generator name (e.g., 'shapes', 'openai', 'trianglify') */
271
+ generator: string;
272
+ /** Generator-specific parameters */
273
+ params?: Record<string, unknown>;
274
+ }
275
+ /**
276
+ * Input for transform operation
277
+ */
278
+ export interface TransformInput {
279
+ /** Image blob to transform */
280
+ blob: ImageBlob;
281
+ /** Operation to perform */
282
+ op: "convert" | "resize" | "composite" | "optimizeSvg" | "blur" | "sharpen" | "grayscale" | "negate" | "normalize" | "threshold" | "modulate" | "tint" | "extend" | "extract" | "roundCorners" | "addText" | "addCaption" | "preset";
283
+ /** Target MIME type (for convert operation) */
284
+ to?: MimeType;
285
+ /** Additional operation parameters */
286
+ params?: Record<string, unknown>;
287
+ }
288
+ /**
289
+ * Input for save operation (supports filesystem and cloud)
290
+ */
291
+ export interface SaveInput {
292
+ /** Destination path or key */
293
+ path: string;
294
+ /** Save provider name (auto-detected if not specified) */
295
+ provider?: string;
296
+ /** Overwrite existing file (default: true) */
297
+ overwrite?: boolean;
298
+ /** File permissions for filesystem (default: 0o644) */
299
+ chmod?: number;
300
+ /** Custom headers for cloud uploads */
301
+ headers?: Record<string, string>;
302
+ /** Custom metadata */
303
+ metadata?: Record<string, unknown>;
304
+ }
305
+ /**
306
+ * Result from saving an image
307
+ */
308
+ export interface SaveResult {
309
+ /** Provider used ('fs', 's3', 'r2', etc.) */
310
+ provider: string;
311
+ /** Location where saved (file path or URL) */
312
+ location: string;
313
+ /** File size in bytes */
314
+ size: number;
315
+ /** MIME type */
316
+ mime: MimeType;
317
+ /** Additional metadata */
318
+ metadata?: Record<string, unknown>;
319
+ }
320
+ /**
321
+ * Save provider interface (unified for filesystem and cloud)
322
+ */
323
+ export interface SaveProvider {
324
+ /** Provider name */
325
+ name: string;
326
+ /** Save an image */
327
+ save(input: {
328
+ blob: ImageBlob;
329
+ path: string;
330
+ [key: string]: unknown;
331
+ }): Promise<SaveResult>;
332
+ }
333
+ /**
334
+ * Input for upload operation
335
+ * @deprecated Use save() instead
336
+ */
337
+ export interface UploadInput {
338
+ /** Image blob to upload */
339
+ blob: ImageBlob;
340
+ /** Storage key/path */
341
+ key: string;
342
+ /** Storage provider name (uses default if not specified) */
343
+ provider?: string;
344
+ /** Custom headers to send with upload */
345
+ headers?: Record<string, string>;
346
+ }
347
+ /**
348
+ * Pipeline step definitions
349
+ */
350
+ export type PipelineStep = {
351
+ kind: "generate";
352
+ generator: string;
353
+ params?: Record<string, unknown>;
354
+ out: string;
355
+ } | {
356
+ kind: "transform";
357
+ op: "convert" | "resize" | "composite" | "optimizeSvg" | "blur" | "sharpen" | "grayscale" | "negate" | "normalize" | "threshold" | "modulate" | "tint" | "extend" | "extract" | "roundCorners" | "addText" | "addCaption" | "preset";
358
+ in: string;
359
+ params: Record<string, unknown>;
360
+ out: string;
361
+ } | {
362
+ kind: "save";
363
+ provider?: string;
364
+ in: string;
365
+ destination: string;
366
+ out?: string;
367
+ };
368
+ /**
369
+ * Pipeline definition
370
+ */
371
+ export interface Pipeline {
372
+ /** Pipeline name */
373
+ name?: string;
374
+ /** Steps to execute */
375
+ steps: PipelineStep[];
376
+ /** Maximum concurrent steps */
377
+ concurrency?: number;
378
+ /** Output directory for intermediate files */
379
+ outDir?: string;
380
+ }
381
+ /**
382
+ * Result from running a pipeline
383
+ */
384
+ export interface PipelineResult {
385
+ /** Step that was executed */
386
+ step: PipelineStep;
387
+ /** Output variable name */
388
+ out: string;
389
+ /** Result value (ImageBlob or SaveResult) */
390
+ value: ImageBlob | SaveResult;
391
+ }
392
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Core types for floimg
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,18 @@
1
+ import { Floimg } from "./core/client.js";
2
+ import type { FloimgConfig } from "./core/types.js";
3
+ export type { FloimgConfig, ImageBlob, MimeType, ImageGenerator, TransformProvider, StoreProvider, GenerateInput, TransformInput, UploadInput, UploadResult, Pipeline, PipelineStep, PipelineResult, ParameterSchema, GeneratorSchema, TransformOperationSchema, SaveProviderSchema, ClientCapabilities, SvgProvider, AiProvider, } from "./core/types.js";
4
+ export { FloimgError, ProviderNotFoundError, ConfigurationError, TransformError, UploadError, GenerationError, } from "./core/errors.js";
5
+ export { ShapesProvider } from "./providers/svg/index.js";
6
+ export { OpenAIGenerator } from "./providers/ai/index.js";
7
+ export type { OpenAIConfig, OpenAIGenerateParams } from "./providers/ai/index.js";
8
+ export { SharpTransformProvider } from "./providers/transform/index.js";
9
+ export { default as FsSaveProvider } from "./providers/save/FsSaveProvider.js";
10
+ export { default as S3SaveProvider } from "./providers/save/S3SaveProvider.js";
11
+ export type { S3SaveProviderConfig } from "./providers/save/S3SaveProvider.js";
12
+ /**
13
+ * Create a floimg client with automatic provider registration
14
+ */
15
+ export declare function createClient(config?: FloimgConfig): Floimg;
16
+ export { Floimg };
17
+ export default createClient;
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAM1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD,YAAY,EACV,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,cAAc,EACd,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,cAAc,EAEd,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAElB,WAAW,EACX,UAAU,GACX,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAGxE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAC/E,YAAY,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,GAAE,YAAiB,GAAG,MAAM,CA+B9D;AAGD,OAAO,EAAE,MAAM,EAAE,CAAC;AAGlB,eAAe,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,49 @@
1
+ import { Floimg } from "./core/client.js";
2
+ import { ShapesProvider } from "./providers/svg/index.js";
3
+ import { OpenAIGenerator } from "./providers/ai/index.js";
4
+ import { SharpTransformProvider } from "./providers/transform/index.js";
5
+ import FsSaveProvider from "./providers/save/FsSaveProvider.js";
6
+ import S3SaveProvider from "./providers/save/S3SaveProvider.js";
7
+ // Export errors
8
+ export { FloimgError, ProviderNotFoundError, ConfigurationError, TransformError, UploadError, GenerationError, } from "./core/errors.js";
9
+ // Export generators and providers
10
+ export { ShapesProvider } from "./providers/svg/index.js";
11
+ export { OpenAIGenerator } from "./providers/ai/index.js";
12
+ export { SharpTransformProvider } from "./providers/transform/index.js";
13
+ // Export save providers
14
+ export { default as FsSaveProvider } from "./providers/save/FsSaveProvider.js";
15
+ export { default as S3SaveProvider } from "./providers/save/S3SaveProvider.js";
16
+ /**
17
+ * Create a floimg client with automatic provider registration
18
+ */
19
+ export function createClient(config = {}) {
20
+ const client = new Floimg(config);
21
+ // Register built-in generators
22
+ client.registerGenerator(new ShapesProvider());
23
+ // Register AI generators if configured
24
+ if (config.ai?.openai) {
25
+ const openaiConfig = config.ai.openai;
26
+ client.registerGenerator(new OpenAIGenerator(openaiConfig));
27
+ }
28
+ // Register built-in transform providers
29
+ client.registerTransformProvider(new SharpTransformProvider());
30
+ // Register save providers
31
+ // Always register filesystem provider (default, zero-config)
32
+ const fsConfig = config.save?.fs || {};
33
+ client.registerSaveProvider(new FsSaveProvider(fsConfig));
34
+ // Register S3 save provider if configured with required fields
35
+ if (config.save?.s3?.bucket && config.save?.s3?.region) {
36
+ client.registerSaveProvider(new S3SaveProvider({
37
+ bucket: config.save.s3.bucket,
38
+ region: config.save.s3.region,
39
+ endpoint: config.save.s3.endpoint,
40
+ credentials: config.save.s3.credentials,
41
+ }));
42
+ }
43
+ return client;
44
+ }
45
+ // Export the client class
46
+ export { Floimg };
47
+ // Default export
48
+ export default createClient;
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,cAAc,MAAM,oCAAoC,CAAC;AAChE,OAAO,cAAc,MAAM,oCAAoC,CAAC;AA6BhE,gBAAgB;AAChB,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,WAAW,EACX,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,kCAAkC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE,wBAAwB;AACxB,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAG/E;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,SAAuB,EAAE;IACpD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IAElC,+BAA+B;IAC/B,MAAM,CAAC,iBAAiB,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;IAE/C,uCAAuC;IACvC,IAAI,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC;QACtB,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,MAAa,CAAC;QAC7C,MAAM,CAAC,iBAAiB,CAAC,IAAI,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,wCAAwC;IACxC,MAAM,CAAC,yBAAyB,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;IAE/D,0BAA0B;IAC1B,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;IACvC,MAAM,CAAC,oBAAoB,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE1D,+DAA+D;IAC/D,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;QACvD,MAAM,CAAC,oBAAoB,CAAC,IAAI,cAAc,CAAC;YAC7C,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM;YAC7B,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM;YAC7B,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ;YACjC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW;SACxC,CAAC,CAAC,CAAC;IACN,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,0BAA0B;AAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,iBAAiB;AACjB,eAAe,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":""}