@absolutejs/auth 0.56.1 → 0.56.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/dist/cli/migrate.js +39 -13
  2. package/dist/cli/migrate.js.map +4 -4
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.js +85 -15
  5. package/dist/index.js.map +7 -7
  6. package/dist/oidc/index.js +35 -3
  7. package/dist/oidc/index.js.map +3 -3
  8. package/dist/oidc/postgresStores.d.ts +30 -0
  9. package/dist/server.js +85 -15
  10. package/dist/server.js.map +7 -7
  11. package/package.json +1 -1
  12. package/dist/abuse/captcha.d.ts +0 -11
  13. package/dist/abuse/config.d.ts +0 -29
  14. package/dist/actions.d.ts +0 -27
  15. package/dist/agents/config.d.ts +0 -44
  16. package/dist/agents/context.d.ts +0 -46
  17. package/dist/agents/principal.d.ts +0 -4
  18. package/dist/agents/registration.d.ts +0 -162
  19. package/dist/agents/routes.d.ts +0 -321
  20. package/dist/agents/types.d.ts +0 -129
  21. package/dist/apikeys/config.d.ts +0 -64
  22. package/dist/apikeys/routes.d.ts +0 -83
  23. package/dist/apikeys/types.d.ts +0 -53
  24. package/dist/audit/config.d.ts +0 -9
  25. package/dist/audit/export.d.ts +0 -2
  26. package/dist/audit/inMemoryAuditStore.d.ts +0 -2
  27. package/dist/audit/integrity.d.ts +0 -19
  28. package/dist/audit/postgresAuditStore.d.ts +0 -116
  29. package/dist/audit/siem.d.ts +0 -11
  30. package/dist/audit/types.d.ts +0 -19
  31. package/dist/audit/wrap.d.ts +0 -9
  32. package/dist/authContext.d.ts +0 -193
  33. package/dist/authorization/config.d.ts +0 -19
  34. package/dist/authorization/protectPermission.d.ts +0 -52
  35. package/dist/compliance/cipher.d.ts +0 -11
  36. package/dist/compliance/config.d.ts +0 -18
  37. package/dist/compliance/redaction.d.ts +0 -8
  38. package/dist/compliance/routes.d.ts +0 -89
  39. package/dist/constants.d.ts +0 -10
  40. package/dist/credentials/backgroundOps.d.ts +0 -45
  41. package/dist/credentials/config.d.ts +0 -68
  42. package/dist/credentials/emailValidation.d.ts +0 -9
  43. package/dist/credentials/emailVerification.d.ts +0 -83
  44. package/dist/credentials/import.d.ts +0 -34
  45. package/dist/credentials/inMemoryCredentialStore.d.ts +0 -2
  46. package/dist/credentials/legacyHashers.d.ts +0 -3
  47. package/dist/credentials/login.d.ts +0 -76
  48. package/dist/credentials/passwordPolicy.d.ts +0 -15
  49. package/dist/credentials/passwordReset.d.ts +0 -87
  50. package/dist/credentials/postgresCredentialStore.d.ts +0 -235
  51. package/dist/credentials/register.d.ts +0 -54
  52. package/dist/credentials/routes.d.ts +0 -201
  53. package/dist/credentials/types.d.ts +0 -26
  54. package/dist/crypto.d.ts +0 -32
  55. package/dist/errors.d.ts +0 -12
  56. package/dist/federation/tokenStore.d.ts +0 -29
  57. package/dist/htmx/configuredRoutes.d.ts +0 -542
  58. package/dist/htmx/renderers.d.ts +0 -8
  59. package/dist/htmx/routes.d.ts +0 -514
  60. package/dist/htmx/types.d.ts +0 -129
  61. package/dist/linkedProviders/inMemoryStores.d.ts +0 -9
  62. package/dist/linkedProviders/neonStores.d.ts +0 -484
  63. package/dist/linkedProviders/oauthAccountResolver.d.ts +0 -28
  64. package/dist/linkedProviders/oauthResolver.d.ts +0 -9
  65. package/dist/linkedProviders/resolver.d.ts +0 -22
  66. package/dist/lockout/config.d.ts +0 -17
  67. package/dist/lockout/inMemoryLockoutStore.d.ts +0 -2
  68. package/dist/lockout/postgresLockoutStore.d.ts +0 -71
  69. package/dist/lockout/redisLockoutStore.d.ts +0 -3
  70. package/dist/lockout/types.d.ts +0 -12
  71. package/dist/mfa/backupCodes.d.ts +0 -5
  72. package/dist/mfa/challenge.d.ts +0 -70
  73. package/dist/mfa/config.d.ts +0 -50
  74. package/dist/mfa/gate.d.ts +0 -2
  75. package/dist/mfa/inMemoryMfaStore.d.ts +0 -2
  76. package/dist/mfa/management.d.ts +0 -106
  77. package/dist/mfa/postgresMfaStore.d.ts +0 -206
  78. package/dist/mfa/rotation.d.ts +0 -17
  79. package/dist/mfa/routes.d.ts +0 -234
  80. package/dist/mfa/secret.d.ts +0 -2
  81. package/dist/mfa/sms.d.ts +0 -105
  82. package/dist/mfa/totp.d.ts +0 -91
  83. package/dist/mfa/types.d.ts +0 -23
  84. package/dist/oidc/clientAuth.d.ts +0 -19
  85. package/dist/oidc/config.d.ts +0 -295
  86. package/dist/oidc/dpop.d.ts +0 -23
  87. package/dist/oidc/inMemoryVciStores.d.ts +0 -3
  88. package/dist/oidc/jar.d.ts +0 -14
  89. package/dist/oidc/keys.d.ts +0 -35
  90. package/dist/oidc/logout.d.ts +0 -38
  91. package/dist/oidc/mtls.d.ts +0 -11
  92. package/dist/oidc/par.d.ts +0 -28
  93. package/dist/oidc/registration.d.ts +0 -138
  94. package/dist/oidc/routes.d.ts +0 -568
  95. package/dist/oidc/types.d.ts +0 -143
  96. package/dist/oidc/userinfo.d.ts +0 -21
  97. package/dist/oidc/vci.d.ts +0 -159
  98. package/dist/oidc/vciRoutes.d.ts +0 -92
  99. package/dist/organizations/config.d.ts +0 -46
  100. package/dist/organizations/operations.d.ts +0 -39
  101. package/dist/organizations/routes.d.ts +0 -299
  102. package/dist/organizations/types.d.ts +0 -45
  103. package/dist/passwordless/config.d.ts +0 -43
  104. package/dist/passwordless/routes.d.ts +0 -163
  105. package/dist/passwordless/types.d.ts +0 -9
  106. package/dist/pluginIdentity.d.ts +0 -2
  107. package/dist/portal/config.d.ts +0 -34
  108. package/dist/portal/operations.d.ts +0 -10
  109. package/dist/portal/routes.d.ts +0 -160
  110. package/dist/portal/types.d.ts +0 -16
  111. package/dist/providers/clients.d.ts +0 -1818
  112. package/dist/providersFromEnv.d.ts +0 -19
  113. package/dist/roles/config.d.ts +0 -27
  114. package/dist/roles/operations.d.ts +0 -8
  115. package/dist/roles/routes.d.ts +0 -106
  116. package/dist/roles/types.d.ts +0 -14
  117. package/dist/routes/authorize.d.ts +0 -102
  118. package/dist/routes/callback.d.ts +0 -64
  119. package/dist/routes/profile.d.ts +0 -70
  120. package/dist/routes/protectRoute.d.ts +0 -51
  121. package/dist/routes/refresh.d.ts +0 -74
  122. package/dist/routes/revoke.d.ts +0 -73
  123. package/dist/routes/sessions.d.ts +0 -103
  124. package/dist/routes/signout.d.ts +0 -70
  125. package/dist/routes/stepUp.d.ts +0 -48
  126. package/dist/routes/userStatus.d.ts +0 -72
  127. package/dist/scim/config.d.ts +0 -57
  128. package/dist/scim/extensions.d.ts +0 -30
  129. package/dist/scim/inMemoryScimTokenStore.d.ts +0 -2
  130. package/dist/scim/routes.d.ts +0 -366
  131. package/dist/scim/serialize.d.ts +0 -83
  132. package/dist/scim/types.d.ts +0 -54
  133. package/dist/session/access.d.ts +0 -33
  134. package/dist/session/anonymous.d.ts +0 -12
  135. package/dist/session/cleanup.d.ts +0 -45
  136. package/dist/session/impersonation.d.ts +0 -34
  137. package/dist/session/inMemoryStore.d.ts +0 -7
  138. package/dist/session/multiSession.d.ts +0 -27
  139. package/dist/session/neonStore.d.ts +0 -513
  140. package/dist/session/promote.d.ts +0 -23
  141. package/dist/session/redisStore.d.ts +0 -6
  142. package/dist/session/sessionsConfig.d.ts +0 -9
  143. package/dist/session/state.d.ts +0 -33
  144. package/dist/session/types.d.ts +0 -21
  145. package/dist/session/userSessions.d.ts +0 -19
  146. package/dist/sso/config.d.ts +0 -149
  147. package/dist/sso/discoveryRoute.d.ts +0 -63
  148. package/dist/sso/oidcRoutes.d.ts +0 -98
  149. package/dist/sso/samlRoutes.d.ts +0 -179
  150. package/dist/sso/types.d.ts +0 -53
  151. package/dist/stores/postgres.d.ts +0 -5
  152. package/dist/stores/redis.d.ts +0 -5
  153. package/dist/telemetry/tracing.d.ts +0 -15
  154. package/dist/tenancy.d.ts +0 -9
  155. package/dist/typeGuards.d.ts +0 -6
  156. package/dist/typebox.d.ts +0 -4
  157. package/dist/types.d.ts +0 -421
  158. package/dist/utils.d.ts +0 -45
  159. package/dist/vault/config.d.ts +0 -20
  160. package/dist/vault/inMemoryVaultStore.d.ts +0 -2
  161. package/dist/vault/postgresVaultStore.d.ts +0 -86
  162. package/dist/vault/types.d.ts +0 -14
  163. package/dist/vc/inMemoryVpStores.d.ts +0 -2
  164. package/dist/vc/openid4vp.d.ts +0 -82
  165. package/dist/vc/postgresVcStores.d.ts +0 -300
  166. package/dist/vc/sdJwt.d.ts +0 -37
  167. package/dist/vc/statusList.d.ts +0 -29
  168. package/dist/vc/statusListRoutes.d.ts +0 -63
  169. package/dist/vc/vpRoutes.d.ts +0 -120
  170. package/dist/webauthn/adapter.d.ts +0 -59
  171. package/dist/webauthn/config.d.ts +0 -36
  172. package/dist/webauthn/routes.d.ts +0 -155
  173. package/dist/webauthn/types.d.ts +0 -17
  174. package/dist/webhooks/config.d.ts +0 -34
  175. package/dist/webhooks/dispatcher.d.ts +0 -3
  176. package/dist/webhooks/sign.d.ts +0 -11
  177. package/dist/webhooks/types.d.ts +0 -25
