@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,299 +0,0 @@
1
- import { Elysia } from 'elysia';
2
- import type { SessionRecord } from '../types';
3
- import { type OrganizationsRouteProps } from './config';
4
- export declare const organizationRoutes: <UserType>({ authSessionStore, canCreateOrganization, canManageMembers, emit, getUserId, invitationDurationMs, onMembershipAdded, onMembershipRemoved, onOrganizationCreated, onSendInvitation, organizationsRoute, organizationStore, ownerRoles }: OrganizationsRouteProps<UserType>) => Elysia<"", {
5
- decorator: {};
6
- store: {
7
- session: SessionRecord<UserType>;
8
- unregisteredSession: import("..").UnregisteredSessionRecord;
9
- };
10
- derive: {};
11
- resolve: {};
12
- }, {
13
- typebox: {};
14
- error: {};
15
- }, {
16
- schema: {};
17
- standaloneSchema: {};
18
- macro: {};
19
- macroFn: {};
20
- parser: {};
21
- response: {};
22
- }, {
23
- [x: string]: {
24
- get: {
25
- body: unknown;
26
- params: {};
27
- query: unknown;
28
- headers: unknown;
29
- response: {
30
- 401: "Authentication required";
31
- 200: {
32
- readonly organizations: {
33
- membership: import("./types").OrganizationMembership;
34
- organization: import("./types").Organization | undefined;
35
- }[];
36
- };
37
- 422: {
38
- type: "validation";
39
- on: string;
40
- summary?: string;
41
- message?: string;
42
- found?: unknown;
43
- property?: string;
44
- expected?: string;
45
- };
46
- };
47
- };
48
- };
49
- } & {
50
- [x: string]: {
51
- post: {
52
- body: {
53
- metadata?: {} | undefined;
54
- name: string;
55
- };
56
- params: {};
57
- query: unknown;
58
- headers: unknown;
59
- response: {
60
- 401: "Authentication required";
61
- 403: "Cannot create organizations";
62
- 200: {
63
- readonly organization: import("./types").Organization;
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
- ":organizationId": {
80
- invitations: {
81
- post: {
82
- body: {
83
- roles?: string[] | undefined;
84
- email: string;
85
- };
86
- params: {
87
- organizationId: string;
88
- };
89
- query: unknown;
90
- headers: unknown;
91
- response: {
92
- 401: "Authentication required";
93
- 403: "Cannot manage members";
94
- 200: {
95
- readonly invitationId: string;
96
- readonly token: string;
97
- };
98
- 422: {
99
- type: "validation";
100
- on: string;
101
- summary?: string;
102
- message?: string;
103
- found?: unknown;
104
- property?: string;
105
- expected?: string;
106
- };
107
- };
108
- };
109
- };
110
- };
111
- };
112
- } & {
113
- [x: string]: {
114
- ":organizationId": {
115
- invitations: {
116
- get: {
117
- body: unknown;
118
- params: {
119
- organizationId: string;
120
- };
121
- query: unknown;
122
- headers: unknown;
123
- response: {
124
- 401: "Authentication required";
125
- 403: "Cannot manage members";
126
- 200: {
127
- readonly invitations: {
128
- email: string;
129
- expiresAt: number;
130
- invitationId: string;
131
- roles: string[];
132
- state: import("./types").InvitationState;
133
- }[];
134
- };
135
- 422: {
136
- type: "validation";
137
- on: string;
138
- summary?: string;
139
- message?: string;
140
- found?: unknown;
141
- property?: string;
142
- expected?: string;
143
- };
144
- };
145
- };
146
- };
147
- };
148
- };
149
- } & {
150
- [x: string]: {
151
- ":organizationId": {
152
- invitations: {
153
- ":invitationId": {
154
- delete: {
155
- body: unknown;
156
- params: {
157
- organizationId: string;
158
- invitationId: string;
159
- };
160
- query: unknown;
161
- headers: unknown;
162
- response: {
163
- 401: "Authentication required";
164
- 403: "Cannot manage members";
165
- 404: "Invitation not found";
166
- 200: {
167
- readonly revoked: string;
168
- };
169
- 422: {
170
- type: "validation";
171
- on: string;
172
- summary?: string;
173
- message?: string;
174
- found?: unknown;
175
- property?: string;
176
- expected?: string;
177
- };
178
- };
179
- };
180
- };
181
- };
182
- };
183
- };
184
- } & {
185
- [x: string]: {
186
- invitations: {
187
- accept: {
188
- post: {
189
- body: {
190
- token: string;
191
- };
192
- params: {};
193
- query: unknown;
194
- headers: unknown;
195
- response: {
196
- 400: "Invalid or expired invitation";
197
- 401: "Authentication required";
198
- 200: {
199
- readonly organizationId: string;
200
- readonly roles: string[];
201
- };
202
- 422: {
203
- type: "validation";
204
- on: string;
205
- summary?: string;
206
- message?: string;
207
- found?: unknown;
208
- property?: string;
209
- expected?: string;
210
- };
211
- };
212
- };
213
- };
214
- };
215
- };
216
- } & {
217
- [x: string]: {
218
- ":organizationId": {
219
- members: {
220
- get: {
221
- body: unknown;
222
- params: {
223
- organizationId: string;
224
- };
225
- query: unknown;
226
- headers: unknown;
227
- response: {
228
- 401: "Authentication required";
229
- 403: "Not a member";
230
- 200: {
231
- readonly members: import("./types").OrganizationMembership[];
232
- };
233
- 422: {
234
- type: "validation";
235
- on: string;
236
- summary?: string;
237
- message?: string;
238
- found?: unknown;
239
- property?: string;
240
- expected?: string;
241
- };
242
- };
243
- };
244
- };
245
- };
246
- };
247
- } & {
248
- [x: string]: {
249
- ":organizationId": {
250
- members: {
251
- ":userId": {
252
- delete: {
253
- body: unknown;
254
- params: {
255
- userId: string;
256
- organizationId: string;
257
- };
258
- query: unknown;
259
- headers: unknown;
260
- response: {
261
- 401: "Authentication required";
262
- 403: "Cannot manage members";
263
- 200: {
264
- readonly removed: string;
265
- };
266
- 422: {
267
- type: "validation";
268
- on: string;
269
- summary?: string;
270
- message?: string;
271
- found?: unknown;
272
- property?: string;
273
- expected?: string;
274
- };
275
- };
276
- };
277
- };
278
- };
279
- };
280
- };
281
- }, {
282
- derive: {};
283
- resolve: {};
284
- schema: {};
285
- standaloneSchema: {};
286
- response: {};
287
- }, {
288
- derive: {};
289
- resolve: {};
290
- schema: {};
291
- standaloneSchema: {};
292
- response: {};
293
- } & {
294
- derive: {};
295
- resolve: {};
296
- schema: {};
297
- standaloneSchema: {};
298
- response: {};
299
- }>;
@@ -1,45 +0,0 @@
1
- import type { OrganizationId } from '../tenancy';
2
- export type Organization = {
3
- createdAt: number;
4
- metadata?: Record<string, unknown>;
5
- name: string;
6
- organizationId: OrganizationId;
7
- updatedAt: number;
8
- };
9
- export type MembershipStatus = 'active' | 'suspended';
10
- export type OrganizationMembership = {
11
- createdAt: number;
12
- organizationId: OrganizationId;
13
- roles: string[];
14
- status: MembershipStatus;
15
- updatedAt: number;
16
- userId: string;
17
- };
18
- export type InvitationState = 'accepted' | 'pending' | 'revoked';
19
- export type OrganizationInvitation = {
20
- acceptedAt?: number;
21
- createdAt: number;
22
- email: string;
23
- expiresAt: number;
24
- invitationId: string;
25
- inviterUserId?: string;
26
- organizationId: OrganizationId;
27
- roles: string[];
28
- state: InvitationState;
29
- tokenHash: string;
30
- };
31
- export type OrganizationStore = {
32
- deleteOrganization: (organizationId: OrganizationId) => Promise<void>;
33
- getInvitation: (invitationId: string) => Promise<OrganizationInvitation | undefined>;
34
- getInvitationByTokenHash: (tokenHash: string) => Promise<OrganizationInvitation | undefined>;
35
- getMembership: (organizationId: OrganizationId, userId: string) => Promise<OrganizationMembership | undefined>;
36
- getOrganization: (organizationId: OrganizationId) => Promise<Organization | undefined>;
37
- listInvitationsByOrganization: (organizationId: OrganizationId) => Promise<OrganizationInvitation[]>;
38
- listMembershipsByOrganization: (organizationId: OrganizationId) => Promise<OrganizationMembership[]>;
39
- listMembershipsByUser: (userId: string) => Promise<OrganizationMembership[]>;
40
- listOrganizations: () => Promise<Organization[]>;
41
- removeMembership: (organizationId: OrganizationId, userId: string) => Promise<void>;
42
- saveInvitation: (invitation: OrganizationInvitation) => Promise<void>;
43
- saveMembership: (membership: OrganizationMembership) => Promise<void>;
44
- saveOrganization: (organization: Organization) => Promise<void>;
45
- };
@@ -1,43 +0,0 @@
1
- import type { AuditEmitter } from '../audit/config';
2
- import type { AuthSessionStore } from '../session/types';
3
- import type { RouteString, UserSessionId } from '../types';
4
- import type { PasswordlessTokenStore } from './types';
5
- export declare const DEFAULT_MAGIC_LINK_TTL_MS: number;
6
- export declare const DEFAULT_OTP_LENGTH = 6;
7
- export declare const DEFAULT_OTP_TTL_MS: number;
8
- export declare const DEFAULT_PASSWORDLESS_ROUTE: RouteString;
9
- export declare const DEFAULT_PASSWORDLESS_SESSION_TTL_MS: number;
10
- export type MagicLinkMessage = {
11
- email: string;
12
- expiresAt: number;
13
- token: string;
14
- };
15
- export type PasswordlessOtpMessage = {
16
- code: string;
17
- email: string;
18
- expiresAt: number;
19
- };
20
- export type PasswordlessConfig<UserType> = {
21
- getUserByEmail: (email: string) => Promise<UserType | null | undefined> | UserType | null | undefined;
22
- passwordlessTokenStore: PasswordlessTokenStore;
23
- getUserId?: (user: UserType) => string;
24
- magicLinkTokenDurationMs?: number;
25
- onCreateUser?: (context: {
26
- email: string;
27
- }) => Promise<UserType> | UserType;
28
- onPasswordlessLogin?: (context: {
29
- user: UserType;
30
- userSessionId: UserSessionId;
31
- }) => void | Promise<void>;
32
- onSendMagicLink?: (message: MagicLinkMessage) => void | Promise<void>;
33
- onSendOtp?: (message: PasswordlessOtpMessage) => void | Promise<void>;
34
- otpDurationMs?: number;
35
- otpLength?: number;
36
- passwordlessRoute?: RouteString;
37
- sessionDurationMs?: number;
38
- };
39
- export type PasswordlessRouteProps<UserType> = PasswordlessConfig<UserType> & {
40
- authSessionStore?: AuthSessionStore<UserType>;
41
- cookieSecure?: boolean;
42
- emit?: AuditEmitter;
43
- };
@@ -1,163 +0,0 @@
1
- import { Elysia } from 'elysia';
2
- import type { SessionRecord } from '../types';
3
- import { type PasswordlessRouteProps } from './config';
4
- export declare const passwordlessRoutes: <UserType>({ authSessionStore, cookieSecure, emit, getUserByEmail, getUserId, magicLinkTokenDurationMs, onCreateUser, onPasswordlessLogin, onSendMagicLink, onSendOtp, otpDurationMs, otpLength, passwordlessRoute, passwordlessTokenStore, sessionDurationMs }: PasswordlessRouteProps<UserType>) => Elysia<"", {
5
- decorator: {};
6
- store: {} | {
7
- session: SessionRecord<UserType>;
8
- unregisteredSession: import("..").UnregisteredSessionRecord;
9
- } | {
10
- session: SessionRecord<UserType>;
11
- unregisteredSession: import("..").UnregisteredSessionRecord;
12
- } | {
13
- session: SessionRecord<UserType>;
14
- unregisteredSession: import("..").UnregisteredSessionRecord;
15
- };
16
- derive: {};
17
- resolve: {};
18
- }, {
19
- typebox: {};
20
- error: {};
21
- }, {
22
- schema: {};
23
- standaloneSchema: {};
24
- macro: {};
25
- macroFn: {};
26
- parser: {};
27
- response: {};
28
- }, ({} | ({
29
- [x: string]: {
30
- "magic-link": {
31
- post: {
32
- body: {
33
- email: string;
34
- };
35
- params: {};
36
- query: unknown;
37
- headers: unknown;
38
- response: {
39
- 200: {
40
- readonly status: "magic_link_sent";
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
- };
52
- };
53
- };
54
- };
55
- } & {
56
- [x: string]: {
57
- "magic-link": {
58
- verify: {
59
- post: {
60
- body: {
61
- token: string;
62
- };
63
- params: {};
64
- query: unknown;
65
- headers: unknown;
66
- response: {
67
- 400: "Invalid or expired link";
68
- 401: "No account for this email";
69
- 200: {
70
- readonly status: "authenticated";
71
- };
72
- 422: {
73
- type: "validation";
74
- on: string;
75
- summary?: string;
76
- message?: string;
77
- found?: unknown;
78
- property?: string;
79
- expected?: string;
80
- };
81
- };
82
- };
83
- };
84
- };
85
- };
86
- })) & ({} | ({
87
- [x: string]: {
88
- otp: {
89
- post: {
90
- body: {
91
- email: string;
92
- };
93
- params: {};
94
- query: unknown;
95
- headers: unknown;
96
- response: {
97
- 200: {
98
- readonly status: "otp_sent";
99
- };
100
- 422: {
101
- type: "validation";
102
- on: string;
103
- summary?: string;
104
- message?: string;
105
- found?: unknown;
106
- property?: string;
107
- expected?: string;
108
- };
109
- };
110
- };
111
- };
112
- };
113
- } & {
114
- [x: string]: {
115
- otp: {
116
- verify: {
117
- post: {
118
- body: {
119
- email: string;
120
- code: string;
121
- };
122
- params: {};
123
- query: unknown;
124
- headers: unknown;
125
- response: {
126
- 400: "Invalid or expired code";
127
- 401: "No account for this email";
128
- 200: {
129
- readonly status: "authenticated";
130
- };
131
- 422: {
132
- type: "validation";
133
- on: string;
134
- summary?: string;
135
- message?: string;
136
- found?: unknown;
137
- property?: string;
138
- expected?: string;
139
- };
140
- };
141
- };
142
- };
143
- };
144
- };
145
- })), {
146
- derive: {};
147
- resolve: {};
148
- schema: {};
149
- standaloneSchema: {};
150
- response: {};
151
- }, {
152
- derive: {};
153
- resolve: {};
154
- schema: {};
155
- standaloneSchema: {};
156
- response: {};
157
- } & {
158
- derive: {};
159
- resolve: {};
160
- schema: {};
161
- standaloneSchema: {};
162
- response: {};
163
- }>;
@@ -1,9 +0,0 @@
1
- export type PasswordlessToken = {
2
- email: string;
3
- expiresAt: number;
4
- tokenHash: string;
5
- };
6
- export type PasswordlessTokenStore = {
7
- consumeToken: (tokenHash: string) => Promise<PasswordlessToken | undefined>;
8
- saveToken: (token: PasswordlessToken) => Promise<void>;
9
- };
@@ -1,2 +0,0 @@
1
- /** Stable process-local seed for configured Elysia dependencies. */
2
- export declare const pluginDependencySeed: (dependency?: object) => number | "default";
@@ -1,34 +0,0 @@
1
- import type { AuditEmitter } from '../audit/config';
2
- import type { ScimTokenStore } from '../scim/types';
3
- import type { SSOConnectionStore, SSOConnectionType } from '../sso/types';
4
- import type { OrganizationId } from '../tenancy';
5
- import type { RouteString } from '../types';
6
- import type { SetupCapability, SetupSessionStore } from './types';
7
- export declare const DEFAULT_PORTAL_ROUTE: RouteString;
8
- export declare const DEFAULT_SETUP_SESSION_TTL_MS: number;
9
- export type PortalConfig = {
10
- setupSessionStore: SetupSessionStore;
11
- onScimTokenCreated?: (context: {
12
- organizationId: OrganizationId;
13
- tokenId: string;
14
- }) => void | Promise<void>;
15
- onSsoConnectionConfigured?: (context: {
16
- organizationId: OrganizationId;
17
- type: SSOConnectionType;
18
- }) => void | Promise<void>;
19
- portalRoute?: RouteString;
20
- scimRoute?: RouteString;
21
- scimTokenStore?: ScimTokenStore;
22
- ssoConnectionStore?: SSOConnectionStore;
23
- ssoRoute?: RouteString;
24
- };
25
- export type PortalRouteProps = PortalConfig & {
26
- emit?: AuditEmitter;
27
- };
28
- export type SetupSessionRequest = {
29
- capabilities: SetupCapability[];
30
- createdBy?: string;
31
- organizationId: OrganizationId;
32
- setupSessionDurationMs?: number;
33
- setupSessionStore: SetupSessionStore;
34
- };
@@ -1,10 +0,0 @@
1
- import { type SetupSessionRequest } from './config';
2
- import type { SetupSession, SetupSessionStore } from './types';
3
- export declare const createSetupSession: ({ capabilities, createdBy, organizationId, setupSessionDurationMs, setupSessionStore }: SetupSessionRequest) => Promise<{
4
- setupSession: SetupSession;
5
- token: string;
6
- }>;
7
- export declare const resolveSetupSession: ({ authorization, setupSessionStore }: {
8
- authorization: string | undefined;
9
- setupSessionStore: SetupSessionStore;
10
- }) => Promise<SetupSession | undefined>;