agent-relay 6.0.3 → 6.0.4

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.
Files changed (157) hide show
  1. package/dist/index.cjs +1395 -674
  2. package/node_modules/@relaycast/sdk/node_modules/zod/README.md +1 -1
  3. package/node_modules/@relaycast/sdk/node_modules/zod/locales/package.json +2 -1
  4. package/node_modules/@relaycast/sdk/node_modules/zod/mini/package.json +2 -1
  5. package/node_modules/@relaycast/sdk/node_modules/zod/package.json +1 -1
  6. package/node_modules/@relaycast/sdk/node_modules/zod/src/v3/tests/all-errors.test.ts +3 -3
  7. package/node_modules/@relaycast/sdk/node_modules/zod/src/v3/tests/object.test.ts +5 -5
  8. package/node_modules/@relaycast/sdk/node_modules/zod/src/v3/tests/partials.test.ts +3 -3
  9. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/errors.ts +2 -2
  10. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/external.ts +1 -0
  11. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/from-json-schema.ts +39 -23
  12. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/parse.ts +6 -6
  13. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/schemas.ts +389 -148
  14. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/catch.test.ts +4 -2
  15. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/codec.test.ts +142 -1
  16. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/continuability.test.ts +1 -1
  17. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/datetime.test.ts +1 -1
  18. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/default.test.ts +44 -0
  19. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +197 -0
  20. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +31 -1
  21. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +214 -2
  22. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +161 -0
  23. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/function.test.ts +6 -6
  24. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/global-config.test.ts +39 -0
  25. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/index.test.ts +2 -2
  26. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +46 -0
  27. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/locales_ka.test.ts +29 -0
  28. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/locales_ro.test.ts +24 -0
  29. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/number.test.ts +55 -0
  30. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/object.test.ts +83 -6
  31. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/optional.test.ts +114 -4
  32. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/partial.test.ts +28 -2
  33. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/prefault.test.ts +1 -1
  34. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/record.test.ts +85 -0
  35. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +49 -0
  36. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/refine.test.ts +63 -0
  37. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/string.test.ts +50 -1
  38. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +4 -4
  39. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +128 -14
  40. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/transform.test.ts +17 -0
  41. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/tuple.test.ts +315 -2
  42. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/classic/tests/union.test.ts +54 -0
  43. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/core/api.ts +25 -2
  44. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/core/checks.ts +1 -1
  45. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/core/core.ts +17 -2
  46. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/core/errors.ts +31 -24
  47. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/core/json-schema-processors.ts +15 -17
  48. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/core/parse.ts +7 -7
  49. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/core/regexes.ts +8 -1
  50. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/core/schemas.ts +218 -66
  51. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/core/tests/locales/el.test.ts +215 -0
  52. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +72 -0
  53. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/core/tests/locales/hr.test.ts +163 -0
  54. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +22 -0
  55. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +58 -0
  56. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/core/to-json-schema.ts +9 -1
  57. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/core/util.ts +52 -35
  58. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/core/versions.ts +2 -2
  59. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/locales/el.ts +121 -0
  60. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/locales/en.ts +4 -0
  61. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/locales/fr.ts +24 -8
  62. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/locales/hr.ts +131 -0
  63. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/locales/index.ts +3 -0
  64. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/locales/it.ts +1 -1
  65. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/locales/ka.ts +8 -8
  66. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/locales/ro.ts +129 -0
  67. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/locales/uz.ts +1 -0
  68. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/mini/external.ts +1 -0
  69. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/mini/schemas.ts +55 -24
  70. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/mini/tests/codec.test.ts +19 -0
  71. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/mini/tests/index.test.ts +27 -2
  72. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/mini/tests/object.test.ts +9 -9
  73. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +51 -1
  74. package/node_modules/@relaycast/sdk/node_modules/zod/src/v4/mini/tests/string.test.ts +5 -0
  75. package/node_modules/@relaycast/sdk/node_modules/zod/v3/package.json +2 -1
  76. package/node_modules/@relaycast/sdk/node_modules/zod/v4/classic/errors.js +2 -2
  77. package/node_modules/@relaycast/sdk/node_modules/zod/v4/classic/external.d.cts +1 -0
  78. package/node_modules/@relaycast/sdk/node_modules/zod/v4/classic/external.d.ts +1 -0
  79. package/node_modules/@relaycast/sdk/node_modules/zod/v4/classic/from-json-schema.cjs +31 -16
  80. package/node_modules/@relaycast/sdk/node_modules/zod/v4/classic/from-json-schema.js +31 -16
  81. package/node_modules/@relaycast/sdk/node_modules/zod/v4/classic/package.json +2 -1
  82. package/node_modules/@relaycast/sdk/node_modules/zod/v4/classic/schemas.cjs +346 -117
  83. package/node_modules/@relaycast/sdk/node_modules/zod/v4/classic/schemas.d.cts +34 -12
  84. package/node_modules/@relaycast/sdk/node_modules/zod/v4/classic/schemas.d.ts +34 -12
  85. package/node_modules/@relaycast/sdk/node_modules/zod/v4/classic/schemas.js +345 -117
  86. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/api.cjs +7 -2
  87. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/api.d.cts +20 -1
  88. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/api.d.ts +20 -1
  89. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/api.js +7 -2
  90. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/checks.d.cts +1 -1
  91. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/checks.d.ts +1 -1
  92. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/core.cjs +3 -1
  93. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/core.js +4 -2
  94. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/errors.cjs +26 -23
  95. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/errors.d.cts +1 -0
  96. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/errors.d.ts +1 -0
  97. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/errors.js +26 -23
  98. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/json-schema-processors.cjs +14 -19
  99. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/json-schema-processors.js +14 -19
  100. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/package.json +2 -1
  101. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/parse.cjs +7 -7
  102. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/parse.js +7 -7
  103. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/regexes.cjs +9 -3
  104. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/regexes.d.cts +6 -0
  105. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/regexes.d.ts +6 -0
  106. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/regexes.js +7 -1
  107. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/schemas.cjs +196 -59
  108. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/schemas.d.cts +21 -1
  109. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/schemas.d.ts +21 -1
  110. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/schemas.js +196 -59
  111. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/to-json-schema.cjs +10 -1
  112. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/to-json-schema.js +10 -1
  113. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/util.cjs +54 -30
  114. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/util.d.cts +1 -0
  115. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/util.d.ts +1 -0
  116. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/util.js +55 -32
  117. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/versions.cjs +2 -2
  118. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/versions.d.cts +1 -1
  119. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/versions.d.ts +1 -1
  120. package/node_modules/@relaycast/sdk/node_modules/zod/v4/core/versions.js +2 -2
  121. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/el.cjs +136 -0
  122. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/el.d.cts +5 -0
  123. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/el.d.ts +4 -0
  124. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/el.js +109 -0
  125. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/en.cjs +4 -0
  126. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/en.js +4 -0
  127. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/fr.cjs +24 -7
  128. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/fr.js +24 -7
  129. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/hr.cjs +149 -0
  130. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/hr.d.cts +5 -0
  131. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/hr.d.ts +4 -0
  132. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/hr.js +122 -0
  133. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/index.cjs +8 -1
  134. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/index.d.cts +3 -0
  135. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/index.d.ts +3 -0
  136. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/index.js +3 -0
  137. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/it.cjs +1 -1
  138. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/it.js +1 -1
  139. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/ka.cjs +8 -8
  140. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/ka.js +8 -8
  141. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/package.json +2 -1
  142. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/ro.cjs +146 -0
  143. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/ro.d.cts +5 -0
  144. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/ro.d.ts +4 -0
  145. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/ro.js +119 -0
  146. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/uz.cjs +1 -0
  147. package/node_modules/@relaycast/sdk/node_modules/zod/v4/locales/uz.js +1 -0
  148. package/node_modules/@relaycast/sdk/node_modules/zod/v4/mini/external.d.cts +1 -0
  149. package/node_modules/@relaycast/sdk/node_modules/zod/v4/mini/external.d.ts +1 -0
  150. package/node_modules/@relaycast/sdk/node_modules/zod/v4/mini/package.json +2 -1
  151. package/node_modules/@relaycast/sdk/node_modules/zod/v4/mini/schemas.cjs +41 -4
  152. package/node_modules/@relaycast/sdk/node_modules/zod/v4/mini/schemas.d.cts +27 -9
  153. package/node_modules/@relaycast/sdk/node_modules/zod/v4/mini/schemas.d.ts +27 -9
  154. package/node_modules/@relaycast/sdk/node_modules/zod/v4/mini/schemas.js +40 -4
  155. package/node_modules/@relaycast/sdk/node_modules/zod/v4/package.json +2 -1
  156. package/node_modules/@relaycast/sdk/node_modules/zod/v4-mini/package.json +2 -1
  157. package/package.json +9 -9
