@atcute/oauth-browser-client 2.0.3 → 3.0.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.
Files changed (100) hide show
  1. package/README.md +19 -12
  2. package/dist/agents/exchange.d.ts +3 -2
  3. package/dist/agents/exchange.d.ts.map +1 -1
  4. package/dist/agents/exchange.js +3 -4
  5. package/dist/agents/exchange.js.map +1 -1
  6. package/dist/agents/server-agent.d.ts +6 -6
  7. package/dist/agents/server-agent.d.ts.map +1 -1
  8. package/dist/agents/server-agent.js +5 -9
  9. package/dist/agents/server-agent.js.map +1 -1
  10. package/dist/agents/sessions.d.ts +6 -5
  11. package/dist/agents/sessions.d.ts.map +1 -1
  12. package/dist/agents/sessions.js +16 -1
  13. package/dist/agents/sessions.js.map +1 -1
  14. package/dist/agents/user-agent.d.ts +2 -2
  15. package/dist/agents/user-agent.d.ts.map +1 -1
  16. package/dist/agents/user-agent.js +2 -2
  17. package/dist/agents/user-agent.js.map +1 -1
  18. package/dist/dpop.d.ts +2 -4
  19. package/dist/dpop.d.ts.map +1 -1
  20. package/dist/dpop.js +6 -79
  21. package/dist/dpop.js.map +1 -1
  22. package/dist/environment.d.ts +5 -5
  23. package/dist/environment.d.ts.map +1 -1
  24. package/dist/environment.js.map +1 -1
  25. package/dist/errors.d.ts +3 -3
  26. package/dist/errors.d.ts.map +1 -1
  27. package/dist/errors.js +3 -3
  28. package/dist/errors.js.map +1 -1
  29. package/dist/index.d.ts +7 -15
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +1 -11
  32. package/dist/index.js.map +1 -1
  33. package/dist/resolvers.d.ts +5 -4
  34. package/dist/resolvers.d.ts.map +1 -1
  35. package/dist/resolvers.js +5 -5
  36. package/dist/resolvers.js.map +1 -1
  37. package/dist/store/db.d.ts +8 -8
  38. package/dist/store/db.d.ts.map +1 -1
  39. package/dist/store/db.js.map +1 -1
  40. package/dist/types/client-assertion.d.ts +2 -3
  41. package/dist/types/client-assertion.d.ts.map +1 -1
  42. package/dist/types/server.d.ts +2 -56
  43. package/dist/types/server.d.ts.map +1 -1
  44. package/dist/types/token.d.ts +9 -21
  45. package/dist/types/token.d.ts.map +1 -1
  46. package/dist/utils/dpop-key.d.ts +10 -0
  47. package/dist/utils/dpop-key.d.ts.map +1 -0
  48. package/dist/utils/dpop-key.js +13 -0
  49. package/dist/utils/dpop-key.js.map +1 -0
  50. package/dist/utils/misc.d.ts.map +1 -1
  51. package/dist/utils/misc.js.map +1 -1
  52. package/dist/utils/response.d.ts.map +1 -1
  53. package/dist/utils/response.js.map +1 -1
  54. package/dist/utils/runtime.d.ts +0 -6
  55. package/dist/utils/runtime.d.ts.map +1 -1
  56. package/dist/utils/runtime.js +0 -16
  57. package/dist/utils/runtime.js.map +1 -1
  58. package/dist/utils/strings.d.ts.map +1 -1
  59. package/dist/utils/strings.js.map +1 -1
  60. package/lib/agents/exchange.ts +15 -16
  61. package/lib/agents/server-agent.ts +21 -24
  62. package/lib/agents/sessions.ts +28 -7
  63. package/lib/agents/user-agent.ts +14 -8
  64. package/lib/dpop.ts +9 -110
  65. package/lib/environment.ts +5 -5
  66. package/lib/errors.ts +15 -14
  67. package/lib/index.ts +16 -16
  68. package/lib/resolvers.ts +17 -15
  69. package/lib/store/db.ts +8 -8
  70. package/lib/types/client-assertion.ts +2 -4
  71. package/lib/types/server.ts +2 -57
  72. package/lib/types/token.ts +10 -24
  73. package/lib/utils/dpop-key.ts +24 -0
  74. package/lib/utils/runtime.ts +0 -22
  75. package/package.json +20 -11
  76. package/dist/types/client.d.ts +0 -38
  77. package/dist/types/client.d.ts.map +0 -1
  78. package/dist/types/client.js +0 -2
  79. package/dist/types/client.js.map +0 -1
  80. package/dist/types/dpop.d.ts +0 -10
  81. package/dist/types/dpop.d.ts.map +0 -1
  82. package/dist/types/dpop.js +0 -2
  83. package/dist/types/dpop.js.map +0 -1
  84. package/dist/types/identity.d.ts +0 -6
  85. package/dist/types/identity.d.ts.map +0 -1
  86. package/dist/types/identity.js +0 -2
  87. package/dist/types/identity.js.map +0 -1
  88. package/dist/types/par.d.ts +0 -5
  89. package/dist/types/par.d.ts.map +0 -1
  90. package/dist/types/par.js +0 -2
  91. package/dist/types/par.js.map +0 -1
  92. package/dist/utils/identity-resolver.d.ts +0 -7
  93. package/dist/utils/identity-resolver.d.ts.map +0 -1
  94. package/dist/utils/identity-resolver.js +0 -8
  95. package/dist/utils/identity-resolver.js.map +0 -1
  96. package/lib/types/client.ts +0 -82
  97. package/lib/types/dpop.ts +0 -9
  98. package/lib/types/identity.ts +0 -12
  99. package/lib/types/par.ts +0 -4
  100. package/lib/utils/identity-resolver.ts +0 -12
