@absolutejs/auth 0.65.5 → 0.66.0

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 (61) hide show
  1. package/dist/agents/context.d.ts +5 -18
  2. package/dist/agents/index.js +3 -3
  3. package/dist/agents/index.js.map +3 -3
  4. package/dist/agents/routes.d.ts +24 -56
  5. package/dist/apikeys/routes.d.ts +169 -78
  6. package/dist/authContext.d.ts +34 -79
  7. package/dist/authorization/protectPermission.d.ts +11 -23
  8. package/dist/cli/migrate.js +2 -2
  9. package/dist/cli/migrate.js.map +4 -4
  10. package/dist/compliance/routes.d.ts +179 -54
  11. package/dist/credentials/emailVerification.d.ts +173 -56
  12. package/dist/credentials/login.d.ts +192 -63
  13. package/dist/credentials/passwordReset.d.ts +171 -60
  14. package/dist/credentials/register.d.ts +182 -41
  15. package/dist/credentials/routes.d.ts +46 -36
  16. package/dist/htmx/configuredRoutes.d.ts +263 -114
  17. package/dist/htmx/routes.d.ts +261 -89
  18. package/dist/index.d.ts +663 -443
  19. package/dist/index.js +475 -448
  20. package/dist/index.js.map +48 -48
  21. package/dist/manifest.js +86 -4
  22. package/dist/manifest.js.map +3 -3
  23. package/dist/mfa/challenge.d.ts +189 -59
  24. package/dist/mfa/management.d.ts +179 -54
  25. package/dist/mfa/routes.d.ts +34 -40
  26. package/dist/mfa/sms.d.ts +187 -59
  27. package/dist/mfa/totp.d.ts +187 -57
  28. package/dist/oidc/routes.d.ts +73 -74
  29. package/dist/oidc/vciRoutes.d.ts +9 -45
  30. package/dist/organizations/routes.d.ts +215 -77
  31. package/dist/passwordless/routes.d.ts +22 -34
  32. package/dist/portal/routes.d.ts +162 -55
  33. package/dist/roles/routes.d.ts +198 -67
  34. package/dist/routes/authorize.d.ts +182 -90
  35. package/dist/routes/callback.d.ts +189 -38
  36. package/dist/routes/profile.d.ts +177 -51
  37. package/dist/routes/protectRoute.d.ts +11 -23
  38. package/dist/routes/refresh.d.ts +177 -51
  39. package/dist/routes/requireAuth.d.ts +9 -21
  40. package/dist/routes/revoke.d.ts +177 -51
  41. package/dist/routes/sessions.d.ts +187 -61
  42. package/dist/routes/signout.d.ts +174 -50
  43. package/dist/routes/stepUp.d.ts +11 -23
  44. package/dist/routes/userStatus.d.ts +174 -52
  45. package/dist/scim/routes.d.ts +208 -73
  46. package/dist/server.js +475 -448
  47. package/dist/server.js.map +48 -48
  48. package/dist/session/cleanup.d.ts +5 -18
  49. package/dist/session/state.d.ts +3 -23
  50. package/dist/sso/discoveryRoute.d.ts +158 -52
  51. package/dist/sso/oidcRoutes.d.ts +211 -59
  52. package/dist/sso/samlIdpRoutes.d.ts +175 -46
  53. package/dist/sso/samlRoutes.d.ts +217 -69
  54. package/dist/typebox.d.ts +4 -4
  55. package/dist/types.d.ts +3 -5
  56. package/dist/vault/index.js +3 -3
  57. package/dist/vault/index.js.map +3 -3
  58. package/dist/vc/statusListRoutes.d.ts +158 -52
  59. package/dist/vc/vpRoutes.d.ts +170 -66
  60. package/dist/webauthn/routes.d.ts +199 -66
  61. package/package.json +8 -120
@@ -1,24 +1,16 @@
1
1
  import { Elysia } from 'elysia';
2
2
  import type { MfaRouteProps } from './config';
