@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.
- package/dest/bigint-buffer/index.d.ts +1 -1
- package/dest/bigint-buffer/index.d.ts.map +1 -1
- package/dest/bigint-buffer/index.js +6 -1
- package/dest/branded-types/block_number.d.ts +3 -3
- package/dest/branded-types/block_number.d.ts.map +1 -1
- package/dest/branded-types/block_number.js +15 -4
- package/dest/branded-types/buffer32_hash.d.ts +22 -19
- package/dest/branded-types/buffer32_hash.d.ts.map +1 -1
- package/dest/branded-types/buffer32_hash.js +8 -15
- package/dest/branded-types/checkpoint_number.d.ts +6 -3
- package/dest/branded-types/checkpoint_number.d.ts.map +1 -1
- package/dest/branded-types/checkpoint_number.js +8 -0
- package/dest/branded-types/epoch.d.ts +2 -2
- package/dest/branded-types/epoch.d.ts.map +1 -1
- package/dest/branded-types/index.d.ts +2 -2
- package/dest/branded-types/index.d.ts.map +1 -1
- package/dest/branded-types/index.js +1 -1
- package/dest/branded-types/index_within_checkpoint.d.ts +2 -2
- package/dest/branded-types/index_within_checkpoint.d.ts.map +1 -1
- package/dest/branded-types/slot.d.ts +2 -2
- package/dest/branded-types/slot.d.ts.map +1 -1
- package/dest/buffer/buffer32.js +3 -3
- package/dest/collection/array.d.ts +9 -1
- package/dest/collection/array.d.ts.map +1 -1
- package/dest/collection/array.js +18 -0
- package/dest/collection/index.d.ts +2 -1
- package/dest/collection/index.d.ts.map +1 -1
- package/dest/collection/index.js +1 -0
- package/dest/collection/lru_map.d.ts +41 -0
- package/dest/collection/lru_map.d.ts.map +1 -0
- package/dest/collection/lru_map.js +119 -0
- package/dest/committable/committable.js +1 -1
- package/dest/config/env_var.d.ts +2 -2
- package/dest/config/env_var.d.ts.map +1 -1
- package/dest/config/index.d.ts +1 -2
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +15 -21
- package/dest/config/network_config.d.ts +11 -55
- package/dest/config/network_config.d.ts.map +1 -1
- package/dest/config/network_name.d.ts +2 -2
- package/dest/config/network_name.d.ts.map +1 -1
- package/dest/config/network_name.js +1 -3
- package/dest/config/secret_value.d.ts +2 -2
- package/dest/config/secret_value.d.ts.map +1 -1
- package/dest/crypto/bls/bn254_keystore.d.ts +9 -167
- package/dest/crypto/bls/bn254_keystore.d.ts.map +1 -1
- package/dest/crypto/schnorr/index.d.ts +8 -7
- package/dest/crypto/schnorr/index.d.ts.map +1 -1
- package/dest/crypto/schnorr/index.js +6 -6
- package/dest/crypto/schnorr/signature.d.ts +9 -29
- package/dest/crypto/schnorr/signature.d.ts.map +1 -1
- package/dest/crypto/schnorr/signature.js +20 -36
- package/dest/curves/bls12/field.d.ts +3 -3
- package/dest/curves/bls12/field.d.ts.map +1 -1
- package/dest/curves/bls12/point.d.ts +2 -2
- package/dest/curves/bls12/point.d.ts.map +1 -1
- package/dest/curves/bn254/field.d.ts +7 -4
- package/dest/curves/bn254/field.d.ts.map +1 -1
- package/dest/curves/bn254/field.js +5 -4
- package/dest/curves/grumpkin/point.d.ts +15 -29
- package/dest/curves/grumpkin/point.d.ts.map +1 -1
- package/dest/curves/grumpkin/point.js +31 -48
- package/dest/eth-address/index.d.ts +2 -2
- package/dest/eth-address/index.d.ts.map +1 -1
- package/dest/eth-signature/eth_signature.d.ts +2 -2
- package/dest/eth-signature/eth_signature.d.ts.map +1 -1
- package/dest/fifo/fifo_frame_reader.d.ts +2 -2
- package/dest/fifo/fifo_frame_reader.d.ts.map +1 -1
- package/dest/fifo/fifo_frame_reader.js +21 -4
- package/dest/fifo_set/fifo_set.d.ts +15 -0
- package/dest/fifo_set/fifo_set.d.ts.map +1 -0
- package/dest/fifo_set/fifo_set.js +39 -0
- package/dest/fifo_set/index.d.ts +2 -0
- package/dest/fifo_set/index.d.ts.map +1 -0
- package/dest/fifo_set/index.js +1 -0
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts +1 -1
- package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
- package/dest/json-rpc/client/safe_json_rpc_client.js +2 -2
- package/dest/json-rpc/fixtures/test_state.d.ts +4 -8
- package/dest/json-rpc/fixtures/test_state.d.ts.map +1 -1
- package/dest/json-rpc/fixtures/test_state.js +57 -17
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts +8 -3
- package/dest/json-rpc/server/safe_json_rpc_server.d.ts.map +1 -1
- package/dest/json-rpc/server/safe_json_rpc_server.js +27 -13
- package/dest/noir/noir_package_config.d.ts +19 -104
- package/dest/noir/noir_package_config.d.ts.map +1 -1
- package/dest/noir/noir_package_config.js +1 -1
- package/dest/schemas/api.d.ts +11 -9
- package/dest/schemas/api.d.ts.map +1 -1
- package/dest/schemas/api.js +7 -1
- package/dest/schemas/parse.d.ts +4 -4
- package/dest/schemas/parse.d.ts.map +1 -1
- package/dest/schemas/parse.js +6 -5
- package/dest/schemas/schemas.d.ts +15 -15
- package/dest/schemas/types.d.ts +3 -3
- package/dest/schemas/types.d.ts.map +1 -1
- package/dest/schemas/utils.d.ts +7 -11
- package/dest/schemas/utils.d.ts.map +1 -1
- package/dest/schemas/utils.js +2 -18
- package/dest/serialize/buffer_sink.d.ts +134 -0
- package/dest/serialize/buffer_sink.d.ts.map +1 -0
- package/dest/serialize/buffer_sink.js +297 -0
- package/dest/serialize/index.d.ts +2 -1
- package/dest/serialize/index.d.ts.map +1 -1
- package/dest/serialize/index.js +1 -0
- package/dest/timer/index.d.ts +2 -2
- package/dest/timer/index.d.ts.map +1 -1
- package/dest/timer/index.js +1 -1
- package/dest/timer/timeout.d.ts +3 -1
- package/dest/timer/timeout.d.ts.map +1 -1
- package/dest/timer/timeout.js +26 -0
- package/dest/trees/membership_witness.d.ts +2 -2
- package/dest/trees/membership_witness.d.ts.map +1 -1
- package/dest/trees/sibling_path.d.ts +4 -3
- package/dest/trees/sibling_path.d.ts.map +1 -1
- package/dest/trees/sibling_path.js +9 -3
- package/dest/types/index.d.ts +23 -1
- package/dest/types/index.d.ts.map +1 -1
- package/dest/types/index.js +15 -0
- package/package.json +5 -4
- package/src/bigint-buffer/index.ts +6 -1
- package/src/branded-types/block_number.ts +20 -2
- package/src/branded-types/buffer32_hash.ts +28 -32
- package/src/branded-types/checkpoint_number.ts +11 -1
- package/src/branded-types/epoch.ts +1 -1
- package/src/branded-types/index.ts +1 -1
- package/src/branded-types/index_within_checkpoint.ts +1 -1
- package/src/branded-types/slot.ts +1 -1
- package/src/buffer/buffer32.ts +3 -3
- package/src/collection/array.ts +20 -0
- package/src/collection/index.ts +1 -0
- package/src/collection/lru_map.ts +143 -0
- package/src/committable/committable.ts +1 -1
- package/src/config/env_var.ts +16 -14
- package/src/config/index.ts +13 -20
- package/src/config/network_name.ts +2 -5
- package/src/config/secret_value.ts +1 -1
- package/src/crypto/schnorr/index.ts +9 -8
- package/src/crypto/schnorr/signature.ts +17 -46
- package/src/curves/bn254/field.ts +10 -3
- package/src/curves/grumpkin/point.ts +24 -44
- package/src/fifo/fifo_frame_reader.ts +17 -2
- package/src/fifo_set/fifo_set.ts +52 -0
- package/src/fifo_set/index.ts +1 -0
- package/src/json-rpc/client/safe_json_rpc_client.ts +2 -2
- package/src/json-rpc/fixtures/test_state.ts +10 -10
- package/src/json-rpc/server/safe_json_rpc_server.ts +31 -13
- package/src/noir/noir_package_config.ts +32 -20
- package/src/schemas/api.ts +21 -24
- package/src/schemas/parse.ts +9 -6
- package/src/schemas/schemas.ts +4 -4
- package/src/schemas/types.ts +2 -2
- package/src/schemas/utils.ts +4 -38
- package/src/serialize/buffer_sink.ts +350 -0
- package/src/serialize/index.ts +1 -0
- package/src/timer/index.ts +1 -1
- package/src/timer/timeout.ts +31 -0
- package/src/trees/sibling_path.ts +10 -4
- 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
|
-
|
|
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]
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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,
|
|
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
|
|
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({})
|
package/dest/schemas/api.d.ts
CHANGED
|
@@ -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,
|
|
4
|
-
type ZodReturnTypeFor<T> = z.ZodType<T,
|
|
5
|
-
type ZodMapParameterTypes<T
|
|
6
|
-
[K in keyof
|
|
7
|
-
}
|
|
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>,
|
|
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,
|
|
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,
|
|
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"}
|
package/dest/schemas/api.js
CHANGED
|
@@ -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) &&
|
|
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
|
}
|
package/dest/schemas/parse.d.ts
CHANGED
|
@@ -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):
|
|
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
|
|
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.
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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,
|
|
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"}
|
package/dest/schemas/parse.js
CHANGED
|
@@ -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
|
|
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
|
|
11
|
-
const
|
|
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.
|
|
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.
|
|
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.
|
|
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,
|
|
15
|
+
EthAddress: z.ZodType<EthAddress, string, z.core.$ZodTypeInternals<EthAddress, string>>;
|
|
16
16
|
/** Accepts a hex string. */
|
|
17
|
-
Fr: z.ZodType<Fr,
|
|
17
|
+
Fr: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
|
|
18
18
|
/** Accepts a hex string. */
|
|
19
|
-
Fq: z.ZodType<Fq,
|
|
19
|
+
Fq: z.ZodType<Fq, string, z.core.$ZodTypeInternals<Fq, string>>;
|
|
20
20
|
/** Point. Serialized as a hex string. */
|
|
21
|
-
Point: z.ZodType<Point,
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
};
|
package/dest/schemas/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ZodType } from 'zod';
|
|
2
|
-
export type ZodFor<T> = ZodType<T, 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
|
|
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,
|
|
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,
|
|
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"}
|
package/dest/schemas/utils.d.ts
CHANGED
|
@@ -1,19 +1,15 @@
|
|
|
1
|
-
import { type
|
|
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.
|
|
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
|
|
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):
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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"}
|
package/dest/schemas/utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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
|
|
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.
|