@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.
Files changed (57) hide show
  1. package/README.md +73 -9
  2. package/dist/auth.d.ts +172 -14
  3. package/dist/auth.d.ts.map +1 -1
  4. package/dist/auth.js +399 -14
  5. package/dist/auth.js.map +1 -1
  6. package/dist/channel.d.ts +15 -12
  7. package/dist/channel.d.ts.map +1 -1
  8. package/dist/channel.js.map +1 -1
  9. package/dist/compat.d.ts +40 -0
  10. package/dist/compat.d.ts.map +1 -0
  11. package/dist/compat.js +98 -0
  12. package/dist/compat.js.map +1 -0
  13. package/dist/cookie.d.ts +23 -2
  14. package/dist/cookie.d.ts.map +1 -1
  15. package/dist/cookie.js +71 -9
  16. package/dist/cookie.js.map +1 -1
  17. package/dist/database.d.ts +20 -1
  18. package/dist/database.d.ts.map +1 -1
  19. package/dist/functions.d.ts +36 -0
  20. package/dist/functions.d.ts.map +1 -1
  21. package/dist/functions.js +56 -5
  22. package/dist/functions.js.map +1 -1
  23. package/dist/http.d.ts +47 -7
  24. package/dist/http.d.ts.map +1 -1
  25. package/dist/http.js +73 -12
  26. package/dist/http.js.map +1 -1
  27. package/dist/index.d.ts +79 -6
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +183 -11
  30. package/dist/index.js.map +1 -1
  31. package/dist/postgrest.d.ts +94 -1
  32. package/dist/postgrest.d.ts.map +1 -1
  33. package/dist/postgrest.js +185 -17
  34. package/dist/postgrest.js.map +1 -1
  35. package/dist/query.d.ts +97 -0
  36. package/dist/query.d.ts.map +1 -0
  37. package/dist/query.js +94 -0
  38. package/dist/query.js.map +1 -0
  39. package/dist/session.d.ts +19 -1
  40. package/dist/session.d.ts.map +1 -1
  41. package/dist/session.js +57 -4
  42. package/dist/session.js.map +1 -1
  43. package/dist/storage.d.ts +172 -5
  44. package/dist/storage.d.ts.map +1 -1
  45. package/dist/storage.js +249 -6
  46. package/dist/storage.js.map +1 -1
  47. package/dist/testing.d.ts +38 -0
  48. package/dist/testing.d.ts.map +1 -0
  49. package/dist/testing.js +50 -0
  50. package/dist/testing.js.map +1 -0
  51. package/dist/types.d.ts +264 -20
  52. package/dist/types.d.ts.map +1 -1
  53. package/dist/warn.d.ts +4 -0
  54. package/dist/warn.d.ts.map +1 -0
  55. package/dist/warn.js +27 -0
  56. package/dist/warn.js.map +1 -0
  57. package/package.json +60 -52
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Test-only client: run a query as a specific user, or as nobody.
3
+ *
4
+ * A row level security policy is a claim about who can see what, and the only
5
+ * honest way to check it is to issue the same query as several callers and
6
+ * compare the results. Without this, doing that in a test means creating users
7
+ * and signing in as each of them through the real auth flow, which is slow
8
+ * enough that most policies end up untested and wrong.
9
+ *
10
+ * ```ts
11
+ * const asAlice = createTestClient(url, secretKey, { as: alice.id })
12
+ * const asBob = createTestClient(url, secretKey, { as: bob.id })
13
+ * const asAnon = createTestClient(url, secretKey, { as: 'anon' })
14
+ *
15
+ * expect((await asAlice.from('notes').select('*')).data).toHaveLength(1)
16
+ * expect((await asBob.from('notes').select('*')).data).toHaveLength(0)
17
+ * ```
18
+ *
19
+ * This is a server-side tool. It needs the project's SECRET key, which bypasses
20
+ * RLS and must never reach a browser, so importing this module from application
21
+ * code is a mistake even though nothing here can stop you. The server refuses
22
+ * the impersonation header outright when the key is anything else, so the worst
23
+ * case is a failed request rather than a privilege escalation.
24
+ */
25
+ import { MotherbaseClient } from './index.js';
26
+ import type { ClientOptions } from './types.js';
27
+ import type { GenericDatabase, GenericSchema, DefaultSchemaName, SchemaOf } from './database.js';
28
+ /** The header the server reads. Exported so a raw fetch can do the same thing. */
29
+ export declare const IMPERSONATE_HEADER = "x-motherbase-impersonate";
30
+ export interface TestClientOptions extends ClientOptions {
31
+ /**
32
+ * Who to run as: a user id, `'anon'` for a signed-out visitor, or
33
+ * `'service_role'` to keep the secret key's own bypass-everything identity.
34
+ */
35
+ as: string;
36
+ }
37
+ export declare function createTestClient<Database = GenericDatabase, SchemaName = DefaultSchemaName<Database>, Schema extends GenericSchema = SchemaOf<Database, SchemaName>>(url: string, secretKey: string, options: TestClientOptions): MotherbaseClient<Database, SchemaName, Schema>;
38
+ //# sourceMappingURL=testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAgB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEjG,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,6BAA6B,CAAC;AAE7D,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,GAAG,eAAe,EAC1B,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,EACxC,MAAM,SAAS,aAAa,GAAG,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,EAE7D,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,GACzB,gBAAgB,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC,CAuBhD"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Test-only client: run a query as a specific user, or as nobody.
3
+ *
4
+ * A row level security policy is a claim about who can see what, and the only
5
+ * honest way to check it is to issue the same query as several callers and
6
+ * compare the results. Without this, doing that in a test means creating users
7
+ * and signing in as each of them through the real auth flow, which is slow
8
+ * enough that most policies end up untested and wrong.
9
+ *
10
+ * ```ts
11
+ * const asAlice = createTestClient(url, secretKey, { as: alice.id })
12
+ * const asBob = createTestClient(url, secretKey, { as: bob.id })
13
+ * const asAnon = createTestClient(url, secretKey, { as: 'anon' })
14
+ *
15
+ * expect((await asAlice.from('notes').select('*')).data).toHaveLength(1)
16
+ * expect((await asBob.from('notes').select('*')).data).toHaveLength(0)
17
+ * ```
18
+ *
19
+ * This is a server-side tool. It needs the project's SECRET key, which bypasses
20
+ * RLS and must never reach a browser, so importing this module from application
21
+ * code is a mistake even though nothing here can stop you. The server refuses
22
+ * the impersonation header outright when the key is anything else, so the worst
23
+ * case is a failed request rather than a privilege escalation.
24
+ */
25
+ import { createClient } from './index.js';
26
+ import { memoryStorage } from './session.js';
27
+ /** The header the server reads. Exported so a raw fetch can do the same thing. */
28
+ export const IMPERSONATE_HEADER = 'x-motherbase-impersonate';
29
+ export function createTestClient(url, secretKey, options) {
30
+ if (!secretKey?.startsWith('mb_secret_')) {
31
+ // Fail here rather than at the first query: a test that ran as the wrong
32
+ // caller and passed is the failure this whole module exists to prevent.
33
+ throw new Error('createTestClient needs the project secret key (mb_secret_…). A publishable key cannot impersonate, '
34
+ + 'and the server refuses the header with a 403.');
35
+ }
36
+ const { as, ...rest } = options;
37
+ return createClient(url, secretKey, {
38
+ // A fresh in-memory session per client, so two clients in one test file
39
+ // cannot share (or clobber) each other's stored session.
40
+ storage: memoryStorage(),
41
+ ...rest,
42
+ headers: {
43
+ ...rest.headers,
44
+ // `service_role` is the absence of impersonation: the secret key already
45
+ // is service_role, so sending a header would only add a lookup.
46
+ ...(as === 'service_role' ? {} : { [IMPERSONATE_HEADER]: as }),
47
+ },
48
+ });
49
+ }
50
+ //# sourceMappingURL=testing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,YAAY,EAAoB,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,kFAAkF;AAClF,MAAM,CAAC,MAAM,kBAAkB,GAAG,0BAA0B,CAAC;AAU7D,MAAM,UAAU,gBAAgB,CAK9B,GAAW,EACX,SAAiB,EACjB,OAA0B;IAE1B,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACzC,yEAAyE;QACzE,wEAAwE;QACxE,MAAM,IAAI,KAAK,CACb,qGAAqG;cACjG,+CAA+C,CACpD,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAChC,OAAO,YAAY,CAA+B,GAAG,EAAE,SAAS,EAAE;QAChE,wEAAwE;QACxE,yDAAyD;QACzD,OAAO,EAAE,aAAa,EAAE;QACxB,GAAG,IAAI;QACP,OAAO,EAAE;YACP,GAAG,IAAI,CAAC,OAAO;YACf,yEAAyE;YACzE,gEAAgE;YAChE,GAAG,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,CAAC;SAC/D;KACF,CAAC,CAAC;AACL,CAAC"}
package/dist/types.d.ts CHANGED
@@ -7,13 +7,120 @@ export interface ApiEnvelope<T = unknown> {
7
7
  data?: T;
8
8
  pager?: Record<string, unknown>;
9
9
  }
