@atproto/api 0.13.2 → 0.13.4

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 (46) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/OAUTH.md +24 -13
  3. package/README.md +17 -7
  4. package/dist/agent.d.ts +17 -8
  5. package/dist/agent.d.ts.map +1 -1
  6. package/dist/agent.js +59 -6
  7. package/dist/agent.js.map +1 -1
  8. package/dist/atp-agent.d.ts +32 -18
  9. package/dist/atp-agent.d.ts.map +1 -1
  10. package/dist/atp-agent.js +117 -103
  11. package/dist/atp-agent.js.map +1 -1
  12. package/dist/client/index.d.ts.map +1 -1
  13. package/dist/client/index.js +1 -6
  14. package/dist/client/index.js.map +1 -1
  15. package/dist/client/lexicons.d.ts +7 -0
  16. package/dist/client/lexicons.d.ts.map +1 -1
  17. package/dist/client/lexicons.js +8 -1
  18. package/dist/client/lexicons.js.map +1 -1
  19. package/dist/client/types/app/bsky/embed/record.d.ts +1 -0
  20. package/dist/client/types/app/bsky/embed/record.d.ts.map +1 -1
  21. package/dist/client/types/app/bsky/embed/record.js.map +1 -1
  22. package/dist/client/types/app/bsky/feed/getPostThread.d.ts +1 -0
  23. package/dist/client/types/app/bsky/feed/getPostThread.d.ts.map +1 -1
  24. package/dist/client/types/app/bsky/feed/getPostThread.js.map +1 -1
  25. package/dist/client/types/app/bsky/feed/getQuotes.d.ts +4 -3
  26. package/dist/client/types/app/bsky/feed/getQuotes.d.ts.map +1 -1
  27. package/dist/client/types/app/bsky/feed/getQuotes.js +0 -6
  28. package/dist/client/types/app/bsky/feed/getQuotes.js.map +1 -1
  29. package/dist/index.d.ts +3 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +5 -3
  32. package/dist/index.js.map +1 -1
  33. package/dist/session-manager.d.ts +5 -0
  34. package/dist/session-manager.d.ts.map +1 -0
  35. package/dist/session-manager.js +3 -0
  36. package/dist/session-manager.js.map +1 -0
  37. package/package.json +2 -2
  38. package/src/agent.ts +35 -14
  39. package/src/atp-agent.ts +149 -128
  40. package/src/client/index.ts +1 -5
  41. package/src/client/lexicons.ts +8 -1
  42. package/src/client/types/app/bsky/embed/record.ts +1 -0
  43. package/src/client/types/app/bsky/feed/getPostThread.ts +1 -0
  44. package/src/client/types/app/bsky/feed/getQuotes.ts +4 -5
  45. package/src/index.ts +5 -2
  46. package/src/session-manager.ts +5 -0
@@ -1,6 +1,7 @@
1
1
  import { Gettable } from '@atproto/xrpc';
2
2
  import { Agent } from './agent';
3
- import { AtpBaseClient, ComAtprotoServerCreateAccount, ComAtprotoServerCreateSession, ComAtprotoServerGetSession } from './client';
3
+ import { ComAtprotoServerCreateAccount, ComAtprotoServerCreateSession, ComAtprotoServerGetSession, ComAtprotoServerNS } from './client';
4
+ import { SessionManager } from './session-manager';
4
5
  import { AtpAgentLoginOpts, AtpPersistSessionHandler, AtpSessionData } from './types';
