@atproto/oauth-client-browser 0.1.0 → 0.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 +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": {
|