@atproto/lex-client 0.0.5 → 0.0.7

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 (77) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/agent.d.ts +1 -1
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +3 -0
  5. package/dist/agent.js.map +1 -1
  6. package/dist/client.d.ts +34 -32
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +17 -21
  9. package/dist/client.js.map +1 -1
  10. package/dist/{xrpc-error.d.ts → errors.d.ts} +22 -27
  11. package/dist/errors.d.ts.map +1 -0
  12. package/dist/{xrpc-error.js → errors.js} +38 -33
  13. package/dist/errors.js.map +1 -0
  14. package/dist/index.d.ts +2 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +2 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/lexicons/com/atproto/repo/createRecord.defs.d.ts.map +1 -1
  19. package/dist/lexicons/com/atproto/repo/createRecord.defs.js +5 -7
  20. package/dist/lexicons/com/atproto/repo/createRecord.defs.js.map +1 -1
  21. package/dist/lexicons/com/atproto/repo/deleteRecord.defs.d.ts.map +1 -1
  22. package/dist/lexicons/com/atproto/repo/deleteRecord.defs.js +5 -7
  23. package/dist/lexicons/com/atproto/repo/deleteRecord.defs.js.map +1 -1
  24. package/dist/lexicons/com/atproto/repo/getRecord.defs.d.ts.map +1 -1
  25. package/dist/lexicons/com/atproto/repo/getRecord.defs.js +3 -5
  26. package/dist/lexicons/com/atproto/repo/getRecord.defs.js.map +1 -1
  27. package/dist/lexicons/com/atproto/repo/listRecords.defs.d.ts.map +1 -1
  28. package/dist/lexicons/com/atproto/repo/listRecords.defs.js +2 -3
  29. package/dist/lexicons/com/atproto/repo/listRecords.defs.js.map +1 -1
  30. package/dist/lexicons/com/atproto/repo/putRecord.defs.d.ts.map +1 -1
  31. package/dist/lexicons/com/atproto/repo/putRecord.defs.js +5 -7
  32. package/dist/lexicons/com/atproto/repo/putRecord.defs.js.map +1 -1
  33. package/dist/lexicons/com/atproto/repo/uploadBlob.defs.d.ts.map +1 -1
  34. package/dist/lexicons/com/atproto/repo/uploadBlob.defs.js +3 -4
  35. package/dist/lexicons/com/atproto/repo/uploadBlob.defs.js.map +1 -1
  36. package/dist/lexicons/index.d.ts +2 -0
  37. package/dist/lexicons/index.d.ts.map +1 -0
  38. package/dist/lexicons/index.js +9 -0
  39. package/dist/lexicons/index.js.map +1 -0
  40. package/dist/response.d.ts +38 -0
  41. package/dist/response.d.ts.map +1 -0
  42. package/dist/{xrpc-response.js → response.js} +24 -20
  43. package/dist/response.js.map +1 -0
  44. package/dist/types.d.ts +0 -4
  45. package/dist/types.d.ts.map +1 -1
  46. package/dist/types.js +0 -4
  47. package/dist/types.js.map +1 -1
  48. package/dist/xrpc.d.ts +23 -17
  49. package/dist/xrpc.d.ts.map +1 -1
  50. package/dist/xrpc.js +15 -17
  51. package/dist/xrpc.js.map +1 -1
  52. package/package.json +10 -10
  53. package/src/agent.ts +6 -2
  54. package/src/client.ts +72 -66
  55. package/src/{xrpc-error.ts → errors.ts} +59 -48
  56. package/src/index.ts +2 -0
  57. package/src/lexicons/com/atproto/repo/createRecord.defs.ts +22 -28
  58. package/src/lexicons/com/atproto/repo/deleteRecord.defs.ts +18 -24
  59. package/src/lexicons/com/atproto/repo/getRecord.defs.ts +5 -10
  60. package/src/lexicons/com/atproto/repo/listRecords.defs.ts +6 -9
  61. package/src/lexicons/com/atproto/repo/putRecord.defs.ts +23 -29
  62. package/src/lexicons/com/atproto/repo/uploadBlob.defs.ts +4 -7
  63. package/src/lexicons/index.ts +5 -0
  64. package/src/{xrpc-response.ts → response.ts} +45 -30
  65. package/src/types.ts +0 -6
  66. package/src/xrpc.ts +56 -57
  67. package/tsconfig.tests.json +4 -7
  68. package/dist/lexicons.d.ts +0 -2
  69. package/dist/lexicons.d.ts.map +0 -1
  70. package/dist/lexicons.js +0 -6
  71. package/dist/lexicons.js.map +0 -1
  72. package/dist/xrpc-error.d.ts.map +0 -1
  73. package/dist/xrpc-error.js.map +0 -1
  74. package/dist/xrpc-response.d.ts +0 -35
  75. package/dist/xrpc-response.d.ts.map +0 -1
  76. package/dist/xrpc-response.js.map +0 -1
  77. package/src/lexicons.ts +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,31 @@
1
1
  # @atproto/lex-client
2
2
 
