@atcute/client 4.0.5 → 4.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,97 +2,359 @@
2
2
 
3
3
  lightweight and cute API client for AT Protocol.
4
4
 
5
- - **small**, the bare minimum is ~1 kB gzipped with the full package at ~2.4 kB gzipped.
6
- - **no runtime validation**, type definitions match actual HTTP responses, the server is assumed to
7
- be trusted in returning valid responses.
5
+ ```sh
6
+ npm install @atcute/client @atcute/bluesky
7
+ ```
8
+
9
+ ## prerequisites
10
+
11
+ the client requires a definition package to know what queries and procedures are available. install
12
+ one alongside the client:
13
+
14
+ ```sh
15
+ npm install @atcute/client @atcute/bluesky
16
+ ```
17
+
18
+ then register the type definitions using one of these methods:
19
+
20
+ ```jsonc
21
+ // tsconfig.json
22
+ {
23
+ "compilerOptions": {
24
+ "types": ["@atcute/bluesky"],
25
+ },
26
+ }
27
+ ```
8
28
 
9
29
  ```ts
10
- import { Client, CredentialManager, ok, simpleFetchHandler } from '@atcute/client';
30
+ // env.d.ts
31
+ /// <reference types="@atcute/bluesky" />
32
+ ```
11
33
 
12
- // import lexicons
34
+ ```ts
35
+ // or as an import in your entrypoint
13
36
  import type {} from '@atcute/bluesky';
37
+ ```
14
38
 
