@kaiz11/stack-client 0.0.14

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 (263) hide show
  1. package/LICENSE +32 -0
  2. package/README.md +586 -0
  3. package/dist/accounts/accounts-client.d.ts +188 -0
  4. package/dist/accounts/accounts-client.d.ts.map +1 -0
  5. package/dist/accounts/accounts-client.js +264 -0
  6. package/dist/accounts/accounts-client.js.map +1 -0
  7. package/dist/accounts/index.d.ts +8 -0
  8. package/dist/accounts/index.d.ts.map +1 -0
  9. package/dist/accounts/index.js +8 -0
  10. package/dist/accounts/index.js.map +1 -0
  11. package/dist/accounts/mock-accounts.d.ts +90 -0
  12. package/dist/accounts/mock-accounts.d.ts.map +1 -0
  13. package/dist/accounts/mock-accounts.js +434 -0
  14. package/dist/accounts/mock-accounts.js.map +1 -0
  15. package/dist/accounts/types.d.ts +180 -0
  16. package/dist/accounts/types.d.ts.map +1 -0
  17. package/dist/accounts/types.js +59 -0
  18. package/dist/accounts/types.js.map +1 -0
  19. package/dist/auth/auth-client.d.ts +224 -0
  20. package/dist/auth/auth-client.d.ts.map +1 -0
  21. package/dist/auth/auth-client.js +230 -0
  22. package/dist/auth/auth-client.js.map +1 -0
  23. package/dist/auth/base-auth.d.ts +44 -0
  24. package/dist/auth/base-auth.d.ts.map +1 -0
  25. package/dist/auth/base-auth.js +55 -0
  26. package/dist/auth/base-auth.js.map +1 -0
  27. package/dist/auth/index.d.ts +11 -0
  28. package/dist/auth/index.d.ts.map +1 -0
  29. package/dist/auth/index.js +11 -0
  30. package/dist/auth/index.js.map +1 -0
  31. package/dist/auth/methods/admin.d.ts +59 -0
  32. package/dist/auth/methods/admin.d.ts.map +1 -0
  33. package/dist/auth/methods/admin.js +55 -0
  34. package/dist/auth/methods/admin.js.map +1 -0
  35. package/dist/auth/methods/index.d.ts +9 -0
  36. package/dist/auth/methods/index.d.ts.map +1 -0
  37. package/dist/auth/methods/index.js +8 -0
  38. package/dist/auth/methods/index.js.map +1 -0
  39. package/dist/auth/methods/magic-link.d.ts +27 -0
  40. package/dist/auth/methods/magic-link.d.ts.map +1 -0
  41. package/dist/auth/methods/magic-link.js +37 -0
  42. package/dist/auth/methods/magic-link.js.map +1 -0
  43. package/dist/auth/methods/mfa.d.ts +92 -0
  44. package/dist/auth/methods/mfa.d.ts.map +1 -0
  45. package/dist/auth/methods/mfa.js +153 -0
  46. package/dist/auth/methods/mfa.js.map +1 -0
  47. package/dist/auth/methods/oauth.d.ts +62 -0
  48. package/dist/auth/methods/oauth.d.ts.map +1 -0
  49. package/dist/auth/methods/oauth.js +165 -0
  50. package/dist/auth/methods/oauth.js.map +1 -0
  51. package/dist/auth/methods/otp.d.ts +43 -0
  52. package/dist/auth/methods/otp.d.ts.map +1 -0
  53. package/dist/auth/methods/otp.js +66 -0
  54. package/dist/auth/methods/otp.js.map +1 -0
  55. package/dist/auth/methods/password.d.ts +64 -0
  56. package/dist/auth/methods/password.d.ts.map +1 -0
  57. package/dist/auth/methods/password.js +116 -0
  58. package/dist/auth/methods/password.js.map +1 -0
  59. package/dist/auth/methods/recovery.d.ts +62 -0
  60. package/dist/auth/methods/recovery.d.ts.map +1 -0
  61. package/dist/auth/methods/recovery.js +100 -0
  62. package/dist/auth/methods/recovery.js.map +1 -0
  63. package/dist/auth/mock-auth.d.ts +135 -0
  64. package/dist/auth/mock-auth.d.ts.map +1 -0
  65. package/dist/auth/mock-auth.js +417 -0
  66. package/dist/auth/mock-auth.js.map +1 -0
  67. package/dist/auth/server/helpers.d.ts +215 -0
  68. package/dist/auth/server/helpers.d.ts.map +1 -0
  69. package/dist/auth/server/helpers.js +241 -0
  70. package/dist/auth/server/helpers.js.map +1 -0
  71. package/dist/auth/server/index.d.ts +24 -0
  72. package/dist/auth/server/index.d.ts.map +1 -0
  73. package/dist/auth/server/index.js +40 -0
  74. package/dist/auth/server/index.js.map +1 -0
  75. package/dist/auth/server/middleware.d.ts +305 -0
  76. package/dist/auth/server/middleware.d.ts.map +1 -0
  77. package/dist/auth/server/middleware.js +405 -0
  78. package/dist/auth/server/middleware.js.map +1 -0
  79. package/dist/auth/server/verify.d.ts +184 -0
  80. package/dist/auth/server/verify.d.ts.map +1 -0
  81. package/dist/auth/server/verify.js +222 -0
  82. package/dist/auth/server/verify.js.map +1 -0
  83. package/dist/auth/token-manager.d.ts +94 -0
  84. package/dist/auth/token-manager.d.ts.map +1 -0
  85. package/dist/auth/token-manager.js +231 -0
  86. package/dist/auth/token-manager.js.map +1 -0
  87. package/dist/auth/types.d.ts +412 -0
  88. package/dist/auth/types.d.ts.map +1 -0
  89. package/dist/auth/types.js +66 -0
  90. package/dist/auth/types.js.map +1 -0
  91. package/dist/auth/user/identities.d.ts +62 -0
  92. package/dist/auth/user/identities.d.ts.map +1 -0
  93. package/dist/auth/user/identities.js +88 -0
  94. package/dist/auth/user/identities.js.map +1 -0
  95. package/dist/auth/user/index.d.ts +4 -0
  96. package/dist/auth/user/index.d.ts.map +1 -0
  97. package/dist/auth/user/index.js +4 -0
  98. package/dist/auth/user/index.js.map +1 -0
  99. package/dist/auth/user/user.d.ts +64 -0
  100. package/dist/auth/user/user.d.ts.map +1 -0
  101. package/dist/auth/user/user.js +105 -0
  102. package/dist/auth/user/user.js.map +1 -0
  103. package/dist/auth/user/verification.d.ts +49 -0
  104. package/dist/auth/user/verification.d.ts.map +1 -0
  105. package/dist/auth/user/verification.js +71 -0
  106. package/dist/auth/user/verification.js.map +1 -0
  107. package/dist/cli/browser.d.ts +11 -0
  108. package/dist/cli/browser.d.ts.map +1 -0
  109. package/dist/cli/browser.js +35 -0
  110. package/dist/cli/browser.js.map +1 -0
  111. package/dist/cli/callback-server.d.ts +30 -0
  112. package/dist/cli/callback-server.d.ts.map +1 -0
  113. package/dist/cli/callback-server.js +100 -0
  114. package/dist/cli/callback-server.js.map +1 -0
  115. package/dist/cli/file-token-store.d.ts +79 -0
  116. package/dist/cli/file-token-store.d.ts.map +1 -0
  117. package/dist/cli/file-token-store.js +138 -0
  118. package/dist/cli/file-token-store.js.map +1 -0
  119. package/dist/cli/index.d.ts +33 -0
  120. package/dist/cli/index.d.ts.map +1 -0
  121. package/dist/cli/index.js +38 -0
  122. package/dist/cli/index.js.map +1 -0
  123. package/dist/cli/oauth.d.ts +67 -0
  124. package/dist/cli/oauth.d.ts.map +1 -0
  125. package/dist/cli/oauth.js +101 -0
  126. package/dist/cli/oauth.js.map +1 -0
  127. package/dist/cli/pkce.d.ts +35 -0
  128. package/dist/cli/pkce.d.ts.map +1 -0
  129. package/dist/cli/pkce.js +43 -0
  130. package/dist/cli/pkce.js.map +1 -0
  131. package/dist/client.d.ts +22 -0
  132. package/dist/client.d.ts.map +1 -0
  133. package/dist/client.js +99 -0
  134. package/dist/client.js.map +1 -0
  135. package/dist/db/client.d.ts +9 -0
  136. package/dist/db/client.d.ts.map +1 -0
  137. package/dist/db/client.js +19 -0
  138. package/dist/db/client.js.map +1 -0
  139. package/dist/db/errors.d.ts +19 -0
  140. package/dist/db/errors.d.ts.map +1 -0
  141. package/dist/db/errors.js +57 -0
  142. package/dist/db/errors.js.map +1 -0
  143. package/dist/db/index.d.ts +7 -0
  144. package/dist/db/index.d.ts.map +1 -0
  145. package/dist/db/index.js +5 -0
  146. package/dist/db/index.js.map +1 -0
  147. package/dist/db/mock.d.ts +28 -0
  148. package/dist/db/mock.d.ts.map +1 -0
  149. package/dist/db/mock.js +459 -0
  150. package/dist/db/mock.js.map +1 -0
  151. package/dist/db/types.d.ts +73 -0
  152. package/dist/db/types.d.ts.map +1 -0
  153. package/dist/db/types.js +2 -0
  154. package/dist/db/types.js.map +1 -0
  155. package/dist/index.d.ts +21 -0
  156. package/dist/index.d.ts.map +1 -0
  157. package/dist/index.js +20 -0
  158. package/dist/index.js.map +1 -0
  159. package/dist/lib/errors.d.ts +33 -0
  160. package/dist/lib/errors.d.ts.map +1 -0
  161. package/dist/lib/errors.js +76 -0
  162. package/dist/lib/errors.js.map +1 -0
  163. package/dist/lib/http.d.ts +81 -0
  164. package/dist/lib/http.d.ts.map +1 -0
  165. package/dist/lib/http.js +163 -0
  166. package/dist/lib/http.js.map +1 -0
  167. package/dist/lib/keys.d.ts +87 -0
  168. package/dist/lib/keys.d.ts.map +1 -0
  169. package/dist/lib/keys.js +147 -0
  170. package/dist/lib/keys.js.map +1 -0
  171. package/dist/lib/paths.d.ts +37 -0
  172. package/dist/lib/paths.d.ts.map +1 -0
  173. package/dist/lib/paths.js +49 -0
  174. package/dist/lib/paths.js.map +1 -0
  175. package/dist/lib/token-store.d.ts +42 -0
  176. package/dist/lib/token-store.d.ts.map +1 -0
  177. package/dist/lib/token-store.js +75 -0
  178. package/dist/lib/token-store.js.map +1 -0
  179. package/dist/mocks/handlers.d.ts +29 -0
  180. package/dist/mocks/handlers.d.ts.map +1 -0
  181. package/dist/mocks/handlers.js +79 -0
  182. package/dist/mocks/handlers.js.map +1 -0
  183. package/dist/mocks/index.d.ts +5 -0
  184. package/dist/mocks/index.d.ts.map +1 -0
  185. package/dist/mocks/index.js +9 -0
  186. package/dist/mocks/index.js.map +1 -0
  187. package/dist/mocks/responses.d.ts +76 -0
  188. package/dist/mocks/responses.d.ts.map +1 -0
  189. package/dist/mocks/responses.js +91 -0
  190. package/dist/mocks/responses.js.map +1 -0
  191. package/dist/mocks/server.d.ts +7 -0
  192. package/dist/mocks/server.d.ts.map +1 -0
  193. package/dist/mocks/server.js +9 -0
  194. package/dist/mocks/server.js.map +1 -0
  195. package/dist/mocks/state.d.ts +86 -0
  196. package/dist/mocks/state.d.ts.map +1 -0
  197. package/dist/mocks/state.js +77 -0
  198. package/dist/mocks/state.js.map +1 -0
  199. package/dist/storage/bucket-ref.d.ts +183 -0
  200. package/dist/storage/bucket-ref.d.ts.map +1 -0
  201. package/dist/storage/bucket-ref.js +529 -0
  202. package/dist/storage/bucket-ref.js.map +1 -0
  203. package/dist/storage/errors.d.ts +27 -0
  204. package/dist/storage/errors.d.ts.map +1 -0
  205. package/dist/storage/errors.js +89 -0
  206. package/dist/storage/errors.js.map +1 -0
  207. package/dist/storage/index.d.ts +13 -0
  208. package/dist/storage/index.d.ts.map +1 -0
  209. package/dist/storage/index.js +11 -0
  210. package/dist/storage/index.js.map +1 -0
  211. package/dist/storage/interface.d.ts +245 -0
  212. package/dist/storage/interface.d.ts.map +1 -0
  213. package/dist/storage/interface.js +2 -0
  214. package/dist/storage/interface.js.map +1 -0
  215. package/dist/storage/mock-storage.d.ts +67 -0
  216. package/dist/storage/mock-storage.d.ts.map +1 -0
  217. package/dist/storage/mock-storage.js +478 -0
  218. package/dist/storage/mock-storage.js.map +1 -0
  219. package/dist/storage/policies-client.d.ts +77 -0
  220. package/dist/storage/policies-client.d.ts.map +1 -0
  221. package/dist/storage/policies-client.js +115 -0
  222. package/dist/storage/policies-client.js.map +1 -0
  223. package/dist/storage/policy-templates.d.ts +6 -0
  224. package/dist/storage/policy-templates.d.ts.map +1 -0
  225. package/dist/storage/policy-templates.js +290 -0
  226. package/dist/storage/policy-templates.js.map +1 -0
  227. package/dist/storage/policy-types.d.ts +98 -0
  228. package/dist/storage/policy-types.d.ts.map +1 -0
  229. package/dist/storage/policy-types.js +20 -0
  230. package/dist/storage/policy-types.js.map +1 -0
  231. package/dist/storage/storage-client.d.ts +32 -0
  232. package/dist/storage/storage-client.d.ts.map +1 -0
  233. package/dist/storage/storage-client.js +94 -0
  234. package/dist/storage/storage-client.js.map +1 -0
  235. package/dist/storage/tus-upload.d.ts +56 -0
  236. package/dist/storage/tus-upload.d.ts.map +1 -0
  237. package/dist/storage/tus-upload.js +236 -0
  238. package/dist/storage/tus-upload.js.map +1 -0
  239. package/dist/storage/types.d.ts +335 -0
  240. package/dist/storage/types.d.ts.map +1 -0
  241. package/dist/storage/types.js +39 -0
  242. package/dist/storage/types.js.map +1 -0
  243. package/dist/test/auth/helpers.d.ts +33 -0
  244. package/dist/test/auth/helpers.d.ts.map +1 -0
  245. package/dist/test/auth/helpers.js +80 -0
  246. package/dist/test/auth/helpers.js.map +1 -0
  247. package/dist/test/helpers/jwt.d.ts +61 -0
  248. package/dist/test/helpers/jwt.d.ts.map +1 -0
  249. package/dist/test/helpers/jwt.js +132 -0
  250. package/dist/test/helpers/jwt.js.map +1 -0
  251. package/dist/test/helpers/mailpit.d.ts +61 -0
  252. package/dist/test/helpers/mailpit.d.ts.map +1 -0
  253. package/dist/test/helpers/mailpit.js +107 -0
  254. package/dist/test/helpers/mailpit.js.map +1 -0
  255. package/dist/test/setup.d.ts +2 -0
  256. package/dist/test/setup.d.ts.map +1 -0
  257. package/dist/test/setup.js +17 -0
  258. package/dist/test/setup.js.map +1 -0
  259. package/dist/types.d.ts +96 -0
  260. package/dist/types.d.ts.map +1 -0
  261. package/dist/types.js +5 -0
  262. package/dist/types.js.map +1 -0
  263. package/package.json +78 -0
