@layerzerolabs/zod-utils 0.0.8 → 0.0.15

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.
@@ -11,16 +11,16 @@
11
11
  CJS Build start
12
12
  ESM Build start
13
13
  CJS dist/schema.cjs 549.00 B
14
- CJS dist/index.cjs 4.41 KB
14
+ CJS dist/index.cjs 4.60 KB
15
15
  CJS dist/CAXEKYBD.cjs 1.07 KB
16
16
  CJS dist/schema.cjs.map 71.00 B
17
- CJS dist/index.cjs.map 10.70 KB
18
17
  CJS dist/CAXEKYBD.cjs.map 3.00 KB
19
- CJS ⚡️ Build success in 196ms
20
- ESM dist/schema.js 155.00 B
21
- ESM dist/index.js 3.88 KB
18
+ CJS dist/index.cjs.map 11.04 KB
19
+ CJS ⚡️ Build success in 130ms
20
+ ESM dist/index.js 4.04 KB
22
21
  ESM dist/NIWFGLF4.js 985.00 B
23
- ESM dist/schema.js.map 70.00 B
24
- ESM dist/index.js.map 10.70 KB
22
+ ESM dist/schema.js 155.00 B
23
+ ESM dist/index.js.map 11.03 KB
25
24
  ESM dist/NIWFGLF4.js.map 2.99 KB
26
- ESM ⚡️ Build success in 197ms
25
+ ESM dist/schema.js.map 70.00 B
26
+ ESM ⚡️ Build success in 130ms
package/dist/index.cjs CHANGED
@@ -113,9 +113,13 @@ function mapOnSchema(schema, fn) {
113
113
  }
114
114
  CAXEKYBD_cjs.__name(mapOnSchema, "mapOnSchema");
115
115
  function zodDeepPartial(schema) {
116
- return mapOnSchema(schema, (s) => s?.optional());
116
+ return mapOnSchema(schema, (s) => s?.optional?.());
117
117
  }
118
118
  CAXEKYBD_cjs.__name(zodDeepPartial, "zodDeepPartial");
119
+ function zodDeepRequired(schema) {
120
+ return mapOnSchema(schema, (s) => s?.nonoptional?.());
121
+ }
122
+ CAXEKYBD_cjs.__name(zodDeepRequired, "zodDeepRequired");
119
123
 