@@ -169,7 +169,7 @@ if (!result.success) {
169
169
  }
170
170
  ```
171
171
 
172
- **Note** — If your schema uses certain asynchronous APIs like `async` [refinements](#refine) or [transforms](#transform), you'll need to use the `.safeParseAsync()` method instead.
172
+ **Note** — If your schema uses certain asynchronous APIs like `async` [refinements](https://zod.dev/api#refinements) or [transforms](https://zod.dev/api#transforms), you'll need to use the `.safeParseAsync()` method instead.
173
173
 
174
174
  ```ts
175
175
  const schema = z.string().refine(async (val) => val.length <= 8);
@@ -2,5 +2,6 @@
2
2
  "type": "module",
3
3
  "main": "./index.cjs",
4
4
  "module": "./index.js",
5
- "types": "./index.d.cts"
5
+ "types": "./index.d.cts",
6
+ "sideEffects": false
6
7
  }
@@ -2,5 +2,6 @@
2
2
  "type": "module",
3
3
  "main": "./index.cjs",
4
4
  "module": "./index.js",
5
- "types": "./index.d.cts"
5
+ "types": "./index.d.cts",
6
+ "sideEffects": false
6
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zod",
3
- "version": "4.3.6",
3
+ "version": "4.4.1",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "author": "Colin McDonnell <zod@colinhacks.com>",
@@ -16,7 +16,7 @@ type TestFormErrors = z.inferFlattenedErrors<typeof Test>;
16
16
  test("default flattened errors type inference", () => {
17
17
  type TestTypeErrors = {
18
18
  formErrors: string[];
19
- fieldErrors: { [P in keyof z.TypeOf<typeof Test>]?: string[] | undefined };
19
+ fieldErrors: { [P in keyof z.TypeOf<typeof Test>]?: string[] };
20
20
  };
21
21
 
22
22
  util.assertEqual<z.inferFlattenedErrors<typeof Test>, TestTypeErrors>(true);
@@ -28,7 +28,7 @@ test("custom flattened errors type inference", () => {
28
28
  type TestTypeErrors = {
29
29
  formErrors: ErrorType[];
30
30
  fieldErrors: {
31
- [P in keyof z.TypeOf<typeof Test>]?: ErrorType[] | undefined;
31
+ [P in keyof z.TypeOf<typeof Test>]?: ErrorType[];
32
32
  };
33
33
  };
34
34
 
@@ -40,7 +40,7 @@ test("custom flattened errors type inference", () => {
40
40
  test("form errors type inference", () => {
41
41
  type TestTypeErrors = {
42
42
  formErrors: string[];
43
- fieldErrors: { [P in keyof z.TypeOf<typeof Test>]?: string[] | undefined };
43
+ fieldErrors: { [P in keyof z.TypeOf<typeof Test>]?: string[] };
44
44
  };
45
45
 
46
46
  util.assertEqual<z.inferFlattenedErrors<typeof Test>, TestTypeErrors>(true);
@@ -212,9 +212,9 @@ test("inferred merged object type with optional properties", async () => {
212
212
  .object({ a: z.string(), b: z.string().optional() })
213
213
  .merge(z.object({ a: z.string().optional(), b: z.string() }));
214
214
  type Merged = z.infer<typeof Merged>;
215
- util.assertEqual<Merged, { a?: string; b: string }>(true);
215
+ util.assertEqual<Merged, { a?: string | undefined; b: string }>(true);
216
216
  // todo
217
- // util.assertEqual<Merged, { a?: string; b: string }>(true);
217
+ // util.assertEqual<Merged, { a?: string | undefined; b: string }>(true);
218
218
  });
219
219
 
220
220
  test("inferred unioned object type with optional properties", async () => {
@@ -223,7 +223,7 @@ test("inferred unioned object type with optional properties", async () => {
223
223
  z.object({ a: z.string().optional(), b: z.string() }),
224
224
  ]);
225
225
  type Unioned = z.infer<typeof Unioned>;
226
- util.assertEqual<Unioned, { a: string; b?: string } | { a?: string; b: string }>(true);
226
+ util.assertEqual<Unioned, { a: string; b?: string | undefined } | { a?: string | undefined; b: string }>(true);
227
227
  });
228
228
 
229
229
  test("inferred enum type", async () => {
@@ -245,13 +245,13 @@ test("inferred enum type", async () => {
245
245
  test("inferred partial object type with optional properties", async () => {
246
246
  const Partial = z.object({ a: z.string(), b: z.string().optional() }).partial();
247
247
  type Partial = z.infer<typeof Partial>;
248
- util.assertEqual<Partial, { a?: string; b?: string }>(true);
248
+ util.assertEqual<Partial, { a?: string | undefined; b?: string | undefined }>(true);
249
249
  });
250
250
 
251
251
  test("inferred picked object type with optional properties", async () => {
252
252
  const Picked = z.object({ a: z.string(), b: z.string().optional() }).pick({ b: true });
253
253
  type Picked = z.infer<typeof Picked>;
254
- util.assertEqual<Picked, { b?: string }>(true);
254
+ util.assertEqual<Picked, { b?: string | undefined }>(true);
255
255
  });
256
256
 
257
257
  test("inferred type for unknown/any keys", () => {
@@ -21,7 +21,7 @@ test("shallow inference", () => {
21
21
  name?: string | undefined;
22
22
  age?: number | undefined;
23
23
  outer?: { inner: string } | undefined;
24
- array?: { asdf: string }[];
24
+ array?: { asdf: string }[] | undefined;
25
25
  };
26
26
  util.assertEqual<shallow, correct>(true);
27
27
  });
@@ -41,7 +41,7 @@ test("deep partial inference", () => {
41
41
  asdf.parse("asdf");
42
42
  type deep = z.infer<typeof deep>;
43
43
  type correct = {
44
- array?: { asdf?: string }[];
44
+ array?: { asdf?: string | undefined }[] | undefined;
45
45
  name?: string | undefined;
46
46
  age?: number | undefined;
47
47
  outer?: { inner?: string | undefined } | undefined;
@@ -118,7 +118,7 @@ test("deep partial inference", () => {
118
118
  asdf?: string | undefined;
119
119
  }[]
120
120
  | undefined;
121
- tuple?: [{ value?: string }] | undefined;
121
+ tuple?: [{ value?: string | undefined }] | undefined;
122
122
  };
123
123
  util.assertEqual<expected, partialed>(true);
124
124
  });
@@ -61,8 +61,8 @@ const initializer = (inst: ZodError, issues: core.$ZodIssue[]) => {
61
61
  // },
62
62
  // });
63
63
  };
64
- export const ZodError: core.$constructor<ZodError> = core.$constructor("ZodError", initializer);
65
- export const ZodRealError: core.$constructor<ZodError> = core.$constructor("ZodError", initializer, {
64
+ export const ZodError: core.$constructor<ZodError> = /*@__PURE__*/ core.$constructor("ZodError", initializer);
65
+ export const ZodRealError: core.$constructor<ZodError> = /*@__PURE__*/ core.$constructor("ZodError", initializer, {
66
66
  Parent: Error,
67
67
  });
68
68
 
@@ -11,6 +11,7 @@ import en from "../locales/en.js";
11
11
  config(en());
12
12
 
13
13
  export type { infer, output, input } from "../core/index.js";
14
+ export type { JSONType } from "../core/util.js";
14
15
  export {
15
16
  globalRegistry,
16
17
  type GlobalMeta,
@@ -29,7 +29,7 @@ interface ConversionContext {
29
29
  }
30
30
 
31
31
  // Keys that are recognized and handled by the conversion logic
32
- const RECOGNIZED_KEYS = new Set([
32
+ const RECOGNIZED_KEYS = /*@__PURE__*/ new Set([
33
33
  // Schema identification
34
34
  "$schema",
35
35
  "$ref",
@@ -478,10 +478,10 @@ function convertBaseSchema(schema: JSONSchema.JSONSchema, ctx: ConversionContext
478
478
  }
479
479
  // Apply minItems/maxItems constraints to tuples
480
480
  if (typeof schema.minItems === "number") {
481
- zodSchema = (zodSchema as any).check(z.minLength(schema.minItems));
481
+ zodSchema = zodSchema.check(z.minLength(schema.minItems));
482
482
  }
483
483
  if (typeof schema.maxItems === "number") {
484
- zodSchema = (zodSchema as any).check(z.maxLength(schema.maxItems));
484
+ zodSchema = zodSchema.check(z.maxLength(schema.maxItems));
485
485
  }
486
486
  } else if (Array.isArray(items)) {
487
487
  // Tuple with items array (draft-7)
@@ -497,10 +497,10 @@ function convertBaseSchema(schema: JSONSchema.JSONSchema, ctx: ConversionContext
497
497
  }
498
498
  // Apply minItems/maxItems constraints to tuples
499
499
  if (typeof schema.minItems === "number") {
500
- zodSchema = (zodSchema as any).check(z.minLength(schema.minItems));
500
+ zodSchema = zodSchema.check(z.minLength(schema.minItems));
501
501
  }
502
502
  if (typeof schema.maxItems === "number") {
503
- zodSchema = (zodSchema as any).check(z.maxLength(schema.maxItems));
503
+ zodSchema = zodSchema.check(z.maxLength(schema.maxItems));
504
504
  }
505
505
  } else if (items !== undefined) {
506
506
  // Regular array
@@ -509,10 +509,10 @@ function convertBaseSchema(schema: JSONSchema.JSONSchema, ctx: ConversionContext
509
509
 
510
510
  // Apply constraints
511
511
  if (typeof schema.minItems === "number") {
512
- arraySchema = (arraySchema as any).min(schema.minItems);
512
+ arraySchema = arraySchema.min(schema.minItems);
513
513
  }
514
514
  if (typeof schema.maxItems === "number") {
515
- arraySchema = (arraySchema as any).max(schema.maxItems);
515
+ arraySchema = arraySchema.max(schema.maxItems);
516
516
  }
517
517
 
518
518
  zodSchema = arraySchema;
@@ -527,14 +527,6 @@ function convertBaseSchema(schema: JSONSchema.JSONSchema, ctx: ConversionContext
527
527
  throw new Error(`Unsupported type: ${type}`);
528
528
  }
529
529
 
530
- // Apply metadata
531
- if (schema.description) {
532
- zodSchema = zodSchema.describe(schema.description);
533
- }
534
- if (schema.default !== undefined) {
535
- zodSchema = (zodSchema as any).default(schema.default);
536
- }
537
-
538
530
  return zodSchema;
539
531
  }
540
532
 
@@ -586,10 +578,18 @@ function convertSchema(schema: JSONSchema.JSONSchema | boolean, ctx: ConversionC
586
578
  baseSchema = z.readonly(baseSchema);
587
579
  }
588
580
 
589
- // Collect metadata: core schema keywords and unrecognized keys
581
+ // Apply `default` so it wraps the fully-composed schema. This ensures
582
+ // `parse(undefined) -> default` works regardless of which branch of
583
+ // `convertBaseSchema` produced the inner schema (enum/const/not/typed/etc.).
584
+ if (schema.default !== undefined) {
585
+ baseSchema = baseSchema.default(schema.default);
586
+ }
587
+
588
+ // Collect non-description annotation metadata into the user-supplied
589
+ // registry. Description is handled separately below via `.describe()` to
590
+ // preserve the contract that `schema.description` reads from globalRegistry.
590
591
  const extraMeta: Record<string, unknown> = {};
591
592
 
592
- // Core schema keywords that should be captured as metadata
593
593
  const coreMetadataKeys = ["$id", "id", "$comment", "$anchor", "$vocabulary", "$dynamicRef", "$dynamicAnchor"];
594
594
  for (const key of coreMetadataKeys) {
595
595
  if (key in schema) {
@@ -597,7 +597,6 @@ function convertSchema(schema: JSONSchema.JSONSchema | boolean, ctx: ConversionC
597
597
  }
598
598
  }
599
599
 
600
- // Content keywords - store as metadata
601
600
  const contentMetadataKeys = ["contentEncoding", "contentMediaType", "contentSchema"];
602
601
  for (const key of contentMetadataKeys) {
603
602
  if (key in schema) {
@@ -605,7 +604,6 @@ function convertSchema(schema: JSONSchema.JSONSchema | boolean, ctx: ConversionC
605
604
  }
606
605
  }
607
606
 
608
- // Unrecognized keys (custom metadata)
609
607
  for (const key of Object.keys(schema)) {
610
608
  if (!RECOGNIZED_KEYS.has(key)) {
611
609
  extraMeta[key] = schema[key];
@@ -616,6 +614,13 @@ function convertSchema(schema: JSONSchema.JSONSchema | boolean, ctx: ConversionC
616
614
  ctx.registry.add(baseSchema, extraMeta);
617
615
  }
618
616
 
617
+ // Apply description last. `.describe()` clones the schema and sets
618
+ // `_zod.parent` on the clone, so registry lookups on the returned reference
619
+ // still resolve `extraMeta` via parent inheritance.
620
+ if (schema.description) {
621
+ baseSchema = baseSchema.describe(schema.description);
622
+ }
623
+
619
624
  return baseSchema;
620
625
  }
621
626
 
@@ -627,17 +632,28 @@ export function fromJSONSchema(schema: JSONSchema.JSONSchema | boolean, params?:
627
632
  return schema ? z.any() : z.never();
628
633
  }
629
634
 
630
- const version = detectVersion(schema, params?.defaultTarget);
631
- const defs = (schema.$defs || schema.definitions || {}) as Record<string, JSONSchema.JSONSchema>;
635
+ // Normalize input via a JSON round-trip. This guarantees the converter
636
+ // walks a plain, finite, JSON-valid object graph: cyclic inputs fail here,
637
+ // getter/Proxy-based properties are materialized into static values, and
638
+ // class instances collapse to plain objects.
639
+ let normalized: JSONSchema.JSONSchema;
640
+ try {
641
+ normalized = JSON.parse(JSON.stringify(schema));
642
+ } catch {
643
+ throw new Error("fromJSONSchema input is not valid JSON (possibly cyclic); use $defs/$ref for recursive schemas");
644
+ }
645
+
646
+ const version = detectVersion(normalized, params?.defaultTarget);
647
+ const defs = (normalized.$defs || normalized.definitions || {}) as Record<string, JSONSchema.JSONSchema>;
632
648
 
633
649
  const ctx: ConversionContext = {
634
650
  version,
635
651
  defs,
636
652
  refs: new Map(),
637
653
  processing: new Set(),
638
- rootSchema: schema,
654
+ rootSchema: normalized,
639
655
  registry: params?.registry ?? globalRegistry,
640
656
  };
641
657
 
642
- return convertSchema(schema, ctx);
658
+ return convertSchema(normalized, ctx);
643
659
  }
@@ -10,14 +10,14 @@ export const parse: <T extends core.$ZodType>(
10
10
  value: unknown,
11
11
  _ctx?: core.ParseContext<core.$ZodIssue>,
12
12
  _params?: { callee?: core.util.AnyFunc; Err?: core.$ZodErrorClass }
13
- ) => core.output<T> = /* @__PURE__ */ core._parse(ZodRealError) as any;
13
+ ) => core.output<T> = /* @__PURE__ */ core._parse(ZodRealError);
14
14
 
15
15
  export const parseAsync: <T extends core.$ZodType>(
16
16
  schema: T,
17
17
  value: unknown,
18
18
  _ctx?: core.ParseContext<core.$ZodIssue>,
19
19
  _params?: { callee?: core.util.AnyFunc; Err?: core.$ZodErrorClass }
20
- ) => Promise<core.output<T>> = /* @__PURE__ */ core._parseAsync(ZodRealError) as any;
20
+ ) => Promise<core.output<T>> = /* @__PURE__ */ core._parseAsync(ZodRealError);
21
21
 
22
22
  export const safeParse: <T extends core.$ZodType>(
23
23
  schema: T,
@@ -37,25 +37,25 @@ export const encode: <T extends core.$ZodType>(
37
37
  schema: T,
38
38
  value: core.output<T>,
39
39
  _ctx?: core.ParseContext<core.$ZodIssue>
40
- ) => core.input<T> = /* @__PURE__ */ core._encode(ZodRealError) as any;
40
+ ) => core.input<T> = /* @__PURE__ */ core._encode(ZodRealError);
41
41
 
42
42
  export const decode: <T extends core.$ZodType>(
43
43
  schema: T,
44
44
  value: core.input<T>,
45
45
  _ctx?: core.ParseContext<core.$ZodIssue>
46
- ) => core.output<T> = /* @__PURE__ */ core._decode(ZodRealError) as any;
46
+ ) => core.output<T> = /* @__PURE__ */ core._decode(ZodRealError);
47
47
 
48
48
  export const encodeAsync: <T extends core.$ZodType>(
49
49
  schema: T,
50
50
  value: core.output<T>,
51
51
  _ctx?: core.ParseContext<core.$ZodIssue>
52
- ) => Promise<core.input<T>> = /* @__PURE__ */ core._encodeAsync(ZodRealError) as any;
52
+ ) => Promise<core.input<T>> = /* @__PURE__ */ core._encodeAsync(ZodRealError);
53
53
 
54
54
  export const decodeAsync: <T extends core.$ZodType>(
55
55
  schema: T,
56
56
  value: core.input<T>,
57
57
  _ctx?: core.ParseContext<core.$ZodIssue>
58
- ) => Promise<core.output<T>> = /* @__PURE__ */ core._decodeAsync(ZodRealError) as any;
58
+ ) => Promise<core.output<T>> = /* @__PURE__ */ core._decodeAsync(ZodRealError);
59
59
 
60
60
  export const safeEncode: <T extends core.$ZodType>(
61
61
  schema: T,