10
- /** Authenticated user as returned by the API. Extra fields are preserved. */
11
- export interface User {
12
- id: string;
13
- email: string;
10
+ /**
11
+ * A timestamp as it can reach the client: ISO string over HTTP, `Date` when a
12
+ * server-side caller passes a Better Auth row straight in.
13
+ */
14
+ export type Timestamp = string | Date;
15
+ /**
16
+ * The open bag of profile fields.
17
+ *
18
+ * `User` itself is closed: every field the platform sets is declared, and a
19
+ * typo like `user.emailVerifed` is a compile error. Project-specific columns
20
+ * (anything added to `user.additionalFields` on the server) cannot be known
21
+ * here, so they live in this bag, which is the one place with an index
22
+ * signature. `compat.ts` copies every non-platform field into it, so a custom
23
+ * `plan` column is readable as `user.user_metadata.plan`.
24
+ *
25
+ * Declare your own shape for it when you know the columns:
26
+ * `const meta = user.user_metadata as { plan?: string }`.
27
+ */
28
+ export interface UserMetadata {
29
+ name?: string | null;
30
+ image?: string | null;
31
+ [key: string]: unknown;
32
+ }
33
+ /** Fields Better Auth itself owns on a user row. */
34
+ export interface BetterAuthUserFields {
35
+ /** Display name. Better Auth's own column, mirrored into `user_metadata`. */
36
+ name?: string | null;
37
+ /** Avatar URL. Better Auth's own column, mirrored into `user_metadata`. */
38
+ image?: string | null;
39
+ /** Better Auth stores verification as a boolean, not a timestamp. */
40
+ emailVerified?: boolean;
41
+ createdAt?: Timestamp | null;
42
+ updatedAt?: Timestamp | null;
43
+ /** Set by the `phoneNumber` plugin; aliased to `phone`. */
44
+ phoneNumber?: string | null;
45
+ phoneNumberVerified?: boolean | null;
46
+ /** Set by the `admin` plugin. */
47
+ banned?: boolean | null;
48
+ banReason?: string | null;
49
+ banExpires?: Timestamp | null;
50
+ /** Set by the `twoFactor` plugin. */
51
+ twoFactorEnabled?: boolean | null;
52
+ }
53
+ /**
54
+ * The `additionalFields` Motherbase configures on every project's auth
55
+ * instance (see `apps/server/auth/instance.ts`). The first four are
56
+ * client-writable through `updateUser`; the rest are server-set.
57
+ */
58
+ export interface MotherbaseUserFields {
14
59
  username?: string | null;
60
+ firstName?: string | null;
61
+ lastName?: string | null;
62
+ imageUrl?: string | null;
63
+ /** `'USER'` by default on the server, `'authenticated'` after `compat.ts`. */
15
64
  role?: string;
16
- [key: string]: unknown;
65
+ status?: string | null;
66
+ classicEmail?: string | null;
67
+ appleId?: string | null;
68
+ appleEmail?: string | null;
69
+ googleId?: string | null;
70
+ googleEmail?: string | null;
71
+ }
72
+ /**
73
+ * The snake_case aliases `compat.ts` adds on the way out, so code ported from
74
+ * supabase-js reads `user.created_at` and `user.user_metadata.full_name` on a
75
+ * user that came out of Better Auth.
76
+ *
77
+ * They are optional because a `User` you construct yourself (a test fixture, a
78
+ * value on its way *in*) has not been through `compat.ts` yet. Everything the
79
+ * SDK hands back has them.
80
+ */
81
+ export interface SupabaseUserAliases {
82
+ /** Always `'authenticated'`. Present for supabase-js parity. */
83
+ aud?: string;
84
+ created_at?: string | null;
85
+ updated_at?: string | null;
86
+ /** Non-null once the email is verified. Better Auth stores a boolean, so the
87
+ * value is the last-update timestamp rather than the true verification time. */
88
+ email_confirmed_at?: string | null;
89
+ confirmed_at?: string | null;
90
+ /** Alias of `phoneNumber`, `''` when the user has no phone. */
91
+ phone?: string;
92
+ /**
93
+ * Always `{}`: the client is not told which provider issued the session, and
94
+ * a guessed `{ provider: 'email' }` is worse than a missing one.
95
+ */
96
+ app_metadata?: Record<string, unknown>;
97
+ /** Profile fields (`name`, `image`, any configured additional field). */
98
+ user_metadata?: UserMetadata;
99
+ identities?: UserIdentity[];
100
+ is_anonymous?: boolean;
101
+ }
102
+ /** A linked provider, in the supabase-js `UserIdentity` shape. */
103
+ export interface UserIdentity {
104
+ id: string;
105
+ identity_id: string;
106
+ user_id: string;
107
+ provider: string;
108
+ identity_data: Record<string, unknown>;
109
+ created_at: string | null;
110
+ updated_at: string | null;
111
+ last_sign_in_at: string | null;
112
+ }
113
+ /**
114
+ * Authenticated user as returned by the API.
115
+ *
116
+ * Closed on purpose: every field the platform can set is declared above, so
117
+ * reading one that does not exist is a compile error instead of a silent
118
+ * `undefined` at runtime. Project-specific columns go through
119
+ * [`UserMetadata`](#UserMetadata) (`user.user_metadata.<field>`).
120
+ */
121
+ export interface User extends BetterAuthUserFields, MotherbaseUserFields, SupabaseUserAliases {
122
+ id: string;
123
+ email: string;
17
124
  }
18
125
  /**
19
126
  * The bearer token issued by sign-up / sign-in. With Better Auth this is the
@@ -25,23 +132,76 @@ export interface Tokens {
25
132
  accessToken: string;
26
133
  refreshToken?: string;
27
134
  }
28
- /** The locally-held session: the bearer token plus the user it belongs to. */
135
+ /**
136
+ * The locally-held session: the bearer token plus the user it belongs to.
137
+ *
138
+ * The snake_case fields are supabase-js aliases, added by the session store on
139
+ * the way out (see `compat.ts`). `access_token` always mirrors `accessToken`;
140
+ * `expires_at` / `expires_in` are present only when the server dated the
141
+ * session, because supabase-js callers schedule refreshes off them and a
142
+ * fabricated expiry schedules them wrong.
143
+ */
29
144
  export interface Session extends Tokens {
30
145
  user: User;
146
+ /** supabase-js alias of `accessToken`. */
147
+ access_token?: string;
148
+ /** supabase-js alias of `refreshToken`. Always null on Better Auth sessions. */
149
+ refresh_token?: string | null;
150
+ token_type?: 'bearer';
151
+ /** Unix seconds. Absent when the backend did not date the session. */
152
+ expires_at?: number;
153
+ /** Seconds until `expires_at`. Absent for the same reason. */
154
+ expires_in?: number;
155
+ }
156
+ export type FileVisibility = 'public' | 'private';
157
+ /** Lifecycle of a stored object: `ready` unless a presigned upload is pending. */
158
+ export type FileStatus = 'pending' | 'ready' | 'expired';
159
+ /**
160
+ * A row of the storage table, as `POST /api/files/` returns it.
161
+ *
162
+ * This is the upload shape, not the `list()` shape: `list()` answers in the
163
+ * supabase-js `FileObject` form, which is a different set of fields under
164
+ * different names. Conflating the two is what the old `[key: string]: unknown`
165
+ * hid, and `file.filename` (a field the server never sent) type-checked.
166
+ */
167
+ export interface StoredFile {
168
+ id: string;
169
+ /** Bucket slug. */
170
+ bucket: string;
171
+ /** Object key inside the bucket, including any prefix. */
172
+ key: string;
173
+ mime?: string | null;
174
+ size: number;
175
+ visibility: FileVisibility;
176
+ status: FileStatus;
177
+ /** Set for public objects and for drivers that store an absolute URL. */
178
+ url?: string | null;
179
+ ownerId?: string | null;
180
+ bucketId?: string | null;
181
+ /** Deadline of a presigned upload that has not been finalised. */
182
+ uploadExpiresAt?: string | null;
183
+ createdAt: string;
184
+ updatedAt: string;
31
185
  }
32
- /** A stored file as returned by the storage endpoints. */
186
+ /**
187
+ * One object as `list()` returns it: the supabase-js `FileObject` shape, which
188
+ * is what code ported from Supabase reads (`obj.name`, `obj.metadata.size`).
189
+ */
33
190
  export interface FileObject {
191
+ /** Key relative to the bucket. */
192
+ name: string;
34
193
  id: string;
35
- filename?: string;
36
- mime?: string;
37
- visibility?: 'public' | 'private';
38
- bucket?: string;
39
- url?: string;
40
- [key: string]: unknown;
194
+ created_at: string | null;
195
+ updated_at: string | null;
196
+ last_accessed_at: string | null;
197
+ metadata: {
198
+ size: number;
199
+ mimetype: string | null;
200
+ cacheControl: string | null;
201
+ };
41
202
  }
42
- export type FileVisibility = 'public' | 'private';
43
203
  /** Exact payload returned by `POST /api/files/`. */
44
- export type StorageUploadResponse = StorageUploadContract<FileObject>;
204
+ export type StorageUploadResponse = StorageUploadContract<StoredFile>;
45
205
  /** Exact payload returned by `DELETE /api/files/:id`. */
46
206
  export type StorageRemoveResponse = StorageRemoveContract;
47
207
  /** A file-ish value accepted by multipart uploads (browser File/Blob or RN asset). */
@@ -53,7 +213,7 @@ export type UploadInput = Blob | {
53
213
  /**
54
214
  * The uniform result envelope every data/auth/storage call resolves to.
55
215
  * `error` is `null` on success; `data` is `null` on failure. Never throws for
56
- * expected API errors — only for programmer misuse.
216
+ * expected API errors: only for programmer misuse.
57
217
  */
58
218
  export interface MotherbaseResponse<T> {
59
219
  data: T | null;
@@ -66,6 +226,13 @@ export interface MotherbaseError {
66
226
  status?: number;
67
227
  /** Backend/app error code, when present. */
68
228
  code?: string;
229
+ /**
230
+ * Correlation id of the failed request, from the `x-request-id` response
231
+ * header. The same id is on the server-side log line, so quoting it in a bug
232
+ * report (or logging it beside your own error) is what makes an intermittent
233
+ * 500 findable.
234
+ */
235
+ requestId?: string;
69
236
  }
70
237
  /**
71
238
  * Persists the session between runs. Implementations must be synchronous-or-async
@@ -75,7 +242,56 @@ export interface SessionStorageAdapter {
75
242
  get(): Session | null | Promise<Session | null>;
76
243
  set(session: Session | null): void | Promise<void>;
77
244
  }
78
- export interface ClientOptions {
245
+ /**
246
+ * A key/value store shaped like `window.localStorage` or React Native's
247
+ * `AsyncStorage`. supabase-js takes its session storage in this form, so an app
248
+ * being ported passes one of these; the client wraps it (see
249
+ * `keyValueStorage`) rather than failing at runtime on a missing `.get`.
250
+ */
251
+ export interface KeyValueStorageAdapter {
252
+ getItem(key: string): string | null | Promise<string | null>;
253
+ setItem(key: string, value: string): void | Promise<void>;
254
+ removeItem(key: string): void | Promise<void>;
255
+ }
256
+ /**
257
+ * The supabase-js-shaped half of the options.
258
+ *
259
+ * supabase-js nests its options under `auth`, `db`, `global` and `realtime`.
260
+ * Ported code passes them that way, and silently dropping them is the worst
261
+ * possible outcome: `{ auth: { persistSession: true } }` looks like it works
262
+ * and the user is signed out on every reload. Both spellings are accepted; the
263
+ * flat (native) one wins where they collide.
264
+ */
265
+ export interface SupabaseStyleOptions {
266
+ auth?: {
267
+ /** Refresh on 401 and, with `startAutoRefresh()`, on a timer. Default true. */
268
+ autoRefreshToken?: boolean;
269
+ /**
270
+ * `true` (the default in a browser) persists the session to localStorage
271
+ * when no explicit storage is given. `false` keeps it in memory.
272
+ */
273
+ persistSession?: boolean;
274
+ /** Read the OAuth token out of the URL on construction. Default true in a browser. */
275
+ detectSessionInUrl?: boolean;
276
+ /** Either adapter shape: supabase-js's key/value store or the native one. */
277
+ storage?: KeyValueStorageAdapter | SessionStorageAdapter;
278
+ /** Storage key. Defaults to `motherbase.session`. */
279
+ storageKey?: string;
280
+ /** Accepted for signature parity. Motherbase runs the implicit flow only. */
281
+ flowType?: 'implicit' | 'pkce';
282
+ debug?: boolean;
283
+ };
284
+ db?: {
285
+ /** Default schema for `from()` and `rpc()`. Only `public` is exposed today. */
286
+ schema?: string;
287
+ };
288
+ global?: {
289
+ headers?: Record<string, string>;
290
+ fetch?: typeof fetch;
291
+ };
292
+ realtime?: Record<string, unknown>;
293
+ }
294
+ export interface ClientOptions extends SupabaseStyleOptions {
79
295
  /** Where to persist the session. Defaults to in-memory (SSR-safe). */
80
296
  storage?: SessionStorageAdapter;
81
297
  /** Refresh the access token automatically on a 401. Default: true. */
@@ -84,16 +300,44 @@ export interface ClientOptions {
84
300
  fetch?: typeof fetch;
85
301
  /** Extra headers merged into every request (e.g. a custom `apikey`). */
86
302
  headers?: Record<string, string>;
303
+ /**
304
+ * Align the behaviours that differ from supabase-js but share its spelling.
305
+ *
306
+ * A missing method fails loudly. A method that exists and behaves differently
307
+ * does not, and that is what breaks a ported app in production. Three known
308
+ * cases, all recorded in COMPATIBILITY.md:
309
+ *
310
+ * - `update()` / `delete()` whose filter matches nothing answer 404 here and
311
+ * an empty array in supabase-js.
312
+ * - a write returns its rows whether or not `.select()` was called, so the
313
+ * supabase-js opt-in reads as a no-op.
314
+ *
315
+ * `'supabase'` makes both behave as supabase-js does. Off by default: the
316
+ * native behaviours are the better ones, and changing them silently for
317
+ * existing callers would be the same class of bug this option exists to fix.
318
+ *
319
+ * NOT covered, on purpose: an unfiltered `delete()` stays refused with 400.
320
+ * Parity there means removing a guard against deleting a whole table from a
321
+ * typo, and no migration is worth that. Add `.neq('id', 0)`, or run it from
322
+ * the SQL editor.
323
+ */
324
+ compat?: 'supabase';
87
325
  /**
88
326
  * Inject a socket.io factory for realtime (tests / custom transports).
89
327
  * When omitted, `socket.io-client` is imported lazily at connect time.
90
328
  */
91
329
  realtimeIoFactory?: (url: string, opts: Record<string, unknown>) => import('./realtime.js').SocketLike;
92
330
  }
93
- /** Supabase-compatible auth change events emitted by `onAuthStateChange`. */
94
- export type AuthChangeEvent = 'SIGNED_IN' | 'SIGNED_OUT' | 'TOKEN_REFRESHED';
331
+ /**
332
+ * Supabase-compatible auth change events emitted by `onAuthStateChange`.
333
+ *
334
+ * `INITIAL_SESSION` is fired once per subscription, right after subscribing,
335
+ * with whatever session was already stored. supabase-js does the same, and an
336
+ * app that clears its loading flag on it hangs forever without it.
337
+ */
338
+ export type AuthChangeEvent = 'INITIAL_SESSION' | 'SIGNED_IN' | 'SIGNED_OUT' | 'TOKEN_REFRESHED' | 'USER_UPDATED' | 'PASSWORD_RECOVERY' | 'MFA_CHALLENGE_VERIFIED';
95
339
  export type AuthChangeListener = (event: AuthChangeEvent, session: Session | null) => void;
96
340
  /** Internal event names used by the session store. */
97
- export type AuthEvent = 'signIn' | 'signOut' | 'tokenRefreshed';
341
+ export type AuthEvent = 'signIn' | 'signOut' | 'tokenRefreshed' | 'userUpdated' | 'mfaVerified';
98
342
  export type AuthListener = (event: AuthEvent, session: Session | null) => void;
99
343
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/warn.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export declare function warnIgnoredOption(site: string, option: string, consequence: string): void;
2
+ /** Test seam: forget what has been warned about. */
3
+ export declare function resetIgnoredOptionWarnings(): void;
4
+ //# sourceMappingURL=warn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warn.d.ts","sourceRoot":"","sources":["../src/warn.ts"],"names":[],"mappings":"AAiBA,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAKzF;AAED,oDAAoD;AACpD,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD"}
package/dist/warn.js ADDED
@@ -0,0 +1,27 @@
1
+ import { isProduction } from './cookie.js';
2
+ /**
3
+ * One warning per ignored option, in development only.
4
+ *
5
+ * An option this SDK accepts and does not act on is the worst shape of
6
+ * incompatibility: the call compiles, returns a success, and does something
7
+ * other than what the caller asked. supabase-js code passes these because they
8
+ * work there. Saying so once, out loud, is the difference between a five minute
9
+ * fix and a production incident nobody can reproduce.
10
+ *
11
+ * Deduplicated by site and option, because these sit in call paths that run per
12
+ * row, and silent in production, where nobody reads the console and the cost is
13
+ * paid on every call.
14
+ */
15
+ const warned = new Set();
16
+ export function warnIgnoredOption(site, option, consequence) {
17
+ const key = `${site}.${option}`;
18
+ if (warned.has(key) || isProduction())
19
+ return;
20
+ warned.add(key);
21
+ console.warn(`[motherbase] ${site}: \`${option}\` is accepted and ignored. ${consequence}`);
22
+ }
23
+ /** Test seam: forget what has been warned about. */
24
+ export function resetIgnoredOptionWarnings() {
25
+ warned.clear();
26
+ }
27
+ //# sourceMappingURL=warn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warn.js","sourceRoot":"","sources":["../src/warn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;AAEjC,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,MAAc,EAAE,WAAmB;IACjF,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC;IAChC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY,EAAE;QAAE,OAAO;IAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,CAAC,IAAI,CAAC,gBAAgB,IAAI,OAAO,MAAM,+BAA+B,WAAW,EAAE,CAAC,CAAC;AAC9F,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,0BAA0B;IACxC,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC"}