@teamflojo/floimg 0.6.0 → 0.6.2

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.
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ import { FloImg } from "./core/client.js";
2
2
  import { FluentBuilder, createFluent } from "./core/fluent.js";
3
3
  import type { FloimgConfig } from "./core/types.js";
4
4
  import type { FluentSource } from "./core/fluent.js";
5
- export type { FloimgConfig, ImageBlob, MimeType, ImageGenerator, TransformProvider, StoreProvider, GenerateInput, TransformInput, UploadInput, UploadResult, Pipeline, PipelineStep, PipelineResult, ParameterSchema, GeneratorSchema, TransformOperationSchema, SaveProviderSchema, ClientCapabilities, DataBlob, NodeOutput, VisionProvider, TextProvider, VisionProviderSchema, TextProviderSchema, VisionInput, TextGenerateInput, SvgProvider, AiProvider, } from "./core/types.js";
5
+ export type { FloimgConfig, ImageBlob, MimeType, ImageGenerator, TransformProvider, StoreProvider, GenerateInput, TransformInput, UploadInput, UploadResult, Pipeline, PipelineStep, PipelineResult, ParameterSchema, GeneratorSchema, TransformOperationSchema, SaveProviderSchema, ClientCapabilities, DataBlob, NodeOutput, VisionProvider, TextProvider, VisionProviderSchema, TextProviderSchema, VisionInput, TextGenerateInput, SaveProvider, SaveResult, SvgProvider, AiProvider, } from "./core/types.js";
6
6
  export { isImageBlob, isDataBlob } from "./core/types.js";
7
7
  export { FloimgError, ProviderNotFoundError, ConfigurationError, TransformError, UploadError, GenerationError, } from "./core/errors.js";
8
8
  export { ShapesProvider } from "./providers/svg/index.js";
