@jcoreio/zod-forms 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,5 @@
1
1
  import z from 'zod';
2
+ import { IgnoreEffect } from 'zod-invertible';
2
3
  import { DeepPartial } from './util/DeepPartial';
3
4
  type ConditionalCheck<T extends z.ZodTypeAny> = {
4
5
  schema: T;
@@ -12,6 +13,7 @@ type ConditionalRefineMessage<Output> = string | z.CustomErrorParams | z.CustomE
12
13
  type ConditionalRefineSchema<T extends z.ZodTypeAny> = z.ZodType<DeepPartial<z.output<T>>, any, DeepPartial<z.input<T>>> | ((schema: T) => z.ZodType<DeepPartial<z.output<T>>, any, DeepPartial<z.input<T>>>);
13
14
  export declare class ConditionalValidator<T extends z.ZodTypeAny, Output = z.output<T>, Input = z.input<T>> extends z.ZodEffects<T, Output, Input> {
14
15
  _def: ConditionalValidatorDef<T>;
16
+ [IgnoreEffect]: boolean;
15
17
  constructor(schema: T, checks: ConditionalCheck<any>[]);
16
18
  conditionalRefine(schema: ConditionalRefineSchema<T>, check: (value: z.output<T>) => unknown, message: ConditionalRefineMessage<z.output<T>>): ConditionalValidator<T, z.output<T>, z.input<T>>;
17
19
  conditionalRefineAsync(schema: ConditionalRefineSchema<T>, check: (value: z.output<T>) => unknown | Promise<unknown>, message: ConditionalRefineMessage<z.output<T>>): ConditionalValidator<T, z.output<T>, z.input<T>>;
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionalValidator.d.ts","sourceRoot":"","sources":["src/ConditionalValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConditionalValidator.d.ts","sourceRoot":"","sources":["src/ConditionalValidator.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,KAAK,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IAAI;IAC9C,MAAM,EAAE,CAAC,CAAA;IACT,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzE,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,UAAU,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,CACtD,SAAQ,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;IAC1B,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAA;CAChC;AAED,KAAK,wBAAwB,CAAC,MAAM,IAChC,MAAM,GACN,CAAC,CAAC,iBAAiB,GACnB,CAAC,CAAC,iBAAiB,EAAE,GACrB,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAA;AAEpE,KAAK,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IAC/C,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GACjE,CAAC,CACC,MAAM,EAAE,CAAC,KACN,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAW3E,qBAAa,oBAAoB,CAC/B,CAAC,SAAS,CAAC,CAAC,UAAU,EACtB,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EACpB,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAClB,SAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC;IAC9B,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAEzC,CAAC,YAAY,CAAC,UAAO;gBAET,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE;IAOtD,iBAAiB,CACf,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,EACtC,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAQhD,sBAAsB,CACpB,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EACzD,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAQhD,sBAAsB,CACpB,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,KAAK,IAAI;IAO3D,2BAA2B,CACzB,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC,EAClC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAO5E;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EACxD,MAAM,EAAE,CAAC,GACR,oBAAoB,CAAC,CAAC,CAAC,CAEzB"}
@@ -9,13 +9,14 @@ exports.conditionalValidate = conditionalValidate;
9
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
11
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
14
13
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
14
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
16
15
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
17
16
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
18
  var _zod = _interopRequireDefault(require("zod"));
19
+ var _zodInvertible = require("zod-invertible");
19
20
  function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
20
21
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
21
22
  function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
@@ -28,10 +29,13 @@ function resolveSchema(baseSchema, refineSchema) {
28
29
  }
29
30
  var ConditionalValidator = exports.ConditionalValidator = /*#__PURE__*/function (_z$ZodEffects) {
30
31
  function ConditionalValidator(schema, checks) {
32
+ var _this;
31
33
  (0, _classCallCheck2["default"])(this, ConditionalValidator);
32
- return _callSuper(this, ConditionalValidator, [_objectSpread(_objectSpread({}, makePreprocess(schema, checks)._def), {}, {
34
+ _this = _callSuper(this, ConditionalValidator, [_objectSpread(_objectSpread({}, makePreprocess(schema, checks)._def), {}, {
33
35
  checks: checks
34
36
  })]);
37
+ (0, _defineProperty2["default"])(_this, _zodInvertible.IgnoreEffect, true);
38
+ return _this;
35
39
  }
36
40
  (0, _inherits2["default"])(ConditionalValidator, _z$ZodEffects);
37
41
  return (0, _createClass2["default"])(ConditionalValidator, [{
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionalValidator.js","names":["_zod","_interopRequireDefault","require","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","_arrayLikeToArray","toString","slice","constructor","name","from","test","ownKeys","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","Boolean","prototype","valueOf","resolveSchema","baseSchema","refineSchema","ConditionalValidator","exports","_z$ZodEffects","schema","checks","_classCallCheck2","makePreprocess","_def","_inherits2","_createClass2","key","conditionalRefine","check","message","conditionalSuperRefine","ctx","addIssues","conditionalRefineAsync","conditionalSuperRefineAsync","_ref","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","sent","stop","_x","_x2","concat","_toConsumableArray2","async","z","ZodEffects","conditionalValidate","preprocess","input","results","map","_ref2","handleParsed","parsed","success","data","safeParseAsync","then","safeParse","some","c","Promise","all","asArray","issues","_iterator","_step","issue","addIssue","code","ZodIssueCode","custom","err"],"sources":["src/ConditionalValidator.ts"],"sourcesContent":["import z from 'zod'\nimport { DeepPartial } from './util/DeepPartial'\n\ntype ConditionalCheck<T extends z.ZodTypeAny> = {\n schema: T\n check: (value: z.output<T>, ctx: z.RefinementCtx) => void | Promise<void>\n async: boolean\n}\n\ninterface ConditionalValidatorDef<T extends z.ZodTypeAny>\n extends z.ZodEffectsDef<T> {\n checks: ConditionalCheck<any>[]\n}\n\ntype ConditionalRefineMessage<Output> =\n | string\n | z.CustomErrorParams\n | z.CustomErrorParams[]\n | ((value: Output) => z.CustomErrorParams | z.CustomErrorParams[])\n\ntype ConditionalRefineSchema<T extends z.ZodTypeAny> =\n | z.ZodType<DeepPartial<z.output<T>>, any, DeepPartial<z.input<T>>>\n | ((\n schema: T\n ) => z.ZodType<DeepPartial<z.output<T>>, any, DeepPartial<z.input<T>>>)\n\nfunction resolveSchema<T extends z.ZodTypeAny>(\n baseSchema: T,\n refineSchema: ConditionalRefineSchema<T>\n) {\n return typeof refineSchema === 'function'\n ? refineSchema(baseSchema)\n : refineSchema\n}\n\nexport class ConditionalValidator<\n T extends z.ZodTypeAny,\n Output = z.output<T>,\n Input = z.input<T>\n> extends z.ZodEffects<T, Output, Input> {\n declare _def: ConditionalValidatorDef<T>\n\n constructor(schema: T, checks: ConditionalCheck<any>[]) {\n super({\n ...makePreprocess(schema, checks)._def,\n checks,\n } satisfies ConditionalValidatorDef<T> as z.ZodEffectsDef<T>)\n }\n\n conditionalRefine(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>) => unknown,\n message: ConditionalRefineMessage<z.output<T>>\n ) {\n return this.conditionalSuperRefine(schema, (value, ctx) => {\n if (!check(value)) {\n addIssues(ctx, value, message)\n }\n })\n }\n conditionalRefineAsync(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>) => unknown | Promise<unknown>,\n message: ConditionalRefineMessage<z.output<T>>\n ) {\n return this.conditionalSuperRefineAsync(schema, async (value, ctx) => {\n if (!(await check(value))) {\n addIssues(ctx, value, message)\n }\n })\n }\n conditionalSuperRefine(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>, ctx: z.RefinementCtx) => void\n ) {\n return new ConditionalValidator(this._def.schema, [\n ...this._def.checks,\n { schema: resolveSchema(this._def.schema, schema), check, async: false },\n ])\n }\n conditionalSuperRefineAsync(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>, ctx: z.RefinementCtx) => void | Promise<void>\n ) {\n return new ConditionalValidator(this._def.schema, [\n ...this._def.checks,\n { schema: resolveSchema(this._def.schema, schema), check, async: true },\n ])\n }\n}\n\nexport function conditionalValidate<T extends z.ZodTypeAny>(\n schema: T\n): ConditionalValidator<T> {\n return new ConditionalValidator(schema, [])\n}\n\nfunction makePreprocess<T extends z.ZodTypeAny>(\n schema: T,\n checks: ConditionalCheck<any>[]\n): z.ZodEffects<T> {\n return z.preprocess((input, ctx) => {\n const results = checks.map(({ schema, check, async }) => {\n function handleParsed(\n parsed: z.SafeParseReturnType<z.input<T>, z.output<T>>\n ) {\n if (!parsed.success) return\n return check(parsed.data, ctx)\n }\n return async\n ? schema.safeParseAsync(input).then(handleParsed)\n : handleParsed(schema.safeParse(input))\n })\n return checks.some((c) => c.async)\n ? Promise.all(results).then(() => input)\n : input\n }, schema)\n}\n\nconst asArray = <T>(value: T | T[]) => (Array.isArray(value) ? value : [value])\n\nfunction addIssues<Output>(\n ctx: z.RefinementCtx,\n value: Output,\n message: ConditionalRefineMessage<Output>\n) {\n const issues = asArray(\n typeof message === 'function'\n ? message(value)\n : typeof message === 'string'\n ? { message }\n : message\n )\n for (const issue of issues) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, ...issue })\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ConditionalValidator.js","names":["_zod","_interopRequireDefault","require","_zodInvertible","_createForOfIteratorHelper","r","e","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","_arrayLikeToArray","toString","slice","constructor","name","from","test","ownKeys","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","Boolean","prototype","valueOf","resolveSchema","baseSchema","refineSchema","ConditionalValidator","exports","_z$ZodEffects","schema","checks","_this","_classCallCheck2","makePreprocess","_def","IgnoreEffect","_inherits2","_createClass2","key","conditionalRefine","check","message","conditionalSuperRefine","ctx","addIssues","conditionalRefineAsync","conditionalSuperRefineAsync","_ref","_asyncToGenerator2","_regenerator","mark","_callee","wrap","_callee$","_context","prev","sent","stop","_x","_x2","concat","_toConsumableArray2","async","z","ZodEffects","conditionalValidate","preprocess","input","results","map","_ref2","handleParsed","parsed","success","data","safeParseAsync","then","safeParse","some","c","Promise","all","asArray","issues","_iterator","_step","issue","addIssue","code","ZodIssueCode","custom","err"],"sources":["src/ConditionalValidator.ts"],"sourcesContent":["import z from 'zod'\nimport { IgnoreEffect } from 'zod-invertible'\nimport { DeepPartial } from './util/DeepPartial'\n\ntype ConditionalCheck<T extends z.ZodTypeAny> = {\n schema: T\n check: (value: z.output<T>, ctx: z.RefinementCtx) => void | Promise<void>\n async: boolean\n}\n\ninterface ConditionalValidatorDef<T extends z.ZodTypeAny>\n extends z.ZodEffectsDef<T> {\n checks: ConditionalCheck<any>[]\n}\n\ntype ConditionalRefineMessage<Output> =\n | string\n | z.CustomErrorParams\n | z.CustomErrorParams[]\n | ((value: Output) => z.CustomErrorParams | z.CustomErrorParams[])\n\ntype ConditionalRefineSchema<T extends z.ZodTypeAny> =\n | z.ZodType<DeepPartial<z.output<T>>, any, DeepPartial<z.input<T>>>\n | ((\n schema: T\n ) => z.ZodType<DeepPartial<z.output<T>>, any, DeepPartial<z.input<T>>>)\n\nfunction resolveSchema<T extends z.ZodTypeAny>(\n baseSchema: T,\n refineSchema: ConditionalRefineSchema<T>\n) {\n return typeof refineSchema === 'function'\n ? refineSchema(baseSchema)\n : refineSchema\n}\n\nexport class ConditionalValidator<\n T extends z.ZodTypeAny,\n Output = z.output<T>,\n Input = z.input<T>\n> extends z.ZodEffects<T, Output, Input> {\n declare _def: ConditionalValidatorDef<T>;\n\n [IgnoreEffect] = true\n\n constructor(schema: T, checks: ConditionalCheck<any>[]) {\n super({\n ...makePreprocess(schema, checks)._def,\n checks,\n } satisfies ConditionalValidatorDef<T> as z.ZodEffectsDef<T>)\n }\n\n conditionalRefine(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>) => unknown,\n message: ConditionalRefineMessage<z.output<T>>\n ) {\n return this.conditionalSuperRefine(schema, (value, ctx) => {\n if (!check(value)) {\n addIssues(ctx, value, message)\n }\n })\n }\n conditionalRefineAsync(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>) => unknown | Promise<unknown>,\n message: ConditionalRefineMessage<z.output<T>>\n ) {\n return this.conditionalSuperRefineAsync(schema, async (value, ctx) => {\n if (!(await check(value))) {\n addIssues(ctx, value, message)\n }\n })\n }\n conditionalSuperRefine(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>, ctx: z.RefinementCtx) => void\n ) {\n return new ConditionalValidator(this._def.schema, [\n ...this._def.checks,\n { schema: resolveSchema(this._def.schema, schema), check, async: false },\n ])\n }\n conditionalSuperRefineAsync(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>, ctx: z.RefinementCtx) => void | Promise<void>\n ) {\n return new ConditionalValidator(this._def.schema, [\n ...this._def.checks,\n { schema: resolveSchema(this._def.schema, schema), check, async: true },\n ])\n }\n}\n\nexport function conditionalValidate<T extends z.ZodTypeAny>(\n schema: T\n): ConditionalValidator<T> {\n return new ConditionalValidator(schema, [])\n}\n\nfunction makePreprocess<T extends z.ZodTypeAny>(\n schema: T,\n checks: ConditionalCheck<any>[]\n): z.ZodEffects<T> {\n return z.preprocess((input, ctx) => {\n const results = checks.map(({ schema, check, async }) => {\n function handleParsed(\n parsed: z.SafeParseReturnType<z.input<T>, z.output<T>>\n ) {\n if (!parsed.success) return\n return check(parsed.data, ctx)\n }\n return async\n ? schema.safeParseAsync(input).then(handleParsed)\n : handleParsed(schema.safeParse(input))\n })\n return checks.some((c) => c.async)\n ? Promise.all(results).then(() => input)\n : input\n }, schema)\n}\n\nconst asArray = <T>(value: T | T[]) => (Array.isArray(value) ? value : [value])\n\nfunction addIssues<Output>(\n ctx: z.RefinementCtx,\n value: Output,\n message: ConditionalRefineMessage<Output>\n) {\n const issues = asArray(\n typeof message === 'function'\n ? message(value)\n : typeof message === 'string'\n ? { message }\n : message\n )\n for (const issue of issues) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, ...issue })\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAA6C,SAAAE,2BAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,yBAAAC,MAAA,IAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,qBAAAE,CAAA,QAAAG,KAAA,CAAAC,OAAA,CAAAN,CAAA,MAAAE,CAAA,GAAAK,2BAAA,CAAAP,CAAA,MAAAC,CAAA,IAAAD,CAAA,uBAAAA,CAAA,CAAAQ,MAAA,IAAAN,CAAA,KAAAF,CAAA,GAAAE,CAAA,OAAAO,EAAA,MAAAC,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,WAAAH,EAAA,IAAAT,CAAA,CAAAQ,MAAA,KAAAK,IAAA,WAAAA,IAAA,MAAAC,KAAA,EAAAd,CAAA,CAAAS,EAAA,UAAAR,CAAA,WAAAA,EAAAD,CAAA,UAAAA,CAAA,KAAAe,CAAA,EAAAL,CAAA,gBAAAM,SAAA,iJAAAC,CAAA,EAAAC,CAAA,OAAAC,CAAA,gBAAAR,CAAA,WAAAA,EAAA,IAAAT,CAAA,GAAAA,CAAA,CAAAkB,IAAA,CAAApB,CAAA,MAAAY,CAAA,WAAAA,EAAA,QAAAZ,CAAA,GAAAE,CAAA,CAAAmB,IAAA,WAAAH,CAAA,GAAAlB,CAAA,CAAAa,IAAA,EAAAb,CAAA,KAAAC,CAAA,WAAAA,EAAAD,CAAA,IAAAmB,CAAA,OAAAF,CAAA,GAAAjB,CAAA,KAAAe,CAAA,WAAAA,EAAA,UAAAG,CAAA,YAAAhB,CAAA,cAAAA,CAAA,8BAAAiB,CAAA,QAAAF,CAAA;AAAA,SAAAV,4BAAAP,CAAA,EAAAkB,CAAA,QAAAlB,CAAA,2BAAAA,CAAA,SAAAsB,iBAAA,CAAAtB,CAAA,EAAAkB,CAAA,OAAAhB,CAAA,MAAAqB,QAAA,CAAAH,IAAA,CAAApB,CAAA,EAAAwB,KAAA,6BAAAtB,CAAA,IAAAF,CAAA,CAAAyB,WAAA,KAAAvB,CAAA,GAAAF,CAAA,CAAAyB,WAAA,CAAAC,IAAA,aAAAxB,CAAA,cAAAA,CAAA,GAAAG,KAAA,CAAAsB,IAAA,CAAA3B,CAAA,oBAAAE,CAAA,+CAAA0B,IAAA,CAAA1B,CAAA,IAAAoB,iBAAA,CAAAtB,CAAA,EAAAkB,CAAA;AAAA,SAAAI,kBAAAtB,CAAA,EAAAkB,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAlB,CAAA,CAAAQ,MAAA,MAAAU,CAAA,GAAAlB,CAAA,CAAAQ,MAAA,YAAAP,CAAA,MAAAW,CAAA,GAAAP,KAAA,CAAAa,CAAA,GAAAjB,CAAA,GAAAiB,CAAA,EAAAjB,CAAA,IAAAW,CAAA,CAAAX,CAAA,IAAAD,CAAA,CAAAC,CAAA,UAAAW,CAAA;AAAA,SAAAiB,QAAA5B,CAAA,EAAAD,CAAA,QAAAE,CAAA,GAAA4B,MAAA,CAAAC,IAAA,CAAA9B,CAAA,OAAA6B,MAAA,CAAAE,qBAAA,QAAAf,CAAA,GAAAa,MAAA,CAAAE,qBAAA,CAAA/B,CAAA,GAAAD,CAAA,KAAAiB,CAAA,GAAAA,CAAA,CAAAgB,MAAA,WAAAjC,CAAA,WAAA8B,MAAA,CAAAI,wBAAA,CAAAjC,CAAA,EAAAD,CAAA,EAAAmC,UAAA,OAAAjC,CAAA,CAAAkC,IAAA,CAAAC,KAAA,CAAAnC,CAAA,EAAAe,CAAA,YAAAf,CAAA;AAAA,SAAAoC,cAAArC,CAAA,aAAAD,CAAA,MAAAA,CAAA,GAAAuC,SAAA,CAAA/B,MAAA,EAAAR,CAAA,UAAAE,CAAA,WAAAqC,SAAA,CAAAvC,CAAA,IAAAuC,SAAA,CAAAvC,CAAA,QAAAA,CAAA,OAAA6B,OAAA,CAAAC,MAAA,CAAA5B,CAAA,OAAAsC,OAAA,WAAAxC,CAAA,QAAAyC,gBAAA,aAAAxC,CAAA,EAAAD,CAAA,EAAAE,CAAA,CAAAF,CAAA,SAAA8B,MAAA,CAAAY,yBAAA,GAAAZ,MAAA,CAAAa,gBAAA,CAAA1C,CAAA,EAAA6B,MAAA,CAAAY,yBAAA,CAAAxC,CAAA,KAAA2B,OAAA,CAAAC,MAAA,CAAA5B,CAAA,GAAAsC,OAAA,WAAAxC,CAAA,IAAA8B,MAAA,CAAAc,cAAA,CAAA3C,CAAA,EAAAD,CAAA,EAAA8B,MAAA,CAAAI,wBAAA,CAAAhC,CAAA,EAAAF,CAAA,iBAAAC,CAAA;AAAA,SAAA4C,WAAA3C,CAAA,EAAAe,CAAA,EAAAhB,CAAA,WAAAgB,CAAA,OAAA6B,gBAAA,aAAA7B,CAAA,OAAA8B,2BAAA,aAAA7C,CAAA,EAAA8C,yBAAA,KAAAC,OAAA,CAAAC,SAAA,CAAAjC,CAAA,EAAAhB,CAAA,YAAA6C,gBAAA,aAAA5C,CAAA,EAAAuB,WAAA,IAAAR,CAAA,CAAAoB,KAAA,CAAAnC,CAAA,EAAAD,CAAA;AAAA,SAAA+C,0BAAA,cAAA9C,CAAA,IAAAiD,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAjC,IAAA,CAAA6B,OAAA,CAAAC,SAAA,CAAAC,OAAA,iCAAAjD,CAAA,aAAA8C,yBAAA,YAAAA,0BAAA,aAAA9C,CAAA;AA0B7C,SAASoD,aAAaA,CACpBC,UAAa,EACbC,YAAwC,EACxC;EACA,OAAO,OAAOA,YAAY,KAAK,UAAU,GACrCA,YAAY,CAACD,UAAU,CAAC,GACxBC,YAAY;AAClB;AAAC,IAEYC,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,0BAAAE,aAAA;EAS/B,SAAAF,qBAAYG,MAAS,EAAEC,MAA+B,EAAE;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,mBAAAN,oBAAA;IACtDK,KAAA,GAAAjB,UAAA,OAAAY,oBAAA,GAAAnB,aAAA,CAAAA,aAAA,KACK0B,cAAc,CAACJ,MAAM,EAAEC,MAAM,CAAC,CAACI,IAAI;MACtCJ,MAAM,EAANA;IAAM;IACqD,IAAApB,gBAAA,aAAAqB,KAAA,EAN9DI,2BAAY,EAAI,IAAI;IAAA,OAAAJ,KAAA;EAOrB;EAAC,IAAAK,UAAA,aAAAV,oBAAA,EAAAE,aAAA;EAAA,WAAAS,aAAA,aAAAX,oBAAA;IAAAY,GAAA;IAAAvD,KAAA,EAED,SAAAwD,kBACEV,MAAkC,EAClCW,KAAsC,EACtCC,OAA8C,EAC9C;MACA,OAAO,IAAI,CAACC,sBAAsB,CAACb,MAAM,EAAE,UAAC9C,KAAK,EAAE4D,GAAG,EAAK;QACzD,IAAI,CAACH,KAAK,CAACzD,KAAK,CAAC,EAAE;UACjB6D,SAAS,CAACD,GAAG,EAAE5D,KAAK,EAAE0D,OAAO,CAAC;QAChC;MACF,CAAC,CAAC;IACJ;EAAC;IAAAH,GAAA;IAAAvD,KAAA,EACD,SAAA8D,uBACEhB,MAAkC,EAClCW,KAAyD,EACzDC,OAA8C,EAC9C;MACA,OAAO,IAAI,CAACK,2BAA2B,CAACjB,MAAM;QAAA,IAAAkB,IAAA,OAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAAE,SAAAC,QAAOpE,KAAK,EAAE4D,GAAG;UAAA,OAAAM,YAAA,YAAAG,IAAA,UAAAC,SAAAC,QAAA;YAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAhE,IAAA;cAAA;gBAAAgE,QAAA,CAAAhE,IAAA;gBAAA,OACnDkD,KAAK,CAACzD,KAAK,CAAC;cAAA;gBAAA,IAAAuE,QAAA,CAAAE,IAAA;kBAAAF,QAAA,CAAAhE,IAAA;kBAAA;gBAAA;gBACtBsD,SAAS,CAACD,GAAG,EAAE5D,KAAK,EAAE0D,OAAO,CAAC;cAAA;cAAA;gBAAA,OAAAa,QAAA,CAAAG,IAAA;YAAA;UAAA,GAAAN,OAAA;QAAA,CAEjC;QAAA,iBAAAO,EAAA,EAAAC,GAAA;UAAA,OAAAZ,IAAA,CAAAzC,KAAA,OAAAE,SAAA;QAAA;MAAA,IAAC;IACJ;EAAC;IAAA8B,GAAA;IAAAvD,KAAA,EACD,SAAA2D,uBACEb,MAAkC,EAClCW,KAAyD,EACzD;MACA,OAAO,IAAId,oBAAoB,CAAC,IAAI,CAACQ,IAAI,CAACL,MAAM,KAAA+B,MAAA,KAAAC,mBAAA,aAC3C,IAAI,CAAC3B,IAAI,CAACJ,MAAM,IACnB;QAAED,MAAM,EAAEN,aAAa,CAAC,IAAI,CAACW,IAAI,CAACL,MAAM,EAAEA,MAAM,CAAC;QAAEW,KAAK,EAALA,KAAK;QAAEsB,KAAK,EAAE;MAAM,CAAC,EACzE,CAAC;IACJ;EAAC;IAAAxB,GAAA;IAAAvD,KAAA,EACD,SAAA+D,4BACEjB,MAAkC,EAClCW,KAAyE,EACzE;MACA,OAAO,IAAId,oBAAoB,CAAC,IAAI,CAACQ,IAAI,CAACL,MAAM,KAAA+B,MAAA,KAAAC,mBAAA,aAC3C,IAAI,CAAC3B,IAAI,CAACJ,MAAM,IACnB;QAAED,MAAM,EAAEN,aAAa,CAAC,IAAI,CAACW,IAAI,CAACL,MAAM,EAAEA,MAAM,CAAC;QAAEW,KAAK,EAALA,KAAK;QAAEsB,KAAK,EAAE;MAAK,CAAC,EACxE,CAAC;IACJ;EAAC;AAAA,EAnDOC,eAAC,CAACC,UAAU;AAsDf,SAASC,mBAAmBA,CACjCpC,MAAS,EACgB;EACzB,OAAO,IAAIH,oBAAoB,CAACG,MAAM,EAAE,EAAE,CAAC;AAC7C;AAEA,SAASI,cAAcA,CACrBJ,MAAS,EACTC,MAA+B,EACd;EACjB,OAAOiC,eAAC,CAACG,UAAU,CAAC,UAACC,KAAK,EAAExB,GAAG,EAAK;IAClC,IAAMyB,OAAO,GAAGtC,MAAM,CAACuC,GAAG,CAAC,UAAAC,KAAA,EAA8B;MAAA,IAA3BzC,MAAM,GAAAyC,KAAA,CAANzC,MAAM;QAAEW,KAAK,GAAA8B,KAAA,CAAL9B,KAAK;QAAEsB,KAAK,GAAAQ,KAAA,CAALR,KAAK;MAChD,SAASS,YAAYA,CACnBC,MAAsD,EACtD;QACA,IAAI,CAACA,MAAM,CAACC,OAAO,EAAE;QACrB,OAAOjC,KAAK,CAACgC,MAAM,CAACE,IAAI,EAAE/B,GAAG,CAAC;MAChC;MACA,OAAOmB,KAAK,GACRjC,MAAM,CAAC8C,cAAc,CAACR,KAAK,CAAC,CAACS,IAAI,CAACL,YAAY,CAAC,GAC/CA,YAAY,CAAC1C,MAAM,CAACgD,SAAS,CAACV,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC;IACF,OAAOrC,MAAM,CAACgD,IAAI,CAAC,UAACC,CAAC;MAAA,OAAKA,CAAC,CAACjB,KAAK;IAAA,EAAC,GAC9BkB,OAAO,CAACC,GAAG,CAACb,OAAO,CAAC,CAACQ,IAAI,CAAC;MAAA,OAAMT,KAAK;IAAA,EAAC,GACtCA,KAAK;EACX,CAAC,EAAEtC,MAAM,CAAC;AACZ;AAEA,IAAMqD,OAAO,GAAG,SAAVA,OAAOA,CAAOnG,KAAc;EAAA,OAAMT,KAAK,CAACC,OAAO,CAACQ,KAAK,CAAC,GAAGA,KAAK,GAAG,CAACA,KAAK,CAAC;AAAA,CAAC;AAE/E,SAAS6D,SAASA,CAChBD,GAAoB,EACpB5D,KAAa,EACb0D,OAAyC,EACzC;EACA,IAAM0C,MAAM,GAAGD,OAAO,CACpB,OAAOzC,OAAO,KAAK,UAAU,GACzBA,OAAO,CAAC1D,KAAK,CAAC,GACd,OAAO0D,OAAO,KAAK,QAAQ,GAC3B;IAAEA,OAAO,EAAPA;EAAQ,CAAC,GACXA,OACN,CAAC;EAAA,IAAA2C,SAAA,GAAApH,0BAAA,CACmBmH,MAAM;IAAAE,KAAA;EAAA;IAA1B,KAAAD,SAAA,CAAAxG,CAAA,MAAAyG,KAAA,GAAAD,SAAA,CAAAvG,CAAA,IAAAC,IAAA,GAA4B;MAAA,IAAjBwG,KAAK,GAAAD,KAAA,CAAAtG,KAAA;MACd4D,GAAG,CAAC4C,QAAQ,CAAAhF,aAAA;QAAGiF,IAAI,EAAEzB,eAAC,CAAC0B,YAAY,CAACC;MAAM,GAAKJ,KAAK,CAAE,CAAC;IACzD;EAAC,SAAAK,GAAA;IAAAP,SAAA,CAAAlH,CAAA,CAAAyH,GAAA;EAAA;IAAAP,SAAA,CAAApG,CAAA;EAAA;AACH","ignoreList":[]}
@@ -1,8 +1,10 @@
1
1
  import z from 'zod';
