@seamless-auth/types 0.1.3 → 0.3.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 (79) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +54 -0
  3. package/dist/index.d.ts +15 -2
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +15 -2
  6. package/dist/index.js.map +1 -1
  7. package/dist/schemas/admin/schema.d.ts +99 -0
  8. package/dist/schemas/admin/schema.d.ts.map +1 -0
  9. package/dist/schemas/admin/schema.js +38 -0
  10. package/dist/schemas/admin/schema.js.map +1 -0
  11. package/dist/schemas/auth/auth.schema.d.ts +158 -0
  12. package/dist/schemas/auth/auth.schema.d.ts.map +1 -1
  13. package/dist/schemas/auth/auth.schema.js +82 -0
  14. package/dist/schemas/auth/auth.schema.js.map +1 -1
  15. package/dist/schemas/authEvent/schema.d.ts +251 -0
  16. package/dist/schemas/authEvent/schema.d.ts.map +1 -1
  17. package/dist/schemas/authEvent/schema.js +93 -0
  18. package/dist/schemas/authEvent/schema.js.map +1 -1
  19. package/dist/schemas/common/schema.d.ts +23 -0
  20. package/dist/schemas/common/schema.d.ts.map +1 -0
  21. package/dist/schemas/common/schema.js +19 -0
  22. package/dist/schemas/common/schema.js.map +1 -0
  23. package/dist/schemas/credential/schema.d.ts +86 -0
  24. package/dist/schemas/credential/schema.d.ts.map +1 -1
  25. package/dist/schemas/credential/schema.js +30 -2
  26. package/dist/schemas/credential/schema.js.map +1 -1
  27. package/dist/schemas/me/schema.d.ts +104 -0
  28. package/dist/schemas/me/schema.d.ts.map +1 -0
  29. package/dist/schemas/me/schema.js +24 -0
  30. package/dist/schemas/me/schema.js.map +1 -0
  31. package/dist/schemas/messaging/schema.d.ts +73 -0
  32. package/dist/schemas/messaging/schema.d.ts.map +1 -0
  33. package/dist/schemas/messaging/schema.js +63 -0
  34. package/dist/schemas/messaging/schema.js.map +1 -0
  35. package/dist/schemas/metrics/schema.d.ts +86 -0
  36. package/dist/schemas/metrics/schema.d.ts.map +1 -0
  37. package/dist/schemas/metrics/schema.js +79 -0
  38. package/dist/schemas/metrics/schema.js.map +1 -0
  39. package/dist/schemas/oauth/schema.d.ts +68 -0
  40. package/dist/schemas/oauth/schema.d.ts.map +1 -0
  41. package/dist/schemas/oauth/schema.js +43 -0
  42. package/dist/schemas/oauth/schema.js.map +1 -0
  43. package/dist/schemas/organization/schema.d.ts +228 -0
  44. package/dist/schemas/organization/schema.d.ts.map +1 -0
  45. package/dist/schemas/organization/schema.js +90 -0
  46. package/dist/schemas/organization/schema.js.map +1 -0
  47. package/dist/schemas/role/matching.d.ts +20 -0
  48. package/dist/schemas/role/matching.d.ts.map +1 -0
  49. package/dist/schemas/role/matching.js +59 -0
  50. package/dist/schemas/role/matching.js.map +1 -0
  51. package/dist/schemas/role/schema.d.ts +7 -0
  52. package/dist/schemas/role/schema.d.ts.map +1 -0
  53. package/dist/schemas/role/schema.js +7 -0
  54. package/dist/schemas/role/schema.js.map +1 -0
  55. package/dist/schemas/session/schema.d.ts +17 -0
  56. package/dist/schemas/session/schema.d.ts.map +1 -1
  57. package/dist/schemas/session/schema.js +7 -0
  58. package/dist/schemas/session/schema.js.map +1 -1
  59. package/dist/schemas/stepUp/schema.d.ts +31 -0
  60. package/dist/schemas/stepUp/schema.d.ts.map +1 -0
  61. package/dist/schemas/stepUp/schema.js +19 -0
  62. package/dist/schemas/stepUp/schema.js.map +1 -0
  63. package/dist/schemas/systemConfig/schema.d.ts +368 -0
  64. package/dist/schemas/systemConfig/schema.d.ts.map +1 -0
  65. package/dist/schemas/systemConfig/schema.js +141 -0
  66. package/dist/schemas/systemConfig/schema.js.map +1 -0
  67. package/dist/schemas/totp/schema.d.ts +26 -0
  68. package/dist/schemas/totp/schema.d.ts.map +1 -0
  69. package/dist/schemas/totp/schema.js +23 -0
  70. package/dist/schemas/totp/schema.js.map +1 -0
  71. package/dist/schemas/user/schema.d.ts +54 -3
  72. package/dist/schemas/user/schema.d.ts.map +1 -1
  73. package/dist/schemas/user/schema.js +33 -6
  74. package/dist/schemas/user/schema.js.map +1 -1
  75. package/dist/schemas/webauthn/schema.d.ts +61 -0
  76. package/dist/schemas/webauthn/schema.d.ts.map +1 -0
  77. package/dist/schemas/webauthn/schema.js +58 -0
  78. package/dist/schemas/webauthn/schema.js.map +1 -0
  79. package/package.json +32 -7
