zod 3.25.73 → 3.25.74

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zod",
3
- "version": "3.25.73",
3
+ "version": "3.25.74",
4
4
  "type": "module",
5
5
  "author": "Colin McDonnell <zod@colinhacks.com>",
6
6
  "description": "TypeScript-first schema declaration and validation library with static type inference",
@@ -1359,11 +1359,11 @@ export function partialRecord<Key extends core.$ZodRecordKey, Value extends core
1359
1359
  keyType: Key,
1360
1360
  valueType: Value,
1361
1361
  params?: string | core.$ZodRecordParams
1362
- ): ZodRecord<Key, ZodOptional<Value>> {
1362
+ ): ZodRecord<Key & core.$partial, Value> {
1363
1363
  return new ZodRecord({
1364
1364
  type: "record",
1365
1365
  keyType: union([keyType, never()]),
1366
- valueType: optional(valueType),
1366
+ valueType: valueType as any,
1367
1367
  ...util.normalizeParams(params),
1368
1368
  }) as any;
1369
1369
  }
@@ -335,4 +335,8 @@ test("partial record", () => {
335
335
  const schema = z.partialRecord(z.string(), z.string());
336
336
  type schema = z.infer<typeof schema>;
337
337
  expectTypeOf<schema>().toEqualTypeOf<Partial<Record<string, string>>>();
338
+
339
+ const Keys = z.enum(["id", "name", "email"]).or(z.never());
340
+ const Person = z.partialRecord(Keys, z.string());
341
+ expectTypeOf<z.infer<typeof Person>>().toEqualTypeOf<Partial<Record<"id" | "name" | "email", string>>>();
338
342
  });
@@ -2376,30 +2376,42 @@ export interface $ZodRecordDef<Key extends $ZodRecordKey = $ZodRecordKey, Value
2376
2376
  valueType: Value;
2377
2377
  }
2378
2378
 
2379
+ // export type $InferZodRecordOutput<
2380
+ // Key extends $ZodRecordKey = $ZodRecordKey,
2381
+ // Value extends SomeType = $ZodType,
2382
+ // > = undefined extends Key["_zod"]["values"]
2383
+ // ? string extends core.output<Key>
2384
+ // ? Record<core.output<Key>, core.output<Value>>
2385
+ // : number extends core.output<Key>
2386
+ // ? Record<core.output<Key>, core.output<Value>>
2387
+ // : symbol extends core.output<Key>
2388
+ // ? Record<core.output<Key>, core.output<Value>>
2389
+ // : Record<core.output<Key>, core.output<Value>>
2390
+ // : Record<core.output<Key>, core.output<Value>>;
2379
2391
  export type $InferZodRecordOutput<
2380
2392
  Key extends $ZodRecordKey = $ZodRecordKey,
2381
2393
  Value extends SomeType = $ZodType,
2382
- > = undefined extends Key["_zod"]["values"]
2383
- ? string extends core.output<Key>
2384
- ? Record<core.output<Key>, core.output<Value>>
2385
- : number extends core.output<Key>
2386
- ? Record<core.output<Key>, core.output<Value>>
2387
- : symbol extends core.output<Key>
2388
- ? Record<core.output<Key>, core.output<Value>>
2389
- : Record<core.output<Key>, core.output<Value>>
2394
+ > = Key extends $partial
2395
+ ? Partial<Record<core.output<Key>, core.output<Value>>>
2390
2396
  : Record<core.output<Key>, core.output<Value>>;
2391
2397
 
2398
+ // export type $InferZodRecordInput<
2399
+ // Key extends $ZodRecordKey = $ZodRecordKey,
2400
+ // Value extends SomeType = $ZodType,
2401
+ // > = undefined extends Key["_zod"]["values"]
2402
+ // ? string extends core.input<Key>
2403
+ // ? Record<core.input<Key>, core.input<Value>>
2404
+ // : number extends core.input<Key>
2405
+ // ? Record<core.input<Key>, core.input<Value>>
2406
+ // : symbol extends core.input<Key>
2407
+ // ? Record<core.input<Key>, core.input<Value>>
2408
+ // : Record<core.input<Key>, core.input<Value>>
2409
+ // : Record<core.input<Key>, core.input<Value>>;
2392
2410
  export type $InferZodRecordInput<
2393
2411
  Key extends $ZodRecordKey = $ZodRecordKey,
