{"version":3,"sources":["../src/json-to-zod.ts"],"names":["parseSchema","addJsdocs","its","parseAnyOf","parseOneOf","parseAllOf","schema","jsonSchemaToZodOriginal"],"mappings":"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","file":"json-to-zod.cjs","sourcesContent":["import type { JsonSchema, JsonSchemaObject, Options, Refs } from 'json-schema-to-zod';\nimport jsonSchemaToZodOriginal, {\n  addJsdocs,\n  its,\n  parseAllOf,\n  parseAnyOf,\n  parseOneOf,\n  parseSchema,\n} from 'json-schema-to-zod';\n\nfunction parseObject(objectSchema: JsonSchemaObject & { type: 'object' }, refs: Refs): string {\n  let properties: string | undefined = undefined;\n\n  if (objectSchema.properties) {\n    if (!Object.keys(objectSchema.properties).length) {\n      properties = 'z.object({})';\n    } else {\n      properties = 'z.object({ ';\n\n      properties += Object.keys(objectSchema.properties)\n        .map(key => {\n          const propSchema = objectSchema.properties![key];\n\n          let result = `${JSON.stringify(key)}: ${parseSchema(propSchema!, {\n            ...refs,\n            path: [...refs.path, 'properties', key],\n          })}`;\n\n          if (refs.withJsdocs && typeof propSchema === 'object') {\n            result = addJsdocs(propSchema, result);\n          }\n\n          const hasDefault = typeof propSchema === 'object' && propSchema.default !== undefined;\n\n          const required = Array.isArray(objectSchema.required)\n            ? objectSchema.required.includes(key)\n            : typeof propSchema === 'object' && propSchema.required === true;\n\n          const optional = !hasDefault && !required;\n\n          return optional ? `${result}.optional()` : result;\n        })\n        .join(', ');\n\n      properties += ' })';\n    }\n  }\n\n  const additionalProperties =\n    objectSchema.additionalProperties !== undefined && objectSchema.additionalProperties !== false\n      ? parseSchema(objectSchema.additionalProperties, {\n          ...refs,\n          path: [...refs.path, 'additionalProperties'],\n        })\n      : undefined;\n\n  let patternProperties: string | undefined = undefined;\n\n  if (objectSchema.patternProperties) {\n    const parsedPatternProperties = Object.fromEntries(\n      Object.entries(objectSchema.patternProperties).map(([key, value]) => {\n        return [\n          key,\n          parseSchema(value, {\n            ...refs,\n            path: [...refs.path, 'patternProperties', key],\n          }),\n        ];\n      }, {}),\n    );\n\n    patternProperties = '';\n\n    if (properties) {\n      if (additionalProperties) {\n        patternProperties += `.catchall(z.union([${[\n          ...Object.values(parsedPatternProperties),\n          additionalProperties,\n        ].join(', ')}]))`;\n      } else if (Object.keys(parsedPatternProperties).length > 1) {\n        patternProperties += `.catchall(z.union([${Object.values(parsedPatternProperties).join(', ')}]))`;\n      } else {\n        patternProperties += `.catchall(${Object.values(parsedPatternProperties)})`;\n      }\n    } else {\n      if (additionalProperties) {\n        patternProperties += `z.record(z.union([${[\n          ...Object.values(parsedPatternProperties),\n          additionalProperties,\n        ].join(', ')}]))`;\n      } else if (Object.keys(parsedPatternProperties).length > 1) {\n        patternProperties += `z.record(z.union([${Object.values(parsedPatternProperties).join(', ')}]))`;\n      } else {\n        patternProperties += `z.record(${Object.values(parsedPatternProperties)})`;\n      }\n    }\n\n    patternProperties += '.superRefine((value, ctx) => {\\n';\n\n    patternProperties += 'for (const key in value) {\\n';\n\n    if (additionalProperties) {\n      if (objectSchema.properties) {\n        patternProperties += `let evaluated = [${Object.keys(objectSchema.properties)\n          .map(key => JSON.stringify(key))\n          .join(', ')}].includes(key)\\n`;\n      } else {\n        patternProperties += `let evaluated = false\\n`;\n      }\n    }\n\n    for (const key in objectSchema.patternProperties) {\n      patternProperties += 'if (key.match(new RegExp(' + JSON.stringify(key) + '))) {\\n';\n      if (additionalProperties) {\n        patternProperties += 'evaluated = true\\n';\n      }\n      patternProperties += 'const result = ' + parsedPatternProperties[key] + '.safeParse(value[key])\\n';\n      patternProperties += 'if (!result.success) {\\n';\n\n      patternProperties += `ctx.addIssue({\n          path: [...ctx.path, key],\n          code: 'custom',\n          message: \\`Invalid input: Key matching regex /\\${key}/ must match schema\\`,\n          params: {\n            issues: result.error.issues\n          }\n        })\\n`;\n\n      patternProperties += '}\\n';\n      patternProperties += '}\\n';\n    }\n\n    if (additionalProperties) {\n      patternProperties += 'if (!evaluated) {\\n';\n      patternProperties += 'const result = ' + additionalProperties + '.safeParse(value[key])\\n';\n      patternProperties += 'if (!result.success) {\\n';\n\n      patternProperties += `ctx.addIssue({\n          path: [...ctx.path, key],\n          code: 'custom',\n          message: \\`Invalid input: must match catchall schema\\`,\n          params: {\n            issues: result.error.issues\n          }\n        })\\n`;\n\n      patternProperties += '}\\n';\n      patternProperties += '}\\n';\n    }\n    patternProperties += '}\\n';\n    patternProperties += '})';\n  }\n\n  let output = properties\n    ? patternProperties\n      ? properties + patternProperties\n      : additionalProperties\n        ? additionalProperties === 'z.never()'\n          ? properties + '.strict()'\n          : properties + `.catchall(${additionalProperties})`\n        : properties\n    : patternProperties\n      ? patternProperties\n      : additionalProperties\n        ? `z.record(${additionalProperties})`\n        : 'z.record(z.any())';\n\n  if (its.an.anyOf(objectSchema)) {\n    output += `.and(${parseAnyOf(\n      {\n        ...objectSchema,\n        anyOf: objectSchema.anyOf.map(x =>\n          typeof x === 'object' && !x.type && (x.properties || x.additionalProperties || x.patternProperties)\n            ? { ...x, type: 'object' }\n            : x,\n        ) as any,\n      },\n      refs,\n    )})`;\n  }\n\n  if (its.a.oneOf(objectSchema)) {\n    output += `.and(${parseOneOf(\n      {\n        ...objectSchema,\n        oneOf: objectSchema.oneOf.map(x =>\n          typeof x === 'object' && !x.type && (x.properties || x.additionalProperties || x.patternProperties)\n            ? { ...x, type: 'object' }\n            : x,\n        ) as any,\n      },\n      refs,\n    )})`;\n  }\n\n  if (its.an.allOf(objectSchema)) {\n    output += `.and(${parseAllOf(\n      {\n        ...objectSchema,\n        allOf: objectSchema.allOf.map(x =>\n          typeof x === 'object' && !x.type && (x.properties || x.additionalProperties || x.patternProperties)\n            ? { ...x, type: 'object' }\n            : x,\n        ) as any,\n      },\n      refs,\n    )})`;\n  }\n\n  return output;\n}\n\nconst parserOverride = (schema: JsonSchemaObject, refs: Refs) => {\n  let parsed = '';\n  let seen = refs.seen.get(schema);\n  if (its.an.anyOf(schema)) {\n    const allObjects = schema.anyOf.every(\n      item => typeof item === 'object' && its.an.object(item) && item.properties !== undefined,\n    );\n    if (schema.anyOf.length > 1 && allObjects) {\n      const propertiesWithConst: string[][] = schema.anyOf.reduce((acc, item) => {\n        if (typeof item === 'object' && its.an.object(item)) {\n          const propertyWithConst = Object.entries(item.properties ?? {}).filter(\n            ([_, value]) => typeof value === 'object' && (value as any)?.const !== undefined,\n          );\n          if (propertyWithConst?.length) {\n            const ppties = propertyWithConst.map(([key, _]) => key);\n            acc.push(ppties);\n          }\n        }\n        return acc;\n      }, [] as string[][]);\n\n      if (propertiesWithConst.length === schema.anyOf.length) {\n        if (seen) {\n          if (seen.r !== undefined) {\n            return seen.r;\n          }\n\n          if (refs.depth === undefined || seen.n >= refs.depth) {\n            return 'z.any()';\n          }\n\n          seen.n += 1;\n        } else {\n          seen = { r: undefined, n: 0 };\n          refs.seen.set(schema, seen);\n        }\n\n        const discriminators =\n          propertiesWithConst.length > 0 && propertiesWithConst[0]\n            ? propertiesWithConst.reduce((common, properties) => {\n                return common.filter(prop => properties.includes(prop));\n              }, propertiesWithConst[0])\n            : [];\n\n        if (discriminators.length > 0) {\n          const discriminator = discriminators[0];\n          if (discriminator) {\n            parsed = `z.discriminatedUnion(\"${discriminator}\", [${schema.anyOf\n              .map((schema, i) =>\n                parseSchema(schema, {\n                  ...refs,\n                  path: [...refs.path, 'anyOf', i],\n                }),\n              )\n              .join(', ')}])`;\n          }\n        }\n      }\n    }\n  } else if (its.an.object(schema)) {\n    if (seen) {\n      if (seen.r !== undefined) {\n        return seen.r;\n      }\n\n      if (refs.depth === undefined || seen.n >= refs.depth) {\n        return 'z.any()';\n      }\n\n      seen.n += 1;\n    } else {\n      seen = { r: undefined, n: 0 };\n      refs.seen.set(schema, seen);\n    }\n\n    parsed = parseObject(schema, refs);\n  }\n  if (parsed) {\n    if (!refs.withoutDescribes) {\n      parsed = addDescribes(schema, parsed);\n    }\n\n    if (!refs.withoutDefaults) {\n      parsed = addDefaults(schema, parsed);\n    }\n\n    parsed = addAnnotations(schema, parsed);\n\n    if (seen) {\n      seen.r = parsed;\n    }\n\n    return parsed;\n  }\n};\n\nconst addDescribes = (schema: JsonSchemaObject, parsed: string): string => {\n  if (schema.description) {\n    parsed += `.describe(${JSON.stringify(schema.description)})`;\n  }\n\n  return parsed;\n};\n\nconst addDefaults = (schema: JsonSchemaObject, parsed: string): string => {\n  if (schema.default !== undefined) {\n    parsed += `.default(${JSON.stringify(schema.default)})`;\n  }\n\n  return parsed;\n};\n\nconst addAnnotations = (schema: JsonSchemaObject, parsed: string): string => {\n  if (schema.readOnly) {\n    parsed += '.readonly()';\n  }\n\n  return parsed;\n};\n\nexport function jsonSchemaToZod(schema: JsonSchema, options: Options = {}): string {\n  const result = jsonSchemaToZodOriginal(schema, { ...options, parserOverride });\n\n  // Fix: The upstream json-schema-to-zod generates TypeScript syntax `reduce<z.ZodError[]>`\n  // in parseOneOf which fails when evaluated at runtime with Function().\n  // This catches any oneOf usage that bypasses our parserOverride (e.g., non-object contexts).\n  // See: https://github.com/mastra-ai/mastra/issues/11610\n  return result.replace(/\\.reduce<[^>]+>/g, '.reduce');\n}\n\n// Re-export all named exports from json-schema-to-zod (excluding the default export)\nexport * from 'json-schema-to-zod';\n"]}