@absolutejs/auth 0.64.0 → 0.65.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 (263) hide show
  1. package/dist/index.js +25 -3
  2. package/dist/index.js.map +6 -5
  3. package/dist/server.js +25 -3
  4. package/dist/server.js.map +7 -6
  5. package/package.json +1 -1
  6. package/dist/abuse/captcha.d.ts +0 -11
  7. package/dist/abuse/config.d.ts +0 -29
  8. package/dist/actions.d.ts +0 -27
  9. package/dist/adaptive/config.d.ts +0 -34
  10. package/dist/adaptive/fingerprint.d.ts +0 -2
  11. package/dist/adaptive/inMemoryStores.d.ts +0 -3
  12. package/dist/adaptive/postgresStores.d.ts +0 -245
  13. package/dist/adaptive/types.d.ts +0 -62
  14. package/dist/agents/config.d.ts +0 -49
  15. package/dist/agents/context.d.ts +0 -46
  16. package/dist/agents/idJag.d.ts +0 -49
  17. package/dist/agents/inMemoryStores.d.ts +0 -4
  18. package/dist/agents/index.d.ts +0 -13
  19. package/dist/agents/oauthGuide.d.ts +0 -18
  20. package/dist/agents/oidcAdapter.d.ts +0 -20
  21. package/dist/agents/postgresStores.d.ts +0 -1176
  22. package/dist/agents/principal.d.ts +0 -4
  23. package/dist/agents/registration.d.ts +0 -162
  24. package/dist/agents/registrationClient.d.ts +0 -50
  25. package/dist/agents/routes.d.ts +0 -256
  26. package/dist/agents/types.d.ts +0 -129
  27. package/dist/apikeys/config.d.ts +0 -64
  28. package/dist/apikeys/inMemoryStores.d.ts +0 -4
  29. package/dist/apikeys/postgresStores.d.ts +0 -359
  30. package/dist/apikeys/routes.d.ts +0 -83
  31. package/dist/apikeys/types.d.ts +0 -53
  32. package/dist/audit/config.d.ts +0 -9
  33. package/dist/audit/export.d.ts +0 -2
  34. package/dist/audit/inMemoryAuditStore.d.ts +0 -2
  35. package/dist/audit/integrity.d.ts +0 -19
  36. package/dist/audit/postgresAuditStore.d.ts +0 -116
  37. package/dist/audit/siem.d.ts +0 -11
  38. package/dist/audit/types.d.ts +0 -21
  39. package/dist/audit/wrap.d.ts +0 -11
  40. package/dist/authContext.d.ts +0 -193
  41. package/dist/authorization/config.d.ts +0 -19
  42. package/dist/authorization/protectPermission.d.ts +0 -52
  43. package/dist/cli/import/auth0.d.ts +0 -2
  44. package/dist/cli/import/clerk.d.ts +0 -2
  45. package/dist/cli/import/index.d.ts +0 -10
  46. package/dist/cli/import/lucia.d.ts +0 -2
  47. package/dist/cli/import/nextauth.d.ts +0 -2
  48. package/dist/cli/import/supabase.d.ts +0 -2
  49. package/dist/cli/import/types.d.ts +0 -27
  50. package/dist/cli/migrate.d.ts +0 -2
  51. package/dist/client/components/react/SignIn.d.ts +0 -32
  52. package/dist/client/components/react/SignUp.d.ts +0 -29
  53. package/dist/client/components/react/UserButton.d.ts +0 -36
  54. package/dist/client/createAuthClient.d.ts +0 -285
  55. package/dist/client/index.d.ts +0 -4
  56. package/dist/client/passkeyHelpers.d.ts +0 -19
  57. package/dist/client/react.d.ts +0 -87
  58. package/dist/client/sessionExpiry.d.ts +0 -37
  59. package/dist/client/solid.d.ts +0 -86
  60. package/dist/client/svelte.d.ts +0 -86
  61. package/dist/client/vue.d.ts +0 -88
  62. package/dist/compliance/cipher.d.ts +0 -11
  63. package/dist/compliance/config.d.ts +0 -18
  64. package/dist/compliance/redaction.d.ts +0 -8
  65. package/dist/compliance/routes.d.ts +0 -89
  66. package/dist/constants.d.ts +0 -10
  67. package/dist/credentials/backgroundOps.d.ts +0 -45
  68. package/dist/credentials/config.d.ts +0 -94
  69. package/dist/credentials/emailValidation.d.ts +0 -9
  70. package/dist/credentials/emailVerification.d.ts +0 -83
  71. package/dist/credentials/import.d.ts +0 -49
  72. package/dist/credentials/inMemoryCredentialStore.d.ts +0 -2
  73. package/dist/credentials/legacyHashers.d.ts +0 -3
  74. package/dist/credentials/login.d.ts +0 -76
  75. package/dist/credentials/passwordPolicy.d.ts +0 -15
  76. package/dist/credentials/passwordReset.d.ts +0 -87
  77. package/dist/credentials/postgresCredentialStore.d.ts +0 -235
  78. package/dist/credentials/register.d.ts +0 -54
  79. package/dist/credentials/routes.d.ts +0 -201
  80. package/dist/credentials/types.d.ts +0 -26
  81. package/dist/crypto.d.ts +0 -32
  82. package/dist/csrf.d.ts +0 -10
  83. package/dist/errors.d.ts +0 -12
  84. package/dist/federation/tokenStore.d.ts +0 -29
  85. package/dist/fga/config.d.ts +0 -53
  86. package/dist/fga/inMemoryStores.d.ts +0 -3
  87. package/dist/fga/postgresStores.d.ts +0 -116
  88. package/dist/fga/redisCheckCache.d.ts +0 -11
  89. package/dist/fga/schema.d.ts +0 -2
  90. package/dist/fga/types.d.ts +0 -28
  91. package/dist/fingerprint-client/index.d.ts +0 -26
  92. package/dist/htmx/configuredRoutes.d.ts +0 -542
  93. package/dist/htmx/index.d.ts +0 -2
  94. package/dist/htmx/renderers.d.ts +0 -8
  95. package/dist/htmx/routes.d.ts +0 -514
  96. package/dist/htmx/types.d.ts +0 -129
  97. package/dist/index.d.ts +0 -3646
  98. package/dist/linkedProviders/inMemoryStores.d.ts +0 -9
  99. package/dist/linkedProviders/index.d.ts +0 -3
  100. package/dist/linkedProviders/neonStores.d.ts +0 -484
  101. package/dist/linkedProviders/oauthAccountResolver.d.ts +0 -28
  102. package/dist/linkedProviders/oauthResolver.d.ts +0 -9
  103. package/dist/linkedProviders/resolver.d.ts +0 -22
  104. package/dist/lockout/config.d.ts +0 -17
  105. package/dist/lockout/inMemoryLockoutStore.d.ts +0 -2
  106. package/dist/lockout/postgresLockoutStore.d.ts +0 -71
  107. package/dist/lockout/redisLockoutStore.d.ts +0 -3
  108. package/dist/lockout/types.d.ts +0 -12
  109. package/dist/manifest.d.ts +0 -18
  110. package/dist/manifest.json +0 -373
  111. package/dist/mfa/backupCodes.d.ts +0 -5
  112. package/dist/mfa/challenge.d.ts +0 -72
  113. package/dist/mfa/config.d.ts +0 -59
  114. package/dist/mfa/gate.d.ts +0 -2
  115. package/dist/mfa/inMemoryMfaStore.d.ts +0 -2
  116. package/dist/mfa/management.d.ts +0 -106
  117. package/dist/mfa/postgresMfaStore.d.ts +0 -266
  118. package/dist/mfa/recentAuth.d.ts +0 -2
  119. package/dist/mfa/rotation.d.ts +0 -17
  120. package/dist/mfa/routes.d.ts +0 -239
  121. package/dist/mfa/secret.d.ts +0 -2
  122. package/dist/mfa/sms.d.ts +0 -143
  123. package/dist/mfa/totp.d.ts +0 -91
  124. package/dist/mfa/types.d.ts +0 -58
  125. package/dist/migrations/generate.d.ts +0 -2
  126. package/dist/migrations/index.d.ts +0 -6
  127. package/dist/migrations/runner.d.ts +0 -22
  128. package/dist/migrations/types.d.ts +0 -14
  129. package/dist/oidc/clientAuth.d.ts +0 -19
  130. package/dist/oidc/clientIdMetadata.d.ts +0 -28
  131. package/dist/oidc/config.d.ts +0 -307
  132. package/dist/oidc/dpop.d.ts +0 -23
  133. package/dist/oidc/inMemoryStores.d.ts +0 -11
  134. package/dist/oidc/inMemoryVciStores.d.ts +0 -3
  135. package/dist/oidc/index.d.ts +0 -12
  136. package/dist/oidc/jar.d.ts +0 -14
  137. package/dist/oidc/keys.d.ts +0 -50
  138. package/dist/oidc/logout.d.ts +0 -38
  139. package/dist/oidc/mtls.d.ts +0 -11
  140. package/dist/oidc/operator.d.ts +0 -14
  141. package/dist/oidc/par.d.ts +0 -28
  142. package/dist/oidc/postgresStores.d.ts +0 -1217
  143. package/dist/oidc/registration.d.ts +0 -138
  144. package/dist/oidc/routes.d.ts +0 -569
  145. package/dist/oidc/types.d.ts +0 -157
  146. package/dist/oidc/userinfo.d.ts +0 -21
  147. package/dist/oidc/vci.d.ts +0 -159
  148. package/dist/oidc/vciRoutes.d.ts +0 -92
  149. package/dist/organizations/config.d.ts +0 -46
  150. package/dist/organizations/inMemoryOrganizationStore.d.ts +0 -2
  151. package/dist/organizations/operations.d.ts +0 -39
  152. package/dist/organizations/postgresOrganizationStore.d.ts +0 -340
  153. package/dist/organizations/routes.d.ts +0 -299
  154. package/dist/organizations/types.d.ts +0 -45
  155. package/dist/passwordless/config.d.ts +0 -43
  156. package/dist/passwordless/inMemoryPasswordlessTokenStore.d.ts +0 -2
  157. package/dist/passwordless/postgresPasswordlessTokenStore.d.ts +0 -56
  158. package/dist/passwordless/routes.d.ts +0 -163
  159. package/dist/passwordless/types.d.ts +0 -9
  160. package/dist/pluginIdentity.d.ts +0 -2
  161. package/dist/plugins/denyDisposableEmail.d.ts +0 -7
  162. package/dist/plugins/discordAlert.d.ts +0 -7
  163. package/dist/plugins/geoBlock.d.ts +0 -8
  164. package/dist/plugins/index.d.ts +0 -12
  165. package/dist/plugins/pagerdutyAlert.d.ts +0 -9
  166. package/dist/plugins/posthogIdentify.d.ts +0 -7
  167. package/dist/plugins/slackAlert.d.ts +0 -7
  168. package/dist/portal/config.d.ts +0 -34
  169. package/dist/portal/inMemorySetupSessionStore.d.ts +0 -2
  170. package/dist/portal/operations.d.ts +0 -10
  171. package/dist/portal/postgresSetupSessionStore.d.ts +0 -116
  172. package/dist/portal/routes.d.ts +0 -160
  173. package/dist/portal/types.d.ts +0 -16
  174. package/dist/providers/clients.d.ts +0 -1831
  175. package/dist/providers/index.d.ts +0 -2
  176. package/dist/providersFromEnv.d.ts +0 -19
  177. package/dist/redirect.d.ts +0 -2
  178. package/dist/roles/config.d.ts +0 -27
  179. package/dist/roles/inMemoryRoleStore.d.ts +0 -2
  180. package/dist/roles/operations.d.ts +0 -8
  181. package/dist/roles/postgresRoleStore.d.ts +0 -86
  182. package/dist/roles/resolver.d.ts +0 -17
  183. package/dist/roles/routes.d.ts +0 -106
  184. package/dist/roles/types.d.ts +0 -14
  185. package/dist/routes/authorize.d.ts +0 -102
  186. package/dist/routes/callback.d.ts +0 -64
  187. package/dist/routes/profile.d.ts +0 -73
  188. package/dist/routes/protectRoute.d.ts +0 -51
  189. package/dist/routes/refresh.d.ts +0 -74
  190. package/dist/routes/requireAuth.d.ts +0 -43
  191. package/dist/routes/revoke.d.ts +0 -73
  192. package/dist/routes/sessions.d.ts +0 -103
  193. package/dist/routes/signout.d.ts +0 -70
  194. package/dist/routes/stepUp.d.ts +0 -48
  195. package/dist/routes/userStatus.d.ts +0 -72
  196. package/dist/saml.d.ts +0 -1
  197. package/dist/scim/config.d.ts +0 -57
  198. package/dist/scim/extensions.d.ts +0 -30
  199. package/dist/scim/inMemoryScimTokenStore.d.ts +0 -2
  200. package/dist/scim/postgresScimTokenStore.d.ts +0 -86
  201. package/dist/scim/routes.d.ts +0 -366
  202. package/dist/scim/serialize.d.ts +0 -83
  203. package/dist/scim/types.d.ts +0 -54
  204. package/dist/server.d.ts +0 -33
  205. package/dist/session/access.d.ts +0 -33
  206. package/dist/session/anonymous.d.ts +0 -12
  207. package/dist/session/cleanup.d.ts +0 -45
  208. package/dist/session/impersonation.d.ts +0 -34
  209. package/dist/session/inMemoryStore.d.ts +0 -7
  210. package/dist/session/multiSession.d.ts +0 -27
  211. package/dist/session/neonStore.d.ts +0 -573
  212. package/dist/session/promote.d.ts +0 -23
  213. package/dist/session/redisStore.d.ts +0 -6
  214. package/dist/session/sessionsConfig.d.ts +0 -9
  215. package/dist/session/state.d.ts +0 -33
  216. package/dist/session/types.d.ts +0 -23
  217. package/dist/session/userSessions.d.ts +0 -19
  218. package/dist/sso/config.d.ts +0 -149
  219. package/dist/sso/discoveryRoute.d.ts +0 -63
  220. package/dist/sso/inMemorySamlServiceProviderStore.d.ts +0 -2
  221. package/dist/sso/inMemorySsoConnectionStore.d.ts +0 -2
  222. package/dist/sso/nodeSamlAdapter.d.ts +0 -8
  223. package/dist/sso/oidcRoutes.d.ts +0 -98
  224. package/dist/sso/postgresSamlServiceProviderStore.d.ts +0 -101
  225. package/dist/sso/postgresSsoConnectionStore.d.ts +0 -117
  226. package/dist/sso/samlIdpRoutes.d.ts +0 -139
  227. package/dist/sso/samlRoutes.d.ts +0 -179
  228. package/dist/sso/types.d.ts +0 -53
  229. package/dist/stores/postgres.d.ts +0 -5
  230. package/dist/stores/redis.d.ts +0 -5
  231. package/dist/telemetry/tracing.d.ts +0 -15
  232. package/dist/tenancy.d.ts +0 -9
  233. package/dist/typeGuards.d.ts +0 -6
  234. package/dist/typebox.d.ts +0 -4
  235. package/dist/types.d.ts +0 -431
  236. package/dist/utils.d.ts +0 -45
  237. package/dist/vault/config.d.ts +0 -20
  238. package/dist/vault/inMemoryVaultStore.d.ts +0 -2
  239. package/dist/vault/index.d.ts +0 -5
  240. package/dist/vault/postgresVaultStore.d.ts +0 -86
  241. package/dist/vault/types.d.ts +0 -14
  242. package/dist/vc/inMemoryVpStores.d.ts +0 -2
  243. package/dist/vc/openid4vp.d.ts +0 -82
  244. package/dist/vc/postgresVcStores.d.ts +0 -300
  245. package/dist/vc/sdJwt.d.ts +0 -37
  246. package/dist/vc/statusList.d.ts +0 -29
  247. package/dist/vc/statusListRoutes.d.ts +0 -63
  248. package/dist/vc/vpRoutes.d.ts +0 -120
  249. package/dist/verification/types.d.ts +0 -58
  250. package/dist/webauthn/adapter.d.ts +0 -59
  251. package/dist/webauthn/config.d.ts +0 -36
  252. package/dist/webauthn/inMemoryWebAuthnCredentialStore.d.ts +0 -2
  253. package/dist/webauthn/postgresWebAuthnCredentialStore.d.ts +0 -146
  254. package/dist/webauthn/routes.d.ts +0 -155
  255. package/dist/webauthn/simpleWebAuthnAdapter.d.ts +0 -3
  256. package/dist/webauthn/types.d.ts +0 -17
  257. package/dist/webauthn.d.ts +0 -1
  258. package/dist/webhooks/config.d.ts +0 -34
  259. package/dist/webhooks/dispatcher.d.ts +0 -3
  260. package/dist/webhooks/inMemoryStore.d.ts +0 -2
  261. package/dist/webhooks/postgresStore.d.ts +0 -116
  262. package/dist/webhooks/sign.d.ts +0 -11
  263. package/dist/webhooks/types.d.ts +0 -25
