@mastra/schema-compat 1.0.0-beta.0 → 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -8,6 +8,6 @@ export { GoogleSchemaCompatLayer } from './provider-compats/google.js';
8
8
  export { MetaSchemaCompatLayer } from './provider-compats/meta.js';
9
9
  export { OpenAISchemaCompatLayer } from './provider-compats/openai.js';
10
10
  export { OpenAIReasoningSchemaCompatLayer } from './provider-compats/openai-reasoning.js';
11
- export { type Schema } from './types.js';
11
+ export { type Schema, type ModelInformation } from './types.js';
12
12
  export { type JSONSchema7, jsonSchema } from './json-schema.js';
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,IAAI,mBAAmB,EACxC,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EAEb,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,UAAU,EAEf,UAAU,EACV,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,GACT,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,iBAAiB,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,OAAO,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,gCAAgC,EAAE,MAAM,qCAAqC,CAAC;AAEvF,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,KAAK,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,IAAI,mBAAmB,EACxC,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EAEb,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,UAAU,EAEf,UAAU,EACV,KAAK,EACL,KAAK,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,GACT,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,iBAAiB,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D,OAAO,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG9F,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,gCAAgC,EAAE,MAAM,qCAAqC,CAAC;AAEvF,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,KAAK,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import { zodToJsonSchema } from './chunk-U2HXWNAF.js';
2
2
  import { z, ZodOptional, ZodObject, ZodArray, ZodUnion, ZodString, ZodNumber, ZodNull, ZodDate, ZodDefault, ZodFirstPartyTypeKind } from 'zod';
3
3
  import { convertJsonSchemaToZod } from 'zod-from-json-schema';
4
4
  import { convertJsonSchemaToZod as convertJsonSchemaToZod$1 } from 'zod-from-json-schema-v3';
5
- import { ZodOptional as ZodOptional$1, ZodObject as ZodObject$1, ZodNull as ZodNull$1, ZodArray as ZodArray$1, ZodUnion as ZodUnion$1, ZodString as ZodString$1, ZodNumber as ZodNumber$1, ZodDate as ZodDate$1, ZodDefault as ZodDefault$1, z as z$1 } from 'zod/v4';
5
+ import { ZodOptional as ZodOptional$1, ZodObject as ZodObject$1, ZodNull as ZodNull$1, ZodNullable, ZodArray as ZodArray$1, ZodUnion as ZodUnion$1, ZodString as ZodString$1, ZodNumber as ZodNumber$1, ZodDate as ZodDate$1, ZodDefault as ZodDefault$1, z as z$1 } from 'zod/v4';
6
6
 
7
7
  // ../_ai-sdk-v4/dist/chunk-EDUQOWHB.js
8
8
  var __create = Object.create;
@@ -3644,7 +3644,8 @@ var SUPPORTED_ZOD_TYPES = [
3644
3644
  "ZodNumber",
3645
3645
  "ZodDate",
3646
3646
  "ZodAny",
3647
- "ZodDefault"
3647
+ "ZodDefault",
3648
+ "ZodNullable"
3648
3649
  ];
3649
3650
  var ALL_ZOD_TYPES = [...SUPPORTED_ZOD_TYPES, ...UNSUPPORTED_ZOD_TYPES];
