@junobuild/schema 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@junobuild/schema",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "The type system and utilities for validation on Juno",
5
5
  "author": "David Dal Busco (https://daviddalbusco.com)",
6
6
  "license": "MIT",
package/utils/idl.d.ts ADDED
@@ -0,0 +1,37 @@
1
+ import * as z from 'zod';
2
+ export interface IdlParams {
3
+ schema: z.core.$ZodType;
4
+ value: unknown;
5
+ }
6
+ /**
7
+ * Recursively converts a JavaScript value to its Candid IDL representation,
8
+ * guided by a Zod schema.
9
+ *
10
+ * Discriminated unions are converted from `{ type: "active", owner: ... }` to
11
+ * `{ active: { owner: ... } }` to match the Candid variant shape.
12
+ * Optional and nullable fields are converted from `undefined` or `null` to `[]`,
13
+ * and present values are wrapped in `[value]`. Objects and arrays are processed
14
+ * recursively. Non-nullable primitives and unknown types are passed through as-is.
15
+ *
16
+ * @param {IdlParams} params - The schema and value to convert.
17
+ * @param {z.core.$ZodType} params.schema - The Zod schema describing the value's structure.
18
+ * @param {unknown} params.value - The JavaScript value to convert.
19
+ * @returns {unknown} The value in Candid IDL format.
20
+ */
21
+ export declare const schemaToIdl: ({ schema, value }: IdlParams) => unknown;
22
+ /**
23
+ * Recursively converts a Candid IDL value back to its JavaScript representation,
24
+ * guided by a Zod schema.
25
+ *
26
+ * Discriminated unions are converted from `{ active: { owner: ... } }` back to
27
+ * `{ type: "active", owner: ... }` to match the Zod discriminated union shape.
28
+ * Optional and nullable fields are converted from `[]` to `undefined` and from
29
+ * `[value]` to `value`. Objects and arrays are processed recursively.
30
+ * Non-nullable primitives and unknown types are passed through as-is.
31
+ *
32
+ * @param {IdlParams} params - The schema and value to convert.
33
+ * @param {z.core.$ZodType} params.schema - The Zod schema describing the value's structure.
34
+ * @param {unknown} params.value - The Candid IDL value to convert.
35
+ * @returns {unknown} The value in JavaScript representation.
36
+ */
37
+ export declare const schemaFromIdl: ({ schema, value }: IdlParams) => unknown;
package/utils.d.ts CHANGED
@@ -1 +1,2 @@
1
- export * from './utils/did';
1
+ export * from './utils/idl';
2
+ export * from './utils/nullable';
package/utils.js CHANGED
@@ -1,2 +1,2 @@
1
- import*as o from"zod";var a=({schema:n,value:r})=>n instanceof o.ZodOptional||n instanceof o.ZodNullable?r==null?[]:[a({schema:n._zod.def.innerType,value:r})]:n instanceof o.ZodObject?Object.fromEntries(Object.entries(n._zod.def.shape).map(([e,t])=>[e,a({schema:t,value:r[e]})])):n instanceof o.ZodArray?r.map(e=>a({schema:n._zod.def.element,value:e})):r,i=({schema:n,value:r})=>{if(n instanceof o.ZodOptional||n instanceof o.ZodNullable){let e=r;return e.length===0?void 0:i({schema:n._zod.def.innerType,value:e[0]})}return n instanceof o.ZodObject?Object.fromEntries(Object.entries(n._zod.def.shape).map(([e,t])=>[e,i({schema:t,value:r[e]})])):n instanceof o.ZodArray?r.map(e=>i({schema:n._zod.def.element,value:e})):r};export{i as recursiveFromNullable,a as recursiveToNullable};
1
+ import*as r from"zod";var u=({schema:n,value:o})=>{if(n instanceof r.ZodDiscriminatedUnion){let{discriminator:e}=n._zod.def,t=o,i=t[e];if(typeof i!="string")throw new Error(`Expected discriminator field "${e}" to be a string`);let{[e]:a,...s}=t,c=n._zod.def.options.find(f=>f instanceof r.ZodObject&&f._zod.def.shape[e]instanceof r.ZodLiteral&&f._zod.def.shape[e]._zod.def.values.includes(i));return{[i]:c!==void 0?u({schema:c,value:s}):s}}return n instanceof r.ZodOptional||n instanceof r.ZodNullable?o==null?[]:[u({schema:n._zod.def.innerType,value:o})]:n instanceof r.ZodObject?Object.fromEntries(Object.entries(n._zod.def.shape).map(([e,t])=>[e,u({schema:t,value:o[e]})])):n instanceof r.ZodArray?o.map(e=>u({schema:n._zod.def.element,value:e})):o},z=({schema:n,value:o})=>{if(n instanceof r.ZodDiscriminatedUnion){let{discriminator:e}=n._zod.def,t=o,i=Object.keys(t);if(i.length!==1)throw new Error(`Expected exactly one key in variant object, got: ${i.join(", ")}`);let[a]=i,s=t[a];if(typeof s!="object"||s===null)throw new Error(`Expected variant value for "${a}" to be an object`);let c=n._zod.def.options.find(l=>l instanceof r.ZodObject&&l._zod.def.shape[e]instanceof r.ZodLiteral&&l._zod.def.shape[e]._zod.def.values.includes(a));return c!==void 0?z({schema:c,value:{[e]:a,...s}}):{[e]:a,...s}}if(n instanceof r.ZodOptional||n instanceof r.ZodNullable){let e=o;return e.length===0?void 0:z({schema:n._zod.def.innerType,value:e[0]})}return n instanceof r.ZodObject?Object.fromEntries(Object.entries(n._zod.def.shape).map(([e,t])=>[e,z({schema:t,value:o[e]})])):n instanceof r.ZodArray?o.map(e=>z({schema:n._zod.def.element,value:e})):o};import*as d from"zod";var p=({schema:n,value:o})=>n instanceof d.ZodOptional||n instanceof d.ZodNullable?o==null?[]:[p({schema:n._zod.def.innerType,value:o})]:n instanceof d.ZodObject?Object.fromEntries(Object.entries(n._zod.def.shape).map(([e,t])=>[e,p({schema:t,value:o[e]})])):n instanceof d.ZodArray?o.map(e=>p({schema:n._zod.def.element,value:e})):o,b=({schema:n,value:o})=>{if(n instanceof d.ZodOptional||n instanceof d.ZodNullable){let e=o;return e.length===0?void 0:b({schema:n._zod.def.innerType,value:e[0]})}return n instanceof d.ZodObject?Object.fromEntries(Object.entries(n._zod.def.shape).map(([e,t])=>[e,b({schema:t,value:o[e]})])):n instanceof d.ZodArray?o.map(e=>b({schema:n._zod.def.element,value:e})):o};export{b as recursiveFromNullable,p as recursiveToNullable,z as schemaFromIdl,u as schemaToIdl};
2
2
  //# sourceMappingURL=utils.js.map
