@motherbase/client 1.3.1 → 1.4.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.
- package/README.md +284 -265
- package/dist/auth.d.ts +143 -14
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +317 -14
- package/dist/auth.js.map +1 -1
- package/dist/channel.d.ts +15 -12
- package/dist/channel.d.ts.map +1 -1
- package/dist/channel.js.map +1 -1
- package/dist/compat.d.ts +40 -0
- package/dist/compat.d.ts.map +1 -0
- package/dist/compat.js +98 -0
- package/dist/compat.js.map +1 -0
- package/dist/cookie.d.ts +10 -2
- package/dist/cookie.d.ts.map +1 -1
- package/dist/cookie.js +13 -5
- package/dist/cookie.js.map +1 -1
- package/dist/database.d.ts +20 -1
- package/dist/database.d.ts.map +1 -1
- package/dist/functions.d.ts +36 -0
- package/dist/functions.d.ts.map +1 -1
- package/dist/functions.js +56 -5
- package/dist/functions.js.map +1 -1
- package/dist/http.d.ts +27 -0
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +57 -9
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +72 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +163 -12
- package/dist/index.js.map +1 -1
- package/dist/postgrest.d.ts +88 -1
- package/dist/postgrest.d.ts.map +1 -1
- package/dist/postgrest.js +179 -17
- package/dist/postgrest.js.map +1 -1
- package/dist/query.d.ts +97 -0
- package/dist/query.d.ts.map +1 -0
- package/dist/query.js +94 -0
- package/dist/query.js.map +1 -0
- package/dist/session.d.ts +12 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +49 -3
- package/dist/session.js.map +1 -1
- package/dist/storage.d.ts +172 -5
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +249 -6
- package/dist/storage.js.map +1 -1
- package/dist/testing.d.ts +38 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +50 -0
- package/dist/testing.js.map +1 -0
- package/dist/types.d.ts +257 -20
- package/dist/types.d.ts.map +1 -1
- package/dist/warn.d.ts +4 -0
- package/dist/warn.d.ts.map +1 -0
- package/dist/warn.js +27 -0
- package/dist/warn.js.map +1 -0
- package/package.json +10 -2
package/dist/auth.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { MfaClient } from './mfa.js';
|
|
|
2
2
|
import { AuthAdminClient } from './admin.js';
|
|
3
3
|
import type { HttpClient } from './http.js';
|
|
4
4
|
import type { SessionStore } from './session.js';
|
|
5
|
-
import type { AuthChangeListener, MotherbaseResponse, Session, User } from './types.js';
|
|
5
|
+
import type { AuthChangeListener, MotherbaseResponse, Session, User, UserIdentity } from './types.js';
|
|
6
6
|
export interface SignUpCredentials {
|
|
7
7
|
email: string;
|
|
8
8
|
password: string;
|
|
@@ -14,14 +14,23 @@ export interface SignInWithPasswordCredentials {
|
|
|
14
14
|
password: string;
|
|
15
15
|
}
|
|
16
16
|
export interface SignInWithOtpCredentials {
|
|
17
|
-
email
|
|
17
|
+
email?: string;
|
|
18
|
+
/** E.164 phone number. Routes to the SMS one-time code flow instead. */
|
|
19
|
+
phone?: string;
|
|
18
20
|
}
|
|
19
21
|
export interface VerifyOtpParams {
|
|
20
|
-
email
|
|
21
|
-
/**
|
|
22
|
+
email?: string;
|
|
23
|
+
/** E.164 phone number, when the code was sent by SMS. */
|
|
24
|
+
phone?: string;
|
|
25
|
+
/** The code that was sent. Named `token` for supabase-js parity. */
|
|
22
26
|
token: string;
|
|
23
|
-
/**
|
|
24
|
-
|
|
27
|
+
/**
|
|
28
|
+
* supabase-js verification type. The channel actually follows the identifier
|
|
29
|
+
* you pass; this only disambiguates if both are present. `recovery` and
|
|
30
|
+
* `email_change` are not routed: use `resetPassword` for the first, and
|
|
31
|
+
* email changes are not supported.
|
|
32
|
+
*/
|
|
33
|
+
type?: 'email' | 'sms' | 'phone_change' | 'recovery' | 'email_change' | 'signup';
|
|
25
34
|
}
|
|
26
35
|
export interface SignInWithOAuthCredentials {
|
|
27
36
|
/** Social provider id, e.g. 'google' or 'apple'. Must be enabled on the backend. */
|
|
@@ -43,7 +52,7 @@ export interface DeleteUserAttributes {
|
|
|
43
52
|
callbackURL?: string;
|
|
44
53
|
}
|
|
45
54
|
export interface UpdateUserAttributes {
|
|
46
|
-
/** New password. Requires `currentPassword
|
|
55
|
+
/** New password. Requires `currentPassword`. The backend does not allow a
|
|
47
56
|
* blind password change from an authenticated session. */
|
|
48
57
|
password?: string;
|
|
49
58
|
currentPassword?: string;
|
|
@@ -84,6 +93,7 @@ export declare class AuthClient {
|
|
|
84
93
|
* these with a publishable key is a 401, not a missing method.
|
|
85
94
|
*/
|
|
86
95
|
readonly admin: AuthAdminClient;
|
|
96
|
+
private autoRefreshTimer;
|
|
87
97
|
constructor(http: HttpClient, store: SessionStore);
|
|
88
98
|
signUp(credentials: SignUpCredentials): Promise<MotherbaseResponse<{
|
|
89
99
|
user: User | null;
|
|
@@ -109,12 +119,41 @@ export declare class AuthClient {
|
|
|
109
119
|
}): Promise<{
|
|
110
120
|
error: MotherbaseResponse<null>['error'];
|
|
111
121
|
}>;
|
|
112
|
-
/**
|
|
122
|
+
/**
|
|
123
|
+
* Send a one-time sign-in code, by email or by SMS. Pair with `verifyOtp` to
|
|
124
|
+
* complete the sign-in.
|
|
125
|
+
*
|
|
126
|
+
* `{ phone }` routes to the phone-number plugin, which the project has to
|
|
127
|
+
* have enabled with an SMS sender configured; without one the call resolves
|
|
128
|
+
* with the backend's error rather than pretending a code was sent.
|
|
129
|
+
*/
|
|
113
130
|
signInWithOtp(credentials: SignInWithOtpCredentials): Promise<{
|
|
114
131
|
data: Record<string, never>;
|
|
115
132
|
error: MotherbaseResponse<null>['error'];
|
|
116
133
|
}>;
|
|
117
|
-
/**
|
|
134
|
+
/**
|
|
135
|
+
* Send the one-time code again, supabase-js style.
|
|
136
|
+
*
|
|
137
|
+
* supabase-js names the flows `signup` (confirm a new address), `email_change`
|
|
138
|
+
* and `recovery`; Better Auth names them `email-verification` and
|
|
139
|
+
* `forget-password`. The mapping lives here so ported code keeps working.
|
|
140
|
+
* `sms` and `phone_change` re-send an SMS code through the phone-number flow.
|
|
141
|
+
*/
|
|
142
|
+
resend(params: {
|
|
143
|
+
type: 'signup' | 'email_change' | 'recovery' | 'sms' | 'phone_change';
|
|
144
|
+
email?: string;
|
|
145
|
+
phone?: string;
|
|
146
|
+
}): Promise<{
|
|
147
|
+
data: Record<string, never>;
|
|
148
|
+
error: MotherbaseResponse<null>['error'];
|
|
149
|
+
}>;
|
|
150
|
+
/**
|
|
151
|
+
* Complete a `signInWithOtp` sign-in with the code that was sent.
|
|
152
|
+
*
|
|
153
|
+
* The channel follows the identifier, as in supabase-js: `{ phone }` verifies
|
|
154
|
+
* an SMS code, `{ email }` an email one. `type` is accepted for signature
|
|
155
|
+
* parity and only disambiguates when both are somehow present.
|
|
156
|
+
*/
|
|
118
157
|
verifyOtp(params: VerifyOtpParams): Promise<MotherbaseResponse<{
|
|
119
158
|
user: User | null;
|
|
120
159
|
session: Session | null;
|
|
@@ -152,7 +191,7 @@ export declare class AuthClient {
|
|
|
152
191
|
}>>;
|
|
153
192
|
/**
|
|
154
193
|
* Update the signed-in user's profile fields and/or password. Password
|
|
155
|
-
* changes require `currentPassword` (a Better Auth requirement
|
|
194
|
+
* changes require `currentPassword` (a Better Auth requirement. There is no
|
|
156
195
|
* blind password overwrite from an authenticated session).
|
|
157
196
|
*/
|
|
158
197
|
updateUser(attributes: UpdateUserAttributes): Promise<MotherbaseResponse<{
|
|
@@ -160,7 +199,7 @@ export declare class AuthClient {
|
|
|
160
199
|
}>>;
|
|
161
200
|
/**
|
|
162
201
|
* Permanently delete the signed-in user's account. Not part of the
|
|
163
|
-
* supabase-js client surface (there it's admin-only)
|
|
202
|
+
* supabase-js client surface (there it's admin-only). Kept here because
|
|
164
203
|
* self-service account deletion is a real product need. Requires the
|
|
165
204
|
* backend's `delete-user` flow to be enabled; clears the local session on
|
|
166
205
|
* success.
|
|
@@ -172,7 +211,7 @@ export declare class AuthClient {
|
|
|
172
211
|
* Adopt an externally-obtained access token as the current session (e.g. one
|
|
173
212
|
* captured from an OAuth redirect). Validates it against the server before
|
|
174
213
|
* persisting. `refresh_token` is accepted for supabase-js signature parity
|
|
175
|
-
* and unused
|
|
214
|
+
* and unused: Better Auth bearer sessions have none.
|
|
176
215
|
*/
|
|
177
216
|
setSession(currentSession: {
|
|
178
217
|
access_token: string;
|
|
@@ -205,19 +244,109 @@ export declare class AuthClient {
|
|
|
205
244
|
getUser(): Promise<MotherbaseResponse<{
|
|
206
245
|
user: User | null;
|
|
207
246
|
}>>;
|
|
208
|
-
/**
|
|
247
|
+
/**
|
|
248
|
+
* NEVER USE FOR AN AUTHORIZATION DECISION. Use {@link getUser} instead.
|
|
249
|
+
*
|
|
250
|
+
* The locally-held session, if any (no network call). It is whatever the
|
|
251
|
+
* caller's cookie or storage said, parsed: unsigned JSON the browser sent,
|
|
252
|
+
* which anyone can set by hand. `session.user.id`, `.email` and `.role` are
|
|
253
|
+
* therefore attacker-controlled, and an admin allowlist checked against
|
|
254
|
+
* them is checked against nothing.
|
|
255
|
+
*
|
|
256
|
+
* Reads and writes through `from()` are unaffected: they carry the access
|
|
257
|
+
* token to the backend, which verifies it under RLS. It is the decisions
|
|
258
|
+
* your own app takes from `session.user` that are forgeable.
|
|
259
|
+
*
|
|
260
|
+
* `getUser()` costs one round trip and returns the user the backend
|
|
261
|
+
* confirms, in the same `{ data, error }` shape. Prefer it everywhere but a
|
|
262
|
+
* cosmetic "am I probably signed in" check.
|
|
263
|
+
*/
|
|
209
264
|
getSession(): Promise<MotherbaseResponse<{
|
|
210
265
|
session: Session | null;
|
|
211
266
|
}>>;
|
|
212
267
|
/**
|
|
213
268
|
* Revalidate the current session against the server. Better Auth bearer
|
|
214
|
-
* sessions have no refresh token
|
|
269
|
+
* sessions have no refresh token: if the session is still valid the user is
|
|
215
270
|
* refreshed; otherwise the local session is cleared.
|
|
216
271
|
*/
|
|
217
272
|
refreshSession(): Promise<MotherbaseResponse<{
|
|
218
273
|
user: User | null;
|
|
219
274
|
session: Session | null;
|
|
220
275
|
}>>;
|
|
276
|
+
/**
|
|
277
|
+
* Subscribe to auth changes, supabase-js style.
|
|
278
|
+
*
|
|
279
|
+
* The callback fires once with `INITIAL_SESSION` as soon as the stored
|
|
280
|
+
* session has been read, before any later event. That first call is not a
|
|
281
|
+
* nicety: the standard Supabase bootstrap is
|
|
282
|
+
* `if (event === 'INITIAL_SESSION') setLoading(false)`, and without it the
|
|
283
|
+
* app renders its loading state forever for a signed-out visitor, who never
|
|
284
|
+
* produces any other event.
|
|
285
|
+
*
|
|
286
|
+
* It is delivered asynchronously (after hydration), so unsubscribing
|
|
287
|
+
* synchronously suppresses it, exactly as in supabase-js.
|
|
288
|
+
*/
|
|
289
|
+
/**
|
|
290
|
+
* The providers linked to the signed-in user, in the supabase-js identity
|
|
291
|
+
* shape. Backed by Better Auth's `list-accounts`, which is why `email` shows
|
|
292
|
+
* up as an identity for a password account: it is a real linked credential,
|
|
293
|
+
* exactly as in Supabase.
|
|
294
|
+
*/
|
|
295
|
+
getUserIdentities(): Promise<MotherbaseResponse<{
|
|
296
|
+
identities: UserIdentity[];
|
|
297
|
+
}>>;
|
|
298
|
+
/**
|
|
299
|
+
* Link another provider to the signed-in user. Like `signInWithOAuth`, this
|
|
300
|
+
* only starts the flow: the browser is sent to the provider and comes back
|
|
301
|
+
* through the callback.
|
|
302
|
+
*/
|
|
303
|
+
linkIdentity(credentials: SignInWithOAuthCredentials): Promise<MotherbaseResponse<{
|
|
304
|
+
provider: string;
|
|
305
|
+
url: string | null;
|
|
306
|
+
}>>;
|
|
307
|
+
/** Unlink a provider from the signed-in user. */
|
|
308
|
+
unlinkIdentity(identity: {
|
|
309
|
+
provider: string;
|
|
310
|
+
id?: string;
|
|
311
|
+
identity_id?: string;
|
|
312
|
+
}): Promise<MotherbaseResponse<Record<string, never>>>;
|
|
313
|
+
/**
|
|
314
|
+
* Native mobile sign-in with a provider id token (Sign in with Apple, Google
|
|
315
|
+
* One Tap), routed to Better Auth's social sign-in with an `idToken`.
|
|
316
|
+
* The provider must be configured on the backend.
|
|
317
|
+
*/
|
|
318
|
+
signInWithIdToken(params: {
|
|
319
|
+
provider: string;
|
|
320
|
+
token: string;
|
|
321
|
+
access_token?: string;
|
|
322
|
+
nonce?: string;
|
|
323
|
+
}): Promise<MotherbaseResponse<{
|
|
324
|
+
user: User | null;
|
|
325
|
+
session: Session | null;
|
|
326
|
+
}>>;
|
|
327
|
+
/**
|
|
328
|
+
* Claims for the current session, as a JWT payload.
|
|
329
|
+
*
|
|
330
|
+
* supabase-js reads them out of the access token, which is itself a JWT.
|
|
331
|
+
* A Better Auth session token is an opaque bearer, so this asks the server's
|
|
332
|
+
* jwt plugin to mint one and decodes it. The decode is NOT a verification:
|
|
333
|
+
* the token came from the authenticated endpoint over TLS, and a client
|
|
334
|
+
* verifying a token it just asked for proves nothing. Verify server side,
|
|
335
|
+
* against `/api/auth/jwks`.
|
|
336
|
+
*/
|
|
337
|
+
getClaims(): Promise<MotherbaseResponse<{
|
|
338
|
+
claims: Record<string, unknown>;
|
|
339
|
+
token: string;
|
|
340
|
+
}>>;
|
|
341
|
+
/**
|
|
342
|
+
* Revalidate the session on a timer, the way supabase-js does while the tab
|
|
343
|
+
* is focused. Motherbase refreshes on a 401 already, so this is opt-in: it
|
|
344
|
+
* exists so a ported app that calls it keeps working, and so a long-lived
|
|
345
|
+
* screen notices a revoked session without waiting for its next request.
|
|
346
|
+
*/
|
|
347
|
+
startAutoRefresh(intervalMs?: number): void;
|
|
348
|
+
/** Stop the timer started by `startAutoRefresh`. Safe to call when none runs. */
|
|
349
|
+
stopAutoRefresh(): void;
|
|
221
350
|
onAuthStateChange(callback: AuthChangeListener): {
|
|
222
351
|
data: {
|
|
223
352
|
subscription: Subscription;
|
package/dist/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|