3650
3651
  var SchemaCompatLayer = class {
@@ -4061,7 +4062,8 @@ var SUPPORTED_ZOD_TYPES2 = [
4061
4062
  "ZodNumber",
4062
4063
  "ZodDate",
4063
4064
  "ZodAny",
4064
- "ZodDefault"
4065
+ "ZodDefault",
4066
+ "ZodNullable"
4065
4067
  ];
4066
4068
  var SchemaCompatLayer2 = class {
4067
4069
  model;
@@ -4104,6 +4106,12 @@ var SchemaCompatLayer2 = class {
4104
4106
  isNull(v) {
4105
4107
  return v instanceof ZodNull$1;
4106
4108
  }
4109
+ /**
4110
+ * Type guard for nullable Zod types
4111
+ */
4112
+ isNullable(v) {
4113
+ return v instanceof ZodNullable;
4114
+ }
4107
4115
  /**
4108
4116
  * Type guard for array Zod types
4109
4117
  */
@@ -4697,6 +4705,9 @@ function isDate(z11) {
4697
4705
  function isDefault(z11) {
4698
4706
  return (v) => v instanceof z11["ZodDefault"];
4699
4707
  }
4708
+ function isNullable(z11) {
4709
+ return (v) => v instanceof z11["ZodNullable"];
4710
+ }
4700
4711
 
4701
4712
  // src/provider-compats/anthropic.ts
4702
4713
  var AnthropicSchemaCompatLayer = class extends SchemaCompatLayer3 {
@@ -4837,15 +4848,30 @@ var OpenAISchemaCompatLayer = class extends SchemaCompatLayer3 {
4837
4848
  }
4838
4849
  processZodType(value) {
4839
4850
  if (isOptional2(z)(value)) {
4840
- return this.defaultZodOptionalHandler(value, [
4841
- "ZodObject",
4842
- "ZodArray",
4843
- "ZodUnion",
4844
- "ZodString",
4845
- "ZodNever",
4846
- "ZodUndefined",
4847
- "ZodTuple"
4848
- ]);
4851
+ const innerType = "_def" in value ? value._def.innerType : value._zod?.def?.innerType;
4852
+ if (innerType) {
4853
+ if (isNullable(z)(innerType)) {
4854
+ const processed = this.processZodType(innerType);
4855
+ return processed.transform((val) => val === null ? void 0 : val);
4856
+ }
4857
+ const processedInner = this.processZodType(innerType);
4858
+ return processedInner.nullable().transform((val) => val === null ? void 0 : val);
4859
+ }
4860
+ return value;
4861
+ } else if (isNullable(z)(value)) {
4862
+ const innerType = "_def" in value ? value._def.innerType : value._zod?.def?.innerType;
4863
+ if (innerType) {
4864
+ if (isOptional2(z)(innerType)) {
4865
+ const innerInnerType = "_def" in innerType ? innerType._def.innerType : innerType._zod?.def?.innerType;
4866
+ if (innerInnerType) {
4867
+ const processedInnerInner = this.processZodType(innerInnerType);
4868
+ return processedInnerInner.nullable().transform((val) => val === null ? void 0 : val);
4869
+ }
4870
+ }
4871
+ const processedInner = this.processZodType(innerType);
4872
+ return processedInner.nullable();
4873
+ }
4874
+ return value;
4849
4875
  } else if (isObj2(z)(value)) {
4850
4876
  return this.defaultZodObjectHandler(value);
4851
4877
  } else if (isUnion2(z)(value)) {
@@ -4878,15 +4904,37 @@ var OpenAIReasoningSchemaCompatLayer = class extends SchemaCompatLayer3 {
4878
4904
  return this.getModel().modelId.includes(`o3`) || this.getModel().modelId.includes(`o4`) || this.getModel().modelId.includes(`o1`);
4879
4905
  }
4880
4906
  shouldApply() {
4881
- if ((this.getModel().supportsStructuredOutputs || this.isReasoningModel()) && (this.getModel().provider.includes(`openai`) || this.getModel().modelId.includes(`openai`))) {
4907
+ if (this.isReasoningModel() && (this.getModel().provider.includes(`openai`) || this.getModel().modelId.includes(`openai`))) {
4882
4908
  return true;
4883
4909
  }
4884
4910
  return false;
4885
4911
  }
4886
4912
  processZodType(value) {
4887
4913
  if (isOptional2(z)(value)) {
4888
- const innerZodType = this.processZodType(value._def.innerType);
4889
- return innerZodType.nullable();
4914
+ const innerType = "_def" in value ? value._def.innerType : value._zod?.def?.innerType;
4915
+ if (innerType) {
4916
+ if (isNullable(z)(innerType)) {
4917
+ const processed = this.processZodType(innerType);
4918
+ return processed.transform((val) => val === null ? void 0 : val);
4919
+ }
4920
+ const processedInner = this.processZodType(innerType);
4921
+ return processedInner.nullable().transform((val) => val === null ? void 0 : val);
4922
+ }
4923
+ return value;
4924
+ } else if (isNullable(z)(value)) {
4925
+ const innerType = "_def" in value ? value._def.innerType : value._zod?.def?.innerType;
4926
+ if (innerType && isOptional2(z)(innerType)) {
4927
+ const innerInnerType = "_def" in innerType ? innerType._def.innerType : innerType._zod?.def?.innerType;
4928
+ if (innerInnerType) {
4929
+ const processedInnerInner = this.processZodType(innerInnerType);
4930
+ return processedInnerInner.nullable().transform((val) => val === null ? void 0 : val);
4931
+ }
4932
+ }
4933
+ if (innerType) {
4934
+ const processedInner = this.processZodType(innerType);
4935
+ return processedInner.nullable();
4936
+ }
4937
+ return value;
4890
4938
  } else if (isObj2(z)(value)) {
4891
4939
  return this.defaultZodObjectHandler(value, { passthrough: false });
4892
4940
  } else if (isArr2(z)(value)) {