package/utils.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["src/utils/did.ts"],
4
- "sourcesContent": ["import * as z from 'zod';\n\nexport interface NullableParams {\n schema: z.core.$ZodType;\n value: unknown;\n}\n\n/**\n * Recursively converts a JavaScript value to its Candid nullable representation,\n * guided by a Zod schema.\n *\n * Optional and nullable fields are converted from `undefined` or `null` to `[]`,\n * and present values are wrapped in `[value]`. Objects and arrays are processed\n * recursively. Non-nullable primitives and unknown types are passed through as-is.\n *\n * @param {NullableParams} params - The schema and value to convert.\n * @param {z.core.$ZodType} params.schema - The Zod schema describing the value's structure.\n * @param {unknown} params.value - The JavaScript value to convert.\n * @returns {unknown} The value in Candid nullable format.\n *\n */\nexport const recursiveToNullable = ({schema, value}: NullableParams): unknown => {\n if (schema instanceof z.ZodOptional || schema instanceof z.ZodNullable) {\n return value === undefined || value === null\n ? []\n : [recursiveToNullable({schema: schema._zod.def.innerType, value})];\n }\n\n if (schema instanceof z.ZodObject) {\n return Object.fromEntries(\n Object.entries(schema._zod.def.shape).map(([k, t]) => [\n k,\n recursiveToNullable({\n schema: t as z.core.$ZodType,\n value: (value as Record<string, unknown>)[k]\n })\n ])\n );\n }\n\n if (schema instanceof z.ZodArray) {\n return (value as unknown[]).map((value) =>\n recursiveToNullable({schema: schema._zod.def.element, value})\n );\n }\n\n return value;\n};\n\n/**\n * Recursively converts a Candid nullable value back to its JavaScript representation,\n * guided by a Zod schema.\n *\n * Optional and nullable fields are converted from `[]` to `undefined` and from\n * `[value]` to `value`. Objects and arrays are processed recursively. Non-nullable\n * primitives and unknown types are passed through as-is.\n *\n * @param {NullableParams} params - The schema and value to convert.\n * @param {z.core.$ZodType} params.schema - The Zod schema describing the value's structure.\n * @param {unknown} params.value - The Candid nullable value to convert.\n * @returns {unknown} The value in JavaScript representation.\n *\n */\nexport const recursiveFromNullable = ({schema, value}: NullableParams): unknown => {\n if (schema instanceof z.ZodOptional || schema instanceof z.ZodNullable) {\n const arr = value as [] | [unknown];\n return arr.length === 0\n ? undefined\n : recursiveFromNullable({\n schema: schema._zod.def.innerType,\n value: arr[0]\n });\n }\n\n if (schema instanceof z.ZodObject) {\n return Object.fromEntries(\n Object.entries(schema._zod.def.shape).map(([k, t]) => [\n k,\n recursiveFromNullable({\n schema: t as z.core.$ZodType,\n value: (value as Record<string, unknown>)[k]\n })\n ])\n );\n }\n\n if (schema instanceof z.ZodArray) {\n return (value as unknown[]).map((value) =>\n recursiveFromNullable({\n schema: schema._zod.def.element,\n value\n })\n );\n }\n\n return value;\n};\n"],
5
- "mappings": "AAAA,UAAYA,MAAO,MAqBZ,IAAMC,EAAsB,CAAC,CAAC,OAAAC,EAAQ,MAAAC,CAAK,IAC5CD,aAAoB,eAAeA,aAAoB,cAC3BC,GAAU,KACpC,CAAC,EACD,CAACF,EAAoB,CAAC,OAAQC,EAAO,KAAK,IAAI,UAAW,MAAAC,CAAK,CAAC,CAAC,EAGlED,aAAoB,YACf,OAAO,YACZ,OAAO,QAAQA,EAAO,KAAK,IAAI,KAAK,EAAE,IAAI,CAAC,CAACE,EAAG,CAAC,IAAM,CACpDA,EACAH,EAAoB,CAClB,OAAQ,EACR,MAAQE,EAAkCC,CAAC,CAC7C,CAAC,CACH,CAAC,CACH,EAGEF,aAAoB,WACdC,EAAoB,IAAKA,GAC/BF,EAAoB,CAAC,OAAQC,EAAO,KAAK,IAAI,QAAS,MAAAC,CAAK,CAAC,CAC9D,EAGKA,EAiBIE,EAAwB,CAAC,CAAC,OAAAH,EAAQ,MAAAC,CAAK,IAA+B,CACjF,GAAID,aAAoB,eAAeA,aAAoB,cAAa,CACtE,IAAMI,EAAMH,EACZ,OAAOG,EAAI,SAAW,EAClB,OACAD,EAAsB,CACpB,OAAQH,EAAO,KAAK,IAAI,UACxB,MAAOI,EAAI,CAAC,CACd,CAAC,CACP,CAEA,OAAIJ,aAAoB,YACf,OAAO,YACZ,OAAO,QAAQA,EAAO,KAAK,IAAI,KAAK,EAAE,IAAI,CAAC,CAACE,EAAG,CAAC,IAAM,CACpDA,EACAC,EAAsB,CACpB,OAAQ,EACR,MAAQF,EAAkCC,CAAC,CAC7C,CAAC,CACH,CAAC,CACH,EAGEF,aAAoB,WACdC,EAAoB,IAAKA,GAC/BE,EAAsB,CACpB,OAAQH,EAAO,KAAK,IAAI,QACxB,MAAAC,CACF,CAAC,CACH,EAGKA,CACT",
6
- "names": ["z", "recursiveToNullable", "schema", "value", "k", "recursiveFromNullable", "arr"]
3
+ "sources": ["src/utils/idl.ts", "src/utils/nullable.ts"],
4
+ "sourcesContent": ["import * as z from 'zod';\n\nexport interface IdlParams {\n schema: z.core.$ZodType;\n value: unknown;\n}\n\n/**\n * Recursively converts a JavaScript value to its Candid IDL representation,\n * guided by a Zod schema.\n *\n * Discriminated unions are converted from `{ type: \"active\", owner: ... }` to\n * `{ active: { owner: ... } }` to match the Candid variant shape.\n * Optional and nullable fields are converted from `undefined` or `null` to `[]`,\n * and present values are wrapped in `[value]`. Objects and arrays are processed\n * recursively. Non-nullable primitives and unknown types are passed through as-is.\n *\n * @param {IdlParams} params - The schema and value to convert.\n * @param {z.core.$ZodType} params.schema - The Zod schema describing the value's structure.\n * @param {unknown} params.value - The JavaScript value to convert.\n * @returns {unknown} The value in Candid IDL format.\n */\nexport const schemaToIdl = ({schema, value}: IdlParams): unknown => {\n if (schema instanceof z.ZodDiscriminatedUnion) {\n const {discriminator} = schema._zod.def;\n const obj = value as Record<string, unknown>;\n const tag = obj[discriminator];\n\n if (typeof tag !== 'string') {\n throw new Error(`Expected discriminator field \"${discriminator}\" to be a string`);\n }\n\n const {[discriminator]: _, ...rest} = obj;\n\n const variantSchema = schema._zod.def.options.find(\n (o: z.core.$ZodType) =>\n o instanceof z.ZodObject &&\n o._zod.def.shape[discriminator] instanceof z.ZodLiteral &&\n o._zod.def.shape[discriminator]._zod.def.values.includes(tag)\n );\n\n return {\n [tag]: variantSchema !== undefined ? schemaToIdl({schema: variantSchema, value: rest}) : rest\n };\n }\n\n if (schema instanceof z.ZodOptional || schema instanceof z.ZodNullable) {\n return value === undefined || value === null\n ? []\n : [schemaToIdl({schema: schema._zod.def.innerType, value})];\n }\n\n if (schema instanceof z.ZodObject) {\n return Object.fromEntries(\n Object.entries(schema._zod.def.shape).map(([k, t]) => [\n k,\n schemaToIdl({schema: t as z.core.$ZodType, value: (value as Record<string, unknown>)[k]})\n ])\n );\n }\n\n if (schema instanceof z.ZodArray) {\n return (value as unknown[]).map((v) =>\n schemaToIdl({schema: schema._zod.def.element, value: v})\n );\n }\n\n return value;\n};\n\n/**\n * Recursively converts a Candid IDL value back to its JavaScript representation,\n * guided by a Zod schema.\n *\n * Discriminated unions are converted from `{ active: { owner: ... } }` back to\n * `{ type: \"active\", owner: ... }` to match the Zod discriminated union shape.\n * Optional and nullable fields are converted from `[]` to `undefined` and from\n * `[value]` to `value`. Objects and arrays are processed recursively.\n * Non-nullable primitives and unknown types are passed through as-is.\n *\n * @param {IdlParams} params - The schema and value to convert.\n * @param {z.core.$ZodType} params.schema - The Zod schema describing the value's structure.\n * @param {unknown} params.value - The Candid IDL value to convert.\n * @returns {unknown} The value in JavaScript representation.\n */\nexport const schemaFromIdl = ({schema, value}: IdlParams): unknown => {\n if (schema instanceof z.ZodDiscriminatedUnion) {\n const {discriminator} = schema._zod.def;\n const obj = value as Record<string, unknown>;\n const keys = Object.keys(obj);\n\n if (keys.length !== 1) {\n throw new Error(`Expected exactly one key in variant object, got: ${keys.join(', ')}`);\n }\n\n const [tag] = keys;\n const inner = obj[tag];\n\n if (typeof inner !== 'object' || inner === null) {\n throw new Error(`Expected variant value for \"${tag}\" to be an object`);\n }\n\n const variantSchema = schema._zod.def.options.find(\n (o: z.core.$ZodType) =>\n o instanceof z.ZodObject &&\n o._zod.def.shape[discriminator] instanceof z.ZodLiteral &&\n o._zod.def.shape[discriminator]._zod.def.values.includes(tag)\n );\n\n const reconstructed =\n variantSchema !== undefined\n ? (schemaFromIdl({\n schema: variantSchema,\n value: {[discriminator]: tag, ...(inner as Record<string, unknown>)}\n }) as Record<string, unknown>)\n : {[discriminator]: tag, ...(inner as Record<string, unknown>)};\n\n return reconstructed;\n }\n\n if (schema instanceof z.ZodOptional || schema instanceof z.ZodNullable) {\n const arr = value as [] | [unknown];\n return arr.length === 0\n ? undefined\n : schemaFromIdl({schema: schema._zod.def.innerType, value: arr[0]});\n }\n\n if (schema instanceof z.ZodObject) {\n return Object.fromEntries(\n Object.entries(schema._zod.def.shape).map(([k, t]) => [\n k,\n schemaFromIdl({schema: t as z.core.$ZodType, value: (value as Record<string, unknown>)[k]})\n ])\n );\n }\n\n if (schema instanceof z.ZodArray) {\n return (value as unknown[]).map((v) =>\n schemaFromIdl({schema: schema._zod.def.element, value: v})\n );\n }\n\n return value;\n};\n", "import * as z from 'zod';\n\nexport interface NullableParams {\n schema: z.core.$ZodType;\n value: unknown;\n}\n\n/**\n * Recursively converts a JavaScript value to its Candid nullable representation,\n * guided by a Zod schema.\n *\n * Optional and nullable fields are converted from `undefined` or `null` to `[]`,\n * and present values are wrapped in `[value]`. Objects and arrays are processed\n * recursively. Non-nullable primitives and unknown types are passed through as-is.\n *\n * @param {NullableParams} params - The schema and value to convert.\n * @param {z.core.$ZodType} params.schema - The Zod schema describing the value's structure.\n * @param {unknown} params.value - The JavaScript value to convert.\n * @returns {unknown} The value in Candid nullable format.\n *\n */\nexport const recursiveToNullable = ({schema, value}: NullableParams): unknown => {\n if (schema instanceof z.ZodOptional || schema instanceof z.ZodNullable) {\n return value === undefined || value === null\n ? []\n : [recursiveToNullable({schema: schema._zod.def.innerType, value})];\n }\n\n if (schema instanceof z.ZodObject) {\n return Object.fromEntries(\n Object.entries(schema._zod.def.shape).map(([k, t]) => [\n k,\n recursiveToNullable({\n schema: t as z.core.$ZodType,\n value: (value as Record<string, unknown>)[k]\n })\n ])\n );\n }\n\n if (schema instanceof z.ZodArray) {\n return (value as unknown[]).map((value) =>\n recursiveToNullable({schema: schema._zod.def.element, value})\n );\n }\n\n return value;\n};\n\n/**\n * Recursively converts a Candid nullable value back to its JavaScript representation,\n * guided by a Zod schema.\n *\n * Optional and nullable fields are converted from `[]` to `undefined` and from\n * `[value]` to `value`. Objects and arrays are processed recursively. Non-nullable\n * primitives and unknown types are passed through as-is.\n *\n * @param {NullableParams} params - The schema and value to convert.\n * @param {z.core.$ZodType} params.schema - The Zod schema describing the value's structure.\n * @param {unknown} params.value - The Candid nullable value to convert.\n * @returns {unknown} The value in JavaScript representation.\n *\n */\nexport const recursiveFromNullable = ({schema, value}: NullableParams): unknown => {\n if (schema instanceof z.ZodOptional || schema instanceof z.ZodNullable) {\n const arr = value as [] | [unknown];\n return arr.length === 0\n ? undefined\n : recursiveFromNullable({\n schema: schema._zod.def.innerType,\n value: arr[0]\n });\n }\n\n if (schema instanceof z.ZodObject) {\n return Object.fromEntries(\n Object.entries(schema._zod.def.shape).map(([k, t]) => [\n k,\n recursiveFromNullable({\n schema: t as z.core.$ZodType,\n value: (value as Record<string, unknown>)[k]\n })\n ])\n );\n }\n\n if (schema instanceof z.ZodArray) {\n return (value as unknown[]).map((value) =>\n recursiveFromNullable({\n schema: schema._zod.def.element,\n value\n })\n );\n }\n\n return value;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["z", "schemaToIdl", "schema", "value", "discriminator", "obj", "tag", "_", "rest", "variantSchema", "o", "k", "v", "schemaFromIdl", "keys", "inner", "arr", "z", "recursiveToNullable", "schema", "value", "k", "recursiveFromNullable", "arr"]
7
7
  }
