sa2kit 3.0.0 → 3.1.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 (198) hide show
  1. package/dist/ai/llm/ui/miniapp/index.d.mts +2 -2
  2. package/dist/ai/llm/ui/miniapp/index.d.ts +2 -2
  3. package/dist/ai/llm/ui/rn/index.d.mts +2 -2
  4. package/dist/ai/llm/ui/rn/index.d.ts +2 -2
  5. package/dist/ai/llm/ui/web/index.d.mts +3 -3
  6. package/dist/ai/llm/ui/web/index.d.ts +3 -3
  7. package/dist/analytics/index.d.mts +1 -1
  8. package/dist/analytics/index.d.ts +1 -1
  9. package/dist/{chunk-QP5N3ER6.js → chunk-3CSCIRQY.js} +5 -6
  10. package/dist/chunk-3CSCIRQY.js.map +1 -0
  11. package/dist/{chunk-RJP2BRJD.mjs → chunk-4OOANEJV.mjs} +2 -2
  12. package/dist/{chunk-RJP2BRJD.mjs.map → chunk-4OOANEJV.mjs.map} +1 -1
  13. package/dist/chunk-5FUAQLGC.mjs +14 -0
  14. package/dist/chunk-5FUAQLGC.mjs.map +1 -0
  15. package/dist/{chunk-S732H246.js → chunk-6PMXAK7F.js} +2 -2
  16. package/dist/{chunk-S732H246.js.map → chunk-6PMXAK7F.js.map} +1 -1
  17. package/dist/chunk-6YLCRWKM.mjs +8 -0
  18. package/dist/chunk-6YLCRWKM.mjs.map +1 -0
  19. package/dist/{chunk-IBWDBBX5.mjs → chunk-7B5SI4OF.mjs} +3 -4
  20. package/dist/chunk-7B5SI4OF.mjs.map +1 -0
  21. package/dist/chunk-EQXPL7TN.mjs +78 -0
  22. package/dist/chunk-EQXPL7TN.mjs.map +1 -0
  23. package/dist/{chunk-GQZHGSRR.js → chunk-GSNGCENJ.js} +39 -2
  24. package/dist/chunk-GSNGCENJ.js.map +1 -0
  25. package/dist/chunk-HQLKOXG7.js +16 -0
  26. package/dist/chunk-HQLKOXG7.js.map +1 -0
  27. package/dist/{chunk-S3PUP7N4.js → chunk-PA4ELVGI.js} +2 -2
  28. package/dist/{chunk-S3PUP7N4.js.map → chunk-PA4ELVGI.js.map} +1 -1
  29. package/dist/{chunk-WZDTNDYR.js → chunk-QSKLQX6H.js} +11 -11
  30. package/dist/{chunk-WZDTNDYR.js.map → chunk-QSKLQX6H.js.map} +1 -1
  31. package/dist/{chunk-LHJKLUM7.mjs → chunk-TNJ6LYX7.mjs} +2 -2
  32. package/dist/{chunk-LHJKLUM7.mjs.map → chunk-TNJ6LYX7.mjs.map} +1 -1
  33. package/dist/{chunk-J77KR2EV.mjs → chunk-WJ7IMUEJ.mjs} +3 -3
  34. package/dist/{chunk-J77KR2EV.mjs.map → chunk-WJ7IMUEJ.mjs.map} +1 -1
  35. package/dist/chunk-YTGUIRRH.js +10 -0
  36. package/dist/chunk-YTGUIRRH.js.map +1 -0
  37. package/dist/common/auth/client/index.d.mts +1 -31
  38. package/dist/common/auth/client/index.d.ts +1 -31
  39. package/dist/common/auth/client/index.js +2 -15
  40. package/dist/common/auth/client/index.mjs +1 -2
  41. package/dist/common/auth/components/index.d.mts +14 -248
  42. package/dist/common/auth/components/index.d.ts +14 -248
  43. package/dist/common/auth/components/index.js +878 -49
  44. package/dist/common/auth/components/index.js.map +1 -1
  45. package/dist/common/auth/components/index.mjs +871 -5
  46. package/dist/common/auth/components/index.mjs.map +1 -1
  47. package/dist/common/auth/hooks/index.d.mts +2 -29
  48. package/dist/common/auth/hooks/index.d.ts +2 -29
  49. package/dist/common/auth/hooks/index.js +2 -11
  50. package/dist/common/auth/hooks/index.mjs +1 -2
  51. package/dist/common/auth/index.d.mts +5 -9
  52. package/dist/common/auth/index.d.ts +5 -9
  53. package/dist/common/auth/index.js +7 -28
  54. package/dist/common/auth/index.mjs +3 -4
  55. package/dist/common/auth/react/index.d.mts +3 -3
  56. package/dist/common/auth/react/index.d.ts +3 -3
  57. package/dist/common/auth/rn/index.d.mts +3 -19
  58. package/dist/common/auth/rn/index.d.ts +3 -19
  59. package/dist/common/auth/rn/index.js +0 -32
  60. package/dist/common/auth/rn/index.js.map +1 -1
  61. package/dist/common/auth/rn/index.mjs +1 -30
  62. package/dist/common/auth/rn/index.mjs.map +1 -1
  63. package/dist/common/auth/server/index.d.mts +81 -2
  64. package/dist/common/auth/server/index.d.ts +81 -2
  65. package/dist/common/auth/server/index.js +128 -37
  66. package/dist/common/auth/server/index.js.map +1 -1
  67. package/dist/common/auth/server/index.mjs +124 -1
  68. package/dist/common/auth/server/index.mjs.map +1 -1
  69. package/dist/common/auth/services/index.js +12 -9
  70. package/dist/common/auth/services/index.js.map +1 -1
  71. package/dist/common/auth/services/index.mjs +10 -1
  72. package/dist/common/auth/services/index.mjs.map +1 -1
  73. package/dist/common/file/server/index.js +32 -32
  74. package/dist/common/file/server/index.mjs +3 -3
  75. package/dist/common/index.d.mts +5 -8
  76. package/dist/common/index.d.ts +5 -8
  77. package/dist/common/index.js +12 -14
  78. package/dist/common/index.mjs +6 -8
  79. package/dist/common/request/index.js +4 -5
  80. package/dist/common/request/index.mjs +2 -3
  81. package/dist/i18n/index.d.mts +1 -1
  82. package/dist/i18n/index.d.ts +1 -1
  83. package/dist/imageCrop/index.d.mts +3 -3
  84. package/dist/imageCrop/index.d.ts +3 -3
  85. package/dist/index-Bd7cKF1j.d.mts +50 -0
  86. package/dist/{index-CLB80GCP.d.ts → index-D0cqaQEH.d.mts} +5 -5
  87. package/dist/{index-CLB80GCP.d.mts → index-D0cqaQEH.d.ts} +5 -5
  88. package/dist/index-DRQxtCDw.d.ts +50 -0
  89. package/dist/{index-BxZauNN_.d.mts → index-DoUo8IrU.d.mts} +8 -8
  90. package/dist/{index-BxZauNN_.d.ts → index-DoUo8IrU.d.ts} +8 -8
  91. package/dist/index.d.mts +152 -131
  92. package/dist/index.d.ts +152 -131
  93. package/dist/index.js +105 -554
  94. package/dist/index.js.map +1 -1
  95. package/dist/index.mjs +106 -555
  96. package/dist/index.mjs.map +1 -1
  97. package/dist/ossFile/server/index.js +32 -32
  98. package/dist/ossFile/server/index.mjs +3 -3
  99. package/dist/request/index.js +3 -4
  100. package/dist/request/index.mjs +1 -2
  101. package/dist/universalExport/index.d.mts +3 -3
  102. package/dist/universalExport/index.d.ts +3 -3
  103. package/dist/universalFile/index.d.mts +5 -5
  104. package/dist/universalFile/index.d.ts +5 -5
  105. package/dist/universalFile/server/index.js +62 -62
  106. package/dist/universalFile/server/index.mjs +2 -2
  107. package/package.json +1 -36
  108. package/dist/auth/client/index.d.mts +0 -13
  109. package/dist/auth/client/index.d.ts +0 -13
  110. package/dist/auth/client/index.js +0 -26
  111. package/dist/auth/client/index.js.map +0 -1
  112. package/dist/auth/client/index.mjs +0 -5
  113. package/dist/auth/client/index.mjs.map +0 -1
  114. package/dist/auth/components/index.d.mts +0 -10
  115. package/dist/auth/components/index.d.ts +0 -10
  116. package/dist/auth/components/index.js +0 -70
  117. package/dist/auth/components/index.js.map +0 -1
  118. package/dist/auth/components/index.mjs +0 -9
  119. package/dist/auth/components/index.mjs.map +0 -1
  120. package/dist/auth/hooks/index.d.mts +0 -13
  121. package/dist/auth/hooks/index.d.ts +0 -13
  122. package/dist/auth/hooks/index.js +0 -28
  123. package/dist/auth/hooks/index.js.map +0 -1
  124. package/dist/auth/hooks/index.mjs +0 -7
  125. package/dist/auth/hooks/index.mjs.map +0 -1
  126. package/dist/auth/index.d.mts +0 -21
  127. package/dist/auth/index.d.ts +0 -21
  128. package/dist/auth/index.js +0 -112
  129. package/dist/auth/index.js.map +0 -1
  130. package/dist/auth/index.mjs +0 -11
  131. package/dist/auth/index.mjs.map +0 -1
  132. package/dist/auth/rn/index.d.mts +0 -3133
  133. package/dist/auth/rn/index.d.ts +0 -3133
  134. package/dist/auth/rn/index.js +0 -684
  135. package/dist/auth/rn/index.js.map +0 -1
  136. package/dist/auth/rn/index.mjs +0 -663
  137. package/dist/auth/rn/index.mjs.map +0 -1
  138. package/dist/auth/schema/index.d.mts +0 -4
  139. package/dist/auth/schema/index.d.ts +0 -4
  140. package/dist/auth/schema/index.js +0 -49
  141. package/dist/auth/schema/index.js.map +0 -1
  142. package/dist/auth/schema/index.mjs +0 -4
  143. package/dist/auth/schema/index.mjs.map +0 -1
  144. package/dist/auth/services/index.d.mts +0 -1
  145. package/dist/auth/services/index.d.ts +0 -1
  146. package/dist/auth/services/index.js +0 -17
  147. package/dist/auth/services/index.js.map +0 -1
  148. package/dist/auth/services/index.mjs +0 -4
  149. package/dist/auth/services/index.mjs.map +0 -1
  150. package/dist/base-api-client-BpmcQt4Q.d.ts +0 -103
  151. package/dist/base-api-client-CFIhZK4C.d.mts +0 -277
  152. package/dist/base-api-client-CFIhZK4C.d.ts +0 -277
  153. package/dist/base-api-client-DXLsq2yz.d.mts +0 -103
  154. package/dist/chunk-7E3J7VAD.mjs +0 -3
  155. package/dist/chunk-7E3J7VAD.mjs.map +0 -1
  156. package/dist/chunk-B3CZ3HXJ.mjs +0 -126
  157. package/dist/chunk-B3CZ3HXJ.mjs.map +0 -1
  158. package/dist/chunk-FOQEQWX5.js +0 -4
  159. package/dist/chunk-FOQEQWX5.js.map +0 -1
  160. package/dist/chunk-G4NFB2QA.mjs +0 -212
  161. package/dist/chunk-G4NFB2QA.mjs.map +0 -1
  162. package/dist/chunk-G5HJGXGC.mjs +0 -39
  163. package/dist/chunk-G5HJGXGC.mjs.map +0 -1
  164. package/dist/chunk-GQZHGSRR.js.map +0 -1
  165. package/dist/chunk-GS7XLKET.js +0 -41
  166. package/dist/chunk-GS7XLKET.js.map +0 -1
  167. package/dist/chunk-IBWDBBX5.mjs.map +0 -1
  168. package/dist/chunk-MWSAH7ZG.mjs +0 -42
  169. package/dist/chunk-MWSAH7ZG.mjs.map +0 -1
  170. package/dist/chunk-MZOGYD4N.mjs +0 -186
  171. package/dist/chunk-MZOGYD4N.mjs.map +0 -1
  172. package/dist/chunk-QDUBO567.js +0 -1148
  173. package/dist/chunk-QDUBO567.js.map +0 -1
  174. package/dist/chunk-QP5N3ER6.js.map +0 -1
  175. package/dist/chunk-RWCD2CAD.mjs +0 -1132
  176. package/dist/chunk-RWCD2CAD.mjs.map +0 -1
  177. package/dist/chunk-S37OK2QG.js +0 -216
  178. package/dist/chunk-S37OK2QG.js.map +0 -1
  179. package/dist/chunk-SFDJNKWC.js +0 -22
  180. package/dist/chunk-SFDJNKWC.js.map +0 -1
  181. package/dist/chunk-TXMX6PZR.js +0 -190
  182. package/dist/chunk-TXMX6PZR.js.map +0 -1
  183. package/dist/chunk-VHN7PF5I.js +0 -20
  184. package/dist/chunk-VHN7PF5I.js.map +0 -1
  185. package/dist/chunk-XBZIS3MV.mjs +0 -13
  186. package/dist/chunk-XBZIS3MV.mjs.map +0 -1
  187. package/dist/chunk-XFOZ56FB.mjs +0 -20
  188. package/dist/chunk-XFOZ56FB.mjs.map +0 -1
  189. package/dist/chunk-Z23HAXHL.js +0 -136
  190. package/dist/chunk-Z23HAXHL.js.map +0 -1
  191. package/dist/index-BcjDRcKp.d.mts +0 -40
  192. package/dist/index-BlpXrrTy.d.ts +0 -40
  193. package/dist/session-BCXvGCnm.d.mts +0 -81
  194. package/dist/session-BCXvGCnm.d.ts +0 -81
  195. package/dist/types-C_W_CoUD.d.ts +0 -99
  196. package/dist/types-DCRvasyH.d.mts +0 -99
  197. package/dist/types.legacy-J-j-_ig_.d.mts +0 -25
  198. package/dist/types.legacy-J-j-_ig_.d.ts +0 -25
