@teamflojo/floimg 0.4.0 → 0.5.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.
@@ -0,0 +1,20 @@
1
+ import { Command } from "commander";
2
+ /**
3
+ * Shorthand command for generating Mermaid diagrams
4
+ *
5
+ * This command auto-installs @teamflojo/floimg-mermaid if not present.
6
+ *
7
+ * @example
8
+ * ```bash
9
+ * # Inline Mermaid code
10
+ * floimg diagram "graph TD; A-->B; B-->C" -o flow.png
11
+ *
12
+ * # From file
13
+ * floimg diagram --file diagram.mmd -o diagram.png
14
+ *
15
+ * # With theme
16
+ * floimg diagram "sequenceDiagram; A->>B: Hello" --theme dark -o seq.svg
17
+ * ```
18
+ */
19
+ export declare const diagramCommand: Command;
20
+ //# sourceMappingURL=diagram.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/diagram.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,cAAc,SAkFvB,CAAC"}
@@ -0,0 +1,96 @@
1
+ import { readFile, writeFile } from "fs/promises";
2
+ import { Command } from "commander";
3
+ import createClient from "../../index.js";
4
+ import { loadConfig } from "../../config/loader.js";
5
+ import { loadPlugin, showNpxTip } from "../utils/plugin-loader.js";
6
+ /**
7
+ * Shorthand command for generating Mermaid diagrams
8
+ *
9
+ * This command auto-installs @teamflojo/floimg-mermaid if not present.
10
+ *
11
+ * @example
12
+ * ```bash
13
+ * # Inline Mermaid code
14
+ * floimg diagram "graph TD; A-->B; B-->C" -o flow.png
15
+ *
16
+ * # From file
17
+ * floimg diagram --file diagram.mmd -o diagram.png
18
+ *
19
+ * # With theme
20
+ * floimg diagram "sequenceDiagram; A->>B: Hello" --theme dark -o seq.svg
21
+ * ```
22
+ */
23
+ export const diagramCommand = new Command("diagram")
24
+ .description("Generate a Mermaid diagram (auto-installs @teamflojo/floimg-mermaid if needed)")
25
+ .argument("[code]", "Mermaid diagram code (inline)")
26
+ .option("-f, --file <path>", "Read Mermaid code from file (.mmd)")
27
+ .option("-o, --out <path>", "Output file path (default: diagram.png)", "diagram.png")
28
+ .option("-w, --width <pixels>", "Width in pixels", "800")
29
+ .option("-h, --height <pixels>", "Height in pixels")
30
+ .option("--theme <theme>", "Mermaid theme: default, dark, forest, neutral", "default")
31
+ .option("--format <format>", "Output format: png, svg", "png")
32
+ .option("--background <color>", "Background color", "white")
33
+ .option("--no-auto-install", "Don't prompt to install missing plugins")
34
+ .option("--config <path>", "Path to config file")
35
+ .action(async (code, options) => {
36
+ try {
37
+ const config = await loadConfig(options.config);
38
+ const client = createClient(config);
39
+ // Load the Mermaid plugin (auto-installs if needed)
40
+ const mermaidPlugin = await loadPlugin("mermaid", options.autoInstall !== false);
41
+ if (!mermaidPlugin) {
42
+ process.exit(1);
43
+ }
44
+ client.registerGenerator(mermaidPlugin.default());
45
+ // Get Mermaid code from inline argument or file
46
+ let mermaidCode;
47
+ if (options.file) {
48
+ mermaidCode = await readFile(options.file, "utf-8");
49
+ }
50
+ else if (code) {
51
+ // Handle inline code - convert semicolons to newlines for compact syntax
52
+ mermaidCode = code.replace(/;\s*/g, "\n");
53
+ }
54
+ else {
55
+ console.error("Error: Provide Mermaid code as argument or use --file <path>");
56
+ console.error("");
57
+ console.error("Examples:");
58
+ console.error(' floimg diagram "graph TD; A-->B; B-->C" -o flow.png');
59
+ console.error(" floimg diagram --file diagram.mmd -o diagram.png");
60
+ process.exit(1);
61
+ }
62
+ const blob = await client.generate({
63
+ generator: "mermaid",
64
+ params: {
65
+ code: mermaidCode,
66
+ width: parseInt(options.width, 10),
67
+ height: options.height ? parseInt(options.height, 10) : undefined,
68
+ theme: options.theme,
69
+ format: options.format,
70
+ backgroundColor: options.background,
71
+ },
72
+ });
73
+ // Determine output path with correct extension
74
+ let outPath = options.out;
75
+ if (outPath === "diagram.png" && options.format === "svg") {
76
+ outPath = "diagram.svg";
77
+ }
78
+ if (outPath.includes("://")) {
79
+ // Cloud storage
80
+ const result = await client.save(blob, outPath);
81
+ console.log(`✅ Diagram saved to: ${result.location}`);
82
+ }
83
+ else {
84
+ // Local file
85
+ await writeFile(outPath, blob.bytes);
86
+ console.log(`✅ Diagram saved to: ${outPath}`);
87
+ }
88
+ // Show tip for npx users
89
+ showNpxTip();
90
+ }
91
+ catch (error) {
92
+ console.error("Error generating diagram:", error instanceof Error ? error.message : error);
93
+ process.exit(1);
94
+ }
95
+ });
96
+ //# sourceMappingURL=diagram.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram.js","sourceRoot":"","sources":["../../../src/cli/commands/diagram.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { Command } from "commander";
2
+ /**
3
+ * Shorthand command for capturing webpage screenshots
4
+ *
5
+ * This command auto-installs @teamflojo/floimg-screenshot if not present.
6
+ *
7
+ * @example
8
+ * ```bash
9
+ * # Basic screenshot
10
+ * floimg screenshot "https://github.com" -o github.png
11
+ *
12
+ * # Full page capture
13
+ * floimg screenshot "https://docs.floimg.com" --full-page -o docs.png
14
+ *
15
+ * # Custom viewport (mobile)
16
+ * floimg screenshot "https://example.com" --width 375 --height 812 -o mobile.png
17
+ * ```
18
+ */
19
+ export declare const screenshotCommand: Command;
20
+ //# sourceMappingURL=screenshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/screenshot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB,SA4E1B,CAAC"}
@@ -0,0 +1,86 @@
1
+ import { writeFile } from "fs/promises";
2
+ import { Command } from "commander";
3
+ import createClient from "../../index.js";
4
+ import { loadConfig } from "../../config/loader.js";
5
+ import { loadPlugin, showNpxTip } from "../utils/plugin-loader.js";
6
+ /**
7
+ * Shorthand command for capturing webpage screenshots
8
+ *
9
+ * This command auto-installs @teamflojo/floimg-screenshot if not present.
10
+ *
11
+ * @example
12
+ * ```bash
13
+ * # Basic screenshot
14
+ * floimg screenshot "https://github.com" -o github.png
15
+ *
16
+ * # Full page capture
17
+ * floimg screenshot "https://docs.floimg.com" --full-page -o docs.png
18
+ *
19
+ * # Custom viewport (mobile)
20
+ * floimg screenshot "https://example.com" --width 375 --height 812 -o mobile.png
21
+ * ```
22
+ */
23
+ export const screenshotCommand = new Command("screenshot")
24
+ .description("Capture a webpage screenshot (auto-installs @teamflojo/floimg-screenshot if needed)")
25
+ .argument("<url>", "URL of the webpage to capture")
26
+ .option("-o, --out <path>", "Output file path (default: screenshot.png)", "screenshot.png")
27
+ .option("-w, --width <pixels>", "Viewport width in pixels", "1280")
28
+ .option("-h, --height <pixels>", "Viewport height in pixels", "720")
29
+ .option("--full-page", "Capture full scrollable page (default: viewport only)", false)
30
+ .option("-s, --selector <css>", "Screenshot a specific element by CSS selector")
31
+ .option("-f, --format <format>", "Output format: png, jpeg", "png")
32
+ .option("--device-scale <factor>", "Device scale factor (2 for retina)", "1")
33
+ .option("--no-auto-install", "Don't prompt to install missing plugins")
34
+ .option("--config <path>", "Path to config file")
35
+ .action(async (url, options) => {
36
+ try {
37
+ const config = await loadConfig(options.config);
38
+ const client = createClient(config);
39
+ // Load the Screenshot plugin (auto-installs if needed)
40
+ const screenshotPlugin = await loadPlugin("screenshot", options.autoInstall !== false);
41
+ if (!screenshotPlugin) {
42
+ process.exit(1);
43
+ }
44
+ client.registerGenerator(screenshotPlugin.default());
45
+ // Ensure URL has protocol
46
+ let targetUrl = url;
47
+ if (!targetUrl.startsWith("http://") && !targetUrl.startsWith("https://")) {
48
+ targetUrl = `https://${targetUrl}`;
49
+ }
50
+ console.log(`Capturing screenshot of ${targetUrl}...`);
51
+ const blob = await client.generate({
52
+ generator: "screenshot",
53
+ params: {
54
+ url: targetUrl,
55
+ width: parseInt(options.width, 10),
56
+ height: parseInt(options.height, 10),
57
+ fullPage: options.fullPage,
58
+ selector: options.selector,
59
+ format: options.format,
60
+ deviceScaleFactor: parseFloat(options.deviceScale),
61
+ },
62
+ });
63
+ // Determine output path with correct extension
64
+ let outPath = options.out;
65
+ if (outPath === "screenshot.png" && options.format === "jpeg") {
66
+ outPath = "screenshot.jpg";
67
+ }
68
+ if (outPath.includes("://")) {
69
+ // Cloud storage
70
+ const result = await client.save(blob, outPath);
71
+ console.log(`✅ Screenshot saved to: ${result.location}`);
72
+ }
73
+ else {
74
+ // Local file
75
+ await writeFile(outPath, blob.bytes);
76
+ console.log(`✅ Screenshot saved to: ${outPath}`);
77
+ }
78
+ // Show tip for npx users
79
+ showNpxTip();
80
+ }
81
+ catch (error) {
82
+ console.error("Error capturing screenshot:", error instanceof Error ? error.message : error);
83
+ process.exit(1);
84
+ }
85
+ });
86
+ //# sourceMappingURL=screenshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../../src/cli/commands/screenshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEnE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC;KACvD,WAAW,CACV,qFAAqF,CACtF;KACA,QAAQ,CAAC,OAAO,EAAE,+BAA+B,CAAC;KAClD,MAAM,CAAC,kBAAkB,EAAE,4CAA4C,EAAE,gBAAgB,CAAC;KAC1F,MAAM,CAAC,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,CAAC;KAClE,MAAM,CAAC,uBAAuB,EAAE,2BAA2B,EAAE,KAAK,CAAC;KACnE,MAAM,CAAC,aAAa,EAAE,uDAAuD,EAAE,KAAK,CAAC;KACrF,MAAM,CAAC,sBAAsB,EAAE,+CAA+C,CAAC;KAC/E,MAAM,CAAC,uBAAuB,EAAE,0BAA0B,EAAE,KAAK,CAAC;KAClE,MAAM,CAAC,yBAAyB,EAAE,oCAAoC,EAAE,GAAG,CAAC;KAC5E,MAAM,CAAC,mBAAmB,EAAE,yCAAyC,CAAC;KACtE,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;KAChD,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAEpC,uDAAuD;QACvD,MAAM,gBAAgB,GAAG,MAAM,UAAU,CACvC,YAAY,EACZ,OAAO,CAAC,WAAW,KAAK,KAAK,CAC9B,CAAC;QAEF,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,CAAC,iBAAiB,CACtB,gBAAgB,CAAC,OAAO,EAAoD,CAC7E,CAAC;QAEF,0BAA0B;QAC1B,IAAI,SAAS,GAAG,GAAG,CAAC;QACpB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1E,SAAS,GAAG,WAAW,SAAS,EAAE,CAAC;QACrC,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,2BAA2B,SAAS,KAAK,CAAC,CAAC;QAEvD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;YACjC,SAAS,EAAE,YAAY;YACvB,MAAM,EAAE;gBACN,GAAG,EAAE,SAAS;gBACd,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBAClC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,iBAAiB,EAAE,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC;aACnD;SACF,CAAC,CAAC;QAEH,+CAA+C;QAC/C,IAAI,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;QAC1B,IAAI,OAAO,KAAK,gBAAgB,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9D,OAAO,GAAG,gBAAgB,CAAC;QAC7B,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,gBAAgB;YAChB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,aAAa;YACb,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,yBAAyB;QACzB,UAAU,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
package/dist/cli/index.js CHANGED
@@ -14,6 +14,8 @@ import { qrCommand } from "./commands/qr.js";
14
14
  import { resizeCommand } from "./commands/resize.js";
