@atproto/lex-client 0.1.1 → 0.1.2

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 (92) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/client.d.ts +32 -23
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +19 -9
  5. package/dist/client.js.map +1 -1
  6. package/dist/lexicons/com/atproto/repo/applyWrites.d.ts +1 -1
  7. package/dist/lexicons/com/atproto/repo/applyWrites.d.ts.map +1 -1
  8. package/dist/lexicons/com/atproto/repo/applyWrites.defs.d.ts +6 -6
  9. package/dist/lexicons/com/atproto/repo/applyWrites.defs.d.ts.map +1 -1
  10. package/dist/lexicons/com/atproto/repo/applyWrites.defs.js +1 -1
  11. package/dist/lexicons/com/atproto/repo/applyWrites.defs.js.map +1 -1
  12. package/dist/lexicons/com/atproto/repo/applyWrites.js +1 -1
  13. package/dist/lexicons/com/atproto/repo/applyWrites.js.map +1 -1
  14. package/dist/lexicons/com/atproto/repo/createRecord.d.ts +1 -1
  15. package/dist/lexicons/com/atproto/repo/createRecord.d.ts.map +1 -1
  16. package/dist/lexicons/com/atproto/repo/createRecord.defs.d.ts +6 -6
  17. package/dist/lexicons/com/atproto/repo/createRecord.defs.d.ts.map +1 -1
  18. package/dist/lexicons/com/atproto/repo/createRecord.defs.js +1 -1
  19. package/dist/lexicons/com/atproto/repo/createRecord.defs.js.map +1 -1
  20. package/dist/lexicons/com/atproto/repo/createRecord.js +1 -1
  21. package/dist/lexicons/com/atproto/repo/createRecord.js.map +1 -1
  22. package/dist/lexicons/com/atproto/repo/defs.d.ts +0 -1
  23. package/dist/lexicons/com/atproto/repo/defs.d.ts.map +1 -1
  24. package/dist/lexicons/com/atproto/repo/defs.js +0 -1
  25. package/dist/lexicons/com/atproto/repo/defs.js.map +1 -1
  26. package/dist/lexicons/com/atproto/repo/deleteRecord.d.ts +1 -1
  27. package/dist/lexicons/com/atproto/repo/deleteRecord.d.ts.map +1 -1
  28. package/dist/lexicons/com/atproto/repo/deleteRecord.defs.d.ts +6 -6
  29. package/dist/lexicons/com/atproto/repo/deleteRecord.defs.d.ts.map +1 -1
  30. package/dist/lexicons/com/atproto/repo/deleteRecord.defs.js +1 -1
  31. package/dist/lexicons/com/atproto/repo/deleteRecord.defs.js.map +1 -1
  32. package/dist/lexicons/com/atproto/repo/deleteRecord.js +1 -1
  33. package/dist/lexicons/com/atproto/repo/deleteRecord.js.map +1 -1
  34. package/dist/lexicons/com/atproto/repo/getRecord.d.ts +1 -1
  35. package/dist/lexicons/com/atproto/repo/getRecord.d.ts.map +1 -1
  36. package/dist/lexicons/com/atproto/repo/getRecord.defs.d.ts +4 -4
  37. package/dist/lexicons/com/atproto/repo/getRecord.defs.d.ts.map +1 -1
  38. package/dist/lexicons/com/atproto/repo/getRecord.defs.js +1 -1
  39. package/dist/lexicons/com/atproto/repo/getRecord.defs.js.map +1 -1
  40. package/dist/lexicons/com/atproto/repo/getRecord.js +1 -1
  41. package/dist/lexicons/com/atproto/repo/getRecord.js.map +1 -1
  42. package/dist/lexicons/com/atproto/repo/listRecords.d.ts +1 -1
  43. package/dist/lexicons/com/atproto/repo/listRecords.d.ts.map +1 -1
  44. package/dist/lexicons/com/atproto/repo/listRecords.defs.d.ts +4 -4
  45. package/dist/lexicons/com/atproto/repo/listRecords.defs.d.ts.map +1 -1
  46. package/dist/lexicons/com/atproto/repo/listRecords.defs.js +1 -1
  47. package/dist/lexicons/com/atproto/repo/listRecords.defs.js.map +1 -1
  48. package/dist/lexicons/com/atproto/repo/listRecords.js +1 -1
  49. package/dist/lexicons/com/atproto/repo/listRecords.js.map +1 -1
  50. package/dist/lexicons/com/atproto/repo/putRecord.d.ts +1 -1
  51. package/dist/lexicons/com/atproto/repo/putRecord.d.ts.map +1 -1
  52. package/dist/lexicons/com/atproto/repo/putRecord.defs.d.ts +6 -6
  53. package/dist/lexicons/com/atproto/repo/putRecord.defs.d.ts.map +1 -1
  54. package/dist/lexicons/com/atproto/repo/putRecord.defs.js +1 -1
  55. package/dist/lexicons/com/atproto/repo/putRecord.defs.js.map +1 -1
  56. package/dist/lexicons/com/atproto/repo/putRecord.js +1 -1
  57. package/dist/lexicons/com/atproto/repo/putRecord.js.map +1 -1
  58. package/dist/lexicons/com/atproto/repo/uploadBlob.d.ts +1 -1
  59. package/dist/lexicons/com/atproto/repo/uploadBlob.d.ts.map +1 -1
  60. package/dist/lexicons/com/atproto/repo/uploadBlob.defs.d.ts +6 -6
  61. package/dist/lexicons/com/atproto/repo/uploadBlob.defs.d.ts.map +1 -1
  62. package/dist/lexicons/com/atproto/repo/uploadBlob.defs.js +1 -1
  63. package/dist/lexicons/com/atproto/repo/uploadBlob.defs.js.map +1 -1
  64. package/dist/lexicons/com/atproto/repo/uploadBlob.js +1 -1
  65. package/dist/lexicons/com/atproto/repo/uploadBlob.js.map +1 -1
  66. package/dist/lexicons/com/atproto/sync/getBlob.d.ts +1 -1
  67. package/dist/lexicons/com/atproto/sync/getBlob.d.ts.map +1 -1
  68. package/dist/lexicons/com/atproto/sync/getBlob.defs.d.ts +4 -4
  69. package/dist/lexicons/com/atproto/sync/getBlob.defs.d.ts.map +1 -1
  70. package/dist/lexicons/com/atproto/sync/getBlob.defs.js +1 -1
  71. package/dist/lexicons/com/atproto/sync/getBlob.defs.js.map +1 -1
  72. package/dist/lexicons/com/atproto/sync/getBlob.js +1 -1
  73. package/dist/lexicons/com/atproto/sync/getBlob.js.map +1 -1
  74. package/package.json +2 -2
  75. package/src/client.ts +38 -41
  76. package/src/lexicons/com/atproto/repo/applyWrites.defs.ts +16 -12
  77. package/src/lexicons/com/atproto/repo/applyWrites.ts +1 -1
  78. package/src/lexicons/com/atproto/repo/createRecord.defs.ts +15 -12
  79. package/src/lexicons/com/atproto/repo/createRecord.ts +1 -1
  80. package/src/lexicons/com/atproto/repo/defs.ts +0 -1
  81. package/src/lexicons/com/atproto/repo/deleteRecord.defs.ts +15 -12
  82. package/src/lexicons/com/atproto/repo/deleteRecord.ts +1 -1
  83. package/src/lexicons/com/atproto/repo/getRecord.defs.ts +11 -7
  84. package/src/lexicons/com/atproto/repo/getRecord.ts +1 -1
  85. package/src/lexicons/com/atproto/repo/listRecords.defs.ts +12 -7
  86. package/src/lexicons/com/atproto/repo/listRecords.ts +1 -1
  87. package/src/lexicons/com/atproto/repo/putRecord.defs.ts +15 -12
  88. package/src/lexicons/com/atproto/repo/putRecord.ts +1 -1
  89. package/src/lexicons/com/atproto/repo/uploadBlob.defs.ts +15 -12
  90. package/src/lexicons/com/atproto/repo/uploadBlob.ts +1 -1
  91. package/src/lexicons/com/atproto/sync/getBlob.defs.ts +11 -7
  92. package/src/lexicons/com/atproto/sync/getBlob.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @atproto/lex-client
2
2
 
3
+ ## 0.1.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#4980](https://github.com/bluesky-social/atproto/pull/4980) [`482767c`](https://github.com/bluesky-social/atproto/commit/482767c4bcce95aa390b2992b028fd8e27d162b2) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Improve bundling size of lex-client
8
+
3
9
  ## 0.1.1
4
10
 
5
11
  ### Patch Changes
package/dist/client.d.ts CHANGED
@@ -1,8 +1,15 @@
1
1
  import { LexMap, LexValue, TypedLexMap } from '@atproto/lex-data';
2
- import { AtIdentifierString, CidString, DidString, Infer, InferMethodInputBody, InferMethodOutputBody, InferRecordKey, LexiconRecordKey, Main, NsidString, Params, Procedure, Query, RecordSchema, Restricted } from '@atproto/lex-schema';
2
+ import { AtIdentifierString, AtUriString, CidString, DidString, Infer, InferMethodInputBody, InferMethodOutputBody, InferRecordKey, LexiconRecordKey, Main, NsidString, Params, Procedure, Query, RecordSchema, Restricted } from '@atproto/lex-schema';
3
3
  import { Agent, AgentOptions } from './agent.js';
4
4
  import { XrpcFailure } from './errors.js';
5
- import { com } from './lexicons/index.js';
5
+ import applyWrites from './lexicons/com/atproto/repo/applyWrites.js';
6
+ import createRecord from './lexicons/com/atproto/repo/createRecord.js';
7
+ import deleteRecord from './lexicons/com/atproto/repo/deleteRecord.js';
8
+ import getRecord from './lexicons/com/atproto/repo/getRecord.js';
9
+ import listRecords from './lexicons/com/atproto/repo/listRecords.js';
10
+ import putRecord from './lexicons/com/atproto/repo/putRecord.js';
11
+ import uploadBlob from './lexicons/com/atproto/repo/uploadBlob.js';
12
+ import getBlob from './lexicons/com/atproto/sync/getBlob.js';
6
13
  import { XrpcResponse, XrpcResponseBody, XrpcResponseOptions } from './response.js';
7
14
  import { BinaryBodyInit, Service } from './types.js';
8
15
  import { RecordKeyOptions, XrpcRequestHeadersOptions } from './util.js';
@@ -73,7 +80,7 @@ export type InferActionOutput<A extends Action> = A extends Action<any, infer O>
73
80
  *
74
81
  * @see {@link Client.createRecord}
75
82
  */