package/utils.mjs CHANGED
@@ -1,4 +1,4 @@
1
1
  import { createRequire as topLevelCreateRequire } from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
- import*as o from"zod";var a=({schema:n,value:r})=>n instanceof o.ZodOptional||n instanceof o.ZodNullable?r==null?[]:[a({schema:n._zod.def.innerType,value:r})]:n instanceof o.ZodObject?Object.fromEntries(Object.entries(n._zod.def.shape).map(([e,t])=>[e,a({schema:t,value:r[e]})])):n instanceof o.ZodArray?r.map(e=>a({schema:n._zod.def.element,value:e})):r,i=({schema:n,value:r})=>{if(n instanceof o.ZodOptional||n instanceof o.ZodNullable){let e=r;return e.length===0?void 0:i({schema:n._zod.def.innerType,value:e[0]})}return n instanceof o.ZodObject?Object.fromEntries(Object.entries(n._zod.def.shape).map(([e,t])=>[e,i({schema:t,value:r[e]})])):n instanceof o.ZodArray?r.map(e=>i({schema:n._zod.def.element,value:e})):r};export{i as recursiveFromNullable,a as recursiveToNullable};
3
+ import*as r from"zod";var u=({schema:n,value:o})=>{if(n instanceof r.ZodDiscriminatedUnion){let{discriminator:e}=n._zod.def,t=o,i=t[e];if(typeof i!="string")throw new Error(`Expected discriminator field "${e}" to be a string`);let{[e]:a,...s}=t,c=n._zod.def.options.find(f=>f instanceof r.ZodObject&&f._zod.def.shape[e]instanceof r.ZodLiteral&&f._zod.def.shape[e]._zod.def.values.includes(i));return{[i]:c!==void 0?u({schema:c,value:s}):s}}return n instanceof r.ZodOptional||n instanceof r.ZodNullable?o==null?[]:[u({schema:n._zod.def.innerType,value:o})]:n instanceof r.ZodObject?Object.fromEntries(Object.entries(n._zod.def.shape).map(([e,t])=>[e,u({schema:t,value:o[e]})])):n instanceof r.ZodArray?o.map(e=>u({schema:n._zod.def.element,value:e})):o},z=({schema:n,value:o})=>{if(n instanceof r.ZodDiscriminatedUnion){let{discriminator:e}=n._zod.def,t=o,i=Object.keys(t);if(i.length!==1)throw new Error(`Expected exactly one key in variant object, got: ${i.join(", ")}`);let[a]=i,s=t[a];if(typeof s!="object"||s===null)throw new Error(`Expected variant value for "${a}" to be an object`);let c=n._zod.def.options.find(l=>l instanceof r.ZodObject&&l._zod.def.shape[e]instanceof r.ZodLiteral&&l._zod.def.shape[e]._zod.def.values.includes(a));return c!==void 0?z({schema:c,value:{[e]:a,...s}}):{[e]:a,...s}}if(n instanceof r.ZodOptional||n instanceof r.ZodNullable){let e=o;return e.length===0?void 0:z({schema:n._zod.def.innerType,value:e[0]})}return n instanceof r.ZodObject?Object.fromEntries(Object.entries(n._zod.def.shape).map(([e,t])=>[e,z({schema:t,value:o[e]})])):n instanceof r.ZodArray?o.map(e=>z({schema:n._zod.def.element,value:e})):o};import*as d from"zod";var p=({schema:n,value:o})=>n instanceof d.ZodOptional||n instanceof d.ZodNullable?o==null?[]:[p({schema:n._zod.def.innerType,value:o})]:n instanceof d.ZodObject?Object.fromEntries(Object.entries(n._zod.def.shape).map(([e,t])=>[e,p({schema:t,value:o[e]})])):n instanceof d.ZodArray?o.map(e=>p({schema:n._zod.def.element,value:e})):o,b=({schema:n,value:o})=>{if(n instanceof d.ZodOptional||n instanceof d.ZodNullable){let e=o;return e.length===0?void 0:b({schema:n._zod.def.innerType,value:e[0]})}return n instanceof d.ZodObject?Object.fromEntries(Object.entries(n._zod.def.shape).map(([e,t])=>[e,b({schema:t,value:o[e]})])):n instanceof d.ZodArray?o.map(e=>b({schema:n._zod.def.element,value:e})):o};export{b as recursiveFromNullable,p as recursiveToNullable,z as schemaFromIdl,u as schemaToIdl};
4
4
  //# sourceMappingURL=utils.mjs.map
