@motherbase/client 1.4.0 → 1.5.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 +379 -284
- package/package.json +1 -1
- package/dist/admin.d.ts +0 -81
- package/dist/admin.d.ts.map +0 -1
- package/dist/admin.js +0 -85
- package/dist/admin.js.map +0 -1
- package/dist/auth.d.ts +0 -362
- package/dist/auth.d.ts.map +0 -1
- package/dist/auth.js +0 -721
- package/dist/auth.js.map +0 -1
- package/dist/channel.d.ts +0 -122
- package/dist/channel.d.ts.map +0 -1
- package/dist/channel.js +0 -213
- package/dist/channel.js.map +0 -1
- package/dist/compat.d.ts +0 -40
- package/dist/compat.d.ts.map +0 -1
- package/dist/compat.js +0 -98
- package/dist/compat.js.map +0 -1
- package/dist/cookie.d.ts +0 -68
- package/dist/cookie.d.ts.map +0 -1
- package/dist/cookie.js +0 -152
- package/dist/cookie.js.map +0 -1
- package/dist/database.d.ts +0 -188
- package/dist/database.d.ts.map +0 -1
- package/dist/database.js +0 -2
- package/dist/database.js.map +0 -1
- package/dist/devices.d.ts +0 -13
- package/dist/devices.d.ts.map +0 -1
- package/dist/devices.js +0 -13
- package/dist/devices.js.map +0 -1
- package/dist/edge.d.ts +0 -7
- package/dist/edge.d.ts.map +0 -1
- package/dist/edge.js +0 -13
- package/dist/edge.js.map +0 -1
- package/dist/functions.d.ts +0 -60
- package/dist/functions.d.ts.map +0 -1
- package/dist/functions.js +0 -75
- package/dist/functions.js.map +0 -1
- package/dist/http.d.ts +0 -123
- package/dist/http.d.ts.map +0 -1
- package/dist/http.js +0 -205
- package/dist/http.js.map +0 -1
- package/dist/index.d.ts +0 -185
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -331
- package/dist/index.js.map +0 -1
- package/dist/mfa.d.ts +0 -109
- package/dist/mfa.d.ts.map +0 -1
- package/dist/mfa.js +0 -134
- package/dist/mfa.js.map +0 -1
- package/dist/postgrest.d.ts +0 -326
- package/dist/postgrest.d.ts.map +0 -1
- package/dist/postgrest.js +0 -629
- package/dist/postgrest.js.map +0 -1
- package/dist/profile.d.ts +0 -16
- package/dist/profile.d.ts.map +0 -1
- package/dist/profile.js +0 -26
- package/dist/profile.js.map +0 -1
- package/dist/query.d.ts +0 -97
- package/dist/query.d.ts.map +0 -1
- package/dist/query.js +0 -94
- package/dist/query.js.map +0 -1
- package/dist/realtime.d.ts +0 -114
- package/dist/realtime.d.ts.map +0 -1
- package/dist/realtime.js +0 -372
- package/dist/realtime.js.map +0 -1
- package/dist/rest.d.ts +0 -50
- package/dist/rest.d.ts.map +0 -1
- package/dist/rest.js +0 -75
- package/dist/rest.js.map +0 -1
- package/dist/session.d.ts +0 -47
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js +0 -136
- package/dist/session.js.map +0 -1
- package/dist/storage.d.ts +0 -239
- package/dist/storage.d.ts.map +0 -1
- package/dist/storage.js +0 -391
- package/dist/storage.js.map +0 -1
- package/dist/testing.d.ts +0 -38
- package/dist/testing.d.ts.map +0 -1
- package/dist/testing.js +0 -50
- package/dist/testing.js.map +0 -1
- package/dist/types.d.ts +0 -343
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/warn.d.ts +0 -4
- package/dist/warn.d.ts.map +0 -1
- package/dist/warn.js +0 -27
- package/dist/warn.js.map +0 -1
package/package.json
CHANGED
package/dist/admin.d.ts
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import type { HttpClient } from './http.js';
|
|
2
|
-
import type { MotherbaseResponse, User } from './types.js';
|
|
3
|
-
/**
|
|
4
|
-
* `client.auth.admin`, shaped like `supabase.auth.admin`.
|
|
5
|
-
*
|
|
6
|
-
* Every method here needs a **secret** project API key, so the client it hangs
|
|
7
|
-
* off must have been built with one. A publishable key gets a 401 from the
|
|
8
|
-
* server, which is the correct outcome: these calls create and delete users
|
|
9
|
-
* without being any user.
|
|
10
|
-
*
|
|
11
|
-
* Two differences from supabase-js worth knowing before you port code:
|
|
12
|
-
*
|
|
13
|
-
* * Scope. This is user administration only. Supabase's service key also opens
|
|
14
|
-
* SQL and DDL; here those stay behind operator authentication, so a leaked
|
|
15
|
-
* application key cannot drop a table.
|
|
16
|
-
* * `generateLink` has no equivalent. Better Auth issues one-time codes rather
|
|
17
|
-
* than pre-signed links, so use `auth.signInWithOtp` / `auth.verifyOtp`, or
|
|
18
|
-
* `invite()` below, which mails the credential itself.
|
|
19
|
-
*/
|
|
20
|
-
export interface AdminListUsersParams {
|
|
21
|
-
page?: number;
|
|
22
|
-
perPage?: number;
|
|
23
|
-
}
|
|
24
|
-
export interface AdminUserList {
|
|
25
|
-
users: User[];
|
|
26
|
-
page: number;
|
|
27
|
-
perPage: number;
|
|
28
|
-
total: number;
|
|
29
|
-
}
|
|
30
|
-
export interface AdminCreateUserParams {
|
|
31
|
-
email: string;
|
|
32
|
-
password?: string;
|
|
33
|
-
username?: string;
|
|
34
|
-
role?: 'ADMIN' | 'USER';
|
|
35
|
-
/** Mark the address verified without sending a confirmation. */
|
|
36
|
-
email_confirm?: boolean;
|
|
37
|
-
/** Also email the temporary password. `invite()` is the same thing, named. */
|
|
38
|
-
sendInvite?: boolean;
|
|
39
|
-
}
|
|
40
|
-
export interface AdminCreatedUser {
|
|
41
|
-
user: User;
|
|
42
|
-
/** Generated when no password was supplied. Never logged by the SDK. */
|
|
43
|
-
temporaryPassword: string;
|
|
44
|
-
invited: boolean;
|
|
45
|
-
}
|
|
46
|
-
export interface AdminUpdateUserParams {
|
|
47
|
-
password?: string;
|
|
48
|
-
role?: 'ADMIN' | 'USER';
|
|
49
|
-
username?: string;
|
|
50
|
-
firstName?: string;
|
|
51
|
-
lastName?: string;
|
|
52
|
-
status?: string;
|
|
53
|
-
}
|
|
54
|
-
export declare class AuthAdminClient {
|
|
55
|
-
private readonly http;
|
|
56
|
-
constructor(http: HttpClient);
|
|
57
|
-
listUsers(params?: AdminListUsersParams): Promise<MotherbaseResponse<AdminUserList>>;
|
|
58
|
-
getUserById(id: string): Promise<MotherbaseResponse<{
|
|
59
|
-
user: User | null;
|
|
60
|
-
}>>;
|
|
61
|
-
createUser(params: AdminCreateUserParams): Promise<MotherbaseResponse<AdminCreatedUser>>;
|
|
62
|
-
updateUserById(id: string, params: AdminUpdateUserParams): Promise<MotherbaseResponse<{
|
|
63
|
-
user: User | null;
|
|
64
|
-
}>>;
|
|
65
|
-
deleteUser(id: string): Promise<MotherbaseResponse<{
|
|
66
|
-
id: string;
|
|
67
|
-
}>>;
|
|
68
|
-
/** End every session this user holds, everywhere. */
|
|
69
|
-
signOut(userId: string): Promise<MotherbaseResponse<{
|
|
70
|
-
id: string;
|
|
71
|
-
}>>;
|
|
72
|
-
/** Create the account and email the temporary password to it. */
|
|
73
|
-
inviteUserByEmail(email: string, options?: {
|
|
74
|
-
username?: string;
|
|
75
|
-
role?: 'ADMIN' | 'USER';
|
|
76
|
-
}): Promise<MotherbaseResponse<{
|
|
77
|
-
user: User;
|
|
78
|
-
invited: boolean;
|
|
79
|
-
}>>;
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=admin.d.ts.map
|
package/dist/admin.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAE3D;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,gEAAgE;IAChE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,IAAI,CAAC;IACX,wEAAwE;IACxE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAEvC,SAAS,CAAC,MAAM,GAAE,oBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAaxF,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAS3E,UAAU,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IASxF,cAAc,CAClB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,kBAAkB,CAAC;QAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAY/C,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IASzE,qDAAqD;IAC/C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAS1E,iEAAiE;IAC3D,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;KAAO,GAC3D,OAAO,CAAC,kBAAkB,CAAC;QAAE,IAAI,EAAE,IAAI,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAWjE"}
|
package/dist/admin.js
DELETED
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { toError } from './http.js';
|
|
2
|
-
const BASE = '/api/auth/admin';
|
|
3
|
-
export class AuthAdminClient {
|
|
4
|
-
constructor(http) {
|
|
5
|
-
this.http = http;
|
|
6
|
-
}
|
|
7
|
-
async listUsers(params = {}) {
|
|
8
|
-
const query = new URLSearchParams();
|
|
9
|
-
if (params.page !== undefined)
|
|
10
|
-
query.set('page', String(params.page));
|
|
11
|
-
if (params.perPage !== undefined)
|
|
12
|
-
query.set('per_page', String(params.perPage));
|
|
13
|
-
const suffix = query.toString();
|
|
14
|
-
try {
|
|
15
|
-
const data = await this.http.request(`${BASE}/users${suffix ? `?${suffix}` : ''}`);
|
|
16
|
-
return { data, error: null };
|
|
17
|
-
}
|
|
18
|
-
catch (err) {
|
|
19
|
-
return { data: null, error: toError(err) };
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
async getUserById(id) {
|
|
23
|
-
try {
|
|
24
|
-
const data = await this.http.request(`${BASE}/users/${encodeURIComponent(id)}`);
|
|
25
|
-
return { data, error: null };
|
|
26
|
-
}
|
|
27
|
-
catch (err) {
|
|
28
|
-
return { data: { user: null }, error: toError(err) };
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
async createUser(params) {
|
|
32
|
-
try {
|
|
33
|
-
const data = await this.http.request(`${BASE}/users`, { method: 'POST', body: params });
|
|
34
|
-
return { data, error: null };
|
|
35
|
-
}
|
|
36
|
-
catch (err) {
|
|
37
|
-
return { data: null, error: toError(err) };
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
async updateUserById(id, params) {
|
|
41
|
-
try {
|
|
42
|
-
const data = await this.http.request(`${BASE}/users/${encodeURIComponent(id)}`, {
|
|
43
|
-
method: 'PATCH',
|
|
44
|
-
body: params,
|
|
45
|
-
});
|
|
46
|
-
return { data, error: null };
|
|
47
|
-
}
|
|
48
|
-
catch (err) {
|
|
49
|
-
return { data: { user: null }, error: toError(err) };
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
async deleteUser(id) {
|
|
53
|
-
try {
|
|
54
|
-
await this.http.request(`${BASE}/users/${encodeURIComponent(id)}`, { method: 'DELETE' });
|
|
55
|
-
return { data: { id }, error: null };
|
|
56
|
-
}
|
|
57
|
-
catch (err) {
|
|
58
|
-
return { data: null, error: toError(err) };
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
/** End every session this user holds, everywhere. */
|
|
62
|
-
async signOut(userId) {
|
|
63
|
-
try {
|
|
64
|
-
await this.http.request(`${BASE}/users/${encodeURIComponent(userId)}/sign-out`, { method: 'POST' });
|
|
65
|
-
return { data: { id: userId }, error: null };
|
|
66
|
-
}
|
|
67
|
-
catch (err) {
|
|
68
|
-
return { data: null, error: toError(err) };
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
/** Create the account and email the temporary password to it. */
|
|
72
|
-
async inviteUserByEmail(email, options = {}) {
|
|
73
|
-
try {
|
|
74
|
-
const data = await this.http.request(`${BASE}/invite`, {
|
|
75
|
-
method: 'POST',
|
|
76
|
-
body: { email, ...options },
|
|
77
|
-
});
|
|
78
|
-
return { data, error: null };
|
|
79
|
-
}
|
|
80
|
-
catch (err) {
|
|
81
|
-
return { data: null, error: toError(err) };
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=admin.js.map
|
package/dist/admin.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"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"}
|
package/dist/auth.d.ts
DELETED
|
@@ -1,362 +0,0 @@
|
|
|
1
|
-
import { MfaClient } from './mfa.js';
|
|
2
|
-
import { AuthAdminClient } from './admin.js';
|
|
3
|
-
import type { HttpClient } from './http.js';
|
|
4
|
-
import type { SessionStore } from './session.js';
|
|
5
|
-
import type { AuthChangeListener, MotherbaseResponse, Session, User, UserIdentity } from './types.js';
|
|
6
|
-
export interface SignUpCredentials {
|
|
7
|
-
email: string;
|
|
8
|
-
password: string;
|
|
9
|
-
/** Optional extra profile field supported by the backend. */
|
|
10
|
-
username?: string;
|
|
11
|
-
}
|
|
12
|
-
export interface SignInWithPasswordCredentials {
|
|
13
|
-
email: string;
|
|
14
|
-
password: string;
|
|
15
|
-
}
|
|
16
|
-
export interface SignInWithOtpCredentials {
|
|
17
|
-
email?: string;
|
|
18
|
-
/** E.164 phone number. Routes to the SMS one-time code flow instead. */
|
|
19
|
-
phone?: string;
|
|
20
|
-
}
|
|
21
|
-
export interface VerifyOtpParams {
|
|
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. */
|
|
26
|
-
token: string;
|
|
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';
|
|
34
|
-
}
|
|
35
|
-
export interface SignInWithOAuthCredentials {
|
|
36
|
-
/** Social provider id, e.g. 'google' or 'apple'. Must be enabled on the backend. */
|
|
37
|
-
provider: string;
|
|
38
|
-
options?: {
|
|
39
|
-
/** Where the provider should send the user back to after auth. */
|
|
40
|
-
redirectTo?: string;
|
|
41
|
-
/** Space-separated OAuth scopes. */
|
|
42
|
-
scopes?: string;
|
|
43
|
-
/** Skip the automatic `window.location` redirect and just return the URL. */
|
|
44
|
-
skipBrowserRedirect?: boolean;
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
export interface DeleteUserAttributes {
|
|
48
|
-
/** Required unless the session is already "fresh" (i.e. just re-authenticated). */
|
|
49
|
-
password?: string;
|
|
50
|
-
/** Deletion-confirmation token, when the backend's delete flow requires an email confirmation step. */
|
|
51
|
-
token?: string;
|
|
52
|
-
callbackURL?: string;
|
|
53
|
-
}
|
|
54
|
-
export interface UpdateUserAttributes {
|
|
55
|
-
/** New password. Requires `currentPassword`. The backend does not allow a
|
|
56
|
-
* blind password change from an authenticated session. */
|
|
57
|
-
password?: string;
|
|
58
|
-
currentPassword?: string;
|
|
59
|
-
/** Arbitrary profile fields (name, image, or any custom additional field). */
|
|
60
|
-
data?: Record<string, unknown>;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Read the token an OAuth callback left in the URL fragment and return the URL
|
|
64
|
-
* with it removed, so a reload or a shared link cannot replay it.
|
|
65
|
-
*
|
|
66
|
-
* The provider callback cannot answer the SDK with a JSON body: it is a browser
|
|
67
|
-
* redirect. The backend therefore appends `#access_token=…` to the redirect it
|
|
68
|
-
* issues, the same implicit flow supabase-js reads. Exported for testing.
|
|
69
|
-
*/
|
|
70
|
-
export declare function readAccessTokenFromUrl(href: string): {
|
|
71
|
-
accessToken: string;
|
|
72
|
-
cleanedHref: string;
|
|
73
|
-
} | null;
|
|
74
|
-
export interface Subscription {
|
|
75
|
-
unsubscribe(): void;
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Supabase-compatible auth client. Maps supabase-js method names onto the
|
|
79
|
-
* Motherbase auth endpoints and reuses the existing token/refresh/session-store
|
|
80
|
-
* machinery. Returns `{ data, error }` and never throws for expected failures.
|
|
81
|
-
*/
|
|
82
|
-
export declare class AuthClient {
|
|
83
|
-
private readonly http;
|
|
84
|
-
private readonly store;
|
|
85
|
-
/**
|
|
86
|
-
* Two-factor, shaped like `supabase.auth.mfa`. The server has shipped TOTP
|
|
87
|
-
* from the start; this is the namespace that makes it reachable.
|
|
88
|
-
*/
|
|
89
|
-
readonly mfa: MfaClient;
|
|
90
|
-
/**
|
|
91
|
-
* User administration for server code holding a secret key. Present on every
|
|
92
|
-
* client, because whether the key is secret is a server-side fact: calling
|
|
93
|
-
* these with a publishable key is a 401, not a missing method.
|
|
94
|
-
*/
|
|
95
|
-
readonly admin: AuthAdminClient;
|
|
96
|
-
private autoRefreshTimer;
|
|
97
|
-
constructor(http: HttpClient, store: SessionStore);
|
|
98
|
-
signUp(credentials: SignUpCredentials): Promise<MotherbaseResponse<{
|
|
99
|
-
user: User | null;
|
|
100
|
-
session: Session | null;
|
|
101
|
-
}>>;
|
|
102
|
-
signInWithPassword(credentials: SignInWithPasswordCredentials): Promise<MotherbaseResponse<{
|
|
103
|
-
user: User | null;
|
|
104
|
-
session: Session | null;
|
|
105
|
-
}>>;
|
|
106
|
-
/**
|
|
107
|
-
* Request a password-reset OTP by email. Always resolves successfully
|
|
108
|
-
* (whether or not the email is registered) to avoid leaking account
|
|
109
|
-
* existence; check `error` only for transport/server failures.
|
|
110
|
-
*/
|
|
111
|
-
resetPasswordForEmail(email: string): Promise<{
|
|
112
|
-
error: MotherbaseResponse<null>['error'];
|
|
113
|
-
}>;
|
|
114
|
-
/** Complete a password reset using the OTP sent to the user's email. */
|
|
115
|
-
resetPassword(args: {
|
|
116
|
-
email: string;
|
|
117
|
-
otp: string;
|
|
118
|
-
password: string;
|
|
119
|
-
}): Promise<{
|
|
120
|
-
error: MotherbaseResponse<null>['error'];
|
|
121
|
-
}>;
|
|
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
|
-
*/
|
|
130
|
-
signInWithOtp(credentials: SignInWithOtpCredentials): Promise<{
|
|
131
|
-
data: Record<string, never>;
|
|
132
|
-
error: MotherbaseResponse<null>['error'];
|
|
133
|
-
}>;
|
|
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
|
-
*/
|
|
157
|
-
verifyOtp(params: VerifyOtpParams): Promise<MotherbaseResponse<{
|
|
158
|
-
user: User | null;
|
|
159
|
-
session: Session | null;
|
|
160
|
-
}>>;
|
|
161
|
-
/**
|
|
162
|
-
* Start an OAuth sign-in with a configured social provider. Resolves with the
|
|
163
|
-
* provider's authorize URL and, in a browser, redirects to it immediately
|
|
164
|
-
* unless `options.skipBrowserRedirect` is set.
|
|
165
|
-
*/
|
|
166
|
-
signInWithOAuth(credentials: SignInWithOAuthCredentials): Promise<MotherbaseResponse<{
|
|
167
|
-
provider: string;
|
|
168
|
-
url: string | null;
|
|
169
|
-
}>>;
|
|
170
|
-
/**
|
|
171
|
-
* Start an enterprise SSO sign-in. Identify the provider by the user's email
|
|
172
|
-
* domain, by an explicit `domain`, or by `providerId` when you already know
|
|
173
|
-
* which one to use.
|
|
174
|
-
*
|
|
175
|
-
* Resolves with the identity provider's URL and, in a browser, redirects to it
|
|
176
|
-
* unless `options.skipBrowserRedirect` is set. The project must have the SSO
|
|
177
|
-
* plugin enabled and at least one provider registered (Studio →
|
|
178
|
-
* Authentication → Organizations & SSO).
|
|
179
|
-
*/
|
|
180
|
-
signInWithSSO(params: {
|
|
181
|
-
domain?: string;
|
|
182
|
-
email?: string;
|
|
183
|
-
providerId?: string;
|
|
184
|
-
organizationSlug?: string;
|
|
185
|
-
options?: {
|
|
186
|
-
redirectTo?: string;
|
|
187
|
-
skipBrowserRedirect?: boolean;
|
|
188
|
-
};
|
|
189
|
-
}): Promise<MotherbaseResponse<{
|
|
190
|
-
url: string | null;
|
|
191
|
-
}>>;
|
|
192
|
-
/**
|
|
193
|
-
* Update the signed-in user's profile fields and/or password. Password
|
|
194
|
-
* changes require `currentPassword` (a Better Auth requirement. There is no
|
|
195
|
-
* blind password overwrite from an authenticated session).
|
|
196
|
-
*/
|
|
197
|
-
updateUser(attributes: UpdateUserAttributes): Promise<MotherbaseResponse<{
|
|
198
|
-
user: User | null;
|
|
199
|
-
}>>;
|
|
200
|
-
/**
|
|
201
|
-
* Permanently delete the signed-in user's account. Not part of the
|
|
202
|
-
* supabase-js client surface (there it's admin-only). Kept here because
|
|
203
|
-
* self-service account deletion is a real product need. Requires the
|
|
204
|
-
* backend's `delete-user` flow to be enabled; clears the local session on
|
|
205
|
-
* success.
|
|
206
|
-
*/
|
|
207
|
-
deleteUser(attributes?: DeleteUserAttributes): Promise<{
|
|
208
|
-
error: MotherbaseResponse<null>['error'];
|
|
209
|
-
}>;
|
|
210
|
-
/**
|
|
211
|
-
* Adopt an externally-obtained access token as the current session (e.g. one
|
|
212
|
-
* captured from an OAuth redirect). Validates it against the server before
|
|
213
|
-
* persisting. `refresh_token` is accepted for supabase-js signature parity
|
|
214
|
-
* and unused: Better Auth bearer sessions have none.
|
|
215
|
-
*/
|
|
216
|
-
setSession(currentSession: {
|
|
217
|
-
access_token: string;
|
|
218
|
-
refresh_token?: string;
|
|
219
|
-
}): Promise<MotherbaseResponse<{
|
|
220
|
-
user: User | null;
|
|
221
|
-
session: Session | null;
|
|
222
|
-
}>>;
|
|
223
|
-
signOut(): Promise<{
|
|
224
|
-
error: MotherbaseResponse<null>['error'];
|
|
225
|
-
}>;
|
|
226
|
-
/**
|
|
227
|
-
* Finish an OAuth / SSO sign-in after the provider redirected back.
|
|
228
|
-
*
|
|
229
|
-
* `signInWithOAuth` only starts the flow; the session is created during the
|
|
230
|
-
* redirect the browser makes to the backend callback, so the SDK has to pick
|
|
231
|
-
* it up from the URL the browser landed on. Call this once on the page you
|
|
232
|
-
* pointed `redirectTo` at (or on app start, which is where supabase-js does
|
|
233
|
-
* the equivalent). Without it the user is signed in on the backend and signed
|
|
234
|
-
* out in your app.
|
|
235
|
-
*
|
|
236
|
-
* Resolves with a null session and no error when there is nothing to read, so
|
|
237
|
-
* it is safe to call on every page load.
|
|
238
|
-
*/
|
|
239
|
-
getSessionFromUrl(href?: string): Promise<MotherbaseResponse<{
|
|
240
|
-
user: User | null;
|
|
241
|
-
session: Session | null;
|
|
242
|
-
}>>;
|
|
243
|
-
/** Fetch the current user from Better Auth (requires a valid session). */
|
|
244
|
-
getUser(): Promise<MotherbaseResponse<{
|
|
245
|
-
user: User | null;
|
|
246
|
-
}>>;
|
|
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
|
-
*/
|
|
264
|
-
getSession(): Promise<MotherbaseResponse<{
|
|
265
|
-
session: Session | null;
|
|
266
|
-
}>>;
|
|
267
|
-
/**
|
|
268
|
-
* Revalidate the current session against the server. Better Auth bearer
|
|
269
|
-
* sessions have no refresh token: if the session is still valid the user is
|
|
270
|
-
* refreshed; otherwise the local session is cleared.
|
|
271
|
-
*/
|
|
272
|
-
refreshSession(): Promise<MotherbaseResponse<{
|
|
273
|
-
user: User | null;
|
|
274
|
-
session: Session | null;
|
|
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;
|
|
350
|
-
onAuthStateChange(callback: AuthChangeListener): {
|
|
351
|
-
data: {
|
|
352
|
-
subscription: Subscription;
|
|
353
|
-
};
|
|
354
|
-
};
|
|
355
|
-
/**
|
|
356
|
-
* Internal: refresh used by the HttpClient's 401 path. Returns true on success.
|
|
357
|
-
* Not part of the public Supabase surface.
|
|
358
|
-
*/
|
|
359
|
-
_refresh(): Promise<boolean>;
|
|
360
|
-
private persist;
|
|
361
|
-
}
|
|
362
|
-
//# sourceMappingURL=auth.d.ts.map
|
package/dist/auth.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|