@motherbase/client 1.2.8 → 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 +73 -9
- package/dist/auth.d.ts +172 -14
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +399 -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 +23 -2
- package/dist/cookie.d.ts.map +1 -1
- package/dist/cookie.js +71 -9
- 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 +47 -7
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +73 -12
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +79 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +183 -11
- package/dist/index.js.map +1 -1
- package/dist/postgrest.d.ts +94 -1
- package/dist/postgrest.d.ts.map +1 -1
- package/dist/postgrest.js +185 -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 +19 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +57 -4
- 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 +264 -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 +60 -52
package/dist/auth.js
CHANGED
|
@@ -1,15 +1,69 @@
|
|
|
1
1
|
import { BackendError, toError } from './http.js';
|
|
2
|
+
import { normalizeUser } from './compat.js';
|
|
2
3
|
import { MfaClient } from './mfa.js';
|
|
3
4
|
import { AuthAdminClient } from './admin.js';
|
|
4
5
|
import { HTTP_ROUTES } from '@motherbase/contracts';
|
|
6
|
+
function asIsoString(value) {
|
|
7
|
+
if (typeof value === 'string')
|
|
8
|
+
return value;
|
|
9
|
+
if (value instanceof Date)
|
|
10
|
+
return value.toISOString();
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Read a JWT's payload without verifying it. Base64url, so `-`/`_` are mapped
|
|
15
|
+
* back and the padding is restored before decoding. Returns null for anything
|
|
16
|
+
* that is not a three-part token with a JSON object payload.
|
|
17
|
+
*/
|
|
18
|
+
function decodeJwtPayload(token) {
|
|
19
|
+
const parts = token.split('.');
|
|
20
|
+
if (parts.length !== 3)
|
|
21
|
+
return null;
|
|
22
|
+
try {
|
|
23
|
+
const base64 = parts[1].replace(/-/g, '+').replace(/_/g, '/');
|
|
24
|
+
const padded = base64 + '='.repeat((4 - (base64.length % 4)) % 4);
|
|
25
|
+
// `atob` is global in every runtime this SDK supports (browsers, Node 16+,
|
|
26
|
+
// Deno, workers). Its output is latin1, so the percent-escape round trip is
|
|
27
|
+
// what turns a multi-byte claim value back into correct UTF-8.
|
|
28
|
+
const json = decodeURIComponent(Array.from(atob(padded), c => `%${c.charCodeAt(0).toString(16).padStart(2, '0')}`).join(''));
|
|
29
|
+
const parsed = JSON.parse(json);
|
|
30
|
+
return parsed && typeof parsed === 'object' && !Array.isArray(parsed) ? parsed : null;
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
5
36
|
/** Build a clean Session from the Better Auth auth payload. */
|
|
6
37
|
function toSession(payload) {
|
|
7
38
|
return { accessToken: payload.token, user: payload.user };
|
|
8
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Read the token an OAuth callback left in the URL fragment and return the URL
|
|
42
|
+
* with it removed, so a reload or a shared link cannot replay it.
|
|
43
|
+
*
|
|
44
|
+
* The provider callback cannot answer the SDK with a JSON body: it is a browser
|
|
45
|
+
* redirect. The backend therefore appends `#access_token=…` to the redirect it
|
|
46
|
+
* issues, the same implicit flow supabase-js reads. Exported for testing.
|
|
47
|
+
*/
|
|
48
|
+
export function readAccessTokenFromUrl(href) {
|
|
49
|
+
const hash = href.indexOf('#');
|
|
50
|
+
if (hash === -1)
|
|
51
|
+
return null;
|
|
52
|
+
const params = new URLSearchParams(href.slice(hash + 1));
|
|
53
|
+
const accessToken = params.get('access_token');
|
|
54
|
+
if (!accessToken)
|
|
55
|
+
return null;
|
|
56
|
+
params.delete('access_token');
|
|
57
|
+
params.delete('token_type');
|
|
58
|
+
const rest = params.toString();
|
|
59
|
+
return { accessToken, cleanedHref: `${href.slice(0, hash)}${rest ? `#${rest}` : ''}` };
|
|
60
|
+
}
|
|
9
61
|
const EVENT_MAP = {
|
|
10
62
|
signIn: 'SIGNED_IN',
|
|
11
63
|
signOut: 'SIGNED_OUT',
|
|
12
64
|
tokenRefreshed: 'TOKEN_REFRESHED',
|
|
65
|
+
userUpdated: 'USER_UPDATED',
|
|
66
|
+
mfaVerified: 'MFA_CHALLENGE_VERIFIED',
|
|
13
67
|
};
|
|
14
68
|
/**
|
|
15
69
|
* Supabase-compatible auth client. Maps supabase-js method names onto the
|
|
@@ -20,6 +74,7 @@ export class AuthClient {
|
|
|
20
74
|
constructor(http, store) {
|
|
21
75
|
this.http = http;
|
|
22
76
|
this.store = store;
|
|
77
|
+
this.autoRefreshTimer = null;
|
|
23
78
|
// A successful verify can return a stepped-up session, so mfa re-runs the
|
|
24
79
|
// session read through the same path every other method uses.
|
|
25
80
|
this.mfa = new MfaClient(http, async () => {
|
|
@@ -91,9 +146,28 @@ export class AuthClient {
|
|
|
91
146
|
return { error: toError(err) };
|
|
92
147
|
}
|
|
93
148
|
}
|
|
94
|
-
/**
|
|
149
|
+
/**
|
|
150
|
+
* Send a one-time sign-in code, by email or by SMS. Pair with `verifyOtp` to
|
|
151
|
+
* complete the sign-in.
|
|
152
|
+
*
|
|
153
|
+
* `{ phone }` routes to the phone-number plugin, which the project has to
|
|
154
|
+
* have enabled with an SMS sender configured; without one the call resolves
|
|
155
|
+
* with the backend's error rather than pretending a code was sent.
|
|
156
|
+
*/
|
|
95
157
|
async signInWithOtp(credentials) {
|
|
158
|
+
if (!credentials.email && !credentials.phone) {
|
|
159
|
+
return { data: {}, error: { message: 'signInWithOtp needs either `email` or `phone`.' } };
|
|
160
|
+
}
|
|
96
161
|
try {
|
|
162
|
+
if (credentials.phone) {
|
|
163
|
+
await this.http.request(HTTP_ROUTES.authSendPhoneOtp, {
|
|
164
|
+
method: 'POST',
|
|
165
|
+
body: { phoneNumber: credentials.phone },
|
|
166
|
+
anonymous: true,
|
|
167
|
+
raw: true,
|
|
168
|
+
});
|
|
169
|
+
return { data: {}, error: null };
|
|
170
|
+
}
|
|
97
171
|
await this.http.request(HTTP_ROUTES.authSendOtp, {
|
|
98
172
|
method: 'POST',
|
|
99
173
|
body: { email: credentials.email, type: 'sign-in' },
|
|
@@ -106,15 +180,69 @@ export class AuthClient {
|
|
|
106
180
|
return { data: {}, error: toError(err) };
|
|
107
181
|
}
|
|
108
182
|
}
|
|
109
|
-
/**
|
|
183
|
+
/**
|
|
184
|
+
* Send the one-time code again, supabase-js style.
|
|
185
|
+
*
|
|
186
|
+
* supabase-js names the flows `signup` (confirm a new address), `email_change`
|
|
187
|
+
* and `recovery`; Better Auth names them `email-verification` and
|
|
188
|
+
* `forget-password`. The mapping lives here so ported code keeps working.
|
|
189
|
+
* `sms` and `phone_change` re-send an SMS code through the phone-number flow.
|
|
190
|
+
*/
|
|
191
|
+
async resend(params) {
|
|
192
|
+
if (params.type === 'sms' || params.type === 'phone_change') {
|
|
193
|
+
if (!params.phone)
|
|
194
|
+
return { data: {}, error: { message: '`phone` is required.' } };
|
|
195
|
+
return this.signInWithOtp({ phone: params.phone });
|
|
196
|
+
}
|
|
197
|
+
const OTP_TYPE = {
|
|
198
|
+
signup: 'email-verification',
|
|
199
|
+
email_change: 'email-verification',
|
|
200
|
+
recovery: 'forget-password',
|
|
201
|
+
};
|
|
202
|
+
const type = OTP_TYPE[params.type];
|
|
203
|
+
if (!type) {
|
|
204
|
+
return { data: {}, error: { message: `resend({ type: '${params.type}' }) is not supported.` } };
|
|
205
|
+
}
|
|
206
|
+
if (!params.email) {
|
|
207
|
+
return { data: {}, error: { message: '`email` is required.' } };
|
|
208
|
+
}
|
|
209
|
+
try {
|
|
210
|
+
await this.http.request(HTTP_ROUTES.authSendOtp, {
|
|
211
|
+
method: 'POST',
|
|
212
|
+
body: { email: params.email, type },
|
|
213
|
+
anonymous: true,
|
|
214
|
+
raw: true,
|
|
215
|
+
});
|
|
216
|
+
return { data: {}, error: null };
|
|
217
|
+
}
|
|
218
|
+
catch (err) {
|
|
219
|
+
return { data: {}, error: toError(err) };
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Complete a `signInWithOtp` sign-in with the code that was sent.
|
|
224
|
+
*
|
|
225
|
+
* The channel follows the identifier, as in supabase-js: `{ phone }` verifies
|
|
226
|
+
* an SMS code, `{ email }` an email one. `type` is accepted for signature
|
|
227
|
+
* parity and only disambiguates when both are somehow present.
|
|
228
|
+
*/
|
|
110
229
|
async verifyOtp(params) {
|
|
230
|
+
if (!params.email && !params.phone) {
|
|
231
|
+
return { data: { user: null, session: null }, error: { message: 'verifyOtp needs either `email` or `phone`.' } };
|
|
232
|
+
}
|
|
111
233
|
try {
|
|
112
|
-
const
|
|
234
|
+
const bySms = Boolean(params.phone) && params.type !== 'email';
|
|
235
|
+
const payload = await this.http.request(bySms ? HTTP_ROUTES.authVerifyPhoneOtp : HTTP_ROUTES.authSignInEmailOtp, {
|
|
113
236
|
method: 'POST',
|
|
114
|
-
body:
|
|
237
|
+
body: bySms
|
|
238
|
+
? { phoneNumber: params.phone, code: params.token }
|
|
239
|
+
: { email: params.email, otp: params.token },
|
|
115
240
|
anonymous: true,
|
|
116
241
|
raw: true,
|
|
117
242
|
});
|
|
243
|
+
if (!payload?.token) {
|
|
244
|
+
return { data: { user: null, session: null }, error: { message: 'The code did not produce a session.' } };
|
|
245
|
+
}
|
|
118
246
|
const session = await this.persist(payload);
|
|
119
247
|
return { data: { user: session.user, session }, error: null };
|
|
120
248
|
}
|
|
@@ -128,6 +256,21 @@ export class AuthClient {
|
|
|
128
256
|
* unless `options.skipBrowserRedirect` is set.
|
|
129
257
|
*/
|
|
130
258
|
async signInWithOAuth(credentials) {
|
|
259
|
+
// In a browser, hand the whole handshake to a top-level navigation. Starting
|
|
260
|
+
// it with a fetch makes the OAuth state cookie a cross-site write, which
|
|
261
|
+
// Safari and Firefox drop outright and Chrome drops in incognito, and the
|
|
262
|
+
// callback then fails with state_mismatch. Navigating to the backend's own
|
|
263
|
+
// origin makes that cookie first-party, so a plain SameSite=Lax cookie
|
|
264
|
+
// survives everywhere. The backend redirects on from there.
|
|
265
|
+
if (typeof window !== 'undefined' && !credentials.options?.skipBrowserRedirect) {
|
|
266
|
+
const params = new URLSearchParams();
|
|
267
|
+
if (credentials.options?.redirectTo)
|
|
268
|
+
params.set('callbackURL', credentials.options.redirectTo);
|
|
269
|
+
const query = params.toString();
|
|
270
|
+
const url = this.http.url(`${HTTP_ROUTES.authSignInSocial}/${encodeURIComponent(credentials.provider)}${query ? `?${query}` : ''}`);
|
|
271
|
+
window.location.href = url;
|
|
272
|
+
return { data: { provider: credentials.provider, url }, error: null };
|
|
273
|
+
}
|
|
131
274
|
try {
|
|
132
275
|
const payload = await this.http.request(HTTP_ROUTES.authSignInSocial, {
|
|
133
276
|
method: 'POST',
|
|
@@ -139,6 +282,10 @@ export class AuthClient {
|
|
|
139
282
|
},
|
|
140
283
|
anonymous: true,
|
|
141
284
|
raw: true,
|
|
285
|
+
// The server answers with a signed OAuth state cookie it checks again on
|
|
286
|
+
// the provider callback. Without 'include' the browser drops that cookie
|
|
287
|
+
// on a cross-origin call and every callback fails with state_mismatch.
|
|
288
|
+
credentials: 'include',
|
|
142
289
|
});
|
|
143
290
|
const url = payload?.url ?? null;
|
|
144
291
|
if (url && !credentials.options?.skipBrowserRedirect && typeof window !== 'undefined') {
|
|
@@ -176,6 +323,7 @@ export class AuthClient {
|
|
|
176
323
|
},
|
|
177
324
|
anonymous: true,
|
|
178
325
|
raw: true,
|
|
326
|
+
credentials: 'include', // Same OAuth state cookie as signInWithOAuth.
|
|
179
327
|
});
|
|
180
328
|
const url = payload?.url ?? null;
|
|
181
329
|
if (url && !params.options?.skipBrowserRedirect && typeof window !== 'undefined') {
|
|
@@ -189,7 +337,7 @@ export class AuthClient {
|
|
|
189
337
|
}
|
|
190
338
|
/**
|
|
191
339
|
* Update the signed-in user's profile fields and/or password. Password
|
|
192
|
-
* changes require `currentPassword` (a Better Auth requirement
|
|
340
|
+
* changes require `currentPassword` (a Better Auth requirement. There is no
|
|
193
341
|
* blind password overwrite from an authenticated session).
|
|
194
342
|
*/
|
|
195
343
|
async updateUser(attributes) {
|
|
@@ -207,7 +355,15 @@ export class AuthClient {
|
|
|
207
355
|
raw: true,
|
|
208
356
|
});
|
|
209
357
|
}
|
|
210
|
-
|
|
358
|
+
const result = await this.getUser();
|
|
359
|
+
// supabase-js emits USER_UPDATED here, and apps re-read the profile off
|
|
360
|
+
// that event rather than off the return value. Refresh the stored session
|
|
361
|
+
// so the user the listener receives is the updated one.
|
|
362
|
+
const current = this.store.get();
|
|
363
|
+
if (result.data?.user && current) {
|
|
364
|
+
await this.store.set({ ...current, user: result.data.user }, 'userUpdated');
|
|
365
|
+
}
|
|
366
|
+
return result;
|
|
211
367
|
}
|
|
212
368
|
catch (err) {
|
|
213
369
|
return { data: { user: null }, error: toError(err) };
|
|
@@ -215,7 +371,7 @@ export class AuthClient {
|
|
|
215
371
|
}
|
|
216
372
|
/**
|
|
217
373
|
* Permanently delete the signed-in user's account. Not part of the
|
|
218
|
-
* supabase-js client surface (there it's admin-only)
|
|
374
|
+
* supabase-js client surface (there it's admin-only). Kept here because
|
|
219
375
|
* self-service account deletion is a real product need. Requires the
|
|
220
376
|
* backend's `delete-user` flow to be enabled; clears the local session on
|
|
221
377
|
* success.
|
|
@@ -238,7 +394,7 @@ export class AuthClient {
|
|
|
238
394
|
* Adopt an externally-obtained access token as the current session (e.g. one
|
|
239
395
|
* captured from an OAuth redirect). Validates it against the server before
|
|
240
396
|
* persisting. `refresh_token` is accepted for supabase-js signature parity
|
|
241
|
-
* and unused
|
|
397
|
+
* and unused: Better Auth bearer sessions have none.
|
|
242
398
|
*/
|
|
243
399
|
async setSession(currentSession) {
|
|
244
400
|
await this.store.set({ accessToken: currentSession.access_token, user: { id: '', email: '' } }, 'signIn');
|
|
@@ -267,24 +423,81 @@ export class AuthClient {
|
|
|
267
423
|
await this.store.set(null, 'signOut');
|
|
268
424
|
return { error: null };
|
|
269
425
|
}
|
|
426
|
+
/**
|
|
427
|
+
* Finish an OAuth / SSO sign-in after the provider redirected back.
|
|
428
|
+
*
|
|
429
|
+
* `signInWithOAuth` only starts the flow; the session is created during the
|
|
430
|
+
* redirect the browser makes to the backend callback, so the SDK has to pick
|
|
431
|
+
* it up from the URL the browser landed on. Call this once on the page you
|
|
432
|
+
* pointed `redirectTo` at (or on app start, which is where supabase-js does
|
|
433
|
+
* the equivalent). Without it the user is signed in on the backend and signed
|
|
434
|
+
* out in your app.
|
|
435
|
+
*
|
|
436
|
+
* Resolves with a null session and no error when there is nothing to read, so
|
|
437
|
+
* it is safe to call on every page load.
|
|
438
|
+
*/
|
|
439
|
+
async getSessionFromUrl(href) {
|
|
440
|
+
const url = href ?? (typeof window !== 'undefined' ? window.location.href : undefined);
|
|
441
|
+
const found = url ? readAccessTokenFromUrl(url) : null;
|
|
442
|
+
if (!found)
|
|
443
|
+
return { data: { user: null, session: null }, error: null };
|
|
444
|
+
// Strip the token before the network call: a failed lookup must not leave a
|
|
445
|
+
// usable token sitting in the address bar or in the back/forward history.
|
|
446
|
+
if (!href && typeof window !== 'undefined') {
|
|
447
|
+
window.history?.replaceState?.(window.history.state, '', found.cleanedHref);
|
|
448
|
+
}
|
|
449
|
+
try {
|
|
450
|
+
// Resolve the user with the token explicitly rather than storing it first:
|
|
451
|
+
// a rejected token must not emit a SIGNED_IN event carrying a null user.
|
|
452
|
+
const payload = await this.http.request(HTTP_ROUTES.authSession, {
|
|
453
|
+
raw: true,
|
|
454
|
+
anonymous: true,
|
|
455
|
+
headers: { Authorization: `Bearer ${found.accessToken}` },
|
|
456
|
+
});
|
|
457
|
+
if (!payload?.user) {
|
|
458
|
+
return { data: { user: null, session: null }, error: { message: 'OAuth session is no longer valid' } };
|
|
459
|
+
}
|
|
460
|
+
const session = await this.persist({ token: found.accessToken, user: payload.user });
|
|
461
|
+
return { data: { user: session.user, session }, error: null };
|
|
462
|
+
}
|
|
463
|
+
catch (err) {
|
|
464
|
+
return { data: { user: null, session: null }, error: toError(err) };
|
|
465
|
+
}
|
|
466
|
+
}
|
|
270
467
|
/** Fetch the current user from Better Auth (requires a valid session). */
|
|
271
468
|
async getUser() {
|
|
272
469
|
try {
|
|
273
470
|
const payload = await this.http.request(HTTP_ROUTES.authSession, { raw: true });
|
|
274
|
-
return { data: { user: payload?.user
|
|
471
|
+
return { data: { user: normalizeUser(payload?.user) }, error: null };
|
|
275
472
|
}
|
|
276
473
|
catch (err) {
|
|
277
474
|
return { data: { user: null }, error: toError(err) };
|
|
278
475
|
}
|
|
279
476
|
}
|
|
280
|
-
/**
|
|
477
|
+
/**
|
|
478
|
+
* NEVER USE FOR AN AUTHORIZATION DECISION. Use {@link getUser} instead.
|
|
479
|
+
*
|
|
480
|
+
* The locally-held session, if any (no network call). It is whatever the
|
|
481
|
+
* caller's cookie or storage said, parsed: unsigned JSON the browser sent,
|
|
482
|
+
* which anyone can set by hand. `session.user.id`, `.email` and `.role` are
|
|
483
|
+
* therefore attacker-controlled, and an admin allowlist checked against
|
|
484
|
+
* them is checked against nothing.
|
|
485
|
+
*
|
|
486
|
+
* Reads and writes through `from()` are unaffected: they carry the access
|
|
487
|
+
* token to the backend, which verifies it under RLS. It is the decisions
|
|
488
|
+
* your own app takes from `session.user` that are forgeable.
|
|
489
|
+
*
|
|
490
|
+
* `getUser()` costs one round trip and returns the user the backend
|
|
491
|
+
* confirms, in the same `{ data, error }` shape. Prefer it everywhere but a
|
|
492
|
+
* cosmetic "am I probably signed in" check.
|
|
493
|
+
*/
|
|
281
494
|
async getSession() {
|
|
282
495
|
await this.store.hydrate();
|
|
283
496
|
return { data: { session: this.store.get() }, error: null };
|
|
284
497
|
}
|
|
285
498
|
/**
|
|
286
499
|
* Revalidate the current session against the server. Better Auth bearer
|
|
287
|
-
* sessions have no refresh token
|
|
500
|
+
* sessions have no refresh token: if the session is still valid the user is
|
|
288
501
|
* refreshed; otherwise the local session is cleared.
|
|
289
502
|
*/
|
|
290
503
|
async refreshSession() {
|
|
@@ -313,11 +526,183 @@ export class AuthClient {
|
|
|
313
526
|
return { data: { user: null, session: null }, error: toError(err) };
|
|
314
527
|
}
|
|
315
528
|
}
|
|
529
|
+
/**
|
|
530
|
+
* Subscribe to auth changes, supabase-js style.
|
|
531
|
+
*
|
|
532
|
+
* The callback fires once with `INITIAL_SESSION` as soon as the stored
|
|
533
|
+
* session has been read, before any later event. That first call is not a
|
|
534
|
+
* nicety: the standard Supabase bootstrap is
|
|
535
|
+
* `if (event === 'INITIAL_SESSION') setLoading(false)`, and without it the
|
|
536
|
+
* app renders its loading state forever for a signed-out visitor, who never
|
|
537
|
+
* produces any other event.
|
|
538
|
+
*
|
|
539
|
+
* It is delivered asynchronously (after hydration), so unsubscribing
|
|
540
|
+
* synchronously suppresses it, exactly as in supabase-js.
|
|
541
|
+
*/
|
|
542
|
+
/**
|
|
543
|
+
* The providers linked to the signed-in user, in the supabase-js identity
|
|
544
|
+
* shape. Backed by Better Auth's `list-accounts`, which is why `email` shows
|
|
545
|
+
* up as an identity for a password account: it is a real linked credential,
|
|
546
|
+
* exactly as in Supabase.
|
|
547
|
+
*/
|
|
548
|
+
async getUserIdentities() {
|
|
549
|
+
try {
|
|
550
|
+
const accounts = await this.http.request(HTTP_ROUTES.authListAccounts, { raw: true });
|
|
551
|
+
const userId = this.store.get()?.user?.id ?? '';
|
|
552
|
+
const identities = (accounts ?? []).map(account => ({
|
|
553
|
+
id: account.accountId ?? account.id,
|
|
554
|
+
identity_id: account.id,
|
|
555
|
+
user_id: userId,
|
|
556
|
+
provider: account.providerId,
|
|
557
|
+
identity_data: { sub: account.accountId, ...(account.scopes ? { scopes: account.scopes } : {}) },
|
|
558
|
+
created_at: asIsoString(account.createdAt),
|
|
559
|
+
updated_at: asIsoString(account.updatedAt),
|
|
560
|
+
last_sign_in_at: asIsoString(account.updatedAt),
|
|
561
|
+
}));
|
|
562
|
+
return { data: { identities }, error: null };
|
|
563
|
+
}
|
|
564
|
+
catch (err) {
|
|
565
|
+
return { data: null, error: toError(err) };
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
/**
|
|
569
|
+
* Link another provider to the signed-in user. Like `signInWithOAuth`, this
|
|
570
|
+
* only starts the flow: the browser is sent to the provider and comes back
|
|
571
|
+
* through the callback.
|
|
572
|
+
*/
|
|
573
|
+
async linkIdentity(credentials) {
|
|
574
|
+
try {
|
|
575
|
+
const payload = await this.http.request(HTTP_ROUTES.authLinkSocial, {
|
|
576
|
+
method: 'POST',
|
|
577
|
+
body: {
|
|
578
|
+
provider: credentials.provider,
|
|
579
|
+
callbackURL: credentials.options?.redirectTo,
|
|
580
|
+
scopes: credentials.options?.scopes?.split(/\s+/).filter(Boolean),
|
|
581
|
+
},
|
|
582
|
+
credentials: 'include',
|
|
583
|
+
raw: true,
|
|
584
|
+
});
|
|
585
|
+
const url = payload?.url ?? null;
|
|
586
|
+
if (url && !credentials.options?.skipBrowserRedirect && typeof window !== 'undefined') {
|
|
587
|
+
window.location.assign(url);
|
|
588
|
+
}
|
|
589
|
+
return { data: { provider: credentials.provider, url }, error: null };
|
|
590
|
+
}
|
|
591
|
+
catch (err) {
|
|
592
|
+
return { data: { provider: credentials.provider, url: null }, error: toError(err) };
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
/** Unlink a provider from the signed-in user. */
|
|
596
|
+
async unlinkIdentity(identity) {
|
|
597
|
+
try {
|
|
598
|
+
await this.http.request(HTTP_ROUTES.authUnlinkAccount, {
|
|
599
|
+
method: 'POST',
|
|
600
|
+
body: { providerId: identity.provider, accountId: identity.id },
|
|
601
|
+
raw: true,
|
|
602
|
+
});
|
|
603
|
+
return { data: {}, error: null };
|
|
604
|
+
}
|
|
605
|
+
catch (err) {
|
|
606
|
+
return { data: null, error: toError(err) };
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
/**
|
|
610
|
+
* Native mobile sign-in with a provider id token (Sign in with Apple, Google
|
|
611
|
+
* One Tap), routed to Better Auth's social sign-in with an `idToken`.
|
|
612
|
+
* The provider must be configured on the backend.
|
|
613
|
+
*/
|
|
614
|
+
async signInWithIdToken(params) {
|
|
615
|
+
try {
|
|
616
|
+
const payload = await this.http.request(HTTP_ROUTES.authSignInSocial, {
|
|
617
|
+
method: 'POST',
|
|
618
|
+
body: {
|
|
619
|
+
provider: params.provider,
|
|
620
|
+
idToken: {
|
|
621
|
+
token: params.token,
|
|
622
|
+
...(params.access_token ? { accessToken: params.access_token } : {}),
|
|
623
|
+
...(params.nonce ? { nonce: params.nonce } : {}),
|
|
624
|
+
},
|
|
625
|
+
},
|
|
626
|
+
anonymous: true,
|
|
627
|
+
raw: true,
|
|
628
|
+
});
|
|
629
|
+
if (!payload?.token) {
|
|
630
|
+
return { data: { user: null, session: null }, error: { message: 'The provider did not return a session.' } };
|
|
631
|
+
}
|
|
632
|
+
const session = await this.persist(payload);
|
|
633
|
+
return { data: { user: session.user, session }, error: null };
|
|
634
|
+
}
|
|
635
|
+
catch (err) {
|
|
636
|
+
return { data: { user: null, session: null }, error: toError(err) };
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
/**
|
|
640
|
+
* Claims for the current session, as a JWT payload.
|
|
641
|
+
*
|
|
642
|
+
* supabase-js reads them out of the access token, which is itself a JWT.
|
|
643
|
+
* A Better Auth session token is an opaque bearer, so this asks the server's
|
|
644
|
+
* jwt plugin to mint one and decodes it. The decode is NOT a verification:
|
|
645
|
+
* the token came from the authenticated endpoint over TLS, and a client
|
|
646
|
+
* verifying a token it just asked for proves nothing. Verify server side,
|
|
647
|
+
* against `/api/auth/jwks`.
|
|
648
|
+
*/
|
|
649
|
+
async getClaims() {
|
|
650
|
+
try {
|
|
651
|
+
const payload = await this.http.request(HTTP_ROUTES.authToken, { raw: true });
|
|
652
|
+
const token = payload?.token;
|
|
653
|
+
const claims = token ? decodeJwtPayload(token) : null;
|
|
654
|
+
if (!token || !claims) {
|
|
655
|
+
return { data: null, error: { message: 'No JWT is available for this session.' } };
|
|
656
|
+
}
|
|
657
|
+
return { data: { claims, token }, error: null };
|
|
658
|
+
}
|
|
659
|
+
catch (err) {
|
|
660
|
+
return { data: null, error: toError(err) };
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
/**
|
|
664
|
+
* Revalidate the session on a timer, the way supabase-js does while the tab
|
|
665
|
+
* is focused. Motherbase refreshes on a 401 already, so this is opt-in: it
|
|
666
|
+
* exists so a ported app that calls it keeps working, and so a long-lived
|
|
667
|
+
* screen notices a revoked session without waiting for its next request.
|
|
668
|
+
*/
|
|
669
|
+
startAutoRefresh(intervalMs = 60000) {
|
|
670
|
+
this.stopAutoRefresh();
|
|
671
|
+
this.autoRefreshTimer = setInterval(() => {
|
|
672
|
+
if (this.store.get())
|
|
673
|
+
void this.refreshSession();
|
|
674
|
+
}, intervalMs);
|
|
675
|
+
// Node keeps the process alive for a pending timer; a background refresh
|
|
676
|
+
// must never be the reason a script does not exit.
|
|
677
|
+
this.autoRefreshTimer.unref?.();
|
|
678
|
+
}
|
|
679
|
+
/** Stop the timer started by `startAutoRefresh`. Safe to call when none runs. */
|
|
680
|
+
stopAutoRefresh() {
|
|
681
|
+
if (this.autoRefreshTimer !== null) {
|
|
682
|
+
clearInterval(this.autoRefreshTimer);
|
|
683
|
+
this.autoRefreshTimer = null;
|
|
684
|
+
}
|
|
685
|
+
}
|
|
316
686
|
onAuthStateChange(callback) {
|
|
317
|
-
|
|
318
|
-
|
|
687
|
+
let active = true;
|
|
688
|
+
const unsubscribeStore = this.store.subscribe((event, session) => {
|
|
689
|
+
if (active)
|
|
690
|
+
callback(EVENT_MAP[event], session);
|
|
319
691
|
});
|
|
320
|
-
|
|
692
|
+
void this.store.hydrate().then(session => {
|
|
693
|
+
if (active)
|
|
694
|
+
callback('INITIAL_SESSION', session);
|
|
695
|
+
});
|
|
696
|
+
return {
|
|
697
|
+
data: {
|
|
698
|
+
subscription: {
|
|
699
|
+
unsubscribe: () => {
|
|
700
|
+
active = false;
|
|
701
|
+
unsubscribeStore();
|
|
702
|
+
},
|
|
703
|
+
},
|
|
704
|
+
},
|
|
705
|
+
};
|
|
321
706
|
}
|
|
322
707
|
/**
|
|
323
708
|
* Internal: refresh used by the HttpClient's 401 path. Returns true on success.
|
package/dist/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/channel.d.ts
CHANGED
|
@@ -32,22 +32,25 @@ export interface BroadcastReceived {
|
|
|
32
32
|
event: string;
|
|
33
33
|
payload: unknown;
|
|
34
34
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
|
|
35
|
+
/**
|
|
36
|
+
* One tracked presence: whatever the peer passed to `track()`, plus the ref the
|
|
37
|
+
* server stamps on it. Generic so a caller that knows its own payload gets it
|
|
38
|
+
* typed (`channel.presenceState<{ name: string }>()`); the default stays open
|
|
39
|
+
* because presence payloads are defined by the application, not by the SDK.
|
|
40
|
+
*/
|
|
41
|
+
export type PresenceEntry<T extends Record<string, unknown> = Record<string, unknown>> = T & {
|
|
40
42
|
presence_ref: string;
|
|
41
|
-
}
|
|
42
|
-
export
|
|
43
|
+
};
|
|
44
|
+
export type PresenceState<T extends Record<string, unknown> = Record<string, unknown>> = Record<string, PresenceEntry<T>[]>;
|
|
45
|
+
export interface PresenceJoinPayload<T extends Record<string, unknown> = Record<string, unknown>> {
|
|
43
46
|
key: string;
|
|
44
|
-
newPresences: PresenceEntry[];
|
|
45
|
-
currentPresences: PresenceEntry[];
|
|
47
|
+
newPresences: PresenceEntry<T>[];
|
|
48
|
+
currentPresences: PresenceEntry<T>[];
|
|
46
49
|
}
|
|
47
|
-
export interface PresenceLeavePayload {
|
|
50
|
+
export interface PresenceLeavePayload<T extends Record<string, unknown> = Record<string, unknown>> {
|
|
48
51
|
key: string;
|
|
49
|
-
leftPresences: PresenceEntry[];
|
|
50
|
-
currentPresences: PresenceEntry[];
|
|
52
|
+
leftPresences: PresenceEntry<T>[];
|
|
53
|
+
currentPresences: PresenceEntry<T>[];
|
|
51
54
|
}
|
|
52
55
|
export type ChannelStatus = 'SUBSCRIBED' | 'TIMED_OUT' | 'CLOSED' | 'CHANNEL_ERROR';
|
|
53
56
|
export interface RealtimeChannelOptions {
|