@svarabase/js 1.0.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 (49) hide show
  1. package/dist/auth/index.d.ts +172 -0
  2. package/dist/auth/index.d.ts.map +1 -0
  3. package/dist/auth/index.js +282 -0
  4. package/dist/auth/index.js.map +1 -0
  5. package/dist/auth/session.d.ts +42 -0
  6. package/dist/auth/session.d.ts.map +1 -0
  7. package/dist/auth/session.js +65 -0
  8. package/dist/auth/session.js.map +1 -0
  9. package/dist/client.d.ts +38 -0
  10. package/dist/client.d.ts.map +1 -0
  11. package/dist/client.js +41 -0
  12. package/dist/client.js.map +1 -0
  13. package/dist/db/filterBuilder.d.ts +84 -0
  14. package/dist/db/filterBuilder.d.ts.map +1 -0
  15. package/dist/db/filterBuilder.js +227 -0
  16. package/dist/db/filterBuilder.js.map +1 -0
  17. package/dist/db/index.d.ts +42 -0
  18. package/dist/db/index.d.ts.map +1 -0
  19. package/dist/db/index.js +67 -0
  20. package/dist/db/index.js.map +1 -0
  21. package/dist/esm/auth/index.js +277 -0
  22. package/dist/esm/auth/session.js +60 -0
  23. package/dist/esm/client.js +36 -0
  24. package/dist/esm/db/filterBuilder.js +222 -0
  25. package/dist/esm/db/index.js +61 -0
  26. package/dist/esm/index.js +11 -0
  27. package/dist/esm/realtime/index.js +23 -0
  28. package/dist/esm/storage/index.js +144 -0
  29. package/dist/index.d.ts +13 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +21 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/realtime/index.d.ts +14 -0
  34. package/dist/realtime/index.d.ts.map +1 -0
  35. package/dist/realtime/index.js +29 -0
  36. package/dist/realtime/index.js.map +1 -0
  37. package/dist/storage/index.d.ts +74 -0
  38. package/dist/storage/index.d.ts.map +1 -0
  39. package/dist/storage/index.js +149 -0
  40. package/dist/storage/index.js.map +1 -0
  41. package/package.json +46 -0
  42. package/src/auth/index.ts +325 -0
  43. package/src/auth/session.ts +94 -0
  44. package/src/client.ts +66 -0
  45. package/src/db/filterBuilder.ts +302 -0
  46. package/src/db/index.ts +86 -0
  47. package/src/index.ts +22 -0
  48. package/src/realtime/index.ts +38 -0
  49. package/src/storage/index.ts +174 -0