@@ -0,0 +1,368 @@
1
+ import { z } from 'zod';
2
+ export declare const LoginMethodSchema: z.ZodEnum<{
3
+ passkey: "passkey";
4
+ magic_link: "magic_link";
5
+ email_otp: "email_otp";
6
+ phone_otp: "phone_otp";
7
+ oauth: "oauth";
8
+ }>;
9
+ export type LoginMethod = z.infer<typeof LoginMethodSchema>;
10
+ export declare const OAuthProviderIdSchema: z.ZodString;
11
+ export declare const OAuthProviderConfigSchema: z.ZodObject<{
12
+ id: z.ZodString;
13
+ name: z.ZodString;
14
+ enabled: z.ZodDefault<z.ZodBoolean>;
15
+ clientId: z.ZodString;
16
+ clientSecretEnv: z.ZodString;
17
+ authorizationUrl: z.ZodURL;
18
+ tokenUrl: z.ZodURL;
19
+ userInfoUrl: z.ZodURL;
20
+ scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
21
+ redirectUri: z.ZodOptional<z.ZodURL>;
22
+ redirectUris: z.ZodDefault<z.ZodArray<z.ZodURL>>;
23
+ subjectJsonPath: z.ZodDefault<z.ZodString>;
24
+ emailJsonPath: z.ZodDefault<z.ZodString>;
25
+ emailVerifiedJsonPath: z.ZodDefault<z.ZodString>;
26
+ nameJsonPath: z.ZodOptional<z.ZodString>;
27
+ allowSignup: z.ZodDefault<z.ZodBoolean>;
28
+ accountLinking: z.ZodDefault<z.ZodEnum<{
29
+ email: "email";
30
+ disabled: "disabled";
31
+ }>>;
32
+ requireEmailVerified: z.ZodDefault<z.ZodBoolean>;
33
+ pkce: z.ZodOptional<z.ZodBoolean>;
34
+ }, z.core.$strip>;
35
+ export type OAuthProviderConfig = z.infer<typeof OAuthProviderConfigSchema>;
36
+ export declare const LockoutPolicySchema: z.ZodObject<{
37
+ enabled: z.ZodDefault<z.ZodBoolean>;
38
+ maxFailures: z.ZodDefault<z.ZodNumber>;
39
+ windowSeconds: z.ZodDefault<z.ZodNumber>;
40
+ lockoutSeconds: z.ZodDefault<z.ZodNumber>;
41
+ }, z.core.$strip>;
42
+ export type LockoutPolicy = z.infer<typeof LockoutPolicySchema>;
43
+ export declare const DefaultLockoutPolicy: {
44
+ readonly enabled: true;
45
+ readonly maxFailures: 10;
46
+ readonly windowSeconds: number;
47
+ readonly lockoutSeconds: number;
48
+ };
49
+ export declare const SystemConfigSchema: z.ZodObject<{
50
+ app_name: z.ZodString;
51
+ default_roles: z.ZodArray<z.ZodString>;
52
+ available_roles: z.ZodArray<z.ZodString>;
53
+ login_methods: z.ZodArray<z.ZodEnum<{
54
+ passkey: "passkey";
55
+ magic_link: "magic_link";
56
+ email_otp: "email_otp";
57
+ phone_otp: "phone_otp";
58
+ oauth: "oauth";
59
+ }>>;
60
+ passkey_login_fallback_enabled: z.ZodBoolean;
61
+ oauth_providers: z.ZodDefault<z.ZodArray<z.ZodObject<{
62
+ id: z.ZodString;
63
+ name: z.ZodString;
64
+ enabled: z.ZodDefault<z.ZodBoolean>;
65
+ clientId: z.ZodString;
66
+ clientSecretEnv: z.ZodString;
67
+ authorizationUrl: z.ZodURL;
68
+ tokenUrl: z.ZodURL;
69
+ userInfoUrl: z.ZodURL;
70
+ scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
71
+ redirectUri: z.ZodOptional<z.ZodURL>;
72
+ redirectUris: z.ZodDefault<z.ZodArray<z.ZodURL>>;
73
+ subjectJsonPath: z.ZodDefault<z.ZodString>;
74
+ emailJsonPath: z.ZodDefault<z.ZodString>;
75
+ emailVerifiedJsonPath: z.ZodDefault<z.ZodString>;
76
+ nameJsonPath: z.ZodOptional<z.ZodString>;
77
+ allowSignup: z.ZodDefault<z.ZodBoolean>;
78
+ accountLinking: z.ZodDefault<z.ZodEnum<{
79
+ email: "email";
80
+ disabled: "disabled";
81
+ }>>;
82
+ requireEmailVerified: z.ZodDefault<z.ZodBoolean>;
83
+ pkce: z.ZodOptional<z.ZodBoolean>;
84
+ }, z.core.$strip>>>;
85
+ lockout_policy: z.ZodDefault<z.ZodObject<{
86
+ enabled: z.ZodDefault<z.ZodBoolean>;
87
+ maxFailures: z.ZodDefault<z.ZodNumber>;
88
+ windowSeconds: z.ZodDefault<z.ZodNumber>;
89
+ lockoutSeconds: z.ZodDefault<z.ZodNumber>;
90
+ }, z.core.$strip>>;
91
+ access_token_ttl: z.ZodString;
92
+ refresh_token_ttl: z.ZodString;
93
+ rate_limit: z.ZodNumber;
94
+ delay_after: z.ZodNumber;
95
+ rpid: z.ZodString;
96
+ origins: z.ZodArray<z.ZodURL>;
97
+ frontend_url: z.ZodOptional<z.ZodURL>;
98
+ }, z.core.$strip>;
99
+ export type SystemConfig = z.infer<typeof SystemConfigSchema>;
100
+ export declare const SystemConfigPatchSchema: z.ZodObject<{
101
+ app_name: z.ZodOptional<z.ZodString>;
102
+ default_roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
103
+ available_roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
104
+ login_methods: z.ZodOptional<z.ZodArray<z.ZodEnum<{
105
+ passkey: "passkey";
106
+ magic_link: "magic_link";
107
+ email_otp: "email_otp";
108
+ phone_otp: "phone_otp";
109
+ oauth: "oauth";
110
+ }>>>;
111
+ passkey_login_fallback_enabled: z.ZodOptional<z.ZodBoolean>;
112
+ oauth_providers: z.ZodOptional<z.ZodArray<z.ZodObject<{
113
+ id: z.ZodString;
114
+ name: z.ZodString;
115
+ enabled: z.ZodDefault<z.ZodBoolean>;
116
+ clientId: z.ZodString;
117
+ clientSecretEnv: z.ZodString;
118
+ authorizationUrl: z.ZodURL;
119
+ tokenUrl: z.ZodURL;
120
+ userInfoUrl: z.ZodURL;
121
+ scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
122
+ redirectUri: z.ZodOptional<z.ZodURL>;
123
+ redirectUris: z.ZodDefault<z.ZodArray<z.ZodURL>>;
124
+ subjectJsonPath: z.ZodDefault<z.ZodString>;
125
+ emailJsonPath: z.ZodDefault<z.ZodString>;
126
+ emailVerifiedJsonPath: z.ZodDefault<z.ZodString>;
127
+ nameJsonPath: z.ZodOptional<z.ZodString>;
128
+ allowSignup: z.ZodDefault<z.ZodBoolean>;
129
+ accountLinking: z.ZodDefault<z.ZodEnum<{
130
+ email: "email";
131
+ disabled: "disabled";
132
+ }>>;
133
+ requireEmailVerified: z.ZodDefault<z.ZodBoolean>;
134
+ pkce: z.ZodOptional<z.ZodBoolean>;
135
+ }, z.core.$strip>>>;
136
+ lockout_policy: z.ZodOptional<z.ZodObject<{
137
+ enabled: z.ZodDefault<z.ZodBoolean>;
138
+ maxFailures: z.ZodDefault<z.ZodNumber>;
139
+ windowSeconds: z.ZodDefault<z.ZodNumber>;
140
+ lockoutSeconds: z.ZodDefault<z.ZodNumber>;
141
+ }, z.core.$strip>>;
142
+ access_token_ttl: z.ZodOptional<z.ZodString>;
143
+ refresh_token_ttl: z.ZodOptional<z.ZodString>;
144
+ rate_limit: z.ZodOptional<z.ZodNumber>;
145
+ delay_after: z.ZodOptional<z.ZodNumber>;
146
+ rpid: z.ZodOptional<z.ZodString>;
147
+ origins: z.ZodOptional<z.ZodArray<z.ZodURL>>;
148
+ }, z.core.$strict>;
149
+ export type SystemConfigPatch = z.infer<typeof SystemConfigPatchSchema>;
150
+ /**
151
+ * A patch schema bound to the config currently stored, so role edits can be
152
+ * checked against the merged result rather than the patch alone.
153
+ */
154
+ export declare function createPatchSystemConfigSchema(existing: SystemConfig): z.ZodObject<{
155
+ app_name: z.ZodOptional<z.ZodString>;
156
+ default_roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
157
+ available_roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
158
+ login_methods: z.ZodOptional<z.ZodArray<z.ZodEnum<{
159
+ passkey: "passkey";
160
+ magic_link: "magic_link";
161
+ email_otp: "email_otp";
162
+ phone_otp: "phone_otp";
163
+ oauth: "oauth";
164
+ }>>>;
165
+ passkey_login_fallback_enabled: z.ZodOptional<z.ZodBoolean>;
166
+ oauth_providers: z.ZodOptional<z.ZodArray<z.ZodObject<{
167
+ id: z.ZodString;
168
+ name: z.ZodString;
169
+ enabled: z.ZodDefault<z.ZodBoolean>;
170
+ clientId: z.ZodString;
171
+ clientSecretEnv: z.ZodString;
172
+ authorizationUrl: z.ZodURL;
173
+ tokenUrl: z.ZodURL;
174
+ userInfoUrl: z.ZodURL;
175
+ scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
176
+ redirectUri: z.ZodOptional<z.ZodURL>;
177
+ redirectUris: z.ZodDefault<z.ZodArray<z.ZodURL>>;
178
+ subjectJsonPath: z.ZodDefault<z.ZodString>;
179
+ emailJsonPath: z.ZodDefault<z.ZodString>;
180
+ emailVerifiedJsonPath: z.ZodDefault<z.ZodString>;
181
+ nameJsonPath: z.ZodOptional<z.ZodString>;
182
+ allowSignup: z.ZodDefault<z.ZodBoolean>;
183
+ accountLinking: z.ZodDefault<z.ZodEnum<{
184
+ email: "email";
185
+ disabled: "disabled";
186
+ }>>;
187
+ requireEmailVerified: z.ZodDefault<z.ZodBoolean>;
188
+ pkce: z.ZodOptional<z.ZodBoolean>;
189
+ }, z.core.$strip>>>;
190
+ lockout_policy: z.ZodOptional<z.ZodObject<{
191
+ enabled: z.ZodDefault<z.ZodBoolean>;
192
+ maxFailures: z.ZodDefault<z.ZodNumber>;
193
+ windowSeconds: z.ZodDefault<z.ZodNumber>;
194
+ lockoutSeconds: z.ZodDefault<z.ZodNumber>;
195
+ }, z.core.$strip>>;
196
+ access_token_ttl: z.ZodOptional<z.ZodString>;
197
+ refresh_token_ttl: z.ZodOptional<z.ZodString>;
198
+ rate_limit: z.ZodOptional<z.ZodNumber>;
199
+ delay_after: z.ZodOptional<z.ZodNumber>;
200
+ rpid: z.ZodOptional<z.ZodString>;
201
+ origins: z.ZodOptional<z.ZodArray<z.ZodURL>>;
202
+ }, z.core.$strict>;
203
+ export declare const OAuthProviderCreateSchema: z.ZodObject<{
204
+ id: z.ZodString;
205
+ name: z.ZodString;
206
+ enabled: z.ZodDefault<z.ZodBoolean>;
207
+ clientId: z.ZodString;
208
+ clientSecretEnv: z.ZodString;
209
+ authorizationUrl: z.ZodURL;
210
+ tokenUrl: z.ZodURL;
211
+ userInfoUrl: z.ZodURL;
212
+ scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
213
+ redirectUri: z.ZodOptional<z.ZodURL>;
214
+ redirectUris: z.ZodDefault<z.ZodArray<z.ZodURL>>;
215
+ subjectJsonPath: z.ZodDefault<z.ZodString>;
216
+ emailJsonPath: z.ZodDefault<z.ZodString>;
217
+ emailVerifiedJsonPath: z.ZodDefault<z.ZodString>;
218
+ nameJsonPath: z.ZodOptional<z.ZodString>;
219
+ allowSignup: z.ZodDefault<z.ZodBoolean>;
220
+ accountLinking: z.ZodDefault<z.ZodEnum<{
221
+ email: "email";
222
+ disabled: "disabled";
223
+ }>>;
224
+ requireEmailVerified: z.ZodDefault<z.ZodBoolean>;
225
+ pkce: z.ZodOptional<z.ZodBoolean>;
226
+ }, z.core.$strip>;
227
+ export declare const OAuthProviderIdParamSchema: z.ZodObject<{
228
+ id: z.ZodString;
229
+ }, z.core.$strip>;
230
+ export declare const OAuthProviderUpdateSchema: z.ZodObject<{
231
+ name: z.ZodOptional<z.ZodString>;
232
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
233
+ clientId: z.ZodOptional<z.ZodString>;
234
+ clientSecretEnv: z.ZodOptional<z.ZodString>;
235
+ authorizationUrl: z.ZodOptional<z.ZodURL>;
236
+ tokenUrl: z.ZodOptional<z.ZodURL>;
237
+ userInfoUrl: z.ZodOptional<z.ZodURL>;
238
+ scopes: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
239
+ redirectUri: z.ZodOptional<z.ZodOptional<z.ZodURL>>;
240
+ redirectUris: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodURL>>>;
241
+ subjectJsonPath: z.ZodOptional<z.ZodDefault<z.ZodString>>;
242
+ emailJsonPath: z.ZodOptional<z.ZodDefault<z.ZodString>>;
243
+ emailVerifiedJsonPath: z.ZodOptional<z.ZodDefault<z.ZodString>>;
244
+ nameJsonPath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
245
+ allowSignup: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
246
+ accountLinking: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
247
+ email: "email";
248
+ disabled: "disabled";
249
+ }>>>;
250
+ requireEmailVerified: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
251
+ pkce: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
252
+ }, z.core.$strict>;
253
+ export type OAuthProviderUpdate = z.infer<typeof OAuthProviderUpdateSchema>;
254
+ export declare const OAuthProvidersListResponseSchema: z.ZodObject<{
255
+ providers: z.ZodArray<z.ZodObject<{
256
+ id: z.ZodString;
257
+ name: z.ZodString;
258
+ enabled: z.ZodDefault<z.ZodBoolean>;
259
+ clientId: z.ZodString;
260
+ clientSecretEnv: z.ZodString;
261
+ authorizationUrl: z.ZodURL;
262
+ tokenUrl: z.ZodURL;
263
+ userInfoUrl: z.ZodURL;
264
+ scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
265
+ redirectUri: z.ZodOptional<z.ZodURL>;
266
+ redirectUris: z.ZodDefault<z.ZodArray<z.ZodURL>>;
267
+ subjectJsonPath: z.ZodDefault<z.ZodString>;
268
+ emailJsonPath: z.ZodDefault<z.ZodString>;
269
+ emailVerifiedJsonPath: z.ZodDefault<z.ZodString>;
270
+ nameJsonPath: z.ZodOptional<z.ZodString>;
271
+ allowSignup: z.ZodDefault<z.ZodBoolean>;
272
+ accountLinking: z.ZodDefault<z.ZodEnum<{
273
+ email: "email";
274
+ disabled: "disabled";
275
+ }>>;
276
+ requireEmailVerified: z.ZodDefault<z.ZodBoolean>;
277
+ pkce: z.ZodOptional<z.ZodBoolean>;
278
+ }, z.core.$strip>>;
279
+ }, z.core.$strip>;
280
+ export declare const OAuthProviderResponseSchema: z.ZodObject<{
281
+ provider: z.ZodObject<{
282
+ id: z.ZodString;
283
+ name: z.ZodString;
284
+ enabled: z.ZodDefault<z.ZodBoolean>;
285
+ clientId: z.ZodString;
286
+ clientSecretEnv: z.ZodString;
287
+ authorizationUrl: z.ZodURL;
288
+ tokenUrl: z.ZodURL;
289
+ userInfoUrl: z.ZodURL;
290
+ scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
291
+ redirectUri: z.ZodOptional<z.ZodURL>;
292
+ redirectUris: z.ZodDefault<z.ZodArray<z.ZodURL>>;
293
+ subjectJsonPath: z.ZodDefault<z.ZodString>;
294
+ emailJsonPath: z.ZodDefault<z.ZodString>;
295
+ emailVerifiedJsonPath: z.ZodDefault<z.ZodString>;
296
+ nameJsonPath: z.ZodOptional<z.ZodString>;
297
+ allowSignup: z.ZodDefault<z.ZodBoolean>;
298
+ accountLinking: z.ZodDefault<z.ZodEnum<{
299
+ email: "email";
300
+ disabled: "disabled";
301
+ }>>;
302
+ requireEmailVerified: z.ZodDefault<z.ZodBoolean>;
303
+ pkce: z.ZodOptional<z.ZodBoolean>;
304
+ }, z.core.$strip>;
305
+ }, z.core.$strip>;
306
+ export declare const OAuthProviderDeletedResponseSchema: z.ZodObject<{
307
+ success: z.ZodLiteral<true>;
308
+ id: z.ZodString;
309
+ }, z.core.$strip>;
310
+ export declare const GetSystemConfigResponseSchema: z.ZodObject<{
311
+ app_name: z.ZodString;
312
+ default_roles: z.ZodArray<z.ZodString>;
313
+ available_roles: z.ZodArray<z.ZodString>;
314
+ login_methods: z.ZodArray<z.ZodEnum<{
315
+ passkey: "passkey";
316
+ magic_link: "magic_link";
317
+ email_otp: "email_otp";
318
+ phone_otp: "phone_otp";
319
+ oauth: "oauth";
320
+ }>>;
321
+ passkey_login_fallback_enabled: z.ZodBoolean;
322
+ oauth_providers: z.ZodDefault<z.ZodArray<z.ZodObject<{
323
+ id: z.ZodString;
324
+ name: z.ZodString;
325
+ enabled: z.ZodDefault<z.ZodBoolean>;
326
+ clientId: z.ZodString;
327
+ clientSecretEnv: z.ZodString;
328
+ authorizationUrl: z.ZodURL;
329
+ tokenUrl: z.ZodURL;
330
+ userInfoUrl: z.ZodURL;
331
+ scopes: z.ZodDefault<z.ZodArray<z.ZodString>>;
332
+ redirectUri: z.ZodOptional<z.ZodURL>;
333
+ redirectUris: z.ZodDefault<z.ZodArray<z.ZodURL>>;
334
+ subjectJsonPath: z.ZodDefault<z.ZodString>;
335
+ emailJsonPath: z.ZodDefault<z.ZodString>;
336
+ emailVerifiedJsonPath: z.ZodDefault<z.ZodString>;
337
+ nameJsonPath: z.ZodOptional<z.ZodString>;
338
+ allowSignup: z.ZodDefault<z.ZodBoolean>;
339
+ accountLinking: z.ZodDefault<z.ZodEnum<{
340
+ email: "email";
341
+ disabled: "disabled";
342
+ }>>;
343
+ requireEmailVerified: z.ZodDefault<z.ZodBoolean>;
344
+ pkce: z.ZodOptional<z.ZodBoolean>;
345
+ }, z.core.$strip>>>;
346
+ lockout_policy: z.ZodDefault<z.ZodObject<{
347
+ enabled: z.ZodDefault<z.ZodBoolean>;
348
+ maxFailures: z.ZodDefault<z.ZodNumber>;
349
+ windowSeconds: z.ZodDefault<z.ZodNumber>;
350
+ lockoutSeconds: z.ZodDefault<z.ZodNumber>;
351
+ }, z.core.$strip>>;
352
+ access_token_ttl: z.ZodString;
353
+ refresh_token_ttl: z.ZodString;
354
+ rate_limit: z.ZodNumber;
355
+ delay_after: z.ZodNumber;
356
+ rpid: z.ZodString;
357
+ origins: z.ZodArray<z.ZodURL>;
358
+ frontend_url: z.ZodOptional<z.ZodURL>;
359
+ }, z.core.$strip>;
360
+ export declare const UpdateSystemConfigResponseSchema: z.ZodObject<{
361
+ success: z.ZodBoolean;
362
+ updatedKeys: z.ZodArray<z.ZodString>;
363
+ }, z.core.$strip>;
364
+ export type UpdateSystemConfigResponse = z.infer<typeof UpdateSystemConfigResponseSchema>;
365
+ export declare const AvailableRolesResponseSchema: z.ZodObject<{
366
+ roles: z.ZodArray<z.ZodString>;
367
+ }, z.core.$strip>;
368
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/systemConfig/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,iBAAiB;;;;;;EAM5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,qBAAqB,aAAwC,CAAC;AAE3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;iBAsBpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,mBAAmB;;;;;iBAa9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,oBAAoB;;;;;CAKvB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmB7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAiBzB,CAAC;AAEZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAyBnE;AAED,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;iBAA4B,CAAC;AAEnE,eAAO,MAAM,0BAA0B;;iBAErC,CAAC;AAKH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;kBAE3B,CAAC;AAEZ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;iBAE3C,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;iBAEtC,CAAC;AAEH,eAAO,MAAM,kCAAkC;;;iBAG7C,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAqB,CAAC;AAEhE,eAAO,MAAM,gCAAgC;;;iBAG3C,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAE1F,eAAO,MAAM,4BAA4B;;iBAEvC,CAAC"}
@@ -0,0 +1,141 @@
1
+ import { z } from 'zod';
2
+ import { RoleNameSchema } from '../role/schema.js';
3
+ export const LoginMethodSchema = z.enum([
4
+ 'passkey',
5
+ 'magic_link',
6
+ 'email_otp',
7
+ 'phone_otp',
8
+ 'oauth',
9
+ ]);
10
+ export const OAuthProviderIdSchema = z.string().regex(/^[a-z0-9-]{2,40}$/);
11
+ export const OAuthProviderConfigSchema = z.object({
12
+ id: OAuthProviderIdSchema,
13
+ name: z.string().trim().min(1).max(80),
14
+ enabled: z.boolean().default(true),
15
+ clientId: z.string().trim().min(1),
16
+ // The secret itself never lives in config; this names the environment
17
+ // variable the server reads it from.
18
+ clientSecretEnv: z.string().trim().min(1),
19
+ authorizationUrl: z.url(),
20
+ tokenUrl: z.url(),
21
+ userInfoUrl: z.url(),
22
+ scopes: z.array(z.string().trim().min(1)).default([]),
23
+ redirectUri: z.url().optional(),
24
+ redirectUris: z.array(z.url()).default([]),
25
+ subjectJsonPath: z.string().trim().min(1).default('sub'),
26
+ emailJsonPath: z.string().trim().min(1).default('email'),
27
+ emailVerifiedJsonPath: z.string().trim().min(1).default('email_verified'),
28
+ nameJsonPath: z.string().trim().min(1).optional(),
29
+ allowSignup: z.boolean().default(true),
30
+ accountLinking: z.enum(['email', 'disabled']).default('email'),
31
+ requireEmailVerified: z.boolean().default(false),
32
+ pkce: z.boolean().optional(),
33
+ });
34
+ export const LockoutPolicySchema = z.object({
35
+ enabled: z.boolean().default(true),
36
+ maxFailures: z.number().int().positive().default(10),
37
+ windowSeconds: z
38
+ .number()
39
+ .int()
40
+ .positive()
41
+ .default(15 * 60),
42
+ lockoutSeconds: z
43
+ .number()
44
+ .int()
45
+ .positive()
46
+ .default(15 * 60),
47
+ });
48
+ export const DefaultLockoutPolicy = {
49
+ enabled: true,
50
+ maxFailures: 10,
51
+ windowSeconds: 15 * 60,
52
+ lockoutSeconds: 15 * 60,
53
+ };
54
+ export const SystemConfigSchema = z.object({
55
+ app_name: z.string().min(3),
56
+ default_roles: z.array(RoleNameSchema).min(1),
57
+ available_roles: z.array(RoleNameSchema).min(1),
58
+ login_methods: z.array(LoginMethodSchema).min(1),
59
+ passkey_login_fallback_enabled: z.boolean(),
60
+ oauth_providers: z.array(OAuthProviderConfigSchema).default([]),
61
+ lockout_policy: LockoutPolicySchema.default(DefaultLockoutPolicy),
62
+ access_token_ttl: z.string().regex(/^\d+[smhd]$/),
63
+ refresh_token_ttl: z.string().regex(/^\d+[smhd]$/),
64
+ rate_limit: z.number().int().positive(),
65
+ delay_after: z.number().int().nonnegative(),
66
+ rpid: z.string().min(1),
67
+ origins: z.array(z.url()).min(1),
68
+ frontend_url: z.url().optional(),
69
+ });
70
+ export const SystemConfigPatchSchema = z
71
+ .object({
72
+ app_name: SystemConfigSchema.shape.app_name.optional(),
73
+ default_roles: SystemConfigSchema.shape.default_roles.optional(),
74
+ available_roles: SystemConfigSchema.shape.available_roles.optional(),
75
+ login_methods: SystemConfigSchema.shape.login_methods.optional(),
76
+ passkey_login_fallback_enabled: SystemConfigSchema.shape.passkey_login_fallback_enabled.optional(),
77
+ oauth_providers: z.array(OAuthProviderConfigSchema).optional(),
78
+ lockout_policy: LockoutPolicySchema.optional(),
79
+ access_token_ttl: SystemConfigSchema.shape.access_token_ttl.optional(),
80
+ refresh_token_ttl: SystemConfigSchema.shape.refresh_token_ttl.optional(),
81
+ rate_limit: SystemConfigSchema.shape.rate_limit.optional(),
82
+ delay_after: SystemConfigSchema.shape.delay_after.optional(),
83
+ rpid: SystemConfigSchema.shape.rpid.optional(),
84
+ origins: SystemConfigSchema.shape.origins.optional(),
85
+ })
86
+ .strict();
87
+ /**
88
+ * A patch schema bound to the config currently stored, so role edits can be
89
+ * checked against the merged result rather than the patch alone.
90
+ */
91
+ export function createPatchSystemConfigSchema(existing) {
92
+ return SystemConfigPatchSchema.superRefine((data, ctx) => {
93
+ const nextAvailable = data.available_roles ?? existing.available_roles;
94
+ const nextDefault = data.default_roles ?? existing.default_roles;
95
+ const removedDefaults = data.available_roles !== undefined &&
96
+ existing.default_roles.some((role) => !data.available_roles?.includes(role));
97
+ if (removedDefaults) {
98
+ ctx.addIssue({
99
+ code: 'custom',
100
+ path: ['available_roles'],
101
+ message: 'Cannot remove roles currently set as default',
102
+ });
103
+ }
104
+ if (!nextDefault.every((role) => nextAvailable.includes(role))) {
105
+ ctx.addIssue({
106
+ code: 'custom',
107
+ path: ['default_roles'],
108
+ message: 'All default roles must exist in available_roles',
109
+ });
110
+ }
111
+ });
112
+ }
113
+ export const OAuthProviderCreateSchema = OAuthProviderConfigSchema;
114
+ export const OAuthProviderIdParamSchema = z.object({
115
+ id: OAuthProviderIdSchema,
116
+ });
117
+ // The id is immutable and taken from the path, so it is omitted here. Every other
118
+ // field is optional so callers can patch a single attribute without resending the
119
+ // whole provider; the merged result is re-validated against the full schema.
120
+ export const OAuthProviderUpdateSchema = OAuthProviderConfigSchema.omit({ id: true })
121
+ .partial()
122
+ .strict();
123
+ export const OAuthProvidersListResponseSchema = z.object({
124
+ providers: z.array(OAuthProviderConfigSchema),
125
+ });
126
+ export const OAuthProviderResponseSchema = z.object({
127
+ provider: OAuthProviderConfigSchema,
128
+ });
129
+ export const OAuthProviderDeletedResponseSchema = z.object({
130
+ success: z.literal(true),
131
+ id: z.string(),
132
+ });
133
+ export const GetSystemConfigResponseSchema = SystemConfigSchema;
134
+ export const UpdateSystemConfigResponseSchema = z.object({
135
+ success: z.boolean(),
136
+ updatedKeys: z.array(z.string()),
137
+ });
138
+ export const AvailableRolesResponseSchema = z.object({
139
+ roles: z.array(z.string()),
140
+ });
141
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/schemas/systemConfig/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { z } from 'zod';
2
+ export declare const TotpVerifyRequestSchema: z.ZodObject<{
3
+ code: z.ZodString;
4
+ }, z.core.$strip>;
5
+ export type TotpVerifyRequest = z.infer<typeof TotpVerifyRequestSchema>;
6
+ export declare const TotpStatusSchema: z.ZodObject<{
7
+ enabled: z.ZodBoolean;
8
+ verifiedAt: z.ZodNullable<z.ZodString>;
9
+ lastUsedAt: z.ZodNullable<z.ZodString>;
10
+ }, z.core.$strip>;
11
+ export type TotpStatus = z.infer<typeof TotpStatusSchema>;
12
+ export declare const TotpEnrollmentStartSchema: z.ZodObject<{
13
+ message: z.ZodString;
14
+ secret: z.ZodString;
15
+ otpauthUrl: z.ZodString;
16
+ issuer: z.ZodString;
17
+ accountName: z.ZodString;
18
+ algorithm: z.ZodLiteral<"SHA1">;
19
+ digits: z.ZodNumber;
20
+ period: z.ZodNumber;
21
+ }, z.core.$strip>;
22
+ export type TotpEnrollmentStartResponse = z.infer<typeof TotpEnrollmentStartSchema>;
23
+ export declare const TotpVerifySuccessSchema: z.ZodObject<{
24
+ message: z.ZodString;
25
+ }, z.core.$strip>;
26
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/totp/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,uBAAuB;;iBAElC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,gBAAgB;;;;iBAI3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,yBAAyB;;;;;;;;;iBASpC,CAAC;AAEH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAEpF,eAAO,MAAM,uBAAuB;;iBAElC,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+ export const TotpVerifyRequestSchema = z.object({
3
+ code: z.string().regex(/^\d{6}$/),
4
+ });
5
+ export const TotpStatusSchema = z.object({
6
+ enabled: z.boolean(),
7
+ verifiedAt: z.string().nullable(),
8
+ lastUsedAt: z.string().nullable(),
9
+ });
10
+ export const TotpEnrollmentStartSchema = z.object({
11
+ message: z.string(),
12
+ secret: z.string(),
13
+ otpauthUrl: z.string(),
14
+ issuer: z.string(),
15
+ accountName: z.string(),
16
+ algorithm: z.literal('SHA1'),
17
+ digits: z.number(),
18
+ period: z.number(),
19
+ });
20
+ export const TotpVerifySuccessSchema = z.object({
21
+ message: z.string(),
22
+ });
23
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/schemas/totp/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;CAClC,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;CACnB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;CACpB,CAAC,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { z } from 'zod';
2
- export declare const RoleSchema: z.ZodString;
3
2
  export declare const UserSchema: z.ZodObject<{
4
3
  id: z.ZodUUID;
5
4
  email: z.ZodEmail;
@@ -14,16 +13,68 @@ export declare const UserSchema: z.ZodObject<{
14
13
  updatedAt: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodCoercedDate<unknown>, z.ZodTransform<string, Date>>>>;
15
14
  }, z.core.$strip>;
16
15
  export type User = z.infer<typeof UserSchema>;
16
+ /**
17
+ * The user as it crosses the wire. Looser than {@link UserSchema}: the id is an
18
+ * opaque string rather than a UUID, phone is nullable for email-only accounts,
19
+ * and the verification flags are absent on endpoints that do not expose them.
20
+ */
21
+ export declare const ApiUserSchema: z.ZodObject<{
22
+ id: z.ZodString;
23
+ email: z.ZodEmail;
24
+ phone: z.ZodNullable<z.ZodString>;
25
+ roles: z.ZodDefault<z.ZodArray<z.ZodString>>;
26
+ revoked: z.ZodOptional<z.ZodBoolean>;
27
+ emailVerified: z.ZodOptional<z.ZodBoolean>;
28
+ phoneVerified: z.ZodOptional<z.ZodBoolean>;
29
+ verified: z.ZodOptional<z.ZodBoolean>;
30
+ lastLogin: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodCoercedDate<unknown>, z.ZodTransform<string, Date>>>>;
31
+ createdAt: z.ZodOptional<z.ZodPipe<z.ZodCoercedDate<unknown>, z.ZodTransform<string, Date>>>;
32
+ updatedAt: z.ZodOptional<z.ZodPipe<z.ZodCoercedDate<unknown>, z.ZodTransform<string, Date>>>;
33
+ }, z.core.$strict>;
34
+ export type ApiUser = z.infer<typeof ApiUserSchema>;
17
35
  export declare const CreateUserSchema: z.ZodObject<{
18
36
  email: z.ZodEmail;
19
- phone: z.ZodString;
37
+ phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
20
38
  roles: z.ZodArray<z.ZodString>;
21
39
  }, z.core.$strip>;
40
+ export type CreateUserRequest = z.infer<typeof CreateUserSchema>;
22
41
  export declare const UpdateUserSchema: z.ZodObject<{
23
42
  email: z.ZodOptional<z.ZodEmail>;
24
- phone: z.ZodOptional<z.ZodString>;
43
+ phone: z.ZodOptional<z.ZodNullable<z.ZodString>>;
25
44
  emailVerified: z.ZodOptional<z.ZodBoolean>;
26
45
  phoneVerified: z.ZodOptional<z.ZodBoolean>;
27
46
  roles: z.ZodOptional<z.ZodArray<z.ZodString>>;
28
47
  }, z.core.$strict>;
48
+ export type UpdateUserRequest = z.infer<typeof UpdateUserSchema>;
49
+ export declare const UserResponseSchema: z.ZodObject<{
50
+ user: z.ZodObject<{
51
+ id: z.ZodString;
52
+ email: z.ZodEmail;
53
+ phone: z.ZodNullable<z.ZodString>;
54
+ roles: z.ZodDefault<z.ZodArray<z.ZodString>>;
55
+ revoked: z.ZodOptional<z.ZodBoolean>;
56
+ emailVerified: z.ZodOptional<z.ZodBoolean>;
57
+ phoneVerified: z.ZodOptional<z.ZodBoolean>;
58
+ verified: z.ZodOptional<z.ZodBoolean>;
59
+ lastLogin: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodCoercedDate<unknown>, z.ZodTransform<string, Date>>>>;
60
+ createdAt: z.ZodOptional<z.ZodPipe<z.ZodCoercedDate<unknown>, z.ZodTransform<string, Date>>>;
61
+ updatedAt: z.ZodOptional<z.ZodPipe<z.ZodCoercedDate<unknown>, z.ZodTransform<string, Date>>>;
62
+ }, z.core.$strict>;
63
+ }, z.core.$strip>;
64
+ export declare const UsersListResponseSchema: z.ZodObject<{
65
+ users: z.ZodArray<z.ZodObject<{
66
+ id: z.ZodString;
67
+ email: z.ZodEmail;
68
+ phone: z.ZodNullable<z.ZodString>;
69
+ roles: z.ZodDefault<z.ZodArray<z.ZodString>>;
70
+ revoked: z.ZodOptional<z.ZodBoolean>;
71
+ emailVerified: z.ZodOptional<z.ZodBoolean>;
72
+ phoneVerified: z.ZodOptional<z.ZodBoolean>;
73
+ verified: z.ZodOptional<z.ZodBoolean>;
74
+ lastLogin: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodCoercedDate<unknown>, z.ZodTransform<string, Date>>>>;
75
+ createdAt: z.ZodOptional<z.ZodPipe<z.ZodCoercedDate<unknown>, z.ZodTransform<string, Date>>>;
76
+ updatedAt: z.ZodOptional<z.ZodPipe<z.ZodCoercedDate<unknown>, z.ZodTransform<string, Date>>>;
77
+ }, z.core.$strict>>;
78
+ total: z.ZodNumber;
79
+ }, z.core.$strip>;
29
80
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/user/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,UAAU,aAAyD,CAAC;AAEjF,eAAO,MAAM,UAAU;;;;;;;;;;;;iBAYrB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9C,eAAO,MAAM,gBAAgB;;;;iBAI3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;kBAQlB,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/user/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,UAAU;;;;;;;;;;;;iBAYrB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9C;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;kBAcf,CAAC;AAEZ,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD,eAAO,MAAM,gBAAgB;;;;iBAI3B,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEjE,eAAO,MAAM,gBAAgB;;;;;;kBAQlB,CAAC;AAEZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEjE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;iBAE7B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;iBAGlC,CAAC"}