@@ -1,70 +0,0 @@
1
- import { Elysia } from 'elysia';
2
- import { type MfaRouteProps } from './config';
3
- export declare const mfaChallenge: <UserType>({ authSessionStore, challengeRoute, cookieSecure, encryptionKey, getChallengeUser, getUserId, mfaStore, onMfaChallengeError, onMfaChallengeSuccess, onSendSmsCode, sessionDurationMs, smsCodeLength, smsCodeTtlMs, smsMaxAttempts, totpMaxAttempts }: MfaRouteProps<UserType>) => Elysia<"", {
4
- decorator: {};
5
- store: {
6
- session: import("..").SessionRecord<UserType>;
7
- unregisteredSession: import("..").UnregisteredSessionRecord;
8
- };
9
- derive: {};
10
- resolve: {};
11
- }, {
12
- typebox: {};
13
- error: {};
14
- }, {
15
- schema: {};
16
- standaloneSchema: {};
17
- macro: {};
18
- macroFn: {};
19
- parser: {};
20
- response: {};
21
- }, {
22
- [x: string]: {
23
- post: {
24
- body: {
25
- code?: string | undefined;
26
- action?: "verify" | "send" | undefined;
27
- factor?: "sms" | undefined;
28
- };
29
- params: {};
30
- query: unknown;
31
- headers: unknown;
32
- response: {
33
- 400: "SMS code required" | "No SMS code in progress";
34
- 401: "SMS code expired" | "Too many attempts" | "No MFA challenge in progress" | "Invalid MFA code";
35
- 200: {
36
- readonly status: "sent";
37
- } | {
38
- readonly status: "authenticated";
39
- };
40
- 422: {
41
- type: "validation";
42
- on: string;
43
- summary?: string;
44
- message?: string;
45
- found?: unknown;
46
- property?: string;
47
- expected?: string;
48
- };
49
- };
50
- };
51
- };
52
- }, {
53
- derive: {};
54
- resolve: {};
55
- schema: {};
56
- standaloneSchema: {};
57
- response: {};
58
- }, {
59
- derive: {};
60
- resolve: {};
61
- schema: {};
62
- standaloneSchema: {};
63
- response: {};
64
- } & {
65
- derive: {};
66
- resolve: {};
67
- schema: {};
68
- standaloneSchema: {};
69
- response: {};
70
- }>;
@@ -1,50 +0,0 @@
1
- import type { AuthSessionStore } from '../session/types';
2
- import type { RouteString, UserSessionId } from '../types';
3
- import type { MFAStore } from './types';
4
- export declare const DEFAULT_BACKUP_CODE_COUNT = 10;
5
- export declare const DEFAULT_MFA_ISSUER = "AbsoluteAuth";
6
- export declare const DEFAULT_MFA_SESSION_TTL_MS: number;
7
- export declare const DEFAULT_SMS_CODE_LENGTH = 6;
8
- export declare const DEFAULT_SMS_CODE_TTL_MS: number;
9
- export declare const DEFAULT_SMS_MAX_ATTEMPTS = 3;
10
- export declare const DEFAULT_TOTP_MAX_ATTEMPTS = 5;
11
- export type SmsCodeMessage = {
12
- code: string;
13
- expiresAt: number;
14
- phone: string;
15
- };
16
- export type MfaConfig<UserType> = {
17
- mfaStore: MFAStore;
18
- getUserId: (user: UserType) => string;
19
- getChallengeUser: (userIdentity: Record<string, unknown>) => Promise<UserType | null | undefined> | UserType | null | undefined;
20
- backupCodeCount?: number;
21
- challengeRoute?: RouteString;
22
- encryptionKey?: string;
23
- issuer?: string;
24
- managementRoute?: RouteString;
25
- onMfaChallengeError?: (context: {
26
- error: unknown;
27
- userId?: string;
28
- }) => void | Promise<void>;
29
- onMfaChallengeSuccess?: (context: {
30
- user: UserType;
31
- userSessionId: UserSessionId;
32
- }) => void | Promise<void>;
33
- onMfaEnrolled?: (context: {
34
- userId: string;
35
- }) => void | Promise<void>;
36
- onSendSmsCode?: (message: SmsCodeMessage) => void | Promise<void>;
37
- sessionDurationMs?: number;
38
- smsCodeLength?: number;
39
- smsCodeTtlMs?: number;
40
- smsMaxAttempts?: number;
41
- smsSetupRoute?: RouteString;
42
- smsVerifyRoute?: RouteString;
43
- totpMaxAttempts?: number;
44
- totpSetupRoute?: RouteString;
45
- totpVerifyRoute?: RouteString;
46
- };
47
- export type MfaRouteProps<UserType> = MfaConfig<UserType> & {
48
- authSessionStore?: AuthSessionStore<UserType>;
49
- cookieSecure?: boolean;
50
- };
@@ -1,2 +0,0 @@
1
- import type { MfaConfig } from './config';
2
- export declare const createMfaGate: <UserType>({ getUserId, mfaStore }: MfaConfig<UserType>) => (user: UserType) => Promise<boolean>;
@@ -1,2 +0,0 @@
1
- import type { MFAStore } from './types';
2
- export declare const createInMemoryMfaStore: () => MFAStore;
@@ -1,106 +0,0 @@
1
- import { Elysia } from 'elysia';
2
- import type { MfaRouteProps } from './config';
3
- export type MfaStatus = {
4
- backupCodesRemaining: number;
5
- enabled: boolean;
6
- smsBackup: {
7
- enabled: boolean;
8
- phone: string | null;
9
- };
10
- totp: {
11
- enabled: boolean;
12
- };
13
- };
14
- export declare const mfaManagementRoutes: <UserType>({ authSessionStore, getUserId, managementRoute, mfaStore }: MfaRouteProps<UserType>) => Elysia<"", {
15
- decorator: {};
16
- store: {
17
- session: import("..").SessionRecord<UserType>;
18
- unregisteredSession: import("..").UnregisteredSessionRecord;
19
- };
20
- derive: {};
21
- resolve: {};
22
- }, {
23
- typebox: {};
24
- error: {};
25
- }, {
26
- schema: {};
27
- standaloneSchema: {};
28
- macro: {};
29
- macroFn: {};
30
- parser: {};
31
- response: {};
32
- }, {
33
- [x: string]: {
34
- get: {
35
- body: unknown;
36
- params: {};
37
- query: unknown;
38
- headers: unknown;
39
- response: {
40
- 401: "Authentication required";
41
- 200: {
42
- backupCodesRemaining: number;
43
- enabled: boolean;
44
- smsBackup: {
45
- enabled: boolean;
46
- phone: string | null;
47
- };
48
- totp: {
49
- enabled: boolean;
50
- };
51
- };
52
- 422: {
53
- type: "validation";
54
- on: string;
55
- summary?: string;
56
- message?: string;
57
- found?: unknown;
58
- property?: string;
59
- expected?: string;
60
- };
61
- };
62
- };
63
- };
64
- } & {
65
- [x: string]: {
66
- delete: {
67
- body: unknown;
68
- params: {};
69
- query: unknown;
70
- headers: unknown;
71
- response: {
72
- 401: "Authentication required";
73
- 200: {
74
- readonly status: "disabled";
75
- };
76
- 422: {
77
- type: "validation";
78
- on: string;
79
- summary?: string;
80
- message?: string;
81
- found?: unknown;
82
- property?: string;
83
- expected?: string;
84
- };
85
- };
86
- };
87
- };
88
- }, {
89
- derive: {};
90
- resolve: {};
91
- schema: {};
92
- standaloneSchema: {};
93
- response: {};
94
- }, {
95
- derive: {};
96
- resolve: {};
97
- schema: {};
98
- standaloneSchema: {};
99
- response: {};
100
- } & {
101
- derive: {};
102
- resolve: {};
103
- schema: {};
104
- standaloneSchema: {};
105
- response: {};
106
- }>;
@@ -1,206 +0,0 @@
1
- import { type AnyPgDatabase } from '../stores/postgres';
2
- import type { MFAStore } from './types';
3
- export declare const mfaEnrollmentsTable: import("drizzle-orm/pg-core").PgTableWithColumns<{
4
- name: "auth_mfa_enrollments";
5
- schema: undefined;
6
- columns: {
7
- backup_code_hashes: import("drizzle-orm/pg-core").PgBuildColumn<"auth_mfa_enrollments", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").Set$Type<import("drizzle-orm/pg-core").PgJsonbBuilder, string[]>>>, {
8
- name: string;
9
- tableName: "auth_mfa_enrollments";
10
- dataType: "object json";
11
- data: string[];
12
- driverParam: unknown;
13
- notNull: true;
14
- hasDefault: true;
15
- isPrimaryKey: false;
16
- isAutoincrement: false;
17
- hasRuntimeDefault: false;
18
- enumValues: undefined;
19
- identity: undefined;
20
- generated: undefined;
21
- }>;
22
- created_at_ms: import("drizzle-orm/pg-core").PgBuildColumn<"auth_mfa_enrollments", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgBigInt53Builder>, {
23
- name: string;
24
- tableName: "auth_mfa_enrollments";
25
- dataType: "number int53";
26
- data: number;
27
- driverParam: string | number;
28
- notNull: true;
29
- hasDefault: false;
30
- isPrimaryKey: false;
31
- isAutoincrement: false;
32
- hasRuntimeDefault: false;
33
- enumValues: undefined;
34
- identity: undefined;
35
- generated: undefined;
36
- }>;
37
- last_used_at_ms: import("drizzle-orm/pg-core").PgBuildColumn<"auth_mfa_enrollments", import("drizzle-orm/pg-core").PgBigInt53Builder, {
38
- name: string;
39
- tableName: "auth_mfa_enrollments";
40
- dataType: "number int53";
41
- data: number;
42
- driverParam: string | number;
43
- notNull: false;
44
- hasDefault: false;
45
- isPrimaryKey: false;
46
- isAutoincrement: false;
47
- hasRuntimeDefault: false;
48
- enumValues: undefined;
49
- identity: undefined;
50
- generated: undefined;
51
- }>;
52
- sms_failed_attempts: import("drizzle-orm/pg-core").PgBuildColumn<"auth_mfa_enrollments", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgSmallIntBuilder>>, {
53
- name: string;
54
- tableName: "auth_mfa_enrollments";
55
- dataType: "number int16";
56
- data: number;
57
- driverParam: string | number;
58
- notNull: true;
59
- hasDefault: true;
60
- isPrimaryKey: false;
61
- isAutoincrement: false;
62
- hasRuntimeDefault: false;
63
- enumValues: undefined;
64
- identity: undefined;
65
- generated: undefined;
66
- }>;
67
- sms_pending_code_expires_at_ms: import("drizzle-orm/pg-core").PgBuildColumn<"auth_mfa_enrollments", import("drizzle-orm/pg-core").PgBigInt53Builder, {
68
- name: string;
69
- tableName: "auth_mfa_enrollments";
70
- dataType: "number int53";
71
- data: number;
72
- driverParam: string | number;
73
- notNull: false;
74
- hasDefault: false;
75
- isPrimaryKey: false;
76
- isAutoincrement: false;
77
- hasRuntimeDefault: false;
78
- enumValues: undefined;
79
- identity: undefined;
80
- generated: undefined;
81
- }>;
82
- sms_pending_code_hash: import("drizzle-orm/pg-core").PgBuildColumn<"auth_mfa_enrollments", import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>, {
83
- name: string;
84
- tableName: "auth_mfa_enrollments";
85
- dataType: "string";
86
- data: string;
87
- driverParam: string;
88
- notNull: false;
89
- hasDefault: false;
90
- isPrimaryKey: false;
91
- isAutoincrement: false;
92
- hasRuntimeDefault: false;
93
- enumValues: undefined;
94
- identity: undefined;
95
- generated: undefined;
96
- }>;
97
- sms_phone: import("drizzle-orm/pg-core").PgBuildColumn<"auth_mfa_enrollments", import("drizzle-orm/pg-core").PgVarcharBuilder<[string, ...string[]]>, {
98
- name: string;
99
- tableName: "auth_mfa_enrollments";
100
- dataType: "string";
101
- data: string;
102
- driverParam: string;
103
- notNull: false;
104
- hasDefault: false;
105
- isPrimaryKey: false;
106
- isAutoincrement: false;
107
- hasRuntimeDefault: false;
108
- enumValues: undefined;
109
- identity: undefined;
110
- generated: undefined;
111
- }>;
112
- sms_verified: import("drizzle-orm/pg-core").PgBuildColumn<"auth_mfa_enrollments", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgBooleanBuilder>>, {
113
- name: string;
114
- tableName: "auth_mfa_enrollments";
115
- dataType: "boolean";
116
- data: boolean;
117
- driverParam: boolean;
118
- notNull: true;
119
- hasDefault: true;
120
- isPrimaryKey: false;
121
- isAutoincrement: false;
122
- hasRuntimeDefault: false;
123
- enumValues: undefined;
124
- identity: undefined;
125
- generated: undefined;
126
- }>;
127
- totp_failed_attempts: import("drizzle-orm/pg-core").PgBuildColumn<"auth_mfa_enrollments", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgSmallIntBuilder>>, {
128
- name: string;
129
- tableName: "auth_mfa_enrollments";
130
- dataType: "number int16";
131
- data: number;
132
- driverParam: string | number;
133
- notNull: true;
134
- hasDefault: true;
135
- isPrimaryKey: false;
136
- isAutoincrement: false;
137
- hasRuntimeDefault: false;
138
- enumValues: undefined;
139
- identity: undefined;
140
- generated: undefined;
141
- }>;
142
- totp_secret_ciphertext: import("drizzle-orm/pg-core").PgBuildColumn<"auth_mfa_enrollments", import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>, {
143
- name: string;
144
- tableName: "auth_mfa_enrollments";
145
- dataType: "string";
146
- data: string;
147
- driverParam: string;
148
- notNull: false;
149
- hasDefault: false;
150
- isPrimaryKey: false;
151
- isAutoincrement: false;
152
- hasRuntimeDefault: false;
153
- enumValues: undefined;
154
- identity: undefined;
155
- generated: undefined;
156
- }>;
157
- totp_verified: import("drizzle-orm/pg-core").PgBuildColumn<"auth_mfa_enrollments", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgBooleanBuilder>>, {
158
- name: string;
159
- tableName: "auth_mfa_enrollments";
160
- dataType: "boolean";
161
- data: boolean;
162
- driverParam: boolean;
163
- notNull: true;
164
- hasDefault: true;
165
- isPrimaryKey: false;
166
- isAutoincrement: false;
167
- hasRuntimeDefault: false;
168
- enumValues: undefined;
169
- identity: undefined;
170
- generated: undefined;
171
- }>;
172
- updated_at_ms: import("drizzle-orm/pg-core").PgBuildColumn<"auth_mfa_enrollments", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").PgBigInt53Builder>, {
173
- name: string;
174
- tableName: "auth_mfa_enrollments";
175
- dataType: "number int53";
176
- data: number;
177
- driverParam: string | number;
178
- notNull: true;
179
- hasDefault: false;
180
- isPrimaryKey: false;
181
- isAutoincrement: false;
182
- hasRuntimeDefault: false;
183
- enumValues: undefined;
184
- identity: undefined;
185
- generated: undefined;
186
- }>;
187
- user_id: import("drizzle-orm/pg-core").PgBuildColumn<"auth_mfa_enrollments", import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgVarcharBuilder<[string, ...string[]]>>, {
188
- name: string;
189
- tableName: "auth_mfa_enrollments";
190
- dataType: "string";
191
- data: string;
192
- driverParam: string;
193
- notNull: true;
194
- hasDefault: false;
195
- isPrimaryKey: false;
196
- isAutoincrement: false;
197
- hasRuntimeDefault: false;
198
- enumValues: undefined;
199
- identity: undefined;
200
- generated: undefined;
201
- }>;
202
- };
203
- dialect: "pg";
204
- }>;
205
- export declare const createNeonMfaStore: (databaseUrl: string) => MFAStore;
206
- export declare const createPostgresMfaStore: <DB extends AnyPgDatabase>(db: DB) => MFAStore;
@@ -1,17 +0,0 @@
1
- import type { MFAStore } from './types';
2
- export type MfaKeyRotationResult = {
3
- alreadyRotated: number;
4
- rotated: number;
5
- skippedNoSecret: number;
6
- total: number;
7
- };
8
- export declare const rotateMfaEncryptionKey: ({ mfaStore, newKey, oldKey }: {
9
- mfaStore: MFAStore;
10
- newKey: string;
11
- oldKey: string;
12
- }) => Promise<{
13
- alreadyRotated: number;
14
- rotated: number;
15
- skippedNoSecret: number;
16
- total: number;
17
- }>;
@@ -1,234 +0,0 @@
1
- import { Elysia } from 'elysia';
2
- import type { MfaRouteProps } from './config';
3
- export declare const mfaRoutes: <UserType>(config: MfaRouteProps<UserType>) => Elysia<"", {
4
- decorator: {};
5
- store: {
6
- session: import("..").SessionRecord<UserType>;
7
- unregisteredSession: import("..").UnregisteredSessionRecord;
8
- };
9
- derive: {};
10
- resolve: {};
11
- }, {
12
- typebox: {};
13
- error: {};
14
- }, {
15
- schema: {};
16
- standaloneSchema: {};
17
- macro: {};
18
- macroFn: {};
19
- parser: {};
20
- response: {};
21
- }, {
22
- [x: string]: {
23
- get: {
24
- body: unknown;
25
- params: {};
26
- query: unknown;
27
- headers: unknown;
28
- response: {
29
- 401: "Authentication required";
30
- 200: {
31
- backupCodesRemaining: number;
32
- enabled: boolean;
33
- smsBackup: {
34
- enabled: boolean;
35
- phone: string | null;
36
- };
37
- totp: {
38
- enabled: boolean;
39
- };
40
- };
41
- 422: {
42
- type: "validation";
43
- on: string;
44
- summary?: string;
45
- message?: string;
46
- found?: unknown;
47
- property?: string;
48
- expected?: string;
49
- };
50
- };
51
- };
52
- };
53
- } & {
54
- [x: string]: {
55
- delete: {
56
- body: unknown;
57
- params: {};
58
- query: unknown;
59
- headers: unknown;
60
- response: {
61
- 401: "Authentication required";
62
- 200: {
63
- readonly status: "disabled";
64
- };
65
- 422: {
66
- type: "validation";
67
- on: string;
68
- summary?: string;
69
- message?: string;
70
- found?: unknown;
71
- property?: string;
72
- expected?: string;
73
- };
74
- };
75
- };
76
- };
77
- } & {
78
- [x: string]: {
79
- post: {
80
- body: unknown;
81
- params: {};
82
- query: unknown;
83
- headers: unknown;
84
- response: {
85
- 401: "Authentication required";
86
- 200: {
87
- readonly secret: string;
88
- readonly uri: string;
89
- };
90
- 422: {
91
- type: "validation";
92
- on: string;
93
- summary?: string;
94
- message?: string;
95
- found?: unknown;
96
- property?: string;
97
- expected?: string;
98
- };
99
- };
100
- };
101
- };
102
- } & {
103
- [x: string]: {
104
- post: {
105
- body: {
106
- code: string;
107
- };
108
- params: {};
109
- query: unknown;
110
- headers: unknown;
111
- response: {
112
- 400: "No TOTP enrollment in progress" | "Invalid TOTP code";
113
- 401: "Authentication required";
114
- 200: {
115
- readonly backupCodes: string[];
116
- };
117
- 422: {
118
- type: "validation";
119
- on: string;
120
- summary?: string;
121
- message?: string;
122
- found?: unknown;
123
- property?: string;
124
- expected?: string;
125
- };
126
- };
127
- };
128
- };
129
- } & {
130
- [x: string]: {
131
- post: {
132
- body: {
133
- phone: string;
134
- };
135
- params: {};
136
- query: unknown;
137
- headers: unknown;
138
- response: {
139
- 400: "Phone must be in E.164 format";
140
- 401: "Authentication required";
141
- 501: "SMS MFA is not configured";
142
- 200: {
143
- readonly phone: string;
144
- };
145
- 422: {
146
- type: "validation";
147
- on: string;
148
- summary?: string;
149
- message?: string;
150
- found?: unknown;
151
- property?: string;
152
- expected?: string;
153
- };
154
- };
155
- };
156
- };
157
- } & {
158
- [x: string]: {
159
- post: {
160
- body: {
161
- code: string;
162
- };
163
- params: {};
164
- query: unknown;
165
- headers: unknown;
166
- response: {
167
- 400: "No SMS enrollment in progress" | "SMS code expired" | "Invalid SMS code";
168
- 401: "Authentication required";
169
- 200: {
170
- readonly status: "enrolled";
171
- };
172
- 422: {
173
- type: "validation";
174
- on: string;
175
- summary?: string;
176
- message?: string;
177
- found?: unknown;
178
- property?: string;
179
- expected?: string;
180
- };
181
- 429: "Too many attempts";
182
- };
183
- };
184
- };
185
- } & {
186
- [x: string]: {
187
- post: {
188
- body: {
189
- code?: string | undefined;
190
- action?: "verify" | "send" | undefined;
191
- factor?: "sms" | undefined;
192
- };
193
- params: {};
194
- query: unknown;
195
- headers: unknown;
196
- response: {
197
- 400: "SMS code required" | "No SMS code in progress";
198
- 401: "SMS code expired" | "Too many attempts" | "No MFA challenge in progress" | "Invalid MFA code";
199
- 200: {
200
- readonly status: "sent";
201
- } | {
202
- readonly status: "authenticated";
203
- };
204
- 422: {
205
- type: "validation";
206
- on: string;
207
- summary?: string;
208
- message?: string;
209
- found?: unknown;
210
- property?: string;
211
- expected?: string;
212
- };
213
- };
214
- };
215
- };
216
- }, {
217
- derive: {};
218
- resolve: {};
219
- schema: {};
220
- standaloneSchema: {};
221
- response: {};
222
- }, {
223
- derive: {};
224
- resolve: {};
225
- schema: {};
226
- standaloneSchema: {};
227
- response: {};
228
- } & {
229
- derive: {};
230
- resolve: {};
231
- schema: {};
232
- standaloneSchema: {};
233
- response: {};
234
- }>;
@@ -1,2 +0,0 @@
1
- export declare const decryptTotpSecret: (ciphertext: string, encryptionKey?: string) => Promise<string>;
2
- export declare const encryptTotpSecret: (secret: string, encryptionKey?: string) => Promise<string>;