@atcute/lex-cli 1.1.2 → 2.0.1

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/dist/schema.js DELETED
@@ -1,174 +0,0 @@
1
- import * as v from '@badrap/valita';
2
- const integerType = v
3
- .number()
4
- .assert((v) => Number.isInteger(v) && v >= 0, 'Number is expected to be a positive integer');
5
- export const booleanSchema = v.object({
6
- type: v.literal('boolean'),
7
- description: v.string().optional(),
8
- default: v.boolean().optional(),
9
- const: v.boolean().optional(),
10
- });
11
- export const integerSchema = v.object({
12
- type: v.literal('integer'),
13
- description: v.string().optional(),
14
- default: integerType.optional(),
15
- const: integerType.optional(),
16
- enum: v.array(v.number()).optional(),
17
- maximum: integerType.optional(),
18
- minimum: integerType.optional(),
19
- });
20
- export const stringSchema = v.object({
21
- type: v.literal('string'),
22
- description: v.string().optional(),
23
- format: v
24
- .union(v.literal('at-identifier'), v.literal('at-uri'), v.literal('cid'), v.literal('datetime'), v.literal('did'), v.literal('handle'), v.literal('language'), v.literal('nsid'), v.literal('record-key'), v.literal('tid'), v.literal('uri'))
25
- .optional(),
26
- default: v.string().optional(),
27
- const: v.string().optional(),
28
- enum: v.array(v.string()).optional(),
29
- knownValues: v.array(v.string()).optional(),
30
- maxLength: integerType.optional(),
31
- minLength: integerType.optional(),
32
- maxGraphemes: integerType.optional(),
33
- minGraphemes: integerType.optional(),
34
- });
35
- export const unknownSchema = v.object({
36
- type: v.literal('unknown'),
37
- description: v.string().optional(),
38
- });
39
- export const primitiveSchema = v.union(booleanSchema, integerSchema, stringSchema, unknownSchema);
40
- export const bytesSchema = v.object({
41
- type: v.literal('bytes'),
42
- description: v.string().optional(),
43
- maxLength: integerType.optional(),
44
- minLength: integerType.optional(),
45
- });
46
- export const cidLinkSchema = v.object({
47
- type: v.literal('cid-link'),
48
- description: v.string().optional(),
49
- });
50
- export const ipldTypeSchema = v.union(bytesSchema, cidLinkSchema);
51
- export const refSchema = v.object({
52
- type: v.literal('ref'),
53
- description: v.string().optional(),
54
- ref: v.string(),
55
- });
56
- export const refUnionSchema = v
57
- .object({
58
- type: v.literal('union'),
59
- description: v.string().optional(),
60
- refs: v.array(v.string()),
61
- closed: v.boolean().optional(() => false),
62
- })
63
- .assert((v) => !v.closed || v.refs.length > 0, `A closed union can't have empty refs list`);
64
- export const refVariantSchema = v.union(refSchema, refUnionSchema);
65
- export const blobSchema = v.object({
66
- type: v.literal('blob'),
67
- description: v.string().optional(),
68
- accept: v.array(v.string()).optional(),
69
- maxSize: integerType.optional(),
70
- });
71
- export const arraySchema = v.object({
72
- type: v.literal('array'),
73
- description: v.string().optional(),
74
- items: v.union(primitiveSchema, ipldTypeSchema, blobSchema, refVariantSchema),
75
- maxLength: integerType.optional(),
76
- minLength: integerType.optional(),
77
- });
78
- export const primitiveArraySchema = arraySchema.extend({
79
- items: primitiveSchema,
80
- });
81
- export const tokenSchema = v.object({
82
- type: v.literal('token'),
83
- description: v.string().optional(),
84
- });
85
- const refineRequiredProperties = (obj) => {
86
- for (const field of obj.required) {
87
- if (obj.properties[field] === undefined) {
88
- return v.err(`Required field "${field}" not defined`);
89
- }
90
- }
91
- return v.ok(obj);
92
- };
93
- export const objectSchema = v
94
- .object({
95
- type: v.literal('object'),
96
- description: v.string().optional(),
97
- required: v.array(v.string()).optional(() => []),
98
- nullable: v.array(v.string()).optional(() => []),
99
- properties: v.record(v.union(refVariantSchema, ipldTypeSchema, arraySchema, blobSchema, primitiveSchema)),
100
- })
101
- .chain(refineRequiredProperties);
102
- export const xrpcParametersSchema = v
103
- .object({
104
- type: v.literal('params'),
105
- description: v.string().optional(),
106
- required: v.array(v.string()).optional(() => []),
107
- properties: v.record(v.union(primitiveSchema, primitiveArraySchema)),
108
- })
109
- .chain(refineRequiredProperties);
110
- export const xrpcBodySchema = v.object({
111
- description: v.string().optional(),
112
- encoding: v.string(),
113
- schema: v.union(refVariantSchema, objectSchema).optional(),
114
- });
115
- export const xrpcSubscriptionMessageSchema = v.object({
116
- description: v.string().optional(),
117
- schema: v.union(refVariantSchema, objectSchema).optional(),
118
- });
119
- export const xrpcErrorSchema = v.object({
120
- name: v.string(),
121
- description: v.string().optional(),
122
- });
123
- export const xrpcQuerySchema = v.object({
124
- type: v.literal('query'),
125
- description: v.string().optional(),
126
- parameters: xrpcParametersSchema.optional(),
127
- output: xrpcBodySchema.optional(),
128
- errors: v.array(xrpcErrorSchema).optional(),
129
- });
130
- export const xrpcProcedureSchema = v.object({
131
- type: v.literal('procedure'),
132
- description: v.string().optional(),
133
- parameters: xrpcParametersSchema.optional(),
134
- input: xrpcBodySchema.optional(),
135
- output: xrpcBodySchema.optional(),
136
- errors: v.array(xrpcErrorSchema).optional(),
137
- });
138
- export const xrpcSubscriptionSchema = v.object({
139
- type: v.literal('subscription'),
140
- description: v.string().optional(),
141
- parameters: xrpcParametersSchema.optional(),
142
- message: xrpcSubscriptionMessageSchema.optional(),
143
- errors: v.array(xrpcErrorSchema).optional(),
144
- });
145
- export const recordSchema = v.object({
146
- type: v.literal('record'),
147
- description: v.string().optional(),
148
- key: v.string().optional(),
149
- record: objectSchema,
150
- });
151
- export const userTypeSchema = v.union(recordSchema, xrpcQuerySchema, xrpcProcedureSchema, xrpcSubscriptionSchema, blobSchema, arraySchema, tokenSchema, objectSchema, booleanSchema, integerSchema, stringSchema, bytesSchema, cidLinkSchema, unknownSchema);
152
- const NSID_RE = /^[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(\.[a-zA-Z]([a-zA-Z]{0,61}[a-zA-Z])?)$/;
153
- const nsidType = v.string().assert((v) => NSID_RE.test(v), `string doesn't match nsid format`);
154
- export const documentSchema = v
155
- .object({
156
- lexicon: v.literal(1),
157
- id: nsidType,
158
- revision: v.number().optional(),
159
- description: v.string().optional(),
160
- defs: v.record(userTypeSchema),
161
- })
162
- .chain((doc) => {
163
- const defs = doc.defs;
164
- for (const id in defs) {
165
- const def = defs[id];
166
- const type = def.type;
167
- if (id !== 'main' &&
168
- (type === 'record' || type === 'query' || type === 'procedure' || type === 'subscription')) {
169
- return v.err({ message: `${type} must be the \`main\` definition`, path: ['defs', id] });
170
- }
171
- }
172
- return v.ok(doc);
173
- });
174
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}