2394
2412
  Value extends SomeType = $ZodType,
2395
- > = undefined extends Key["_zod"]["values"]
2396
- ? string extends core.input<Key>
2397
- ? Record<core.input<Key>, core.input<Value>>
2398
- : number extends core.input<Key>
2399
- ? Record<core.input<Key>, core.input<Value>>
2400
- : symbol extends core.input<Key>
2401
- ? Record<core.input<Key>, core.input<Value>>
2402
- : Record<core.input<Key>, core.input<Value>>
2413
+ > = Key extends $partial
2414
+ ? Partial<Record<core.input<Key>, core.input<Value>>>
2403
2415
  : Record<core.input<Key>, core.input<Value>>;
2404
2416
 
2405
2417
  export interface $ZodRecordInternals<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType>
@@ -2408,6 +2420,7 @@ export interface $ZodRecordInternals<Key extends $ZodRecordKey = $ZodRecordKey,
2408
2420
  isst: errors.$ZodIssueInvalidType | errors.$ZodIssueInvalidKey<Record<PropertyKey, unknown>>;
2409
2421
  }
2410
2422
 
2423
+ export type $partial = { "~~partial": true };
2411
2424
  export interface $ZodRecord<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType>
2412
2425
  extends $ZodType {
2413
2426
  _zod: $ZodRecordInternals<Key, Value>;
@@ -1023,11 +1023,11 @@ export function partialRecord<Key extends core.$ZodRecordKey, Value extends Some
1023
1023
  keyType: Key,
1024
1024
  valueType: Value,
1025
1025
  params?: string | core.$ZodRecordParams
1026
- ): ZodMiniRecord<Key, ZodMiniOptional<Value>> {
1026
+ ): ZodMiniRecord<Key & core.$partial, Value> {
1027
1027
  return new ZodMiniRecord({
1028
1028
  type: "record",
1029
1029
  keyType: union([keyType, never()]),
1030
- valueType: optional(valueType),
1030
+ valueType: valueType as any,
1031
1031
  ...util.normalizeParams(params),
1032
1032
  }) as any;
1033
1033
  }
@@ -717,7 +717,7 @@ function partialRecord(keyType, valueType, params) {
717
717
  return new exports.ZodRecord({
718
718
  type: "record",
719
719
  keyType: union([keyType, never()]),
720
- valueType: optional(valueType),
720
+ valueType: valueType,
721
721
  ...index_js_1.util.normalizeParams(params),
722
722
  });
723
723
  }
@@ -475,7 +475,7 @@ export interface ZodRecord<Key extends core.$ZodRecordKey = core.$ZodRecordKey,
475
475
  }
476
476
  export declare const ZodRecord: core.$constructor<ZodRecord>;
477
477
  export declare function record<Key extends core.$ZodRecordKey, Value extends core.SomeType>(keyType: Key, valueType: Value, params?: string | core.$ZodRecordParams): ZodRecord<Key, Value>;
478
- export declare function partialRecord<Key extends core.$ZodRecordKey, Value extends core.SomeType>(keyType: Key, valueType: Value, params?: string | core.$ZodRecordParams): ZodRecord<Key, ZodOptional<Value>>;
478
+ export declare function partialRecord<Key extends core.$ZodRecordKey, Value extends core.SomeType>(keyType: Key, valueType: Value, params?: string | core.$ZodRecordParams): ZodRecord<Key & core.$partial, Value>;
479
479
  export interface ZodMap<Key extends core.SomeType = core.$ZodType, Value extends core.SomeType = core.$ZodType> extends _ZodType<core.$ZodMapInternals<Key, Value>>, core.$ZodMap<Key, Value> {
480
480
  keyType: Key;
481
481
  valueType: Value;
@@ -475,7 +475,7 @@ export interface ZodRecord<Key extends core.$ZodRecordKey = core.$ZodRecordKey,
475
475
  }
476
476
  export declare const ZodRecord: core.$constructor<ZodRecord>;
477
477
  export declare function record<Key extends core.$ZodRecordKey, Value extends core.SomeType>(keyType: Key, valueType: Value, params?: string | core.$ZodRecordParams): ZodRecord<Key, Value>;