@@ -0,0 +1,412 @@
1
+ /**
2
+ * Email and password credentials
3
+ */
4
+ export interface EmailPasswordCredentials {
5
+ email: string;
6
+ password: string;
7
+ }
8
+ /**
9
+ * Sign up options
10
+ */
11
+ export interface SignUpOptions extends EmailPasswordCredentials {
12
+ /** User metadata (name, avatar, etc.) */
13
+ data?: Record<string, unknown>;
14
+ }
15
+ /**
16
+ * OAuth provider names
17
+ */
18
+ export type OAuthProvider = "google" | "github" | "gitlab" | "bitbucket" | "azure" | "facebook" | "twitter" | "discord" | "twitch" | "spotify" | "slack" | "linkedin" | "notion" | "apple" | "zoom" | "figma" | "workos" | "keycloak";
19
+ /**
20
+ * OAuth sign in options
21
+ */
22
+ export interface OAuthSignInOptions {
23
+ /** OAuth provider */
24
+ provider: OAuthProvider;
25
+ /** URL to redirect to after sign in */
26
+ redirectTo?: string;
27
+ /** OAuth scopes to request */
28
+ scopes?: string;
29
+ /** Additional query params */
30
+ queryParams?: Record<string, string>;
31
+ /** Skip browser redirect (return URL instead) */
32
+ skipBrowserRedirect?: boolean;
33
+ }
34
+ /**
35
+ * OAuth callback result
36
+ */
37
+ export interface OAuthCallbackResult {
38
+ session: Session | null;
39
+ error: Error | null;
40
+ }
41
+ /**
42
+ * Magic link options
43
+ */
44
+ export interface MagicLinkOptions {
45
+ email: string;
46
+ /** URL to redirect to after clicking the link */
47
+ redirectTo?: string;
48
+ /** Whether to create user if they don't exist (default: false) */
49
+ shouldCreateUser?: boolean;
50
+ /** Custom data to include */
51
+ data?: Record<string, unknown>;
52
+ }
53
+ /**
54
+ * OTP (one-time password) options
55
+ */
56
+ export interface OtpSignInOptions {
57
+ /** Email or phone number */
58
+ email?: string;
59
+ phone?: string;
60
+ /** URL to redirect to (for email OTP with link) */
61
+ redirectTo?: string;
62
+ /** Whether to create user if they don't exist */
63
+ shouldCreateUser?: boolean;
64
+ /** Custom data to include */
65
+ data?: Record<string, unknown>;
66
+ }
67
+ /**
68
+ * OTP verification options
69
+ */
70
+ export interface OtpVerifyOptions {
71
+ /** Email or phone used for OTP */
72
+ email?: string;
73
+ phone?: string;
74
+ /** The OTP code */
75
+ token: string;
76
+ /** Type of OTP */
77
+ type: "sms" | "email" | "phone_change" | "email_change";
78
+ }
79
+ /**
80
+ * Password reset options
81
+ */
82
+ export interface PasswordResetOptions {
83
+ email: string;
84
+ /** URL to redirect to after clicking reset link */
85
+ redirectTo?: string;
86
+ }
87
+ /**
88
+ * Update password options
89
+ */
90
+ export interface UpdatePasswordOptions {
91
+ password: string;
92
+ /** Nonce from reauthentication (for sensitive operations) */
93
+ nonce?: string;
94
+ }
95
+ /**
96
+ * Reauthentication options
97
+ */
98
+ export interface ReauthenticateOptions {
99
+ /** Current password for reauthentication */
100
+ password?: string;
101
+ }
102
+ /**
103
+ * Logout scope
104
+ */
105
+ export type LogoutScope = "local" | "global";
106
+ /**
107
+ * User identity (linked OAuth account)
108
+ */
109
+ export interface UserIdentity {
110
+ id: string;
111
+ userId: string;
112
+ provider: string;
113
+ identityId: string;
114
+ identityData: Record<string, unknown>;
115
+ createdAt: string;
116
+ updatedAt: string;
117
+ lastSignInAt: string | null;
118
+ }
119
+ /**
120
+ * User object (normalized from GoTrueUser)
121
+ */
122
+ export interface User {
123
+ id: string;
124
+ email: string | null;
125
+ phone: string | null;
126
+ emailConfirmedAt: string | null;
127
+ phoneConfirmedAt: string | null;
128
+ createdAt: string;
129
+ updatedAt: string;
130
+ appMetadata: {
131
+ provider?: string;
132
+ providers?: string[];
133
+ };
134
+ userMetadata: Record<string, unknown>;
135
+ identities?: UserIdentity[];
136
+ factors?: Factor[];
137
+ }
138
+ /**
139
+ * Session object
140
+ */
141
+ export interface Session {
142
+ accessToken: string;
143
+ refreshToken: string;
144
+ expiresIn: number;
145
+ expiresAt: number;
146
+ tokenType: string;
147
+ user: User;
148
+ }
149
+ /**
150
+ * Update user options
151
+ */
152
+ export interface UpdateUserOptions {
153
+ email?: string;
154
+ phone?: string;
155
+ password?: string;
156
+ /** User metadata */
157
+ data?: Record<string, unknown>;
158
+ /** Nonce from reauthentication (required for email/phone/password changes) */
159
+ nonce?: string;
160
+ }
161
+ /**
162
+ * MFA factor types
163
+ */
164
+ export type FactorType = "totp" | "phone";
165
+ /**
166
+ * MFA factor status
167
+ */
168
+ export type FactorStatus = "unverified" | "verified";
169
+ /**
170
+ * MFA factor
171
+ */
172
+ export interface Factor {
173
+ id: string;
174
+ type: FactorType;
175
+ friendlyName?: string;
176
+ status: FactorStatus;
177
+ createdAt: string;
178
+ updatedAt: string;
179
+ }
180
+ /**
181
+ * MFA enrollment options
182
+ */
183
+ export interface EnrollFactorOptions {
184
+ /** Factor type */
185
+ type: FactorType;
186
+ /** Friendly name for the factor */
187
+ friendlyName?: string;
188
+ /** Phone number (required for phone factor) */
189
+ phone?: string;
190
+ }
191
+ /**
192
+ * MFA enrollment result
193
+ */
194
+ export interface EnrollFactorResult {
195
+ /** Factor ID */
196
+ id: string;
197
+ /** Factor type */
198
+ type: FactorType;
199
+ /** TOTP URI (for totp type) */
200
+ totpUri?: string;
201
+ /** QR code data URL (for totp type) */
202
+ qrCode?: string;
203
+ /** Recovery codes */
204
+ recoveryCodes?: string[];
205
+ }
206
+ /**
207
+ * MFA challenge options
208
+ */
209
+ export interface ChallengeFactorOptions {
210
+ /** Factor ID to challenge */
211
+ factorId: string;
212
+ /** Channel to send challenge (for phone factor) */
213
+ channel?: "sms" | "whatsapp";
214
+ }
215
+ /**
216
+ * MFA challenge result
217
+ */
218
+ export interface ChallengeFactorResult {
219
+ /** Challenge ID */
220
+ id: string;
221
+ /** Expiration timestamp */
222
+ expiresAt: number;
223
+ }
224
+ /**
225
+ * MFA verify options
226
+ */
227
+ export interface VerifyFactorOptions {
228
+ /** Factor ID */
229
+ factorId: string;
230
+ /** Challenge ID */
231
+ challengeId: string;
232
+ /** Verification code */
233
+ code: string;
234
+ }
235
+ /**
236
+ * Link identity options
237
+ */
238
+ export interface LinkIdentityOptions {
239
+ /** OAuth provider to link */
240
+ provider: OAuthProvider;
241
+ /** URL to redirect to after linking */
242
+ redirectTo?: string;
243
+ /** OAuth scopes to request */
244
+ scopes?: string;
245
+ }
246
+ /**
247
+ * Unlink identity options
248
+ */
249
+ export interface UnlinkIdentityOptions {
250
+ /** Identity ID to unlink */
251
+ identityId: string;
252
+ }
253
+ /**
254
+ * Verify email/phone options
255
+ */
256
+ export interface VerifyOptions {
257
+ /** Verification token from URL */
258
+ token: string;
259
+ /** Type of verification */
260
+ type: "signup" | "email_change" | "phone_change" | "recovery" | "invite";
261
+ /** Email (for email verification) */
262
+ email?: string;
263
+ /** Phone (for phone verification) */
264
+ phone?: string;
265
+ }
266
+ /**
267
+ * Resend verification options
268
+ */
269
+ export interface ResendVerificationOptions {
270
+ /** Email or phone to resend to */
271
+ email?: string;
272
+ phone?: string;
273
+ /** Type of verification to resend */
274
+ type: "signup" | "email_change" | "phone_change";
275
+ /** URL to redirect to */
276
+ redirectTo?: string;
277
+ }
278
+ /**
279
+ * Auth state change event
280
+ */
281
+ export type AuthChangeEvent = "SIGNED_IN" | "SIGNED_OUT" | "TOKEN_REFRESHED" | "USER_UPDATED" | "MFA_CHALLENGE_VERIFIED" | "PASSWORD_RECOVERY";
282
+ /**
283
+ * Auth state change callback
284
+ */
285
+ export type AuthChangeCallback = (event: AuthChangeEvent, session: Session | null) => void;
286
+ /**
287
+ * Unsubscribe function
288
+ */
289
+ export type Unsubscribe = () => void;
290
+ /**
291
+ * GoTrue token response
292
+ */
293
+ export interface GoTrueTokenResponse {
294
+ access_token: string;
295
+ refresh_token: string;
296
+ expires_in: number;
297
+ expires_at: number;
298
+ token_type: string;
299
+ user: GoTrueUser;
300
+ }
301
+ /**
302
+ * GoTrue signup response (may or may not include session)
303
+ * When email verification is required, only user info is returned.
304
+ * When auto-confirm is enabled, full token response is returned.
305
+ */
306
+ export interface GoTrueSignUpResponse {
307
+ id: string;
308
+ email?: string;
309
+ phone?: string;
310
+ created_at: string;
311
+ updated_at: string;
312
+ app_metadata: Record<string, unknown>;
313
+ user_metadata: Record<string, unknown>;
314
+ identities?: GoTrueIdentity[];
315
+ access_token?: string;
316
+ refresh_token?: string;
317
+ expires_in?: number;
318
+ expires_at?: number;
319
+ token_type?: string;
320
+ user?: GoTrueUser;
321
+ }
322
+ /**
323
+ * Signup result - either a full session or just user info (email verification pending)
324
+ */
325
+ export interface SignUpResult {
326
+ /** Session (only present if auto-confirm enabled or mock mode) */
327
+ session: Session | null;
328
+ /** User info (always present) */
329
+ user: User;
330
+ }
331
+ /**
332
+ * GoTrue user object
333
+ */
334
+ export interface GoTrueUser {
335
+ id: string;
336
+ aud: string;
337
+ email?: string;
338
+ phone?: string;
339
+ email_confirmed_at?: string;
340
+ phone_confirmed_at?: string;
341
+ created_at: string;
342
+ updated_at: string;
343
+ app_metadata: {
344
+ provider?: string;
345
+ providers?: string[];
346
+ };
347
+ user_metadata: Record<string, unknown>;
348
+ role?: string;
349
+ identities?: GoTrueIdentity[];
350
+ factors?: GoTrueFactor[];
351
+ }
352
+ /**
353
+ * GoTrue identity
354
+ */
355
+ export interface GoTrueIdentity {
356
+ id: string;
357
+ user_id: string;
358
+ provider: string;
359
+ identity_id: string;
360
+ identity_data: Record<string, unknown>;
361
+ created_at: string;
362
+ updated_at: string;
363
+ last_sign_in_at?: string;
364
+ }
365
+ /**
366
+ * GoTrue factor
367
+ */
368
+ export interface GoTrueFactor {
369
+ id: string;
370
+ factor_type: FactorType;
371
+ friendly_name?: string;
372
+ status: FactorStatus;
373
+ created_at: string;
374
+ updated_at: string;
375
+ }
376
+ /**
377
+ * Auth settings (public)
378
+ */
379
+ export interface AuthSettings {
380
+ /** Whether email signup is enabled */
381
+ disableSignup: boolean;
382
+ /** External OAuth providers enabled */
383
+ externalProviders: OAuthProvider[];
384
+ /** Whether phone auth is enabled */
385
+ phoneEnabled: boolean;
386
+ /** Whether email auth is enabled */
387
+ emailEnabled: boolean;
388
+ /** Whether SAML is enabled */
389
+ samlEnabled: boolean;
390
+ /** MFA settings */
391
+ mfa: {
392
+ enabled: boolean;
393
+ factorTypes: FactorType[];
394
+ };
395
+ }
396
+ /**
397
+ * Convert GoTrueIdentity to UserIdentity
398
+ */
399
+ export declare function normalizeIdentity(identity: GoTrueIdentity): UserIdentity;
400
+ /**
401
+ * Convert GoTrueFactor to Factor
402
+ */
403
+ export declare function normalizeFactor(factor: GoTrueFactor): Factor;
404
+ /**
405
+ * Convert GoTrueUser to User
406
+ */
407
+ export declare function normalizeUser(gotrueUser: GoTrueUser): User;
408
+ /**
409
+ * Convert GoTrueTokenResponse to Session
410
+ */
411
+ export declare function normalizeSession(response: GoTrueTokenResponse): Session;
412
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ // ============================================
2
+ // Credentials & Sign In Options
3
+ // ============================================
4
+ // ============================================
5
+ // Normalizers
6
+ // ============================================
7
+ /**
8
+ * Convert GoTrueIdentity to UserIdentity
9
+ */
10
+ export function normalizeIdentity(identity) {
11
+ return {
12
+ id: identity.id,
13
+ userId: identity.user_id,
14
+ provider: identity.provider,
15
+ identityId: identity.identity_id,
16
+ identityData: identity.identity_data,
17
+ createdAt: identity.created_at,
18
+ updatedAt: identity.updated_at,
19
+ lastSignInAt: identity.last_sign_in_at ?? null,
20
+ };
21
+ }
22
+ /**
23
+ * Convert GoTrueFactor to Factor
24
+ */
25
+ export function normalizeFactor(factor) {
26
+ return {
27
+ id: factor.id,
28
+ type: factor.factor_type,
29
+ friendlyName: factor.friendly_name,
30
+ status: factor.status,
31
+ createdAt: factor.created_at,
32
+ updatedAt: factor.updated_at,
33
+ };
34
+ }
35
+ /**
36
+ * Convert GoTrueUser to User
37
+ */
38
+ export function normalizeUser(gotrueUser) {
39
+ return {
40
+ id: gotrueUser.id,
41
+ email: gotrueUser.email ?? null,
42
+ phone: gotrueUser.phone ?? null,
43
+ emailConfirmedAt: gotrueUser.email_confirmed_at ?? null,
44
+ phoneConfirmedAt: gotrueUser.phone_confirmed_at ?? null,
45
+ createdAt: gotrueUser.created_at,
46
+ updatedAt: gotrueUser.updated_at,
47
+ appMetadata: gotrueUser.app_metadata,
48
+ userMetadata: gotrueUser.user_metadata,
49
+ identities: gotrueUser.identities?.map(normalizeIdentity),
50
+ factors: gotrueUser.factors?.map(normalizeFactor),
51
+ };
52
+ }
53
+ /**
54
+ * Convert GoTrueTokenResponse to Session
55
+ */
56
+ export function normalizeSession(response) {
57
+ return {
58
+ accessToken: response.access_token,
59
+ refreshToken: response.refresh_token,
60
+ expiresIn: response.expires_in,
61
+ expiresAt: response.expires_at,
62
+ tokenType: response.token_type,
63
+ user: normalizeUser(response.user),
64
+ };
65
+ }
66
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,gCAAgC;AAChC,+CAA+C;AA4e/C,+CAA+C;AAC/C,cAAc;AACd,+CAA+C;AAE/C;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAwB;IACxD,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,MAAM,EAAE,QAAQ,CAAC,OAAO;QACxB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,UAAU,EAAE,QAAQ,CAAC,WAAW;QAChC,YAAY,EAAE,QAAQ,CAAC,aAAa;QACpC,SAAS,EAAE,QAAQ,CAAC,UAAU;QAC9B,SAAS,EAAE,QAAQ,CAAC,UAAU;QAC9B,YAAY,EAAE,QAAQ,CAAC,eAAe,IAAI,IAAI;KAC/C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,WAAW;QACxB,YAAY,EAAE,MAAM,CAAC,aAAa;QAClC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,UAAU;QAC5B,SAAS,EAAE,MAAM,CAAC,UAAU;KAC7B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,UAAsB;IAClD,OAAO;QACL,EAAE,EAAE,UAAU,CAAC,EAAE;QACjB,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,IAAI;QAC/B,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,IAAI;QAC/B,gBAAgB,EAAE,UAAU,CAAC,kBAAkB,IAAI,IAAI;QACvD,gBAAgB,EAAE,UAAU,CAAC,kBAAkB,IAAI,IAAI;QACvD,SAAS,EAAE,UAAU,CAAC,UAAU;QAChC,SAAS,EAAE,UAAU,CAAC,UAAU;QAChC,WAAW,EAAE,UAAU,CAAC,YAAY;QACpC,YAAY,EAAE,UAAU,CAAC,aAAa;QACtC,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,iBAAiB,CAAC;QACzD,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,eAAe,CAAC;KAClD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAA6B;IAC5D,OAAO;QACL,WAAW,EAAE,QAAQ,CAAC,YAAY;QAClC,YAAY,EAAE,QAAQ,CAAC,aAAa;QACpC,SAAS,EAAE,QAAQ,CAAC,UAAU;QAC9B,SAAS,EAAE,QAAQ,CAAC,UAAU;QAC9B,SAAS,EAAE,QAAQ,CAAC,UAAU;QAC9B,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC;KACnC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,62 @@
1
+ import type { HttpClient } from "../../lib/http.js";
2
+ import type { UserIdentity, LinkIdentityOptions, UnlinkIdentityOptions } from "../types.js";
3
+ /**
4
+ * Identity management methods
5
+ *
6
+ * Manages linked OAuth identities (Google, GitHub, etc.)
7
+ */
8
+ export declare class IdentityMethods {
9
+ private readonly http;
10
+ private readonly tenantId;
11
+ constructor(http: HttpClient, tenantId: string);
12
+ /**
13
+ * Get the base URL for OAuth redirects
14
+ */
15
+ private getBaseUrl;
16
+ /**
17
+ * List all linked identities
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const identities = await client.auth.identities.list();
22
+ * for (const identity of identities) {
23
+ * console.log(identity.provider, identity.identityData.email);
24
+ * }
25
+ * ```
26
+ */
27
+ list(): Promise<UserIdentity[]>;
28
+ /**
29
+ * Link a new OAuth identity
30
+ *
31
+ * Initiates an OAuth flow to link another provider to the current account.
32
+ * After successful auth, the identity will be linked.
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * // Link GitHub account
37
+ * const { url } = await client.auth.identities.link({
38
+ * provider: "github",
39
+ * redirectTo: "https://myapp.com/settings/accounts",
40
+ * });
41
+ * ```
42
+ */
43
+ link(options: LinkIdentityOptions): Promise<{
44
+ url: string;
45
+ provider: string;
46
+ }>;
47
+ /**
48
+ * Unlink an OAuth identity
49
+ *
50
+ * Removes the linked identity from the account.
51
+ * User must have at least one other sign-in method.
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * await client.auth.identities.unlink({
56
+ * identityId: "identity-uuid",
57
+ * });
58
+ * ```
59
+ */
60
+ unlink(options: UnlinkIdentityOptions): Promise<void>;
61
+ }
62
+ //# sourceMappingURL=identities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identities.d.ts","sourceRoot":"","sources":["../../../src/auth/user/identities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EAEtB,MAAM,aAAa,CAAC;AAGrB;;;;GAIG;AACH,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM;IAGnC;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;;;;;;;;;OAUG;IACG,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAMrC;;;;;;;;;;;;;;OAcG;IACG,IAAI,CACR,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAqB7C;;;;;;;;;;;;OAYG;IACG,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;CAO5D"}
@@ -0,0 +1,88 @@
1
+ import { authPath } from "../../lib/paths.js";
2
+ import { normalizeIdentity } from "../types.js";
3
+ /**
4
+ * Identity management methods
5
+ *
6
+ * Manages linked OAuth identities (Google, GitHub, etc.)
7
+ */
8
+ export class IdentityMethods {
9
+ http;
10
+ tenantId;
11
+ constructor(http, tenantId) {
12
+ this.http = http;
13
+ this.tenantId = tenantId;
14
+ }
15
+ /**
16
+ * Get the base URL for OAuth redirects
17
+ */
18
+ getBaseUrl() {
19
+ return this.http.getBaseUrl();
20
+ }
21
+ /**
22
+ * List all linked identities
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * const identities = await client.auth.identities.list();
27
+ * for (const identity of identities) {
28
+ * console.log(identity.provider, identity.identityData.email);
29
+ * }
30
+ * ```
31
+ */
32
+ async list() {
33
+ const path = authPath(this.tenantId, "/user/identities");
34
+ const response = await this.http.get(path);
35
+ return response.map(normalizeIdentity);
36
+ }
37
+ /**
38
+ * Link a new OAuth identity
39
+ *
40
+ * Initiates an OAuth flow to link another provider to the current account.
41
+ * After successful auth, the identity will be linked.
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * // Link GitHub account
46
+ * const { url } = await client.auth.identities.link({
47
+ * provider: "github",
48
+ * redirectTo: "https://myapp.com/settings/accounts",
49
+ * });
50
+ * ```
51
+ */
52
+ async link(options) {
53
+ const { provider, redirectTo, scopes } = options;
54
+ // Build authorization URL for linking
55
+ const params = new URLSearchParams();
56
+ if (redirectTo)
57
+ params.set("redirect_to", redirectTo);
58
+ if (scopes)
59
+ params.set("scopes", scopes);
60
+ const baseUrl = this.getBaseUrl();
61
+ const authorizePath = authPath(this.tenantId, `/user/identities/authorize`);
62
+ const queryString = params.toString();
63
+ const url = `${baseUrl}${authorizePath}?provider=${provider}${queryString ? `&${queryString}` : ""}`;
64
+ // Redirect in browser
65
+ if (typeof window !== "undefined") {
66
+ window.location.href = url;
67
+ }
68
+ return { url, provider };
69
+ }
70
+ /**
71
+ * Unlink an OAuth identity
72
+ *
73
+ * Removes the linked identity from the account.
74
+ * User must have at least one other sign-in method.
75
+ *
76
+ * @example
77
+ * ```typescript
78
+ * await client.auth.identities.unlink({
79
+ * identityId: "identity-uuid",
80
+ * });
81
+ * ```
82
+ */
83
+ async unlink(options) {
84
+ const path = authPath(this.tenantId, `/user/identities/${options.identityId}`);
85
+ await this.http.delete(path);
86
+ }
87
+ }
88
+ //# sourceMappingURL=identities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identities.js","sourceRoot":"","sources":["../../../src/auth/user/identities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAO9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;GAIG;AACH,MAAM,OAAO,eAAe;IAEP;IACA;IAFnB,YACmB,IAAgB,EAChB,QAAgB;QADhB,SAAI,GAAJ,IAAI,CAAY;QAChB,aAAQ,GAAR,QAAQ,CAAQ;IAChC,CAAC;IAEJ;;OAEG;IACK,UAAU;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,IAAI,CAAC,CAAC;QAC7D,OAAO,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,IAAI,CACR,OAA4B;QAE5B,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAEjD,sCAAsC;QACtC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,UAAU;YAAE,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QACtD,IAAI,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEzC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,4BAA4B,CAAC,CAAC;QAC5E,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,aAAa,aAAa,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAErG,sBAAsB;QACtB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;QAC7B,CAAC;QAED,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,MAAM,CAAC,OAA8B;QACzC,MAAM,IAAI,GAAG,QAAQ,CACnB,IAAI,CAAC,QAAQ,EACb,oBAAoB,OAAO,CAAC,UAAU,EAAE,CACzC,CAAC;QACF,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export { UserMethods } from "./user.js";
2
+ export { IdentityMethods } from "./identities.js";
3
+ export { VerificationMethods } from "./verification.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/auth/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { UserMethods } from "./user.js";
2
+ export { IdentityMethods } from "./identities.js";
3
+ export { VerificationMethods } from "./verification.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/auth/user/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}