@atproto/oauth-client-browser 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +325 -0
- package/dist/browser-oauth-client.d.ts +17 -34
- package/dist/browser-oauth-client.d.ts.map +1 -1
- package/dist/browser-oauth-client.js +90 -116
- package/dist/browser-oauth-client.js.map +1 -1
- package/dist/browser-oauth-database.d.ts +1 -3
- package/dist/browser-oauth-database.d.ts.map +1 -1
- package/dist/browser-oauth-database.js +7 -6
- package/dist/browser-oauth-database.js.map +1 -1
- package/dist/browser-runtime-implementation.d.ts +4 -5
- package/dist/browser-runtime-implementation.d.ts.map +1 -1
- package/dist/browser-runtime-implementation.js +22 -29
- package/dist/browser-runtime-implementation.js.map +1 -1
- package/dist/index.d.ts +0 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -7
- package/dist/index.js.map +1 -1
- package/dist/indexed-db/util.d.ts +1 -0
- package/dist/indexed-db/util.d.ts.map +1 -1
- package/dist/indexed-db/util.js +20 -17
- package/dist/indexed-db/util.js.map +1 -1
- package/dist/util.d.ts +14 -0
- package/dist/util.d.ts.map +1 -1
- package/package.json +12 -12
package/README.md
ADDED
@@ -0,0 +1,325 @@
|
|
1
|
+
# ATPROTO OAuth Client for the Browser
|
2
|
+
|
3
|
+
This package provides an OAuth bases `@atproto/api` agent interface for the
|
4
|
+
browser. It implements all the OAuth features required by [ATPROTO] (PKCE, DPoP,
|
5
|
+
etc.).
|
6
|
+
|
7
|
+
`@atproto/oauth-client-browser` is destined to front-end applications that do
|
8
|
+
not have a back-end server to manage OAuth sessions.
|
9
|
+
|
10
|
+
> [!IMPORTANT]
|
11
|
+
>
|
12
|
+
> When a backend server is available, it is recommended to use
|
13
|
+
> [`@atproto/oauth-client-node`](https://www.npmjs.com/package/@atproto/oauth-client-node)
|
14
|
+
> to manage OAuth sessions from the server side, and use a session cookie to map
|
15
|
+
> the OAuth session to the front-end. Because this mechanism allows the backend
|
16
|
+
> to invalidate OAuth credentials at scale, this method is more secure than
|
17
|
+
> managing OAuth sessions from the front-end directly. Thanks to the added
|
18
|
+
> security, the OAuth server will provide longer lived tokens when issued to a
|
19
|
+
> BFF (Backend-for-frontend).
|
20
|
+
|
21
|
+
## Setup
|
22
|
+
|
23
|
+
### Client ID
|
24
|
+
|
25
|
+
The `client_id` is what identifies your application to the OAuth server. It is
|
26
|
+
used to fetch the client metadata, and to initiate the OAuth flow. The
|
27
|
+
`client_id` must be a URL that points to the [client
|
28
|
+
metadata](#client-metadata).
|
29
|
+
|
30
|
+
### Client Metadata
|
31
|
+
|
32
|
+
Your OAuth client metadata should be hosted at a URL that corresponds to the
|
33
|
+
`client_id` of your application. This URL should return a JSON object with the
|
34
|
+
client metadata. The client metadata should be configured according to the
|
35
|
+
needs of your application, and must respect the [ATPROTO] spec.
|
36
|
+
|
37
|
+
```json
|
38
|
+
{
|
39
|
+
// Must be the same URL as the one used to obtain this JSON object
|
40
|
+
"client_id": "https://my-app.com/client-metadata.json",
|
41
|
+
"client_name": "My App",
|
42
|
+
"client_uri": "https://my-app.com",
|
43
|
+
"logo_uri": "https://my-app.com/logo.png",
|
44
|
+
"tos_uri": "https://my-app.com/tos",
|
45
|
+
"policy_uri": "https://my-app.com/policy",
|
46
|
+
"redirect_uris": ["https://my-app.com/callback"],
|
47
|
+
"scope": "profile email offline_access",
|
48
|
+
"grant_types": ["authorization_code", "refresh_token"],
|
49
|
+
"response_types": ["code"],
|
50
|
+
"token_endpoint_auth_method": "none",
|
51
|
+
"application_type": "web",
|
52
|
+
"dpop_bound_access_tokens": true
|
53
|
+
}
|
54
|
+
```
|
55
|
+
|
56
|
+
The client metadata is used to instantiate an OAuth client. There are two ways
|
57
|
+
of doing this:
|
58
|
+
|
59
|
+
1. Either you "burn" the metadata into your application:
|
60
|
+
|
61
|
+
```typescript
|
62
|
+
import { BrowserOAuthClient } from '@atproto/oauth-client-browser'
|
63
|
+
|
64
|
+
const client = new BrowserOAuthClient({
|
65
|
+
clientMetadata: {
|
66
|
+
// Exact same JSON object as the one returned by the client_id URL
|
67
|
+
},
|
68
|
+
// ...
|
69
|
+
})
|
70
|
+
```
|
71
|
+
|
72
|
+
2. Or you load it asynchronously from the URL:
|
73
|
+
|
74
|
+
```typescript
|
75
|
+
import { OAuthClient } from '@atproto/oauth-client-browser'
|
76
|
+
|
77
|
+
const client = await BrowserOAuthClient.load({
|
78
|
+
clientId: 'https://my-app.com/client-metadata.json',
|
79
|
+
// ...
|
80
|
+
})
|
81
|
+
```
|
82
|
+
|
83
|
+
If performances are important to you, it is recommended to burn the metadata
|
84
|
+
into the script. Server side rendering techniques can also be used to inject the
|
85
|
+
metadata into the script at runtime.
|
86
|
+
|
87
|
+
### Handle Resolver
|
88
|
+
|
89
|
+
Whenever you application will initiate an OAuth flow, it will start to resolve
|
90
|
+
the (user provider) APTROTO handle of the user. This is typically done though a
|
91
|
+
DNS request. However, since DNS resolution is not available in the browser, a
|
92
|
+
backend service must be provided.
|
93
|
+
|
94
|
+
> [!CAUTION]
|
95
|
+
>
|
96
|
+
> Not using a handle resolver service hosted by you will leak the user's IP
|
97
|
+
> address (and associated ATPROTO handle) to any service you rely on to perform
|
98
|
+
> the resolution. This is a privacy concern, that you should be aware of, and
|
99
|
+
> that you **must** warn your users about. Bluesky declines any responsibility
|
100
|
+
> in case of misusage of the handle resolver service.
|
101
|
+
|
102
|
+
If a `string` or `URL` object is used as `handleResolver`, the library will
|
103
|
+
expect this value to be the URL of a service running the
|
104
|
+
`com.atproto.identity.resolveHandle` XRPC Lexicon method.
|
105
|
+
|
106
|
+
> [!TIP]
|
107
|
+
>
|
108
|
+
> If you host your own PDS, you can use it's URL as a handle resolver.
|
109
|
+
|
110
|
+
```typescript
|
111
|
+
import { BrowserOAuthClient } from '@atproto/oauth-client-browser'
|
112
|
+
|
113
|
+
const client = new BrowserOAuthClient({
|
114
|
+
handleResolver: 'https://my-pds.example.com',
|
115
|
+
// ...
|
116
|
+
})
|
117
|
+
```
|
118
|
+
|
119
|
+
Alternatively, if a "DNS over HTTPS" (DoH) service is available, it can be used
|
120
|
+
to resolve the handle. In this case, the `handleResolver` should be initialized
|
121
|
+
with a `AtprotoDohHandleResolver` instance:
|
122
|
+
|
123
|
+
```typescript
|
124
|
+
import {
|
125
|
+
BrowserOAuthClient,
|
126
|
+
AtprotoDohHandleResolver,
|
127
|
+
} from '@atproto/oauth-client-browser'
|
128
|
+
|
129
|
+
const client = new BrowserOAuthClient({
|
130
|
+
handleResolver: new AtprotoDohHandleResolver('https://my-doh.example.com'),
|
131
|
+
// ...
|
132
|
+
})
|
133
|
+
```
|
134
|
+
|
135
|
+
### Other configuration options
|
136
|
+
|
137
|
+
In addition to [Client Metadata](#client-metadata) and [Handle
|
138
|
+
Resolver](#handle-resolver), the `BrowserOAuthClient` constructor accepts the
|
139
|
+
following optional configuration options:
|
140
|
+
|
141
|
+
- `fetch`: A custom wrapper around the `fetch` function. This can be useful to
|
142
|
+
add custom headers, logging, or to use a different fetch implementation.
|
143
|
+
Defaults to `window.fetch`.
|
144
|
+
|
145
|
+
- `responseMode`: `query` or `fragment`. Determines how the authorization
|
146
|
+
response is returned to the client. Defaults to `fragment`.
|
147
|
+
|
148
|
+
- `plcDirectoryUrl`: The URL of the PLC directory. This will typically not be
|
149
|
+
needed unless you run an entire ATPROTO stack locally. Defaults to
|
150
|
+
`https://plc.directory`.
|
151
|
+
|
152
|
+
## Usage
|
153
|
+
|
154
|
+
Once the `client` is setup, it can be used to initiate & manage OAuth sessions.
|
155
|
+
|
156
|
+
### Initializing the client
|
157
|
+
|
158
|
+
The client will manage the sessions for you. In order to do so, it must first
|
159
|
+
initialize itself. Note that this operation must be performed once (and **only
|
160
|
+
once**) whenever the web app is loaded.
|
161
|
+
|
162
|
+
```typescript
|
163
|
+
const result: undefined | { agent: OAuthAgent; state?: string } =
|
164
|
+
await client.init()
|
165
|
+
|
166
|
+
if (result) {
|
167
|
+
const { agent, state } = result
|
168
|
+
if (state != null) {
|
169
|
+
console.log(`${agent.sub} was successfully authenticated (state: ${state})`)
|
170
|
+
} else {
|
171
|
+
console.log(`${agent.sub} was restored (last active session)`)
|
172
|
+
}
|
173
|
+
}
|
174
|
+
```
|
175
|
+
|
176
|
+
The return value can be used to determine if the client was able to restore the
|
177
|
+
last used session (`agent` is defined) or if the current navigation is the
|
178
|
+
result of an authorization redirect (both `agent` and `state` are defined).
|
179
|
+
|
180
|
+
### Initiating an OAuth flow
|
181
|
+
|
182
|
+
In order to initiate an OAuth flow, we must fist determine which PDS the
|
183
|
+
authentication flow will be initiated from. This means that the user must
|
184
|
+
provide one of the following information:
|
185
|
+
|
186
|
+
- The user's ATPROTO handle
|
187
|
+
- The user's ATPROTO DID
|
188
|
+
- A PDS/Entryway URL
|
189
|
+
|
190
|
+
Using that information, the OAuthClient will resolve all the needed information
|
191
|
+
to initiate the OAuth flow, and redirect the user to the OAuth server.
|
192
|
+
|
193
|
+
```typescript
|
194
|
+
try {
|
195
|
+
await client.signIn('my.handle.com', {
|
196
|
+
state: 'some value needed later',
|
197
|
+
prompt: 'none', // Attempt to sign in without user interaction (SSO)
|
198
|
+
ui_locales: 'fr-CA fr en', // Only supported by some OAuth servers (requires OpenID Connect support + i18n support)
|
199
|
+
signal: new AbortController().signal, // Optional, allows to cancel the sign in (and destroy the pending authorization, for better security)
|
200
|
+
})
|
201
|
+
|
202
|
+
console.log('Never executed')
|
203
|
+
} catch (err) {
|
204
|
+
console.log('The user aborted the authorization process by navigating "back"')
|
205
|
+
}
|
206
|
+
```
|
207
|
+
|
208
|
+
The returned promise will never resolve (because the user will be redirected to
|
209
|
+
the OAuth server). The promise will reject if the user cancels the sign in
|
210
|
+
(using an `AbortSignal`), or if the user navigates back from the OAuth server
|
211
|
+
(because of browser's back-forward cache).
|
212
|
+
|
213
|
+
### Handling the OAuth response
|
214
|
+
|
215
|
+
When the user is redirected back to the application, the OAuth response will be
|
216
|
+
available in the URL. The `BrowserOAuthClient` will automatically detect the
|
217
|
+
response and handle it when `client.init()` is called.
|
218
|
+
|
219
|
+
### Restoring a session
|
220
|
+
|
221
|
+
The client keeps an internal store of all the sessions that it manages.
|
222
|
+
Regardless of the agent that was returned from the `client.init()` call,
|
223
|
+
any other session can be loaded into a new agent using the `client.restore()`
|
224
|
+
method.
|
225
|
+
|
226
|
+
```ts
|
227
|
+
const aliceAgent = await client.restore('did:plc:alice')
|
228
|
+
const bobAgent = await client.restore('did:plc:bob')
|
229
|
+
```
|
230
|
+
|
231
|
+
In its current form, the client does not expose methods to list all sessions
|
232
|
+
in its store. The app will have to keep track of those itself.
|
233
|
+
|
234
|
+
### Watching for session invalidation
|
235
|
+
|
236
|
+
The client will emit events whenever a session becomes unavailable, allowing to
|
237
|
+
trigger global behaviors (e.g. show the login page).
|
238
|
+
|
239
|
+
```ts
|
240
|
+
client.addEventListener(
|
241
|
+
'deleted',
|
242
|
+
(
|
243
|
+
event: CustomEvent<{
|
244
|
+
sub: string
|
245
|
+
cause: TokenRefreshError | TokenRevokedError | TokenInvalidError
|
246
|
+
}>,
|
247
|
+
) => {
|
248
|
+
const { sub, cause } = event.detail
|
249
|
+
console.error(`Session for ${sub} is no longer available (cause: ${cause})`)
|
250
|
+
},
|
251
|
+
)
|
252
|
+
```
|
253
|
+
|
254
|
+
## Usage with `@atproto/api`
|
255
|
+
|
256
|
+
The `@atproto/api` package provides a way to interact with the `com.atproto` and
|
257
|
+
`app.bsky` XRPC lexicons through the `ApiAgent` interface. The `agent` returned
|
258
|
+
by the `BrowserOAuthClient` extend the `ApiAgent` class, allowing to use the
|
259
|
+
`BrowserOAuthClient` as a regular `ApiAgent` (akin to `AtpAgent` class
|
260
|
+
instances).
|
261
|
+
|
262
|
+
```typescript
|
263
|
+
const aliceAgent = await client.restore('did:plc:alice')
|
264
|
+
```
|
265
|
+
|
266
|
+
Any refresh of the credentials will happen under the hood, and the new tokens
|
267
|
+
will be saved in the session store (in the browser's indexed DB).
|
268
|
+
|
269
|
+
## Advances use-cases
|
270
|
+
|
271
|
+
### Using in development (localhost)
|
272
|
+
|
273
|
+
The OAuth server must be able to fetch the `client_metadata` object. The best
|
274
|
+
way to do this if you didn't already deployed your app is to use a tunneling
|
275
|
+
service like [ngrok](https://ngrok.com/).
|
276
|
+
|
277
|
+
The `client_id` will then be something like
|
278
|
+
`https://<your-ngrok-id>.ngrok.io/<path_to_your_client_metadata>`.
|
279
|
+
|
280
|
+
There is however a special case for loopback clients. A loopback client is a
|
281
|
+
client that runs on `localhost`. In this case, the OAuth server will not be able
|
282
|
+
to fetch the `client_metadata` object because `localhost` is not accessible from
|
283
|
+
the outside. To work around this, ATPROTO OAuth server are required to support
|
284
|
+
this case by providing an hard coded `client_metadata` object for the client.
|
285
|
+
|
286
|
+
This has several restrictions:
|
287
|
+
|
288
|
+
1. There is no way of configuring the client metadata (name, logo, etc.)
|
289
|
+
2. The validity of the refresh tokens (if any) will be very limited (typically 1
|
290
|
+
day)
|
291
|
+
3. Silent-sign-in will not be allowed
|
292
|
+
4. Only `http://127.0.0.1:<any_port>` and `http://[::1]:<any_port>` can be used
|
293
|
+
as origin for your app, and **not** `http://localhost:<any_port>`. This
|
294
|
+
library will automatically redirect the user to an IP based origin
|
295
|
+
(`http://127.0.0.1:<port>`) when visiting an origin with `localhost`.
|
296
|
+
|
297
|
+
Using a loopback client is only recommended for development purposes. A loopback
|
298
|
+
client can be instantiated like this:
|
299
|
+
|
300
|
+
```typescript
|
301
|
+
import { BrowserOAuthClient } from '@atproto/oauth-client-browser'
|
302
|
+
|
303
|
+
const client = new BrowserOAuthClient({
|
304
|
+
handleResolver: 'https://bsky.social',
|
305
|
+
// Only works if the current origin is a loopback address:
|
306
|
+
clientMetadata: undefined,
|
307
|
+
})
|
308
|
+
```
|
309
|
+
|
310
|
+
If you need to use a special `redirect_uris`, you can configure them like this:
|
311
|
+
|
312
|
+
```typescript
|
313
|
+
import { BrowserOAuthClient } from '@atproto/oauth-client-browser'
|
314
|
+
|
315
|
+
const client = new BrowserOAuthClient({
|
316
|
+
handleResolver: 'https://bsky.social',
|
317
|
+
// Note that the origin of the "client_id" URL must be "http://localhost" when
|
318
|
+
// using this configuration, regardless of the actual hostname ("127.0.0.1" or
|
319
|
+
// "[::1]"), port or pathname. Only the `redirect_uris` must contain the
|
320
|
+
// actual url that will be used to redirect the user back to the application.
|
321
|
+
clientMetadata: `http://localhost?redirect_uri=${encodeURIComponent('http://127.0.0.1:8080/callback')}`,
|
322
|
+
})
|
323
|
+
```
|
324
|
+
|
325
|
+
[ATPROTO]: https://atproto.com/ 'AT Protocol'
|
@@ -1,58 +1,41 @@
|
|
1
1
|
/// <reference types="node" />
|
2
2
|
import { HandleResolver } from '@atproto-labs/handle-resolver';
|
3
|
-
import { AuthorizeOptions, OAuthAgent, OAuthClient
|
4
|
-
import {
|
5
|
-
import { DatabaseStore } from './browser-oauth-database.js';
|
3
|
+
import { AuthorizeOptions, Fetch, OAuthAgent, OAuthClient } from '@atproto/oauth-client';
|
4
|
+
import { OAuthClientIdDiscoverable, OAuthClientIdLoopback, OAuthClientMetadataInput } from '@atproto/oauth-types';
|
6
5
|
export type BrowserOAuthClientOptions = {
|
7
6
|
clientMetadata?: OAuthClientMetadataInput;
|
8
|
-
handleResolver
|
9
|
-
responseMode?:
|
7
|
+
handleResolver: HandleResolver | string | URL;
|
8
|
+
responseMode?: 'query' | 'fragment';
|
10
9
|
plcDirectoryUrl?: string | URL;
|
11
|
-
|
12
|
-
fetch?: typeof globalThis.fetch;
|
10
|
+
fetch?: Fetch;
|
13
11
|
};
|
14
|
-
type EventDetails = {
|
15
|
-
updated: TokenSet;
|
16
|
-
deleted: {
|
17
|
-
sub: string;
|
18
|
-
};
|
19
|
-
};
|
20
|
-
type CustomEventListener<T extends keyof EventDetails = keyof EventDetails> = (event: CustomEvent<EventDetails[T]>) => void;
|
21
|
-
type WrappedSessionStore = Disposable & DatabaseStore<Session>;
|
22
12
|
export type BrowserOAuthClientLoadOptions = Omit<BrowserOAuthClientOptions, 'clientMetadata'> & {
|
23
|
-
clientId:
|
13
|
+
clientId: OAuthClientIdDiscoverable | OAuthClientIdLoopback;
|
24
14
|
signal?: AbortSignal;
|
25
15
|
};
|
26
|
-
export declare class BrowserOAuthClient extends OAuthClient {
|
16
|
+
export declare class BrowserOAuthClient extends OAuthClient implements Disposable {
|
27
17
|
static load({ clientId, ...options }: BrowserOAuthClientLoadOptions): Promise<BrowserOAuthClient>;
|
28
|
-
readonly
|
29
|
-
|
30
|
-
|
31
|
-
constructor({ clientMetadata, handleResolver, responseMode, plcDirectoryUrl, crypto, fetch, }?: BrowserOAuthClientOptions);
|
32
|
-
addEventListener<T extends keyof EventDetails>(type: T, callback: CustomEventListener<T> | null, options?: AddEventListenerOptions | boolean): void;
|
33
|
-
removeEventListener(type: string, callback: CustomEventListener | null, options?: EventListenerOptions | boolean): void;
|
34
|
-
restoreAll(): Promise<{
|
35
|
-
[k: string]: OAuthAgent;
|
36
|
-
}>;
|
37
|
-
init(sub?: string, refresh?: boolean): Promise<{
|
18
|
+
readonly [Symbol.dispose]: () => void;
|
19
|
+
constructor({ handleResolver, clientMetadata, responseMode, plcDirectoryUrl, fetch, }: BrowserOAuthClientOptions);
|
20
|
+
init(refresh?: boolean): Promise<{
|
38
21
|
agent: OAuthAgent;
|
39
22
|
state: string | null;
|
40
23
|
} | {
|
41
24
|
agent: OAuthAgent;
|
42
25
|
} | undefined>;
|
43
|
-
|
44
|
-
|
26
|
+
restore(sub: string, refresh?: boolean): Promise<OAuthAgent>;
|
27
|
+
revoke(sub: string): Promise<void>;
|
28
|
+
signIn(input: string, options: AuthorizeOptions & {
|
29
|
+
display: 'popup';
|
45
30
|
}): Promise<OAuthAgent>;
|
31
|
+
signIn(input: string, options?: AuthorizeOptions): Promise<never>;
|
46
32
|
signInRedirect(input: string, options?: AuthorizeOptions): Promise<never>;
|
47
|
-
signInPopup(input: string, options?: Omit<AuthorizeOptions, 'state'>
|
48
|
-
signal?: AbortSignal;
|
49
|
-
}): Promise<OAuthAgent>;
|
33
|
+
signInPopup(input: string, options?: Omit<AuthorizeOptions, 'state'>): Promise<OAuthAgent>;
|
50
34
|
private readCallbackParams;
|
51
35
|
signInCallback(): Promise<{
|
52
36
|
agent: OAuthAgent;
|
53
37
|
state: string | null;
|
54
38
|
} | null>;
|
55
|
-
|
39
|
+
dispose(): void;
|
56
40
|
}
|
57
|
-
export {};
|
58
41
|
//# sourceMappingURL=browser-oauth-client.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"browser-oauth-client.d.ts","sourceRoot":"","sources":["../src/browser-oauth-client.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EACL,gBAAgB,
|
1
|
+
{"version":3,"file":"browser-oauth-client.d.ts","sourceRoot":"","sources":["../src/browser-oauth-client.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EACL,gBAAgB,EAEhB,KAAK,EACL,UAAU,EAEV,WAAW,EAEZ,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAIL,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,sBAAsB,CAAA;AAO7B,MAAM,MAAM,yBAAyB,GAAG;IACtC,cAAc,CAAC,EAAE,wBAAwB,CAAA;IACzC,cAAc,EAAE,cAAc,GAAG,MAAM,GAAG,GAAG,CAAA;IAC7C,YAAY,CAAC,EAAE,OAAO,GAAG,UAAU,CAAA;IACnC,eAAe,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;IAE9B,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,CAAA;AA8BD,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAC9C,yBAAyB,EACzB,gBAAgB,CACjB,GAAG;IACF,QAAQ,EAAE,yBAAyB,GAAG,qBAAqB,CAAA;IAC3D,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,CAAA;AAED,qBAAa,kBAAmB,SAAQ,WAAY,YAAW,UAAU;WAC1D,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,EAAE,6BAA6B;IAezE,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;gBAEzB,EACV,cAAc,EACd,cAEC,EAED,YAAyB,EACzB,eAA2B,EAC3B,KAAiB,GAClB,EAAE,yBAAyB;IAyEtB,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO;;;;;;IAqBtB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;IAMtC,MAAM,CAAC,GAAG,EAAE,MAAM;IAKxB,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,gBAAgB,GAAG;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,GAC/C,OAAO,CAAC,UAAU,CAAC;IACtB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC;IAS3D,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,KAAK,CAAC;IAqBX,WAAW,CACf,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GACxC,OAAO,CAAC,UAAU,CAAC;IA+EtB,OAAO,CAAC,kBAAkB;IAuBpB,cAAc;;;;IAqFpB,OAAO;CAGR"}
|
@@ -1,4 +1,5 @@
|
|
1
1
|
"use strict";
|
2
|
+
var _a;
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
4
|
exports.BrowserOAuthClient = void 0;
|
4
5
|
const oauth_client_1 = require("@atproto/oauth-client");
|
@@ -7,97 +8,47 @@ const browser_oauth_database_js_1 = require("./browser-oauth-database.js");
|
|
7
8
|
const browser_runtime_implementation_js_1 = require("./browser-runtime-implementation.js");
|
8
9
|
const errors_js_1 = require("./errors.js");
|
9
10
|
const util_js_1 = require("./util.js");
|
10
|
-
const initEvent = (type, detail) => new CustomEvent(type, { detail, cancelable: false, bubbles: false });
|
11
11
|
const NAMESPACE = `@@atproto/oauth-client-browser`;
|
12
12
|
//- Popup channel
|
13
13
|
const POPUP_CHANNEL_NAME = `${NAMESPACE}(popup-channel)`;
|
14
14
|
const POPUP_STATE_PREFIX = `${NAMESPACE}(popup-state):`;
|
15
|
-
|
16
|
-
const deletedChannel = new BroadcastChannel(`${NAMESPACE}(deleted-channel)`);
|
17
|
-
const wrapSessionStore = (dbStore, eventTarget) => {
|
18
|
-
const store = {
|
19
|
-
getKeys: async () => {
|
20
|
-
return dbStore.getKeys();
|
21
|
-
},
|
22
|
-
get: async (sub) => {
|
23
|
-
return dbStore.get(sub);
|
24
|
-
},
|
25
|
-
set: async (sub, session) => {
|
26
|
-
await dbStore.set(sub, session);
|
27
|
-
eventTarget.dispatchEvent(initEvent('updated', session.tokenSet));
|
28
|
-
},
|
29
|
-
del: async (sub) => {
|
30
|
-
await dbStore.del(sub);
|
31
|
-
deletedChannel.postMessage(sub);
|
32
|
-
eventTarget.dispatchEvent(initEvent('deleted', { sub }));
|
33
|
-
},
|
34
|
-
clear: async () => {
|
35
|
-
await dbStore.clear?.();
|
36
|
-
},
|
37
|
-
[Symbol.dispose]: () => {
|
38
|
-
deletedChannel.removeEventListener('message', onMessage);
|
39
|
-
},
|
40
|
-
};
|
41
|
-
const onMessage = (event) => {
|
42
|
-
// Listen for "deleted" events from other windows. The content will already
|
43
|
-
// have been deleted from the store so we only need to notify the listeners.
|
44
|
-
if (event.source !== window) {
|
45
|
-
const sub = event.data;
|
46
|
-
eventTarget.dispatchEvent(initEvent('deleted', { sub }));
|
47
|
-
}
|
48
|
-
};
|
49
|
-
deletedChannel.addEventListener('message', onMessage);
|
50
|
-
return store;
|
51
|
-
};
|
15
|
+
const syncChannel = new BroadcastChannel(`${NAMESPACE}(synchronization-channel)`);
|
52
16
|
class BrowserOAuthClient extends oauth_client_1.OAuthClient {
|
53
17
|
static async load({ clientId, ...options }) {
|
54
18
|
if ((0, oauth_types_1.isOAuthClientIdLoopback)(clientId)) {
|
55
|
-
|
56
|
-
|
57
|
-
...options,
|
58
|
-
});
|
19
|
+
const clientMetadata = (0, oauth_types_1.atprotoLoopbackClientMetadata)(clientId);
|
20
|
+
return new BrowserOAuthClient({ clientMetadata, ...options });
|
59
21
|
}
|
60
22
|
else if ((0, oauth_types_1.isOAuthClientIdDiscoverable)(clientId)) {
|
61
|
-
const
|
62
|
-
|
63
|
-
redirect: 'error',
|
64
|
-
signal: options.signal,
|
65
|
-
});
|
66
|
-
const response = await fetch(request);
|
67
|
-
if (response.status !== 200) {
|
68
|
-
throw new TypeError(`Failed to fetch client metadata: ${response.status}`);
|
69
|
-
}
|
70
|
-
const mime = response.headers.get('content-type')?.split(';')[0].trim();
|
71
|
-
if (mime !== 'application/json') {
|
72
|
-
throw new TypeError(`Invalid content type: ${mime}`);
|
73
|
-
}
|
74
|
-
const json = await response.json();
|
75
|
-
options.signal?.throwIfAborted();
|
76
|
-
return new BrowserOAuthClient({
|
77
|
-
clientMetadata: oauth_types_1.oauthClientMetadataSchema.parse(json),
|
23
|
+
const clientMetadata = await oauth_client_1.OAuthClient.fetchMetadata({
|
24
|
+
clientId,
|
78
25
|
...options,
|
79
26
|
});
|
27
|
+
return new BrowserOAuthClient({ clientMetadata, ...options });
|
80
28
|
}
|
81
29
|
else {
|
82
30
|
throw new TypeError(`Invalid client id: ${clientId}`);
|
83
31
|
}
|
84
32
|
}
|
85
|
-
constructor({
|
86
|
-
// "fragment" is safer as
|
87
|
-
responseMode = 'fragment', plcDirectoryUrl =
|
33
|
+
constructor({ handleResolver, clientMetadata = (0, oauth_types_1.atprotoLoopbackClientMetadata)((0, util_js_1.buildLoopbackClientId)(window.location)),
|
34
|
+
// "fragment" is a safer default as the query params will not be sent to the server
|
35
|
+
responseMode = 'fragment', plcDirectoryUrl = undefined, fetch = undefined, }) {
|
36
|
+
if (!globalThis.crypto?.subtle) {
|
37
|
+
throw new Error('WebCrypto API is required');
|
38
|
+
}
|
39
|
+
if (!['query', 'fragment'].includes(responseMode)) {
|
40
|
+
// Make sure "form_post" is not used as it is not supported in the browser
|
41
|
+
throw new TypeError(`Invalid response mode: ${responseMode}`);
|
42
|
+
}
|
88
43
|
const database = new browser_oauth_database_js_1.BrowserOAuthDatabase();
|
89
|
-
const eventTarget = new EventTarget();
|
90
|
-
const sessionStore = wrapSessionStore(database.getSessionStore(), eventTarget);
|
91
44
|
super({
|
92
|
-
clientMetadata
|
93
|
-
? (0, oauth_types_1.atprotoLoopbackClientMetadata)((0, util_js_1.buildLoopbackClientId)(window.location))
|
94
|
-
: clientMetadata,
|
45
|
+
clientMetadata,
|
95
46
|
responseMode,
|
96
47
|
fetch,
|
97
|
-
runtimeImplementation: new browser_runtime_implementation_js_1.BrowserRuntimeImplementation(crypto),
|
98
48
|
plcDirectoryUrl,
|
99
49
|
handleResolver,
|
100
|
-
|
50
|
+
runtimeImplementation: new browser_runtime_implementation_js_1.BrowserRuntimeImplementation(),
|
51
|
+
sessionStore: database.getSessionStore(),
|
101
52
|
stateStore: database.getStateStore(),
|
102
53
|
didCache: database.getDidCache(),
|
103
54
|
handleCache: database.getHandleCache(),
|
@@ -105,49 +56,70 @@ class BrowserOAuthClient extends oauth_client_1.OAuthClient {
|
|
105
56
|
authorizationServerMetadataCache: database.getAuthorizationServerMetadataCache(),
|
106
57
|
protectedResourceMetadataCache: database.getProtectedResourceMetadataCache(),
|
107
58
|
});
|
108
|
-
Object.defineProperty(this,
|
59
|
+
Object.defineProperty(this, _a, {
|
109
60
|
enumerable: true,
|
110
61
|
configurable: true,
|
111
62
|
writable: true,
|
112
63
|
value: void 0
|
113
64
|
});
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
65
|
+
// TODO: replace with AsyncDisposableStack once they are standardized
|
66
|
+
const ac = new AbortController();
|
67
|
+
const { signal } = ac;
|
68
|
+
this[Symbol.dispose] = () => ac.abort();
|
69
|
+
signal.addEventListener('abort', () => database[Symbol.asyncDispose](), {
|
70
|
+
once: true,
|
119
71
|
});
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
72
|
+
// Keep track of the current session
|
73
|
+
this.addEventListener('deleted', ({ detail: { sub } }) => {
|
74
|
+
if (localStorage.getItem(`${NAMESPACE}(sub)`) === sub) {
|
75
|
+
localStorage.removeItem(`${NAMESPACE}(sub)`);
|
76
|
+
}
|
125
77
|
});
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
78
|
+
// Session synchronization across tabs
|
79
|
+
for (const type of ['deleted', 'updated']) {
|
80
|
+
this.sessionGetter.addEventListener(type, ({ detail }) => {
|
81
|
+
// Notify other tabs when a session is deleted or updated
|
82
|
+
syncChannel.postMessage([type, detail]);
|
83
|
+
});
|
84
|
+
}
|
85
|
+
syncChannel.addEventListener('message', (event) => {
|
86
|
+
if (event.source !== window) {
|
87
|
+
// Trigger listeners when an event is received from another tab
|
88
|
+
const [type, detail] = event.data;
|
89
|
+
this.dispatchCustomEvent(type, detail);
|
90
|
+
}
|
91
|
+
},
|
92
|
+
// Remove the listener when the client is disposed
|
93
|
+
{ signal });
|
140
94
|
}
|
141
|
-
async init(
|
95
|
+
async init(refresh) {
|
96
|
+
await fixLocation(this.clientMetadata);
|
142
97
|
const signInResult = await this.signInCallback();
|
143
98
|
if (signInResult) {
|
99
|
+
localStorage.setItem(`${NAMESPACE}(sub)`, signInResult.agent.sub);
|
144
100
|
return signInResult;
|
145
101
|
}
|
146
|
-
|
147
|
-
|
148
|
-
|
102
|
+
const sub = localStorage.getItem(`${NAMESPACE}(sub)`);
|
103
|
+
if (sub) {
|
104
|
+
try {
|
105
|
+
const agent = await this.restore(sub, refresh);
|
106
|
+
return { agent };
|
107
|
+
}
|
108
|
+
catch (err) {
|
109
|
+
localStorage.removeItem(`${NAMESPACE}(sub)`);
|
110
|
+
throw err;
|
111
|
+
}
|
149
112
|
}
|
150
113
|
}
|
114
|
+
async restore(sub, refresh) {
|
115
|
+
const agent = await super.restore(sub, refresh);
|
116
|
+
localStorage.setItem(`${NAMESPACE}(sub)`, agent.sub);
|
117
|
+
return agent;
|
118
|
+
}
|
119
|
+
async revoke(sub) {
|
120
|
+
localStorage.removeItem(`${NAMESPACE}(sub)`);
|
121
|
+
return super.revoke(sub);
|
122
|
+
}
|
151
123
|
async signIn(input, options) {
|
152
124
|
if (options?.display === 'popup') {
|
153
125
|
return this.signInPopup(input, options);
|
@@ -161,7 +133,10 @@ class BrowserOAuthClient extends oauth_client_1.OAuthClient {
|
|
161
133
|
window.location.href = url.href;
|
162
134
|
// back-forward cache
|
163
135
|
return new Promise((resolve, reject) => {
|
164
|
-
setTimeout(() =>
|
136
|
+
setTimeout((err) => {
|
137
|
+
// Take the opportunity to proactively cancel the pending request
|
138
|
+
this.abortRequest(url).then(() => reject(err), (reason) => reject(new AggregateError([err, reason])));
|
139
|
+
}, 5e3, new Error('User navigated back'));
|
165
140
|
});
|
166
141
|
}
|
167
142
|
async signInPopup(input, options) {
|
@@ -212,7 +187,7 @@ class BrowserOAuthClient extends oauth_client_1.OAuthClient {
|
|
212
187
|
const sub = result.value;
|
213
188
|
try {
|
214
189
|
options?.signal?.throwIfAborted();
|
215
|
-
resolve(await this.restore(sub));
|
190
|
+
resolve(await this.restore(sub, false));
|
216
191
|
}
|
217
192
|
catch (err) {
|
218
193
|
reject(err);
|
@@ -250,7 +225,8 @@ class BrowserOAuthClient extends oauth_client_1.OAuthClient {
|
|
250
225
|
// Replace the current history entry without the params (this will prevent
|
251
226
|
// the following code to run again if the user refreshes the page)
|
252
227
|
history.replaceState(null, '', location.pathname);
|
253
|
-
|
228
|
+
// Utility function to send the result of the popup to the parent window
|
229
|
+
const sendPopupResult = (message) => {
|
254
230
|
const popupChannel = new BroadcastChannel(POPUP_CHANNEL_NAME);
|
255
231
|
return new Promise((resolve) => {
|
256
232
|
const cleanup = (result) => {
|
@@ -259,9 +235,6 @@ class BrowserOAuthClient extends oauth_client_1.OAuthClient {
|
|
259
235
|
popupChannel.close();
|
260
236
|
resolve(result);
|
261
237
|
};
|
262
|
-
const onTimeout = () => {
|
263
|
-
cleanup(false);
|
264
|
-
};
|
265
238
|
const onMessage = ({ data }) => {
|
266
239
|
if ('ack' in data && message.key === data.key)
|
267
240
|
cleanup(true);
|
@@ -269,13 +242,13 @@ class BrowserOAuthClient extends oauth_client_1.OAuthClient {
|
|
269
242
|
popupChannel.addEventListener('message', onMessage);
|
270
243
|
popupChannel.postMessage(message);
|
271
244
|
// Receiving of "ack" should be very fast, giving it 500 ms anyway
|
272
|
-
const timer = setTimeout(
|
245
|
+
const timer = setTimeout(cleanup, 500, false);
|
273
246
|
});
|
274
247
|
};
|
275
248
|
return this.callback(params)
|
276
249
|
.then(async (result) => {
|
277
250
|
if (result.state?.startsWith(POPUP_STATE_PREFIX)) {
|
278
|
-
const receivedByParent = await
|
251
|
+
const receivedByParent = await sendPopupResult({
|
279
252
|
key: result.state.slice(POPUP_STATE_PREFIX.length),
|
280
253
|
result: {
|
281
254
|
status: 'fulfilled',
|
@@ -292,7 +265,7 @@ class BrowserOAuthClient extends oauth_client_1.OAuthClient {
|
|
292
265
|
.catch(async (err) => {
|
293
266
|
if (err instanceof oauth_client_1.OAuthCallbackError &&
|
294
267
|
err.state?.startsWith(POPUP_STATE_PREFIX)) {
|
295
|
-
await
|
268
|
+
await sendPopupResult({
|
296
269
|
key: err.state.slice(POPUP_STATE_PREFIX.length),
|
297
270
|
result: {
|
298
271
|
status: 'rejected',
|
@@ -316,13 +289,12 @@ class BrowserOAuthClient extends oauth_client_1.OAuthClient {
|
|
316
289
|
throw err;
|
317
290
|
});
|
318
291
|
}
|
319
|
-
|
320
|
-
|
321
|
-
await this.sessionStore[Symbol.dispose]();
|
322
|
-
await this.database[Symbol.asyncDispose]();
|
292
|
+
dispose() {
|
293
|
+
this[Symbol.dispose]();
|
323
294
|
}
|
324
295
|
}
|
325
296
|
exports.BrowserOAuthClient = BrowserOAuthClient;
|
297
|
+
_a = Symbol.dispose;
|
326
298
|
/**
|
327
299
|
* Since "localhost" is often used either in IP mode or in hostname mode,
|
328
300
|
* and because the redirect uris must use the IP mode, we need to make sure
|
@@ -333,18 +305,20 @@ exports.BrowserOAuthClient = BrowserOAuthClient;
|
|
333
305
|
* redirect uris.
|
334
306
|
*/
|
335
307
|
function fixLocation(clientMetadata) {
|
336
|
-
if (clientMetadata.client_id
|
308
|
+
if (!(0, oauth_types_1.isOAuthClientIdLoopback)(clientMetadata.client_id))
|
337
309
|
return;
|
338
310
|
if (window.location.hostname !== 'localhost')
|
339
311
|
return;
|
340
312
|
const locationUrl = new URL(window.location.href);
|
341
313
|
for (const uri of clientMetadata.redirect_uris) {
|
342
314
|
const url = new URL(uri);
|
343
|
-
if (url.
|
315
|
+
if ((url.hostname === '127.0.0.1' || url.hostname === '[::1]') &&
|
316
|
+
(!url.port || url.port === locationUrl.port) &&
|
344
317
|
url.protocol === locationUrl.protocol &&
|
345
|
-
|
346
|
-
|
347
|
-
|
318
|
+
url.pathname === locationUrl.pathname) {
|
319
|
+
url.port = locationUrl.port;
|
320
|
+
window.location.href = url.href;
|
321
|
+
// Prevent init() on the wrong origin
|
348
322
|
throw new Error('Redirecting to loopback IP...');
|
349
323
|
}
|
350
324
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"browser-oauth-client.js","sourceRoot":"","sources":["../src/browser-oauth-client.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"browser-oauth-client.js","sourceRoot":"","sources":["../src/browser-oauth-client.ts"],"names":[],"mappings":"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"}
|
@@ -30,9 +30,7 @@ export type Schema = {
|
|
30
30
|
authorizationServerMetadataCache: Item<OAuthAuthorizationServerMetadata>;
|
31
31
|
protectedResourceMetadataCache: Item<OAuthProtectedResourceMetadata>;
|
32
32
|
};
|
33
|
-
export type DatabaseStore<V extends Value> = SimpleStore<string, V
|
34
|
-
getKeys: () => Promise<string[]>;
|
35
|
-
};
|
33
|
+
export type DatabaseStore<V extends Value> = SimpleStore<string, V>;
|
36
34
|
export type BrowserOAuthDatabaseOptions = {
|
37
35
|
name?: string;
|
38
36
|
durability?: 'strict' | 'relaxed';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"browser-oauth-database.d.ts","sourceRoot":"","sources":["../src/browser-oauth-database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG1C,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC5E,OAAO,EACL,gCAAgC,EAChC,8BAA8B,EAC/B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAAM,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAGzD,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,KAAK,EAAE,CAAC,CAAA;IACR,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,UAAU,GAAG;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,aAAa,CAAA;CACvB,CAAA;AAgBD,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,IAAI,CAAC;QACV,OAAO,EAAE,UAAU,CAAA;QAEnB,GAAG,EAAE,MAAM,CAAA;QACX,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAC,CAAA;IACF,OAAO,EAAE,IAAI,CAAC;QACZ,OAAO,EAAE,UAAU,CAAA;QAEnB,QAAQ,EAAE,QAAQ,CAAA;KACnB,CAAC,CAAA;IAEF,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IAC3B,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IAC5B,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;IACjC,gCAAgC,EAAE,IAAI,CAAC,gCAAgC,CAAC,CAAA;IACxE,8BAA8B,EAAE,IAAI,CAAC,8BAA8B,CAAC,CAAA;CACrE,CAAA;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,
|
1
|
+
{"version":3,"file":"browser-oauth-database.d.ts","sourceRoot":"","sources":["../src/browser-oauth-database.ts"],"names":[],"mappings":"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"}
|
@@ -72,10 +72,6 @@ class BrowserOAuthDatabase {
|
|
72
72
|
// Item found and valid. Decode
|
73
73
|
return decode(item.value);
|
74
74
|
},
|
75
|
-
getKeys: async () => {
|
76
|
-
const keys = await this.run(name, 'readonly', (store) => store.getAllKeys());
|
77
|
-
return keys.filter((key) => typeof key === 'string');
|
78
|
-
},
|
79
75
|
set: async (key, value) => {
|
80
76
|
// Create encoded item record
|
81
77
|
const item = {
|
@@ -165,10 +161,15 @@ class BrowserOAuthDatabase {
|
|
165
161
|
}
|
166
162
|
async [(_BrowserOAuthDatabase_dbPromise = new WeakMap(), _BrowserOAuthDatabase_cleanupInterval = new WeakMap(), Symbol.asyncDispose)]() {
|
167
163
|
clearInterval(__classPrivateFieldGet(this, _BrowserOAuthDatabase_cleanupInterval, "f"));
|
164
|
+
__classPrivateFieldSet(this, _BrowserOAuthDatabase_cleanupInterval, undefined, "f");
|
168
165
|
const dbPromise = __classPrivateFieldGet(this, _BrowserOAuthDatabase_dbPromise, "f");
|
169
166
|
__classPrivateFieldSet(this, _BrowserOAuthDatabase_dbPromise, Promise.reject(new Error('Database has been disposed')), "f");
|
170
|
-
|
171
|
-
|
167
|
+
// Avoid "unhandled promise rejection"
|
168
|
+
__classPrivateFieldGet(this, _BrowserOAuthDatabase_dbPromise, "f").catch(() => null);
|
169
|
+
// Spec recommends not to throw errors in dispose
|
170
|
+
const db = await dbPromise.catch(() => null);
|
171
|
+
if (db)
|
172
|
+
await (db[Symbol.asyncDispose] || db[Symbol.dispose]).call(db);
|
172
173
|
}
|
173
174
|
}
|
174
175
|
exports.BrowserOAuthDatabase = BrowserOAuthDatabase;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"browser-oauth-database.js","sourceRoot":"","sources":["../src/browser-oauth-database.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,0DAAqD;AAOrD,oDAAyD;AAazD,SAAS,SAAS,CAAC,GAAQ;IACzB,IAAI,CAAC,CAAC,GAAG,YAAY,4BAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACvC,CAAC;IACD,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,GAAG;QACd,OAAO,EAAE,GAAG,CAAC,aAAa;KAC3B,CAAA;AACH,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,OAAmB;IAC1C,OAAO,4BAAY,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;AACjE,CAAC;
|
1
|
+
{"version":3,"file":"browser-oauth-database.js","sourceRoot":"","sources":["../src/browser-oauth-database.ts"],"names":[],"mappings":"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"}
|
@@ -1,10 +1,9 @@
|
|
1
|
-
import { DigestAlgorithm, Key, RuntimeImplementation } from '@atproto/oauth-client';
|
1
|
+
import { DigestAlgorithm, Key, RuntimeImplementation, RuntimeLock } from '@atproto/oauth-client';
|
2
2
|
export declare class BrowserRuntimeImplementation implements RuntimeImplementation {
|
3
|
-
|
4
|
-
|
5
|
-
constructor(crypto?: Crypto);
|
3
|
+
requestLock: RuntimeLock | undefined;
|
4
|
+
constructor();
|
6
5
|
createKey(algs: string[]): Promise<Key>;
|
7
6
|
getRandomValues(byteLength: number): Uint8Array;
|
8
|
-
digest(
|
7
|
+
digest(data: Uint8Array, { name }: DigestAlgorithm): Promise<Uint8Array>;
|
9
8
|
}
|
10
9
|
//# sourceMappingURL=browser-runtime-implementation.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"browser-runtime-implementation.d.ts","sourceRoot":"","sources":["../src/browser-runtime-implementation.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,GAAG,EACH,qBAAqB,
|
1
|
+
{"version":3,"file":"browser-runtime-implementation.d.ts","sourceRoot":"","sources":["../src/browser-runtime-implementation.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,GAAG,EACH,qBAAqB,EACrB,WAAW,EACZ,MAAM,uBAAuB,CAAA;AAU9B,qBAAa,4BAA6B,YAAW,qBAAqB;IACxE,WAAW,0BAAoB;;IAmBzB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7C,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU;IAIzC,MAAM,CACV,IAAI,EAAE,UAAU,EAChB,EAAE,IAAI,EAAE,EAAE,eAAe,GACxB,OAAO,CAAC,UAAU,CAAC;CAYvB"}
|
@@ -2,28 +2,25 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.BrowserRuntimeImplementation = void 0;
|
4
4
|
const jwk_webcrypto_1 = require("@atproto/jwk-webcrypto");
|
5
|
+
/**
|
6
|
+
* @see {@link // https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request}
|
7
|
+
*/
|
8
|
+
const nativeRequestLock = navigator.locks?.request
|
9
|
+
? (name, fn) => navigator.locks.request(name, { mode: 'exclusive' }, async () => fn())
|
10
|
+
: undefined;
|
5
11
|
class BrowserRuntimeImplementation {
|
6
|
-
constructor(
|
7
|
-
Object.defineProperty(this, "crypto", {
|
8
|
-
enumerable: true,
|
9
|
-
configurable: true,
|
10
|
-
writable: true,
|
11
|
-
value: crypto
|
12
|
-
});
|
13
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request
|
12
|
+
constructor() {
|
14
13
|
Object.defineProperty(this, "requestLock", {
|
15
14
|
enumerable: true,
|
16
15
|
configurable: true,
|
17
16
|
writable: true,
|
18
|
-
value:
|
19
|
-
? (name, fn) => navigator.locks.request(name, { mode: 'exclusive' }, async () => fn())
|
20
|
-
: undefined
|
17
|
+
value: nativeRequestLock
|
21
18
|
});
|
22
|
-
if (!crypto?.subtle) {
|
19
|
+
if (typeof crypto !== 'object' || !crypto?.subtle) {
|
23
20
|
throw new Error('Crypto with CryptoSubtle is required. If running in a browser, make sure the current page is loaded over HTTPS.');
|
24
21
|
}
|
25
22
|
if (!this.requestLock) {
|
26
|
-
// There is no real need to polyfill this on older browsers.
|
23
|
+
// There is no real need to polyfill this on older browsers. Indeed, the
|
27
24
|
// oauth-client library will try and recover from concurrency issues when
|
28
25
|
// refreshing tokens.
|
29
26
|
console.warn('Locks API not available. You should consider using a more recent browser.');
|
@@ -33,24 +30,20 @@ class BrowserRuntimeImplementation {
|
|
33
30
|
return jwk_webcrypto_1.WebcryptoKey.generate(algs);
|
34
31
|
}
|
35
32
|
getRandomValues(byteLength) {
|
36
|
-
|
37
|
-
this.crypto.getRandomValues(bytes);
|
38
|
-
return bytes;
|
33
|
+
return crypto.getRandomValues(new Uint8Array(byteLength));
|
39
34
|
}
|
40
|
-
async digest(
|
41
|
-
|
42
|
-
|
35
|
+
async digest(data, { name }) {
|
36
|
+
switch (name) {
|
37
|
+
case 'sha256':
|
38
|
+
case 'sha384':
|
39
|
+
case 'sha512': {
|
40
|
+
const buf = await crypto.subtle.digest(`SHA-${name.slice(3)}`, data);
|
41
|
+
return new Uint8Array(buf);
|
42
|
+
}
|
43
|
+
default:
|
44
|
+
throw new Error(`Unsupported digest algorithm: ${name}`);
|
45
|
+
}
|
43
46
|
}
|
44
47
|
}
|
45
48
|
exports.BrowserRuntimeImplementation = BrowserRuntimeImplementation;
|
46
|
-
function digestAlgorithmToSubtle({ name, }) {
|
47
|
-
switch (name) {
|
48
|
-
case 'sha256':
|
49
|
-
case 'sha384':
|
50
|
-
case 'sha512':
|
51
|
-
return `SHA-${name.slice(-3)}`;
|
52
|
-
default:
|
53
|
-
throw new TypeError(`Unknown hash algorithm ${name}`);
|
54
|
-
}
|
55
|
-
}
|
56
49
|
//# sourceMappingURL=browser-runtime-implementation.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"browser-runtime-implementation.js","sourceRoot":"","sources":["../src/browser-runtime-implementation.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;
|
1
|
+
{"version":3,"file":"browser-runtime-implementation.js","sourceRoot":"","sources":["../src/browser-runtime-implementation.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AAQrD;;GAEG;AACH,MAAM,iBAAiB,GAA4B,SAAS,CAAC,KAAK,EAAE,OAAO;IACzE,CAAC,CAAC,CAAI,IAAY,EAAE,EAA4B,EAAc,EAAE,CAC5D,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;IAC1E,CAAC,CAAC,SAAS,CAAA;AAEb,MAAa,4BAA4B;IAGvC;QAFA;;;;mBAAc,iBAAiB;WAAA;QAG7B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CACb,iHAAiH,CAClH,CAAA;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,wEAAwE;YACxE,yEAAyE;YACzE,qBAAqB;YACrB,OAAO,CAAC,IAAI,CACV,2EAA2E,CAC5E,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAc;QAC5B,OAAO,4BAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IAED,eAAe,CAAC,UAAkB;QAChC,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,KAAK,CAAC,MAAM,CACV,IAAgB,EAChB,EAAE,IAAI,EAAmB;QAEzB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;gBACpE,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;YAC5B,CAAC;YACD;gBACE,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;CACF;AA3CD,oEA2CC"}
|
package/dist/index.d.ts
CHANGED
@@ -1,10 +1,6 @@
|
|
1
1
|
import './disposable-polyfill/index.js';
|
2
|
-
export * from '@atproto-labs/did-resolver';
|
3
|
-
export { AppViewHandleResolver, AtprotoHandleResolver, } from '@atproto-labs/handle-resolver';
|
4
|
-
export * from '@atproto/did';
|
5
2
|
export * from '@atproto/jwk-webcrypto';
|
6
3
|
export * from '@atproto/oauth-client';
|
7
|
-
export * from '@atproto/oauth-types';
|
8
4
|
export * from './browser-oauth-client.js';
|
9
5
|
export * from './errors.js';
|
10
6
|
export { buildLoopbackClientId } from './util.js';
|
package/dist/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAA;AAEvC,cAAc,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAA;AAEvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AAErC,cAAc,2BAA2B,CAAA;AACzC,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA"}
|
package/dist/index.js
CHANGED
@@ -14,16 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
15
|
};
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
-
exports.buildLoopbackClientId =
|
17
|
+
exports.buildLoopbackClientId = void 0;
|
18
18
|
require("./disposable-polyfill/index.js");
|
19
|
-
__exportStar(require("@atproto-labs/did-resolver"), exports);
|
20
|
-
var handle_resolver_1 = require("@atproto-labs/handle-resolver");
|
21
|
-
Object.defineProperty(exports, "AppViewHandleResolver", { enumerable: true, get: function () { return handle_resolver_1.AppViewHandleResolver; } });
|
22
|
-
Object.defineProperty(exports, "AtprotoHandleResolver", { enumerable: true, get: function () { return handle_resolver_1.AtprotoHandleResolver; } });
|
23
|
-
__exportStar(require("@atproto/did"), exports);
|
24
19
|
__exportStar(require("@atproto/jwk-webcrypto"), exports);
|
25
20
|
__exportStar(require("@atproto/oauth-client"), exports);
|
26
|
-
__exportStar(require("@atproto/oauth-types"), exports);
|
27
21
|
__exportStar(require("./browser-oauth-client.js"), exports);
|
28
22
|
__exportStar(require("./errors.js"), exports);
|
29
23
|
var util_js_1 = require("./util.js");
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAuC;AAEvC,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,0CAAuC;AAEvC,yDAAsC;AACtC,wDAAqC;AAErC,4DAAyC;AACzC,8CAA2B;AAC3B,qCAAiD;AAAxC,gHAAA,qBAAqB,OAAA"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/indexed-db/util.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/indexed-db/util.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,CAAC,EAC7B,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EACtB,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,EAC9B,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,QAgBhC;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,cAIlD"}
|
package/dist/indexed-db/util.js
CHANGED
@@ -1,24 +1,27 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.promisify = void 0;
|
3
|
+
exports.promisify = exports.handleRequest = void 0;
|
4
|
+
function handleRequest(request, onSuccess, onError) {
|
5
|
+
const cleanup = () => {
|
6
|
+
request.removeEventListener('success', success);
|
7
|
+
request.removeEventListener('error', error);
|
8
|
+
};
|
9
|
+
const success = () => {
|
10
|
+
onSuccess(request.result);
|
11
|
+
cleanup();
|
12
|
+
};
|
13
|
+
const error = () => {
|
14
|
+
onError(request.error || new Error('Unknown error'));
|
15
|
+
cleanup();
|
16
|
+
};
|
17
|
+
request.addEventListener('success', success);
|
18
|
+
request.addEventListener('error', error);
|
19
|
+
}
|
20
|
+
exports.handleRequest = handleRequest;
|
4
21
|
function promisify(request) {
|
5
|
-
|
6
|
-
|
7
|
-
request.removeEventListener('success', success);
|
8
|
-
request.removeEventListener('error', error);
|
9
|
-
};
|
10
|
-
const success = () => {
|
11
|
-
resolve(request.result);
|
12
|
-
cleanup();
|
13
|
-
};
|
14
|
-
const error = () => {
|
15
|
-
reject(request.error);
|
16
|
-
cleanup();
|
17
|
-
};
|
18
|
-
request.addEventListener('success', success);
|
19
|
-
request.addEventListener('error', error);
|
22
|
+
return new Promise((resolve, reject) => {
|
23
|
+
handleRequest(request, resolve, reject);
|
20
24
|
});
|
21
|
-
return promise;
|
22
25
|
}
|
23
26
|
exports.promisify = promisify;
|
24
27
|
//# sourceMappingURL=util.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/indexed-db/util.ts"],"names":[],"mappings":";;;AAAA,SAAgB,
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/indexed-db/util.ts"],"names":[],"mappings":";;;AAAA,SAAgB,aAAa,CAC3B,OAAsB,EACtB,SAA8B,EAC9B,OAA+B;IAE/B,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAC/C,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC7C,CAAC,CAAA;IACD,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACzB,OAAO,EAAE,CAAA;IACX,CAAC,CAAA;IACD,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;QACpD,OAAO,EAAE,CAAA;IACX,CAAC,CAAA;IACD,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC5C,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AAC1C,CAAC;AAnBD,sCAmBC;AAED,SAAgB,SAAS,CAAI,OAAsB;IACjD,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;AACJ,CAAC;AAJD,8BAIC"}
|
package/dist/util.d.ts
CHANGED
@@ -15,4 +15,18 @@ export declare function buildLoopbackClientId(location: {
|
|
15
15
|
pathname: string;
|
16
16
|
port: string;
|
17
17
|
}, localhost?: string): string;
|
18
|
+
interface TypedBroadcastChannelEventMap<T> {
|
19
|
+
message: MessageEvent<T>;
|
20
|
+
messageerror: MessageEvent<T>;
|
21
|
+
}
|
22
|
+
export interface TypedBroadcastChannel<T> extends EventTarget {
|
23
|
+
readonly name: string;
|
24
|
+
close(): void;
|
25
|
+
postMessage(message: T): void;
|
26
|
+
addEventListener<K extends keyof TypedBroadcastChannelEventMap<T>>(type: K, listener: (this: BroadcastChannel, ev: TypedBroadcastChannelEventMap<T>[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
27
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
28
|
+
removeEventListener<K extends keyof TypedBroadcastChannelEventMap<T>>(type: K, listener: (this: BroadcastChannel, ev: TypedBroadcastChannelEventMap<T>[K]) => any, options?: boolean | EventListenerOptions): void;
|
29
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
30
|
+
}
|
31
|
+
export {};
|
18
32
|
//# sourceMappingURL=util.d.ts.map
|
package/dist/util.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;AACzE,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,IAAI;KAC9D,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,GACjC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GACT,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;CACzC,CAAC,CAAC,CAAC,CAAA;AAEJ;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb,EACD,SAAS,SAAc,GACtB,MAAM,CAUR"}
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;AACzE,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,IAAI;KAC9D,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,KAAK,GACjC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GACT,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;CACzC,CAAC,CAAC,CAAC,CAAA;AAEJ;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;CACb,EACD,SAAS,SAAc,GACtB,MAAM,CAUR;AAED,UAAU,6BAA6B,CAAC,CAAC;IACvC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;IACxB,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;CAC9B;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,CAAE,SAAQ,WAAW;IAC3D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB,KAAK,IAAI,IAAI,CAAA;IACb,WAAW,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAA;IAC7B,gBAAgB,CAAC,CAAC,SAAS,MAAM,6BAA6B,CAAC,CAAC,CAAC,EAC/D,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CACR,IAAI,EAAE,gBAAgB,EACtB,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KACpC,GAAG,EACR,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,IAAI,CAAA;IACP,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,IAAI,CAAA;IACP,mBAAmB,CAAC,CAAC,SAAS,MAAM,6BAA6B,CAAC,CAAC,CAAC,EAClE,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CACR,IAAI,EAAE,gBAAgB,EACtB,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KACpC,GAAG,EACR,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACvC,IAAI,CAAA;IACP,mBAAmB,CACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,EAC5C,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACvC,IAAI,CAAA;CACR"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@atproto/oauth-client-browser",
|
3
|
-
"version": "0.1.
|
3
|
+
"version": "0.1.1",
|
4
4
|
"license": "MIT",
|
5
5
|
"description": "ATPROTO OAuth client for the browser (relies on WebCrypto & Indexed DB)",
|
6
6
|
"keywords": [
|
@@ -31,14 +31,14 @@
|
|
31
31
|
"dist"
|
32
32
|
],
|
33
33
|
"dependencies": {
|
34
|
-
"@atproto-labs/did-resolver": "0.1.
|
35
|
-
"@atproto-labs/handle-resolver": "0.1.
|
36
|
-
"@atproto-labs/simple-store": "0.1.
|
34
|
+
"@atproto-labs/did-resolver": "0.1.1",
|
35
|
+
"@atproto-labs/handle-resolver": "0.1.1",
|
36
|
+
"@atproto-labs/simple-store": "0.1.1",
|
37
37
|
"@atproto/did": "0.1.0",
|
38
|
-
"@atproto/jwk": "0.1.
|
39
|
-
"@atproto/jwk-webcrypto": "0.1.
|
40
|
-
"@atproto/oauth-client": "0.1.
|
41
|
-
"@atproto/oauth-types": "0.1.
|
38
|
+
"@atproto/jwk": "0.1.1",
|
39
|
+
"@atproto/jwk-webcrypto": "0.1.1",
|
40
|
+
"@atproto/oauth-client": "0.1.1",
|
41
|
+
"@atproto/oauth-types": "0.1.1"
|
42
42
|
},
|
43
43
|
"devDependencies": {
|
44
44
|
"@rollup/plugin-commonjs": "^25.0.7",
|
@@ -59,10 +59,10 @@
|
|
59
59
|
"rollup-plugin-serve": "^1.1.1",
|
60
60
|
"tailwindcss": "^3.4.1",
|
61
61
|
"typescript": "^5.3.3",
|
62
|
-
"@atproto/api": "0.12.
|
63
|
-
"@atproto/oauth-client": "0.1.
|
64
|
-
"@atproto/oauth-client-browser": "0.1.
|
65
|
-
"@atproto/oauth-types": "0.1.
|
62
|
+
"@atproto/api": "0.12.24",
|
63
|
+
"@atproto/oauth-client": "0.1.1",
|
64
|
+
"@atproto/oauth-client-browser": "0.1.1",
|
65
|
+
"@atproto/oauth-types": "0.1.1",
|
66
66
|
"@atproto/xrpc": "0.5.0"
|
67
67
|
},
|
68
68
|
"scripts": {
|