5
6
  export type AtpAgentOptions = {
6
7
  service: string | URL;
@@ -9,17 +10,25 @@ export type AtpAgentOptions = {
9
10
  headers?: Iterable<[string, Gettable<null | string>]>;
10
11
  };
11
12
  /**
12
- * An {@link AtpAgent} extends the {@link Agent} abstract class by
13
- * implementing password based session management.
13
+ * A wrapper around the {@link Agent} class that uses credential based session
14
+ * management. This class also exposes most of the session management methods
15
+ * directly.
16
+ *
17
+ * This class will be deprecated in the near future. Use {@link Agent} directly
18
+ * with a {@link CredentialSession} instead:
19
+ *
20
+ * ```ts
21
+ * const session = new CredentialSession({
22
+ * service: new URL('https://example.com'),
23
+ * })
24
+ *
25
+ * const agent = new Agent(session)
26
+ * ```
14
27
  */
15
28
  export declare class AtpAgent extends Agent {
16
- readonly headers: Map<string, Gettable<null | string>>;
17
- readonly sessionManager: SessionManager;
18
- constructor(options: AtpAgentOptions | SessionManager);
29
+ readonly sessionManager: CredentialSession;
30
+ constructor(options: AtpAgentOptions | CredentialSession);
19
31
  clone(): AtpAgent;
20
- copyInto<T extends Agent>(inst: T): T;
21
- setHeader(key: string, value: Gettable<null | string>): void;
22
- unsetHeader(key: string): void;
23
32
  get session(): AtpSessionData | undefined;
24
33
  get hasSession(): boolean;
25
34
  get did(): string | undefined;
@@ -30,7 +39,7 @@ export declare class AtpAgent extends Agent {
30
39
  get service(): URL;
31
40
  get persistSession(): unknown;
32
41
  set persistSession(v: unknown);
33
- /** @deprecated This will be removed in OAuthAtpAgent */
42
+ /** @deprecated use {@link AtpAgent.serviceUrl} instead */
34
43
  getServiceUrl(): URL;
35
44
  resumeSession(session: AtpSessionData): Promise<ComAtprotoServerGetSession.Response>;
36
45
  createAccount(data: ComAtprotoServerCreateAccount.InputSchema, opts?: ComAtprotoServerCreateAccount.CallOptions): Promise<ComAtprotoServerCreateAccount.Response>;
@@ -38,11 +47,12 @@ export declare class AtpAgent extends Agent {
38
47
  logout(): Promise<void>;
39
48
  }
40
49
  /**
41
- * Private class meant to be used by clones of {@link AtpAgent} so they can
42
- * share the same session across multiple instances (with different
43
- * proxying/labelers/headers options).
50
+ * Credentials (username / password) based session manager. Instances of this
51
+ * class will typically be used as the session manager for an {@link AtpAgent}.
52
+ * They can also be used with an {@link XrpcClient}, if you want to use you
53
+ * own Lexicons.
44
54
  */
45
- declare class SessionManager {
55
+ export declare class CredentialSession implements SessionManager {
46
56
  readonly serviceUrl: URL;
47
57
  fetch: typeof fetch;
48
58
  protected readonly persistSession?: AtpPersistSessionHandler | undefined;
@@ -50,16 +60,21 @@ declare class SessionManager {
50
60
  session?: AtpSessionData;
51
61
  refreshSessionPromise: Promise<void> | undefined;
52
62
  /**
53
- * Private {@link AtpBaseClient} used to perform session management API
63
+ * Private {@link ComAtprotoServerNS} used to perform session management API
54
64
  * calls on the service endpoint. Calls performed by this agent will not be
55
- * authenticated using the user's session.
65
+ * authenticated using the user's session to allow proper manual configuration
66
+ * of the headers when performing session management operations.
56
67
  */
57
- protected api: AtpBaseClient;
68
+ protected server: ComAtprotoServerNS;
58
69
  constructor(serviceUrl: URL, fetch?: typeof globalThis.fetch, persistSession?: AtpPersistSessionHandler | undefined);
70
+ get did(): string | undefined;
71
+ get dispatchUrl(): URL;
72
+ get hasSession(): boolean;
59
73
  /**
60
74
  * Sets a WhatWG "fetch()" function to be used for making HTTP requests.
61
75
  */
62
76
  setFetch(fetch?: typeof globalThis.fetch): void;
77
+ fetchHandler(url: string, init?: RequestInit): Promise<Response>;
63
78
  /**
64
79
  * Create a new account and hydrate its session in this agent.
65
80
  */
@@ -95,5 +110,4 @@ declare class SessionManager {
95
110
  */
96
111
  private _updateApiEndpoint;
97
112
  }
98
- export {};
99
113
  //# sourceMappingURL=atp-agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"atp-agent.d.ts","sourceRoot":"","sources":["../src/atp-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"atp-agent.d.ts","sourceRoot":"","sources":["../src/atp-agent.ts"],"names":[],"mappings":"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"}
package/dist/atp-agent.js CHANGED
@@ -1,116 +1,60 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AtpAgent = void 0;
3
+ exports.CredentialSession = exports.AtpAgent = void 0;
4
4
  const common_web_1 = require("@atproto/common-web");
5
5
  const xrpc_1 = require("@atproto/xrpc");
6
6
  const agent_1 = require("./agent");
7
7
  const client_1 = require("./client");
8
+ const lexicons_1 = require("./client/lexicons");
8
9
  const ReadableStream = globalThis.ReadableStream;
9
10
  /**
10
- * An {@link AtpAgent} extends the {@link Agent} abstract class by
11
- * implementing password based session management.
11
+ * A wrapper around the {@link Agent} class that uses credential based session
12
+ * management. This class also exposes most of the session management methods
13
+ * directly.
14
+ *
15
+ * This class will be deprecated in the near future. Use {@link Agent} directly
16
+ * with a {@link CredentialSession} instead:
17
+ *
18
+ * ```ts
19
+ * const session = new CredentialSession({
20
+ * service: new URL('https://example.com'),
21
+ * })
22
+ *
23
+ * const agent = new Agent(session)
24
+ * ```
12
25
  */
13
26
  class AtpAgent extends agent_1.Agent {
14
27
  constructor(options) {
15
- super(async (url, init) => {
16
- // wait for any active session-refreshes to finish
17
- await this.sessionManager.refreshSessionPromise;
18
- const initialHeaders = (0, xrpc_1.combineHeaders)(init?.headers, this.headers);
19
- const reqInit = { ...init, headers: initialHeaders };
20
- const initialUri = new URL(url, this.dispatchUrl);
21
- const initialReq = new Request(initialUri, reqInit);
22
- const initialToken = this.session?.accessJwt;
23
- if (!initialToken || initialReq.headers.has('authorization')) {
24
- return (0, this.sessionManager.fetch)(initialReq);
25
- }
26
- initialReq.headers.set('authorization', `Bearer ${initialToken}`);
27
- const initialRes = await (0, this.sessionManager.fetch)(initialReq);
28
- if (!this.session?.refreshJwt) {
29
- return initialRes;
30
- }
31
- const isExpiredToken = await isErrorResponse(initialRes, [400], ['ExpiredToken']);
32
- if (!isExpiredToken) {
33
- return initialRes;
34
- }
35
- try {
36
- await this.sessionManager.refreshSession();
37
- }
38
- catch {
39
- return initialRes;
40
- }
41
- if (reqInit?.signal?.aborted) {
42
- return initialRes;
43
- }
44
- // The stream was already consumed. We cannot retry the request. A solution
45
- // would be to tee() the input stream but that would bufferize the entire
46
- // stream in memory which can lead to memory starvation. Instead, we will
47
- // return the original response and let the calling code handle retries.
48
- if (ReadableStream && reqInit.body instanceof ReadableStream) {
49
- return initialRes;
50
- }
51
- // Return initial "ExpiredToken" response if the session was not refreshed.
52
- const updatedToken = this.session?.accessJwt;
53
- if (!updatedToken || updatedToken === initialToken) {
54
- return initialRes;
55
- }
56
- // Make sure the initial request is cancelled to avoid leaking resources
57
- // (NodeJS 👀): https://undici.nodejs.org/#/?id=garbage-collection
58
- await initialRes.body?.cancel();
59
- // We need to re-compute the URI in case the PDS endpoint has changed
60
- const updatedUri = new URL(url, this.dispatchUrl);
61
- const updatedReq = new Request(updatedUri, reqInit);
62
- updatedReq.headers.set('authorization', `Bearer ${updatedToken}`);
63
- return await (0, this.sessionManager.fetch)(updatedReq);
64
- });
65
- Object.defineProperty(this, "headers", {
66
- enumerable: true,
67
- configurable: true,
68
- writable: true,
69
- value: void 0
70
- });
28
+ const sessionManager = options instanceof CredentialSession
29
+ ? options
30
+ : new CredentialSession(new URL(options.service), options.fetch, options.persistSession);
31
+ super(sessionManager);
71
32
  Object.defineProperty(this, "sessionManager", {
72
33
  enumerable: true,
73
34
  configurable: true,
74
35
  writable: true,
75
36
  value: void 0
76
37
  });
77
- if (options instanceof SessionManager) {
78
- this.headers = new Map();
79
- this.sessionManager = options;
80
- }
81
- else {
82
- this.headers = new Map(options.headers);
83
- this.sessionManager = new SessionManager(new URL(options.service), options.fetch, options.persistSession);
38
+ // This assignment is already being done in the super constructor, but we
39
+ // need to do it here to make TypeScript happy.
40
+ this.sessionManager = sessionManager;
41
+ if (!(options instanceof CredentialSession) && options.headers) {
42
+ for (const [key, value] of options.headers) {
43
+ this.setHeader(key, value);
44
+ }
84
45
  }
85
46
  }
86
47
  clone() {
87
48
  return this.copyInto(new AtpAgent(this.sessionManager));
88
49
  }
89
- copyInto(inst) {
90
- if (inst instanceof AtpAgent) {
91
- for (const [key] of inst.headers) {
92
- inst.unsetHeader(key);
93
- }
94
- for (const [key, value] of this.headers) {
95
- inst.setHeader(key, value);
96
- }
97
- }
98
- return super.copyInto(inst);
99
- }
100
- setHeader(key, value) {
101
- this.headers.set(key.toLowerCase(), value);
102
- }
103
- unsetHeader(key) {
104
- this.headers.delete(key.toLowerCase());
105
- }
106
50
  get session() {
107
51
  return this.sessionManager.session;
108
52
  }
109
53
  get hasSession() {
110
- return !!this.session;
54
+ return this.sessionManager.hasSession;
111
55
  }
112
56
  get did() {
113
- return this.session?.did;
57
+ return this.sessionManager.did;
114
58
  }
115
59
  get serviceUrl() {
116
60
  return this.sessionManager.serviceUrl;
@@ -119,7 +63,7 @@ class AtpAgent extends agent_1.Agent {
119
63
  return this.sessionManager.pdsUrl;
120
64
  }
121
65
  get dispatchUrl() {
122
- return this.pdsUrl || this.serviceUrl;
66
+ return this.sessionManager.dispatchUrl;
123
67
  }
124
68
  /** @deprecated use {@link serviceUrl} instead */
125
69
  get service() {
@@ -131,7 +75,7 @@ class AtpAgent extends agent_1.Agent {
131
75
  set persistSession(v) {
132
76
  throw new Error('Cannot set persistSession directly. "persistSession" must be defined in the constructor and can no longer be changed.');
133
77
  }
134
- /** @deprecated This will be removed in OAuthAtpAgent */
78
+ /** @deprecated use {@link AtpAgent.serviceUrl} instead */
135
79
  getServiceUrl() {
136
80
  return this.serviceUrl;
137
81
  }
@@ -150,11 +94,12 @@ class AtpAgent extends agent_1.Agent {
150
94
  }
151
95
  exports.AtpAgent = AtpAgent;
152
96
  /**
153
- * Private class meant to be used by clones of {@link AtpAgent} so they can
154
- * share the same session across multiple instances (with different
155
- * proxying/labelers/headers options).
97
+ * Credentials (username / password) based session manager. Instances of this
98
+ * class will typically be used as the session manager for an {@link AtpAgent}.
99
+ * They can also be used with an {@link XrpcClient}, if you want to use you
100
+ * own Lexicons.
156
101
  */
157
- class SessionManager {
102
+ class CredentialSession {
158
103
  constructor(serviceUrl, fetch = globalThis.fetch, persistSession) {
159
104
  Object.defineProperty(this, "serviceUrl", {
160
105
  enumerable: true,
@@ -193,31 +138,97 @@ class SessionManager {
193
138
  value: void 0
194
139
  });
195
140
  /**
196
- * Private {@link AtpBaseClient} used to perform session management API
141
+ * Private {@link ComAtprotoServerNS} used to perform session management API
197
142
  * calls on the service endpoint. Calls performed by this agent will not be
198
- * authenticated using the user's session.
143
+ * authenticated using the user's session to allow proper manual configuration
144
+ * of the headers when performing session management operations.
199
145
  */
200
- Object.defineProperty(this, "api", {
146
+ Object.defineProperty(this, "server", {
201
147
  enumerable: true,
202
148
  configurable: true,
203
149
  writable: true,
204
- value: new client_1.AtpBaseClient((url, init) => {
150
+ value: new client_1.ComAtprotoServerNS(
151
+ // Note that the use of the codegen "schemas" (to instantiate `this.api`),
152
+ // as well as the use of `ComAtprotoServerNS` will cause this class to
153
+ // reference (way) more code than it actually needs. It is not possible,
154
+ // with the current state of the codegen, to generate a client that only
155
+ // includes the methods that are actually used by this class. This is a
156
+ // known limitation that should be addressed in a future version of the
157
+ // codegen.
158
+ new xrpc_1.XrpcClient((url, init) => {
205
159
  return (0, this.fetch)(new URL(url, this.serviceUrl), init);
206
- })
160
+ }, lexicons_1.schemas))
207
161
  });
208
162
  }
163
+ get did() {
164
+ return this.session?.did;
165
+ }
166
+ get dispatchUrl() {
167
+ return this.pdsUrl || this.serviceUrl;
168
+ }
169
+ get hasSession() {
170
+ return !!this.session;
171
+ }
209
172
  /**
210
173
  * Sets a WhatWG "fetch()" function to be used for making HTTP requests.
211
174
  */
212
175
  setFetch(fetch = globalThis.fetch) {
213
176
  this.fetch = fetch;
214
177
  }
178
+ async fetchHandler(url, init) {
179
+ // wait for any active session-refreshes to finish
180
+ await this.refreshSessionPromise;
181
+ const initialUri = new URL(url, this.dispatchUrl);
182
+ const initialReq = new Request(initialUri, init);
183
+ const initialToken = this.session?.accessJwt;
184
+ if (!initialToken || initialReq.headers.has('authorization')) {
185
+ return (0, this.fetch)(initialReq);
186
+ }
187
+ initialReq.headers.set('authorization', `Bearer ${initialToken}`);
188
+ const initialRes = await (0, this.fetch)(initialReq);
189
+ if (!this.session?.refreshJwt) {
190
+ return initialRes;
191
+ }
192
+ const isExpiredToken = await isErrorResponse(initialRes, [400], ['ExpiredToken']);
193
+ if (!isExpiredToken) {
194
+ return initialRes;
195
+ }
196
+ try {
197
+ await this.refreshSession();
198
+ }
199
+ catch {
200
+ return initialRes;
201
+ }
202
+ if (init?.signal?.aborted) {
203
+ return initialRes;
204
+ }
205
+ // The stream was already consumed. We cannot retry the request. A solution
206
+ // would be to tee() the input stream but that would bufferize the entire
207
+ // stream in memory which can lead to memory starvation. Instead, we will
208
+ // return the original response and let the calling code handle retries.
209
+ if (ReadableStream && init?.body instanceof ReadableStream) {
210
+ return initialRes;
211
+ }
212
+ // Return initial "ExpiredToken" response if the session was not refreshed.
213
+ const updatedToken = this.session?.accessJwt;
214
+ if (!updatedToken || updatedToken === initialToken) {
215
+ return initialRes;
216
+ }
217
+ // Make sure the initial request is cancelled to avoid leaking resources
218
+ // (NodeJS 👀): https://undici.nodejs.org/#/?id=garbage-collection
219
+ await initialRes.body?.cancel();
220
+ // We need to re-compute the URI in case the PDS endpoint has changed
221
+ const updatedUri = new URL(url, this.dispatchUrl);
222
+ const updatedReq = new Request(updatedUri, init);
223
+ updatedReq.headers.set('authorization', `Bearer ${updatedToken}`);
224
+ return await (0, this.fetch)(updatedReq);
225
+ }
215
226
  /**
216
227
  * Create a new account and hydrate its session in this agent.
217
228
  */
218
229
  async createAccount(data, opts) {
219
230
  try {
220
- const res = await this.api.com.atproto.server.createAccount(data, opts);
231
+ const res = await this.server.createAccount(data, opts);
221
232
  this.session = {
222
233
  accessJwt: res.data.accessJwt,
223
234
  refreshJwt: res.data.refreshJwt,
@@ -243,7 +254,7 @@ class SessionManager {
243
254
  */
244
255
  async login(opts) {
245
256
  try {
246
- const res = await this.api.com.atproto.server.createSession({
257
+ const res = await this.server.createSession({
247
258
  identifier: opts.identifier,
248
259
  password: opts.password,
249
260
  authFactorToken: opts.authFactorToken,
@@ -272,7 +283,7 @@ class SessionManager {
272
283
  async logout() {
273
284
  if (this.session) {
274
285
  try {
275
- await this.api.com.atproto.server.deleteSession(undefined, {
286
+ await this.server.deleteSession(undefined, {
276
287
  headers: {
277
288
  authorization: `Bearer ${this.session.accessJwt}`,
278
289
  },
@@ -293,7 +304,7 @@ class SessionManager {
293
304
  async resumeSession(session) {
294
305
  this.session = session;
295
306
  try {
296
- const res = await this.api.com.atproto.server
307
+ const res = await this.server
297
308
  .getSession(undefined, {
298
309
  headers: { authorization: `Bearer ${session.accessJwt}` },
299
310
  })
@@ -302,10 +313,12 @@ class SessionManager {
302
313
  ['ExpiredToken', 'InvalidToken'].includes(err.error) &&
303
314
  session.refreshJwt) {
304
315
  try {
305
- const res = await this.api.com.atproto.server.refreshSession(undefined, { headers: { authorization: `Bearer ${session.refreshJwt}` } });
316
+ const res = await this.server.refreshSession(undefined, {
317
+ headers: { authorization: `Bearer ${session.refreshJwt}` },
318
+ });
306
319
  session.accessJwt = res.data.accessJwt;
307
320
  session.refreshJwt = res.data.refreshJwt;
308
- return this.api.com.atproto.server.getSession(undefined, {
321
+ return this.server.getSession(undefined, {
309
322
  headers: { authorization: `Bearer ${session.accessJwt}` },
310
323
  });
311
324
  }
@@ -361,7 +374,7 @@ class SessionManager {
361
374
  return;
362
375
  }
363
376
  try {
364
- const res = await this.api.com.atproto.server.refreshSession(undefined, {
377
+ const res = await this.server.refreshSession(undefined, {
365
378
  headers: { authorization: `Bearer ${this.session.refreshJwt}` },
366
379
  });
367
380
  // succeeded, update the session
@@ -409,6 +422,7 @@ class SessionManager {
409
422
  }
410
423
  }
411
424
  }
425
+ exports.CredentialSession = CredentialSession;
412
426
  function isErrorObject(v) {
413
427
  return xrpc_1.errorResponseBody.safeParse(v).success;
414
428
  }
@@ -1 +1 @@
1
- {"version":3,"file":"atp-agent.js","sourceRoot":"","sources":["../src/atp-agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"atp-agent.js","sourceRoot":"","sources":["../src/atp-agent.ts"],"names":[],"mappings":"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"}