@motherbase/client 1.2.4 → 1.2.7
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 +95 -42
- package/dist/admin.d.ts +81 -0
- package/dist/admin.d.ts.map +1 -0
- package/dist/admin.js +85 -0
- package/dist/admin.js.map +1 -0
- package/dist/auth.d.ts +35 -5
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +52 -17
- package/dist/auth.js.map +1 -1
- package/dist/channel.d.ts +15 -0
- package/dist/channel.d.ts.map +1 -1
- package/dist/channel.js +53 -19
- package/dist/channel.js.map +1 -1
- package/dist/cookie.d.ts +3 -1
- package/dist/cookie.d.ts.map +1 -1
- package/dist/cookie.js +14 -2
- package/dist/cookie.js.map +1 -1
- package/dist/database.d.ts +169 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +2 -0
- package/dist/database.js.map +1 -0
- package/dist/http.d.ts +11 -0
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +10 -1
- package/dist/http.js.map +1 -1
- package/dist/index.d.ts +53 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +68 -2
- package/dist/index.js.map +1 -1
- package/dist/mfa.d.ts +109 -0
- package/dist/mfa.d.ts.map +1 -0
- package/dist/mfa.js +134 -0
- package/dist/mfa.js.map +1 -0
- package/dist/postgrest.d.ts +207 -32
- package/dist/postgrest.d.ts.map +1 -1
- package/dist/postgrest.js +349 -54
- package/dist/postgrest.js.map +1 -1
- package/dist/realtime.d.ts +15 -3
- package/dist/realtime.d.ts.map +1 -1
- package/dist/realtime.js +24 -1
- package/dist/realtime.js.map +1 -1
- package/dist/storage.d.ts +33 -16
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +70 -21
- package/dist/storage.js.map +1 -1
- package/package.json +52 -51
package/README.md
CHANGED
|
@@ -1,10 +1,28 @@
|
|
|
1
1
|
# @motherbase/client
|
|
2
2
|
|
|
3
|
-
A **
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
A **supabase-js-shaped** client SDK for the Motherbase self-hosted backend. It
|
|
4
|
+
keeps the same entry points (`createClient`, `.from()`, `.auth`, `.storage`,
|
|
5
|
+
`.channel()`, `.functions`) and the same `{ data, error }` result convention, so
|
|
6
|
+
supabase-js code reads and reviews the same way here.
|
|
7
|
+
|
|
8
|
+
**Scope, honestly.** For the **data layer**, this is a package swap: change the
|
|
9
|
+
import and the client factory, keep your queries. Every `supabase-js` data call
|
|
10
|
+
in the contract suite is either supported or supported with a stated difference,
|
|
11
|
+
including relational embedding (`select('*, author(*)')`), `.rpc()`, native
|
|
12
|
+
`upsert`, `count`, `csv()`, the full filter set and PostgREST error codes.
|
|
13
|
+
Auth and realtime are close, with named gaps (no PKCE code exchange, no `mfa`
|
|
14
|
+
namespace on the client, no private channels).
|
|
15
|
+
|
|
16
|
+
**Storage is path-addressed too**: `upload('avatars/123/pic.png')` then
|
|
17
|
+
`download('avatars/123/pic.png')` round trips, `list(prefix)` works, and keys are
|
|
18
|
+
traversal-checked. Still missing there: `move`, `copy`, batch signed URLs and
|
|
19
|
+
image transforms, and authorization is ownership plus bucket tokens rather than
|
|
20
|
+
RLS policies on the objects table. See
|
|
21
|
+
[`docs/migrating-from-supabase.md`](../../docs/migrating-from-supabase.md).
|
|
22
|
+
|
|
23
|
+
Do not plan a migration from the paragraph above. Plan it from
|
|
24
|
+
[`COMPATIBILITY.md`](./COMPATIBILITY.md), which is generated from contract tests
|
|
25
|
+
and is exhaustive, per method, with the exact difference for every partial row.
|
|
8
26
|
|
|
9
27
|
Typed, isomorphic (browser, Next.js server & client, Expo / React Native), built
|
|
10
28
|
on global `fetch` with zero runtime dependencies (`socket.io-client` is an
|
|
@@ -46,12 +64,13 @@ const { data: products } = await client
|
|
|
46
64
|
.order('name', { ascending: false })
|
|
47
65
|
.limit(20);
|
|
48
66
|
|
|
49
|
-
// Storage
|
|
50
|
-
|
|
67
|
+
// Storage. `uploaded.path` is the key you passed, so later download/remove/
|
|
68
|
+
// signed-URL calls take the same string.
|
|
69
|
+
const { data: uploaded } = await client.storage.from('avatars').upload(`${userId}/me.png`, myBlob, {
|
|
51
70
|
visibility: 'public',
|
|
52
71
|
});
|
|
53
72
|
|
|
54
|
-
// Realtime
|
|
73
|
+
// Realtime: postgres_changes, broadcast, presence over one channel (Supabase-shaped)
|
|
55
74
|
const room = client
|
|
56
75
|
.channel('room-1', { config: { broadcast: { self: true }, presence: { key: userId } } })
|
|
57
76
|
.on('postgres_changes', { event: '*', schema: 'public', table: 'messages', filter: 'room_id=eq.42' }, p => {
|
|
@@ -72,33 +91,70 @@ Every data/auth/storage call resolves to `{ data, error }` and **never throws**
|
|
|
72
91
|
for expected API errors. `error` is `null` on success, otherwise
|
|
73
92
|
`{ message, status?, code? }`.
|
|
74
93
|
|
|
75
|
-
The SDK attaches the access token automatically and
|
|
76
|
-
|
|
77
|
-
|
|
94
|
+
The SDK attaches the access token automatically and revalidates it on a 401
|
|
95
|
+
(single-flight: concurrent requests share one revalidation). Sessions are Better
|
|
96
|
+
Auth bearer sessions, so there is no separate refresh token to rotate: when the
|
|
97
|
+
token is no longer valid the SDK clears the session and emits `SIGNED_OUT`.
|
|
78
98
|
|
|
79
99
|
## API surface (cheatsheet)
|
|
80
100
|
|
|
81
101
|
```ts
|
|
82
|
-
// Data
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
client.from(table).
|
|
102
|
+
// Data. Filters: eq neq gt gte lt lte like ilike likeAllOf likeAnyOf ilikeAllOf
|
|
103
|
+
// ilikeAnyOf in is not or filter match textSearch contains containedBy overlaps
|
|
104
|
+
// rangeGt rangeGte rangeLt rangeLte rangeAdjacent
|
|
105
|
+
client.from(table).select(cols).eq(col, v).in(col, [..]).order(col, { ascending, nullsFirst, referencedTable })
|
|
106
|
+
client.from(table).select(cols).limit(n, { referencedTable }).range(from, to).abortSignal(signal)
|
|
107
|
+
client.from(table).select(cols).or('a.eq.1,and(b.gt.2,c.is.null)') // nests, as PostgREST does
|
|
108
|
+
client.from(table).select(cols).not(col, 'eq', v).filter(col, 'isdistinct', v)
|
|
109
|
+
client.from(table).select(cols).textSearch(col, q, { type: 'websearch', config: 'english' })
|
|
110
|
+
client.from(table).select(cols).single() | .maybeSingle() | .returns<T>() | .csv() | .explain()
|
|
111
|
+
client.from(table).insert(row) | .insert([rowA, rowB], { defaultToNull: false })
|
|
112
|
+
client.from(table).upsert(rows, { onConflict, ignoreDuplicates })
|
|
113
|
+
client.from(table).update(values).eq(..) // a filter is required
|
|
114
|
+
client.from(table).delete().eq(..) // a filter is required
|
|
115
|
+
// Every call resolves { data, error, count }. `count` is null unless you ask:
|
|
116
|
+
// .select('*', { count: 'exact', head: true }).
|
|
117
|
+
// Values are quoted for you: .in('name', ['a,b']) is one value, not two.
|
|
118
|
+
// Writes always return their rows: no .select() needed, and no way to opt out.
|
|
119
|
+
// An unbounded select is capped at 100 rows server side: paginate with .range().
|
|
120
|
+
// explain() needs an admin caller; a normal caller gets 403.
|
|
121
|
+
|
|
122
|
+
// Relational embedding. Compiles to a correlated LATERAL subquery inside the
|
|
123
|
+
// same RLS transaction, so embedded rows are policy-filtered too.
|
|
124
|
+
client.from('posts').select('id, author(name), comments(id)') // object / array by FK shape
|
|
125
|
+
client.from('posts').select('id, author!inner(name)') // inner join semantics
|
|
126
|
+
client.from('posts').select('id, comments(count)') // aggregate
|
|
127
|
+
|
|
128
|
+
// Database functions (typed from the generated Database["public"]["Functions"]).
|
|
129
|
+
// Runs in the caller's RLS transaction. SECURITY DEFINER functions are refused
|
|
130
|
+
// unless an operator allowlists them.
|
|
131
|
+
client.rpc(fn, args, { get, head, count })
|
|
86
132
|
|
|
87
133
|
// Auth → { data, error }
|
|
88
|
-
client.auth.signUp({ email, password })
|
|
134
|
+
client.auth.signUp({ email, password, username? })
|
|
89
135
|
client.auth.signInWithPassword({ email, password })
|
|
136
|
+
client.auth.signInWithOtp({ email }) // emails a code
|
|
137
|
+
client.auth.verifyOtp({ email, token }) // completes the OTP sign-in
|
|
138
|
+
client.auth.signInWithOAuth({ provider, options: { redirectTo, scopes, skipBrowserRedirect } })
|
|
139
|
+
client.auth.resetPasswordForEmail(email)
|
|
140
|
+
client.auth.resetPassword({ email, otp, password })
|
|
141
|
+
client.auth.updateUser({ data, password, currentPassword })
|
|
142
|
+
client.auth.setSession({ access_token })
|
|
90
143
|
client.auth.signOut()
|
|
91
|
-
client.auth.getUser() // { data: { user } }
|
|
92
|
-
client.auth.getSession() // { data: { session } }
|
|
144
|
+
client.auth.getUser() // { data: { user } }, revalidates against the server
|
|
145
|
+
client.auth.getSession() // { data: { session } }, local only
|
|
93
146
|
client.auth.refreshSession()
|
|
94
147
|
client.auth.onAuthStateChange((event, session) => {}) // SIGNED_IN | SIGNED_OUT | TOKEN_REFRESHED
|
|
148
|
+
client.auth.deleteUser({ password }) // self-service, needs the backend flow enabled
|
|
95
149
|
|
|
96
|
-
// Storage → { data, error }
|
|
97
|
-
|
|
150
|
+
// Storage → { data, error }. `path` is the object key inside the bucket, and it
|
|
151
|
+
// round trips. The file id returned by upload still works anywhere a path does.
|
|
152
|
+
client.storage.from(bucket).upload(path, file, { visibility, upsert })
|
|
98
153
|
client.storage.from(bucket).download(path)
|
|
99
154
|
client.storage.from(bucket).remove([path])
|
|
100
|
-
client.storage.from(bucket).
|
|
101
|
-
client.storage.from(bucket).
|
|
155
|
+
client.storage.from(bucket).list(prefix, { limit, offset, search, sortBy })
|
|
156
|
+
client.storage.from(bucket).createSignedUrl(path, expiresIn) // expiresIn is ignored
|
|
157
|
+
client.storage.from(bucket).getPublicUrl(path) // sync
|
|
102
158
|
|
|
103
159
|
// Realtime
|
|
104
160
|
client.channel(name, { config: { broadcast: { self, ack }, presence: { key } } })
|
|
@@ -119,7 +175,7 @@ client.functions.invoke(name, { body })
|
|
|
119
175
|
| Runtime | Adapter |
|
|
120
176
|
| -------- | ------------------------------------------------------------- |
|
|
121
177
|
| Browser | `localStorageStorage()` or `cookieStorage()` |
|
|
122
|
-
| SSR/Node | `memoryStorage()` (default), `serverCookieStorage(cookieMethods)` (getAll/setAll
|
|
178
|
+
| SSR/Node | `memoryStorage()` (default), `serverCookieStorage(cookieMethods)` (getAll/setAll, see `@motherbase/ssr` for Next.js helpers), or a custom `{ get, set }` adapter |
|
|
123
179
|
| Expo/RN | custom `{ get, set }` backed by `AsyncStorage` |
|
|
124
180
|
|
|
125
181
|
```ts
|
|
@@ -142,25 +198,22 @@ const client = createClient(API_URL, ANON_KEY, {
|
|
|
142
198
|
|
|
143
199
|
## Compatibility matrix
|
|
144
200
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
| `channel().on('broadcast')` + `.send()` | Supported | `config.broadcast.self` / `.ack`. |
|
|
162
|
-
| `channel().on('presence')` + `.track/.untrack/.presenceState` | Supported | `sync`/`join`/`leave`, keyed by `config.presence.key`. |
|
|
163
|
-
| `functions.invoke(name, { body })` | Supported | Maps to `/api/edge/:name`. |
|
|
201
|
+
The matrix is **not maintained by hand**. It lives in
|
|
202
|
+
[`COMPATIBILITY.md`](./COMPATIBILITY.md) and is generated by
|
|
203
|
+
`apps/server/tests/sdk-contract.integration.test.ts`, which runs every listed
|
|
204
|
+
supabase-js call against a live Motherbase server and a live Postgres. Each row
|
|
205
|
+
carries the id of the test that produced it.
|
|
206
|
+
|
|
207
|
+
Rows marked `Not supported` assert the current failure behaviour, so the day a
|
|
208
|
+
feature lands its test fails and the document has to be regenerated. That is the
|
|
209
|
+
mechanism that keeps this page from over-claiming (or under-claiming) again. CI
|
|
210
|
+
regenerates the file and fails if the committed copy differs.
|
|
211
|
+
|
|
212
|
+
Regenerate it locally with:
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
npm run test -w apps/server -- sdk-contract
|
|
216
|
+
```
|
|
164
217
|
|
|
165
218
|
More examples live in [`docs/sdk.md`](../../docs/sdk.md). Project Studio also
|
|
166
219
|
exposes a project-specific Connect page with the exact API URL, WebSocket URL and
|
package/dist/admin.d.ts
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"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"}
|
package/dist/auth.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { MfaClient } from './mfa.js';
|
|
2
|
+
import { AuthAdminClient } from './admin.js';
|
|
1
3
|
import type { HttpClient } from './http.js';
|
|
2
4
|
import type { SessionStore } from './session.js';
|
|
3
5
|
import type { AuthChangeListener, MotherbaseResponse, Session, User } from './types.js';
|
|
@@ -59,6 +61,17 @@ export interface Subscription {
|
|
|
59
61
|
export declare class AuthClient {
|
|
60
62
|
private readonly http;
|
|
61
63
|
private readonly store;
|
|
64
|
+
/**
|
|
65
|
+
* Two-factor, shaped like `supabase.auth.mfa`. The server has shipped TOTP
|
|
66
|
+
* from the start; this is the namespace that makes it reachable.
|
|
67
|
+
*/
|
|
68
|
+
readonly mfa: MfaClient;
|
|
69
|
+
/**
|
|
70
|
+
* User administration for server code holding a secret key. Present on every
|
|
71
|
+
* client, because whether the key is secret is a server-side fact: calling
|
|
72
|
+
* these with a publishable key is a 401, not a missing method.
|
|
73
|
+
*/
|
|
74
|
+
readonly admin: AuthAdminClient;
|
|
62
75
|
constructor(http: HttpClient, store: SessionStore);
|
|
63
76
|
signUp(credentials: SignUpCredentials): Promise<MotherbaseResponse<{
|
|
64
77
|
user: User | null;
|
|
@@ -94,11 +107,6 @@ export declare class AuthClient {
|
|
|
94
107
|
user: User | null;
|
|
95
108
|
session: Session | null;
|
|
96
109
|
}>>;
|
|
97
|
-
/** Create a fresh anonymous session. Requires the `anonymous` sign-in method to be enabled. */
|
|
98
|
-
signInAnonymously(): Promise<MotherbaseResponse<{
|
|
99
|
-
user: User | null;
|
|
100
|
-
session: Session | null;
|
|
101
|
-
}>>;
|
|
102
110
|
/**
|
|
103
111
|
* Start an OAuth sign-in with a configured social provider. Resolves with the
|
|
104
112
|
* provider's authorize URL and, in a browser, redirects to it immediately
|
|
@@ -108,6 +116,28 @@ export declare class AuthClient {
|
|
|
108
116
|
provider: string;
|
|
109
117
|
url: string | null;
|
|
110
118
|
}>>;
|
|
119
|
+
/**
|
|
120
|
+
* Start an enterprise SSO sign-in. Identify the provider by the user's email
|
|
121
|
+
* domain, by an explicit `domain`, or by `providerId` when you already know
|
|
122
|
+
* which one to use.
|
|
123
|
+
*
|
|
124
|
+
* Resolves with the identity provider's URL and, in a browser, redirects to it
|
|
125
|
+
* unless `options.skipBrowserRedirect` is set. The project must have the SSO
|
|
126
|
+
* plugin enabled and at least one provider registered (Studio →
|
|
127
|
+
* Authentication → Organizations & SSO).
|
|
128
|
+
*/
|
|
129
|
+
signInWithSSO(params: {
|
|
130
|
+
domain?: string;
|
|
131
|
+
email?: string;
|
|
132
|
+
providerId?: string;
|
|
133
|
+
organizationSlug?: string;
|
|
134
|
+
options?: {
|
|
135
|
+
redirectTo?: string;
|
|
136
|
+
skipBrowserRedirect?: boolean;
|
|
137
|
+
};
|
|
138
|
+
}): Promise<MotherbaseResponse<{
|
|
139
|
+
url: string | null;
|
|
140
|
+
}>>;
|
|
111
141
|
/**
|
|
112
142
|
* Update the signed-in user's profile fields and/or password. Password
|
|
113
143
|
* changes require `currentPassword` (a Better Auth requirement — there is no
|
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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"}
|
package/dist/auth.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { toError } from './http.js';
|
|
1
|
+
import { BackendError, toError } from './http.js';
|
|
2
|
+
import { MfaClient } from './mfa.js';
|
|
3
|
+
import { AuthAdminClient } from './admin.js';
|
|
2
4
|
import { HTTP_ROUTES } from '@motherbase/contracts';
|
|
3
5
|
/** Build a clean Session from the Better Auth auth payload. */
|
|
4
6
|
function toSession(payload) {
|
|
@@ -18,6 +20,12 @@ export class AuthClient {
|
|
|
18
20
|
constructor(http, store) {
|
|
19
21
|
this.http = http;
|
|
20
22
|
this.store = store;
|
|
23
|
+
// A successful verify can return a stepped-up session, so mfa re-runs the
|
|
24
|
+
// session read through the same path every other method uses.
|
|
25
|
+
this.mfa = new MfaClient(http, async () => {
|
|
26
|
+
await this.refreshSession();
|
|
27
|
+
});
|
|
28
|
+
this.admin = new AuthAdminClient(http);
|
|
21
29
|
}
|
|
22
30
|
async signUp(credentials) {
|
|
23
31
|
try {
|
|
@@ -114,21 +122,6 @@ export class AuthClient {
|
|
|
114
122
|
return { data: { user: null, session: null }, error: toError(err) };
|
|
115
123
|
}
|
|
116
124
|
}
|
|
117
|
-
/** Create a fresh anonymous session. Requires the `anonymous` sign-in method to be enabled. */
|
|
118
|
-
async signInAnonymously() {
|
|
119
|
-
try {
|
|
120
|
-
const payload = await this.http.request(HTTP_ROUTES.authSignInAnonymous, {
|
|
121
|
-
method: 'POST',
|
|
122
|
-
anonymous: true,
|
|
123
|
-
raw: true,
|
|
124
|
-
});
|
|
125
|
-
const session = await this.persist(payload);
|
|
126
|
-
return { data: { user: session.user, session }, error: null };
|
|
127
|
-
}
|
|
128
|
-
catch (err) {
|
|
129
|
-
return { data: { user: null, session: null }, error: toError(err) };
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
125
|
/**
|
|
133
126
|
* Start an OAuth sign-in with a configured social provider. Resolves with the
|
|
134
127
|
* provider's authorize URL and, in a browser, redirects to it immediately
|
|
@@ -157,6 +150,43 @@ export class AuthClient {
|
|
|
157
150
|
return { data: { provider: credentials.provider, url: null }, error: toError(err) };
|
|
158
151
|
}
|
|
159
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Start an enterprise SSO sign-in. Identify the provider by the user's email
|
|
155
|
+
* domain, by an explicit `domain`, or by `providerId` when you already know
|
|
156
|
+
* which one to use.
|
|
157
|
+
*
|
|
158
|
+
* Resolves with the identity provider's URL and, in a browser, redirects to it
|
|
159
|
+
* unless `options.skipBrowserRedirect` is set. The project must have the SSO
|
|
160
|
+
* plugin enabled and at least one provider registered (Studio →
|
|
161
|
+
* Authentication → Organizations & SSO).
|
|
162
|
+
*/
|
|
163
|
+
async signInWithSSO(params) {
|
|
164
|
+
if (!params.domain && !params.email && !params.providerId && !params.organizationSlug) {
|
|
165
|
+
return { data: { url: null }, error: { message: 'signInWithSSO needs a domain, email, providerId or organizationSlug' } };
|
|
166
|
+
}
|
|
167
|
+
try {
|
|
168
|
+
const payload = await this.http.request('/api/auth/sign-in/sso', {
|
|
169
|
+
method: 'POST',
|
|
170
|
+
body: {
|
|
171
|
+
...(params.domain ? { domain: params.domain } : {}),
|
|
172
|
+
...(params.email ? { email: params.email } : {}),
|
|
173
|
+
...(params.providerId ? { providerId: params.providerId } : {}),
|
|
174
|
+
...(params.organizationSlug ? { organizationSlug: params.organizationSlug } : {}),
|
|
175
|
+
callbackURL: params.options?.redirectTo,
|
|
176
|
+
},
|
|
177
|
+
anonymous: true,
|
|
178
|
+
raw: true,
|
|
179
|
+
});
|
|
180
|
+
const url = payload?.url ?? null;
|
|
181
|
+
if (url && !params.options?.skipBrowserRedirect && typeof window !== 'undefined') {
|
|
182
|
+
window.location.href = url;
|
|
183
|
+
}
|
|
184
|
+
return { data: { url }, error: null };
|
|
185
|
+
}
|
|
186
|
+
catch (err) {
|
|
187
|
+
return { data: { url: null }, error: toError(err) };
|
|
188
|
+
}
|
|
189
|
+
}
|
|
160
190
|
/**
|
|
161
191
|
* Update the signed-in user's profile fields and/or password. Password
|
|
162
192
|
* changes require `currentPassword` (a Better Auth requirement — there is no
|
|
@@ -274,7 +304,12 @@ export class AuthClient {
|
|
|
274
304
|
return { data: { user: session.user, session }, error: null };
|
|
275
305
|
}
|
|
276
306
|
catch (err) {
|
|
277
|
-
|
|
307
|
+
// Only a rejected token clears the session. A network failure or a 5xx
|
|
308
|
+
// must leave it intact: middleware runs this on every navigation, so
|
|
309
|
+
// one backend hiccup would otherwise sign the user out.
|
|
310
|
+
const status = err instanceof BackendError ? err.httpStatus : 0;
|
|
311
|
+
if (status === 401 || status === 403)
|
|
312
|
+
await this.store.set(null, 'signOut');
|
|
278
313
|
return { data: { user: null, session: null }, error: toError(err) };
|
|
279
314
|
}
|
|
280
315
|
}
|
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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"}
|