{"version":3,"sources":["../../src/utils/json-schema.test.ts"],"sourcesContent":["import { z } from \"zod\";\nimport {\n  convertJsonSchemaToZodSchema,\n  actionParametersToJsonSchema,\n  jsonSchemaToActionParameters,\n  JSONSchema,\n} from \"../utils/json-schema\";\nimport { zodToJsonSchema } from \"zod-to-json-schema\";\nimport { Parameter } from \"../types\";\n\ndescribe(\"convertJsonSchemaToZodSchema\", () => {\n  it(\"should convert a simple JSON schema to a Zod schema\", () => {\n    const jsonSchema = {\n      type: \"object\",\n      properties: {\n        name: { type: \"string\" },\n        age: { type: \"number\" },\n      },\n      required: [\"name\", \"age\"],\n    };\n\n    const expectedSchema = z.object({\n      name: z.string(),\n      age: z.number(),\n    });\n\n    const result = convertJsonSchemaToZodSchema(jsonSchema, true);\n    const resultSchemaJson = zodToJsonSchema(result);\n    const expectedSchemaJson = zodToJsonSchema(expectedSchema);\n\n    expect(resultSchemaJson).toStrictEqual(expectedSchemaJson);\n  });\n\n  it(\"should convert a JSON schema with nested objects to a Zod schema\", () => {\n    const jsonSchema = {\n      type: \"object\",\n      properties: {\n        name: { type: \"string\" },\n        address: {\n          type: \"object\",\n          properties: {\n            street: { type: \"string\" },\n            city: { type: \"string\" },\n          },\n          required: [\"street\", \"city\"],\n        },\n      },\n      required: [\"name\", \"address\"],\n    };\n\n    const expectedSchema = z.object({\n      name: z.string(),\n      address: z.object({\n        street: z.string(),\n        city: z.string(),\n      }),\n    });\n\n    const result = convertJsonSchemaToZodSchema(jsonSchema, true);\n    const resultSchemaJson = zodToJsonSchema(result);\n    const expectedSchemaJson = zodToJsonSchema(expectedSchema);\n\n    expect(resultSchemaJson).toStrictEqual(expectedSchemaJson);\n  });\n\n  it(\"should convert a JSON schema with arrays to a Zod schema\", () => {\n    const jsonSchema = {\n      type: \"object\",\n      properties: {\n        names: {\n          type: \"array\",\n          items: { type: \"string\" },\n        },\n      },\n      required: [\"names\"],\n    };\n\n    const expectedSchema = z.object({\n      names: z.array(z.string()),\n    });\n\n    const result = convertJsonSchemaToZodSchema(jsonSchema, true);\n    const resultSchemaJson = zodToJsonSchema(result);\n    const expectedSchemaJson = zodToJsonSchema(expectedSchema);\n\n    expect(resultSchemaJson).toStrictEqual(expectedSchemaJson);\n  });\n\n  it(\"should convert a JSON schema with optional properties to a Zod schema\", () => {\n    const jsonSchema = {\n      type: \"object\",\n      properties: {\n        name: { type: \"string\" },\n        age: { type: \"number\", required: false },\n      },\n    };\n\n    const expectedSchema = z\n      .object({\n        name: z.string().optional(),\n        age: z.number().optional(),\n      })\n      .optional();\n\n    const result = convertJsonSchemaToZodSchema(jsonSchema, false);\n\n    console.log(convertJsonSchemaToZodSchema(jsonSchema, false));\n\n    const resultSchemaJson = zodToJsonSchema(result);\n    const expectedSchemaJson = zodToJsonSchema(expectedSchema);\n\n    expect(resultSchemaJson).toStrictEqual(expectedSchemaJson);\n  });\n\n  it(\"should convert a JSON schema with different types to a Zod schema\", () => {\n    const jsonSchema = {\n      type: \"object\",\n      properties: {\n        name: { type: \"string\" },\n        age: { type: \"number\" },\n        isAdmin: { type: \"boolean\" },\n      },\n      required: [\"name\", \"age\", \"isAdmin\"],\n    };\n\n    const expectedSchema = z.object({\n      name: z.string(),\n      age: z.number(),\n      isAdmin: z.boolean(),\n    });\n\n    const result = convertJsonSchemaToZodSchema(jsonSchema, true);\n    const resultSchemaJson = zodToJsonSchema(result);\n    const expectedSchemaJson = zodToJsonSchema(expectedSchema);\n\n    expect(resultSchemaJson).toStrictEqual(expectedSchemaJson);\n  });\n\n  it(\"should handle edge case where JSON schema has no properties\", () => {\n    const jsonSchema = {\n      type: \"object\",\n    };\n\n    const expectedSchema = z.object({});\n\n    const result = convertJsonSchemaToZodSchema(jsonSchema, true);\n    const resultSchemaJson = zodToJsonSchema(result);\n    const expectedSchemaJson = zodToJsonSchema(expectedSchema);\n\n    expect(resultSchemaJson).toStrictEqual(expectedSchemaJson);\n  });\n\n  it(\"should handle edge case where JSON schema has no required properties\", () => {\n    const jsonSchema = {\n      type: \"object\",\n      properties: {\n        name: { type: \"string\" },\n        age: { type: \"number\" },\n      },\n    };\n\n    const expectedSchema = z\n      .object({\n        name: z.string().optional(),\n        age: z.number().optional(),\n      })\n      .optional();\n\n    const result = convertJsonSchemaToZodSchema(jsonSchema, false);\n    const resultSchemaJson = zodToJsonSchema(result);\n    const expectedSchemaJson = zodToJsonSchema(expectedSchema);\n\n    expect(resultSchemaJson).toStrictEqual(expectedSchemaJson);\n  });\n});\n\ndescribe(\"jsonSchemaToActionParameters\", () => {\n  it(\"should convert a simple JSONSchema to Parameter array\", () => {\n    const jsonSchema: JSONSchema = {\n      type: \"object\",\n      properties: {\n        name: { type: \"string\", description: \"User name\" },\n        age: { type: \"number\", description: \"User age\" },\n      },\n      required: [\"name\"],\n    };\n\n    const expectedParameters: Parameter[] = [\n      { name: \"name\", type: \"string\", description: \"User name\" },\n      { name: \"age\", type: \"number\", description: \"User age\", required: false },\n    ];\n\n    const result = jsonSchemaToActionParameters(jsonSchema);\n    expect(result).toEqual(expectedParameters);\n  });\n\n  it(\"should convert JSONSchema with enum to Parameter array\", () => {\n    const jsonSchema: JSONSchema = {\n      type: \"object\",\n      properties: {\n        role: { type: \"string\", enum: [\"admin\", \"user\", \"guest\"], description: \"User role\" },\n      },\n      required: [\"role\"],\n    };\n\n    const expectedParameters: Parameter[] = [\n      { name: \"role\", type: \"string\", enum: [\"admin\", \"user\", \"guest\"], description: \"User role\" },\n    ];\n\n    const result = jsonSchemaToActionParameters(jsonSchema);\n    expect(result).toEqual(expectedParameters);\n  });\n\n  it(\"should convert nested object JSONSchema to Parameter array\", () => {\n    const jsonSchema: JSONSchema = {\n      type: \"object\",\n      properties: {\n        user: {\n          type: \"object\",\n          properties: {\n            name: { type: \"string\", description: \"User name\" },\n            age: { type: \"number\", description: \"User age\" },\n          },\n          required: [\"name\"],\n          description: \"User information\",\n        },\n      },\n      required: [\"user\"],\n    };\n\n    const expectedParameters: Parameter[] = [\n      {\n        name: \"user\",\n        type: \"object\",\n        description: \"User information\",\n        attributes: [\n          { name: \"name\", type: \"string\", description: \"User name\" },\n          { name: \"age\", type: \"number\", description: \"User age\", required: false },\n        ],\n      },\n    ];\n\n    const result = jsonSchemaToActionParameters(jsonSchema);\n    expect(result).toEqual(expectedParameters);\n  });\n\n  it(\"should convert array JSONSchema to Parameter array\", () => {\n    const jsonSchema: JSONSchema = {\n      type: \"object\",\n      properties: {\n        tags: {\n          type: \"array\",\n          items: { type: \"string\" },\n          description: \"User tags\",\n        },\n      },\n      required: [\"tags\"],\n    };\n\n    const expectedParameters: Parameter[] = [\n      { name: \"tags\", type: \"string[]\", description: \"User tags\" },\n    ];\n\n    const result = jsonSchemaToActionParameters(jsonSchema);\n    expect(result).toEqual(expectedParameters);\n  });\n\n  it(\"should convert object array JSONSchema to Parameter array\", () => {\n    const jsonSchema: JSONSchema = {\n      type: \"object\",\n      properties: {\n        addresses: {\n          type: \"array\",\n          items: {\n            type: \"object\",\n            properties: {\n              street: { type: \"string\", description: \"Street name\" },\n              city: { type: \"string\", description: \"City name\" },\n            },\n            required: [\"street\"],\n          },\n          description: \"User addresses\",\n        },\n      },\n      required: [\"addresses\"],\n    };\n\n    const expectedParameters: Parameter[] = [\n      {\n        name: \"addresses\",\n        type: \"object[]\",\n        description: \"User addresses\",\n        attributes: [\n          { name: \"street\", type: \"string\", description: \"Street name\" },\n          { name: \"city\", type: \"string\", description: \"City name\", required: false },\n        ],\n      },\n    ];\n\n    const result = jsonSchemaToActionParameters(jsonSchema);\n    expect(result).toEqual(expectedParameters);\n  });\n\n  it(\"should handle boolean types\", () => {\n    const jsonSchema: JSONSchema = {\n      type: \"object\",\n      properties: {\n        isAdmin: { type: \"boolean\", description: \"Is user an admin\" },\n      },\n      required: [\"isAdmin\"],\n    };\n\n    const expectedParameters: Parameter[] = [\n      { name: \"isAdmin\", type: \"boolean\", description: \"Is user an admin\" },\n    ];\n\n    const result = jsonSchemaToActionParameters(jsonSchema);\n    expect(result).toEqual(expectedParameters);\n  });\n\n  it(\"should handle empty object schema\", () => {\n    const jsonSchema: JSONSchema = {\n      type: \"object\",\n    };\n\n    const expectedParameters: Parameter[] = [];\n\n    const result = jsonSchemaToActionParameters(jsonSchema);\n    expect(result).toEqual(expectedParameters);\n  });\n\n  it(\"should throw error for nested arrays\", () => {\n    const jsonSchema: JSONSchema = {\n      type: \"object\",\n      properties: {\n        nestedArray: {\n          type: \"array\",\n          items: {\n            type: \"array\",\n            items: { type: \"string\" },\n          },\n          description: \"Matrix of strings\",\n        },\n      },\n      required: [\"nestedArray\"],\n    };\n\n    expect(() => jsonSchemaToActionParameters(jsonSchema)).toThrow(\n      \"Nested arrays are not supported\",\n    );\n  });\n\n  it(\"should ensure round-trip conversion works\", () => {\n    const originalParameters: Parameter[] = [\n      { name: \"name\", type: \"string\", description: \"User name\" },\n      { name: \"age\", type: \"number\", description: \"User age\", required: false },\n      { name: \"role\", type: \"string\", enum: [\"admin\", \"user\"], description: \"User role\" },\n      {\n        name: \"address\",\n        type: \"object\",\n        description: \"User address\",\n        attributes: [\n          { name: \"street\", type: \"string\", description: \"Street name\" },\n          { name: \"city\", type: \"string\", description: \"City name\" },\n        ],\n      },\n      {\n        name: \"contacts\",\n        type: \"object[]\",\n        description: \"User contacts\",\n        attributes: [\n          { name: \"type\", type: \"string\", description: \"Contact type\" },\n          { name: \"value\", type: \"string\", description: \"Contact value\" },\n        ],\n      },\n    ];\n\n    const jsonSchema = actionParametersToJsonSchema(originalParameters);\n    const roundTripParameters = jsonSchemaToActionParameters(jsonSchema);\n\n    expect(roundTripParameters).toEqual(originalParameters);\n  });\n});\n"],"mappings":"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","names":[]}