478
- export declare function partialRecord<Key extends core.$ZodRecordKey, Value extends core.SomeType>(keyType: Key, valueType: Value, params?: string | core.$ZodRecordParams): ZodRecord<Key, ZodOptional<Value>>;
478
+ export declare function partialRecord<Key extends core.$ZodRecordKey, Value extends core.SomeType>(keyType: Key, valueType: Value, params?: string | core.$ZodRecordParams): ZodRecord<Key & core.$partial, Value>;
479
479
  export interface ZodMap<Key extends core.SomeType = core.$ZodType, Value extends core.SomeType = core.$ZodType> extends _ZodType<core.$ZodMapInternals<Key, Value>>, core.$ZodMap<Key, Value> {
480
480
  keyType: Key;
481
481
  valueType: Value;
@@ -612,7 +612,7 @@ export function partialRecord(keyType, valueType, params) {
612
612
  return new ZodRecord({
613
613
  type: "record",
614
614
  keyType: union([keyType, never()]),
615
- valueType: optional(valueType),
615
+ valueType: valueType,
616
616
  ...util.normalizeParams(params),
617
617
  });
618
618
  }
@@ -681,12 +681,15 @@ export interface $ZodRecordDef<Key extends $ZodRecordKey = $ZodRecordKey, Value
681
681
  keyType: Key;
682
682
  valueType: Value;
683
683
  }
684
- export type $InferZodRecordOutput<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType> = undefined extends Key["_zod"]["values"] ? string extends core.output<Key> ? Record<core.output<Key>, core.output<Value>> : number extends core.output<Key> ? Record<core.output<Key>, core.output<Value>> : symbol extends core.output<Key> ? Record<core.output<Key>, core.output<Value>> : Record<core.output<Key>, core.output<Value>> : Record<core.output<Key>, core.output<Value>>;
685
- export type $InferZodRecordInput<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType> = undefined extends Key["_zod"]["values"] ? string extends core.input<Key> ? Record<core.input<Key>, core.input<Value>> : number extends core.input<Key> ? Record<core.input<Key>, core.input<Value>> : symbol extends core.input<Key> ? Record<core.input<Key>, core.input<Value>> : Record<core.input<Key>, core.input<Value>> : Record<core.input<Key>, core.input<Value>>;
684
+ export type $InferZodRecordOutput<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType> = Key extends $partial ? Partial<Record<core.output<Key>, core.output<Value>>> : Record<core.output<Key>, core.output<Value>>;
685
+ export type $InferZodRecordInput<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType> = Key extends $partial ? Partial<Record<core.input<Key>, core.input<Value>>> : Record<core.input<Key>, core.input<Value>>;
686
686
  export interface $ZodRecordInternals<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType> extends $ZodTypeInternals<$InferZodRecordOutput<Key, Value>, $InferZodRecordInput<Key, Value>> {
687
687
  def: $ZodRecordDef<Key, Value>;
688
688
  isst: errors.$ZodIssueInvalidType | errors.$ZodIssueInvalidKey<Record<PropertyKey, unknown>>;
689
689
  }
690
+ export type $partial = {
691
+ "~~partial": true;
692
+ };
690
693
  export interface $ZodRecord<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType> extends $ZodType {
691
694
  _zod: $ZodRecordInternals<Key, Value>;
692
695
  }
@@ -681,12 +681,15 @@ export interface $ZodRecordDef<Key extends $ZodRecordKey = $ZodRecordKey, Value
681
681
  keyType: Key;
682
682
  valueType: Value;
683
683
  }
684
- export type $InferZodRecordOutput<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType> = undefined extends Key["_zod"]["values"] ? string extends core.output<Key> ? Record<core.output<Key>, core.output<Value>> : number extends core.output<Key> ? Record<core.output<Key>, core.output<Value>> : symbol extends core.output<Key> ? Record<core.output<Key>, core.output<Value>> : Record<core.output<Key>, core.output<Value>> : Record<core.output<Key>, core.output<Value>>;
685
- export type $InferZodRecordInput<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType> = undefined extends Key["_zod"]["values"] ? string extends core.input<Key> ? Record<core.input<Key>, core.input<Value>> : number extends core.input<Key> ? Record<core.input<Key>, core.input<Value>> : symbol extends core.input<Key> ? Record<core.input<Key>, core.input<Value>> : Record<core.input<Key>, core.input<Value>> : Record<core.input<Key>, core.input<Value>>;
684
+ export type $InferZodRecordOutput<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType> = Key extends $partial ? Partial<Record<core.output<Key>, core.output<Value>>> : Record<core.output<Key>, core.output<Value>>;
685
+ export type $InferZodRecordInput<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType> = Key extends $partial ? Partial<Record<core.input<Key>, core.input<Value>>> : Record<core.input<Key>, core.input<Value>>;
686
686
  export interface $ZodRecordInternals<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType> extends $ZodTypeInternals<$InferZodRecordOutput<Key, Value>, $InferZodRecordInput<Key, Value>> {
687
687
  def: $ZodRecordDef<Key, Value>;
688
688
  isst: errors.$ZodIssueInvalidType | errors.$ZodIssueInvalidKey<Record<PropertyKey, unknown>>;
689
689
  }
