@spfn/auth 0.1.0-alpha.88 → 0.2.0-beta.10

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 (152) hide show
  1. package/README.md +1385 -1199
  2. package/dist/config.d.ts +409 -0
  3. package/dist/config.js +244 -0
  4. package/dist/config.js.map +1 -0
  5. package/dist/dto-CRlgoCP5.d.ts +645 -0
  6. package/dist/errors.d.ts +196 -0
  7. package/dist/errors.js +173 -0
  8. package/dist/errors.js.map +1 -0
  9. package/dist/index.d.ts +287 -14
  10. package/dist/index.js +511 -6665
  11. package/dist/index.js.map +1 -1
  12. package/dist/nextjs/api.js +345 -0
  13. package/dist/nextjs/api.js.map +1 -0
  14. package/dist/{adapters/nextjs → nextjs}/server.d.ts +47 -65
  15. package/dist/nextjs/server.js +178 -0
  16. package/dist/nextjs/server.js.map +1 -0
  17. package/dist/server.d.ts +4444 -514
  18. package/dist/server.js +7977 -1210
  19. package/dist/server.js.map +1 -1
  20. package/migrations/0000_premium_famine.sql +292 -0
  21. package/migrations/meta/0000_snapshot.json +281 -46
  22. package/migrations/meta/_journal.json +2 -2
  23. package/package.json +37 -33
  24. package/dist/adapters/nextjs/api.d.ts +0 -446
  25. package/dist/adapters/nextjs/api.js +0 -3279
  26. package/dist/adapters/nextjs/api.js.map +0 -1
  27. package/dist/adapters/nextjs/server.js +0 -3645
  28. package/dist/adapters/nextjs/server.js.map +0 -1
  29. package/dist/lib/api/auth-codes-verify.d.ts +0 -37
  30. package/dist/lib/api/auth-codes-verify.js +0 -2949
  31. package/dist/lib/api/auth-codes-verify.js.map +0 -1
  32. package/dist/lib/api/auth-codes.d.ts +0 -37
  33. package/dist/lib/api/auth-codes.js +0 -2949
  34. package/dist/lib/api/auth-codes.js.map +0 -1
  35. package/dist/lib/api/auth-exists.d.ts +0 -38
  36. package/dist/lib/api/auth-exists.js +0 -2949
  37. package/dist/lib/api/auth-exists.js.map +0 -1
  38. package/dist/lib/api/auth-invitations-accept.d.ts +0 -38
  39. package/dist/lib/api/auth-invitations-accept.js +0 -2883
  40. package/dist/lib/api/auth-invitations-accept.js.map +0 -1
  41. package/dist/lib/api/auth-invitations-cancel.d.ts +0 -37
  42. package/dist/lib/api/auth-invitations-cancel.js +0 -2883
  43. package/dist/lib/api/auth-invitations-cancel.js.map +0 -1
  44. package/dist/lib/api/auth-invitations-delete.d.ts +0 -36
  45. package/dist/lib/api/auth-invitations-delete.js +0 -2883
  46. package/dist/lib/api/auth-invitations-delete.js.map +0 -1
  47. package/dist/lib/api/auth-invitations-resend.d.ts +0 -37
  48. package/dist/lib/api/auth-invitations-resend.js +0 -2883
  49. package/dist/lib/api/auth-invitations-resend.js.map +0 -1
  50. package/dist/lib/api/auth-invitations.d.ts +0 -109
  51. package/dist/lib/api/auth-invitations.js +0 -2887
  52. package/dist/lib/api/auth-invitations.js.map +0 -1
  53. package/dist/lib/api/auth-keys-rotate.d.ts +0 -37
  54. package/dist/lib/api/auth-keys-rotate.js +0 -2949
  55. package/dist/lib/api/auth-keys-rotate.js.map +0 -1
  56. package/dist/lib/api/auth-login.d.ts +0 -39
  57. package/dist/lib/api/auth-login.js +0 -2949
  58. package/dist/lib/api/auth-login.js.map +0 -1
  59. package/dist/lib/api/auth-logout.d.ts +0 -36
  60. package/dist/lib/api/auth-logout.js +0 -2949
  61. package/dist/lib/api/auth-logout.js.map +0 -1
  62. package/dist/lib/api/auth-me.d.ts +0 -50
  63. package/dist/lib/api/auth-me.js +0 -2949
  64. package/dist/lib/api/auth-me.js.map +0 -1
  65. package/dist/lib/api/auth-password.d.ts +0 -36
  66. package/dist/lib/api/auth-password.js +0 -2949
  67. package/dist/lib/api/auth-password.js.map +0 -1
  68. package/dist/lib/api/auth-register.d.ts +0 -38
  69. package/dist/lib/api/auth-register.js +0 -2949
  70. package/dist/lib/api/auth-register.js.map +0 -1
  71. package/dist/lib/api/index.d.ts +0 -356
  72. package/dist/lib/api/index.js +0 -3261
  73. package/dist/lib/api/index.js.map +0 -1
  74. package/dist/lib/config.d.ts +0 -70
  75. package/dist/lib/config.js +0 -64
  76. package/dist/lib/config.js.map +0 -1
  77. package/dist/lib/contracts/auth.d.ts +0 -302
  78. package/dist/lib/contracts/auth.js +0 -2951
  79. package/dist/lib/contracts/auth.js.map +0 -1
  80. package/dist/lib/contracts/index.d.ts +0 -3
  81. package/dist/lib/contracts/index.js +0 -3190
  82. package/dist/lib/contracts/index.js.map +0 -1
  83. package/dist/lib/contracts/invitation.d.ts +0 -243
  84. package/dist/lib/contracts/invitation.js +0 -2883
  85. package/dist/lib/contracts/invitation.js.map +0 -1
  86. package/dist/lib/crypto.d.ts +0 -76
  87. package/dist/lib/crypto.js +0 -127
  88. package/dist/lib/crypto.js.map +0 -1
  89. package/dist/lib/index.d.ts +0 -4
  90. package/dist/lib/index.js +0 -313
  91. package/dist/lib/index.js.map +0 -1
  92. package/dist/lib/session.d.ts +0 -68
  93. package/dist/lib/session.js +0 -126
  94. package/dist/lib/session.js.map +0 -1
  95. package/dist/lib/types/api.d.ts +0 -45
  96. package/dist/lib/types/api.js +0 -1
  97. package/dist/lib/types/api.js.map +0 -1
  98. package/dist/lib/types/index.d.ts +0 -3
  99. package/dist/lib/types/index.js +0 -2647
  100. package/dist/lib/types/index.js.map +0 -1
  101. package/dist/lib/types/schemas.d.ts +0 -45
  102. package/dist/lib/types/schemas.js +0 -2647
  103. package/dist/lib/types/schemas.js.map +0 -1
  104. package/dist/lib.js +0 -1
  105. package/dist/lib.js.map +0 -1
  106. package/dist/plugin.d.ts +0 -12
  107. package/dist/plugin.js +0 -9083
  108. package/dist/plugin.js.map +0 -1
  109. package/dist/server/entities/index.d.ts +0 -11
  110. package/dist/server/entities/index.js +0 -395
  111. package/dist/server/entities/index.js.map +0 -1
  112. package/dist/server/entities/invitations.d.ts +0 -241
  113. package/dist/server/entities/invitations.js +0 -184
  114. package/dist/server/entities/invitations.js.map +0 -1
  115. package/dist/server/entities/permissions.d.ts +0 -196
  116. package/dist/server/entities/permissions.js +0 -49
  117. package/dist/server/entities/permissions.js.map +0 -1
  118. package/dist/server/entities/role-permissions.d.ts +0 -107
  119. package/dist/server/entities/role-permissions.js +0 -115
  120. package/dist/server/entities/role-permissions.js.map +0 -1
  121. package/dist/server/entities/roles.d.ts +0 -196
  122. package/dist/server/entities/roles.js +0 -50
  123. package/dist/server/entities/roles.js.map +0 -1
  124. package/dist/server/entities/schema.d.ts +0 -14
  125. package/dist/server/entities/schema.js +0 -7
  126. package/dist/server/entities/schema.js.map +0 -1
  127. package/dist/server/entities/user-permissions.d.ts +0 -163
  128. package/dist/server/entities/user-permissions.js +0 -193
  129. package/dist/server/entities/user-permissions.js.map +0 -1
  130. package/dist/server/entities/user-public-keys.d.ts +0 -227
  131. package/dist/server/entities/user-public-keys.js +0 -156
  132. package/dist/server/entities/user-public-keys.js.map +0 -1
  133. package/dist/server/entities/user-social-accounts.d.ts +0 -189
  134. package/dist/server/entities/user-social-accounts.js +0 -149
  135. package/dist/server/entities/user-social-accounts.js.map +0 -1
  136. package/dist/server/entities/users.d.ts +0 -235
  137. package/dist/server/entities/users.js +0 -117
  138. package/dist/server/entities/users.js.map +0 -1
  139. package/dist/server/entities/verification-codes.d.ts +0 -191
  140. package/dist/server/entities/verification-codes.js +0 -49
  141. package/dist/server/entities/verification-codes.js.map +0 -1
  142. package/dist/server/routes/auth/index.d.ts +0 -10
  143. package/dist/server/routes/auth/index.js +0 -4460
  144. package/dist/server/routes/auth/index.js.map +0 -1
  145. package/dist/server/routes/index.d.ts +0 -6
  146. package/dist/server/routes/index.js +0 -6584
  147. package/dist/server/routes/index.js.map +0 -1
  148. package/dist/server/routes/invitations/index.d.ts +0 -10
  149. package/dist/server/routes/invitations/index.js +0 -4395
  150. package/dist/server/routes/invitations/index.js.map +0 -1
  151. package/migrations/0000_skinny_christian_walker.sql +0 -167
  152. /package/dist/{lib.d.ts → nextjs/api.d.ts} +0 -0