package/lib/resolvers.ts CHANGED
@@ -1,15 +1,15 @@
1
+ import type { ResolvedActor } from '@atcute/identity-resolver';
1
2
  import type { ActorIdentifier } from '@atcute/lexicons';
3
+ import type { OAuthAuthorizationServerMetadata, OAuthProtectedResourceMetadata } from '@atcute/oauth-types';
2
4
 
3
- import { identityResolver } from './environment.js';
4
- import { ResolverError } from './errors.js';
5
- import type { ResolvedIdentity } from './types/identity.js';
6
- import type { AuthorizationServerMetadata, ProtectedResourceMetadata } from './types/server.js';
7
- import { extractContentType } from './utils/response.js';
8
- import { isValidUrl } from './utils/strings.js';
5
+ import { identityResolver } from './environment.ts';
6
+ import { ResolverError } from './errors.ts';
7
+ import { extractContentType } from './utils/response.ts';
8
+ import { isValidUrl } from './utils/strings.ts';
9
9
 
10
10
  export const resolveFromIdentifier = async (
11
11
  ident: ActorIdentifier,
12
- ): Promise<{ identity: ResolvedIdentity; metadata: AuthorizationServerMetadata }> => {
12
+ ): Promise<{ identity: ResolvedActor; metadata: OAuthAuthorizationServerMetadata }> => {
13
13
  const identity = await identityResolver.resolve(ident);
14
14
 
15
15
  return {
@@ -20,14 +20,14 @@ export const resolveFromIdentifier = async (
20
20
 
21
21
  export const resolveFromService = async (
22
22
  host: string,
23
- ): Promise<{ metadata: AuthorizationServerMetadata }> => {
23
+ ): Promise<{ metadata: OAuthAuthorizationServerMetadata }> => {
24
24
  try {
25
25
  const metadata = await getMetadataFromResourceServer(host);
26
26
  return { metadata };
27
27
  } catch (err) {
28
28
  if (err instanceof ResolverError) {
29
29
  try {
30
- const metadata = await getAuthorizationServerMetadata(host);
30
+ const metadata = await getOAuthAuthorizationServerMetadata(host);
31
31
  return { metadata };
32
32
  } catch {}
33
33
  }
@@ -36,7 +36,7 @@ export const resolveFromService = async (
36
36
  }
37
37
  };
38
38
 
39
- const getProtectedResourceMetadata = async (host: string): Promise<ProtectedResourceMetadata> => {
39
+ const getOAuthProtectedResourceMetadata = async (host: string): Promise<OAuthProtectedResourceMetadata> => {
40
40
  const url = new URL(`/.well-known/oauth-protected-resource`, host);
41
41
  const response = await fetch(url.href, {
42
42
  redirect: 'manual',
@@ -49,7 +49,7 @@ const getProtectedResourceMetadata = async (host: string): Promise<ProtectedReso
49
49
  throw new ResolverError(`unexpected response`);
50
50
  }
51
51
 
52
- const metadata = (await response.json()) as ProtectedResourceMetadata;
52
+ const metadata = (await response.json()) as OAuthProtectedResourceMetadata;
53
53
  if (metadata.resource !== url.origin) {
54
54
  throw new ResolverError(`unexpected issuer`);
55
55
  }
@@ -57,7 +57,9 @@ const getProtectedResourceMetadata = async (host: string): Promise<ProtectedReso
57
57
  return metadata;
58
58
  };
59
59
 
60
- const getAuthorizationServerMetadata = async (host: string): Promise<AuthorizationServerMetadata> => {
60
+ const getOAuthAuthorizationServerMetadata = async (
61
+ host: string,
62
+ ): Promise<OAuthAuthorizationServerMetadata> => {
61
63
  const url = new URL(`/.well-known/oauth-authorization-server`, host);
62
64
  const response = await fetch(url.href, {
63
65
  redirect: 'manual',
@@ -70,7 +72,7 @@ const getAuthorizationServerMetadata = async (host: string): Promise<Authorizati
70
72
  throw new ResolverError(`unexpected response`);
71
73
  }
72
74
 
73
- const metadata = (await response.json()) as AuthorizationServerMetadata;
75
+ const metadata = (await response.json()) as OAuthAuthorizationServerMetadata;
74
76
  if (metadata.issuer !== url.origin) {
75
77
  throw new ResolverError(`unexpected issuer`);
76
78
  }
@@ -93,7 +95,7 @@ const getAuthorizationServerMetadata = async (host: string): Promise<Authorizati
93
95
  };
94
96
 
95
97
  const getMetadataFromResourceServer = async (input: string) => {
96
- const rs_metadata = await getProtectedResourceMetadata(input);
98
+ const rs_metadata = await getOAuthProtectedResourceMetadata(input);
97
99
 
98
100
  if (rs_metadata.authorization_servers?.length !== 1) {
99
101
  throw new ResolverError(`expected exactly one authorization server in the listing`);
@@ -101,7 +103,7 @@ const getMetadataFromResourceServer = async (input: string) => {
101
103
 
102
104
  const issuer = rs_metadata.authorization_servers[0];
103
105
 
104
- const as_metadata = await getAuthorizationServerMetadata(issuer);
106
+ const as_metadata = await getOAuthAuthorizationServerMetadata(issuer);
105
107
 
106
108
  if (as_metadata.protected_resources) {
107
109
  if (!as_metadata.protected_resources.includes(rs_metadata.resource)) {
package/lib/store/db.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import type { Did } from '@atcute/lexicons';
2
+ import type { DpopPrivateJwk } from '@atcute/oauth-crypto';
3
+ import type { OAuthAuthorizationServerMetadata } from '@atcute/oauth-types';
2
4
 
3
- import type { DPoPKey } from '../types/dpop.js';
4
- import type { AuthorizationServerMetadata } from '../types/server.js';
5
- import type { SimpleStore } from '../types/store.js';
6
- import type { Session } from '../types/token.js';
7
- import { locks } from '../utils/runtime.js';
5
+ import type { SimpleStore } from '../types/store.ts';
6
+ import type { RawSession } from '../types/token.ts';
7
+ import { locks } from '../utils/runtime.ts';
8
8
 
9
9
  export interface OAuthDatabaseOptions {
10
10
  name: string;
@@ -19,7 +19,7 @@ interface SchemaItem<T> {
19
19
  interface Schema {
20
20
  sessions: {
21
21
  key: Did;
22
- value: Session;
22
+ value: RawSession;
23
23
  indexes: {
24
24
  expiresAt: number;
25
25
  };
@@ -27,8 +27,8 @@ interface Schema {
27
27
  states: {
28
28
  key: string;
29
29
  value: {
30
- dpopKey: DPoPKey;
31
- metadata: AuthorizationServerMetadata;
30
+ dpopKey: DpopPrivateJwk;
31
+ metadata: OAuthAuthorizationServerMetadata;
32
32
  verifier?: string;
33
33
  state?: unknown;
34
34
  };
@@ -6,18 +6,16 @@ export interface ClientAssertionCredentials {
6
6
  }
7
7
 
8
8
  export interface FetchClientAssertionParams {
9
- /** JWK thumbprint of the DPoP key to bind the assertion to */
10
- jkt: string;
11
9
  /** authorization server issuer (audience for the assertion) */
12
10
  aud: string;
13
-
14
11
  /**
15
12
  * create a DPoP proof to prove you possess the key for the claimed jkt.
16
13
  *
17
14
  * @param htu origin and pathname to your backend
15
+ * @param nonce optional DPoP nonce from the server
18
16
  * @returns DPoP proof that can be included in the assertion
19
17
  */
20
- createDpopProof: (htu: string) => Promise<string>;
18
+ createDpopProof: (htu: string, nonce?: string) => Promise<string>;
21
19
  }
22
20
 
23
21
  export type ClientAssertionFetcher = (
@@ -1,62 +1,7 @@
1
- export interface ProtectedResourceMetadata {
2
- resource: string;
3
- jwks_uri?: string;
4
- authorization_servers?: string[];
5
- scopes_supported?: string[];
6
- bearer_methods_supported?: ('header' | 'body' | 'query')[];
7
- resource_signing_alg_values_supported?: string[];
8
- resource_documentation?: string;
9
- resource_policy_uri?: string;
10
- resource_tos_uri?: string;
11
- }
12
-
13
- export interface AuthorizationServerMetadata {
14
- issuer: string;
15
- authorization_endpoint: string;
16
- token_endpoint: string;
17
- jwks_uri?: string;
18
- scopes_supported?: string[];
19
- claims_supported?: string[];
20
- claims_locales_supported?: string[];
21
- claims_parameter_supported?: boolean;
22
- request_parameter_supported?: boolean;
23
- request_uri_parameter_supported?: boolean;
24
- require_request_uri_registration?: boolean;
25
- subject_types_supported?: string[];
26
- response_types_supported?: string[];
27
- response_modes_supported?: string[];
28
- grant_types_supported?: string[];
29
- code_challenge_methods_supported?: string[];
30
- ui_locales_supported?: string[];
31
- id_token_signing_alg_values_supported?: string[];
32
- display_values_supported?: string[];
33
- request_object_signing_alg_values_supported?: string[];
34
- authorization_response_iss_parameter_supported?: boolean;
35
- authorization_details_types_supported?: string[];
36
- request_object_encryption_alg_values_supported?: string[];
37
- request_object_encryption_enc_values_supported?: string[];
38
- token_endpoint_auth_methods_supported?: string[];
39
- token_endpoint_auth_signing_alg_values_supported?: string[];
40
- revocation_endpoint?: string;
41
- revocation_endpoint_auth_methods_supported?: string[];
42
- revocation_endpoint_auth_signing_alg_values_supported?: string[];
43
- introspection_endpoint?: string;
44
- introspection_endpoint_auth_methods_supported?: string[];
45
- introspection_endpoint_auth_signing_alg_values_supported?: string[];
46
- pushed_authorization_request_endpoint?: string;
47
- pushed_authorization_request_endpoint_auth_methods_supported?: string[];
48
- pushed_authorization_request_endpoint_auth_signing_alg_values_supported?: string[];
49
- require_pushed_authorization_requests?: boolean;
50
- userinfo_endpoint?: string;
51
- end_session_endpoint?: string;
52
- registration_endpoint?: string;
53
- dpop_signing_alg_values_supported?: string[];
54
- protected_resources?: string[];
55
- client_id_metadata_document_supported?: boolean;
56
- }
1
+ import type { OAuthAuthorizationServerMetadata } from '@atcute/oauth-types';
57
2
 
58
3
  export interface PersistedAuthorizationServerMetadata extends Pick<
59
- AuthorizationServerMetadata,
4
+ OAuthAuthorizationServerMetadata,
60
5
  | 'issuer'
61
6
  | 'authorization_endpoint'
62
7
  | 'introspection_endpoint'
@@ -1,29 +1,9 @@
1
1
  import type { Did } from '@atcute/lexicons';
2
+ import type { DpopPrivateJwk } from '@atcute/oauth-crypto';
2
3
 
3
- import type { DPoPKey } from './dpop.js';
4
- import type { PersistedAuthorizationServerMetadata } from './server.js';
4
+ import type { LegacyDpopKey } from '../utils/dpop-key.ts';
5
5
 
6
- export interface OAuthTokenResponse {
7
- access_token: string;
8
- // Can be DPoP or Bearer, normalize casing.
9
- token_type: string;
10
- issuer?: string;
11
- sub?: string;
12
- scope?: string;
13
- id_token?: `${string}.${string}.${string}`;
14
- refresh_token?: string;
15
- expires_in?: number;
16
- authorization_details?:
17
- | {
18
- type: string;
19
- locations?: string[];
20
- actions?: string[];
21
- datatypes?: string[];
22
- identifier?: string;
23
- privileges?: string[];
24
- }[]
25
- | undefined;
26
- }
6
+ import type { PersistedAuthorizationServerMetadata } from './server.ts';
27
7
 
28
8
  export interface TokenInfo {
29
9
  scope: string;
@@ -39,8 +19,14 @@ export interface ExchangeInfo {
39
19
  server: PersistedAuthorizationServerMetadata;
40
20
  }
41
21
 
22
+ export interface RawSession {
23
+ dpopKey: DpopPrivateJwk | LegacyDpopKey;
24
+ info: ExchangeInfo;
25
+ token: TokenInfo;
26
+ }
27
+
42
28
  export interface Session {
43
- dpopKey: DPoPKey;
29
+ dpopKey: DpopPrivateJwk;
44
30
  info: ExchangeInfo;
45
31
  token: TokenInfo;
46
32
  }
@@ -0,0 +1,24 @@
1
+ import { fromBase64Url } from '@atcute/multibase';
2
+ import type { DpopPrivateJwk } from '@atcute/oauth-crypto';
3
+
4
+ export interface LegacyDpopKey {
5
+ typ: 'ES256';
6
+ key: string;
7
+ jwt: string;
8
+ jkt?: string;
9
+ }
10
+
11
+ const ES256_ALG = { name: 'ECDSA', namedCurve: 'P-256' } as const;
12
+
13
+ export const isLegacyDpopKey = (key: DpopPrivateJwk | LegacyDpopKey): key is LegacyDpopKey => {
14
+ return typeof (key as LegacyDpopKey).key === 'string' && typeof (key as LegacyDpopKey).jwt === 'string';
15
+ };
16
+
17
+ export const migrateLegacyDpopKey = async (key: LegacyDpopKey): Promise<DpopPrivateJwk> => {
18
+ const pkcs8 = fromBase64Url(key.key);
19
+ const cryptoKey = await crypto.subtle.importKey('pkcs8', pkcs8, ES256_ALG, true, ['sign']);
20
+ const jwk = (await crypto.subtle.exportKey('jwk', cryptoKey)) as DpopPrivateJwk;
21
+ jwk.alg = 'ES256';
22
+
23
+ return jwk;
24
+ };
@@ -1,23 +1 @@
1
- import { nanoid } from 'nanoid';
2
-
3
- import { toBase64Url } from '@atcute/multibase';
4
- import { encodeUtf8, toSha256 } from '@atcute/uint8array';
5
-
6
1
  export const locks: LockManager | undefined = typeof navigator !== 'undefined' ? navigator.locks : undefined;
7
-
8
- export const stringToSha256 = async (input: string): Promise<string> => {
9
- const bytes = encodeUtf8(input);
10
- const digest = await toSha256(bytes);
11
-
12
- return toBase64Url(digest);
13
- };
14
-
15
- export const generatePKCE = async (): Promise<{ verifier: string; challenge: string; method: string }> => {
16
- const verifier = nanoid(64);
17
-
18
- return {
19
- verifier: verifier,
20
- challenge: await stringToSha256(verifier),
21
- method: 'S256',
22
- };
23
- };
package/package.json CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
- "type": "module",
3
2
  "name": "@atcute/oauth-browser-client",
4
- "version": "2.0.3",
3
+ "version": "3.0.1",
5
4
  "description": "minimal OAuth browser client implementation for AT Protocol",
6
5
  "license": "0BSD",
7
6
  "repository": {
@@ -12,22 +11,32 @@
12
11
  "dist/",
13
12
  "lib/",
14
13
  "!lib/**/*.bench.ts",
15
- "!lib/**/*.test.ts"
14
+ "!lib/**/*.test.ts",
15
+ "!dist/**/*.{test,bench}.*"
16
16
  ],
17
+ "type": "module",
18
+ "sideEffects": false,
17
19
  "exports": {
18
20
  ".": "./dist/index.js"
19
21
  },
20
- "sideEffects": false,
22
+ "publishConfig": {
23
+ "access": "public"
24
+ },
21
25
  "dependencies": {
22
- "nanoid": "^5.1.6",
23
- "@atcute/client": "^4.1.1",
24
- "@atcute/identity-resolver": "^1.2.0",
25
- "@atcute/lexicons": "^1.2.5",
26
- "@atcute/uint8array": "^1.0.6",
27
- "@atcute/multibase": "^1.1.6"
26
+ "nanoid": "^5.1.11",
27
+ "@atcute/client": "^4.2.2",
28
+ "@atcute/lexicons": "^1.3.1",
29
+ "@atcute/identity-resolver": "^1.2.3",
30
+ "@atcute/multibase": "^1.2.0",
31
+ "@atcute/oauth-types": "^0.1.1",
32
+ "@atcute/oauth-crypto": "^0.1.0"
33
+ },
34
+ "peerDependencies": {
35
+ "@atcute/identity-resolver": "^1.0.0",
36
+ "@atcute/lexicons": "^1.0.0"
28
37
  },
29
38
  "scripts": {
30
- "build": "tsgo --project tsconfig.build.json",
39
+ "build": "tsgo",
31
40
  "prepublish": "rm -rf dist; pnpm run build"
32
41
  }
33
42
  }
@@ -1,38 +0,0 @@
1
- export interface ClientMetadata {
2
- redirect_uris: string[];
3
- response_types: ('code' | 'token' | 'none' | 'code id_token token' | 'code id_token' | 'code token' | 'id_token token' | 'id_token')[];
4
- grant_types: ('authorization_code' | 'implicit' | 'refresh_token' | 'password' | 'client_credentials' | 'urn:ietf:params:oauth:grant-type:jwt-bearer' | 'urn:ietf:params:oauth:grant-type:saml2-bearer')[];
5
- scope?: string;
6
- token_endpoint_auth_method?: 'none' | 'client_secret_basic' | 'client_secret_jwt' | 'client_secret_post' | 'private_key_jwt' | 'self_signed_tls_client_auth' | 'tls_client_auth';
7
- token_endpoint_auth_signing_alg?: string;
8
- introspection_endpoint_auth_method?: 'none' | 'client_secret_basic' | 'client_secret_jwt' | 'client_secret_post' | 'private_key_jwt' | 'self_signed_tls_client_auth' | 'tls_client_auth';
9
- introspection_endpoint_auth_signing_alg?: string;
10
- revocation_endpoint_auth_method?: 'none' | 'client_secret_basic' | 'client_secret_jwt' | 'client_secret_post' | 'private_key_jwt' | 'self_signed_tls_client_auth' | 'tls_client_auth';
11
- revocation_endpoint_auth_signing_alg?: string;
12
- pushed_authorization_request_endpoint_auth_method?: 'none' | 'client_secret_basic' | 'client_secret_jwt' | 'client_secret_post' | 'private_key_jwt' | 'self_signed_tls_client_auth' | 'tls_client_auth';
13
- pushed_authorization_request_endpoint_auth_signing_alg?: string;
14
- userinfo_signed_response_alg?: string;
15
- userinfo_encrypted_response_alg?: string;
16
- jwks_uri?: string;
17
- jwks?: unknown;
18
- application_type?: 'web' | 'native';
19
- subject_type?: 'public' | 'pairwise';
20
- request_object_signing_alg?: string;
21
- id_token_signed_response_alg?: string;
22
- authorization_signed_response_alg?: string;
23
- authorization_encrypted_response_enc?: 'A128CBC-HS256';
24
- authorization_encrypted_response_alg?: string;
25
- client_id?: string;
26
- client_name?: string;
27
- client_uri?: string;
28
- policy_uri?: string;
29
- tos_uri?: string;
30
- logo_uri?: string;
31
- default_max_age?: number;
32
- require_auth_time?: boolean;
33
- contacts?: string[];
34
- tls_client_certificate_bound_access_tokens?: boolean;
35
- dpop_bound_access_tokens?: boolean;
36
- authorization_details_types?: string[];
37
- }
38
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../lib/types/client.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE,CACb,MAAM,GACN,OAAO,GACP,MAAM,GACN,qBAAqB,GACrB,eAAe,GACf,YAAY,GACZ,gBAAgB,GAChB,UAAU,CACZ,EAAE,CAAC;IACJ,WAAW,EAAE,CACV,oBAAoB,GACpB,UAAU,GACV,eAAe,GACf,UAAU,GACV,oBAAoB,GACpB,6CAA6C,GAC7C,+CAA+C,CACjD,EAAE,CAAC;IACJ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B,CAAC,EACxB,MAAM,GACN,qBAAqB,GACrB,mBAAmB,GACnB,oBAAoB,GACpB,iBAAiB,GACjB,6BAA6B,GAC7B,iBAAiB,CAAC;IACrB,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,kCAAkC,CAAC,EAChC,MAAM,GACN,qBAAqB,GACrB,mBAAmB,GACnB,oBAAoB,GACpB,iBAAiB,GACjB,6BAA6B,GAC7B,iBAAiB,CAAC;IACrB,uCAAuC,CAAC,EAAE,MAAM,CAAC;IACjD,+BAA+B,CAAC,EAC7B,MAAM,GACN,qBAAqB,GACrB,mBAAmB,GACnB,oBAAoB,GACpB,iBAAiB,GACjB,6BAA6B,GAC7B,iBAAiB,CAAC;IACrB,oCAAoC,CAAC,EAAE,MAAM,CAAC;IAC9C,iDAAiD,CAAC,EAC/C,MAAM,GACN,qBAAqB,GACrB,mBAAmB,GACnB,oBAAoB,GACpB,iBAAiB,GACjB,6BAA6B,GAC7B,iBAAiB,CAAC;IACrB,sDAAsD,CAAC,EAAE,MAAM,CAAC;IAChE,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gBAAgB,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACpC,YAAY,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACrC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,oCAAoC,CAAC,EAAE,eAAe,CAAC;IACvD,oCAAoC,CAAC,EAAE,MAAM,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,0CAA0C,CAAC,EAAE,OAAO,CAAC;IACrD,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,2BAA2B,CAAC,EAAE,MAAM,EAAE,CAAC;CACvC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../lib/types/client.ts"],"names":[],"mappings":""}
@@ -1,10 +0,0 @@
1
- export interface DPoPKey {
2
- typ: 'ES256';
3
- /** private key in base64url-encoded pkcs #8 */
4
- key: string;
5
- /** base64url-encoded jwt token */
6
- jwt: string;
7
- /** JWK thumbprint (RFC 7638) for this key, used for client assertion binding */
8
- jkt: string | undefined;
9
- }
10
- //# sourceMappingURL=dpop.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=dpop.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dpop.js","sourceRoot":"","sources":["../../lib/types/dpop.ts"],"names":[],"mappings":""}
@@ -1,6 +0,0 @@
1
- import type { ActorResolver, LocalActorResolverOptions, ResolveActorOptions, ResolvedActor } from '@atcute/identity-resolver';
2
- export type IdentityResolver = ActorResolver;
3
- export type ResolvedIdentity = ResolvedActor;
4
- export type ResolveIdentityOptions = ResolveActorOptions;
5
- export type { LocalActorResolverOptions as DefaultIdentityResolverOptions };
6
- //# sourceMappingURL=identity.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../lib/types/identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EACb,yBAAyB,EACzB,mBAAmB,EACnB,aAAa,EACb,MAAM,2BAA2B,CAAC;AAGnC,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAC7C,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAC7C,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AACzD,YAAY,EAAE,yBAAyB,IAAI,8BAA8B,EAAE,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=identity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../lib/types/identity.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- export interface OAuthParResponse {
2
- request_uri: string;
3
- expires_in: number;
4
- }
5
- //# sourceMappingURL=par.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"par.d.ts","sourceRoot":"","sources":["../../lib/types/par.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACnB"}
package/dist/types/par.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=par.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"par.js","sourceRoot":"","sources":["../../lib/types/par.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- import type { DefaultIdentityResolverOptions } from '../types/identity.js';
2
- export type { DefaultIdentityResolverOptions };
3
- /**
4
- * @deprecated use `LocalActorResolver` from `@atcute/identity-resolver` instead
5
- */
6
- export declare const defaultIdentityResolver: (options: DefaultIdentityResolverOptions) => import("@atcute/identity-resolver").ActorResolver;
7
- //# sourceMappingURL=identity-resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"identity-resolver.d.ts","sourceRoot":"","sources":["../../lib/utils/identity-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,8BAA8B,EAAoB,MAAM,sBAAsB,CAAC;AAE7F,YAAY,EAAE,8BAA8B,EAAE,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,uBAAuB,gGAEnC,CAAC"}
@@ -1,8 +0,0 @@
1
- import { LocalActorResolver } from '@atcute/identity-resolver';
2
- /**
3
- * @deprecated use `LocalActorResolver` from `@atcute/identity-resolver` instead
4
- */
5
- export const defaultIdentityResolver = (options) => {
6
- return new LocalActorResolver(options);
7
- };
8
- //# sourceMappingURL=identity-resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"identity-resolver.js","sourceRoot":"","sources":["../../lib/utils/identity-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAM/D;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAAuC,EAAoB,EAAE,CAAC;IACrG,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAAA,CACvC,CAAC"}
@@ -1,82 +0,0 @@
1
- export interface ClientMetadata {
2
- redirect_uris: string[];
3
- response_types: (
4
- | 'code'
5
- | 'token'
6
- | 'none'
7
- | 'code id_token token'
8
- | 'code id_token'
9
- | 'code token'
10
- | 'id_token token'
11
- | 'id_token'
12
- )[];
13
- grant_types: (
14
- | 'authorization_code'
15
- | 'implicit'
16
- | 'refresh_token'
17
- | 'password'
18
- | 'client_credentials'
19
- | 'urn:ietf:params:oauth:grant-type:jwt-bearer'
20
- | 'urn:ietf:params:oauth:grant-type:saml2-bearer'
21
- )[];
22
- scope?: string;
23
- token_endpoint_auth_method?:
24
- | 'none'
25
- | 'client_secret_basic'
26
- | 'client_secret_jwt'
27
- | 'client_secret_post'
28
- | 'private_key_jwt'
29
- | 'self_signed_tls_client_auth'
30
- | 'tls_client_auth';
31
- token_endpoint_auth_signing_alg?: string;
32
- introspection_endpoint_auth_method?:
33
- | 'none'
34
- | 'client_secret_basic'
35
- | 'client_secret_jwt'
36
- | 'client_secret_post'
37
- | 'private_key_jwt'
38
- | 'self_signed_tls_client_auth'
39
- | 'tls_client_auth';
40
- introspection_endpoint_auth_signing_alg?: string;
41
- revocation_endpoint_auth_method?:
42
- | 'none'
43
- | 'client_secret_basic'
44
- | 'client_secret_jwt'
45
- | 'client_secret_post'
46
- | 'private_key_jwt'
47
- | 'self_signed_tls_client_auth'
48
- | 'tls_client_auth';
49
- revocation_endpoint_auth_signing_alg?: string;
50
- pushed_authorization_request_endpoint_auth_method?:
51
- | 'none'
52
- | 'client_secret_basic'
53
- | 'client_secret_jwt'
54
- | 'client_secret_post'
55
- | 'private_key_jwt'
56
- | 'self_signed_tls_client_auth'
57
- | 'tls_client_auth';
58
- pushed_authorization_request_endpoint_auth_signing_alg?: string;
59
- userinfo_signed_response_alg?: string;
60
- userinfo_encrypted_response_alg?: string;
61
- jwks_uri?: string;
62
- jwks?: unknown;
63
- application_type?: 'web' | 'native';
64
- subject_type?: 'public' | 'pairwise';
65
- request_object_signing_alg?: string;
66
- id_token_signed_response_alg?: string;
67
- authorization_signed_response_alg?: string;
68
- authorization_encrypted_response_enc?: 'A128CBC-HS256';
69
- authorization_encrypted_response_alg?: string;
70
- client_id?: string;
71
- client_name?: string;
72
- client_uri?: string;
73
- policy_uri?: string;
74
- tos_uri?: string;
75
- logo_uri?: string;
76
- default_max_age?: number;
77
- require_auth_time?: boolean;
78
- contacts?: string[];
79
- tls_client_certificate_bound_access_tokens?: boolean;
80
- dpop_bound_access_tokens?: boolean;
81
- authorization_details_types?: string[];
82
- }
package/lib/types/dpop.ts DELETED
@@ -1,9 +0,0 @@
1
- export interface DPoPKey {
2
- typ: 'ES256';
3
- /** private key in base64url-encoded pkcs #8 */
4
- key: string;
5
- /** base64url-encoded jwt token */
6
- jwt: string;
7
- /** JWK thumbprint (RFC 7638) for this key, used for client assertion binding */
8
- jkt: string | undefined;
9
- }
@@ -1,12 +0,0 @@
1
- import type {
2
- ActorResolver,
3
- LocalActorResolverOptions,
4
- ResolveActorOptions,
5
- ResolvedActor,
6
- } from '@atcute/identity-resolver';
7
-
8
- // re-export types for backward compatibility
9
- export type IdentityResolver = ActorResolver;
10
- export type ResolvedIdentity = ResolvedActor;
11
- export type ResolveIdentityOptions = ResolveActorOptions;
12
- export type { LocalActorResolverOptions as DefaultIdentityResolverOptions };
package/lib/types/par.ts DELETED
@@ -1,4 +0,0 @@
1
- export interface OAuthParResponse {
2
- request_uri: string;
3
- expires_in: number;
4
- }
@@ -1,12 +0,0 @@
1
- import { LocalActorResolver } from '@atcute/identity-resolver';
2
-
3
- import type { DefaultIdentityResolverOptions, IdentityResolver } from '../types/identity.js';
4
-
5
- export type { DefaultIdentityResolverOptions };
6
-
7
- /**
8
- * @deprecated use `LocalActorResolver` from `@atcute/identity-resolver` instead
9
- */
10
- export const defaultIdentityResolver = (options: DefaultIdentityResolverOptions): IdentityResolver => {
11
- return new LocalActorResolver(options);
12
- };