3
- export declare const mfaRoutes: <UserType>(config: MfaRouteProps<UserType>) => Elysia<"", {
3
+ export declare const mfaRoutes: <UserType>(config: MfaRouteProps<UserType>) => Elysia<"", "local", {
4
4
  decorator: {};
5
5
  store: {
6
6
  session: import("..").SessionRecord<UserType>;
7
7
  unregisteredSession: import("..").UnregisteredSessionRecord;
8
8
  };
9
9
  derive: {};
10
- resolve: {};
11
10
  }, {
12
11
  typebox: {};
13
- error: {};
14
- }, {
15
- schema: {};
16
- standaloneSchema: {};
17
- macro: {};
18
- macroFn: {};
19
- parser: {};
20
- response: {};
21
- }, {
12
+ error: [];
13
+ }, import("elysia/types").DefaultMetadata, {
22
14
  [x: string]: {
23
15
  get: {
24
16
  body: unknown;
@@ -40,14 +32,16 @@ export declare const mfaRoutes: <UserType>(config: MfaRouteProps<UserType>) => E
40
32
  };
41
33
  422: {
42
34
  type: "validation";
35
+ title: "Validation Error";
36
+ status: 422;
37
+ detail?: string;
43
38
  on: string;
44
- summary?: string;
45
- message?: string;
46
39
  found?: unknown;
47
40
  property?: string;
48
41
  expected?: string;
49
42
  };
50
43
  };
44
+ error: never;
51
45
  };
52
46
  };
53
47
  } & {
@@ -64,14 +58,16 @@ export declare const mfaRoutes: <UserType>(config: MfaRouteProps<UserType>) => E
64
58
  };
65
59
  422: {
66
60
  type: "validation";
61
+ title: "Validation Error";
62
+ status: 422;
63
+ detail?: string;
67
64
  on: string;
68
- summary?: string;
69
- message?: string;
70
65
  found?: unknown;
71
66
  property?: string;
72
67
  expected?: string;
73
68
  };
74
69
  };
70
+ error: never;
75
71
  };
76
72
  };
77
73
  } & {
@@ -89,14 +85,16 @@ export declare const mfaRoutes: <UserType>(config: MfaRouteProps<UserType>) => E
89
85
  };
90
86
  422: {
91
87
  type: "validation";
88
+ title: "Validation Error";
89
+ status: 422;
90
+ detail?: string;
92
91
  on: string;
93
- summary?: string;
94
- message?: string;
95
92
  found?: unknown;
96
93
  property?: string;
97
94
  expected?: string;
98
95
  };
99
96
  };
97
+ error: never;
100
98
  };
101
99
  };
102
100
  } & {
@@ -116,14 +114,16 @@ export declare const mfaRoutes: <UserType>(config: MfaRouteProps<UserType>) => E
116
114
  };
117
115
  422: {
118
116
  type: "validation";
117
+ title: "Validation Error";
118
+ status: 422;
119
+ detail?: string;
119
120
  on: string;
120
- summary?: string;
121
- message?: string;
122
121
  found?: unknown;
123
122
  property?: string;
124
123
  expected?: string;
125
124
  };
126
125
  };
126
+ error: never;
127
127
  };
128
128
  };
129
129
  } & {
@@ -144,9 +144,10 @@ export declare const mfaRoutes: <UserType>(config: MfaRouteProps<UserType>) => E
144
144
  };
145
145
  422: {
146
146
  type: "validation";
147
+ title: "Validation Error";
148
+ status: 422;
149
+ detail?: string;
147
150
  on: string;
148
- summary?: string;
149
- message?: string;
150
151
  found?: unknown;
151
152
  property?: string;
152
153
  expected?: string;
@@ -154,6 +155,7 @@ export declare const mfaRoutes: <UserType>(config: MfaRouteProps<UserType>) => E
154
155
  429: string;
155
156
  503: string;
156
157
  };
158
+ error: never;
157
159
  };
158
160
  };
159
161
  } & {
@@ -173,9 +175,10 @@ export declare const mfaRoutes: <UserType>(config: MfaRouteProps<UserType>) => E
173
175
  };
174
176
  422: {
175
177
  type: "validation";
178
+ title: "Validation Error";
179
+ status: 422;
180
+ detail?: string;
176
181
  on: string;
177
- summary?: string;
178
- message?: string;
179
182
  found?: unknown;
180
183
  property?: string;
181
184
  expected?: string;
@@ -183,6 +186,7 @@ export declare const mfaRoutes: <UserType>(config: MfaRouteProps<UserType>) => E
183
186
  429: string;
184
187
  503: string;
185
188
  };