package/dist/index.d.ts CHANGED
@@ -1,14 +1,287 @@
1
- export { spfnPlugin } from './plugin.js';
2
- export { ChangePasswordData, CheckAccountExistsData, LoginData, Permission, SessionPayload } from './lib/types/api.js';
3
- export { ApiResponseSchema, ErrorResponseSchema, SuccessResponseSchema } from './lib/types/schemas.js';
4
- export { NewUser, User, UserStatus, UserWithVerification, users } from './server/entities/users.js';
5
- export { NewUserSocialAccount, UserSocialAccount, userSocialAccounts } from './server/entities/user-social-accounts.js';
6
- export { NewUserPublicKey, UserPublicKey, userPublicKeys } from './server/entities/user-public-keys.js';
7
- export { NewVerificationCode, VerificationCode, verificationCodes } from './server/entities/verification-codes.js';
8
- export { NewRole, NewRoleEntity, Role, RoleEntity, roles } from './server/entities/roles.js';
9
- export { NewPermissionEntity, PermissionEntity, permissions } from './server/entities/permissions.js';
10
- export { NewRolePermission, RolePermission, rolePermissions } from './server/entities/role-permissions.js';
11
- export { NewUserPermission, UserPermission, userPermissions } from './server/entities/user-permissions.js';
12
- import '@spfn/core/server';
13
- import '@sinclair/typebox';
14
- import 'drizzle-orm/pg-core';
1
+ import * as _spfn_core_nextjs from '@spfn/core/nextjs';
2
+ import { R as RoleConfig, P as PermissionConfig, U as UserProfile, a as ProfileInfo, C as CheckAccountExistsResult, S as SendVerificationCodeResult, b as RegisterResult, L as LoginResult, c as RotateKeyResult, m as mainAuthRouter } from './dto-CRlgoCP5.js';
3
+ export { k as AuthInitOptions, A as AuthSession, I as INVITATION_STATUSES, n as InvitationStatus, K as KEY_ALGORITHM, l as KeyAlgorithmType, i as PERMISSION_CATEGORIES, j as PermissionCategory, e as SOCIAL_PROVIDERS, p as SocialProvider, d as USER_STATUSES, o as UserStatus, h as VERIFICATION_PURPOSES, g as VERIFICATION_TARGET_TYPES, f as VerificationPurpose, V as VerificationTargetType } from './dto-CRlgoCP5.js';
4
+ import * as _spfn_core_route from '@spfn/core/route';
5
+ import * as _sinclair_typebox from '@sinclair/typebox';
6
+ import '@spfn/auth/server';
7
+
8
+ /**
9
+ * @spfn/auth - Built-in Roles and Permissions
10
+ *
11
+ * Core roles and permissions required by the auth package
12
+ * These cannot be deleted and are automatically created on initialization
13
+ */
14
+
15
+ /**
16
+ * Built-in roles (required by package)
17
+ * These roles are always created and cannot be deleted
18
+ */
19
+ declare const BUILTIN_ROLES: Record<string, RoleConfig>;
20
+ /**
21
+ * Built-in permissions (required by package)
22
+ * These permissions are always created and cannot be deleted
23
+ */
24
+ declare const BUILTIN_PERMISSIONS: Record<string, PermissionConfig>;
25
+ /**
26
+ * Built-in role-permission mappings
27
+ * Defines default permissions for each built-in role
28
+ */
29
+ declare const BUILTIN_ROLE_PERMISSIONS: Record<string, string[]>;
30
+ type BuiltinRoleName = keyof typeof BUILTIN_ROLE_PERMISSIONS;
31
+ type BuiltinPermissionName = typeof BUILTIN_PERMISSIONS[keyof typeof BUILTIN_PERMISSIONS]['name'];
32
+
33
+ /**
34
+ * Email regex pattern (RFC 5322 compliant)
35
+ * Validates: local-part@domain.tld
36
+ * - Local part: alphanumeric, dots, hyphens, underscores
37
+ * - Domain: alphanumeric, hyphens, dots
38
+ * - TLD: minimum 2 characters
39
+ */
40
+ declare const EMAIL_PATTERN = "^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$";
41
+ /**
42
+ * Phone regex pattern (E.164 format)
43
+ * Format: +[country code][number] (1-15 digits total)
44
+ */
45
+ declare const PHONE_PATTERN = "^\\+[1-9]\\d{1,14}$";
46
+ /**
47
+ * SHA-256 fingerprint pattern (64 hex characters)
48
+ */
49
+ declare const FINGERPRINT_PATTERN = "^[a-f0-9]{64}$";
50
+ /**
51
+ * UUID v4 pattern (8-4-4-4-12 format)
52
+ */
53
+ declare const UUID_PATTERN = "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$";
54
+ /**
55
+ * Base64 pattern (DER encoded keys)
56
+ * Matches standard Base64 with padding
57
+ */
58
+ declare const BASE64_PATTERN = "^[A-Za-z0-9+/]+=*$";
59
+
60
+ /**
61
+ * Type-safe API client for auth routes
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * import { authApi } from '@spfn/auth';
66
+ *
67
+ * // Get current session
68
+ * const session = await authApi.getAuthSession.call({});
69
+ *
70
+ * // Login
71
+ * const result = await authApi.login.call({
72
+ * body: { email, password, fingerprint, publicKey, keyId }
73
+ * });
74
+ * ```
75
+ */
76
+ declare const authApi: _spfn_core_nextjs.Client<_spfn_core_route.Router<{
77
+ getUserProfile: _spfn_core_route.RouteDef<{}, {}, UserProfile>;
78
+ updateUserProfile: _spfn_core_route.RouteDef<{
79
+ body: _sinclair_typebox.TObject<{
80
+ displayName: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
81
+ firstName: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
82
+ lastName: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
83
+ avatarUrl: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
84
+ bio: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
85
+ locale: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
86
+ timezone: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
87
+ dateOfBirth: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
88
+ gender: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
89
+ website: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
90
+ location: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
91
+ company: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
92
+ jobTitle: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
93
+ metadata: _sinclair_typebox.TOptional<_sinclair_typebox.TRecord<_sinclair_typebox.TString, _sinclair_typebox.TAny>>;
94
+ }>;
95
+ }, {}, ProfileInfo>;
96
+ getInvitation: _spfn_core_route.RouteDef<{
97
+ params: _sinclair_typebox.TObject<{
98
+ token: _sinclair_typebox.TString;
99
+ }>;
100
+ }, {}, {
101
+ email: string;
102
+ role: string;
103
+ roleDisplayName: string;
104
+ invitedBy: string;
105
+ expiresAt: string;
106
+ metadata: Record<string, any> | undefined;
107
+ }>;
108
+ acceptInvitation: _spfn_core_route.RouteDef<{
109
+ body: _sinclair_typebox.TObject<{
110
+ token: _sinclair_typebox.TString;
111
+ password: _sinclair_typebox.TString;
112
+ }>;
113
+ }, {
114
+ body: _sinclair_typebox.TObject<{
115
+ publicKey: _sinclair_typebox.TString;
116
+ keyId: _sinclair_typebox.TString;
117
+ fingerprint: _sinclair_typebox.TString;
118
+ algorithm: _sinclair_typebox.TUnion<_sinclair_typebox.TLiteral<"ES256" | "RS256">[]>;
119
+ }>;
120
+ }, {
121
+ userId: number;
122
+ email: string;
123
+ role: string;
124
+ }>;
125
+ createInvitation: _spfn_core_route.RouteDef<{
126
+ body: _sinclair_typebox.TObject<{
127
+ email: _sinclair_typebox.TString;
128
+ roleId: _sinclair_typebox.TNumber;
129
+ expiresInDays: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
130
+ metadata: _sinclair_typebox.TOptional<_sinclair_typebox.TAny>;
131
+ }>;
132
+ }, {}, {
133
+ id: number;
134
+ email: string;
135
+ token: string;
136
+ roleId: number;
137
+ expiresAt: string;
138
+ invitationUrl: string;
139
+ }>;
140
+ listInvitations: _spfn_core_route.RouteDef<{
141
+ query: _sinclair_typebox.TObject<{
142
+ status: _sinclair_typebox.TOptional<_sinclair_typebox.TUnion<_sinclair_typebox.TLiteral<"pending" | "accepted" | "expired" | "cancelled">[]>>;
143
+ page: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
144
+ limit: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
145
+ }>;
146
+ }, {}, {
147
+ invitations: {
148
+ id: number;
149
+ email: string;
150
+ token: string;
151
+ roleId: number;
152
+ invitedBy: number;
153
+ status: "pending" | "accepted" | "expired" | "cancelled";
154
+ expiresAt: Date;
155
+ acceptedAt: Date | null;
156
+ cancelledAt: Date | null;
157
+ metadata: Record<string, any> | null;
158
+ createdAt: Date;
159
+ updatedAt: Date;
160
+ role: {
161
+ id: number;
162
+ name: string;
163
+ displayName: string;
164
+ };
165
+ inviter: {
166
+ id: number;
167
+ email: string | null;
168
+ };
169
+ }[];
170
+ total: number;
171
+ page: number;
172
+ limit: number;
173
+ totalPages: number;
174
+ }>;
175
+ cancelInvitation: _spfn_core_route.RouteDef<{
176
+ body: _sinclair_typebox.TObject<{
177
+ id: _sinclair_typebox.TNumber;
178
+ reason: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
179
+ }>;
180
+ }, {}, {
181
+ cancelledAt: string;
182
+ }>;
183
+ resendInvitation: _spfn_core_route.RouteDef<{
184
+ body: _sinclair_typebox.TObject<{
185
+ id: _sinclair_typebox.TNumber;
186
+ expiresInDays: _sinclair_typebox.TOptional<_sinclair_typebox.TNumber>;
187
+ }>;
188
+ }, {}, {
189
+ expiresAt: string;
190
+ }>;
191
+ deleteInvitation: _spfn_core_route.RouteDef<{
192
+ body: _sinclair_typebox.TObject<{
193
+ id: _sinclair_typebox.TNumber;
194
+ }>;
195
+ }, {}, void>;
196
+ checkAccountExists: _spfn_core_route.RouteDef<{
197
+ body: _sinclair_typebox.TUnion<[_sinclair_typebox.TObject<{
198
+ email: _sinclair_typebox.TString;
199
+ }>, _sinclair_typebox.TObject<{
200
+ phone: _sinclair_typebox.TString;
201
+ }>]>;
202
+ }, {}, CheckAccountExistsResult>;
203
+ sendVerificationCode: _spfn_core_route.RouteDef<{
204
+ body: _sinclair_typebox.TObject<{
205
+ target: _sinclair_typebox.TString;
206
+ targetType: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"email">, _sinclair_typebox.TLiteral<"phone">]>;
207
+ purpose: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"registration">, _sinclair_typebox.TLiteral<"login">, _sinclair_typebox.TLiteral<"password_reset">, _sinclair_typebox.TLiteral<"email_change">, _sinclair_typebox.TLiteral<"phone_change">]>;
208
+ }>;
209
+ }, {}, SendVerificationCodeResult>;
210
+ verifyCode: _spfn_core_route.RouteDef<{
211
+ body: _sinclair_typebox.TObject<{
212
+ target: _sinclair_typebox.TString;
213
+ targetType: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"email">, _sinclair_typebox.TLiteral<"phone">]>;
214
+ code: _sinclair_typebox.TString;
215
+ purpose: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"registration">, _sinclair_typebox.TLiteral<"login">, _sinclair_typebox.TLiteral<"password_reset">, _sinclair_typebox.TLiteral<"email_change">, _sinclair_typebox.TLiteral<"phone_change">]>;
216
+ }>;
217
+ }, {}, {
218
+ valid: boolean;
219
+ verificationToken: string;
220
+ }>;
221
+ register: _spfn_core_route.RouteDef<{
222
+ body: _sinclair_typebox.TObject<{
223
+ email: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
224
+ phone: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
225
+ verificationToken: _sinclair_typebox.TString;
226
+ password: _sinclair_typebox.TString;
227
+ }>;
228
+ }, {
229
+ body: _sinclair_typebox.TObject<{
230
+ publicKey: _sinclair_typebox.TString;
231
+ keyId: _sinclair_typebox.TString;
232
+ fingerprint: _sinclair_typebox.TString;
233
+ algorithm: _sinclair_typebox.TUnion<_sinclair_typebox.TLiteral<"ES256" | "RS256">[]>;
234
+ }>;
235
+ }, RegisterResult>;
236
+ login: _spfn_core_route.RouteDef<{
237
+ body: _sinclair_typebox.TObject<{
238
+ email: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
239
+ phone: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
240
+ password: _sinclair_typebox.TString;
241
+ }>;
242
+ }, {
243
+ body: _sinclair_typebox.TObject<{
244
+ publicKey: _sinclair_typebox.TString;
245
+ keyId: _sinclair_typebox.TString;
246
+ fingerprint: _sinclair_typebox.TString;
247
+ algorithm: _sinclair_typebox.TUnion<_sinclair_typebox.TLiteral<"ES256" | "RS256">[]>;
248
+ oldKeyId: _sinclair_typebox.TOptional<_sinclair_typebox.TString>;
249
+ }>;
250
+ }, LoginResult>;
251
+ logout: _spfn_core_route.RouteDef<{}, {}, void>;
252
+ rotateKey: _spfn_core_route.RouteDef<{}, {
253
+ body: _sinclair_typebox.TObject<{
254
+ publicKey: _sinclair_typebox.TString;
255
+ keyId: _sinclair_typebox.TString;
256
+ fingerprint: _sinclair_typebox.TString;
257
+ algorithm: _sinclair_typebox.TUnion<_sinclair_typebox.TLiteral<"ES256" | "RS256">[]>;
258
+ }>;
259
+ }, RotateKeyResult>;
260
+ changePassword: _spfn_core_route.RouteDef<{
261
+ body: _sinclair_typebox.TObject<{
262
+ currentPassword: _sinclair_typebox.TString;
263
+ newPassword: _sinclair_typebox.TString;
264
+ }>;
265
+ }, {}, void>;
266
+ getAuthSession: _spfn_core_route.RouteDef<{}, {}, {
267
+ role: {
268
+ id: number;
269
+ name: string;
270
+ displayName: string;
271
+ priority: number;
272
+ };
273
+ permissions: {
274
+ id: number;
275
+ name: string;
276
+ displayName: string;
277
+ category: "auth" | "custom" | "user" | "rbac" | "system" | undefined;
278
+ }[];
279
+ userId: number;
280
+ email: string | null;
281
+ emailVerified: boolean;
282
+ phoneVerified: boolean;
283
+ }>;
284
+ }>>;
285
+ type AuthRouter = typeof mainAuthRouter;
286
+
287
+ export { type AuthRouter, BASE64_PATTERN, BUILTIN_PERMISSIONS, BUILTIN_ROLES, BUILTIN_ROLE_PERMISSIONS, type BuiltinPermissionName, type BuiltinRoleName, EMAIL_PATTERN, FINGERPRINT_PATTERN, PHONE_PATTERN, PermissionConfig, ProfileInfo, RoleConfig, UUID_PATTERN, UserProfile, authApi };