120
124
  Object.defineProperty(exports, "customSchema", {
121
125
  enumerable: true,
@@ -131,5 +135,6 @@ Object.defineProperty(exports, "schemaIsFunctionSchema", {
131
135
  });
132
136
  exports.mapOnSchema = mapOnSchema;
133
137
  exports.zodDeepPartial = zodDeepPartial;
138
+ exports.zodDeepRequired = zodDeepRequired;
134
139
  //# sourceMappingURL=index.cjs.map
135
140
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["RESOLVING","Symbol","mapOnSchema","schema","fn","results","Map","mapElement","s","value","get","Error","undefined","set","result","mapInner","z","ZodObject","newShape","key","Object","entries","shape","def","ZodArray","element","ZodMap","keyType","valueType","ZodSet","ZodOptional","innerType","ZodNullable","ZodDefault","ZodReadonly","ZodLazy","getter","ZodPromise","ZodCatch","ZodTuple","items","map","item","rest","ZodUnion","options","option","ZodIntersection","right","left","ZodRecord","zodDeepPartial","optional"],"mappings":"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","file":"index.cjs","sourcesContent":["export * from './schema';\n\n/*\n Copyright 2024, Jaen - https://github.com/jaens\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n https://gist.github.com/jaens/7e15ae1984bb338c86eb5e452dee3010\n*/\n\nimport { z } from 'zod/v4';\nimport type { $ZodType } from 'zod/v4/core';\n\nconst RESOLVING = Symbol('mapOnSchema/resolving');\n\nexport function mapOnSchema<T extends $ZodType, TResult extends $ZodType>(\n schema: T,\n fn: (schema: $ZodType) => TResult,\n): TResult;\n\n/**\n * Applies {@link fn} to each element of the schema recursively, replacing every schema with its return value.\n * The rewriting is applied bottom-up (ie. {@link fn} will get called on \"children\" first).\n */\nexport function mapOnSchema(schema: $ZodType, fn: (schema: $ZodType) => $ZodType): $ZodType {\n // Cache results to support recursive schemas\n const results = new Map<$ZodType, $ZodType | typeof RESOLVING>();\n\n function mapElement(s: $ZodType) {\n const value = results.get(s);\n if (value === RESOLVING) {\n throw new Error('Recursive schema access detected');\n } else if (value !== undefined) {\n return value;\n }\n\n results.set(s, RESOLVING);\n const result = mapOnSchema(s, fn);\n results.set(s, result);\n return result;\n }\n\n function mapInner() {\n if (schema instanceof z.ZodObject) {\n const newShape: Record<string, $ZodType> = {};\n for (const [key, value] of Object.entries(schema.shape)) {\n newShape[key] = mapElement(value as $ZodType);\n }\n\n return new z.ZodObject({\n ...schema.def,\n shape: newShape,\n });\n } else if (schema instanceof z.ZodArray) {\n return new z.ZodArray({\n ...schema.def,\n element: mapElement(schema.def.element),\n });\n } else if (schema instanceof z.ZodMap) {\n return new z.ZodMap({\n ...schema.def,\n keyType: mapElement(schema.def.keyType),\n valueType: mapElement(schema.def.valueType),\n });\n } else if (schema instanceof z.ZodSet) {\n return new z.ZodSet({\n ...schema.def,\n valueType: mapElement(schema.def.valueType),\n });\n } else if (schema instanceof z.ZodOptional) {\n return new z.ZodOptional({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodNullable) {\n return new z.ZodNullable({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodDefault) {\n return new z.ZodDefault({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodReadonly) {\n return new z.ZodReadonly({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodLazy) {\n return new z.ZodLazy({\n ...schema.def,\n // NB: This leaks `fn` into the schema, but there is no other way to support recursive schemas\n getter: () => mapElement(schema.def.getter()),\n });\n } else if (schema instanceof z.ZodPromise) {\n return new z.ZodPromise({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodCatch) {\n return new z.ZodCatch({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodTuple) {\n return new z.ZodTuple({\n ...schema.def,\n items: schema.def.items.map((item: $ZodType) => mapElement(item)),\n rest: schema.def.rest && mapElement(schema.def.rest),\n });\n } else if (schema instanceof z.ZodUnion) {\n return new z.ZodUnion({\n ...schema.def,\n options: schema.def.options.map((option: $ZodType) => mapElement(option)),\n });\n } else if (schema instanceof z.ZodIntersection) {\n return new z.ZodIntersection({\n ...schema.def,\n right: mapElement(schema.def.right),\n left: mapElement(schema.def.left),\n });\n } else if (schema instanceof z.ZodRecord) {\n return new z.ZodRecord({\n ...schema.def,\n keyType: schema.def.keyType as any,\n valueType: mapElement(schema.def.valueType),\n });\n } else {\n return schema;\n }\n }\n\n return fn(mapInner());\n}\n\nexport function zodDeepPartial<T extends z.ZodTypeAny>(schema: T): T {\n return mapOnSchema(schema, (s) => (s as any)?.optional()) as T;\n}\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["RESOLVING","Symbol","mapOnSchema","schema","fn","results","Map","mapElement","s","value","get","Error","undefined","set","result","mapInner","z","ZodObject","newShape","key","Object","entries","shape","def","ZodArray","element","ZodMap","keyType","valueType","ZodSet","ZodOptional","innerType","ZodNullable","ZodDefault","ZodReadonly","ZodLazy","getter","ZodPromise","ZodCatch","ZodTuple","items","map","item","rest","ZodUnion","options","option","ZodIntersection","right","left","ZodRecord","zodDeepPartial","optional","zodDeepRequired","nonoptional"],"mappings":";;;;;AAoBA,IAAMA,SAAAA,GAAYC,OAAO,uBAAA,CAAA;AAWlB,SAASC,WAAAA,CAAYC,QAAkBC,EAAAA,EAAkC;AAE5E,EAAA,MAAMC,OAAAA,uBAAcC,GAAAA,EAAAA;AAEpB,EAAA,SAASC,WAAWC,CAAAA,EAAW;AAC3B,IAAA,MAAMC,KAAAA,GAAQJ,OAAAA,CAAQK,GAAAA,CAAIF,CAAAA,CAAAA;AAC1B,IAAA,IAAIC,UAAUT,SAAAA,EAAW;AACrB,MAAA,MAAM,IAAIW,MAAM,kCAAA,CAAA;AACpB,IAAA,CAAA,MAAA,IAAWF,UAAUG,MAAAA,EAAW;AAC5B,MAAA,OAAOH,KAAAA;AACX,IAAA;AAEAJ,IAAAA,OAAAA,CAAQQ,GAAAA,CAAIL,GAAGR,SAAAA,CAAAA;AACf,IAAA,MAAMc,MAAAA,GAASZ,WAAAA,CAAYM,CAAAA,EAAGJ,EAAAA,CAAAA;AAC9BC,IAAAA,OAAAA,CAAQQ,GAAAA,CAAIL,GAAGM,MAAAA,CAAAA;AACf,IAAA,OAAOA,MAAAA;AACX,EAAA;AAZSP,EAAAA,mBAAAA,CAAAA,UAAAA,EAAAA,YAAAA,CAAAA;AAcT,EAAA,SAASQ,QAAAA,GAAAA;AACL,IAAA,IAAIZ,MAAAA,YAAkBa,KAAEC,SAAAA,EAAW;AAC/B,MAAA,MAAMC,WAAqC,EAAC;AAC5C,MAAA,KAAA,MAAW,CAACC,KAAKV,KAAAA,CAAAA,IAAUW,OAAOC,OAAAA,CAAQlB,MAAAA,CAAOmB,KAAK,CAAA,EAAG;AACrDJ,QAAAA,QAAAA,CAASC,GAAAA,CAAAA,GAAOZ,UAAAA,CAAWE,KAAAA,CAAAA;AAC/B,MAAA;AAEA,MAAA,OAAO,IAAIO,KAAEC,SAAAA,CAAU;AACnB,QAAA,GAAGd,MAAAA,CAAOoB,GAAAA;QACVD,KAAAA,EAAOJ;OACX,CAAA;IACJ,CAAA,MAAA,IAAWf,MAAAA,YAAkBa,KAAEQ,QAAAA,EAAU;AACrC,MAAA,OAAO,IAAIR,KAAEQ,QAAAA,CAAS;AAClB,QAAA,GAAGrB,MAAAA,CAAOoB,GAAAA;QACVE,OAAAA,EAASlB,UAAAA,CAAWJ,MAAAA,CAAOoB,GAAAA,CAAIE,OAAO;OAC1C,CAAA;IACJ,CAAA,MAAA,IAAWtB,MAAAA,YAAkBa,KAAEU,MAAAA,EAAQ;AACnC,MAAA,OAAO,IAAIV,KAAEU,MAAAA,CAAO;AAChB,QAAA,GAAGvB,MAAAA,CAAOoB,GAAAA;QACVI,OAAAA,EAASpB,UAAAA,CAAWJ,MAAAA,CAAOoB,GAAAA,CAAII,OAAO,CAAA;QACtCC,SAAAA,EAAWrB,UAAAA,CAAWJ,MAAAA,CAAOoB,GAAAA,CAAIK,SAAS;OAC9C,CAAA;IACJ,CAAA,MAAA,IAAWzB,MAAAA,YAAkBa,KAAEa,MAAAA,EAAQ;AACnC,MAAA,OAAO,IAAIb,KAAEa,MAAAA,CAAO;AAChB,QAAA,GAAG1B,MAAAA,CAAOoB,GAAAA;QACVK,SAAAA,EAAWrB,UAAAA,CAAWJ,MAAAA,CAAOoB,GAAAA,CAAIK,SAAS;OAC9C,CAAA;IACJ,CAAA,MAAA,IAAWzB,MAAAA,YAAkBa,KAAEc,WAAAA,EAAa;AACxC,MAAA,OAAO,IAAId,KAAEc,WAAAA,CAAY;AACrB,QAAA,GAAG3B,MAAAA,CAAOoB,GAAAA;QACVQ,SAAAA,EAAWxB,UAAAA,CAAWJ,MAAAA,CAAOoB,GAAAA,CAAIQ,SAAS;OAC9C,CAAA;IACJ,CAAA,MAAA,IAAW5B,MAAAA,YAAkBa,KAAEgB,WAAAA,EAAa;AACxC,MAAA,OAAO,IAAIhB,KAAEgB,WAAAA,CAAY;AACrB,QAAA,GAAG7B,MAAAA,CAAOoB,GAAAA;QACVQ,SAAAA,EAAWxB,UAAAA,CAAWJ,MAAAA,CAAOoB,GAAAA,CAAIQ,SAAS;OAC9C,CAAA;IACJ,CAAA,MAAA,IAAW5B,MAAAA,YAAkBa,KAAEiB,UAAAA,EAAY;AACvC,MAAA,OAAO,IAAIjB,KAAEiB,UAAAA,CAAW;AACpB,QAAA,GAAG9B,MAAAA,CAAOoB,GAAAA;QACVQ,SAAAA,EAAWxB,UAAAA,CAAWJ,MAAAA,CAAOoB,GAAAA,CAAIQ,SAAS;OAC9C,CAAA;IACJ,CAAA,MAAA,IAAW5B,MAAAA,YAAkBa,KAAEkB,WAAAA,EAAa;AACxC,MAAA,OAAO,IAAIlB,KAAEkB,WAAAA,CAAY;AACrB,QAAA,GAAG/B,MAAAA,CAAOoB,GAAAA;QACVQ,SAAAA,EAAWxB,UAAAA,CAAWJ,MAAAA,CAAOoB,GAAAA,CAAIQ,SAAS;OAC9C,CAAA;IACJ,CAAA,MAAA,IAAW5B,MAAAA,YAAkBa,KAAEmB,OAAAA,EAAS;AACpC,MAAA,OAAO,IAAInB,KAAEmB,OAAAA,CAAQ;AACjB,QAAA,GAAGhC,MAAAA,CAAOoB,GAAAA;;AAEVa,QAAAA,MAAAA,4CAAc7B,UAAAA,CAAWJ,MAAAA,CAAOoB,GAAAA,CAAIa,MAAAA,EAAM,CAAA,EAAlC,QAAA;OACZ,CAAA;IACJ,CAAA,MAAA,IAAWjC,MAAAA,YAAkBa,KAAEqB,UAAAA,EAAY;AACvC,MAAA,OAAO,IAAIrB,KAAEqB,UAAAA,CAAW;AACpB,QAAA,GAAGlC,MAAAA,CAAOoB,GAAAA;QACVQ,SAAAA,EAAWxB,UAAAA,CAAWJ,MAAAA,CAAOoB,GAAAA,CAAIQ,SAAS;OAC9C,CAAA;IACJ,CAAA,MAAA,IAAW5B,MAAAA,YAAkBa,KAAEsB,QAAAA,EAAU;AACrC,MAAA,OAAO,IAAItB,KAAEsB,QAAAA,CAAS;AAClB,QAAA,GAAGnC,MAAAA,CAAOoB,GAAAA;QACVQ,SAAAA,EAAWxB,UAAAA,CAAWJ,MAAAA,CAAOoB,GAAAA,CAAIQ,SAAS;OAC9C,CAAA;IACJ,CAAA,MAAA,IAAW5B,MAAAA,YAAkBa,KAAEuB,QAAAA,EAAU;AACrC,MAAA,OAAO,IAAIvB,KAAEuB,QAAAA,CAAS;AAClB,QAAA,GAAGpC,MAAAA,CAAOoB,GAAAA;QACViB,KAAAA,EAAOrC,MAAAA,CAAOoB,IAAIiB,KAAAA,CAAMC,GAAAA,CAAI,CAACC,IAAAA,KAAmBnC,UAAAA,CAAWmC,IAAAA,CAAAA,CAAAA;AAC3DC,QAAAA,IAAAA,EAAMxC,OAAOoB,GAAAA,CAAIoB,IAAAA,IAAQpC,UAAAA,CAAWJ,MAAAA,CAAOoB,IAAIoB,IAAI;OACvD,CAAA;IACJ,CAAA,MAAA,IAAWxC,MAAAA,YAAkBa,KAAE4B,QAAAA,EAAU;AACrC,MAAA,OAAO,IAAI5B,KAAE4B,QAAAA,CAAS;AAClB,QAAA,GAAGzC,MAAAA,CAAOoB,GAAAA;QACVsB,OAAAA,EAAS1C,MAAAA,CAAOoB,IAAIsB,OAAAA,CAAQJ,GAAAA,CAAI,CAACK,MAAAA,KAAqBvC,UAAAA,CAAWuC,MAAAA,CAAAA;OACrE,CAAA;IACJ,CAAA,MAAA,IAAW3C,MAAAA,YAAkBa,KAAE+B,eAAAA,EAAiB;AAC5C,MAAA,OAAO,IAAI/B,KAAE+B,eAAAA,CAAgB;AACzB,QAAA,GAAG5C,MAAAA,CAAOoB,GAAAA;QACVyB,KAAAA,EAAOzC,UAAAA,CAAWJ,MAAAA,CAAOoB,GAAAA,CAAIyB,KAAK,CAAA;QAClCC,IAAAA,EAAM1C,UAAAA,CAAWJ,MAAAA,CAAOoB,GAAAA,CAAI0B,IAAI;OACpC,CAAA;IACJ,CAAA,MAAA,IAAW9C,MAAAA,YAAkBa,KAAEkC,SAAAA,EAAW;AACtC,MAAA,OAAO,IAAIlC,KAAEkC,SAAAA,CAAU;AACnB,QAAA,GAAG/C,MAAAA,CAAOoB,GAAAA;AACVI,QAAAA,OAAAA,EAASxB,OAAOoB,GAAAA,CAAII,OAAAA;QACpBC,SAAAA,EAAWrB,UAAAA,CAAWJ,MAAAA,CAAOoB,GAAAA,CAAIK,SAAS;OAC9C,CAAA;IACJ,CAAA,MAAO;AACH,MAAA,OAAOzB,MAAAA;AACX,IAAA;AACJ,EAAA;AAzFSY,EAAAA,mBAAAA,CAAAA,QAAAA,EAAAA,UAAAA,CAAAA;AA2FT,EAAA,OAAOX,EAAAA,CAAGW,UAAAA,CAAAA;AACd;AA9GgBb,mBAAAA,CAAAA,WAAAA,EAAAA,aAAAA,CAAAA;AAgHT,SAASiD,eAAuChD,MAAAA,EAAS;AAC5D,EAAA,OAAOD,YAAYC,MAAAA,EAAQ,CAACK,CAAAA,KAAOA,CAAAA,EAAW4C,YAAAA,CAAAA;AAClD;AAFgBD,mBAAAA,CAAAA,cAAAA,EAAAA,gBAAAA,CAAAA;AAIT,SAASE,gBAAwClD,MAAAA,EAAS;AAC7D,EAAA,OAAOD,YAAYC,MAAAA,EAAQ,CAACK,CAAAA,KAAOA,CAAAA,EAAW8C,eAAAA,CAAAA;AAClD;AAFgBD,mBAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA","file":"index.cjs","sourcesContent":["export * from './schema';\n\n/*\n Copyright 2024, Jaen - https://github.com/jaens\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n https://gist.github.com/jaens/7e15ae1984bb338c86eb5e452dee3010\n*/\n\nimport { z } from 'zod/v4';\nimport type { $ZodType } from 'zod/v4/core';\n\nconst RESOLVING = Symbol('mapOnSchema/resolving');\n\nexport function mapOnSchema<T extends $ZodType, TResult extends $ZodType>(\n schema: T,\n fn: (schema: $ZodType) => TResult,\n): TResult;\n\n/**\n * Applies {@link fn} to each element of the schema recursively, replacing every schema with its return value.\n * The rewriting is applied bottom-up (ie. {@link fn} will get called on \"children\" first).\n */\nexport function mapOnSchema(schema: $ZodType, fn: (schema: $ZodType) => $ZodType): $ZodType {\n // Cache results to support recursive schemas\n const results = new Map<$ZodType, $ZodType | typeof RESOLVING>();\n\n function mapElement(s: $ZodType) {\n const value = results.get(s);\n if (value === RESOLVING) {\n throw new Error('Recursive schema access detected');\n } else if (value !== undefined) {\n return value;\n }\n\n results.set(s, RESOLVING);\n const result = mapOnSchema(s, fn);\n results.set(s, result);\n return result;\n }\n\n function mapInner() {\n if (schema instanceof z.ZodObject) {\n const newShape: Record<string, $ZodType> = {};\n for (const [key, value] of Object.entries(schema.shape)) {\n newShape[key] = mapElement(value as $ZodType);\n }\n\n return new z.ZodObject({\n ...schema.def,\n shape: newShape,\n });\n } else if (schema instanceof z.ZodArray) {\n return new z.ZodArray({\n ...schema.def,\n element: mapElement(schema.def.element),\n });\n } else if (schema instanceof z.ZodMap) {\n return new z.ZodMap({\n ...schema.def,\n keyType: mapElement(schema.def.keyType),\n valueType: mapElement(schema.def.valueType),\n });\n } else if (schema instanceof z.ZodSet) {\n return new z.ZodSet({\n ...schema.def,\n valueType: mapElement(schema.def.valueType),\n });\n } else if (schema instanceof z.ZodOptional) {\n return new z.ZodOptional({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodNullable) {\n return new z.ZodNullable({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodDefault) {\n return new z.ZodDefault({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodReadonly) {\n return new z.ZodReadonly({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodLazy) {\n return new z.ZodLazy({\n ...schema.def,\n // NB: This leaks `fn` into the schema, but there is no other way to support recursive schemas\n getter: () => mapElement(schema.def.getter()),\n });\n } else if (schema instanceof z.ZodPromise) {\n return new z.ZodPromise({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodCatch) {\n return new z.ZodCatch({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodTuple) {\n return new z.ZodTuple({\n ...schema.def,\n items: schema.def.items.map((item: $ZodType) => mapElement(item)),\n rest: schema.def.rest && mapElement(schema.def.rest),\n });\n } else if (schema instanceof z.ZodUnion) {\n return new z.ZodUnion({\n ...schema.def,\n options: schema.def.options.map((option: $ZodType) => mapElement(option)),\n });\n } else if (schema instanceof z.ZodIntersection) {\n return new z.ZodIntersection({\n ...schema.def,\n right: mapElement(schema.def.right),\n left: mapElement(schema.def.left),\n });\n } else if (schema instanceof z.ZodRecord) {\n return new z.ZodRecord({\n ...schema.def,\n keyType: schema.def.keyType as any,\n valueType: mapElement(schema.def.valueType),\n });\n } else {\n return schema;\n }\n }\n\n return fn(mapInner());\n}\n\nexport function zodDeepPartial<T extends z.ZodTypeAny>(schema: T): T {\n return mapOnSchema(schema, (s) => (s as any)?.optional?.()) as T;\n}\n\nexport function zodDeepRequired<T extends z.ZodTypeAny>(schema: T): T {\n return mapOnSchema(schema, (s) => (s as any)?.nonoptional?.()) as T;\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -3,4 +3,5 @@ import { z } from 'zod/v4';
3
3
  import type { $ZodType } from 'zod/v4/core';
4
4
  export declare function mapOnSchema<T extends $ZodType, TResult extends $ZodType>(schema: T, fn: (schema: $ZodType) => TResult): TResult;
5
5
  export declare function zodDeepPartial<T extends z.ZodTypeAny>(schema: T): T;
6
+ export declare function zodDeepRequired<T extends z.ZodTypeAny>(schema: T): T;
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AAiBzB,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C,wBAAgB,WAAW,CAAC,CAAC,SAAS,QAAQ,EAAE,OAAO,SAAS,QAAQ,EACpE,MAAM,EAAE,CAAC,EACT,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,OAAO,GAClC,OAAO,CAAC;AAsHX,wBAAgB,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAEnE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AAiBzB,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C,wBAAgB,WAAW,CAAC,CAAC,SAAS,QAAQ,EAAE,OAAO,SAAS,QAAQ,EACpE,MAAM,EAAE,CAAC,EACT,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,OAAO,GAClC,OAAO,CAAC;AAsHX,wBAAgB,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAEnE;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAEpE"}
package/dist/index.js CHANGED
@@ -112,10 +112,14 @@ function mapOnSchema(schema, fn) {
112
112
  }
113
113
  __name(mapOnSchema, "mapOnSchema");
114
114
  function zodDeepPartial(schema) {
115
- return mapOnSchema(schema, (s) => s?.optional());
115
+ return mapOnSchema(schema, (s) => s?.optional?.());
116
116
  }
117
117
  __name(zodDeepPartial, "zodDeepPartial");
118
+ function zodDeepRequired(schema) {
119
+ return mapOnSchema(schema, (s) => s?.nonoptional?.());
120
+ }
121
+ __name(zodDeepRequired, "zodDeepRequired");
118
122
 
119
- export { mapOnSchema, zodDeepPartial };
123
+ export { mapOnSchema, zodDeepPartial, zodDeepRequired };
120
124
  //# sourceMappingURL=index.js.map
121
125
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["RESOLVING","Symbol","mapOnSchema","schema","fn","results","Map","mapElement","s","value","get","Error","undefined","set","result","mapInner","z","ZodObject","newShape","key","Object","entries","shape","def","ZodArray","element","ZodMap","keyType","valueType","ZodSet","ZodOptional","innerType","ZodNullable","ZodDefault","ZodReadonly","ZodLazy","getter","ZodPromise","ZodCatch","ZodTuple","items","map","item","rest","ZodUnion","options","option","ZodIntersection","right","left","ZodRecord","zodDeepPartial","optional"],"mappings":"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","file":"index.js","sourcesContent":["export * from './schema';\n\n/*\n Copyright 2024, Jaen - https://github.com/jaens\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n https://gist.github.com/jaens/7e15ae1984bb338c86eb5e452dee3010\n*/\n\nimport { z } from 'zod/v4';\nimport type { $ZodType } from 'zod/v4/core';\n\nconst RESOLVING = Symbol('mapOnSchema/resolving');\n\nexport function mapOnSchema<T extends $ZodType, TResult extends $ZodType>(\n schema: T,\n fn: (schema: $ZodType) => TResult,\n): TResult;\n\n/**\n * Applies {@link fn} to each element of the schema recursively, replacing every schema with its return value.\n * The rewriting is applied bottom-up (ie. {@link fn} will get called on \"children\" first).\n */\nexport function mapOnSchema(schema: $ZodType, fn: (schema: $ZodType) => $ZodType): $ZodType {\n // Cache results to support recursive schemas\n const results = new Map<$ZodType, $ZodType | typeof RESOLVING>();\n\n function mapElement(s: $ZodType) {\n const value = results.get(s);\n if (value === RESOLVING) {\n throw new Error('Recursive schema access detected');\n } else if (value !== undefined) {\n return value;\n }\n\n results.set(s, RESOLVING);\n const result = mapOnSchema(s, fn);\n results.set(s, result);\n return result;\n }\n\n function mapInner() {\n if (schema instanceof z.ZodObject) {\n const newShape: Record<string, $ZodType> = {};\n for (const [key, value] of Object.entries(schema.shape)) {\n newShape[key] = mapElement(value as $ZodType);\n }\n\n return new z.ZodObject({\n ...schema.def,\n shape: newShape,\n });\n } else if (schema instanceof z.ZodArray) {\n return new z.ZodArray({\n ...schema.def,\n element: mapElement(schema.def.element),\n });\n } else if (schema instanceof z.ZodMap) {\n return new z.ZodMap({\n ...schema.def,\n keyType: mapElement(schema.def.keyType),\n valueType: mapElement(schema.def.valueType),\n });\n } else if (schema instanceof z.ZodSet) {\n return new z.ZodSet({\n ...schema.def,\n valueType: mapElement(schema.def.valueType),\n });\n } else if (schema instanceof z.ZodOptional) {\n return new z.ZodOptional({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodNullable) {\n return new z.ZodNullable({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodDefault) {\n return new z.ZodDefault({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodReadonly) {\n return new z.ZodReadonly({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodLazy) {\n return new z.ZodLazy({\n ...schema.def,\n // NB: This leaks `fn` into the schema, but there is no other way to support recursive schemas\n getter: () => mapElement(schema.def.getter()),\n });\n } else if (schema instanceof z.ZodPromise) {\n return new z.ZodPromise({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodCatch) {\n return new z.ZodCatch({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodTuple) {\n return new z.ZodTuple({\n ...schema.def,\n items: schema.def.items.map((item: $ZodType) => mapElement(item)),\n rest: schema.def.rest && mapElement(schema.def.rest),\n });\n } else if (schema instanceof z.ZodUnion) {\n return new z.ZodUnion({\n ...schema.def,\n options: schema.def.options.map((option: $ZodType) => mapElement(option)),\n });\n } else if (schema instanceof z.ZodIntersection) {\n return new z.ZodIntersection({\n ...schema.def,\n right: mapElement(schema.def.right),\n left: mapElement(schema.def.left),\n });\n } else if (schema instanceof z.ZodRecord) {\n return new z.ZodRecord({\n ...schema.def,\n keyType: schema.def.keyType as any,\n valueType: mapElement(schema.def.valueType),\n });\n } else {\n return schema;\n }\n }\n\n return fn(mapInner());\n}\n\nexport function zodDeepPartial<T extends z.ZodTypeAny>(schema: T): T {\n return mapOnSchema(schema, (s) => (s as any)?.optional()) as T;\n}\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["RESOLVING","Symbol","mapOnSchema","schema","fn","results","Map","mapElement","s","value","get","Error","undefined","set","result","mapInner","z","ZodObject","newShape","key","Object","entries","shape","def","ZodArray","element","ZodMap","keyType","valueType","ZodSet","ZodOptional","innerType","ZodNullable","ZodDefault","ZodReadonly","ZodLazy","getter","ZodPromise","ZodCatch","ZodTuple","items","map","item","rest","ZodUnion","options","option","ZodIntersection","right","left","ZodRecord","zodDeepPartial","optional","zodDeepRequired","nonoptional"],"mappings":"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","file":"index.js","sourcesContent":["export * from './schema';\n\n/*\n Copyright 2024, Jaen - https://github.com/jaens\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n http://www.apache.org/licenses/LICENSE-2.0\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n https://gist.github.com/jaens/7e15ae1984bb338c86eb5e452dee3010\n*/\n\nimport { z } from 'zod/v4';\nimport type { $ZodType } from 'zod/v4/core';\n\nconst RESOLVING = Symbol('mapOnSchema/resolving');\n\nexport function mapOnSchema<T extends $ZodType, TResult extends $ZodType>(\n schema: T,\n fn: (schema: $ZodType) => TResult,\n): TResult;\n\n/**\n * Applies {@link fn} to each element of the schema recursively, replacing every schema with its return value.\n * The rewriting is applied bottom-up (ie. {@link fn} will get called on \"children\" first).\n */\nexport function mapOnSchema(schema: $ZodType, fn: (schema: $ZodType) => $ZodType): $ZodType {\n // Cache results to support recursive schemas\n const results = new Map<$ZodType, $ZodType | typeof RESOLVING>();\n\n function mapElement(s: $ZodType) {\n const value = results.get(s);\n if (value === RESOLVING) {\n throw new Error('Recursive schema access detected');\n } else if (value !== undefined) {\n return value;\n }\n\n results.set(s, RESOLVING);\n const result = mapOnSchema(s, fn);\n results.set(s, result);\n return result;\n }\n\n function mapInner() {\n if (schema instanceof z.ZodObject) {\n const newShape: Record<string, $ZodType> = {};\n for (const [key, value] of Object.entries(schema.shape)) {\n newShape[key] = mapElement(value as $ZodType);\n }\n\n return new z.ZodObject({\n ...schema.def,\n shape: newShape,\n });\n } else if (schema instanceof z.ZodArray) {\n return new z.ZodArray({\n ...schema.def,\n element: mapElement(schema.def.element),\n });\n } else if (schema instanceof z.ZodMap) {\n return new z.ZodMap({\n ...schema.def,\n keyType: mapElement(schema.def.keyType),\n valueType: mapElement(schema.def.valueType),\n });\n } else if (schema instanceof z.ZodSet) {\n return new z.ZodSet({\n ...schema.def,\n valueType: mapElement(schema.def.valueType),\n });\n } else if (schema instanceof z.ZodOptional) {\n return new z.ZodOptional({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodNullable) {\n return new z.ZodNullable({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodDefault) {\n return new z.ZodDefault({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodReadonly) {\n return new z.ZodReadonly({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodLazy) {\n return new z.ZodLazy({\n ...schema.def,\n // NB: This leaks `fn` into the schema, but there is no other way to support recursive schemas\n getter: () => mapElement(schema.def.getter()),\n });\n } else if (schema instanceof z.ZodPromise) {\n return new z.ZodPromise({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodCatch) {\n return new z.ZodCatch({\n ...schema.def,\n innerType: mapElement(schema.def.innerType),\n });\n } else if (schema instanceof z.ZodTuple) {\n return new z.ZodTuple({\n ...schema.def,\n items: schema.def.items.map((item: $ZodType) => mapElement(item)),\n rest: schema.def.rest && mapElement(schema.def.rest),\n });\n } else if (schema instanceof z.ZodUnion) {\n return new z.ZodUnion({\n ...schema.def,\n options: schema.def.options.map((option: $ZodType) => mapElement(option)),\n });\n } else if (schema instanceof z.ZodIntersection) {\n return new z.ZodIntersection({\n ...schema.def,\n right: mapElement(schema.def.right),\n left: mapElement(schema.def.left),\n });\n } else if (schema instanceof z.ZodRecord) {\n return new z.ZodRecord({\n ...schema.def,\n keyType: schema.def.keyType as any,\n valueType: mapElement(schema.def.valueType),\n });\n } else {\n return schema;\n }\n }\n\n return fn(mapInner());\n}\n\nexport function zodDeepPartial<T extends z.ZodTypeAny>(schema: T): T {\n return mapOnSchema(schema, (s) => (s as any)?.optional?.()) as T;\n}\n\nexport function zodDeepRequired<T extends z.ZodTypeAny>(schema: T): T {\n return mapOnSchema(schema, (s) => (s as any)?.nonoptional?.()) as T;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@layerzerolabs/zod-utils",
3
- "version": "0.0.8",
3
+ "version": "0.0.15",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -18,8 +18,8 @@
18
18
  },
19
19
  "devDependencies": {
20
20
  "tsup": "^8.4.0",
21
- "@layerzerolabs/tsup-configuration": "0.0.8",
22
- "@layerzerolabs/typescript-configuration": "0.0.8"
21
+ "@layerzerolabs/tsup-configuration": "0.0.15",
22
+ "@layerzerolabs/typescript-configuration": "0.0.15"
23
23
  },
24
24
  "publishConfig": {
25
25
  "access": "restricted",
package/src/index.ts CHANGED
@@ -142,5 +142,9 @@ export function mapOnSchema(schema: $ZodType, fn: (schema: $ZodType) => $ZodType
142
142
  }
143
143
 
144
144
  export function zodDeepPartial<T extends z.ZodTypeAny>(schema: T): T {
145
- return mapOnSchema(schema, (s) => (s as any)?.optional()) as T;
145
+ return mapOnSchema(schema, (s) => (s as any)?.optional?.()) as T;
146
+ }
147
+
148
+ export function zodDeepRequired<T extends z.ZodTypeAny>(schema: T): T {
149
+ return mapOnSchema(schema, (s) => (s as any)?.nonoptional?.()) as T;
146
150
  }