@atproto/lexicon 0.6.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/blob-refs.d.ts +4 -4
  3. package/dist/blob-refs.js +20 -45
  4. package/dist/blob-refs.js.map +1 -1
  5. package/dist/index.d.ts +4 -4
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +4 -20
  8. package/dist/index.js.map +1 -1
  9. package/dist/lexicons.d.ts +1 -1
  10. package/dist/lexicons.d.ts.map +1 -1
  11. package/dist/lexicons.js +40 -54
  12. package/dist/lexicons.js.map +1 -1
  13. package/dist/serialize.js +22 -31
  14. package/dist/serialize.js.map +1 -1
  15. package/dist/types.js +193 -203
  16. package/dist/types.js.map +1 -1
  17. package/dist/util.js +6 -10
  18. package/dist/util.js.map +1 -1
  19. package/dist/validation.d.ts +2 -2
  20. package/dist/validation.d.ts.map +1 -1
  21. package/dist/validation.js +10 -17
  22. package/dist/validation.js.map +1 -1
  23. package/dist/validators/blob.d.ts +2 -2
  24. package/dist/validators/blob.d.ts.map +1 -1
  25. package/dist/validators/blob.js +5 -8
  26. package/dist/validators/blob.js.map +1 -1
  27. package/dist/validators/complex.d.ts +2 -2
  28. package/dist/validators/complex.d.ts.map +1 -1
  29. package/dist/validators/complex.js +20 -26
  30. package/dist/validators/complex.js.map +1 -1
  31. package/dist/validators/formats.d.ts +1 -1
  32. package/dist/validators/formats.d.ts.map +1 -1
  33. package/dist/validators/formats.js +38 -50
  34. package/dist/validators/formats.js.map +1 -1
  35. package/dist/validators/primitives.d.ts +2 -2
  36. package/dist/validators/primitives.d.ts.map +1 -1
  37. package/dist/validators/primitives.js +33 -69
  38. package/dist/validators/primitives.js.map +1 -1
  39. package/dist/validators/xrpc.d.ts +2 -2
  40. package/dist/validators/xrpc.d.ts.map +1 -1
  41. package/dist/validators/xrpc.js +6 -42
  42. package/dist/validators/xrpc.js.map +1 -1
  43. package/jest.config.cjs +21 -0
  44. package/package.json +17 -9
  45. package/src/index.ts +4 -4
  46. package/src/lexicons.ts +4 -4
  47. package/src/serialize.ts +1 -1
  48. package/src/types.ts +1 -1
  49. package/src/validation.ts +4 -4
  50. package/src/validators/blob.ts +3 -3
  51. package/src/validators/complex.ts +5 -5
  52. package/src/validators/formats.ts +3 -2
  53. package/src/validators/primitives.ts +3 -3
  54. package/src/validators/xrpc.ts +8 -4
  55. package/tests/_scaffolds/lexicons.ts +1 -1
  56. package/tests/general.test.ts +5 -5
  57. package/tsconfig.build.tsbuildinfo +1 -1
  58. package/jest.config.js +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":"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","sourcesContent":["import { CID } from 'multiformats/cid'\nimport {\n IpldValue,\n JsonValue,\n check,\n ipldToJson,\n jsonToIpld,\n} from '@atproto/common-web'\nimport { BlobRef, jsonBlobRef } from './blob-refs'\n\n/**\n * @note this is equivalent to `unknown` because of {@link IpldValue} being `unknown`.\n * @deprecated Use {@link Lex} from `@atproto/lex-data` instead.\n */\nexport type LexValue = unknown\n\n/**\n * @deprecated Use {@link TypedLexMap} from `@atproto/lex-data` instead.\n */\nexport type RepoRecord = Record<string, LexValue>\n\n// @NOTE avoiding use of check.is() here only because it makes\n// these implementations slow, and they often live in hot paths.\n\n/**\n * @deprecated Use `LexValue` from `@atproto/lex-data` instead (which doesn't need conversion to IPLD).\n */\nexport const lexToIpld = (val: LexValue): IpldValue => {\n // walk arrays\n if (Array.isArray(val)) {\n return val.map((item) => lexToIpld(item))\n }\n // objects\n if (val && typeof val === 'object') {\n // convert blobs, leaving the original encoding so that we don't change CIDs on re-encode\n if (val instanceof BlobRef) {\n return val.original\n }\n // retain cids & bytes\n if (CID.asCID(val) || val instanceof Uint8Array) {\n return val\n }\n // walk plain objects\n const toReturn = {}\n for (const key of Object.keys(val)) {\n toReturn[key] = lexToIpld(val[key])\n }\n return toReturn\n }\n // pass through\n return val\n}\n\n/**\n * @deprecated Use `LexValue` from `@atproto/lex-data` instead instead (which doesn't need conversion to IPLD).\n */\nexport const ipldToLex = (val: IpldValue): LexValue => {\n // map arrays\n if (Array.isArray(val)) {\n return val.map((item) => ipldToLex(item))\n }\n // objects\n if (val && typeof val === 'object') {\n // convert blobs, using hints to avoid expensive is() check\n if (\n (val['$type'] === 'blob' ||\n (typeof val['cid'] === 'string' &&\n typeof val['mimeType'] === 'string')) &&\n check.is(val, jsonBlobRef)\n ) {\n return BlobRef.fromJsonRef(val)\n }\n // retain cids, bytes\n if (CID.asCID(val) || val instanceof Uint8Array) {\n return val\n }\n // map plain objects\n const toReturn = {}\n for (const key of Object.keys(val)) {\n toReturn[key] = ipldToLex(val[key])\n }\n return toReturn\n }\n // pass through\n return val\n}\n\nexport const lexToJson = (val: LexValue): JsonValue => {\n return ipldToJson(lexToIpld(val))\n}\n\nexport const stringifyLex = (val: LexValue): string => {\n return JSON.stringify(lexToJson(val))\n}\n\nexport const jsonToLex = (val: JsonValue): LexValue => {\n return ipldToLex(jsonToIpld(val))\n}\n\nexport const jsonStringToLex = (val: string): LexValue => {\n return jsonToLex(JSON.parse(val))\n}\n"]}