@@ -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,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,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,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,MAAM;;;CAA+B,CAAC;AAGnD,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,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,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,YAAY,EACZ,UAAU,EAEV,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,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,MAAM;;;CAA+B,CAAC;AAGnD,eAAe,YAAY,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +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,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,cAAc,MAAM,oCAAoC,CAAC;AAChE,OAAO,cAAc,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAuC/D,qBAAqB;AACrB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE1D,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,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;;;;;;;;;;;;;;;;;;;;GAoBG;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,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,CACzB,IAAI,cAAc,CAAC;YACjB,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,CACH,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,0BAA0B;AAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AAGvC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;AAEnD,iBAAiB;AACjB,eAAe,YAAY,CAAC"}
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,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,cAAc,MAAM,oCAAoC,CAAC;AAChE,OAAO,cAAc,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AA0C/D,qBAAqB;AACrB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE1D,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,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;;;;;;;;;;;;;;;;;;;;GAoBG;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,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,CACzB,IAAI,cAAc,CAAC;YACjB,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,CACH,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,0BAA0B;AAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AAGvC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;AAEnD,iBAAiB;AACjB,eAAe,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teamflojo/floimg",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "description": "Universal image workflow engine for developers and AI agents",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,3 +0,0 @@
1
- import { Command } from "commander";
2
- export declare const uploadCommand: Command;
3
- //# sourceMappingURL=upload.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upload.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,aAAa,SAuDtB,CAAC"}
@@ -1,59 +0,0 @@
1
- import { readFile } from "fs/promises";
2
- import { Command } from "commander";
3
- import createClient from "../../index.js";
4
- import { loadConfig, mergeCliArgs } from "../../config/loader.js";
5
- export const uploadCommand = new Command("upload")
6
- .description("Upload an image to cloud storage")
7
- .requiredOption("--in <path>", "Input file path")
8
- .requiredOption("--key <key>", "Storage key/path")
9
- .option("--provider <name>", "Storage provider name (overrides config)")
10
- .option("--bucket <name>", "S3 bucket name (overrides config)")
11
- .option("--region <region>", "S3 region (overrides config)")
12
- .option("--config <path>", "Path to config file")
13
- .action(async (options) => {
14
- try {
15
- let config = await loadConfig(options.config);
16
- // Merge CLI arguments (they have highest priority)
17
- config = mergeCliArgs(config, {
18
- provider: options.provider,
19
- bucket: options.bucket,
20
- region: options.region,
21
- });
22
- const client = createClient(config);
23
- // Read input file
24
- const inputBytes = await readFile(options.in);
25
- // Detect MIME type from file extension
26
- const ext = options.in.split(".").pop()?.toLowerCase();
27
- let mime = "image/png";
28
- if (ext === "svg")
29
- mime = "image/svg+xml";
30
- else if (ext === "jpg" || ext === "jpeg")
31
- mime = "image/jpeg";
32
- else if (ext === "webp")
33
- mime = "image/webp";
34
- else if (ext === "avif")
35
- mime = "image/avif";
36
- const inputBlob = {
37
- bytes: inputBytes,
38
- mime,
39
- };
40
- const result = await client.upload({
41
- blob: inputBlob,
42
- key: options.key,
43
- provider: options.provider,
44
- });
45
- console.log(`Image uploaded successfully!`);
46
- console.log(`Key: ${result.key}`);
47
- if (result.url) {
48
- console.log(`URL: ${result.url}`);
49
- }
50
- if (result.etag) {
51
- console.log(`ETag: ${result.etag}`);
52
- }
53
- }
54
- catch (error) {
55
- console.error("Error uploading image:", error instanceof Error ? error.message : error);
56
- process.exit(1);
57
- }
58
- });
59
- //# sourceMappingURL=upload.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/cli/commands/upload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGlE,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,kCAAkC,CAAC;KAC/C,cAAc,CAAC,aAAa,EAAE,iBAAiB,CAAC;KAChD,cAAc,CAAC,aAAa,EAAE,kBAAkB,CAAC;KACjD,MAAM,CAAC,mBAAmB,EAAE,0CAA0C,CAAC;KACvE,MAAM,CAAC,iBAAiB,EAAE,mCAAmC,CAAC;KAC9D,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,CAAC;KAC3D,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;KAChD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,IAAI,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE9C,mDAAmD;QACnD,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAEpC,kBAAkB;QAClB,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE9C,uCAAuC;QACvC,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC;QACvD,IAAI,IAAI,GAAa,WAAW,CAAC;QACjC,IAAI,GAAG,KAAK,KAAK;YAAE,IAAI,GAAG,eAAe,CAAC;aACrC,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM;YAAE,IAAI,GAAG,YAAY,CAAC;aACzD,IAAI,GAAG,KAAK,MAAM;YAAE,IAAI,GAAG,YAAY,CAAC;aACxC,IAAI,GAAG,KAAK,MAAM;YAAE,IAAI,GAAG,YAAY,CAAC;QAE7C,MAAM,SAAS,GAAG;YAChB,KAAK,EAAE,UAAU;YACjB,IAAI;SACL,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;YACjC,IAAI,EAAE,SAAS;YACf,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAClC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,QAAQ,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1,7 +0,0 @@
1
- export { OpenAIGenerator } from "./openai.js";
2
- export type { OpenAIConfig, OpenAIGenerateParams } from "./openai.js";
3
- export { OpenAIVisionProvider } from "./openai.js";
4
- export type { OpenAIVisionConfig, OpenAIVisionParams } from "./openai.js";
5
- export { OpenAITextProvider } from "./openai.js";
6
- export type { OpenAITextConfig, OpenAITextParams } from "./openai.js";
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ai/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAG1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
@@ -1,7 +0,0 @@
1
- // Image generation
2
- export { OpenAIGenerator } from "./openai.js";
3
- // Vision (image analysis)
4
- export { OpenAIVisionProvider } from "./openai.js";
5
- // Text generation
6
- export { OpenAITextProvider } from "./openai.js";
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/ai/index.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,0BAA0B;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGnD,kBAAkB;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
@@ -1,121 +0,0 @@
1
- import type { ImageGenerator, ImageBlob, DataBlob, GeneratorSchema, VisionProvider, VisionProviderSchema, TextProvider, TextProviderSchema } from "../../core/types.js";
2
- export interface OpenAIConfig {
3
- apiKey?: string;
4
- model?: "dall-e-2" | "dall-e-3";
5
- quality?: "standard" | "hd";
6
- style?: "vivid" | "natural";
7
- }
8
- export interface OpenAIGenerateParams {
9
- prompt: string;
10
- model?: "dall-e-2" | "dall-e-3";
11
- size?: "256x256" | "512x512" | "1024x1024" | "1024x1792" | "1792x1024";
12
- quality?: "standard" | "hd";
13
- style?: "vivid" | "natural";
14
- n?: number;
15
- }
16
- /**
17
- * Schema for the OpenAI generator
18
- */
19
- export declare const openaiSchema: GeneratorSchema;
20
- /**
21
- * OpenAI DALL-E image generator
22
- *
23
- * Generates images using OpenAI's DALL-E models (DALL-E 2 or DALL-E 3).
24
- *
25
- * @example
26
- * ```typescript
27
- * const generator = new OpenAIGenerator({ apiKey: process.env.OPENAI_API_KEY });
28
- * const image = await generator.generate({
29
- * prompt: "A purple gradient background for a presentation slide",
30
- * model: "dall-e-3",
31
- * size: "1792x1024",
32
- * quality: "hd"
33
- * });
34
- * ```
35
- */
36
- export declare class OpenAIGenerator implements ImageGenerator {
37
- readonly name = "openai";
38
- readonly schema: GeneratorSchema;
39
- private client;
40
- private config;
41
- constructor(config?: OpenAIConfig);
42
- generate(params: Record<string, unknown>): Promise<ImageBlob>;
43
- }
44
- export interface OpenAIVisionConfig {
45
- apiKey?: string;
46
- model?: "gpt-4o" | "gpt-4o-mini" | "gpt-4-turbo";
47
- maxTokens?: number;
48
- }
49
- export interface OpenAIVisionParams {
50
- prompt?: string;
51
- outputFormat?: "text" | "json";
52
- maxTokens?: number;
53
- }
54
- /**
55
- * Schema for the OpenAI Vision provider
56
- */
57
- export declare const openaiVisionSchema: VisionProviderSchema;
58
- /**
59
- * OpenAI Vision provider for image analysis using GPT-4V
60
- *
61
- * Analyzes images and returns text or structured JSON descriptions.
62
- *
63
- * @example
64
- * ```typescript
65
- * const vision = new OpenAIVisionProvider({ apiKey: process.env.OPENAI_API_KEY });
66
- * const result = await vision.analyze(imageBlob, {
67
- * prompt: "What objects are in this image?",
68
- * outputFormat: "json"
69
- * });
70
- * ```
71
- */
72
- export declare class OpenAIVisionProvider implements VisionProvider {
73
- readonly name = "openai-vision";
74
- readonly schema: VisionProviderSchema;
75
- private client;
76
- private config;
77
- constructor(config?: OpenAIVisionConfig);
78
- analyze(input: ImageBlob, params: Record<string, unknown>): Promise<DataBlob>;
79
- }
80
- export interface OpenAITextConfig {
81
- apiKey?: string;
82
- model?: "gpt-4o" | "gpt-4o-mini" | "gpt-4-turbo" | "gpt-3.5-turbo";
83
- maxTokens?: number;
84
- temperature?: number;
85
- }
86
- export interface OpenAITextParams {
87
- prompt: string;
88
- systemPrompt?: string;
89
- context?: string;
90
- outputFormat?: "text" | "json";
91
- maxTokens?: number;
92
- temperature?: number;
93
- }
94
- /**
95
- * Schema for the OpenAI Text provider
96
- */
97
- export declare const openaiTextSchema: TextProviderSchema;
98
- /**
99
- * OpenAI Text provider for text generation using GPT models
100
- *
101
- * Generates text for prompts, descriptions, code, and other content.
102
- * Can chain with vision analysis by accepting context from previous steps.
103
- *
104
- * @example
105
- * ```typescript
106
- * const text = new OpenAITextProvider({ apiKey: process.env.OPENAI_API_KEY });
107
- * const result = await text.generate({
108
- * prompt: "Write a haiku about this scene",
109
- * context: "A serene mountain lake at sunset with mist rising",
110
- * });
111
- * ```
112
- */
113
- export declare class OpenAITextProvider implements TextProvider {
114
- readonly name = "openai-text";
115
- readonly schema: TextProviderSchema;
116
- private client;
117
- private config;
118
- constructor(config?: OpenAITextConfig);
119
- generate(params: Record<string, unknown>): Promise<DataBlob>;
120
- }
121
- //# sourceMappingURL=openai.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/providers/ai/openai.ts"],"names":[],"mappings":"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"}
@@ -1,367 +0,0 @@
1
- import OpenAI from "openai";
2
- /**
3
- * Schema for the OpenAI generator
4
- */
5
- export const openaiSchema = {
6
- name: "openai",
7
- description: "Generate images using OpenAI's DALL-E models",
8
- category: "AI",
9
- parameters: {
10
- prompt: {
11
- type: "string",
12
- title: "Prompt",
13
- description: "Describe the image you want to generate",
14
- },
15
- model: {
16
- type: "string",
17
- title: "Model",
18
- description: "DALL-E model to use",
19
- enum: ["dall-e-2", "dall-e-3"],
20
- default: "dall-e-3",
21
- },
22
- size: {
23
- type: "string",
24
- title: "Size",
25
- description: "Image dimensions",
26
- enum: ["256x256", "512x512", "1024x1024", "1024x1792", "1792x1024"],
27
- default: "1024x1024",
28
- },
29
- quality: {
30
- type: "string",
31
- title: "Quality",
32
- description: "Image quality (DALL-E 3 only)",
33
- enum: ["standard", "hd"],
34
- default: "standard",
35
- },
36
- style: {
37
- type: "string",
38
- title: "Style",
39
- description: "Image style (DALL-E 3 only)",
40
- enum: ["vivid", "natural"],
41
- default: "vivid",
42
- },
43
- },
44
- requiredParameters: ["prompt"],
45
- };
46
- /**
47
- * OpenAI DALL-E image generator
48
- *
49
- * Generates images using OpenAI's DALL-E models (DALL-E 2 or DALL-E 3).
50
- *
51
- * @example
52
- * ```typescript
53
- * const generator = new OpenAIGenerator({ apiKey: process.env.OPENAI_API_KEY });
54
- * const image = await generator.generate({
55
- * prompt: "A purple gradient background for a presentation slide",
56
- * model: "dall-e-3",
57
- * size: "1792x1024",
58
- * quality: "hd"
59
- * });
60
- * ```
61
- */
62
- export class OpenAIGenerator {
63
- name = "openai";
64
- schema = openaiSchema;
65
- client;
66
- config;
67
- constructor(config = {}) {
68
- this.config = config;
69
- const apiKey = config.apiKey || process.env.OPENAI_API_KEY;
70
- if (!apiKey) {
71
- throw new Error("OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass apiKey in config.");
72
- }
73
- this.client = new OpenAI({ apiKey });
74
- }
75
- async generate(params) {
76
- const { prompt, model = this.config.model || "dall-e-3", size = "1024x1024", quality = this.config.quality || "standard", style = this.config.style || "vivid", n = 1, } = params;
77
- if (!prompt) {
78
- throw new Error("prompt is required for OpenAI image generation");
79
- }
80
- // DALL-E 3 only supports n=1
81
- if (model === "dall-e-3" && n !== 1) {
82
- throw new Error("DALL-E 3 only supports generating 1 image at a time (n=1)");
83
- }
84
- // DALL-E 3 has specific size constraints
85
- if (model === "dall-e-3") {
86
- const validSizes = ["1024x1024", "1024x1792", "1792x1024"];
87
- if (!validSizes.includes(size)) {
88
- throw new Error(`DALL-E 3 only supports sizes: ${validSizes.join(", ")}. Got: ${size}`);
89
- }
90
- }
91
- // Generate image
92
- const response = await this.client.images.generate({
93
- model,
94
- prompt,
95
- size: size,
96
- quality: model === "dall-e-3" ? quality : undefined,
97
- style: model === "dall-e-3" ? style : undefined,
98
- n,
99
- response_format: "url", // Get URL first, then download
100
- });
101
- if (!response.data || response.data.length === 0) {
102
- throw new Error("No image data returned from OpenAI");
103
- }
104
- const imageUrl = response.data[0].url;
105
- if (!imageUrl) {
106
- throw new Error("No image URL returned from OpenAI");
107
- }
108
- // Download the image
109
- const imageResponse = await fetch(imageUrl);
110
- if (!imageResponse.ok) {
111
- throw new Error(`Failed to download image: ${imageResponse.statusText}`);
112
- }
113
- const arrayBuffer = await imageResponse.arrayBuffer();
114
- const bytes = Buffer.from(arrayBuffer);
115
- // Parse dimensions from size parameter
116
- const [width, height] = size.split("x").map(Number);
117
- return {
118
- bytes,
119
- mime: "image/png", // OpenAI always returns PNG
120
- width,
121
- height,
122
- source: `ai:openai:${model}`,
123
- metadata: {
124
- prompt,
125
- model,
126
- quality,
127
- style,
128
- revisedPrompt: response.data[0].revised_prompt,
129
- },
130
- };
131
- }
132
- }
133
- /**
134
- * Schema for the OpenAI Vision provider
135
- */
136
- export const openaiVisionSchema = {
137
- name: "openai-vision",
138
- description: "Analyze images using OpenAI's GPT-4 Vision models",
139
- parameters: {
140
- prompt: {
141
- type: "string",
142
- title: "Prompt",
143
- description: "What to analyze or ask about the image",
144
- default: "Describe this image in detail.",
145
- },
146
- outputFormat: {
147
- type: "string",
148
- title: "Output Format",
149
- description: "Response format: plain text or structured JSON",
150
- enum: ["text", "json"],
151
- default: "text",
152
- },
153
- maxTokens: {
154
- type: "number",
155
- title: "Max Tokens",
156
- description: "Maximum tokens in the response",
157
- default: 1000,
158
- },
159
- },
160
- };
161
- /**
162
- * OpenAI Vision provider for image analysis using GPT-4V
163
- *
164
- * Analyzes images and returns text or structured JSON descriptions.
165
- *
166
- * @example
167
- * ```typescript
168
- * const vision = new OpenAIVisionProvider({ apiKey: process.env.OPENAI_API_KEY });
169
- * const result = await vision.analyze(imageBlob, {
170
- * prompt: "What objects are in this image?",
171
- * outputFormat: "json"
172
- * });
173
- * ```
174
- */
175
- export class OpenAIVisionProvider {
176
- name = "openai-vision";
177
- schema = openaiVisionSchema;
178
- client;
179
- config;
180
- constructor(config = {}) {
181
- this.config = config;
182
- const apiKey = config.apiKey || process.env.OPENAI_API_KEY;
183
- if (!apiKey) {
184
- throw new Error("OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass apiKey in config.");
185
- }
186
- this.client = new OpenAI({ apiKey });
187
- }
188
- async analyze(input, params) {
189
- const { prompt = "Describe this image in detail.", outputFormat = "text", maxTokens = this.config.maxTokens || 1000, } = params;
190
- const model = this.config.model || "gpt-4o";
191
- // Convert image to base64 data URL
192
- const base64 = input.bytes.toString("base64");
193
- const dataUrl = `data:${input.mime};base64,${base64}`;
194
- // Build messages with image
195
- const systemPrompt = outputFormat === "json"
196
- ? "You are a helpful assistant that analyzes images. Always respond with valid JSON."
197
- : "You are a helpful assistant that analyzes images.";
198
- const userPrompt = outputFormat === "json"
199
- ? `${prompt}\n\nRespond with a JSON object containing your analysis.`
200
- : prompt;
201
- const response = await this.client.chat.completions.create({
202
- model,
203
- max_tokens: maxTokens,
204
- messages: [
205
- { role: "system", content: systemPrompt },
206
- {
207
- role: "user",
208
- content: [
209
- { type: "text", text: userPrompt },
210
- {
211
- type: "image_url",
212
- image_url: { url: dataUrl, detail: "auto" },
213
- },
214
- ],
215
- },
216
- ],
217
- });
218
- const content = response.choices[0]?.message?.content || "";
219
- // Try to parse JSON if requested
220
- let parsed;
221
- if (outputFormat === "json") {
222
- try {
223
- parsed = JSON.parse(content);
224
- }
225
- catch {
226
- // If JSON parsing fails, treat as text
227
- }
228
- }
229
- return {
230
- type: parsed ? "json" : "text",
231
- content,
232
- parsed,
233
- source: `ai:openai-vision:${model}`,
234
- metadata: {
235
- model,
236
- prompt,
237
- usage: response.usage,
238
- },
239
- };
240
- }
241
- }
242
- /**
243
- * Schema for the OpenAI Text provider
244
- */
245
- export const openaiTextSchema = {
246
- name: "openai-text",
247
- description: "Generate text using OpenAI's GPT models",
248
- parameters: {
249
- prompt: {
250
- type: "string",
251
- title: "Prompt",
252
- description: "The prompt for text generation",
253
- },
254
- systemPrompt: {
255
- type: "string",
256
- title: "System Prompt",
257
- description: "Optional system prompt to guide the model's behavior",
258
- },
259
- context: {
260
- type: "string",
261
- title: "Context",
262
- description: "Optional context from a previous step (e.g., vision analysis)",
263
- },
264
- outputFormat: {
265
- type: "string",
266
- title: "Output Format",
267
- description: "Response format: plain text or structured JSON",
268
- enum: ["text", "json"],
269
- default: "text",
270
- },
271
- maxTokens: {
272
- type: "number",
273
- title: "Max Tokens",
274
- description: "Maximum tokens in the response",
275
- default: 1000,
276
- },
277
- temperature: {
278
- type: "number",
279
- title: "Temperature",
280
- description: "Creativity level (0-2)",
281
- default: 0.7,
282
- },
283
- },
284
- requiredParameters: ["prompt"],
285
- };
286
- /**
287
- * OpenAI Text provider for text generation using GPT models
288
- *
289
- * Generates text for prompts, descriptions, code, and other content.
290
- * Can chain with vision analysis by accepting context from previous steps.
291
- *
292
- * @example
293
- * ```typescript
294
- * const text = new OpenAITextProvider({ apiKey: process.env.OPENAI_API_KEY });
295
- * const result = await text.generate({
296
- * prompt: "Write a haiku about this scene",
297
- * context: "A serene mountain lake at sunset with mist rising",
298
- * });
299
- * ```
300
- */
301
- export class OpenAITextProvider {
302
- name = "openai-text";
303
- schema = openaiTextSchema;
304
- client;
305
- config;
306
- constructor(config = {}) {
307
- this.config = config;
308
- const apiKey = config.apiKey || process.env.OPENAI_API_KEY;
309
- if (!apiKey) {
310
- throw new Error("OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass apiKey in config.");
311
- }
312
- this.client = new OpenAI({ apiKey });
313
- }
314
- async generate(params) {
315
- const { prompt, systemPrompt, context, outputFormat = "text", maxTokens = this.config.maxTokens || 1000, temperature = this.config.temperature || 0.7, } = params;
316
- if (!prompt) {
317
- throw new Error("prompt is required for OpenAI text generation");
318
- }
319
- const model = this.config.model || "gpt-4o";
320
- // Build system message
321
- let system = systemPrompt || "You are a helpful assistant.";
322
- if (outputFormat === "json") {
323
- system += " Always respond with valid JSON.";
324
- }
325
- // Build user message with optional context
326
- let userMessage = prompt;
327
- if (context) {
328
- userMessage = `Context from previous analysis:\n${context}\n\n${prompt}`;
329
- }
330
- if (outputFormat === "json") {
331
- userMessage += "\n\nRespond with a JSON object.";
332
- }
333
- const response = await this.client.chat.completions.create({
334
- model,
335
- max_tokens: maxTokens,
336
- temperature,
337
- messages: [
338
- { role: "system", content: system },
339
- { role: "user", content: userMessage },
340
- ],
341
- });
342
- const content = response.choices[0]?.message?.content || "";
343
- // Try to parse JSON if requested
344
- let parsed;
345
- if (outputFormat === "json") {
346
- try {
347
- parsed = JSON.parse(content);
348
- }
349
- catch {
350
- // If JSON parsing fails, treat as text
351
- }
352
- }
353
- return {
354
- type: parsed ? "json" : "text",
355
- content,
356
- parsed,
357
- source: `ai:openai-text:${model}`,
358
- metadata: {
359
- model,
360
- prompt,
361
- temperature,
362
- usage: response.usage,
363
- },
364
- };
365
- }
366
- }
367
- //# sourceMappingURL=openai.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/providers/ai/openai.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AA6B5B;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAoB;IAC3C,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,8CAA8C;IAC3D,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,yCAAyC;SACvD;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,OAAO;YACd,WAAW,EAAE,qBAAqB;YAClC,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;YAC9B,OAAO,EAAE,UAAU;SACpB;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,kBAAkB;YAC/B,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC;YACnE,OAAO,EAAE,WAAW;SACrB;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,+BAA+B;YAC5C,IAAI,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC;YACxB,OAAO,EAAE,UAAU;SACpB;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,OAAO;YACd,WAAW,EAAE,6BAA6B;YAC1C,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;YAC1B,OAAO,EAAE,OAAO;SACjB;KACF;IACD,kBAAkB,EAAE,CAAC,QAAQ,CAAC;CAC/B,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,eAAe;IACV,IAAI,GAAG,QAAQ,CAAC;IAChB,MAAM,GAAG,YAAY,CAAC;IAC9B,MAAM,CAAS;IACf,MAAM,CAAe;IAE7B,YAAY,SAAuB,EAAE;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAA+B;QAC5C,MAAM,EACJ,MAAM,EACN,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,EACvC,IAAI,GAAG,WAAW,EAClB,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,UAAU,EAC3C,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,EACpC,CAAC,GAAG,CAAC,GACN,GAAG,MAAuC,CAAC;QAE5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,6BAA6B;QAC7B,IAAI,KAAK,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;QAC/E,CAAC;QAED,yCAAyC;QACzC,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YAC3D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CACb,iCAAiC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CACvE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;YACjD,KAAK;YACL,MAAM;YACN,IAAI,EAAE,IAA+C;YACrD,OAAO,EAAE,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACnD,KAAK,EAAE,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YAC/C,CAAC;YACD,eAAe,EAAE,KAAK,EAAE,+BAA+B;SACxD,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,qBAAqB;QACrB,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,6BAA6B,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEvC,uCAAuC;QACvC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpD,OAAO;YACL,KAAK;YACL,IAAI,EAAE,WAAW,EAAE,4BAA4B;YAC/C,KAAK;YACL,MAAM;YACN,MAAM,EAAE,aAAa,KAAK,EAAE;YAC5B,QAAQ,EAAE;gBACR,MAAM;gBACN,KAAK;gBACL,OAAO;gBACP,KAAK;gBACL,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc;aAC/C;SACF,CAAC;IACJ,CAAC;CACF;AAkBD;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAyB;IACtD,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,mDAAmD;IAChE,UAAU,EAAE;QACV,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,wCAAwC;YACrD,OAAO,EAAE,gCAAgC;SAC1C;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,gDAAgD;YAC7D,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;YACtB,OAAO,EAAE,MAAM;SAChB;QACD,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,gCAAgC;YAC7C,OAAO,EAAE,IAAI;SACd;KACF;CACF,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,oBAAoB;IACf,IAAI,GAAG,eAAe,CAAC;IACvB,MAAM,GAAG,kBAAkB,CAAC;IACpC,MAAM,CAAS;IACf,MAAM,CAAqB;IAEnC,YAAY,SAA6B,EAAE;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,OAAO,CACX,KAAgB,EAChB,MAA+B;QAE/B,MAAM,EACJ,MAAM,GAAG,gCAAgC,EACzC,YAAY,GAAG,MAAM,EACrB,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,GAC1C,GAAG,MAAqC,CAAC;QAE1C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC;QAE5C,mCAAmC;QACnC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,QAAQ,KAAK,CAAC,IAAI,WAAW,MAAM,EAAE,CAAC;QAEtD,4BAA4B;QAC5B,MAAM,YAAY,GAChB,YAAY,KAAK,MAAM;YACrB,CAAC,CAAC,mFAAmF;YACrF,CAAC,CAAC,mDAAmD,CAAC;QAE1D,MAAM,UAAU,GACd,YAAY,KAAK,MAAM;YACrB,CAAC,CAAC,GAAG,MAAM,0DAA0D;YACrE,CAAC,CAAC,MAAM,CAAC;QAEb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACzD,KAAK;YACL,UAAU,EAAE,SAAS;YACrB,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;gBACzC;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;wBAClC;4BACE,IAAI,EAAE,WAAW;4BACjB,SAAS,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;yBAC5C;qBACF;iBACF;aACF;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;QAE5D,iCAAiC;QACjC,IAAI,MAA2C,CAAC;QAChD,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,uCAAuC;YACzC,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YAC9B,OAAO;YACP,MAAM;YACN,MAAM,EAAE,oBAAoB,KAAK,EAAE;YACnC,QAAQ,EAAE;gBACR,KAAK;gBACL,MAAM;gBACN,KAAK,EAAE,QAAQ,CAAC,KAAK;aACtB;SACF,CAAC;IACJ,CAAC;CACF;AAsBD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAuB;IAClD,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,yCAAyC;IACtD,UAAU,EAAE;QACV,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,gCAAgC;SAC9C;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,sDAAsD;SACpE;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,+DAA+D;SAC7E;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,eAAe;YACtB,WAAW,EAAE,gDAAgD;YAC7D,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;YACtB,OAAO,EAAE,MAAM;SAChB;QACD,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,gCAAgC;YAC7C,OAAO,EAAE,IAAI;SACd;QACD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,wBAAwB;YACrC,OAAO,EAAE,GAAG;SACb;KACF;IACD,kBAAkB,EAAE,CAAC,QAAQ,CAAC;CAC/B,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,kBAAkB;IACb,IAAI,GAAG,aAAa,CAAC;IACrB,MAAM,GAAG,gBAAgB,CAAC;IAClC,MAAM,CAAS;IACf,MAAM,CAAmB;IAEjC,YAAY,SAA2B,EAAE;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAA+B;QAC5C,MAAM,EACJ,MAAM,EACN,YAAY,EACZ,OAAO,EACP,YAAY,GAAG,MAAM,EACrB,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,EACzC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,GAAG,GAC7C,GAAG,MAAmC,CAAC;QAExC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC;QAE5C,uBAAuB;QACvB,IAAI,MAAM,GAAG,YAAY,IAAI,8BAA8B,CAAC;QAC5D,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,kCAAkC,CAAC;QAC/C,CAAC;QAED,2CAA2C;QAC3C,IAAI,WAAW,GAAG,MAAM,CAAC;QACzB,IAAI,OAAO,EAAE,CAAC;YACZ,WAAW,GAAG,oCAAoC,OAAO,OAAO,MAAM,EAAE,CAAC;QAC3E,CAAC;QACD,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;YAC5B,WAAW,IAAI,iCAAiC,CAAC;QACnD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACzD,KAAK;YACL,UAAU,EAAE,SAAS;YACrB,WAAW;YACX,QAAQ,EAAE;gBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;gBACnC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;aACvC;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;QAE5D,iCAAiC;QACjC,IAAI,MAA2C,CAAC;QAChD,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,uCAAuC;YACzC,CAAC;QACH,CAAC;QAED,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YAC9B,OAAO;YACP,MAAM;YACN,MAAM,EAAE,kBAAkB,KAAK,EAAE;YACjC,QAAQ,EAAE;gBACR,KAAK;gBACL,MAAM;gBACN,WAAW;gBACX,KAAK,EAAE,QAAQ,CAAC,KAAK;aACtB;SACF,CAAC;IACJ,CAAC;CACF"}