15
15
  import { convertCommand } from "./commands/convert.js";
16
16
  import { chartCommand } from "./commands/chart.js";
17
+ import { diagramCommand } from "./commands/diagram.js";
18
+ import { screenshotCommand } from "./commands/screenshot.js";
17
19
  // Interactive mode
18
20
  import { showInteractiveMenu, shouldShowInteractiveMenu } from "./interactive.js";
19
21
  import { readFile } from "fs/promises";
@@ -53,6 +55,8 @@ program.addCommand(qrCommand);
53
55
  program.addCommand(resizeCommand);
54
56
  program.addCommand(convertCommand);
55
57
  program.addCommand(chartCommand);
58
+ program.addCommand(diagramCommand);
59
+ program.addCommand(screenshotCommand);
56
60
  // Enhanced doctor command
57
61
  program
58
62
  .command("doctor")
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@ export { ShapesProvider } from "./providers/svg/index.js";
7
7
  export { SharpTransformProvider } from "./providers/transform/index.js";
8
8
  export { default as FsSaveProvider } from "./providers/save/FsSaveProvider.js";
9
9
  export { default as S3SaveProvider } from "./providers/save/S3SaveProvider.js";
10
- export type { S3SaveProviderConfig } from "./providers/save/S3SaveProvider.js";
10
+ export type { S3SaveProviderConfig, PresignOptions } from "./providers/save/S3SaveProvider.js";
11
11
  /**
12
12
  * Create a floimg client with automatic provider registration
13
13
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAK1C,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,QAAQ,EACR,UAAU,EACV,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EAEjB,WAAW,EACX,UAAU,GACX,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG1D,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,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;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,MAAM,GAAE,YAAiB,GAAG,MAAM,CA2B9D;AAGD,OAAO,EAAE,MAAM,EAAE,CAAC;AAGlB,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAK1C,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,QAAQ,EACR,UAAU,EACV,cAAc,EACd,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EAEjB,WAAW,EACX,UAAU,GACX,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG1D,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,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,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAE/F;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,YAAY,CAAC,MAAM,GAAE,YAAiB,GAAG,MAAM,CA2B9D;AAGD,OAAO,EAAE,MAAM,EAAE,CAAC;AAGlB,eAAe,YAAY,CAAC"}
@@ -66,27 +66,27 @@ async function loadImage(imageId, imagePath, imageBytes, mime) {
66
66
  }
67
67
  // Detect MIME type from file path
68
68
  function detectMimeFromPath(path) {
69
- const ext = path.split('.').pop()?.toLowerCase();
69
+ const ext = path.split(".").pop()?.toLowerCase();
70
70
  const mimeMap = {
71
- 'svg': 'image/svg+xml',
72
- 'png': 'image/png',
73
- 'jpg': 'image/jpeg',
74
- 'jpeg': 'image/jpeg',
75
- 'webp': 'image/webp',
76
- 'avif': 'image/avif',
71
+ svg: "image/svg+xml",
72
+ png: "image/png",
73
+ jpg: "image/jpeg",
74
+ jpeg: "image/jpeg",
75
+ webp: "image/webp",
76
+ avif: "image/avif",
77
77
  };
78
- return mimeMap[ext || ''] || 'image/png';
78
+ return mimeMap[ext || ""] || "image/png";
79
79
  }
80
80
  // Plugin auto-discovery
81
81
  async function loadAvailablePlugins(client) {
82
82
  const plugins = [];
83
- console.error('[floimg-mcp] Starting plugin discovery...');
83
+ console.error("[floimg-mcp] Starting plugin discovery...");
84
84
  const potentialPlugins = [
85
- { name: 'quickchart', module: '@teamflojo/floimg-quickchart' },
86
- { name: 'd3', module: '@teamflojo/floimg-d3' },
87
- { name: 'mermaid', module: '@teamflojo/floimg-mermaid' },
88
- { name: 'qr', module: '@teamflojo/floimg-qr' },
89
- { name: 'screenshot', module: '@teamflojo/floimg-screenshot' },
85
+ { name: "quickchart", module: "@teamflojo/floimg-quickchart" },
86
+ { name: "d3", module: "@teamflojo/floimg-d3" },
87
+ { name: "mermaid", module: "@teamflojo/floimg-mermaid" },
88
+ { name: "qr", module: "@teamflojo/floimg-qr" },
89
+ { name: "screenshot", module: "@teamflojo/floimg-screenshot" },
90
90
  ];
91
91
  for (const { name, module } of potentialPlugins) {
92
92
  try {
@@ -96,9 +96,7 @@ async function loadAvailablePlugins(client) {
96
96
  console.error(`[floimg-mcp] ⚠ ${module} has no default export`);
97
97
  continue;
98
98
  }
99
- const generator = typeof plugin.default === 'function'
100
- ? plugin.default()
101
- : plugin.default;
99
+ const generator = typeof plugin.default === "function" ? plugin.default() : plugin.default;
102
100
  client.registerGenerator(generator);
103
101
  plugins.push(name);
104
102
  console.error(`[floimg-mcp] ✓ Loaded plugin: ${name}`);
@@ -108,11 +106,11 @@ async function loadAvailablePlugins(client) {
108
106
  console.error(`[floimg-mcp] ✗ Failed to load ${module}: ${error.message}`);
109
107
  }
110
108
  }
111
- console.error(`[floimg-mcp] Plugin discovery complete. Loaded: ${plugins.join(', ') || 'none'}`);
109
+ console.error(`[floimg-mcp] Plugin discovery complete. Loaded: ${plugins.join(", ") || "none"}`);
112
110
  if (plugins.length === 0) {
113
- console.error('[floimg-mcp] ⚠ No generator plugins found!');
114
- console.error('[floimg-mcp] Install with: npm install -g @teamflojo/floimg-quickchart @teamflojo/floimg-mermaid @teamflojo/floimg-qr @teamflojo/floimg-d3 @teamflojo/floimg-screenshot');
115
- console.error('[floimg-mcp] Only built-in generators (shapes, openai) will be available.');
111
+ console.error("[floimg-mcp] ⚠ No generator plugins found!");
112
+ console.error("[floimg-mcp] Install with: npm install -g @teamflojo/floimg-quickchart @teamflojo/floimg-mermaid @teamflojo/floimg-qr @teamflojo/floimg-d3 @teamflojo/floimg-screenshot");
113
+ console.error("[floimg-mcp] Only built-in generators (shapes, openai) will be available.");
116
114
  }
117
115
  return plugins;
118
116
  }
@@ -120,56 +118,88 @@ async function loadAvailablePlugins(client) {
120
118
  function selectGenerator(intent, params) {
121
119
  const intentLower = intent.toLowerCase();
122
120
  // QR codes
123
- if (intentLower.includes('qr') || intentLower.includes('barcode')) {
124
- return 'qr';
121
+ if (intentLower.includes("qr") || intentLower.includes("barcode")) {
122
+ return "qr";
125
123
  }
126
124
  // Screenshots
127
- if (intentLower.includes('screenshot') || intentLower.includes('capture') ||
128
- intentLower.includes('website') || intentLower.includes('webpage') ||
129
- intentLower.includes('url') && params.url) {
130
- return 'screenshot';
125
+ if (intentLower.includes("screenshot") ||
126
+ intentLower.includes("capture") ||
127
+ intentLower.includes("website") ||
128
+ intentLower.includes("webpage") ||
129
+ (intentLower.includes("url") && params.url)) {
130
+ return "screenshot";
131
131
  }
132
132
  // Diagrams (Mermaid)
133
- if (intentLower.includes('flowchart') || intentLower.includes('diagram') ||
134
- intentLower.includes('sequence') || intentLower.includes('gantt') ||
135
- intentLower.includes('class diagram') || intentLower.includes('entity') ||
136
- intentLower.includes('state') || intentLower.includes('mindmap')) {
137
- return 'mermaid';
133
+ if (intentLower.includes("flowchart") ||
134
+ intentLower.includes("diagram") ||
135
+ intentLower.includes("sequence") ||
136
+ intentLower.includes("gantt") ||
137
+ intentLower.includes("class diagram") ||
138
+ intentLower.includes("entity") ||
139
+ intentLower.includes("state") ||
140
+ intentLower.includes("mindmap")) {
141
+ return "mermaid";
138
142
  }
139
143
  // Charts & Data Visualization (check BEFORE AI detection)
140
- if (intentLower.includes('chart') || intentLower.includes('graph') ||
141
- intentLower.includes('plot') || intentLower.includes('visualiz')) {
144
+ if (intentLower.includes("chart") ||
145
+ intentLower.includes("graph") ||
146
+ intentLower.includes("plot") ||
147
+ intentLower.includes("visualiz")) {
142
148
  // D3 for custom/complex visualizations
143
- if (params.render || params.renderString ||
144
- intentLower.includes('custom') || intentLower.includes('d3')) {
145
- return 'd3';
149
+ if (params.render ||
150
+ params.renderString ||
151
+ intentLower.includes("custom") ||
152
+ intentLower.includes("d3")) {
153
+ return "d3";
146
154
  }
147
155
  // QuickChart for standard charts
148
- return 'quickchart';
156
+ return "quickchart";
149
157
  }
150
158
  // AI Image Generation - IMPROVED: Better keyword detection
151
159
  // Check for scene descriptions, subjects, art styles, etc.
152
160
  const aiKeywords = [
153
- 'photo', 'picture', 'illustration', 'painting', 'drawing',
154
- 'scene', 'image of', 'portrait', 'landscape', 'artwork',
155
- 'realistic', 'photorealistic', 'stylized', 'artistic',
156
- 'dall-e', 'ai image', 'ai generated', 'generate image',
157
- 'person', 'people', 'animal', 'building', 'nature',
158
- 'stadium', 'player', 'celebrating', 'sunset', 'dramatic'
161
+ "photo",
162
+ "picture",
163
+ "illustration",
164
+ "painting",
165
+ "drawing",
166
+ "scene",
167
+ "image of",
168
+ "portrait",
169
+ "landscape",
170
+ "artwork",
171
+ "realistic",
172
+ "photorealistic",
173
+ "stylized",
174
+ "artistic",
175
+ "dall-e",
176
+ "ai image",
177
+ "ai generated",
178
+ "generate image",
179
+ "person",
180
+ "people",
181
+ "animal",
182
+ "building",
183
+ "nature",
184
+ "stadium",
185
+ "player",
186
+ "celebrating",
187
+ "sunset",
188
+ "dramatic",
159
189
  ];
160
- const hasAIKeyword = aiKeywords.some(keyword => intentLower.includes(keyword));
190
+ const hasAIKeyword = aiKeywords.some((keyword) => intentLower.includes(keyword));
161
191
  const hasPromptParam = params.prompt !== undefined;
162
192
  // Route to OpenAI if:
163
193
  // 1. Has AI-related keywords OR
164
194
  // 2. Has prompt parameter OR
165
195
  // 3. Intent describes a scene/subject (more than 5 words)
166
196
  const wordCount = intent.trim().split(/\s+/).length;
167
- const isDescriptiveIntent = wordCount > 5 && !intentLower.includes('gradient') && !intentLower.includes('shape');
197
+ const isDescriptiveIntent = wordCount > 5 && !intentLower.includes("gradient") && !intentLower.includes("shape");
168
198
  if (hasAIKeyword || hasPromptParam || isDescriptiveIntent) {
169
- return 'openai';
199
+ return "openai";
170
200
  }
171
201
  // Default to shapes for simple SVG graphics (gradients, basic shapes)
172
- return 'shapes';
202
+ return "shapes";
173
203
  }
174
204
  // Initialize server
175
205
  const server = new Server({
@@ -222,11 +252,14 @@ const TOOLS = [
222
252
  },
223
253
  {
224
254
  name: "transform_image",
225
- description: "Transform an image with filters, effects, text, resizing, and more. " +
226
- "Reference images by: imageId (from generate_image), imagePath (any file), or imageBytes (base64). " +
227
- "Supports: resize, convert, blur, sharpen, grayscale, modulate, tint, roundCorners, " +
228
- "addText, addCaption, and preset filters (vintage, vibrant, dramatic, etc.). " +
229
- "Transformed image is saved to session workspace with new imageId.",
255
+ description: "Apply deterministic, pixel-precise transforms to images. Unlike AI regeneration " +
256
+ "(DALL-E, inpainting), these operations mathematically modify exactly what you specify—" +
257
+ "the rest of your image stays identical. When you say 'resize to 1200x630,' it does " +
258
+ "exactly that, guaranteed. " +
259
+ "Supports: resize, convert, blur, sharpen, grayscale, modulate (brightness/saturation/hue), " +
260
+ "tint, roundCorners, addText, addCaption, and preset filters. " +
261
+ "Reference images by: imageId (from generate_image), imagePath, or imageBytes. " +
262
+ "Each transform creates a new imageId for chaining.",
230
263
  inputSchema: {
231
264
  type: "object",
232
265
  properties: {
@@ -333,10 +366,11 @@ const TOOLS = [
333
366
  },
334
367
  {
335
368
  name: "run_pipeline",
336
- description: "Execute a multi-step image workflow in a single call. " +
337
- "Define a series of generate, transform, and save operations. " +
338
- "Each step automatically receives the output from the previous step. " +
339
- "Perfect for complex workflows like: generate resize add caption upload to cloud.",
369
+ description: "Execute a complete image workflow as one atomic operation. Combine AI generation " +
370
+ "with deterministic transforms and cloud upload in a single call. What typically " +
371
+ "requires 4+ separate tools becomes one pipeline: generate transform → save. " +
372
+ "Each step auto-chains to the next. Session state means you can iterate: run a " +
373
+ "pipeline, then refine with additional transforms without starting over.",
340
374
  inputSchema: {
341
375
  type: "object",
342
376
  properties: {
@@ -450,10 +484,10 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
450
484
  const client = createClient(config);
451
485
  // Load available plugins
452
486
  const availablePlugins = await loadAvailablePlugins(client);
453
- console.error(`[floimg-mcp] Available generators: shapes, openai, ${availablePlugins.join(', ')}`);
487
+ console.error(`[floimg-mcp] Available generators: shapes, openai, ${availablePlugins.join(", ")}`);
454
488
  switch (name) {
455
489
  case "generate_image": {
456
- const { intent, params = {}, saveTo } = args;
490
+ const { intent, params = {}, saveTo, } = args;
457
491
  if (!intent) {
458
492
  throw new Error("'intent' parameter is required");
459
493
  }
@@ -462,13 +496,13 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
462
496
  console.error(`[floimg-mcp] Intent: "${intent}" → Generator: ${generator}`);
463
497
  // Auto-fill params for simple cases to improve UX
464
498
  const finalParams = { ...params };
465
- if (generator === 'openai' && !finalParams.prompt) {
499
+ if (generator === "openai" && !finalParams.prompt) {
466
500
  // For AI images: use intent as prompt
467
501
  finalParams.prompt = intent;
468
- finalParams.size = finalParams.size || '1024x1024';
502
+ finalParams.size = finalParams.size || "1024x1024";
469
503
  console.error(`[floimg-mcp] Auto-filled: prompt="${intent}", size=${finalParams.size}`);
470
504
  }
471
- if (generator === 'qr' && !finalParams.text) {
505
+ if (generator === "qr" && !finalParams.text) {
472
506
  // For QR codes: extract URL from intent
473
507
  const urlMatch = intent.match(/https?:\/\/[^\s]+/);
474
508
  if (urlMatch) {
@@ -482,13 +516,16 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
482
516
  }
483
517
  }
484
518
  // For charts and diagrams: params always required (too complex to extract)
485
- if ((generator === 'quickchart' || generator === 'mermaid' || generator === 'd3') &&
486
- !finalParams.type && !finalParams.data && !finalParams.code && !finalParams.render) {
519
+ if ((generator === "quickchart" || generator === "mermaid" || generator === "d3") &&
520
+ !finalParams.type &&
521
+ !finalParams.data &&
522
+ !finalParams.code &&
523
+ !finalParams.render) {
487
524
  throw new Error(`${generator} requires explicit params. Intent is only for routing. ` +
488
525
  `Please provide structured data: ` +
489
- `${generator === 'quickchart' ? '{ type: "bar", data: {...} }' : ''}` +
490
- `${generator === 'mermaid' ? '{ code: "graph TD; A-->B" }' : ''}` +
491
- `${generator === 'd3' ? '{ render: "...", data: [...] }' : ''}`);
526
+ `${generator === "quickchart" ? '{ type: "bar", data: {...} }' : ""}` +
527
+ `${generator === "mermaid" ? '{ code: "graph TD; A-->B" }' : ""}` +
528
+ `${generator === "d3" ? '{ render: "...", data: [...] }' : ""}`);
492
529
  }
493
530
  const blob = await client.generate({
494
531
  generator,
@@ -543,7 +580,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
543
580
  };
544
581
  }
545
582
  case "transform_image": {
546
- const { imageId, imagePath, imageBytes, mime, operation, params = {}, to, saveTo } = args;
583
+ const { imageId, imagePath, imageBytes, mime, operation, params = {}, to, saveTo, } = args;
547
584
  // Load input image
548
585
  const inputBlob = await loadImage(imageId, imagePath, imageBytes, mime);
549
586
  let resultBlob;
@@ -657,17 +694,17 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
657
694
  const stepType = Object.keys(step)[0]; // 'generate', 'transform', or 'save'
658
695
  const stepParams = step[stepType];
659
696
  console.error(`[floimg-mcp] Pipeline step ${i + 1}/${steps.length}: ${stepType}`);
660
- if (stepType === 'generate') {
697
+ if (stepType === "generate") {
661
698
  // Generate step
662
699
  const { intent, params = {} } = stepParams;
663
700
  const generator = selectGenerator(intent, params);
664
701
  // Auto-fill params for simple cases (same logic as generate_image tool)
665
702
  const finalParams = { ...params };
666
- if (generator === 'openai' && !finalParams.prompt) {
703
+ if (generator === "openai" && !finalParams.prompt) {
667
704
  finalParams.prompt = intent;
668
- finalParams.size = finalParams.size || '1024x1024';
705
+ finalParams.size = finalParams.size || "1024x1024";
669
706
  }
670
- if (generator === 'qr' && !finalParams.text) {
707
+ if (generator === "qr" && !finalParams.text) {
671
708
  const urlMatch = intent.match(/https?:\/\/[^\s]+/);
672
709
  if (urlMatch)
673
710
  finalParams.text = urlMatch[0];
@@ -684,9 +721,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
684
721
  metadata: { width: blob.width, height: blob.height, source: blob.source },
685
722
  });
686
723
  currentImageId = imageId;
687
- results.push({ step: i + 1, type: 'generate', imageId, generator });
724
+ results.push({ step: i + 1, type: "generate", imageId, generator });
688
725
  }
689
- else if (stepType === 'transform') {
726
+ else if (stepType === "transform") {
690
727
  // Transform step - uses current image
691
728
  if (!currentImageId) {
692
729
  throw new Error(`Pipeline step ${i + 1}: transform requires a previous generate step`);
@@ -727,9 +764,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
727
764
  metadata: { width: resultBlob.width, height: resultBlob.height },
728
765
  });
729
766
  currentImageId = newImageId;
730
- results.push({ step: i + 1, type: 'transform', operation, imageId: newImageId });
767
+ results.push({ step: i + 1, type: "transform", operation, imageId: newImageId });
731
768
  }
732
- else if (stepType === 'save') {
769
+ else if (stepType === "save") {
733
770
  // Save step - saves current image
734
771
  if (!currentImageId) {
735
772
  throw new Error(`Pipeline step ${i + 1}: save requires a previous generate/transform step`);
@@ -739,7 +776,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
739
776
  const result = await client.save(inputBlob, provider ? { path: destination, provider } : destination);
740
777
  results.push({
741
778
  step: i + 1,
742
- type: 'save',
779
+ type: "save",
743
780
  location: result.location,
744
781
  provider: result.provider,
745
782
  size: result.size,
@@ -766,7 +803,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
766
803
  };
767
804
  }
768
805
  case "analyze_image": {
769
- const { imageId, imagePath, imageBytes, mime, prompt, provider, outputFormat = "text" } = args;
806
+ const { imageId, imagePath, imageBytes, mime, prompt, provider, outputFormat = "text", } = args;
770
807
  if (!prompt) {
771
808
  throw new Error("'prompt' parameter is required");
772
809
  }
@@ -872,13 +909,13 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
872
909
  // Helper: Get file extension from MIME type
873
910
  function getExtension(mime) {
874
911
  const map = {
875
- 'image/svg+xml': 'svg',
876
- 'image/png': 'png',
877
- 'image/jpeg': 'jpg',
878
- 'image/webp': 'webp',
879
- 'image/avif': 'avif',
912
+ "image/svg+xml": "svg",
913
+ "image/png": "png",
914
+ "image/jpeg": "jpg",
915
+ "image/webp": "webp",
916
+ "image/avif": "avif",
880
917
  };
881
- return map[mime] || 'png';
918
+ return map[mime] || "png";
882
919
  }
883
920
  // Start server with stdio transport
884
921
  async function main() {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,8 @@
1
1
  import type { SaveProvider, ImageBlob, SaveResult } from "../../core/types.js";
2
+ export interface PresignOptions {
3
+ /** Expiry time in seconds (default: 3600 = 1 hour) */
4
+ expiresIn?: number;
5
+ }
2
6
  export interface S3SaveProviderConfig {
3
7
  bucket: string;
4
8
  region: string;
@@ -10,11 +14,19 @@ export interface S3SaveProviderConfig {
10
14
  }
11
15
  /**
12
16
  * S3 save provider - saves images to AWS S3 or S3-compatible storage
17
+ *
18
+ * Supports:
19
+ * - AWS S3
20
+ * - Hetzner Object Storage
21
+ * - Cloudflare R2
22
+ * - Any S3-compatible service
13
23
  */
14
24
  export default class S3SaveProvider implements SaveProvider {
15
25
  name: string;
16
26
  private s3Client;
17
27
  private bucket;
28
+ private region;
29
+ private endpoint?;
18
30
  constructor(config: S3SaveProviderConfig);
19
31
  save(input: {
20
32
  blob: ImageBlob;
@@ -22,5 +34,31 @@ export default class S3SaveProvider implements SaveProvider {
22
34
  headers?: Record<string, string>;
23
35
  metadata?: Record<string, unknown>;
24
36
  }): Promise<SaveResult>;
37
+ /**
38
+ * Generate a presigned URL for temporary access to a private object
39
+ *
40
+ * @param key - The S3 object key (path)
41
+ * @param options - Presign options (expiry time)
42
+ * @returns Presigned URL string
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const provider = new S3SaveProvider({ bucket: 'my-bucket', region: 'us-east-1' });
47
+ * const url = await provider.getPresignedUrl('images/photo.png', { expiresIn: 3600 });
48
+ * // Returns: https://my-bucket.s3.us-east-1.amazonaws.com/images/photo.png?X-Amz-...
49
+ * ```
50
+ */
51
+ getPresignedUrl(key: string, options?: PresignOptions): Promise<string>;
52
+ /**
53
+ * Get the public URL for an object (assumes bucket is publicly readable)
54
+ *
55
+ * @param key - The S3 object key (path)
56
+ * @returns Public URL string
57
+ */
58
+ getPublicUrl(key: string): string;
59
+ /**
60
+ * Get the bucket name
61
+ */
62
+ getBucket(): string;
25
63
  }
26
64
  //# sourceMappingURL=S3SaveProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"S3SaveProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/save/S3SaveProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,YAAY;IACzD,IAAI,SAAQ;IACZ,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,oBAAoB;IASlC,IAAI,CAAC,KAAK,EAAE;QAChB,IAAI,EAAE,SAAS,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,UAAU,CAAC;CA2BxB"}
1
+ {"version":3,"file":"S3SaveProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/save/S3SaveProvider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE/E,MAAM,WAAW,cAAc;IAC7B,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,YAAY;IACzD,IAAI,SAAQ;IACZ,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,CAAS;gBAEd,MAAM,EAAE,oBAAoB;IAYlC,IAAI,CAAC,KAAK,EAAE;QAChB,IAAI,EAAE,SAAS,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,UAAU,CAAC;IA0BvB;;;;;;;;;;;;;OAaG;IACG,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAW7E;;;;;OAKG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAWjC;;OAEG;IACH,SAAS,IAAI,MAAM;CAGpB"}
@@ -1,17 +1,29 @@
1
- import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";
1
+ import { S3Client, PutObjectCommand, GetObjectCommand } from "@aws-sdk/client-s3";
2
+ import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
2
3
  /**
3
4
  * S3 save provider - saves images to AWS S3 or S3-compatible storage
5
+ *
6
+ * Supports:
7
+ * - AWS S3
8
+ * - Hetzner Object Storage
9
+ * - Cloudflare R2
10
+ * - Any S3-compatible service
4
11
  */
5
12
  export default class S3SaveProvider {
6
13
  name = "s3";
7
14
  s3Client;
8
15
  bucket;
16
+ region;
17
+ endpoint;
9
18
  constructor(config) {
10
19
  this.bucket = config.bucket;
20
+ this.region = config.region;
21
+ this.endpoint = config.endpoint;
11
22
  this.s3Client = new S3Client({
12
23
  region: config.region,
13
24
  endpoint: config.endpoint,
14
25
  credentials: config.credentials,
26
+ forcePathStyle: !!config.endpoint, // Required for S3-compatible services
15
27
  });
16
28
  }
17
29
  async save(input) {
@@ -23,9 +35,7 @@ export default class S3SaveProvider {
23
35
  ...(input.headers && { Metadata: input.headers }),
24
36
  });
25
37
  const result = await this.s3Client.send(command);
26
- const url = input.headers?.endpoint
27
- ? `${input.headers.endpoint}/${this.bucket}/${input.path}`
28
- : `https://${this.bucket}.s3.amazonaws.com/${input.path}`;
38
+ const url = this.getPublicUrl(input.path);
29
39
  return {
30
40
  provider: "s3",
31
41
  location: url,
@@ -38,5 +48,49 @@ export default class S3SaveProvider {
38
48
  },
39
49
  };
40
50
  }
51
+ /**
52
+ * Generate a presigned URL for temporary access to a private object
53
+ *
54
+ * @param key - The S3 object key (path)
55
+ * @param options - Presign options (expiry time)
56
+ * @returns Presigned URL string
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * const provider = new S3SaveProvider({ bucket: 'my-bucket', region: 'us-east-1' });
61
+ * const url = await provider.getPresignedUrl('images/photo.png', { expiresIn: 3600 });
62
+ * // Returns: https://my-bucket.s3.us-east-1.amazonaws.com/images/photo.png?X-Amz-...
63
+ * ```
64
+ */
65
+ async getPresignedUrl(key, options) {
66
+ const command = new GetObjectCommand({
67
+ Bucket: this.bucket,
68
+ Key: key,
69
+ });
70
+ const expiresIn = options?.expiresIn ?? 3600; // Default 1 hour
71
+ return getSignedUrl(this.s3Client, command, { expiresIn });
72
+ }
73
+ /**
74
+ * Get the public URL for an object (assumes bucket is publicly readable)
75
+ *
76
+ * @param key - The S3 object key (path)
77
+ * @returns Public URL string
78
+ */
79
+ getPublicUrl(key) {
80
+ if (this.endpoint) {
81
+ // S3-compatible service (Hetzner, R2, etc.)
82
+ // Format: https://endpoint/bucket/key
83
+ return `${this.endpoint}/${this.bucket}/${key}`;
84
+ }
85
+ // AWS S3
86
+ // Format: https://bucket.s3.region.amazonaws.com/key
87
+ return `https://${this.bucket}.s3.${this.region}.amazonaws.com/${key}`;
88
+ }
89
+ /**
90
+ * Get the bucket name
91
+ */
92
+ getBucket() {
93
+ return this.bucket;
94
+ }
41
95
  }
42
96
  //# sourceMappingURL=S3SaveProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"S3SaveProvider.js","sourceRoot":"","sources":["../../../src/providers/save/S3SaveProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAahE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,IAAI,GAAG,IAAI,CAAC;IACJ,QAAQ,CAAW;IACnB,MAAM,CAAS;IAEvB,YAAY,MAA4B;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAKV;QACC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC;YACnC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,KAAK,CAAC,IAAI;YACf,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;YACtB,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;YAC5B,GAAG,CAAE,KAAK,CAAC,OAAO,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;SACnD,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,EAAE,QAAQ;YACjC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE;YAC1D,CAAC,CAAC,WAAW,IAAI,CAAC,MAAM,qBAAqB,KAAK,CAAC,IAAI,EAAE,CAAC;QAE5D,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,GAAG;YACb,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;YAC7B,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;YACrB,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,KAAK,CAAC,IAAI;aAChB;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"S3SaveProvider.js","sourceRoot":"","sources":["../../../src/providers/save/S3SaveProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAkB7D;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,IAAI,GAAG,IAAI,CAAC;IACJ,QAAQ,CAAW;IACnB,MAAM,CAAS;IACf,MAAM,CAAS;IACf,QAAQ,CAAU;IAE1B,YAAY,MAA4B;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,sCAAsC;SAC1E,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAKV;QACC,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC;YACnC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,KAAK,CAAC,IAAI;YACf,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;YACtB,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;YAC5B,GAAG,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;SAClD,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE1C,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,GAAG;YACb,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;YAC7B,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;YACrB,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,EAAE,KAAK,CAAC,IAAI;aAChB;SACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,eAAe,CAAC,GAAW,EAAE,OAAwB;QACzD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC;YACnC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,GAAG;SACT,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,CAAC,iBAAiB;QAE/D,OAAO,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,GAAW;QACtB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,4CAA4C;YAC5C,sCAAsC;YACtC,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QAClD,CAAC;QACD,SAAS;QACT,qDAAqD;QACrD,OAAO,WAAW,IAAI,CAAC,MAAM,OAAO,IAAI,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teamflojo/floimg",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Universal image workflow engine for developers and AI agents",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -56,6 +56,7 @@
56
56
  "homepage": "https://github.com/TeamFlojo/floimg#readme",
57
57
  "dependencies": {
58
58
  "@aws-sdk/client-s3": "^3.709.0",
59
+ "@aws-sdk/s3-request-presigner": "^3.958.0",
59
60
  "@modelcontextprotocol/sdk": "^1.20.0",
60
61
  "@napi-rs/canvas": "^0.1.80",
61
62
  "@resvg/resvg-js": "^2.6.2",