76
- export type CreateRecordOptions = Omit<XrpcOptions<typeof com.atproto.repo.createRecord.main>, 'body'> & {
83
+ export type CreateRecordOptions = Omit<XrpcOptions<typeof createRecord>, 'body'> & {
77
84
  /** Repository identifier (DID or handle). Defaults to authenticated user's DID. */
78
85
  repo?: AtIdentifierString;
79
86
  /** Compare-and-swap on the repo commit. If specified, must match current commit. */
@@ -86,7 +93,7 @@ export type CreateRecordOptions = Omit<XrpcOptions<typeof com.atproto.repo.creat
86
93
  *
87
94
  * @see {@link Client.deleteRecord}
88
95
  */
89
- export type DeleteRecordOptions = Omit<XrpcOptions<typeof com.atproto.repo.deleteRecord.main>, 'body'> & {
96
+ export type DeleteRecordOptions = Omit<XrpcOptions<typeof deleteRecord>, 'body'> & {
90
97
  /** Repository identifier (DID or handle). Defaults to authenticated user's DID. */
91
98
  repo?: AtIdentifierString;
92
99
  /** Compare-and-swap on the repo commit. If specified, must match current commit. */
@@ -99,7 +106,7 @@ export type DeleteRecordOptions = Omit<XrpcOptions<typeof com.atproto.repo.delet
99
106
  *
100
107
  * @see {@link Client.getRecord}
101
108
  */
102
- export type GetRecordOptions = Omit<XrpcOptions<typeof com.atproto.repo.getRecord.main>, 'params'> & {
109
+ export type GetRecordOptions = Omit<XrpcOptions<typeof getRecord>, 'params'> & {
103
110
  /** Repository identifier (DID or handle). Defaults to authenticated user's DID. */
104
111
  repo?: AtIdentifierString;
105
112
  };
@@ -108,7 +115,7 @@ export type GetRecordOptions = Omit<XrpcOptions<typeof com.atproto.repo.getRecor
108
115
  *
109
116
  * @see {@link Client.putRecord}
110
117
  */
111
- export type PutRecordOptions = Omit<XrpcOptions<typeof com.atproto.repo.putRecord.main>, 'body'> & {
118
+ export type PutRecordOptions = Omit<XrpcOptions<typeof putRecord>, 'body'> & {
112
119
  /** Repository identifier (DID or handle). Defaults to authenticated user's DID. */
113
120
  repo?: AtIdentifierString;
114
121
  /** Compare-and-swap on the repo commit. If specified, must match current commit. */
@@ -123,7 +130,7 @@ export type PutRecordOptions = Omit<XrpcOptions<typeof com.atproto.repo.putRecor
123
130
  *
124
131
  * @see {@link Client.listRecords}
125
132
  */
126
- export type ListRecordsOptions = Omit<XrpcOptions<typeof com.atproto.repo.listRecords.main>, 'params'> & {
133
+ export type ListRecordsOptions = Omit<XrpcOptions<typeof listRecords>, 'params'> & {
127
134
  /** Repository identifier (DID or handle). Defaults to authenticated user's DID. */
128
135
  repo?: AtIdentifierString;
129
136
  /** Maximum number of records to return. */
@@ -138,7 +145,7 @@ export type ListRecordsOptions = Omit<XrpcOptions<typeof com.atproto.repo.listRe
138
145
  *
139
146
  * @see {@link Client.applyWrites}
140
147
  */
141
- export type ApplyWritesOptions = Omit<XrpcOptions<typeof com.atproto.repo.applyWrites.main>, 'body'> & {
148
+ export type ApplyWritesOptions = Omit<XrpcOptions<typeof applyWrites>, 'body'> & {
142
149
  /** Repository identifier (DID or handle). Defaults to authenticated user's DID. */
143
150
  repo?: AtIdentifierString;
144
151
  /** Whether the PDS should validate the records against their lexicon schemas. */
@@ -146,8 +153,8 @@ export type ApplyWritesOptions = Omit<XrpcOptions<typeof com.atproto.repo.applyW
146
153
  /** Compare-and-swap on the repo commit. If specified, must match current commit. */
147
154
  swapCommit?: CidString;
148
155
  };
149
- export type UploadBlobOptions = Omit<XrpcOptions<typeof com.atproto.repo.uploadBlob.main>, 'body'>;
150
- export type GetBlobOptions = Omit<XrpcOptions<typeof com.atproto.sync.getBlob.main>, 'params'>;
156
+ export type UploadBlobOptions = Omit<XrpcOptions<typeof uploadBlob>, 'body'>;
157
+ export type GetBlobOptions = Omit<XrpcOptions<typeof getBlob>, 'params'>;
151
158
  /**
152
159
  * Type-safe options for {@link Client.create}, combining record options with key requirements.
153
160
  * @typeParam T - The record schema type
@@ -158,7 +165,7 @@ export type CreateOptions<T extends RecordSchema> = CreateRecordOptions & Record
158
165
  * Output type for record creation operations.
159
166
  * Contains the URI and CID of the newly created record.
160
167
  */
161
- export type CreateOutput = InferMethodOutputBody<typeof com.atproto.repo.createRecord.main, Uint8Array>;
168
+ export type CreateOutput = InferMethodOutputBody<typeof createRecord, Uint8Array>;
162
169
  /**
163
170
  * Type-safe options for {@link Client.delete}, combining delete options with key requirements.
164
171
  * @typeParam T - The record schema type
@@ -167,7 +174,7 @@ export type DeleteOptions<T extends RecordSchema> = DeleteRecordOptions & Record
167
174
  /**
168
175
  * Output type for record deletion operations.
169
176
  */
170
- export type DeleteOutput = InferMethodOutputBody<typeof com.atproto.repo.deleteRecord.main, Uint8Array>;
177
+ export type DeleteOutput = InferMethodOutputBody<typeof deleteRecord, Uint8Array>;
171
178
  /**
172
179
  * Type-safe options for {@link Client.get}, combining get options with key requirements.
173
180
  * @typeParam T - The record schema type
@@ -178,7 +185,7 @@ export type GetOptions<T extends RecordSchema> = GetRecordOptions & RecordKeyOpt
178
185
  * Contains the record value validated against the schema type.
179
186
  * @typeParam T - The record schema type
180
187
  */
181
- export type GetOutput<T extends RecordSchema> = Omit<InferMethodOutputBody<typeof com.atproto.repo.getRecord.main, Uint8Array>, 'value'> & {
188
+ export type GetOutput<T extends RecordSchema> = Omit<InferMethodOutputBody<typeof getRecord, Uint8Array>, 'value'> & {
182
189
  value: Infer<T>;
183
190
  };
184
191
  /**
@@ -190,7 +197,7 @@ export type PutOptions<T extends RecordSchema> = PutRecordOptions & RecordKeyOpt
190
197
  * Output type for record put (create/update) operations.
191
198
  * Contains the URI and CID of the record.
192
199
  */
193
- export type PutOutput = InferMethodOutputBody<typeof com.atproto.repo.putRecord.main, Uint8Array>;
200
+ export type PutOutput = InferMethodOutputBody<typeof putRecord, Uint8Array>;
194
201
  /**
195
202
  * Options for {@link Client.list} operations.
196
203
  */
@@ -200,7 +207,7 @@ export type ListOptions = ListRecordsOptions;
200
207
  * Contains validated records and any invalid records that failed schema validation.
201
208
  * @typeParam T - The record schema type
202
209
  */
203
- export type ListOutput<T extends RecordSchema> = InferMethodOutputBody<typeof com.atproto.repo.listRecords.main, Uint8Array> & {
210
+ export type ListOutput<T extends RecordSchema> = InferMethodOutputBody<typeof listRecords, Uint8Array> & {
204
211
  /** Records that successfully validated against the schema. */
205
212
  records: ListRecord<Infer<T>>[];
206
213
  /** Records that failed schema validation. */
@@ -210,7 +217,9 @@ export type ListOutput<T extends RecordSchema> = InferMethodOutputBody<typeof co
210
217
  * A record from a list operation with its value typed to the schema.
211
218
  * @typeParam Value - The validated record value type
212
219
  */
213
- export type ListRecord<Value extends LexMap> = com.atproto.repo.listRecords.Record & {
220
+ export type ListRecord<Value extends LexMap> = {
221
+ uri: AtUriString;
222
+ cid: CidString;
214
223
  value: Value;
215
224
  };
216
225
  /**
@@ -400,7 +409,7 @@ export declare class Client implements Agent {
400
409
  cid: import("@atproto/lex-schema").StringSchema<{
401
410
  readonly format: "cid";
402
411
  }>;
403
- commit: import("@atproto/lex-schema").OptionalSchema<import("@atproto/lex-schema").RefSchema<import("@atproto/lex-schema").Validator<com.atproto.repo.defs.$defs.CommitMeta, com.atproto.repo.defs.$defs.CommitMeta>>>;
412
+ commit: import("@atproto/lex-schema").OptionalSchema<import("@atproto/lex-schema").RefSchema<import("@atproto/lex-schema").Validator<import("./lexicons/com/atproto/repo/defs.defs.js").CommitMeta, import("./lexicons/com/atproto/repo/defs.defs.js").CommitMeta>>>;
404
413
  validationStatus: import("@atproto/lex-schema").OptionalSchema<import("@atproto/lex-schema").StringSchema<{
405
414
  knownValues: ["valid", "unknown"];
406
415
  }>>;
@@ -431,7 +440,7 @@ export declare class Client implements Agent {
431
440
  readonly format: "cid";
432
441
  }>>;
433
442
  }>>, import("@atproto/lex-schema").Payload<"application/json", import("@atproto/lex-schema").ObjectSchema<{
434
- commit: import("@atproto/lex-schema").OptionalSchema<import("@atproto/lex-schema").RefSchema<import("@atproto/lex-schema").Validator<com.atproto.repo.defs.$defs.CommitMeta, com.atproto.repo.defs.$defs.CommitMeta>>>;
443
+ commit: import("@atproto/lex-schema").OptionalSchema<import("@atproto/lex-schema").RefSchema<import("@atproto/lex-schema").Validator<import("./lexicons/com/atproto/repo/defs.defs.js").CommitMeta, import("./lexicons/com/atproto/repo/defs.defs.js").CommitMeta>>>;
435
444
  }>>, readonly ["InvalidSwap"]>>>;
436
445
  /**
437
446
  * Retrieves a record from an AT Protocol repository.
@@ -499,7 +508,7 @@ export declare class Client implements Agent {
499
508
  cid: import("@atproto/lex-schema").StringSchema<{
500
509
  readonly format: "cid";
501
510
  }>;
502
- commit: import("@atproto/lex-schema").OptionalSchema<import("@atproto/lex-schema").RefSchema<import("@atproto/lex-schema").Validator<com.atproto.repo.defs.$defs.CommitMeta, com.atproto.repo.defs.$defs.CommitMeta>>>;
511
+ commit: import("@atproto/lex-schema").OptionalSchema<import("@atproto/lex-schema").RefSchema<import("@atproto/lex-schema").Validator<import("./lexicons/com/atproto/repo/defs.defs.js").CommitMeta, import("./lexicons/com/atproto/repo/defs.defs.js").CommitMeta>>>;
503
512
  validationStatus: import("@atproto/lex-schema").OptionalSchema<import("@atproto/lex-schema").StringSchema<{
504
513
  knownValues: ["valid", "unknown"];
505
514
  }>>;
@@ -524,7 +533,7 @@ export declare class Client implements Agent {
524
533
  readonly reverse: import("@atproto/lex-schema").OptionalSchema<import("@atproto/lex-schema").BooleanSchema>;
525
534
  }>, import("@atproto/lex-schema").Payload<"application/json", import("@atproto/lex-schema").ObjectSchema<{
526
535
  cursor: import("@atproto/lex-schema").OptionalSchema<import("@atproto/lex-schema").StringSchema<{}>>;
527
- records: import("@atproto/lex-schema").ArraySchema<import("@atproto/lex-schema").RefSchema<import("@atproto/lex-schema").Validator<com.atproto.repo.listRecords.$defs.Record, com.atproto.repo.listRecords.$defs.Record>>>;
536
+ records: import("@atproto/lex-schema").ArraySchema<import("@atproto/lex-schema").RefSchema<import("@atproto/lex-schema").Validator<import("./lexicons/com/atproto/repo/listRecords.defs.js").Record, import("./lexicons/com/atproto/repo/listRecords.defs.js").Record>>>;
528
537
  }>>, undefined>>>;
529
538
  /**
530
539
  * Performs an atomic batch of create, update, and delete operations on records in a repository.
@@ -554,13 +563,13 @@ export declare class Client implements Agent {
554
563
  readonly format: "at-identifier";
555
564
  }>;
556
565
  validate: import("@atproto/lex-schema").OptionalSchema<import("@atproto/lex-schema").BooleanSchema>;
557
- writes: import("@atproto/lex-schema").ArraySchema<import("@atproto/lex-schema").TypedUnionSchema<readonly [import("@atproto/lex-schema").TypedRefSchema<import("@atproto/lex-schema").TypedObjectValidator<com.atproto.repo.applyWrites.$defs.Create, com.atproto.repo.applyWrites.$defs.Create>>, import("@atproto/lex-schema").TypedRefSchema<import("@atproto/lex-schema").TypedObjectValidator<com.atproto.repo.applyWrites.$defs.Update, com.atproto.repo.applyWrites.$defs.Update>>, import("@atproto/lex-schema").TypedRefSchema<import("@atproto/lex-schema").TypedObjectValidator<com.atproto.repo.applyWrites.$defs.Delete, com.atproto.repo.applyWrites.$defs.Delete>>], true>>;
566
+ writes: import("@atproto/lex-schema").ArraySchema<import("@atproto/lex-schema").TypedUnionSchema<readonly [import("@atproto/lex-schema").TypedRefSchema<import("@atproto/lex-schema").TypedObjectValidator<import("./lexicons/com/atproto/repo/applyWrites.defs.js").Create, import("./lexicons/com/atproto/repo/applyWrites.defs.js").Create>>, import("@atproto/lex-schema").TypedRefSchema<import("@atproto/lex-schema").TypedObjectValidator<import("./lexicons/com/atproto/repo/applyWrites.defs.js").Update, import("./lexicons/com/atproto/repo/applyWrites.defs.js").Update>>, import("@atproto/lex-schema").TypedRefSchema<import("@atproto/lex-schema").TypedObjectValidator<import("./lexicons/com/atproto/repo/applyWrites.defs.js").Delete, import("./lexicons/com/atproto/repo/applyWrites.defs.js").Delete>>], true>>;
558
567
  swapCommit: import("@atproto/lex-schema").OptionalSchema<import("@atproto/lex-schema").StringSchema<{
559
568
  readonly format: "cid";
560
569
  }>>;
561
570
  }>>, import("@atproto/lex-schema").Payload<"application/json", import("@atproto/lex-schema").ObjectSchema<{
562
- commit: import("@atproto/lex-schema").OptionalSchema<import("@atproto/lex-schema").RefSchema<import("@atproto/lex-schema").Validator<com.atproto.repo.defs.$defs.CommitMeta, com.atproto.repo.defs.$defs.CommitMeta>>>;
563
- results: import("@atproto/lex-schema").OptionalSchema<import("@atproto/lex-schema").ArraySchema<import("@atproto/lex-schema").TypedUnionSchema<readonly [import("@atproto/lex-schema").TypedRefSchema<import("@atproto/lex-schema").TypedObjectValidator<com.atproto.repo.applyWrites.$defs.CreateResult, com.atproto.repo.applyWrites.$defs.CreateResult>>, import("@atproto/lex-schema").TypedRefSchema<import("@atproto/lex-schema").TypedObjectValidator<com.atproto.repo.applyWrites.$defs.UpdateResult, com.atproto.repo.applyWrites.$defs.UpdateResult>>, import("@atproto/lex-schema").TypedRefSchema<import("@atproto/lex-schema").TypedObjectValidator<com.atproto.repo.applyWrites.$defs.DeleteResult, com.atproto.repo.applyWrites.$defs.DeleteResult>>], true>>>;
571
+ commit: import("@atproto/lex-schema").OptionalSchema<import("@atproto/lex-schema").RefSchema<import("@atproto/lex-schema").Validator<import("./lexicons/com/atproto/repo/defs.defs.js").CommitMeta, import("./lexicons/com/atproto/repo/defs.defs.js").CommitMeta>>>;
572
+ results: import("@atproto/lex-schema").OptionalSchema<import("@atproto/lex-schema").ArraySchema<import("@atproto/lex-schema").TypedUnionSchema<readonly [import("@atproto/lex-schema").TypedRefSchema<import("@atproto/lex-schema").TypedObjectValidator<import("./lexicons/com/atproto/repo/applyWrites.defs.js").CreateResult, import("./lexicons/com/atproto/repo/applyWrites.defs.js").CreateResult>>, import("@atproto/lex-schema").TypedRefSchema<import("@atproto/lex-schema").TypedObjectValidator<import("./lexicons/com/atproto/repo/applyWrites.defs.js").UpdateResult, import("./lexicons/com/atproto/repo/applyWrites.defs.js").UpdateResult>>, import("@atproto/lex-schema").TypedRefSchema<import("@atproto/lex-schema").TypedObjectValidator<import("./lexicons/com/atproto/repo/applyWrites.defs.js").DeleteResult, import("./lexicons/com/atproto/repo/applyWrites.defs.js").DeleteResult>>], true>>>;
564
573
  }>>, readonly ["InvalidSwap"]>>>;
565
574
  /**
566
575
  * Uploads a blob to an AT Protocol repository.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,SAAS,EACT,KAAK,EACL,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,IAAI,EACJ,UAAU,EACV,MAAM,EACN,SAAS,EACT,KAAK,EACL,YAAY,EACZ,UAAU,EAEX,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,KAAK,EAAE,YAAY,EAAc,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAIzC,OAAO,WAAW,MAAM,4CAA4C,CAAA;AACpE,OAAO,YAAY,MAAM,6CAA6C,CAAA;AACtE,OAAO,YAAY,MAAM,6CAA6C,CAAA;AACtE,OAAO,SAAS,MAAM,0CAA0C,CAAA;AAChE,OAAO,WAAW,MAAM,4CAA4C,CAAA;AACpE,OAAO,SAAS,MAAM,0CAA0C,CAAA;AAChE,OAAO,UAAU,MAAM,2CAA2C,CAAA;AAClE,OAAO,OAAO,MAAM,wCAAwC,CAAA;AAC5D,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpD,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EAK1B,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,cAAc,EACd,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EACvB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,4BAA4B,EAG7B,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,KAAK,EACV,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,MAAM,EACX,SAAS,EACT,KAAK,EACL,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,oBAAoB,EACpB,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,GAC5B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,MAAM,aAAa,GAAG,yBAAyB,GACnD,IAAI,CAAC,4BAA4B,EAAE,iBAAiB,CAAC,GACrD,mBAAmB,CAAA;AAErB,MAAM,MAAM,aAAa,GAAG;IAC1B,yCAAyC;IACzC,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,CACrC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,aAAa,KACnB,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;AAEnB;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAC3C,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAE5C;;;GAGG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAC5C,CAAC,SAAS,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAE5C;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,WAAW,CAAC,OAAO,YAAY,CAAC,EAChC,MAAM,CACP,GAAG;IACF,mFAAmF;IACnF,IAAI,CAAC,EAAE,kBAAkB,CAAA;IACzB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,WAAW,CAAC,OAAO,YAAY,CAAC,EAChC,MAAM,CACP,GAAG;IACF,mFAAmF;IACnF,IAAI,CAAC,EAAE,kBAAkB,CAAA;IACzB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,SAAS,CAAC,EAAE,QAAQ,CAAC,GAAG;IAC7E,mFAAmF;IACnF,IAAI,CAAC,EAAE,kBAAkB,CAAA;CAC1B,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,SAAS,CAAC,EAAE,MAAM,CAAC,GAAG;IAC3E,mFAAmF;IACnF,IAAI,CAAC,EAAE,kBAAkB,CAAA;IACzB,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,WAAW,CAAC,OAAO,WAAW,CAAC,EAC/B,QAAQ,CACT,GAAG;IACF,mFAAmF;IACnF,IAAI,CAAC,EAAE,kBAAkB,CAAA;IACzB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,WAAW,CAAC,OAAO,WAAW,CAAC,EAC/B,MAAM,CACP,GAAG;IACF,mFAAmF;IACnF,IAAI,CAAC,EAAE,kBAAkB,CAAA;IACzB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,oFAAoF;IACpF,UAAU,CAAC,EAAE,SAAS,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,UAAU,CAAC,EAAE,MAAM,CAAC,CAAA;AAE5E,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAA;AAExE;;;;GAIG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,YAAY,IAAI,mBAAmB,GACrE,gBAAgB,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,CAAA;AAEpC;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,qBAAqB,CAC9C,OAAO,YAAY,EACnB,UAAU,CACX,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,YAAY,IAAI,mBAAmB,GACrE,gBAAgB,CAAC,CAAC,CAAC,CAAA;AAErB;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,qBAAqB,CAC9C,OAAO,YAAY,EACnB,UAAU,CACX,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,YAAY,IAAI,gBAAgB,GAC/D,gBAAgB,CAAC,CAAC,CAAC,CAAA;AAErB;;;;GAIG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,YAAY,IAAI,IAAI,CAClD,qBAAqB,CAAC,OAAO,SAAS,EAAE,UAAU,CAAC,EACnD,OAAO,CACR,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;CAAE,CAAA;AAEvB;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,YAAY,IAAI,gBAAgB,GAC/D,gBAAgB,CAAC,CAAC,CAAC,CAAA;AAErB;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,SAAS,EAAE,UAAU,CAAC,CAAA;AAE3E;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAAA;AAE5C;;;;GAIG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,YAAY,IAAI,qBAAqB,CACpE,OAAO,WAAW,EAClB,UAAU,CACX,GAAG;IACF,8DAA8D;IAC9D,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAI/B,6CAA6C;IAC7C,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,KAAK,SAAS,MAAM,IAAI;IAC7C,GAAG,EAAE,WAAW,CAAA;IAChB,GAAG,EAAE,SAAS,CAAA;IACd,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,MAAO,YAAW,KAAK;IAClC,MAAM,CAAC,WAAW,EAAE,SAAS,SAAS,EAAE,CAAK;IAE7C;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE;QAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;KAAE;IAI5D,qDAAqD;IACrD,SAAgB,KAAK,EAAE,KAAK,CAAA;IAE5B,+CAA+C;IAC/C,SAAgB,OAAO,EAAE,OAAO,CAAA;IAEhC,wDAAwD;IACxD,SAAgB,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjC,4DAA4D;IAC5D,SAAgB,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,CAAA;IAExC,SAAgB,YAAY,EAAE;QAC5B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;QACjC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAA;QAClC,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAA;KAC3C,CAAA;gBAEW,KAAK,EAAE,KAAK,GAAG,YAAY,EAAE,OAAO,GAAE,aAAkB;IAYpE;;OAEG;IACH,IAAI,GAAG,IAAI,SAAS,GAAG,SAAS,CAE/B;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,SAAS,CAGzB;IAED;;;;;;;;;;;;OAYG;IACI,mBAAmB,IAAI,OAAO,CAAC,IAAI,IAAI;QAAE,GAAG,EAAE,SAAS,CAAA;KAAE;IAIhE;;;OAGG;IACI,WAAW,CAAC,QAAQ,GAAE,QAAQ,CAAC,SAAS,CAAM;IAKrD;;;OAGG;IACI,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC;IAIhD;;OAEG;IACI,aAAa;IAIpB;;;;;;;;OAQG;IACI,YAAY,CACjB,IAAI,EAAE,IAAI,MAAM,EAAE,EAClB,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,QAAQ,CAAC;IAqBpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,GAAG,SAAS,EAC1C,EAAE,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,GAC3C,IAAI,CAAC,CAAC,CAAC,GACP,UAAU,CAAC,iDAAiD,CAAC,GAChE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,GAAG,SAAS,EAC1C,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EACX,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GACtB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAQ3B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,GAAG,SAAS,EAC9C,EAAE,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,GAC3C,IAAI,CAAC,CAAC,CAAC,GACP,UAAU,CAAC,iDAAiD,CAAC,GAChE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IACtC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,GAAG,SAAS,EAC9C,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EACX,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GACtB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAQ5C;;;;;;;;;;;;;;;;;;;OAmBG;IACU,YAAY,CACvB,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,EAC/B,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAe/B;;;;;;;;OAQG;IACG,YAAY,CAChB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;;IAc/B;;;;;;;;OAQG;IACU,SAAS,CACpB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;IAY5B;;;;;;;;OAQG;IACG,SAAS,CACb,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgB5B;;;;;;;OAOG;IACG,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB;;;;;;;;;;;;;;IAahE;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,WAAW,CACf,OAAO,EAAE,sBAAsB,EAC/B,OAAO,CAAC,EAAE,kBAAkB;;;;;;;;;;;;;IAa9B;;;;;;;;;;;;;;;OAeG;IACG,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,iBAAiB;;;IAIlE;;;;;;OAMG;IACG,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,cAAc;;;;;;;;IAOtE;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACU,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,KAAK,EACrC,EAAE,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,GACjD,IAAI,CAAC,CAAC,CAAC,GACP,UAAU,CAAC,8CAA8C,CAAC,GAC7D,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAClB,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,EACzC,EAAE,EAAE,SAAS,SAAS,oBAAoB,CAAC,CAAC,EAAE,UAAU,CAAC,GACrD,IAAI,CAAC,CAAC,CAAC,GACP,UAAU,CAAC,kDAAkD,CAAC,GACjE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAClB,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EACtC,EAAE,EAAE,IAAI,SAAS,gBAAgB,CAAC,CAAC,CAAC,GAChC,IAAI,CAAC,CAAC,CAAC,GACP,UAAU,CAAC,+CAA+C,CAAC,GAC9D,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACnB,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,GAAG,KAAK,EAC1D,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EACX,GAAG,EAAE,CAAC,SAAS,MAAM,GACjB,gBAAgB,CAAC,CAAC,CAAC,GACnB,CAAC,SAAS,SAAS,GACjB,oBAAoB,CAAC,CAAC,EAAE,UAAU,CAAC,GACnC,CAAC,SAAS,KAAK,GACb,iBAAiB,CAAC,CAAC,CAAC,GACpB,KAAK,EACb,OAAO,CAAC,EAAE,CAAC,SAAS,MAAM,GACtB,aAAa,GACb,CAAC,SAAS,SAAS,GACjB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,GAC5B,CAAC,SAAS,KAAK,GACb,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GAC9B,KAAK,GACZ,OAAO,CACR,CAAC,SAAS,MAAM,GACZ,iBAAiB,CAAC,CAAC,CAAC,GACpB,CAAC,SAAS,SAAS,GACjB,gBAAgB,CAAC,CAAC,CAAC,GACnB,CAAC,SAAS,KAAK,GACb,gBAAgB,CAAC,CAAC,CAAC,GACnB,KAAK,CACd;IAuBD;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACU,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EAC9C,EAAE,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,GAC7C,IAAI,CAAC,CAAC,CAAC,GACP,UAAU,CAAC,iDAAiD,CAAC,EACjE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,YAAY,CAAC;IACX,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EAC9C,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EACX,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,YAAY,CAAC;IAexB;;;;;;OAMG;IACU,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EAC9C,EAAE,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,GAC7C,IAAI,CAAC,CAAC,CAAC,GACP,UAAU,CAAC,iDAAiD,CAAC,GAChE,OAAO,CAAC,YAAY,CAAC;IACX,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EAC9C,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EACX,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,YAAY,CAAC;IAaxB;;;;;;;;;;;;;OAaG;IACU,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EAC3C,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,WAAW,MAAM,EAAE,GACpC,IAAI,CAAC,CAAC,CAAC,GACP,UAAU,CAAC,iDAAiD,CAAC,GAChE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACX,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EAC3C,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EACX,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAcxB;;;;;;;OAOG;IACU,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EAC3C,EAAE,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,GAC1C,IAAI,CAAC,CAAC,CAAC,GACP,UAAU,CAAC,iDAAiD,CAAC,EACjE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,SAAS,CAAC;IACR,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EAC3C,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EACX,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,SAAS,CAAC;IAcrB;;;;;;;;;;;;;OAaG;IACG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,YAAY,EACrC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EACX,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CAkB1B"}
package/dist/client.js CHANGED
@@ -1,6 +1,16 @@
1
1
  import { Procedure, Query, RecordSchema, getMain, } from '@atproto/lex-schema';
2
2
  import { buildAgent } from './agent.js';
3
- import { com } from './lexicons/index.js';
3
+ // @NOTE We could use import { com } from "./lexicons/index.js" here, but some
4
+ // consumers might not know how to properly tree-shake that, so we import only
5
+ // the needed lexicon schemas directly.
6
+ import applyWrites from './lexicons/com/atproto/repo/applyWrites.js';
7
+ import createRecord from './lexicons/com/atproto/repo/createRecord.js';
8
+ import deleteRecord from './lexicons/com/atproto/repo/deleteRecord.js';
9
+ import getRecord from './lexicons/com/atproto/repo/getRecord.js';
10
+ import listRecords from './lexicons/com/atproto/repo/listRecords.js';
11
+ import putRecord from './lexicons/com/atproto/repo/putRecord.js';
12
+ import uploadBlob from './lexicons/com/atproto/repo/uploadBlob.js';
13
+ import getBlob from './lexicons/com/atproto/sync/getBlob.js';
4
14
  import { applyDefaults, buildXrpcRequestHeaders, getDefaultRecordKey, getLiteralRecordKey, } from './util.js';
5
15
  import { WriteOperationHelper, } from './write-operation-builder.js';
6
16
  import { xrpc, xrpcSafe, } from './xrpc.js';
@@ -148,7 +158,7 @@ export class Client {
148
158
  * @see {@link create} for a higher-level typed alternative
149
159
  */
150
160
  async createRecord(record, rkey, options) {
151
- return this.xrpc(com.atproto.repo.createRecord.main, {
161
+ return this.xrpc(createRecord, {
152
162
  ...options,
153
163
  body: {
154
164
  repo: options?.repo ?? this.assertDid,
@@ -170,7 +180,7 @@ export class Client {
170
180
  * @see {@link delete} for a higher-level typed alternative
171
181
  */
172
182
  async deleteRecord(collection, rkey, options) {
173
- return this.xrpc(com.atproto.repo.deleteRecord.main, {
183
+ return this.xrpc(deleteRecord, {
174
184
  ...options,
175
185
  body: {
176
186
  repo: options?.repo ?? this.assertDid,
@@ -191,7 +201,7 @@ export class Client {
191
201
  * @see {@link get} for a higher-level typed alternative
192
202
  */
193
203
  async getRecord(collection, rkey, options) {
194
- return this.xrpc(com.atproto.repo.getRecord.main, {
204
+ return this.xrpc(getRecord, {
195
205
  ...options,
196
206
  params: {
197
207
  repo: options?.repo ?? this.assertDid,
@@ -210,7 +220,7 @@ export class Client {
210
220
  * @see {@link put} for a higher-level typed alternative
211
221
  */
212
222
  async putRecord(record, rkey, options) {
213
- return this.xrpc(com.atproto.repo.putRecord.main, {
223
+ return this.xrpc(putRecord, {
214
224
  ...options,
215
225
  body: {
216
226
  repo: options?.repo ?? this.assertDid,
@@ -232,7 +242,7 @@ export class Client {
232
242
  * @see {@link list} for a higher-level typed alternative
233
243
  */
234
244
  async listRecords(nsid, options) {
235
- return this.xrpc(com.atproto.repo.listRecords.main, {
245
+ return this.xrpc(listRecords, {
236
246
  ...options,
237
247
  params: {
238
248
  repo: options?.repo ?? this.assertDid,
@@ -267,7 +277,7 @@ export class Client {
267
277
  * ```
268
278
  */
269
279
  async applyWrites(factory, options) {
270
- return this.xrpc(com.atproto.repo.applyWrites, {
280
+ return this.xrpc(applyWrites, {
271
281
  ...options,
272
282
  body: {
273
283
  repo: options?.repo ?? this.assertDid,
@@ -294,7 +304,7 @@ export class Client {
294
304
  * ```
295
305
  */
296
306
  async uploadBlob(body, options) {
297
- return this.xrpc(com.atproto.repo.uploadBlob.main, { ...options, body });
307
+ return this.xrpc(uploadBlob, { ...options, body });
298
308
  }
299
309
  /**
300
310
  * Retrieves a blob by DID and CID.
@@ -304,7 +314,7 @@ export class Client {
304
314
  * @param options - Call options
305
315
  */
306
316
  async getBlob(did, cid, options) {
307
- return this.xrpc(com.atproto.sync.getBlob.main, {
317
+ return this.xrpc(getBlob, {
308
318
  ...options,
309
319
  params: { did, cid },
310
320
  });
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { LexMap, LexValue, TypedLexMap } from '@atproto/lex-data'\nimport {\n AtIdentifierString,\n CidString,\n DidString,\n Infer,\n InferMethodInputBody,\n InferMethodOutputBody,\n InferRecordKey,\n LexiconRecordKey,\n Main,\n NsidString,\n Params,\n Procedure,\n Query,\n RecordSchema,\n Restricted,\n getMain,\n} from '@atproto/lex-schema'\nimport { Agent, AgentOptions, buildAgent } from './agent.js'\nimport { XrpcFailure } from './errors.js'\nimport { com } from './lexicons/index.js'\nimport {\n XrpcResponse,\n XrpcResponseBody,\n XrpcResponseOptions,\n} from './response.js'\nimport { BinaryBodyInit, Service } from './types.js'\nimport {\n RecordKeyOptions,\n XrpcRequestHeadersOptions,\n applyDefaults,\n buildXrpcRequestHeaders,\n getDefaultRecordKey,\n getLiteralRecordKey,\n} from './util.js'\nimport {\n WriteOperation,\n WriteOperationCreateOptions,\n WriteOperationDeleteOptions,\n WriteOperationHelper,\n WriteOperationUpdateOptions,\n WriteOperationsFactory,\n} from './write-operation-builder.js'\nimport {\n XrpcOptions,\n XrpcRequestParams,\n XrpcRequestProcessingOptions,\n xrpc,\n xrpcSafe,\n} from './xrpc.js'\n\nexport {\n type AtIdentifierString,\n type CidString,\n type DidString,\n type Infer,\n type InferMethodInputBody,\n type InferMethodOutputBody,\n type InferRecordKey,\n type LexMap,\n type LexValue,\n type LexiconRecordKey,\n type Main,\n type NsidString,\n type Params,\n Procedure,\n Query,\n RecordSchema,\n type Restricted,\n type TypedLexMap,\n type WriteOperation,\n type WriteOperationCreateOptions,\n type WriteOperationDeleteOptions,\n WriteOperationHelper,\n type WriteOperationUpdateOptions,\n type WriteOperationsFactory,\n}\n\n/**\n * Configuration options for creating a {@link Client}.\n *\n * @property {@link ClientOptions.labelers} - An iterable of labeler DIDs to include in requests. These will be combined with any global app labelers configured via {@link Client.configure}.\n * @property {@link ClientOptions.service} - An optional service identifier (DID or URL) for routing requests with service proxying.\n * @property {@link ClientOptions.headers} - Custom headers to include in all requests made by this client instance.\n * @property {@link ClientOptions.validateRequest} - If true, validates request bodies against their lexicon schemas before sending. Defaults to false for performance.\n * @property {@link ClientOptions.validateResponse} - If false, skips validation of response bodies against their lexicon schemas. Defaults to true to catch errors, but can be disabled for performance if you trust the server responses. Note that defaults will not be applied if validation is disabled, which can cause typing inconsistencies, so use with caution.\n * @property {@link ClientOptions.strictResponseProcessing} - If false, relaxes certain validation rules during response processing (e.g., allowing floats, deeper nesting, etc.). Defaults to true for strict compliance with {@link https://atproto.com/specs/data-model lexicon data model}, but can be disabled to handle non-compliant responses.\n *\n * @see {@link XrpcRequestHeadersOptions}\n * @see {@link XrpcRequestProcessingOptions}\n * @see {@link XrpcResponseOptions}\n *\n * @example\n * ```typescript\n * const options: ClientOptions = {\n * labelers: ['did:plc:labeler1'],\n * service: 'did:web:api.bsky.app#bsky_appview',\n * headers: { 'X-Custom-Header': 'value' },\n * validateRequest: false,\n * validateResponse: true,\n * strictResponseProcessing: false,\n * }\n * ```\n */\nexport type ClientOptions = XrpcRequestHeadersOptions &\n Pick<XrpcRequestProcessingOptions, 'validateRequest'> &\n XrpcResponseOptions\n\nexport type ActionOptions = {\n /** AbortSignal to cancel the request. */\n signal?: AbortSignal\n}\n\n/**\n * A composable action that can be invoked via {@link Client.call}.\n *\n * Actions provide a way to define custom operations that integrate with the\n * Client's call interface, enabling type-safe, reusable business logic.\n *\n * @typeParam I - The input type for the action\n * @typeParam O - The output type for the action\n *\n * @example\n * ```typescript\n * const myAction: Action<{ userId: string }, { profile: Profile }> = async (client, input, options) => {\n * const response = await client.xrpc(someMethod, { params: { actor: input.userId }, ...options })\n * return { profile: response.body }\n * }\n * ```\n */\nexport type Action<I = any, O = any> = (\n client: Client,\n input: I,\n options: ActionOptions,\n) => O | Promise<O>\n\n/**\n * Extracts the input type from an {@link Action}.\n * @typeParam A - The Action type to extract from\n */\nexport type InferActionInput<A extends Action> =\n A extends Action<infer I, any> ? I : never\n\n/**\n * Extracts the output type from an {@link Action}.\n * @typeParam A - The Action type to extract from\n */\nexport type InferActionOutput<A extends Action> =\n A extends Action<any, infer O> ? O : never\n\n/**\n * Options for creating a record in an AT Protocol repository.\n *\n * @see {@link Client.createRecord}\n */\nexport type CreateRecordOptions = Omit<\n XrpcOptions<typeof com.atproto.repo.createRecord.main>,\n 'body'\n> & {\n /** Repository identifier (DID or handle). Defaults to authenticated user's DID. */\n repo?: AtIdentifierString\n /** Compare-and-swap on the repo commit. If specified, must match current commit. */\n swapCommit?: string\n /** Whether to validate the record against its lexicon schema. */\n validate?: boolean\n}\n\n/**\n * Options for deleting a record from an AT Protocol repository.\n *\n * @see {@link Client.deleteRecord}\n */\nexport type DeleteRecordOptions = Omit<\n XrpcOptions<typeof com.atproto.repo.deleteRecord.main>,\n 'body'\n> & {\n /** Repository identifier (DID or handle). Defaults to authenticated user's DID. */\n repo?: AtIdentifierString\n /** Compare-and-swap on the repo commit. If specified, must match current commit. */\n swapCommit?: string\n /** Compare-and-swap on the record CID. If specified, must match current record. */\n swapRecord?: string\n}\n\n/**\n * Options for retrieving a record from an AT Protocol repository.\n *\n * @see {@link Client.getRecord}\n */\nexport type GetRecordOptions = Omit<\n XrpcOptions<typeof com.atproto.repo.getRecord.main>,\n 'params'\n> & {\n /** Repository identifier (DID or handle). Defaults to authenticated user's DID. */\n repo?: AtIdentifierString\n}\n\n/**\n * Options for creating or updating a record in an AT Protocol repository.\n *\n * @see {@link Client.putRecord}\n */\nexport type PutRecordOptions = Omit<\n XrpcOptions<typeof com.atproto.repo.putRecord.main>,\n 'body'\n> & {\n /** Repository identifier (DID or handle). Defaults to authenticated user's DID. */\n repo?: AtIdentifierString\n /** Compare-and-swap on the repo commit. If specified, must match current commit. */\n swapCommit?: string\n /** Compare-and-swap on the record CID. If specified, must match current record. */\n swapRecord?: string\n /** Whether to validate the record against its lexicon schema. */\n validate?: boolean\n}\n\n/**\n * Options for listing records in an AT Protocol repository collection.\n *\n * @see {@link Client.listRecords}\n */\nexport type ListRecordsOptions = Omit<\n XrpcOptions<typeof com.atproto.repo.listRecords.main>,\n 'params'\n> & {\n /** Repository identifier (DID or handle). Defaults to authenticated user's DID. */\n repo?: AtIdentifierString\n /** Maximum number of records to return. */\n limit?: number\n /** Pagination cursor from a previous response. */\n cursor?: string\n /** If true, returns records in reverse chronological order. */\n reverse?: boolean\n}\n\n/**\n * Options for applying a batch of writes (create/update/delete) to an AT Protocol repository.\n *\n * @see {@link Client.applyWrites}\n */\nexport type ApplyWritesOptions = Omit<\n XrpcOptions<typeof com.atproto.repo.applyWrites.main>,\n 'body'\n> & {\n /** Repository identifier (DID or handle). Defaults to authenticated user's DID. */\n repo?: AtIdentifierString\n /** Whether the PDS should validate the records against their lexicon schemas. */\n validate?: boolean\n /** Compare-and-swap on the repo commit. If specified, must match current commit. */\n swapCommit?: CidString\n}\n\nexport type UploadBlobOptions = Omit<\n XrpcOptions<typeof com.atproto.repo.uploadBlob.main>,\n 'body'\n>\n\nexport type GetBlobOptions = Omit<\n XrpcOptions<typeof com.atproto.sync.getBlob.main>,\n 'params'\n>\n\n/**\n * Type-safe options for {@link Client.create}, combining record options with key requirements.\n * @typeParam T - The record schema type\n * @see {@link CreateRecordOptions}\n */\nexport type CreateOptions<T extends RecordSchema> = CreateRecordOptions &\n RecordKeyOptions<T, 'tid' | 'any'>\n\n/**\n * Output type for record creation operations.\n * Contains the URI and CID of the newly created record.\n */\nexport type CreateOutput = InferMethodOutputBody<\n typeof com.atproto.repo.createRecord.main,\n Uint8Array\n>\n\n/**\n * Type-safe options for {@link Client.delete}, combining delete options with key requirements.\n * @typeParam T - The record schema type\n */\nexport type DeleteOptions<T extends RecordSchema> = DeleteRecordOptions &\n RecordKeyOptions<T>\n\n/**\n * Output type for record deletion operations.\n */\nexport type DeleteOutput = InferMethodOutputBody<\n typeof com.atproto.repo.deleteRecord.main,\n Uint8Array\n>\n\n/**\n * Type-safe options for {@link Client.get}, combining get options with key requirements.\n * @typeParam T - The record schema type\n */\nexport type GetOptions<T extends RecordSchema> = GetRecordOptions &\n RecordKeyOptions<T>\n\n/**\n * Output type for record retrieval operations.\n * Contains the record value validated against the schema type.\n * @typeParam T - The record schema type\n */\nexport type GetOutput<T extends RecordSchema> = Omit<\n InferMethodOutputBody<typeof com.atproto.repo.getRecord.main, Uint8Array>,\n 'value'\n> & { value: Infer<T> }\n\n/**\n * Type-safe options for {@link Client.put}, combining put options with key requirements.\n * @typeParam T - The record schema type\n */\nexport type PutOptions<T extends RecordSchema> = PutRecordOptions &\n RecordKeyOptions<T>\n\n/**\n * Output type for record put (create/update) operations.\n * Contains the URI and CID of the record.\n */\nexport type PutOutput = InferMethodOutputBody<\n typeof com.atproto.repo.putRecord.main,\n Uint8Array\n>\n\n/**\n * Options for {@link Client.list} operations.\n */\nexport type ListOptions = ListRecordsOptions\n\n/**\n * Output type for record listing operations.\n * Contains validated records and any invalid records that failed schema validation.\n * @typeParam T - The record schema type\n */\nexport type ListOutput<T extends RecordSchema> = InferMethodOutputBody<\n typeof com.atproto.repo.listRecords.main,\n Uint8Array\n> & {\n /** Records that successfully validated against the schema. */\n records: ListRecord<Infer<T>>[]\n // @NOTE Because the schema uses \"type\": \"unknown\" instead of an open union,\n // we have to use LexMap instead of Unknown$TypedObject here, which is\n // unfortunate.\n /** Records that failed schema validation. */\n invalid: LexMap[]\n}\n\n/**\n * A record from a list operation with its value typed to the schema.\n * @typeParam Value - The validated record value type\n */\nexport type ListRecord<Value extends LexMap> =\n com.atproto.repo.listRecords.Record & {\n value: Value\n }\n\n/**\n * The Client class is the primary interface for interacting with AT Protocol\n * services. It provides type-safe methods for XRPC calls, record operations,\n * and blob handling.\n *\n * @example\n * ```typescript\n * import { Client } from '@atproto/lex'\n * import { app } from '#/lexicons\n *\n * const client = new Client(oauthSession)\n *\n * const response = await client.xrpc(app.bsky.feed.getTimeline.main, {\n * params: { limit: 50 }\n * })\n * ```\n */\nexport class Client implements Agent {\n static appLabelers: readonly DidString[] = []\n\n /**\n * Configures the Client (or its sub classes) globally.\n */\n static configure(opts: { appLabelers?: Iterable<DidString> }) {\n if (opts.appLabelers) this.appLabelers = [...opts.appLabelers]\n }\n\n /** The underlying agent used for making requests. */\n public readonly agent: Agent\n\n /** Custom headers included in all requests. */\n public readonly headers: Headers\n\n /** Optional service identifier for routing requests. */\n public readonly service?: Service\n\n /** Set of labeler DIDs specific to this client instance. */\n public readonly labelers: Set<DidString>\n\n public readonly xrpcDefaults: {\n readonly validateRequest: boolean\n readonly validateResponse: boolean\n readonly strictResponseProcessing: boolean\n }\n\n constructor(agent: Agent | AgentOptions, options: ClientOptions = {}) {\n this.agent = buildAgent(agent)\n this.service = options.service\n this.labelers = new Set(options.labelers)\n this.headers = new Headers(options.headers)\n this.xrpcDefaults = Object.freeze({\n validateRequest: options.validateRequest ?? false,\n validateResponse: options.validateResponse ?? true,\n strictResponseProcessing: options.strictResponseProcessing ?? true,\n })\n }\n\n /**\n * The DID of the authenticated user, or `undefined` if not authenticated.\n */\n get did(): DidString | undefined {\n return this.agent.did\n }\n\n /**\n * The DID of the authenticated user.\n * @throws {Error} if not authenticated\n */\n get assertDid(): DidString {\n this.assertAuthenticated()\n return this.did\n }\n\n /**\n * Asserts that the client is authenticated.\n * Use as a type guard when you need to ensure authentication.\n *\n * @throws {Error} if not authenticated\n *\n * @example\n * ```typescript\n * client.assertAuthenticated()\n * // TypeScript now knows client.did is defined\n * console.log(client.did)\n * ```\n */\n public assertAuthenticated(): asserts this is { did: DidString } {\n if (!this.did) throw new Error('Client is not authenticated')\n }\n\n /**\n * Replaces all labelers with the given set.\n * @param labelers - Iterable of labeler DIDs\n */\n public setLabelers(labelers: Iterable<DidString> = []) {\n this.clearLabelers()\n this.addLabelers(labelers)\n }\n\n /**\n * Adds labelers to the current set.\n * @param labelers - Iterable of labeler DIDs to add\n */\n public addLabelers(labelers: Iterable<DidString>) {\n for (const labeler of labelers) this.labelers.add(labeler)\n }\n\n /**\n * Removes all labelers from this client instance.\n */\n public clearLabelers() {\n this.labelers.clear()\n }\n\n /**\n * {@link Agent}'s {@link Agent.fetchHandler} implementation, which adds\n * labelers and service proxying headers. This method allow a {@link Client}\n * instance to be used directly as an {@link Agent} for another\n * {@link Client}, enabling composition of headers (labelers, proxying, etc.).\n *\n * @param path - The request path\n * @param init - Request initialization options\n */\n public fetchHandler(\n path: `/${string}`,\n init: RequestInit,\n ): Promise<Response> {\n const headers = buildXrpcRequestHeaders({\n headers: init.headers,\n service: this.service,\n labelers: [\n ...(this.constructor as typeof Client).appLabelers.map(\n (l) => `${l};redact` as const,\n ),\n ...this.labelers,\n ],\n })\n\n // Incoming headers take precedence\n for (const [key, value] of this.headers) {\n if (!headers.has(key)) headers.set(key, value)\n }\n\n // @NOTE The agent here could be another Client instance.\n return this.agent.fetchHandler(path, { ...init, headers })\n }\n\n /**\n * Makes an XRPC request. Throws on failure.\n *\n * @param ns - The lexicon method definition (e.g., `app.bsky.feed.getTimeline`)\n * @param options - Request options including params and body\n * @returns The successful XRPC response\n * @throws {XrpcFailure} when the request fails or returns an error\n *\n * @example Query with parameters\n * ```typescript\n * const response = await client.xrpc(app.bsky.feed.getTimeline, {\n * params: { limit: 50, cursor: 'abc123' }\n * })\n * console.log(response.body.feed)\n * ```\n *\n * @example Procedure with body\n * ```typescript\n * const response = await client.xrpc(com.atproto.repo.createRecord, {\n * body: {\n * repo: client.assertDid,\n * collection: 'app.bsky.feed.post',\n * record: { text: 'Hello!', createdAt: new Date().toISOString() }\n * }\n * })\n * ```\n *\n * @see {@link xrpcSafe} for a non-throwing variant\n */\n async xrpc<const M extends Query | Procedure>(\n ns: NonNullable<unknown> extends XrpcOptions<M>\n ? Main<M>\n : Restricted<'This XRPC method requires an \"options\" argument'>,\n ): Promise<XrpcResponse<M>>\n async xrpc<const M extends Query | Procedure>(\n ns: Main<M>,\n options: XrpcOptions<M>,\n ): Promise<XrpcResponse<M>>\n async xrpc<const M extends Query | Procedure>(\n ns: Main<M>,\n options: XrpcOptions<M> = {} as XrpcOptions<M>,\n ): Promise<XrpcResponse<M>> {\n return xrpc(this, ns, applyDefaults(options, this.xrpcDefaults))\n }\n\n /**\n * Makes an XRPC request without throwing on failure.\n * Returns either a successful response or a failure object.\n *\n * @param ns - The lexicon method definition\n * @param options - Request options\n * @returns Either an XrpcResponse on success or XrpcFailure on failure\n *\n * @example\n * ```typescript\n * const result = await client.xrpcSafe(app.bsky.actor.getProfile.main, {\n * params: { actor: 'alice.bsky.social' }\n * })\n *\n * if (result.success) {\n * console.log(result.body.displayName)\n * } else {\n * console.error('Failed:', result.error)\n * }\n * ```\n *\n * @see {@link xrpc} for a throwing variant\n */\n async xrpcSafe<const M extends Query | Procedure>(\n ns: NonNullable<unknown> extends XrpcOptions<M>\n ? Main<M>\n : Restricted<'This XRPC method requires an \"options\" argument'>,\n ): Promise<XrpcResponse<M> | XrpcFailure<M>>\n async xrpcSafe<const M extends Query | Procedure>(\n ns: Main<M>,\n options: XrpcOptions<M>,\n ): Promise<XrpcResponse<M> | XrpcFailure<M>>\n async xrpcSafe<const M extends Query | Procedure>(\n ns: Main<M>,\n options: XrpcOptions<M> = {} as XrpcOptions<M>,\n ): Promise<XrpcResponse<M> | XrpcFailure<M>> {\n return xrpcSafe(this, ns, applyDefaults(options, this.xrpcDefaults))\n }\n\n /**\n * Creates a new record in an AT Protocol repository.\n *\n * @param record - The record to create, must include an {@link NsidString} `$type`\n * @param rkey - Optional record key; if omitted, server generates a TID\n * @param options - Create options including repo, swapCommit, validate\n * @returns The XRPC response containing the created record's URI and CID\n *\n * @example\n * ```typescript\n * const response = await client.createRecord(\n * { $type: 'app.bsky.feed.post', text: 'Hello!', createdAt: new Date().toISOString() },\n * undefined, // Let server generate rkey\n * { validate: true }\n * )\n * console.log(response.body.uri)\n * ```\n *\n * @see {@link create} for a higher-level typed alternative\n */\n public async createRecord(\n record: TypedLexMap<NsidString>,\n rkey?: string,\n options?: CreateRecordOptions,\n ) {\n return this.xrpc(com.atproto.repo.createRecord.main, {\n ...options,\n body: {\n repo: options?.repo ?? this.assertDid,\n collection: record.$type,\n record,\n rkey,\n validate: options?.validate,\n swapCommit: options?.swapCommit,\n },\n })\n }\n\n /**\n * Deletes a record from an AT Protocol repository.\n *\n * @param collection - The collection NSID\n * @param rkey - The record key\n * @param options - Delete options including repo, swapCommit, swapRecord\n *\n * @see {@link delete} for a higher-level typed alternative\n */\n async deleteRecord(\n collection: NsidString,\n rkey: string,\n options?: DeleteRecordOptions,\n ) {\n return this.xrpc(com.atproto.repo.deleteRecord.main, {\n ...options,\n body: {\n repo: options?.repo ?? this.assertDid,\n collection,\n rkey,\n swapCommit: options?.swapCommit,\n swapRecord: options?.swapRecord,\n },\n })\n }\n\n /**\n * Retrieves a record from an AT Protocol repository.\n *\n * @param collection - The collection NSID\n * @param rkey - The record key\n * @param options - Get options including repo\n *\n * @see {@link get} for a higher-level typed alternative\n */\n public async getRecord(\n collection: NsidString,\n rkey: string,\n options?: GetRecordOptions,\n ) {\n return this.xrpc(com.atproto.repo.getRecord.main, {\n ...options,\n params: {\n repo: options?.repo ?? this.assertDid,\n collection,\n rkey,\n },\n })\n }\n\n /**\n * Creates or updates a record in a repository.\n *\n * @param record - The record to put, must include an {@link NsidString} `$type`\n * @param rkey - The record key\n * @param options - Put options including repo, swapCommit, swapRecord, validate\n *\n * @see {@link put} for a higher-level typed alternative\n */\n async putRecord(\n record: TypedLexMap<NsidString>,\n rkey: string,\n options?: PutRecordOptions,\n ) {\n return this.xrpc(com.atproto.repo.putRecord.main, {\n ...options,\n body: {\n repo: options?.repo ?? this.assertDid,\n collection: record.$type,\n rkey,\n record,\n validate: options?.validate,\n swapCommit: options?.swapCommit,\n swapRecord: options?.swapRecord,\n },\n })\n }\n\n /**\n * Lists records in a collection.\n *\n * @param nsid - The collection NSID\n * @param options - List options including repo, limit, cursor, reverse\n *\n * @see {@link list} for a higher-level typed alternative\n */\n async listRecords(nsid: NsidString, options?: ListRecordsOptions) {\n return this.xrpc(com.atproto.repo.listRecords.main, {\n ...options,\n params: {\n repo: options?.repo ?? this.assertDid,\n collection: nsid,\n cursor: options?.cursor,\n limit: options?.limit,\n reverse: options?.reverse,\n },\n })\n }\n\n /**\n * Performs an atomic batch of create, update, and delete operations on records in a repository.\n *\n * @param builder - A function that receives an {@link ApplyWritesOperations} instance to build the operations\n * @param options - ApplyWrites options including repo, validate, swapCommit\n * @returns The XRPC response from the applyWrites call\n *\n * @example\n * ```typescript\n * const response = await client.applyWrites((op) => [\n * op.create(app.bsky.feed.post, { text: 'Hello!' }),\n * op.update(app.bsky.feed.post, { text: 'Updated text' }, { rkey: 'post123' }),\n * op.delete(app.bsky.feed.post, 'post456'),\n * op.update(app.bsky.actor.profile, { displayName: 'Alice' }),\n * ], {\n * validate: true,\n * })\n *\n * for (const result of response.body.results) {\n * console.log(result.uri)\n * }\n * ```\n */\n async applyWrites(\n factory: WriteOperationsFactory,\n options?: ApplyWritesOptions,\n ) {\n return this.xrpc(com.atproto.repo.applyWrites, {\n ...options,\n body: {\n repo: options?.repo ?? this.assertDid,\n writes: WriteOperationHelper.build(factory),\n validate: options?.validate,\n swapCommit: options?.swapCommit,\n },\n })\n }\n\n /**\n * Uploads a blob to an AT Protocol repository.\n *\n * @param body - The blob data (Uint8Array, ReadableStream, Blob, etc.)\n * @param options - Upload options including encoding hint\n * @returns Response containing the blob reference\n *\n * @example\n * ```typescript\n * const imageData = await fetch('image.png').then(r => r.arrayBuffer())\n * const response = await client.uploadBlob(new Uint8Array(imageData), {\n * encoding: 'image/png'\n * })\n * console.log(response.body.blob) // Use this ref in records\n * ```\n */\n async uploadBlob(body: BinaryBodyInit, options?: UploadBlobOptions) {\n return this.xrpc(com.atproto.repo.uploadBlob.main, { ...options, body })\n }\n\n /**\n * Retrieves a blob by DID and CID.\n *\n * @param did - The DID of the repository containing the blob\n * @param cid - The CID of the blob\n * @param options - Call options\n */\n async getBlob(did: DidString, cid: CidString, options?: GetBlobOptions) {\n return this.xrpc(com.atproto.sync.getBlob.main, {\n ...options,\n params: { did, cid },\n })\n }\n\n /**\n * Universal call method for queries, procedures, and custom actions.\n * Automatically determines the call type based on the lexicon definition.\n *\n * @param ns - The lexicon method or action definition\n * @param arg - The input argument (params for queries, body for procedures, input for actions)\n * @param options - Call options\n * @returns The method response body or action output\n * @see {@link xrpc} if you need access to the full response object\n *\n * @example Query\n * ```typescript\n * const profile = await client.call(app.bsky.actor.getProfile.main, {\n * actor: 'alice.bsky.social'\n * })\n * ```\n *\n * @example Procedure\n * ```typescript\n * const result = await client.call(com.atproto.repo.createRecord.main, {\n * repo: did,\n * collection: 'app.bsky.feed.post',\n * record: { text: 'Hello!' }\n * })\n * ```\n */\n public async call<const T extends Query>(\n ns: NonNullable<unknown> extends XrpcRequestParams<T>\n ? Main<T>\n : Restricted<'This query type requires a \"params\" argument'>,\n ): Promise<XrpcResponseBody<T>>\n public async call<const T extends Procedure>(\n ns: undefined extends InferMethodInputBody<T, Uint8Array>\n ? Main<T>\n : Restricted<'This procedure type requires an \"input\" argument'>,\n ): Promise<XrpcResponseBody<T>>\n public async call<const T extends Action>(\n ns: void extends InferActionInput<T>\n ? Main<T>\n : Restricted<'This action type requires an \"input\" argument'>,\n ): Promise<InferActionOutput<T>>\n public async call<const T extends Action | Procedure | Query>(\n ns: Main<T>,\n arg: T extends Action\n ? InferActionInput<T>\n : T extends Procedure\n ? InferMethodInputBody<T, Uint8Array>\n : T extends Query\n ? XrpcRequestParams<T>\n : never,\n options?: T extends Action\n ? ActionOptions\n : T extends Procedure\n ? Omit<XrpcOptions<T>, 'body'>\n : T extends Query\n ? Omit<XrpcOptions<T>, 'params'>\n : never,\n ): Promise<\n T extends Action\n ? InferActionOutput<T>\n : T extends Procedure\n ? XrpcResponseBody<T>\n : T extends Query\n ? XrpcResponseBody<T>\n : never\n >\n public async call(\n ns: Main<Action> | Main<Procedure> | Main<Query>,\n arg?: LexValue | Params,\n options: ActionOptions = {},\n ): Promise<unknown> {\n const method = getMain(ns)\n\n if (typeof method === 'function') {\n return method(this, arg, options)\n }\n\n if (method instanceof Procedure) {\n const result = await this.xrpc(method, { ...options, body: arg as any })\n return result.body\n } else if (method instanceof Query) {\n const result = await this.xrpc(method, { ...options, params: arg as any })\n return result.body\n } else {\n throw new TypeError('Invalid lexicon')\n }\n }\n\n /**\n * Creates a new record with full type safety based on the schema.\n *\n * @param ns - The record schema definition\n * @param input - The record data (without `$type`, which is added automatically)\n * @param options - Create options including rkey (required for some record types)\n * @returns The create output including URI and CID\n *\n * @example Creating a post\n * ```typescript\n * const result = await client.create(app.bsky.feed.post.main, {\n * text: 'Hello, world!',\n * createdAt: new Date().toISOString()\n * })\n * console.log(result.uri)\n * ```\n *\n * @example Creating a record with explicit rkey\n * ```typescript\n * const result = await client.create(app.bsky.actor.profile.main, {\n * displayName: 'Alice'\n * }, { rkey: 'self' })\n * ```\n */\n public async create<const T extends RecordSchema>(\n ns: NonNullable<unknown> extends CreateOptions<T>\n ? Main<T>\n : Restricted<'This record type requires an \"options\" argument'>,\n input: Omit<Infer<T>, '$type'>,\n ): Promise<CreateOutput>\n public async create<const T extends RecordSchema>(\n ns: Main<T>,\n input: Omit<Infer<T>, '$type'>,\n options: CreateOptions<T>,\n ): Promise<CreateOutput>\n public async create<const T extends RecordSchema>(\n ns: Main<T>,\n input: Omit<Infer<T>, '$type'>,\n options: CreateOptions<T> = {} as CreateOptions<T>,\n ): Promise<CreateOutput> {\n const schema: T = getMain(ns)\n const record = schema.build(input) as TypedLexMap<NsidString>\n if (options?.validateRequest) schema.validate(record)\n const rkey = options.rkey ?? getDefaultRecordKey(schema)\n if (rkey !== undefined) schema.keySchema.assert(rkey)\n const response = await this.createRecord(record, rkey, options)\n return response.body\n }\n\n /**\n * Deletes a record with type-safe options.\n *\n * @param ns - The record schema definition\n * @param options - Delete options (rkey required for non-literal keys)\n * @returns The delete output\n */\n public async delete<const T extends RecordSchema>(\n ns: NonNullable<unknown> extends DeleteOptions<T>\n ? Main<T>\n : Restricted<'This record type requires an \"options\" argument'>,\n ): Promise<DeleteOutput>\n public async delete<const T extends RecordSchema>(\n ns: Main<T>,\n options?: DeleteOptions<T>,\n ): Promise<DeleteOutput>\n public async delete<const T extends RecordSchema>(\n ns: Main<T>,\n options: DeleteOptions<T> = {} as DeleteOptions<T>,\n ): Promise<DeleteOutput> {\n const schema = getMain(ns)\n const rkey = schema.keySchema.parse(\n options.rkey ?? getLiteralRecordKey(schema),\n )\n const response = await this.deleteRecord(schema.$type, rkey, options)\n return response.body\n }\n\n /**\n * Retrieves a record with type-safe validation.\n *\n * @param ns - The record schema definition\n * @param options - Get options (rkey required for non-literal keys)\n * @returns The record data validated against the schema\n *\n * @example\n * ```typescript\n * const profile = await client.get(app.bsky.actor.profile.main)\n * // profile.value is typed as app.bsky.actor.profile.Record\n * console.log(profile.value.displayName)\n * ```\n */\n public async get<const T extends RecordSchema>(\n ns: T['key'] extends `literal:${string}`\n ? Main<T>\n : Restricted<'This record type requires an \"options\" argument'>,\n ): Promise<GetOutput<T>>\n public async get<const T extends RecordSchema>(\n ns: Main<T>,\n options: GetOptions<T>,\n ): Promise<GetOutput<T>>\n public async get<const T extends RecordSchema>(\n ns: Main<T>,\n options: GetOptions<T> = {} as GetOptions<T>,\n ): Promise<GetOutput<T>> {\n const schema = getMain(ns)\n const rkey = schema.keySchema.parse(\n options.rkey ?? getLiteralRecordKey(schema),\n )\n const response = await this.getRecord(schema.$type, rkey, options)\n const value = schema.validate(response.body.value)\n return { ...response.body, value }\n }\n\n /**\n * Creates or updates a record with full type safety.\n *\n * @param ns - The record schema definition\n * @param input - The record data\n * @param options - Put options (rkey required for non-literal keys)\n * @returns The put output including URI and CID\n */\n public async put<const T extends RecordSchema>(\n ns: NonNullable<unknown> extends PutOptions<T>\n ? Main<T>\n : Restricted<'This record type requires an \"options\" argument'>,\n input: Omit<Infer<T>, '$type'>,\n ): Promise<PutOutput>\n public async put<const T extends RecordSchema>(\n ns: Main<T>,\n input: Omit<Infer<T>, '$type'>,\n options: PutOptions<T>,\n ): Promise<PutOutput>\n public async put<const T extends RecordSchema>(\n ns: Main<T>,\n input: Omit<Infer<T>, '$type'>,\n options: PutOptions<T> = {} as PutOptions<T>,\n ): Promise<PutOutput> {\n const schema: T = getMain(ns)\n const record = schema.build(input) as TypedLexMap<NsidString>\n if (options?.validateRequest) schema.validate(record)\n const rkey = options.rkey ?? getLiteralRecordKey(schema)\n const response = await this.putRecord(record, rkey, options)\n return response.body\n }\n\n /**\n * Lists records with type-safe validation and separation of valid/invalid records.\n *\n * @param ns - The record schema definition\n * @param options - List options\n * @returns Records split into valid (matching schema) and invalid arrays\n *\n * @example\n * ```typescript\n * const result = await client.list(app.bsky.feed.post.main, { limit: 100 })\n * console.log(`Found ${result.records.length} valid posts`)\n * console.log(`Found ${result.invalid.length} invalid records`)\n * ```\n */\n async list<const T extends RecordSchema>(\n ns: Main<T>,\n options?: ListOptions,\n ): Promise<ListOutput<T>> {\n const schema = getMain(ns)\n const { body } = await this.listRecords(schema.$type, options)\n\n const records: ListRecord<Infer<T>>[] = []\n const invalid: LexMap[] = []\n\n for (const record of body.records) {\n const parsed = schema.safeValidate(record.value)\n if (parsed.success) {\n records.push({ ...record, value: parsed.value })\n } else {\n invalid.push(record.value)\n }\n }\n\n return { ...body, records, invalid }\n }\n}\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { LexMap, LexValue, TypedLexMap } from '@atproto/lex-data'\nimport {\n AtIdentifierString,\n AtUriString,\n CidString,\n DidString,\n Infer,\n InferMethodInputBody,\n InferMethodOutputBody,\n InferRecordKey,\n LexiconRecordKey,\n Main,\n NsidString,\n Params,\n Procedure,\n Query,\n RecordSchema,\n Restricted,\n getMain,\n} from '@atproto/lex-schema'\nimport { Agent, AgentOptions, buildAgent } from './agent.js'\nimport { XrpcFailure } from './errors.js'\n// @NOTE We could use import { com } from \"./lexicons/index.js\" here, but some\n// consumers might not know how to properly tree-shake that, so we import only\n// the needed lexicon schemas directly.\nimport applyWrites from './lexicons/com/atproto/repo/applyWrites.js'\nimport createRecord from './lexicons/com/atproto/repo/createRecord.js'\nimport deleteRecord from './lexicons/com/atproto/repo/deleteRecord.js'\nimport getRecord from './lexicons/com/atproto/repo/getRecord.js'\nimport listRecords from './lexicons/com/atproto/repo/listRecords.js'\nimport putRecord from './lexicons/com/atproto/repo/putRecord.js'\nimport uploadBlob from './lexicons/com/atproto/repo/uploadBlob.js'\nimport getBlob from './lexicons/com/atproto/sync/getBlob.js'\nimport {\n XrpcResponse,\n XrpcResponseBody,\n XrpcResponseOptions,\n} from './response.js'\nimport { BinaryBodyInit, Service } from './types.js'\nimport {\n RecordKeyOptions,\n XrpcRequestHeadersOptions,\n applyDefaults,\n buildXrpcRequestHeaders,\n getDefaultRecordKey,\n getLiteralRecordKey,\n} from './util.js'\nimport {\n WriteOperation,\n WriteOperationCreateOptions,\n WriteOperationDeleteOptions,\n WriteOperationHelper,\n WriteOperationUpdateOptions,\n WriteOperationsFactory,\n} from './write-operation-builder.js'\nimport {\n XrpcOptions,\n XrpcRequestParams,\n XrpcRequestProcessingOptions,\n xrpc,\n xrpcSafe,\n} from './xrpc.js'\n\nexport {\n type AtIdentifierString,\n type CidString,\n type DidString,\n type Infer,\n type InferMethodInputBody,\n type InferMethodOutputBody,\n type InferRecordKey,\n type LexMap,\n type LexValue,\n type LexiconRecordKey,\n type Main,\n type NsidString,\n type Params,\n Procedure,\n Query,\n RecordSchema,\n type Restricted,\n type TypedLexMap,\n type WriteOperation,\n type WriteOperationCreateOptions,\n type WriteOperationDeleteOptions,\n WriteOperationHelper,\n type WriteOperationUpdateOptions,\n type WriteOperationsFactory,\n}\n\n/**\n * Configuration options for creating a {@link Client}.\n *\n * @property {@link ClientOptions.labelers} - An iterable of labeler DIDs to include in requests. These will be combined with any global app labelers configured via {@link Client.configure}.\n * @property {@link ClientOptions.service} - An optional service identifier (DID or URL) for routing requests with service proxying.\n * @property {@link ClientOptions.headers} - Custom headers to include in all requests made by this client instance.\n * @property {@link ClientOptions.validateRequest} - If true, validates request bodies against their lexicon schemas before sending. Defaults to false for performance.\n * @property {@link ClientOptions.validateResponse} - If false, skips validation of response bodies against their lexicon schemas. Defaults to true to catch errors, but can be disabled for performance if you trust the server responses. Note that defaults will not be applied if validation is disabled, which can cause typing inconsistencies, so use with caution.\n * @property {@link ClientOptions.strictResponseProcessing} - If false, relaxes certain validation rules during response processing (e.g., allowing floats, deeper nesting, etc.). Defaults to true for strict compliance with {@link https://atproto.com/specs/data-model lexicon data model}, but can be disabled to handle non-compliant responses.\n *\n * @see {@link XrpcRequestHeadersOptions}\n * @see {@link XrpcRequestProcessingOptions}\n * @see {@link XrpcResponseOptions}\n *\n * @example\n * ```typescript\n * const options: ClientOptions = {\n * labelers: ['did:plc:labeler1'],\n * service: 'did:web:api.bsky.app#bsky_appview',\n * headers: { 'X-Custom-Header': 'value' },\n * validateRequest: false,\n * validateResponse: true,\n * strictResponseProcessing: false,\n * }\n * ```\n */\nexport type ClientOptions = XrpcRequestHeadersOptions &\n Pick<XrpcRequestProcessingOptions, 'validateRequest'> &\n XrpcResponseOptions\n\nexport type ActionOptions = {\n /** AbortSignal to cancel the request. */\n signal?: AbortSignal\n}\n\n/**\n * A composable action that can be invoked via {@link Client.call}.\n *\n * Actions provide a way to define custom operations that integrate with the\n * Client's call interface, enabling type-safe, reusable business logic.\n *\n * @typeParam I - The input type for the action\n * @typeParam O - The output type for the action\n *\n * @example\n * ```typescript\n * const myAction: Action<{ userId: string }, { profile: Profile }> = async (client, input, options) => {\n * const response = await client.xrpc(someMethod, { params: { actor: input.userId }, ...options })\n * return { profile: response.body }\n * }\n * ```\n */\nexport type Action<I = any, O = any> = (\n client: Client,\n input: I,\n options: ActionOptions,\n) => O | Promise<O>\n\n/**\n * Extracts the input type from an {@link Action}.\n * @typeParam A - The Action type to extract from\n */\nexport type InferActionInput<A extends Action> =\n A extends Action<infer I, any> ? I : never\n\n/**\n * Extracts the output type from an {@link Action}.\n * @typeParam A - The Action type to extract from\n */\nexport type InferActionOutput<A extends Action> =\n A extends Action<any, infer O> ? O : never\n\n/**\n * Options for creating a record in an AT Protocol repository.\n *\n * @see {@link Client.createRecord}\n */\nexport type CreateRecordOptions = Omit<\n XrpcOptions<typeof createRecord>,\n 'body'\n> & {\n /** Repository identifier (DID or handle). Defaults to authenticated user's DID. */\n repo?: AtIdentifierString\n /** Compare-and-swap on the repo commit. If specified, must match current commit. */\n swapCommit?: string\n /** Whether to validate the record against its lexicon schema. */\n validate?: boolean\n}\n\n/**\n * Options for deleting a record from an AT Protocol repository.\n *\n * @see {@link Client.deleteRecord}\n */\nexport type DeleteRecordOptions = Omit<\n XrpcOptions<typeof deleteRecord>,\n 'body'\n> & {\n /** Repository identifier (DID or handle). Defaults to authenticated user's DID. */\n repo?: AtIdentifierString\n /** Compare-and-swap on the repo commit. If specified, must match current commit. */\n swapCommit?: string\n /** Compare-and-swap on the record CID. If specified, must match current record. */\n swapRecord?: string\n}\n\n/**\n * Options for retrieving a record from an AT Protocol repository.\n *\n * @see {@link Client.getRecord}\n */\nexport type GetRecordOptions = Omit<XrpcOptions<typeof getRecord>, 'params'> & {\n /** Repository identifier (DID or handle). Defaults to authenticated user's DID. */\n repo?: AtIdentifierString\n}\n\n/**\n * Options for creating or updating a record in an AT Protocol repository.\n *\n * @see {@link Client.putRecord}\n */\nexport type PutRecordOptions = Omit<XrpcOptions<typeof putRecord>, 'body'> & {\n /** Repository identifier (DID or handle). Defaults to authenticated user's DID. */\n repo?: AtIdentifierString\n /** Compare-and-swap on the repo commit. If specified, must match current commit. */\n swapCommit?: string\n /** Compare-and-swap on the record CID. If specified, must match current record. */\n swapRecord?: string\n /** Whether to validate the record against its lexicon schema. */\n validate?: boolean\n}\n\n/**\n * Options for listing records in an AT Protocol repository collection.\n *\n * @see {@link Client.listRecords}\n */\nexport type ListRecordsOptions = Omit<\n XrpcOptions<typeof listRecords>,\n 'params'\n> & {\n /** Repository identifier (DID or handle). Defaults to authenticated user's DID. */\n repo?: AtIdentifierString\n /** Maximum number of records to return. */\n limit?: number\n /** Pagination cursor from a previous response. */\n cursor?: string\n /** If true, returns records in reverse chronological order. */\n reverse?: boolean\n}\n\n/**\n * Options for applying a batch of writes (create/update/delete) to an AT Protocol repository.\n *\n * @see {@link Client.applyWrites}\n */\nexport type ApplyWritesOptions = Omit<\n XrpcOptions<typeof applyWrites>,\n 'body'\n> & {\n /** Repository identifier (DID or handle). Defaults to authenticated user's DID. */\n repo?: AtIdentifierString\n /** Whether the PDS should validate the records against their lexicon schemas. */\n validate?: boolean\n /** Compare-and-swap on the repo commit. If specified, must match current commit. */\n swapCommit?: CidString\n}\n\nexport type UploadBlobOptions = Omit<XrpcOptions<typeof uploadBlob>, 'body'>\n\nexport type GetBlobOptions = Omit<XrpcOptions<typeof getBlob>, 'params'>\n\n/**\n * Type-safe options for {@link Client.create}, combining record options with key requirements.\n * @typeParam T - The record schema type\n * @see {@link CreateRecordOptions}\n */\nexport type CreateOptions<T extends RecordSchema> = CreateRecordOptions &\n RecordKeyOptions<T, 'tid' | 'any'>\n\n/**\n * Output type for record creation operations.\n * Contains the URI and CID of the newly created record.\n */\nexport type CreateOutput = InferMethodOutputBody<\n typeof createRecord,\n Uint8Array\n>\n\n/**\n * Type-safe options for {@link Client.delete}, combining delete options with key requirements.\n * @typeParam T - The record schema type\n */\nexport type DeleteOptions<T extends RecordSchema> = DeleteRecordOptions &\n RecordKeyOptions<T>\n\n/**\n * Output type for record deletion operations.\n */\nexport type DeleteOutput = InferMethodOutputBody<\n typeof deleteRecord,\n Uint8Array\n>\n\n/**\n * Type-safe options for {@link Client.get}, combining get options with key requirements.\n * @typeParam T - The record schema type\n */\nexport type GetOptions<T extends RecordSchema> = GetRecordOptions &\n RecordKeyOptions<T>\n\n/**\n * Output type for record retrieval operations.\n * Contains the record value validated against the schema type.\n * @typeParam T - The record schema type\n */\nexport type GetOutput<T extends RecordSchema> = Omit<\n InferMethodOutputBody<typeof getRecord, Uint8Array>,\n 'value'\n> & { value: Infer<T> }\n\n/**\n * Type-safe options for {@link Client.put}, combining put options with key requirements.\n * @typeParam T - The record schema type\n */\nexport type PutOptions<T extends RecordSchema> = PutRecordOptions &\n RecordKeyOptions<T>\n\n/**\n * Output type for record put (create/update) operations.\n * Contains the URI and CID of the record.\n */\nexport type PutOutput = InferMethodOutputBody<typeof putRecord, Uint8Array>\n\n/**\n * Options for {@link Client.list} operations.\n */\nexport type ListOptions = ListRecordsOptions\n\n/**\n * Output type for record listing operations.\n * Contains validated records and any invalid records that failed schema validation.\n * @typeParam T - The record schema type\n */\nexport type ListOutput<T extends RecordSchema> = InferMethodOutputBody<\n typeof listRecords,\n Uint8Array\n> & {\n /** Records that successfully validated against the schema. */\n records: ListRecord<Infer<T>>[]\n // @NOTE Because the schema uses \"type\": \"unknown\" instead of an open union,\n // we have to use LexMap instead of Unknown$TypedObject here, which is\n // unfortunate.\n /** Records that failed schema validation. */\n invalid: LexMap[]\n}\n\n/**\n * A record from a list operation with its value typed to the schema.\n * @typeParam Value - The validated record value type\n */\nexport type ListRecord<Value extends LexMap> = {\n uri: AtUriString\n cid: CidString\n value: Value\n}\n\n/**\n * The Client class is the primary interface for interacting with AT Protocol\n * services. It provides type-safe methods for XRPC calls, record operations,\n * and blob handling.\n *\n * @example\n * ```typescript\n * import { Client } from '@atproto/lex'\n * import { app } from '#/lexicons\n *\n * const client = new Client(oauthSession)\n *\n * const response = await client.xrpc(app.bsky.feed.getTimeline.main, {\n * params: { limit: 50 }\n * })\n * ```\n */\nexport class Client implements Agent {\n static appLabelers: readonly DidString[] = []\n\n /**\n * Configures the Client (or its sub classes) globally.\n */\n static configure(opts: { appLabelers?: Iterable<DidString> }) {\n if (opts.appLabelers) this.appLabelers = [...opts.appLabelers]\n }\n\n /** The underlying agent used for making requests. */\n public readonly agent: Agent\n\n /** Custom headers included in all requests. */\n public readonly headers: Headers\n\n /** Optional service identifier for routing requests. */\n public readonly service?: Service\n\n /** Set of labeler DIDs specific to this client instance. */\n public readonly labelers: Set<DidString>\n\n public readonly xrpcDefaults: {\n readonly validateRequest: boolean\n readonly validateResponse: boolean\n readonly strictResponseProcessing: boolean\n }\n\n constructor(agent: Agent | AgentOptions, options: ClientOptions = {}) {\n this.agent = buildAgent(agent)\n this.service = options.service\n this.labelers = new Set(options.labelers)\n this.headers = new Headers(options.headers)\n this.xrpcDefaults = Object.freeze({\n validateRequest: options.validateRequest ?? false,\n validateResponse: options.validateResponse ?? true,\n strictResponseProcessing: options.strictResponseProcessing ?? true,\n })\n }\n\n /**\n * The DID of the authenticated user, or `undefined` if not authenticated.\n */\n get did(): DidString | undefined {\n return this.agent.did\n }\n\n /**\n * The DID of the authenticated user.\n * @throws {Error} if not authenticated\n */\n get assertDid(): DidString {\n this.assertAuthenticated()\n return this.did\n }\n\n /**\n * Asserts that the client is authenticated.\n * Use as a type guard when you need to ensure authentication.\n *\n * @throws {Error} if not authenticated\n *\n * @example\n * ```typescript\n * client.assertAuthenticated()\n * // TypeScript now knows client.did is defined\n * console.log(client.did)\n * ```\n */\n public assertAuthenticated(): asserts this is { did: DidString } {\n if (!this.did) throw new Error('Client is not authenticated')\n }\n\n /**\n * Replaces all labelers with the given set.\n * @param labelers - Iterable of labeler DIDs\n */\n public setLabelers(labelers: Iterable<DidString> = []) {\n this.clearLabelers()\n this.addLabelers(labelers)\n }\n\n /**\n * Adds labelers to the current set.\n * @param labelers - Iterable of labeler DIDs to add\n */\n public addLabelers(labelers: Iterable<DidString>) {\n for (const labeler of labelers) this.labelers.add(labeler)\n }\n\n /**\n * Removes all labelers from this client instance.\n */\n public clearLabelers() {\n this.labelers.clear()\n }\n\n /**\n * {@link Agent}'s {@link Agent.fetchHandler} implementation, which adds\n * labelers and service proxying headers. This method allow a {@link Client}\n * instance to be used directly as an {@link Agent} for another\n * {@link Client}, enabling composition of headers (labelers, proxying, etc.).\n *\n * @param path - The request path\n * @param init - Request initialization options\n */\n public fetchHandler(\n path: `/${string}`,\n init: RequestInit,\n ): Promise<Response> {\n const headers = buildXrpcRequestHeaders({\n headers: init.headers,\n service: this.service,\n labelers: [\n ...(this.constructor as typeof Client).appLabelers.map(\n (l) => `${l};redact` as const,\n ),\n ...this.labelers,\n ],\n })\n\n // Incoming headers take precedence\n for (const [key, value] of this.headers) {\n if (!headers.has(key)) headers.set(key, value)\n }\n\n // @NOTE The agent here could be another Client instance.\n return this.agent.fetchHandler(path, { ...init, headers })\n }\n\n /**\n * Makes an XRPC request. Throws on failure.\n *\n * @param ns - The lexicon method definition (e.g., `app.bsky.feed.getTimeline`)\n * @param options - Request options including params and body\n * @returns The successful XRPC response\n * @throws {XrpcFailure} when the request fails or returns an error\n *\n * @example Query with parameters\n * ```typescript\n * const response = await client.xrpc(app.bsky.feed.getTimeline, {\n * params: { limit: 50, cursor: 'abc123' }\n * })\n * console.log(response.body.feed)\n * ```\n *\n * @example Procedure with body\n * ```typescript\n * const response = await client.xrpc(com.atproto.repo.createRecord, {\n * body: {\n * repo: client.assertDid,\n * collection: 'app.bsky.feed.post',\n * record: { text: 'Hello!', createdAt: new Date().toISOString() }\n * }\n * })\n * ```\n *\n * @see {@link xrpcSafe} for a non-throwing variant\n */\n async xrpc<const M extends Query | Procedure>(\n ns: NonNullable<unknown> extends XrpcOptions<M>\n ? Main<M>\n : Restricted<'This XRPC method requires an \"options\" argument'>,\n ): Promise<XrpcResponse<M>>\n async xrpc<const M extends Query | Procedure>(\n ns: Main<M>,\n options: XrpcOptions<M>,\n ): Promise<XrpcResponse<M>>\n async xrpc<const M extends Query | Procedure>(\n ns: Main<M>,\n options: XrpcOptions<M> = {} as XrpcOptions<M>,\n ): Promise<XrpcResponse<M>> {\n return xrpc(this, ns, applyDefaults(options, this.xrpcDefaults))\n }\n\n /**\n * Makes an XRPC request without throwing on failure.\n * Returns either a successful response or a failure object.\n *\n * @param ns - The lexicon method definition\n * @param options - Request options\n * @returns Either an XrpcResponse on success or XrpcFailure on failure\n *\n * @example\n * ```typescript\n * const result = await client.xrpcSafe(app.bsky.actor.getProfile.main, {\n * params: { actor: 'alice.bsky.social' }\n * })\n *\n * if (result.success) {\n * console.log(result.body.displayName)\n * } else {\n * console.error('Failed:', result.error)\n * }\n * ```\n *\n * @see {@link xrpc} for a throwing variant\n */\n async xrpcSafe<const M extends Query | Procedure>(\n ns: NonNullable<unknown> extends XrpcOptions<M>\n ? Main<M>\n : Restricted<'This XRPC method requires an \"options\" argument'>,\n ): Promise<XrpcResponse<M> | XrpcFailure<M>>\n async xrpcSafe<const M extends Query | Procedure>(\n ns: Main<M>,\n options: XrpcOptions<M>,\n ): Promise<XrpcResponse<M> | XrpcFailure<M>>\n async xrpcSafe<const M extends Query | Procedure>(\n ns: Main<M>,\n options: XrpcOptions<M> = {} as XrpcOptions<M>,\n ): Promise<XrpcResponse<M> | XrpcFailure<M>> {\n return xrpcSafe(this, ns, applyDefaults(options, this.xrpcDefaults))\n }\n\n /**\n * Creates a new record in an AT Protocol repository.\n *\n * @param record - The record to create, must include an {@link NsidString} `$type`\n * @param rkey - Optional record key; if omitted, server generates a TID\n * @param options - Create options including repo, swapCommit, validate\n * @returns The XRPC response containing the created record's URI and CID\n *\n * @example\n * ```typescript\n * const response = await client.createRecord(\n * { $type: 'app.bsky.feed.post', text: 'Hello!', createdAt: new Date().toISOString() },\n * undefined, // Let server generate rkey\n * { validate: true }\n * )\n * console.log(response.body.uri)\n * ```\n *\n * @see {@link create} for a higher-level typed alternative\n */\n public async createRecord(\n record: TypedLexMap<NsidString>,\n rkey?: string,\n options?: CreateRecordOptions,\n ) {\n return this.xrpc(createRecord, {\n ...options,\n body: {\n repo: options?.repo ?? this.assertDid,\n collection: record.$type,\n record,\n rkey,\n validate: options?.validate,\n swapCommit: options?.swapCommit,\n },\n })\n }\n\n /**\n * Deletes a record from an AT Protocol repository.\n *\n * @param collection - The collection NSID\n * @param rkey - The record key\n * @param options - Delete options including repo, swapCommit, swapRecord\n *\n * @see {@link delete} for a higher-level typed alternative\n */\n async deleteRecord(\n collection: NsidString,\n rkey: string,\n options?: DeleteRecordOptions,\n ) {\n return this.xrpc(deleteRecord, {\n ...options,\n body: {\n repo: options?.repo ?? this.assertDid,\n collection,\n rkey,\n swapCommit: options?.swapCommit,\n swapRecord: options?.swapRecord,\n },\n })\n }\n\n /**\n * Retrieves a record from an AT Protocol repository.\n *\n * @param collection - The collection NSID\n * @param rkey - The record key\n * @param options - Get options including repo\n *\n * @see {@link get} for a higher-level typed alternative\n */\n public async getRecord(\n collection: NsidString,\n rkey: string,\n options?: GetRecordOptions,\n ) {\n return this.xrpc(getRecord, {\n ...options,\n params: {\n repo: options?.repo ?? this.assertDid,\n collection,\n rkey,\n },\n })\n }\n\n /**\n * Creates or updates a record in a repository.\n *\n * @param record - The record to put, must include an {@link NsidString} `$type`\n * @param rkey - The record key\n * @param options - Put options including repo, swapCommit, swapRecord, validate\n *\n * @see {@link put} for a higher-level typed alternative\n */\n async putRecord(\n record: TypedLexMap<NsidString>,\n rkey: string,\n options?: PutRecordOptions,\n ) {\n return this.xrpc(putRecord, {\n ...options,\n body: {\n repo: options?.repo ?? this.assertDid,\n collection: record.$type,\n rkey,\n record,\n validate: options?.validate,\n swapCommit: options?.swapCommit,\n swapRecord: options?.swapRecord,\n },\n })\n }\n\n /**\n * Lists records in a collection.\n *\n * @param nsid - The collection NSID\n * @param options - List options including repo, limit, cursor, reverse\n *\n * @see {@link list} for a higher-level typed alternative\n */\n async listRecords(nsid: NsidString, options?: ListRecordsOptions) {\n return this.xrpc(listRecords, {\n ...options,\n params: {\n repo: options?.repo ?? this.assertDid,\n collection: nsid,\n cursor: options?.cursor,\n limit: options?.limit,\n reverse: options?.reverse,\n },\n })\n }\n\n /**\n * Performs an atomic batch of create, update, and delete operations on records in a repository.\n *\n * @param builder - A function that receives an {@link ApplyWritesOperations} instance to build the operations\n * @param options - ApplyWrites options including repo, validate, swapCommit\n * @returns The XRPC response from the applyWrites call\n *\n * @example\n * ```typescript\n * const response = await client.applyWrites((op) => [\n * op.create(app.bsky.feed.post, { text: 'Hello!' }),\n * op.update(app.bsky.feed.post, { text: 'Updated text' }, { rkey: 'post123' }),\n * op.delete(app.bsky.feed.post, 'post456'),\n * op.update(app.bsky.actor.profile, { displayName: 'Alice' }),\n * ], {\n * validate: true,\n * })\n *\n * for (const result of response.body.results) {\n * console.log(result.uri)\n * }\n * ```\n */\n async applyWrites(\n factory: WriteOperationsFactory,\n options?: ApplyWritesOptions,\n ) {\n return this.xrpc(applyWrites, {\n ...options,\n body: {\n repo: options?.repo ?? this.assertDid,\n writes: WriteOperationHelper.build(factory),\n validate: options?.validate,\n swapCommit: options?.swapCommit,\n },\n })\n }\n\n /**\n * Uploads a blob to an AT Protocol repository.\n *\n * @param body - The blob data (Uint8Array, ReadableStream, Blob, etc.)\n * @param options - Upload options including encoding hint\n * @returns Response containing the blob reference\n *\n * @example\n * ```typescript\n * const imageData = await fetch('image.png').then(r => r.arrayBuffer())\n * const response = await client.uploadBlob(new Uint8Array(imageData), {\n * encoding: 'image/png'\n * })\n * console.log(response.body.blob) // Use this ref in records\n * ```\n */\n async uploadBlob(body: BinaryBodyInit, options?: UploadBlobOptions) {\n return this.xrpc(uploadBlob, { ...options, body })\n }\n\n /**\n * Retrieves a blob by DID and CID.\n *\n * @param did - The DID of the repository containing the blob\n * @param cid - The CID of the blob\n * @param options - Call options\n */\n async getBlob(did: DidString, cid: CidString, options?: GetBlobOptions) {\n return this.xrpc(getBlob, {\n ...options,\n params: { did, cid },\n })\n }\n\n /**\n * Universal call method for queries, procedures, and custom actions.\n * Automatically determines the call type based on the lexicon definition.\n *\n * @param ns - The lexicon method or action definition\n * @param arg - The input argument (params for queries, body for procedures, input for actions)\n * @param options - Call options\n * @returns The method response body or action output\n * @see {@link xrpc} if you need access to the full response object\n *\n * @example Query\n * ```typescript\n * const profile = await client.call(app.bsky.actor.getProfile.main, {\n * actor: 'alice.bsky.social'\n * })\n * ```\n *\n * @example Procedure\n * ```typescript\n * const result = await client.call(com.atproto.repo.createRecord.main, {\n * repo: did,\n * collection: 'app.bsky.feed.post',\n * record: { text: 'Hello!' }\n * })\n * ```\n */\n public async call<const T extends Query>(\n ns: NonNullable<unknown> extends XrpcRequestParams<T>\n ? Main<T>\n : Restricted<'This query type requires a \"params\" argument'>,\n ): Promise<XrpcResponseBody<T>>\n public async call<const T extends Procedure>(\n ns: undefined extends InferMethodInputBody<T, Uint8Array>\n ? Main<T>\n : Restricted<'This procedure type requires an \"input\" argument'>,\n ): Promise<XrpcResponseBody<T>>\n public async call<const T extends Action>(\n ns: void extends InferActionInput<T>\n ? Main<T>\n : Restricted<'This action type requires an \"input\" argument'>,\n ): Promise<InferActionOutput<T>>\n public async call<const T extends Action | Procedure | Query>(\n ns: Main<T>,\n arg: T extends Action\n ? InferActionInput<T>\n : T extends Procedure\n ? InferMethodInputBody<T, Uint8Array>\n : T extends Query\n ? XrpcRequestParams<T>\n : never,\n options?: T extends Action\n ? ActionOptions\n : T extends Procedure\n ? Omit<XrpcOptions<T>, 'body'>\n : T extends Query\n ? Omit<XrpcOptions<T>, 'params'>\n : never,\n ): Promise<\n T extends Action\n ? InferActionOutput<T>\n : T extends Procedure\n ? XrpcResponseBody<T>\n : T extends Query\n ? XrpcResponseBody<T>\n : never\n >\n public async call(\n ns: Main<Action> | Main<Procedure> | Main<Query>,\n arg?: LexValue | Params,\n options: ActionOptions = {},\n ): Promise<unknown> {\n const method = getMain(ns)\n\n if (typeof method === 'function') {\n return method(this, arg, options)\n }\n\n if (method instanceof Procedure) {\n const result = await this.xrpc(method, { ...options, body: arg as any })\n return result.body\n } else if (method instanceof Query) {\n const result = await this.xrpc(method, { ...options, params: arg as any })\n return result.body\n } else {\n throw new TypeError('Invalid lexicon')\n }\n }\n\n /**\n * Creates a new record with full type safety based on the schema.\n *\n * @param ns - The record schema definition\n * @param input - The record data (without `$type`, which is added automatically)\n * @param options - Create options including rkey (required for some record types)\n * @returns The create output including URI and CID\n *\n * @example Creating a post\n * ```typescript\n * const result = await client.create(app.bsky.feed.post.main, {\n * text: 'Hello, world!',\n * createdAt: new Date().toISOString()\n * })\n * console.log(result.uri)\n * ```\n *\n * @example Creating a record with explicit rkey\n * ```typescript\n * const result = await client.create(app.bsky.actor.profile.main, {\n * displayName: 'Alice'\n * }, { rkey: 'self' })\n * ```\n */\n public async create<const T extends RecordSchema>(\n ns: NonNullable<unknown> extends CreateOptions<T>\n ? Main<T>\n : Restricted<'This record type requires an \"options\" argument'>,\n input: Omit<Infer<T>, '$type'>,\n ): Promise<CreateOutput>\n public async create<const T extends RecordSchema>(\n ns: Main<T>,\n input: Omit<Infer<T>, '$type'>,\n options: CreateOptions<T>,\n ): Promise<CreateOutput>\n public async create<const T extends RecordSchema>(\n ns: Main<T>,\n input: Omit<Infer<T>, '$type'>,\n options: CreateOptions<T> = {} as CreateOptions<T>,\n ): Promise<CreateOutput> {\n const schema: T = getMain(ns)\n const record = schema.build(input) as TypedLexMap<NsidString>\n if (options?.validateRequest) schema.validate(record)\n const rkey = options.rkey ?? getDefaultRecordKey(schema)\n if (rkey !== undefined) schema.keySchema.assert(rkey)\n const response = await this.createRecord(record, rkey, options)\n return response.body\n }\n\n /**\n * Deletes a record with type-safe options.\n *\n * @param ns - The record schema definition\n * @param options - Delete options (rkey required for non-literal keys)\n * @returns The delete output\n */\n public async delete<const T extends RecordSchema>(\n ns: NonNullable<unknown> extends DeleteOptions<T>\n ? Main<T>\n : Restricted<'This record type requires an \"options\" argument'>,\n ): Promise<DeleteOutput>\n public async delete<const T extends RecordSchema>(\n ns: Main<T>,\n options?: DeleteOptions<T>,\n ): Promise<DeleteOutput>\n public async delete<const T extends RecordSchema>(\n ns: Main<T>,\n options: DeleteOptions<T> = {} as DeleteOptions<T>,\n ): Promise<DeleteOutput> {\n const schema = getMain(ns)\n const rkey = schema.keySchema.parse(\n options.rkey ?? getLiteralRecordKey(schema),\n )\n const response = await this.deleteRecord(schema.$type, rkey, options)\n return response.body\n }\n\n /**\n * Retrieves a record with type-safe validation.\n *\n * @param ns - The record schema definition\n * @param options - Get options (rkey required for non-literal keys)\n * @returns The record data validated against the schema\n *\n * @example\n * ```typescript\n * const profile = await client.get(app.bsky.actor.profile.main)\n * // profile.value is typed as app.bsky.actor.profile.Record\n * console.log(profile.value.displayName)\n * ```\n */\n public async get<const T extends RecordSchema>(\n ns: T['key'] extends `literal:${string}`\n ? Main<T>\n : Restricted<'This record type requires an \"options\" argument'>,\n ): Promise<GetOutput<T>>\n public async get<const T extends RecordSchema>(\n ns: Main<T>,\n options: GetOptions<T>,\n ): Promise<GetOutput<T>>\n public async get<const T extends RecordSchema>(\n ns: Main<T>,\n options: GetOptions<T> = {} as GetOptions<T>,\n ): Promise<GetOutput<T>> {\n const schema = getMain(ns)\n const rkey = schema.keySchema.parse(\n options.rkey ?? getLiteralRecordKey(schema),\n )\n const response = await this.getRecord(schema.$type, rkey, options)\n const value = schema.validate(response.body.value)\n return { ...response.body, value }\n }\n\n /**\n * Creates or updates a record with full type safety.\n *\n * @param ns - The record schema definition\n * @param input - The record data\n * @param options - Put options (rkey required for non-literal keys)\n * @returns The put output including URI and CID\n */\n public async put<const T extends RecordSchema>(\n ns: NonNullable<unknown> extends PutOptions<T>\n ? Main<T>\n : Restricted<'This record type requires an \"options\" argument'>,\n input: Omit<Infer<T>, '$type'>,\n ): Promise<PutOutput>\n public async put<const T extends RecordSchema>(\n ns: Main<T>,\n input: Omit<Infer<T>, '$type'>,\n options: PutOptions<T>,\n ): Promise<PutOutput>\n public async put<const T extends RecordSchema>(\n ns: Main<T>,\n input: Omit<Infer<T>, '$type'>,\n options: PutOptions<T> = {} as PutOptions<T>,\n ): Promise<PutOutput> {\n const schema: T = getMain(ns)\n const record = schema.build(input) as TypedLexMap<NsidString>\n if (options?.validateRequest) schema.validate(record)\n const rkey = options.rkey ?? getLiteralRecordKey(schema)\n const response = await this.putRecord(record, rkey, options)\n return response.body\n }\n\n /**\n * Lists records with type-safe validation and separation of valid/invalid records.\n *\n * @param ns - The record schema definition\n * @param options - List options\n * @returns Records split into valid (matching schema) and invalid arrays\n *\n * @example\n * ```typescript\n * const result = await client.list(app.bsky.feed.post.main, { limit: 100 })\n * console.log(`Found ${result.records.length} valid posts`)\n * console.log(`Found ${result.invalid.length} invalid records`)\n * ```\n */\n async list<const T extends RecordSchema>(\n ns: Main<T>,\n options?: ListOptions,\n ): Promise<ListOutput<T>> {\n const schema = getMain(ns)\n const { body } = await this.listRecords(schema.$type, options)\n\n const records: ListRecord<Infer<T>>[] = []\n const invalid: LexMap[] = []\n\n for (const record of body.records) {\n const parsed = schema.safeValidate(record.value)\n if (parsed.success) {\n records.push({ ...record, value: parsed.value })\n } else {\n invalid.push(record.value)\n }\n }\n\n return { ...body, records, invalid }\n }\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  export * from './applyWrites.defs.js';
2
- export * as $defs from './applyWrites.defs.js';
2
+ export { main as default } from './applyWrites.defs.js';
3
3
  //# sourceMappingURL=applyWrites.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"applyWrites.d.ts","sourceRoot":"","sources":["../../../../../src/lexicons/com/atproto/repo/applyWrites.ts"],"names":[],"mappings":"AAIA,cAAc,uBAAuB,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"applyWrites.d.ts","sourceRoot":"","sources":["../../../../../src/lexicons/com/atproto/repo/applyWrites.ts"],"names":[],"mappings":"AAIA,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAA"}