189
+ error: never;
186
190
  };
187
191
  };
188
192
  } & {
@@ -206,9 +210,10 @@ export declare const mfaRoutes: <UserType>(config: MfaRouteProps<UserType>) => E
206
210
  };
207
211
  422: {
208
212
  type: "validation";
213
+ title: "Validation Error";
214
+ status: 422;
215
+ detail?: string;
209
216
  on: string;
210
- summary?: string;
211
- message?: string;
212
217
  found?: unknown;
213
218
  property?: string;
214
219
  expected?: string;
@@ -216,24 +221,13 @@ export declare const mfaRoutes: <UserType>(config: MfaRouteProps<UserType>) => E
216
221
  429: string;
217
222
  503: string;
218
223
  };
224
+ error: never;
219
225
  };
220
226
  };
221
- }, {
222
- derive: {};
223
- resolve: {};
224
- schema: {};
225
- standaloneSchema: {};
226
- response: {};
227
- }, {
228
- derive: {};
229
- resolve: {};
230
- schema: {};
231
- standaloneSchema: {};
232
- response: {};
233
- } & {
227
+ }, import("elysia/types").DefaultEphemeral, {
234
228
  derive: {};
235
- resolve: {};
236
229
  schema: {};
237
- standaloneSchema: {};
230
+ schemas: {};
238
231
  response: {};
232
+ error: [];
239
233
  }>;
package/dist/mfa/sms.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { Elysia } from 'elysia';
2
1
  import { type VerificationCheckInput, type VerificationProvider } from '../verification/types';
3
2
  import { type MfaRouteProps, type SmsCodeMessage } from './config';
4
3
  import type { MfaEnrollment, MFAStore } from './types';
@@ -45,25 +44,17 @@ export declare const mapVerificationProviderError: (error: unknown) => {
45
44
  status: "Service Unavailable";
46
45
  } | undefined;
47
46
  export declare const maskPhone: (phone: string) => string;
