@aztec/foundation 0.0.1-commit.b2a5d0dd1 → 0.0.1-commit.b3d3157a

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.
Files changed (159) hide show
  1. package/dest/bigint-buffer/index.d.ts +1 -1
  2. package/dest/bigint-buffer/index.d.ts.map +1 -1
  3. package/dest/bigint-buffer/index.js +6 -1
  4. package/dest/branded-types/block_number.d.ts +3 -3
  5. package/dest/branded-types/block_number.d.ts.map +1 -1
  6. package/dest/branded-types/block_number.js +15 -4
  7. package/dest/branded-types/buffer32_hash.d.ts +22 -19
  8. package/dest/branded-types/buffer32_hash.d.ts.map +1 -1
  9. package/dest/branded-types/buffer32_hash.js +8 -15
  10. package/dest/branded-types/checkpoint_number.d.ts +6 -3
  11. package/dest/branded-types/checkpoint_number.d.ts.map +1 -1
  12. package/dest/branded-types/checkpoint_number.js +8 -0
  13. package/dest/branded-types/epoch.d.ts +2 -2
  14. package/dest/branded-types/epoch.d.ts.map +1 -1
  15. package/dest/branded-types/index.d.ts +2 -2
  16. package/dest/branded-types/index.d.ts.map +1 -1
  17. package/dest/branded-types/index.js +1 -1
  18. package/dest/branded-types/index_within_checkpoint.d.ts +2 -2
  19. package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -1
  20. package/dest/branded-types/slot.d.ts +2 -2
  21. package/dest/branded-types/slot.d.ts.map +1 -1
  22. package/dest/buffer/buffer32.js +3 -3
  23. package/dest/collection/array.d.ts +9 -1
  24. package/dest/collection/array.d.ts.map +1 -1
  25. package/dest/collection/array.js +18 -0
  26. package/dest/collection/index.d.ts +2 -1
  27. package/dest/collection/index.d.ts.map +1 -1
  28. package/dest/collection/index.js +1 -0
  29. package/dest/collection/lru_map.d.ts +41 -0
  30. package/dest/collection/lru_map.d.ts.map +1 -0
  31. package/dest/collection/lru_map.js +119 -0
  32. package/dest/committable/committable.js +1 -1
  33. package/dest/config/env_var.d.ts +2 -2
  34. package/dest/config/env_var.d.ts.map +1 -1
  35. package/dest/config/index.d.ts +1 -2
  36. package/dest/config/index.d.ts.map +1 -1
  37. package/dest/config/index.js +15 -21
  38. package/dest/config/network_config.d.ts +11 -55
  39. package/dest/config/network_config.d.ts.map +1 -1
  40. package/dest/config/network_name.d.ts +2 -2
  41. package/dest/config/network_name.d.ts.map +1 -1
  42. package/dest/config/network_name.js +1 -3
  43. package/dest/config/secret_value.d.ts +2 -2
  44. package/dest/config/secret_value.d.ts.map +1 -1
  45. package/dest/crypto/bls/bn254_keystore.d.ts +9 -167
  46. package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -1
  47. package/dest/crypto/schnorr/index.d.ts +8 -7
  48. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  49. package/dest/crypto/schnorr/index.js +6 -6
  50. package/dest/crypto/schnorr/signature.d.ts +9 -29
  51. package/dest/crypto/schnorr/signature.d.ts.map +1 -1
  52. package/dest/crypto/schnorr/signature.js +20 -36
  53. package/dest/curves/bls12/field.d.ts +3 -3
  54. package/dest/curves/bls12/field.d.ts.map +1 -1
  55. package/dest/curves/bls12/point.d.ts +2 -2
  56. package/dest/curves/bls12/point.d.ts.map +1 -1
  57. package/dest/curves/bn254/field.d.ts +7 -4
  58. package/dest/curves/bn254/field.d.ts.map +1 -1
  59. package/dest/curves/bn254/field.js +5 -4
  60. package/dest/curves/grumpkin/point.d.ts +15 -29
  61. package/dest/curves/grumpkin/point.d.ts.map +1 -1
  62. package/dest/curves/grumpkin/point.js +31 -48
  63. package/dest/eth-address/index.d.ts +2 -2
  64. package/dest/eth-address/index.d.ts.map +1 -1
  65. package/dest/eth-signature/eth_signature.d.ts +2 -2
  66. package/dest/eth-signature/eth_signature.d.ts.map +1 -1
  67. package/dest/fifo/fifo_frame_reader.d.ts +2 -2
  68. package/dest/fifo/fifo_frame_reader.d.ts.map +1 -1
  69. package/dest/fifo/fifo_frame_reader.js +21 -4
  70. package/dest/fifo_set/fifo_set.d.ts +15 -0
  71. package/dest/fifo_set/fifo_set.d.ts.map +1 -0
  72. package/dest/fifo_set/fifo_set.js +39 -0
  73. package/dest/fifo_set/index.d.ts +2 -0
  74. package/dest/fifo_set/index.d.ts.map +1 -0
  75. package/dest/fifo_set/index.js +1 -0
  76. package/dest/json-rpc/client/safe_json_rpc_client.d.ts +1 -1
  77. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  78. package/dest/json-rpc/client/safe_json_rpc_client.js +2 -2
  79. package/dest/json-rpc/fixtures/test_state.d.ts +4 -8
  80. package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
  81. package/dest/json-rpc/fixtures/test_state.js +57 -17
  82. package/dest/json-rpc/server/safe_json_rpc_server.d.ts +8 -3
  83. package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
  84. package/dest/json-rpc/server/safe_json_rpc_server.js +27 -13
  85. package/dest/noir/noir_package_config.d.ts +19 -104
  86. package/dest/noir/noir_package_config.d.ts.map +1 -1
  87. package/dest/noir/noir_package_config.js +1 -1
  88. package/dest/schemas/api.d.ts +11 -9
  89. package/dest/schemas/api.d.ts.map +1 -1
  90. package/dest/schemas/api.js +7 -1
  91. package/dest/schemas/parse.d.ts +4 -4
  92. package/dest/schemas/parse.d.ts.map +1 -1
  93. package/dest/schemas/parse.js +6 -5
  94. package/dest/schemas/schemas.d.ts +15 -15
  95. package/dest/schemas/types.d.ts +3 -3
  96. package/dest/schemas/types.d.ts.map +1 -1
  97. package/dest/schemas/utils.d.ts +7 -11
  98. package/dest/schemas/utils.d.ts.map +1 -1
  99. package/dest/schemas/utils.js +2 -18
  100. package/dest/serialize/buffer_sink.d.ts +134 -0
  101. package/dest/serialize/buffer_sink.d.ts.map +1 -0
  102. package/dest/serialize/buffer_sink.js +297 -0
  103. package/dest/serialize/index.d.ts +2 -1
  104. package/dest/serialize/index.d.ts.map +1 -1
  105. package/dest/serialize/index.js +1 -0
  106. package/dest/timer/index.d.ts +2 -2
  107. package/dest/timer/index.d.ts.map +1 -1
  108. package/dest/timer/index.js +1 -1
  109. package/dest/timer/timeout.d.ts +3 -1
  110. package/dest/timer/timeout.d.ts.map +1 -1
  111. package/dest/timer/timeout.js +26 -0
  112. package/dest/trees/membership_witness.d.ts +2 -2
  113. package/dest/trees/membership_witness.d.ts.map +1 -1
  114. package/dest/trees/sibling_path.d.ts +4 -3
  115. package/dest/trees/sibling_path.d.ts.map +1 -1
  116. package/dest/trees/sibling_path.js +9 -3
  117. package/dest/types/index.d.ts +23 -1
  118. package/dest/types/index.d.ts.map +1 -1
  119. package/dest/types/index.js +15 -0
  120. package/package.json +5 -4
  121. package/src/bigint-buffer/index.ts +6 -1
  122. package/src/branded-types/block_number.ts +20 -2
  123. package/src/branded-types/buffer32_hash.ts +28 -32
  124. package/src/branded-types/checkpoint_number.ts +11 -1
  125. package/src/branded-types/epoch.ts +1 -1
  126. package/src/branded-types/index.ts +1 -1
  127. package/src/branded-types/index_within_checkpoint.ts +1 -1
  128. package/src/branded-types/slot.ts +1 -1
  129. package/src/buffer/buffer32.ts +3 -3
  130. package/src/collection/array.ts +20 -0
  131. package/src/collection/index.ts +1 -0
  132. package/src/collection/lru_map.ts +143 -0
  133. package/src/committable/committable.ts +1 -1
  134. package/src/config/env_var.ts +16 -14
  135. package/src/config/index.ts +13 -20
  136. package/src/config/network_name.ts +2 -5
  137. package/src/config/secret_value.ts +1 -1
  138. package/src/crypto/schnorr/index.ts +9 -8
  139. package/src/crypto/schnorr/signature.ts +17 -46
  140. package/src/curves/bn254/field.ts +10 -3
  141. package/src/curves/grumpkin/point.ts +24 -44
  142. package/src/fifo/fifo_frame_reader.ts +17 -2
  143. package/src/fifo_set/fifo_set.ts +52 -0
  144. package/src/fifo_set/index.ts +1 -0
  145. package/src/json-rpc/client/safe_json_rpc_client.ts +2 -2
  146. package/src/json-rpc/fixtures/test_state.ts +10 -10
  147. package/src/json-rpc/server/safe_json_rpc_server.ts +31 -13
  148. package/src/noir/noir_package_config.ts +32 -20
  149. package/src/schemas/api.ts +21 -24
  150. package/src/schemas/parse.ts +9 -6
  151. package/src/schemas/schemas.ts +4 -4
  152. package/src/schemas/types.ts +2 -2
  153. package/src/schemas/utils.ts +4 -38
  154. package/src/serialize/buffer_sink.ts +350 -0
  155. package/src/serialize/index.ts +1 -0
  156. package/src/timer/index.ts +1 -1
  157. package/src/timer/timeout.ts +31 -0
  158. package/src/trees/sibling_path.ts +10 -4
  159. package/src/types/index.ts +47 -0