15
- // basic usage
16
- {
17
- const handler = simpleFetchHandler({ service: 'https://public.api.bsky.app' });
18
- const rpc = new Client({ handler });
19
-
20
- // explicit response handling
21
- {
22
- const { ok, data } = await rpc.get('app.bsky.actor.getProfile', {
23
- params: {
24
- actor: 'bsky.app',
25
- },
26
- });
27
-
28
- if (!ok) {
29
- switch (data.error) {
30
- case 'InvalidRequest': {
31
- // Account doesn't exist
32
- break;
33
- }
34
- case 'AccountTakedown': {
35
- // Account taken down
36
- break;
37
- }
38
- case 'AccountDeactivated': {
39
- // Account deactivated
40
- break;
41
- }
42
- }
43
- }
44
-
45
- if (ok) {
46
- console.log(data.displayName);
47
- // -> "Bluesky"
48
- }
39
+ now the XRPC methods will have full type information for the registered schemas.
40
+
41
+ available packages:
42
+
43
+ | package | schemas |
44
+ | ------------------------------------------------------------------ | --------------------------------------- |
45
+ | [`@atcute/atproto`](../../definitions/atproto) | `com.atproto.*` |
46
+ | [`@atcute/bluesky`](../../definitions/bluesky) | `app.bsky.*`, `chat.bsky.*` |
47
+ | [`@atcute/ozone`](../../definitions/ozone) | `tools.ozone.*` |
48
+ | [`@atcute/bluemoji`](../../definitions/bluemoji) | `blue.moji.*` |
49
+ | [`@atcute/frontpage`](../../definitions/frontpage) | `fyi.unravel.frontpage.*` |
50
+ | [`@atcute/whitewind`](../../definitions/whitewind) | `com.whtwnd.*` |
51
+ | [`@atcute/tangled`](../../definitions/tangled) | `sh.tangled.*` |
52
+ | [`@atcute/microcosm`](../../definitions/microcosm) | `blue.microcosm.*`, `com.bad-example.*` |
53
+ | [`@atcute/pckt`](../../definitions/pckt) | `blog.pckt.*` |
54
+ | [`@atcute/lexicon-community`](../../definitions/lexicon-community) | `community.lexicon.*` |
55
+
56
+ you can register multiple packages to combine their types.
57
+
58
+ ## usage
59
+
60
+ the client communicates with AT Protocol services using XRPC, a simple RPC framework over HTTP.
61
+ queries are GET requests, procedures are POST requests.
62
+
63
+ ### making requests
64
+
65
+ ```ts
66
+ import { Client, simpleFetchHandler } from '@atcute/client';
67
+ import type {} from '@atcute/bluesky';
68
+
69
+ // create a client pointing to the Bluesky public API
70
+ const rpc = new Client({ handler: simpleFetchHandler({ service: 'https://public.api.bsky.app' }) });
71
+ ```
72
+
73
+ use `get()` for queries and `post()` for procedures. both return a response object with `ok`,
74
+ `status`, `headers`, and `data` fields:
75
+
76
+ ```ts
77
+ // queries use get()
78
+ const response = await rpc.get('app.bsky.actor.getProfile', {
79
+ params: { actor: 'bsky.app' },
80
+ });
81
+
82
+ if (response.ok) {
83
+ console.log(response.data.displayName);
84
+ // -> "Bluesky"
85
+ }
86
+ ```
87
+
88
+ ```ts
89
+ // procedures use post()
90
+ const response = await rpc.post('com.atproto.repo.createRecord', {
91
+ input: {
92
+ repo: 'did:plc:1234...',
93
+ collection: 'app.bsky.feed.post',
94
+ record: {
95
+ $type: 'app.bsky.feed.post',
96
+ text: 'hello world!',
97
+ createdAt: new Date().toISOString(),
98
+ },
99
+ },
100
+ });
101
+ ```
102
+
103
+ ### handling errors
104
+
105
+ responses always include an `ok` field indicating success. for failed requests, `data` contains an
106
+ error object with `error` (the error name) and optionally `message` (description):
107
+
108
+ ```ts
109
+ const response = await rpc.get('app.bsky.actor.getProfile', {
110
+ params: { actor: 'nonexistent.invalid' },
111
+ });
112
+
113
+ if (!response.ok) {
114
+ console.log(response.data.error);
115
+ // -> "InvalidRequest"
116
+ console.log(response.data.message);
117
+ // -> "Unable to resolve handle"
118
+ }
119
+ ```
120
+
121
+ the error names are defined in the lexicon schema. you can switch on them for typed error handling:
122
+
123
+ ```ts
124
+ if (!response.ok) {
125
+ switch (response.data.error) {
126
+ case 'InvalidRequest':
127
+ // handle or account doesn't exist
128
+ break;
129
+ case 'AccountTakedown':
130
+ // account was taken down
131
+ break;
132
+ case 'AccountDeactivated':
133
+ // account deactivated by user
134
+ break;
49
135
  }
136
+ }
137
+ ```
138
+
139
+ ### optimistic requests
140
+
141
+ if you prefer throwing on errors instead of checking `response.ok`, use the `ok()` helper:
142
+
143
+ ```ts
144
+ import { Client, ok, simpleFetchHandler } from '@atcute/client';
145
+
146
+ const rpc = new Client({ handler: simpleFetchHandler({ service: 'https://public.api.bsky.app' }) });
50
147
 
51
- // optimistic response handling
52
- {
53
- const data = await ok(
54
- rpc.get('app.bsky.actor.getProfile', {
55
- params: {
56
- actor: 'bsky.app',
57
- },
58
- }),
59
- );
60
-
61
- console.log(data.displayName);
62
- // -> "Bluesky"
148
+ // throws ClientResponseError if the request fails
149
+ const profile = await ok(rpc.get('app.bsky.actor.getProfile', { params: { actor: 'bsky.app' } }));
150
+
151
+ console.log(profile.displayName);
152
+ // -> "Bluesky"
153
+ ```
154
+
155
+ catch errors with `ClientResponseError`:
156
+
157
+ ```ts
158
+ import { ClientResponseError } from '@atcute/client';
159
+
160
+ try {
161
+ const profile = await ok(rpc.get('app.bsky.actor.getProfile', { params: { actor: 'invalid' } }));
162
+ } catch (err) {
163
+ if (err instanceof ClientResponseError) {
164
+ console.log(err.error); // error name from server
165
+ console.log(err.description); // error message from server
166
+ console.log(err.status); // HTTP status code
63
167
  }
64
168
  }
169
+ ```
65
170
 
66
- // performing authenticated requests
67
- {
68
- const manager = new CredentialManager({ service: 'https://bsky.social' });
69
- const rpc = new Client({ handler: manager });
171
+ ### authenticated requests
172
+
173
+ use `CredentialManager` to handle authentication. it manages tokens, automatically refreshes expired
174
+ access tokens, and can persist sessions:
70
175
 
71
- await manager.login({ identifier: 'example.com', password: 'ofki-yrwl-hmcc-cvau' });
176
+ ```ts
177
+ import { Client, CredentialManager, ok } from '@atcute/client';
178
+
179
+ const manager = new CredentialManager({ service: 'https://bsky.social' });
180
+ const rpc = new Client({ handler: manager });
181
+
182
+ // sign in with handle/email and password (or app password)
183
+ await manager.login({ identifier: 'you.bsky.social', password: 'your-app-password' });
184
+
185
+ // requests are now authenticated
186
+ const session = await ok(rpc.get('com.atproto.server.getSession'));
187
+ console.log(session.did);
188
+ // -> "did:plc:..."
189
+ ```
190
+
191
+ save `manager.session` to persist login across app restarts:
192
+
193
+ ```ts
194
+ // after login, save the session
195
+ localStorage.setItem('session', JSON.stringify(manager.session));
196
+ ```
197
+
198
+ ```ts
199
+ // later, restore the session
200
+ const saved = localStorage.getItem('session');
201
+ if (saved) {
202
+ await manager.resume(JSON.parse(saved));
203
+ }
204
+ ```
205
+
206
+ use callbacks to keep persisted sessions in sync:
207
+
208
+ ```ts
209
+ const manager = new CredentialManager({
210
+ service: 'https://bsky.social',
211
+ onSessionUpdate(session) {
212
+ // called on login, resume, and token refresh
213
+ localStorage.setItem('session', JSON.stringify(session));
214
+ },
215
+ onExpired(session) {
216
+ // called when refresh token expires and can't be renewed
217
+ localStorage.removeItem('session');
218
+ },
219
+ });
220
+ ```
221
+
222
+ ### response formats
223
+
224
+ by default, responses are parsed as JSON. for endpoints that return binary data, specify the format
225
+ with `as`:
226
+
227
+ ```ts
228
+ // get response as a Blob
229
+ const { data: blob } = await ok(
230
+ rpc.get('com.atproto.sync.getBlob', {
231
+ params: { did: 'did:plc:...', cid: 'bafyrei...' },
232
+ as: 'blob',
233
+ }),
234
+ );
235
+
236
+ // get response as Uint8Array
237
+ const { data: bytes } = await ok(
238
+ rpc.get('com.atproto.sync.getBlob', {
239
+ params: { did: 'did:plc:...', cid: 'bafyrei...' },
240
+ as: 'bytes',
241
+ }),
242
+ );
243
+
244
+ // get response as ReadableStream
245
+ const { data: stream } = await ok(
246
+ rpc.get('com.atproto.sync.getBlob', {
247
+ params: { did: 'did:plc:...', cid: 'bafyrei...' },
248
+ as: 'stream',
249
+ }),
250
+ );
251
+
252
+ // discard response body
253
+ await ok(
254
+ rpc.post('com.atproto.repo.deleteRecord', {
255
+ input: { repo: 'did:plc:...', collection: '...', rkey: '...' },
256
+ as: null,
257
+ }),
258
+ );
259
+ ```
260
+
261
+ ### runtime validation
262
+
263
+ by default, responses are trusted without validation. for stricter guarantees, use `call()` with the
264
+ schema from a definition package:
265
+
266
+ ```ts
267
+ import { Client, ok, simpleFetchHandler } from '@atcute/client';
268
+ import { AppBskyActorGetProfile } from '@atcute/bluesky';
269
+
270
+ const rpc = new Client({ handler: simpleFetchHandler({ service: 'https://public.api.bsky.app' }) });
72
271
 
73
- console.log(manager.session);
74
- // -> { refreshJwt: 'eyJhb...', ... }
272
+ // validates params, input, and output against the schema
273
+ const response = await rpc.call(AppBskyActorGetProfile, {
274
+ params: { actor: 'bsky.app' },
275
+ });
75
276
 
76
- const data = await ok(
77
- rpc.get('com.atproto.identity.resolveHandle', {
78
- params: {
79
- handle: 'pfrazee.com',
80
- },
81
- }),
82
- );
277
+ if (response.ok) {
278
+ // response.data is validated
279
+ console.log(response.data.displayName);
280
+ }
281
+ ```
282
+
283
+ validation errors throw `ClientValidationError`:
284
+
285
+ ```ts
286
+ import { ClientValidationError } from '@atcute/client';
83
287
 
84
- console.log(data.did);
85
- // -> 'did:plc:ragtjsm2j2vknwkz3zp4oxrd'
288
+ try {
289
+ await rpc.call(AppBskyActorGetProfile, { params: { actor: 'invalid!' } });
290
+ } catch (err) {
291
+ if (err instanceof ClientValidationError) {
292
+ console.log(err.target); // 'params', 'input', or 'output'
293
+ console.log(err.message); // validation error details
294
+ }
86
295
  }
87
296
  ```
88
297
 
89
- by default, the API client ships with no queries or procedures. you can extend the client by
90
- installing one of these definition packages.
298
+ ### service proxying
299
+
300
+ service proxying lets you make authenticated requests through your PDS to other services. the PDS
301
+ forwards the request with authorization headers proving it's acting on your behalf.
302
+
303
+ ```ts
304
+ // must be authenticated via CredentialManager
305
+ const manager = new CredentialManager({ service: 'https://bsky.social' });
306
+ await manager.login({ identifier: 'you.bsky.social', password: 'your-app-password' });
307
+
308
+ // create a client that proxies requests through your PDS to the chat service
309
+ const chatClient = new Client({
310
+ handler: manager,
311
+ proxy: {
312
+ did: 'did:web:api.bsky.chat',
313
+ serviceId: '#bsky_chat',
314
+ },
315
+ });
316
+
317
+ // request goes to your PDS, which forwards it to api.bsky.chat with auth headers
318
+ const convos = await ok(chatClient.get('chat.bsky.convo.listConvos'));
319
+ ```
320
+
321
+ common service IDs include:
322
+
323
+ - `#atproto_pds` - personal data server
324
+ - `#atproto_labeler` - labeler service
325
+ - `#bsky_chat` - Bluesky chat service
326
+
327
+ ### custom fetch handlers
328
+
329
+ the `simpleFetchHandler` works for most cases. for advanced scenarios, provide your own handler:
330
+
331
+ ```ts
332
+ import type { FetchHandler } from '@atcute/client';
333
+
334
+ const customHandler: FetchHandler = async (pathname, init) => {
335
+ // pathname is like "/xrpc/app.bsky.actor.getProfile?actor=bsky.app"
336
+ const url = new URL(pathname, 'https://public.api.bsky.app');
337
+
338
+ // add custom headers, logging, retry logic, etc.
339
+ console.log(`${init.method?.toUpperCase()} ${url}`);
340
+
341
+ return fetch(url, init);
342
+ };
343
+
344
+ const rpc = new Client({ handler: customHandler });
345
+ ```
346
+
347
+ or implement `FetchHandlerObject` for stateful handlers (like `CredentialManager` does):
348
+
349
+ ```ts
350
+ import type { FetchHandlerObject } from '@atcute/client';
91
351
 
92
- - [`@atcute/atproto`](../../definitions/atproto): `com.atproto.*` schema definitions
93
- - [`@atcute/bluemoji`](../../definitions/bluemoji): `blue.moji.*` schema definitions
94
- - [`@atcute/bluesky`](../../definitions/bluesky): `app.bsky.*` and `chat.bsky.*` schema definitions
95
- - [`@atcute/frontpage`](../../definitions/frontpage): `fyi.unravel.frontpage.*` schema definitions
96
- - [`@atcute/ozone`](../../definitions/ozone): `tools.ozone.*` schema definitions
97
- - [`@atcute/tangled`](../../definitions/tangled): `sh.tangled.*` schema definitions
98
- - [`@atcute/whitewind`](../../definitions/whitewind): `com.whtwnd.*` schema definitions
352
+ class MyHandler implements FetchHandlerObject {
353
+ async handle(pathname: string, init: RequestInit): Promise<Response> {
354
+ // your implementation
355
+ return fetch(new URL(pathname, 'https://...'), init);
356
+ }
357
+ }
358
+
359
+ const rpc = new Client({ handler: new MyHandler() });
360
+ ```
package/dist/client.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { Did } from '@atcute/lexicons';
2
2
  import type { XRPCProcedures, XRPCQueries } from '@atcute/lexicons/ambient';
3
+ import * as v from '@atcute/lexicons/validations';
3
4
  import type { InferInput, InferOutput, ObjectSchema, XRPCBlobBodyParam, XRPCLexBodyParam, XRPCProcedureMetadata, XRPCQueryMetadata } from '@atcute/lexicons/validations';
4
5
  import { type FetchHandler, type FetchHandlerObject } from './fetch-handler.js';
5
6
  type RequiredKeysOf<TType extends object> = TType extends any ? Exclude<{
@@ -48,6 +49,23 @@ export type ProcedureRequestOptions<TDef> = BaseRequestOptions & (TDef extends X
48
49
  input?: Record<string, unknown> | Blob | ArrayBuffer | ArrayBufferView | ReadableStream;
49
50
  params?: Record<string, unknown>;
50
51
  });
52
+ export type CallRequestOptions<TMeta> = BaseRequestOptions & {
53
+ as?: ResponseFormat | null;
54
+ } & (TMeta extends XRPCQueryMetadata<infer Params, any, any> ? Params extends ObjectSchema ? {
55
+ params: InferInput<Params>;
56
+ } : {
57
+ params?: Record<string, unknown>;
58
+ } : TMeta extends XRPCProcedureMetadata<infer Params, infer Input, any, any> ? (Params extends ObjectSchema ? {
59
+ params: InferInput<Params>;
60
+ } : {
61
+ params?: Record<string, unknown>;
62
+ }) & (Input extends XRPCLexBodyParam ? {
63
+ input: InferInput<Input['schema']>;
64
+ } : Input extends XRPCBlobBodyParam ? {
65
+ input: Blob | ArrayBuffer | ArrayBufferView | ReadableStream;
66
+ } : {
67
+ input?: Record<string, unknown> | Blob | ArrayBuffer | ArrayBufferView | ReadableStream;
68
+ }) : never);
51
69
  /** standard XRPC error payload structure */
52
70
  export type XRPCErrorPayload = {
53
71
  /** error name */
@@ -87,6 +105,9 @@ type UnknownClientResponse = {
87
105
  ok: false;
88
106
  data: XRPCErrorPayload;
89
107
  });
108
+ type Namespaced<T> = {
109
+ mainSchema: T;
110
+ };
90
111
  /** options for configuring service proxying */
91
112
  export type ServiceProxyOptions = {
92
113
  /** DID identifier that the upstream service should look up */
@@ -135,6 +156,12 @@ export declare class Client<TQueries = XRPCQueries, TProcedures = XRPCProcedures
135
156
  * @param options procedure options
136
157
  */
137
158
  post<TName extends keyof TProcedures, TInit extends ProcedureRequestOptions<TProcedures[TName]>>(name: TName, ...options: HasRequiredKeys<TInit> extends true ? [init: TInit] : [init?: TInit]): Promise<ClientResponse<TProcedures[TName], TInit>>;
159
+ /**
160
+ * performs an XRPC call with schema validation
161
+ * @param schema the lexicon schema for the endpoint, or a namespace containing mainSchema
162
+ * @param options call options
163
+ */
164
+ call<TMeta extends XRPCQueryMetadata | XRPCProcedureMetadata, TInit extends CallRequestOptions<TMeta>>(schema: TMeta | Namespaced<TMeta>, ...options: HasRequiredKeys<TInit> extends true ? [init: TInit] : [init?: TInit]): Promise<ClientResponse<TMeta, TInit>>;
138
165
  }
139
166
  export declare const isXRPCErrorPayload: (input: any) => input is XRPCErrorPayload;
140
167
  type ExtractSuccessData<R> = R extends {
@@ -173,5 +200,13 @@ export declare class ClientResponseError extends Error {
173
200
  readonly headers: Headers;
174
201
  constructor({ status, headers, data }: ClientResponseErrorOptions);
175
202
  }
203
+ /** represents a validation error during typed calls */
204
+ export declare class ClientValidationError extends Error {
205
+ /** validation target (params, input, or output) */
206
+ readonly target: 'params' | 'input' | 'output';
207
+ /** validation result */
208
+ readonly result: v.Err;
209
+ constructor(target: 'params' | 'input' | 'output', result: v.Err);
210
+ }
176
211
  export {};
177
212
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../lib/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../lib/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -1,7 +1,10 @@
1
+ import * as v from '@atcute/lexicons/validations';
1
2
  import { buildFetchHandler } from './fetch-handler.js';
2
3
  const JSON_CONTENT_TYPE_RE = /\bapplication\/json\b/;
3
4
  /** XRPC API client */
4
5
  export class Client {
6
+ handler;
7
+ proxy;
5
8
  constructor({ handler, proxy = null }) {
6
9
  this.handler = buildFetchHandler(handler);
7
10
  this.proxy = proxy;
@@ -20,6 +23,57 @@ export class Client {
20
23
  post(name, options = {}) {
21
24
  return this.#perform('post', name, options);
22
25
  }
26
+ async call(schema, options = {}) {
27
+ // early bailout for tree-shaking when schemas aren't used
28
+ if (!v.xrpcSchemaGenerated) {
29
+ return;
30
+ }
31
+ // extract mainSchema if namespace was passed
32
+ if ('mainSchema' in schema) {
33
+ schema = schema.mainSchema;
34
+ }
35
+ if (schema.params !== null) {
36
+ const paramsResult = v.safeParse(schema.params, options.params);
37
+ if (!paramsResult.ok) {
38
+ throw new ClientValidationError('params', paramsResult);
39
+ }
40
+ }
41
+ if (schema.type === 'xrpc_procedure' && schema.input?.type === 'lex') {
42
+ const inputResult = v.safeParse(schema.input.schema, options.input);
43
+ if (!inputResult.ok) {
44
+ throw new ClientValidationError('input', inputResult);
45
+ }
46
+ }
47
+ const isQuery = schema.type === 'xrpc_query';
48
+ const method = isQuery ? 'get' : 'post';
49
+ const format = options.as !== undefined
50
+ ? options.as
51
+ : schema.output?.type === 'lex'
52
+ ? 'json'
53
+ : schema.output?.type === 'blob'
54
+ ? 'blob'
55
+ : null;
56
+ const response = await this.#perform(method, schema.nsid, {
57
+ params: options.params,
58
+ input: isQuery ? undefined : options.input,
59
+ as: format,
60
+ signal: options.signal,
61
+ headers: options.headers,
62
+ });
63
+ if (format === 'json' && response.ok && schema.output?.type === 'lex') {
64
+ const outputResult = v.safeParse(schema.output.schema, response.data);
65
+ if (!outputResult.ok) {
66
+ throw new ClientValidationError('output', outputResult);
67
+ }
68
+ return {
69
+ ok: true,
70
+ status: response.status,
71
+ headers: response.headers,
72
+ data: outputResult.value,
73
+ };
74
+ }
75
+ return response;
76
+ }
23
77
  async #perform(method, name, { signal, as: format = 'json', headers, input, params }) {
24
78
  const isWebInput = input &&
25
79
  (input instanceof Blob ||
@@ -176,6 +230,14 @@ export const ok = (input) => {
176
230
  };
177
231
  /** represents an error response returned by the client */
178
232
  export class ClientResponseError extends Error {
233
+ /** error name returned by service */
234
+ error;
235
+ /** error message returned by service */
236
+ description;
237
+ /** response status */
238
+ status;
239
+ /** response headers */
240
+ headers;
179
241
  constructor({ status, headers = new Headers(), data }) {
180
242
  super(`${data.error} > ${data.message ?? '(unspecified description)'}`);
181
243
  this.name = 'ClientResponseError';
@@ -185,5 +247,18 @@ export class ClientResponseError extends Error {
185
247
  this.headers = headers;
186
248
  }
187
249
  }
250
+ /** represents a validation error during typed calls */
251
+ export class ClientValidationError extends Error {
252
+ /** validation target (params, input, or output) */
253
+ target;
254
+ /** validation result */
255
+ result;
256
+ constructor(target, result) {
257
+ super(`validation failed for ${target}: ${result.message}`);
258
+ this.name = 'ClientValidationError';
259
+ this.target = target;
260
+ this.result = result;
261
+ }
262
+ }
188
263
  // #endregion
189
264
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../lib/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../lib/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,8BAA8B,CAAC;AAWlD,OAAO,EAAE,iBAAiB,EAA8C,MAAM,oBAAoB,CAAC;AA6LnG,MAAM,oBAAoB,GAAG,uBAAuB,CAAC;AAErD,sBAAsB;AACtB,MAAM,OAAO,MAAM;IAClB,OAAO,CAAe;IACtB,KAAK,CAA6B;IAElC,YAAY,EAAE,OAAO,EAAE,KAAK,GAAG,IAAI,EAAiB,EAAE;QACrD,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAAA,CACnB;IAED;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,GAA2B,EAAE,EAG/E;QACD,OAAO,IAAI,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IAAA,CACtC;IAYD,GAAG,CAAC,IAAY,EAAE,OAAO,GAA2B,EAAE,EAAE;QACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAAA,CAC3C;IAYD,IAAI,CAAC,IAAY,EAAE,OAAO,GAA2B,EAAE,EAAE;QACxD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAAA,CAC5C;IAYD,KAAK,CAAC,IAAI,CAAC,MAAW,EAAE,OAAO,GAAQ,EAAE,EAAgB;QACxD,0DAA0D;QAC1D,IAAI,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;YAC5B,OAAO;QACR,CAAC;QAED,6CAA6C;QAC7C,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;YAC5B,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;QAC5B,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAChE,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;gBACtB,MAAM,IAAI,qBAAqB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACzD,CAAC;QACF,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC;YACtE,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YACpE,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;gBACrB,MAAM,IAAI,qBAAqB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACvD,CAAC;QACF,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,KAAK,YAAY,CAAC;QAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QAExC,MAAM,MAAM,GACX,OAAO,CAAC,EAAE,KAAK,SAAS;YACvB,CAAC,CAAC,OAAO,CAAC,EAAE;YACZ,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,KAAK;gBAC9B,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,MAAM;oBAC/B,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,IAAI,CAAC;QAEX,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;YACzD,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK;YAC1C,EAAE,EAAE,MAAM;YACV,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;SACxB,CAAC,CAAC;QAEH,IAAI,MAAM,KAAK,MAAM,IAAI,QAAQ,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,KAAK,KAAK,EAAE,CAAC;YACvE,MAAM,YAAY,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtE,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;gBACtB,MAAM,IAAI,qBAAqB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACzD,CAAC;YAED,OAAO;gBACN,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,IAAI,EAAE,YAAY,CAAC,KAAK;aACxB,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAAA,CAChB;IAED,KAAK,CAAC,QAAQ,CACb,MAAsB,EACtB,IAAY,EACZ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAA0B,EAC9E;QACD,MAAM,UAAU,GACf,KAAK;YACL,CAAC,KAAK,YAAY,IAAI;gBACrB,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;gBACzB,KAAK,YAAY,WAAW;gBAC5B,KAAK,YAAY,cAAc,CAAC,CAAC;QAEnC,MAAM,GAAG,GAAG,SAAS,IAAI,EAAE,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAE7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YACxC,MAAM;YACN,MAAM;YACN,IAAI,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;YAC1D,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE;gBAC/B,cAAc,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI;gBAChE,eAAe,EAAE,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;aAClD,CAAC;SACF,CAAC,CAAC;QAEH,CAAC;YACA,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;YAEjC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YAEzC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBACpB,IAAI,IAAS,CAAC;gBAEd,IAAI,IAAI,IAAI,IAAI,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrD,sDAAsD;oBACtD,IAAI,CAAC;wBACJ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;wBACrC,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;4BAChC,IAAI,GAAG,MAAM,CAAC;wBACf,CAAC;oBACF,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;gBACX,CAAC;qBAAM,CAAC;oBACP,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC/B,CAAC;gBAED,OAAO;oBACN,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,OAAO;oBAChB,IAAI,EAAE,IAAI,IAAI;wBACb,KAAK,EAAE,kBAAkB;wBACzB,OAAO,EAAE,mCAAmC,MAAM,EAAE;qBACpD;iBACD,CAAC;YACH,CAAC;YAED,CAAC;gBACA,IAAI,IAAS,CAAC;gBACd,QAAQ,MAAM,EAAE,CAAC;oBAChB,KAAK,MAAM,EAAE,CAAC;wBACb,IAAI,IAAI,IAAI,IAAI,IAAI,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;4BACrD,0CAA0C;4BAC1C,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;wBAC9B,CAAC;6BAAM,CAAC;4BACP,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;4BAE9B,MAAM,IAAI,SAAS,CAAC,sCAAsC,IAAI,GAAG,CAAC,CAAC;wBACpE,CAAC;wBAED,MAAM;oBACP,CAAC;oBAED,KAAK,IAAI,EAAE,CAAC;wBACX,IAAI,GAAG,IAAI,CAAC;wBAEZ,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;wBAE9B,MAAM;oBACP,CAAC;oBAED,KAAK,MAAM,EAAE,CAAC;wBACb,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;wBAC7B,MAAM;oBACP,CAAC;oBACD,KAAK,OAAO,EAAE,CAAC;wBACd,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;wBACpD,MAAM;oBACP,CAAC;oBACD,KAAK,QAAQ,EAAE,CAAC;wBACf,IAAI,GAAG,QAAQ,CAAC,IAAK,CAAC;wBACtB,MAAM;oBACP,CAAC;gBACF,CAAC;gBAED,OAAO;oBACN,EAAE,EAAE,IAAI;oBACR,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,OAAO;oBAChB,IAAI,EAAE,IAAI;iBACV,CAAC;YACH,CAAC;QACF,CAAC;IAAA,CACD;CACD;AAED,aAAa;AAEb,4BAA4B;AAC5B,MAAM,sBAAsB,GAAG,CAAC,MAA2C,EAAU,EAAE,CAAC;IACvF,IAAI,YAAyC,CAAC;IAE9C,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAE1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,YAAY,KAAK,IAAI,eAAe,EAAE,CAAC;YAEvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;oBACxD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;oBACvB,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,CAAC;gBACpC,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC;YACnC,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAAA,CACzD,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,KAA6C,EAAiB,EAAE,CAAC;IAC/F,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC;IACzC,CAAC;IAED,OAAO,IAAI,CAAC;AAAA,CACZ,CAAC;AAEF,MAAM,aAAa,GAAG,CACrB,IAA6B,EAC7B,QAAuC,EACb,EAAE,CAAC;IAC7B,IAAI,OAA4B,CAAC;IAEjC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;YAE9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,OAAO,IAAI,IAAI,CAAC;AAAA,CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAU,EAA6B,EAAE,CAAC;IAC5E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,KAAK,CAAC,KAAK,CAAC;IACpC,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,OAAO,CAAC;IAEzC,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,WAAW,KAAK,WAAW,IAAI,WAAW,KAAK,QAAQ,CAAC,CAAC;AAAA,CAC1F,CAAC;AAMF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,EAAE,GAGX,CAAC,KAA6D,EAAO,EAAE,CAAC;IAC3E,IAAI,KAAK,YAAY,OAAO,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvB,CAAC;IAED,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,KAAK,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAAA,CACrC,CAAC;AASF,0DAA0D;AAC1D,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC7C,qCAAqC;IAC5B,KAAK,CAAS;IACvB,wCAAwC;IAC/B,WAAW,CAAU;IAE9B,sBAAsB;IACb,MAAM,CAAS;IACxB,uBAAuB;IACd,OAAO,CAAU;IAE1B,YAAY,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,OAAO,EAAE,EAAE,IAAI,EAA8B,EAAE;QAClF,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,OAAO,IAAI,2BAA2B,EAAE,CAAC,CAAC;QAExE,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAElC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;QAEhC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAAA,CACvB;CACD;AAED,uDAAuD;AACvD,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC/C,mDAAmD;IAC1C,MAAM,CAAgC;IAC/C,wBAAwB;IACf,MAAM,CAAQ;IAEvB,YAAY,MAAqC,EAAE,MAAa,EAAE;QACjE,KAAK,CAAC,yBAAyB,MAAM,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAE5D,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAAA,CACrB;CACD;AAED,aAAa"}
@@ -75,7 +75,7 @@ export declare class CredentialManager implements FetchHandlerObject {
75
75
  fetch: typeof fetch;
76
76
  /** current active session, undefined if not authenticated */
77
77
  session?: AtpSessionData;
78
- constructor({ service, onExpired, onRefresh, onSessionUpdate, fetch: _fetch, }: CredentialManagerOptions);
78
+ constructor({ service, onExpired, onRefresh, onSessionUpdate, fetch: _fetch }: CredentialManagerOptions);
79
79
  /** service URL to make actual API requests with */
80
80
  get dispatchUrl(): string;
81
81
  handle(pathname: string, init: RequestInit): Promise<Response>;
@@ -1 +1 @@
1
- {"version":3,"file":"credential-manager.d.ts","sourceRoot":"","sources":["../lib/credential-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credential-manager.d.ts","sourceRoot":"","sources":["../lib/credential-manager.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,10 @@ import { Client, ClientResponseError, isXRPCErrorPayload, ok } from './client.js
3
3
  import { simpleFetchHandler } from './fetch-handler.js';
4
4
  import { decodeJwt } from './utils/jwt.js';
5
5
  export class CredentialManager {
6
+ /** service URL to make authentication requests with */
7
+ serviceUrl;
8
+ /** fetch implementation */
9
+ fetch;
6
10
  /** internal client instance for making authentication requests */
7
11
  #server;
8
12
  /** holds a promise for the current refresh operation, used for debouncing */
@@ -13,6 +17,8 @@ export class CredentialManager {
13
17
  #onRefresh;
14
18
  /** callback for session updates */
15
19
  #onSessionUpdate;
20
+ /** current active session, undefined if not authenticated */
21
+ session;
16
22
  constructor({ service, onExpired, onRefresh, onSessionUpdate, fetch: _fetch = fetch, }) {
17
23
  this.serviceUrl = service;
18
24
  this.fetch = _fetch;
@@ -1 +1 @@
1
- {"version":3,"file":"credential-manager.js","sourceRoot":"","sources":["../lib/credential-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credential-manager.js","sourceRoot":"","sources":["../lib/credential-manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-handler.d.ts","sourceRoot":"","sources":["../lib/fetch-handler.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,MAAM,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEtF,iCAAiC;AACjC,MAAM,WAAW,kBAAkB;IAClC,MAAM,CAAC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACzF;AAED,eAAO,MAAM,iBAAiB,GAAI,SAAS,YAAY,GAAG,kBAAkB,KAAG,YAM9E,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACzC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CAChC;AAED,eAAO,MAAM,kBAAkB,GAAI,6BAGhC,yBAAyB,KAAG,YAK9B,CAAC"}
1
+ {"version":3,"file":"fetch-handler.d.ts","sourceRoot":"","sources":["../lib/fetch-handler.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,MAAM,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEtF,iCAAiC;AACjC,MAAM,WAAW,kBAAkB;IAClC,MAAM,CAAC,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACzF;AAED,eAAO,MAAM,iBAAiB,8DAM7B,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACzC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CAChC;AAED,eAAO,MAAM,kBAAkB,0EAQ9B,CAAC"}
@@ -7,7 +7,7 @@ export const buildFetchHandler = (handler) => {
7
7
  export const simpleFetchHandler = ({ service, fetch: _fetch = fetch, }) => {
8
8
  return async (pathname, init) => {
9
9
  const url = new URL(pathname, service);
10
- return await _fetch(url, init);
10
+ return await _fetch(url.href, init);
11
11
  };
12
12
  };
13
13
  //# sourceMappingURL=fetch-handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-handler.js","sourceRoot":"","sources":["../lib/fetch-handler.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAA0C,EAAgB,EAAE;IAC7F,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAClC,OAAO,EACP,KAAK,EAAE,MAAM,GAAG,KAAK,GACM,EAAgB,EAAE;IAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvC,OAAO,MAAM,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"fetch-handler.js","sourceRoot":"","sources":["../lib/fetch-handler.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAA0C,EAAgB,EAAE,CAAC;IAC9F,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,OAAO,CAAC;AAAA,CACf,CAAC;AAOF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAClC,OAAO,EACP,KAAK,EAAE,MAAM,GAAG,KAAK,GACM,EAAgB,EAAE,CAAC;IAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACvC,OAAO,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAAA,CACpC,CAAC;AAAA,CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../lib/utils/jwt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,OAqBzC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,KAAG,MAqB7C,CAAC"}
1
+ {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../lib/utils/jwt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,eAAO,MAAM,SAAS,4BAqBrB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,yBAqB3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../lib/utils/jwt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAW,EAAE;IACnD,MAAM,GAAG,GAAG,CAAC,CAAC;IACd,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjC,IAAI,OAAe,CAAC;IAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC;QACJ,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,GAAI,CAAW,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;IACzG,CAAC;IAED,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,GAAI,CAAW,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;IAC1G,CAAC;AACF,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAW,EAAU,EAAE;IACtD,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEvD,QAAQ,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC;YACL,MAAM;QACP,KAAK,CAAC;YACL,MAAM,IAAI,IAAI,CAAC;YACf,MAAM;QACP,KAAK,CAAC;YACL,MAAM,IAAI,GAAG,CAAC;YACd,MAAM;QACP;YACC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,CAAC;QACJ,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAU,EAAE;IAChD,OAAO,kBAAkB,CACxB,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACnC,IAAI,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAEtD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,OAAO,GAAG,GAAG,IAAI,CAAC;IACnB,CAAC,CAAC,CACF,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../lib/utils/jwt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC;IACpD,MAAM,GAAG,GAAG,CAAC,CAAC;IACd,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjC,IAAI,OAAe,CAAC;IAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC;QACJ,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,GAAI,CAAW,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;IACzG,CAAC;IAED,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,uCAAuC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,GAAI,CAAW,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;IAC1G,CAAC;AAAA,CACD,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC;IACvD,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEvD,QAAQ,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC;YACL,MAAM;QACP,KAAK,CAAC;YACL,MAAM,IAAI,IAAI,CAAC;YACf,MAAM;QACP,KAAK,CAAC;YACL,MAAM,IAAI,GAAG,CAAC;YACd,MAAM;QACP;YACC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,CAAC;QACJ,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;AAAA,CACD,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC;IACjD,OAAO,kBAAkB,CACxB,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,IAAI,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAEtD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,OAAO,GAAG,GAAG,IAAI,CAAC;IAAA,CAClB,CAAC,CACF,CAAC;AAAA,CACF,CAAC"}
package/lib/client.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { Did } from '@atcute/lexicons';
2
2
  import type { XRPCProcedures, XRPCQueries } from '@atcute/lexicons/ambient';
3
+ import * as v from '@atcute/lexicons/validations';
3
4
  import type {
4
5
  InferInput,
5
6
  InferOutput,
@@ -90,6 +91,25 @@ export type ProcedureRequestOptions<TDef> = BaseRequestOptions &
90
91
  params?: Record<string, unknown>;
91
92
  });
92
93
 
94
+ export type CallRequestOptions<TMeta> = BaseRequestOptions & {
95
+ as?: ResponseFormat | null;
96
+ } & (TMeta extends XRPCQueryMetadata<infer Params, any, any>
97
+ ? // query
98
+ Params extends ObjectSchema
99
+ ? { params: InferInput<Params> }
100
+ : { params?: Record<string, unknown> }
101
+ : TMeta extends XRPCProcedureMetadata<infer Params, infer Input, any, any>
102
+ ? // procedure
103
+ (Params extends ObjectSchema
104
+ ? { params: InferInput<Params> }
105
+ : { params?: Record<string, unknown> }) &
106
+ (Input extends XRPCLexBodyParam
107
+ ? { input: InferInput<Input['schema']> }
108
+ : Input extends XRPCBlobBodyParam
109
+ ? { input: Blob | ArrayBuffer | ArrayBufferView | ReadableStream }
110
+ : { input?: Record<string, unknown> | Blob | ArrayBuffer | ArrayBufferView | ReadableStream })
111
+ : never);
112
+
93
113
  type InternalRequestOptions = BaseRequestOptions & {
94
114
  as?: ResponseFormat | null;
95
115
  params?: Record<string, unknown>;
@@ -148,6 +168,11 @@ type UnknownClientResponse = { status: number; headers: Headers } & (
148
168
 
149
169
  // #endregion
150
170
 
171
+ // #region Type definitions for call method
172
+ type Namespaced<T> = { mainSchema: T };
173
+
174
+ // #endregion
175
+
151
176
  // #region Client
152
177
  /** options for configuring service proxying */
153
178
  export type ServiceProxyOptions = {
@@ -227,6 +252,78 @@ export class Client<TQueries = XRPCQueries, TProcedures = XRPCProcedures> {
227
252
  return this.#perform('post', name, options);
228
253
  }
229
254
 
255
+ /**
256
+ * performs an XRPC call with schema validation
257
+ * @param schema the lexicon schema for the endpoint, or a namespace containing mainSchema
258
+ * @param options call options
259
+ */
260
+ call<TMeta extends XRPCQueryMetadata | XRPCProcedureMetadata, TInit extends CallRequestOptions<TMeta>>(
261
+ schema: TMeta | Namespaced<TMeta>,
262
+ ...options: HasRequiredKeys<TInit> extends true ? [init: TInit] : [init?: TInit]
263
+ ): Promise<ClientResponse<TMeta, TInit>>;
264
+
265
+ async call(schema: any, options: any = {}): Promise<any> {
266
+ // early bailout for tree-shaking when schemas aren't used
267
+ if (!v.xrpcSchemaGenerated) {
268
+ return;
269
+ }
270
+
271
+ // extract mainSchema if namespace was passed
272
+ if ('mainSchema' in schema) {
273
+ schema = schema.mainSchema;
274
+ }
275
+
276
+ if (schema.params !== null) {
277
+ const paramsResult = v.safeParse(schema.params, options.params);
278
+ if (!paramsResult.ok) {
279
+ throw new ClientValidationError('params', paramsResult);
280
+ }
281
+ }
282
+
283
+ if (schema.type === 'xrpc_procedure' && schema.input?.type === 'lex') {
284
+ const inputResult = v.safeParse(schema.input.schema, options.input);
285
+ if (!inputResult.ok) {
286
+ throw new ClientValidationError('input', inputResult);
287
+ }
288
+ }
289
+
290
+ const isQuery = schema.type === 'xrpc_query';
291
+ const method = isQuery ? 'get' : 'post';
292
+
293
+ const format =
294
+ options.as !== undefined
295
+ ? options.as
296
+ : schema.output?.type === 'lex'
297
+ ? 'json'
298
+ : schema.output?.type === 'blob'
299
+ ? 'blob'
300
+ : null;
301
+
302
+ const response = await this.#perform(method, schema.nsid, {
303
+ params: options.params,
304
+ input: isQuery ? undefined : options.input,
305
+ as: format,
306
+ signal: options.signal,
307
+ headers: options.headers,
308
+ });
309
+
310
+ if (format === 'json' && response.ok && schema.output?.type === 'lex') {
311
+ const outputResult = v.safeParse(schema.output.schema, response.data);
312
+ if (!outputResult.ok) {
313
+ throw new ClientValidationError('output', outputResult);
314
+ }
315
+
316
+ return {
317
+ ok: true,
318
+ status: response.status,
319
+ headers: response.headers,
320
+ data: outputResult.value,
321
+ };
322
+ }
323
+
324
+ return response;
325
+ }
326
+
230
327
  async #perform(
231
328
  method: 'get' | 'post',
232
329
  name: string,
@@ -459,4 +556,20 @@ export class ClientResponseError extends Error {
459
556
  }
460
557
  }
461
558
 
559
+ /** represents a validation error during typed calls */
560
+ export class ClientValidationError extends Error {
561
+ /** validation target (params, input, or output) */
562
+ readonly target: 'params' | 'input' | 'output';
563
+ /** validation result */
564
+ readonly result: v.Err;
565
+
566
+ constructor(target: 'params' | 'input' | 'output', result: v.Err) {
567
+ super(`validation failed for ${target}: ${result.message}`);
568
+
569
+ this.name = 'ClientValidationError';
570
+ this.target = target;
571
+ this.result = result;
572
+ }
573
+ }
574
+
462
575
  // #endregion
@@ -25,6 +25,6 @@ export const simpleFetchHandler = ({
25
25
  }: SimpleFetchHandlerOptions): FetchHandler => {
26
26
  return async (pathname, init) => {
27
27
  const url = new URL(pathname, service);
28
- return await _fetch(url, init);
28
+ return await _fetch(url.href, init);
29
29
  };
30
30
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@atcute/client",
4
- "version": "4.0.5",
4
+ "version": "4.1.1",
5
5
  "description": "lightweight and cute API client for AT Protocol",
6
6
  "license": "0BSD",
7
7
  "repository": {
@@ -18,18 +18,18 @@
18
18
  ".": "./dist/index.js"
19
19
  },
20
20
  "dependencies": {
21
- "@atcute/identity": "^1.1.1",
22
- "@atcute/lexicons": "^1.2.2"
21
+ "@atcute/identity": "^1.1.3",
22
+ "@atcute/lexicons": "^1.2.5"
23
23
  },
24
24
  "devDependencies": {
25
- "@vitest/coverage-v8": "^3.2.4",
26
- "vitest": "^3.2.4",
27
- "@atcute/atproto": "^3.1.7",
28
- "@atcute/bluesky": "^3.2.7",
25
+ "@vitest/coverage-v8": "^4.0.14",
26
+ "vitest": "^4.0.14",
27
+ "@atcute/atproto": "^3.1.9",
28
+ "@atcute/bluesky": "^3.2.13",
29
29
  "@atcute/internal-dev-env": "^1.0.2"
30
30
  },
31
31
  "scripts": {
32
- "build": "tsc --project tsconfig.build.json",
32
+ "build": "tsgo --project tsconfig.build.json",
33
33
  "postbuild": "node ./scripts/ensure-files.js",
34
34
  "test": "vitest run --coverage",
35
35
  "prepublish": "rm -rf dist; pnpm run build"