1
+ {"version":3,"file":"serialize.js","sourceRoot":"","sources":["../src/serialize.ts"],"names":[],"mappings":"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","sourcesContent":["import { CID } from 'multiformats/cid'\nimport {\n IpldValue,\n JsonValue,\n check,\n ipldToJson,\n jsonToIpld,\n} from '@atproto/common-web'\nimport { BlobRef, jsonBlobRef } from './blob-refs.js'\n\n/**\n * @note this is equivalent to `unknown` because of {@link IpldValue} being `unknown`.\n * @deprecated Use {@link Lex} from `@atproto/lex-data` instead.\n */\nexport type LexValue = unknown\n\n/**\n * @deprecated Use {@link TypedLexMap} from `@atproto/lex-data` instead.\n */\nexport type RepoRecord = Record<string, LexValue>\n\n// @NOTE avoiding use of check.is() here only because it makes\n// these implementations slow, and they often live in hot paths.\n\n/**\n * @deprecated Use `LexValue` from `@atproto/lex-data` instead (which doesn't need conversion to IPLD).\n */\nexport const lexToIpld = (val: LexValue): IpldValue => {\n // walk arrays\n if (Array.isArray(val)) {\n return val.map((item) => lexToIpld(item))\n }\n // objects\n if (val && typeof val === 'object') {\n // convert blobs, leaving the original encoding so that we don't change CIDs on re-encode\n if (val instanceof BlobRef) {\n return val.original\n }\n // retain cids & bytes\n if (CID.asCID(val) || val instanceof Uint8Array) {\n return val\n }\n // walk plain objects\n const toReturn = {}\n for (const key of Object.keys(val)) {\n toReturn[key] = lexToIpld(val[key])\n }\n return toReturn\n }\n // pass through\n return val\n}\n\n/**\n * @deprecated Use `LexValue` from `@atproto/lex-data` instead instead (which doesn't need conversion to IPLD).\n */\nexport const ipldToLex = (val: IpldValue): LexValue => {\n // map arrays\n if (Array.isArray(val)) {\n return val.map((item) => ipldToLex(item))\n }\n // objects\n if (val && typeof val === 'object') {\n // convert blobs, using hints to avoid expensive is() check\n if (\n (val['$type'] === 'blob' ||\n (typeof val['cid'] === 'string' &&\n typeof val['mimeType'] === 'string')) &&\n check.is(val, jsonBlobRef)\n ) {\n return BlobRef.fromJsonRef(val)\n }\n // retain cids, bytes\n if (CID.asCID(val) || val instanceof Uint8Array) {\n return val\n }\n // map plain objects\n const toReturn = {}\n for (const key of Object.keys(val)) {\n toReturn[key] = ipldToLex(val[key])\n }\n return toReturn\n }\n // pass through\n return val\n}\n\nexport const lexToJson = (val: LexValue): JsonValue => {\n return ipldToJson(lexToIpld(val))\n}\n\nexport const stringifyLex = (val: LexValue): string => {\n return JSON.stringify(lexToJson(val))\n}\n\nexport const jsonToLex = (val: JsonValue): LexValue => {\n return ipldToLex(jsonToIpld(val))\n}\n\nexport const jsonStringToLex = (val: string): LexValue => {\n return jsonToLex(JSON.parse(val))\n}\n"]}
package/dist/types.js CHANGED
@@ -1,36 +1,29 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LexiconDefNotFoundError = exports.InvalidLexiconError = exports.ValidationError = exports.lexiconDoc = exports.lexUserType = exports.lexRecord = exports.lexXrpcSubscription = exports.lexXrpcProcedure = exports.lexXrpcQuery = exports.lexXrpcError = exports.lexXrpcBody = exports.lexXrpcParameters = exports.lexPermissionSet = exports.lexObject = exports.lexToken = exports.lexPrimitiveArray = exports.lexArray = exports.lexBlob = exports.lexRefVariant = exports.lexRefUnion = exports.lexRef = exports.lexIpldType = exports.lexCidLink = exports.lexBytes = exports.lexPrimitive = exports.lexUnknown = exports.lexString = exports.lexStringFormat = exports.lexInteger = exports.lexBoolean = exports.lexLang = exports.languageSchema = void 0;
4
- exports.isValidLexiconDoc = isValidLexiconDoc;
5
- exports.isObj = isObj;
6
- exports.isDiscriminatedObject = isDiscriminatedObject;
7
- exports.parseLexiconDoc = parseLexiconDoc;
8
- const zod_1 = require("zod");
9
- const common_web_1 = require("@atproto/common-web");
10
- const syntax_1 = require("@atproto/syntax");
11
- const util_1 = require("./util");
12
- exports.languageSchema = zod_1.z
1
+ import { z } from 'zod';
2
+ import { validateLanguage } from '@atproto/common-web';
3
+ import { isValidNsid } from '@atproto/syntax';
4
+ import { requiredPropertiesRefinement } from './util.js';
5
+ export const languageSchema = z
13
6
  .string()