@@ -0,0 +1,172 @@
1
+ import { Session, UserData, AuthListener } from './session';
2
+ type SvarabaseAuthAdminClient = {
3
+ createUser(attributes: {
4
+ email: string;
5
+ phone?: string;
6
+ password?: string;
7
+ email_confirm?: boolean;
8
+ user_metadata?: Record<string, unknown>;
9
+ app_metadata?: Record<string, unknown>;
10
+ }): Promise<{
11
+ data: {
12
+ user: UserData | null;
13
+ };
14
+ error: Error | null;
15
+ }>;
16
+ updateUserById(uid: string, attributes: {
17
+ email?: string;
18
+ password?: string;
19
+ phone?: string;
20
+ user_metadata?: Record<string, unknown>;
21
+ app_metadata?: Record<string, unknown>;
22
+ ban_duration?: string;
23
+ }): Promise<{
24
+ data: {
25
+ user: UserData | null;
26
+ };
27
+ error: Error | null;
28
+ }>;
29
+ deleteUser(id: string, options?: {
30
+ shouldSoftDelete?: boolean;
31
+ }): Promise<{
32
+ data: object;
33
+ error: Error | null;
34
+ }>;
35
+ listUsers(params?: {
36
+ page?: number;
37
+ perPage?: number;
38
+ }): Promise<{
39
+ data: {
40
+ users: UserData[];
41
+ };
42
+ error: Error | null;
43
+ }>;
44
+ generateLink(params: {
45
+ type: 'signup' | 'invite' | 'magic_link' | 'recovery';
46
+ email: string;
47
+ password?: string;
48
+ data?: Record<string, unknown>;
49
+ options?: {
50
+ redirectTo?: string;
51
+ };
52
+ }): Promise<{
53
+ data: {
54
+ action_link: string;
55
+ } | null;
56
+ error: Error | null;
57
+ }>;
58
+ };
59
+ export declare class SvarabaseAuthClient {
60
+ private url;
61
+ private key;
62
+ private sessionManager;
63
+ admin: SvarabaseAuthAdminClient;
64
+ constructor(url: string, key: string, options?: {
65
+ storageKey?: string;
66
+ persistSession?: boolean;
67
+ autoRefreshToken?: boolean;
68
+ });
69
+ private _fetch;
70
+ private _setupAutoRefresh;
71
+ getSession(): Promise<{
72
+ data: {
73
+ session: Session | null;
74
+ };
75
+ error: null;
76
+ }>;
77
+ setSession(params: {
78
+ access_token: string;
79
+ refresh_token: string;
80
+ }): Promise<{
81
+ data: {
82
+ session: Session | null;
83
+ user: UserData | null;
84
+ };
85
+ error: Error | null;
86
+ }>;
87
+ signInWithPassword(credentials: {
88
+ email: string;
89
+ password: string;
90
+ }): Promise<{
91
+ data: {
92
+ user: UserData | null;
93
+ session: Session | null;
94
+ };
95
+ error: Error | null;
96
+ }>;
97
+ signUp(credentials: {
98
+ email: string;
99
+ password: string;
100
+ phone?: string;
101
+ options?: {
102
+ data?: Record<string, unknown>;
103
+ emailRedirectTo?: string;
104
+ };
105
+ }): Promise<{
106
+ data: {
107
+ user: UserData | null;
108
+ session: Session | null;
109
+ };
110
+ error: Error | null;
111
+ }>;
112
+ signOut(options?: {
113
+ scope?: 'global' | 'local' | 'others';
114
+ }): Promise<{
115
+ error: Error | null;
116
+ }>;
117
+ signInWithOAuth(params: {
118
+ provider: string;
119
+ options?: {
120
+ redirectTo?: string;
121
+ scopes?: string;
122
+ };
123
+ }): {
124
+ data: {
125
+ provider: string;
126
+ url: string;
127
+ };
128
+ error: null;
129
+ };
130
+ getUser(jwt?: string): Promise<{
131
+ data: {
132
+ user: UserData | null;
133
+ };
134
+ error: Error | null;
135
+ }>;
136
+ updateUser(attributes: {
137
+ email?: string;
138
+ password?: string;
139
+ phone?: string;
140
+ data?: Record<string, unknown>;
141
+ }): Promise<{
142
+ data: {
143
+ user: UserData | null;
144
+ };
145
+ error: Error | null;
146
+ }>;
147
+ resetPasswordForEmail(email: string, options?: {
148
+ redirectTo?: string;
149
+ }): Promise<{
150
+ data: object;
151
+ error: Error | null;
152
+ }>;
153
+ refreshSession(params?: {
154
+ refresh_token?: string;
155
+ }): Promise<{
156
+ data: {
157
+ session: Session | null;
158
+ user: UserData | null;
159
+ };
160
+ error: Error | null;
161
+ }>;
162
+ onAuthStateChange(callback: AuthListener): {
163
+ data: {
164
+ subscription: {
165
+ unsubscribe: () => void;
166
+ };
167
+ };
168
+ };
169
+ private _buildAdminClient;
170
+ }
171
+ export {};
172
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,282 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SvarabaseAuthClient = void 0;
4
+ const session_1 = require("./session");
5
+ class SvarabaseAuthClient {
6
+ constructor(url, key, options) {
7
+ this.url = `${url}/auth/v1`;
8
+ this.key = key;
9
+ this.sessionManager = new session_1.SessionManager(options?.storageKey ?? 'svarabase.auth.token', options?.persistSession !== false);
10
+ this.admin = this._buildAdminClient();
11
+ // Auto-refresh token if enabled
12
+ if (options?.autoRefreshToken !== false) {
13
+ this._setupAutoRefresh();
14
+ }
15
+ }
16
+ async _fetch(path, init = {}) {
17
+ const session = this.sessionManager.getSession();
18
+ const headers = {
19
+ 'Content-Type': 'application/json',
20
+ apikey: this.key,
21
+ ...(init.headers ?? {}),
22
+ };
23
+ if (session?.access_token) {
24
+ headers['Authorization'] = `Bearer ${session.access_token}`;
25
+ }
26
+ else {
27
+ headers['Authorization'] = `Bearer ${this.key}`;
28
+ }
29
+ return fetch(`${this.url}${path}`, { ...init, headers });
30
+ }
31
+ _setupAutoRefresh() {
32
+ if (typeof setInterval === 'undefined')
33
+ return;
34
+ setInterval(async () => {
35
+ const session = this.sessionManager.getSession();
36
+ if (!session)
37
+ return;
38
+ const now = Math.floor(Date.now() / 1000);
39
+ const expiresAt = session.expires_at ?? 0;
40
+ // Refresh 60 seconds before expiry
41
+ if (expiresAt - now < 60) {
42
+ await this.refreshSession({ refresh_token: session.refresh_token });
43
+ }
44
+ }, 30000);
45
+ }
46
+ async getSession() {
47
+ return { data: { session: this.sessionManager.getSession() }, error: null };
48
+ }
49
+ async setSession(params) {
50
+ try {
51
+ const res = await this._fetch('/setsession', {
52
+ method: 'POST',
53
+ body: JSON.stringify(params),
54
+ });
55
+ if (!res.ok) {
56
+ const data = await res.json();
57
+ return { data: { session: null, user: null }, error: new Error(data.message ?? 'setSession failed') };
58
+ }
59
+ const data = await res.json();
60
+ const session = { ...data, expires_at: data.expires_at ?? Math.floor(Date.now() / 1000) + (data.expires_in ?? 3600) };
61
+ this.sessionManager.setSession(session);
62
+ this.sessionManager.notify('SIGNED_IN', session);
63
+ return { data: { session, user: data.user }, error: null };
64
+ }
65
+ catch (e) {
66
+ return { data: { session: null, user: null }, error: e };
67
+ }
68
+ }
69
+ async signInWithPassword(credentials) {
70
+ try {
71
+ const res = await this._fetch('/token?grant_type=password', {
72
+ method: 'POST',
73
+ body: JSON.stringify(credentials),
74
+ });
75
+ const data = await res.json();
76
+ if (!res.ok)
77
+ return { data: { user: null, session: null }, error: new Error(data.error_description ?? data.message) };
78
+ const session = { ...data, expires_at: Math.floor(Date.now() / 1000) + data.expires_in };
79
+ this.sessionManager.setSession(session);
80
+ this.sessionManager.notify('SIGNED_IN', session);
81
+ return { data: { user: data.user, session }, error: null };
82
+ }
83
+ catch (e) {
84
+ return { data: { user: null, session: null }, error: e };
85
+ }
86
+ }
87
+ async signUp(credentials) {
88
+ try {
89
+ const body = {
90
+ email: credentials.email,
91
+ password: credentials.password,
92
+ phone: credentials.phone,
93
+ data: credentials.options?.data,
94
+ };
95
+ const res = await this._fetch('/signup', {
96
+ method: 'POST',
97
+ body: JSON.stringify(body),
98
+ });
99
+ const data = await res.json();
100
+ if (!res.ok)
101
+ return { data: { user: null, session: null }, error: new Error(data.error_description ?? data.message) };
102
+ const session = { ...data, expires_at: Math.floor(Date.now() / 1000) + data.expires_in };
103
+ this.sessionManager.setSession(session);
104
+ this.sessionManager.notify('SIGNED_IN', session);
105
+ return { data: { user: data.user, session }, error: null };
106
+ }
107
+ catch (e) {
108
+ return { data: { user: null, session: null }, error: e };
109
+ }
110
+ }
111
+ async signOut(options) {
112
+ try {
113
+ await this._fetch('/logout', { method: 'POST', body: JSON.stringify({ scope: options?.scope }) });
114
+ this.sessionManager.setSession(null);
115
+ this.sessionManager.notify('SIGNED_OUT', null);
116
+ return { error: null };
117
+ }
118
+ catch (e) {
119
+ return { error: e };
120
+ }
121
+ }
122
+ signInWithOAuth(params) {
123
+ const redirectTo = params.options?.redirectTo ?? (typeof window !== 'undefined' ? window.location.origin : '');
124
+ // apikey travels as a query param (not a header) because this is a top-level
125
+ // browser navigation - it lets the server know which project's OAuth config to use.
126
+ const url = `${this.url}/authorize?provider=${params.provider}&redirect_to=${encodeURIComponent(redirectTo)}&apikey=${encodeURIComponent(this.key)}`;
127
+ if (typeof window !== 'undefined') {
128
+ window.location.href = url;
129
+ }
130
+ return { data: { provider: params.provider, url }, error: null };
131
+ }
132
+ async getUser(jwt) {
133
+ try {
134
+ const headers = {};
135
+ if (jwt)
136
+ headers['Authorization'] = `Bearer ${jwt}`;
137
+ const res = await fetch(`${this.url}/user`, {
138
+ headers: {
139
+ 'Content-Type': 'application/json',
140
+ apikey: this.key,
141
+ Authorization: jwt ? `Bearer ${jwt}` : `Bearer ${this.sessionManager.getSession()?.access_token ?? this.key}`,
142
+ },
143
+ });
144
+ if (!res.ok) {
145
+ const data = await res.json();
146
+ return { data: { user: null }, error: new Error(data.message) };
147
+ }
148
+ const user = await res.json();
149
+ return { data: { user }, error: null };
150
+ }
151
+ catch (e) {
152
+ return { data: { user: null }, error: e };
153
+ }
154
+ }
155
+ async updateUser(attributes) {
156
+ try {
157
+ const body = { email: attributes.email, password: attributes.password, phone: attributes.phone, data: attributes.data };
158
+ const res = await this._fetch('/user', { method: 'PUT', body: JSON.stringify(body) });
159
+ const data = await res.json();
160
+ if (!res.ok)
161
+ return { data: { user: null }, error: new Error(data.message) };
162
+ return { data: { user: data }, error: null };
163
+ }
164
+ catch (e) {
165
+ return { data: { user: null }, error: e };
166
+ }
167
+ }
168
+ async resetPasswordForEmail(email, options) {
169
+ try {
170
+ await this._fetch('/recover', {
171
+ method: 'POST',
172
+ body: JSON.stringify({ email, options }),
173
+ });
174
+ return { data: {}, error: null };
175
+ }
176
+ catch (e) {
177
+ return { data: {}, error: e };
178
+ }
179
+ }
180
+ async refreshSession(params) {
181
+ try {
182
+ const refreshToken = params?.refresh_token ?? this.sessionManager.getSession()?.refresh_token;
183
+ if (!refreshToken)
184
+ return { data: { session: null, user: null }, error: new Error('No refresh token') };
185
+ const res = await this._fetch('/token?grant_type=refresh_token', {
186
+ method: 'POST',
187
+ body: JSON.stringify({ refresh_token: refreshToken }),
188
+ });
189
+ const data = await res.json();
190
+ if (!res.ok) {
191
+ this.sessionManager.setSession(null);
192
+ return { data: { session: null, user: null }, error: new Error(data.message) };
193
+ }
194
+ const session = { ...data, expires_at: Math.floor(Date.now() / 1000) + data.expires_in };
195
+ this.sessionManager.setSession(session);
196
+ this.sessionManager.notify('TOKEN_REFRESHED', session);
197
+ return { data: { session, user: data.user }, error: null };
198
+ }
199
+ catch (e) {
200
+ return { data: { session: null, user: null }, error: e };
201
+ }
202
+ }
203
+ onAuthStateChange(callback) {
204
+ return this.sessionManager.subscribe(callback);
205
+ }
206
+ _buildAdminClient() {
207
+ const adminUrl = `${this.url}/admin`;
208
+ const key = this.key;
209
+ const adminFetch = (path, init = {}) => fetch(`${adminUrl}${path}`, {
210
+ ...init,
211
+ headers: {
212
+ 'Content-Type': 'application/json',
213
+ Authorization: `Bearer ${key}`,
214
+ apikey: key,
215
+ ...(init.headers ?? {}),
216
+ },
217
+ });
218
+ return {
219
+ async createUser(attrs) {
220
+ try {
221
+ const res = await adminFetch('/users', { method: 'POST', body: JSON.stringify(attrs) });
222
+ const data = await res.json();
223
+ if (!res.ok)
224
+ return { data: { user: null }, error: new Error(data.message) };
225
+ return { data: { user: data }, error: null };
226
+ }
227
+ catch (e) {
228
+ return { data: { user: null }, error: e };
229
+ }
230
+ },
231
+ async updateUserById(uid, attrs) {
232
+ try {
233
+ const res = await adminFetch(`/users/${uid}`, { method: 'PUT', body: JSON.stringify(attrs) });
234
+ const data = await res.json();
235
+ if (!res.ok)
236
+ return { data: { user: null }, error: new Error(data.message) };
237
+ return { data: { user: data }, error: null };
238
+ }
239
+ catch (e) {
240
+ return { data: { user: null }, error: e };
241
+ }
242
+ },
243
+ async deleteUser(id, options) {
244
+ try {
245
+ const qs = options?.shouldSoftDelete === false ? '?is_soft_delete=false' : '';
246
+ await adminFetch(`/users/${id}${qs}`, { method: 'DELETE' });
247
+ return { data: {}, error: null };
248
+ }
249
+ catch (e) {
250
+ return { data: {}, error: e };
251
+ }
252
+ },
253
+ async listUsers(params) {
254
+ try {
255
+ const qs = params ? `?page=${params.page ?? 1}&per_page=${params.perPage ?? 50}` : '';
256
+ const res = await adminFetch(`/users${qs}`);
257
+ const data = await res.json();
258
+ if (!res.ok)
259
+ return { data: { users: [] }, error: new Error(data.message) };
260
+ return { data: { users: data.users }, error: null };
261
+ }
262
+ catch (e) {
263
+ return { data: { users: [] }, error: e };
264
+ }
265
+ },
266
+ async generateLink(params) {
267
+ try {
268
+ const res = await adminFetch('/generate_link', { method: 'POST', body: JSON.stringify(params) });
269
+ const data = await res.json();
270
+ if (!res.ok)
271
+ return { data: null, error: new Error(data.message) };
272
+ return { data, error: null };
273
+ }
274
+ catch (e) {
275
+ return { data: null, error: e };
276
+ }
277
+ },
278
+ };
279
+ }
280
+ }
281
+ exports.SvarabaseAuthClient = SvarabaseAuthClient;
282
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ export interface Session {
2
+ access_token: string;
3
+ refresh_token: string;
4
+ token_type: string;
5
+ expires_in: number;
6
+ expires_at: number;
7
+ user: UserData;
8
+ }
9
+ export interface UserData {
10
+ id: string;
11
+ aud: string;
12
+ role: string;
13
+ email: string;
14
+ email_confirmed_at?: string;
15
+ phone?: string;
16
+ last_sign_in_at?: string;
17
+ app_metadata: Record<string, unknown>;
18
+ user_metadata: Record<string, unknown>;
19
+ identities?: unknown[];
20
+ created_at: string;
21
+ updated_at: string;
22
+ }
23
+ export type AuthChangeEvent = 'SIGNED_IN' | 'SIGNED_OUT' | 'TOKEN_REFRESHED' | 'USER_UPDATED' | 'PASSWORD_RECOVERY';
24
+ export type AuthListener = (event: AuthChangeEvent, session: Session | null) => void;
25
+ export declare class SessionManager {
26
+ private storageKey;
27
+ private useLocalStorage;
28
+ private memorySession;
29
+ private listeners;
30
+ constructor(storageKey: string, persistSession?: boolean);
31
+ getSession(): Session | null;
32
+ setSession(session: Session | null): void;
33
+ notify(event: AuthChangeEvent, session: Session | null): void;
34
+ subscribe(listener: AuthListener): {
35
+ data: {
36
+ subscription: {
37
+ unsubscribe: () => void;
38
+ };
39
+ };
40
+ };
41
+ }
42
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/auth/session.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,eAAe,GACvB,WAAW,GACX,YAAY,GACZ,iBAAiB,GACjB,cAAc,GACd,mBAAmB,CAAC;AAExB,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;AAErF,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,SAAS,CAAsB;gBAE3B,UAAU,EAAE,MAAM,EAAE,cAAc,UAAO;IAarD,UAAU,IAAI,OAAO,GAAG,IAAI;IAa5B,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI;IAYzC,MAAM,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI;IAI7D,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG;QAAE,IAAI,EAAE;YAAE,YAAY,EAAE;gBAAE,WAAW,EAAE,MAAM,IAAI,CAAA;aAAE,CAAA;SAAE,CAAA;KAAE;CAY3F"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SessionManager = void 0;
4
+ class SessionManager {
5
+ constructor(storageKey, persistSession = true) {
6
+ this.memorySession = null;
7
+ this.listeners = [];
8
+ this.storageKey = storageKey;
9
+ this.useLocalStorage = persistSession && (() => {
10
+ try {
11
+ if (typeof localStorage === 'undefined')
12
+ return false;
13
+ localStorage.getItem('__svarabase_test__');
14
+ return true;
15
+ }
16
+ catch {
17
+ return false;
18
+ }
19
+ })();
20
+ }
21
+ getSession() {
22
+ if (this.useLocalStorage) {
23
+ const raw = localStorage.getItem(this.storageKey);
24
+ if (!raw)
25
+ return null;
26
+ try {
27
+ return JSON.parse(raw);
28
+ }
29
+ catch {
30
+ return null;
31
+ }
32
+ }
33
+ return this.memorySession;
34
+ }
35
+ setSession(session) {
36
+ if (this.useLocalStorage) {
37
+ if (session) {
38
+ localStorage.setItem(this.storageKey, JSON.stringify(session));
39
+ }
40
+ else {
41
+ localStorage.removeItem(this.storageKey);
42
+ }
43
+ }
44
+ else {
45
+ this.memorySession = session;
46
+ }
47
+ }
48
+ notify(event, session) {
49
+ this.listeners.forEach(l => l(event, session));
50
+ }
51
+ subscribe(listener) {
52
+ this.listeners.push(listener);
53
+ return {
54
+ data: {
55
+ subscription: {
56
+ unsubscribe: () => {
57
+ this.listeners = this.listeners.filter(l => l !== listener);
58
+ },
59
+ },
60
+ },
61
+ };
62
+ }
63
+ }
64
+ exports.SessionManager = SessionManager;
65
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/auth/session.ts"],"names":[],"mappings":";;;AAiCA,MAAa,cAAc;IAMzB,YAAY,UAAkB,EAAE,cAAc,GAAG,IAAI;QAH7C,kBAAa,GAAmB,IAAI,CAAC;QACrC,cAAS,GAAmB,EAAE,CAAC;QAGrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,cAAc,IAAI,CAAC,GAAG,EAAE;YAC7C,IAAI,CAAC;gBACH,IAAI,OAAO,YAAY,KAAK,WAAW;oBAAE,OAAO,KAAK,CAAC;gBACtD,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;gBAC3C,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;IACP,CAAC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YACtB,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,UAAU,CAAC,OAAuB;QAChC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAsB,EAAE,OAAuB;QACpD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,SAAS,CAAC,QAAsB;QAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO;YACL,IAAI,EAAE;gBACJ,YAAY,EAAE;oBACZ,WAAW,EAAE,GAAG,EAAE;wBAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;oBAC9D,CAAC;iBACF;aACF;SACF,CAAC;IACJ,CAAC;CACF;AA5DD,wCA4DC"}
@@ -0,0 +1,38 @@
1
+ import { SvarabaseAuthClient } from './auth';
2
+ import { SvarabaseQueryBuilder, TableQuery } from './db';
3
+ import { SvarabaseStorageClient } from './storage';
4
+ import { SvarabaseRealtimeClient } from './realtime';
5
+ export interface SvarabaseClientOptions {
6
+ auth?: {
7
+ autoRefreshToken?: boolean;
8
+ persistSession?: boolean;
9
+ storageKey?: string;
10
+ };
11
+ global?: {
12
+ headers?: Record<string, string>;
13
+ };
14
+ db?: {
15
+ schema?: string;
16
+ };
17
+ }
18
+ export declare class SvarabaseClient {
19
+ protected url: string;
20
+ protected key: string;
21
+ readonly auth: SvarabaseAuthClient;
22
+ readonly storage: SvarabaseStorageClient;
23
+ readonly realtime: SvarabaseRealtimeClient;
24
+ protected _queryBuilder: SvarabaseQueryBuilder;
25
+ constructor(url: string, key: string, options?: SvarabaseClientOptions);
26
+ from<T = Record<string, unknown>>(table: string): TableQuery<T>;
27
+ rpc<T = unknown>(functionName: string, params?: Record<string, unknown>, options?: {
28
+ count?: 'exact';
29
+ head?: boolean;
30
+ }): Promise<{
31
+ data: T | null;
32
+ error: Error | null;
33
+ count?: number | null;
34
+ }>;
35
+ channel(id: string): import("./realtime").RealtimeChannel;
36
+ removeChannel(channel: ReturnType<SvarabaseRealtimeClient['channel']>): void;
37
+ }
38
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE;QACL,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,CAAC;IACF,EAAE,CAAC,EAAE;QACH,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,qBAAa,eAAe;IAC1B,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAE3C,SAAS,CAAC,aAAa,EAAE,qBAAqB,CAAC;gBAEnC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,sBAAsB;IAqBtE,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;IAI/D,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE;;;;;IAItH,OAAO,CAAC,EAAE,EAAE,MAAM;IAIlB,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;CAGtE"}