@mastra/schema-compat 0.11.2 → 0.11.3

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,17 @@
1
1
  # @mastra/schema-compat
2
2
 
3
+ ## 0.11.3
4
+
5
+ ### Patch Changes
6
+
7
+ - Change SchemaCompat zodToJsonSchema ref strategy from none to relative, leading to less schema warnings and smaller converted schema sizes ([#7697](https://github.com/mastra-ai/mastra/pull/7697))
8
+
9
+ ## 0.11.3-alpha.0
10
+
11
+ ### Patch Changes
12
+
13
+ - Change SchemaCompat zodToJsonSchema ref strategy from none to relative, leading to less schema warnings and smaller converted schema sizes ([#7697](https://github.com/mastra-ai/mastra/pull/7697))
14
+
3
15
  ## 0.11.2
4
16
 
5
17
  ### Patch Changes
@@ -8,7 +8,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
8
  var zodToJsonSchemaOriginal__default = /*#__PURE__*/_interopDefault(zodToJsonSchemaOriginal);
9
9
 
10
10
  // src/zod-to-json.ts
11
- function zodToJsonSchema(zodSchema, target = "jsonSchema7") {
11
+ function zodToJsonSchema(zodSchema, target = "jsonSchema7", strategy = "relative") {
12
12
  const fn = "toJSONSchema";
13
13
  if (fn in zod.z) {
14
14
  return zod.z[fn](zodSchema, {
@@ -23,12 +23,12 @@ function zodToJsonSchema(zodSchema, target = "jsonSchema7") {
23
23
  });
24
24
  } else {
25
25
  return zodToJsonSchemaOriginal__default.default(zodSchema, {
26
- $refStrategy: "none",
26
+ $refStrategy: strategy,
27
27
  target
28
28
  });
29
29
  }
30
30
  }
31
31
 
32
32
  exports.zodToJsonSchema = zodToJsonSchema;
33
- //# sourceMappingURL=chunk-WRGSGOLQ.cjs.map
34
- //# sourceMappingURL=chunk-WRGSGOLQ.cjs.map
33
+ //# sourceMappingURL=chunk-7YUR5KZ5.cjs.map
34
+ //# sourceMappingURL=chunk-7YUR5KZ5.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/zod-to-json.ts"],"names":["z","zodToJsonSchemaOriginal"],"mappings":";;;;;;;;;;AAOO,SAAS,eAAA,CACd,SAAA,EACA,MAAA,GAAkB,aAAA,EAClB,WAAkD,UAAA,EAClD;AACA,EAAA,MAAM,EAAA,GAAK,cAAA;AAEX,EAAA,IAAI,MAAMA,KAAA,EAAG;AAEX,IAAA,OAAQA,KAAA,CAAU,EAAE,CAAA,CAAE,SAAA,EAAW;AAAA,MAC/B,eAAA,EAAiB,KAAA;AAAA,MACjB,QAAA,EAAU,CAAC,GAAA,KAAa;AAEtB,QAAA,MAAM,GAAA,GAAM,GAAA,CAAI,SAAA,EAAW,IAAA,EAAM,GAAA;AACjC,QAAA,IAAI,GAAA,IAAO,GAAA,CAAI,IAAA,KAAS,MAAA,EAAQ;AAC9B,UAAA,GAAA,CAAI,WAAW,IAAA,GAAO,QAAA;AACtB,UAAA,GAAA,CAAI,WAAW,MAAA,GAAS,WAAA;AAAA,QAC1B;AAAA,MACF;AAAA,KACD,CAAA;AAAA,EACH,CAAA,MAAO;AACL,IAAA,OAAOC,yCAAwB,SAAA,EAA0B;AAAA,MACvD,YAAA,EAAc,QAAA;AAAA,MACd;AAAA,KACD,CAAA;AAAA,EACH;AACF","file":"chunk-7YUR5KZ5.cjs","sourcesContent":["import type { JSONSchema7 } from 'json-schema';\nimport { z } from 'zod';\nimport type { ZodSchema as ZodSchemaV3 } from 'zod/v3';\nimport type { ZodType as ZodSchemaV4 } from 'zod/v4';\nimport type { Targets } from 'zod-to-json-schema';\nimport zodToJsonSchemaOriginal from 'zod-to-json-schema';\n\nexport function zodToJsonSchema(\n zodSchema: ZodSchemaV3 | ZodSchemaV4,\n target: Targets = 'jsonSchema7',\n strategy: 'none' | 'seen' | 'root' | 'relative' = 'relative',\n) {\n const fn = 'toJSONSchema';\n\n if (fn in z) {\n // Use dynamic property access to avoid import errors in Zod v3\n return (z as any)[fn](zodSchema, {\n unrepresentable: 'any',\n override: (ctx: any) => {\n // Safe access to handle cases where _zod might be undefined\n const def = ctx.zodSchema?._zod?.def;\n if (def && def.type === 'date') {\n ctx.jsonSchema.type = 'string';\n ctx.jsonSchema.format = 'date-time';\n }\n },\n }) as JSONSchema7;\n } else {\n return zodToJsonSchemaOriginal(zodSchema as ZodSchemaV3, {\n $refStrategy: strategy,\n target,\n }) as JSONSchema7;\n }\n}\n"]}
@@ -2,7 +2,7 @@ import { z } from 'zod';
2
2
  import zodToJsonSchemaOriginal from 'zod-to-json-schema';
3
3
 
4
4
  // src/zod-to-json.ts
5
- function zodToJsonSchema(zodSchema, target = "jsonSchema7") {
5
+ function zodToJsonSchema(zodSchema, target = "jsonSchema7", strategy = "relative") {
6
6
  const fn = "toJSONSchema";
7
7
  if (fn in z) {
8
8
  return z[fn](zodSchema, {
@@ -17,12 +17,12 @@ function zodToJsonSchema(zodSchema, target = "jsonSchema7") {
17
17
  });
18
18
  } else {
19
19
  return zodToJsonSchemaOriginal(zodSchema, {
20
- $refStrategy: "none",
20
+ $refStrategy: strategy,
21
21
  target
22
22
  });
23
23
  }
24
24
  }
25
25
 
26
26
  export { zodToJsonSchema };
27
- //# sourceMappingURL=chunk-F4D2N3FC.js.map
28
- //# sourceMappingURL=chunk-F4D2N3FC.js.map
27
+ //# sourceMappingURL=chunk-GWTUXMDD.js.map
28
+ //# sourceMappingURL=chunk-GWTUXMDD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/zod-to-json.ts"],"names":[],"mappings":";;;;AAOO,SAAS,eAAA,CACd,SAAA,EACA,MAAA,GAAkB,aAAA,EAClB,WAAkD,UAAA,EAClD;AACA,EAAA,MAAM,EAAA,GAAK,cAAA;AAEX,EAAA,IAAI,MAAM,CAAA,EAAG;AAEX,IAAA,OAAQ,CAAA,CAAU,EAAE,CAAA,CAAE,SAAA,EAAW;AAAA,MAC/B,eAAA,EAAiB,KAAA;AAAA,MACjB,QAAA,EAAU,CAAC,GAAA,KAAa;AAEtB,QAAA,MAAM,GAAA,GAAM,GAAA,CAAI,SAAA,EAAW,IAAA,EAAM,GAAA;AACjC,QAAA,IAAI,GAAA,IAAO,GAAA,CAAI,IAAA,KAAS,MAAA,EAAQ;AAC9B,UAAA,GAAA,CAAI,WAAW,IAAA,GAAO,QAAA;AACtB,UAAA,GAAA,CAAI,WAAW,MAAA,GAAS,WAAA;AAAA,QAC1B;AAAA,MACF;AAAA,KACD,CAAA;AAAA,EACH,CAAA,MAAO;AACL,IAAA,OAAO,wBAAwB,SAAA,EAA0B;AAAA,MACvD,YAAA,EAAc,QAAA;AAAA,MACd;AAAA,KACD,CAAA;AAAA,EACH;AACF","file":"chunk-GWTUXMDD.js","sourcesContent":["import type { JSONSchema7 } from 'json-schema';\nimport { z } from 'zod';\nimport type { ZodSchema as ZodSchemaV3 } from 'zod/v3';\nimport type { ZodType as ZodSchemaV4 } from 'zod/v4';\nimport type { Targets } from 'zod-to-json-schema';\nimport zodToJsonSchemaOriginal from 'zod-to-json-schema';\n\nexport function zodToJsonSchema(\n zodSchema: ZodSchemaV3 | ZodSchemaV4,\n target: Targets = 'jsonSchema7',\n strategy: 'none' | 'seen' | 'root' | 'relative' = 'relative',\n) {\n const fn = 'toJSONSchema';\n\n if (fn in z) {\n // Use dynamic property access to avoid import errors in Zod v3\n return (z as any)[fn](zodSchema, {\n unrepresentable: 'any',\n override: (ctx: any) => {\n // Safe access to handle cases where _zod might be undefined\n const def = ctx.zodSchema?._zod?.def;\n if (def && def.type === 'date') {\n ctx.jsonSchema.type = 'string';\n ctx.jsonSchema.format = 'date-time';\n }\n },\n }) as JSONSchema7;\n } else {\n return zodToJsonSchemaOriginal(zodSchema as ZodSchemaV3, {\n $refStrategy: strategy,\n target,\n }) as JSONSchema7;\n }\n}\n"]}
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkWRGSGOLQ_cjs = require('./chunk-WRGSGOLQ.cjs');
3
+ var chunk7YUR5KZ5_cjs = require('./chunk-7YUR5KZ5.cjs');
4
4
  var zod = require('zod');
5
5
  var ai = require('ai');
6
6
  var zodFromJsonSchema = require('zod-from-json-schema');
@@ -8,7 +8,7 @@ var zodFromJsonSchemaV3 = require('zod-from-json-schema-v3');
8
8
  var v4 = require('zod/v4');
9
9
 
10
10
  function convertZodSchemaToAISDKSchema(zodSchema, target = "jsonSchema7") {
11
- const jsonSchemaToUse = chunkWRGSGOLQ_cjs.zodToJsonSchema(zodSchema, target);
11
+ const jsonSchemaToUse = chunk7YUR5KZ5_cjs.zodToJsonSchema(zodSchema, target);
12
12
  return ai.jsonSchema(jsonSchemaToUse, {
13
13
  validate: (value) => {
14
14
  const result = zodSchema.safeParse(value);
@@ -55,7 +55,7 @@ function applyCompatLayer({
55
55
  }
56
56
  }
57
57
  if (mode === "jsonSchema") {
58
- return chunkWRGSGOLQ_cjs.zodToJsonSchema(zodSchema, "jsonSchema7");
58
+ return chunk7YUR5KZ5_cjs.zodToJsonSchema(zodSchema, "jsonSchema7");
59
59
  } else {
60
60
  return convertZodSchemaToAISDKSchema(zodSchema);
61
61
  }
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { zodToJsonSchema } from './chunk-F4D2N3FC.js';
1
+ import { zodToJsonSchema } from './chunk-GWTUXMDD.js';
2
2
  import { z, ZodOptional, ZodObject, ZodArray, ZodUnion, ZodString, ZodNumber, ZodNull, ZodDate, ZodDefault } from 'zod';
3
3
  import { jsonSchema } from 'ai';
4
4
  import { convertJsonSchemaToZod } from 'zod-from-json-schema';
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunkWRGSGOLQ_cjs = require('./chunk-WRGSGOLQ.cjs');
3
+ var chunk7YUR5KZ5_cjs = require('./chunk-7YUR5KZ5.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "zodToJsonSchema", {
8
8
  enumerable: true,
9
- get: function () { return chunkWRGSGOLQ_cjs.zodToJsonSchema; }
9
+ get: function () { return chunk7YUR5KZ5_cjs.zodToJsonSchema; }
10
10
  });
11
11
  //# sourceMappingURL=zod-to-json.cjs.map
12
12
  //# sourceMappingURL=zod-to-json.cjs.map
@@ -2,5 +2,5 @@ import type { JSONSchema7 } from 'json-schema';
2
2
  import type { ZodSchema as ZodSchemaV3 } from 'zod/v3';
3
3
  import type { ZodType as ZodSchemaV4 } from 'zod/v4';
4
4
  import type { Targets } from 'zod-to-json-schema';
5
- export declare function zodToJsonSchema(zodSchema: ZodSchemaV3 | ZodSchemaV4, target?: Targets): JSONSchema7;
5
+ export declare function zodToJsonSchema(zodSchema: ZodSchemaV3 | ZodSchemaV4, target?: Targets, strategy?: 'none' | 'seen' | 'root' | 'relative'): JSONSchema7;
6
6
  //# sourceMappingURL=zod-to-json.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"zod-to-json.d.ts","sourceRoot":"","sources":["../src/zod-to-json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGlD,wBAAgB,eAAe,CAAC,SAAS,EAAE,WAAW,GAAG,WAAW,EAAE,MAAM,GAAE,OAAuB,eAsBpG"}
1
+ {"version":3,"file":"zod-to-json.d.ts","sourceRoot":"","sources":["../src/zod-to-json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGlD,wBAAgB,eAAe,CAC7B,SAAS,EAAE,WAAW,GAAG,WAAW,EACpC,MAAM,GAAE,OAAuB,EAC/B,QAAQ,GAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAuB,eAuB7D"}
@@ -1,3 +1,3 @@
1
- export { zodToJsonSchema } from './chunk-F4D2N3FC.js';
1
+ export { zodToJsonSchema } from './chunk-GWTUXMDD.js';
2
2
  //# sourceMappingURL=zod-to-json.js.map
3
3
  //# sourceMappingURL=zod-to-json.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/schema-compat",
3
- "version": "0.11.2",
3
+ "version": "0.11.3",
4
4
  "description": "Tool schema compatibility layer for Mastra.ai",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -60,7 +60,7 @@
60
60
  "typescript": "^5.8.3",
61
61
  "vitest": "^3.2.4",
62
62
  "zod": "^3.25.76",
63
- "@internal/lint": "0.0.35"
63
+ "@internal/lint": "0.0.39"
64
64
  },
65
65
  "homepage": "https://mastra.ai",
66
66
  "repository": {
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/zod-to-json.ts"],"names":[],"mappings":";;;;AAOO,SAAS,eAAA,CAAgB,SAAA,EAAsC,MAAA,GAAkB,aAAA,EAAe;AACrG,EAAA,MAAM,EAAA,GAAK,cAAA;AAEX,EAAA,IAAI,MAAM,CAAA,EAAG;AAEX,IAAA,OAAQ,CAAA,CAAU,EAAE,CAAA,CAAE,SAAA,EAAW;AAAA,MAC/B,eAAA,EAAiB,KAAA;AAAA,MACjB,QAAA,EAAU,CAAC,GAAA,KAAa;AAEtB,QAAA,MAAM,GAAA,GAAM,GAAA,CAAI,SAAA,EAAW,IAAA,EAAM,GAAA;AACjC,QAAA,IAAI,GAAA,IAAO,GAAA,CAAI,IAAA,KAAS,MAAA,EAAQ;AAC9B,UAAA,GAAA,CAAI,WAAW,IAAA,GAAO,QAAA;AACtB,UAAA,GAAA,CAAI,WAAW,MAAA,GAAS,WAAA;AAAA,QAC1B;AAAA,MACF;AAAA,KACD,CAAA;AAAA,EACH,CAAA,MAAO;AACL,IAAA,OAAO,wBAAwB,SAAA,EAA0B;AAAA,MACvD,YAAA,EAAc,MAAA;AAAA,MACd;AAAA,KACD,CAAA;AAAA,EACH;AACF","file":"chunk-F4D2N3FC.js","sourcesContent":["import type { JSONSchema7 } from 'json-schema';\nimport { z } from 'zod';\nimport type { ZodSchema as ZodSchemaV3 } from 'zod/v3';\nimport type { ZodType as ZodSchemaV4 } from 'zod/v4';\nimport type { Targets } from 'zod-to-json-schema';\nimport zodToJsonSchemaOriginal from 'zod-to-json-schema';\n\nexport function zodToJsonSchema(zodSchema: ZodSchemaV3 | ZodSchemaV4, target: Targets = 'jsonSchema7') {\n const fn = 'toJSONSchema';\n\n if (fn in z) {\n // Use dynamic property access to avoid import errors in Zod v3\n return (z as any)[fn](zodSchema, {\n unrepresentable: 'any',\n override: (ctx: any) => {\n // Safe access to handle cases where _zod might be undefined\n const def = ctx.zodSchema?._zod?.def;\n if (def && def.type === 'date') {\n ctx.jsonSchema.type = 'string';\n ctx.jsonSchema.format = 'date-time';\n }\n },\n }) as JSONSchema7;\n } else {\n return zodToJsonSchemaOriginal(zodSchema as ZodSchemaV3, {\n $refStrategy: 'none',\n target,\n }) as JSONSchema7;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/zod-to-json.ts"],"names":["z","zodToJsonSchemaOriginal"],"mappings":";;;;;;;;;;AAOO,SAAS,eAAA,CAAgB,SAAA,EAAsC,MAAA,GAAkB,aAAA,EAAe;AACrG,EAAA,MAAM,EAAA,GAAK,cAAA;AAEX,EAAA,IAAI,MAAMA,KAAA,EAAG;AAEX,IAAA,OAAQA,KAAA,CAAU,EAAE,CAAA,CAAE,SAAA,EAAW;AAAA,MAC/B,eAAA,EAAiB,KAAA;AAAA,MACjB,QAAA,EAAU,CAAC,GAAA,KAAa;AAEtB,QAAA,MAAM,GAAA,GAAM,GAAA,CAAI,SAAA,EAAW,IAAA,EAAM,GAAA;AACjC,QAAA,IAAI,GAAA,IAAO,GAAA,CAAI,IAAA,KAAS,MAAA,EAAQ;AAC9B,UAAA,GAAA,CAAI,WAAW,IAAA,GAAO,QAAA;AACtB,UAAA,GAAA,CAAI,WAAW,MAAA,GAAS,WAAA;AAAA,QAC1B;AAAA,MACF;AAAA,KACD,CAAA;AAAA,EACH,CAAA,MAAO;AACL,IAAA,OAAOC,yCAAwB,SAAA,EAA0B;AAAA,MACvD,YAAA,EAAc,MAAA;AAAA,MACd;AAAA,KACD,CAAA;AAAA,EACH;AACF","file":"chunk-WRGSGOLQ.cjs","sourcesContent":["import type { JSONSchema7 } from 'json-schema';\nimport { z } from 'zod';\nimport type { ZodSchema as ZodSchemaV3 } from 'zod/v3';\nimport type { ZodType as ZodSchemaV4 } from 'zod/v4';\nimport type { Targets } from 'zod-to-json-schema';\nimport zodToJsonSchemaOriginal from 'zod-to-json-schema';\n\nexport function zodToJsonSchema(zodSchema: ZodSchemaV3 | ZodSchemaV4, target: Targets = 'jsonSchema7') {\n const fn = 'toJSONSchema';\n\n if (fn in z) {\n // Use dynamic property access to avoid import errors in Zod v3\n return (z as any)[fn](zodSchema, {\n unrepresentable: 'any',\n override: (ctx: any) => {\n // Safe access to handle cases where _zod might be undefined\n const def = ctx.zodSchema?._zod?.def;\n if (def && def.type === 'date') {\n ctx.jsonSchema.type = 'string';\n ctx.jsonSchema.format = 'date-time';\n }\n },\n }) as JSONSchema7;\n } else {\n return zodToJsonSchemaOriginal(zodSchema as ZodSchemaV3, {\n $refStrategy: 'none',\n target,\n }) as JSONSchema7;\n }\n}\n"]}