2
+ import { IgnoreEffect } from 'zod-invertible';
2
3
  function resolveSchema(baseSchema, refineSchema) {
3
4
  return typeof refineSchema === 'function' ? refineSchema(baseSchema) : refineSchema;
4
5
  }
5
6
  export class ConditionalValidator extends z.ZodEffects {
7
+ [IgnoreEffect] = true;
6
8
  constructor(schema, checks) {
7
9
  super({
8
10
  ...makePreprocess(schema, checks)._def,
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionalValidator.mjs","names":["z","resolveSchema","baseSchema","refineSchema","ConditionalValidator","ZodEffects","constructor","schema","checks","makePreprocess","_def","conditionalRefine","check","message","conditionalSuperRefine","value","ctx","addIssues","conditionalRefineAsync","conditionalSuperRefineAsync","async","conditionalValidate","preprocess","input","results","map","handleParsed","parsed","success","data","safeParseAsync","then","safeParse","some","c","Promise","all","asArray","Array","isArray","issues","issue","addIssue","code","ZodIssueCode","custom"],"sources":["src/ConditionalValidator.ts"],"sourcesContent":["import z from 'zod'\nimport { DeepPartial } from './util/DeepPartial'\n\ntype ConditionalCheck<T extends z.ZodTypeAny> = {\n schema: T\n check: (value: z.output<T>, ctx: z.RefinementCtx) => void | Promise<void>\n async: boolean\n}\n\ninterface ConditionalValidatorDef<T extends z.ZodTypeAny>\n extends z.ZodEffectsDef<T> {\n checks: ConditionalCheck<any>[]\n}\n\ntype ConditionalRefineMessage<Output> =\n | string\n | z.CustomErrorParams\n | z.CustomErrorParams[]\n | ((value: Output) => z.CustomErrorParams | z.CustomErrorParams[])\n\ntype ConditionalRefineSchema<T extends z.ZodTypeAny> =\n | z.ZodType<DeepPartial<z.output<T>>, any, DeepPartial<z.input<T>>>\n | ((\n schema: T\n ) => z.ZodType<DeepPartial<z.output<T>>, any, DeepPartial<z.input<T>>>)\n\nfunction resolveSchema<T extends z.ZodTypeAny>(\n baseSchema: T,\n refineSchema: ConditionalRefineSchema<T>\n) {\n return typeof refineSchema === 'function'\n ? refineSchema(baseSchema)\n : refineSchema\n}\n\nexport class ConditionalValidator<\n T extends z.ZodTypeAny,\n Output = z.output<T>,\n Input = z.input<T>\n> extends z.ZodEffects<T, Output, Input> {\n declare _def: ConditionalValidatorDef<T>\n\n constructor(schema: T, checks: ConditionalCheck<any>[]) {\n super({\n ...makePreprocess(schema, checks)._def,\n checks,\n } satisfies ConditionalValidatorDef<T> as z.ZodEffectsDef<T>)\n }\n\n conditionalRefine(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>) => unknown,\n message: ConditionalRefineMessage<z.output<T>>\n ) {\n return this.conditionalSuperRefine(schema, (value, ctx) => {\n if (!check(value)) {\n addIssues(ctx, value, message)\n }\n })\n }\n conditionalRefineAsync(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>) => unknown | Promise<unknown>,\n message: ConditionalRefineMessage<z.output<T>>\n ) {\n return this.conditionalSuperRefineAsync(schema, async (value, ctx) => {\n if (!(await check(value))) {\n addIssues(ctx, value, message)\n }\n })\n }\n conditionalSuperRefine(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>, ctx: z.RefinementCtx) => void\n ) {\n return new ConditionalValidator(this._def.schema, [\n ...this._def.checks,\n { schema: resolveSchema(this._def.schema, schema), check, async: false },\n ])\n }\n conditionalSuperRefineAsync(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>, ctx: z.RefinementCtx) => void | Promise<void>\n ) {\n return new ConditionalValidator(this._def.schema, [\n ...this._def.checks,\n { schema: resolveSchema(this._def.schema, schema), check, async: true },\n ])\n }\n}\n\nexport function conditionalValidate<T extends z.ZodTypeAny>(\n schema: T\n): ConditionalValidator<T> {\n return new ConditionalValidator(schema, [])\n}\n\nfunction makePreprocess<T extends z.ZodTypeAny>(\n schema: T,\n checks: ConditionalCheck<any>[]\n): z.ZodEffects<T> {\n return z.preprocess((input, ctx) => {\n const results = checks.map(({ schema, check, async }) => {\n function handleParsed(\n parsed: z.SafeParseReturnType<z.input<T>, z.output<T>>\n ) {\n if (!parsed.success) return\n return check(parsed.data, ctx)\n }\n return async\n ? schema.safeParseAsync(input).then(handleParsed)\n : handleParsed(schema.safeParse(input))\n })\n return checks.some((c) => c.async)\n ? Promise.all(results).then(() => input)\n : input\n }, schema)\n}\n\nconst asArray = <T>(value: T | T[]) => (Array.isArray(value) ? value : [value])\n\nfunction addIssues<Output>(\n ctx: z.RefinementCtx,\n value: Output,\n message: ConditionalRefineMessage<Output>\n) {\n const issues = asArray(\n typeof message === 'function'\n ? message(value)\n : typeof message === 'string'\n ? { message }\n : message\n )\n for (const issue of issues) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, ...issue })\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ConditionalValidator.mjs","names":["z","IgnoreEffect","resolveSchema","baseSchema","refineSchema","ConditionalValidator","ZodEffects","constructor","schema","checks","makePreprocess","_def","conditionalRefine","check","message","conditionalSuperRefine","value","ctx","addIssues","conditionalRefineAsync","conditionalSuperRefineAsync","async","conditionalValidate","preprocess","input","results","map","handleParsed","parsed","success","data","safeParseAsync","then","safeParse","some","c","Promise","all","asArray","Array","isArray","issues","issue","addIssue","code","ZodIssueCode","custom"],"sources":["src/ConditionalValidator.ts"],"sourcesContent":["import z from 'zod'\nimport { IgnoreEffect } from 'zod-invertible'\nimport { DeepPartial } from './util/DeepPartial'\n\ntype ConditionalCheck<T extends z.ZodTypeAny> = {\n schema: T\n check: (value: z.output<T>, ctx: z.RefinementCtx) => void | Promise<void>\n async: boolean\n}\n\ninterface ConditionalValidatorDef<T extends z.ZodTypeAny>\n extends z.ZodEffectsDef<T> {\n checks: ConditionalCheck<any>[]\n}\n\ntype ConditionalRefineMessage<Output> =\n | string\n | z.CustomErrorParams\n | z.CustomErrorParams[]\n | ((value: Output) => z.CustomErrorParams | z.CustomErrorParams[])\n\ntype ConditionalRefineSchema<T extends z.ZodTypeAny> =\n | z.ZodType<DeepPartial<z.output<T>>, any, DeepPartial<z.input<T>>>\n | ((\n schema: T\n ) => z.ZodType<DeepPartial<z.output<T>>, any, DeepPartial<z.input<T>>>)\n\nfunction resolveSchema<T extends z.ZodTypeAny>(\n baseSchema: T,\n refineSchema: ConditionalRefineSchema<T>\n) {\n return typeof refineSchema === 'function'\n ? refineSchema(baseSchema)\n : refineSchema\n}\n\nexport class ConditionalValidator<\n T extends z.ZodTypeAny,\n Output = z.output<T>,\n Input = z.input<T>\n> extends z.ZodEffects<T, Output, Input> {\n declare _def: ConditionalValidatorDef<T>;\n\n [IgnoreEffect] = true\n\n constructor(schema: T, checks: ConditionalCheck<any>[]) {\n super({\n ...makePreprocess(schema, checks)._def,\n checks,\n } satisfies ConditionalValidatorDef<T> as z.ZodEffectsDef<T>)\n }\n\n conditionalRefine(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>) => unknown,\n message: ConditionalRefineMessage<z.output<T>>\n ) {\n return this.conditionalSuperRefine(schema, (value, ctx) => {\n if (!check(value)) {\n addIssues(ctx, value, message)\n }\n })\n }\n conditionalRefineAsync(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>) => unknown | Promise<unknown>,\n message: ConditionalRefineMessage<z.output<T>>\n ) {\n return this.conditionalSuperRefineAsync(schema, async (value, ctx) => {\n if (!(await check(value))) {\n addIssues(ctx, value, message)\n }\n })\n }\n conditionalSuperRefine(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>, ctx: z.RefinementCtx) => void\n ) {\n return new ConditionalValidator(this._def.schema, [\n ...this._def.checks,\n { schema: resolveSchema(this._def.schema, schema), check, async: false },\n ])\n }\n conditionalSuperRefineAsync(\n schema: ConditionalRefineSchema<T>,\n check: (value: z.output<T>, ctx: z.RefinementCtx) => void | Promise<void>\n ) {\n return new ConditionalValidator(this._def.schema, [\n ...this._def.checks,\n { schema: resolveSchema(this._def.schema, schema), check, async: true },\n ])\n }\n}\n\nexport function conditionalValidate<T extends z.ZodTypeAny>(\n schema: T\n): ConditionalValidator<T> {\n return new ConditionalValidator(schema, [])\n}\n\nfunction makePreprocess<T extends z.ZodTypeAny>(\n schema: T,\n checks: ConditionalCheck<any>[]\n): z.ZodEffects<T> {\n return z.preprocess((input, ctx) => {\n const results = checks.map(({ schema, check, async }) => {\n function handleParsed(\n parsed: z.SafeParseReturnType<z.input<T>, z.output<T>>\n ) {\n if (!parsed.success) return\n return check(parsed.data, ctx)\n }\n return async\n ? schema.safeParseAsync(input).then(handleParsed)\n : handleParsed(schema.safeParse(input))\n })\n return checks.some((c) => c.async)\n ? Promise.all(results).then(() => input)\n : input\n }, schema)\n}\n\nconst asArray = <T>(value: T | T[]) => (Array.isArray(value) ? value : [value])\n\nfunction addIssues<Output>(\n ctx: z.RefinementCtx,\n value: Output,\n message: ConditionalRefineMessage<Output>\n) {\n const issues = asArray(\n typeof message === 'function'\n ? message(value)\n : typeof message === 'string'\n ? { message }\n : message\n )\n for (const issue of issues) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, ...issue })\n }\n}\n"],"mappings":"AAAA,OAAOA,CAAC,MAAM,KAAK;AACnB,SAASC,YAAY,QAAQ,gBAAgB;AA0B7C,SAASC,aAAaA,CACpBC,UAAa,EACbC,YAAwC,EACxC;EACA,OAAO,OAAOA,YAAY,KAAK,UAAU,GACrCA,YAAY,CAACD,UAAU,CAAC,GACxBC,YAAY;AAClB;AAEA,OAAO,MAAMC,oBAAoB,SAIvBL,CAAC,CAACM,UAAU,CAAmB;EAGvC,CAACL,YAAY,IAAI,IAAI;EAErBM,WAAWA,CAACC,MAAS,EAAEC,MAA+B,EAAE;IACtD,KAAK,CAAC;MACJ,GAAGC,cAAc,CAACF,MAAM,EAAEC,MAAM,CAAC,CAACE,IAAI;MACtCF;IACF,CAA4D,CAAC;EAC/D;EAEAG,iBAAiBA,CACfJ,MAAkC,EAClCK,KAAsC,EACtCC,OAA8C,EAC9C;IACA,OAAO,IAAI,CAACC,sBAAsB,CAACP,MAAM,EAAE,CAACQ,KAAK,EAAEC,GAAG,KAAK;MACzD,IAAI,CAACJ,KAAK,CAACG,KAAK,CAAC,EAAE;QACjBE,SAAS,CAACD,GAAG,EAAED,KAAK,EAAEF,OAAO,CAAC;MAChC;IACF,CAAC,CAAC;EACJ;EACAK,sBAAsBA,CACpBX,MAAkC,EAClCK,KAAyD,EACzDC,OAA8C,EAC9C;IACA,OAAO,IAAI,CAACM,2BAA2B,CAACZ,MAAM,EAAE,OAAOQ,KAAK,EAAEC,GAAG,KAAK;MACpE,IAAI,EAAE,MAAMJ,KAAK,CAACG,KAAK,CAAC,CAAC,EAAE;QACzBE,SAAS,CAACD,GAAG,EAAED,KAAK,EAAEF,OAAO,CAAC;MAChC;IACF,CAAC,CAAC;EACJ;EACAC,sBAAsBA,CACpBP,MAAkC,EAClCK,KAAyD,EACzD;IACA,OAAO,IAAIR,oBAAoB,CAAC,IAAI,CAACM,IAAI,CAACH,MAAM,EAAE,CAChD,GAAG,IAAI,CAACG,IAAI,CAACF,MAAM,EACnB;MAAED,MAAM,EAAEN,aAAa,CAAC,IAAI,CAACS,IAAI,CAACH,MAAM,EAAEA,MAAM,CAAC;MAAEK,KAAK;MAAEQ,KAAK,EAAE;IAAM,CAAC,CACzE,CAAC;EACJ;EACAD,2BAA2BA,CACzBZ,MAAkC,EAClCK,KAAyE,EACzE;IACA,OAAO,IAAIR,oBAAoB,CAAC,IAAI,CAACM,IAAI,CAACH,MAAM,EAAE,CAChD,GAAG,IAAI,CAACG,IAAI,CAACF,MAAM,EACnB;MAAED,MAAM,EAAEN,aAAa,CAAC,IAAI,CAACS,IAAI,CAACH,MAAM,EAAEA,MAAM,CAAC;MAAEK,KAAK;MAAEQ,KAAK,EAAE;IAAK,CAAC,CACxE,CAAC;EACJ;AACF;AAEA,OAAO,SAASC,mBAAmBA,CACjCd,MAAS,EACgB;EACzB,OAAO,IAAIH,oBAAoB,CAACG,MAAM,EAAE,EAAE,CAAC;AAC7C;AAEA,SAASE,cAAcA,CACrBF,MAAS,EACTC,MAA+B,EACd;EACjB,OAAOT,CAAC,CAACuB,UAAU,CAAC,CAACC,KAAK,EAAEP,GAAG,KAAK;IAClC,MAAMQ,OAAO,GAAGhB,MAAM,CAACiB,GAAG,CAAC,CAAC;MAAElB,MAAM;MAAEK,KAAK;MAAEQ;IAAM,CAAC,KAAK;MACvD,SAASM,YAAYA,CACnBC,MAAsD,EACtD;QACA,IAAI,CAACA,MAAM,CAACC,OAAO,EAAE;QACrB,OAAOhB,KAAK,CAACe,MAAM,CAACE,IAAI,EAAEb,GAAG,CAAC;MAChC;MACA,OAAOI,KAAK,GACRb,MAAM,CAACuB,cAAc,CAACP,KAAK,CAAC,CAACQ,IAAI,CAACL,YAAY,CAAC,GAC/CA,YAAY,CAACnB,MAAM,CAACyB,SAAS,CAACT,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC;IACF,OAAOf,MAAM,CAACyB,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACd,KAAK,CAAC,GAC9Be,OAAO,CAACC,GAAG,CAACZ,OAAO,CAAC,CAACO,IAAI,CAAC,MAAMR,KAAK,CAAC,GACtCA,KAAK;EACX,CAAC,EAAEhB,MAAM,CAAC;AACZ;AAEA,MAAM8B,OAAO,GAAOtB,KAAc,IAAMuB,KAAK,CAACC,OAAO,CAACxB,KAAK,CAAC,GAAGA,KAAK,GAAG,CAACA,KAAK,CAAE;AAE/E,SAASE,SAASA,CAChBD,GAAoB,EACpBD,KAAa,EACbF,OAAyC,EACzC;EACA,MAAM2B,MAAM,GAAGH,OAAO,CACpB,OAAOxB,OAAO,KAAK,UAAU,GACzBA,OAAO,CAACE,KAAK,CAAC,GACd,OAAOF,OAAO,KAAK,QAAQ,GAC3B;IAAEA;EAAQ,CAAC,GACXA,OACN,CAAC;EACD,KAAK,MAAM4B,KAAK,IAAID,MAAM,EAAE;IAC1BxB,GAAG,CAAC0B,QAAQ,CAAC;MAAEC,IAAI,EAAE5C,CAAC,CAAC6C,YAAY,CAACC,MAAM;MAAE,GAAGJ;IAAM,CAAC,CAAC;EACzD;AACF","ignoreList":[]}
package/package.json CHANGED
@@ -30,7 +30,7 @@
30
30
  "peerDependencies": {
31
31
  "react": "^18.0.0"
32
32
  },
