@atcute/lex-cli 1.1.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/schema.js CHANGED
@@ -1,174 +1,233 @@
1
1
  import * as v from '@badrap/valita';
2
- const integerType = v
2
+ // tsc dislikes this schema with the amount of type expansion that happens here.
3
+ // the interface declaration allows tsc to just reference it instead of
4
+ // expanding on every type reference.
5
+ const _integer = v
3
6
  .number()
4
- .assert((v) => Number.isInteger(v) && v >= 0, 'Number is expected to be a positive integer');
5
- export const booleanSchema = v.object({
7
+ .assert((input) => input >= 0 && Number.isSafeInteger(input), `expected non-negative integer`);
8
+ const integer = _integer;
9
+ const _lexBoolean = v.object({
6
10
  type: v.literal('boolean'),
7
11
  description: v.string().optional(),
8
12
  default: v.boolean().optional(),
9
13
  const: v.boolean().optional(),
10
14
  });
11
- export const integerSchema = v.object({
15
+ export const lexBoolean = _lexBoolean;
16
+ const _lexInteger = v.object({
12
17
  type: v.literal('integer'),
13
18
  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
+ default: integer.optional(),
20
+ minimum: integer.optional(),
21
+ maximum: integer.optional(),
22
+ enum: v.array(integer).optional(),
23
+ const: integer.optional(),
19
24
  });
20
- export const stringSchema = v.object({
25
+ export const lexInteger = _lexInteger;
26
+ const _lexStringFormat = v.union(v.literal('datetime'), v.literal('uri'), v.literal('at-uri'), v.literal('did'), v.literal('handle'), v.literal('at-identifier'), v.literal('nsid'), v.literal('cid'), v.literal('language'), v.literal('tid'), v.literal('record-key'));
27
+ export const lexStringFormat = _lexStringFormat;
28
+ const _lexString = v.object({
21
29
  type: v.literal('string'),
30
+ format: lexStringFormat.optional(),
22
31
  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
32
  default: v.string().optional(),
27
- const: v.string().optional(),
33
+ minLength: integer.optional(),
34
+ maxLength: integer.optional(),
35
+ minGraphemes: integer.optional(),
36
+ maxGraphemes: integer.optional(),
28
37
  enum: v.array(v.string()).optional(),
38
+ const: v.string().optional(),
29
39
  knownValues: v.array(v.string()).optional(),
30
- maxLength: integerType.optional(),
31
- minLength: integerType.optional(),
32
- maxGraphemes: integerType.optional(),
33
- minGraphemes: integerType.optional(),
34
40
  });
35
- export const unknownSchema = v.object({
41
+ export const lexString = _lexString;
42
+ const _lexUnknown = v.object({
36
43
  type: v.literal('unknown'),
37
44
  description: v.string().optional(),
38
45
  });
39
- export const primitiveSchema = v.union(booleanSchema, integerSchema, stringSchema, unknownSchema);
40
- export const bytesSchema = v.object({
46
+ export const lexUnknown = _lexUnknown;
47
+ const _lexPrimitive = v.union(lexBoolean, lexInteger, lexString, lexUnknown);
48
+ export const lexPrimitive = _lexPrimitive;
49
+ const _lexBytes = v.object({
41
50
  type: v.literal('bytes'),
42
51
  description: v.string().optional(),
43
- maxLength: integerType.optional(),
44
- minLength: integerType.optional(),
52
+ minLength: integer.optional(),
53
+ maxLength: integer.optional(),
45
54
  });
46
- export const cidLinkSchema = v.object({
55
+ export const lexBytes = _lexBytes;
56
+ const _lexCidLink = v.object({
47
57
  type: v.literal('cid-link'),
48
58
  description: v.string().optional(),
49
59
  });
50
- export const ipldTypeSchema = v.union(bytesSchema, cidLinkSchema);
51
- export const refSchema = v.object({
60
+ export const lexCidLink = _lexCidLink;
61
+ const _lexIpldType = v.union(lexBytes, lexCidLink);
62
+ export const lexIpldType = _lexIpldType;
63
+ const REF_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-Z0-9]{0,62}?)?(?:#[a-zA-Z][a-zA-Z0-9_]{0,62}?)?$/;
64
+ const refString = v.string().assert((input) => REF_RE.test(input));
65
+ const _lexRef = v.object({
52
66
  type: v.literal('ref'),
53
67
  description: v.string().optional(),
54
- ref: v.string(),
68
+ ref: refString,
55
69
  });
56
- export const refUnionSchema = v
57
- .object({
70
+ export const lexRef = _lexRef;
71
+ const _lexRefUnion = v.object({
58
72
  type: v.literal('union'),
59
73
  description: v.string().optional(),
60
- refs: v.array(v.string()),
74
+ refs: v.array(refString),
61
75
  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({
76
+ });
77
+ export const lexRefUnion = _lexRefUnion;
78
+ const _lexRefVariant = v.union(lexRef, lexRefUnion);
79
+ export const lexRefVariant = _lexRefVariant;
80
+ const _lexBlob = v.object({
66
81
  type: v.literal('blob'),
67
82
  description: v.string().optional(),
68
83
  accept: v.array(v.string()).optional(),
69
- maxSize: integerType.optional(),
84
+ maxSize: integer.optional(),
70
85
  });
71
- export const arraySchema = v.object({
86
+ export const lexBlob = _lexBlob;
87
+ const _lexArray = v.object({
72
88
  type: v.literal('array'),
73
89
  description: v.string().optional(),
74
- items: v.union(primitiveSchema, ipldTypeSchema, blobSchema, refVariantSchema),
75
- maxLength: integerType.optional(),
76
- minLength: integerType.optional(),
90
+ items: v.union(lexPrimitive, lexIpldType, lexRefVariant, lexBlob),
91
+ minLength: integer.optional(),
92
+ maxLength: integer.optional(),
77
93
  });
78
- export const primitiveArraySchema = arraySchema.extend({
79
- items: primitiveSchema,
94
+ export const lexArray = _lexArray;
95
+ const _lexPrimitiveArray = lexArray.extend({
96
+ items: lexPrimitive,
80
97
  });
81
- export const tokenSchema = v.object({
98
+ export const lexPrimitiveArray = _lexPrimitiveArray;
99
+ const _lexToken = v.object({
82
100
  type: v.literal('token'),
83
101
  description: v.string().optional(),
84
102
  });
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`);
103
+ export const lexToken = _lexToken;
104
+ const KEY_RE = /^[a-zA-Z][a-zA-Z0-9_]{0,62}?$/;
105
+ const refineObjectProperties = (input) => {
106
+ const { required = [], properties } = input;
107
+ for (const key in properties) {
108
+ if (!KEY_RE.test(key)) {
109
+ return v.err({
110
+ message: `invalid property key`,
111
+ path: ['properties', key],
112
+ });
113
+ }
114
+ }
115
+ if (required.length > 0) {
116
+ if (properties === undefined) {
117
+ return v.err({
118
+ message: `required fields specified but no properties defined`,
119
+ path: ['properties'],
120
+ });
121
+ }
122
+ for (const key of required) {
123
+ if (properties[key] === undefined) {
124
+ return v.err({
125
+ message: `required fields not defined`,
126
+ path: ['properties', key],
127
+ });
128
+ }
89
129
  }
90
130
  }
91
- return v.ok(obj);
131
+ return v.ok(input);
92
132
  };
93
- export const objectSchema = v
133
+ const _lexObject = v
94
134
  .object({
95
135
  type: v.literal('object'),
96
136
  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)),
137
+ required: v.array(v.string()).optional(),
138
+ nullable: v.array(v.string()).optional(),
139
+ properties: v.record(v.union(lexArray, lexPrimitive, lexIpldType, lexRefVariant, lexBlob)).optional(),
100
140
  })
101
- .chain(refineRequiredProperties);
102
- export const xrpcParametersSchema = v
141
+ .chain(refineObjectProperties);
142
+ export const lexObject = _lexObject;
143
+ const _lexXrpcParameters = v
103
144
  .object({
104
145
  type: v.literal('params'),
105
146
  description: v.string().optional(),
106
- required: v.array(v.string()).optional(() => []),
107
- properties: v.record(v.union(primitiveSchema, primitiveArraySchema)),
147
+ required: v.array(v.string()).optional(),
148
+ properties: v.record(v.union(lexPrimitive, lexPrimitiveArray)).optional(),
108
149
  })
109
- .chain(refineRequiredProperties);
110
- export const xrpcBodySchema = v.object({
150
+ .chain(refineObjectProperties);
151
+ export const lexXrpcParameters = _lexXrpcParameters;
152
+ const _lexXrpcBody = v.object({
111
153
  description: v.string().optional(),
112
154
  encoding: v.string(),
113
- schema: v.union(refVariantSchema, objectSchema).optional(),
155
+ schema: v.union(lexRefVariant, lexObject).optional(),
114
156
  });
115
- export const xrpcSubscriptionMessageSchema = v.object({
157
+ export const lexXrpcBody = _lexXrpcBody;
158
+ const _lexXrpcSubscriptionMessage = v.object({
116
159
  description: v.string().optional(),
117
- schema: v.union(refVariantSchema, objectSchema).optional(),
160
+ schema: v.union(lexRefVariant, lexObject).optional(),
118
161
  });
119
- export const xrpcErrorSchema = v.object({
162
+ export const lexXrpcSubscriptionMessage = _lexXrpcSubscriptionMessage;
163
+ const _lexXrpcError = v.object({
120
164
  name: v.string(),
121
165
  description: v.string().optional(),
122
166
  });
123
- export const xrpcQuerySchema = v.object({
167
+ export const lexXrpcError = _lexXrpcError;
168
+ const _lexXrpcQuery = v.object({
124
169
  type: v.literal('query'),
125
170
  description: v.string().optional(),
126
- parameters: xrpcParametersSchema.optional(),
127
- output: xrpcBodySchema.optional(),
128
- errors: v.array(xrpcErrorSchema).optional(),
171
+ parameters: lexXrpcParameters.optional(),
172
+ output: lexXrpcBody.optional(),
173
+ errors: v.array(lexXrpcError).optional(),
129
174
  });
130
- export const xrpcProcedureSchema = v.object({
175
+ export const lexXrpcQuery = _lexXrpcQuery;
176
+ const _lexXrpcProcedure = v.object({
131
177
  type: v.literal('procedure'),
132
178
  description: v.string().optional(),
133
- parameters: xrpcParametersSchema.optional(),
134
- input: xrpcBodySchema.optional(),
135
- output: xrpcBodySchema.optional(),
136
- errors: v.array(xrpcErrorSchema).optional(),
179
+ parameters: lexXrpcParameters.optional(),
180
+ input: lexXrpcBody.optional(),
181
+ output: lexXrpcBody.optional(),
182
+ errors: v.array(lexXrpcError).optional(),
137
183
  });
138
- export const xrpcSubscriptionSchema = v.object({
184
+ export const lexXrpcProcedure = _lexXrpcProcedure;
185
+ const _lexXrpcSubscription = v.object({
139
186
  type: v.literal('subscription'),
140
187
  description: v.string().optional(),
141
- parameters: xrpcParametersSchema.optional(),
142
- message: xrpcSubscriptionMessageSchema.optional(),
143
- errors: v.array(xrpcErrorSchema).optional(),
188
+ parameters: lexXrpcParameters.optional(),
189
+ message: lexXrpcSubscriptionMessage.optional(),
190
+ errors: v.array(lexXrpcError).optional(),
144
191
  });
145
- export const recordSchema = v.object({
192
+ export const lexXrpcSubscription = _lexXrpcSubscription;
193
+ const LITERAL_KEY_RE = /^literal:(.+)$/;
194
+ const _lexRecord = v.object({
146
195
  type: v.literal('record'),
147
196
  description: v.string().optional(),
148
- key: v.string().optional(),
149
- record: objectSchema,
197
+ key: v
198
+ .union(v.literal('tid'), v.literal('nsid'), v.literal('any'), v.string().assert((input) => LITERAL_KEY_RE.test(input)))
199
+ .optional(() => 'any'),
200
+ record: lexObject,
150
201
  });
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
202
+ export const lexRecord = _lexRecord;
203
+ const _lexUserType = v.union(lexRecord, lexXrpcQuery, lexXrpcProcedure, lexXrpcSubscription, lexObject, lexArray, lexToken, lexIpldType, lexBlob, lexPrimitive);
204
+ export const lexUserType = _lexUserType;
205
+ 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-Z0-9]{0,62})?)$/;
206
+ const _lexiconDoc = v
155
207
  .object({
156
208
  lexicon: v.literal(1),
157
- id: nsidType,
158
- revision: v.number().optional(),
209
+ id: v.string().assert((input) => NSID_RE.test(input), `must be valid nsid`),
210
+ revision: integer.optional(),
159
211
  description: v.string().optional(),
160
- defs: v.record(userTypeSchema),
212
+ // defs: v.record(v.pipe(v.string(), v.regex(/^[a-zA-Z][a-zA-Z0-9_]{0,62}?$/)), lexUserType),
213
+ defs: v.record(lexUserType),
161
214
  })
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] });
215
+ .chain((input) => {
216
+ const { defs } = input;
217
+ for (const key in defs) {
218
+ const def = defs[key];
219
+ if (key !== 'main' &&
220
+ (def.type === 'record' ||
221
+ def.type === 'procedure' ||
222
+ def.type === 'query' ||
223
+ def.type === 'subscription')) {
224
+ return v.err({
225
+ message: `records, procedures, queries and subscriptions must be the main definition`,
226
+ path: ['defs', key],
227
+ });
170
228
  }
171
229
  }
172
- return v.ok(doc);
230
+ return v.ok(input);
173
231
  });
232
+ export const lexiconDoc = _lexiconDoc;
174
233
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@atcute/lex-cli",
4
- "version": "1.1.2",
4
+ "version": "2.0.0",
5
5
  "description": "cli tool to generate type definitions for atcute",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -16,14 +16,18 @@
16
16
  "cli.mjs"
17
17
  ],
18
18
  "bin": "./cli.mjs",
19
+ "exports": {
20
+ ".": "./dist/index.js"
21
+ },
19
22
  "dependencies": {
20
- "@badrap/valita": "^0.4.2",
21
- "@externdefs/collider": "^0.1.0",
23
+ "@badrap/valita": "^0.4.4",
24
+ "@externdefs/collider": "^0.3.0",
22
25
  "picocolors": "^1.1.1",
23
- "prettier": "^3.4.2"
26
+ "prettier": "^3.5.3"
24
27
  },
25
28
  "devDependencies": {
26
- "@types/node": "^22.12.0"
29
+ "@types/node": "^22.15.17",
30
+ "@atcute/lexicons": "^1.0.0"
27
31
  },
28
32
  "scripts": {
29
33
  "build": "tsc",
package/src/cli.ts ADDED
@@ -0,0 +1,100 @@
1
+ import * as fs from 'node:fs/promises';
2
+ import * as path from 'node:path';
3
+
4
+ import { Builtins, Command, Option, Program } from '@externdefs/collider';
5
+ import pc from 'picocolors';
6
+
7
+ import { generateLexiconApi } from './codegen.js';
8
+ import type { LexiconConfig } from './index.js';
9
+ import { lexiconDoc, type LexiconDoc } from './schema.js';
10
+
11
+ const program = new Program({ binaryName: 'lex-cli' });
12
+
13
+ program.register(Builtins.HelpCommand);
14
+
15
+ program.register(
16
+ class GenerateCommand extends Command {
17
+ static override paths = [['generate']];
18
+
19
+ static override usage = Command.Usage({
20
+ description: `Generates TypeScript schema`,
21
+ });
22
+
23
+ config = Option.String(['-c', '--config'], {
24
+ required: true,
25
+ description: `Config file`,
26
+ });
27
+
28
+ async execute(): Promise<number | void> {
29
+ const configFilename = path.resolve(this.config);
30
+ const configDirname = path.dirname(configFilename);
31
+
32
+ let config: LexiconConfig;
33
+ try {
34
+ const mod = (await import(path.resolve(configFilename))) as { default: LexiconConfig };
35
+ config = mod.default;
36
+ } catch (err) {
37
+ console.error(pc.bold(pc.red(`failed to import config:`)));
38
+ console.error(err);
39
+
40
+ return 1;
41
+ }
42
+
43
+ const documents: LexiconDoc[] = [];
44
+
45
+ for await (const filename of fs.glob(config.files, { cwd: configDirname })) {
46
+ let source: string;
47
+ try {
48
+ source = await fs.readFile(path.join(configDirname, filename), 'utf8');
49
+ } catch (err) {
50
+ console.error(pc.bold(pc.red(`file read error with "${filename}"`)));
51
+ console.error(err);
52
+
53
+ return 1;
54
+ }
55
+
56
+ let json: unknown;
57
+ try {
58
+ json = JSON.parse(source);
59
+ } catch (err) {
60
+ console.error(pc.bold(pc.red(`json parse error in "${filename}"`)));
61
+ console.error(err);
62
+
63
+ return 1;
64
+ }
65
+
66
+ const result = lexiconDoc.try(json, { mode: 'strip' });
67
+ if (!result.ok) {
68
+ console.error(pc.bold(pc.red(`schema validation failed for "${filename}"`)));
69
+
70
+ for (const issue of result.issues) {
71
+ console.log(`- ${issue.code} at .${issue.path.join('.')}`);
72
+ }
73
+
74
+ return 1;
75
+ }
76
+
77
+ documents.push(result.value);
78
+ }
79
+
80
+ const result = await generateLexiconApi({
81
+ documents: documents,
82
+ mappings: config.mappings ?? [],
83
+ prettier: {},
84
+ });
85
+
86
+ const outdir = path.join(configDirname, config.outdir);
87
+
88
+ for (const file of result.files) {
89
+ const filename = path.join(outdir, file.filename);
90
+ const dirname = path.dirname(filename);
91
+
92
+ await fs.mkdir(dirname, { recursive: true });
93
+ await fs.writeFile(filename, file.code);
94
+ }
95
+ }
96
+ },
97
+ );
98
+
99
+ const exitCode = await program.run(process.argv.slice(2));
100
+ process.exitCode = exitCode;