@motherbase/client 1.3.1 → 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.
Files changed (74) hide show
  1. package/README.md +127 -13
  2. package/package.json +10 -2
  3. package/dist/admin.d.ts +0 -81
  4. package/dist/admin.d.ts.map +0 -1
  5. package/dist/admin.js +0 -85
  6. package/dist/admin.js.map +0 -1
  7. package/dist/auth.d.ts +0 -233
  8. package/dist/auth.d.ts.map +0 -1
  9. package/dist/auth.js +0 -418
  10. package/dist/auth.js.map +0 -1
  11. package/dist/channel.d.ts +0 -119
  12. package/dist/channel.d.ts.map +0 -1
  13. package/dist/channel.js +0 -213
  14. package/dist/channel.js.map +0 -1
  15. package/dist/cookie.d.ts +0 -60
  16. package/dist/cookie.d.ts.map +0 -1
  17. package/dist/cookie.js +0 -144
  18. package/dist/cookie.js.map +0 -1
  19. package/dist/database.d.ts +0 -169
  20. package/dist/database.d.ts.map +0 -1
  21. package/dist/database.js +0 -2
  22. package/dist/database.js.map +0 -1
  23. package/dist/devices.d.ts +0 -13
  24. package/dist/devices.d.ts.map +0 -1
  25. package/dist/devices.js +0 -13
  26. package/dist/devices.js.map +0 -1
  27. package/dist/edge.d.ts +0 -7
  28. package/dist/edge.d.ts.map +0 -1
  29. package/dist/edge.js +0 -13
  30. package/dist/edge.js.map +0 -1
  31. package/dist/functions.d.ts +0 -24
  32. package/dist/functions.d.ts.map +0 -1
  33. package/dist/functions.js +0 -24
  34. package/dist/functions.js.map +0 -1
  35. package/dist/http.d.ts +0 -96
  36. package/dist/http.d.ts.map +0 -1
  37. package/dist/http.js +0 -157
  38. package/dist/http.js.map +0 -1
  39. package/dist/index.d.ts +0 -118
  40. package/dist/index.d.ts.map +0 -1
  41. package/dist/index.js +0 -180
  42. package/dist/index.js.map +0 -1
  43. package/dist/mfa.d.ts +0 -109
  44. package/dist/mfa.d.ts.map +0 -1
  45. package/dist/mfa.js +0 -134
  46. package/dist/mfa.js.map +0 -1
  47. package/dist/postgrest.d.ts +0 -239
  48. package/dist/postgrest.d.ts.map +0 -1
  49. package/dist/postgrest.js +0 -467
  50. package/dist/postgrest.js.map +0 -1
  51. package/dist/profile.d.ts +0 -16
  52. package/dist/profile.d.ts.map +0 -1
  53. package/dist/profile.js +0 -26
  54. package/dist/profile.js.map +0 -1
  55. package/dist/realtime.d.ts +0 -114
  56. package/dist/realtime.d.ts.map +0 -1
  57. package/dist/realtime.js +0 -372
  58. package/dist/realtime.js.map +0 -1
  59. package/dist/rest.d.ts +0 -50
  60. package/dist/rest.d.ts.map +0 -1
  61. package/dist/rest.js +0 -75
  62. package/dist/rest.js.map +0 -1
  63. package/dist/session.d.ts +0 -36
  64. package/dist/session.d.ts.map +0 -1
  65. package/dist/session.js +0 -90
  66. package/dist/session.js.map +0 -1
  67. package/dist/storage.d.ts +0 -72
  68. package/dist/storage.d.ts.map +0 -1
  69. package/dist/storage.js +0 -148
  70. package/dist/storage.js.map +0 -1
  71. package/dist/types.d.ts +0 -106
  72. package/dist/types.d.ts.map +0 -1
  73. package/dist/types.js +0 -2
  74. package/dist/types.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/dist/storage.d.ts DELETED
