@absolutejs/auth 0.56.2 → 0.56.3

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 (174) hide show
  1. package/dist/cli/migrate.js.map +1 -1
  2. package/dist/index.js +15 -1
  3. package/dist/index.js.map +4 -4
  4. package/dist/oidc/index.js +5 -1
  5. package/dist/oidc/index.js.map +3 -3
  6. package/dist/server.js +15 -1
  7. package/dist/server.js.map +4 -4
  8. package/package.json +1 -1
  9. package/dist/abuse/captcha.d.ts +0 -11
  10. package/dist/abuse/config.d.ts +0 -29
  11. package/dist/actions.d.ts +0 -27
  12. package/dist/agents/config.d.ts +0 -44
  13. package/dist/agents/context.d.ts +0 -46
  14. package/dist/agents/principal.d.ts +0 -4
  15. package/dist/agents/registration.d.ts +0 -162
  16. package/dist/agents/routes.d.ts +0 -321
  17. package/dist/agents/types.d.ts +0 -129
  18. package/dist/apikeys/config.d.ts +0 -64
  19. package/dist/apikeys/routes.d.ts +0 -83
  20. package/dist/apikeys/types.d.ts +0 -53
  21. package/dist/audit/config.d.ts +0 -9
  22. package/dist/audit/export.d.ts +0 -2
  23. package/dist/audit/inMemoryAuditStore.d.ts +0 -2
  24. package/dist/audit/integrity.d.ts +0 -19
  25. package/dist/audit/postgresAuditStore.d.ts +0 -116
  26. package/dist/audit/siem.d.ts +0 -11
  27. package/dist/audit/types.d.ts +0 -19
  28. package/dist/audit/wrap.d.ts +0 -9
  29. package/dist/authContext.d.ts +0 -193
  30. package/dist/authorization/config.d.ts +0 -19
  31. package/dist/authorization/protectPermission.d.ts +0 -52
  32. package/dist/compliance/cipher.d.ts +0 -11
  33. package/dist/compliance/config.d.ts +0 -18
  34. package/dist/compliance/redaction.d.ts +0 -8
  35. package/dist/compliance/routes.d.ts +0 -89
  36. package/dist/constants.d.ts +0 -10
  37. package/dist/credentials/backgroundOps.d.ts +0 -45
  38. package/dist/credentials/config.d.ts +0 -68
  39. package/dist/credentials/emailValidation.d.ts +0 -9
  40. package/dist/credentials/emailVerification.d.ts +0 -83
  41. package/dist/credentials/import.d.ts +0 -34
  42. package/dist/credentials/inMemoryCredentialStore.d.ts +0 -2
  43. package/dist/credentials/legacyHashers.d.ts +0 -3
  44. package/dist/credentials/login.d.ts +0 -76
  45. package/dist/credentials/passwordPolicy.d.ts +0 -15
  46. package/dist/credentials/passwordReset.d.ts +0 -87
  47. package/dist/credentials/postgresCredentialStore.d.ts +0 -235
  48. package/dist/credentials/register.d.ts +0 -54
  49. package/dist/credentials/routes.d.ts +0 -201
  50. package/dist/credentials/types.d.ts +0 -26
  51. package/dist/crypto.d.ts +0 -32
  52. package/dist/errors.d.ts +0 -12
  53. package/dist/federation/tokenStore.d.ts +0 -29
  54. package/dist/htmx/configuredRoutes.d.ts +0 -542
  55. package/dist/htmx/renderers.d.ts +0 -8
  56. package/dist/htmx/routes.d.ts +0 -514
  57. package/dist/htmx/types.d.ts +0 -129
  58. package/dist/linkedProviders/inMemoryStores.d.ts +0 -9
  59. package/dist/linkedProviders/neonStores.d.ts +0 -484
  60. package/dist/linkedProviders/oauthAccountResolver.d.ts +0 -28
  61. package/dist/linkedProviders/oauthResolver.d.ts +0 -9
  62. package/dist/linkedProviders/resolver.d.ts +0 -22
  63. package/dist/lockout/config.d.ts +0 -17
  64. package/dist/lockout/inMemoryLockoutStore.d.ts +0 -2
  65. package/dist/lockout/postgresLockoutStore.d.ts +0 -71
  66. package/dist/lockout/redisLockoutStore.d.ts +0 -3
  67. package/dist/lockout/types.d.ts +0 -12
  68. package/dist/mfa/backupCodes.d.ts +0 -5
  69. package/dist/mfa/challenge.d.ts +0 -70
  70. package/dist/mfa/config.d.ts +0 -50
  71. package/dist/mfa/gate.d.ts +0 -2
  72. package/dist/mfa/inMemoryMfaStore.d.ts +0 -2
  73. package/dist/mfa/management.d.ts +0 -106
  74. package/dist/mfa/postgresMfaStore.d.ts +0 -206
  75. package/dist/mfa/rotation.d.ts +0 -17
  76. package/dist/mfa/routes.d.ts +0 -234
  77. package/dist/mfa/secret.d.ts +0 -2
  78. package/dist/mfa/sms.d.ts +0 -105
  79. package/dist/mfa/totp.d.ts +0 -91
  80. package/dist/mfa/types.d.ts +0 -23
  81. package/dist/oidc/clientAuth.d.ts +0 -19
  82. package/dist/oidc/config.d.ts +0 -296
  83. package/dist/oidc/dpop.d.ts +0 -23
  84. package/dist/oidc/inMemoryVciStores.d.ts +0 -3
  85. package/dist/oidc/jar.d.ts +0 -14
  86. package/dist/oidc/keys.d.ts +0 -35
  87. package/dist/oidc/logout.d.ts +0 -38
  88. package/dist/oidc/mtls.d.ts +0 -11
  89. package/dist/oidc/par.d.ts +0 -28
  90. package/dist/oidc/registration.d.ts +0 -138
  91. package/dist/oidc/routes.d.ts +0 -569
  92. package/dist/oidc/types.d.ts +0 -145
  93. package/dist/oidc/userinfo.d.ts +0 -21
  94. package/dist/oidc/vci.d.ts +0 -159
  95. package/dist/oidc/vciRoutes.d.ts +0 -92
  96. package/dist/organizations/config.d.ts +0 -46
  97. package/dist/organizations/operations.d.ts +0 -39
  98. package/dist/organizations/routes.d.ts +0 -299
  99. package/dist/organizations/types.d.ts +0 -45
  100. package/dist/passwordless/config.d.ts +0 -43
  101. package/dist/passwordless/routes.d.ts +0 -163
  102. package/dist/passwordless/types.d.ts +0 -9
  103. package/dist/pluginIdentity.d.ts +0 -2
  104. package/dist/portal/config.d.ts +0 -34
  105. package/dist/portal/operations.d.ts +0 -10
  106. package/dist/portal/routes.d.ts +0 -160
  107. package/dist/portal/types.d.ts +0 -16
  108. package/dist/providers/clients.d.ts +0 -1818
  109. package/dist/providersFromEnv.d.ts +0 -19
  110. package/dist/roles/config.d.ts +0 -27
  111. package/dist/roles/operations.d.ts +0 -8
  112. package/dist/roles/routes.d.ts +0 -106
  113. package/dist/roles/types.d.ts +0 -14
  114. package/dist/routes/authorize.d.ts +0 -102
  115. package/dist/routes/callback.d.ts +0 -64
  116. package/dist/routes/profile.d.ts +0 -70
  117. package/dist/routes/protectRoute.d.ts +0 -51
  118. package/dist/routes/refresh.d.ts +0 -74
  119. package/dist/routes/revoke.d.ts +0 -73
  120. package/dist/routes/sessions.d.ts +0 -103
  121. package/dist/routes/signout.d.ts +0 -70
  122. package/dist/routes/stepUp.d.ts +0 -48
  123. package/dist/routes/userStatus.d.ts +0 -72
  124. package/dist/scim/config.d.ts +0 -57
  125. package/dist/scim/extensions.d.ts +0 -30
  126. package/dist/scim/inMemoryScimTokenStore.d.ts +0 -2
  127. package/dist/scim/routes.d.ts +0 -366
  128. package/dist/scim/serialize.d.ts +0 -83
  129. package/dist/scim/types.d.ts +0 -54
  130. package/dist/session/access.d.ts +0 -33
  131. package/dist/session/anonymous.d.ts +0 -12
  132. package/dist/session/cleanup.d.ts +0 -45
  133. package/dist/session/impersonation.d.ts +0 -34
  134. package/dist/session/inMemoryStore.d.ts +0 -7
  135. package/dist/session/multiSession.d.ts +0 -27
  136. package/dist/session/neonStore.d.ts +0 -513
  137. package/dist/session/promote.d.ts +0 -23
  138. package/dist/session/redisStore.d.ts +0 -6
  139. package/dist/session/sessionsConfig.d.ts +0 -9
  140. package/dist/session/state.d.ts +0 -33
  141. package/dist/session/types.d.ts +0 -21
  142. package/dist/session/userSessions.d.ts +0 -19
  143. package/dist/sso/config.d.ts +0 -149
  144. package/dist/sso/discoveryRoute.d.ts +0 -63
  145. package/dist/sso/oidcRoutes.d.ts +0 -98
  146. package/dist/sso/samlRoutes.d.ts +0 -179
  147. package/dist/sso/types.d.ts +0 -53
  148. package/dist/stores/postgres.d.ts +0 -5
  149. package/dist/stores/redis.d.ts +0 -5
  150. package/dist/telemetry/tracing.d.ts +0 -15
  151. package/dist/tenancy.d.ts +0 -9
  152. package/dist/typeGuards.d.ts +0 -6
  153. package/dist/typebox.d.ts +0 -4
  154. package/dist/types.d.ts +0 -421
  155. package/dist/utils.d.ts +0 -45
  156. package/dist/vault/config.d.ts +0 -20
  157. package/dist/vault/inMemoryVaultStore.d.ts +0 -2
  158. package/dist/vault/postgresVaultStore.d.ts +0 -86
  159. package/dist/vault/types.d.ts +0 -14
  160. package/dist/vc/inMemoryVpStores.d.ts +0 -2
  161. package/dist/vc/openid4vp.d.ts +0 -82
  162. package/dist/vc/postgresVcStores.d.ts +0 -300
  163. package/dist/vc/sdJwt.d.ts +0 -37
  164. package/dist/vc/statusList.d.ts +0 -29
  165. package/dist/vc/statusListRoutes.d.ts +0 -63
  166. package/dist/vc/vpRoutes.d.ts +0 -120
  167. package/dist/webauthn/adapter.d.ts +0 -59
  168. package/dist/webauthn/config.d.ts +0 -36
  169. package/dist/webauthn/routes.d.ts +0 -155
  170. package/dist/webauthn/types.d.ts +0 -17
  171. package/dist/webhooks/config.d.ts +0 -34
  172. package/dist/webhooks/dispatcher.d.ts +0 -3
  173. package/dist/webhooks/sign.d.ts +0 -11
  174. package/dist/webhooks/types.d.ts +0 -25