@@ -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("..").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
- 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,94 +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
- /** When `trustedOrigins` is set, whether an untrusted Origin is REJECTED
25
- * (default true) or merely reported via `onUntrustedOrigin` (false = a
26
- * report-only rollout that never blocks). */
27
- enforceTrustedOrigins?: boolean;
28
- getUserByEmail: (email: string) => Promise<UserType | null | undefined> | UserType | null | undefined;
29
- isMfaRequired?: (user: UserType, context?: {
30
- headers: Record<string, string | undefined>;
31
- ip?: string;
32
- }) => boolean | Promise<boolean>;
33
- passwordVerifier?: (plainPassword: string, storedHash: string) => Promise<boolean>;
34
- rehashOnLogin?: boolean;
35
- loginRoute?: RouteString;
36
- onCreateCredentialUser: (identity: CredentialIdentity & Record<string, unknown>) => Promise<Response | StatusReturn | UserType> | Response | StatusReturn | UserType;
37
- onCredentialsLoginError?: (context: {
38
- email: string;
39
- error: unknown;
40
- }) => void | Promise<void>;
41
- onCredentialsLoginSuccess?: (context: {
42
- user: UserType;
43
- userSessionId: UserSessionId;
44
- }) => void | Promise<void>;
45
- onEmailVerified?: (context: {
46
- email: string;
47
- }) => void | Promise<void>;
48
- /** Called (in the enumeration-safe default) when someone tries to register an
49
- * email that already exists — send the real owner a "you already have an
50
- * account, sign in" email out-of-band. Not called when
51
- * `revealRegistrationConflicts` is true. */
52
- onExistingAccount?: (context: {
53
- email: string;
54
- }) => void | Promise<void>;
55
- onPasswordReset?: (context: {
56
- email: string;
57
- }) => void | Promise<void>;
58
- onRegistrationSuccess?: (context: {
59
- email: string;
60
- user: UserType;
61
- }) => void | Promise<void>;
62
- onSendEmail: (message: CredentialEmailMessage) => void | Promise<void>;
63
- /** Called on login/register when the request's Origin is not in
64
- * `trustedOrigins`. Fires whether or not `enforceTrustedOrigins` blocks the
65
- * request, so it can drive a report-only rollout (log/surface the Origin). */
66
- onUntrustedOrigin?: (context: {
67
- origin: string | null;
68
- request: Request;
69
- }) => void | Promise<void>;
70
- passwordPolicy?: PasswordPolicy;
71
- registerRoute?: RouteString;
72
- /** When true, registration creates the account but NOT a session, and login is
73
- * rejected until the email is verified. Default false = auto-login on register and
74
- * verification acts as a soft, later gate. */
75
- requireEmailVerification?: boolean;
76
- /** When true, `POST /register` returns 409 "Email is already registered" for a
77
- * known email. Default false = enumeration-safe: return the same generic
78
- * response a new pending registration does and call `onExistingAccount`
79
- * instead of confirming the account exists. */
80
- revealRegistrationConflicts?: boolean;
81
- resetPasswordRoute?: RouteString;
82
- resetTokenDurationMs?: number;
83
- sessionDurationMs?: number;
84
- /** When set, login/register reject requests whose `Origin` header is not in
85
- * this list (defense against login/registration CSRF). Omit to disable. */
86
- trustedOrigins?: readonly string[];
87
- verificationTokenDurationMs?: number;
88
- verifyEmailRoute?: RouteString;
89
- };
90
- export type CredentialRouteProps<UserType> = CredentialsConfig<UserType> & {
91
- authSessionStore?: AuthSessionStore<UserType>;
92
- cookieSecure?: boolean;
93
- lockoutGuard?: LockoutGuard;
94
- };
@@ -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,49 +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<{
25
- error: string;
26
- ok: false;
27
- user: UserType;
28
- credential?: undefined;
29
- } | {
30
- ok: true;
31
- user: UserType;
32
- readonly error?: undefined;
33
- credential?: undefined;
34
- } | {
35
- credential: CredentialRecord;
36
- ok: true;
37
- user: UserType;
38
- readonly error?: undefined;
39
- }>;
40
- export declare const importUsers: <UserType>(inputs: readonly ImportableUser<UserType>[], options: ImportUsersOptions<UserType>) => Promise<{
41
- failed: number;
42
- results: ImportUserResult<UserType>[];
43
- succeeded: number;
44
- }>;
45
- export declare const rehashCredentialPassword: ({ credentialStore, current, plainPassword }: {
46
- credentialStore: CredentialStore;
47
- current: CredentialRecord;
48
- plainPassword: string;
49
- }) => 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, enforceTrustedOrigins, getUserByEmail, isMfaRequired, lockoutGuard, loginRoute, onCredentialsLoginError, onCredentialsLoginSuccess, onUntrustedOrigin, passwordVerifier, rehashOnLogin, requireEmailVerification, sessionDurationMs, trustedOrigins }: CredentialRouteProps<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: {
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: "Request origin is not allowed" | {
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
- 422: {
43
- type: "validation";
44
- on: string;
45
- summary?: string;
46
- message?: string;
47
- found?: unknown;
48
- property?: string;
49
- expected?: string;
50
- };
51
- 429: {
52
- readonly retryAfterMs: number | undefined;
53
- readonly status: "account_locked";
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
- }>;