@layerzerolabs/zod-utils 0.2.12 → 0.2.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.
- package/.turbo/turbo-build.log +11 -11
- package/.turbo/turbo-lint.log +1 -1
- package/dist/{MOA3PLKL.js → CQE5KQHY.js} +3 -3
- package/dist/CQE5KQHY.js.map +1 -0
- package/dist/{BJTH56SG.cjs → E7II22PB.cjs} +9 -9
- package/dist/E7II22PB.cjs.map +1 -0
- package/dist/index.cjs +46 -46
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/schema.cjs +9 -9
- package/dist/schema.d.ts +2 -4
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +1 -1
- package/package.json +5 -5
- package/src/index.ts +1 -1
- package/src/schema.ts +2 -18
- package/dist/BJTH56SG.cjs.map +0 -1
- package/dist/MOA3PLKL.js.map +0 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -10,17 +10,17 @@
|
|
|
10
10
|
[34mCLI[39m Cleaning output folder
|
|
11
11
|
[34mCJS[39m Build start
|
|
12
12
|
[34mESM[39m Build start
|
|
13
|
-
[
|
|
14
|
-
[
|
|
13
|
+
[32mCJS[39m [1mdist/index.cjs [22m[32m5.47 KB[39m
|
|
14
|
+
[32mCJS[39m [1mdist/schema.cjs [22m[32m1.38 KB[39m
|
|
15
|
+
[32mCJS[39m [1mdist/E7II22PB.cjs [22m[32m2.29 KB[39m
|
|
16
|
+
[32mCJS[39m [1mdist/schema.cjs.map [22m[32m71.00 B[39m
|
|
17
|
+
[32mCJS[39m [1mdist/index.cjs.map [22m[32m11.04 KB[39m
|
|
18
|
+
[32mCJS[39m [1mdist/E7II22PB.cjs.map [22m[32m5.46 KB[39m
|
|
19
|
+
[32mCJS[39m ⚡️ Build success in 191ms
|
|
15
20
|
[32mESM[39m [1mdist/index.js [22m[32m4.21 KB[39m
|
|
21
|
+
[32mESM[39m [1mdist/schema.js [22m[32m332.00 B[39m
|
|
22
|
+
[32mESM[39m [1mdist/CQE5KQHY.js [22m[32m1.95 KB[39m
|
|
16
23
|
[32mESM[39m [1mdist/schema.js.map [22m[32m70.00 B[39m
|
|
17
|
-
[32mESM[39m [1mdist/MOA3PLKL.js.map [22m[32m5.93 KB[39m
|
|
18
24
|
[32mESM[39m [1mdist/index.js.map [22m[32m11.03 KB[39m
|
|
19
|
-
[32mESM[39m
|
|
20
|
-
[
|
|
21
|
-
[32mCJS[39m [1mdist/index.cjs [22m[32m5.45 KB[39m
|
|
22
|
-
[32mCJS[39m [1mdist/BJTH56SG.cjs [22m[32m2.29 KB[39m
|
|
23
|
-
[32mCJS[39m [1mdist/index.cjs.map [22m[32m11.04 KB[39m
|
|
24
|
-
[32mCJS[39m [1mdist/BJTH56SG.cjs.map [22m[32m5.93 KB[39m
|
|
25
|
-
[32mCJS[39m [1mdist/schema.cjs.map [22m[32m71.00 B[39m
|
|
26
|
-
[32mCJS[39m ⚡️ Build success in 117ms
|
|
25
|
+
[32mESM[39m [1mdist/CQE5KQHY.js.map [22m[32m5.46 KB[39m
|
|
26
|
+
[32mESM[39m ⚡️ Build success in 192ms
|
package/.turbo/turbo-lint.log
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
> @layerzerolabs/zod-utils@0.0.0 lint /home/runner/work/monorepo-internal/monorepo-internal/packages/zod-utils
|
|
3
3
|
> eslint . --max-warnings 0 || (eslint . --fix --max-warnings 0 && false)
|
|
4
4
|
|
|
5
|
-
(node:
|
|
5
|
+
(node:34251) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///home/runner/work/monorepo-internal/monorepo-internal/eslint.config.js?mtime=1768456627471 is not specified and it doesn't parse as CommonJS.
|
|
6
6
|
Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
|
|
7
7
|
To eliminate this warning, add "type": "module" to /home/runner/work/monorepo-internal/monorepo-internal/package.json.
|
|
8
8
|
(Use `node --trace-warnings ...` to show where the warning was created)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z } from 'zod
|
|
1
|
+
import { z } from 'zod';
|
|
2
2
|
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
4
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
@@ -40,5 +40,5 @@ var bindFunctionPointerArgs = /* @__PURE__ */ __name((params) => params, "bindFu
|
|
|
40
40
|
var bindPartialFunctionPointerArgs = /* @__PURE__ */ __name((params) => params, "bindPartialFunctionPointerArgs");
|
|
41
41
|
|
|
42
42
|
export { __name, bindFunctionPointerArgs, bindPartialFunctionPointerArgs, createExtendableFunctionPointerWithCurriedArgsSchema, createFunctionPointerSchema, createFunctionPointerWithArgsSchema, customSchema, functionSchema, schemaIsFunctionSchema };
|
|
43
|
-
//# sourceMappingURL=
|
|
44
|
-
//# sourceMappingURL=
|
|
43
|
+
//# sourceMappingURL=CQE5KQHY.js.map
|
|
44
|
+
//# sourceMappingURL=CQE5KQHY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/schema.ts"],"names":["functionSchemaTag","Symbol","functionSchema","input","output","obj","z","object","Object","defineProperty","value","writable","parse","i","Error","schemaIsFunctionSchema","schema","hasOwn","customSchema","validate","custom","createFunctionPointerSchema","pointer","createFunctionPointerWithArgsSchema","shape","args","createExtendableFunctionPointerWithCurriedArgsSchema","array","any","bindFunctionPointerArgs","params","bindPartialFunctionPointerArgs"],"mappings":";;;;AAaA,IAAMA,iBAAAA,GAAoBC,OAAO,uBAAA,CAAA;AAG1B,IAAMC,cAAAA,mBAAiB,MAAA,CAAA,CAAqD,EAC/EC,KAAAA,EACAC,QAAM,KAIT;AACG,EAAA,MAAMC,GAAAA,GAAMC,EAAEC,MAAAA,CAAO;AACjBJ,IAAAA,KAAAA;AACAC,IAAAA;GACJ,CAAA;AACAI,EAAAA,MAAAA,CAAOC,cAAAA,CAAeJ,KAAKL,iBAAAA,EAAmB;IAAEU,KAAAA,EAAO,IAAA;IAAMC,QAAAA,EAAU;GAAM,CAAA;AAI7EN,EAAAA,GAAAA,CAAIO,KAAAA,GAAQ,CAACC,CAAAA,KAAAA;AACT,IAAA,IAAI,OAAOA,MAAM,UAAA,EAAY;AACzB,MAAA,MAAM,IAAIC,KAAAA,CAAM,CAAA,EAAGD,CAAAA,CAAAA,kBAAAA,CAAqB,CAAA;AAC5C,IAAA;AAGA,IAAA,OAAOA,CAAAA;AACX,EAAA,CAAA;AACA,EAAA,OAAOR,GAAAA;AACX,CAAA,EAxB8B,gBAAA;AA0BvB,IAAMU,sBAAAA,2BACTC,MAAAA,KAAAA;AAEA,EAAA,OAAOR,MAAAA,CAAOS,MAAAA,CAAOD,MAAAA,EAAQhB,iBAAAA,CAAAA;AACjC,CAAA,EAJsC,wBAAA;AAM/B,IAAMkB,+BAAe,MAAA,CAAA,CAAIC,QAAAA,KAC5Bb,CAAAA,CAAEc,MAAAA,CAAUD,QAAAA,CAAAA,EADY,cAAA;AAGrB,IAAME,2BAAAA,mBAA8B,MAAA,CAAA,MACvCf,CAAAA,CAAEC,MAAAA,CAAO;;AAELe,EAAAA,OAAAA,EAASJ,YAAAA;AACb,CAAA,CAAA,EAJuC,6BAAA;AAMpC,IAAMK,mCAAAA,mBAAsC,MAAA,CAAA,MAG/CjB,CAAAA,CAAEC,MAAAA,CAAO;EACLe,OAAAA,EAASD,2BAAAA,GAAiCG,KAAAA,CAAMF,OAAAA;AAChDG,EAAAA,IAAAA,EAAMP,YAAAA;AACV,CAAA,CAAA,EAN+C,qCAAA;AAa5C,IAAMQ,oDAAAA,mBAAuD,MAAA,CAAA,MAIhEpB,CAAAA,CAAEC,MAAAA,CAAO;EACLe,OAAAA,EAASD,2BAAAA,GAGLG,KAAAA,CAAMF,OAAAA;AACVG,EAAAA,IAAAA,EAAMnB,CAAAA,CAAEqB,KAAAA,CAAMrB,CAAAA,CAAEsB,GAAAA,EAAG;AACvB,CAAA,CAAA,EAVgE,sDAAA;AAY7D,IAAMC,uBAAAA,mBAA0B,MAAA,CAAA,CAA4BC,MAAAA,KAG7DA,MAAAA,EAHiC,yBAAA;AAKhC,IAAMC,8BAAAA,mBAAiC,MAAA,CAAA,CAA4BD,MAAAA,KAGpEA,MAAAA,EAHwC,gCAAA","file":"CQE5KQHY.js","sourcesContent":["import { z } from 'zod';\n\nimport type {\n FunctionPointer,\n UnderlyingMethodOfFunctionPointer,\n} from '@layerzerolabs/function-pointer';\n\nexport type InferredArray<T extends z.ZodType[], Output extends any[] = []> = T extends []\n ? Output\n : T extends [infer Head, ...infer Tail extends z.ZodType[]]\n ? InferredArray<Tail, [...Output, z.infer<Head>]>\n : never;\n\nconst functionSchemaTag = Symbol('__FUNCTION_SCHEMA_TAG');\n\n//this essentially replicates the functionality of z.function in zod v3\nexport const functionSchema = <Input extends z.ZodTuple, Output extends z.ZodType>({\n input,\n output,\n}: {\n input: Input;\n output: Output;\n}) => {\n const obj = z.object({\n input,\n output,\n });\n Object.defineProperty(obj, functionSchemaTag, { value: true, writable: false });\n //we don't expect the function to actually be an object with an input field and an output field\n //so we override the parse function. we can't actually parse functions since input and output\n //types are lost at runtime, but we can check the runtime type of the object\n obj.parse = (i) => {\n if (typeof i !== 'function') {\n throw new Error(`${i} is not a function`);\n }\n //the return type here just has to match the inference of z.object,\n //the actual inference of the schema will be the z.ZodType custom\n return i as any;\n };\n return obj as unknown as z.ZodType<(...args: z.infer<Input>) => z.infer<Output>>;\n};\n\nexport const schemaIsFunctionSchema = (\n schema: z.ZodType,\n): schema is ReturnType<typeof functionSchema> => {\n return Object.hasOwn(schema, functionSchemaTag);\n};\n\nexport const customSchema = <T>(validate?: (data: any) => T) =>\n z.custom<T>(validate) as z.ZodType<T>;\n\nexport const createFunctionPointerSchema = <T extends FunctionPointer = FunctionPointer>() =>\n z.object({\n // FIXME this can be a real schema\n pointer: customSchema<T>(),\n });\n\nexport const createFunctionPointerWithArgsSchema = <\n T extends FunctionPointer = FunctionPointer,\n>() =>\n z.object({\n pointer: createFunctionPointerSchema<T>().shape.pointer,\n args: customSchema<Parameters<UnderlyingMethodOfFunctionPointer<T>>>(),\n });\n\nexport type ConstrainedGenericFunctionPointer<_ReturnType extends Promise<any>> = FunctionPointer<\n ReturnType<<T extends (...args: any[]) => _ReturnType>() => T>\n>;\n\n// This type doesn't work correctly\nexport const createExtendableFunctionPointerWithCurriedArgsSchema = <\n _BaseArgs extends any[],\n _ReturnType extends Promise<any>,\n>() =>\n z.object({\n pointer: createFunctionPointerSchema<\n // FIXME type args correctly\n ConstrainedGenericFunctionPointer<_ReturnType>\n >().shape.pointer,\n args: z.array(z.any()),\n });\n\nexport const bindFunctionPointerArgs = <T extends FunctionPointer>(params: {\n pointer: T;\n args: Parameters<UnderlyingMethodOfFunctionPointer<T>>;\n}) => params;\n\nexport const bindPartialFunctionPointerArgs = <T extends FunctionPointer>(params: {\n pointer: T;\n args: Partial<Parameters<UnderlyingMethodOfFunctionPointer<T>>>;\n}) => params;\n\nexport type FunctionPointerWithArgs<T extends FunctionPointer> = {\n pointer: T;\n args: Parameters<UnderlyingMethodOfFunctionPointer<T>>;\n};\n\nexport type BuildZodObject<T extends object> = z.ZodObject<\n {\n [K in keyof T]: z.ZodType<T[K]>;\n },\n z.core.$strip\n>;\n"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var zod = require('zod');
|
|
4
4
|
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
6
6
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
7
|
var functionSchemaTag = Symbol("__FUNCTION_SCHEMA_TAG");
|
|
8
8
|
var functionSchema = /* @__PURE__ */ __name(({ input, output }) => {
|
|
9
|
-
const obj =
|
|
9
|
+
const obj = zod.z.object({
|
|
10
10
|
input,
|
|
11
11
|
output
|
|
12
12
|
});
|
|
@@ -25,18 +25,18 @@ var functionSchema = /* @__PURE__ */ __name(({ input, output }) => {
|
|
|
25
25
|
var schemaIsFunctionSchema = /* @__PURE__ */ __name((schema) => {
|
|
26
26
|
return Object.hasOwn(schema, functionSchemaTag);
|
|
27
27
|
}, "schemaIsFunctionSchema");
|
|
28
|
-
var customSchema = /* @__PURE__ */ __name((validate) =>
|
|
29
|
-
var createFunctionPointerSchema = /* @__PURE__ */ __name(() =>
|
|
28
|
+
var customSchema = /* @__PURE__ */ __name((validate) => zod.z.custom(validate), "customSchema");
|
|
29
|
+
var createFunctionPointerSchema = /* @__PURE__ */ __name(() => zod.z.object({
|
|
30
30
|
// FIXME this can be a real schema
|
|
31
31
|
pointer: customSchema()
|
|
32
32
|
}), "createFunctionPointerSchema");
|
|
33
|
-
var createFunctionPointerWithArgsSchema = /* @__PURE__ */ __name(() =>
|
|
33
|
+
var createFunctionPointerWithArgsSchema = /* @__PURE__ */ __name(() => zod.z.object({
|
|
34
34
|
pointer: createFunctionPointerSchema().shape.pointer,
|
|
35
35
|
args: customSchema()
|
|
36
36
|
}), "createFunctionPointerWithArgsSchema");
|
|
37
|
-
var createExtendableFunctionPointerWithCurriedArgsSchema = /* @__PURE__ */ __name(() =>
|
|
37
|
+
var createExtendableFunctionPointerWithCurriedArgsSchema = /* @__PURE__ */ __name(() => zod.z.object({
|
|
38
38
|
pointer: createFunctionPointerSchema().shape.pointer,
|
|
39
|
-
args:
|
|
39
|
+
args: zod.z.array(zod.z.any())
|
|
40
40
|
}), "createExtendableFunctionPointerWithCurriedArgsSchema");
|
|
41
41
|
var bindFunctionPointerArgs = /* @__PURE__ */ __name((params) => params, "bindFunctionPointerArgs");
|
|
42
42
|
var bindPartialFunctionPointerArgs = /* @__PURE__ */ __name((params) => params, "bindPartialFunctionPointerArgs");
|
|
@@ -50,5 +50,5 @@ exports.createFunctionPointerWithArgsSchema = createFunctionPointerWithArgsSchem
|
|
|
50
50
|
exports.customSchema = customSchema;
|
|
51
51
|
exports.functionSchema = functionSchema;
|
|
52
52
|
exports.schemaIsFunctionSchema = schemaIsFunctionSchema;
|
|
53
|
-
//# sourceMappingURL=
|
|
54
|
-
//# sourceMappingURL=
|
|
53
|
+
//# sourceMappingURL=E7II22PB.cjs.map
|
|
54
|
+
//# sourceMappingURL=E7II22PB.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/schema.ts"],"names":["functionSchemaTag","Symbol","functionSchema","input","output","obj","z","object","Object","defineProperty","value","writable","parse","i","Error","schemaIsFunctionSchema","schema","hasOwn","customSchema","validate","custom","createFunctionPointerSchema","pointer","createFunctionPointerWithArgsSchema","shape","args","createExtendableFunctionPointerWithCurriedArgsSchema","array","any","bindFunctionPointerArgs","params","bindPartialFunctionPointerArgs"],"mappings":";;;;;;AAaA,IAAMA,iBAAAA,GAAoBC,OAAO,uBAAA,CAAA;AAG1B,IAAMC,cAAAA,mBAAiB,MAAA,CAAA,CAAqD,EAC/EC,KAAAA,EACAC,QAAM,KAIT;AACG,EAAA,MAAMC,GAAAA,GAAMC,MAAEC,MAAAA,CAAO;AACjBJ,IAAAA,KAAAA;AACAC,IAAAA;GACJ,CAAA;AACAI,EAAAA,MAAAA,CAAOC,cAAAA,CAAeJ,KAAKL,iBAAAA,EAAmB;IAAEU,KAAAA,EAAO,IAAA;IAAMC,QAAAA,EAAU;GAAM,CAAA;AAI7EN,EAAAA,GAAAA,CAAIO,KAAAA,GAAQ,CAACC,CAAAA,KAAAA;AACT,IAAA,IAAI,OAAOA,MAAM,UAAA,EAAY;AACzB,MAAA,MAAM,IAAIC,KAAAA,CAAM,CAAA,EAAGD,CAAAA,CAAAA,kBAAAA,CAAqB,CAAA;AAC5C,IAAA;AAGA,IAAA,OAAOA,CAAAA;AACX,EAAA,CAAA;AACA,EAAA,OAAOR,GAAAA;AACX,CAAA,EAxB8B,gBAAA;AA0BvB,IAAMU,sBAAAA,2BACTC,MAAAA,KAAAA;AAEA,EAAA,OAAOR,MAAAA,CAAOS,MAAAA,CAAOD,MAAAA,EAAQhB,iBAAAA,CAAAA;AACjC,CAAA,EAJsC,wBAAA;AAM/B,IAAMkB,+BAAe,MAAA,CAAA,CAAIC,QAAAA,KAC5Bb,KAAAA,CAAEc,MAAAA,CAAUD,QAAAA,CAAAA,EADY,cAAA;AAGrB,IAAME,2BAAAA,mBAA8B,MAAA,CAAA,MACvCf,KAAAA,CAAEC,MAAAA,CAAO;;AAELe,EAAAA,OAAAA,EAASJ,YAAAA;AACb,CAAA,CAAA,EAJuC,6BAAA;AAMpC,IAAMK,mCAAAA,mBAAsC,MAAA,CAAA,MAG/CjB,KAAAA,CAAEC,MAAAA,CAAO;EACLe,OAAAA,EAASD,2BAAAA,GAAiCG,KAAAA,CAAMF,OAAAA;AAChDG,EAAAA,IAAAA,EAAMP,YAAAA;AACV,CAAA,CAAA,EAN+C,qCAAA;AAa5C,IAAMQ,oDAAAA,mBAAuD,MAAA,CAAA,MAIhEpB,KAAAA,CAAEC,MAAAA,CAAO;EACLe,OAAAA,EAASD,2BAAAA,GAGLG,KAAAA,CAAMF,OAAAA;AACVG,EAAAA,IAAAA,EAAMnB,KAAAA,CAAEqB,KAAAA,CAAMrB,KAAAA,CAAEsB,GAAAA,EAAG;AACvB,CAAA,CAAA,EAVgE,sDAAA;AAY7D,IAAMC,uBAAAA,mBAA0B,MAAA,CAAA,CAA4BC,MAAAA,KAG7DA,MAAAA,EAHiC,yBAAA;AAKhC,IAAMC,8BAAAA,mBAAiC,MAAA,CAAA,CAA4BD,MAAAA,KAGpEA,MAAAA,EAHwC,gCAAA","file":"E7II22PB.cjs","sourcesContent":["import { z } from 'zod';\n\nimport type {\n FunctionPointer,\n UnderlyingMethodOfFunctionPointer,\n} from '@layerzerolabs/function-pointer';\n\nexport type InferredArray<T extends z.ZodType[], Output extends any[] = []> = T extends []\n ? Output\n : T extends [infer Head, ...infer Tail extends z.ZodType[]]\n ? InferredArray<Tail, [...Output, z.infer<Head>]>\n : never;\n\nconst functionSchemaTag = Symbol('__FUNCTION_SCHEMA_TAG');\n\n//this essentially replicates the functionality of z.function in zod v3\nexport const functionSchema = <Input extends z.ZodTuple, Output extends z.ZodType>({\n input,\n output,\n}: {\n input: Input;\n output: Output;\n}) => {\n const obj = z.object({\n input,\n output,\n });\n Object.defineProperty(obj, functionSchemaTag, { value: true, writable: false });\n //we don't expect the function to actually be an object with an input field and an output field\n //so we override the parse function. we can't actually parse functions since input and output\n //types are lost at runtime, but we can check the runtime type of the object\n obj.parse = (i) => {\n if (typeof i !== 'function') {\n throw new Error(`${i} is not a function`);\n }\n //the return type here just has to match the inference of z.object,\n //the actual inference of the schema will be the z.ZodType custom\n return i as any;\n };\n return obj as unknown as z.ZodType<(...args: z.infer<Input>) => z.infer<Output>>;\n};\n\nexport const schemaIsFunctionSchema = (\n schema: z.ZodType,\n): schema is ReturnType<typeof functionSchema> => {\n return Object.hasOwn(schema, functionSchemaTag);\n};\n\nexport const customSchema = <T>(validate?: (data: any) => T) =>\n z.custom<T>(validate) as z.ZodType<T>;\n\nexport const createFunctionPointerSchema = <T extends FunctionPointer = FunctionPointer>() =>\n z.object({\n // FIXME this can be a real schema\n pointer: customSchema<T>(),\n });\n\nexport const createFunctionPointerWithArgsSchema = <\n T extends FunctionPointer = FunctionPointer,\n>() =>\n z.object({\n pointer: createFunctionPointerSchema<T>().shape.pointer,\n args: customSchema<Parameters<UnderlyingMethodOfFunctionPointer<T>>>(),\n });\n\nexport type ConstrainedGenericFunctionPointer<_ReturnType extends Promise<any>> = FunctionPointer<\n ReturnType<<T extends (...args: any[]) => _ReturnType>() => T>\n>;\n\n// This type doesn't work correctly\nexport const createExtendableFunctionPointerWithCurriedArgsSchema = <\n _BaseArgs extends any[],\n _ReturnType extends Promise<any>,\n>() =>\n z.object({\n pointer: createFunctionPointerSchema<\n // FIXME type args correctly\n ConstrainedGenericFunctionPointer<_ReturnType>\n >().shape.pointer,\n args: z.array(z.any()),\n });\n\nexport const bindFunctionPointerArgs = <T extends FunctionPointer>(params: {\n pointer: T;\n args: Parameters<UnderlyingMethodOfFunctionPointer<T>>;\n}) => params;\n\nexport const bindPartialFunctionPointerArgs = <T extends FunctionPointer>(params: {\n pointer: T;\n args: Partial<Parameters<UnderlyingMethodOfFunctionPointer<T>>>;\n}) => params;\n\nexport type FunctionPointerWithArgs<T extends FunctionPointer> = {\n pointer: T;\n args: Parameters<UnderlyingMethodOfFunctionPointer<T>>;\n};\n\nexport type BuildZodObject<T extends object> = z.ZodObject<\n {\n [K in keyof T]: z.ZodType<T[K]>;\n },\n z.core.$strip\n>;\n"]}
|
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var E7II22PB_cjs = require('./E7II22PB.cjs');
|
|
4
|
+
var zod = require('zod');
|
|
5
5
|
|
|
6
6
|
var RESOLVING = Symbol("mapOnSchema/resolving");
|
|
7
7
|
function mapOnSchema(schema, fn) {
|
|
@@ -18,88 +18,88 @@ function mapOnSchema(schema, fn) {
|
|
|
18
18
|
results.set(s, result);
|
|
19
19
|
return result;
|
|
20
20
|
}
|
|
21
|
-
|
|
21
|
+
E7II22PB_cjs.__name(mapElement, "mapElement");
|
|
22
22
|
function mapInner() {
|
|
23
|
-
if (schema instanceof
|
|
23
|
+
if (schema instanceof zod.z.ZodObject) {
|
|
24
24
|
const newShape = {};
|
|
25
25
|
for (const [key, value] of Object.entries(schema.shape)) {
|
|
26
26
|
newShape[key] = mapElement(value);
|
|
27
27
|
}
|
|
28
|
-
return new
|
|
28
|
+
return new zod.z.ZodObject({
|
|
29
29
|
...schema.def,
|
|
30
30
|
shape: newShape
|
|
31
31
|
});
|
|
32
|
-
} else if (schema instanceof
|
|
33
|
-
return new
|
|
32
|
+
} else if (schema instanceof zod.z.ZodArray) {
|
|
33
|
+
return new zod.z.ZodArray({
|
|
34
34
|
...schema.def,
|
|
35
35
|
element: mapElement(schema.def.element)
|
|
36
36
|
});
|
|
37
|
-
} else if (schema instanceof
|
|
38
|
-
return new
|
|
37
|
+
} else if (schema instanceof zod.z.ZodMap) {
|
|
38
|
+
return new zod.z.ZodMap({
|
|
39
39
|
...schema.def,
|
|
40
40
|
keyType: mapElement(schema.def.keyType),
|
|
41
41
|
valueType: mapElement(schema.def.valueType)
|
|
42
42
|
});
|
|
43
|
-
} else if (schema instanceof
|
|
44
|
-
return new
|
|
43
|
+
} else if (schema instanceof zod.z.ZodSet) {
|
|
44
|
+
return new zod.z.ZodSet({
|
|
45
45
|
...schema.def,
|
|
46
46
|
valueType: mapElement(schema.def.valueType)
|
|
47
47
|
});
|
|
48
|
-
} else if (schema instanceof
|
|
49
|
-
return new
|
|
48
|
+
} else if (schema instanceof zod.z.ZodOptional) {
|
|
49
|
+
return new zod.z.ZodOptional({
|
|
50
50
|
...schema.def,
|
|
51
51
|
innerType: mapElement(schema.def.innerType)
|
|
52
52
|
});
|
|
53
|
-
} else if (schema instanceof
|
|
54
|
-
return new
|
|
53
|
+
} else if (schema instanceof zod.z.ZodNullable) {
|
|
54
|
+
return new zod.z.ZodNullable({
|
|
55
55
|
...schema.def,
|
|
56
56
|
innerType: mapElement(schema.def.innerType)
|
|
57
57
|
});
|
|
58
|
-
} else if (schema instanceof
|
|
59
|
-
return new
|
|
58
|
+
} else if (schema instanceof zod.z.ZodDefault) {
|
|
59
|
+
return new zod.z.ZodDefault({
|
|
60
60
|
...schema.def,
|
|
61
61
|
innerType: mapElement(schema.def.innerType)
|
|
62
62
|
});
|
|
63
|
-
} else if (schema instanceof
|
|
64
|
-
return new
|
|
63
|
+
} else if (schema instanceof zod.z.ZodReadonly) {
|
|
64
|
+
return new zod.z.ZodReadonly({
|
|
65
65
|
...schema.def,
|
|
66
66
|
innerType: mapElement(schema.def.innerType)
|
|
67
67
|
});
|
|
68
|
-
} else if (schema instanceof
|
|
69
|
-
return new
|
|
68
|
+
} else if (schema instanceof zod.z.ZodLazy) {
|
|
69
|
+
return new zod.z.ZodLazy({
|
|
70
70
|
...schema.def,
|
|
71
71
|
// NB: This leaks `fn` into the schema, but there is no other way to support recursive schemas
|
|
72
|
-
getter: /* @__PURE__ */
|
|
72
|
+
getter: /* @__PURE__ */ E7II22PB_cjs.__name(() => mapElement(schema.def.getter()), "getter")
|
|
73
73
|
});
|
|
74
|
-
} else if (schema instanceof
|
|
75
|
-
return new
|
|
74
|
+
} else if (schema instanceof zod.z.ZodPromise) {
|
|
75
|
+
return new zod.z.ZodPromise({
|
|
76
76
|
...schema.def,
|
|
77
77
|
innerType: mapElement(schema.def.innerType)
|
|
78
78
|
});
|
|
79
|
-
} else if (schema instanceof
|
|
80
|
-
return new
|
|
79
|
+
} else if (schema instanceof zod.z.ZodCatch) {
|
|
80
|
+
return new zod.z.ZodCatch({
|
|
81
81
|
...schema.def,
|
|
82
82
|
innerType: mapElement(schema.def.innerType)
|
|
83
83
|
});
|
|
84
|
-
} else if (schema instanceof
|
|
85
|
-
return new
|
|
84
|
+
} else if (schema instanceof zod.z.ZodTuple) {
|
|
85
|
+
return new zod.z.ZodTuple({
|
|
86
86
|
...schema.def,
|
|
87
87
|
items: schema.def.items.map((item) => mapElement(item)),
|
|
88
88
|
rest: schema.def.rest && mapElement(schema.def.rest)
|
|
89
89
|
});
|
|
90
|
-
} else if (schema instanceof
|
|
91
|
-
return new
|
|
90
|
+
} else if (schema instanceof zod.z.ZodUnion) {
|
|
91
|
+
return new zod.z.ZodUnion({
|
|
92
92
|
...schema.def,
|
|
93
93
|
options: schema.def.options.map((option) => mapElement(option))
|
|
94
94
|
});
|
|
95
|
-
} else if (schema instanceof
|
|
96
|
-
return new
|
|
95
|
+
} else if (schema instanceof zod.z.ZodIntersection) {
|
|
96
|
+
return new zod.z.ZodIntersection({
|
|
97
97
|
...schema.def,
|
|
98
98
|
right: mapElement(schema.def.right),
|
|
99
99
|
left: mapElement(schema.def.left)
|
|
100
100
|
});
|
|
101
|
-
} else if (schema instanceof
|
|
102
|
-
return new
|
|
101
|
+
} else if (schema instanceof zod.z.ZodRecord) {
|
|
102
|
+
return new zod.z.ZodRecord({
|
|
103
103
|
...schema.def,
|
|
104
104
|
keyType: schema.def.keyType,
|
|
105
105
|
valueType: mapElement(schema.def.valueType)
|
|
@@ -108,50 +108,50 @@ function mapOnSchema(schema, fn) {
|
|
|
108
108
|
return schema;
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
|
-
|
|
111
|
+
E7II22PB_cjs.__name(mapInner, "mapInner");
|
|
112
112
|
return fn(mapInner());
|
|
113
113
|
}
|
|
114
|
-
|
|
114
|
+
E7II22PB_cjs.__name(mapOnSchema, "mapOnSchema");
|
|
115
115
|
function zodDeepPartial(schema) {
|
|
116
116
|
return mapOnSchema(schema, (s) => s?.optional?.());
|
|
117
117
|
}
|
|
118
|
-
|
|
118
|
+
E7II22PB_cjs.__name(zodDeepPartial, "zodDeepPartial");
|
|
119
119
|
function zodDeepRequired(schema) {
|
|
120
120
|
return mapOnSchema(schema, (s) => s?.nonoptional?.());
|
|
121
121
|
}
|
|
122
|
-
|
|
122
|
+
E7II22PB_cjs.__name(zodDeepRequired, "zodDeepRequired");
|
|
123
123
|
|
|
124
124
|
Object.defineProperty(exports, "bindFunctionPointerArgs", {
|
|
125
125
|
enumerable: true,
|
|
126
|
-
get: function () { return
|
|
126
|
+
get: function () { return E7II22PB_cjs.bindFunctionPointerArgs; }
|
|
127
127
|
});
|
|
128
128
|
Object.defineProperty(exports, "bindPartialFunctionPointerArgs", {
|
|
129
129
|
enumerable: true,
|
|
130
|
-
get: function () { return
|
|
130
|
+
get: function () { return E7II22PB_cjs.bindPartialFunctionPointerArgs; }
|
|
131
131
|
});
|
|
132
132
|
Object.defineProperty(exports, "createExtendableFunctionPointerWithCurriedArgsSchema", {
|
|
133
133
|
enumerable: true,
|
|
134
|
-
get: function () { return
|
|
134
|
+
get: function () { return E7II22PB_cjs.createExtendableFunctionPointerWithCurriedArgsSchema; }
|
|
135
135
|
});
|
|
136
136
|
Object.defineProperty(exports, "createFunctionPointerSchema", {
|
|
137
137
|
enumerable: true,
|
|
138
|
-
get: function () { return
|
|
138
|
+
get: function () { return E7II22PB_cjs.createFunctionPointerSchema; }
|
|
139
139
|
});
|
|
140
140
|
Object.defineProperty(exports, "createFunctionPointerWithArgsSchema", {
|
|
141
141
|
enumerable: true,
|
|
142
|
-
get: function () { return
|
|
142
|
+
get: function () { return E7II22PB_cjs.createFunctionPointerWithArgsSchema; }
|
|
143
143
|
});
|
|
144
144
|
Object.defineProperty(exports, "customSchema", {
|
|
145
145
|
enumerable: true,
|
|
146
|
-
get: function () { return
|
|
146
|
+
get: function () { return E7II22PB_cjs.customSchema; }
|
|
147
147
|
});
|
|
148
148
|
Object.defineProperty(exports, "functionSchema", {
|
|
149
149
|
enumerable: true,
|
|
150
|
-
get: function () { return
|
|
150
|
+
get: function () { return E7II22PB_cjs.functionSchema; }
|
|
151
151
|
});
|
|
152
152
|
Object.defineProperty(exports, "schemaIsFunctionSchema", {
|
|
153
153
|
enumerable: true,
|
|
154
|
-
get: function () { return
|
|
154
|
+
get: function () { return E7II22PB_cjs.schemaIsFunctionSchema; }
|
|
155
155
|
});
|
|
156
156
|
exports.mapOnSchema = mapOnSchema;
|
|
157
157
|
exports.zodDeepPartial = zodDeepPartial;
|
package/dist/index.cjs.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","zodDeepRequired","nonoptional"],"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\nexport function zodDeepRequired<T extends z.ZodTypeAny>(schema: T): T {\n return mapOnSchema(schema, (s) => (s as any)?.nonoptional?.()) 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,MAAEC,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,MAAEC,SAAAA,CAAU;AACnB,QAAA,GAAGd,MAAAA,CAAOoB,GAAAA;QACVD,KAAAA,EAAOJ;OACX,CAAA;IACJ,CAAA,MAAA,IAAWf,MAAAA,YAAkBa,MAAEQ,QAAAA,EAAU;AACrC,MAAA,OAAO,IAAIR,MAAEQ,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,MAAEU,MAAAA,EAAQ;AACnC,MAAA,OAAO,IAAIV,MAAEU,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,MAAEa,MAAAA,EAAQ;AACnC,MAAA,OAAO,IAAIb,MAAEa,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,MAAEc,WAAAA,EAAa;AACxC,MAAA,OAAO,IAAId,MAAEc,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,MAAEgB,WAAAA,EAAa;AACxC,MAAA,OAAO,IAAIhB,MAAEgB,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,MAAEiB,UAAAA,EAAY;AACvC,MAAA,OAAO,IAAIjB,MAAEiB,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,MAAEkB,WAAAA,EAAa;AACxC,MAAA,OAAO,IAAIlB,MAAEkB,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,MAAEmB,OAAAA,EAAS;AACpC,MAAA,OAAO,IAAInB,MAAEmB,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,MAAEqB,UAAAA,EAAY;AACvC,MAAA,OAAO,IAAIrB,MAAEqB,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,MAAEsB,QAAAA,EAAU;AACrC,MAAA,OAAO,IAAItB,MAAEsB,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,MAAEuB,QAAAA,EAAU;AACrC,MAAA,OAAO,IAAIvB,MAAEuB,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,MAAE4B,QAAAA,EAAU;AACrC,MAAA,OAAO,IAAI5B,MAAE4B,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,MAAE+B,eAAAA,EAAiB;AAC5C,MAAA,OAAO,IAAI/B,MAAE+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,MAAEkC,SAAAA,EAAW;AACtC,MAAA,OAAO,IAAIlC,MAAEkC,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';\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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * from './schema';
|
|
2
|
-
import { z } from 'zod
|
|
2
|
+
import { z } from 'zod';
|
|
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;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AAiBzB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,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
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { __name } from './
|
|
2
|
-
export { bindFunctionPointerArgs, bindPartialFunctionPointerArgs, createExtendableFunctionPointerWithCurriedArgsSchema, createFunctionPointerSchema, createFunctionPointerWithArgsSchema, customSchema, functionSchema, schemaIsFunctionSchema } from './
|
|
3
|
-
import { z } from 'zod
|
|
1
|
+
import { __name } from './CQE5KQHY.js';
|
|
2
|
+
export { bindFunctionPointerArgs, bindPartialFunctionPointerArgs, createExtendableFunctionPointerWithCurriedArgsSchema, createFunctionPointerSchema, createFunctionPointerWithArgsSchema, customSchema, functionSchema, schemaIsFunctionSchema } from './CQE5KQHY.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
4
|
|
|
5
5
|
var RESOLVING = Symbol("mapOnSchema/resolving");
|
|
6
6
|
function mapOnSchema(schema, fn) {
|
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","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,MAAAA,CAAAA,UAAAA,EAAAA,YAAAA,CAAAA;AAcT,EAAA,SAASQ,QAAAA,GAAAA;AACL,IAAA,IAAIZ,MAAAA,YAAkBa,EAAEC,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,EAAEC,SAAAA,CAAU;AACnB,QAAA,GAAGd,MAAAA,CAAOoB,GAAAA;QACVD,KAAAA,EAAOJ;OACX,CAAA;IACJ,CAAA,MAAA,IAAWf,MAAAA,YAAkBa,EAAEQ,QAAAA,EAAU;AACrC,MAAA,OAAO,IAAIR,EAAEQ,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,EAAEU,MAAAA,EAAQ;AACnC,MAAA,OAAO,IAAIV,EAAEU,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,EAAEa,MAAAA,EAAQ;AACnC,MAAA,OAAO,IAAIb,EAAEa,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,EAAEc,WAAAA,EAAa;AACxC,MAAA,OAAO,IAAId,EAAEc,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,EAAEgB,WAAAA,EAAa;AACxC,MAAA,OAAO,IAAIhB,EAAEgB,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,EAAEiB,UAAAA,EAAY;AACvC,MAAA,OAAO,IAAIjB,EAAEiB,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,EAAEkB,WAAAA,EAAa;AACxC,MAAA,OAAO,IAAIlB,EAAEkB,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,EAAEmB,OAAAA,EAAS;AACpC,MAAA,OAAO,IAAInB,EAAEmB,OAAAA,CAAQ;AACjB,QAAA,GAAGhC,MAAAA,CAAOoB,GAAAA;;AAEVa,QAAAA,MAAAA,+BAAc7B,UAAAA,CAAWJ,MAAAA,CAAOoB,GAAAA,CAAIa,MAAAA,EAAM,CAAA,EAAlC,QAAA;OACZ,CAAA;IACJ,CAAA,MAAA,IAAWjC,MAAAA,YAAkBa,EAAEqB,UAAAA,EAAY;AACvC,MAAA,OAAO,IAAIrB,EAAEqB,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,EAAEsB,QAAAA,EAAU;AACrC,MAAA,OAAO,IAAItB,EAAEsB,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,EAAEuB,QAAAA,EAAU;AACrC,MAAA,OAAO,IAAIvB,EAAEuB,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,EAAE4B,QAAAA,EAAU;AACrC,MAAA,OAAO,IAAI5B,EAAE4B,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,EAAE+B,eAAAA,EAAiB;AAC5C,MAAA,OAAO,IAAI/B,EAAE+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,EAAEkC,SAAAA,EAAW;AACtC,MAAA,OAAO,IAAIlC,EAAEkC,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,MAAAA,CAAAA,QAAAA,EAAAA,UAAAA,CAAAA;AA2FT,EAAA,OAAOX,EAAAA,CAAGW,UAAAA,CAAAA;AACd;AA9GgBb,MAAAA,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,MAAAA,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,MAAAA,CAAAA,eAAAA,EAAAA,iBAAAA,CAAAA","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"]}
|
|
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';\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/schema.cjs
CHANGED
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var E7II22PB_cjs = require('./E7II22PB.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "bindFunctionPointerArgs", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
9
|
+
get: function () { return E7II22PB_cjs.bindFunctionPointerArgs; }
|
|
10
10
|
});
|
|
11
11
|
Object.defineProperty(exports, "bindPartialFunctionPointerArgs", {
|
|
12
12
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
13
|
+
get: function () { return E7II22PB_cjs.bindPartialFunctionPointerArgs; }
|
|
14
14
|
});
|
|
15
15
|
Object.defineProperty(exports, "createExtendableFunctionPointerWithCurriedArgsSchema", {
|
|
16
16
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
17
|
+
get: function () { return E7II22PB_cjs.createExtendableFunctionPointerWithCurriedArgsSchema; }
|
|
18
18
|
});
|
|
19
19
|
Object.defineProperty(exports, "createFunctionPointerSchema", {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
get: function () { return
|
|
21
|
+
get: function () { return E7II22PB_cjs.createFunctionPointerSchema; }
|
|
22
22
|
});
|
|
23
23
|
Object.defineProperty(exports, "createFunctionPointerWithArgsSchema", {
|
|
24
24
|
enumerable: true,
|
|
25
|
-
get: function () { return
|
|
25
|
+
get: function () { return E7II22PB_cjs.createFunctionPointerWithArgsSchema; }
|
|
26
26
|
});
|
|
27
27
|
Object.defineProperty(exports, "customSchema", {
|
|
28
28
|
enumerable: true,
|
|
29
|
-
get: function () { return
|
|
29
|
+
get: function () { return E7II22PB_cjs.customSchema; }
|
|
30
30
|
});
|
|
31
31
|
Object.defineProperty(exports, "functionSchema", {
|
|
32
32
|
enumerable: true,
|
|
33
|
-
get: function () { return
|
|
33
|
+
get: function () { return E7II22PB_cjs.functionSchema; }
|
|
34
34
|
});
|
|
35
35
|
Object.defineProperty(exports, "schemaIsFunctionSchema", {
|
|
36
36
|
enumerable: true,
|
|
37
|
-
get: function () { return
|
|
37
|
+
get: function () { return E7II22PB_cjs.schemaIsFunctionSchema; }
|
|
38
38
|
});
|
|
39
39
|
//# sourceMappingURL=schema.cjs.map
|
|
40
40
|
//# sourceMappingURL=schema.cjs.map
|
package/dist/schema.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { z } from 'zod
|
|
1
|
+
import { z } from 'zod';
|
|
2
2
|
import type { FunctionPointer, UnderlyingMethodOfFunctionPointer } from '@layerzerolabs/function-pointer';
|
|
3
|
-
type IsPromise<T> = T extends z.ZodOptional<infer I> ? IsPromise<I> : T extends z.ZodDefault<infer I> ? IsPromise<I> : T extends z.ZodNullable<infer I> ? IsPromise<I> : T extends z.ZodPromise<any> ? true : false;
|
|
4
3
|
export type InferredArray<T extends z.ZodType[], Output extends any[] = []> = T extends [] ? Output : T extends [infer Head, ...infer Tail extends z.ZodType[]] ? InferredArray<Tail, [...Output, z.infer<Head>]> : never;
|
|
5
4
|
export declare const functionSchema: <Input extends z.ZodTuple, Output extends z.ZodType>({ input, output, }: {
|
|
6
5
|
input: Input;
|
|
7
6
|
output: Output;
|
|
8
|
-
}) => z.ZodType<(...args: z.infer<Input>) =>
|
|
7
|
+
}) => z.ZodType<(...args: z.infer<Input>) => z.infer<Output>>;
|
|
9
8
|
export declare const schemaIsFunctionSchema: (schema: z.ZodType) => schema is ReturnType<typeof functionSchema>;
|
|
10
9
|
export declare const customSchema: <T>(validate?: (data: any) => T) => z.ZodType<T>;
|
|
11
10
|
export declare const createFunctionPointerSchema: <T extends FunctionPointer = FunctionPointer>() => z.ZodObject<{
|
|
@@ -41,5 +40,4 @@ export type FunctionPointerWithArgs<T extends FunctionPointer> = {
|
|
|
41
40
|
export type BuildZodObject<T extends object> = z.ZodObject<{
|
|
42
41
|
[K in keyof T]: z.ZodType<T[K]>;
|
|
43
42
|
}, z.core.$strip>;
|
|
44
|
-
export {};
|
|
45
43
|
//# sourceMappingURL=schema.d.ts.map
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
package/dist/schema.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { bindFunctionPointerArgs, bindPartialFunctionPointerArgs, createExtendableFunctionPointerWithCurriedArgsSchema, createFunctionPointerSchema, createFunctionPointerWithArgsSchema, customSchema, functionSchema, schemaIsFunctionSchema } from './
|
|
1
|
+
export { bindFunctionPointerArgs, bindPartialFunctionPointerArgs, createExtendableFunctionPointerWithCurriedArgsSchema, createFunctionPointerSchema, createFunctionPointerWithArgsSchema, customSchema, functionSchema, schemaIsFunctionSchema } from './CQE5KQHY.js';
|
|
2
2
|
//# sourceMappingURL=schema.js.map
|
|
3
3
|
//# sourceMappingURL=schema.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@layerzerolabs/zod-utils",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.15",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
"module": "./dist/index.js",
|
|
15
15
|
"types": "./dist/index.d.ts",
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"zod": "3.
|
|
18
|
-
"@layerzerolabs/function-pointer": "0.2.
|
|
17
|
+
"zod": "4.3.5",
|
|
18
|
+
"@layerzerolabs/function-pointer": "0.2.15"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"tsup": "^8.4.0",
|
|
22
|
-
"@layerzerolabs/typescript-configuration": "0.2.
|
|
23
|
-
"@layerzerolabs/tsup-configuration": "0.2.
|
|
22
|
+
"@layerzerolabs/typescript-configuration": "0.2.15",
|
|
23
|
+
"@layerzerolabs/tsup-configuration": "0.2.15"
|
|
24
24
|
},
|
|
25
25
|
"publishConfig": {
|
|
26
26
|
"access": "restricted",
|
package/src/index.ts
CHANGED
|
@@ -15,7 +15,7 @@ export * from './schema';
|
|
|
15
15
|
https://gist.github.com/jaens/7e15ae1984bb338c86eb5e452dee3010
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import { z } from 'zod
|
|
18
|
+
import { z } from 'zod';
|
|
19
19
|
import type { $ZodType } from 'zod/v4/core';
|
|
20
20
|
|
|
21
21
|
const RESOLVING = Symbol('mapOnSchema/resolving');
|
package/src/schema.ts
CHANGED
|
@@ -1,21 +1,10 @@
|
|
|
1
|
-
import { z } from 'zod
|
|
1
|
+
import { z } from 'zod';
|
|
2
2
|
|
|
3
3
|
import type {
|
|
4
4
|
FunctionPointer,
|
|
5
5
|
UnderlyingMethodOfFunctionPointer,
|
|
6
6
|
} from '@layerzerolabs/function-pointer';
|
|
7
7
|
|
|
8
|
-
type IsPromise<T> =
|
|
9
|
-
T extends z.ZodOptional<infer I>
|
|
10
|
-
? IsPromise<I>
|
|
11
|
-
: T extends z.ZodDefault<infer I>
|
|
12
|
-
? IsPromise<I>
|
|
13
|
-
: T extends z.ZodNullable<infer I>
|
|
14
|
-
? IsPromise<I>
|
|
15
|
-
: T extends z.ZodPromise<any>
|
|
16
|
-
? true
|
|
17
|
-
: false;
|
|
18
|
-
|
|
19
8
|
export type InferredArray<T extends z.ZodType[], Output extends any[] = []> = T extends []
|
|
20
9
|
? Output
|
|
21
10
|
: T extends [infer Head, ...infer Tail extends z.ZodType[]]
|
|
@@ -48,12 +37,7 @@ export const functionSchema = <Input extends z.ZodTuple, Output extends z.ZodTyp
|
|
|
48
37
|
//the actual inference of the schema will be the z.ZodType custom
|
|
49
38
|
return i as any;
|
|
50
39
|
};
|
|
51
|
-
return obj as unknown as z.ZodType<
|
|
52
|
-
(
|
|
53
|
-
...args: z.infer<Input>
|
|
54
|
-
//z.ZodPromise<T> infers as T, not Promise<T>
|
|
55
|
-
) => IsPromise<Output> extends true ? Promise<z.infer<Output>> : z.infer<Output>
|
|
56
|
-
>;
|
|
40
|
+
return obj as unknown as z.ZodType<(...args: z.infer<Input>) => z.infer<Output>>;
|
|
57
41
|
};
|
|
58
42
|
|
|
59
43
|
export const schemaIsFunctionSchema = (
|
package/dist/BJTH56SG.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schema.ts"],"names":["functionSchemaTag","Symbol","functionSchema","input","output","obj","z","object","Object","defineProperty","value","writable","parse","i","Error","schemaIsFunctionSchema","schema","hasOwn","customSchema","validate","custom","createFunctionPointerSchema","pointer","createFunctionPointerWithArgsSchema","shape","args","createExtendableFunctionPointerWithCurriedArgsSchema","array","any","bindFunctionPointerArgs","params","bindPartialFunctionPointerArgs"],"mappings":";;;;;;AAwBA,IAAMA,iBAAAA,GAAoBC,OAAO,uBAAA,CAAA;AAG1B,IAAMC,cAAAA,mBAAiB,MAAA,CAAA,CAAqD,EAC/EC,KAAAA,EACAC,QAAM,KAIT;AACG,EAAA,MAAMC,GAAAA,GAAMC,KAAEC,MAAAA,CAAO;AACjBJ,IAAAA,KAAAA;AACAC,IAAAA;GACJ,CAAA;AACAI,EAAAA,MAAAA,CAAOC,cAAAA,CAAeJ,KAAKL,iBAAAA,EAAmB;IAAEU,KAAAA,EAAO,IAAA;IAAMC,QAAAA,EAAU;GAAM,CAAA;AAI7EN,EAAAA,GAAAA,CAAIO,KAAAA,GAAQ,CAACC,CAAAA,KAAAA;AACT,IAAA,IAAI,OAAOA,MAAM,UAAA,EAAY;AACzB,MAAA,MAAM,IAAIC,KAAAA,CAAM,CAAA,EAAGD,CAAAA,CAAAA,kBAAAA,CAAqB,CAAA;AAC5C,IAAA;AAGA,IAAA,OAAOA,CAAAA;AACX,EAAA,CAAA;AACA,EAAA,OAAOR,GAAAA;AAMX,CAAA,EA7B8B,gBAAA;AA+BvB,IAAMU,sBAAAA,2BACTC,MAAAA,KAAAA;AAEA,EAAA,OAAOR,MAAAA,CAAOS,MAAAA,CAAOD,MAAAA,EAAQhB,iBAAAA,CAAAA;AACjC,CAAA,EAJsC,wBAAA;AAM/B,IAAMkB,+BAAe,MAAA,CAAA,CAAIC,QAAAA,KAC5Bb,IAAAA,CAAEc,MAAAA,CAAUD,QAAAA,CAAAA,EADY,cAAA;AAGrB,IAAME,2BAAAA,mBAA8B,MAAA,CAAA,MACvCf,IAAAA,CAAEC,MAAAA,CAAO;;AAELe,EAAAA,OAAAA,EAASJ,YAAAA;AACb,CAAA,CAAA,EAJuC,6BAAA;AAMpC,IAAMK,mCAAAA,mBAAsC,MAAA,CAAA,MAG/CjB,IAAAA,CAAEC,MAAAA,CAAO;EACLe,OAAAA,EAASD,2BAAAA,GAAiCG,KAAAA,CAAMF,OAAAA;AAChDG,EAAAA,IAAAA,EAAMP,YAAAA;AACV,CAAA,CAAA,EAN+C,qCAAA;AAa5C,IAAMQ,oDAAAA,mBAAuD,MAAA,CAAA,MAIhEpB,IAAAA,CAAEC,MAAAA,CAAO;EACLe,OAAAA,EAASD,2BAAAA,GAGLG,KAAAA,CAAMF,OAAAA;AACVG,EAAAA,IAAAA,EAAMnB,IAAAA,CAAEqB,KAAAA,CAAMrB,IAAAA,CAAEsB,GAAAA,EAAG;AACvB,CAAA,CAAA,EAVgE,sDAAA;AAY7D,IAAMC,uBAAAA,mBAA0B,MAAA,CAAA,CAA4BC,MAAAA,KAG7DA,MAAAA,EAHiC,yBAAA;AAKhC,IAAMC,8BAAAA,mBAAiC,MAAA,CAAA,CAA4BD,MAAAA,KAGpEA,MAAAA,EAHwC,gCAAA","file":"BJTH56SG.cjs","sourcesContent":["import { z } from 'zod/v4';\n\nimport type {\n FunctionPointer,\n UnderlyingMethodOfFunctionPointer,\n} from '@layerzerolabs/function-pointer';\n\ntype IsPromise<T> =\n T extends z.ZodOptional<infer I>\n ? IsPromise<I>\n : T extends z.ZodDefault<infer I>\n ? IsPromise<I>\n : T extends z.ZodNullable<infer I>\n ? IsPromise<I>\n : T extends z.ZodPromise<any>\n ? true\n : false;\n\nexport type InferredArray<T extends z.ZodType[], Output extends any[] = []> = T extends []\n ? Output\n : T extends [infer Head, ...infer Tail extends z.ZodType[]]\n ? InferredArray<Tail, [...Output, z.infer<Head>]>\n : never;\n\nconst functionSchemaTag = Symbol('__FUNCTION_SCHEMA_TAG');\n\n//this essentially replicates the functionality of z.function in zod v3\nexport const functionSchema = <Input extends z.ZodTuple, Output extends z.ZodType>({\n input,\n output,\n}: {\n input: Input;\n output: Output;\n}) => {\n const obj = z.object({\n input,\n output,\n });\n Object.defineProperty(obj, functionSchemaTag, { value: true, writable: false });\n //we don't expect the function to actually be an object with an input field and an output field\n //so we override the parse function. we can't actually parse functions since input and output\n //types are lost at runtime, but we can check the runtime type of the object\n obj.parse = (i) => {\n if (typeof i !== 'function') {\n throw new Error(`${i} is not a function`);\n }\n //the return type here just has to match the inference of z.object,\n //the actual inference of the schema will be the z.ZodType custom\n return i as any;\n };\n return obj as unknown as z.ZodType<\n (\n ...args: z.infer<Input>\n //z.ZodPromise<T> infers as T, not Promise<T>\n ) => IsPromise<Output> extends true ? Promise<z.infer<Output>> : z.infer<Output>\n >;\n};\n\nexport const schemaIsFunctionSchema = (\n schema: z.ZodType,\n): schema is ReturnType<typeof functionSchema> => {\n return Object.hasOwn(schema, functionSchemaTag);\n};\n\nexport const customSchema = <T>(validate?: (data: any) => T) =>\n z.custom<T>(validate) as z.ZodType<T>;\n\nexport const createFunctionPointerSchema = <T extends FunctionPointer = FunctionPointer>() =>\n z.object({\n // FIXME this can be a real schema\n pointer: customSchema<T>(),\n });\n\nexport const createFunctionPointerWithArgsSchema = <\n T extends FunctionPointer = FunctionPointer,\n>() =>\n z.object({\n pointer: createFunctionPointerSchema<T>().shape.pointer,\n args: customSchema<Parameters<UnderlyingMethodOfFunctionPointer<T>>>(),\n });\n\nexport type ConstrainedGenericFunctionPointer<_ReturnType extends Promise<any>> = FunctionPointer<\n ReturnType<<T extends (...args: any[]) => _ReturnType>() => T>\n>;\n\n// This type doesn't work correctly\nexport const createExtendableFunctionPointerWithCurriedArgsSchema = <\n _BaseArgs extends any[],\n _ReturnType extends Promise<any>,\n>() =>\n z.object({\n pointer: createFunctionPointerSchema<\n // FIXME type args correctly\n ConstrainedGenericFunctionPointer<_ReturnType>\n >().shape.pointer,\n args: z.array(z.any()),\n });\n\nexport const bindFunctionPointerArgs = <T extends FunctionPointer>(params: {\n pointer: T;\n args: Parameters<UnderlyingMethodOfFunctionPointer<T>>;\n}) => params;\n\nexport const bindPartialFunctionPointerArgs = <T extends FunctionPointer>(params: {\n pointer: T;\n args: Partial<Parameters<UnderlyingMethodOfFunctionPointer<T>>>;\n}) => params;\n\nexport type FunctionPointerWithArgs<T extends FunctionPointer> = {\n pointer: T;\n args: Parameters<UnderlyingMethodOfFunctionPointer<T>>;\n};\n\nexport type BuildZodObject<T extends object> = z.ZodObject<\n {\n [K in keyof T]: z.ZodType<T[K]>;\n },\n z.core.$strip\n>;\n"]}
|
package/dist/MOA3PLKL.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schema.ts"],"names":["functionSchemaTag","Symbol","functionSchema","input","output","obj","z","object","Object","defineProperty","value","writable","parse","i","Error","schemaIsFunctionSchema","schema","hasOwn","customSchema","validate","custom","createFunctionPointerSchema","pointer","createFunctionPointerWithArgsSchema","shape","args","createExtendableFunctionPointerWithCurriedArgsSchema","array","any","bindFunctionPointerArgs","params","bindPartialFunctionPointerArgs"],"mappings":";;;;AAwBA,IAAMA,iBAAAA,GAAoBC,OAAO,uBAAA,CAAA;AAG1B,IAAMC,cAAAA,mBAAiB,MAAA,CAAA,CAAqD,EAC/EC,KAAAA,EACAC,QAAM,KAIT;AACG,EAAA,MAAMC,GAAAA,GAAMC,EAAEC,MAAAA,CAAO;AACjBJ,IAAAA,KAAAA;AACAC,IAAAA;GACJ,CAAA;AACAI,EAAAA,MAAAA,CAAOC,cAAAA,CAAeJ,KAAKL,iBAAAA,EAAmB;IAAEU,KAAAA,EAAO,IAAA;IAAMC,QAAAA,EAAU;GAAM,CAAA;AAI7EN,EAAAA,GAAAA,CAAIO,KAAAA,GAAQ,CAACC,CAAAA,KAAAA;AACT,IAAA,IAAI,OAAOA,MAAM,UAAA,EAAY;AACzB,MAAA,MAAM,IAAIC,KAAAA,CAAM,CAAA,EAAGD,CAAAA,CAAAA,kBAAAA,CAAqB,CAAA;AAC5C,IAAA;AAGA,IAAA,OAAOA,CAAAA;AACX,EAAA,CAAA;AACA,EAAA,OAAOR,GAAAA;AAMX,CAAA,EA7B8B,gBAAA;AA+BvB,IAAMU,sBAAAA,2BACTC,MAAAA,KAAAA;AAEA,EAAA,OAAOR,MAAAA,CAAOS,MAAAA,CAAOD,MAAAA,EAAQhB,iBAAAA,CAAAA;AACjC,CAAA,EAJsC,wBAAA;AAM/B,IAAMkB,+BAAe,MAAA,CAAA,CAAIC,QAAAA,KAC5Bb,CAAAA,CAAEc,MAAAA,CAAUD,QAAAA,CAAAA,EADY,cAAA;AAGrB,IAAME,2BAAAA,mBAA8B,MAAA,CAAA,MACvCf,CAAAA,CAAEC,MAAAA,CAAO;;AAELe,EAAAA,OAAAA,EAASJ,YAAAA;AACb,CAAA,CAAA,EAJuC,6BAAA;AAMpC,IAAMK,mCAAAA,mBAAsC,MAAA,CAAA,MAG/CjB,CAAAA,CAAEC,MAAAA,CAAO;EACLe,OAAAA,EAASD,2BAAAA,GAAiCG,KAAAA,CAAMF,OAAAA;AAChDG,EAAAA,IAAAA,EAAMP,YAAAA;AACV,CAAA,CAAA,EAN+C,qCAAA;AAa5C,IAAMQ,oDAAAA,mBAAuD,MAAA,CAAA,MAIhEpB,CAAAA,CAAEC,MAAAA,CAAO;EACLe,OAAAA,EAASD,2BAAAA,GAGLG,KAAAA,CAAMF,OAAAA;AACVG,EAAAA,IAAAA,EAAMnB,CAAAA,CAAEqB,KAAAA,CAAMrB,CAAAA,CAAEsB,GAAAA,EAAG;AACvB,CAAA,CAAA,EAVgE,sDAAA;AAY7D,IAAMC,uBAAAA,mBAA0B,MAAA,CAAA,CAA4BC,MAAAA,KAG7DA,MAAAA,EAHiC,yBAAA;AAKhC,IAAMC,8BAAAA,mBAAiC,MAAA,CAAA,CAA4BD,MAAAA,KAGpEA,MAAAA,EAHwC,gCAAA","file":"MOA3PLKL.js","sourcesContent":["import { z } from 'zod/v4';\n\nimport type {\n FunctionPointer,\n UnderlyingMethodOfFunctionPointer,\n} from '@layerzerolabs/function-pointer';\n\ntype IsPromise<T> =\n T extends z.ZodOptional<infer I>\n ? IsPromise<I>\n : T extends z.ZodDefault<infer I>\n ? IsPromise<I>\n : T extends z.ZodNullable<infer I>\n ? IsPromise<I>\n : T extends z.ZodPromise<any>\n ? true\n : false;\n\nexport type InferredArray<T extends z.ZodType[], Output extends any[] = []> = T extends []\n ? Output\n : T extends [infer Head, ...infer Tail extends z.ZodType[]]\n ? InferredArray<Tail, [...Output, z.infer<Head>]>\n : never;\n\nconst functionSchemaTag = Symbol('__FUNCTION_SCHEMA_TAG');\n\n//this essentially replicates the functionality of z.function in zod v3\nexport const functionSchema = <Input extends z.ZodTuple, Output extends z.ZodType>({\n input,\n output,\n}: {\n input: Input;\n output: Output;\n}) => {\n const obj = z.object({\n input,\n output,\n });\n Object.defineProperty(obj, functionSchemaTag, { value: true, writable: false });\n //we don't expect the function to actually be an object with an input field and an output field\n //so we override the parse function. we can't actually parse functions since input and output\n //types are lost at runtime, but we can check the runtime type of the object\n obj.parse = (i) => {\n if (typeof i !== 'function') {\n throw new Error(`${i} is not a function`);\n }\n //the return type here just has to match the inference of z.object,\n //the actual inference of the schema will be the z.ZodType custom\n return i as any;\n };\n return obj as unknown as z.ZodType<\n (\n ...args: z.infer<Input>\n //z.ZodPromise<T> infers as T, not Promise<T>\n ) => IsPromise<Output> extends true ? Promise<z.infer<Output>> : z.infer<Output>\n >;\n};\n\nexport const schemaIsFunctionSchema = (\n schema: z.ZodType,\n): schema is ReturnType<typeof functionSchema> => {\n return Object.hasOwn(schema, functionSchemaTag);\n};\n\nexport const customSchema = <T>(validate?: (data: any) => T) =>\n z.custom<T>(validate) as z.ZodType<T>;\n\nexport const createFunctionPointerSchema = <T extends FunctionPointer = FunctionPointer>() =>\n z.object({\n // FIXME this can be a real schema\n pointer: customSchema<T>(),\n });\n\nexport const createFunctionPointerWithArgsSchema = <\n T extends FunctionPointer = FunctionPointer,\n>() =>\n z.object({\n pointer: createFunctionPointerSchema<T>().shape.pointer,\n args: customSchema<Parameters<UnderlyingMethodOfFunctionPointer<T>>>(),\n });\n\nexport type ConstrainedGenericFunctionPointer<_ReturnType extends Promise<any>> = FunctionPointer<\n ReturnType<<T extends (...args: any[]) => _ReturnType>() => T>\n>;\n\n// This type doesn't work correctly\nexport const createExtendableFunctionPointerWithCurriedArgsSchema = <\n _BaseArgs extends any[],\n _ReturnType extends Promise<any>,\n>() =>\n z.object({\n pointer: createFunctionPointerSchema<\n // FIXME type args correctly\n ConstrainedGenericFunctionPointer<_ReturnType>\n >().shape.pointer,\n args: z.array(z.any()),\n });\n\nexport const bindFunctionPointerArgs = <T extends FunctionPointer>(params: {\n pointer: T;\n args: Parameters<UnderlyingMethodOfFunctionPointer<T>>;\n}) => params;\n\nexport const bindPartialFunctionPointerArgs = <T extends FunctionPointer>(params: {\n pointer: T;\n args: Partial<Parameters<UnderlyingMethodOfFunctionPointer<T>>>;\n}) => params;\n\nexport type FunctionPointerWithArgs<T extends FunctionPointer> = {\n pointer: T;\n args: Parameters<UnderlyingMethodOfFunctionPointer<T>>;\n};\n\nexport type BuildZodObject<T extends object> = z.ZodObject<\n {\n [K in keyof T]: z.ZodType<T[K]>;\n },\n z.core.$strip\n>;\n"]}
|