@@ -1,72 +0,0 @@
1
- import type { HttpClient } from './http.js';
2
- import type { FileObject, FileVisibility, MotherbaseResponse, StorageRemoveResponse, UploadInput } from './types.js';
3
- export interface UploadOptions {
4
- /** Object visibility. Defaults to the backend's default (private). */
5
- visibility?: FileVisibility;
6
- /** Passed through to the backend as the content type hint. */
7
- contentType?: string;
8
- upsert?: boolean;
9
- }
10
- export interface UploadResult {
11
- /** The object key, exactly as passed to `upload`. */
12
- path: string;
13
- /** The server-issued file id. Still accepted anywhere a path is. */
14
- id: string;
15
- /** `bucket/key`. */
16
- fullPath: string;
17
- }
18
- export interface ListOptions {
19
- limit?: number;
20
- offset?: number;
21
- search?: string;
22
- sortBy?: {
23
- column?: 'name' | 'created_at' | 'updated_at';
24
- order?: 'asc' | 'desc';
25
- };
26
- }
27
- export declare class StorageBucket {
28
- private readonly http;
29
- private readonly baseUrl;
30
- private readonly bucket;
31
- constructor(http: HttpClient, baseUrl: string, bucket: string);
32
- /**
33
- * Route for one object. A bare uuid is treated as a file id (the pre-path
34
- * addressing form, which existing callers have stored); anything else is a
35
- * key inside this bucket.
36
- */
37
- private objectPath;
38
- upload(path: string, file: UploadInput, options?: UploadOptions): Promise<MotherbaseResponse<UploadResult>>;
39
- download(path: string): Promise<MotherbaseResponse<Blob>>;
40
- remove(paths: string[]): Promise<MotherbaseResponse<StorageRemoveResponse[]>>;
41
- /** Objects under a prefix, in the Supabase response shape. */
42
- list(prefix?: string, options?: ListOptions): Promise<MotherbaseResponse<FileObject[]>>;
43
- /** Synchronous public URL (Supabase parity). Serves through the public bucket endpoint. */
44
- getPublicUrl(path: string): {
45
- data: {
46
- publicUrl: string;
47
- };
48
- };
49
- /**
50
- * A download URL for the object, valid for `expiresIn` seconds (default 3600,
51
- * maximum 7 days — the AWS SigV4 ceiling; anything outside that is a `400`).
52
- *
53
- * `expiresAt` reports when the URL actually stops working, and is `null` when
54
- * nothing expires: a public object's URL is permanent, and a private object on
55
- * the `local` storage driver resolves to the authenticated streaming endpoint,
56
- * which is bound to the session rather than to a clock and so cannot be handed
57
- * to a third party at all. Check it rather than assuming `expiresIn` applied —
58
- * that assumption is exactly what this used to get wrong, silently.
59
- */
60
- createSignedUrl(path: string, expiresIn?: number): Promise<MotherbaseResponse<{
61
- signedUrl: string;
62
- expiresAt: string | null;
63
- }>>;
64
- }
65
- /** Supabase-compatible storage client: `client.storage.from(bucket)`. */
66
- export declare class StorageClient {
67
- private readonly http;
68
- private readonly baseUrl;
69
- constructor(http: HttpClient, baseUrl: string);
70
- from(bucket: string): StorageBucket;
71
- }
72
- //# sourceMappingURL=storage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EAErB,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,YAAY,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;CACpF;AAaD,qBAAa,aAAa;IAEtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAFN,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM;IAGjC;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAQZ,MAAM,CACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IA0BtC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IASzD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAqBnF,8DAA8D;IACxD,IAAI,CAAC,MAAM,SAAK,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,CAAC;IAoB7F,2FAA2F;IAC3F,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE;YAAE,SAAS,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;IAS3D;;;;;;;;;;OAUG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;CAWhF;AAED,yEAAyE;AACzE,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAc,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAA1C,IAAI,EAAE,UAAU,EAAmB,OAAO,EAAE,MAAM;IAE/E,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;CAGpC"}
package/dist/storage.js DELETED
@@ -1,148 +0,0 @@
1
- import { toError } from './http.js';
2
- import { HTTP_ROUTES, contractPath } from '@motherbase/contracts';
3
- /**
4
- * Supabase-compatible storage bucket handle over the authenticated
5
- * `/api/files` endpoints.
6
- *
7
- * Objects are addressed by path: `upload('123/pic.png')` then
8
- * `download('123/pic.png')`. The server-issued file id still works everywhere a
9
- * path does, because that is what every caller written before path addressing
10
- * has stored.
11
- */
12
- const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
13
- export class StorageBucket {
14
- constructor(http, baseUrl, bucket) {
15
- this.http = http;
16
- this.baseUrl = baseUrl;
17
- this.bucket = bucket;
18
- }
19
- /**
20
- * Route for one object. A bare uuid is treated as a file id (the pre-path
21
- * addressing form, which existing callers have stored); anything else is a
22
- * key inside this bucket.
23
- */
24
- objectPath(pathOrId, kind) {
25
- if (UUID.test(pathOrId)) {
26
- return contractPath.file(pathOrId, kind === 'object-url' ? 'url' : 'raw');
27
- }
28
- const key = pathOrId.split('/').map(encodeURIComponent).join('/');
29
- return `${HTTP_ROUTES.files}/${kind}/${encodeURIComponent(this.bucket)}/${key}`;
30
- }
31
- async upload(path, file, options = {}) {
32
- try {
33
- const form = new FormData();
34
- if (typeof Blob !== 'undefined' && file instanceof Blob) {
35
- form.append('file', file, path);
36
- }
37
- else {
38
- form.append('file', file);
39
- }
40
- if (options.visibility)
41
- form.append('visibility', options.visibility);
42
- form.append('bucket', this.bucket);
43
- form.append('path', path);
44
- if (options.upsert)
45
- form.append('upsert', 'true');
46
- const created = await this.http.request(`${HTTP_ROUTES.files}/`, { method: 'POST', form });
47
- return {
48
- data: {
49
- path,
50
- id: created.file.id,
51
- fullPath: `${this.bucket}/${path}`,
52
- },
53
- error: null,
54
- };
55
- }
56
- catch (err) {
57
- return { data: null, error: toError(err) };
58
- }
59
- }
60
- async download(path) {
61
- try {
62
- const res = await this.http.requestRaw(this.objectPath(path, 'object'));
63
- return { data: await res.blob(), error: null };
64
- }
65
- catch (err) {
66
- return { data: null, error: toError(err) };
67
- }
68
- }
69
- async remove(paths) {
70
- try {
71
- const removed = await Promise.all(paths.map(p => this.http.request(UUID.test(p)
72
- ? contractPath.file(p)
73
- : `${HTTP_ROUTES.files}/object/${encodeURIComponent(this.bucket)}/${p
74
- .split('/')
75
- .map(encodeURIComponent)
76
- .join('/')}`, { method: 'DELETE' })));
77
- return { data: removed, error: null };
78
- }
79
- catch (err) {
80
- return { data: null, error: toError(err) };
81
- }
82
- }
83
- /** Objects under a prefix, in the Supabase response shape. */
84
- async list(prefix = '', options = {}) {
85
- try {
86
- const query = new URLSearchParams();
87
- if (prefix)
88
- query.set('prefix', prefix);
89
- if (options.limit !== undefined)
90
- query.set('limit', String(options.limit));
91
- if (options.offset !== undefined)
92
- query.set('offset', String(options.offset));
93
- if (options.search)
94
- query.set('search', options.search);
95
- if (options.sortBy?.column)
96
- query.set('sortColumn', options.sortBy.column);
97
- if (options.sortBy?.order)
98
- query.set('sortOrder', options.sortBy.order);
99
- const suffix = query.toString() ? `?${query}` : '';
100
- const res = await this.http.request(`${HTTP_ROUTES.files}/list/${encodeURIComponent(this.bucket)}${suffix}`);
101
- return { data: res.objects, error: null };
102
- }
103
- catch (err) {
104
- return { data: null, error: toError(err) };
105
- }
106
- }
107
- /** Synchronous public URL (Supabase parity). Serves through the public bucket endpoint. */
108
- getPublicUrl(path) {
109
- const base = this.baseUrl.replace(/\/$/, '');
110
- return {
111
- data: {
112
- publicUrl: `${base}/api/storage/${encodeURIComponent(this.bucket)}/files/${encodeURIComponent(path)}`,
113
- },
114
- };
115
- }
116
- /**
117
- * A download URL for the object, valid for `expiresIn` seconds (default 3600,
118
- * maximum 7 days — the AWS SigV4 ceiling; anything outside that is a `400`).
119
- *
120
- * `expiresAt` reports when the URL actually stops working, and is `null` when
121
- * nothing expires: a public object's URL is permanent, and a private object on
122
- * the `local` storage driver resolves to the authenticated streaming endpoint,
123
- * which is bound to the session rather than to a clock and so cannot be handed
124
- * to a third party at all. Check it rather than assuming `expiresIn` applied —
125
- * that assumption is exactly what this used to get wrong, silently.
126
- */
127
- async createSignedUrl(path, expiresIn) {
128
- try {
129
- const query = expiresIn === undefined ? '' : `?expiresIn=${encodeURIComponent(expiresIn)}`;
130
- const res = await this.http.request(`${this.objectPath(path, 'object-url')}${query}`);
131
- return { data: { signedUrl: res.url, expiresAt: res.expiresAt ?? null }, error: null };
132
- }
133
- catch (err) {
134
- return { data: null, error: toError(err) };
135
- }
136
- }
137
- }
138
- /** Supabase-compatible storage client: `client.storage.from(bucket)`. */
139
- export class StorageClient {
140
- constructor(http, baseUrl) {
141
- this.http = http;
142
- this.baseUrl = baseUrl;
143
- }
144
- from(bucket) {
145
- return new StorageBucket(this.http, this.baseUrl, bucket);
146
- }
147
- }
148
- //# sourceMappingURL=storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts DELETED
@@ -1,106 +0,0 @@
1
- /** Shared types for the Motherbase client SDK (Supabase-js compatible surface). */
2
- import type { StorageRemoveContract, StorageUploadContract } from '@motherbase/contracts';
3
- /** The envelope non-REST API endpoints (auth, storage, edge) wrap their payload in. */
4
- export interface ApiEnvelope<T = unknown> {
5
- status: 0 | 1;
6
- message: string;
7
- data?: T;
8
- pager?: Record<string, unknown>;
9
- }
10
- /** Authenticated user as returned by the API. Extra fields are preserved. */
11
- export interface User {
12
- id: string;
13
- email: string;
14
- username?: string | null;
15
- role?: string;
16
- [key: string]: unknown;
17
- }
18
- /**
19
- * The bearer token issued by sign-up / sign-in. With Better Auth this is the
20
- * session token; there is no separate refresh token (a session is valid until
21
- * it expires, after which the user re-authenticates). `refreshToken` is kept
22
- * optional for backwards source-compat and is unused.
23
- */
24
- export interface Tokens {
25
- accessToken: string;
26
- refreshToken?: string;
27
- }
28
- /** The locally-held session: the bearer token plus the user it belongs to. */
29
- export interface Session extends Tokens {
30
- user: User;
31
- }
32
- /** A stored file as returned by the storage endpoints. */
33
- export interface FileObject {
34
- id: string;
35
- filename?: string;
36
- mime?: string;
37
- visibility?: 'public' | 'private';
38
- bucket?: string;
39
- url?: string;
40
- [key: string]: unknown;
41
- }
42
- export type FileVisibility = 'public' | 'private';
43
- /** Exact payload returned by `POST /api/files/`. */
44
- export type StorageUploadResponse = StorageUploadContract<FileObject>;
45
- /** Exact payload returned by `DELETE /api/files/:id`. */
46
- export type StorageRemoveResponse = StorageRemoveContract;
47
- /** A file-ish value accepted by multipart uploads (browser File/Blob or RN asset). */
48
- export type UploadInput = Blob | {
49
- uri: string;
50
- name?: string;
51
- type?: string;
52
- };
53
- /**
54
- * The uniform result envelope every data/auth/storage call resolves to.
55
- * `error` is `null` on success; `data` is `null` on failure. Never throws for
56
- * expected API errors — only for programmer misuse.
57
- */
58
- export interface MotherbaseResponse<T> {
59
- data: T | null;
60
- error: MotherbaseError | null;
61
- }
62
- /** Supabase-shaped error object. */
63
- export interface MotherbaseError {
64
- message: string;
65
- /** HTTP status code, when the failure came from an HTTP response. */
66
- status?: number;
67
- /** Backend/app error code, when present. */
68
- code?: string;
69
- /**
70
- * Correlation id of the failed request, from the `x-request-id` response
71
- * header. The same id is on the server-side log line, so quoting it in a bug
72
- * report (or logging it beside your own error) is what makes an intermittent
73
- * 500 findable.
74
- */
75
- requestId?: string;
76
- }
77
- /**
78
- * Persists the session between runs. Implementations must be synchronous-or-async
79
- * tolerant: every method may return a value or a promise of it.
80
- */
81
- export interface SessionStorageAdapter {
82
- get(): Session | null | Promise<Session | null>;
83
- set(session: Session | null): void | Promise<void>;
84
- }
85
- export interface ClientOptions {
86
- /** Where to persist the session. Defaults to in-memory (SSR-safe). */
87
- storage?: SessionStorageAdapter;
88
- /** Refresh the access token automatically on a 401. Default: true. */
89
- autoRefresh?: boolean;
90
- /** Override the fetch implementation (for SSR or tests). */
91
- fetch?: typeof fetch;
92
- /** Extra headers merged into every request (e.g. a custom `apikey`). */
93
- headers?: Record<string, string>;
94
- /**
95
- * Inject a socket.io factory for realtime (tests / custom transports).
96
- * When omitted, `socket.io-client` is imported lazily at connect time.
97
- */
98
- realtimeIoFactory?: (url: string, opts: Record<string, unknown>) => import('./realtime.js').SocketLike;
99
- }
100
- /** Supabase-compatible auth change events emitted by `onAuthStateChange`. */
101
- export type AuthChangeEvent = 'SIGNED_IN' | 'SIGNED_OUT' | 'TOKEN_REFRESHED';
102
- export type AuthChangeListener = (event: AuthChangeEvent, session: Session | null) => void;
103
- /** Internal event names used by the session store. */
104
- export type AuthEvent = 'signIn' | 'signOut' | 'tokenRefreshed';
105
- export type AuthListener = (event: AuthEvent, session: Session | null) => void;
106
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}