@atcute/oauth-browser-client 1.0.27 → 2.0.0
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 +122 -218
- package/dist/agents/exchange.d.ts +18 -6
- package/dist/agents/exchange.d.ts.map +1 -1
- package/dist/agents/exchange.js +35 -17
- package/dist/agents/exchange.js.map +1 -1
- package/dist/agents/server-agent.d.ts.map +1 -1
- package/dist/agents/server-agent.js +22 -5
- package/dist/agents/server-agent.js.map +1 -1
- package/dist/dpop.d.ts.map +1 -1
- package/dist/dpop.js +3 -0
- package/dist/dpop.js.map +1 -1
- package/dist/environment.d.ts +12 -2
- package/dist/environment.d.ts.map +1 -1
- package/dist/environment.js +3 -0
- package/dist/environment.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/resolvers.d.ts +5 -47
- package/dist/resolvers.d.ts.map +1 -1
- package/dist/resolvers.js +22 -122
- package/dist/resolvers.js.map +1 -1
- package/dist/store/db.d.ts +1 -0
- package/dist/store/db.d.ts.map +1 -1
- package/dist/store/db.js.map +1 -1
- package/dist/types/client-assertion.d.ts +21 -0
- package/dist/types/client-assertion.d.ts.map +1 -0
- package/dist/types/client-assertion.js +3 -0
- package/dist/types/client-assertion.js.map +1 -0
- package/dist/types/dpop.d.ts +2 -0
- package/dist/types/dpop.d.ts.map +1 -1
- package/dist/types/identity.d.ts +12 -5
- package/dist/types/identity.d.ts.map +1 -1
- package/dist/utils/identity-resolver.d.ts +8 -0
- package/dist/utils/identity-resolver.d.ts.map +1 -0
- package/dist/utils/identity-resolver.js +44 -0
- package/dist/utils/identity-resolver.js.map +1 -0
- package/lib/agents/exchange.ts +52 -25
- package/lib/agents/server-agent.ts +25 -5
- package/lib/dpop.ts +4 -0
- package/lib/environment.ts +19 -2
- package/lib/index.ts +3 -1
- package/lib/resolvers.ts +27 -142
- package/lib/store/db.ts +1 -0
- package/lib/types/client-assertion.ts +25 -0
- package/lib/types/dpop.ts +2 -0
- package/lib/types/identity.ts +14 -5
- package/lib/utils/identity-resolver.ts +59 -0
- package/package.json +5 -4
package/dist/dpop.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dpop.js","sourceRoot":"","sources":["../lib/dpop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAW,CAAC;AAElE,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAAsB,EAAE;IAC1D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAElF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACpE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAEvG,OAAO;QACN,GAAG,EAAE,OAAO;QACZ,GAAG,EAAE,WAAW,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QACrC,GAAG,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"dpop.js","sourceRoot":"","sources":["../lib/dpop.ts"],"names":[],"mappings":"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"}
|
package/dist/environment.d.ts
CHANGED
|
@@ -1,17 +1,27 @@
|
|
|
1
|
+
import type { IdentityResolver } from './types/identity.js';
|
|
1
2
|
import { type OAuthDatabase } from './store/db.js';
|
|
3
|
+
import type { ClientAssertionFetcher } from './types/client-assertion.js';
|
|
2
4
|
export declare let CLIENT_ID: string;
|
|
3
5
|
export declare let REDIRECT_URI: string;
|
|
6
|
+
export declare let fetchClientAssertion: ClientAssertionFetcher | undefined;
|
|
4
7
|
export declare let database: OAuthDatabase;
|
|
8
|
+
export declare let identityResolver: IdentityResolver;
|
|
5
9
|
export interface ConfigureOAuthOptions {
|
|
6
10
|
/**
|
|
7
|
-
*
|
|
11
|
+
* client metadata, necessary to drive the whole request
|
|
8
12
|
*/
|
|
9
13
|
metadata: {
|
|
10
14
|
client_id: string;
|
|
11
15
|
redirect_uri: string;
|
|
12
16
|
};
|
|
17
|
+
/** resolves actor identifiers into identity metadata */
|
|
18
|
+
identityResolver: IdentityResolver;
|
|
13
19
|
/**
|
|
14
|
-
*
|
|
20
|
+
* optional function to fetch DPoP-bound client assertions from your backend.
|
|
21
|
+
*/
|
|
22
|
+
fetchClientAssertion?: ClientAssertionFetcher;
|
|
23
|
+
/**
|
|
24
|
+
* name that will be used as prefix for storage keys needed to persist authentication.
|
|
15
25
|
* @default "atcute-oauth"
|
|
16
26
|
*/
|
|
17
27
|
storageName?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../lib/environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../lib/environment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE1E,eAAO,IAAI,SAAS,EAAE,MAAM,CAAC;AAC7B,eAAO,IAAI,YAAY,EAAE,MAAM,CAAC;AAEhC,eAAO,IAAI,oBAAoB,EAAE,sBAAsB,GAAG,SAAS,CAAC;AAEpE,eAAO,IAAI,QAAQ,EAAE,aAAa,CAAC;AAEnC,eAAO,IAAI,gBAAgB,EAAE,gBAAgB,CAAC;AAE9C,MAAM,WAAW,qBAAqB;IACrC;;OAEG;IACH,QAAQ,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;KACrB,CAAC;IAEF,wDAAwD;IACxD,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC;;OAEG;IACH,oBAAoB,CAAC,EAAE,sBAAsB,CAAC;IAE9C;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,GAAI,SAAS,qBAAqB,SAK5D,CAAC"}
|
package/dist/environment.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { createOAuthDatabase } from './store/db.js';
|
|
2
2
|
export let CLIENT_ID;
|
|
3
3
|
export let REDIRECT_URI;
|
|
4
|
+
export let fetchClientAssertion;
|
|
4
5
|
export let database;
|
|
6
|
+
export let identityResolver;
|
|
5
7
|
export const configureOAuth = (options) => {
|
|
8
|
+
({ identityResolver, fetchClientAssertion } = options);
|
|
6
9
|
({ client_id: CLIENT_ID, redirect_uri: REDIRECT_URI } = options.metadata);
|
|
7
10
|
database = createOAuthDatabase({ name: options.storageName ?? 'atcute-oauth' });
|
|
8
11
|
};
|
package/dist/environment.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../lib/environment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../lib/environment.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAsB,MAAM,eAAe,CAAC;AAGxE,MAAM,CAAC,IAAI,SAAiB,CAAC;AAC7B,MAAM,CAAC,IAAI,YAAoB,CAAC;AAEhC,MAAM,CAAC,IAAI,oBAAwD,CAAC;AAEpE,MAAM,CAAC,IAAI,QAAuB,CAAC;AAEnC,MAAM,CAAC,IAAI,gBAAkC,CAAC;AA0B9C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAA8B,EAAE,EAAE;IAChE,CAAC,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,CAAC;IACvD,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE1E,QAAQ,GAAG,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,IAAI,cAAc,EAAE,CAAC,CAAC;AACjF,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export { configureOAuth, type ConfigureOAuthOptions } from './environment.js';
|
|
2
2
|
export * from './errors.js';
|
|
3
|
-
export * from './resolvers.js';
|
|
4
3
|
export * from './agents/exchange.js';
|
|
5
4
|
export * from './agents/server-agent.js';
|
|
6
5
|
export * from './agents/sessions.js';
|
|
7
6
|
export * from './agents/user-agent.js';
|
|
7
|
+
export * from './types/client-assertion.js';
|
|
8
8
|
export * from './types/client.js';
|
|
9
9
|
export * from './types/dpop.js';
|
|
10
10
|
export * from './types/identity.js';
|
|
@@ -12,4 +12,5 @@ export * from './types/par.js';
|
|
|
12
12
|
export * from './types/server.js';
|
|
13
13
|
export * from './types/store.js';
|
|
14
14
|
export * from './types/token.js';
|
|
15
|
+
export * from './utils/identity-resolver.js';
|
|
15
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,cAAc,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9E,cAAc,aAAa,CAAC;AAE5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,8BAA8B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export { configureOAuth } from './environment.js';
|
|
2
2
|
export * from './errors.js';
|
|
3
|
-
export * from './resolvers.js';
|
|
4
3
|
export * from './agents/exchange.js';
|
|
5
4
|
export * from './agents/server-agent.js';
|
|
6
5
|
export * from './agents/sessions.js';
|
|
7
6
|
export * from './agents/user-agent.js';
|
|
7
|
+
export * from './types/client-assertion.js';
|
|
8
8
|
export * from './types/client.js';
|
|
9
9
|
export * from './types/dpop.js';
|
|
10
10
|
export * from './types/identity.js';
|
|
@@ -12,4 +12,5 @@ export * from './types/par.js';
|
|
|
12
12
|
export * from './types/server.js';
|
|
13
13
|
export * from './types/store.js';
|
|
14
14
|
export * from './types/token.js';
|
|
15
|
+
export * from './utils/identity-resolver.js';
|
|
15
16
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA8B,MAAM,kBAAkB,CAAC;AAE9E,cAAc,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAA8B,MAAM,kBAAkB,CAAC;AAE9E,cAAc,aAAa,CAAC;AAE5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,8BAA8B,CAAC"}
|
package/dist/resolvers.d.ts
CHANGED
|
@@ -1,53 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* Resolves domain handles into DID identifiers, by requesting Bluesky's AppView
|
|
7
|
-
* for identity resolution.
|
|
8
|
-
* @param handle Domain handle to resolve
|
|
9
|
-
* @returns DID identifier resolved from the domain handle
|
|
10
|
-
*/
|
|
11
|
-
export declare const resolveHandle: (handle: string) => Promise<Did>;
|
|
12
|
-
/**
|
|
13
|
-
* Get DID documents of did:plc (via plc.directory) and did:web identifiers
|
|
14
|
-
* @param did DID identifier we're seeking DID doc from
|
|
15
|
-
* @returns Retrieved DID document
|
|
16
|
-
*/
|
|
17
|
-
export declare const getDidDocument: (did: Did) => Promise<DidDocument>;
|
|
18
|
-
/**
|
|
19
|
-
* Get OAuth protected resource metadata from a host
|
|
20
|
-
* @param host URL of the host
|
|
21
|
-
* @returns Retrieved protected resource metadata
|
|
22
|
-
*/
|
|
23
|
-
export declare const getProtectedResourceMetadata: (host: string) => Promise<ProtectedResourceMetadata>;
|
|
24
|
-
/**
|
|
25
|
-
* Get OAuth authorization server metadata from a host
|
|
26
|
-
* @param host URL of the host
|
|
27
|
-
* @returns Retrieved authorization server metadata
|
|
28
|
-
*/
|
|
29
|
-
export declare const getAuthorizationServerMetadata: (host: string) => Promise<AuthorizationServerMetadata>;
|
|
30
|
-
/**
|
|
31
|
-
* Resolve handle domains or DID identifiers to get their PDS and its authorization server metadata
|
|
32
|
-
* @param ident Handle domain or DID identifier to resolve
|
|
33
|
-
* @returns Resolved PDS and authorization server metadata
|
|
34
|
-
*/
|
|
35
|
-
export declare const resolveFromIdentity: (ident: string) => Promise<{
|
|
36
|
-
identity: IdentityMetadata;
|
|
1
|
+
import type { ActorIdentifier } from '@atcute/lexicons';
|
|
2
|
+
import type { ResolvedIdentity } from './types/identity.js';
|
|
3
|
+
import type { AuthorizationServerMetadata } from './types/server.js';
|
|
4
|
+
export declare const resolveFromIdentifier: (ident: ActorIdentifier) => Promise<{
|
|
5
|
+
identity: ResolvedIdentity;
|
|
37
6
|
metadata: AuthorizationServerMetadata;
|
|
38
7
|
}>;
|
|
39
|
-
/**
|
|
40
|
-
* Request authorization server metadata from a PDS
|
|
41
|
-
* @param host URL of the host
|
|
42
|
-
* @returns Resolved authorization server metadata
|
|
43
|
-
*/
|
|
44
8
|
export declare const resolveFromService: (host: string) => Promise<{
|
|
45
9
|
metadata: AuthorizationServerMetadata;
|
|
46
10
|
}>;
|
|
47
|
-
/**
|
|
48
|
-
* Request authorization server metadata from its protected resource metadata
|
|
49
|
-
* @param input URL of the host whose authorization server is delegated
|
|
50
|
-
* @returns Resolved authorization server metadata
|
|
51
|
-
*/
|
|
52
|
-
export declare const getMetadataFromResourceServer: (input: string) => Promise<AuthorizationServerMetadata>;
|
|
53
11
|
//# sourceMappingURL=resolvers.d.ts.map
|
package/dist/resolvers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../lib/resolvers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../lib/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,2BAA2B,EAA6B,MAAM,mBAAmB,CAAC;AAIhG,eAAO,MAAM,qBAAqB,GACjC,OAAO,eAAe,KACpB,OAAO,CAAC;IAAE,QAAQ,EAAE,gBAAgB,CAAC;IAAC,QAAQ,EAAE,2BAA2B,CAAA;CAAE,CAO/E,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC9B,MAAM,MAAM,KACV,OAAO,CAAC;IAAE,QAAQ,EAAE,2BAA2B,CAAA;CAAE,CAcnD,CAAC"}
|
package/dist/resolvers.js
CHANGED
|
@@ -1,72 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { isDid } from '@atcute/lexicons/syntax';
|
|
3
|
-
import { DEFAULT_APPVIEW_URL } from './constants.js';
|
|
1
|
+
import { identityResolver } from './environment.js';
|
|
4
2
|
import { ResolverError } from './errors.js';
|
|
5
3
|
import { extractContentType } from './utils/response.js';
|
|
6
4
|
import { isValidUrl } from './utils/strings.js';
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
*/
|
|
14
|
-
export const resolveHandle = async (handle) => {
|
|
15
|
-
const url = DEFAULT_APPVIEW_URL + `/xrpc/com.atproto.identity.resolveHandle` + `?handle=${handle}`;
|
|
16
|
-
const response = await fetch(url);
|
|
17
|
-
if (response.status === 400) {
|
|
18
|
-
throw new ResolverError(`domain handle not found`);
|
|
19
|
-
}
|
|
20
|
-
else if (!response.ok) {
|
|
21
|
-
throw new ResolverError(`directory is unreachable`);
|
|
22
|
-
}
|
|
23
|
-
const json = (await response.json());
|
|
24
|
-
return json.did;
|
|
5
|
+
export const resolveFromIdentifier = async (ident) => {
|
|
6
|
+
const identity = await identityResolver.resolve(ident);
|
|
7
|
+
return {
|
|
8
|
+
identity: identity,
|
|
9
|
+
metadata: await getMetadataFromResourceServer(identity.pds),
|
|
10
|
+
};
|
|
25
11
|
};
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
*/
|
|
31
|
-
export const getDidDocument = async (did) => {
|
|
32
|
-
const colon_index = did.indexOf(':', 4);
|
|
33
|
-
const type = did.slice(4, colon_index);
|
|
34
|
-
const ident = did.slice(colon_index + 1);
|
|
35
|
-
// 2. retrieve their DID documents
|
|
36
|
-
let doc;
|
|
37
|
-
if (type === 'plc') {
|
|
38
|
-
const response = await fetch(`https://plc.directory/${did}`);
|
|
39
|
-
if (response.status === 404) {
|
|
40
|
-
throw new ResolverError(`did not found in directory`);
|
|
41
|
-
}
|
|
42
|
-
else if (!response.ok) {
|
|
43
|
-
throw new ResolverError(`directory is unreachable`);
|
|
44
|
-
}
|
|
45
|
-
const json = await response.json();
|
|
46
|
-
doc = json;
|
|
12
|
+
export const resolveFromService = async (host) => {
|
|
13
|
+
try {
|
|
14
|
+
const metadata = await getMetadataFromResourceServer(host);
|
|
15
|
+
return { metadata };
|
|
47
16
|
}
|
|
48
|
-
|
|
49
|
-
if (
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
17
|
+
catch (err) {
|
|
18
|
+
if (err instanceof ResolverError) {
|
|
19
|
+
try {
|
|
20
|
+
const metadata = await getAuthorizationServerMetadata(host);
|
|
21
|
+
return { metadata };
|
|
22
|
+
}
|
|
23
|
+
catch { }
|
|
55
24
|
}
|
|
56
|
-
|
|
57
|
-
doc = json;
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
throw new ResolverError(`unsupported did method`);
|
|
25
|
+
throw err;
|
|
61
26
|
}
|
|
62
|
-
return doc;
|
|
63
27
|
};
|
|
64
|
-
|
|
65
|
-
* Get OAuth protected resource metadata from a host
|
|
66
|
-
* @param host URL of the host
|
|
67
|
-
* @returns Retrieved protected resource metadata
|
|
68
|
-
*/
|
|
69
|
-
export const getProtectedResourceMetadata = async (host) => {
|
|
28
|
+
const getProtectedResourceMetadata = async (host) => {
|
|
70
29
|
const url = new URL(`/.well-known/oauth-protected-resource`, host);
|
|
71
30
|
const response = await fetch(url, {
|
|
72
31
|
redirect: 'manual',
|
|
@@ -83,12 +42,7 @@ export const getProtectedResourceMetadata = async (host) => {
|
|
|
83
42
|
}
|
|
84
43
|
return metadata;
|
|
85
44
|
};
|
|
86
|
-
|
|
87
|
-
* Get OAuth authorization server metadata from a host
|
|
88
|
-
* @param host URL of the host
|
|
89
|
-
* @returns Retrieved authorization server metadata
|
|
90
|
-
*/
|
|
91
|
-
export const getAuthorizationServerMetadata = async (host) => {
|
|
45
|
+
const getAuthorizationServerMetadata = async (host) => {
|
|
92
46
|
const url = new URL(`/.well-known/oauth-authorization-server`, host);
|
|
93
47
|
const response = await fetch(url, {
|
|
94
48
|
redirect: 'manual',
|
|
@@ -119,61 +73,7 @@ export const getAuthorizationServerMetadata = async (host) => {
|
|
|
119
73
|
}
|
|
120
74
|
return metadata;
|
|
121
75
|
};
|
|
122
|
-
|
|
123
|
-
* Resolve handle domains or DID identifiers to get their PDS and its authorization server metadata
|
|
124
|
-
* @param ident Handle domain or DID identifier to resolve
|
|
125
|
-
* @returns Resolved PDS and authorization server metadata
|
|
126
|
-
*/
|
|
127
|
-
export const resolveFromIdentity = async (ident) => {
|
|
128
|
-
let did;
|
|
129
|
-
if (isDid(ident)) {
|
|
130
|
-
did = ident;
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
const resolved = await resolveHandle(ident);
|
|
134
|
-
did = resolved;
|
|
135
|
-
}
|
|
136
|
-
const doc = await getDidDocument(did);
|
|
137
|
-
const pds = getPdsEndpoint(doc);
|
|
138
|
-
if (!pds) {
|
|
139
|
-
throw new ResolverError(`missing pds endpoint`);
|
|
140
|
-
}
|
|
141
|
-
return {
|
|
142
|
-
identity: {
|
|
143
|
-
id: did,
|
|
144
|
-
raw: ident,
|
|
145
|
-
pds: new URL(pds),
|
|
146
|
-
},
|
|
147
|
-
metadata: await getMetadataFromResourceServer(pds),
|
|
148
|
-
};
|
|
149
|
-
};
|
|
150
|
-
/**
|
|
151
|
-
* Request authorization server metadata from a PDS
|
|
152
|
-
* @param host URL of the host
|
|
153
|
-
* @returns Resolved authorization server metadata
|
|
154
|
-
*/
|
|
155
|
-
export const resolveFromService = async (host) => {
|
|
156
|
-
try {
|
|
157
|
-
const metadata = await getMetadataFromResourceServer(host);
|
|
158
|
-
return { metadata };
|
|
159
|
-
}
|
|
160
|
-
catch (err) {
|
|
161
|
-
if (err instanceof ResolverError) {
|
|
162
|
-
try {
|
|
163
|
-
const metadata = await getAuthorizationServerMetadata(host);
|
|
164
|
-
return { metadata };
|
|
165
|
-
}
|
|
166
|
-
catch { }
|
|
167
|
-
}
|
|
168
|
-
throw err;
|
|
169
|
-
}
|
|
170
|
-
};
|
|
171
|
-
/**
|
|
172
|
-
* Request authorization server metadata from its protected resource metadata
|
|
173
|
-
* @param input URL of the host whose authorization server is delegated
|
|
174
|
-
* @returns Resolved authorization server metadata
|
|
175
|
-
*/
|
|
176
|
-
export const getMetadataFromResourceServer = async (input) => {
|
|
76
|
+
const getMetadataFromResourceServer = async (input) => {
|
|
177
77
|
const rs_metadata = await getProtectedResourceMetadata(input);
|
|
178
78
|
if (rs_metadata.authorization_servers?.length !== 1) {
|
|
179
79
|
throw new ResolverError(`expected exactly one authorization server in the listing`);
|
package/dist/resolvers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../lib/resolvers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../lib/resolvers.ts"],"names":[],"mappings":"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"}
|
package/dist/store/db.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export declare const createOAuthDatabase: ({ name }: OAuthDatabaseOptions) => {
|
|
|
13
13
|
dpopKey: DPoPKey;
|
|
14
14
|
metadata: AuthorizationServerMetadata;
|
|
15
15
|
verifier?: string;
|
|
16
|
+
state?: unknown;
|
|
16
17
|
}>;
|
|
17
18
|
dpopNonces: SimpleStore<string, string>;
|
|
18
19
|
inflightDpop: Map<string, PromiseWithResolvers<void>>;
|
package/dist/store/db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../lib/store/db.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,CAAC;CACb;
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../lib/store/db.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAGjD,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,CAAC;CACb;AA2CD,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEnE,eAAO,MAAM,mBAAmB,GAAI,UAAU,oBAAoB;;;;iBA1BtD,OAAO;kBACN,2BAA2B;mBAC1B,MAAM;gBACT,OAAO;;;;CAgLjB,CAAC"}
|
package/dist/store/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../lib/store/db.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../lib/store/db.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
declare const CLIENT_ASSERTION_TYPE_JWT_BEARER = "urn:ietf:params:oauth:client-assertion-type:jwt-bearer";
|
|
2
|
+
export interface ClientAssertionCredentials {
|
|
3
|
+
client_assertion: string;
|
|
4
|
+
client_assertion_type: typeof CLIENT_ASSERTION_TYPE_JWT_BEARER;
|
|
5
|
+
}
|
|
6
|
+
export interface FetchClientAssertionParams {
|
|
7
|
+
/** JWK thumbprint of the DPoP key to bind the assertion to */
|
|
8
|
+
jkt: string;
|
|
9
|
+
/** authorization server issuer (audience for the assertion) */
|
|
10
|
+
aud: string;
|
|
11
|
+
/**
|
|
12
|
+
* create a DPoP proof to prove you possess the key for the claimed jkt.
|
|
13
|
+
*
|
|
14
|
+
* @param htu origin and pathname to your backend
|
|
15
|
+
* @returns DPoP proof that can be included in the assertion
|
|
16
|
+
*/
|
|
17
|
+
createDpopProof: (htu: string) => Promise<string>;
|
|
18
|
+
}
|
|
19
|
+
export type ClientAssertionFetcher = (params: FetchClientAssertionParams) => Promise<ClientAssertionCredentials>;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=client-assertion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-assertion.d.ts","sourceRoot":"","sources":["../../lib/types/client-assertion.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,gCAAgC,2DAA2D,CAAC;AAElG,MAAM,WAAW,0BAA0B;IAC1C,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,OAAO,gCAAgC,CAAC;CAC/D;AAED,MAAM,WAAW,0BAA0B;IAC1C,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAC;IACZ,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;IAEZ;;;;;OAKG;IACH,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAClD;AAED,MAAM,MAAM,sBAAsB,GAAG,CACpC,MAAM,EAAE,0BAA0B,KAC9B,OAAO,CAAC,0BAA0B,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-assertion.js","sourceRoot":"","sources":["../../lib/types/client-assertion.ts"],"names":[],"mappings":"AAAA,MAAM,gCAAgC,GAAG,wDAAwD,CAAC"}
|
package/dist/types/dpop.d.ts
CHANGED
package/dist/types/dpop.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dpop.d.ts","sourceRoot":"","sources":["../../lib/types/dpop.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACvB,GAAG,EAAE,OAAO,CAAC;IACb,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"dpop.d.ts","sourceRoot":"","sources":["../../lib/types/dpop.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACvB,GAAG,EAAE,OAAO,CAAC;IACb,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,gFAAgF;IAChF,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CACxB"}
|
package/dist/types/identity.d.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
import type { Did } from '@atcute/lexicons';
|
|
2
|
-
export interface
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
pds:
|
|
1
|
+
import type { ActorIdentifier, Did, Handle } from '@atcute/lexicons';
|
|
2
|
+
export interface ResolvedIdentity {
|
|
3
|
+
did: Did;
|
|
4
|
+
handle: Handle;
|
|
5
|
+
pds: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ResolveIdentityOptions {
|
|
8
|
+
signal?: AbortSignal;
|
|
9
|
+
noCache?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface IdentityResolver {
|
|
12
|
+
resolve(actor: ActorIdentifier, options?: ResolveIdentityOptions): Promise<ResolvedIdentity>;
|
|
6
13
|
}
|
|
7
14
|
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../lib/types/identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../lib/types/identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAErE,MAAM,WAAW,gBAAgB;IAChC,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,sBAAsB;IACtC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAChC,OAAO,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC7F"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DidDocumentResolver, HandleResolver } from '@atcute/identity-resolver';
|
|
2
|
+
import type { IdentityResolver } from '../types/identity.js';
|
|
3
|
+
export interface DefaultIdentityResolverOptions {
|
|
4
|
+
handleResolver: HandleResolver;
|
|
5
|
+
didDocumentResolver: DidDocumentResolver;
|
|
6
|
+
}
|
|
7
|
+
export declare const defaultIdentityResolver: ({ handleResolver, didDocumentResolver, }: DefaultIdentityResolverOptions) => IdentityResolver;
|
|
8
|
+
//# sourceMappingURL=identity-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-resolver.d.ts","sourceRoot":"","sources":["../../lib/utils/identity-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAKrF,OAAO,KAAK,EAAE,gBAAgB,EAA4C,MAAM,sBAAsB,CAAC;AAEvG,MAAM,WAAW,8BAA8B;IAC9C,cAAc,EAAE,cAAc,CAAC;IAC/B,mBAAmB,EAAE,mBAAmB,CAAC;CACzC;AAED,eAAO,MAAM,uBAAuB,GAAI,0CAGrC,8BAA8B,KAAG,gBA0CnC,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { getAtprotoHandle, getPdsEndpoint } from '@atcute/identity';
|
|
2
|
+
import { isDid } from '@atcute/lexicons/syntax';
|
|
3
|
+
import { ResolverError } from '../errors.js';
|
|
4
|
+
export const defaultIdentityResolver = ({ handleResolver, didDocumentResolver, }) => {
|
|
5
|
+
return {
|
|
6
|
+
async resolve(actor, options) {
|
|
7
|
+
const identifierIsDid = isDid(actor);
|
|
8
|
+
let did;
|
|
9
|
+
if (identifierIsDid) {
|
|
10
|
+
did = actor;
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
did = await handleResolver.resolve(actor, options);
|
|
14
|
+
}
|
|
15
|
+
const doc = await didDocumentResolver.resolve(did, options);
|
|
16
|
+
const pds = getPdsEndpoint(doc);
|
|
17
|
+
if (!pds) {
|
|
18
|
+
throw new ResolverError(`missing pds endpoint`);
|
|
19
|
+
}
|
|
20
|
+
let handle = 'handle.invalid';
|
|
21
|
+
if (identifierIsDid) {
|
|
22
|
+
const writtenHandle = getAtprotoHandle(doc);
|
|
23
|
+
if (writtenHandle) {
|
|
24
|
+
try {
|
|
25
|
+
const resolved = await handleResolver.resolve(writtenHandle, options);
|
|
26
|
+
if (resolved === did) {
|
|
27
|
+
handle = writtenHandle;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
catch { }
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else if (getAtprotoHandle(doc) === actor) {
|
|
34
|
+
handle = actor;
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
did: did,
|
|
38
|
+
handle: handle,
|
|
39
|
+
pds: new URL(pds).href,
|
|
40
|
+
};
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=identity-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity-resolver.js","sourceRoot":"","sources":["../../lib/utils/identity-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGpE,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAQ7C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACvC,cAAc,EACd,mBAAmB,GACa,EAAoB,EAAE;IACtD,OAAO;QACN,KAAK,CAAC,OAAO,CAAC,KAAsB,EAAE,OAAgC;YACrE,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YAErC,IAAI,GAAQ,CAAC;YACb,IAAI,eAAe,EAAE,CAAC;gBACrB,GAAG,GAAG,KAAK,CAAC;YACb,CAAC;iBAAM,CAAC;gBACP,GAAG,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAE5D,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACV,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,CAAC;YACjD,CAAC;YAED,IAAI,MAAM,GAAW,gBAAgB,CAAC;YACtC,IAAI,eAAe,EAAE,CAAC;gBACrB,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBAC5C,IAAI,aAAa,EAAE,CAAC;oBACnB,IAAI,CAAC;wBACJ,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;wBAEtE,IAAI,QAAQ,KAAK,GAAG,EAAE,CAAC;4BACtB,MAAM,GAAG,aAAa,CAAC;wBACxB,CAAC;oBACF,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;gBACX,CAAC;YACF,CAAC;iBAAM,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC5C,MAAM,GAAG,KAAK,CAAC;YAChB,CAAC;YAED,OAAO;gBACN,GAAG,EAAE,GAAG;gBACR,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI;aACtB,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC,CAAC"}
|