@mastra/schema-compat 1.2.3 → 1.2.4-alpha.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @mastra/schema-compat
2
2
 
3
+ ## 1.2.4-alpha.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Lazily load createRequire to fix 'Uncaught (in promise) TypeError: lzt.createRequire is not a function' error ([#14275](https://github.com/mastra-ai/mastra/pull/14275))
8
+
3
9
  ## 1.2.3
4
10
 
5
11
  ### Patch Changes
@@ -31,7 +31,13 @@ function convertToJsonSchema(zodSchema, options, adapterOptions) {
31
31
  }
32
32
  var _toJSONSchema = null;
33
33
  var _toJSONSchemaResolved = false;
34
- var __require = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-5F7C53ED.cjs', document.baseURI).href)));
34
+ var __require;
35
+ function getRequire() {
36
+ if (!__require) {
37
+ __require = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-2QLJVF77.cjs', document.baseURI).href)));
38
+ }
39
+ return __require;
40
+ }
35
41
  function pickToJSONSchema(mod) {
36
42
  const candidate = mod;
37
43
  const picks = [
@@ -60,7 +66,7 @@ function getToJSONSchema() {
60
66
  if (_toJSONSchemaResolved) {
61
67
  return _toJSONSchema;
62
68
  }
63
- _toJSONSchema = resolveToJSONSchema((moduleName) => __require(moduleName));
69
+ _toJSONSchema = resolveToJSONSchema((moduleName) => getRequire()(moduleName));
64
70
  _toJSONSchemaResolved = true;
65
71
  return _toJSONSchema;
66
72
  }
@@ -204,5 +210,5 @@ exports.isStandardSchema = isStandardSchema;
204
210
  exports.isStandardSchemaWithJSON = isStandardSchemaWithJSON;
205
211
  exports.standardSchemaToJSONSchema = standardSchemaToJSONSchema;
206
212
  exports.toStandardSchema = toStandardSchema5;
207
- //# sourceMappingURL=chunk-5F7C53ED.cjs.map
208
- //# sourceMappingURL=chunk-5F7C53ED.cjs.map
213
+ //# sourceMappingURL=chunk-2QLJVF77.cjs.map
214
+ //# sourceMappingURL=chunk-2QLJVF77.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/standard-schema/adapters/zod-v4.ts","../src/standard-schema/standard-schema.ts"],"names":["createRequire","toStandardSchema","z3"],"mappings":"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","file":"chunk-2QLJVF77.cjs","sourcesContent":["import { createRequire } from 'node:module';\nimport type { StandardSchemaV1, StandardJSONSchemaV1 } from '@standard-schema/spec';\nimport type { StandardSchemaWithJSON, StandardSchemaWithJSONProps } from '../standard-schema.types';\n\n/**\n * Supported JSON Schema targets for z.toJSONSchema().\n * Works with both real Zod v4 and Zod 3.25's v4 compat layer.\n */\nconst SUPPORTED_TARGETS = new Set(['draft-07', 'draft-04', 'draft-2020-12']);\n\n/**\n * Options for the Zod v4 adapter's JSON Schema conversion.\n */\nexport interface ZodV4AdapterOptions {\n unrepresentable?: 'any' | 'error';\n override?: (ctx: { zodSchema: unknown; jsonSchema: Record<string, unknown> }) => undefined;\n}\n\n/**\n * Converts a Zod v4 schema to JSON Schema using z.toJSONSchema().\n *\n * Works with both real Zod v4 and Zod 3.25's v4 compat layer.\n *\n * @internal\n */\nfunction convertToJsonSchema(\n zodSchema: unknown,\n options: StandardJSONSchemaV1.Options,\n adapterOptions: ZodV4AdapterOptions,\n): Record<string, unknown> {\n const toJSONSchema = getToJSONSchema();\n if (!toJSONSchema) {\n throw new Error('z.toJSONSchema is not available. Ensure zod >= 3.25.0 is installed.');\n }\n\n const target = SUPPORTED_TARGETS.has(options.target) ? options.target : 'draft-07';\n\n const jsonSchemaOptions: Record<string, unknown> = {\n target,\n };\n\n if (adapterOptions.unrepresentable) {\n jsonSchemaOptions.unrepresentable = adapterOptions.unrepresentable;\n }\n\n // The override option works in real Zod v4 but is a no-op in 3.25 compat.\n if (adapterOptions.override) {\n jsonSchemaOptions.override = adapterOptions.override;\n }\n\n return toJSONSchema(zodSchema, jsonSchemaOptions) as Record<string, unknown>;\n}\n\n/**\n * Cached reference to z.toJSONSchema.\n */\nlet _toJSONSchema: ((schema: unknown, options?: unknown) => unknown) | null = null;\nlet _toJSONSchemaResolved = false;\n\nlet __require: ReturnType<typeof createRequire>;\n\nfunction getRequire(): ReturnType<typeof createRequire> {\n if (!__require) {\n __require = createRequire(import.meta.url);\n }\n return __require;\n}\nfunction pickToJSONSchema(mod: unknown): ((schema: unknown, options?: unknown) => unknown) | null {\n const candidate = mod as {\n toJSONSchema?: unknown;\n z?: { toJSONSchema?: unknown };\n default?: { toJSONSchema?: unknown; z?: { toJSONSchema?: unknown } };\n };\n\n const picks = [\n candidate?.toJSONSchema,\n candidate?.z?.toJSONSchema,\n candidate?.default?.toJSONSchema,\n candidate?.default?.z?.toJSONSchema,\n ];\n\n const toJSONSchema = picks.find(fn => typeof fn === 'function');\n return (toJSONSchema as ((schema: unknown, options?: unknown) => unknown) | undefined) ?? null;\n}\n\nfunction resolveToJSONSchema(\n loadModule: (moduleName: 'zod/v4' | 'zod') => unknown,\n): ((schema: unknown, options?: unknown) => unknown) | null {\n for (const moduleName of ['zod/v4', 'zod'] as const) {\n try {\n const zodModule = loadModule(moduleName);\n const toJSONSchema = pickToJSONSchema(zodModule);\n if (toJSONSchema) {\n return toJSONSchema;\n }\n } catch {\n // Try next module path.\n }\n }\n\n return null;\n}\n\nfunction getToJSONSchema(): ((schema: unknown, options?: unknown) => unknown) | null {\n if (_toJSONSchemaResolved) {\n return _toJSONSchema;\n }\n\n _toJSONSchema = resolveToJSONSchema(moduleName => getRequire()(moduleName));\n _toJSONSchemaResolved = true;\n return _toJSONSchema;\n}\n\n/**\n * Wraps a Zod v4 schema to implement the full @standard-schema/spec interface.\n *\n * Zod v4 schemas (and Zod 3.25's v4 compat layer) implement `StandardSchemaV1`\n * (validation) but may not implement `StandardJSONSchemaV1` (JSON Schema conversion)\n * on the `~standard` property. This adapter adds the `jsonSchema` property using\n * `z.toJSONSchema()` to provide JSON Schema conversion capabilities.\n *\n * @param zodSchema - A Zod v4 schema (has `_zod` property)\n * @param adapterOptions - Options passed to z.toJSONSchema()\n * @returns The schema wrapped with StandardSchemaWithJSON support\n */\nexport function toStandardSchema<T>(\n zodSchema: T & { _zod: unknown; '~standard': StandardSchemaV1.Props },\n adapterOptions: ZodV4AdapterOptions = {},\n): T & StandardSchemaWithJSON {\n // Create a wrapper object that preserves the original schema's prototype chain\n const wrapper = Object.create(zodSchema) as T & StandardSchemaWithJSON;\n\n // Get the existing ~standard property from Zod\n const existingStandard = (zodSchema as any)['~standard'] as StandardSchemaV1.Props;\n\n // Create the JSON Schema converter using z.toJSONSchema()\n const jsonSchemaConverter: StandardJSONSchemaV1.Converter = {\n input: (options: StandardJSONSchemaV1.Options): Record<string, unknown> => {\n return convertToJsonSchema(zodSchema, options, adapterOptions);\n },\n output: (options: StandardJSONSchemaV1.Options): Record<string, unknown> => {\n return convertToJsonSchema(zodSchema, options, adapterOptions);\n },\n };\n\n // Define the enhanced ~standard property\n Object.defineProperty(wrapper, '~standard', {\n value: {\n ...existingStandard,\n jsonSchema: jsonSchemaConverter,\n } satisfies StandardSchemaWithJSONProps,\n writable: false,\n enumerable: true,\n configurable: false,\n });\n\n return wrapper;\n}\n","import type { Schema } from '@internal/ai-v6';\nimport type { StandardJSONSchemaV1, StandardSchemaV1 } from '@standard-schema/spec';\nimport type { JSONSchema7 } from 'json-schema';\nimport z3 from 'zod/v3';\nimport type { ZodType } from 'zod/v3';\nimport type { PublicSchema } from '../schema.types';\nimport { toStandardSchema as toStandardSchemaAiSdk } from './adapters/ai-sdk';\nimport { toStandardSchema as toStandardSchemaJsonSchema } from './adapters/json-schema';\nimport { toStandardSchema as toStandardSchemaZodV3 } from './adapters/zod-v3';\nimport { toStandardSchema as toStandardSchemaZodV4 } from './adapters/zod-v4';\nimport type { StandardSchemaWithJSON } from './standard-schema.types';\n\n/**\n * Override function for JSON Schema conversion.\n * Handles types that Zod v4 cannot natively represent in JSON Schema:\n * - z.date() -> { type: 'string', format: 'date-time' }\n */\nfunction jsonSchemaOverride(ctx: { zodSchema: unknown; jsonSchema: Record<string, unknown> }): undefined {\n const zodSchema = ctx.zodSchema as { type?: string; _zod?: { def?: { type?: string } }; optional?: () => unknown };\n\n if (\n ctx.jsonSchema.type === 'object' &&\n ctx.jsonSchema.properties !== undefined &&\n !ctx.jsonSchema.additionalProperties\n ) {\n ctx.jsonSchema.additionalProperties = false;\n }\n\n if (zodSchema) {\n // Convert z.date() to JSON Schema string with date-time format\n if (zodSchema?.type === 'date') {\n ctx.jsonSchema.type = 'string';\n ctx.jsonSchema.format = 'date-time';\n // @ts-expect-error - catchall is a valid property for zod\n } else if (zodSchema?.type === 'object' && zodSchema._zod?.def?.catchall?.type === 'unknown') {\n ctx.jsonSchema.additionalProperties = true;\n }\n }\n\n return undefined;\n}\n/**\n * Library options for JSON Schema conversion.\n * - unrepresentable: 'any' allows z.custom() and other unrepresentable types to be converted to {}\n * instead of throwing \"Custom types cannot be represented in JSON Schema\"\n * - override: converts z.date() to { type: 'string', format: 'date-time' }\n */\nexport const JSON_SCHEMA_LIBRARY_OPTIONS = {\n unrepresentable: 'any' as const,\n override: jsonSchemaOverride,\n};\n\nexport type {\n StandardSchemaWithJSON,\n StandardSchemaWithJSONProps,\n InferInput,\n InferOutput,\n StandardSchemaIssue,\n} from './standard-schema.types';\n\nfunction isVercelSchema(schema: unknown): schema is Schema {\n return (\n typeof schema === 'object' &&\n schema !== null &&\n '_type' in schema &&\n 'jsonSchema' in schema &&\n typeof (schema as Schema).jsonSchema === 'object'\n );\n}\n\n/**\n * Check if a schema is Zod v4 (has _zod property which is v4-only)\n */\nfunction isZodV4(schema: unknown): boolean {\n return typeof schema === 'object' && schema !== null && '_zod' in schema;\n}\n\n/**\n * Check if a schema is Zod v3.\n *\n * Zod v3 can come from:\n * 1. The old standalone 'zod-v3' package\n * 2. The 'zod/v3' compat export from modern zod\n *\n * We detect Zod v3 by checking:\n * - Has ~standard.vendor === 'zod' (both v3 and v4 have this)\n * - Does NOT have ~standard.jsonSchema (only Zod v4 has native JSON Schema support)\n * - Does NOT have _zod property (only Zod v4 has this)\n *\n * Note: We can't use instanceof z3.ZodType because the old 'zod-v3' package\n * has a different prototype chain than 'zod/v3'.\n */\nfunction isZodV3(schema: unknown): schema is ZodType {\n if (schema === null || typeof schema !== 'object') {\n return false;\n }\n\n // Must not be Zod v4\n if (isZodV4(schema)) {\n return false;\n }\n\n // Check for ~standard with vendor 'zod' but no jsonSchema\n if ('~standard' in schema) {\n const std = (schema as any)['~standard'];\n if (typeof std === 'object' && std !== null && std.vendor === 'zod' && !('jsonSchema' in std)) {\n return true;\n }\n }\n\n // Fallback: check instanceof for zod/v3 compat export\n return schema instanceof z3.ZodType;\n}\n\nexport function toStandardSchema<T = unknown>(schema: PublicSchema<T>): StandardSchemaWithJSON<T> {\n // First check: if already StandardSchemaWithJSON, return as-is\n // This handles ArkType, Zod v4 (when it has jsonSchema), and pre-wrapped schemas\n if (isStandardSchemaWithJSON(schema)) {\n return schema;\n }\n\n // Check for Zod v4 schemas without ~standard.jsonSchema\n // This handles both real Zod v4 and Zod 3.25's v4 compat layer where\n // ~standard.jsonSchema is not present on the schema object\n if (isZodV4(schema)) {\n return toStandardSchemaZodV4(schema as any, {\n unrepresentable: JSON_SCHEMA_LIBRARY_OPTIONS.unrepresentable,\n override: JSON_SCHEMA_LIBRARY_OPTIONS.override,\n });\n }\n\n // Check for Zod v3 schemas (need wrapping to add JSON Schema support)\n // Important: Must use isZodV3() not instanceof z3.ZodType because\n // Zod v4 schemas are also instanceof z3.ZodType due to prototype compatibility\n if (isZodV3(schema)) {\n return toStandardSchemaZodV3(schema as ZodType);\n }\n\n // Check for AI SDK Schema objects (Vercel's jsonSchema wrapper)\n if (isVercelSchema(schema)) {\n return toStandardSchemaAiSdk(schema as Schema<T>);\n }\n\n // At this point, assume it's a plain JSON Schema object\n // JSON Schema objects are plain objects with properties like 'type', 'properties', etc.\n if (schema === null || (typeof schema !== 'object' && typeof schema !== 'function')) {\n throw new Error(`Unsupported schema type: ${typeof schema}`);\n }\n\n // If it's a function that's not StandardSchemaWithJSON, it's not supported\n if (typeof schema === 'function') {\n throw new Error(`Unsupported schema type: function (schema libraries should implement StandardSchemaWithJSON)`);\n }\n\n return toStandardSchemaJsonSchema(schema as JSONSchema7);\n}\n\n/**\n * Type guard to check if a value implements the StandardSchemaV1 interface.\n *\n * @param value - The value to check\n * @returns True if the value implements StandardSchemaV1\n *\n * @example\n * ```typescript\n * import { isStandardSchema } from '@mastra/schema-compat';\n *\n * if (isStandardSchema(someValue)) {\n * const result = someValue['~standard'].validate(input);\n * }\n * ```\n */\nexport function isStandardSchema(value: unknown): value is StandardSchemaV1 {\n // Check for object or function (some libraries like ArkType use callable schemas)\n if (value === null || (typeof value !== 'object' && typeof value !== 'function')) {\n return false;\n }\n if (!('~standard' in value)) {\n return false;\n }\n const std = (value as any)['~standard'];\n return (\n typeof std === 'object' &&\n std !== null &&\n 'version' in std &&\n std.version === 1 &&\n 'vendor' in std &&\n 'validate' in std &&\n typeof std.validate === 'function'\n );\n}\n\n/**\n * Type guard to check if a value implements the StandardJSONSchemaV1 interface.\n *\n * @param value - The value to check\n * @returns True if the value implements StandardJSONSchemaV1\n *\n * @example\n * ```typescript\n * import { isStandardJSONSchema } from '@mastra/schema-compat';\n *\n * if (isStandardJSONSchema(someValue)) {\n * const jsonSchema = someValue['~standard'].jsonSchema.output({ target: 'draft-07' });\n * }\n * ```\n */\nexport function isStandardJSONSchema(value: unknown): value is StandardJSONSchemaV1 {\n // Check for object or function (some libraries like ArkType use callable schemas)\n if (value === null || (typeof value !== 'object' && typeof value !== 'function')) {\n return false;\n }\n if (!('~standard' in value)) {\n return false;\n }\n const std = (value as any)['~standard'];\n if (typeof std !== 'object' || std === null) {\n return false;\n }\n if (!('version' in std) || std.version !== 1 || !('vendor' in std)) {\n return false;\n }\n if (!('jsonSchema' in std) || typeof std.jsonSchema !== 'object') {\n return false;\n }\n return typeof std.jsonSchema.input === 'function' && typeof std.jsonSchema.output === 'function';\n}\n\n/**\n * Type guard to check if a value implements both StandardSchemaV1 and StandardJSONSchemaV1.\n *\n * @param value - The value to check\n * @returns True if the value implements both interfaces\n *\n * @example\n * ```typescript\n * import { isStandardSchemaWithJSON } from '@mastra/schema-compat';\n *\n * if (isStandardSchemaWithJSON(someValue)) {\n * // Can use both validation and JSON Schema conversion\n * const result = someValue['~standard'].validate(input);\n * const jsonSchema = someValue['~standard'].jsonSchema.output({ target: 'draft-07' });\n * }\n * ```\n */\nexport function isStandardSchemaWithJSON(value: unknown): value is StandardSchemaWithJSON {\n return isStandardSchema(value) && isStandardJSONSchema(value);\n}\n\n/**\n * Converts a StandardSchemaWithJSON to a JSON Schema.\n *\n * @param schema - The StandardSchemaWithJSON schema to convert\n * @param options - Conversion options\n * @param options.target - The JSON Schema target version (default: 'draft-07')\n * @param options.io - Whether to use input or output schema (default: 'output')\n * - 'input': Use for tool parameters, function arguments, request bodies\n * - 'output': Use for return types, response bodies\n * @returns The JSON Schema representation\n *\n * @example\n * ```typescript\n * import { standardSchemaToJSONSchema, toStandardSchema } from '@mastra/schema-compat';\n * import { z } from 'zod';\n *\n * const zodSchema = z.object({ name: z.string() });\n * const standardSchema = toStandardSchema(zodSchema);\n *\n * // For output types (default)\n * const outputSchema = standardSchemaToJSONSchema(standardSchema);\n *\n * // For input types (tool parameters)\n * const inputSchema = standardSchemaToJSONSchema(standardSchema, { io: 'input' });\n * ```\n */\nexport function standardSchemaToJSONSchema(\n schema: StandardSchemaWithJSON,\n options: {\n target?: StandardJSONSchemaV1.Target;\n io?: 'input' | 'output';\n override?: (typeof JSON_SCHEMA_LIBRARY_OPTIONS)['override'];\n } = {},\n): JSONSchema7 {\n const { target = 'draft-07', io = 'output', override = JSON_SCHEMA_LIBRARY_OPTIONS.override } = options;\n const jsonSchemaFn = schema['~standard'].jsonSchema[io];\n let jsonSchema = jsonSchemaFn({\n target,\n libraryOptions: {\n ...JSON_SCHEMA_LIBRARY_OPTIONS,\n override,\n },\n }) as JSONSchema7;\n\n // make sure only jsonSchema is left, no standard schema metadata\n jsonSchema = JSON.parse(JSON.stringify(jsonSchema));\n\n return jsonSchema;\n}\n"]}
@@ -24,7 +24,13 @@ function convertToJsonSchema(zodSchema, options, adapterOptions) {
24
24
  }
25
25
  var _toJSONSchema = null;
26
26
  var _toJSONSchemaResolved = false;
27
- var __require = createRequire(import.meta.url);
27
+ var __require;
28
+ function getRequire() {
29
+ if (!__require) {
30
+ __require = createRequire(import.meta.url);
31
+ }
32
+ return __require;
33
+ }
28
34
  function pickToJSONSchema(mod) {
29
35
  const candidate = mod;
30
36
  const picks = [
@@ -53,7 +59,7 @@ function getToJSONSchema() {
53
59
  if (_toJSONSchemaResolved) {
54
60
  return _toJSONSchema;
55
61
  }
56
- _toJSONSchema = resolveToJSONSchema((moduleName) => __require(moduleName));
62
+ _toJSONSchema = resolveToJSONSchema((moduleName) => getRequire()(moduleName));
57
63
  _toJSONSchemaResolved = true;
58
64
  return _toJSONSchema;
59
65
  }
@@ -192,5 +198,5 @@ function standardSchemaToJSONSchema(schema, options = {}) {
192
198
  }
193
199
 
194
200
  export { JSON_SCHEMA_LIBRARY_OPTIONS, isStandardJSONSchema, isStandardSchema, isStandardSchemaWithJSON, standardSchemaToJSONSchema, toStandardSchema5 as toStandardSchema };
195
- //# sourceMappingURL=chunk-2MMI2HGB.js.map
196
- //# sourceMappingURL=chunk-2MMI2HGB.js.map
201
+ //# sourceMappingURL=chunk-XI3YONZL.js.map
202
+ //# sourceMappingURL=chunk-XI3YONZL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/standard-schema/adapters/zod-v4.ts","../src/standard-schema/standard-schema.ts"],"names":["toStandardSchema"],"mappings":"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","file":"chunk-XI3YONZL.js","sourcesContent":["import { createRequire } from 'node:module';\nimport type { StandardSchemaV1, StandardJSONSchemaV1 } from '@standard-schema/spec';\nimport type { StandardSchemaWithJSON, StandardSchemaWithJSONProps } from '../standard-schema.types';\n\n/**\n * Supported JSON Schema targets for z.toJSONSchema().\n * Works with both real Zod v4 and Zod 3.25's v4 compat layer.\n */\nconst SUPPORTED_TARGETS = new Set(['draft-07', 'draft-04', 'draft-2020-12']);\n\n/**\n * Options for the Zod v4 adapter's JSON Schema conversion.\n */\nexport interface ZodV4AdapterOptions {\n unrepresentable?: 'any' | 'error';\n override?: (ctx: { zodSchema: unknown; jsonSchema: Record<string, unknown> }) => undefined;\n}\n\n/**\n * Converts a Zod v4 schema to JSON Schema using z.toJSONSchema().\n *\n * Works with both real Zod v4 and Zod 3.25's v4 compat layer.\n *\n * @internal\n */\nfunction convertToJsonSchema(\n zodSchema: unknown,\n options: StandardJSONSchemaV1.Options,\n adapterOptions: ZodV4AdapterOptions,\n): Record<string, unknown> {\n const toJSONSchema = getToJSONSchema();\n if (!toJSONSchema) {\n throw new Error('z.toJSONSchema is not available. Ensure zod >= 3.25.0 is installed.');\n }\n\n const target = SUPPORTED_TARGETS.has(options.target) ? options.target : 'draft-07';\n\n const jsonSchemaOptions: Record<string, unknown> = {\n target,\n };\n\n if (adapterOptions.unrepresentable) {\n jsonSchemaOptions.unrepresentable = adapterOptions.unrepresentable;\n }\n\n // The override option works in real Zod v4 but is a no-op in 3.25 compat.\n if (adapterOptions.override) {\n jsonSchemaOptions.override = adapterOptions.override;\n }\n\n return toJSONSchema(zodSchema, jsonSchemaOptions) as Record<string, unknown>;\n}\n\n/**\n * Cached reference to z.toJSONSchema.\n */\nlet _toJSONSchema: ((schema: unknown, options?: unknown) => unknown) | null = null;\nlet _toJSONSchemaResolved = false;\n\nlet __require: ReturnType<typeof createRequire>;\n\nfunction getRequire(): ReturnType<typeof createRequire> {\n if (!__require) {\n __require = createRequire(import.meta.url);\n }\n return __require;\n}\nfunction pickToJSONSchema(mod: unknown): ((schema: unknown, options?: unknown) => unknown) | null {\n const candidate = mod as {\n toJSONSchema?: unknown;\n z?: { toJSONSchema?: unknown };\n default?: { toJSONSchema?: unknown; z?: { toJSONSchema?: unknown } };\n };\n\n const picks = [\n candidate?.toJSONSchema,\n candidate?.z?.toJSONSchema,\n candidate?.default?.toJSONSchema,\n candidate?.default?.z?.toJSONSchema,\n ];\n\n const toJSONSchema = picks.find(fn => typeof fn === 'function');\n return (toJSONSchema as ((schema: unknown, options?: unknown) => unknown) | undefined) ?? null;\n}\n\nfunction resolveToJSONSchema(\n loadModule: (moduleName: 'zod/v4' | 'zod') => unknown,\n): ((schema: unknown, options?: unknown) => unknown) | null {\n for (const moduleName of ['zod/v4', 'zod'] as const) {\n try {\n const zodModule = loadModule(moduleName);\n const toJSONSchema = pickToJSONSchema(zodModule);\n if (toJSONSchema) {\n return toJSONSchema;\n }\n } catch {\n // Try next module path.\n }\n }\n\n return null;\n}\n\nfunction getToJSONSchema(): ((schema: unknown, options?: unknown) => unknown) | null {\n if (_toJSONSchemaResolved) {\n return _toJSONSchema;\n }\n\n _toJSONSchema = resolveToJSONSchema(moduleName => getRequire()(moduleName));\n _toJSONSchemaResolved = true;\n return _toJSONSchema;\n}\n\n/**\n * Wraps a Zod v4 schema to implement the full @standard-schema/spec interface.\n *\n * Zod v4 schemas (and Zod 3.25's v4 compat layer) implement `StandardSchemaV1`\n * (validation) but may not implement `StandardJSONSchemaV1` (JSON Schema conversion)\n * on the `~standard` property. This adapter adds the `jsonSchema` property using\n * `z.toJSONSchema()` to provide JSON Schema conversion capabilities.\n *\n * @param zodSchema - A Zod v4 schema (has `_zod` property)\n * @param adapterOptions - Options passed to z.toJSONSchema()\n * @returns The schema wrapped with StandardSchemaWithJSON support\n */\nexport function toStandardSchema<T>(\n zodSchema: T & { _zod: unknown; '~standard': StandardSchemaV1.Props },\n adapterOptions: ZodV4AdapterOptions = {},\n): T & StandardSchemaWithJSON {\n // Create a wrapper object that preserves the original schema's prototype chain\n const wrapper = Object.create(zodSchema) as T & StandardSchemaWithJSON;\n\n // Get the existing ~standard property from Zod\n const existingStandard = (zodSchema as any)['~standard'] as StandardSchemaV1.Props;\n\n // Create the JSON Schema converter using z.toJSONSchema()\n const jsonSchemaConverter: StandardJSONSchemaV1.Converter = {\n input: (options: StandardJSONSchemaV1.Options): Record<string, unknown> => {\n return convertToJsonSchema(zodSchema, options, adapterOptions);\n },\n output: (options: StandardJSONSchemaV1.Options): Record<string, unknown> => {\n return convertToJsonSchema(zodSchema, options, adapterOptions);\n },\n };\n\n // Define the enhanced ~standard property\n Object.defineProperty(wrapper, '~standard', {\n value: {\n ...existingStandard,\n jsonSchema: jsonSchemaConverter,\n } satisfies StandardSchemaWithJSONProps,\n writable: false,\n enumerable: true,\n configurable: false,\n });\n\n return wrapper;\n}\n","import type { Schema } from '@internal/ai-v6';\nimport type { StandardJSONSchemaV1, StandardSchemaV1 } from '@standard-schema/spec';\nimport type { JSONSchema7 } from 'json-schema';\nimport z3 from 'zod/v3';\nimport type { ZodType } from 'zod/v3';\nimport type { PublicSchema } from '../schema.types';\nimport { toStandardSchema as toStandardSchemaAiSdk } from './adapters/ai-sdk';\nimport { toStandardSchema as toStandardSchemaJsonSchema } from './adapters/json-schema';\nimport { toStandardSchema as toStandardSchemaZodV3 } from './adapters/zod-v3';\nimport { toStandardSchema as toStandardSchemaZodV4 } from './adapters/zod-v4';\nimport type { StandardSchemaWithJSON } from './standard-schema.types';\n\n/**\n * Override function for JSON Schema conversion.\n * Handles types that Zod v4 cannot natively represent in JSON Schema:\n * - z.date() -> { type: 'string', format: 'date-time' }\n */\nfunction jsonSchemaOverride(ctx: { zodSchema: unknown; jsonSchema: Record<string, unknown> }): undefined {\n const zodSchema = ctx.zodSchema as { type?: string; _zod?: { def?: { type?: string } }; optional?: () => unknown };\n\n if (\n ctx.jsonSchema.type === 'object' &&\n ctx.jsonSchema.properties !== undefined &&\n !ctx.jsonSchema.additionalProperties\n ) {\n ctx.jsonSchema.additionalProperties = false;\n }\n\n if (zodSchema) {\n // Convert z.date() to JSON Schema string with date-time format\n if (zodSchema?.type === 'date') {\n ctx.jsonSchema.type = 'string';\n ctx.jsonSchema.format = 'date-time';\n // @ts-expect-error - catchall is a valid property for zod\n } else if (zodSchema?.type === 'object' && zodSchema._zod?.def?.catchall?.type === 'unknown') {\n ctx.jsonSchema.additionalProperties = true;\n }\n }\n\n return undefined;\n}\n/**\n * Library options for JSON Schema conversion.\n * - unrepresentable: 'any' allows z.custom() and other unrepresentable types to be converted to {}\n * instead of throwing \"Custom types cannot be represented in JSON Schema\"\n * - override: converts z.date() to { type: 'string', format: 'date-time' }\n */\nexport const JSON_SCHEMA_LIBRARY_OPTIONS = {\n unrepresentable: 'any' as const,\n override: jsonSchemaOverride,\n};\n\nexport type {\n StandardSchemaWithJSON,\n StandardSchemaWithJSONProps,\n InferInput,\n InferOutput,\n StandardSchemaIssue,\n} from './standard-schema.types';\n\nfunction isVercelSchema(schema: unknown): schema is Schema {\n return (\n typeof schema === 'object' &&\n schema !== null &&\n '_type' in schema &&\n 'jsonSchema' in schema &&\n typeof (schema as Schema).jsonSchema === 'object'\n );\n}\n\n/**\n * Check if a schema is Zod v4 (has _zod property which is v4-only)\n */\nfunction isZodV4(schema: unknown): boolean {\n return typeof schema === 'object' && schema !== null && '_zod' in schema;\n}\n\n/**\n * Check if a schema is Zod v3.\n *\n * Zod v3 can come from:\n * 1. The old standalone 'zod-v3' package\n * 2. The 'zod/v3' compat export from modern zod\n *\n * We detect Zod v3 by checking:\n * - Has ~standard.vendor === 'zod' (both v3 and v4 have this)\n * - Does NOT have ~standard.jsonSchema (only Zod v4 has native JSON Schema support)\n * - Does NOT have _zod property (only Zod v4 has this)\n *\n * Note: We can't use instanceof z3.ZodType because the old 'zod-v3' package\n * has a different prototype chain than 'zod/v3'.\n */\nfunction isZodV3(schema: unknown): schema is ZodType {\n if (schema === null || typeof schema !== 'object') {\n return false;\n }\n\n // Must not be Zod v4\n if (isZodV4(schema)) {\n return false;\n }\n\n // Check for ~standard with vendor 'zod' but no jsonSchema\n if ('~standard' in schema) {\n const std = (schema as any)['~standard'];\n if (typeof std === 'object' && std !== null && std.vendor === 'zod' && !('jsonSchema' in std)) {\n return true;\n }\n }\n\n // Fallback: check instanceof for zod/v3 compat export\n return schema instanceof z3.ZodType;\n}\n\nexport function toStandardSchema<T = unknown>(schema: PublicSchema<T>): StandardSchemaWithJSON<T> {\n // First check: if already StandardSchemaWithJSON, return as-is\n // This handles ArkType, Zod v4 (when it has jsonSchema), and pre-wrapped schemas\n if (isStandardSchemaWithJSON(schema)) {\n return schema;\n }\n\n // Check for Zod v4 schemas without ~standard.jsonSchema\n // This handles both real Zod v4 and Zod 3.25's v4 compat layer where\n // ~standard.jsonSchema is not present on the schema object\n if (isZodV4(schema)) {\n return toStandardSchemaZodV4(schema as any, {\n unrepresentable: JSON_SCHEMA_LIBRARY_OPTIONS.unrepresentable,\n override: JSON_SCHEMA_LIBRARY_OPTIONS.override,\n });\n }\n\n // Check for Zod v3 schemas (need wrapping to add JSON Schema support)\n // Important: Must use isZodV3() not instanceof z3.ZodType because\n // Zod v4 schemas are also instanceof z3.ZodType due to prototype compatibility\n if (isZodV3(schema)) {\n return toStandardSchemaZodV3(schema as ZodType);\n }\n\n // Check for AI SDK Schema objects (Vercel's jsonSchema wrapper)\n if (isVercelSchema(schema)) {\n return toStandardSchemaAiSdk(schema as Schema<T>);\n }\n\n // At this point, assume it's a plain JSON Schema object\n // JSON Schema objects are plain objects with properties like 'type', 'properties', etc.\n if (schema === null || (typeof schema !== 'object' && typeof schema !== 'function')) {\n throw new Error(`Unsupported schema type: ${typeof schema}`);\n }\n\n // If it's a function that's not StandardSchemaWithJSON, it's not supported\n if (typeof schema === 'function') {\n throw new Error(`Unsupported schema type: function (schema libraries should implement StandardSchemaWithJSON)`);\n }\n\n return toStandardSchemaJsonSchema(schema as JSONSchema7);\n}\n\n/**\n * Type guard to check if a value implements the StandardSchemaV1 interface.\n *\n * @param value - The value to check\n * @returns True if the value implements StandardSchemaV1\n *\n * @example\n * ```typescript\n * import { isStandardSchema } from '@mastra/schema-compat';\n *\n * if (isStandardSchema(someValue)) {\n * const result = someValue['~standard'].validate(input);\n * }\n * ```\n */\nexport function isStandardSchema(value: unknown): value is StandardSchemaV1 {\n // Check for object or function (some libraries like ArkType use callable schemas)\n if (value === null || (typeof value !== 'object' && typeof value !== 'function')) {\n return false;\n }\n if (!('~standard' in value)) {\n return false;\n }\n const std = (value as any)['~standard'];\n return (\n typeof std === 'object' &&\n std !== null &&\n 'version' in std &&\n std.version === 1 &&\n 'vendor' in std &&\n 'validate' in std &&\n typeof std.validate === 'function'\n );\n}\n\n/**\n * Type guard to check if a value implements the StandardJSONSchemaV1 interface.\n *\n * @param value - The value to check\n * @returns True if the value implements StandardJSONSchemaV1\n *\n * @example\n * ```typescript\n * import { isStandardJSONSchema } from '@mastra/schema-compat';\n *\n * if (isStandardJSONSchema(someValue)) {\n * const jsonSchema = someValue['~standard'].jsonSchema.output({ target: 'draft-07' });\n * }\n * ```\n */\nexport function isStandardJSONSchema(value: unknown): value is StandardJSONSchemaV1 {\n // Check for object or function (some libraries like ArkType use callable schemas)\n if (value === null || (typeof value !== 'object' && typeof value !== 'function')) {\n return false;\n }\n if (!('~standard' in value)) {\n return false;\n }\n const std = (value as any)['~standard'];\n if (typeof std !== 'object' || std === null) {\n return false;\n }\n if (!('version' in std) || std.version !== 1 || !('vendor' in std)) {\n return false;\n }\n if (!('jsonSchema' in std) || typeof std.jsonSchema !== 'object') {\n return false;\n }\n return typeof std.jsonSchema.input === 'function' && typeof std.jsonSchema.output === 'function';\n}\n\n/**\n * Type guard to check if a value implements both StandardSchemaV1 and StandardJSONSchemaV1.\n *\n * @param value - The value to check\n * @returns True if the value implements both interfaces\n *\n * @example\n * ```typescript\n * import { isStandardSchemaWithJSON } from '@mastra/schema-compat';\n *\n * if (isStandardSchemaWithJSON(someValue)) {\n * // Can use both validation and JSON Schema conversion\n * const result = someValue['~standard'].validate(input);\n * const jsonSchema = someValue['~standard'].jsonSchema.output({ target: 'draft-07' });\n * }\n * ```\n */\nexport function isStandardSchemaWithJSON(value: unknown): value is StandardSchemaWithJSON {\n return isStandardSchema(value) && isStandardJSONSchema(value);\n}\n\n/**\n * Converts a StandardSchemaWithJSON to a JSON Schema.\n *\n * @param schema - The StandardSchemaWithJSON schema to convert\n * @param options - Conversion options\n * @param options.target - The JSON Schema target version (default: 'draft-07')\n * @param options.io - Whether to use input or output schema (default: 'output')\n * - 'input': Use for tool parameters, function arguments, request bodies\n * - 'output': Use for return types, response bodies\n * @returns The JSON Schema representation\n *\n * @example\n * ```typescript\n * import { standardSchemaToJSONSchema, toStandardSchema } from '@mastra/schema-compat';\n * import { z } from 'zod';\n *\n * const zodSchema = z.object({ name: z.string() });\n * const standardSchema = toStandardSchema(zodSchema);\n *\n * // For output types (default)\n * const outputSchema = standardSchemaToJSONSchema(standardSchema);\n *\n * // For input types (tool parameters)\n * const inputSchema = standardSchemaToJSONSchema(standardSchema, { io: 'input' });\n * ```\n */\nexport function standardSchemaToJSONSchema(\n schema: StandardSchemaWithJSON,\n options: {\n target?: StandardJSONSchemaV1.Target;\n io?: 'input' | 'output';\n override?: (typeof JSON_SCHEMA_LIBRARY_OPTIONS)['override'];\n } = {},\n): JSONSchema7 {\n const { target = 'draft-07', io = 'output', override = JSON_SCHEMA_LIBRARY_OPTIONS.override } = options;\n const jsonSchemaFn = schema['~standard'].jsonSchema[io];\n let jsonSchema = jsonSchemaFn({\n target,\n libraryOptions: {\n ...JSON_SCHEMA_LIBRARY_OPTIONS,\n override,\n },\n }) as JSONSchema7;\n\n // make sure only jsonSchema is left, no standard schema metadata\n jsonSchema = JSON.parse(JSON.stringify(jsonSchema));\n\n return jsonSchema;\n}\n"]}
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk5F7C53ED_cjs = require('./chunk-5F7C53ED.cjs');
3
+ var chunk2QLJVF77_cjs = require('./chunk-2QLJVF77.cjs');
4
4
  var chunkUFJG5KPA_cjs = require('./chunk-UFJG5KPA.cjs');
5
5
  var chunk3MLZICLP_cjs = require('./chunk-3MLZICLP.cjs');
6
6
  var chunkDZUJEN5N_cjs = require('./chunk-DZUJEN5N.cjs');
@@ -3608,19 +3608,19 @@ function applyCompatLayer({
3608
3608
  mode
3609
3609
  }) {
3610
3610
  if (mode === "jsonSchema") {
3611
- const standardSchema = chunk5F7C53ED_cjs.toStandardSchema(schema);
3611
+ const standardSchema = chunk2QLJVF77_cjs.toStandardSchema(schema);
3612
3612
  for (const compat of compatLayers) {
3613
3613
  if (compat.shouldApply()) {
3614
3614
  return compat.processToJSONSchema(standardSchema);
3615
3615
  }
3616
3616
  }
3617
- return chunk5F7C53ED_cjs.standardSchemaToJSONSchema(standardSchema);
3617
+ return chunk2QLJVF77_cjs.standardSchemaToJSONSchema(standardSchema);
3618
3618
  } else {
3619
3619
  let zodSchema2;
3620
3620
  if (isZodType(schema)) {
3621
3621
  zodSchema2 = schema;
3622
3622
  } else {
3623
- if (chunk5F7C53ED_cjs.isStandardSchemaWithJSON(schema)) {
3623
+ if (chunk2QLJVF77_cjs.isStandardSchemaWithJSON(schema)) {
3624
3624
  throw new Error("StandardSchemaWithJSON is not supported for applyCompatLayer and aiSdkSchema mode");
3625
3625
  }
3626
3626
  zodSchema2 = convertSchemaToZod(schema);
@@ -4777,8 +4777,8 @@ var SchemaCompatLayer3 = class {
4777
4777
  return convertZodSchemaToAISDKSchema(processedSchema, this.getSchemaTarget());
4778
4778
  }
4779
4779
  processToJSONSchema(zodSchema2, io = "input") {
4780
- const standardSchema = chunk5F7C53ED_cjs.toStandardSchema(zodSchema2);
4781
- const jsonSchema2 = chunk5F7C53ED_cjs.standardSchemaToJSONSchema(standardSchema, {
4780
+ const standardSchema = chunk2QLJVF77_cjs.toStandardSchema(zodSchema2);
4781
+ const jsonSchema2 = chunk2QLJVF77_cjs.standardSchemaToJSONSchema(standardSchema, {
4782
4782
  target: "draft-07",
4783
4783
  io
4784
4784
  // Use input mode so fields with defaults are optional
@@ -5003,8 +5003,8 @@ var SchemaCompatLayer3 = class {
5003
5003
  */
5004
5004
  toJSONSchema(zodSchema2) {
5005
5005
  const target = this.getSchemaTarget() === "jsonSchema7" ? "draft-07" : this.getSchemaTarget();
5006
- const standardSchema = chunk5F7C53ED_cjs.toStandardSchema(zodSchema2);
5007
- const jsonSchema2 = chunk5F7C53ED_cjs.standardSchemaToJSONSchema(standardSchema, {
5006
+ const standardSchema = chunk2QLJVF77_cjs.toStandardSchema(zodSchema2);
5007
+ const jsonSchema2 = chunk2QLJVF77_cjs.standardSchemaToJSONSchema(standardSchema, {
5008
5008
  target,
5009
5009
  io: "input"
5010
5010
  // Use input mode so fields with defaults are optional
@@ -5442,7 +5442,7 @@ function applyOpenAICompatTransforms(schema, modelInfo) {
5442
5442
  return schema;
5443
5443
  }
5444
5444
  const processedZodSchema = compatLayer.processZodType(zodSchema2);
5445
- return chunk5F7C53ED_cjs.toStandardSchema(processedZodSchema);
5445
+ return chunk2QLJVF77_cjs.toStandardSchema(processedZodSchema);
5446
5446
  }
5447
5447
  function applyOpenAICompatToTools(tools, modelInfo) {
5448
5448
  if (!tools) {
@@ -5746,27 +5746,27 @@ var MetaSchemaCompatLayer = class extends SchemaCompatLayer3 {
5746
5746
 
5747
5747
  Object.defineProperty(exports, "JSON_SCHEMA_LIBRARY_OPTIONS", {
5748
5748
  enumerable: true,
5749
- get: function () { return chunk5F7C53ED_cjs.JSON_SCHEMA_LIBRARY_OPTIONS; }
5749
+ get: function () { return chunk2QLJVF77_cjs.JSON_SCHEMA_LIBRARY_OPTIONS; }
5750
5750
  });
5751
5751
  Object.defineProperty(exports, "isStandardJSONSchema", {
5752
5752
  enumerable: true,
5753
- get: function () { return chunk5F7C53ED_cjs.isStandardJSONSchema; }
5753
+ get: function () { return chunk2QLJVF77_cjs.isStandardJSONSchema; }
5754
5754
  });
5755
5755
  Object.defineProperty(exports, "isStandardSchema", {
5756
5756
  enumerable: true,
5757
- get: function () { return chunk5F7C53ED_cjs.isStandardSchema; }
5757
+ get: function () { return chunk2QLJVF77_cjs.isStandardSchema; }
5758
5758
  });
5759
5759
  Object.defineProperty(exports, "isStandardSchemaWithJSON", {
5760
5760
  enumerable: true,
5761
- get: function () { return chunk5F7C53ED_cjs.isStandardSchemaWithJSON; }
5761
+ get: function () { return chunk2QLJVF77_cjs.isStandardSchemaWithJSON; }
5762
5762
  });
5763
5763
  Object.defineProperty(exports, "standardSchemaToJSONSchema", {
5764
5764
  enumerable: true,
5765
- get: function () { return chunk5F7C53ED_cjs.standardSchemaToJSONSchema; }
5765
+ get: function () { return chunk2QLJVF77_cjs.standardSchemaToJSONSchema; }
5766
5766
  });
5767
5767
  Object.defineProperty(exports, "toStandardSchema", {
5768
5768
  enumerable: true,
5769
- get: function () { return chunk5F7C53ED_cjs.toStandardSchema; }
5769
+ get: function () { return chunk2QLJVF77_cjs.toStandardSchema; }
5770
5770
  });
5771
5771
  Object.defineProperty(exports, "ensureAllPropertiesRequired", {
5772
5772
  enumerable: true,
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { toStandardSchema, standardSchemaToJSONSchema, isStandardSchemaWithJSON } from './chunk-2MMI2HGB.js';
2
- export { JSON_SCHEMA_LIBRARY_OPTIONS, isStandardJSONSchema, isStandardSchema, isStandardSchemaWithJSON, standardSchemaToJSONSchema, toStandardSchema } from './chunk-2MMI2HGB.js';
1
+ import { toStandardSchema, standardSchemaToJSONSchema, isStandardSchemaWithJSON } from './chunk-XI3YONZL.js';
2
+ export { JSON_SCHEMA_LIBRARY_OPTIONS, isStandardJSONSchema, isStandardSchema, isStandardSchemaWithJSON, standardSchemaToJSONSchema, toStandardSchema } from './chunk-XI3YONZL.js';
3
3
  import { zodToJsonSchema, ensureAllPropertiesRequired } from './chunk-7ZCSAPV3.js';
4
4
  export { ensureAllPropertiesRequired, prepareJsonSchemaForOpenAIStrictMode } from './chunk-7ZCSAPV3.js';
5
5
  import { require_json_schema_traverse } from './chunk-K7I3YXWP.js';
package/dist/schema.cjs CHANGED
@@ -1,32 +1,32 @@
1
1
  'use strict';
2
2
 
3
- var chunk5F7C53ED_cjs = require('./chunk-5F7C53ED.cjs');
3
+ var chunk2QLJVF77_cjs = require('./chunk-2QLJVF77.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "JSON_SCHEMA_LIBRARY_OPTIONS", {
8
8
  enumerable: true,
9
- get: function () { return chunk5F7C53ED_cjs.JSON_SCHEMA_LIBRARY_OPTIONS; }
9
+ get: function () { return chunk2QLJVF77_cjs.JSON_SCHEMA_LIBRARY_OPTIONS; }
10
10
  });
11
11
  Object.defineProperty(exports, "isStandardJSONSchema", {
12
12
  enumerable: true,
13
- get: function () { return chunk5F7C53ED_cjs.isStandardJSONSchema; }
13
+ get: function () { return chunk2QLJVF77_cjs.isStandardJSONSchema; }
14
14
  });
15
15
  Object.defineProperty(exports, "isStandardSchema", {
16
16
  enumerable: true,
17
- get: function () { return chunk5F7C53ED_cjs.isStandardSchema; }
17
+ get: function () { return chunk2QLJVF77_cjs.isStandardSchema; }
18
18
  });
19
19
  Object.defineProperty(exports, "isStandardSchemaWithJSON", {
20
20
  enumerable: true,
21
- get: function () { return chunk5F7C53ED_cjs.isStandardSchemaWithJSON; }
21
+ get: function () { return chunk2QLJVF77_cjs.isStandardSchemaWithJSON; }
22
22
  });
23
23
  Object.defineProperty(exports, "standardSchemaToJSONSchema", {
24
24
  enumerable: true,
25
- get: function () { return chunk5F7C53ED_cjs.standardSchemaToJSONSchema; }
25
+ get: function () { return chunk2QLJVF77_cjs.standardSchemaToJSONSchema; }
26
26
  });
27
27
  Object.defineProperty(exports, "toStandardSchema", {
28
28
  enumerable: true,
29
- get: function () { return chunk5F7C53ED_cjs.toStandardSchema; }
29
+ get: function () { return chunk2QLJVF77_cjs.toStandardSchema; }
30
30
  });
31
31
  //# sourceMappingURL=schema.cjs.map
32
32
  //# sourceMappingURL=schema.cjs.map
package/dist/schema.js CHANGED
@@ -1,3 +1,3 @@
1
- export { JSON_SCHEMA_LIBRARY_OPTIONS, isStandardJSONSchema, isStandardSchema, isStandardSchemaWithJSON, standardSchemaToJSONSchema, toStandardSchema } from './chunk-2MMI2HGB.js';
1
+ export { JSON_SCHEMA_LIBRARY_OPTIONS, isStandardJSONSchema, isStandardSchema, isStandardSchemaWithJSON, standardSchemaToJSONSchema, toStandardSchema } from './chunk-XI3YONZL.js';
2
2
  //# sourceMappingURL=schema.js.map
3
3
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod-v4.d.ts","sourceRoot":"","sources":["../../../src/standard-schema/adapters/zod-v4.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAwB,MAAM,uBAAuB,CAAC;AACpF,OAAO,KAAK,EAAE,sBAAsB,EAA+B,MAAM,0BAA0B,CAAC;AAQpG;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,SAAS,CAAC;CAC5F;AA0FD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,SAAS,EAAE,CAAC,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAA;CAAE,EACrE,cAAc,GAAE,mBAAwB,GACvC,CAAC,GAAG,sBAAsB,CA6B5B"}
1
+ {"version":3,"file":"zod-v4.d.ts","sourceRoot":"","sources":["../../../src/standard-schema/adapters/zod-v4.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAwB,MAAM,uBAAuB,CAAC;AACpF,OAAO,KAAK,EAAE,sBAAsB,EAA+B,MAAM,0BAA0B,CAAC;AAQpG;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,SAAS,CAAC;CAC5F;AAiGD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,SAAS,EAAE,CAAC,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAA;CAAE,EACrE,cAAc,GAAE,mBAAwB,GACvC,CAAC,GAAG,sBAAsB,CA6B5B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/schema-compat",
3
- "version": "1.2.3",
3
+ "version": "1.2.4-alpha.0",
4
4
  "description": "Tool schema compatibility layer for Mastra.ai",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -117,8 +117,8 @@
117
117
  "zod-v3": "npm:zod@^3.0.0",
118
118
  "@internal/ai-sdk-v4": "0.0.17",
119
119
  "@internal/ai-sdk-v5": "0.0.17",
120
- "@internal/lint": "0.0.70",
121
120
  "@internal/ai-v6": "0.0.17",
121
+ "@internal/lint": "0.0.70",
122
122
  "@internal/types-builder": "0.0.45"
123
123
  },
124
124
  "homepage": "https://mastra.ai",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/standard-schema/adapters/zod-v4.ts","../src/standard-schema/standard-schema.ts"],"names":["toStandardSchema"],"mappings":"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","file":"chunk-2MMI2HGB.js","sourcesContent":["import { createRequire } from 'node:module';\nimport type { StandardSchemaV1, StandardJSONSchemaV1 } from '@standard-schema/spec';\nimport type { StandardSchemaWithJSON, StandardSchemaWithJSONProps } from '../standard-schema.types';\n\n/**\n * Supported JSON Schema targets for z.toJSONSchema().\n * Works with both real Zod v4 and Zod 3.25's v4 compat layer.\n */\nconst SUPPORTED_TARGETS = new Set(['draft-07', 'draft-04', 'draft-2020-12']);\n\n/**\n * Options for the Zod v4 adapter's JSON Schema conversion.\n */\nexport interface ZodV4AdapterOptions {\n unrepresentable?: 'any' | 'error';\n override?: (ctx: { zodSchema: unknown; jsonSchema: Record<string, unknown> }) => undefined;\n}\n\n/**\n * Converts a Zod v4 schema to JSON Schema using z.toJSONSchema().\n *\n * Works with both real Zod v4 and Zod 3.25's v4 compat layer.\n *\n * @internal\n */\nfunction convertToJsonSchema(\n zodSchema: unknown,\n options: StandardJSONSchemaV1.Options,\n adapterOptions: ZodV4AdapterOptions,\n): Record<string, unknown> {\n const toJSONSchema = getToJSONSchema();\n if (!toJSONSchema) {\n throw new Error('z.toJSONSchema is not available. Ensure zod >= 3.25.0 is installed.');\n }\n\n const target = SUPPORTED_TARGETS.has(options.target) ? options.target : 'draft-07';\n\n const jsonSchemaOptions: Record<string, unknown> = {\n target,\n };\n\n if (adapterOptions.unrepresentable) {\n jsonSchemaOptions.unrepresentable = adapterOptions.unrepresentable;\n }\n\n // The override option works in real Zod v4 but is a no-op in 3.25 compat.\n if (adapterOptions.override) {\n jsonSchemaOptions.override = adapterOptions.override;\n }\n\n return toJSONSchema(zodSchema, jsonSchemaOptions) as Record<string, unknown>;\n}\n\n/**\n * Cached reference to z.toJSONSchema.\n */\nlet _toJSONSchema: ((schema: unknown, options?: unknown) => unknown) | null = null;\nlet _toJSONSchemaResolved = false;\nconst __require = createRequire(import.meta.url);\n\nfunction pickToJSONSchema(mod: unknown): ((schema: unknown, options?: unknown) => unknown) | null {\n const candidate = mod as {\n toJSONSchema?: unknown;\n z?: { toJSONSchema?: unknown };\n default?: { toJSONSchema?: unknown; z?: { toJSONSchema?: unknown } };\n };\n\n const picks = [\n candidate?.toJSONSchema,\n candidate?.z?.toJSONSchema,\n candidate?.default?.toJSONSchema,\n candidate?.default?.z?.toJSONSchema,\n ];\n\n const toJSONSchema = picks.find(fn => typeof fn === 'function');\n return (toJSONSchema as ((schema: unknown, options?: unknown) => unknown) | undefined) ?? null;\n}\n\nfunction resolveToJSONSchema(\n loadModule: (moduleName: 'zod/v4' | 'zod') => unknown,\n): ((schema: unknown, options?: unknown) => unknown) | null {\n for (const moduleName of ['zod/v4', 'zod'] as const) {\n try {\n const zodModule = loadModule(moduleName);\n const toJSONSchema = pickToJSONSchema(zodModule);\n if (toJSONSchema) {\n return toJSONSchema;\n }\n } catch {\n // Try next module path.\n }\n }\n\n return null;\n}\n\nfunction getToJSONSchema(): ((schema: unknown, options?: unknown) => unknown) | null {\n if (_toJSONSchemaResolved) {\n return _toJSONSchema;\n }\n\n _toJSONSchema = resolveToJSONSchema(moduleName => __require(moduleName));\n _toJSONSchemaResolved = true;\n return _toJSONSchema;\n}\n\n/**\n * Wraps a Zod v4 schema to implement the full @standard-schema/spec interface.\n *\n * Zod v4 schemas (and Zod 3.25's v4 compat layer) implement `StandardSchemaV1`\n * (validation) but may not implement `StandardJSONSchemaV1` (JSON Schema conversion)\n * on the `~standard` property. This adapter adds the `jsonSchema` property using\n * `z.toJSONSchema()` to provide JSON Schema conversion capabilities.\n *\n * @param zodSchema - A Zod v4 schema (has `_zod` property)\n * @param adapterOptions - Options passed to z.toJSONSchema()\n * @returns The schema wrapped with StandardSchemaWithJSON support\n */\nexport function toStandardSchema<T>(\n zodSchema: T & { _zod: unknown; '~standard': StandardSchemaV1.Props },\n adapterOptions: ZodV4AdapterOptions = {},\n): T & StandardSchemaWithJSON {\n // Create a wrapper object that preserves the original schema's prototype chain\n const wrapper = Object.create(zodSchema) as T & StandardSchemaWithJSON;\n\n // Get the existing ~standard property from Zod\n const existingStandard = (zodSchema as any)['~standard'] as StandardSchemaV1.Props;\n\n // Create the JSON Schema converter using z.toJSONSchema()\n const jsonSchemaConverter: StandardJSONSchemaV1.Converter = {\n input: (options: StandardJSONSchemaV1.Options): Record<string, unknown> => {\n return convertToJsonSchema(zodSchema, options, adapterOptions);\n },\n output: (options: StandardJSONSchemaV1.Options): Record<string, unknown> => {\n return convertToJsonSchema(zodSchema, options, adapterOptions);\n },\n };\n\n // Define the enhanced ~standard property\n Object.defineProperty(wrapper, '~standard', {\n value: {\n ...existingStandard,\n jsonSchema: jsonSchemaConverter,\n } satisfies StandardSchemaWithJSONProps,\n writable: false,\n enumerable: true,\n configurable: false,\n });\n\n return wrapper;\n}\n","import type { Schema } from '@internal/ai-v6';\nimport type { StandardJSONSchemaV1, StandardSchemaV1 } from '@standard-schema/spec';\nimport type { JSONSchema7 } from 'json-schema';\nimport z3 from 'zod/v3';\nimport type { ZodType } from 'zod/v3';\nimport type { PublicSchema } from '../schema.types';\nimport { toStandardSchema as toStandardSchemaAiSdk } from './adapters/ai-sdk';\nimport { toStandardSchema as toStandardSchemaJsonSchema } from './adapters/json-schema';\nimport { toStandardSchema as toStandardSchemaZodV3 } from './adapters/zod-v3';\nimport { toStandardSchema as toStandardSchemaZodV4 } from './adapters/zod-v4';\nimport type { StandardSchemaWithJSON } from './standard-schema.types';\n\n/**\n * Override function for JSON Schema conversion.\n * Handles types that Zod v4 cannot natively represent in JSON Schema:\n * - z.date() -> { type: 'string', format: 'date-time' }\n */\nfunction jsonSchemaOverride(ctx: { zodSchema: unknown; jsonSchema: Record<string, unknown> }): undefined {\n const zodSchema = ctx.zodSchema as { type?: string; _zod?: { def?: { type?: string } }; optional?: () => unknown };\n\n if (\n ctx.jsonSchema.type === 'object' &&\n ctx.jsonSchema.properties !== undefined &&\n !ctx.jsonSchema.additionalProperties\n ) {\n ctx.jsonSchema.additionalProperties = false;\n }\n\n if (zodSchema) {\n // Convert z.date() to JSON Schema string with date-time format\n if (zodSchema?.type === 'date') {\n ctx.jsonSchema.type = 'string';\n ctx.jsonSchema.format = 'date-time';\n // @ts-expect-error - catchall is a valid property for zod\n } else if (zodSchema?.type === 'object' && zodSchema._zod?.def?.catchall?.type === 'unknown') {\n ctx.jsonSchema.additionalProperties = true;\n }\n }\n\n return undefined;\n}\n/**\n * Library options for JSON Schema conversion.\n * - unrepresentable: 'any' allows z.custom() and other unrepresentable types to be converted to {}\n * instead of throwing \"Custom types cannot be represented in JSON Schema\"\n * - override: converts z.date() to { type: 'string', format: 'date-time' }\n */\nexport const JSON_SCHEMA_LIBRARY_OPTIONS = {\n unrepresentable: 'any' as const,\n override: jsonSchemaOverride,\n};\n\nexport type {\n StandardSchemaWithJSON,\n StandardSchemaWithJSONProps,\n InferInput,\n InferOutput,\n StandardSchemaIssue,\n} from './standard-schema.types';\n\nfunction isVercelSchema(schema: unknown): schema is Schema {\n return (\n typeof schema === 'object' &&\n schema !== null &&\n '_type' in schema &&\n 'jsonSchema' in schema &&\n typeof (schema as Schema).jsonSchema === 'object'\n );\n}\n\n/**\n * Check if a schema is Zod v4 (has _zod property which is v4-only)\n */\nfunction isZodV4(schema: unknown): boolean {\n return typeof schema === 'object' && schema !== null && '_zod' in schema;\n}\n\n/**\n * Check if a schema is Zod v3.\n *\n * Zod v3 can come from:\n * 1. The old standalone 'zod-v3' package\n * 2. The 'zod/v3' compat export from modern zod\n *\n * We detect Zod v3 by checking:\n * - Has ~standard.vendor === 'zod' (both v3 and v4 have this)\n * - Does NOT have ~standard.jsonSchema (only Zod v4 has native JSON Schema support)\n * - Does NOT have _zod property (only Zod v4 has this)\n *\n * Note: We can't use instanceof z3.ZodType because the old 'zod-v3' package\n * has a different prototype chain than 'zod/v3'.\n */\nfunction isZodV3(schema: unknown): schema is ZodType {\n if (schema === null || typeof schema !== 'object') {\n return false;\n }\n\n // Must not be Zod v4\n if (isZodV4(schema)) {\n return false;\n }\n\n // Check for ~standard with vendor 'zod' but no jsonSchema\n if ('~standard' in schema) {\n const std = (schema as any)['~standard'];\n if (typeof std === 'object' && std !== null && std.vendor === 'zod' && !('jsonSchema' in std)) {\n return true;\n }\n }\n\n // Fallback: check instanceof for zod/v3 compat export\n return schema instanceof z3.ZodType;\n}\n\nexport function toStandardSchema<T = unknown>(schema: PublicSchema<T>): StandardSchemaWithJSON<T> {\n // First check: if already StandardSchemaWithJSON, return as-is\n // This handles ArkType, Zod v4 (when it has jsonSchema), and pre-wrapped schemas\n if (isStandardSchemaWithJSON(schema)) {\n return schema;\n }\n\n // Check for Zod v4 schemas without ~standard.jsonSchema\n // This handles both real Zod v4 and Zod 3.25's v4 compat layer where\n // ~standard.jsonSchema is not present on the schema object\n if (isZodV4(schema)) {\n return toStandardSchemaZodV4(schema as any, {\n unrepresentable: JSON_SCHEMA_LIBRARY_OPTIONS.unrepresentable,\n override: JSON_SCHEMA_LIBRARY_OPTIONS.override,\n });\n }\n\n // Check for Zod v3 schemas (need wrapping to add JSON Schema support)\n // Important: Must use isZodV3() not instanceof z3.ZodType because\n // Zod v4 schemas are also instanceof z3.ZodType due to prototype compatibility\n if (isZodV3(schema)) {\n return toStandardSchemaZodV3(schema as ZodType);\n }\n\n // Check for AI SDK Schema objects (Vercel's jsonSchema wrapper)\n if (isVercelSchema(schema)) {\n return toStandardSchemaAiSdk(schema as Schema<T>);\n }\n\n // At this point, assume it's a plain JSON Schema object\n // JSON Schema objects are plain objects with properties like 'type', 'properties', etc.\n if (schema === null || (typeof schema !== 'object' && typeof schema !== 'function')) {\n throw new Error(`Unsupported schema type: ${typeof schema}`);\n }\n\n // If it's a function that's not StandardSchemaWithJSON, it's not supported\n if (typeof schema === 'function') {\n throw new Error(`Unsupported schema type: function (schema libraries should implement StandardSchemaWithJSON)`);\n }\n\n return toStandardSchemaJsonSchema(schema as JSONSchema7);\n}\n\n/**\n * Type guard to check if a value implements the StandardSchemaV1 interface.\n *\n * @param value - The value to check\n * @returns True if the value implements StandardSchemaV1\n *\n * @example\n * ```typescript\n * import { isStandardSchema } from '@mastra/schema-compat';\n *\n * if (isStandardSchema(someValue)) {\n * const result = someValue['~standard'].validate(input);\n * }\n * ```\n */\nexport function isStandardSchema(value: unknown): value is StandardSchemaV1 {\n // Check for object or function (some libraries like ArkType use callable schemas)\n if (value === null || (typeof value !== 'object' && typeof value !== 'function')) {\n return false;\n }\n if (!('~standard' in value)) {\n return false;\n }\n const std = (value as any)['~standard'];\n return (\n typeof std === 'object' &&\n std !== null &&\n 'version' in std &&\n std.version === 1 &&\n 'vendor' in std &&\n 'validate' in std &&\n typeof std.validate === 'function'\n );\n}\n\n/**\n * Type guard to check if a value implements the StandardJSONSchemaV1 interface.\n *\n * @param value - The value to check\n * @returns True if the value implements StandardJSONSchemaV1\n *\n * @example\n * ```typescript\n * import { isStandardJSONSchema } from '@mastra/schema-compat';\n *\n * if (isStandardJSONSchema(someValue)) {\n * const jsonSchema = someValue['~standard'].jsonSchema.output({ target: 'draft-07' });\n * }\n * ```\n */\nexport function isStandardJSONSchema(value: unknown): value is StandardJSONSchemaV1 {\n // Check for object or function (some libraries like ArkType use callable schemas)\n if (value === null || (typeof value !== 'object' && typeof value !== 'function')) {\n return false;\n }\n if (!('~standard' in value)) {\n return false;\n }\n const std = (value as any)['~standard'];\n if (typeof std !== 'object' || std === null) {\n return false;\n }\n if (!('version' in std) || std.version !== 1 || !('vendor' in std)) {\n return false;\n }\n if (!('jsonSchema' in std) || typeof std.jsonSchema !== 'object') {\n return false;\n }\n return typeof std.jsonSchema.input === 'function' && typeof std.jsonSchema.output === 'function';\n}\n\n/**\n * Type guard to check if a value implements both StandardSchemaV1 and StandardJSONSchemaV1.\n *\n * @param value - The value to check\n * @returns True if the value implements both interfaces\n *\n * @example\n * ```typescript\n * import { isStandardSchemaWithJSON } from '@mastra/schema-compat';\n *\n * if (isStandardSchemaWithJSON(someValue)) {\n * // Can use both validation and JSON Schema conversion\n * const result = someValue['~standard'].validate(input);\n * const jsonSchema = someValue['~standard'].jsonSchema.output({ target: 'draft-07' });\n * }\n * ```\n */\nexport function isStandardSchemaWithJSON(value: unknown): value is StandardSchemaWithJSON {\n return isStandardSchema(value) && isStandardJSONSchema(value);\n}\n\n/**\n * Converts a StandardSchemaWithJSON to a JSON Schema.\n *\n * @param schema - The StandardSchemaWithJSON schema to convert\n * @param options - Conversion options\n * @param options.target - The JSON Schema target version (default: 'draft-07')\n * @param options.io - Whether to use input or output schema (default: 'output')\n * - 'input': Use for tool parameters, function arguments, request bodies\n * - 'output': Use for return types, response bodies\n * @returns The JSON Schema representation\n *\n * @example\n * ```typescript\n * import { standardSchemaToJSONSchema, toStandardSchema } from '@mastra/schema-compat';\n * import { z } from 'zod';\n *\n * const zodSchema = z.object({ name: z.string() });\n * const standardSchema = toStandardSchema(zodSchema);\n *\n * // For output types (default)\n * const outputSchema = standardSchemaToJSONSchema(standardSchema);\n *\n * // For input types (tool parameters)\n * const inputSchema = standardSchemaToJSONSchema(standardSchema, { io: 'input' });\n * ```\n */\nexport function standardSchemaToJSONSchema(\n schema: StandardSchemaWithJSON,\n options: {\n target?: StandardJSONSchemaV1.Target;\n io?: 'input' | 'output';\n override?: (typeof JSON_SCHEMA_LIBRARY_OPTIONS)['override'];\n } = {},\n): JSONSchema7 {\n const { target = 'draft-07', io = 'output', override = JSON_SCHEMA_LIBRARY_OPTIONS.override } = options;\n const jsonSchemaFn = schema['~standard'].jsonSchema[io];\n let jsonSchema = jsonSchemaFn({\n target,\n libraryOptions: {\n ...JSON_SCHEMA_LIBRARY_OPTIONS,\n override,\n },\n }) as JSONSchema7;\n\n // make sure only jsonSchema is left, no standard schema metadata\n jsonSchema = JSON.parse(JSON.stringify(jsonSchema));\n\n return jsonSchema;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/standard-schema/adapters/zod-v4.ts","../src/standard-schema/standard-schema.ts"],"names":["createRequire","toStandardSchema","z3"],"mappings":"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","file":"chunk-5F7C53ED.cjs","sourcesContent":["import { createRequire } from 'node:module';\nimport type { StandardSchemaV1, StandardJSONSchemaV1 } from '@standard-schema/spec';\nimport type { StandardSchemaWithJSON, StandardSchemaWithJSONProps } from '../standard-schema.types';\n\n/**\n * Supported JSON Schema targets for z.toJSONSchema().\n * Works with both real Zod v4 and Zod 3.25's v4 compat layer.\n */\nconst SUPPORTED_TARGETS = new Set(['draft-07', 'draft-04', 'draft-2020-12']);\n\n/**\n * Options for the Zod v4 adapter's JSON Schema conversion.\n */\nexport interface ZodV4AdapterOptions {\n unrepresentable?: 'any' | 'error';\n override?: (ctx: { zodSchema: unknown; jsonSchema: Record<string, unknown> }) => undefined;\n}\n\n/**\n * Converts a Zod v4 schema to JSON Schema using z.toJSONSchema().\n *\n * Works with both real Zod v4 and Zod 3.25's v4 compat layer.\n *\n * @internal\n */\nfunction convertToJsonSchema(\n zodSchema: unknown,\n options: StandardJSONSchemaV1.Options,\n adapterOptions: ZodV4AdapterOptions,\n): Record<string, unknown> {\n const toJSONSchema = getToJSONSchema();\n if (!toJSONSchema) {\n throw new Error('z.toJSONSchema is not available. Ensure zod >= 3.25.0 is installed.');\n }\n\n const target = SUPPORTED_TARGETS.has(options.target) ? options.target : 'draft-07';\n\n const jsonSchemaOptions: Record<string, unknown> = {\n target,\n };\n\n if (adapterOptions.unrepresentable) {\n jsonSchemaOptions.unrepresentable = adapterOptions.unrepresentable;\n }\n\n // The override option works in real Zod v4 but is a no-op in 3.25 compat.\n if (adapterOptions.override) {\n jsonSchemaOptions.override = adapterOptions.override;\n }\n\n return toJSONSchema(zodSchema, jsonSchemaOptions) as Record<string, unknown>;\n}\n\n/**\n * Cached reference to z.toJSONSchema.\n */\nlet _toJSONSchema: ((schema: unknown, options?: unknown) => unknown) | null = null;\nlet _toJSONSchemaResolved = false;\nconst __require = createRequire(import.meta.url);\n\nfunction pickToJSONSchema(mod: unknown): ((schema: unknown, options?: unknown) => unknown) | null {\n const candidate = mod as {\n toJSONSchema?: unknown;\n z?: { toJSONSchema?: unknown };\n default?: { toJSONSchema?: unknown; z?: { toJSONSchema?: unknown } };\n };\n\n const picks = [\n candidate?.toJSONSchema,\n candidate?.z?.toJSONSchema,\n candidate?.default?.toJSONSchema,\n candidate?.default?.z?.toJSONSchema,\n ];\n\n const toJSONSchema = picks.find(fn => typeof fn === 'function');\n return (toJSONSchema as ((schema: unknown, options?: unknown) => unknown) | undefined) ?? null;\n}\n\nfunction resolveToJSONSchema(\n loadModule: (moduleName: 'zod/v4' | 'zod') => unknown,\n): ((schema: unknown, options?: unknown) => unknown) | null {\n for (const moduleName of ['zod/v4', 'zod'] as const) {\n try {\n const zodModule = loadModule(moduleName);\n const toJSONSchema = pickToJSONSchema(zodModule);\n if (toJSONSchema) {\n return toJSONSchema;\n }\n } catch {\n // Try next module path.\n }\n }\n\n return null;\n}\n\nfunction getToJSONSchema(): ((schema: unknown, options?: unknown) => unknown) | null {\n if (_toJSONSchemaResolved) {\n return _toJSONSchema;\n }\n\n _toJSONSchema = resolveToJSONSchema(moduleName => __require(moduleName));\n _toJSONSchemaResolved = true;\n return _toJSONSchema;\n}\n\n/**\n * Wraps a Zod v4 schema to implement the full @standard-schema/spec interface.\n *\n * Zod v4 schemas (and Zod 3.25's v4 compat layer) implement `StandardSchemaV1`\n * (validation) but may not implement `StandardJSONSchemaV1` (JSON Schema conversion)\n * on the `~standard` property. This adapter adds the `jsonSchema` property using\n * `z.toJSONSchema()` to provide JSON Schema conversion capabilities.\n *\n * @param zodSchema - A Zod v4 schema (has `_zod` property)\n * @param adapterOptions - Options passed to z.toJSONSchema()\n * @returns The schema wrapped with StandardSchemaWithJSON support\n */\nexport function toStandardSchema<T>(\n zodSchema: T & { _zod: unknown; '~standard': StandardSchemaV1.Props },\n adapterOptions: ZodV4AdapterOptions = {},\n): T & StandardSchemaWithJSON {\n // Create a wrapper object that preserves the original schema's prototype chain\n const wrapper = Object.create(zodSchema) as T & StandardSchemaWithJSON;\n\n // Get the existing ~standard property from Zod\n const existingStandard = (zodSchema as any)['~standard'] as StandardSchemaV1.Props;\n\n // Create the JSON Schema converter using z.toJSONSchema()\n const jsonSchemaConverter: StandardJSONSchemaV1.Converter = {\n input: (options: StandardJSONSchemaV1.Options): Record<string, unknown> => {\n return convertToJsonSchema(zodSchema, options, adapterOptions);\n },\n output: (options: StandardJSONSchemaV1.Options): Record<string, unknown> => {\n return convertToJsonSchema(zodSchema, options, adapterOptions);\n },\n };\n\n // Define the enhanced ~standard property\n Object.defineProperty(wrapper, '~standard', {\n value: {\n ...existingStandard,\n jsonSchema: jsonSchemaConverter,\n } satisfies StandardSchemaWithJSONProps,\n writable: false,\n enumerable: true,\n configurable: false,\n });\n\n return wrapper;\n}\n","import type { Schema } from '@internal/ai-v6';\nimport type { StandardJSONSchemaV1, StandardSchemaV1 } from '@standard-schema/spec';\nimport type { JSONSchema7 } from 'json-schema';\nimport z3 from 'zod/v3';\nimport type { ZodType } from 'zod/v3';\nimport type { PublicSchema } from '../schema.types';\nimport { toStandardSchema as toStandardSchemaAiSdk } from './adapters/ai-sdk';\nimport { toStandardSchema as toStandardSchemaJsonSchema } from './adapters/json-schema';\nimport { toStandardSchema as toStandardSchemaZodV3 } from './adapters/zod-v3';\nimport { toStandardSchema as toStandardSchemaZodV4 } from './adapters/zod-v4';\nimport type { StandardSchemaWithJSON } from './standard-schema.types';\n\n/**\n * Override function for JSON Schema conversion.\n * Handles types that Zod v4 cannot natively represent in JSON Schema:\n * - z.date() -> { type: 'string', format: 'date-time' }\n */\nfunction jsonSchemaOverride(ctx: { zodSchema: unknown; jsonSchema: Record<string, unknown> }): undefined {\n const zodSchema = ctx.zodSchema as { type?: string; _zod?: { def?: { type?: string } }; optional?: () => unknown };\n\n if (\n ctx.jsonSchema.type === 'object' &&\n ctx.jsonSchema.properties !== undefined &&\n !ctx.jsonSchema.additionalProperties\n ) {\n ctx.jsonSchema.additionalProperties = false;\n }\n\n if (zodSchema) {\n // Convert z.date() to JSON Schema string with date-time format\n if (zodSchema?.type === 'date') {\n ctx.jsonSchema.type = 'string';\n ctx.jsonSchema.format = 'date-time';\n // @ts-expect-error - catchall is a valid property for zod\n } else if (zodSchema?.type === 'object' && zodSchema._zod?.def?.catchall?.type === 'unknown') {\n ctx.jsonSchema.additionalProperties = true;\n }\n }\n\n return undefined;\n}\n/**\n * Library options for JSON Schema conversion.\n * - unrepresentable: 'any' allows z.custom() and other unrepresentable types to be converted to {}\n * instead of throwing \"Custom types cannot be represented in JSON Schema\"\n * - override: converts z.date() to { type: 'string', format: 'date-time' }\n */\nexport const JSON_SCHEMA_LIBRARY_OPTIONS = {\n unrepresentable: 'any' as const,\n override: jsonSchemaOverride,\n};\n\nexport type {\n StandardSchemaWithJSON,\n StandardSchemaWithJSONProps,\n InferInput,\n InferOutput,\n StandardSchemaIssue,\n} from './standard-schema.types';\n\nfunction isVercelSchema(schema: unknown): schema is Schema {\n return (\n typeof schema === 'object' &&\n schema !== null &&\n '_type' in schema &&\n 'jsonSchema' in schema &&\n typeof (schema as Schema).jsonSchema === 'object'\n );\n}\n\n/**\n * Check if a schema is Zod v4 (has _zod property which is v4-only)\n */\nfunction isZodV4(schema: unknown): boolean {\n return typeof schema === 'object' && schema !== null && '_zod' in schema;\n}\n\n/**\n * Check if a schema is Zod v3.\n *\n * Zod v3 can come from:\n * 1. The old standalone 'zod-v3' package\n * 2. The 'zod/v3' compat export from modern zod\n *\n * We detect Zod v3 by checking:\n * - Has ~standard.vendor === 'zod' (both v3 and v4 have this)\n * - Does NOT have ~standard.jsonSchema (only Zod v4 has native JSON Schema support)\n * - Does NOT have _zod property (only Zod v4 has this)\n *\n * Note: We can't use instanceof z3.ZodType because the old 'zod-v3' package\n * has a different prototype chain than 'zod/v3'.\n */\nfunction isZodV3(schema: unknown): schema is ZodType {\n if (schema === null || typeof schema !== 'object') {\n return false;\n }\n\n // Must not be Zod v4\n if (isZodV4(schema)) {\n return false;\n }\n\n // Check for ~standard with vendor 'zod' but no jsonSchema\n if ('~standard' in schema) {\n const std = (schema as any)['~standard'];\n if (typeof std === 'object' && std !== null && std.vendor === 'zod' && !('jsonSchema' in std)) {\n return true;\n }\n }\n\n // Fallback: check instanceof for zod/v3 compat export\n return schema instanceof z3.ZodType;\n}\n\nexport function toStandardSchema<T = unknown>(schema: PublicSchema<T>): StandardSchemaWithJSON<T> {\n // First check: if already StandardSchemaWithJSON, return as-is\n // This handles ArkType, Zod v4 (when it has jsonSchema), and pre-wrapped schemas\n if (isStandardSchemaWithJSON(schema)) {\n return schema;\n }\n\n // Check for Zod v4 schemas without ~standard.jsonSchema\n // This handles both real Zod v4 and Zod 3.25's v4 compat layer where\n // ~standard.jsonSchema is not present on the schema object\n if (isZodV4(schema)) {\n return toStandardSchemaZodV4(schema as any, {\n unrepresentable: JSON_SCHEMA_LIBRARY_OPTIONS.unrepresentable,\n override: JSON_SCHEMA_LIBRARY_OPTIONS.override,\n });\n }\n\n // Check for Zod v3 schemas (need wrapping to add JSON Schema support)\n // Important: Must use isZodV3() not instanceof z3.ZodType because\n // Zod v4 schemas are also instanceof z3.ZodType due to prototype compatibility\n if (isZodV3(schema)) {\n return toStandardSchemaZodV3(schema as ZodType);\n }\n\n // Check for AI SDK Schema objects (Vercel's jsonSchema wrapper)\n if (isVercelSchema(schema)) {\n return toStandardSchemaAiSdk(schema as Schema<T>);\n }\n\n // At this point, assume it's a plain JSON Schema object\n // JSON Schema objects are plain objects with properties like 'type', 'properties', etc.\n if (schema === null || (typeof schema !== 'object' && typeof schema !== 'function')) {\n throw new Error(`Unsupported schema type: ${typeof schema}`);\n }\n\n // If it's a function that's not StandardSchemaWithJSON, it's not supported\n if (typeof schema === 'function') {\n throw new Error(`Unsupported schema type: function (schema libraries should implement StandardSchemaWithJSON)`);\n }\n\n return toStandardSchemaJsonSchema(schema as JSONSchema7);\n}\n\n/**\n * Type guard to check if a value implements the StandardSchemaV1 interface.\n *\n * @param value - The value to check\n * @returns True if the value implements StandardSchemaV1\n *\n * @example\n * ```typescript\n * import { isStandardSchema } from '@mastra/schema-compat';\n *\n * if (isStandardSchema(someValue)) {\n * const result = someValue['~standard'].validate(input);\n * }\n * ```\n */\nexport function isStandardSchema(value: unknown): value is StandardSchemaV1 {\n // Check for object or function (some libraries like ArkType use callable schemas)\n if (value === null || (typeof value !== 'object' && typeof value !== 'function')) {\n return false;\n }\n if (!('~standard' in value)) {\n return false;\n }\n const std = (value as any)['~standard'];\n return (\n typeof std === 'object' &&\n std !== null &&\n 'version' in std &&\n std.version === 1 &&\n 'vendor' in std &&\n 'validate' in std &&\n typeof std.validate === 'function'\n );\n}\n\n/**\n * Type guard to check if a value implements the StandardJSONSchemaV1 interface.\n *\n * @param value - The value to check\n * @returns True if the value implements StandardJSONSchemaV1\n *\n * @example\n * ```typescript\n * import { isStandardJSONSchema } from '@mastra/schema-compat';\n *\n * if (isStandardJSONSchema(someValue)) {\n * const jsonSchema = someValue['~standard'].jsonSchema.output({ target: 'draft-07' });\n * }\n * ```\n */\nexport function isStandardJSONSchema(value: unknown): value is StandardJSONSchemaV1 {\n // Check for object or function (some libraries like ArkType use callable schemas)\n if (value === null || (typeof value !== 'object' && typeof value !== 'function')) {\n return false;\n }\n if (!('~standard' in value)) {\n return false;\n }\n const std = (value as any)['~standard'];\n if (typeof std !== 'object' || std === null) {\n return false;\n }\n if (!('version' in std) || std.version !== 1 || !('vendor' in std)) {\n return false;\n }\n if (!('jsonSchema' in std) || typeof std.jsonSchema !== 'object') {\n return false;\n }\n return typeof std.jsonSchema.input === 'function' && typeof std.jsonSchema.output === 'function';\n}\n\n/**\n * Type guard to check if a value implements both StandardSchemaV1 and StandardJSONSchemaV1.\n *\n * @param value - The value to check\n * @returns True if the value implements both interfaces\n *\n * @example\n * ```typescript\n * import { isStandardSchemaWithJSON } from '@mastra/schema-compat';\n *\n * if (isStandardSchemaWithJSON(someValue)) {\n * // Can use both validation and JSON Schema conversion\n * const result = someValue['~standard'].validate(input);\n * const jsonSchema = someValue['~standard'].jsonSchema.output({ target: 'draft-07' });\n * }\n * ```\n */\nexport function isStandardSchemaWithJSON(value: unknown): value is StandardSchemaWithJSON {\n return isStandardSchema(value) && isStandardJSONSchema(value);\n}\n\n/**\n * Converts a StandardSchemaWithJSON to a JSON Schema.\n *\n * @param schema - The StandardSchemaWithJSON schema to convert\n * @param options - Conversion options\n * @param options.target - The JSON Schema target version (default: 'draft-07')\n * @param options.io - Whether to use input or output schema (default: 'output')\n * - 'input': Use for tool parameters, function arguments, request bodies\n * - 'output': Use for return types, response bodies\n * @returns The JSON Schema representation\n *\n * @example\n * ```typescript\n * import { standardSchemaToJSONSchema, toStandardSchema } from '@mastra/schema-compat';\n * import { z } from 'zod';\n *\n * const zodSchema = z.object({ name: z.string() });\n * const standardSchema = toStandardSchema(zodSchema);\n *\n * // For output types (default)\n * const outputSchema = standardSchemaToJSONSchema(standardSchema);\n *\n * // For input types (tool parameters)\n * const inputSchema = standardSchemaToJSONSchema(standardSchema, { io: 'input' });\n * ```\n */\nexport function standardSchemaToJSONSchema(\n schema: StandardSchemaWithJSON,\n options: {\n target?: StandardJSONSchemaV1.Target;\n io?: 'input' | 'output';\n override?: (typeof JSON_SCHEMA_LIBRARY_OPTIONS)['override'];\n } = {},\n): JSONSchema7 {\n const { target = 'draft-07', io = 'output', override = JSON_SCHEMA_LIBRARY_OPTIONS.override } = options;\n const jsonSchemaFn = schema['~standard'].jsonSchema[io];\n let jsonSchema = jsonSchemaFn({\n target,\n libraryOptions: {\n ...JSON_SCHEMA_LIBRARY_OPTIONS,\n override,\n },\n }) as JSONSchema7;\n\n // make sure only jsonSchema is left, no standard schema metadata\n jsonSchema = JSON.parse(JSON.stringify(jsonSchema));\n\n return jsonSchema;\n}\n"]}