3
+ ## 0.0.7
4
+
5
+ ### Patch Changes
6
+
7
+ - [#4501](https://github.com/bluesky-social/atproto/pull/4501) [`2f78893`](https://github.com/bluesky-social/atproto/commit/2f78893ace3bbf14d4bac36837820ddb46658c98) Thanks [@matthieusieben](https://github.com/matthieusieben)! - **breaking:** Use a record type (`com.example.record.Main`) instead of a record schema type (`typeof com.example.record.$defs.main`) as the generic parameter for `ListRecord`.
8
+
9
+ - Updated dependencies [[`2f78893`](https://github.com/bluesky-social/atproto/commit/2f78893ace3bbf14d4bac36837820ddb46658c98), [`2f78893`](https://github.com/bluesky-social/atproto/commit/2f78893ace3bbf14d4bac36837820ddb46658c98), [`2f78893`](https://github.com/bluesky-social/atproto/commit/2f78893ace3bbf14d4bac36837820ddb46658c98), [`2f78893`](https://github.com/bluesky-social/atproto/commit/2f78893ace3bbf14d4bac36837820ddb46658c98)]:
10
+ - @atproto/lex-data@0.0.6
11
+ - @atproto/lex-schema@0.0.7
12
+ - @atproto/lex-json@0.0.6
13
+
14
+ ## 0.0.6
15
+
16
+ ### Patch Changes
17
+
18
+ - [#4443](https://github.com/bluesky-social/atproto/pull/4443) [`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Rework `XrpcError` to extend `LexError` from `@atproto/data`
19
+
20
+ - [#4443](https://github.com/bluesky-social/atproto/pull/4443) [`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c) Thanks [@matthieusieben](https://github.com/matthieusieben)! - Expose `asXrpcFailure` utility
21
+
22
+ - [#4443](https://github.com/bluesky-social/atproto/pull/4443) [`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c) Thanks [@matthieusieben](https://github.com/matthieusieben)! - `buildAgent` can now be given an `Agent` as input (and will act as identity in that case)
23
+
24
+ - Updated dependencies [[`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c), [`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c), [`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c), [`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c), [`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c), [`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c), [`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c), [`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c), [`9af7a2d`](https://github.com/bluesky-social/atproto/commit/9af7a2d12240e91248610ce4fe7d93387733c59c)]:
25
+ - @atproto/lex-schema@0.0.6
26
+ - @atproto/lex-data@0.0.5
27
+ - @atproto/lex-json@0.0.5
28
+
3
29
  ## 0.0.5
4
30
 
5
31
  ### Patch Changes
package/dist/agent.d.ts CHANGED
@@ -30,5 +30,5 @@ export type AgentConfig = {
30
30
  fetch?: typeof globalThis.fetch;
31
31
  };
32
32
  export type AgentOptions = AgentConfig | string | URL;
33
- export declare function buildAgent(options: AgentOptions): Agent;
33
+ export declare function buildAgent(options: Agent | AgentOptions): Agent;
34
34
  //# sourceMappingURL=agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,MAAM,MAAM,YAAY,GAAG;AACzB;;;;GAIG;AACH,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,KACd,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtB,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,GAAG,CAAC,EAAE,SAAS,CAAA;IAEf;;;;OAIG;IACH,OAAO,EAAE,MAAM,GAAG,GAAG,CAAA;IAErB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,MAAM,GAAG,GAAG,CAAA;AAErD,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,KAAK,CAqBvD"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,MAAM,MAAM,YAAY,GAAG;AACzB;;;;GAIG;AACH,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,KACd,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtB,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,GAAG,CAAC,EAAE,SAAS,CAAA;IAEf;;;;OAIG;IACH,OAAO,EAAE,MAAM,GAAG,GAAG,CAAA;IAErB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAChC,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,MAAM,GAAG,GAAG,CAAA;AAErD,wBAAgB,UAAU,CAAC,OAAO,EAAE,KAAK,GAAG,YAAY,GAAG,KAAK,CAyB/D"}
package/dist/agent.js CHANGED
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildAgent = buildAgent;
4
4
  function buildAgent(options) {
5
+ if (typeof options === 'object' && 'fetchHandler' in options) {
6
+ return options;
7
+ }
5
8
  const config = typeof options === 'string' || options instanceof URL
6
9
  ? { did: undefined, service: options }
7
10
  : options;
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":";;AAyCA,gCAqBC;AArBD,SAAgB,UAAU,CAAC,OAAqB;IAC9C,MAAM,MAAM,GACV,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,YAAY,GAAG;QACnD,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE;QACtC,CAAC,CAAC,OAAO,CAAA;IAEb,MAAM,EAAE,OAAO,EAAE,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,MAAM,CAAA;IAEpD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAA;IACrE,CAAC;IAED,OAAO;QACL,IAAI,GAAG;YACL,OAAO,MAAM,CAAC,GAAG,CAAA;QACnB,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI;YAC3B,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;QAC5C,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["import { DidString } from '@atproto/lex-schema'\n\nexport type FetchHandler = (\n /**\n * The URL (pathname + query parameters) to make the request to, without the\n * origin. The origin (protocol, hostname, and port) must be added by this\n * {@link FetchHandler}, typically based on authentication or other factors.\n */\n path: string,\n init: RequestInit,\n) => Promise<Response>\n\nexport interface Agent {\n readonly did?: DidString\n fetchHandler: FetchHandler\n}\n\nexport type AgentConfig = {\n /**\n * The identifier (DID) of the user represented by this agent.\n */\n did?: DidString\n\n /**\n * The service URL to make requests to. This can be a string, URL, or a\n * function that returns a string or URL. This is useful for dynamic URLs,\n * such as a service URL that changes based on authentication.\n */\n service: string | URL\n\n /**\n * Bring your own fetch implementation. Typically useful for testing, logging,\n * mocking, or adding retries, session management, signatures, proof of\n * possession (DPoP), SSRF protection, etc. Defaults to the global `fetch`\n * function.\n */\n fetch?: typeof globalThis.fetch\n}\n\nexport type AgentOptions = AgentConfig | string | URL\n\nexport function buildAgent(options: AgentOptions): Agent {\n const config: AgentConfig =\n typeof options === 'string' || options instanceof URL\n ? { did: undefined, service: options }\n : options\n\n const { service, fetch = globalThis.fetch } = config\n\n if (typeof fetch !== 'function') {\n throw new TypeError('fetch() is not available in this environment')\n }\n\n return {\n get did() {\n return config.did\n },\n\n async fetchHandler(path, init) {\n return fetch(new URL(path, service), init)\n },\n }\n}\n"]}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":";;AAyCA,gCAyBC;AAzBD,SAAgB,UAAU,CAAC,OAA6B;IACtD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,cAAc,IAAI,OAAO,EAAE,CAAC;QAC7D,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,MAAM,GACV,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,YAAY,GAAG;QACnD,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE;QACtC,CAAC,CAAC,OAAO,CAAA;IAEb,MAAM,EAAE,OAAO,EAAE,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,MAAM,CAAA;IAEpD,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAA;IACrE,CAAC;IAED,OAAO;QACL,IAAI,GAAG;YACL,OAAO,MAAM,CAAC,GAAG,CAAA;QACnB,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI;YAC3B,OAAO,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAA;QAC5C,CAAC;KACF,CAAA;AACH,CAAC","sourcesContent":["import { DidString } from '@atproto/lex-schema'\n\nexport type FetchHandler = (\n /**\n * The URL (pathname + query parameters) to make the request to, without the\n * origin. The origin (protocol, hostname, and port) must be added by this\n * {@link FetchHandler}, typically based on authentication or other factors.\n */\n path: string,\n init: RequestInit,\n) => Promise<Response>\n\nexport interface Agent {\n readonly did?: DidString\n fetchHandler: FetchHandler\n}\n\nexport type AgentConfig = {\n /**\n * The identifier (DID) of the user represented by this agent.\n */\n did?: DidString\n\n /**\n * The service URL to make requests to. This can be a string, URL, or a\n * function that returns a string or URL. This is useful for dynamic URLs,\n * such as a service URL that changes based on authentication.\n */\n service: string | URL\n\n /**\n * Bring your own fetch implementation. Typically useful for testing, logging,\n * mocking, or adding retries, session management, signatures, proof of\n * possession (DPoP), SSRF protection, etc. Defaults to the global `fetch`\n * function.\n */\n fetch?: typeof globalThis.fetch\n}\n\nexport type AgentOptions = AgentConfig | string | URL\n\nexport function buildAgent(options: Agent | AgentOptions): Agent {\n if (typeof options === 'object' && 'fetchHandler' in options) {\n return options\n }\n\n const config: Agent | AgentConfig =\n typeof options === 'string' || options instanceof URL\n ? { did: undefined, service: options }\n : options\n\n const { service, fetch = globalThis.fetch } = config\n\n if (typeof fetch !== 'function') {\n throw new TypeError('fetch() is not available in this environment')\n }\n\n return {\n get did() {\n return config.did\n },\n\n async fetchHandler(path, init) {\n return fetch(new URL(path, service), init)\n },\n }\n}\n"]}
package/dist/client.d.ts CHANGED
@@ -1,9 +1,11 @@
1
- import { LexMap } from '@atproto/lex-data';
2
- import { AtIdentifierString, CidString, DidString, Infer, InferMethodInputBody, InferMethodOutputBody, InferMethodParams, InferRecordKey, LexiconRecordKey, NsidString, Procedure, Query, RecordSchema, Restricted } from '@atproto/lex-schema';
1
+ import { LexMap, LexValue } from '@atproto/lex-data';
2
+ import { AtIdentifierString, CidString, DidString, Infer, InferMethodInputBody, InferMethodOutputBody, InferMethodParams, InferRecordKey, LexiconRecordKey, Main, NsidString, Params, Procedure, Query, RecordSchema, Restricted, Schema } from '@atproto/lex-schema';
3
3
  import { Agent, AgentOptions } from './agent.js';
4
- import { com } from './lexicons.js';
5
- import { BinaryBodyInit, CallOptions, Namespace, Service } from './types.js';
6
- import { XrpcFailure, XrpcOptions, XrpcResponse, XrpcResponseBody } from './xrpc.js';
4
+ import { com } from './lexicons/index.js';
5
+ import { LexRpcResponse, LexRpcResponseBody } from './response.js';
6
+ import { BinaryBodyInit, CallOptions, Service } from './types.js';
7
+ import { LexRpcFailure, LexRpcOptions } from './xrpc.js';
8
+ export type { AtIdentifierString, CidString, DidString, InferMethodInputBody, InferMethodOutputBody, InferMethodParams, InferRecordKey, LexMap, LexValue, LexiconRecordKey, NsidString, Params, Procedure, Query, RecordSchema, Restricted, Schema, };
7
9
  export type ClientOptions = {
8
10
  labelers?: Iterable<DidString>;
9
11
  headers?: HeadersInit;
@@ -54,11 +56,11 @@ export type PutOptions<T extends RecordSchema> = PutRecordOptions & RecordKeyOpt
54
56
  export type PutOutput = InferMethodOutputBody<typeof com.atproto.repo.putRecord.main, Uint8Array>;
55
57
  export type ListOptions = ListRecordsOptions;
56
58
  export type ListOutput<T extends RecordSchema> = InferMethodOutputBody<typeof com.atproto.repo.listRecords.main, Uint8Array> & {
57
- records: ListRecord<T>[];
59
+ records: ListRecord<Infer<T>>[];
58
60
  invalid: LexMap[];
59
61
  };
60
- export type ListRecord<T extends RecordSchema> = com.atproto.repo.listRecords.DefRecord & {
61
- value: Infer<T>;
62
+ export type ListRecord<Value extends LexMap> = com.atproto.repo.listRecords.DefRecord & {
63
+ value: Value;
62
64
  };
63
65
  export declare class Client implements Agent {
64
66
  static appLabelers: readonly DidString[];
@@ -83,18 +85,18 @@ export declare class Client implements Agent {
83
85
  clearLabelers(): void;
84
86
  fetchHandler(path: string, init: RequestInit): Promise<Response>;
85
87
  /**
86
- * @throws {XrpcFailure<M>} when the request fails or the response is an error
88
+ * @throws {LexRpcFailure<M>} when the request fails or the response is an error
87
89
  */
88
- xrpc<const M extends Query | Procedure>(ns: NonNullable<unknown> extends XrpcOptions<M> ? Namespace<M> : Restricted<'This XRPC method requires an "options" argument'>): Promise<XrpcResponse<M>>;
89
- xrpc<const M extends Query | Procedure>(ns: Namespace<M>, options: XrpcOptions<M>): Promise<XrpcResponse<M>>;
90
- xrpcSafe<const M extends Query | Procedure>(ns: NonNullable<unknown> extends XrpcOptions<M> ? Namespace<M> : Restricted<'This XRPC method requires an "options" argument'>): Promise<XrpcResponse<M> | XrpcFailure<M>>;
91
- xrpcSafe<const M extends Query | Procedure>(ns: Namespace<M>, options: XrpcOptions<M>): Promise<XrpcResponse<M> | XrpcFailure<M>>;
90
+ xrpc<const M extends Query | Procedure>(ns: NonNullable<unknown> extends LexRpcOptions<M> ? Main<M> : Restricted<'This XRPC method requires an "options" argument'>): Promise<LexRpcResponse<M>>;
91
+ xrpc<const M extends Query | Procedure>(ns: Main<M>, options: LexRpcOptions<M>): Promise<LexRpcResponse<M>>;
92
+ xrpcSafe<const M extends Query | Procedure>(ns: NonNullable<unknown> extends LexRpcOptions<M> ? Main<M> : Restricted<'This XRPC method requires an "options" argument'>): Promise<LexRpcResponse<M> | LexRpcFailure<M>>;
93
+ xrpcSafe<const M extends Query | Procedure>(ns: Main<M>, options: LexRpcOptions<M>): Promise<LexRpcResponse<M> | LexRpcFailure<M>>;
92
94
  /**
93
95
  * @param rkey Leave `undefined` to have the server generate a TID.
94
96
  */
95
97
  createRecord(record: {
96
98
  $type: NsidString;
97
- } & LexMap, rkey?: string, options?: CreateRecordOptions): Promise<XrpcResponse<Procedure<"com.atproto.repo.createRecord", import("@atproto/lex-schema").ParamsSchema<{}>, import("@atproto/lex-schema").Payload<"application/json", import("@atproto/lex-schema").ObjectSchema<{
99
+ } & LexMap, rkey?: string, options?: CreateRecordOptions): Promise<LexRpcResponse<Procedure<"com.atproto.repo.createRecord", import("@atproto/lex-schema").ParamsSchema<{}>, import("@atproto/lex-schema").Payload<"application/json", import("@atproto/lex-schema").ObjectSchema<{
98
100
  readonly repo: import("@atproto/lex-schema").StringSchema<{
99
101
  readonly format: "at-identifier";
100
102
  }>;
@@ -115,7 +117,7 @@ export declare class Client implements Agent {
115
117
  readonly commit: import("@atproto/lex-schema").OptionalSchema<com.atproto.repo.defs.$defs.CommitMeta>;
116
118
  readonly validationStatus: import("@atproto/lex-schema").OptionalSchema<string>;
117
119
  }>>, readonly ["InvalidSwap"]>>>;
118
- deleteRecord(collection: NsidString, rkey: string, options?: DeleteRecordOptions): Promise<XrpcResponse<Procedure<"com.atproto.repo.deleteRecord", import("@atproto/lex-schema").ParamsSchema<{}>, import("@atproto/lex-schema").Payload<"application/json", import("@atproto/lex-schema").ObjectSchema<{
120
+ deleteRecord(collection: NsidString, rkey: string, options?: DeleteRecordOptions): Promise<LexRpcResponse<Procedure<"com.atproto.repo.deleteRecord", import("@atproto/lex-schema").ParamsSchema<{}>, import("@atproto/lex-schema").Payload<"application/json", import("@atproto/lex-schema").ObjectSchema<{
119
121
  readonly repo: import("@atproto/lex-schema").StringSchema<{
120
122
  readonly format: "at-identifier";
121
123
  }>;
@@ -130,7 +132,7 @@ export declare class Client implements Agent {
130
132
  }>>, import("@atproto/lex-schema").Payload<"application/json", import("@atproto/lex-schema").ObjectSchema<{
131
133
  readonly commit: import("@atproto/lex-schema").OptionalSchema<com.atproto.repo.defs.$defs.CommitMeta>;
132
134
  }>>, readonly ["InvalidSwap"]>>>;
133
- getRecord(collection: NsidString, rkey: string, options?: GetRecordOptions): Promise<XrpcResponse<Query<"com.atproto.repo.getRecord", import("@atproto/lex-schema").ParamsSchema<{
135
+ getRecord(collection: NsidString, rkey: string, options?: GetRecordOptions): Promise<LexRpcResponse<Query<"com.atproto.repo.getRecord", import("@atproto/lex-schema").ParamsSchema<{
134
136
  readonly repo: import("@atproto/lex-schema").StringSchema<{
135
137
  readonly format: "at-identifier";
136
138
  }>;
@@ -150,7 +152,7 @@ export declare class Client implements Agent {
150
152
  }>>, readonly ["RecordNotFound"]>>>;
151
153
  putRecord(record: {
152
154
  $type: NsidString;
153
- } & LexMap, rkey: string, options?: PutRecordOptions): Promise<XrpcResponse<Procedure<"com.atproto.repo.putRecord", import("@atproto/lex-schema").ParamsSchema<{}>, import("@atproto/lex-schema").Payload<"application/json", import("@atproto/lex-schema").ObjectSchema<{
155
+ } & LexMap, rkey: string, options?: PutRecordOptions): Promise<LexRpcResponse<Procedure<"com.atproto.repo.putRecord", import("@atproto/lex-schema").ParamsSchema<{}>, import("@atproto/lex-schema").Payload<"application/json", import("@atproto/lex-schema").ObjectSchema<{
154
156
  readonly repo: import("@atproto/lex-schema").StringSchema<{
155
157
  readonly format: "at-identifier";
156
158
  }>;
@@ -175,7 +177,7 @@ export declare class Client implements Agent {
175
177
  readonly commit: import("@atproto/lex-schema").OptionalSchema<com.atproto.repo.defs.$defs.CommitMeta>;
176
178
  readonly validationStatus: import("@atproto/lex-schema").OptionalSchema<string>;
177
179
  }>>, readonly ["InvalidSwap"]>>>;
178
- listRecords(nsid: NsidString, options?: ListRecordsOptions): Promise<XrpcResponse<Query<"com.atproto.repo.listRecords", import("@atproto/lex-schema").ParamsSchema<{
180
+ listRecords(nsid: NsidString, options?: ListRecordsOptions): Promise<LexRpcResponse<Query<"com.atproto.repo.listRecords", import("@atproto/lex-schema").ParamsSchema<{
179
181
  readonly repo: import("@atproto/lex-schema").StringSchema<{
180
182
  readonly format: "at-identifier";
181
183
  }>;
@@ -191,12 +193,12 @@ export declare class Client implements Agent {
191
193
  }>>, undefined>>>;
192
194
  uploadBlob(body: BinaryBodyInit, options?: CallOptions & {
193
195
  encoding?: `${string}/${string}`;
194
- }): Promise<XrpcResponse<Procedure<"com.atproto.repo.uploadBlob", import("@atproto/lex-schema").ParamsSchema<{}>, import("@atproto/lex-schema").Payload<"*/*", undefined>, import("@atproto/lex-schema").Payload<"application/json", import("@atproto/lex-schema").ObjectSchema<{
196
+ }): Promise<LexRpcResponse<Procedure<"com.atproto.repo.uploadBlob", import("@atproto/lex-schema").ParamsSchema<{}>, import("@atproto/lex-schema").Payload<"*/*", undefined>, import("@atproto/lex-schema").Payload<"application/json", import("@atproto/lex-schema").ObjectSchema<{
195
197
  readonly blob: import("@atproto/lex-schema").BlobSchema<{
196
198
  allowLegacy: false;
197
199
  }>;
198
200
  }>>, undefined>>>;
199
- getBlob(did: DidString, cid: CidString, options?: CallOptions): Promise<XrpcResponse<Query<"com.atproto.sync.getBlob", import("@atproto/lex-schema").ParamsSchema<{
201
+ getBlob(did: DidString, cid: CidString, options?: CallOptions): Promise<LexRpcResponse<Query<"com.atproto.sync.getBlob", import("@atproto/lex-schema").ParamsSchema<{
200
202
  readonly did: import("@atproto/lex-schema").StringSchema<{
201
203
  readonly format: "did";
202
204
  }>;
@@ -204,17 +206,17 @@ export declare class Client implements Agent {
204
206
  readonly format: "cid";
205
207
  }>;
206
208
  }>, import("@atproto/lex-schema").Payload<"*/*", undefined>, readonly ["BlobNotFound", "RepoNotFound", "RepoTakendown", "RepoSuspended", "RepoDeactivated"]>>>;
207
- call<const T extends Query>(ns: NonNullable<unknown> extends InferMethodParams<T> ? Namespace<T> : Restricted<'This query type requires a "params" argument'>): Promise<XrpcResponseBody<T>>;
208
- call<const T extends Action>(ns: void extends InferActionInput<T> ? Namespace<T> : Restricted<'This action type requires an "input" argument'>): Promise<InferActionOutput<T>>;
209
- call<const T extends Action | Procedure | Query>(ns: Namespace<T>, arg: T extends Action ? InferActionInput<T> : T extends Procedure ? InferMethodInputBody<T, Uint8Array> : T extends Query ? InferMethodParams<T> : never, options?: CallOptions): Promise<T extends Action ? InferActionOutput<T> : T extends Procedure ? XrpcResponseBody<T> : T extends Query ? XrpcResponseBody<T> : never>;
210
- create<const T extends RecordSchema>(ns: NonNullable<unknown> extends CreateOptions<T> ? Namespace<T> : Restricted<'This record type requires an "options" argument'>, input: Omit<Infer<T>, '$type'>): Promise<CreateOutput>;
211
- create<const T extends RecordSchema>(ns: Namespace<T>, input: Omit<Infer<T>, '$type'>, options: CreateOptions<T>): Promise<CreateOutput>;
212
- delete<const T extends RecordSchema>(ns: NonNullable<unknown> extends DeleteOptions<T> ? Namespace<T> : Restricted<'This record type requires an "options" argument'>): Promise<DeleteOutput>;
213
- delete<const T extends RecordSchema>(ns: Namespace<T>, options?: DeleteOptions<T>): Promise<DeleteOutput>;
214
- get<const T extends RecordSchema>(ns: T['key'] extends `literal:${string}` ? Namespace<T> : Restricted<'This record type requires an "options" argument'>): Promise<GetOutput<T>>;
215
- get<const T extends RecordSchema>(ns: Namespace<T>, options?: GetOptions<T>): Promise<GetOutput<T>>;
216
- put<const T extends RecordSchema>(ns: NonNullable<unknown> extends PutOptions<T> ? Namespace<T> : Restricted<'This record type requires an "options" argument'>, input: Omit<Infer<T>, '$type'>): Promise<PutOutput>;
217
- put<const T extends RecordSchema>(ns: Namespace<T>, input: Omit<Infer<T>, '$type'>, options: PutOptions<T>): Promise<PutOutput>;
218
- list<const T extends RecordSchema>(ns: Namespace<T>, options?: ListOptions): Promise<ListOutput<T>>;
209
+ call<const T extends Query>(ns: NonNullable<unknown> extends InferMethodParams<T> ? Main<T> : Restricted<'This query type requires a "params" argument'>): Promise<LexRpcResponseBody<T>>;
210
+ call<const T extends Action>(ns: void extends InferActionInput<T> ? Main<T> : Restricted<'This action type requires an "input" argument'>): Promise<InferActionOutput<T>>;
211
+ call<const T extends Action | Procedure | Query>(ns: Main<T>, arg: T extends Action ? InferActionInput<T> : T extends Procedure ? InferMethodInputBody<T, Uint8Array> : T extends Query ? InferMethodParams<T> : never, options?: CallOptions): Promise<T extends Action ? InferActionOutput<T> : T extends Procedure ? LexRpcResponseBody<T> : T extends Query ? LexRpcResponseBody<T> : never>;
212
+ create<const T extends RecordSchema>(ns: NonNullable<unknown> extends CreateOptions<T> ? Main<T> : Restricted<'This record type requires an "options" argument'>, input: Omit<Infer<T>, '$type'>): Promise<CreateOutput>;
213
+ create<const T extends RecordSchema>(ns: Main<T>, input: Omit<Infer<T>, '$type'>, options: CreateOptions<T>): Promise<CreateOutput>;
214
+ delete<const T extends RecordSchema>(ns: NonNullable<unknown> extends DeleteOptions<T> ? Main<T> : Restricted<'This record type requires an "options" argument'>): Promise<DeleteOutput>;
215
+ delete<const T extends RecordSchema>(ns: Main<T>, options?: DeleteOptions<T>): Promise<DeleteOutput>;
216
+ get<const T extends RecordSchema>(ns: T['key'] extends `literal:${string}` ? Main<T> : Restricted<'This record type requires an "options" argument'>): Promise<GetOutput<T>>;
217
+ get<const T extends RecordSchema>(ns: Main<T>, options?: GetOptions<T>): Promise<GetOutput<T>>;
218
+ put<const T extends RecordSchema>(ns: NonNullable<unknown> extends PutOptions<T> ? Main<T> : Restricted<'This record type requires an "options" argument'>, input: Omit<Infer<T>, '$type'>): Promise<PutOutput>;
219
+ put<const T extends RecordSchema>(ns: Main<T>, input: Omit<Infer<T>, '$type'>, options: PutOptions<T>): Promise<PutOutput>;
220
+ list<const T extends RecordSchema>(ns: Main<T>, options?: ListOptions): Promise<ListOutput<T>>;
219
221
  }
220
222
  //# sourceMappingURL=client.d.ts.map
@@ -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":"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"}
package/dist/client.js CHANGED
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Client = void 0;
4
+ const lex_data_1 = require("@atproto/lex-data");
4
5
  const lex_schema_1 = require("@atproto/lex-schema");
5
6
  const agent_js_1 = require("./agent.js");
6
- const lexicons_js_1 = require("./lexicons.js");
7
- const types_js_1 = require("./types.js");
7
+ const index_js_1 = require("./lexicons/index.js");
8
8
  const util_js_1 = require("./util.js");
9
- const xrpc_error_js_1 = require("./xrpc-error.js");
10
9
  const xrpc_js_1 = require("./xrpc.js");
11
10
  class Client {
12
11
  static appLabelers = [];
@@ -22,10 +21,7 @@ class Client {
22
21
  service;
23
22
  labelers;
24
23
  constructor(agent, options = {}) {
25
- this.agent =
26
- typeof agent === 'object' && 'fetchHandler' in agent
27
- ? agent
28
- : (0, agent_js_1.buildAgent)(agent);
24
+ this.agent = (0, agent_js_1.buildAgent)(agent);
29
25
  this.service = options.service;
30
26
  this.labelers = new Set(options.labelers);
31
27
  this.headers = new Headers(options.headers);
@@ -39,7 +35,7 @@ class Client {
39
35
  }
40
36
  assertAuthenticated() {
41
37
  if (!this.did)
42
- throw new xrpc_error_js_1.XrpcError('AuthenticationRequired');
38
+ throw new lex_data_1.LexError('AuthenticationRequired');
43
39
  }
44
40
  setLabelers(labelers = []) {
45
41
  this.clearLabelers();
@@ -79,7 +75,7 @@ class Client {
79
75
  * @param rkey Leave `undefined` to have the server generate a TID.
80
76
  */
81
77
  async createRecord(record, rkey, options) {
82
- return this.xrpc(lexicons_js_1.com.atproto.repo.createRecord.main, {
78
+ return this.xrpc(index_js_1.com.atproto.repo.createRecord.main, {
83
79
  ...options,
84
80
  body: {
85
81
  repo: options?.repo ?? this.assertDid,
@@ -92,7 +88,7 @@ class Client {
92
88
  });
93
89
  }
94
90
  async deleteRecord(collection, rkey, options) {
95
- return this.xrpc(lexicons_js_1.com.atproto.repo.deleteRecord.main, {
91
+ return this.xrpc(index_js_1.com.atproto.repo.deleteRecord.main, {
96
92
  ...options,
97
93
  body: {
98
94
  repo: options?.repo ?? this.assertDid,
@@ -104,7 +100,7 @@ class Client {
104
100
  });
105
101
  }
106
102
  async getRecord(collection, rkey, options) {
107
- return this.xrpc(lexicons_js_1.com.atproto.repo.getRecord.main, {
103
+ return this.xrpc(index_js_1.com.atproto.repo.getRecord.main, {
108
104
  ...options,
109
105
  params: {
110
106
  repo: options?.repo ?? this.assertDid,
@@ -114,7 +110,7 @@ class Client {
114
110
  });
115
111
  }
116
112
  async putRecord(record, rkey, options) {
117
- return this.xrpc(lexicons_js_1.com.atproto.repo.putRecord.main, {
113
+ return this.xrpc(index_js_1.com.atproto.repo.putRecord.main, {
118
114
  ...options,
119
115
  body: {
120
116
  repo: options?.repo ?? this.assertDid,
@@ -128,7 +124,7 @@ class Client {
128
124
  });
129
125
  }
130
126
  async listRecords(nsid, options) {
131
- return this.xrpc(lexicons_js_1.com.atproto.repo.listRecords.main, {
127
+ return this.xrpc(index_js_1.com.atproto.repo.listRecords.main, {
132
128
  ...options,
133
129
  params: {
134
130
  repo: options?.repo ?? this.assertDid,
@@ -140,19 +136,19 @@ class Client {
140
136
  });
141
137
  }
142
138
  async uploadBlob(body, options) {
143
- return this.xrpc(lexicons_js_1.com.atproto.repo.uploadBlob.main, {
139
+ return this.xrpc(index_js_1.com.atproto.repo.uploadBlob.main, {
144
140
  ...options,
145
141
  body,
146
142
  });
147
143
  }
148
144
  async getBlob(did, cid, options) {
149
- return this.xrpc(lexicons_js_1.com.atproto.sync.getBlob.main, {
145
+ return this.xrpc(index_js_1.com.atproto.sync.getBlob.main, {
150
146
  ...options,
151
147
  params: { did, cid },
152
148
  });
153
149
  }
154
150
  async call(ns, arg, options = {}) {
155
- const method = (0, types_js_1.getMain)(ns);
151
+ const method = (0, lex_schema_1.getMain)(ns);
156
152
  if (typeof method === 'function') {
157
153
  return method(this, arg, options);
158
154
  }
@@ -169,7 +165,7 @@ class Client {
169
165
  }
170
166
  }
171
167
  async create(ns, input, options = {}) {
172
- const schema = (0, types_js_1.getMain)(ns);
168
+ const schema = (0, lex_schema_1.getMain)(ns);
173
169
  const record = schema.build(input);
174
170
  if (options.validateRequest)
175
171
  schema.assert(record);
@@ -180,20 +176,20 @@ class Client {
180
176
  return response.body;
181
177
  }
182
178
  async delete(ns, options = {}) {
183
- const schema = (0, types_js_1.getMain)(ns);
179
+ const schema = (0, lex_schema_1.getMain)(ns);
184
180
  const rkey = schema.keySchema.parse(options.rkey ?? getLiteralRecordKey(schema));
185
181
  const response = await this.deleteRecord(schema.$type, rkey, options);
186
182
  return response.body;
187
183
  }
188
184
  async get(ns, options = {}) {
189
- const schema = (0, types_js_1.getMain)(ns);
185
+ const schema = (0, lex_schema_1.getMain)(ns);
190
186
  const rkey = schema.keySchema.parse(options.rkey ?? getLiteralRecordKey(schema));
191
187
  const response = await this.getRecord(schema.$type, rkey, options);
192
188
  const value = schema.parse(response.body.value);
193
189
  return { ...response.body, value };
194
190
  }
195
191
  async put(ns, input, options = {}) {
196
- const schema = (0, types_js_1.getMain)(ns);
192
+ const schema = (0, lex_schema_1.getMain)(ns);
197
193
  const record = schema.build(input);
198
194
  if (options.validateRequest)
199
195
  schema.assert(record);
@@ -202,7 +198,7 @@ class Client {
202
198
  return response.body;
203
199
  }
204
200
  async list(ns, options) {
205
- const schema = (0, types_js_1.getMain)(ns);
201
+ const schema = (0, lex_schema_1.getMain)(ns);
206
202
  const { body } = await this.listRecords(schema.$type, options);
207
203
  const records = [];
208
204
  const invalid = [];
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { LexMap, LexValue } from '@atproto/lex-data'\nimport {\n AtIdentifierString,\n CidString,\n DidString,\n Infer,\n InferMethodInputBody,\n InferMethodOutputBody,\n InferMethodParams,\n InferRecordKey,\n LexiconRecordKey,\n NsidString,\n Params,\n Procedure,\n Query,\n RecordSchema,\n Restricted,\n Schema,\n} from '@atproto/lex-schema'\nimport { Agent, AgentOptions, buildAgent } from './agent.js'\nimport { com } from './lexicons.js'\nimport {\n BinaryBodyInit,\n CallOptions,\n Namespace,\n Service,\n getMain,\n} from './types.js'\nimport { buildAtprotoHeaders } from './util.js'\nimport { XrpcError } from './xrpc-error.js'\nimport {\n XrpcFailure,\n XrpcOptions,\n XrpcResponse,\n XrpcResponseBody,\n xrpc,\n xrpcSafe,\n} from './xrpc.js'\n\nexport type ClientOptions = {\n labelers?: Iterable<DidString>\n headers?: HeadersInit\n service?: Service\n}\n\nexport type Action<I = any, O = any> = (\n client: Client,\n input: I,\n options: CallOptions,\n) => O | Promise<O>\nexport type InferActionInput<A extends Action> =\n A extends Action<infer I, any> ? I : never\nexport type InferActionOutput<A extends Action> =\n A extends Action<any, infer O> ? O : never\n\nexport type CreateRecordOptions = CallOptions & {\n repo?: AtIdentifierString\n swapCommit?: string\n validate?: boolean\n}\n\nexport type DeleteRecordOptions = CallOptions & {\n repo?: AtIdentifierString\n swapCommit?: string\n swapRecord?: string\n}\n\nexport type GetRecordOptions = CallOptions & {\n repo?: AtIdentifierString\n}\n\nexport type PutRecordOptions = CallOptions & {\n repo?: AtIdentifierString\n swapCommit?: string\n swapRecord?: string\n validate?: boolean\n}\n\nexport type ListRecordsOptions = CallOptions & {\n repo?: AtIdentifierString\n limit?: number\n cursor?: string\n reverse?: boolean\n}\n\nexport type RecordKeyOptions<\n T extends RecordSchema,\n AlsoOptionalWhenRecordKeyIs extends LexiconRecordKey = never,\n> = T['key'] extends `literal:${string}` | AlsoOptionalWhenRecordKeyIs\n ? { rkey?: InferRecordKey<T> }\n : { rkey: InferRecordKey<T> }\n\nexport type CreateOptions<T extends RecordSchema> = CreateRecordOptions &\n RecordKeyOptions<T, 'tid'>\nexport type CreateOutput = InferMethodOutputBody<\n typeof com.atproto.repo.createRecord.main,\n Uint8Array\n>\n\nexport type DeleteOptions<T extends RecordSchema> = DeleteRecordOptions &\n RecordKeyOptions<T>\nexport type DeleteOutput = InferMethodOutputBody<\n typeof com.atproto.repo.deleteRecord.main,\n Uint8Array\n>\nexport type GetOptions<T extends RecordSchema> = GetRecordOptions &\n RecordKeyOptions<T>\nexport type GetOutput<T extends RecordSchema> = Omit<\n InferMethodOutputBody<typeof com.atproto.repo.getRecord.main, Uint8Array>,\n 'value'\n> & { value: Infer<T> }\n\nexport type PutOptions<T extends RecordSchema> = PutRecordOptions &\n RecordKeyOptions<T>\nexport type PutOutput = InferMethodOutputBody<\n typeof com.atproto.repo.putRecord.main,\n Uint8Array\n>\n\nexport type ListOptions = ListRecordsOptions\nexport type ListOutput<T extends RecordSchema> = InferMethodOutputBody<\n typeof com.atproto.repo.listRecords.main,\n Uint8Array\n> & {\n records: ListRecord<T>[]\n // @NOTE Because the schema uses \"type\": \"unknown\" instead of an open union,\n // we have to use LexMap instead of TypedObject here.\n invalid: LexMap[]\n}\nexport type ListRecord<T extends RecordSchema> =\n com.atproto.repo.listRecords.DefRecord & {\n value: Infer<T>\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 public readonly agent: Agent\n public readonly headers: Headers\n public readonly service?: Service\n public readonly labelers: Set<DidString>\n\n constructor(agent: Agent | AgentOptions, options: ClientOptions = {}) {\n this.agent =\n typeof agent === 'object' && 'fetchHandler' in agent\n ? agent\n : buildAgent(agent)\n this.service = options.service\n this.labelers = new Set(options.labelers)\n this.headers = new Headers(options.headers)\n }\n\n get did(): DidString | undefined {\n return this.agent.did\n }\n\n get assertDid(): DidString {\n this.assertAuthenticated()\n return this.did\n }\n\n public assertAuthenticated(): asserts this is { did: DidString } {\n if (!this.did) throw new XrpcError('AuthenticationRequired')\n }\n\n public setLabelers(labelers: Iterable<DidString> = []) {\n this.clearLabelers()\n this.addLabelers(labelers)\n }\n\n public addLabelers(labelers: Iterable<DidString>) {\n for (const labeler of labelers) this.labelers.add(labeler)\n }\n\n public clearLabelers() {\n this.labelers.clear()\n }\n\n public fetchHandler(path: string, init: RequestInit): Promise<Response> {\n const headers = buildAtprotoHeaders({\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 * @throws {XrpcFailure<M>} when the request fails or the response is an error\n */\n async xrpc<const M extends Query | Procedure>(\n ns: NonNullable<unknown> extends XrpcOptions<M>\n ? Namespace<M>\n : Restricted<'This XRPC method requires an \"options\" argument'>,\n ): Promise<XrpcResponse<M>>\n async xrpc<const M extends Query | Procedure>(\n ns: Namespace<M>,\n options: XrpcOptions<M>,\n ): Promise<XrpcResponse<M>>\n async xrpc<const M extends Query | Procedure>(\n ns: Namespace<M>,\n options: XrpcOptions<M> = {} as XrpcOptions<M>,\n ): Promise<XrpcResponse<M>> {\n return xrpc(this, ns, options)\n }\n\n async xrpcSafe<const M extends Query | Procedure>(\n ns: NonNullable<unknown> extends XrpcOptions<M>\n ? Namespace<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: Namespace<M>,\n options: XrpcOptions<M>,\n ): Promise<XrpcResponse<M> | XrpcFailure<M>>\n async xrpcSafe<const M extends Query | Procedure>(\n ns: Namespace<M>,\n options: XrpcOptions<M> = {} as XrpcOptions<M>,\n ): Promise<XrpcResponse<M> | XrpcFailure<M>> {\n return xrpcSafe(this, ns, options)\n }\n\n /**\n * @param rkey Leave `undefined` to have the server generate a TID.\n */\n public async createRecord(\n record: { $type: NsidString } & LexMap,\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 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 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 async putRecord(\n record: { $type: NsidString } & LexMap,\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 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 async uploadBlob(\n body: BinaryBodyInit,\n options?: CallOptions & { encoding?: `${string}/${string}` },\n ) {\n return this.xrpc(com.atproto.repo.uploadBlob.main, {\n ...options,\n body,\n })\n }\n\n async getBlob(did: DidString, cid: CidString, options?: CallOptions) {\n return this.xrpc(com.atproto.sync.getBlob.main, {\n ...options,\n params: { did, cid },\n })\n }\n\n public async call<const T extends Query>(\n ns: NonNullable<unknown> extends InferMethodParams<T>\n ? Namespace<T>\n : Restricted<'This query type requires a \"params\" argument'>,\n ): Promise<XrpcResponseBody<T>>\n public async call<const T extends Action>(\n ns: void extends InferActionInput<T>\n ? Namespace<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: Namespace<T>,\n arg: T extends Action\n ? InferActionInput<T>\n : T extends Procedure\n ? InferMethodInputBody<T, Uint8Array>\n : T extends Query\n ? InferMethodParams<T>\n : never,\n options?: CallOptions,\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: Namespace<Action> | Namespace<Procedure> | Namespace<Query>,\n arg?: LexValue | Params,\n options: CallOptions = {},\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 public async create<const T extends RecordSchema>(\n ns: NonNullable<unknown> extends CreateOptions<T>\n ? Namespace<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: Namespace<T>,\n input: Omit<Infer<T>, '$type'>,\n options: CreateOptions<T>,\n ): Promise<CreateOutput>\n public async create<const T extends RecordSchema>(\n ns: Namespace<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)\n if (options.validateRequest) schema.assert(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 public async delete<const T extends RecordSchema>(\n ns: NonNullable<unknown> extends DeleteOptions<T>\n ? Namespace<T>\n : Restricted<'This record type requires an \"options\" argument'>,\n ): Promise<DeleteOutput>\n public async delete<const T extends RecordSchema>(\n ns: Namespace<T>,\n options?: DeleteOptions<T>,\n ): Promise<DeleteOutput>\n public async delete<const T extends RecordSchema>(\n ns: Namespace<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 public async get<const T extends RecordSchema>(\n ns: T['key'] extends `literal:${string}`\n ? Namespace<T>\n : Restricted<'This record type requires an \"options\" argument'>,\n ): Promise<GetOutput<T>>\n public async get<const T extends RecordSchema>(\n ns: Namespace<T>,\n options?: GetOptions<T>,\n ): Promise<GetOutput<T>>\n public async get<const T extends RecordSchema>(\n ns: Namespace<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.parse(response.body.value) as Infer<T>\n return { ...response.body, value }\n }\n\n public async put<const T extends RecordSchema>(\n ns: NonNullable<unknown> extends PutOptions<T>\n ? Namespace<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: Namespace<T>,\n input: Omit<Infer<T>, '$type'>,\n options: PutOptions<T>,\n ): Promise<PutOutput>\n public async put<const T extends RecordSchema>(\n ns: Namespace<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)\n if (options.validateRequest) schema.assert(record)\n const rkey = options.rkey ?? getLiteralRecordKey(schema)\n const response = await this.putRecord(record, rkey, options)\n return response.body\n }\n\n async list<const T extends RecordSchema>(\n ns: Namespace<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<T>[] = []\n const invalid: LexMap[] = []\n\n for (const record of body.records) {\n const parsed = (schema as Schema<Infer<T>>).safeParse(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\nfunction getDefaultRecordKey<const T extends RecordSchema>(\n schema: T,\n): undefined | InferRecordKey<T> {\n // Let the server generate the TID\n if (schema.key === 'tid') return undefined\n if (schema.key === 'any') return undefined\n\n return getLiteralRecordKey(schema)\n}\n\nfunction getLiteralRecordKey<const T extends RecordSchema>(\n schema: T,\n): InferRecordKey<T> {\n if (schema.key.startsWith('literal:')) {\n return schema.key.slice(8)\n }\n\n throw new TypeError(\n `An \"rkey\" must be provided for record key type \"${schema.key}\" (${schema.$type})`,\n )\n}\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { LexError, LexMap, LexValue } from '@atproto/lex-data'\nimport {\n AtIdentifierString,\n CidString,\n DidString,\n Infer,\n InferMethodInputBody,\n InferMethodOutputBody,\n InferMethodParams,\n InferRecordKey,\n LexiconRecordKey,\n Main,\n NsidString,\n Params,\n Procedure,\n Query,\n RecordSchema,\n Restricted,\n Schema,\n getMain,\n} from '@atproto/lex-schema'\nimport { Agent, AgentOptions, buildAgent } from './agent.js'\nimport { com } from './lexicons/index.js'\nimport { LexRpcResponse, LexRpcResponseBody } from './response.js'\nimport { BinaryBodyInit, CallOptions, Service } from './types.js'\nimport { buildAtprotoHeaders } from './util.js'\nimport { LexRpcFailure, LexRpcOptions, xrpc, xrpcSafe } from './xrpc.js'\n\nexport type {\n AtIdentifierString,\n CidString,\n DidString,\n InferMethodInputBody,\n InferMethodOutputBody,\n InferMethodParams,\n InferRecordKey,\n LexMap,\n LexValue,\n LexiconRecordKey,\n NsidString,\n Params,\n Procedure,\n Query,\n RecordSchema,\n Restricted,\n Schema,\n}\n\nexport type ClientOptions = {\n labelers?: Iterable<DidString>\n headers?: HeadersInit\n service?: Service\n}\n\nexport type Action<I = any, O = any> = (\n client: Client,\n input: I,\n options: CallOptions,\n) => O | Promise<O>\nexport type InferActionInput<A extends Action> =\n A extends Action<infer I, any> ? I : never\nexport type InferActionOutput<A extends Action> =\n A extends Action<any, infer O> ? O : never\n\nexport type CreateRecordOptions = CallOptions & {\n repo?: AtIdentifierString\n swapCommit?: string\n validate?: boolean\n}\n\nexport type DeleteRecordOptions = CallOptions & {\n repo?: AtIdentifierString\n swapCommit?: string\n swapRecord?: string\n}\n\nexport type GetRecordOptions = CallOptions & {\n repo?: AtIdentifierString\n}\n\nexport type PutRecordOptions = CallOptions & {\n repo?: AtIdentifierString\n swapCommit?: string\n swapRecord?: string\n validate?: boolean\n}\n\nexport type ListRecordsOptions = CallOptions & {\n repo?: AtIdentifierString\n limit?: number\n cursor?: string\n reverse?: boolean\n}\n\nexport type RecordKeyOptions<\n T extends RecordSchema,\n AlsoOptionalWhenRecordKeyIs extends LexiconRecordKey = never,\n> = T['key'] extends `literal:${string}` | AlsoOptionalWhenRecordKeyIs\n ? { rkey?: InferRecordKey<T> }\n : { rkey: InferRecordKey<T> }\n\nexport type CreateOptions<T extends RecordSchema> = CreateRecordOptions &\n RecordKeyOptions<T, 'tid'>\nexport type CreateOutput = InferMethodOutputBody<\n typeof com.atproto.repo.createRecord.main,\n Uint8Array\n>\n\nexport type DeleteOptions<T extends RecordSchema> = DeleteRecordOptions &\n RecordKeyOptions<T>\nexport type DeleteOutput = InferMethodOutputBody<\n typeof com.atproto.repo.deleteRecord.main,\n Uint8Array\n>\nexport type GetOptions<T extends RecordSchema> = GetRecordOptions &\n RecordKeyOptions<T>\nexport type GetOutput<T extends RecordSchema> = Omit<\n InferMethodOutputBody<typeof com.atproto.repo.getRecord.main, Uint8Array>,\n 'value'\n> & { value: Infer<T> }\n\nexport type PutOptions<T extends RecordSchema> = PutRecordOptions &\n RecordKeyOptions<T>\nexport type PutOutput = InferMethodOutputBody<\n typeof com.atproto.repo.putRecord.main,\n Uint8Array\n>\n\nexport type ListOptions = ListRecordsOptions\nexport type ListOutput<T extends RecordSchema> = InferMethodOutputBody<\n typeof com.atproto.repo.listRecords.main,\n Uint8Array\n> & {\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 TypedObject here.\n invalid: LexMap[]\n}\nexport type ListRecord<Value extends LexMap> =\n com.atproto.repo.listRecords.DefRecord & {\n value: Value\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 public readonly agent: Agent\n public readonly headers: Headers\n public readonly service?: Service\n public readonly labelers: Set<DidString>\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 }\n\n get did(): DidString | undefined {\n return this.agent.did\n }\n\n get assertDid(): DidString {\n this.assertAuthenticated()\n return this.did\n }\n\n public assertAuthenticated(): asserts this is { did: DidString } {\n if (!this.did) throw new LexError('AuthenticationRequired')\n }\n\n public setLabelers(labelers: Iterable<DidString> = []) {\n this.clearLabelers()\n this.addLabelers(labelers)\n }\n\n public addLabelers(labelers: Iterable<DidString>) {\n for (const labeler of labelers) this.labelers.add(labeler)\n }\n\n public clearLabelers() {\n this.labelers.clear()\n }\n\n public fetchHandler(path: string, init: RequestInit): Promise<Response> {\n const headers = buildAtprotoHeaders({\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 * @throws {LexRpcFailure<M>} when the request fails or the response is an error\n */\n async xrpc<const M extends Query | Procedure>(\n ns: NonNullable<unknown> extends LexRpcOptions<M>\n ? Main<M>\n : Restricted<'This XRPC method requires an \"options\" argument'>,\n ): Promise<LexRpcResponse<M>>\n async xrpc<const M extends Query | Procedure>(\n ns: Main<M>,\n options: LexRpcOptions<M>,\n ): Promise<LexRpcResponse<M>>\n async xrpc<const M extends Query | Procedure>(\n ns: Main<M>,\n options: LexRpcOptions<M> = {} as LexRpcOptions<M>,\n ): Promise<LexRpcResponse<M>> {\n return xrpc(this, ns, options)\n }\n\n async xrpcSafe<const M extends Query | Procedure>(\n ns: NonNullable<unknown> extends LexRpcOptions<M>\n ? Main<M>\n : Restricted<'This XRPC method requires an \"options\" argument'>,\n ): Promise<LexRpcResponse<M> | LexRpcFailure<M>>\n async xrpcSafe<const M extends Query | Procedure>(\n ns: Main<M>,\n options: LexRpcOptions<M>,\n ): Promise<LexRpcResponse<M> | LexRpcFailure<M>>\n async xrpcSafe<const M extends Query | Procedure>(\n ns: Main<M>,\n options: LexRpcOptions<M> = {} as LexRpcOptions<M>,\n ): Promise<LexRpcResponse<M> | LexRpcFailure<M>> {\n return xrpcSafe(this, ns, options)\n }\n\n /**\n * @param rkey Leave `undefined` to have the server generate a TID.\n */\n public async createRecord(\n record: { $type: NsidString } & LexMap,\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 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 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 async putRecord(\n record: { $type: NsidString } & LexMap,\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 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 async uploadBlob(\n body: BinaryBodyInit,\n options?: CallOptions & { encoding?: `${string}/${string}` },\n ) {\n return this.xrpc(com.atproto.repo.uploadBlob.main, {\n ...options,\n body,\n })\n }\n\n async getBlob(did: DidString, cid: CidString, options?: CallOptions) {\n return this.xrpc(com.atproto.sync.getBlob.main, {\n ...options,\n params: { did, cid },\n })\n }\n\n public async call<const T extends Query>(\n ns: NonNullable<unknown> extends InferMethodParams<T>\n ? Main<T>\n : Restricted<'This query type requires a \"params\" argument'>,\n ): Promise<LexRpcResponseBody<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 ? InferMethodParams<T>\n : never,\n options?: CallOptions,\n ): Promise<\n T extends Action\n ? InferActionOutput<T>\n : T extends Procedure\n ? LexRpcResponseBody<T>\n : T extends Query\n ? LexRpcResponseBody<T>\n : never\n >\n public async call(\n ns: Main<Action> | Main<Procedure> | Main<Query>,\n arg?: LexValue | Params,\n options: CallOptions = {},\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 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)\n if (options.validateRequest) schema.assert(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 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 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.parse(response.body.value) as Infer<T>\n return { ...response.body, value }\n }\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)\n if (options.validateRequest) schema.assert(record)\n const rkey = options.rkey ?? getLiteralRecordKey(schema)\n const response = await this.putRecord(record, rkey, options)\n return response.body\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 as Schema<Infer<T>>).safeParse(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\nfunction getDefaultRecordKey<const T extends RecordSchema>(\n schema: T,\n): undefined | InferRecordKey<T> {\n // Let the server generate the TID\n if (schema.key === 'tid') return undefined\n if (schema.key === 'any') return undefined\n\n return getLiteralRecordKey(schema)\n}\n\nfunction getLiteralRecordKey<const T extends RecordSchema>(\n schema: T,\n): InferRecordKey<T> {\n if (schema.key.startsWith('literal:')) {\n return schema.key.slice(8)\n }\n\n throw new TypeError(\n `An \"rkey\" must be provided for record key type \"${schema.key}\" (${schema.$type})`,\n )\n}\n"]}