@@ -1,81 +0,0 @@
1
- /**
2
- * sa2kit auth 服务端配置类型(Better Auth 3.0)
3
- */
4
- type Sa2kitSmsProvider = {
5
- sendOTP: (phoneNumber: string, code: string) => void | Promise<void>;
6
- };
7
- type Sa2kitEmailProvider = {
8
- sendVerificationOTP: (email: string, otp: string, type: string) => void | Promise<void>;
9
- };
10
- type Sa2kitAuthConfig = {
11
- db: unknown;
12
- baseURL: string;
13
- secret: string;
14
- trustedOrigins?: string[];
15
- basePath?: string;
16
- sms?: Sa2kitSmsProvider;
17
- email?: Sa2kitEmailProvider;
18
- phoneNumberValidator?: (phoneNumber: string) => boolean;
19
- logOtpInDev?: boolean;
20
- };
21
- /** Better Auth 实例(运行时完整 API,类型刻意保持宽松以便跨插件版本) */
22
- type Sa2kitAuthInstance = {
23
- handler: (request: Request) => Promise<Response>;
24
- api: {
25
- getSession: (ctx: {
26
- headers: Headers;
27
- }) => Promise<{
28
- user: Record<string, unknown>;
29
- } | null>;
30
- [key: string]: unknown;
31
- };
32
- [key: string]: unknown;
33
- };
34
- type Sa2kitAuth = Sa2kitAuthInstance;
35
-
36
- declare function createSa2kitAuth(config: Sa2kitAuthConfig): Sa2kitAuthInstance;
37
-
38
- declare function mountNextAuthHandler(auth: Sa2kitAuthInstance): {
39
- GET: (request: Request) => Promise<Response>;
40
- POST: (request: Request) => Promise<Response>;
41
- PATCH: (request: Request) => Promise<Response>;
42
- PUT: (request: Request) => Promise<Response>;
43
- DELETE: (request: Request) => Promise<Response>;
44
- };
45
-
46
- /**
47
- * Hono / 通用 fetch handler
48
- */
49
-
50
- declare function mountAuthHandler(auth: Sa2kitAuthInstance): (request: Request) => Promise<Response>;
51
- declare function createAuthRouteHandlers(auth: Sa2kitAuthInstance): {
52
- GET: (request: Request) => Promise<Response>;
53
- POST: (request: Request) => Promise<Response>;
54
- PUT: (request: Request) => Promise<Response>;
55
- PATCH: (request: Request) => Promise<Response>;
56
- DELETE: (request: Request) => Promise<Response>;
57
- };
58
-
59
- /**
60
- * 从 Request 解析 Better Auth session(替代自研 JWT validateApiAuth)
61
- */
62
-
63
- type SessionUser = {
64
- id: string;
65
- email: string;
66
- name: string;
67
- role?: string;
68
- phoneNumber?: string | null;
69
- };
70
- declare function getSessionUser(auth: Sa2kitAuthInstance, request: Request): Promise<SessionUser | null>;
71
- type SessionUserNumeric = Omit<SessionUser, 'id'> & {
72
- id: number;
73
- };
74
- /** 兼容 numeric id 消费方(legacy calendar 等) */
75
- declare function getSessionUserNumeric(auth: Sa2kitAuthInstance, request: Request): Promise<SessionUserNumeric | null>;
76
- declare function createSessionValidator(auth: Sa2kitAuthInstance): {
77
- getSessionUser: (request: Request) => Promise<SessionUser | null>;
78
- getSessionUserNumeric: (request: Request) => Promise<SessionUserNumeric | null>;
79
- };
80
-
81
- export { type Sa2kitAuthInstance as S, mountAuthHandler as a, createAuthRouteHandlers as b, createSa2kitAuth as c, createSessionValidator as d, getSessionUserNumeric as e, type Sa2kitAuthConfig as f, getSessionUser as g, type Sa2kitSmsProvider as h, type Sa2kitEmailProvider as i, type Sa2kitAuth as j, type SessionUser as k, mountNextAuthHandler as m };
@@ -1,99 +0,0 @@
1
- import { U as UserRole } from './enums-Dume-V5Y.js';
2
-
3
- /**
4
- * Auth 模块类型定义
5
- * Auth Module Types
6
- */
7
-
8
- /**
9
- * 用户基础信息(核心字段)
10
- * Base User Information
11
- */
12
- interface BaseUser {
13
- id: string;
14
- email: string;
15
- username: string;
16
- role: UserRole;
17
- }
18
- /**
19
- * 扩展用户信息(可选字段)
20
- * Extended User Information
21
- */
22
- interface User extends BaseUser {
23
- nickname?: string;
24
- avatar?: string;
25
- createdAt?: string;
26
- updatedAt?: string;
27
- [key: string]: any;
28
- }
29
- /**
30
- * 登录表单数据
31
- * Login Form Data
32
- */
33
- interface LoginForm {
34
- email: string;
35
- password: string;
36
- rememberMe?: boolean;
37
- }
38
- /**
39
- * 注册表单数据
40
- * Register Form Data
41
- */
42
- interface RegisterForm {
43
- email: string;
44
- username: string;
45
- password: string;
46
- confirmPassword?: string;
47
- nickname?: string;
48
- }
49
- /**
50
- * API 响应类型
51
- */
52
- interface ApiResponse<T = any> {
53
- success: boolean;
54
- data?: T;
55
- error?: string;
56
- message?: string;
57
- }
58
- /**
59
- * 认证响应类型
60
- */
61
- interface AuthResponse {
62
- user: User;
63
- token: string;
64
- }
65
- /**
66
- * API 客户端基础接口
67
- */
68
- interface IAuthClient {
69
- isAuthenticated(): Promise<boolean>;
70
- getCurrentUser(): Promise<ApiResponse<User>>;
71
- login(email: string, password: string): Promise<ApiResponse<AuthResponse>>;
72
- register(email: string, password: string, username: string): Promise<ApiResponse<AuthResponse>>;
73
- logout(): Promise<void>;
74
- clearUserData(): Promise<void>;
75
- }
76
- /**
77
- * 认证操作结果接口
78
- */
79
- interface AuthResult {
80
- success: boolean;
81
- error?: string;
82
- }
83
- /**
84
- * useAuth Hook 返回值接口
85
- */
86
- interface UseAuthReturn {
87
- user: User | null;
88
- isLoggedIn: boolean;
89
- loading: boolean;
90
- checkingAuth: boolean;
91
- error: string | null;
92
- login: (email: string, password: string) => Promise<AuthResult>;
93
- register: (email: string, password: string, username: string) => Promise<AuthResult>;
94
- logout: () => Promise<void>;
95
- refresh: () => Promise<void>;
96
- clearError: () => void;
97
- }
98
-
99
- export type { AuthResult as A, BaseUser as B, IAuthClient as I, LoginForm as L, RegisterForm as R, User as U, UseAuthReturn as a, ApiResponse as b, AuthResponse as c };
@@ -1,99 +0,0 @@
1
- import { U as UserRole } from './enums-Dume-V5Y.mjs';
2
-
3
- /**
4
- * Auth 模块类型定义
5
- * Auth Module Types
6
- */
7
-
8
- /**
9
- * 用户基础信息(核心字段)
10
- * Base User Information
11
- */
12
- interface BaseUser {
13
- id: string;
14
- email: string;
15
- username: string;
16
- role: UserRole;
17
- }
18
- /**
19
- * 扩展用户信息(可选字段)
20
- * Extended User Information
21
- */
22
- interface User extends BaseUser {
23
- nickname?: string;
24
- avatar?: string;
25
- createdAt?: string;
26
- updatedAt?: string;
27
- [key: string]: any;
28
- }
29
- /**
30
- * 登录表单数据
31
- * Login Form Data
32
- */
33
- interface LoginForm {
34
- email: string;
35
- password: string;
36
- rememberMe?: boolean;
37
- }
38
- /**
39
- * 注册表单数据
40
- * Register Form Data
41
- */
42
- interface RegisterForm {
43
- email: string;
44
- username: string;
45
- password: string;
46
- confirmPassword?: string;
47
- nickname?: string;
48
- }
49
- /**
50
- * API 响应类型
51
- */
52
- interface ApiResponse<T = any> {
53
- success: boolean;
54
- data?: T;
55
- error?: string;
56
- message?: string;
57
- }
58
- /**
59
- * 认证响应类型
60
- */
61
- interface AuthResponse {
62
- user: User;
63
- token: string;
64
- }
65
- /**
66
- * API 客户端基础接口
67
- */
68
- interface IAuthClient {
69
- isAuthenticated(): Promise<boolean>;
70
- getCurrentUser(): Promise<ApiResponse<User>>;
71
- login(email: string, password: string): Promise<ApiResponse<AuthResponse>>;
72
- register(email: string, password: string, username: string): Promise<ApiResponse<AuthResponse>>;
73
- logout(): Promise<void>;
74
- clearUserData(): Promise<void>;
75
- }
76
- /**
77
- * 认证操作结果接口
78
- */
79
- interface AuthResult {
80
- success: boolean;
81
- error?: string;
82
- }
83
- /**
84
- * useAuth Hook 返回值接口
85
- */
86
- interface UseAuthReturn {
87
- user: User | null;
88
- isLoggedIn: boolean;
89
- loading: boolean;
90
- checkingAuth: boolean;
91
- error: string | null;
92
- login: (email: string, password: string) => Promise<AuthResult>;
93
- register: (email: string, password: string, username: string) => Promise<AuthResult>;
94
- logout: () => Promise<void>;
95
- refresh: () => Promise<void>;
96
- clearError: () => void;
97
- }
98
-
99
- export type { AuthResult as A, BaseUser as B, IAuthClient as I, LoginForm as L, RegisterForm as R, User as U, UseAuthReturn as a, ApiResponse as b, AuthResponse as c };
@@ -1,25 +0,0 @@
1
- /**
2
- * @deprecated 2.x headless 表单状态
3
- */
4
- interface LoginFormState {
5
- email: string;
6
- password: string;
7
- loading: boolean;
8
- error: string | null;
9
- handleEmailChange: (value: string) => void;
10
- handlePasswordChange: (value: string) => void;
11
- handleSubmit: (e?: React.FormEvent) => Promise<void>;
12
- }
13
- interface RegisterFormState {
14
- email: string;
15
- password: string;
16
- username: string;
17
- loading: boolean;
18
- error: string | null;
19
- handleEmailChange: (value: string) => void;
20
- handlePasswordChange: (value: string) => void;
21
- handleUsernameChange: (value: string) => void;
22
- handleSubmit: (e?: React.FormEvent) => Promise<void>;
23
- }
24
-
25
- export type { LoginFormState as L, RegisterFormState as R };
@@ -1,25 +0,0 @@
1
- /**
2
- * @deprecated 2.x headless 表单状态
3
- */
4
- interface LoginFormState {
5
- email: string;
6
- password: string;
7
- loading: boolean;
8
- error: string | null;
9
- handleEmailChange: (value: string) => void;
10
- handlePasswordChange: (value: string) => void;
11
- handleSubmit: (e?: React.FormEvent) => Promise<void>;
12
- }
13
- interface RegisterFormState {
14
- email: string;
15
- password: string;
16
- username: string;
17
- loading: boolean;
18
- error: string | null;
19
- handleEmailChange: (value: string) => void;
20
- handlePasswordChange: (value: string) => void;
21
- handleUsernameChange: (value: string) => void;
22
- handleSubmit: (e?: React.FormEvent) => Promise<void>;
23
- }
24
-
25
- export type { LoginFormState as L, RegisterFormState as R };