14
- .refine(common_web_1.validateLanguage, 'Invalid BCP47 language tag');
15
- exports.lexLang = zod_1.z.record(exports.languageSchema, zod_1.z.string().optional());
7
+ .refine(validateLanguage, 'Invalid BCP47 language tag');
8
+ export const lexLang = z.record(languageSchema, z.string().optional());
16
9
  // primitives
17
10
  // =
18
- exports.lexBoolean = zod_1.z.object({
19
- type: zod_1.z.literal('boolean'),
20
- description: zod_1.z.string().optional(),
21
- default: zod_1.z.boolean().optional(),
22
- const: zod_1.z.boolean().optional(),
11
+ export const lexBoolean = z.object({
12
+ type: z.literal('boolean'),
13
+ description: z.string().optional(),
14
+ default: z.boolean().optional(),
15
+ const: z.boolean().optional(),
23
16
  });
24
- exports.lexInteger = zod_1.z.object({
25
- type: zod_1.z.literal('integer'),
26
- description: zod_1.z.string().optional(),
27
- default: zod_1.z.number().int().optional(),
28
- minimum: zod_1.z.number().int().optional(),
29
- maximum: zod_1.z.number().int().optional(),
30
- enum: zod_1.z.number().int().array().optional(),
31
- const: zod_1.z.number().int().optional(),
17
+ export const lexInteger = z.object({
18
+ type: z.literal('integer'),
19
+ description: z.string().optional(),
20
+ default: z.number().int().optional(),
21
+ minimum: z.number().int().optional(),
22
+ maximum: z.number().int().optional(),
23
+ enum: z.number().int().array().optional(),
24
+ const: z.number().int().optional(),
32
25
  });
33
- exports.lexStringFormat = zod_1.z.enum([
26
+ export const lexStringFormat = z.enum([
34
27
  'datetime',
35
28
  'uri',
36
29
  'at-uri',
@@ -43,199 +36,199 @@ exports.lexStringFormat = zod_1.z.enum([
43
36
  'tid',
44
37
  'record-key',
45
38
  ]);
46
- exports.lexString = zod_1.z.object({
47
- type: zod_1.z.literal('string'),
48
- format: exports.lexStringFormat.optional(),
49
- description: zod_1.z.string().optional(),
50
- default: zod_1.z.string().optional(),
51
- minLength: zod_1.z.number().int().optional(),
52
- maxLength: zod_1.z.number().int().optional(),
53
- minGraphemes: zod_1.z.number().int().optional(),
54
- maxGraphemes: zod_1.z.number().int().optional(),
55
- enum: zod_1.z.string().array().optional(),
56
- const: zod_1.z.string().optional(),
57
- knownValues: zod_1.z.string().array().optional(),
39
+ export const lexString = z.object({
40
+ type: z.literal('string'),
41
+ format: lexStringFormat.optional(),
42
+ description: z.string().optional(),
43
+ default: z.string().optional(),
44
+ minLength: z.number().int().optional(),
45
+ maxLength: z.number().int().optional(),
46
+ minGraphemes: z.number().int().optional(),
47
+ maxGraphemes: z.number().int().optional(),
48
+ enum: z.string().array().optional(),
49
+ const: z.string().optional(),
50
+ knownValues: z.string().array().optional(),
58
51
  });
59
- exports.lexUnknown = zod_1.z.object({
60
- type: zod_1.z.literal('unknown'),
61
- description: zod_1.z.string().optional(),
52
+ export const lexUnknown = z.object({
53
+ type: z.literal('unknown'),
54
+ description: z.string().optional(),
62
55
  });
63
- exports.lexPrimitive = zod_1.z.discriminatedUnion('type', [
64
- exports.lexBoolean,
65
- exports.lexInteger,
66
- exports.lexString,
67
- exports.lexUnknown,
56
+ export const lexPrimitive = z.discriminatedUnion('type', [
57
+ lexBoolean,
58
+ lexInteger,
59
+ lexString,
60
+ lexUnknown,
68
61
  ]);
69
62
  // ipld types
70
63
  // =
71
- exports.lexBytes = zod_1.z.object({
72
- type: zod_1.z.literal('bytes'),
73
- description: zod_1.z.string().optional(),
74
- maxLength: zod_1.z.number().optional(),
75
- minLength: zod_1.z.number().optional(),
64
+ export const lexBytes = z.object({
65
+ type: z.literal('bytes'),
66
+ description: z.string().optional(),
67
+ maxLength: z.number().optional(),
68
+ minLength: z.number().optional(),
76
69
  });
77
- exports.lexCidLink = zod_1.z.object({
78
- type: zod_1.z.literal('cid-link'),
79
- description: zod_1.z.string().optional(),
70
+ export const lexCidLink = z.object({
71
+ type: z.literal('cid-link'),
72
+ description: z.string().optional(),
80
73
  });
81
- exports.lexIpldType = zod_1.z.discriminatedUnion('type', [exports.lexBytes, exports.lexCidLink]);
74
+ export const lexIpldType = z.discriminatedUnion('type', [lexBytes, lexCidLink]);
82
75
  // references
83
76
  // =
84
- exports.lexRef = zod_1.z.object({
85
- type: zod_1.z.literal('ref'),
86
- description: zod_1.z.string().optional(),
87
- ref: zod_1.z.string(),
77
+ export const lexRef = z.object({
78
+ type: z.literal('ref'),
79
+ description: z.string().optional(),
80
+ ref: z.string(),
88
81
  });
89
- exports.lexRefUnion = zod_1.z.object({
90
- type: zod_1.z.literal('union'),
91
- description: zod_1.z.string().optional(),
92
- refs: zod_1.z.string().array(),
93
- closed: zod_1.z.boolean().optional(),
82
+ export const lexRefUnion = z.object({
83
+ type: z.literal('union'),
84
+ description: z.string().optional(),
85
+ refs: z.string().array(),
86
+ closed: z.boolean().optional(),
94
87
  });
95
- exports.lexRefVariant = zod_1.z.discriminatedUnion('type', [exports.lexRef, exports.lexRefUnion]);
88
+ export const lexRefVariant = z.discriminatedUnion('type', [lexRef, lexRefUnion]);
96
89
  // blobs
97
90
  // =
98
- exports.lexBlob = zod_1.z.object({
99
- type: zod_1.z.literal('blob'),
100
- description: zod_1.z.string().optional(),
101
- accept: zod_1.z.string().array().optional(),
102
- maxSize: zod_1.z.number().optional(),
91
+ export const lexBlob = z.object({
92
+ type: z.literal('blob'),
93
+ description: z.string().optional(),
94
+ accept: z.string().array().optional(),
95
+ maxSize: z.number().optional(),
103
96
  });
104
97
  // complex types
105
98
  // =
106
- exports.lexArray = zod_1.z.object({
107
- type: zod_1.z.literal('array'),
108
- description: zod_1.z.string().optional(),
109
- items: zod_1.z.discriminatedUnion('type', [
99
+ export const lexArray = z.object({
100
+ type: z.literal('array'),
101
+ description: z.string().optional(),
102
+ items: z.discriminatedUnion('type', [
110
103
  // lexPrimitive
111
- exports.lexBoolean,
112
- exports.lexInteger,
113
- exports.lexString,
114
- exports.lexUnknown,
104
+ lexBoolean,
105
+ lexInteger,
106
+ lexString,
107
+ lexUnknown,
115
108
  // lexIpldType
116
- exports.lexBytes,
117
- exports.lexCidLink,
109
+ lexBytes,
110
+ lexCidLink,
118
111
  // lexRefVariant
119
- exports.lexRef,
120
- exports.lexRefUnion,
112
+ lexRef,
113
+ lexRefUnion,
121
114
  // other
122
- exports.lexBlob,
115
+ lexBlob,
123
116
  ]),
124
- minLength: zod_1.z.number().int().optional(),
125
- maxLength: zod_1.z.number().int().optional(),
117
+ minLength: z.number().int().optional(),
118
+ maxLength: z.number().int().optional(),
126
119
  });
127
- exports.lexPrimitiveArray = exports.lexArray.merge(zod_1.z.object({
128
- items: exports.lexPrimitive,
120
+ export const lexPrimitiveArray = lexArray.merge(z.object({
121
+ items: lexPrimitive,
129
122
  }));
130
- exports.lexToken = zod_1.z.object({
131
- type: zod_1.z.literal('token'),
132
- description: zod_1.z.string().optional(),
123
+ export const lexToken = z.object({
124
+ type: z.literal('token'),
125
+ description: z.string().optional(),
133
126
  });
134
- exports.lexObject = zod_1.z
127
+ export const lexObject = z
135
128
  .object({
136
- type: zod_1.z.literal('object'),
137
- description: zod_1.z.string().optional(),
138
- required: zod_1.z.string().array().optional(),
139
- nullable: zod_1.z.string().array().optional(),
140
- properties: zod_1.z.record(zod_1.z.string(), zod_1.z.discriminatedUnion('type', [
141
- exports.lexArray,
129
+ type: z.literal('object'),
130
+ description: z.string().optional(),
131
+ required: z.string().array().optional(),
132
+ nullable: z.string().array().optional(),
133
+ properties: z.record(z.string(), z.discriminatedUnion('type', [
134
+ lexArray,
142
135
  // lexPrimitive
143
- exports.lexBoolean,
144
- exports.lexInteger,
145
- exports.lexString,
146
- exports.lexUnknown,
136
+ lexBoolean,
137
+ lexInteger,
138
+ lexString,
139
+ lexUnknown,
147
140
  // lexIpldType
148
- exports.lexBytes,
149
- exports.lexCidLink,
141
+ lexBytes,
142
+ lexCidLink,
150
143
  // lexRefVariant
151
- exports.lexRef,
152
- exports.lexRefUnion,
144
+ lexRef,
145
+ lexRefUnion,
153
146
  // other
154
- exports.lexBlob,
147
+ lexBlob,
155
148
  ])),
156
149
  })
157
- .superRefine(util_1.requiredPropertiesRefinement);
150
+ .superRefine(requiredPropertiesRefinement);
158
151
  // permissions
159
152
  // =
160
- const lexPermission = zod_1.z.intersection(zod_1.z.object({
161
- type: zod_1.z.literal('permission'),
162
- resource: zod_1.z.string().nonempty(),
163
- }), zod_1.z.record(zod_1.z.string(), zod_1.z
153
+ const lexPermission = z.intersection(z.object({
154
+ type: z.literal('permission'),
155
+ resource: z.string().nonempty(),
156
+ }), z.record(z.string(), z
164
157
  .union([
165
- zod_1.z.array(zod_1.z.union([zod_1.z.string(), zod_1.z.number().int(), zod_1.z.boolean()])),
166
- zod_1.z.boolean(),
167
- zod_1.z.number().int(),
168
- zod_1.z.string(),
158
+ z.array(z.union([z.string(), z.number().int(), z.boolean()])),
159
+ z.boolean(),
160
+ z.number().int(),
161
+ z.string(),
169
162
  ])
170
163
  .optional()));
171
- exports.lexPermissionSet = zod_1.z.object({
172
- type: zod_1.z.literal('permission-set'),
173
- description: zod_1.z.string().optional(),
174
- title: zod_1.z.string().optional(),
175
- 'title:lang': exports.lexLang.optional(),
176
- detail: zod_1.z.string().optional(),
177
- 'detail:lang': exports.lexLang.optional(),
178
- permissions: zod_1.z.array(lexPermission),
164
+ export const lexPermissionSet = z.object({
165
+ type: z.literal('permission-set'),
166
+ description: z.string().optional(),
167
+ title: z.string().optional(),
168
+ 'title:lang': lexLang.optional(),
169
+ detail: z.string().optional(),
170
+ 'detail:lang': lexLang.optional(),
171
+ permissions: z.array(lexPermission),
179
172
  });
180
173
  // xrpc
181
174
  // =
182
- exports.lexXrpcParameters = zod_1.z
175
+ export const lexXrpcParameters = z
183
176
  .object({
184
- type: zod_1.z.literal('params'),
185
- description: zod_1.z.string().optional(),
186
- required: zod_1.z.string().array().optional(),
187
- properties: zod_1.z.record(zod_1.z.string(), zod_1.z.discriminatedUnion('type', [
188
- exports.lexPrimitiveArray,
177
+ type: z.literal('params'),
178
+ description: z.string().optional(),
179
+ required: z.string().array().optional(),
180
+ properties: z.record(z.string(), z.discriminatedUnion('type', [
181
+ lexPrimitiveArray,
189
182
  // lexPrimitive
190
- exports.lexBoolean,
191
- exports.lexInteger,
192
- exports.lexString,
193
- exports.lexUnknown,
183
+ lexBoolean,
184
+ lexInteger,
185
+ lexString,
186
+ lexUnknown,
194
187
  ])),
195
188
  })
196
- .superRefine(util_1.requiredPropertiesRefinement);
197
- exports.lexXrpcBody = zod_1.z.object({
198
- description: zod_1.z.string().optional(),
199
- encoding: zod_1.z.string(),
189
+ .superRefine(requiredPropertiesRefinement);
190
+ export const lexXrpcBody = z.object({
191
+ description: z.string().optional(),
192
+ encoding: z.string(),
200
193
  // @NOTE using discriminatedUnion with a refined schema requires zod >= 4
201
- schema: zod_1.z.union([exports.lexRefVariant, exports.lexObject]).optional(),
194
+ schema: z.union([lexRefVariant, lexObject]).optional(),
202
195
  });
203
- exports.lexXrpcError = zod_1.z.object({
204
- name: zod_1.z.string(),
205
- description: zod_1.z.string().optional(),
196
+ export const lexXrpcError = z.object({
197
+ name: z.string(),
198
+ description: z.string().optional(),
206
199
  });
207
- exports.lexXrpcQuery = zod_1.z.object({
208
- type: zod_1.z.literal('query'),
209
- description: zod_1.z.string().optional(),
210
- parameters: exports.lexXrpcParameters.optional(),
211
- output: exports.lexXrpcBody.optional(),
212
- errors: exports.lexXrpcError.array().optional(),
200
+ export const lexXrpcQuery = z.object({
201
+ type: z.literal('query'),
202
+ description: z.string().optional(),
203
+ parameters: lexXrpcParameters.optional(),
204
+ output: lexXrpcBody.optional(),
205
+ errors: lexXrpcError.array().optional(),
213
206
  });
214
- exports.lexXrpcProcedure = zod_1.z.object({
215
- type: zod_1.z.literal('procedure'),
216
- description: zod_1.z.string().optional(),
217
- parameters: exports.lexXrpcParameters.optional(),
218
- input: exports.lexXrpcBody.optional(),
219
- output: exports.lexXrpcBody.optional(),
220
- errors: exports.lexXrpcError.array().optional(),
207
+ export const lexXrpcProcedure = z.object({
208
+ type: z.literal('procedure'),
209
+ description: z.string().optional(),
210
+ parameters: lexXrpcParameters.optional(),
211
+ input: lexXrpcBody.optional(),
212
+ output: lexXrpcBody.optional(),
213
+ errors: lexXrpcError.array().optional(),
221
214
  });
222
- exports.lexXrpcSubscription = zod_1.z.object({
223
- type: zod_1.z.literal('subscription'),
224
- description: zod_1.z.string().optional(),
225
- parameters: exports.lexXrpcParameters.optional(),
226
- message: zod_1.z.object({
227
- description: zod_1.z.string().optional(),
228
- schema: exports.lexRefUnion,
215
+ export const lexXrpcSubscription = z.object({
216
+ type: z.literal('subscription'),
217
+ description: z.string().optional(),
218
+ parameters: lexXrpcParameters.optional(),
219
+ message: z.object({
220
+ description: z.string().optional(),
221
+ schema: lexRefUnion,
229
222
  }),
230
- errors: exports.lexXrpcError.array().optional(),
223
+ errors: lexXrpcError.array().optional(),
231
224
  });
232
225
  // database
233
226
  // =
234
- exports.lexRecord = zod_1.z.object({
235
- type: zod_1.z.literal('record'),
236
- description: zod_1.z.string().optional(),
237
- key: zod_1.z.string().optional(),
238
- record: exports.lexObject,
227
+ export const lexRecord = z.object({
228
+ type: z.literal('record'),
229
+ description: z.string().optional(),
230
+ key: z.string().optional(),
231
+ record: lexObject,
239
232
  });
240
233
  // core
241
234
  // =
@@ -243,7 +236,7 @@ exports.lexRecord = zod_1.z.object({
243
236
  // lexXrpcProperty and lexObject are refined
244
237
  // `z.union` would work, but it's too slow
245
238
  // see #915 for details
246
- exports.lexUserType = zod_1.z.custom((val) => {
239
+ export const lexUserType = z.custom((val) => {
247
240
  if (!val || typeof val !== 'object') {
248
241
  return;
249
242
  }
@@ -252,35 +245,35 @@ exports.lexUserType = zod_1.z.custom((val) => {
252
245
  }
253
246
  switch (val['type']) {
254
247
  case 'record':
255
- return exports.lexRecord.parse(val);
248
+ return lexRecord.parse(val);
256
249
  case 'permission-set':
257
- return exports.lexPermissionSet.parse(val);
250
+ return lexPermissionSet.parse(val);
258
251
  case 'query':
259
- return exports.lexXrpcQuery.parse(val);
252
+ return lexXrpcQuery.parse(val);
260
253
  case 'procedure':
261
- return exports.lexXrpcProcedure.parse(val);
254
+ return lexXrpcProcedure.parse(val);
262
255
  case 'subscription':
263
- return exports.lexXrpcSubscription.parse(val);
256
+ return lexXrpcSubscription.parse(val);
264
257
  case 'blob':
265
- return exports.lexBlob.parse(val);
258
+ return lexBlob.parse(val);
266
259
  case 'array':
267
- return exports.lexArray.parse(val);
260
+ return lexArray.parse(val);
268
261
  case 'token':
269
- return exports.lexToken.parse(val);
262
+ return lexToken.parse(val);
270
263
  case 'object':
271
- return exports.lexObject.parse(val);
264
+ return lexObject.parse(val);
272
265
  case 'boolean':
273
- return exports.lexBoolean.parse(val);
266
+ return lexBoolean.parse(val);
274
267
  case 'integer':
275
- return exports.lexInteger.parse(val);
268
+ return lexInteger.parse(val);
276
269
  case 'string':
277
- return exports.lexString.parse(val);
270
+ return lexString.parse(val);
278
271
  case 'bytes':
279
- return exports.lexBytes.parse(val);
272
+ return lexBytes.parse(val);
280
273
  case 'cid-link':
281
- return exports.lexCidLink.parse(val);
274
+ return lexCidLink.parse(val);
282
275
  case 'unknown':
283
- return exports.lexUnknown.parse(val);
276
+ return lexUnknown.parse(val);
284
277
  }
285
278
  }, (val) => {
286
279
  if (!val || typeof val !== 'object') {
@@ -306,15 +299,15 @@ exports.lexUserType = zod_1.z.custom((val) => {
306
299
  fatal: true,
307
300
  };
308
301
  });
309
- exports.lexiconDoc = zod_1.z
302
+ export const lexiconDoc = z
310
303
  .object({
311
- lexicon: zod_1.z.literal(1),
312
- id: zod_1.z.string().refine(syntax_1.isValidNsid, {
304
+ lexicon: z.literal(1),
305
+ id: z.string().refine(isValidNsid, {
313
306
  message: 'Must be a valid NSID',
314
307
  }),
315
- revision: zod_1.z.number().optional(),
316
- description: zod_1.z.string().optional(),
317
- defs: zod_1.z.record(zod_1.z.string(), exports.lexUserType),
308
+ revision: z.number().optional(),
309
+ description: z.string().optional(),
310
+ defs: z.record(z.string(), lexUserType),
318
311
  })
319
312
  .refine((doc) => {
320
313
  for (const [defId, def] of Object.entries(doc.defs)) {
@@ -333,26 +326,23 @@ exports.lexiconDoc = zod_1.z
333
326
  });
334
327
  // helpers
335
328
  // =
336
- function isValidLexiconDoc(v) {
337
- return exports.lexiconDoc.safeParse(v).success;
329
+ export function isValidLexiconDoc(v) {
330
+ return lexiconDoc.safeParse(v).success;
338
331
  }
339
- function isObj(v) {
332
+ export function isObj(v) {
340
333
  return v != null && typeof v === 'object';
341
334
  }
342
- function isDiscriminatedObject(v) {
335
+ export function isDiscriminatedObject(v) {
343
336
  return isObj(v) && '$type' in v && typeof v.$type === 'string';
344
337
  }
345
- function parseLexiconDoc(v) {
346
- exports.lexiconDoc.parse(v);
338
+ export function parseLexiconDoc(v) {
339
+ lexiconDoc.parse(v);
347
340
  return v;
348
341
  }
349
- class ValidationError extends Error {
342
+ export class ValidationError extends Error {
350
343
  }
351
- exports.ValidationError = ValidationError;
352
- class InvalidLexiconError extends Error {
344
+ export class InvalidLexiconError extends Error {
353
345
  }
354
- exports.InvalidLexiconError = InvalidLexiconError;
355
- class LexiconDefNotFoundError extends Error {
346
+ export class LexiconDefNotFoundError extends Error {
356
347
  }
357
- exports.LexiconDefNotFoundError = LexiconDefNotFoundError;
358
348
  //# sourceMappingURL=types.js.map