@absolutejs/auth 0.55.6 → 0.55.7

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 (215) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.js +120 -15
  3. package/dist/index.js.map +6 -5
  4. package/dist/server.js +119 -15
  5. package/dist/server.js.map +6 -5
  6. package/package.json +1 -1
  7. package/dist/abuse/captcha.d.ts +0 -11
  8. package/dist/abuse/config.d.ts +0 -29
  9. package/dist/actions.d.ts +0 -27
  10. package/dist/adaptive/config.d.ts +0 -34
  11. package/dist/adaptive/fingerprint.d.ts +0 -2
  12. package/dist/adaptive/inMemoryStores.d.ts +0 -3
  13. package/dist/adaptive/postgresStores.d.ts +0 -245
  14. package/dist/adaptive/types.d.ts +0 -62
  15. package/dist/agents/config.d.ts +0 -44
  16. package/dist/agents/context.d.ts +0 -46
  17. package/dist/agents/idJag.d.ts +0 -49
  18. package/dist/agents/inMemoryStores.d.ts +0 -4
  19. package/dist/agents/oidcAdapter.d.ts +0 -12
  20. package/dist/agents/postgresStores.d.ts +0 -569
  21. package/dist/agents/principal.d.ts +0 -4
  22. package/dist/agents/registration.d.ts +0 -162
  23. package/dist/agents/registrationClient.d.ts +0 -50
  24. package/dist/agents/routes.d.ts +0 -321
  25. package/dist/agents/types.d.ts +0 -129
  26. package/dist/apikeys/config.d.ts +0 -64
  27. package/dist/apikeys/inMemoryStores.d.ts +0 -4
  28. package/dist/apikeys/postgresStores.d.ts +0 -359
  29. package/dist/apikeys/routes.d.ts +0 -83
  30. package/dist/apikeys/types.d.ts +0 -53
  31. package/dist/audit/config.d.ts +0 -9
  32. package/dist/audit/export.d.ts +0 -2
  33. package/dist/audit/inMemoryAuditStore.d.ts +0 -2
  34. package/dist/audit/integrity.d.ts +0 -19
  35. package/dist/audit/postgresAuditStore.d.ts +0 -116
  36. package/dist/audit/siem.d.ts +0 -11
  37. package/dist/audit/types.d.ts +0 -19
  38. package/dist/audit/wrap.d.ts +0 -9
  39. package/dist/authContext.d.ts +0 -193
  40. package/dist/authorization/config.d.ts +0 -19
  41. package/dist/authorization/protectPermission.d.ts +0 -52
  42. package/dist/compliance/cipher.d.ts +0 -5
  43. package/dist/compliance/config.d.ts +0 -18
  44. package/dist/compliance/redaction.d.ts +0 -8
  45. package/dist/compliance/routes.d.ts +0 -89
  46. package/dist/constants.d.ts +0 -10
  47. package/dist/credentials/backgroundOps.d.ts +0 -45
  48. package/dist/credentials/config.d.ts +0 -68
  49. package/dist/credentials/emailValidation.d.ts +0 -9
  50. package/dist/credentials/emailVerification.d.ts +0 -83
  51. package/dist/credentials/import.d.ts +0 -34
  52. package/dist/credentials/inMemoryCredentialStore.d.ts +0 -2
  53. package/dist/credentials/legacyHashers.d.ts +0 -3
  54. package/dist/credentials/login.d.ts +0 -76
  55. package/dist/credentials/passwordPolicy.d.ts +0 -15
  56. package/dist/credentials/passwordReset.d.ts +0 -87
  57. package/dist/credentials/postgresCredentialStore.d.ts +0 -235
  58. package/dist/credentials/register.d.ts +0 -54
  59. package/dist/credentials/routes.d.ts +0 -201
  60. package/dist/credentials/types.d.ts +0 -26
  61. package/dist/crypto.d.ts +0 -32
  62. package/dist/errors.d.ts +0 -12
  63. package/dist/federation/tokenStore.d.ts +0 -29
  64. package/dist/fga/config.d.ts +0 -53
  65. package/dist/fga/inMemoryStores.d.ts +0 -3
  66. package/dist/fga/postgresStores.d.ts +0 -116
  67. package/dist/fga/redisCheckCache.d.ts +0 -11
  68. package/dist/fga/schema.d.ts +0 -2
  69. package/dist/fga/types.d.ts +0 -28
  70. package/dist/htmx/configuredRoutes.d.ts +0 -542
  71. package/dist/htmx/renderers.d.ts +0 -8
  72. package/dist/htmx/routes.d.ts +0 -514
  73. package/dist/htmx/types.d.ts +0 -129
  74. package/dist/linkedProviders/inMemoryStores.d.ts +0 -9
  75. package/dist/linkedProviders/neonStores.d.ts +0 -484
  76. package/dist/linkedProviders/oauthResolver.d.ts +0 -9
  77. package/dist/linkedProviders/resolver.d.ts +0 -22
  78. package/dist/lockout/config.d.ts +0 -17
  79. package/dist/lockout/inMemoryLockoutStore.d.ts +0 -2
  80. package/dist/lockout/postgresLockoutStore.d.ts +0 -71
  81. package/dist/lockout/redisLockoutStore.d.ts +0 -3
  82. package/dist/lockout/types.d.ts +0 -12
  83. package/dist/mfa/backupCodes.d.ts +0 -5
  84. package/dist/mfa/challenge.d.ts +0 -70
  85. package/dist/mfa/config.d.ts +0 -50
  86. package/dist/mfa/gate.d.ts +0 -2
  87. package/dist/mfa/inMemoryMfaStore.d.ts +0 -2
  88. package/dist/mfa/management.d.ts +0 -106
  89. package/dist/mfa/postgresMfaStore.d.ts +0 -206
  90. package/dist/mfa/rotation.d.ts +0 -17
  91. package/dist/mfa/routes.d.ts +0 -234
  92. package/dist/mfa/secret.d.ts +0 -2
  93. package/dist/mfa/sms.d.ts +0 -105
  94. package/dist/mfa/totp.d.ts +0 -91
  95. package/dist/mfa/types.d.ts +0 -23
  96. package/dist/migrations/generate.d.ts +0 -2
  97. package/dist/migrations/index.d.ts +0 -5
  98. package/dist/migrations/runner.d.ts +0 -13
  99. package/dist/migrations/types.d.ts +0 -14
  100. package/dist/oidc/clientAuth.d.ts +0 -19
  101. package/dist/oidc/clientIdMetadata.d.ts +0 -32
  102. package/dist/oidc/config.d.ts +0 -295
  103. package/dist/oidc/dpop.d.ts +0 -23
  104. package/dist/oidc/inMemoryStores.d.ts +0 -11
  105. package/dist/oidc/inMemoryVciStores.d.ts +0 -3
  106. package/dist/oidc/jar.d.ts +0 -14
  107. package/dist/oidc/keys.d.ts +0 -25
  108. package/dist/oidc/logout.d.ts +0 -38
  109. package/dist/oidc/mtls.d.ts +0 -11
  110. package/dist/oidc/par.d.ts +0 -28
  111. package/dist/oidc/postgresStores.d.ts +0 -1187
  112. package/dist/oidc/registration.d.ts +0 -138
  113. package/dist/oidc/routes.d.ts +0 -568
  114. package/dist/oidc/types.d.ts +0 -143
  115. package/dist/oidc/userinfo.d.ts +0 -21
  116. package/dist/oidc/vci.d.ts +0 -159
  117. package/dist/oidc/vciRoutes.d.ts +0 -92
  118. package/dist/organizations/config.d.ts +0 -46
  119. package/dist/organizations/inMemoryOrganizationStore.d.ts +0 -2
  120. package/dist/organizations/operations.d.ts +0 -39
  121. package/dist/organizations/postgresOrganizationStore.d.ts +0 -340
  122. package/dist/organizations/routes.d.ts +0 -299
  123. package/dist/organizations/types.d.ts +0 -45
  124. package/dist/passwordless/config.d.ts +0 -43
  125. package/dist/passwordless/inMemoryPasswordlessTokenStore.d.ts +0 -2
  126. package/dist/passwordless/postgresPasswordlessTokenStore.d.ts +0 -56
  127. package/dist/passwordless/routes.d.ts +0 -163
  128. package/dist/passwordless/types.d.ts +0 -9
  129. package/dist/pluginIdentity.d.ts +0 -2
  130. package/dist/portal/config.d.ts +0 -34
  131. package/dist/portal/inMemorySetupSessionStore.d.ts +0 -2
  132. package/dist/portal/operations.d.ts +0 -10
  133. package/dist/portal/postgresSetupSessionStore.d.ts +0 -116
  134. package/dist/portal/routes.d.ts +0 -160
  135. package/dist/portal/types.d.ts +0 -16
  136. package/dist/providers/clients.d.ts +0 -1818
  137. package/dist/providersFromEnv.d.ts +0 -19
  138. package/dist/roles/config.d.ts +0 -27
  139. package/dist/roles/inMemoryRoleStore.d.ts +0 -2
  140. package/dist/roles/operations.d.ts +0 -8
  141. package/dist/roles/postgresRoleStore.d.ts +0 -86
  142. package/dist/roles/resolver.d.ts +0 -17
  143. package/dist/roles/routes.d.ts +0 -106
  144. package/dist/roles/types.d.ts +0 -14
  145. package/dist/routes/authorize.d.ts +0 -102
  146. package/dist/routes/callback.d.ts +0 -64
  147. package/dist/routes/profile.d.ts +0 -70
  148. package/dist/routes/protectRoute.d.ts +0 -51
  149. package/dist/routes/refresh.d.ts +0 -74
  150. package/dist/routes/revoke.d.ts +0 -73
  151. package/dist/routes/sessions.d.ts +0 -103
  152. package/dist/routes/signout.d.ts +0 -70
  153. package/dist/routes/stepUp.d.ts +0 -48
  154. package/dist/routes/userStatus.d.ts +0 -72
  155. package/dist/scim/config.d.ts +0 -57
  156. package/dist/scim/extensions.d.ts +0 -30
  157. package/dist/scim/inMemoryScimTokenStore.d.ts +0 -2
  158. package/dist/scim/postgresScimTokenStore.d.ts +0 -86
  159. package/dist/scim/routes.d.ts +0 -366
  160. package/dist/scim/serialize.d.ts +0 -83
  161. package/dist/scim/types.d.ts +0 -54
  162. package/dist/session/access.d.ts +0 -33
  163. package/dist/session/anonymous.d.ts +0 -12
  164. package/dist/session/cleanup.d.ts +0 -45
  165. package/dist/session/impersonation.d.ts +0 -34
  166. package/dist/session/inMemoryStore.d.ts +0 -7
  167. package/dist/session/multiSession.d.ts +0 -27
  168. package/dist/session/neonStore.d.ts +0 -513
  169. package/dist/session/promote.d.ts +0 -23
  170. package/dist/session/redisStore.d.ts +0 -6
  171. package/dist/session/sessionsConfig.d.ts +0 -9
  172. package/dist/session/state.d.ts +0 -33
  173. package/dist/session/types.d.ts +0 -21
  174. package/dist/session/userSessions.d.ts +0 -19
  175. package/dist/sso/config.d.ts +0 -149
  176. package/dist/sso/discoveryRoute.d.ts +0 -63
  177. package/dist/sso/inMemorySamlServiceProviderStore.d.ts +0 -2
  178. package/dist/sso/inMemorySsoConnectionStore.d.ts +0 -2
  179. package/dist/sso/oidcRoutes.d.ts +0 -98
  180. package/dist/sso/postgresSamlServiceProviderStore.d.ts +0 -101
  181. package/dist/sso/postgresSsoConnectionStore.d.ts +0 -116
  182. package/dist/sso/samlIdpRoutes.d.ts +0 -139
  183. package/dist/sso/samlRoutes.d.ts +0 -179
  184. package/dist/sso/types.d.ts +0 -53
  185. package/dist/stores/postgres.d.ts +0 -5
  186. package/dist/stores/redis.d.ts +0 -5
  187. package/dist/telemetry/tracing.d.ts +0 -15
  188. package/dist/tenancy.d.ts +0 -9
  189. package/dist/typeGuards.d.ts +0 -6
  190. package/dist/typebox.d.ts +0 -4
  191. package/dist/types.d.ts +0 -421
  192. package/dist/utils.d.ts +0 -45
  193. package/dist/vault/config.d.ts +0 -20
  194. package/dist/vault/inMemoryVaultStore.d.ts +0 -2
  195. package/dist/vault/postgresVaultStore.d.ts +0 -86
  196. package/dist/vault/types.d.ts +0 -14
  197. package/dist/vc/inMemoryVpStores.d.ts +0 -2
  198. package/dist/vc/openid4vp.d.ts +0 -82
  199. package/dist/vc/postgresVcStores.d.ts +0 -300
  200. package/dist/vc/sdJwt.d.ts +0 -37
  201. package/dist/vc/statusList.d.ts +0 -29
  202. package/dist/vc/statusListRoutes.d.ts +0 -63
  203. package/dist/vc/vpRoutes.d.ts +0 -120
  204. package/dist/webauthn/adapter.d.ts +0 -59
  205. package/dist/webauthn/config.d.ts +0 -36
  206. package/dist/webauthn/inMemoryWebAuthnCredentialStore.d.ts +0 -2
  207. package/dist/webauthn/postgresWebAuthnCredentialStore.d.ts +0 -146
  208. package/dist/webauthn/routes.d.ts +0 -155
  209. package/dist/webauthn/types.d.ts +0 -17
  210. package/dist/webhooks/config.d.ts +0 -34
  211. package/dist/webhooks/dispatcher.d.ts +0 -3
  212. package/dist/webhooks/inMemoryStore.d.ts +0 -2
  213. package/dist/webhooks/postgresStore.d.ts +0 -116
  214. package/dist/webhooks/sign.d.ts +0 -11
  215. package/dist/webhooks/types.d.ts +0 -25