package/utils.mjs.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["src/utils/did.ts"],
4
- "sourcesContent": ["import * as z from 'zod';\n\nexport interface NullableParams {\n schema: z.core.$ZodType;\n value: unknown;\n}\n\n/**\n * Recursively converts a JavaScript value to its Candid nullable representation,\n * guided by a Zod schema.\n *\n * Optional and nullable fields are converted from `undefined` or `null` to `[]`,\n * and present values are wrapped in `[value]`. Objects and arrays are processed\n * recursively. Non-nullable primitives and unknown types are passed through as-is.\n *\n * @param {NullableParams} params - The schema and value to convert.\n * @param {z.core.$ZodType} params.schema - The Zod schema describing the value's structure.\n * @param {unknown} params.value - The JavaScript value to convert.\n * @returns {unknown} The value in Candid nullable format.\n *\n */\nexport const recursiveToNullable = ({schema, value}: NullableParams): unknown => {\n if (schema instanceof z.ZodOptional || schema instanceof z.ZodNullable) {\n return value === undefined || value === null\n ? []\n : [recursiveToNullable({schema: schema._zod.def.innerType, value})];\n }\n\n if (schema instanceof z.ZodObject) {\n return Object.fromEntries(\n Object.entries(schema._zod.def.shape).map(([k, t]) => [\n k,\n recursiveToNullable({\n schema: t as z.core.$ZodType,\n value: (value as Record<string, unknown>)[k]\n })\n ])\n );\n }\n\n if (schema instanceof z.ZodArray) {\n return (value as unknown[]).map((value) =>\n recursiveToNullable({schema: schema._zod.def.element, value})\n );\n }\n\n return value;\n};\n\n/**\n * Recursively converts a Candid nullable value back to its JavaScript representation,\n * guided by a Zod schema.\n *\n * Optional and nullable fields are converted from `[]` to `undefined` and from\n * `[value]` to `value`. Objects and arrays are processed recursively. Non-nullable\n * primitives and unknown types are passed through as-is.\n *\n * @param {NullableParams} params - The schema and value to convert.\n * @param {z.core.$ZodType} params.schema - The Zod schema describing the value's structure.\n * @param {unknown} params.value - The Candid nullable value to convert.\n * @returns {unknown} The value in JavaScript representation.\n *\n */\nexport const recursiveFromNullable = ({schema, value}: NullableParams): unknown => {\n if (schema instanceof z.ZodOptional || schema instanceof z.ZodNullable) {\n const arr = value as [] | [unknown];\n return arr.length === 0\n ? undefined\n : recursiveFromNullable({\n schema: schema._zod.def.innerType,\n value: arr[0]\n });\n }\n\n if (schema instanceof z.ZodObject) {\n return Object.fromEntries(\n Object.entries(schema._zod.def.shape).map(([k, t]) => [\n k,\n recursiveFromNullable({\n schema: t as z.core.$ZodType,\n value: (value as Record<string, unknown>)[k]\n })\n ])\n );\n }\n\n if (schema instanceof z.ZodArray) {\n return (value as unknown[]).map((value) =>\n recursiveFromNullable({\n schema: schema._zod.def.element,\n value\n })\n );\n }\n\n return value;\n};\n"],
5
- "mappings": ";;AAAA,UAAYA,MAAO,MAqBZ,IAAMC,EAAsB,CAAC,CAAC,OAAAC,EAAQ,MAAAC,CAAK,IAC5CD,aAAoB,eAAeA,aAAoB,cAC3BC,GAAU,KACpC,CAAC,EACD,CAACF,EAAoB,CAAC,OAAQC,EAAO,KAAK,IAAI,UAAW,MAAAC,CAAK,CAAC,CAAC,EAGlED,aAAoB,YACf,OAAO,YACZ,OAAO,QAAQA,EAAO,KAAK,IAAI,KAAK,EAAE,IAAI,CAAC,CAACE,EAAG,CAAC,IAAM,CACpDA,EACAH,EAAoB,CAClB,OAAQ,EACR,MAAQE,EAAkCC,CAAC,CAC7C,CAAC,CACH,CAAC,CACH,EAGEF,aAAoB,WACdC,EAAoB,IAAKA,GAC/BF,EAAoB,CAAC,OAAQC,EAAO,KAAK,IAAI,QAAS,MAAAC,CAAK,CAAC,CAC9D,EAGKA,EAiBIE,EAAwB,CAAC,CAAC,OAAAH,EAAQ,MAAAC,CAAK,IAA+B,CACjF,GAAID,aAAoB,eAAeA,aAAoB,cAAa,CACtE,IAAMI,EAAMH,EACZ,OAAOG,EAAI,SAAW,EAClB,OACAD,EAAsB,CACpB,OAAQH,EAAO,KAAK,IAAI,UACxB,MAAOI,EAAI,CAAC,CACd,CAAC,CACP,CAEA,OAAIJ,aAAoB,YACf,OAAO,YACZ,OAAO,QAAQA,EAAO,KAAK,IAAI,KAAK,EAAE,IAAI,CAAC,CAACE,EAAG,CAAC,IAAM,CACpDA,EACAC,EAAsB,CACpB,OAAQ,EACR,MAAQF,EAAkCC,CAAC,CAC7C,CAAC,CACH,CAAC,CACH,EAGEF,aAAoB,WACdC,EAAoB,IAAKA,GAC/BE,EAAsB,CACpB,OAAQH,EAAO,KAAK,IAAI,QACxB,MAAAC,CACF,CAAC,CACH,EAGKA,CACT",
6
- "names": ["z", "recursiveToNullable", "schema", "value", "k", "recursiveFromNullable", "arr"]
3
+ "sources": ["src/utils/idl.ts", "src/utils/nullable.ts"],
4
+ "sourcesContent": ["import * as z from 'zod';\n\nexport interface IdlParams {\n schema: z.core.$ZodType;\n value: unknown;\n}\n\n/**\n * Recursively converts a JavaScript value to its Candid IDL representation,\n * guided by a Zod schema.\n *\n * Discriminated unions are converted from `{ type: \"active\", owner: ... }` to\n * `{ active: { owner: ... } }` to match the Candid variant shape.\n * Optional and nullable fields are converted from `undefined` or `null` to `[]`,\n * and present values are wrapped in `[value]`. Objects and arrays are processed\n * recursively. Non-nullable primitives and unknown types are passed through as-is.\n *\n * @param {IdlParams} params - The schema and value to convert.\n * @param {z.core.$ZodType} params.schema - The Zod schema describing the value's structure.\n * @param {unknown} params.value - The JavaScript value to convert.\n * @returns {unknown} The value in Candid IDL format.\n */\nexport const schemaToIdl = ({schema, value}: IdlParams): unknown => {\n if (schema instanceof z.ZodDiscriminatedUnion) {\n const {discriminator} = schema._zod.def;\n const obj = value as Record<string, unknown>;\n const tag = obj[discriminator];\n\n if (typeof tag !== 'string') {\n throw new Error(`Expected discriminator field \"${discriminator}\" to be a string`);\n }\n\n const {[discriminator]: _, ...rest} = obj;\n\n const variantSchema = schema._zod.def.options.find(\n (o: z.core.$ZodType) =>\n o instanceof z.ZodObject &&\n o._zod.def.shape[discriminator] instanceof z.ZodLiteral &&\n o._zod.def.shape[discriminator]._zod.def.values.includes(tag)\n );\n\n return {\n [tag]: variantSchema !== undefined ? schemaToIdl({schema: variantSchema, value: rest}) : rest\n };\n }\n\n if (schema instanceof z.ZodOptional || schema instanceof z.ZodNullable) {\n return value === undefined || value === null\n ? []\n : [schemaToIdl({schema: schema._zod.def.innerType, value})];\n }\n\n if (schema instanceof z.ZodObject) {\n return Object.fromEntries(\n Object.entries(schema._zod.def.shape).map(([k, t]) => [\n k,\n schemaToIdl({schema: t as z.core.$ZodType, value: (value as Record<string, unknown>)[k]})\n ])\n );\n }\n\n if (schema instanceof z.ZodArray) {\n return (value as unknown[]).map((v) =>\n schemaToIdl({schema: schema._zod.def.element, value: v})\n );\n }\n\n return value;\n};\n\n/**\n * Recursively converts a Candid IDL value back to its JavaScript representation,\n * guided by a Zod schema.\n *\n * Discriminated unions are converted from `{ active: { owner: ... } }` back to\n * `{ type: \"active\", owner: ... }` to match the Zod discriminated union shape.\n * Optional and nullable fields are converted from `[]` to `undefined` and from\n * `[value]` to `value`. Objects and arrays are processed recursively.\n * Non-nullable primitives and unknown types are passed through as-is.\n *\n * @param {IdlParams} params - The schema and value to convert.\n * @param {z.core.$ZodType} params.schema - The Zod schema describing the value's structure.\n * @param {unknown} params.value - The Candid IDL value to convert.\n * @returns {unknown} The value in JavaScript representation.\n */\nexport const schemaFromIdl = ({schema, value}: IdlParams): unknown => {\n if (schema instanceof z.ZodDiscriminatedUnion) {\n const {discriminator} = schema._zod.def;\n const obj = value as Record<string, unknown>;\n const keys = Object.keys(obj);\n\n if (keys.length !== 1) {\n throw new Error(`Expected exactly one key in variant object, got: ${keys.join(', ')}`);\n }\n\n const [tag] = keys;\n const inner = obj[tag];\n\n if (typeof inner !== 'object' || inner === null) {\n throw new Error(`Expected variant value for \"${tag}\" to be an object`);\n }\n\n const variantSchema = schema._zod.def.options.find(\n (o: z.core.$ZodType) =>\n o instanceof z.ZodObject &&\n o._zod.def.shape[discriminator] instanceof z.ZodLiteral &&\n o._zod.def.shape[discriminator]._zod.def.values.includes(tag)\n );\n\n const reconstructed =\n variantSchema !== undefined\n ? (schemaFromIdl({\n schema: variantSchema,\n value: {[discriminator]: tag, ...(inner as Record<string, unknown>)}\n }) as Record<string, unknown>)\n : {[discriminator]: tag, ...(inner as Record<string, unknown>)};\n\n return reconstructed;\n }\n\n if (schema instanceof z.ZodOptional || schema instanceof z.ZodNullable) {\n const arr = value as [] | [unknown];\n return arr.length === 0\n ? undefined\n : schemaFromIdl({schema: schema._zod.def.innerType, value: arr[0]});\n }\n\n if (schema instanceof z.ZodObject) {\n return Object.fromEntries(\n Object.entries(schema._zod.def.shape).map(([k, t]) => [\n k,\n schemaFromIdl({schema: t as z.core.$ZodType, value: (value as Record<string, unknown>)[k]})\n ])\n );\n }\n\n if (schema instanceof z.ZodArray) {\n return (value as unknown[]).map((v) =>\n schemaFromIdl({schema: schema._zod.def.element, value: v})\n );\n }\n\n return value;\n};\n", "import * as z from 'zod';\n\nexport interface NullableParams {\n schema: z.core.$ZodType;\n value: unknown;\n}\n\n/**\n * Recursively converts a JavaScript value to its Candid nullable representation,\n * guided by a Zod schema.\n *\n * Optional and nullable fields are converted from `undefined` or `null` to `[]`,\n * and present values are wrapped in `[value]`. Objects and arrays are processed\n * recursively. Non-nullable primitives and unknown types are passed through as-is.\n *\n * @param {NullableParams} params - The schema and value to convert.\n * @param {z.core.$ZodType} params.schema - The Zod schema describing the value's structure.\n * @param {unknown} params.value - The JavaScript value to convert.\n * @returns {unknown} The value in Candid nullable format.\n *\n */\nexport const recursiveToNullable = ({schema, value}: NullableParams): unknown => {\n if (schema instanceof z.ZodOptional || schema instanceof z.ZodNullable) {\n return value === undefined || value === null\n ? []\n : [recursiveToNullable({schema: schema._zod.def.innerType, value})];\n }\n\n if (schema instanceof z.ZodObject) {\n return Object.fromEntries(\n Object.entries(schema._zod.def.shape).map(([k, t]) => [\n k,\n recursiveToNullable({\n schema: t as z.core.$ZodType,\n value: (value as Record<string, unknown>)[k]\n })\n ])\n );\n }\n\n if (schema instanceof z.ZodArray) {\n return (value as unknown[]).map((value) =>\n recursiveToNullable({schema: schema._zod.def.element, value})\n );\n }\n\n return value;\n};\n\n/**\n * Recursively converts a Candid nullable value back to its JavaScript representation,\n * guided by a Zod schema.\n *\n * Optional and nullable fields are converted from `[]` to `undefined` and from\n * `[value]` to `value`. Objects and arrays are processed recursively. Non-nullable\n * primitives and unknown types are passed through as-is.\n *\n * @param {NullableParams} params - The schema and value to convert.\n * @param {z.core.$ZodType} params.schema - The Zod schema describing the value's structure.\n * @param {unknown} params.value - The Candid nullable value to convert.\n * @returns {unknown} The value in JavaScript representation.\n *\n */\nexport const recursiveFromNullable = ({schema, value}: NullableParams): unknown => {\n if (schema instanceof z.ZodOptional || schema instanceof z.ZodNullable) {\n const arr = value as [] | [unknown];\n return arr.length === 0\n ? undefined\n : recursiveFromNullable({\n schema: schema._zod.def.innerType,\n value: arr[0]\n });\n }\n\n if (schema instanceof z.ZodObject) {\n return Object.fromEntries(\n Object.entries(schema._zod.def.shape).map(([k, t]) => [\n k,\n recursiveFromNullable({\n schema: t as z.core.$ZodType,\n value: (value as Record<string, unknown>)[k]\n })\n ])\n );\n }\n\n if (schema instanceof z.ZodArray) {\n return (value as unknown[]).map((value) =>\n recursiveFromNullable({\n schema: schema._zod.def.element,\n value\n })\n );\n }\n\n return value;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["z", "schemaToIdl", "schema", "value", "discriminator", "obj", "tag", "_", "rest", "variantSchema", "o", "k", "v", "schemaFromIdl", "keys", "inner", "arr", "z", "recursiveToNullable", "schema", "value", "k", "recursiveFromNullable", "arr"]
7
7
  }
File without changes