Socket
Socket
Sign inDemoInstall

zod

Package Overview
Dependencies
Maintainers
2
Versions
361
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

zod - npm Package Compare versions

Comparing version 2.0.0-beta.14 to 2.0.0-beta.15

lib/src/types/map.d.ts

48

lib/src/codegen.js
"use strict";
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
var __importStar = (this && this.__importStar) || function (mod) {

@@ -51,2 +62,3 @@ if (mod && mod.__esModule) return mod;

this.generate = function (schema) {
var e_1, _a, e_2, _b;
var found = _this.findBySchema(schema);

@@ -108,7 +120,16 @@ if (found)

var tupleLines = [];
for (var _i = 0, _a = def.items; _i < _a.length; _i++) {
var elSchema = _a[_i];
var elType = _this.generate(elSchema);
tupleLines.push(elType.id);
try {
for (var _c = __values(def.items), _d = _c.next(); !_d.done; _d = _c.next()) {
var elSchema = _d.value;
var elType = _this.generate(elSchema);
tupleLines.push(elType.id);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
}
finally { if (e_1) throw e_1.error; }
}
var baseTuple = "[\n" + tupleLines

@@ -129,7 +150,16 @@ .map(function (line) { return " " + line + ","; })

var unionLines = [];
for (var _b = 0, _c = def.options; _b < _c.length; _b++) {
var elSchema = _c[_b];
var elType = _this.generate(elSchema);
unionLines.push(elType.id);
try {
for (var _e = __values(def.options), _f = _e.next(); !_f.done; _f = _e.next()) {
var elSchema = _f.value;
var elType = _this.generate(elSchema);
unionLines.push(elType.id);
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
}
finally { if (e_2) throw e_2.error; }
}
return _this.setType(id, unionLines.join(" | "));

@@ -142,2 +172,4 @@ case z.ZodTypes.intersection:

return _this.setType(id, _this.generate(def.output).id);
case z.ZodTypes.map:
return _this.setType(id, "Map<" + _this.generate(def.keyType).id + ", " + _this.generate(def.valueType).id + ">");
case z.ZodTypes.lazy:

@@ -144,0 +176,0 @@ var lazyType = def.getter();

@@ -13,9 +13,33 @@ "use strict";

};
var __spreadArrays = (this && this.__spreadArrays) || function () {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __spread = (this && this.__spread) || function () {
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
return ar;
};
Object.defineProperty(exports, "__esModule", { value: true });

@@ -58,2 +82,3 @@ var base_1 = require("../types/base");

objectUtil.mergeShapes = function (first, second) {
var e_1, _a;
var firstKeys = Object.keys(first);

@@ -63,6 +88,15 @@ var secondKeys = Object.keys(second);

var sharedShape = {};
for (var _i = 0, sharedKeys_1 = sharedKeys; _i < sharedKeys_1.length; _i++) {
var k = sharedKeys_1[_i];
sharedShape[k] = intersection_1.ZodIntersection.create(first[k], second[k]);
try {
for (var sharedKeys_1 = __values(sharedKeys), sharedKeys_1_1 = sharedKeys_1.next(); !sharedKeys_1_1.done; sharedKeys_1_1 = sharedKeys_1.next()) {
var k = sharedKeys_1_1.value;
sharedShape[k] = intersection_1.ZodIntersection.create(first[k], second[k]);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (sharedKeys_1_1 && !sharedKeys_1_1.done && (_a = sharedKeys_1.return)) _a.call(sharedKeys_1);
}
finally { if (e_1) throw e_1.error; }
}
return __assign(__assign(__assign({}, first), second), sharedShape);

@@ -74,3 +108,3 @@ };

t: base_1.ZodTypes.object,
checks: __spreadArrays((first._def.checks || []), (second._def.checks || [])),
checks: __spread((first._def.checks || []), (second._def.checks || [])),
unknownKeys: first._def.unknownKeys,

@@ -77,0 +111,0 @@ catchall: first._def.catchall,

@@ -0,1 +1,2 @@

export declare const INVALID: unique symbol;
export declare namespace util {

@@ -2,0 +3,0 @@ type AssertEqual<T, Expected> = T extends Expected ? Expected extends T ? true : false : false;

"use strict";
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.INVALID = Symbol('invalid_data');
var util;

@@ -10,16 +22,36 @@ (function (util) {

util.arrayToEnum = function (items) {
var e_1, _a;
var obj = {};
for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {
var item = items_1[_i];
obj[item] = item;
try {
for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {
var item = items_1_1.value;
obj[item] = item;
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);
}
finally { if (e_1) throw e_1.error; }
}
return obj;
};
util.getValidEnumValues = function (obj) {
var e_2, _a;
var validKeys = Object.keys(obj).filter(function (k) { return typeof obj[obj[k]] !== 'number'; });
var filtered = {};
for (var _i = 0, validKeys_1 = validKeys; _i < validKeys_1.length; _i++) {
var k = validKeys_1[_i];
filtered[k] = obj[k];
try {
for (var validKeys_1 = __values(validKeys), validKeys_1_1 = validKeys_1.next(); !validKeys_1_1.done; validKeys_1_1 = validKeys_1.next()) {
var k = validKeys_1_1.value;
filtered[k] = obj[k];
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (validKeys_1_1 && !validKeys_1_1.done && (_a = validKeys_1.return)) _a.call(validKeys_1);
}
finally { if (e_2) throw e_2.error; }
}
return util.getValues(filtered);

@@ -38,7 +70,17 @@ };

util.find = function (arr, checker) {
for (var _i = 0, arr_1 = arr; _i < arr_1.length; _i++) {
var item = arr_1[_i];
if (checker(item))
return item;
var e_3, _a;
try {
for (var arr_1 = __values(arr), arr_1_1 = arr_1.next(); !arr_1_1.done; arr_1_1 = arr_1.next()) {
var item = arr_1_1.value;
if (checker(item))
return item;
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (arr_1_1 && !arr_1_1.done && (_a = arr_1.return)) _a.call(arr_1);
}
finally { if (e_3) throw e_3.error; }
}
return undefined;

@@ -45,0 +87,0 @@ };

6

lib/src/index.d.ts

@@ -18,2 +18,3 @@ import { ZodString, ZodStringDef } from './types/string';

import { ZodRecord, ZodRecordDef } from './types/record';
import { ZodMap, ZodMapDef } from './types/map';
import { ZodFunction, ZodFunctionDef } from './types/function';

@@ -33,3 +34,3 @@ import { ZodLazy, ZodLazyDef } from './types/lazy';

export { ZodTypeDef, ZodTypes };
declare type ZodDef = ZodStringDef | ZodNumberDef | ZodBigIntDef | ZodBooleanDef | ZodDateDef | ZodUndefinedDef | ZodNullDef | ZodAnyDef | ZodUnknownDef | ZodNeverDef | ZodVoidDef | ZodArrayDef | ZodObjectDef | ZodUnionDef | ZodIntersectionDef | ZodTupleDef | ZodRecordDef | ZodFunctionDef | ZodLazyDef | ZodLiteralDef | ZodEnumDef | ZodTransformerDef | ZodNativeEnumDef | ZodOptionalDef | ZodNullableDef | ZodPromiseDef;
declare type ZodDef = ZodStringDef | ZodNumberDef | ZodBigIntDef | ZodBooleanDef | ZodDateDef | ZodUndefinedDef | ZodNullDef | ZodAnyDef | ZodUnknownDef | ZodNeverDef | ZodVoidDef | ZodArrayDef | ZodObjectDef | ZodUnionDef | ZodIntersectionDef | ZodTupleDef | ZodRecordDef | ZodMapDef | ZodFunctionDef | ZodLazyDef | ZodLiteralDef | ZodEnumDef | ZodTransformerDef | ZodNativeEnumDef | ZodOptionalDef | ZodNullableDef | ZodPromiseDef;
declare const stringType: () => ZodString;

@@ -52,2 +53,3 @@ declare const numberType: () => ZodNumber;

declare const recordType: <Value extends ZodTypeAny = ZodTypeAny>(valueType: Value) => ZodRecord<Value>;
declare const mapType: <Key extends ZodTypeAny = ZodTypeAny, Value extends ZodTypeAny = ZodTypeAny>(keyType: Key, valueType: Value) => ZodMap<Key, Value>;
declare const functionType: <T extends ZodTuple<any> = ZodTuple<[]>, U extends ZodTypeAny = ZodUnknown>(args?: T | undefined, returns?: U | undefined) => ZodFunction<T, U>;

@@ -71,3 +73,3 @@ declare const lazyType: <T extends ZodTypeAny>(getter: () => T) => ZodLazy<T>;

declare const instanceOfType: <T extends new (...args: any[]) => any>(cls: T, params?: string | Partial<Pick<import("./ZodError").ZodCustomIssue, "path" | "message" | "params">> | ((arg: any) => Partial<Pick<import("./ZodError").ZodCustomIssue, "path" | "message" | "params">>) | undefined) => ZodType<InstanceType<T>, ZodTypeDef, InstanceType<T>>;
export { stringType as string, numberType as number, bigIntType as bigint, booleanType as boolean, dateType as date, undefinedType as undefined, nullType as null, anyType as any, unknownType as unknown, neverType as never, voidType as void, arrayType as array, objectType as object, unionType as union, intersectionType as intersection, tupleType as tuple, recordType as record, functionType as function, lazyType as lazy, literalType as literal, enumType as enum, nativeEnumType as nativeEnum, promiseType as promise, instanceOfType as instanceof, transformerType as transformer, optionalType as optional, nullableType as nullable, ostring, onumber, oboolean, codegen, };
export { stringType as string, numberType as number, bigIntType as bigint, booleanType as boolean, dateType as date, undefinedType as undefined, nullType as null, anyType as any, unknownType as unknown, neverType as never, voidType as void, arrayType as array, objectType as object, unionType as union, intersectionType as intersection, tupleType as tuple, recordType as record, mapType as map, functionType as function, lazyType as lazy, literalType as literal, enumType as enum, nativeEnumType as nativeEnum, promiseType as promise, instanceOfType as instanceof, transformerType as transformer, optionalType as optional, nullableType as nullable, ostring, onumber, oboolean, codegen, };
export declare const late: {

@@ -74,0 +76,0 @@ object: <T extends import("./types/base").ZodRawShape>(shape: () => T) => ZodObject<T, "passthrough", ZodTypeAny, { [k_1 in keyof import("./helpers/objectUtil").objectUtil.addQuestionMarks<{ [k in keyof T]: T[k]["_output"]; }>]: import("./helpers/objectUtil").objectUtil.addQuestionMarks<{ [k in keyof T]: T[k]["_output"]; }>[k_1]; }, { [k_3 in keyof import("./helpers/objectUtil").objectUtil.addQuestionMarks<{ [k_2 in keyof T]: T[k_2]["_input"]; }>]: import("./helpers/objectUtil").objectUtil.addQuestionMarks<{ [k_2 in keyof T]: T[k_2]["_input"]; }>[k_3]; }>;

@@ -41,2 +41,3 @@ "use strict";

exports.ZodRecord = record_1.ZodRecord;
var map_1 = require("./types/map");
var function_1 = require("./types/function");

@@ -104,2 +105,4 @@ exports.ZodFunction = function_1.ZodFunction;

exports.record = recordType;
var mapType = map_1.ZodMap.create;
exports.map = mapType;
var functionType = function_1.ZodFunction.create;

@@ -106,0 +109,0 @@ exports.function = functionType;

@@ -82,2 +82,5 @@ "use strict";

break;
case z.ZodTypes.map:
returnValue = false;
break;
case z.ZodTypes.date:

@@ -84,0 +87,0 @@ returnValue = true;

@@ -5,7 +5,7 @@ import * as z from './types/base';

import { ZodErrorMap } from './defaultErrorMap';
export declare const getParsedType: (data: any) => "string" | "nan" | "number" | "integer" | "boolean" | "date" | "bigint" | "symbol" | "function" | "undefined" | "null" | "array" | "object" | "unknown" | "promise" | "void" | "never";
export declare const getParsedType: (data: any) => "number" | "string" | "nan" | "integer" | "boolean" | "date" | "bigint" | "symbol" | "function" | "undefined" | "null" | "array" | "object" | "unknown" | "promise" | "void" | "never" | "map";
export declare const ZodParsedType: {
number: "number";
string: "string";
nan: "nan";
number: "number";
integer: "integer";

@@ -25,2 +25,3 @@ boolean: "boolean";

never: "never";
map: "map";
};

@@ -27,0 +28,0 @@ export declare type ZodParsedType = keyof typeof ZodParsedType;

@@ -49,9 +49,33 @@ "use strict";

};
var __spreadArrays = (this && this.__spreadArrays) || function () {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __spread = (this && this.__spread) || function () {
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
return ar;
};
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
var __importStar = (this && this.__importStar) || function (mod) {

@@ -96,3 +120,3 @@ if (mod && mod.__esModule) return mod;

return 'array';
if (!data)
if (data === null)
return 'null';

@@ -105,2 +129,5 @@ if (data.then &&

}
if (data instanceof Map) {
return 'map';
}
return 'object';

@@ -128,8 +155,8 @@ }

'never',
'map',
]);
var INVALID = Symbol('invalid_data');
var NODATA = Symbol('no_data');
exports.ZodParser = function (schema) { return function (data, baseParams) {
var e_1, _a, e_2, _b, e_3, _c, e_4, _d;
if (baseParams === void 0) { baseParams = { seen: [], errorMap: defaultErrorMap_1.defaultErrorMap, path: [] }; }
var _a, _b;
var _e, _f;
var params = {

@@ -139,7 +166,7 @@ seen: baseParams.seen || [],

errorMap: baseParams.errorMap || defaultErrorMap_1.defaultErrorMap,
async: (_a = baseParams.async, (_a !== null && _a !== void 0 ? _a : false)),
runAsyncValidationsInSeries: (_b = baseParams.runAsyncValidationsInSeries, (_b !== null && _b !== void 0 ? _b : false)),
async: (_e = baseParams.async, (_e !== null && _e !== void 0 ? _e : false)),
runAsyncValidationsInSeries: (_f = baseParams.runAsyncValidationsInSeries, (_f !== null && _f !== void 0 ? _f : false)),
};
var makeError = function (errorData) {
var errorArg = __assign(__assign({}, errorData), { path: __spreadArrays(params.path, (errorData.path || [])) });
var errorArg = __assign(__assign({}, errorData), { path: __spread(params.path, (errorData.path || [])) });
var ctxArg = { data: data };

@@ -149,6 +176,7 @@ var defaultError = defaultErrorMap_1.defaultErrorMap === params.errorMap

: defaultErrorMap_1.defaultErrorMap(errorArg, __assign(__assign({}, ctxArg), { defaultError: "Invalid value." }));
return __assign(__assign({}, errorData), { path: __spreadArrays(params.path, (errorData.path || [])), message: errorData.message ||
return __assign(__assign({}, errorData), { path: __spread(params.path, (errorData.path || [])), message: errorData.message ||
params.errorMap(errorArg, __assign(__assign({}, ctxArg), { defaultError: defaultError.message })).message });
};
var def = schema._def;
console.log("\nPARSING " + def.t);
var PROMISE = new PseudoPromise_1.PseudoPromise();

@@ -158,3 +186,3 @@ PROMISE._default = true;

input: data,
output: NODATA,
output: util_1.INVALID,
};

@@ -167,3 +195,2 @@ params.seen = params.seen || [];

// if (objectSeen) {
// console.log('object seen');
// if (objectSeen.error) {

@@ -286,3 +313,3 @@ // don't throw previous error

}));
PROMISE = PseudoPromise_1.PseudoPromise.resolve(INVALID);
PROMISE = PseudoPromise_1.PseudoPromise.resolve(util_1.INVALID);
break;

@@ -328,11 +355,10 @@ case z.ZodTypes.void:

try {
return PseudoPromise_1.PseudoPromise.resolve(def.type.parse(item, __assign(__assign({}, params), { path: __spreadArrays(params.path, [i]) })));
return PseudoPromise_1.PseudoPromise.resolve(def.type.parse(item, __assign(__assign({}, params), { path: __spread(params.path, [i]) })));
}
catch (err) {
if (err instanceof ZodError_1.ZodError) {
var zerr = err;
ERROR.addIssues(zerr.issues);
return PseudoPromise_1.PseudoPromise.resolve(INVALID);
if (!(err instanceof ZodError_1.ZodError)) {
throw err;
}
throw err;
ERROR.addIssues(err.issues);
return PseudoPromise_1.PseudoPromise.resolve(util_1.INVALID);
}

@@ -344,2 +370,133 @@ }));

break;
case z.ZodTypes.map:
if (parsedType !== exports.ZodParsedType.map) {
ERROR.addIssue(makeError({
code: ZodError_1.ZodIssueCode.invalid_type,
expected: exports.ZodParsedType.map,
received: parsedType,
}));
THROW();
}
var dataMap = data;
var returnedMap_1 = new Map();
PROMISE = PseudoPromise_1.PseudoPromise.all(__spread(dataMap.entries()).map(function (_a, index) {
var _b = __read(_a, 2), key = _b[0], value = _b[1];
return PseudoPromise_1.PseudoPromise.all([
new PseudoPromise_1.PseudoPromise()
.then(function () {
return def.keyType.parse(key, __assign(__assign({}, params), { path: __spread(params.path, [index, 'key']) }));
})
.catch(function (err) {
if (!(err instanceof ZodError_1.ZodError)) {
throw err;
}
ERROR.addIssues(err.issues);
return util_1.INVALID;
}),
new PseudoPromise_1.PseudoPromise()
.then(function () {
var mapValue = def.valueType.parse(value, __assign(__assign({}, params), { path: __spread(params.path, [index, 'value']) }));
return [key, mapValue];
})
.catch(function (err) {
if (!(err instanceof ZodError_1.ZodError)) {
throw err;
}
ERROR.addIssues(err.issues);
return util_1.INVALID;
}),
])
.then(function (item) {
try {
if (item[0] !== util_1.INVALID && item[1] !== util_1.INVALID) {
returnedMap_1.set(item[0], item[1]);
}
else {
}
}
catch (err) { }
})
.catch(function (err) {
if (!(err instanceof ZodError_1.ZodError)) {
throw err;
}
ERROR.addIssues(err.issues);
return util_1.INVALID;
});
// const promises = [
// PseudoPromise.resolve(
// def.keyType.parse(key, {
// ...params,
// path: [...params.path, index, 'key'],
// }),
// ).catch(err => {
// if (!(err instanceof ZodError)) {
// throw err;
// }
// ERROR.addIssues(err.issues);
// return INVALID;
// }),
// PseudoPromise.resolve(
// def.valueType.parse(value, {
// ...params,
// path: [...params.path, index, 'value'],
// }),
// ).catch(err => {
// if (!(err instanceof ZodError)) {
// throw err;
// }
// ERROR.addIssues(err.issues);
// return INVALID;
// }),
// ];
// try {
// promises.push(
// PseudoPromise.resolve(
// def.keyType.parse(key, {
// ...params,
// path: [...params.path, index, 'key'],
// }),
// ),
// );
// } catch (err) {
// if (!(err instanceof ZodError)) {
// throw err;
// }
// ERROR.addIssues(err.issues);
// promises.push(PseudoPromise.resolve(INVALID));
// }
// try {
// promises.push(
// PseudoPromise.resolve(
// def.valueType.parse(value, {
// ...params,
// path: [...params.path, index, 'value'],
// }),
// ),
// );
// } catch (err) {
// if (err instanceof ZodError) {
// const zerr: ZodError = err;
// ERROR.addIssues(zerr.issues);
// promises.push(PseudoPromise.resolve(INVALID));
// } else {
// throw err;
// }
// }
// return PseudoPromise.all(promises).then(pairs =>{
// for(const [key,value] of pairs){}
// });
}))
.then(function () {
if (!ERROR.isEmpty) {
throw ERROR;
}
})
.then(function () {
return returnedMap_1;
})
.then(function () {
return returnedMap_1;
});
break;
case z.ZodTypes.object:

@@ -372,3 +529,3 @@ RESULT.output = {};

try {
var output = keyValidator.parse(undefined, __assign(__assign({}, params), { path: __spreadArrays(params.path, [key]) }));
var output = keyValidator.parse(undefined, __assign(__assign({}, params), { path: __spread(params.path, [key]) }));
if (output === undefined) {

@@ -382,3 +539,3 @@ return "continue";

try {
var parsedValue = keyValidator.parse(data[key], __assign(__assign({}, params), { path: __spreadArrays(params.path, [key]) }));
var parsedValue = keyValidator.parse(data[key], __assign(__assign({}, params), { path: __spread(params.path, [key]) }));
return parsedValue;

@@ -388,7 +545,9 @@ }

if (err instanceof ZodError_1.ZodError) {
console.log("caught error at " + key);
var zerr = err;
ERROR.addIssues(zerr.issues);
return INVALID;
return util_1.INVALID;
}
else {
console.log("caught non-zod error at " + key);
throw err;

@@ -399,12 +558,30 @@ }

};
for (var _i = 0, shapeKeys_1 = shapeKeys_2; _i < shapeKeys_1.length; _i++) {
var key = shapeKeys_1[_i];
_loop_1(key);
try {
for (var shapeKeys_1 = __values(shapeKeys_2), shapeKeys_1_1 = shapeKeys_1.next(); !shapeKeys_1_1.done; shapeKeys_1_1 = shapeKeys_1.next()) {
var key = shapeKeys_1_1.value;
_loop_1(key);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (shapeKeys_1_1 && !shapeKeys_1_1.done && (_a = shapeKeys_1.return)) _a.call(shapeKeys_1);
}
finally { if (e_1) throw e_1.error; }
}
if (def.catchall instanceof index_1.ZodNever) {
if (def.unknownKeys === 'passthrough') {
for (var _c = 0, extraKeys_1 = extraKeys; _c < extraKeys_1.length; _c++) {
var key = extraKeys_1[_c];
objectPromises[key] = PseudoPromise_1.PseudoPromise.resolve(data[key]);
try {
for (var extraKeys_1 = __values(extraKeys), extraKeys_1_1 = extraKeys_1.next(); !extraKeys_1_1.done; extraKeys_1_1 = extraKeys_1.next()) {
var key = extraKeys_1_1.value;
objectPromises[key] = PseudoPromise_1.PseudoPromise.resolve(data[key]);
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (extraKeys_1_1 && !extraKeys_1_1.done && (_b = extraKeys_1.return)) _b.call(extraKeys_1);
}
finally { if (e_2) throw e_2.error; }
}
}

@@ -430,3 +607,3 @@ else if (def.unknownKeys === 'strict') {

try {
var parsedValue = def.catchall.parse(data[key], __assign(__assign({}, params), { path: __spreadArrays(params.path, [key]) }));
var parsedValue = def.catchall.parse(data[key], __assign(__assign({}, params), { path: __spread(params.path, [key]) }));
return parsedValue;

@@ -438,3 +615,3 @@ }

ERROR.addIssues(zerr.issues);
return INVALID;
return util_1.INVALID;
}

@@ -447,7 +624,16 @@ else {

};
// run cathcall validation
for (var _d = 0, extraKeys_2 = extraKeys; _d < extraKeys_2.length; _d++) {
var key = extraKeys_2[_d];
_loop_2(key);
try {
// run cathcall validation
for (var extraKeys_2 = __values(extraKeys), extraKeys_2_1 = extraKeys_2.next(); !extraKeys_2_1.done; extraKeys_2_1 = extraKeys_2.next()) {
var key = extraKeys_2_1.value;
_loop_2(key);
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (extraKeys_2_1 && !extraKeys_2_1.done && (_c = extraKeys_2.return)) _c.call(extraKeys_2);
}
finally { if (e_3) throw e_3.error; }
}
}

@@ -462,4 +648,5 @@ PROMISE = PseudoPromise_1.PseudoPromise.object(objectPromises)

ERROR.addIssues(err.issues);
return util_1.INVALID;
}
return INVALID;
throw err;
});

@@ -482,3 +669,3 @@ break;

unionErrors_1.push(err);
return PseudoPromise_1.PseudoPromise.resolve(INVALID);
return PseudoPromise_1.PseudoPromise.resolve(util_1.INVALID);
}

@@ -490,3 +677,3 @@ throw err;

.then(function (unionResults) {
return util_1.util.find(unionResults, function (val) { return val !== INVALID; });
return util_1.util.find(unionResults, function (val) { return val !== util_1.INVALID; });
})

@@ -496,7 +683,7 @@ .then(function (unionResult) {

if (!isValid_1) {
var filteredErrors = unionErrors_1.filter(function (err) {
var nonTypeErrors = unionErrors_1.filter(function (err) {
return err.issues[0].code !== 'invalid_type';
});
if (filteredErrors.length === 1) {
ERROR.addIssues(filteredErrors[0].issues);
if (nonTypeErrors.length === 1) {
ERROR.addIssues(nonTypeErrors[0].issues);
}

@@ -509,3 +696,3 @@ else {

}
return INVALID;
return util_1.INVALID;
}

@@ -554,3 +741,3 @@ return unionResult;

ERROR.addIssues(err.issues);
return INVALID;
return util_1.INVALID;
}

@@ -567,3 +754,3 @@ throw err;

ERROR.addIssues(err.issues);
return INVALID;
return util_1.INVALID;
}

@@ -574,5 +761,5 @@ throw err;

]).then(function (_a) {
var parsedLeft = _a[0], parsedRight = _a[1];
if (parsedLeft === INVALID || parsedRight === INVALID)
return INVALID;
var _b = __read(_a, 2), parsedLeft = _b[0], parsedRight = _b[1];
if (parsedLeft === util_1.INVALID || parsedRight === util_1.INVALID)
return util_1.INVALID;
var parsedLeftType = exports.getParsedType(parsedLeft);

@@ -606,3 +793,3 @@ var parsedRightType = exports.getParsedType(parsedRight);

ERROR.addIssues(err.issues);
return INVALID;
return util_1.INVALID;
}

@@ -625,3 +812,3 @@ throw err;

ERROR.addIssues(err.issues);
return INVALID;
return util_1.INVALID;
}

@@ -666,3 +853,3 @@ throw err;

try {
return itemParser.parse(item, __assign(__assign({}, params), { path: __spreadArrays(params.path, [index]) }));
return itemParser.parse(item, __assign(__assign({}, params), { path: __spread(params.path, [index]) }));
}

@@ -672,3 +859,3 @@ catch (err) {

ERROR.addIssues(err.issues);
return INVALID;
return util_1.INVALID;
}

@@ -755,3 +942,3 @@ throw err;

}
var result = data.apply(void 0, args);
var result = data.apply(void 0, __spread(args));
try {

@@ -789,3 +976,3 @@ return def.returns.parse(result, params);

try {
return def.valueType.parse(data[key], __assign(__assign({}, params), { path: __spreadArrays(params.path, [key]) }));
return def.valueType.parse(data[key], __assign(__assign({}, params), { path: __spread(params.path, [key]) }));
}

@@ -795,3 +982,3 @@ catch (err) {

ERROR.addIssues(err.issues);
return INVALID;
return util_1.INVALID;
}

@@ -862,2 +1049,3 @@ throw err;

case z.ZodTypes.transformer:
console.log("TRANSFORMER");
PROMISE = new PseudoPromise_1.PseudoPromise()

@@ -876,18 +1064,22 @@ .then(function () {

.then(function (inputParseResult) {
try {
var transformed = def.transformer(inputParseResult);
if (transformed instanceof Promise && params.async === false) {
if (z.inputSchema(def.output)._def.t !== z.ZodTypes.promise) {
throw new Error("You can't call .parse on a schema containing async transformations.");
}
console.log("inputParseResult");
console.log(inputParseResult);
// try {
var transformed = def.transformer(inputParseResult);
if (transformed instanceof Promise && params.async === false) {
console.log("transformed instanceof Promise && params.async === false");
console.log("def: " + z.inputSchema(def.output)._def.t);
if (z.inputSchema(def.output)._def.t !== z.ZodTypes.promise) {
console.log("THROWING PROMISE ERROR");
throw new Error("You can't call .parse on a schema containing async transformations.");
}
return transformed;
}
catch (err) {
if (err instanceof ZodError_1.ZodError) {
ERROR.addIssues(err.issues);
return INVALID;
}
throw err;
}
return transformed;
// } catch (err) {
// if (err instanceof ZodError) {
// ERROR.addIssues(err.issues);
// return INVALID;
// }
// throw err;
// }
})

@@ -901,6 +1093,13 @@ .then(function (transformedResult) {

ERROR.addIssues(err.issues);
return INVALID;
return util_1.INVALID;
}
throw err;
}
})
.catch(function (err) {
if (!(err instanceof ZodError_1.ZodError)) {
console.log("NON ZOD ERROR");
throw err;
}
ERROR.addIssues(err.issues);
});

@@ -927,19 +1126,28 @@ break;

var resolvedValue = PROMISE.getValueSync();
// const SYNC_ERROR =
// "You can't use .parse on a schema containing async refinements or transformations. Use .parseAsync instead.";
// if (resolvedValue instanceof Promise) {
// if (def.t !== z.ZodTypes.promise) {
// throw new Error(SYNC_ERROR);
// }
// }
for (var _e = 0, customChecks_1 = customChecks; _e < customChecks_1.length; _e++) {
var check = customChecks_1[_e];
var checkResult = check.check(resolvedValue, checkCtx);
if (checkResult instanceof Promise)
throw new Error("You can't use .parse on a schema containing async refinements. Use .parseAsync instead.");
// if (!checkResult) {
// const { check: checkMethod, ...noMethodCheck } = check;
// ERROR.addIssue(makeError(noMethodCheck));
try {
// const SYNC_ERROR =
// "You can't use .parse on a schema containing async refinements or transformations. Use .parseAsync instead.";
// if (resolvedValue instanceof Promise) {
// if (def.t !== z.ZodTypes.promise) {
// throw new Error(SYNC_ERROR);
// }
// }
for (var customChecks_1 = __values(customChecks), customChecks_1_1 = customChecks_1.next(); !customChecks_1_1.done; customChecks_1_1 = customChecks_1.next()) {
var check = customChecks_1_1.value;
var checkResult = check.check(resolvedValue, checkCtx);
if (checkResult instanceof Promise)
throw new Error("You can't use .parse on a schema containing async refinements. Use .parseAsync instead.");
// if (!checkResult) {
// const { check: checkMethod, ...noMethodCheck } = check;
// ERROR.addIssue(makeError(noMethodCheck));
// }
}
}
catch (e_4_1) { e_4 = { error: e_4_1 }; }
finally {
try {
if (customChecks_1_1 && !customChecks_1_1.done && (_d = customChecks_1.return)) _d.call(customChecks_1);
}
finally { if (e_4) throw e_4.error; }
}
if (!ERROR.isEmpty) {

@@ -967,3 +1175,3 @@ THROW();

resolvedValue = _a.sent();
if (!(resolvedValue !== INVALID)) return [3 /*break*/, 6];
if (!(resolvedValue !== util_1.INVALID)) return [3 /*break*/, 6];
if (!params.runAsyncValidationsInSeries) return [3 /*break*/, 3];

@@ -970,0 +1178,0 @@ someError_1 = false;

"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
var z = __importStar(require("."));
var asyncNumberToString = z.transformer(z.number(), z.string(), function (n) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
return [2 /*return*/, String(n)];
}); }); });
var run = function () { return __awaiter(void 0, void 0, void 0, function () {
return __generator(this, function (_a) {
console.log(z
.object({
id: asyncNumberToString,
})
.parse({ id: 5 }));
return [2 /*return*/];
});
}); };
run();
//# sourceMappingURL=playground.js.map

@@ -29,3 +29,3 @@ declare type Func = (arg: any, ctx: {

}) => NewReturn) => PseudoPromise<NewReturn extends Promise<infer U> ? U : NewReturn>;
catch: <NewReturn>(func: (err: Error, ctx: {
catch: <NewReturn>(catcher: (err: Error, ctx: {
async: boolean;

@@ -32,0 +32,0 @@ }) => NewReturn) => PseudoPromise<NewReturn extends Promise<infer U> ? U : NewReturn>;

@@ -38,10 +38,35 @@ "use strict";

};
var __spreadArrays = (this && this.__spreadArrays) || function () {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __spread = (this && this.__spread) || function () {
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
return ar;
};
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
Object.defineProperty(exports, "__esModule", { value: true });
var util_1 = require("./helpers/util");
var ZodError_1 = require("./ZodError");

@@ -55,7 +80,19 @@ var PseudoPromise = /** @class */ (function () {

// const results = pps.map(pp => pp.getValue());
// const caughtPPs = pps.map((pp, index) =>
// pp.catch(err => {
// if (err instanceof ZodError) zerr.addIssues(err.issues);
// }),
// );
if (ctx.async) {
return Promise.all(pps.map(function (pp) { return pp.getValueAsync(); }));
try {
return Promise.all(pps.map(function (pp) { return pp.getValueAsync(); }));
}
catch (err) { }
// return Promise.all(pps.map(pp => pp.getValueAsync()));
}
else {
return pps.map(function (pp) { return pp.getValueSync(); });
try {
return pps.map(function (pp) { return pp.getValueSync(); });
}
catch (err) { }
}

@@ -65,10 +102,8 @@ });

this.then = function (func) {
return new PseudoPromise(__spreadArrays(_this.items, [
return new PseudoPromise(__spread(_this.items, [
{ type: 'function', function: func },
]));
};
this.catch = function (func) {
return new PseudoPromise(__spreadArrays(_this.items, [
{ type: 'catcher', catcher: func },
]));
this.catch = function (catcher) {
return new PseudoPromise(__spread(_this.items, [{ type: 'catcher', catcher: catcher }]));
};

@@ -90,10 +125,34 @@ // getValue = (

var val = undefined;
for (var _i = 0, _a = _this.items; _i < _a.length; _i++) {
var item = _a[_i];
if (item.type === 'function') {
val = item.function(val, { async: false });
var _loop_1 = function (index) {
try {
var item = _this.items[index];
if (item.type === 'function') {
val = item.function(val, { async: false });
}
}
// if (val instanceof Promise && allowPromises === false) {
// throw new Error('found_promise');
// }
catch (err) {
var catcherIndex = _this.items.findIndex(function (x, i) { return x.type === 'catcher' && i > index; });
var catcherItem = _this.items[catcherIndex];
if (!catcherItem || catcherItem.type !== 'catcher') {
throw err;
}
else {
val = catcherItem.catcher(err, { async: false });
index = catcherIndex;
}
}
out_index_1 = index;
};
var out_index_1;
// for (const item of this.items) {
// if (item.type === 'function') {
// val = item.function(val, { async: false });
// }
// if (val instanceof Promise && allowPromises === false) {
// throw new Error('found_promise');
// }
// }
for (var index = 0; index < _this.items.length; index++) {
_loop_1(index);
index = out_index_1;
}

@@ -104,3 +163,3 @@ // this._cached.value = val;

this.getValueAsync = function () { return __awaiter(_this, void 0, void 0, function () {
var val, _loop_1, this_1, out_index_1, index;
var val, _loop_2, this_1, out_index_2, index;
return __generator(this, function (_a) {

@@ -110,3 +169,3 @@ switch (_a.label) {

val = undefined;
_loop_1 = function (index) {
_loop_2 = function (index) {
var item, err_1, catcherIndex, catcherItem;

@@ -141,8 +200,8 @@ return __generator(this, function (_a) {

if (val instanceof PseudoPromise) {
throw new Error('DO NOT RETURN PSEUDOPROMISE FROM FUNCTIONS');
throw new Error('ASYNC: DO NOT RETURN PSEUDOPROMISE FROM FUNCTIONS');
}
if (val instanceof Promise) {
throw new Error('DO NOT RETURN PROMISE FROM FUNCTIONS');
throw new Error('ASYNC: DO NOT RETURN PROMISE FROM FUNCTIONS');
}
out_index_1 = index;
out_index_2 = index;
return [2 /*return*/];

@@ -157,6 +216,6 @@ }

if (!(index < this.items.length)) return [3 /*break*/, 4];
return [5 /*yield**/, _loop_1(index)];
return [5 /*yield**/, _loop_2(index)];
case 2:
_a.sent();
index = out_index_1;
index = out_index_2;
_a.label = 3;

@@ -187,2 +246,3 @@ case 3:

return new PseudoPromise().then(function (_arg, ctx) {
var e_1, _a;
var value = {};

@@ -198,7 +258,9 @@ // const items = Object.keys(pps).map(k => {

//
var zerr = new ZodError_1.ZodError([]);
if (ctx.async) {
var getAsyncObject = function () { return __awaiter(void 0, void 0, void 0, function () {
var items, filtered, allIssues, error, _i, items_2, item;
return __generator(this, function (_a) {
switch (_a.label) {
var items, items_2, items_2_1, item;
var e_2, _a;
return __generator(this, function (_b) {
switch (_b.label) {
case 0: return [4 /*yield*/, Promise.all(Object.keys(pps).map(function (k) { return __awaiter(void 0, void 0, void 0, function () {

@@ -217,3 +279,4 @@ var v, err_2;

if (err_2 instanceof ZodError_1.ZodError) {
return [2 /*return*/, [k, err_2]];
zerr.addIssues(err_2.issues);
return [2 /*return*/, [k, util_1.INVALID]];
}

@@ -226,24 +289,38 @@ throw err_2;

case 1:
items = _a.sent();
filtered = items.filter(function (entry) {
return entry[1] instanceof ZodError_1.ZodError;
});
if (filtered.length > 0) {
allIssues = filtered.reduce(function (acc, val) {
var error = val[1];
return acc.concat(error.issues);
}, []);
error = new ZodError_1.ZodError(allIssues);
// const base = filtered[0][1];
// base.issues = all_issues;
throw error;
}
else {
for (_i = 0, items_2 = items; _i < items_2.length; _i++) {
item = items_2[_i];
items = _b.sent();
if (!zerr.isEmpty)
throw zerr;
try {
// // const resolvedItems = await Promise.all(
// // items.map(async item => [item[0], await item[1]]),
// // );
// const filtered: any = items.filter(entry => {
// return entry[1] instanceof ZodError;
// });
// if (filtered.length > 0) {
// const allIssues = filtered.reduce(
// (acc: any[], val: [string, ZodError]) => {
// const error = val[1];
// return acc.concat(error.issues);
// },
// [],
// );
// const error = new ZodError(allIssues);
// // const base = filtered[0][1];
// // base.issues = all_issues;
// throw error;
// } else {
for (items_2 = __values(items), items_2_1 = items_2.next(); !items_2_1.done; items_2_1 = items_2.next()) {
item = items_2_1.value;
value[item[0]] = item[1];
}
return [2 /*return*/, value];
}
return [2 /*return*/];
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (items_2_1 && !items_2_1.done && (_a = items_2.return)) _a.call(items_2);
}
finally { if (e_2) throw e_2.error; }
}
return [2 /*return*/, value];
}

@@ -256,10 +333,32 @@ });

var items = Object.keys(pps).map(function (k) {
var v = pps[k].getValueSync();
return [k, v];
try {
var v = pps[k].getValueSync();
return [k, v];
}
catch (err) {
if (err instanceof ZodError_1.ZodError) {
zerr.addIssues(err.issues);
console.log("caught zod error in sync object!");
return [k, util_1.INVALID];
}
console.log("throwing nonzod error in sync object!");
throw err;
}
});
// let syncValue: any = {};
for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {
var item = items_1[_i];
value[item[0]] = item[1];
if (!zerr.isEmpty)
throw zerr;
try {
for (var items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {
var item = items_1_1.value;
value[item[0]] = item[1];
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);
}
finally { if (e_1) throw e_1.error; }
}
return value;

@@ -266,0 +365,0 @@ }

@@ -67,2 +67,4 @@ "use strict";

break;
case z.ZodTypes.map:
break;
default:

@@ -69,0 +71,0 @@ util_1.util.assertNever(def);

@@ -0,3 +1,3 @@

import { ZodArray, ZodTransformer, ZodError } from '../index';
import { ParseParams, MakeErrorData } from '../parser';
import { ZodArray, ZodTransformer, ZodError } from '../index';
import { ZodOptionalType } from './optional';

@@ -20,2 +20,3 @@ import { ZodNullableType } from './nullable';

record = "record",
map = "map",
function = "function",

@@ -92,3 +93,3 @@ lazy = "lazy",

path?: (string | number)[] | undefined;
}) | (Pick<import("..").ZodUnrecognizedKeysIssue, "code" | "message" | "keys"> & {
}) | (Pick<import("..").ZodUnrecognizedKeysIssue, "keys" | "code" | "message"> & {
path?: (string | number)[] | undefined;

@@ -95,0 +96,0 @@ }) | (Pick<import("..").ZodInvalidUnionIssue, "code" | "message" | "unionErrors"> & {

@@ -49,12 +49,25 @@ "use strict";

};
var __spreadArrays = (this && this.__spreadArrays) || function () {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __spread = (this && this.__spread) || function () {
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
return ar;
};
Object.defineProperty(exports, "__esModule", { value: true });
var index_1 = require("../index");
var parser_1 = require("../parser");
var index_1 = require("../index");
var ZodTypes;

@@ -75,2 +88,3 @@ (function (ZodTypes) {

ZodTypes["record"] = "record";
ZodTypes["map"] = "map";
ZodTypes["function"] = "function";

@@ -218,3 +232,3 @@ ZodTypes["lazy"] = "lazy";

this._refinement = function (refinement) {
return new _this.constructor(__assign(__assign({}, _this._def), { checks: __spreadArrays((_this._def.checks || []), [{ check: refinement }]) }));
return new _this.constructor(__assign(__assign({}, _this._def), { checks: __spread((_this._def.checks || []), [{ check: refinement }]) }));
};

@@ -221,0 +235,0 @@ // abstract // opt optional: () => any;

@@ -15,2 +15,13 @@ "use strict";

})();
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
var __importStar = (this && this.__importStar) || function (mod) {

@@ -43,7 +54,17 @@ if (mod && mod.__esModule) return mod;

get: function () {
var e_1, _a;
var enumValues = {};
for (var _i = 0, _a = this._def.values; _i < _a.length; _i++) {
var val = _a[_i];
enumValues[val] = val;
try {
for (var _b = __values(this._def.values), _c = _b.next(); !_c.done; _c = _b.next()) {
var val = _c.value;
enumValues[val] = val;
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_1) throw e_1.error; }
}
return enumValues;

@@ -56,7 +77,17 @@ },

get: function () {
var e_2, _a;
var enumValues = {};
for (var _i = 0, _a = this._def.values; _i < _a.length; _i++) {
var val = _a[_i];
enumValues[val] = val;
try {
for (var _b = __values(this._def.values), _c = _b.next(); !_c.done; _c = _b.next()) {
var val = _c.value;
enumValues[val] = val;
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_2) throw e_2.error; }
}
return enumValues;

@@ -69,7 +100,17 @@ },

get: function () {
var e_3, _a;
var enumValues = {};
for (var _i = 0, _a = this._def.values; _i < _a.length; _i++) {
var val = _a[_i];
enumValues[val] = val;
try {
for (var _b = __values(this._def.values), _c = _b.next(); !_c.done; _c = _b.next()) {
var val = _c.value;
enumValues[val] = val;
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_3) throw e_3.error; }
}
return enumValues;

@@ -76,0 +117,0 @@ },

@@ -15,9 +15,33 @@ "use strict";

})();
var __spreadArrays = (this && this.__spreadArrays) || function () {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
var __read = (this && this.__read) || function (o, n) {
var m = typeof Symbol === "function" && o[Symbol.iterator];
if (!m) return o;
var i = m.call(o), r, ar = [], e;
try {
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
}
catch (error) { e = { error: error }; }
finally {
try {
if (r && !r.done && (m = i["return"])) m.call(i);
}
finally { if (e) throw e.error; }
}
return ar;
};
var __spread = (this && this.__spread) || function () {
for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i]));
return ar;
};
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
Object.defineProperty(exports, "__esModule", { value: true });

@@ -52,20 +76,30 @@ var util_1 = require("./helpers/util");

_this.addIssue = function (sub) {
_this.issues = __spreadArrays(_this.issues, [sub]);
_this.issues = __spread(_this.issues, [sub]);
};
_this.addIssues = function (subs) {
if (subs === void 0) { subs = []; }
_this.issues = __spreadArrays(_this.issues, subs);
_this.issues = __spread(_this.issues, subs);
};
_this.flatten = function () {
var e_1, _a;
var fieldErrors = {};
var formErrors = [];
for (var _i = 0, _a = _this.issues; _i < _a.length; _i++) {
var sub = _a[_i];
if (sub.path.length > 0) {
fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];
fieldErrors[sub.path[0]].push(sub.message);
try {
for (var _b = __values(_this.issues), _c = _b.next(); !_c.done; _c = _b.next()) {
var sub = _c.value;
if (sub.path.length > 0) {
fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];
fieldErrors[sub.path[0]].push(sub.message);
}
else {
formErrors.push(sub.message);
}
}
else {
formErrors.push(sub.message);
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_1) throw e_1.error; }
}

@@ -97,3 +131,3 @@ return { formErrors: formErrors, fieldErrors: fieldErrors };

// ` Issue #${this.issues.indexOf(err)}: ${err.code} at ${err.path.join(
// './index',
// '.',
// )}`,

@@ -100,0 +134,0 @@ // );

{
"name": "zod",
"version": "2.0.0-beta.14",
"version": "2.0.0-beta.15",
"description": "TypeScript-first schema declaration and validation library with static type inference",

@@ -5,0 +5,0 @@ "main": "./lib/src/index.js",

@@ -137,2 +137,3 @@ <p align="center">

- [Promises](#promises)
- [Maps](#maps)
- [Instanceof](#instanceof)

@@ -1334,2 +1335,11 @@ - [Function schemas](#function-schemas)

## Maps
```ts
const stringNumberMap = z.map(z.string(), z.number());
type StringNumberMap = z.infer<typeof stringNumberMap>;
// type StringNumber = Map<string, number>
```
## Instanceof

@@ -1336,0 +1346,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc