@absolutejs/auth 0.55.5 → 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 (219) hide show
  1. package/README.md +6 -1
  2. package/dist/agents/index.js +36 -6
  3. package/dist/agents/index.js.map +6 -5
  4. package/dist/index.d.ts +3400 -8
  5. package/dist/index.js +777 -522
  6. package/dist/index.js.map +17 -13
  7. package/dist/server.d.ts +6 -6
  8. package/dist/server.js +775 -522
  9. package/dist/server.js.map +18 -14
  10. package/package.json +1 -1
  11. package/dist/abuse/captcha.d.ts +0 -11
  12. package/dist/abuse/config.d.ts +0 -29
  13. package/dist/actions.d.ts +0 -27
  14. package/dist/adaptive/config.d.ts +0 -34
  15. package/dist/adaptive/fingerprint.d.ts +0 -2
  16. package/dist/adaptive/inMemoryStores.d.ts +0 -3
  17. package/dist/adaptive/postgresStores.d.ts +0 -245
  18. package/dist/adaptive/types.d.ts +0 -62
  19. package/dist/agents/config.d.ts +0 -44
  20. package/dist/agents/context.d.ts +0 -46
  21. package/dist/agents/idJag.d.ts +0 -49
  22. package/dist/agents/inMemoryStores.d.ts +0 -4
  23. package/dist/agents/oidcAdapter.d.ts +0 -12
  24. package/dist/agents/postgresStores.d.ts +0 -569
  25. package/dist/agents/principal.d.ts +0 -4
  26. package/dist/agents/registration.d.ts +0 -162
  27. package/dist/agents/registrationClient.d.ts +0 -50
  28. package/dist/agents/routes.d.ts +0 -214
  29. package/dist/agents/types.d.ts +0 -129
  30. package/dist/apikeys/config.d.ts +0 -64
  31. package/dist/apikeys/inMemoryStores.d.ts +0 -4
  32. package/dist/apikeys/postgresStores.d.ts +0 -359
  33. package/dist/apikeys/routes.d.ts +0 -83
  34. package/dist/apikeys/types.d.ts +0 -53
  35. package/dist/audit/config.d.ts +0 -9
  36. package/dist/audit/export.d.ts +0 -2
  37. package/dist/audit/inMemoryAuditStore.d.ts +0 -2
  38. package/dist/audit/integrity.d.ts +0 -19
  39. package/dist/audit/postgresAuditStore.d.ts +0 -116
  40. package/dist/audit/siem.d.ts +0 -11
  41. package/dist/audit/types.d.ts +0 -19
  42. package/dist/audit/wrap.d.ts +0 -9
  43. package/dist/authInstance.d.ts +0 -7
  44. package/dist/authorization/config.d.ts +0 -19
  45. package/dist/authorization/protectPermission.d.ts +0 -52
  46. package/dist/compliance/cipher.d.ts +0 -5
  47. package/dist/compliance/config.d.ts +0 -18
  48. package/dist/compliance/redaction.d.ts +0 -8
  49. package/dist/compliance/routes.d.ts +0 -89
  50. package/dist/constants.d.ts +0 -10
  51. package/dist/credentials/backgroundOps.d.ts +0 -45
  52. package/dist/credentials/config.d.ts +0 -68
  53. package/dist/credentials/emailValidation.d.ts +0 -9
  54. package/dist/credentials/emailVerification.d.ts +0 -83
  55. package/dist/credentials/import.d.ts +0 -34
  56. package/dist/credentials/inMemoryCredentialStore.d.ts +0 -2
  57. package/dist/credentials/legacyHashers.d.ts +0 -3
  58. package/dist/credentials/login.d.ts +0 -76
  59. package/dist/credentials/passwordPolicy.d.ts +0 -15
  60. package/dist/credentials/passwordReset.d.ts +0 -87
  61. package/dist/credentials/postgresCredentialStore.d.ts +0 -235
  62. package/dist/credentials/register.d.ts +0 -54
  63. package/dist/credentials/routes.d.ts +0 -201
  64. package/dist/credentials/types.d.ts +0 -26
  65. package/dist/crypto.d.ts +0 -32
  66. package/dist/errors.d.ts +0 -12
  67. package/dist/federation/tokenStore.d.ts +0 -29
  68. package/dist/fga/config.d.ts +0 -53
  69. package/dist/fga/inMemoryStores.d.ts +0 -3
  70. package/dist/fga/postgresStores.d.ts +0 -116
  71. package/dist/fga/redisCheckCache.d.ts +0 -11
  72. package/dist/fga/schema.d.ts +0 -2
  73. package/dist/fga/types.d.ts +0 -28
  74. package/dist/htmx/renderers.d.ts +0 -8
  75. package/dist/htmx/routes.d.ts +0 -514
  76. package/dist/htmx/types.d.ts +0 -129
  77. package/dist/linkedProviders/inMemoryStores.d.ts +0 -9
  78. package/dist/linkedProviders/neonStores.d.ts +0 -484
  79. package/dist/linkedProviders/oauthResolver.d.ts +0 -9
  80. package/dist/linkedProviders/resolver.d.ts +0 -22
  81. package/dist/lockout/config.d.ts +0 -17
  82. package/dist/lockout/inMemoryLockoutStore.d.ts +0 -2
  83. package/dist/lockout/postgresLockoutStore.d.ts +0 -71
  84. package/dist/lockout/redisLockoutStore.d.ts +0 -3
  85. package/dist/lockout/types.d.ts +0 -12
  86. package/dist/mfa/backupCodes.d.ts +0 -5
  87. package/dist/mfa/challenge.d.ts +0 -70
  88. package/dist/mfa/config.d.ts +0 -50
  89. package/dist/mfa/gate.d.ts +0 -2
  90. package/dist/mfa/inMemoryMfaStore.d.ts +0 -2
  91. package/dist/mfa/management.d.ts +0 -106
  92. package/dist/mfa/postgresMfaStore.d.ts +0 -206
  93. package/dist/mfa/rotation.d.ts +0 -17
  94. package/dist/mfa/routes.d.ts +0 -234
  95. package/dist/mfa/secret.d.ts +0 -2
  96. package/dist/mfa/sms.d.ts +0 -105
  97. package/dist/mfa/totp.d.ts +0 -91
  98. package/dist/mfa/types.d.ts +0 -23
  99. package/dist/migrations/generate.d.ts +0 -2
  100. package/dist/migrations/index.d.ts +0 -5
  101. package/dist/migrations/runner.d.ts +0 -13
  102. package/dist/migrations/types.d.ts +0 -14
  103. package/dist/oidc/clientAuth.d.ts +0 -19
  104. package/dist/oidc/clientIdMetadata.d.ts +0 -32
  105. package/dist/oidc/config.d.ts +0 -295
  106. package/dist/oidc/dpop.d.ts +0 -23
  107. package/dist/oidc/inMemoryStores.d.ts +0 -11
  108. package/dist/oidc/inMemoryVciStores.d.ts +0 -3
  109. package/dist/oidc/jar.d.ts +0 -14
  110. package/dist/oidc/keys.d.ts +0 -25
  111. package/dist/oidc/logout.d.ts +0 -38
  112. package/dist/oidc/mtls.d.ts +0 -11
  113. package/dist/oidc/par.d.ts +0 -28
  114. package/dist/oidc/postgresStores.d.ts +0 -1187
  115. package/dist/oidc/registration.d.ts +0 -138
  116. package/dist/oidc/routes.d.ts +0 -568
  117. package/dist/oidc/types.d.ts +0 -143
  118. package/dist/oidc/userinfo.d.ts +0 -21
  119. package/dist/oidc/vci.d.ts +0 -159
  120. package/dist/oidc/vciRoutes.d.ts +0 -92
  121. package/dist/organizations/config.d.ts +0 -46
  122. package/dist/organizations/inMemoryOrganizationStore.d.ts +0 -2
  123. package/dist/organizations/operations.d.ts +0 -39
  124. package/dist/organizations/postgresOrganizationStore.d.ts +0 -340
  125. package/dist/organizations/routes.d.ts +0 -298
  126. package/dist/organizations/types.d.ts +0 -45
  127. package/dist/passwordless/config.d.ts +0 -43
  128. package/dist/passwordless/inMemoryPasswordlessTokenStore.d.ts +0 -2
  129. package/dist/passwordless/postgresPasswordlessTokenStore.d.ts +0 -56
  130. package/dist/passwordless/routes.d.ts +0 -162
  131. package/dist/passwordless/types.d.ts +0 -9
  132. package/dist/portal/config.d.ts +0 -34
  133. package/dist/portal/inMemorySetupSessionStore.d.ts +0 -2
  134. package/dist/portal/operations.d.ts +0 -10
  135. package/dist/portal/postgresSetupSessionStore.d.ts +0 -116
  136. package/dist/portal/routes.d.ts +0 -160
  137. package/dist/portal/types.d.ts +0 -16
  138. package/dist/providers/clients.d.ts +0 -1818
  139. package/dist/providersFromEnv.d.ts +0 -19
  140. package/dist/roles/config.d.ts +0 -27
  141. package/dist/roles/inMemoryRoleStore.d.ts +0 -2
  142. package/dist/roles/operations.d.ts +0 -8
  143. package/dist/roles/postgresRoleStore.d.ts +0 -86
  144. package/dist/roles/resolver.d.ts +0 -17
  145. package/dist/roles/routes.d.ts +0 -105
  146. package/dist/roles/types.d.ts +0 -14
  147. package/dist/routes/authorize.d.ts +0 -102
  148. package/dist/routes/callback.d.ts +0 -64
  149. package/dist/routes/profile.d.ts +0 -70
  150. package/dist/routes/protectRoute.d.ts +0 -51
  151. package/dist/routes/refresh.d.ts +0 -74
  152. package/dist/routes/revoke.d.ts +0 -73
  153. package/dist/routes/sessions.d.ts +0 -103
  154. package/dist/routes/signout.d.ts +0 -70
  155. package/dist/routes/stepUp.d.ts +0 -48
  156. package/dist/routes/userStatus.d.ts +0 -72
  157. package/dist/scim/config.d.ts +0 -57
  158. package/dist/scim/extensions.d.ts +0 -30
  159. package/dist/scim/inMemoryScimTokenStore.d.ts +0 -2
  160. package/dist/scim/postgresScimTokenStore.d.ts +0 -86
  161. package/dist/scim/routes.d.ts +0 -366
  162. package/dist/scim/serialize.d.ts +0 -83
  163. package/dist/scim/types.d.ts +0 -54
  164. package/dist/serverConfig.d.ts +0 -10
  165. package/dist/session/access.d.ts +0 -33
  166. package/dist/session/anonymous.d.ts +0 -12
  167. package/dist/session/cleanup.d.ts +0 -45
  168. package/dist/session/impersonation.d.ts +0 -34
  169. package/dist/session/inMemoryStore.d.ts +0 -7
  170. package/dist/session/internalData.d.ts +0 -34
  171. package/dist/session/multiSession.d.ts +0 -27
  172. package/dist/session/neonStore.d.ts +0 -513
  173. package/dist/session/promote.d.ts +0 -23
  174. package/dist/session/redisStore.d.ts +0 -6
  175. package/dist/session/sessionsConfig.d.ts +0 -9
  176. package/dist/session/state.d.ts +0 -33
  177. package/dist/session/types.d.ts +0 -20
  178. package/dist/session/userSessions.d.ts +0 -19
  179. package/dist/sso/config.d.ts +0 -149
  180. package/dist/sso/discoveryRoute.d.ts +0 -63
  181. package/dist/sso/inMemorySamlServiceProviderStore.d.ts +0 -2
  182. package/dist/sso/inMemorySsoConnectionStore.d.ts +0 -2
  183. package/dist/sso/oidcRoutes.d.ts +0 -98
  184. package/dist/sso/postgresSamlServiceProviderStore.d.ts +0 -101
  185. package/dist/sso/postgresSsoConnectionStore.d.ts +0 -116
  186. package/dist/sso/samlIdpRoutes.d.ts +0 -139
  187. package/dist/sso/samlRoutes.d.ts +0 -178
  188. package/dist/sso/types.d.ts +0 -53
  189. package/dist/stores/postgres.d.ts +0 -5
  190. package/dist/stores/redis.d.ts +0 -5
  191. package/dist/telemetry/tracing.d.ts +0 -15
  192. package/dist/tenancy.d.ts +0 -9
  193. package/dist/typeGuards.d.ts +0 -6
  194. package/dist/typebox.d.ts +0 -4
  195. package/dist/types.d.ts +0 -421
  196. package/dist/utils.d.ts +0 -45
  197. package/dist/vault/config.d.ts +0 -20
  198. package/dist/vault/inMemoryVaultStore.d.ts +0 -2
  199. package/dist/vault/postgresVaultStore.d.ts +0 -86
  200. package/dist/vault/types.d.ts +0 -14
  201. package/dist/vc/inMemoryVpStores.d.ts +0 -2
  202. package/dist/vc/openid4vp.d.ts +0 -82
  203. package/dist/vc/postgresVcStores.d.ts +0 -300
  204. package/dist/vc/sdJwt.d.ts +0 -37
  205. package/dist/vc/statusList.d.ts +0 -29
  206. package/dist/vc/statusListRoutes.d.ts +0 -63
  207. package/dist/vc/vpRoutes.d.ts +0 -120
  208. package/dist/webauthn/adapter.d.ts +0 -59
  209. package/dist/webauthn/config.d.ts +0 -36
  210. package/dist/webauthn/inMemoryWebAuthnCredentialStore.d.ts +0 -2
  211. package/dist/webauthn/postgresWebAuthnCredentialStore.d.ts +0 -146
  212. package/dist/webauthn/routes.d.ts +0 -155
  213. package/dist/webauthn/types.d.ts +0 -17
  214. package/dist/webhooks/config.d.ts +0 -34
  215. package/dist/webhooks/dispatcher.d.ts +0 -3
  216. package/dist/webhooks/inMemoryStore.d.ts +0 -2
  217. package/dist/webhooks/postgresStore.d.ts +0 -116
  218. package/dist/webhooks/sign.d.ts +0 -11
  219. package/dist/webhooks/types.d.ts +0 -25
@@ -1,9 +0,0 @@
1
- import type { CredentialsConfig } from '../credentials/config';
2
- import type { MfaConfig } from '../mfa/config';
3
- import type { OnCallbackSuccess, OnRevocationSuccess, OnSignOut } from '../types';
4
- import type { AuditEmitter } from './config';
5
- export declare const composeCallbackAudit: <UserType>(onCallbackSuccess: OnCallbackSuccess<UserType>, emit: AuditEmitter) => (context: Parameters<NonNullable<OnCallbackSuccess<UserType>>>[0]) => Promise<void | Response | import("..").StatusReturn>;
6
- export declare const composeCredentialsAudit: <UserType>(credentials: CredentialsConfig<UserType>, emit: AuditEmitter, getUserId?: (user: UserType) => string) => CredentialsConfig<UserType>;
7
- export declare const composeMfaAudit: <UserType>(mfa: MfaConfig<UserType>, emit: AuditEmitter) => MfaConfig<UserType>;
8
- export declare const composeRevocationAudit: (onRevocationSuccess: OnRevocationSuccess, emit: AuditEmitter) => (context: Parameters<NonNullable<OnRevocationSuccess>>[0]) => Promise<void | undefined>;
9
- export declare const composeSignOutAudit: <UserType>(onSignOut: OnSignOut<UserType>, emit: AuditEmitter) => (context: Parameters<NonNullable<OnSignOut<UserType>>>[0]) => Promise<void | undefined>;
@@ -1,7 +0,0 @@
1
- import type { protectRoutePlugin } from './routes/protectRoute';
2
- /** The consumer-facing context contributed by `auth()`. Configurable auth
3
- * routes are available at runtime but intentionally omitted from this type:
4
- * their user-defined paths cannot form useful literal route declarations.
5
- * Optional step-up and agent contexts remain available through their explicit
6
- * plugins without multiplying the default application's Elysia type graph. */
7
- export type AuthInstance<UserType> = ReturnType<typeof protectRoutePlugin<UserType>>;
@@ -1,19 +0,0 @@
1
- import type { AuditEmitter } from '../audit/config';
2
- import type { AuthSessionStore } from '../session/types';
3
- import type { OrganizationId } from '../tenancy';
4
- export type PermissionContext<UserType> = {
5
- organizationId?: OrganizationId;
6
- permission: string;
7
- user: UserType;
8
- };
9
- export type AuthorizationConfig<UserType> = {
10
- hasPermission: (context: PermissionContext<UserType>) => boolean | Promise<boolean>;
11
- };
12
- export type PermissionCheck = {
13
- organizationId?: OrganizationId;
14
- permission: string;
15
- };
16
- export type AuthorizationPluginProps<UserType> = AuthorizationConfig<UserType> & {
17
- authSessionStore?: AuthSessionStore<UserType>;
18
- emit?: AuditEmitter;
19
- };
@@ -1,52 +0,0 @@
1
- import { Elysia } from 'elysia';
2
- import type { AuthorizationPluginProps, PermissionCheck } from './config';
3
- type PermissionFailError = {
4
- readonly code: 'Bad Request';
5
- readonly message: 'Cookies are missing';
6
- } | {
7
- readonly code: 'Forbidden';
8
- readonly message: 'Insufficient permissions';
9
- } | {
10
- readonly code: 'Unauthorized';
11
- readonly message: 'User is not authenticated';
12
- };
13
- export declare const protectPermissionPlugin: <UserType>({ authSessionStore, emit, hasPermission }: AuthorizationPluginProps<UserType>) => Elysia<"", {
14
- decorator: {};
15
- store: {
16
- session: import("../session/internalData").InternalSessionRecord<UserType>;
17
- unregisteredSession: import("../session/internalData").InternalUnregisteredSessionRecord;
18
- };
19
- derive: {
20
- readonly protectPermission: <AuthReturn, AuthFailReturn>(check: PermissionCheck, handleAuth: (user: UserType) => AuthReturn | Promise<AuthReturn>, handleAuthFail?: (error: PermissionFailError) => AuthFailReturn) => Promise<import("elysia").ElysiaCustomStatusResponse<"Bad Request", "Cookies are missing", 400> | import("elysia").ElysiaCustomStatusResponse<"Unauthorized", "User is not authenticated", 401> | AuthReturn | NonNullable<AuthFailReturn> | import("elysia").ElysiaCustomStatusResponse<"Forbidden", "Insufficient permissions", 403>>;
21
- };
22
- resolve: {};
23
- }, {
24
- typebox: {};
25
- error: {};
26
- }, {
27
- schema: import("elysia").UnwrapRoute<{
28
- cookie: import("@sinclair/typebox").TObject<{
29
- user_session_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TTemplateLiteralSyntax<"${string}-${string}-${string}-${string}-${string}">>;
30
- }>;
31
- }, {}, "">;
32
- standaloneSchema: {};
33
- macro: {};
34
- macroFn: {};
35
- parser: {};
36
- response: import("elysia").ExtractErrorFromHandle<{
37
- readonly protectPermission: <AuthReturn, AuthFailReturn>(check: PermissionCheck, handleAuth: (user: UserType) => AuthReturn | Promise<AuthReturn>, handleAuthFail?: (error: PermissionFailError) => AuthFailReturn) => Promise<import("elysia").ElysiaCustomStatusResponse<"Bad Request", "Cookies are missing", 400> | import("elysia").ElysiaCustomStatusResponse<"Unauthorized", "User is not authenticated", 401> | AuthReturn | NonNullable<AuthFailReturn> | import("elysia").ElysiaCustomStatusResponse<"Forbidden", "Insufficient permissions", 403>>;
38
- }>;
39
- }, {}, {
40
- derive: {};
41
- resolve: {};
42
- schema: {};
43
- standaloneSchema: {};
44
- response: {};
45
- }, {
46
- derive: {};
47
- resolve: {};
48
- schema: {};
49
- standaloneSchema: {};
50
- response: {};
51
- }>;
52
- export {};
@@ -1,5 +0,0 @@
1
- export type SecretCipher = {
2
- decrypt: (ciphertext: string) => Promise<string>;
3
- encrypt: (plaintext: string) => Promise<string>;
4
- };
5
- export declare const createSecretCipher: (keyMaterial: string) => SecretCipher;
@@ -1,18 +0,0 @@
1
- import type { AuditEmitter } from '../audit/config';
2
- import type { AuthSessionStore } from '../session/types';
3
- import type { RouteString } from '../types';
4
- export type ComplianceConfig<UserType> = {
5
- complianceRoute?: RouteString;
6
- deleteUserData: (context: {
7
- user: UserType;
8
- userId?: string;
9
- }) => void | Promise<void>;
10
- exportUserData: (context: {
11
- user: UserType;
12
- }) => Record<string, unknown> | Promise<Record<string, unknown>>;
13
- getUserId?: (user: UserType) => string;
14
- };
15
- export type CompliancePluginProps<UserType> = ComplianceConfig<UserType> & {
16
- authSessionStore?: AuthSessionStore<UserType>;
17
- emit?: AuditEmitter;
18
- };
@@ -1,8 +0,0 @@
1
- import type { AuditEvent } from '../audit/types';
2
- type AuditRedactorOptions = {
3
- dropFields?: string[];
4
- hashFields?: string[];
5
- redactIp?: boolean;
6
- };
7
- export declare const createAuditRedactor: ({ dropFields, hashFields, redactIp }: AuditRedactorOptions) => (event: AuditEvent) => Promise<AuditEvent>;
8
- export {};
@@ -1,89 +0,0 @@
1
- import { Elysia } from 'elysia';
2
- import type { CompliancePluginProps } from './config';
3
- export declare const complianceRoutes: <UserType>({ authSessionStore, complianceRoute, deleteUserData, emit, exportUserData, getUserId }: CompliancePluginProps<UserType>) => Elysia<"", {
4
- decorator: {};
5
- store: {
6
- session: import("../session/internalData").InternalSessionRecord<UserType>;
7
- unregisteredSession: import("../session/internalData").InternalUnregisteredSessionRecord;
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
- export: {
24
- get: {
25
- body: unknown;
26
- params: {};
27
- query: unknown;
28
- headers: unknown;
29
- response: {
30
- 401: "Authentication required";
31
- 200: {
32
- [x: string]: unknown;
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
- } & {
48
- [x: string]: {
49
- delete: {
50
- body: unknown;
51
- params: {};
52
- query: unknown;
53
- headers: unknown;
54
- response: {
55
- 401: "Authentication required";
56
- 200: {
57
- readonly deleted: true;
58
- };
59
- 422: {
60
- type: "validation";
61
- on: string;
62
- summary?: string;
63
- message?: string;
64
- found?: unknown;
65
- property?: string;
66
- expected?: string;
67
- };
68
- };
69
- };
70
- };
71
- }, {
72
- derive: {};
73
- resolve: {};
74
- schema: {};
75
- standaloneSchema: {};
76
- response: {};
77
- }, {
78
- derive: {};
79
- resolve: {};
80
- schema: {};
81
- standaloneSchema: {};
82
- response: {};
83
- } & {
84
- derive: {};
85
- resolve: {};
86
- schema: {};
87
- standaloneSchema: {};
88
- response: {};
89
- }>;
@@ -1,10 +0,0 @@
1
- export declare const SECONDS_IN_A_MINUTE = 60;
2
- export declare const MILLISECONDS_IN_A_SECOND = 1000;
3
- export declare const MILLISECONDS_IN_A_MINUTE: number;
4
- export declare const MINUTES_IN_AN_HOUR = 60;
5
- export declare const HOURS_IN_A_DAY = 24;
6
- export declare const MILLISECONDS_IN_A_DAY: number;
7
- export declare const MILLISECONDS_IN_AN_HOUR: number;
8
- export declare const COOKIE_MINUTES = 30;
9
- export declare const COOKIE_DURATION: number;
10
- export declare const DEFAULT_MAX_SESSIONS = 10000;
@@ -1,45 +0,0 @@
1
- export type BreachRecord = {
2
- addedDate: string;
3
- dataClasses?: string[];
4
- name: string;
5
- };
6
- export type EmailBreachEvent = {
7
- breaches: BreachRecord[];
8
- email: string;
9
- };
10
- export type EmailBreachScanInput = {
11
- hibpApiKey: string;
12
- iterateEmails: (cursor: string | undefined) => Promise<{
13
- emails: string[];
14
- nextCursor: string | undefined;
15
- }>;
16
- onBreachFound: (event: EmailBreachEvent) => Promise<void> | void;
17
- pauseMs?: number;
18
- truncateResponse?: boolean;
19
- };
20
- export type EmailBreachScanResult = {
21
- breached: number;
22
- scanned: number;
23
- };
24
- export declare const runEmailBreachScan: (input: EmailBreachScanInput) => Promise<EmailBreachScanResult>;
25
- export type InactiveUserCandidate = {
26
- createdAt?: number;
27
- lastLoginAt: number | null;
28
- userId: string;
29
- };
30
- export type PruneInactiveUsersInput = {
31
- dryRun?: boolean;
32
- iterateUsers: (cursor: string | undefined) => Promise<{
33
- nextCursor: string | undefined;
34
- users: InactiveUserCandidate[];
35
- }>;
36
- now?: () => number;
37
- olderThanDays: number;
38
- onDelete: (userId: string) => Promise<void> | void;
39
- };
40
- export type PruneInactiveUsersResult = {
41
- dryRun: boolean;
42
- prunedUserIds: string[];
43
- scanned: number;
44
- };
45
- export declare const pruneInactiveUsers: (input: PruneInactiveUsersInput) => Promise<PruneInactiveUsersResult>;
@@ -1,68 +0,0 @@
1
- import type { LockoutGuard } from '../lockout/config';
2
- import type { AuthSessionStore } from '../session/types';
3
- import type { OrganizationId } from '../tenancy';
4
- import type { RouteString, StatusReturn, UserSessionId } from '../types';
5
- import type { PasswordPolicy } from './passwordPolicy';
6
- import type { CredentialStore } from './types';
7
- export declare const DEFAULT_CREDENTIAL_SESSION_TTL_MS: number;
8
- export declare const DEFAULT_RESET_TOKEN_TTL_MS: number;
9
- export declare const DEFAULT_VERIFICATION_TOKEN_TTL_MS: number;
10
- export type CredentialIdentity = {
11
- email: string;
12
- organizationId?: OrganizationId;
13
- };
14
- export type CredentialEmailType = 'reset_password' | 'verify_email';
15
- export type CredentialEmailMessage = {
16
- email: string;
17
- expiresAt: number;
18
- token: string;
19
- type: CredentialEmailType;
20
- };
21
- export type CredentialsConfig<UserType> = {
22
- checkBreachesOnLogin?: boolean;
23
- credentialStore: CredentialStore;
24
- getUserByEmail: (email: string) => Promise<UserType | null | undefined> | UserType | null | undefined;
25
- isMfaRequired?: (user: UserType, context?: {
26
- headers: Record<string, string | undefined>;
27
- ip?: string;
28
- }) => boolean | Promise<boolean>;
29
- passwordVerifier?: (plainPassword: string, storedHash: string) => Promise<boolean>;
30
- rehashOnLogin?: boolean;
31
- loginRoute?: RouteString;
32
- onCreateCredentialUser: (identity: CredentialIdentity & Record<string, unknown>) => Promise<Response | StatusReturn | UserType> | Response | StatusReturn | UserType;
33
- onCredentialsLoginError?: (context: {
34
- email: string;
35
- error: unknown;
36
- }) => void | Promise<void>;
37
- onCredentialsLoginSuccess?: (context: {
38
- user: UserType;
39
- userSessionId: UserSessionId;
40
- }) => void | Promise<void>;
41
- onEmailVerified?: (context: {
42
- email: string;
43
- }) => void | Promise<void>;
44
- onPasswordReset?: (context: {
45
- email: string;
46
- }) => void | Promise<void>;
47
- onRegistrationSuccess?: (context: {
48
- email: string;
49
- user: UserType;
50
- }) => void | Promise<void>;
51
- onSendEmail: (message: CredentialEmailMessage) => void | Promise<void>;
52
- passwordPolicy?: PasswordPolicy;
53
- registerRoute?: RouteString;
54
- /** When true, registration creates the account but NOT a session, and login is
55
- * rejected until the email is verified. Default false = auto-login on register and
56
- * verification acts as a soft, later gate. */
57
- requireEmailVerification?: boolean;
58
- resetPasswordRoute?: RouteString;
59
- resetTokenDurationMs?: number;
60
- sessionDurationMs?: number;
61
- verificationTokenDurationMs?: number;
62
- verifyEmailRoute?: RouteString;
63
- };
64
- export type CredentialRouteProps<UserType> = CredentialsConfig<UserType> & {
65
- authSessionStore?: AuthSessionStore<UserType>;
66
- cookieSecure?: boolean;
67
- lockoutGuard?: LockoutGuard;
68
- };
@@ -1,9 +0,0 @@
1
- export type EmailValidationResult = {
2
- ok: boolean;
3
- reason?: 'disposable' | 'invalid_format' | 'no_mx';
4
- };
5
- export declare const isDisposableEmail: (email: string, extraDomains?: Iterable<string>) => boolean;
6
- export declare const validateEmailDeliverability: (email: string, options?: {
7
- checkMx?: boolean;
8
- disposableDomains?: Iterable<string>;
9
- }) => Promise<EmailValidationResult>;
@@ -1,83 +0,0 @@
1
- import { Elysia } from 'elysia';
2
- import { type CredentialsConfig } from './config';
3
- export declare const credentialsEmailVerification: <UserType>({ credentialStore, onEmailVerified, onSendEmail, verificationTokenDurationMs, verifyEmailRoute }: CredentialsConfig<UserType>) => Elysia<"", {
4
- decorator: {};
5
- store: {};
6
- derive: {};
7
- resolve: {};
8
- }, {
9
- typebox: {};
10
- error: {};
11
- }, {
12
- schema: {};
13
- standaloneSchema: {};
14
- macro: {};
15
- macroFn: {};
16
- parser: {};
17
- response: {};
18
- }, {
19
- [x: string]: {
20
- post: {
21
- body: {
22
- token: string;
23
- };
24
- params: {};
25
- query: unknown;
26
- headers: unknown;
27
- response: {
28
- 400: "Invalid or expired verification token";
29
- 200: {
30
- readonly status: "email_verified";
31
- };
32
- 422: {
33
- type: "validation";
34
- on: string;
35
- summary?: string;
36
- message?: string;
37
- found?: unknown;
38
- property?: string;
39
- expected?: string;
40
- };
41
- };
42
- };
43
- };
44
- } & {
45
- [x: string]: {
46
- request: {
47
- post: {
48
- body: {
49
- email: string;
50
- };
51
- params: {};
52
- query: unknown;
53
- headers: unknown;
54
- response: {
55
- 200: {
56
- readonly status: "verification_requested";
57
- };
58
- 422: {
59
- type: "validation";
60
- on: string;
61
- summary?: string;
62
- message?: string;
63
- found?: unknown;
64
- property?: string;
65
- expected?: string;
66
- };
67
- };
68
- };
69
- };
70
- };
71
- }, {
72
- derive: {};
73
- resolve: {};
74
- schema: {};
75
- standaloneSchema: {};
76
- response: {};
77
- }, {
78
- derive: {};
79
- resolve: {};
80
- schema: {};
81
- standaloneSchema: {};
82
- response: {};
83
- }>;
@@ -1,34 +0,0 @@
1
- import type { CredentialRecord, CredentialStore } from './types';
2
- export type ImportableUser<UserType> = {
3
- passwordHash?: string;
4
- user: UserType;
5
- };
6
- export type ImportUserResult<UserType> = {
7
- error: string;
8
- ok: false;
9
- user: UserType;
10
- } | {
11
- credential?: CredentialRecord;
12
- ok: true;
13
- user: UserType;
14
- };
15
- export type ImportUsersOptions<UserType> = {
16
- onCreateUser: (input: ImportableUser<UserType>) => Promise<{
17
- email: string;
18
- emailVerified?: boolean;
19
- userId?: string;
20
- } | null>;
21
- concurrency?: number;
22
- credentialStore: CredentialStore;
23
- };
24
- export declare const importUser: <UserType>(input: ImportableUser<UserType>, options: ImportUsersOptions<UserType>) => Promise<ImportUserResult<UserType>>;
25
- export declare const importUsers: <UserType>(inputs: readonly ImportableUser<UserType>[], options: ImportUsersOptions<UserType>) => Promise<{
26
- failed: number;
27
- results: ImportUserResult<UserType>[];
28
- succeeded: number;
29
- }>;
30
- export declare const rehashCredentialPassword: ({ credentialStore, current, plainPassword }: {
31
- credentialStore: CredentialStore;
32
- current: CredentialRecord;
33
- plainPassword: string;
34
- }) => Promise<void>;
@@ -1,2 +0,0 @@
1
- import type { CredentialStore } from './types';
2
- export declare const createInMemoryCredentialStore: () => CredentialStore;
@@ -1,3 +0,0 @@
1
- export declare const isLegacyHash: (storedHash: string) => boolean;
2
- export declare const verifyAuth0Pbkdf2: (plainPassword: string, wrappedHash: string) => Promise<boolean>;
3
- export declare const verifyCognitoSha256: (plainPassword: string, wrappedHash: string) => Promise<boolean>;
@@ -1,76 +0,0 @@
1
- import { Elysia } from 'elysia';
2
- import { type CredentialRouteProps } from './config';
3
- export declare const credentialsLogin: <UserType>({ authSessionStore, checkBreachesOnLogin, cookieSecure, credentialStore, getUserByEmail, isMfaRequired, lockoutGuard, loginRoute, onCredentialsLoginError, onCredentialsLoginSuccess, passwordVerifier, rehashOnLogin, requireEmailVerification, sessionDurationMs }: CredentialRouteProps<UserType>) => Elysia<"", {
4
- decorator: {};
5
- store: {
6
- session: import("../session/internalData").InternalSessionRecord<UserType>;
7
- unregisteredSession: import("../session/internalData").InternalUnregisteredSessionRecord;
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: {
25
- email: string;
26
- password: string;
27
- };
28
- params: {};
29
- query: unknown;
30
- headers: unknown;
31
- response: {
32
- 401: "Invalid email or password";
33
- 403: {
34
- readonly status: "email_not_verified";
35
- };
36
- 200: {
37
- readonly status: "mfa_required";
38
- } | {
39
- readonly passwordCompromised: boolean;
40
- readonly status: "authenticated";
41
- };
42
- 429: {
43
- readonly retryAfterMs: number | undefined;
44
- readonly status: "account_locked";
45
- };
46
- 422: {
47
- type: "validation";
48
- on: string;
49
- summary?: string;
50
- message?: string;
51
- found?: unknown;
52
- property?: string;
53
- expected?: string;
54
- };
55
- };
56
- };
57
- };
58
- }, {
59
- derive: {};
60
- resolve: {};
61
- schema: {};
62
- standaloneSchema: {};
63
- response: {};
64
- }, {
65
- derive: {};
66
- resolve: {};
67
- schema: {};
68
- standaloneSchema: {};
69
- response: {};
70
- } & {
71
- derive: {};
72
- resolve: {};
73
- schema: {};
74
- standaloneSchema: {};
75
- response: {};
76
- }>;
@@ -1,15 +0,0 @@
1
- export type PasswordPolicy = {
2
- checkBreaches?: boolean;
3
- minLength?: number;
4
- requireDigit?: boolean;
5
- requireLowercase?: boolean;
6
- requireSymbol?: boolean;
7
- requireUppercase?: boolean;
8
- };
9
- export type PasswordPolicyViolation = 'breached' | 'missing_digit' | 'missing_lowercase' | 'missing_symbol' | 'missing_uppercase' | 'too_short';
10
- export type PasswordPolicyResult = {
11
- ok: boolean;
12
- violations: PasswordPolicyViolation[];
13
- };
14
- export declare const evaluatePassword: (password: string, policy?: PasswordPolicy) => Promise<PasswordPolicyResult>;
15
- export declare const isPasswordCompromised: (password: string) => Promise<boolean>;
@@ -1,87 +0,0 @@
1
- import { Elysia } from 'elysia';
2
- import { type CredentialsConfig } from './config';
3
- export declare const credentialsPasswordReset: <UserType>({ credentialStore, onPasswordReset, onSendEmail, passwordPolicy, resetPasswordRoute, resetTokenDurationMs }: CredentialsConfig<UserType>) => Elysia<"", {
4
- decorator: {};
5
- store: {};
6
- derive: {};
7
- resolve: {};
8
- }, {
9
- typebox: {};
10
- error: {};
11
- }, {
12
- schema: {};
13
- standaloneSchema: {};
14
- macro: {};
15
- macroFn: {};
16
- parser: {};
17
- response: {};
18
- }, {
19
- [x: string]: {
20
- request: {
21
- post: {
22
- body: {
23
- email: string;
24
- };
25
- params: {};
26
- query: unknown;
27
- headers: unknown;
28
- response: {
29
- 200: {
30
- readonly status: "reset_requested";
31
- };
32
- 422: {
33
- type: "validation";
34
- on: string;
35
- summary?: string;
36
- message?: string;
37
- found?: unknown;
38
- property?: string;
39
- expected?: string;
40
- };
41
- };
42
- };
43
- };
44
- };
45
- } & {
46
- [x: string]: {
47
- post: {
48
- body: {
49
- token: string;
50
- password: string;
51
- };
52
- params: {};
53
- query: unknown;
54
- headers: unknown;
55
- response: {
56
- 400: "Invalid or expired reset token" | {
57
- readonly message: "Password does not meet the policy";
58
- readonly violations: import("./passwordPolicy").PasswordPolicyViolation[];
59
- };
60
- 200: {
61
- readonly status: "password_reset";
62
- };
63
- 422: {
64
- type: "validation";
65
- on: string;
66
- summary?: string;
67
- message?: string;
68
- found?: unknown;
69
- property?: string;
70
- expected?: string;
71
- };
72
- };
73
- };
74
- };
75
- }, {
76
- derive: {};
77
- resolve: {};
78
- schema: {};
79
- standaloneSchema: {};
80
- response: {};
81
- }, {
82
- derive: {};
83
- resolve: {};
84
- schema: {};
85
- standaloneSchema: {};
86
- response: {};
87
- }>;