48
- export declare const mfaSmsRoutes: <UserType>({ authSessionStore, getUserId, mfaStore, managementAuthMaxAgeMs, onMfaEnrolled, onSendSmsCode, verificationProvider, smsCodeLength, smsCodeTtlMs, smsMaxAttempts, smsResendCooldownMs, smsSetupRoute, smsVerifyRoute }: MfaRouteProps<UserType>) => Elysia<"", {
47
+ export declare const mfaSmsRoutes: <UserType>({ authSessionStore, getUserId, mfaStore, managementAuthMaxAgeMs, onMfaEnrolled, onSendSmsCode, verificationProvider, smsCodeLength, smsCodeTtlMs, smsMaxAttempts, smsResendCooldownMs, smsSetupRoute, smsVerifyRoute }: MfaRouteProps<UserType>) => import("elysia/types").AddRoute<"", "local", {
49
48
  decorator: {};
50
49
  store: {
51
50
  session: import("..").SessionRecord<UserType>;
52
51
  unregisteredSession: import("..").UnregisteredSessionRecord;
53
52
  };
54
53
  derive: {};
55
- resolve: {};
56
54
  }, {
57
55
  typebox: {};
58
- error: {};
59
- }, {
60
- schema: {};
61
- standaloneSchema: {};
62
- macro: {};
63
- macroFn: {};
64
- parser: {};
65
- response: {};
66
- }, {
56
+ error: [];
57
+ }, import("elysia/types").DefaultMetadata, {
67
58
  [x: string]: {
68
59
  post: {
69
60
  body: {
@@ -81,9 +72,10 @@ export declare const mfaSmsRoutes: <UserType>({ authSessionStore, getUserId, mfa
81
72
  };
82
73
  422: {
83
74
  type: "validation";
75
+ title: "Validation Error";
76
+ status: 422;
77
+ detail?: string;
84
78
  on: string;
85
- summary?: string;
86
- message?: string;
87
79
  found?: unknown;
88
80
  property?: string;
89
81
  expected?: string;
@@ -91,53 +83,189 @@ export declare const mfaSmsRoutes: <UserType>({ authSessionStore, getUserId, mfa
91
83
  429: string;
92
84
  503: string;
93
85
  };
86
+ error: never;
94
87
  };
95
88
  };
96
- } & {
97
- [x: string]: {
98
- post: {
99
- body: {
100
- code: string;
101
- };
102
- params: {};
103
- query: unknown;
104
- headers: unknown;
105
- response: {
106
- 400: string;
107
- 401: "Recent authentication required" | "Authentication required";
108
- 200: {
109
- readonly status: "enrolled";
110
- };
111
- 422: {
112
- type: "validation";
113
- on: string;
114
- summary?: string;
115
- message?: string;
116
- found?: unknown;
117
- property?: string;
118
- expected?: string;
119
- };
120
- 429: string;
121
- 503: string;
122
- };
123
- };
124
- };
125
- }, {
126
- derive: {};
127
- resolve: {};
128
- schema: {};
129
- standaloneSchema: {};
130
- response: {};
131
- }, {
132
- derive: {};
133
- resolve: {};
134
- schema: {};
135
- standaloneSchema: {};
136
- response: {};
137
- } & {
89
+ }, import("elysia/types").DefaultEphemeral, {
138
90
  derive: {};
139
- resolve: {};
140
91
  schema: {};
141
- standaloneSchema: {};
92
+ schemas: {};
142
93
  response: {};
143
- }>;
94
+ error: [];
95
+ }, "post", `/${string}`, import("elysia/types").IntersectIfObjectSchema<import("elysia").UnwrapRoute<{
96
+ body: import("typebox").TObject<{
97
+ code: import("typebox").TString;
98
+ }>;
99
+ cookie: import("elysia").TCookieObject<{
100
+ user_session_id: import("typebox").TOptional<import("typebox").TTemplateLiteral<"^.*-.*-.*-.*-.*$">>;
101
+ }>;
102
+ }, {}, `/${string}`>, import("elysia/types").MergeScopedSchemas<{}, {}, {}>>, {}, ({ body: { code }, cookie: { user_session_id }, status, store: { session } }: {
103
+ body: {
104
+ code: string;
105
+ };
106
+ query: Record<string, string | undefined>;
107
+ params: {};
108
+ headers: Record<string, string | undefined>;
109
+ cookie: Record<string, import("elysia").Cookie<unknown>> & {
110
+ user_session_id: import("elysia").Cookie<`${string}-${string}-${string}-${string}-${string}` | undefined>;
111
+ };
112
+ server: import("elysia").Server | null;
113
+ redirect: import("elysia").redirect;
114
+ set: {
115
+ headers: import("elysia").HTTPHeaders;
116
+ status?: number | keyof import("elysia").StatusMap;
117
+ cookie?: Record<string, import("elysia").BaseCookie>;
118
+ };
119
+ status: <const Code extends number | keyof import("elysia").StatusMap, const T = Code extends 400 | 401 | 403 | 501 | 204 | 404 | 200 | 100 | 101 | 102 | 103 | 201 | 202 | 203 | 205 | 206 | 207 | 208 | 300 | 301 | 302 | 303 | 304 | 307 | 308 | 402 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 428 | 429 | 431 | 451 | 500 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511 ? {
120
+ readonly 100: "Continue";
121
+ readonly 101: "Switching Protocols";
122
+ readonly 102: "Processing";
123
+ readonly 103: "Early Hints";
124
+ readonly 200: "OK";
125
+ readonly 201: "Created";
126
+ readonly 202: "Accepted";
127
+ readonly 203: "Non-Authoritative Information";
128
+ readonly 204: "No Content";
129
+ readonly 205: "Reset Content";
130
+ readonly 206: "Partial Content";
131
+ readonly 207: "Multi-Status";
132
+ readonly 208: "Already Reported";
133
+ readonly 300: "Multiple Choices";
134
+ readonly 301: "Moved Permanently";
135
+ readonly 302: "Found";
136
+ readonly 303: "See Other";
137
+ readonly 304: "Not Modified";
138
+ readonly 307: "Temporary Redirect";
139
+ readonly 308: "Permanent Redirect";
140
+ readonly 400: "Bad Request";
141
+ readonly 401: "Unauthorized";
142
+ readonly 402: "Payment Required";
143
+ readonly 403: "Forbidden";
144
+ readonly 404: "Not Found";
145
+ readonly 405: "Method Not Allowed";
146
+ readonly 406: "Not Acceptable";
147
+ readonly 407: "Proxy Authentication Required";
148
+ readonly 408: "Request Timeout";
149
+ readonly 409: "Conflict";
150
+ readonly 410: "Gone";
151
+ readonly 411: "Length Required";
152
+ readonly 412: "Precondition Failed";
153
+ readonly 413: "Payload Too Large";
154
+ readonly 414: "URI Too Long";
155
+ readonly 415: "Unsupported Media Type";
156
+ readonly 416: "Range Not Satisfiable";
157
+ readonly 417: "Expectation Failed";
158
+ readonly 418: "I'm a teapot";
159
+ readonly 420: "Enhance Your Calm";
160
+ readonly 421: "Misdirected Request";
161
+ readonly 422: "Unprocessable Content";
162
+ readonly 423: "Locked";
163
+ readonly 424: "Failed Dependency";
164
+ readonly 425: "Too Early";
165
+ readonly 426: "Upgrade Required";
166
+ readonly 428: "Precondition Required";
167
+ readonly 429: "Too Many Requests";
168
+ readonly 431: "Request Header Fields Too Large";
169
+ readonly 451: "Unavailable For Legal Reasons";
170
+ readonly 500: "Internal Server Error";
171
+ readonly 501: "Not Implemented";
172
+ readonly 502: "Bad Gateway";
173
+ readonly 503: "Service Unavailable";
174
+ readonly 504: "Gateway Timeout";
175
+ readonly 505: "HTTP Version Not Supported";
176
+ readonly 506: "Variant Also Negotiates";
177
+ readonly 507: "Insufficient Storage";
178
+ readonly 508: "Loop Detected";
179
+ readonly 510: "Not Extended";
180
+ readonly 511: "Network Authentication Required";
181
+ }[Code] : Code>(code: Code, response?: T) => import("elysia").ElysiaStatus<Code, T, Code extends "Continue" | "Switching Protocols" | "Processing" | "Early Hints" | "OK" | "Created" | "Accepted" | "Non-Authoritative Information" | "No Content" | "Reset Content" | "Partial Content" | "Multi-Status" | "Already Reported" | "Multiple Choices" | "Moved Permanently" | "Found" | "See Other" | "Not Modified" | "Temporary Redirect" | "Permanent Redirect" | "Bad Request" | "Unauthorized" | "Payment Required" | "Forbidden" | "Not Found" | "Method Not Allowed" | "Not Acceptable" | "Proxy Authentication Required" | "Request Timeout" | "Conflict" | "Gone" | "Length Required" | "Precondition Failed" | "Payload Too Large" | "URI Too Long" | "Unsupported Media Type" | "Range Not Satisfiable" | "Expectation Failed" | "I'm a teapot" | "Enhance Your Calm" | "Misdirected Request" | "Unprocessable Content" | "Locked" | "Failed Dependency" | "Too Early" | "Upgrade Required" | "Precondition Required" | "Too Many Requests" | "Request Header Fields Too Large" | "Unavailable For Legal Reasons" | "Internal Server Error" | "Not Implemented" | "Bad Gateway" | "Service Unavailable" | "Gateway Timeout" | "HTTP Version Not Supported" | "Variant Also Negotiates" | "Insufficient Storage" | "Loop Detected" | "Not Extended" | "Network Authentication Required" ? {
182
+ readonly Continue: 100;
183
+ readonly "Switching Protocols": 101;
184
+ readonly Processing: 102;
185
+ readonly "Early Hints": 103;
186
+ readonly OK: 200;
187
+ readonly Created: 201;
188
+ readonly Accepted: 202;
189
+ readonly "Non-Authoritative Information": 203;
190
+ readonly "No Content": 204;
191
+ readonly "Reset Content": 205;
192
+ readonly "Partial Content": 206;
193
+ readonly "Multi-Status": 207;
194
+ readonly "Already Reported": 208;
195
+ readonly "Multiple Choices": 300;
196
+ readonly "Moved Permanently": 301;
197
+ readonly Found: 302;
198
+ readonly "See Other": 303;
199
+ readonly "Not Modified": 304;
200
+ readonly "Temporary Redirect": 307;
201
+ readonly "Permanent Redirect": 308;
202
+ readonly "Bad Request": 400;
203
+ readonly Unauthorized: 401;
204
+ readonly "Payment Required": 402;
205
+ readonly Forbidden: 403;
206
+ readonly "Not Found": 404;
207
+ readonly "Method Not Allowed": 405;
208
+ readonly "Not Acceptable": 406;
209
+ readonly "Proxy Authentication Required": 407;
210
+ readonly "Request Timeout": 408;
211
+ readonly Conflict: 409;
212
+ readonly Gone: 410;
213
+ readonly "Length Required": 411;
214
+ readonly "Precondition Failed": 412;
215
+ readonly "Payload Too Large": 413;
216
+ readonly "URI Too Long": 414;
217
+ readonly "Unsupported Media Type": 415;
218
+ readonly "Range Not Satisfiable": 416;
219
+ readonly "Expectation Failed": 417;
220
+ readonly "I'm a teapot": 418;
221
+ readonly "Enhance Your Calm": 420;
222
+ readonly "Misdirected Request": 421;
223
+ readonly "Unprocessable Content": 422;
224
+ readonly Locked: 423;
225
+ readonly "Failed Dependency": 424;
226
+ readonly "Too Early": 425;
227
+ readonly "Upgrade Required": 426;
228
+ readonly "Precondition Required": 428;
229
+ readonly "Too Many Requests": 429;
230
+ readonly "Request Header Fields Too Large": 431;
231
+ readonly "Unavailable For Legal Reasons": 451;
232
+ readonly "Internal Server Error": 500;
233
+ readonly "Not Implemented": 501;
234
+ readonly "Bad Gateway": 502;
235
+ readonly "Service Unavailable": 503;
236
+ readonly "Gateway Timeout": 504;
237
+ readonly "HTTP Version Not Supported": 505;
238
+ readonly "Variant Also Negotiates": 506;
239
+ readonly "Insufficient Storage": 507;
240
+ readonly "Loop Detected": 508;
241
+ readonly "Not Extended": 510;
242
+ readonly "Network Authentication Required": 511;
243
+ }[Code] : Code>;
244
+ defer: (fn: import("elysia/types").AfterResponseHandler<NoInfer<import("elysia/types").IntersectIfObjectSchema<import("elysia").UnwrapRoute<{
245
+ body: import("typebox").TObject<{
246
+ code: import("typebox").TString;
247
+ }>;
248
+ cookie: import("elysia").TCookieObject<{
249
+ user_session_id: import("typebox").TOptional<import("typebox").TTemplateLiteral<"^.*-.*-.*-.*-.*$">>;
250
+ }>;
251
+ }, {}, `/${string}`>, import("elysia/types").MergeScopedSchemas<{}, {}, {}>>>, NoInfer<{
252
+ decorator: {};
253
+ store: {
254
+ session: import("..").SessionRecord<UserType>;
255
+ unregisteredSession: import("..").UnregisteredSessionRecord;
256
+ };
257
+ derive: {};
258
+ } & {
259
+ derive: {};
260
+ }>>) => import("elysia/types").MaybePromise<void>;
261
+ readonly path: string;
262
+ route?: string | undefined;
263
+ rid?: string | undefined;
264
+ request: Request;
265
+ store: {
266
+ session: import("..").SessionRecord<UserType>;
267
+ unregisteredSession: import("..").UnregisteredSessionRecord;
268
+ };
269
+ }) => Promise<import("elysia").ElysiaStatus<"Unauthorized", "Recent authentication required", 401> | import("elysia").ElysiaStatus<"Unauthorized", "Authentication required", 401> | import("elysia").ElysiaStatus<"Bad Request" | "Too Many Requests" | "Service Unavailable", string, 400 | 429 | 503> | import("elysia").ElysiaStatus<"Bad Request", "No SMS enrollment in progress", 400> | import("elysia").ElysiaStatus<"Bad Request", "SMS code expired", 400> | import("elysia").ElysiaStatus<"Too Many Requests", "Too many attempts", 429> | import("elysia").ElysiaStatus<"Bad Request" | "Too Many Requests", "SMS code expired" | "Invalid SMS code", 400 | 429> | import("elysia").ElysiaStatus<"Bad Request", "SMS challenge is no longer active", 400> | import("elysia").ElysiaStatus<"OK", {
270
+ readonly status: "enrolled";
271
+ }, 200>>>;