690
+ export type $partial = {
691
+ "~~partial": true;
692
+ };
690
693
  export interface $ZodRecord<Key extends $ZodRecordKey = $ZodRecordKey, Value extends SomeType = $ZodType> extends $ZodType {
691
694
  _zod: $ZodRecordInternals<Key, Value>;
692
695
  }
@@ -565,7 +565,7 @@ function partialRecord(keyType, valueType, params) {
565
565
  return new exports.ZodMiniRecord({
566
566
  type: "record",
567
567
  keyType: union([keyType, never()]),
568
- valueType: optional(valueType),
568
+ valueType: valueType,
569
569
  ...index_js_1.util.normalizeParams(params),
570
570
  });
571
571
  }
@@ -234,7 +234,7 @@ export interface ZodMiniRecord<Key extends core.$ZodRecordKey = core.$ZodRecordK
234
234
  }
235
235
  export declare const ZodMiniRecord: core.$constructor<ZodMiniRecord>;
236
236
  export declare function record<Key extends core.$ZodRecordKey, Value extends SomeType>(keyType: Key, valueType: Value, params?: string | core.$ZodRecordParams): ZodMiniRecord<Key, Value>;
237
- export declare function partialRecord<Key extends core.$ZodRecordKey, Value extends SomeType>(keyType: Key, valueType: Value, params?: string | core.$ZodRecordParams): ZodMiniRecord<Key, ZodMiniOptional<Value>>;
237
+ export declare function partialRecord<Key extends core.$ZodRecordKey, Value extends SomeType>(keyType: Key, valueType: Value, params?: string | core.$ZodRecordParams): ZodMiniRecord<Key & core.$partial, Value>;
238
238
  export interface ZodMiniMap<Key extends SomeType = core.$ZodType, Value extends SomeType = core.$ZodType> extends _ZodMiniType<core.$ZodMapInternals<Key, Value>> {
239
239
  }
240
240
  export declare const ZodMiniMap: core.$constructor<ZodMiniMap>;
@@ -234,7 +234,7 @@ export interface ZodMiniRecord<Key extends core.$ZodRecordKey = core.$ZodRecordK
234
234
  }
235
235
  export declare const ZodMiniRecord: core.$constructor<ZodMiniRecord>;
236
236
  export declare function record<Key extends core.$ZodRecordKey, Value extends SomeType>(keyType: Key, valueType: Value, params?: string | core.$ZodRecordParams): ZodMiniRecord<Key, Value>;
237
- export declare function partialRecord<Key extends core.$ZodRecordKey, Value extends SomeType>(keyType: Key, valueType: Value, params?: string | core.$ZodRecordParams): ZodMiniRecord<Key, ZodMiniOptional<Value>>;
237
+ export declare function partialRecord<Key extends core.$ZodRecordKey, Value extends SomeType>(keyType: Key, valueType: Value, params?: string | core.$ZodRecordParams): ZodMiniRecord<Key & core.$partial, Value>;
238
238
  export interface ZodMiniMap<Key extends SomeType = core.$ZodType, Value extends SomeType = core.$ZodType> extends _ZodMiniType<core.$ZodMapInternals<Key, Value>> {
239
239
  }
240
240
  export declare const ZodMiniMap: core.$constructor<ZodMiniMap>;
@@ -455,7 +455,7 @@ export function partialRecord(keyType, valueType, params) {
455
455
  return new ZodMiniRecord({
456
456
  type: "record",
457
457
  keyType: union([keyType, never()]),
458
- valueType: optional(valueType),
458
+ valueType: valueType,
459
459
  ...util.normalizeParams(params),
460
460
  });
461
461
  }