@@ -8,7 +8,7 @@ import { format, inspect } from 'util';
8
8
  import { ZodError } from 'zod';
9
9
  import { createLogger } from '../../log/index.js';
10
10
  import { promiseWithResolvers } from '../../promise/utils.js';
11
- import { parseWithOptionals, schemaHasMethod } from '../../schemas/index.js';
11
+ import { getSchemaParameters, parseWithOptionals, schemaHasMethod } from '../../schemas/index.js';
12
12
  import { jsonStringify } from '../convert.js';
13
13
  import { assert } from '../js_utils.js';
14
14
  const defaultServerConfig = {
@@ -20,16 +20,18 @@ export class SafeJsonRpcServer {
20
20
  proxy;
21
21
  healthCheck;
22
22
  extraMiddlewares;
23
+ diagnosticsMiddleware;
23
24
  log;
24
25
  /**
25
26
  * The HTTP server accepting remote requests.
26
27
  * This member field is initialized when the server is started.
27
28
  */ httpServer;
28
29
  config;
29
- constructor(/** The proxy object to delegate requests to */ proxy, config = {}, /** Health check function */ healthCheck = ()=>true, /** Additional middlewares */ extraMiddlewares = [], /** Logger */ log = createLogger('json-rpc:server')){
30
+ constructor(/** The proxy object to delegate requests to */ proxy, config = {}, /** Health check function */ healthCheck = ()=>true, /** Additional Koa middlewares */ extraMiddlewares = [], /** Additional per-request diagnostics middlewares */ diagnosticsMiddleware, /** Logger */ log = createLogger('json-rpc:server')){
30
31
  this.proxy = proxy;
31
32
  this.healthCheck = healthCheck;
32
33
  this.extraMiddlewares = extraMiddlewares;
34
+ this.diagnosticsMiddleware = diagnosticsMiddleware;
33
35
  this.log = log;
34
36
  this.config = {
35
37
  ...defaultServerConfig,
@@ -151,7 +153,7 @@ export class SafeJsonRpcServer {
151
153
  };
152
154
  return;
153
155
  }
154
- const resp = await this.processBatch(ctx.request.body);
156
+ const resp = await this.processBatch(ctx.request.body, ctx.request.headers);
155
157
  if (Array.isArray(resp)) {
156
158
  ctx.status = 200;
157
159
  ctx.body = resp;
@@ -160,7 +162,7 @@ export class SafeJsonRpcServer {
160
162
  ctx.body = resp;
161
163
  }
162
164
  } else {
163
- const resp = await this.processRequest(ctx.request.body);
165
+ const resp = await this.processRequest(ctx.request.body, ctx.request.headers);
164
166
  if ('error' in resp) {
165
167
  ctx.status = this.config.http200OnError ? 200 : 400;
166
168
  }
@@ -169,7 +171,7 @@ export class SafeJsonRpcServer {
169
171
  });
170
172
  return router;
171
173
  }
172
- async processBatch(requests) {
174
+ async processBatch(requests, headers = {}) {
173
175
  if (requests.length === 0) {
174
176
  return {
175
177
  jsonrpc: '2.0',
@@ -180,7 +182,7 @@ export class SafeJsonRpcServer {
180
182
  id: null
181
183
  };
182
184
  }
183
- const results = await Promise.allSettled(requests.map((req)=>this.processRequest(req)));
185
+ const results = await Promise.allSettled(requests.map((req)=>this.processRequest(req, headers)));
184
186
  return results.map((res)=>{
185
187
  if (res.status === 'fulfilled') {
186
188
  return res.value;
@@ -196,7 +198,7 @@ export class SafeJsonRpcServer {
196
198
  };
197
199
  });
198
200
  }
199
- async processRequest(request) {
201
+ async processRequest(request, headers = {}) {
200
202
  if (!request || typeof request !== 'object') {
201
203
  return {
202
204
  jsonrpc: '2.0',
@@ -230,7 +232,19 @@ export class SafeJsonRpcServer {
230
232
  };
231
233
  } else {
232
234
  try {
233
- const result = await this.proxy.call(method, params);
235
+ let result;
236
+ if (this.diagnosticsMiddleware) {
237
+ await this.diagnosticsMiddleware({
238
+ id: id ?? null,
239
+ method,
240
+ params,
241
+ headers
242
+ }, async ()=>{
243
+ result = await this.proxy.call(method, params);
244
+ });
245
+ } else {
246
+ result = await this.proxy.call(method, params);
247
+ }
234
248
  return {
235
249
  jsonrpc,
236
250
  id,
@@ -330,7 +344,7 @@ export class SafeJsonRpcServer {
330
344
  assert(schemaHasMethod(this.schema, methodName), `Method ${methodName} not found in schema`);
331
345
  const method = this.handler[methodName];
332
346
  assert(typeof method === 'function', `Method ${methodName} is not a function`);
333
- const args = await parseWithOptionals(jsonParams, this.schema[methodName].parameters());
347
+ const args = await parseWithOptionals(jsonParams, getSchemaParameters(this.schema[methodName]));
334
348
  const ret = await method.apply(this.handler, args);
335
349
  this.log.debug(format('response', methodName, ret));
336
350
  return ret;
@@ -389,15 +403,15 @@ function makeAggregateHealthcheck(namedHandlers, log) {
389
403
  * @param servers - List of handlers to be combined.
390
404
  * @returns A single JsonRpcServer with namespaced methods.
391
405
  */ export function createNamespacedSafeJsonRpcServer(handlers, options = {}) {
392
- const { middlewares, log } = options;
406
+ const { diagnostic, middlewares, log } = options;
393
407
  const proxy = new NamespacedSafeJsonProxy(handlers);
394
408
  const healthCheck = makeAggregateHealthcheck(handlers, log);
395
- return new SafeJsonRpcServer(proxy, options, healthCheck, middlewares, log);
409
+ return new SafeJsonRpcServer(proxy, options, healthCheck, middlewares, diagnostic, log);
396
410
  }
397
411
  export function createSafeJsonRpcServer(handler, schema, options = {}) {
398
- const { log, healthCheck, middlewares: extraMiddlewares } = options;
412
+ const { diagnostic, log, healthCheck, middlewares: extraMiddlewares } = options;
399
413
  const proxy = new SafeJsonProxy(handler, schema);
400
- return new SafeJsonRpcServer(proxy, options, healthCheck, extraMiddlewares, log);
414
+ return new SafeJsonRpcServer(proxy, options, healthCheck, extraMiddlewares, diagnostic, log);
401
415
  }
402
416
  /**
403
417
  * Creates a router for handling a plain status request that will return 200 status when running.
@@ -3,111 +3,10 @@ declare const noirGitDependencySchema: z.ZodObject<{
3
3
  git: z.ZodString;
4
4
  tag: z.ZodString;
5
5
  directory: z.ZodOptional<z.ZodString>;
6
- }, "strip", z.ZodTypeAny, {
7
- git: string;
8
- tag: string;
9
- directory?: string | undefined;
10
- }, {
11
- git: string;
12
- tag: string;
13
- directory?: string | undefined;
14
- }>;
6
+ }, z.core.$strip>;
15
7
  declare const noirLocalDependencySchema: z.ZodObject<{
16
8
  path: z.ZodString;
17
- }, "strip", z.ZodTypeAny, {
18
- path: string;
19
- }, {
20
- path: string;
21
- }>;
22
- declare const noirPackageConfigSchema: z.ZodObject<{
23
- package: z.ZodObject<{
24
- name: z.ZodDefault<z.ZodString>;
25
- type: z.ZodDefault<z.ZodEnum<["lib", "contract", "bin"]>>;
26
- entry: z.ZodOptional<z.ZodString>;
27
- description: z.ZodOptional<z.ZodString>;
28
- authors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
29
- compiler_version: z.ZodOptional<z.ZodString>;
30
- backend: z.ZodOptional<z.ZodString>;
31
- license: z.ZodOptional<z.ZodString>;
32
- }, "strip", z.ZodTypeAny, {
33
- name: string;
34
- type: "bin" | "contract" | "lib";
35
- entry?: string | undefined;
36
- description?: string | undefined;
37
- authors?: string[] | undefined;
38
- compiler_version?: string | undefined;
39
- backend?: string | undefined;
40
- license?: string | undefined;
41
- }, {
42
- name?: string | undefined;
43
- type?: "bin" | "contract" | "lib" | undefined;
44
- entry?: string | undefined;
45
- description?: string | undefined;
46
- authors?: string[] | undefined;
47
- compiler_version?: string | undefined;
48
- backend?: string | undefined;
49
- license?: string | undefined;
50
- }>;
51
- dependencies: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
52
- git: z.ZodString;
53
- tag: z.ZodString;
54
- directory: z.ZodOptional<z.ZodString>;
55
- }, "strip", z.ZodTypeAny, {
56
- git: string;
57
- tag: string;
58
- directory?: string | undefined;
59
- }, {
60
- git: string;
61
- tag: string;
62
- directory?: string | undefined;
63
- }>, z.ZodObject<{
64
- path: z.ZodString;
65
- }, "strip", z.ZodTypeAny, {
66
- path: string;
67
- }, {
68
- path: string;
69
- }>]>>>;
70
- }, "strip", z.ZodTypeAny, {
71
- package: {
72
- name: string;
73
- type: "bin" | "contract" | "lib";
74
- entry?: string | undefined;
75
- description?: string | undefined;
76
- authors?: string[] | undefined;
77
- compiler_version?: string | undefined;
78
- backend?: string | undefined;
79
- license?: string | undefined;
80
- };
81
- dependencies: Record<string, {
82
- git: string;
83
- tag: string;
84
- directory?: string | undefined;
85
- } | {
86
- path: string;
87
- }>;
88
- }, {
89
- package: {
90
- name?: string | undefined;
91
- type?: "bin" | "contract" | "lib" | undefined;
92
- entry?: string | undefined;
93
- description?: string | undefined;
94
- authors?: string[] | undefined;
95
- compiler_version?: string | undefined;
96
- backend?: string | undefined;
97
- license?: string | undefined;
98
- };
99
- dependencies?: Record<string, {
100
- git: string;
101
- tag: string;
102
- directory?: string | undefined;
103
- } | {
104
- path: string;
105
- }> | undefined;
106
- }>;
107
- /**
108
- * Noir package configuration.
109
- */
110
- export type NoirPackageConfig = z.infer<typeof noirPackageConfigSchema>;
9
+ }, z.core.$strip>;
111
10
  /**
112
11
  * A remote package dependency.
113
12
  */
@@ -120,10 +19,26 @@ export type NoirLocalDependencyConfig = z.infer<typeof noirLocalDependencySchema
120
19
  * A package dependency.
121
20
  */
122
21
  export type NoirDependencyConfig = NoirGitDependencyConfig | NoirLocalDependencyConfig;
22
+ /**
23
+ * Noir package configuration.
24
+ */
25
+ export type NoirPackageConfig = {
26
+ package: {
27
+ name: string;
28
+ type: 'lib' | 'contract' | 'bin';
29
+ entry?: string | undefined;
30
+ description?: string | undefined;
31
+ authors?: string[] | undefined;
32
+ compiler_version?: string | undefined;
33
+ backend?: string | undefined;
34
+ license?: string | undefined;
35
+ };
36
+ dependencies: Record<string, NoirDependencyConfig>;
37
+ };
123
38
  /**
124
39
  * Checks that an object is a package configuration.
125
40
  * @param config - Config to check
126
41
  */
127
42
  export declare function parseNoirPackageConfig(config: any): NoirPackageConfig;
128
43
  export {};
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9pcl9wYWNrYWdlX2NvbmZpZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25vaXIvbm9pcl9wYWNrYWdlX2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLFFBQUEsTUFBTSx1QkFBdUI7Ozs7Ozs7Ozs7OztFQUkzQixDQUFDO0FBRUgsUUFBQSxNQUFNLHlCQUF5Qjs7Ozs7O0VBRTdCLENBQUM7QUFFSCxRQUFBLE1BQU0sdUJBQXVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFhM0IsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyx1QkFBdUIsQ0FBQyxDQUFDO0FBRXhFOztHQUVHO0FBQ0gsTUFBTSxNQUFNLHVCQUF1QixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyx1QkFBdUIsQ0FBQyxDQUFDO0FBRTlFOztHQUVHO0FBQ0gsTUFBTSxNQUFNLHlCQUF5QixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyx5QkFBeUIsQ0FBQyxDQUFDO0FBRWxGOztHQUVHO0FBQ0gsTUFBTSxNQUFNLG9CQUFvQixHQUFHLHVCQUF1QixHQUFHLHlCQUF5QixDQUFDO0FBRXZGOzs7R0FHRztBQUNILHdCQUFnQixzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLGlCQUFpQixDQUVyRSJ9
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9pcl9wYWNrYWdlX2NvbmZpZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25vaXIvbm9pcl9wYWNrYWdlX2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLFFBQUEsTUFBTSx1QkFBdUI7Ozs7aUJBSTNCLENBQUM7QUFFSCxRQUFBLE1BQU0seUJBQXlCOztpQkFFN0IsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSxNQUFNLHVCQUF1QixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyx1QkFBdUIsQ0FBQyxDQUFDO0FBRTlFOztHQUVHO0FBQ0gsTUFBTSxNQUFNLHlCQUF5QixHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyx5QkFBeUIsQ0FBQyxDQUFDO0FBRWxGOztHQUVHO0FBQ0gsTUFBTSxNQUFNLG9CQUFvQixHQUFHLHVCQUF1QixHQUFHLHlCQUF5QixDQUFDO0FBRXZGOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGlCQUFpQixHQUFHO0lBQzlCLE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxNQUFNLENBQUM7UUFDYixJQUFJLEVBQUUsS0FBSyxHQUFHLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDakMsS0FBSyxDQUFDLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUMzQixXQUFXLENBQUMsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLFNBQVMsQ0FBQztRQUMvQixnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDdEMsT0FBTyxDQUFDLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUM3QixPQUFPLENBQUMsRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDO0tBQzlCLENBQUM7SUFDRixZQUFZLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0NBQ3BELENBQUM7QUFpQkY7OztHQUdHO0FBQ0gsd0JBQWdCLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsaUJBQWlCLENBRXJFIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"noir_package_config.d.ts","sourceRoot":"","sources":["../../src/noir/noir_package_config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,uBAAuB;;;;;;;;;;;;EAI3B,CAAC;AAEH,QAAA,MAAM,yBAAyB;;;;;;EAE7B,CAAC;AAEH,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa3B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,GAAG,yBAAyB,CAAC;AAEvF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,GAAG,iBAAiB,CAErE"}
1
+ {"version":3,"file":"noir_package_config.d.ts","sourceRoot":"","sources":["../../src/noir/noir_package_config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,uBAAuB;;;;iBAI3B,CAAC;AAEH,QAAA,MAAM,yBAAyB;;iBAE7B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAElF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,GAAG,yBAAyB,CAAC;AAEvF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,KAAK,GAAG,UAAU,GAAG,KAAK,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QAC/B,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACtC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAC9B,CAAC;IACF,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CACpD,CAAC;AAiBF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,GAAG,GAAG,iBAAiB,CAErE"}
@@ -23,7 +23,7 @@ const noirPackageConfigSchema = z.object({
23
23
  backend: z.string().optional(),
24
24
  license: z.string().optional()
25
25
  }),
26
- dependencies: z.record(z.union([
26
+ dependencies: z.record(z.string(), z.union([
27
27
  noirGitDependencySchema,
28
28
  noirLocalDependencySchema
29
29
  ])).default({})
@@ -1,15 +1,13 @@
1
1
  import type { z } from 'zod';
2
2
  import type { ZodNullableOptional } from './utils.js';
3
- type ZodParameterTypeFor<T> = undefined extends T ? ZodNullableOptional<z.ZodType<T, z.ZodTypeDef, any>> : z.ZodType<T, z.ZodTypeDef, any>;
4
- type ZodReturnTypeFor<T> = z.ZodType<T, z.ZodTypeDef, any>;
5
- type ZodMapParameterTypes<T> = T extends [] ? [] : T extends [item: infer Head, ...infer Rest] ? [ZodParameterTypeFor<Head>, ...{
6
- [K in keyof Rest]: ZodParameterTypeFor<Rest[K]>;
7
- }] : T extends [item?: infer Head, ...infer Rest] ? [ZodNullableOptional<ZodParameterTypeFor<Head>>, ...{
8
- [K in keyof Rest]: ZodParameterTypeFor<Rest[K]>;
9
- }] : never;
3
+ type ZodParameterTypeFor<T> = undefined extends T ? ZodNullableOptional<z.ZodType<T, any>> : z.ZodType<T, any>;
4
+ type ZodReturnTypeFor<T> = z.ZodType<T, any>;
5
+ type ZodMapParameterTypes<T extends readonly unknown[]> = {
6
+ [K in keyof T]-?: ZodParameterTypeFor<T[K]>;
7
+ };
10
8
  /** Maps all functions in an interface to their schema representation. */
11
9
  export type ApiSchemaFor<T> = {
12
- [K in keyof T]: T[K] extends (...args: infer Args) => Promise<infer Ret> ? z.ZodFunction<z.ZodTuple<ZodMapParameterTypes<Args>, z.ZodUnknown>, ZodReturnTypeFor<Ret>> : never;
10
+ [K in keyof T]: T[K] extends (...args: infer Args) => Promise<infer Ret> ? z.ZodFunction<z.ZodTuple<ZodMapParameterTypes<Args>, null>, ZodReturnTypeFor<Ret>> : never;
13
11
  };
14
12
  /** Generic Api schema not bounded to a specific implementation. */
15
13
  export type ApiSchema = {
@@ -17,5 +15,9 @@ export type ApiSchema = {
17
15
  };
18
16
  /** Return whether an API schema defines a valid function schema for a given method name. */
19
17
  export declare function schemaHasMethod<T extends ApiSchema>(schema: T, methodName: string): methodName is Extract<keyof T, string>;
18
+ /** Returns the parameter tuple schema for an API method schema. */
19
+ export declare function getSchemaParameters<T extends z.ZodFunction<z.ZodTuple<any, any>, z.ZodTypeAny>>(schema: T): z.ZodTuple<any, any>;
20
+ /** Returns the return value schema for an API method schema. */
21
+ export declare function getSchemaReturnType<T extends z.ZodFunction<z.ZodTuple<any, any>, z.ZodTypeAny>>(schema: T): z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>;
20
22
  export {};
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NoZW1hcy9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRTdCLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBR3RELEtBQUssbUJBQW1CLENBQUMsQ0FBQyxJQUFJLFNBQVMsU0FBUyxDQUFDLEdBQzdDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FDcEQsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUVwQyxLQUFLLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBUzNELEtBQUssb0JBQW9CLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQ3ZDLEVBQUUsR0FDRixDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUN6QyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUc7S0FBRyxDQUFDLElBQUksTUFBTSxJQUFJLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQUUsQ0FBQyxHQUNuRixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQzFDLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHO0tBQUcsQ0FBQyxJQUFJLE1BQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUFFLENBQUMsR0FDeEcsS0FBSyxDQUFDO0FBRWQseUVBQXlFO0FBQ3pFLE1BQU0sTUFBTSxZQUFZLENBQUMsQ0FBQyxJQUFJO0tBQzNCLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksRUFBRSxNQUFNLElBQUksS0FBSyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsR0FDcEUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUMxRixLQUFLO0NBQ1YsQ0FBQztBQUVGLG1FQUFtRTtBQUNuRSxNQUFNLE1BQU0sU0FBUyxHQUFHO0lBQ3RCLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztDQUNsRSxDQUFDO0FBRUYsNEZBQTRGO0FBQzVGLHdCQUFnQixlQUFlLENBQUMsQ0FBQyxTQUFTLFNBQVMsRUFDakQsTUFBTSxFQUFFLENBQUMsRUFDVCxVQUFVLEVBQUUsTUFBTSxHQUNqQixVQUFVLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQU94QyJ9
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NoZW1hcy9hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRTdCLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBR3RELEtBQUssbUJBQW1CLENBQUMsQ0FBQyxJQUFJLFNBQVMsU0FBUyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUUvRyxLQUFLLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUU3QyxLQUFLLG9CQUFvQixDQUFDLENBQUMsU0FBUyxTQUFTLE9BQU8sRUFBRSxJQUFJO0tBQ3ZELENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQzVDLENBQUM7QUFFRix5RUFBeUU7QUFDekUsTUFBTSxNQUFNLFlBQVksQ0FBQyxDQUFDLElBQUk7S0FDM0IsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxFQUFFLE1BQU0sSUFBSSxLQUFLLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUNwRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsR0FDbEYsS0FBSztDQUNWLENBQUM7QUFFRixtRUFBbUU7QUFDbkUsTUFBTSxNQUFNLFNBQVMsR0FBRztJQUN0QixDQUFDLEdBQUcsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7Q0FDbEUsQ0FBQztBQUVGLDRGQUE0RjtBQUM1Rix3QkFBZ0IsZUFBZSxDQUFDLENBQUMsU0FBUyxTQUFTLEVBQ2pELE1BQU0sRUFBRSxDQUFDLEVBQ1QsVUFBVSxFQUFFLE1BQU0sR0FDakIsVUFBVSxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FPeEM7QUFFRCxtRUFBbUU7QUFDbkUsd0JBQWdCLG1CQUFtQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyx3QkFFekc7QUFFRCxnRUFBZ0U7QUFDaEUsd0JBQWdCLG1CQUFtQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQywyRUFFekcifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/schemas/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGtD,KAAK,mBAAmB,CAAC,CAAC,IAAI,SAAS,SAAS,CAAC,GAC7C,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,GACpD,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAEpC,KAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAS3D,KAAK,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,GACvC,EAAE,GACF,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GACzC,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,GAAG;KAAG,CAAC,IAAI,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,GACnF,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAC1C,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG;KAAG,CAAC,IAAI,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,GACxG,KAAK,CAAC;AAEd,yEAAyE;AACzE,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;KAC3B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,GACpE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAC1F,KAAK;CACV,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;CAClE,CAAC;AAEF,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,CAAC,SAAS,SAAS,EACjD,MAAM,EAAE,CAAC,EACT,UAAU,EAAE,MAAM,GACjB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAOxC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/schemas/api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGtD,KAAK,mBAAmB,CAAC,CAAC,IAAI,SAAS,SAAS,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAE/G,KAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAE7C,KAAK,oBAAoB,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,IAAI;KACvD,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5C,CAAC;AAEF,yEAAyE;AACzE,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;KAC3B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,GACpE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAClF,KAAK;CACV,CAAC;AAEF,mEAAmE;AACnE,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;CAClE,CAAC;AAEF,4FAA4F;AAC5F,wBAAgB,eAAe,CAAC,CAAC,SAAS,SAAS,EACjD,MAAM,EAAE,CAAC,EACT,UAAU,EAAE,MAAM,GACjB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAOxC;AAED,mEAAmE;AACnE,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,wBAEzG;AAED,gEAAgE;AAChE,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,2EAEzG"}
@@ -1,3 +1,9 @@
1
1
  /** Return whether an API schema defines a valid function schema for a given method name. */ export function schemaHasMethod(schema, methodName) {
2
- return typeof methodName === 'string' && Object.hasOwn(schema, methodName) && typeof schema[methodName].parameters === 'function' && typeof schema[methodName].returnType === 'function';
2
+ return typeof methodName === 'string' && Object.hasOwn(schema, methodName) && schema[methodName].def.input !== undefined && schema[methodName].def.output !== undefined;
3
+ }
4
+ /** Returns the parameter tuple schema for an API method schema. */ export function getSchemaParameters(schema) {
5
+ return schema.def.input;
6
+ }
7
+ /** Returns the return value schema for an API method schema. */ export function getSchemaReturnType(schema) {
8
+ return schema.def.output;
3
9
  }
@@ -1,9 +1,9 @@
1
1
  import { z } from 'zod';
2
2
  /** Parses the given arguments using a tuple from the provided schemas. */
3
- export declare function parse<T extends [] | [z.ZodTypeAny, ...z.ZodTypeAny[]]>(args: IArguments, ...schemas: T): z.AssertArray<{ [k in keyof T]: T[k] extends z.ZodType<any, any, any> ? T[k]["_output"] : never; }>;
3
+ export declare function parse<T extends [] | [z.ZodTypeAny, ...z.ZodTypeAny[]]>(args: IArguments, ...schemas: T): [];
4
4
  /**
5
5
  * Parses the given arguments against a tuple, allowing empty for optional items.
6
- * @dev Zod doesn't like tuplues with optional items. See https://github.com/colinhacks/zod/discussions/949.
6
+ * @dev Zod doesn't like tuples with optional items. See https://github.com/colinhacks/zod/discussions/949.
7
7
  */
8
- export declare function parseWithOptionals<T extends z.AnyZodTuple>(args: any[], schema: T): Promise<T['_output']>;
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWFzL3BhcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFJeEIsMEVBQTBFO0FBQzFFLHdCQUFnQixLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsdUdBRXRHO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLGtCQUFrQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FNekcifQ==
8
+ export declare function parseWithOptionals<T extends z.ZodTuple<any, any>>(args: any[], schema: T): Promise<z.output<T>>;
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWFzL3BhcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFJeEIsMEVBQTBFO0FBQzFFLHdCQUFnQixLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsTUFJdEc7QUFFRDs7O0dBR0c7QUFDSCx3QkFBZ0Isa0JBQWtCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBTy9HIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/schemas/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,0EAA0E;AAC1E,wBAAgB,KAAK,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,CAAC,uGAEtG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAMzG"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/schemas/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,0EAA0E;AAC1E,wBAAgB,KAAK,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,CAAC,MAItG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAO/G"}
@@ -1,14 +1,15 @@
1
1
  import { z } from 'zod';
2
2
  import { times } from '../collection/array.js';
3
3
  /** Parses the given arguments using a tuple from the provided schemas. */ export function parse(args, ...schemas) {
4
- return z.tuple(schemas).parse(args);
4
+ return schemas.length === 0 ? z.tuple([]).parse(args) : z.tuple(schemas).parse(args);
5
5
  }
6
6
  /**
7
7
  * Parses the given arguments against a tuple, allowing empty for optional items.
8
- * @dev Zod doesn't like tuplues with optional items. See https://github.com/colinhacks/zod/discussions/949.
8
+ * @dev Zod doesn't like tuples with optional items. See https://github.com/colinhacks/zod/discussions/949.
9
9
  */ export function parseWithOptionals(args, schema) {
10
- const missingCount = schema.items.length - args.length;
11
- const optionalCount = schema.items.filter(isOptional).length;
10
+ const items = schema.def.items;
11
+ const missingCount = items.length - args.length;
12
+ const optionalCount = items.filter(isOptional).length;
12
13
  const toParse = missingCount > 0 && missingCount <= optionalCount ? args.concat(times(missingCount, ()=>undefined)) : args;
13
14
  return schema.parseAsync(toParse);
14
15
  }
@@ -17,6 +18,6 @@ function isOptional(schema) {
17
18
  return schema.isOptional();
18
19
  } catch {
19
20
  // See https://github.com/colinhacks/zod/issues/1911
20
- return schema._def.typeName === 'ZodOptional';
21
+ return schema.def.type === 'optional';
21
22
  }
22
23
  }
@@ -8,37 +8,37 @@ import { Point } from '../curves/grumpkin/point.js';
8
8
  import { EthAddress } from '../eth-address/index.js';
9
9
  export declare const schemas: {
10
10
  /** Accepts a number, bigint, or string as an EpochNumber. */
11
- EpochNumber: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, EpochNumber, string | number | bigint>;
11
+ EpochNumber: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodCoercedNumber<string | number | bigint>>, z.ZodTransform<EpochNumber, number>>;
12
12
  /** Accepts a number, bigint, or string as a SlotNumber. */
13
- SlotNumber: z.ZodEffects<z.ZodPipeline<z.ZodUnion<[z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodNumber>, SlotNumber, string | number | bigint>;
13
+ SlotNumber: z.ZodPipe<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodBigInt, z.ZodString]>, z.ZodCoercedNumber<string | number | bigint>>, z.ZodTransform<SlotNumber, number>>;
14
14
  /** Accepts a hex string. */
15
- EthAddress: z.ZodType<EthAddress, any, string>;
15
+ EthAddress: z.ZodType<EthAddress, string, z.core.$ZodTypeInternals<EthAddress, string>>;
16
16
  /** Accepts a hex string. */
17
- Fr: z.ZodType<Fr, any, string>;
17
+ Fr: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
18
18
  /** Accepts a hex string. */
19
- Fq: z.ZodType<Fq, any, string>;
19
+ Fq: z.ZodType<Fq, string, z.core.$ZodTypeInternals<Fq, string>>;
20
20
  /** Point. Serialized as a hex string. */
21
- Point: z.ZodType<Point, any, string>;
21
+ Point: z.ZodType<Point, string, z.core.$ZodTypeInternals<Point, string>>;
22
22
  /** Coerces truthy-like string values to boolean. */
23
- Boolean: z.ZodUnion<[z.ZodBoolean, z.ZodEffects<z.ZodEffects<z.ZodNumber, 0 | 1, number>, boolean, number>, z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, boolean, string>]>;
23
+ Boolean: z.ZodUnion<readonly [z.ZodBoolean, z.ZodPipe<z.ZodNumber & z.ZodType<0 | 1, number, z.core.$ZodTypeInternals<0 | 1, number>>, z.ZodTransform<boolean, 0 | 1>>, z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodTransform<boolean, string>>]>;
24
24
  /** Coerces any input to bigint. */
25
- BigInt: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
25
+ BigInt: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedBigInt<string | number | bigint>>;
26
26
  /** Coerces any input to integer number. */
27
- Integer: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
27
+ Integer: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedNumber<string | number | bigint>>;
28
28
  /** Coerces input to UInt32. */
29
- UInt32: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodNumber>;
29
+ UInt32: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedNumber<string | number | bigint>>;
30
30
  /** Coerces input to UInt64. */
31
- UInt64: z.ZodPipeline<z.ZodUnion<[z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodBigInt>;
31
+ UInt64: z.ZodPipe<z.ZodUnion<readonly [z.ZodBigInt, z.ZodNumber, z.ZodString]>, z.ZodCoercedBigInt<string | number | bigint>>;
32
32
  /** Accepts a hex string as a Buffer32 type. */
33
- Buffer32: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, Buffer32, string>;
33
+ Buffer32: z.ZodPipe<z.ZodString, z.ZodTransform<Buffer32, string>>;
34
34
  /** Accepts a base64 string or an object `{ type: 'Buffer', data: [byte, byte...] }` as a buffer. */
35
35
  Buffer: import("./types.js").ZodFor<Buffer<ArrayBufferLike>>;
36
36
  /** Accepts a hex string as a buffer. */
37
- BufferHex: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, Buffer<ArrayBuffer>, string>;
37
+ BufferHex: z.ZodPipe<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodTransform<Buffer<ArrayBuffer>, string>>;
38
38
  /** Hex string with an optional 0x prefix which gets removed as part of the parsing. */
39
- HexString: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
39
+ HexString: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
40
40
  /** Hex string with an optional 0x prefix which gets enforced as part of the parsing. */
41
- HexStringWith0x: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, `0x${string}`, string>;
41
+ HexStringWith0x: z.ZodPipe<z.ZodString, z.ZodTransform<`0x${string}`, string>>;
42
42
  /** A secret config value */
43
43
  SecretValue: typeof SecretValue.schema;
44
44
  };
@@ -1,5 +1,5 @@
1
1
  import type { ZodType } from 'zod';
2
- export type ZodFor<T> = ZodType<T, any, any>;
2
+ export type ZodFor<T> = ZodType<T, any>;
3
3
  /**
4
4
  * Creates a schema validator that enforces all properties of type T are present in the schema.
5
5
  * This provides compile-time safety to ensure schemas don't miss optional properties.
@@ -23,11 +23,11 @@ export type ZodFor<T> = ZodType<T, any, any>;
23
23
  * }));
24
24
  * ```
25
25
  */
26
- export declare function zodFor<T>(): <S extends ZodType<any, any, any>>(schema: keyof T extends keyof S["_output"] ? keyof S["_output"] extends keyof T ? S : S & {
26
+ export declare function zodFor<T>(): <S extends ZodType<any, any, import("zod/v4/core").$ZodTypeInternals<any, any>>>(schema: keyof T extends keyof S["_output"] ? keyof S["_output"] extends keyof T ? S : S & {
27
27
  __error__: "Schema has extra keys not in type";
28
28
  __extra__: Exclude<keyof S["_output"], keyof T>;
29
29
  } : S & {
30
30
  __error__: "Schema is missing keys from type";
31
31
  __missing__: Exclude<keyof T, keyof S["_output"]>;
32
32
  }) => S;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWFzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEtBQUssQ0FBQztBQUVuQyxNQUFNLE1BQU0sTUFBTSxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUU3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILHdCQUFnQixNQUFNLENBQUMsQ0FBQyxNQUNRLENBQUM7Ozs7OztRQU9oQyJ9
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWFzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEtBQUssQ0FBQztBQUVuQyxNQUFNLE1BQU0sTUFBTSxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBRXhDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ0gsd0JBQWdCLE1BQU0sQ0FBQyxDQUFDLE1BQ1EsQ0FBQzs7Ozs7O1FBT2hDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schemas/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,MAAM,CAAC,CAAC,MACQ,CAAC;;;;;;QAOhC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/schemas/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,MAAM,CAAC,CAAC,MACQ,CAAC;;;;;;QAOhC"}
@@ -1,19 +1,15 @@
1
- import { type ParseInput, type ParseReturnType, type ZodObject, ZodOptional, type ZodRawShape, type ZodType, type ZodTypeAny, z } from 'zod';
1
+ import { type ZodObject, type ZodRawShape, type ZodType, type ZodTypeAny, z } from 'zod';
2
2
  import type { ZodFor } from './types.js';
3
- export declare const hexSchema: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
3
+ export declare const hexSchema: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
4
4
  /** Schema for a buffer represented as a base64 string or a Buffer object. */
5
5
  export declare const bufferSchema: ZodFor<Buffer>;
6
- export declare class ZodNullableOptional<T extends ZodTypeAny> extends ZodOptional<T> {
7
- _isNullableOptional: boolean;
8
- _parse(input: ParseInput): ParseReturnType<this['_output']>;
9
- static create<T extends ZodTypeAny>(type: T): ZodNullableOptional<T>;
10
- }
6
+ export type ZodNullableOptional<T extends ZodTypeAny> = ZodType<z.output<T> | undefined, z.input<T> | null | undefined>;
11
7
  /**
12
8
  * Declares a parameter as optional. Use this over z.optional in order to accept nulls as undefineds.
13
9
  * This is required as JSON does not have an undefined type, and null is used to represent it, so we
14
10
  * need to convert nulls to undefineds as we parse.
15
11
  */
16
- export declare function optional<T extends ZodTypeAny>(schema: T): ZodNullableOptional<T>;
12
+ export declare function optional<T extends ZodTypeAny>(schema: T): z.ZodPipe<z.ZodOptional<z.ZodNullable<T>>, z.ZodTransform<Awaited<NonNullable<z.TypeOf<T>>> | undefined, z.TypeOf<T> | null | undefined>>;
17
13
  type ToJsonIs<T, TRet> = T extends {
18
14
  toJSON(): TRet;
19
15
  } ? T : never;
@@ -30,7 +26,7 @@ export declare function hexSchemaFor<TClass extends {
30
26
  fromString(str: string): infer TInstance;
31
27
  } | {
32
28
  fromBuffer(buf: Buffer): infer TInstance;
33
- } ? ToJsonIs<TInstance, string> : never, any, string>;
29
+ } ? ToJsonIs<TInstance, string> : never, string>;
34
30
  /**
35
31
  * Creates a schema that accepts a base64 string and uses it to hydrate an instance.
36
32
  * @param klazz - Class that implements fromBuffer.
@@ -40,7 +36,7 @@ export declare function bufferSchemaFor<TClass extends {
40
36
  fromBuffer(buf: Buffer): any;
41
37
  }>(klazz: TClass, refinement?: (buf: Buffer) => boolean): ZodType<TClass extends {
42
38
  fromBuffer(buf: Buffer): infer TInstance;
43
- } ? ToJsonIs<TInstance, Buffer> : never, any, string>;
39
+ } ? ToJsonIs<TInstance, Buffer> : never, string>;
44
40
  /** Creates a schema for a js Map type that matches the serialization used in jsonStringify. */
45
41
  export declare function mapSchema<TKey, TValue>(key: ZodFor<TKey>, value: ZodFor<TValue>): ZodFor<Map<TKey, TValue>>;
46
42
  /** Creates a schema for a js Set type that matches the serialization used in jsonStringify. */
@@ -48,4 +44,4 @@ export declare function setSchema<T>(value: ZodFor<T>): ZodFor<Set<T>>;
48
44
  /** Given an already parsed and validated object, extracts the keys defined in the given schema. Does not validate again. */
49
45
  export declare function pickFromSchema<T extends object, S extends ZodObject<ZodRawShape>>(obj: T, schema: S): Partial<T>;
50
46
  export {};
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWFzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxLQUFLLFVBQVUsRUFDZixLQUFLLGVBQWUsRUFFcEIsS0FBSyxTQUFTLEVBQ2QsV0FBVyxFQUVYLEtBQUssV0FBVyxFQUNoQixLQUFLLE9BQU8sRUFDWixLQUFLLFVBQVUsRUFDZixDQUFDLEVBQ0YsTUFBTSxLQUFLLENBQUM7QUFJYixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFekMsZUFBTyxNQUFNLFNBQVMseUVBQWlGLENBQUM7QUFLeEcsNkVBQTZFO0FBQzdFLGVBQU8sTUFBTSxZQUFZLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FpQnRDLENBQUM7QUFFSCxxQkFBYSxtQkFBbUIsQ0FBQyxDQUFDLFNBQVMsVUFBVSxDQUFFLFNBQVEsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUMzRSxtQkFBbUIsVUFBUTtJQUVsQixNQUFNLENBQUMsS0FBSyxFQUFFLFVBQVUsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBTW5FO0lBRUQsT0FBZ0IsTUFBTSxDQUFDLENBQUMsU0FBUyxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FLNUU7Q0FDRjtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsUUFBUSxDQUFDLENBQUMsU0FBUyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsMEJBRXZEO0FBRUQsS0FBSyxRQUFRLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLFNBQVM7SUFBRSxNQUFNLElBQUksSUFBSSxDQUFBO0NBQUUsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBRWxFOzs7O0dBSUc7QUFDSCx3QkFBZ0IsWUFBWSxDQUFDLE1BQU0sU0FBUztJQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLEdBQUcsQ0FBQTtDQUFFLEdBQUc7SUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxHQUFHLENBQUE7Q0FBRSxFQUM3RyxLQUFLLEVBQUUsTUFBTSxFQUNiLFVBQVUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sS0FBSyxPQUFPLEdBQ3RDLE9BQU8sQ0FDUixNQUFNLFNBQVM7SUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxNQUFNLFNBQVMsQ0FBQTtDQUFFLEdBQUc7SUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxNQUFNLFNBQVMsQ0FBQTtDQUFFLEdBQ3RHLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEdBQzNCLEtBQUssRUFDVCxHQUFHLEVBQ0gsTUFBTSxDQUNQLENBTUE7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLGVBQWUsQ0FBQyxNQUFNLFNBQVM7SUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxHQUFHLENBQUE7Q0FBRSxFQUM3RSxLQUFLLEVBQUUsTUFBTSxFQUNiLFVBQVUsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sS0FBSyxPQUFPLEdBQ3BDLE9BQU8sQ0FDUixNQUFNLFNBQVM7SUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxNQUFNLFNBQVMsQ0FBQTtDQUFFLEdBQUcsUUFBUSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsR0FBRyxLQUFLLEVBQ2pHLEdBQUcsRUFDSCxNQUFNLENBQ1AsQ0FFQTtBQUVELCtGQUErRjtBQUMvRix3QkFBZ0IsU0FBUyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBRTNHO0FBRUQsK0ZBQStGO0FBQy9GLHdCQUFnQixTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUU3RDtBQUVELDRIQUE0SDtBQUM1SCx3QkFBZ0IsY0FBYyxDQUFDLENBQUMsU0FBUyxNQUFNLEVBQUUsQ0FBQyxTQUFTLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLGNBRW5HIn0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWFzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBRSxLQUFLLFdBQVcsRUFBRSxLQUFLLE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFJekYsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXpDLGVBQU8sTUFBTSxTQUFTLHdEQUFpRixDQUFDO0FBS3hHLDZFQUE2RTtBQUM3RSxlQUFPLE1BQU0sWUFBWSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBaUJ0QyxDQUFDO0FBRUgsTUFBTSxNQUFNLG1CQUFtQixDQUFDLENBQUMsU0FBUyxVQUFVLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDO0FBRXhIOzs7O0dBSUc7QUFDSCx3QkFBZ0IsUUFBUSxDQUFDLENBQUMsU0FBUyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsNklBRXZEO0FBRUQsS0FBSyxRQUFRLENBQUMsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLFNBQVM7SUFBRSxNQUFNLElBQUksSUFBSSxDQUFBO0NBQUUsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBRWxFOzs7O0dBSUc7QUFDSCx3QkFBZ0IsWUFBWSxDQUFDLE1BQU0sU0FBUztJQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLEdBQUcsQ0FBQTtDQUFFLEdBQUc7SUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxHQUFHLENBQUE7Q0FBRSxFQUM3RyxLQUFLLEVBQUUsTUFBTSxFQUNiLFVBQVUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sS0FBSyxPQUFPLEdBQ3RDLE9BQU8sQ0FDUixNQUFNLFNBQVM7SUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxNQUFNLFNBQVMsQ0FBQTtDQUFFLEdBQUc7SUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sR0FBRyxNQUFNLFNBQVMsQ0FBQTtDQUFFLEdBQ3RHLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLEdBQzNCLEtBQUssRUFDVCxNQUFNLENBQ1AsQ0FNQTtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsZUFBZSxDQUFDLE1BQU0sU0FBUztJQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLEdBQUcsQ0FBQTtDQUFFLEVBQzdFLEtBQUssRUFBRSxNQUFNLEVBQ2IsVUFBVSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxLQUFLLE9BQU8sR0FDcEMsT0FBTyxDQUFDLE1BQU0sU0FBUztJQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxHQUFHLE1BQU0sU0FBUyxDQUFBO0NBQUUsR0FBRyxRQUFRLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FFcEg7QUFFRCwrRkFBK0Y7QUFDL0Ysd0JBQWdCLFNBQVMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUUzRztBQUVELCtGQUErRjtBQUMvRix3QkFBZ0IsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FFN0Q7QUFFRCw0SEFBNEg7QUFDNUgsd0JBQWdCLGNBQWMsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLENBQUMsU0FBUyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxjQUVuRyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/schemas/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,eAAe,EAEpB,KAAK,SAAS,EACd,WAAW,EAEX,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,CAAC,EACF,MAAM,KAAK,CAAC;AAIb,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,eAAO,MAAM,SAAS,yEAAiF,CAAC;AAKxG,6EAA6E;AAC7E,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,CAiBtC,CAAC;AAEH,qBAAa,mBAAmB,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAC3E,mBAAmB,UAAQ;IAElB,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAMnE;IAED,OAAgB,MAAM,CAAC,CAAC,SAAS,UAAU,EAAE,IAAI,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAK5E;CACF;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,0BAEvD;AAED,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS;IAAE,MAAM,IAAI,IAAI,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAElE;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,SAAS;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7G,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GACtC,OAAO,CACR,MAAM,SAAS;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,SAAS,CAAA;CAAE,GAAG;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,SAAS,CAAA;CAAE,GACtG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,GAC3B,KAAK,EACT,GAAG,EACH,MAAM,CACP,CAMA;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,SAAS;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7E,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GACpC,OAAO,CACR,MAAM,SAAS;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,SAAS,CAAA;CAAE,GAAG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,KAAK,EACjG,GAAG,EACH,MAAM,CACP,CAEA;AAED,+FAA+F;AAC/F,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAE3G;AAED,+FAA+F;AAC/F,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAE7D;AAED,4HAA4H;AAC5H,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,SAAS,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,cAEnG"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/schemas/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIzF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,eAAO,MAAM,SAAS,wDAAiF,CAAC;AAKxG,6EAA6E;AAC7E,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,CAiBtC,CAAC;AAEH,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAExH;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,6IAEvD;AAED,KAAK,QAAQ,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS;IAAE,MAAM,IAAI,IAAI,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAElE;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,SAAS;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7G,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GACtC,OAAO,CACR,MAAM,SAAS;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,SAAS,CAAA;CAAE,GAAG;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,SAAS,CAAA;CAAE,GACtG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,GAC3B,KAAK,EACT,MAAM,CACP,CAMA;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,SAAS;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC7E,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GACpC,OAAO,CAAC,MAAM,SAAS;IAAE,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,SAAS,CAAA;CAAE,GAAG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,CAEpH;AAED,+FAA+F;AAC/F,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAE3G;AAED,+FAA+F;AAC/F,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAE7D;AAED,4HAA4H;AAC5H,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,SAAS,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,cAEnG"}
@@ -1,4 +1,4 @@
1
- import { OK, ZodFirstPartyTypeKind, ZodOptional, ZodParsedType, z } from 'zod';
1
+ import { z } from 'zod';
2
2
  import { pick } from '../collection/object.js';
3
3
  import { isHex, withoutHexPrefix } from '../string/index.js';
4
4
  export const hexSchema = z.string().refine(isHex, 'Not a valid hex string').transform(withoutHexPrefix);
@@ -17,28 +17,12 @@ const base64Regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}
17
17
  // Serialization from Buffer
18
18
  z.instanceof(Buffer)
19
19
  ]);
20
- export class ZodNullableOptional extends ZodOptional {
21
- _isNullableOptional = true;
22
- _parse(input) {
23
- const parsedType = this._getType(input);
24
- if (parsedType === ZodParsedType.undefined || parsedType === ZodParsedType.null) {
25
- return OK(undefined);
26
- }
27
- return this._def.innerType._parse(input);
28
- }
29
- static create(type) {
30
- return new ZodNullableOptional({
31
- innerType: type,
32
- typeName: ZodFirstPartyTypeKind.ZodOptional
33
- });
34
- }
35
- }
36
20
  /**
37
21
  * Declares a parameter as optional. Use this over z.optional in order to accept nulls as undefineds.
38
22
  * This is required as JSON does not have an undefined type, and null is used to represent it, so we
39
23
  * need to convert nulls to undefineds as we parse.
40
24
  */ export function optional(schema) {
41
- return ZodNullableOptional.create(schema);
25
+ return schema.nullish().transform((value)=>value ?? undefined);
42
26
  }
43
27
  /**
44
28
  * Creates a schema that accepts a hex string and uses it to hydrate an instance.