33
- "version": "1.2.0",
33
+ "version": "1.2.1",
34
34
  "sideEffects": false,
35
35
  "engines": {
36
36
  "node": ">=16"
@@ -44,6 +44,6 @@
44
44
  "reselect": "^5.1.1",
45
45
  "shallow-equal": "^3.1.0",
46
46
  "zod": "^3.23.8",
47
- "zod-invertible": "^1.0.0"
47
+ "zod-invertible": "^1.1.0"
48
48
  }
49
49
  }
@@ -1,4 +1,5 @@
1
1
  import z from 'zod'
2
+ import { IgnoreEffect } from 'zod-invertible'
2
3
  import { DeepPartial } from './util/DeepPartial'
3
4
 
4
5
  type ConditionalCheck<T extends z.ZodTypeAny> = {
@@ -38,7 +39,9 @@ export class ConditionalValidator<
38
39
  Output = z.output<T>,
39
40
  Input = z.input<T>
40
41
  > extends z.ZodEffects<T, Output, Input> {
41
- declare _def: ConditionalValidatorDef<T>
42
+ declare _def: ConditionalValidatorDef<T>;
43
+
44
+ [IgnoreEffect] = true
42
45
 
43
46
  constructor(schema: T, checks: ConditionalCheck<any>[]) {
44
47
  super({