@@ -1,143 +0,0 @@
1
- export type OAuthClient = {
2
- backchannelLogoutUri?: string;
3
- clientId: string;
4
- /** Grant types this dynamically registered client declared. Undefined preserves
5
- * the historical authorization-code default for statically configured clients. */
6
- grantTypes?: string[];
7
- hashedSecret?: string;
8
- jwks?: JsonWebKey[];
9
- jwksUri?: string;
10
- name: string;
11
- postLogoutRedirectUris?: string[];
12
- redirectUris: string[];
13
- requirePushedAuthorizationRequests?: boolean;
14
- requireSignedRequestObject?: boolean;
15
- scopes: string[];
16
- tlsCertificateBoundThumbprints?: string[];
17
- };
18
- export type ClientAssertionJtiStore = {
19
- recordIfFresh: (clientId: string, jti: string, expiresAt: number) => Promise<boolean>;
20
- };
21
- export type PushedAuthorizationRequest = {
22
- clientId: string;
23
- createdAt: number;
24
- expiresAt: number;
25
- params: Record<string, string>;
26
- requestUriHash: string;
27
- };
28
- export type PushedAuthorizationRequestStore = {
29
- consumeRequest: (requestUriHash: string) => Promise<PushedAuthorizationRequest | undefined>;
30
- saveRequest: (request: PushedAuthorizationRequest) => Promise<void>;
31
- };
32
- export type OAuthClientStore = {
33
- deleteClient?: (clientId: string) => Promise<void>;
34
- findClient: (clientId: string) => Promise<OAuthClient | undefined>;
35
- saveClient?: (client: OAuthClient) => Promise<void>;
36
- updateClient?: (clientId: string, client: OAuthClient) => Promise<void>;
37
- };
38
- export type ClientRegistrationToken = {
39
- clientId: string;
40
- createdAt: number;
41
- tokenHash: string;
42
- };
43
- export type ClientRegistrationTokenStore = {
44
- deleteByClientId: (clientId: string) => Promise<void>;
45
- findByTokenHash: (tokenHash: string) => Promise<ClientRegistrationToken | undefined>;
46
- saveToken: (token: ClientRegistrationToken) => Promise<void>;
47
- };
48
- export type InitialAccessTokenStore = {
49
- consumeToken: (tokenHash: string) => Promise<boolean>;
50
- };
51
- export type AuthorizationCode = {
52
- acr?: string;
53
- claims?: Record<string, unknown>;
54
- clientId: string;
55
- codeChallenge: string;
56
- codeHash: string;
57
- createdAt: number;
58
- dpopJkt?: string;
59
- expiresAt: number;
60
- nonce?: string;
61
- redirectUri: string;
62
- scopes: string[];
63
- userId: string;
64
- };
65
- export type AuthorizationCodeStore = {
66
- consumeCode: (codeHash: string) => Promise<AuthorizationCode | undefined>;
67
- saveCode: (code: AuthorizationCode) => Promise<void>;
68
- };
69
- export type OidcRefreshToken = {
70
- acr?: string;
71
- claims?: Record<string, unknown>;
72
- clientId: string;
73
- createdAt: number;
74
- dpopJkt?: string;
75
- expiresAt: number;
76
- scopes: string[];
77
- tokenHash: string;
78
- userId: string;
79
- };
80
- export type OidcRefreshTokenStore = {
81
- consumeToken: (tokenHash: string) => Promise<OidcRefreshToken | undefined>;
82
- deleteForUser: (userId: string) => Promise<void>;
83
- getToken: (tokenHash: string) => Promise<OidcRefreshToken | undefined>;
84
- listClientIdsForUser: (userId: string) => Promise<string[]>;
85
- saveToken: (token: OidcRefreshToken) => Promise<void>;
86
- };
87
- export type DeviceAuthorizationStatus = 'approved' | 'denied' | 'pending';
88
- export type DeviceAuthorization = {
89
- clientId: string;
90
- createdAt: number;
91
- deviceCodeHash: string;
92
- expiresAt: number;
93
- intervalSeconds: number;
94
- scopes: string[];
95
- status: DeviceAuthorizationStatus;
96
- userCode: string;
97
- userSub?: string;
98
- };
99
- export type LogoutDelivery = {
100
- attempts: number;
101
- clientId: string;
102
- createdAt: number;
103
- endpointUrl: string;
104
- id: string;
105
- lastError?: string;
106
- lastStatus?: number;
107
- logoutToken: string;
108
- userId: string;
109
- };
110
- export type LogoutDeliveryStore = {
111
- listFailed: (limit?: number) => Promise<LogoutDelivery[]>;
112
- recordFailure: (delivery: LogoutDelivery) => Promise<void>;
113
- removeFailure: (deliveryId: string) => Promise<void>;
114
- };
115
- export type DeviceAuthorizationStore = {
116
- deleteByDeviceCodeHash: (deviceCodeHash: string) => Promise<void>;
117
- findByDeviceCodeHash: (deviceCodeHash: string) => Promise<DeviceAuthorization | undefined>;
118
- findByUserCode: (userCode: string) => Promise<DeviceAuthorization | undefined>;
119
- saveDeviceAuthorization: (deviceAuthorization: DeviceAuthorization) => Promise<void>;
120
- updateStatus: (deviceCodeHash: string, status: DeviceAuthorizationStatus, userSub?: string) => Promise<void>;
121
- };
122
- export type BackchannelAuthStatus = 'approved' | 'denied' | 'pending';
123
- export type BackchannelAuthRequest = {
124
- authReqId: string;
125
- bindingMessage?: string;
126
- clientId: string;
127
- createdAt: number;
128
- expiresAt: number;
129
- /** Poll-mode interval seconds. Bumped by 5 each time the client polls faster than
130
- * allowed (returns `slow_down` until the new interval has elapsed). */
131
- intervalSeconds: number;
132
- lastPolledAt?: number;
133
- scopes: string[];
134
- status: BackchannelAuthStatus;
135
- userSub?: string;
136
- };
137
- export type BackchannelAuthStore = {
138
- deleteByAuthReqId: (authReqId: string) => Promise<void>;
139
- findByAuthReqId: (authReqId: string) => Promise<BackchannelAuthRequest | undefined>;
140
- recordPoll: (authReqId: string, at: number) => Promise<void>;
141
- saveBackchannelAuth: (request: BackchannelAuthRequest) => Promise<void>;
142
- updateStatus: (authReqId: string, status: BackchannelAuthStatus, userSub?: string) => Promise<void>;
143
- };
@@ -1,21 +0,0 @@
1
- import type { OidcProviderConfig } from './config';
2
- export type UserInfoResult = {
3
- body: Record<string, unknown> & {
4
- sub: string;
5
- };
6
- ok: true;
7
- } | {
8
- body: {
9
- error: string;
10
- error_description?: string;
11
- };
12
- error: 'invalid_request' | 'invalid_token';
13
- ok: false;
14
- };
15
- export declare const readUserInfoBearer: (authorization: string | undefined) => string | undefined;
16
- export declare const fetchUserInfo: <UserType>({ config, now, token }: {
17
- config: OidcProviderConfig<UserType>;
18
- now?: number;
19
- token: string | undefined;
20
- }) => Promise<UserInfoResult>;
21
- export declare const userInfoChallengeHeader: (error: "invalid_request" | "invalid_token") => string;
@@ -1,159 +0,0 @@
1
- import type { RouteString } from '../types';
2
- import { type SigningKey } from './keys';
3
- export declare const PRE_AUTHORIZED_CODE_GRANT = "urn:ietf:params:oauth:grant-type:pre-authorized_code";
4
- export type CredentialConfiguration = {
5
- format: 'vc+sd-jwt';
6
- id: string;
7
- display?: Array<{
8
- locale?: string;
9
- name: string;
10
- }>;
11
- order?: string[];
12
- claims?: Record<string, {
13
- display?: Array<{
14
- locale?: string;
15
- name: string;
16
- }>;
17
- }>;
18
- vct: string;
19
- };
20
- export type CredentialOffer = {
21
- clientId: string;
22
- configurationId: string;
23
- createdAt: number;
24
- expiresAt: number;
25
- preAuthorizedCodeHash: string;
26
- redeemed: boolean;
27
- userId: string;
28
- };
29
- export type CredentialOfferStore = {
30
- consumeOffer: (preAuthorizedCodeHash: string) => Promise<CredentialOffer | undefined>;
31
- saveOffer: (offer: CredentialOffer) => Promise<void>;
32
- };
33
- export type CredentialNonceRecord = {
34
- expiresAt: number;
35
- nonceHash: string;
36
- };
37
- export type CredentialNonceStore = {
38
- consumeNonce: (nonceHash: string) => Promise<CredentialNonceRecord | undefined>;
39
- saveNonce: (record: CredentialNonceRecord) => Promise<void>;
40
- };
41
- export type VciConfig = {
42
- accessTokenTtlMs?: number;
43
- credentialConfigurations: CredentialConfiguration[];
44
- credentialNonceStore?: CredentialNonceStore;
45
- credentialOfferStore: CredentialOfferStore;
46
- nonceTtlMs?: number;
47
- offerTtlMs?: number;
48
- resolveCredentialClaims: (context: {
49
- configurationId: string;
50
- userId: string;
51
- }) => Promise<Record<string, unknown>> | Record<string, unknown>;
52
- resolveProtectedClaims?: (context: {
53
- configurationId: string;
54
- userId: string;
55
- }) => Promise<Record<string, unknown>> | Record<string, unknown>;
56
- signingKey?: SigningKey;
57
- vciRoute?: RouteString;
58
- };
59
- export declare const DEFAULT_VCI_ROUTE: RouteString;
60
- export declare const createCredentialOffer: ({ clientId, configurationId, now, store, ttlMs, userId }: {
61
- clientId: string;
62
- configurationId: string;
63
- now?: number;
64
- store: CredentialOfferStore;
65
- ttlMs?: number;
66
- userId: string;
67
- }) => Promise<{
68
- offer: CredentialOffer;
69
- preAuthorizedCode: string;
70
- }>;
71
- export type PreAuthExchangeResult = {
72
- error: 'expired_token' | 'invalid_grant';
73
- ok: false;
74
- } | {
75
- access_token: string;
76
- c_nonce?: string;
77
- c_nonce_expires_in?: number;
78
- expires_in: number;
79
- ok: true;
80
- token_type: 'Bearer';
81
- };
82
- export declare const exchangePreAuthorizedCode: ({ config, issuer, now, preAuthorizedCode, signingKey }: {
83
- config: VciConfig;
84
- issuer: string;
85
- now?: number;
86
- preAuthorizedCode: string;
87
- signingKey: SigningKey;
88
- }) => Promise<{
89
- error: "expired_token" | "invalid_grant";
90
- ok: false;
91
- } | {
92
- access_token: string;
93
- c_nonce?: string;
94
- c_nonce_expires_in?: number;
95
- expires_in: number;
96
- ok: true;
97
- token_type: "Bearer";
98
- }>;
99
- export type CredentialIssueInput = {
100
- accessToken: string;
101
- proofJwt?: string;
102
- requestedFormat?: 'vc+sd-jwt';
103
- };
104
- export type CredentialIssueResult = {
105
- credential: string;
106
- format: 'vc+sd-jwt';
107
- ok: true;
108
- } | {
109
- error: 'invalid_credential_request' | 'invalid_proof' | 'invalid_token' | 'unsupported_credential_format';
110
- ok: false;
111
- };
112
- export declare const buildIssuerMetadata: ({ config, issuer, vciRoute }: {
113
- config: VciConfig;
114
- issuer: string;
115
- vciRoute: RouteString;
116
- }) => {
117
- credential_configurations_supported: {
118
- [k: string]: {
119
- claims: Record<string, {
120
- display?: Array<{
121
- locale?: string;
122
- name: string;
123
- }>;
124
- }> | undefined;
125
- credential_signing_alg_values_supported: string[];
126
- cryptographic_binding_methods_supported: string[];
127
- display: {
128
- locale?: string;
129
- name: string;
130
- }[] | undefined;
131
- format: "vc+sd-jwt";
132
- order: string[] | undefined;
133
- proof_types_supported: {
134
- jwt: {
135
- proof_signing_alg_values_supported: string[];
136
- };
137
- };
138
- vct: string;
139
- };
140
- };
141
- credential_endpoint: string;
142
- credential_issuer: string;
143
- nonce_endpoint: string | undefined;
144
- token_endpoint: string;
145
- };
146
- export declare const issueCredential: ({ config, input, issuer, now, signingKey }: {
147
- config: VciConfig;
148
- input: CredentialIssueInput;
149
- issuer: string;
150
- now?: number;
151
- signingKey: SigningKey;
152
- }) => Promise<{
153
- credential: string;
154
- format: "vc+sd-jwt";
155
- ok: true;
156
- } | {
157
- error: "invalid_credential_request" | "invalid_proof" | "invalid_token" | "unsupported_credential_format";
158
- ok: false;
159
- }>;
@@ -1,92 +0,0 @@
1
- import { Elysia } from 'elysia';
2
- import type { SigningKey } from './keys';
3
- import { type VciConfig } from './vci';
4
- export declare const vciRoutes: ({ issuerUrl, signingKey, vciConfig }: {
5
- issuerUrl: string;
6
- signingKey: SigningKey;
7
- vciConfig: VciConfig;
8
- }) => Elysia<"", {
9
- decorator: {};
10
- store: {};
11
- derive: {};
12
- resolve: {};
13
- }, {
14
- typebox: {};
15
- error: {};
16
- }, {
17
- schema: {};
18
- standaloneSchema: {};
19
- macro: {};
20
- macroFn: {};
21
- parser: {};
22
- response: {};
23
- }, {
24
- ".well-known": {
25
- "openid-credential-issuer": {
26
- get: {
27
- body: unknown;
28
- params: {};
29
- query: unknown;
30
- headers: unknown;
31
- response: {
32
- 200: Response;
33
- };
34
- };
35
- };
36
- };
37
- } & {
38
- [x: string]: {
39
- credential: {
40
- post: {
41
- body: {
42
- format?: "vc+sd-jwt" | undefined;
43
- proof?: {
44
- jwt: string;
45
- proof_type: "jwt";
46
- } | undefined;
47
- };
48
- params: {};
49
- query: unknown;
50
- headers: unknown;
51
- response: {
52
- 200: Response;
53
- 422: {
54
- type: "validation";
55
- on: string;
56
- summary?: string;
57
- message?: string;
58
- found?: unknown;
59
- property?: string;
60
- expected?: string;
61
- };
62
- };
63
- };
64
- };
65
- };
66
- } & {
67
- [x: string]: {
68
- nonce: {
69
- post: {
70
- body: unknown;
71
- params: {};
72
- query: unknown;
73
- headers: unknown;
74
- response: {
75
- 200: Response;
76
- };
77
- };
78
- };
79
- };
80
- }, {
81
- derive: {};
82
- resolve: {};
83
- schema: {};
84
- standaloneSchema: {};
85
- response: {};
86
- }, {
87
- derive: {};
88
- resolve: {};
89
- schema: {};
90
- standaloneSchema: {};
91
- response: {};
92
- }>;
@@ -1,46 +0,0 @@
1
- import type { AuditEmitter } from '../audit/config';
2
- import type { AuthSessionStore } from '../session/types';
3
- import type { OrganizationId } from '../tenancy';
4
- import type { RouteString } from '../types';
5
- import type { OrganizationMembership, OrganizationStore } from './types';
6
- export declare const DEFAULT_INVITATION_TTL_MS: number;
7
- export declare const DEFAULT_ORGANIZATIONS_ROUTE: RouteString;
8
- export declare const DEFAULT_OWNER_ROLES: string[];
9
- export type OrganizationInvitationMessage = {
10
- email: string;
11
- expiresAt: number;
12
- inviterUserId?: string;
13
- organizationId: OrganizationId;
14
- token: string;
15
- };
16
- export type OrganizationsConfig<UserType> = {
17
- getUserId: (user: UserType) => string;
18
- organizationStore: OrganizationStore;
19
- canCreateOrganization?: (user: UserType) => boolean | Promise<boolean>;
20
- canManageMembers?: (context: {
21
- membership?: OrganizationMembership;
22
- organizationId: OrganizationId;
23
- user: UserType;
24
- }) => boolean | Promise<boolean>;
25
- invitationDurationMs?: number;
26
- onMembershipAdded?: (context: {
27
- organizationId: OrganizationId;
28
- roles: string[];
29
- userId: string;
30
- }) => void | Promise<void>;
31
- onMembershipRemoved?: (context: {
32
- organizationId: OrganizationId;
33
- userId: string;
34
- }) => void | Promise<void>;
35
- onOrganizationCreated?: (context: {
36
- organizationId: OrganizationId;
37
- ownerUserId: string;
38
- }) => void | Promise<void>;
39
- onSendInvitation?: (message: OrganizationInvitationMessage) => void | Promise<void>;
40
- organizationsRoute?: RouteString;
41
- ownerRoles?: string[];
42
- };
43
- export type OrganizationsRouteProps<UserType> = OrganizationsConfig<UserType> & {
44
- authSessionStore?: AuthSessionStore<UserType>;
45
- emit?: AuditEmitter;
46
- };
@@ -1,2 +0,0 @@
1
- import type { OrganizationStore } from './types';
2
- export declare const createInMemoryOrganizationStore: () => OrganizationStore;
@@ -1,39 +0,0 @@
1
- import type { OrganizationId } from '../tenancy';
2
- import type { Organization, OrganizationInvitation, OrganizationMembership, OrganizationStore } from './types';
3
- export declare const acceptInvitation: ({ organizationStore, token, userId }: {
4
- organizationStore: OrganizationStore;
5
- token: string;
6
- userId: string;
7
- }) => Promise<OrganizationMembership | undefined>;
8
- export declare const autoAssignOrgsByEmail: ({ email, getOrgsForDomain, organizationStore, roles, userId }: {
9
- email: string;
10
- getOrgsForDomain: (domain: string) => Promise<OrganizationId[]> | OrganizationId[];
11
- organizationStore: OrganizationStore;
12
- roles?: string[];
13
- userId: string;
14
- }) => Promise<string[]>;
15
- export declare const createOrganization: ({ metadata, name, organizationStore, ownerRoles, ownerUserId }: {
16
- metadata?: Record<string, unknown>;
17
- name: string;
18
- organizationStore: OrganizationStore;
19
- ownerRoles?: string[];
20
- ownerUserId: string;
21
- }) => Promise<Organization>;
22
- export declare const inviteToOrganization: ({ email, invitationDurationMs, inviterUserId, organizationId, organizationStore, roles }: {
23
- email: string;
24
- invitationDurationMs?: number;
25
- inviterUserId?: string;
26
- organizationId: OrganizationId;
27
- organizationStore: OrganizationStore;
28
- roles?: string[];
29
- }) => Promise<{
30
- invitation: OrganizationInvitation;
31
- token: string;
32
- }>;
33
- export declare const listUserOrganizations: ({ organizationStore, userId }: {
34
- organizationStore: OrganizationStore;
35
- userId: string;
36
- }) => Promise<{
37
- membership: OrganizationMembership;
38
- organization: Organization | undefined;
39
- }[]>;