@atproto/lex-cli 0.5.6 → 0.6.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/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # @atproto/lex-cli
2
2
 
3
+ ## 0.6.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#2999](https://github.com/bluesky-social/atproto/pull/2999) [`c53d943c8`](https://github.com/bluesky-social/atproto/commit/c53d943c8be5b8886254e020970a68c0f745b14c) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Update the code generation to better reflect the data typings. In particular this change will cause generated code to explicit the `$type` property that can be present in the data.
8
+
9
+ - [#2999](https://github.com/bluesky-social/atproto/pull/2999) [`c53d943c8`](https://github.com/bluesky-social/atproto/commit/c53d943c8be5b8886254e020970a68c0f745b14c) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Remove `[string]: unknown` index signature from custom user objects, input and output schemas.
10
+
11
+ ### Patch Changes
12
+
13
+ - [#2999](https://github.com/bluesky-social/atproto/pull/2999) [`c53d943c8`](https://github.com/bluesky-social/atproto/commit/c53d943c8be5b8886254e020970a68c0f745b14c) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Add `.js` file extension to `import` statements in generated code.
14
+
15
+ - [#2999](https://github.com/bluesky-social/atproto/pull/2999) [`c53d943c8`](https://github.com/bluesky-social/atproto/commit/c53d943c8be5b8886254e020970a68c0f745b14c) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Type the generated `ids` object (that contains all the lexicon namespace ids) as `const`.
16
+
17
+ - [#2999](https://github.com/bluesky-social/atproto/pull/2999) [`c53d943c8`](https://github.com/bluesky-social/atproto/commit/c53d943c8be5b8886254e020970a68c0f745b14c) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Ensures that empty `schemas` arrays are typed as `LexiconDoc[]`.
18
+
19
+ - Updated dependencies [[`c53d943c8`](https://github.com/bluesky-social/atproto/commit/c53d943c8be5b8886254e020970a68c0f745b14c), [`c53d943c8`](https://github.com/bluesky-social/atproto/commit/c53d943c8be5b8886254e020970a68c0f745b14c), [`c53d943c8`](https://github.com/bluesky-social/atproto/commit/c53d943c8be5b8886254e020970a68c0f745b14c)]:
20
+ - @atproto/syntax@0.3.3
21
+ - @atproto/lexicon@0.4.7
22
+
23
+ ## 0.5.7
24
+
25
+ ### Patch Changes
26
+
27
+ - [#3220](https://github.com/bluesky-social/atproto/pull/3220) [`61dc0d60e`](https://github.com/bluesky-social/atproto/commit/61dc0d60e19b88c6427a54c6d95a391b5f4da7bd) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Apply new linting rules regarding import order
28
+
29
+ - [#3220](https://github.com/bluesky-social/atproto/pull/3220) [`61dc0d60e`](https://github.com/bluesky-social/atproto/commit/61dc0d60e19b88c6427a54c6d95a391b5f4da7bd) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Update NodeJS engine requirement to >=18.7.0
30
+
31
+ - Updated dependencies [[`61dc0d60e`](https://github.com/bluesky-social/atproto/commit/61dc0d60e19b88c6427a54c6d95a391b5f4da7bd)]:
32
+ - @atproto/lexicon@0.4.6
33
+ - @atproto/syntax@0.3.2
34
+
3
35
  ## 0.5.6
4
36
 
5
37
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/codegen/client.ts"],"names":[],"mappings":"AAMA,OAAO,EAAY,UAAU,EAAa,MAAM,kBAAkB,CAAA;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AA2BvC,wBAAsB,YAAY,CAChC,WAAW,EAAE,UAAU,EAAE,GACxB,OAAO,CAAC,YAAY,CAAC,CAgBvB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/codegen/client.ts"],"names":[],"mappings":"AAMA,OAAO,EAAa,UAAU,EAAY,MAAM,kBAAkB,CAAA;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AA4BvC,wBAAsB,YAAY,CAChC,WAAW,EAAE,UAAU,EAAE,GACxB,OAAO,CAAC,YAAY,CAAC,CAgBvB"}
@@ -41,9 +41,9 @@ const indexTs = (project, lexiconDocs, nsidTree, nsidTokens) => (0, common_1.gen
41
41
  { name: 'FetchHandler' },
42
42
  { name: 'FetchHandlerOptions' },
43
43
  ]);
44
- //= import {schemas} from './lexicons'
44
+ //= import {schemas} from './lexicons.js'
45
45
  file
46
- .addImportDeclaration({ moduleSpecifier: './lexicons' })
46
+ .addImportDeclaration({ moduleSpecifier: './lexicons.js' })
47
47
  .addNamedImports([{ name: 'schemas' }]);
48
48
  //= import {CID} from 'multiformats/cid'
49
49
  file
@@ -51,9 +51,13 @@ const indexTs = (project, lexiconDocs, nsidTree, nsidTokens) => (0, common_1.gen
51
51
  moduleSpecifier: 'multiformats/cid',
52
52
  })
53
53
  .addNamedImports([{ name: 'CID' }]);
54
+ //= import {OmitKey} from './util.js'
55
+ file
56
+ .addImportDeclaration({ moduleSpecifier: `./util.js` })
57
+ .addNamedImports([{ name: 'OmitKey' }, { name: 'Un$Typed' }]);
54
58
  // generate type imports and re-exports
55
59
  for (const lexicon of lexiconDocs) {
56
- const moduleSpecifier = `./types/${lexicon.id.split('.').join('/')}`;
60
+ const moduleSpecifier = `./types/${lexicon.id.split('.').join('/')}.js`;
57
61
  file
58
62
  .addImportDeclaration({ moduleSpecifier })
59
63
  .setNamespaceImport((0, util_1.toTitleCase)(lexicon.id));
@@ -256,7 +260,7 @@ function genRecordCls(file, nsid, lexRecord) {
256
260
  });
257
261
  method.addParameter({
258
262
  name: 'params',
259
- type: `Omit<${(0, util_1.toTitleCase)(ATP_METHODS.list)}.QueryParams, "collection">`,
263
+ type: `OmitKey<${(0, util_1.toTitleCase)(ATP_METHODS.list)}.QueryParams, "collection">`,
260
264
  });
261
265
  method.setBodyText([
262
266
  `const res = await this._client.call('${ATP_METHODS.list}', { collection: '${nsid}', ...params })`,
@@ -272,7 +276,7 @@ function genRecordCls(file, nsid, lexRecord) {
272
276
  });
273
277
  method.addParameter({
274
278
  name: 'params',
275
- type: `Omit<${(0, util_1.toTitleCase)(ATP_METHODS.get)}.QueryParams, "collection">`,
279
+ type: `OmitKey<${(0, util_1.toTitleCase)(ATP_METHODS.get)}.QueryParams, "collection">`,
276
280
  });
277
281
  method.setBodyText([
278
282
  `const res = await this._client.call('${ATP_METHODS.get}', { collection: '${nsid}', ...params })`,
@@ -288,11 +292,11 @@ function genRecordCls(file, nsid, lexRecord) {
288
292
  });
289
293
  method.addParameter({
290
294
  name: 'params',
291
- type: `Omit<${(0, util_1.toTitleCase)(ATP_METHODS.create)}.InputSchema, "collection" | "record">`,
295
+ type: `OmitKey<${(0, util_1.toTitleCase)(ATP_METHODS.create)}.InputSchema, "collection" | "record">`,
292
296
  });
293
297
  method.addParameter({
294
298
  name: 'record',
295
- type: `${typeModule}.Record`,
299
+ type: `Un$Typed<${typeModule}.Record>`,
296
300
  });
297
301
  method.addParameter({
298
302
  name: 'headers?',
@@ -302,8 +306,8 @@ function genRecordCls(file, nsid, lexRecord) {
302
306
  ? `rkey: '${lexRecord.key.replace('literal:', '')}', `
303
307
  : '';
304
308
  method.setBodyText([
305
- `record.$type = '${nsid}'`,
306
- `const res = await this._client.call('${ATP_METHODS.create}', undefined, { collection: '${nsid}', ${maybeRkeyPart}...params, record }, {encoding: 'application/json', headers })`,
309
+ `const collection = '${nsid}'`,
310
+ `const res = await this._client.call('${ATP_METHODS.create}', undefined, { collection, ${maybeRkeyPart}...params, record: { ...record, $type: collection} }, {encoding: 'application/json', headers })`,
307
311
  `return res.data`,
308
312
  ].join('\n'));
309
313
  }
@@ -316,7 +320,7 @@ function genRecordCls(file, nsid, lexRecord) {
316
320
  // })
317
321
  // method.addParameter({
318
322
  // name: 'params',
319
- // type: `Omit<${toTitleCase(ATP_METHODS.put)}.InputSchema, "collection" | "record">`,
323
+ // type: `OmitKey<${toTitleCase(ATP_METHODS.put)}.InputSchema, "collection" | "record">`,
320
324
  // })
321
325
  // method.addParameter({
322
326
  // name: 'record',
@@ -343,7 +347,7 @@ function genRecordCls(file, nsid, lexRecord) {
343
347
  });
344
348
  method.addParameter({
345
349
  name: 'params',
346
- type: `Omit<${(0, util_1.toTitleCase)(ATP_METHODS.delete)}.InputSchema, "collection">`,
350
+ type: `OmitKey<${(0, util_1.toTitleCase)(ATP_METHODS.delete)}.InputSchema, "collection">`,
347
351
  });
348
352
  method.addParameter({
349
353
  name: 'headers?',
@@ -355,7 +359,6 @@ function genRecordCls(file, nsid, lexRecord) {
355
359
  }
356
360
  }
357
361
  const lexiconTs = (project, lexicons, lexiconDoc) => (0, common_1.gen)(project, `/types/${lexiconDoc.id.split('.').join('/')}.ts`, async (file) => {
358
- const imports = new Set();
359
362
  const main = lexiconDoc.defs.main;
360
363
  if (main?.type === 'query' ||
361
364
  main?.type === 'subscription' ||
@@ -369,36 +372,8 @@ const lexiconTs = (project, lexicons, lexiconDoc) => (0, common_1.gen)(project,
369
372
  { name: 'XRPCError' },
370
373
  ]);
371
374
  }
372
- //= import {ValidationResult, BlobRef} from '@atproto/lexicon'
373
- file
374
- .addImportDeclaration({
375
- moduleSpecifier: '@atproto/lexicon',
376
- })
377
- .addNamedImports([{ name: 'ValidationResult' }, { name: 'BlobRef' }]);
378
- //= import {isObj, hasProp} from '../../util.ts'
379
- file
380
- .addImportDeclaration({
381
- moduleSpecifier: `${lexiconDoc.id
382
- .split('.')
383
- .map((_str) => '..')
384
- .join('/')}/util`,
385
- })
386
- .addNamedImports([{ name: 'isObj' }, { name: 'hasProp' }]);
387
- //= import {lexicons} from '../../lexicons.ts'
388
- file
389
- .addImportDeclaration({
390
- moduleSpecifier: `${lexiconDoc.id
391
- .split('.')
392
- .map((_str) => '..')
393
- .join('/')}/lexicons`,
394
- })
395
- .addNamedImports([{ name: 'lexicons' }]);
396
- //= import {CID} from 'multiformats/cid'
397
- file
398
- .addImportDeclaration({
399
- moduleSpecifier: 'multiformats/cid',
400
- })
401
- .addNamedImports([{ name: 'CID' }]);
375
+ (0, lex_gen_1.genCommonImports)(file, lexiconDoc.id);
376
+ const imports = new Set();
402
377
  for (const defId in lexiconDoc.defs) {
403
378
  const def = lexiconDoc.defs[defId];
404
379
  const lexUri = `${lexiconDoc.id}#${defId}`;
@@ -413,7 +388,7 @@ const lexiconTs = (project, lexicons, lexiconDoc) => (0, common_1.gen)(project,
413
388
  continue;
414
389
  }
415
390
  else if (def.type === 'record') {
416
- genClientRecord(file, imports, lexicons, lexUri);
391
+ (0, lex_gen_1.genRecord)(file, imports, lexicons, lexUri);
417
392
  }
418
393
  else {
419
394
  (0, lex_gen_1.genUserType)(file, imports, lexicons, lexUri);
@@ -502,11 +477,4 @@ function genClientXrpcCommon(file, lexicons, lexUri) {
502
477
  : ['return e'],
503
478
  });
504
479
  }
505
- function genClientRecord(file, imports, lexicons, lexUri) {
506
- const def = lexicons.getDefOrThrow(lexUri, ['record']);
507
- //= export interface Record {...}
508
- (0, lex_gen_1.genObject)(file, imports, lexUri, def.record, 'Record');
509
- //= export function isRecord(v: unknown): v is Record {...}
510
- (0, lex_gen_1.genObjHelpers)(file, lexUri, 'Record');
511
- }
512
480
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/codegen/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/codegen/client.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/codegen/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAA2B,MAAM,UAAU,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAUxC,eAAO,MAAM,MAAM,0CAcf,CAAA;AAEJ,eAAO,MAAM,UAAU,2BAAuB,UAAU,EAAE,2BAkFtD,CAAA;AAEJ,wBAAsB,GAAG,CACvB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GACvC,OAAO,CAAC,aAAa,CAAC,CASxB"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/codegen/common.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,UAAU,EAA2B,MAAM,UAAU,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAUxC,eAAO,MAAM,MAAM,0CAuHf,CAAA;AAEJ,eAAO,MAAM,UAAU,2BAAuB,UAAU,EAAE,2BAqItD,CAAA;AAEJ,wBAAsB,GAAG,CACvB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,GACvC,OAAO,CAAC,aAAa,CAAC,CAQxB"}
@@ -1,12 +1,9 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.lexiconsTs = exports.utilTs = void 0;
7
4
  exports.gen = gen;
5
+ const prettier_1 = require("prettier");
8
6
  const ts_morph_1 = require("ts-morph");
9
- const prettier_1 = __importDefault(require("prettier"));
10
7
  const PRETTIER_OPTS = {
11
8
  parser: 'typescript',
12
9
  tabWidth: 2,
@@ -16,15 +13,119 @@ const PRETTIER_OPTS = {
16
13
  };
17
14
  const utilTs = (project) => gen(project, '/util.ts', async (file) => {
18
15
  file.replaceWithText(`
19
- export function isObj(v: unknown): v is Record<string, unknown> {
20
- return typeof v === 'object' && v !== null
16
+ import { ValidationResult } from '@atproto/lexicon'
17
+
18
+ export type OmitKey<T, K extends keyof T> = {
19
+ [K2 in keyof T as K2 extends K ? never : K2]: T[K2]
20
+ }
21
+
22
+ export type $Typed<V, T extends string = string> = V & { $type: T }
23
+ export type Un$Typed<V extends { $type?: string }> = OmitKey<V, '$type'>
24
+
25
+ export type $Type<Id extends string, Hash extends string> = Hash extends 'main'
26
+ ? Id
27
+ : \`\${Id}#\${Hash}\`
28
+
29
+ function isObject<V>(v: V): v is V & object {
30
+ return v != null && typeof v === 'object'
31
+ }
32
+
33
+ function is$type<Id extends string, Hash extends string>(
34
+ $type: unknown,
35
+ id: Id,
36
+ hash: Hash,
37
+ ): $type is $Type<Id, Hash> {
38
+ return hash === 'main'
39
+ ? $type === id
40
+ : // $type === \`\${id}#\${hash}\`
41
+ typeof $type === 'string' &&
42
+ $type.length === id.length + 1 + hash.length &&
43
+ $type.charCodeAt(id.length) === 35 /* '#' */ &&
44
+ $type.startsWith(id) &&
45
+ $type.endsWith(hash)
46
+ }
47
+ ${
48
+ /**
49
+ * The construct below allows to properly distinguish open unions. Consider
50
+ * the following example:
51
+ *
52
+ * ```ts
53
+ * type Foo = { $type?: $Type<'foo', 'main'>; foo: string }
54
+ * type Bar = { $type?: $Type<'bar', 'main'>; bar: string }
55
+ * type OpenFooBarUnion = $Typed<Foo> | $Typed<Bar> | { $type: string }
56
+ * ```
57
+ *
58
+ * In the context of lexicons, when there is a open union as shown above, the
59
+ * if `$type` if either `foo` or `bar`, then the object IS of type `Foo` or
60
+ * `Bar`.
61
+ *
62
+ * ```ts
63
+ * declare const obj1: OpenFooBarUnion
64
+ * if (is$typed(obj1, 'foo', 'main')) {
65
+ * obj1.$type // $Type<'foo', 'main'>
66
+ * obj1.foo // string
67
+ * }
68
+ * ```
69
+ *
70
+ * Similarly, if an object is of type `unknown`, then the `is$typed` function
71
+ * should only return assurance about the `$type` property, which is what it
72
+ * actually checks:
73
+ *
74
+ * ```ts
75
+ * declare const obj2: unknown
76
+ * if (is$typed(obj2, 'foo', 'main')) {
77
+ * obj2.$type // $Type<'foo', 'main'>
78
+ * // @ts-expect-error
79
+ * obj2.foo
80
+ * }
81
+ * ```
82
+ *
83
+ * The construct bellow is what makes these two scenarios possible.
84
+ */
85
+ ''}
86
+ export type $TypedObject<V, Id extends string, Hash extends string> = V extends {
87
+ $type: $Type<Id, Hash>
88
+ }
89
+ ? V
90
+ : V extends { $type?: string }
91
+ ? V extends { $type?: infer T extends $Type<Id, Hash> }
92
+ ? V & { $type: T }
93
+ : never
94
+ : V & { $type: $Type<Id, Hash> }
95
+
96
+ export function is$typed<V, Id extends string, Hash extends string>(
97
+ v: V,
98
+ id: Id,
99
+ hash: Hash,
100
+ ): v is $TypedObject<V, Id, Hash> {
101
+ return isObject(v) && '$type' in v && is$type(v.$type, id, hash)
21
102
  }
22
103
 
23
- export function hasProp<K extends PropertyKey>(
24
- data: object,
25
- prop: K,
26
- ): data is Record<K, unknown> {
27
- return prop in data
104
+ export function maybe$typed<V, Id extends string, Hash extends string>(
105
+ v: V,
106
+ id: Id,
107
+ hash: Hash,
108
+ ): v is V & object & { $type?: $Type<Id, Hash> } {
109
+ return (
110
+ isObject(v) &&
111
+ ('$type' in v
112
+ ? v.$type === undefined || is$type(v.$type, id, hash)
113
+ : true)
114
+ )
115
+ }
116
+
117
+ export type Validator<R = unknown> = (v: unknown) => ValidationResult<R>
118
+ export type ValidatorParam<V extends Validator> =
119
+ V extends Validator<infer R> ? R : never
120
+
121
+ /**
122
+ * Utility function that allows to convert a "validate*" utility function into a
123
+ * type predicate.
124
+ */
125
+ export function asPredicate<V extends Validator>(validate: V) {
126
+ return function <T>(v: T): v is T & ValidatorParam<V> {
127
+ return validate(v).success
128
+ }
28
129
  }
29
130
  `);
30
131
  });
@@ -41,7 +142,22 @@ const lexiconsTs = (project, lexicons) => gen(project, '/lexicons.ts', async (fi
41
142
  .addImportDeclaration({
42
143
  moduleSpecifier: '@atproto/lexicon',
43
144
  })
44
- .addNamedImports([{ name: 'LexiconDoc' }, { name: 'Lexicons' }]);
145
+ .addNamedImports([
146
+ { name: 'LexiconDoc' },
147
+ { name: 'Lexicons' },
148
+ { name: 'ValidationError' },
149
+ { name: 'ValidationResult' },
150
+ ]);
151
+ //= import {is$typed, maybe$typed, $Typed} from './util'
152
+ file
153
+ .addImportDeclaration({
154
+ moduleSpecifier: './util.js',
155
+ })
156
+ .addNamedImports([
157
+ { name: '$Typed' },
158
+ { name: 'is$typed' },
159
+ { name: 'maybe$typed' },
160
+ ]);
45
161
  //= export const schemaDict = {...} as const satisfies Record<string, LexiconDoc>
46
162
  file.addVariableStatement({
47
163
  isExported: true,
@@ -56,14 +172,14 @@ const lexiconsTs = (project, lexicons) => gen(project, '/lexicons.ts', async (fi
56
172
  },
57
173
  ],
58
174
  });
59
- //= export const schemas = Object.values(schemaDict)
175
+ //= export const schemas = Object.values(schemaDict) satisfies LexiconDoc[]
60
176
  file.addVariableStatement({
61
177
  isExported: true,
62
178
  declarationKind: ts_morph_1.VariableDeclarationKind.Const,
63
179
  declarations: [
64
180
  {
65
181
  name: 'schemas',
66
- initializer: 'Object.values(schemaDict)',
182
+ initializer: 'Object.values(schemaDict) satisfies LexiconDoc[]',
67
183
  },
68
184
  ],
69
185
  });
@@ -79,6 +195,43 @@ const lexiconsTs = (project, lexicons) => gen(project, '/lexicons.ts', async (fi
79
195
  },
80
196
  ],
81
197
  });
198
+ file.addFunction({
199
+ isExported: true,
200
+ name: 'validate',
201
+ overloads: [
202
+ {
203
+ typeParameters: ['T extends { $type: string }'],
204
+ parameters: [
205
+ { name: 'v', type: 'unknown' },
206
+ { name: 'id', type: 'string' },
207
+ { name: 'hash', type: 'string' },
208
+ { name: 'requiredType', type: 'true' },
209
+ ],
210
+ returnType: 'ValidationResult<T>',
211
+ },
212
+ {
213
+ typeParameters: ['T extends { $type?: string }'],
214
+ parameters: [
215
+ { name: 'v', type: 'unknown' },
216
+ { name: 'id', type: 'string' },
217
+ { name: 'hash', type: 'string' },
218
+ { name: 'requiredType', type: 'false', hasQuestionToken: true },
219
+ ],
220
+ returnType: 'ValidationResult<T>',
221
+ },
222
+ ],
223
+ parameters: [
224
+ { name: 'v', type: 'unknown' },
225
+ { name: 'id', type: 'string' },
226
+ { name: 'hash', type: 'string' },
227
+ { name: 'requiredType', type: 'boolean', hasQuestionToken: true },
228
+ ],
229
+ statements: [
230
+ // If $type is present, make sure it is valid before validating the rest of the object
231
+ 'return (requiredType ? is$typed : maybe$typed)(v, id, hash) ? lexicons.validate(`${id}#${hash}`, v) : { success: false, error: new ValidationError(`Must be an object with "${hash === \'main\' ? id : `${id}#${hash}`}" $type property`) }',
232
+ ],
233
+ returnType: 'ValidationResult',
234
+ });
82
235
  //= export const ids = {...}
83
236
  file.addVariableStatement({
84
237
  isExported: true,
@@ -86,12 +239,9 @@ const lexiconsTs = (project, lexicons) => gen(project, '/lexicons.ts', async (fi
86
239
  declarations: [
87
240
  {
88
241
  name: 'ids',
89
- initializer: JSON.stringify(lexicons.reduce((acc, cur) => {
90
- return {
91
- ...acc,
92
- [nsidToEnum(cur.id)]: cur.id,
93
- };
94
- }, {})),
242
+ initializer: `{${lexicons
243
+ .map((lex) => `\n ${nsidToEnum(lex.id)}: ${JSON.stringify(lex.id)},`)
244
+ .join('')}\n} as const`,
95
245
  },
96
246
  ],
97
247
  });
@@ -100,12 +250,10 @@ exports.lexiconsTs = lexiconsTs;
100
250
  async function gen(project, path, gen) {
101
251
  const file = project.createSourceFile(path);
102
252
  await gen(file);
103
- file.saveSync();
104
- const src = project.getFileSystem().readFileSync(path);
105
- return {
106
- path: path,
107
- content: `${banner()}${await prettier_1.default.format(src, PRETTIER_OPTS)}`,
108
- };
253
+ await file.save(); // Save in the "in memory" file system
254
+ const src = `${banner()}${file.getFullText()}`;
255
+ const content = await (0, prettier_1.format)(src, PRETTIER_OPTS);
256
+ return { path, content };
109
257
  }
110
258
  function banner() {
111
259
  return `/**
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/codegen/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/codegen/common.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,25 @@
1
1
  import { SourceFile } from 'ts-morph';
2
- import { Lexicons, LexUserType, LexObject, LexArray, LexPrimitive, LexBlob, LexToken, LexCidLink, LexBytes, LexIpldType } from '@atproto/lexicon';
2
+ import { LexArray, LexBlob, LexBytes, LexCidLink, LexIpldType, LexPrimitive, LexToken, LexUserType, Lexicons } from '@atproto/lexicon';
3
3
  interface Commentable<T> {
4
4
  addJsDoc: ({ description }: {
5
5
  description: string;
6
6
  }) => T;
7
7
  }
8
8
  export declare function genComment<T>(commentable: Commentable<T>, def: LexUserType): T;
9
+ export declare function genCommonImports(file: SourceFile, baseNsid: string): void;
9
10
  export declare function genImports(file: SourceFile, imports: Set<string>, baseNsid: string): void;
10
11
  export declare function genUserType(file: SourceFile, imports: Set<string>, lexicons: Lexicons, lexUri: string): void;
11
- export declare function genObject(file: SourceFile, imports: Set<string>, lexUri: string, def: LexObject, ifaceName?: string, defaultsArePresent?: boolean): void;
12
12
  export declare function genToken(file: SourceFile, lexUri: string, def: LexToken): void;
13
13
  export declare function genArray(file: SourceFile, imports: Set<string>, lexUri: string, def: LexArray): void;
14
14
  export declare function genPrimitiveOrBlob(file: SourceFile, lexUri: string, def: LexPrimitive | LexBlob | LexIpldType): void;
15
15
  export declare function genXrpcParams(file: SourceFile, lexicons: Lexicons, lexUri: string, defaultsArePresent?: boolean): void;
16
16
  export declare function genXrpcInput(file: SourceFile, imports: Set<string>, lexicons: Lexicons, lexUri: string, defaultsArePresent?: boolean): void;
17
17
  export declare function genXrpcOutput(file: SourceFile, imports: Set<string>, lexicons: Lexicons, lexUri: string, defaultsArePresent?: boolean): void;
18
- export declare function genObjHelpers(file: SourceFile, lexUri: string, ifaceName?: string): void;
18
+ export declare function genRecord(file: SourceFile, imports: Set<string>, lexicons: Lexicons, lexUri: string): void;
19
19
  export declare function stripScheme(uri: string): string;
20
20
  export declare function stripHash(uri: string): string;
21
21
  export declare function getHash(uri: string): string;
22
- export declare function ipldToType(def: LexCidLink | LexBytes): "Uint8Array" | "CID";
23
- export declare function refToType(ref: string, baseNsid: string, imports: Set<string>): string;
22
+ export declare function ipldToType(def: LexCidLink | LexBytes): "CID" | "Uint8Array";
24
23
  export declare function primitiveOrBlobToType(def: LexBlob | LexPrimitive | LexIpldType): string;
25
24
  export declare function primitiveToType(def: LexPrimitive): string;
26
25
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"lex-gen.d.ts","sourceRoot":"","sources":["../../src/codegen/lex-gen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lex-gen.d.ts","sourceRoot":"","sources":["../../src/codegen/lex-gen.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAA2B,MAAM,UAAU,CAAA;AAC9D,OAAO,EACL,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,UAAU,EACV,WAAW,EAEX,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,QAAQ,EACT,MAAM,kBAAkB,CAAA;AAGzB,UAAU,WAAW,CAAC,CAAC;IACrB,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,CAAC,CAAA;CAC1D;AACD,wBAAgB,UAAU,CAAC,CAAC,EAC1B,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,EAC3B,GAAG,EAAE,WAAW,GACf,CAAC,CAKH;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,QA2DlE;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,MAAM,QAgBjB;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,QAoCf;AAqID,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,QAgBvE;AAED,wBAAgB,QAAQ,CACtB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,QAAQ,QAkCd;AAED,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,YAAY,GAAG,OAAO,GAAG,WAAW,QAU1C;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,kBAAkB,UAAO,QAiC1B;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,kBAAkB,UAAO,QAkD1B;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,kBAAkB,UAAO,QAgC1B;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,EACpB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,QAef;AAiDD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,QAAQ,wBAKpD;AA+BD,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,GAAG,YAAY,GAAG,WAAW,GACxC,MAAM,CAWR;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAiCzD"}