package/dist/mfa/sms.d.ts DELETED
@@ -1,105 +0,0 @@
1
- import { Elysia } from 'elysia';
2
- import { type MfaRouteProps, type SmsCodeMessage } from './config';
3
- import type { MfaEnrollment, MFAStore } from './types';
4
- export declare const isE164Phone: (phone: string) => boolean;
5
- export declare const issueAndStoreSmsCode: ({ codeLength, enrollment, mfaStore, onSendSmsCode, ttlMs }: {
6
- codeLength: number;
7
- enrollment: MfaEnrollment;
8
- mfaStore: MFAStore;
9
- onSendSmsCode?: (message: SmsCodeMessage) => void | Promise<void>;
10
- ttlMs: number;
11
- }) => Promise<number | undefined>;
12
- export declare const maskPhone: (phone: string) => string;
13
- export declare const mfaSmsRoutes: <UserType>({ authSessionStore, getUserId, mfaStore, onMfaEnrolled, onSendSmsCode, smsCodeLength, smsCodeTtlMs, smsMaxAttempts, smsSetupRoute, smsVerifyRoute }: MfaRouteProps<UserType>) => Elysia<"", {
14
- decorator: {};
15
- store: {
16
- session: import("..").SessionRecord<UserType>;
17
- unregisteredSession: import("..").UnregisteredSessionRecord;
18
- };
19
- derive: {};
20
- resolve: {};
21
- }, {
22
- typebox: {};
23
- error: {};
24
- }, {
25
- schema: {};
26
- standaloneSchema: {};
27
- macro: {};
28
- macroFn: {};
29
- parser: {};
30
- response: {};
31
- }, {
32
- [x: string]: {
33
- post: {
34
- body: {
35
- phone: string;
36
- };
37
- params: {};
38
- query: unknown;
39
- headers: unknown;
40
- response: {
41
- 400: "Phone must be in E.164 format";
42
- 401: "Authentication required";
43
- 501: "SMS MFA is not configured";
44
- 200: {
45
- readonly phone: string;
46
- };
47
- 422: {
48
- type: "validation";
49
- on: string;
50
- summary?: string;
51
- message?: string;
52
- found?: unknown;
53
- property?: string;
54
- expected?: string;
55
- };
56
- };
57
- };
58
- };
59
- } & {
60
- [x: string]: {
61
- post: {
62
- body: {
63
- code: string;
64
- };
65
- params: {};
66
- query: unknown;
67
- headers: unknown;
68
- response: {
69
- 400: "No SMS enrollment in progress" | "SMS code expired" | "Invalid SMS code";
70
- 401: "Authentication required";
71
- 200: {
72
- readonly status: "enrolled";
73
- };
74
- 422: {
75
- type: "validation";
76
- on: string;
77
- summary?: string;
78
- message?: string;
79
- found?: unknown;
80
- property?: string;
81
- expected?: string;
82
- };
83
- 429: "Too many attempts";
84
- };
85
- };
86
- };
87
- }, {
88
- derive: {};
89
- resolve: {};
90
- schema: {};
91
- standaloneSchema: {};
92
- response: {};
93
- }, {
94
- derive: {};
95
- resolve: {};
96
- schema: {};
97
- standaloneSchema: {};
98
- response: {};
99
- } & {
100
- derive: {};
101
- resolve: {};
102
- schema: {};
103
- standaloneSchema: {};
104
- response: {};
105
- }>;
@@ -1,91 +0,0 @@
1
- import { Elysia } from 'elysia';
2
- import { type MfaRouteProps } from './config';
3
- export declare const mfaTotpRoutes: <UserType>({ authSessionStore, backupCodeCount, encryptionKey, getUserId, issuer, mfaStore, onMfaEnrolled, totpSetupRoute, totpVerifyRoute }: MfaRouteProps<UserType>) => Elysia<"", {
4
- decorator: {};
5
- store: {
6
- session: import("..").SessionRecord<UserType>;
7
- unregisteredSession: import("..").UnregisteredSessionRecord;
8
- };
9
- derive: {};
10
- resolve: {};
11
- }, {
12
- typebox: {};
13
- error: {};
14
- }, {
15
- schema: {};
16
- standaloneSchema: {};
17
- macro: {};
18
- macroFn: {};
19
- parser: {};
20
- response: {};
21
- }, {
22
- [x: string]: {
23
- post: {
24
- body: unknown;
25
- params: {};
26
- query: unknown;
27
- headers: unknown;
28
- response: {
29
- 401: "Authentication required";
30
- 200: {
31
- readonly secret: string;
32
- readonly uri: string;
33
- };
34
- 422: {
35
- type: "validation";
36
- on: string;
37
- summary?: string;
38
- message?: string;
39
- found?: unknown;
40
- property?: string;
41
- expected?: string;
42
- };
43
- };
44
- };
45
- };
46
- } & {
47
- [x: string]: {
48
- post: {
49
- body: {
50
- code: string;
51
- };
52
- params: {};
53
- query: unknown;
54
- headers: unknown;
55
- response: {
56
- 400: "No TOTP enrollment in progress" | "Invalid TOTP code";
57
- 401: "Authentication required";
58
- 200: {
59
- readonly backupCodes: string[];
60
- };
61
- 422: {
62
- type: "validation";
63
- on: string;
64
- summary?: string;
65
- message?: string;
66
- found?: unknown;
67
- property?: string;
68
- expected?: string;
69
- };
70
- };
71
- };
72
- };
73
- }, {
74
- derive: {};
75
- resolve: {};
76
- schema: {};
77
- standaloneSchema: {};
78
- response: {};
79
- }, {
80
- derive: {};
81
- resolve: {};
82
- schema: {};
83
- standaloneSchema: {};
84
- response: {};
85
- } & {
86
- derive: {};
87
- resolve: {};
88
- schema: {};
89
- standaloneSchema: {};
90
- response: {};
91
- }>;
@@ -1,23 +0,0 @@
1
- export type MfaFactorType = 'backup_codes' | 'sms' | 'totp';
2
- export type MfaEnrollment = {
3
- backupCodeHashes: string[];
4
- createdAt: number;
5
- lastUsedAt?: number;
6
- smsFailedAttempts?: number;
7
- smsPendingCodeHash?: string;
8
- smsPendingCodeExpiresAt?: number;
9
- smsPhone?: string;
10
- smsVerified: boolean;
11
- totpFailedAttempts?: number;
12
- totpSecretCiphertext?: string;
13
- totpVerified: boolean;
14
- updatedAt: number;
15
- userId: string;
16
- };
17
- export type MFAStore = {
18
- getEnrollment: (userId: string) => Promise<MfaEnrollment | undefined>;
19
- listEnrollments: () => Promise<MfaEnrollment[]>;
20
- removeEnrollment: (userId: string) => Promise<void>;
21
- saveEnrollment: (enrollment: MfaEnrollment) => Promise<void>;
22
- };
23
- export declare const isMfaEnrolled: (enrollment: MfaEnrollment | undefined) => boolean;
@@ -1,19 +0,0 @@
1
- import type { ClientAssertionJtiStore, OAuthClient } from './types';
2
- export declare const CLIENT_ASSERTION_TYPE = "urn:ietf:params:oauth:client-assertion-type:jwt-bearer";
3
- export declare const verifyClientAssertion: ({ assertion, expectedAudience, jtiStore, resolveClient }: {
4
- assertion: string;
5
- expectedAudience: string;
6
- jtiStore?: ClientAssertionJtiStore;
7
- resolveClient: (clientId: string) => Promise<OAuthClient | undefined>;
8
- }) => Promise<OAuthClient | undefined>;
9
- export declare const verifyJwtSignedByClient: ({ jwt, client }: {
10
- client: OAuthClient;
11
- jwt: string;
12
- }) => Promise<{
13
- header: {
14
- [k: string]: any;
15
- };
16
- payload: {
17
- [k: string]: any;
18
- };
19
- } | undefined>;
@@ -1,296 +0,0 @@
1
- import type { RouteString } from '../types';
2
- import { type SigningKey } from './keys';
3
- import type { OnClientRegistered, OnClientRegistration } from './registration';
4
- import type { VciConfig } from './vci';
5
- import type { AuthorizationCodeStore, BackchannelAuthStore, ClientAssertionJtiStore, ClientRegistrationTokenStore, DeviceAuthorizationStore, InitialAccessTokenStore, LogoutDeliveryStore, OAuthClient, OAuthClientStore, OidcRefreshTokenStore, PushedAuthorizationRequestStore } from './types';
6
- export declare const DEFAULT_OIDC_ROUTE: RouteString;
7
- export type PublicTokenGrantResult = {
8
- body: Record<string, unknown>;
9
- status: number;
10
- };
11
- export type OidcProviderConfig<UserType> = {
12
- /** Additional non-conflicting RFC 8414 metadata. Reserved core OAuth keys
13
- * cannot be replaced. Used by profiles such as open agent registration. */
14
- additionalDiscoveryMetadata?: Record<string, unknown>;
15
- /** Public extension grants whose bearer material is carried in their body
16
- * (for example an agent claim_token). They run before OAuth client auth. */
17
- publicTokenGrantTypes?: string[];
18
- handlePublicTokenGrant?: (context: {
19
- body: Record<string, string | undefined>;
20
- request: Request;
21
- }) => Promise<PublicTokenGrantResult | undefined>;
22
- accessTokenTtlMs?: number | ((context: {
23
- scopes: string[];
24
- }) => number);
25
- acrValuesSupported?: string[];
26
- authorizationCodeStore: AuthorizationCodeStore;
27
- clientAssertionJtiStore?: ClientAssertionJtiStore;
28
- clientRegistrationTokenStore?: ClientRegistrationTokenStore;
29
- clientStore: OAuthClientStore;
30
- resolveClientIdMetadata?: (clientId: string) => Promise<OAuthClient | undefined>;
31
- deviceAuthorizationStore?: DeviceAuthorizationStore;
32
- deviceCodeTtlMs?: number;
33
- devicePollIntervalSeconds?: number;
34
- backchannelAuthStore?: BackchannelAuthStore;
35
- backchannelAuthTtlMs?: number;
36
- backchannelPollIntervalSeconds?: number;
37
- resolveBackchannelUser?: (hint: {
38
- client: OAuthClient;
39
- loginHint: string;
40
- }) => Promise<{
41
- sub: string;
42
- } | undefined>;
43
- onBackchannelAuthRequest?: (context: {
44
- authReqId: string;
45
- bindingMessage: string | undefined;
46
- clientId: string;
47
- scopes: string[];
48
- userSub: string;
49
- }) => Promise<void> | void;
50
- getAccessTokenClaims?: (context: {
51
- audience?: string;
52
- clientId: string;
53
- scopes: string[];
54
- sub: string;
55
- }) => Record<string, unknown> | Promise<Record<string, unknown>>;
56
- getClaims?: (user: UserType) => Record<string, unknown>;
57
- consentUrl?: string;
58
- needsConsent?: (context: {
59
- client: {
60
- clientId: string;
61
- name: string;
62
- };
63
- requestedScopes: string[];
64
- user: UserType;
65
- }) => boolean | Promise<boolean>;
66
- getGrantedScopes?: (context: {
67
- client: {
68
- clientId: string;
69
- name: string;
70
- };
71
- requestedScopes: string[];
72
- user: UserType;
73
- }) => string[] | undefined | Promise<string[] | undefined>;
74
- getUserId: (user: UserType) => string;
75
- getUserInfo?: (sub: string) => Promise<Record<string, unknown> | undefined>;
76
- idTokenTtlMs?: number;
77
- issuer: string;
78
- dpopNonce?: {
79
- secret: string;
80
- };
81
- extractTlsClientCert?: (headers: Headers) => Promise<Uint8Array | undefined> | Uint8Array | undefined;
82
- getAcr?: (context: {
83
- scopes: string[];
84
- user: UserType;
85
- }) => string | undefined;
86
- initialAccessTokenStore?: InitialAccessTokenStore;
87
- loginUrl?: string;
88
- logoutDeliveryStore?: LogoutDeliveryStore;
89
- oidcRoute?: RouteString;
90
- onClientRegistration?: OnClientRegistration;
91
- /** Fires after RFC 7591 registration has been persisted and has a generated client id. */
92
- onClientRegistered?: OnClientRegistered;
93
- /** Fires after the authenticated user approves an RFC 8628 device request. */
94
- onDeviceAuthorizationApproved?: (context: {
95
- clientId: string;
96
- scopes: string[];
97
- userSub: string;
98
- }) => void | Promise<void>;
99
- pushedAuthorizationRequestStore?: PushedAuthorizationRequestStore;
100
- pushedAuthorizationRequestTtlMs?: number;
101
- refreshTokenStore: OidcRefreshTokenStore;
102
- refreshTokenTtlMs?: number;
103
- signingKey: SigningKey;
104
- strictFapi?: boolean;
105
- vciConfig?: VciConfig;
106
- };
107
- export type TokenExchangeResult = {
108
- error: 'invalid_grant' | 'invalid_scope';
109
- ok: false;
110
- } | {
111
- accessToken: string;
112
- expiresIn: number;
113
- ok: true;
114
- scope: string;
115
- };
116
- export declare const exchangeToken: <UserType>({ actorClientId, audience, config, dpopJkt, now, requestedScopes, subjectToken }: {
117
- actorClientId: string;
118
- audience?: string;
119
- config: OidcProviderConfig<UserType>;
120
- dpopJkt?: string;
121
- now?: number;
122
- requestedScopes?: string[];
123
- subjectToken: string;
124
- }) => Promise<TokenExchangeResult>;
125
- export declare const issueTokenSet: <UserType>({ acr, audience, claims, clientCertThumbprint, clientId, config, dpopJkt, nonce, now, scopes, sub }: {
126
- acr?: string;
127
- audience?: string;
128
- claims?: Record<string, unknown>;
129
- clientCertThumbprint?: string;
130
- clientId: string;
131
- config: OidcProviderConfig<UserType>;
132
- dpopJkt?: string;
133
- nonce?: string;
134
- now?: number;
135
- scopes: string[];
136
- sub: string;
137
- }) => Promise<{
138
- access_token: string;
139
- expires_in: number;
140
- id_token: string;
141
- refresh_token: string;
142
- scope: string;
143
- token_type: "Bearer" | "DPoP";
144
- }>;
145
- export declare const mcpProtectedResourceMetadata: ({ issuer, resource, scopes }: {
146
- issuer: string;
147
- resource: string;
148
- scopes?: string[];
149
- }) => {
150
- authorization_servers: string[];
151
- resource: string;
152
- scopes_supported: string[];
153
- };
154
- export declare const verifyPkce: (codeVerifier: string, codeChallenge: string) => Promise<boolean>;
155
- export type TokenIntrospection = {
156
- active: false;
157
- } | {
158
- active: true;
159
- client_id: string;
160
- exp: number;
161
- iat: number;
162
- scope: string;
163
- sub: string;
164
- token_type: 'access_token' | 'refresh_token';
165
- };
166
- export type TokenTypeHint = 'access_token' | 'refresh_token';
167
- export declare const introspectToken: <UserType>({ config, hint, now, token }: {
168
- config: OidcProviderConfig<UserType>;
169
- hint?: TokenTypeHint;
170
- now?: number;
171
- token: string;
172
- }) => Promise<{
173
- active: false;
174
- } | {
175
- active: true;
176
- client_id: string;
177
- exp: number;
178
- iat: number;
179
- scope: string;
180
- sub: string;
181
- token_type: "access_token";
182
- } | {
183
- active: true;
184
- client_id: string;
185
- exp: number;
186
- iat: number;
187
- scope: string;
188
- sub: string;
189
- token_type: "refresh_token";
190
- }>;
191
- export declare const revokeRefreshToken: <UserType>(config: OidcProviderConfig<UserType>, token: string) => Promise<boolean>;
192
- export type DeviceAuthorizationResponse = {
193
- device_code: string;
194
- expires_in: number;
195
- interval: number;
196
- user_code: string;
197
- verification_uri: string;
198
- verification_uri_complete: string;
199
- };
200
- export declare const issueDeviceAuthorization: <UserType>({ clientId, config, now, requestedScopes }: {
201
- clientId: string;
202
- config: OidcProviderConfig<UserType>;
203
- now?: number;
204
- requestedScopes: string[];
205
- }) => Promise<DeviceAuthorizationResponse>;
206
- export type DeviceDecisionResult = {
207
- error: 'already_decided' | 'expired_token' | 'invalid_user_code' | 'not_configured';
208
- ok: false;
209
- } | {
210
- ok: true;
211
- };
212
- export declare const approveDeviceAuthorization: <UserType>({ config, userCode, userSub }: {
213
- config: OidcProviderConfig<UserType>;
214
- userCode: string;
215
- userSub: string;
216
- }) => Promise<DeviceDecisionResult>;
217
- export declare const denyDeviceAuthorization: <UserType>({ config, userCode }: {
218
- config: OidcProviderConfig<UserType>;
219
- userCode: string;
220
- }) => Promise<DeviceDecisionResult>;
221
- export type DeviceCodeExchangeError = 'access_denied' | 'authorization_pending' | 'expired_token' | 'invalid_grant' | 'slow_down';
222
- export type DeviceCodeExchangeResult = {
223
- access_token: string;
224
- expires_in: number;
225
- id_token: string;
226
- ok: true;
227
- refresh_token: string;
228
- scope: string;
229
- token_type: 'Bearer' | 'DPoP';
230
- } | {
231
- error: DeviceCodeExchangeError;
232
- ok: false;
233
- };
234
- export declare const exchangeDeviceCode: <UserType>({ clientId, config, deviceCode, dpopJkt, now }: {
235
- clientId: string;
236
- config: OidcProviderConfig<UserType>;
237
- deviceCode: string;
238
- dpopJkt?: string;
239
- now?: number;
240
- }) => Promise<DeviceCodeExchangeResult>;
241
- export declare const CIBA_GRANT_TYPE = "urn:openid:params:grant-type:ciba";
242
- export type BackchannelAuthResponse = {
243
- auth_req_id: string;
244
- expires_in: number;
245
- interval: number;
246
- };
247
- export type BackchannelAuthError = 'expired_login_hint_token' | 'invalid_client' | 'invalid_request' | 'unknown_user_id';
248
- export declare const issueBackchannelAuth: <UserType>({ clientId, config, loginHint, bindingMessage, now, requestedScopes }: {
249
- clientId: string;
250
- config: OidcProviderConfig<UserType>;
251
- loginHint: string;
252
- bindingMessage?: string;
253
- now?: number;
254
- requestedScopes: string[];
255
- }) => Promise<{
256
- error: BackchannelAuthError;
257
- ok: false;
258
- } | ({
259
- ok: true;
260
- } & BackchannelAuthResponse)>;
261
- export type BackchannelDecisionResult = {
262
- error: 'already_decided' | 'expired_token' | 'invalid_auth_req_id' | 'not_configured';
263
- ok: false;
264
- } | {
265
- ok: true;
266
- };
267
- export declare const approveBackchannelAuth: <UserType>({ authReqId, config, userSub }: {
268
- authReqId: string;
269
- config: OidcProviderConfig<UserType>;
270
- userSub?: string;
271
- }) => Promise<BackchannelDecisionResult>;
272
- export declare const denyBackchannelAuth: <UserType>({ authReqId, config }: {
273
- authReqId: string;
274
- config: OidcProviderConfig<UserType>;
275
- }) => Promise<BackchannelDecisionResult>;
276
- export type BackchannelExchangeError = 'access_denied' | 'authorization_pending' | 'expired_token' | 'invalid_grant' | 'slow_down';
277
- export type BackchannelExchangeResult = {
278
- access_token: string;
279
- expires_in: number;
280
- id_token: string;
281
- ok: true;
282
- refresh_token: string;
283
- scope: string;
284
- token_type: 'Bearer' | 'DPoP';
285
- } | {
286
- error: BackchannelExchangeError;
287
- ok: false;
288
- };
289
- export declare const exchangeBackchannelAuth: <UserType>({ authReqId, clientCertThumbprint, clientId, config, dpopJkt, now }: {
290
- authReqId: string;
291
- clientCertThumbprint?: string;
292
- clientId: string;
293
- config: OidcProviderConfig<UserType>;
294
- dpopJkt?: string;
295
- now?: number;
296
- }) => Promise<BackchannelExchangeResult>;
@@ -1,23 +0,0 @@
1
- export declare const extractDpopNonceClaim: (proof: string) => string | undefined;
2
- export declare const mintDpopNonce: ({ now, secret }: {
3
- now?: number;
4
- secret: string;
5
- }) => Promise<string>;
6
- export declare const verifyDpopNonce: ({ now, nonce, secret }: {
7
- nonce: string;
8
- now?: number;
9
- secret: string;
10
- }) => Promise<boolean>;
11
- export type DpopResult = {
12
- jkt: string;
13
- jti?: string;
14
- };
15
- export declare const verifyDpopProof: ({ accessToken, htm, htu, isUsedJti, maxAgeMs, now, proof }: {
16
- accessToken?: string;
17
- htm: string;
18
- htu: string;
19
- isUsedJti?: (jti: string) => boolean | Promise<boolean>;
20
- maxAgeMs?: number;
21
- now?: number;
22
- proof: string | undefined;
23
- }) => Promise<DpopResult | undefined>;
@@ -1,3 +0,0 @@
1
- import type { CredentialNonceStore, CredentialOfferStore } from './vci';
2
- export declare const createInMemoryCredentialNonceStore: () => CredentialNonceStore;
3
- export declare const createInMemoryCredentialOfferStore: () => CredentialOfferStore;
@@ -1,14 +0,0 @@
1
- import type { OAuthClient } from './types';
2
- export type JarParseResult = {
3
- error: 'invalid_request_object';
4
- ok: false;
5
- } | {
6
- ok: true;
7
- params: Record<string, string>;
8
- };
9
- export declare const parseSignedRequestObject: ({ client, expectedIssuer, jwt, now }: {
10
- client: OAuthClient;
11
- expectedIssuer: string;
12
- jwt: string;
13
- now?: number;
14
- }) => Promise<JarParseResult>;
@@ -1,35 +0,0 @@
1
- type SigningKeyIdentity = {
2
- kid: string;
3
- publicJwk: JsonWebKey;
4
- };
5
- /** ES256 signing material can remain local for development or be delegated to
6
- * a non-exportable KMS/HSM adapter. External signers return the 64-byte JOSE
7
- * ECDSA signature (r || s), not an ASN.1 DER envelope. */
8
- export type SigningKey = SigningKeyIdentity & ({
9
- privateJwk: JsonWebKey;
10
- sign?: never;
11
- } | {
12
- privateJwk?: never;
13
- sign: (input: Uint8Array) => Promise<Uint8Array>;
14
- });
15
- export declare const generateSigningKey: () => Promise<SigningKey>;
16
- export declare const jwkThumbprint: (jwk: JsonWebKey) => Promise<string>;
17
- export declare const signJwt: (payload: Record<string, unknown>, signing: SigningKey, typ?: string) => Promise<string>;
18
- export declare const toPublicJwk: (key: SigningKey) => {
19
- alg: string;
20
- crv: string | undefined;
21
- kid: string;
22
- kty: string | undefined;
23
- use: string;
24
- x: string | undefined;
25
- y: string | undefined;
26
- };
27
- export declare const verifyJwt: (token: string, publicJwk: JsonWebKey) => Promise<{
28
- header: {
29
- [k: string]: any;
30
- };
31
- payload: {
32
- [k: string]: any;
33
- };
34
- } | undefined>;
35
- export {};
@@ -1,38 +0,0 @@
1
- import type { OidcProviderConfig } from './config';
2
- import type { LogoutDelivery, OAuthClient } from './types';
3
- export declare const resolvePostLogoutRedirect: ({ client, requestedUri }: {
4
- client: OAuthClient;
5
- requestedUri: string | undefined;
6
- }) => string | undefined;
7
- export declare const verifyIdTokenHint: <UserType>({ config, idTokenHint }: {
8
- config: OidcProviderConfig<UserType>;
9
- idTokenHint: string;
10
- }) => Promise<{
11
- audClientId: string;
12
- sub: string;
13
- } | undefined>;
14
- type DeliveryFetch = (url: string, init: {
15
- body: string;
16
- headers: Record<string, string>;
17
- method: string;
18
- signal: AbortSignal;
19
- }) => Promise<{
20
- ok: boolean;
21
- status: number;
22
- }>;
23
- export declare const mintLogoutToken: <UserType>({ clientId, config, now, sub }: {
24
- clientId: string;
25
- config: OidcProviderConfig<UserType>;
26
- now?: number;
27
- sub: string;
28
- }) => Promise<string>;
29
- export declare const fanOutBackchannelLogout: <UserType>({ config, fetchImpl, now, onError, skipClientId, timeoutMs, userId }: {
30
- config: OidcProviderConfig<UserType>;
31
- fetchImpl?: DeliveryFetch;
32
- now?: number;
33
- onError?: (delivery: LogoutDelivery) => void | Promise<void>;
34
- skipClientId?: string;
35
- timeoutMs?: number;
36
- userId: string;
37
- }) => Promise<string[]>;
38
- export {};
@@ -1,11 +0,0 @@
1
- export declare const computeCertThumbprint: (derBytes: Uint8Array) => Promise<string>;
2
- export declare const extractRfc9440ClientCert: (headers: Headers) => Uint8Array<ArrayBuffer> | undefined;
3
- export declare const resolveClientCert: ({ extract, headers }: {
4
- extract: ((headers: Headers) => Promise<Uint8Array | undefined> | Uint8Array | undefined) | undefined;
5
- headers: Headers;
6
- }) => Promise<Uint8Array<ArrayBufferLike> | undefined>;
7
- export declare const verifyCertificateBoundToken: ({ cnfThumbprint, extract, headers }: {
8
- cnfThumbprint: string | undefined;
9
- extract: ((headers: Headers) => Promise<Uint8Array | undefined> | Uint8Array | undefined) | undefined;
10
- headers: Headers;
11
- }) => Promise<boolean>;