cocobase 1.3.1 → 1.3.3
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/dist/cjs/core/auth.d.ts +77 -21
- package/dist/cjs/core/auth.d.ts.map +1 -1
- package/dist/cjs/core/auth.js +125 -30
- package/dist/cjs/core/auth.js.map +1 -1
- package/dist/cjs/core/core.d.ts +21 -23
- package/dist/cjs/core/core.d.ts.map +1 -1
- package/dist/cjs/core/core.js +19 -50
- package/dist/cjs/core/core.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/realtime/websockets.d.ts +51 -0
- package/dist/cjs/realtime/websockets.d.ts.map +1 -1
- package/dist/cjs/realtime/websockets.js +197 -1
- package/dist/cjs/realtime/websockets.js.map +1 -1
- package/dist/cjs/types/types.d.ts +32 -0
- package/dist/cjs/types/types.d.ts.map +1 -1
- package/dist/cjs/utils/utils.d.ts +2 -1
- package/dist/cjs/utils/utils.d.ts.map +1 -1
- package/dist/cjs/utils/utils.js +49 -1
- package/dist/cjs/utils/utils.js.map +1 -1
- package/dist/core/auth.d.ts +77 -21
- package/dist/core/auth.d.ts.map +1 -1
- package/dist/core/auth.js +125 -30
- package/dist/core/auth.js.map +1 -1
- package/dist/core/core.d.ts +21 -23
- package/dist/core/core.d.ts.map +1 -1
- package/dist/core/core.js +19 -50
- package/dist/core/core.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/realtime/websockets.d.ts +51 -0
- package/dist/realtime/websockets.d.ts.map +1 -1
- package/dist/realtime/websockets.js +192 -2
- package/dist/realtime/websockets.js.map +1 -1
- package/dist/types/types.d.ts +32 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/utils/utils.d.ts +2 -1
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +48 -1
- package/dist/utils/utils.js.map +1 -1
- package/package.json +5 -3
package/dist/cjs/core/auth.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CocobaseConfig, AppUser, AppUserList, Query,
|
|
1
|
+
import { CocobaseConfig, AppUser, AppUserList, Query, AuthCallbacks } from "../types/types.js";
|
|
2
2
|
/**
|
|
3
3
|
* Authentication handler for Cocobase client.
|
|
4
4
|
*
|
|
@@ -16,12 +16,65 @@ export declare class AuthHandler {
|
|
|
16
16
|
private apiKey?;
|
|
17
17
|
private token?;
|
|
18
18
|
private user?;
|
|
19
|
+
private callbacks;
|
|
19
20
|
/**
|
|
20
21
|
* Creates a new AuthHandler instance.
|
|
21
22
|
*
|
|
22
23
|
* @param config - Cocobase configuration
|
|
23
24
|
*/
|
|
24
25
|
constructor(config: CocobaseConfig);
|
|
26
|
+
/**
|
|
27
|
+
* Register callbacks for authentication events.
|
|
28
|
+
* This allows your application to respond to auth state changes in a framework-agnostic way.
|
|
29
|
+
*
|
|
30
|
+
* @param callbacks - Object containing callback functions for various auth events
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* // React example
|
|
35
|
+
* db.auth.onAuthEvent({
|
|
36
|
+
* onLogin: (user, token) => {
|
|
37
|
+
* setUser(user);
|
|
38
|
+
* setIsAuthenticated(true);
|
|
39
|
+
* },
|
|
40
|
+
* onLogout: () => {
|
|
41
|
+
* setUser(null);
|
|
42
|
+
* setIsAuthenticated(false);
|
|
43
|
+
* },
|
|
44
|
+
* onUserUpdate: (user) => {
|
|
45
|
+
* setUser(user);
|
|
46
|
+
* }
|
|
47
|
+
* });
|
|
48
|
+
*
|
|
49
|
+
* // Vue example
|
|
50
|
+
* db.auth.onAuthEvent({
|
|
51
|
+
* onLogin: (user, token) => {
|
|
52
|
+
* store.commit('setUser', user);
|
|
53
|
+
* store.commit('setToken', token);
|
|
54
|
+
* },
|
|
55
|
+
* onLogout: () => {
|
|
56
|
+
* store.commit('clearAuth');
|
|
57
|
+
* }
|
|
58
|
+
* });
|
|
59
|
+
*
|
|
60
|
+
* // Svelte example
|
|
61
|
+
* db.auth.onAuthEvent({
|
|
62
|
+
* onLogin: (user, token) => {
|
|
63
|
+
* userStore.set(user);
|
|
64
|
+
* tokenStore.set(token);
|
|
65
|
+
* },
|
|
66
|
+
* onLogout: () => {
|
|
67
|
+
* userStore.set(null);
|
|
68
|
+
* tokenStore.set(null);
|
|
69
|
+
* }
|
|
70
|
+
* });
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
onAuthEvent(callbacks: AuthCallbacks): void;
|
|
74
|
+
/**
|
|
75
|
+
* Remove all registered callbacks.
|
|
76
|
+
*/
|
|
77
|
+
clearAuthCallbacks(): void;
|
|
25
78
|
/**
|
|
26
79
|
* Gets the current authentication token.
|
|
27
80
|
*
|
|
@@ -30,7 +83,7 @@ export declare class AuthHandler {
|
|
|
30
83
|
getToken(): string | undefined;
|
|
31
84
|
/**
|
|
32
85
|
* Sets the authentication token and stores it in local storage.
|
|
33
|
-
|
|
86
|
+
|
|
34
87
|
* @param token - JWT authentication token
|
|
35
88
|
*/
|
|
36
89
|
setToken(token: string): void;
|
|
@@ -111,33 +164,36 @@ export declare class AuthHandler {
|
|
|
111
164
|
*/
|
|
112
165
|
register(email: string, password: string, data?: Record<string, any>): Promise<void>;
|
|
113
166
|
/**
|
|
114
|
-
*
|
|
167
|
+
* Authenticates a user using Google Sign-In with ID token.
|
|
115
168
|
*
|
|
116
|
-
*
|
|
169
|
+
* This method verifies the Google ID token and either creates a new user
|
|
170
|
+
* or logs in an existing user who registered with Google OAuth.
|
|
117
171
|
*
|
|
118
|
-
* @
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
* window.location.href = url; // Redirect to Google login
|
|
122
|
-
* ```
|
|
123
|
-
*/
|
|
124
|
-
loginWithGoogle(): Promise<GoogleLoginResponse>;
|
|
125
|
-
/**
|
|
126
|
-
* Completes the Google OAuth login flow after redirect.
|
|
172
|
+
* @param idToken - Google ID token obtained from Google Sign-In
|
|
173
|
+
* @param platform - Optional platform identifier ('web', 'mobile', 'ios', 'android')
|
|
174
|
+
* @returns Promise resolving to the authenticated user object
|
|
127
175
|
*
|
|
128
|
-
* @
|
|
129
|
-
* @
|
|
176
|
+
* @throws {Error} If Google Sign-In is not enabled in project settings
|
|
177
|
+
* @throws {Error} If the Google ID token is invalid or expired
|
|
178
|
+
* @throws {Error} If email is already registered with password authentication
|
|
179
|
+
* @throws {Error} If email is already registered with Apple Sign-In
|
|
130
180
|
*
|
|
131
181
|
* @example
|
|
132
182
|
* ```typescript
|
|
133
|
-
* //
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
183
|
+
* // Web - Using Google Identity Services
|
|
184
|
+
* google.accounts.id.initialize({
|
|
185
|
+
* client_id: 'YOUR_GOOGLE_CLIENT_ID',
|
|
186
|
+
* callback: async (response) => {
|
|
187
|
+
* const user = await db.auth.loginWithGoogle(response.credential, 'web');
|
|
188
|
+
* console.log('Logged in:', user.email);
|
|
189
|
+
* }
|
|
190
|
+
* });
|
|
191
|
+
*
|
|
192
|
+
* // Mobile - After getting ID token from Google Sign-In SDK
|
|
193
|
+
* const user = await db.auth.loginWithGoogle(idToken, 'mobile');
|
|
138
194
|
* ```
|
|
139
195
|
*/
|
|
140
|
-
|
|
196
|
+
loginWithGoogle(idToken: string, platform?: "web" | "mobile" | "ios" | "android"): Promise<AppUser>;
|
|
141
197
|
/**
|
|
142
198
|
* Register a new user with file uploads (avatar, cover photo, etc.)
|
|
143
199
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/core/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAEd,OAAO,EACP,WAAW,EACX,KAAK,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/core/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/core/auth.js
CHANGED
|
@@ -21,9 +21,66 @@ class AuthHandler {
|
|
|
21
21
|
* @param config - Cocobase configuration
|
|
22
22
|
*/
|
|
23
23
|
constructor(config) {
|
|
24
|
+
this.callbacks = {};
|
|
24
25
|
this.baseURL = config.baseURL ?? "https://api.cocobase.buzz";
|
|
25
26
|
this.apiKey = config.apiKey;
|
|
26
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Register callbacks for authentication events.
|
|
30
|
+
* This allows your application to respond to auth state changes in a framework-agnostic way.
|
|
31
|
+
*
|
|
32
|
+
* @param callbacks - Object containing callback functions for various auth events
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```typescript
|
|
36
|
+
* // React example
|
|
37
|
+
* db.auth.onAuthEvent({
|
|
38
|
+
* onLogin: (user, token) => {
|
|
39
|
+
* setUser(user);
|
|
40
|
+
* setIsAuthenticated(true);
|
|
41
|
+
* },
|
|
42
|
+
* onLogout: () => {
|
|
43
|
+
* setUser(null);
|
|
44
|
+
* setIsAuthenticated(false);
|
|
45
|
+
* },
|
|
46
|
+
* onUserUpdate: (user) => {
|
|
47
|
+
* setUser(user);
|
|
48
|
+
* }
|
|
49
|
+
* });
|
|
50
|
+
*
|
|
51
|
+
* // Vue example
|
|
52
|
+
* db.auth.onAuthEvent({
|
|
53
|
+
* onLogin: (user, token) => {
|
|
54
|
+
* store.commit('setUser', user);
|
|
55
|
+
* store.commit('setToken', token);
|
|
56
|
+
* },
|
|
57
|
+
* onLogout: () => {
|
|
58
|
+
* store.commit('clearAuth');
|
|
59
|
+
* }
|
|
60
|
+
* });
|
|
61
|
+
*
|
|
62
|
+
* // Svelte example
|
|
63
|
+
* db.auth.onAuthEvent({
|
|
64
|
+
* onLogin: (user, token) => {
|
|
65
|
+
* userStore.set(user);
|
|
66
|
+
* tokenStore.set(token);
|
|
67
|
+
* },
|
|
68
|
+
* onLogout: () => {
|
|
69
|
+
* userStore.set(null);
|
|
70
|
+
* tokenStore.set(null);
|
|
71
|
+
* }
|
|
72
|
+
* });
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
onAuthEvent(callbacks) {
|
|
76
|
+
this.callbacks = { ...this.callbacks, ...callbacks };
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Remove all registered callbacks.
|
|
80
|
+
*/
|
|
81
|
+
clearAuthCallbacks() {
|
|
82
|
+
this.callbacks = {};
|
|
83
|
+
}
|
|
27
84
|
/**
|
|
28
85
|
* Gets the current authentication token.
|
|
29
86
|
*
|
|
@@ -34,12 +91,13 @@ class AuthHandler {
|
|
|
34
91
|
}
|
|
35
92
|
/**
|
|
36
93
|
* Sets the authentication token and stores it in local storage.
|
|
37
|
-
|
|
94
|
+
|
|
38
95
|
* @param token - JWT authentication token
|
|
39
96
|
*/
|
|
40
97
|
setToken(token) {
|
|
41
98
|
this.token = token;
|
|
42
99
|
(0, utils_js_1.setToLocalStorage)("cocobase-token", token);
|
|
100
|
+
this.callbacks.onTokenChange?.(token);
|
|
43
101
|
}
|
|
44
102
|
/**
|
|
45
103
|
* Updates the current user object.
|
|
@@ -71,6 +129,7 @@ class AuthHandler {
|
|
|
71
129
|
async request(method, path, body, useDataKey = true) {
|
|
72
130
|
const url = `${this.baseURL}${path}`;
|
|
73
131
|
const data = useDataKey ? { data: body } : body;
|
|
132
|
+
console.log("request made");
|
|
74
133
|
try {
|
|
75
134
|
const res = await fetch(url, {
|
|
76
135
|
method,
|
|
@@ -160,6 +219,8 @@ class AuthHandler {
|
|
|
160
219
|
else {
|
|
161
220
|
this.token = undefined;
|
|
162
221
|
}
|
|
222
|
+
// Trigger auth state change callback
|
|
223
|
+
this.callbacks.onAuthStateChange?.(this.user, this.token);
|
|
163
224
|
}
|
|
164
225
|
/**
|
|
165
226
|
* Authenticates a user with email and password.
|
|
@@ -175,11 +236,20 @@ class AuthHandler {
|
|
|
175
236
|
* ```
|
|
176
237
|
*/
|
|
177
238
|
async login(email, password) {
|
|
178
|
-
const response = this.request("POST", `/auth-collections/login`, { email, password }, false // Do not use data key for auth endpoints
|
|
239
|
+
const response = await this.request("POST", `/auth-collections/login`, { email, password }, false // Do not use data key for auth endpoints
|
|
179
240
|
);
|
|
180
|
-
this.token =
|
|
241
|
+
this.token = response.access_token;
|
|
181
242
|
this.setToken(this.token);
|
|
182
|
-
|
|
243
|
+
if (!response.user) {
|
|
244
|
+
await this.getCurrentUser();
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
this.setUser(response.user);
|
|
248
|
+
}
|
|
249
|
+
// Trigger login callback
|
|
250
|
+
if (this.user) {
|
|
251
|
+
this.callbacks.onLogin?.(this.user, this.token);
|
|
252
|
+
}
|
|
183
253
|
}
|
|
184
254
|
/**
|
|
185
255
|
* Registers a new user with email, password, and optional additional data.
|
|
@@ -198,44 +268,59 @@ class AuthHandler {
|
|
|
198
268
|
* ```
|
|
199
269
|
*/
|
|
200
270
|
async register(email, password, data) {
|
|
201
|
-
const response = this.request("POST", `/auth-collections/signup`, { email, password, data }, false // Do not use data key for auth endpoints
|
|
271
|
+
const response = await this.request("POST", `/auth-collections/signup`, { email, password, data }, false // Do not use data key for auth endpoints
|
|
202
272
|
);
|
|
203
|
-
this.token =
|
|
273
|
+
this.token = response.access_token;
|
|
204
274
|
this.setToken(this.token);
|
|
205
|
-
|
|
275
|
+
if (!response.user) {
|
|
276
|
+
await this.getCurrentUser();
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
this.setUser(response.user);
|
|
280
|
+
}
|
|
281
|
+
// Trigger register callback
|
|
282
|
+
if (this.user) {
|
|
283
|
+
this.callbacks.onRegister?.(this.user, this.token);
|
|
284
|
+
}
|
|
206
285
|
}
|
|
207
286
|
/**
|
|
208
|
-
*
|
|
287
|
+
* Authenticates a user using Google Sign-In with ID token.
|
|
209
288
|
*
|
|
210
|
-
*
|
|
289
|
+
* This method verifies the Google ID token and either creates a new user
|
|
290
|
+
* or logs in an existing user who registered with Google OAuth.
|
|
211
291
|
*
|
|
212
|
-
* @
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
* window.location.href = url; // Redirect to Google login
|
|
216
|
-
* ```
|
|
217
|
-
*/
|
|
218
|
-
async loginWithGoogle() {
|
|
219
|
-
return (await this.request("GET", "/auth-collections/login-google"));
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* Completes the Google OAuth login flow after redirect.
|
|
292
|
+
* @param idToken - Google ID token obtained from Google Sign-In
|
|
293
|
+
* @param platform - Optional platform identifier ('web', 'mobile', 'ios', 'android')
|
|
294
|
+
* @returns Promise resolving to the authenticated user object
|
|
223
295
|
*
|
|
224
|
-
* @
|
|
225
|
-
* @
|
|
296
|
+
* @throws {Error} If Google Sign-In is not enabled in project settings
|
|
297
|
+
* @throws {Error} If the Google ID token is invalid or expired
|
|
298
|
+
* @throws {Error} If email is already registered with password authentication
|
|
299
|
+
* @throws {Error} If email is already registered with Apple Sign-In
|
|
226
300
|
*
|
|
227
301
|
* @example
|
|
228
302
|
* ```typescript
|
|
229
|
-
* //
|
|
230
|
-
*
|
|
231
|
-
*
|
|
232
|
-
*
|
|
233
|
-
*
|
|
303
|
+
* // Web - Using Google Identity Services
|
|
304
|
+
* google.accounts.id.initialize({
|
|
305
|
+
* client_id: 'YOUR_GOOGLE_CLIENT_ID',
|
|
306
|
+
* callback: async (response) => {
|
|
307
|
+
* const user = await db.auth.loginWithGoogle(response.credential, 'web');
|
|
308
|
+
* console.log('Logged in:', user.email);
|
|
309
|
+
* }
|
|
310
|
+
* });
|
|
311
|
+
*
|
|
312
|
+
* // Mobile - After getting ID token from Google Sign-In SDK
|
|
313
|
+
* const user = await db.auth.loginWithGoogle(idToken, 'mobile');
|
|
234
314
|
* ```
|
|
235
315
|
*/
|
|
236
|
-
async
|
|
237
|
-
this.
|
|
238
|
-
|
|
316
|
+
async loginWithGoogle(idToken, platform) {
|
|
317
|
+
const response = await this.request("POST", "/auth-collections/google-verify", { id_token: idToken, platform }, false);
|
|
318
|
+
this.token = response.access_token;
|
|
319
|
+
this.setToken(response.access_token);
|
|
320
|
+
this.setUser(response.user);
|
|
321
|
+
// Trigger login callback
|
|
322
|
+
this.callbacks.onLogin?.(response.user, response.access_token);
|
|
323
|
+
return response.user;
|
|
239
324
|
}
|
|
240
325
|
/**
|
|
241
326
|
* Register a new user with file uploads (avatar, cover photo, etc.)
|
|
@@ -297,6 +382,8 @@ class AuthHandler {
|
|
|
297
382
|
this.token = response.access_token;
|
|
298
383
|
this.setToken(response.access_token);
|
|
299
384
|
this.setUser(response.user);
|
|
385
|
+
// Trigger register callback
|
|
386
|
+
this.callbacks.onRegister?.(response.user, response.access_token);
|
|
300
387
|
return response.user;
|
|
301
388
|
}
|
|
302
389
|
/**
|
|
@@ -316,6 +403,10 @@ class AuthHandler {
|
|
|
316
403
|
localStorage.removeItem("cocobase-token");
|
|
317
404
|
localStorage.removeItem("cocobase-user");
|
|
318
405
|
}
|
|
406
|
+
// Trigger logout callback
|
|
407
|
+
this.callbacks.onLogout?.();
|
|
408
|
+
// Also trigger token change callback with undefined
|
|
409
|
+
this.callbacks.onTokenChange?.(undefined);
|
|
319
410
|
}
|
|
320
411
|
/**
|
|
321
412
|
* Checks if a user is currently authenticated.
|
|
@@ -386,6 +477,8 @@ class AuthHandler {
|
|
|
386
477
|
const user = await this.request("PATCH", "/auth-collections/user", body, false);
|
|
387
478
|
this.user = user;
|
|
388
479
|
this.setUser(user);
|
|
480
|
+
// Trigger user update callback
|
|
481
|
+
this.callbacks.onUserUpdate?.(user);
|
|
389
482
|
return user;
|
|
390
483
|
}
|
|
391
484
|
/**
|
|
@@ -465,6 +558,8 @@ class AuthHandler {
|
|
|
465
558
|
const user = (await res.json());
|
|
466
559
|
this.user = user;
|
|
467
560
|
this.setUser(user);
|
|
561
|
+
// Trigger user update callback
|
|
562
|
+
this.callbacks.onUserUpdate?.(user);
|
|
468
563
|
return user;
|
|
469
564
|
}
|
|
470
565
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/core/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/core/auth.ts"],"names":[],"mappings":";;;AASA,gDAK2B;AAE3B;;;;;;;;;;;GAWG;AACH,MAAa,WAAW;IAOtB;;;;OAIG;IACH,YAAY,MAAsB;QAP1B,cAAS,GAAkB,EAAE,CAAC;QAQpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,2BAA2B,CAAC;QAC7D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8CG;IACH,WAAW,CAAC,SAAwB;QAClC,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAA,4BAAiB,EAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,IAAa;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAA,4BAAiB,EAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,OAAO,CACnB,MAA2C,EAC3C,IAAY,EACZ,IAAc,EACd,aAAsB,IAAI;QAE1B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAE3B,MAAM;gBACN,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzD,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjE;gBACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChD,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;gBACnC,IAAI,WAAW,CAAC;gBAChB,IAAI,CAAC;oBACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACtC,CAAC;gBAAC,MAAM,CAAC;oBACP,WAAW,GAAG,SAAS,CAAC;gBAC1B,CAAC;gBAED,MAAM,YAAY,GAAG;oBACnB,UAAU,EAAE,GAAG,CAAC,MAAM;oBACtB,GAAG;oBACH,MAAM;oBACN,KAAK,EAAE,WAAW;oBAClB,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;iBACzD,CAAC;gBAEF,MAAM,IAAI,KAAK,CACb,oBAAoB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAC5D,CAAC;YACJ,CAAC;YAED,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,eAAe,GAAG,KAAK,KAAK,EAAE,CAChE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,kBAAkB,CAAC,MAAc,EAAE,MAAc;QACvD,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,GAAG;gBACN,OAAO,iDAAiD,CAAC;YAC3D,KAAK,GAAG;gBACN,OAAO,6EAA6E,CAAC;YACvF,KAAK,GAAG;gBACN,OAAO,0EAA0E,CAAC;YACpF,KAAK,GAAG;gBACN,OAAO,OAAO,MAAM,6FAA6F,CAAC;YACpH,KAAK,GAAG;gBACN,OAAO,yEAAyE,CAAC;YACnF;gBACE,OAAO,4DAA4D,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,KAAK,GAAG,IAAA,8BAAmB,EAAC,gBAAgB,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAA,8BAAmB,EAAC,eAAe,CAAC,CAAC;QAClD,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;gBACtB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC9B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACzB,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,KAAK,CAAC,KAAa,EAAE,QAAgB;QACzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC,MAAM,EACN,yBAAyB,EACzB,EAAE,KAAK,EAAE,QAAQ,EAAE,EACnB,KAAK,CAAC,yCAAyC;SAChD,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAED,yBAAyB;QACzB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,QAAgB,EAAE,IAA0B;QACxE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CACjC,MAAM,EACN,0BAA0B,EAC1B,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EACzB,KAAK,CAAC,yCAAyC;SAChD,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC9B,CAAC;aAAI,CAAC;YACJ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC7B,CAAC;QAED,4BAA4B;QAC5B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,KAAK,CAAC,eAAe,CACnB,OAAe,EACf,QAA+C;QAE/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAIjC,MAAM,EACN,iCAAiC,EACjC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAC/B,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE5B,yBAAyB;QACzB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QAE/D,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,KAAK,CAAC,iBAAiB,CACrB,KAAa,EACb,QAAgB,EAChB,IAA0B,EAC1B,KAAqC;QAErC,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAEhC,gBAAgB;QAChB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEnE,+CAA+C;QAC/C,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC/B,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC3B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;oBACnC,CAAC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,0BAA0B,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1D;YACD,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAsC,CAAC;QACzE,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE5B,4BAA4B;QAC5B,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QAElE,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM;QACJ,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,sBAAsB;QACtB,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACxC,YAAY,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;YAC1C,YAAY,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QAC3C,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC5B,oDAAoD;QACpD,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;;;;;OAWG;IACH,eAAe;QACb,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAe,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,IAAe,CAAC,CAAC;QAC9B,OAAO,IAAe,CAAC;IACzB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,UAAU,CACd,IAAiC,EACjC,KAAqB,EACrB,QAAwB;QAExB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,2DAA2D;QAC3D,MAAM,IAAI,GAAwB,EAAE,CAAC;QACrC,IAAI,IAAI,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAA,wBAAa,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QACzE,IAAI,KAAK,IAAI,IAAI;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACtC,IAAI,QAAQ,IAAI,IAAI;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAE/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAC7B,OAAO,EACP,wBAAwB,EACxB,IAAI,EACJ,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,IAAI,GAAG,IAAe,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,IAAe,CAAC,CAAC;QAE9B,+BAA+B;QAC/B,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,IAAe,CAAC,CAAC;QAE/C,OAAO,IAAe,CAAC;IACzB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,KAAK,CAAC,mBAAmB,CACvB,IAAiC,EACjC,KAAqB,EACrB,QAAwB,EACxB,KAAqC;QAErC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAEhC,2DAA2D;QAC3D,MAAM,IAAI,GAAwB,EAAE,CAAC;QACrC,IAAI,IAAI,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAA,wBAAa,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QACzE,IAAI,KAAK,IAAI,IAAI;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACtC,IAAI,QAAQ,IAAI,IAAI;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAE/C,+BAA+B;QAC/B,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,+CAA+C;QAC/C,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC/B,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC3B,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;oBACnC,CAAC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,wBAAwB,CAAC;QACpD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,OAAO;YACf,OAAO,EAAE;gBACP,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjE;YACD,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAY,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnB,+BAA+B;QAC/B,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;QAEpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,CAAU,KAAa;QAC9B,MAAM,SAAS,GAAG,IAAA,2BAAgB,EAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,0BAA0B,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,OAAO,CAAc,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,WAAW,CAAU,MAAc;QACjC,OAAO,IAAI,CAAC,OAAO,CAAU,KAAK,EAAE,2BAA2B,MAAM,EAAE,CAAC,CAAC;IAC3E,CAAC;CACF;AAxrBD,kCAwrBC;AAED,kBAAe,WAAW,CAAC"}
|
package/dist/cjs/core/core.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { CocobaseConfig, Document, AppUser, Query, AppUserList,
|
|
1
|
+
import { CocobaseConfig, Document, AppUser, Query, AppUserList, AggregateResults, AggregateParams } from "../types/types.js";
|
|
2
2
|
import { CloudFunction } from "./functions.js";
|
|
3
3
|
import AuthHandler from "./auth.js";
|
|
4
|
+
import { CollectionWatcher, ProjectBroadcast, RoomChat } from "../realtime/websockets.js";
|
|
4
5
|
/**
|
|
5
6
|
* Main Cocobase client for interacting with the Cocobase backend API.
|
|
6
7
|
*
|
|
@@ -38,6 +39,15 @@ export declare class Cocobase {
|
|
|
38
39
|
projectId?: string;
|
|
39
40
|
functions: CloudFunction;
|
|
40
41
|
auth: AuthHandler;
|
|
42
|
+
/**
|
|
43
|
+
* Realtime helper factories. Use `db.realtime.collection(...)`, `db.realtime.broadcast(...)`, `db.realtime.room(...)`, or `db.realtime.listRooms()`.
|
|
44
|
+
*/
|
|
45
|
+
realtime: {
|
|
46
|
+
collection: (collectionName: string, filters?: Record<string, any>) => CollectionWatcher;
|
|
47
|
+
broadcast: (userId?: string, userName?: string) => ProjectBroadcast;
|
|
48
|
+
room: (roomId: string, userId?: string, userName?: string) => RoomChat;
|
|
49
|
+
listRooms: () => Promise<any>;
|
|
50
|
+
};
|
|
41
51
|
/**
|
|
42
52
|
* Creates a new Cocobase client instance.
|
|
43
53
|
*
|
|
@@ -271,35 +281,23 @@ export declare class Cocobase {
|
|
|
271
281
|
*/
|
|
272
282
|
register(email: string, password: string, data?: Record<string, any>): Promise<void>;
|
|
273
283
|
/**
|
|
274
|
-
*
|
|
284
|
+
* Authenticates a user using Google Sign-In with ID token.
|
|
275
285
|
*
|
|
276
286
|
* @deprecated Use `db.auth.loginWithGoogle()` instead. This method will be removed in a future version.
|
|
277
|
-
* @
|
|
287
|
+
* @param idToken - Google ID token obtained from Google Sign-In
|
|
288
|
+
* @param platform - Optional platform identifier ('web', 'mobile', 'ios', 'android')
|
|
289
|
+
* @returns Promise resolving to the authenticated user object
|
|
278
290
|
*
|
|
279
291
|
* @example
|
|
280
292
|
* ```typescript
|
|
281
|
-
*
|
|
282
|
-
*
|
|
283
|
-
* ```
|
|
284
|
-
*/
|
|
285
|
-
loginWithGoogle(): Promise<GoogleLoginResponse>;
|
|
286
|
-
/**
|
|
287
|
-
* Completes the Google OAuth login flow after redirect.
|
|
293
|
+
* // New recommended way
|
|
294
|
+
* const user = await db.auth.loginWithGoogle(idToken, 'web');
|
|
288
295
|
*
|
|
289
|
-
*
|
|
290
|
-
*
|
|
291
|
-
* @returns Promise that resolves when login is complete
|
|
292
|
-
*
|
|
293
|
-
* @example
|
|
294
|
-
* ```typescript
|
|
295
|
-
* // After Google redirects back to your app with a token
|
|
296
|
-
* const token = new URLSearchParams(window.location.search).get('token');
|
|
297
|
-
* if (token) {
|
|
298
|
-
* await db.completeGoogleLogin(token);
|
|
299
|
-
* }
|
|
296
|
+
* // Old way (deprecated)
|
|
297
|
+
* const user = await db.loginWithGoogle(idToken, 'web');
|
|
300
298
|
* ```
|
|
301
299
|
*/
|
|
302
|
-
|
|
300
|
+
loginWithGoogle(idToken: string, platform?: "web" | "mobile" | "ios" | "android"): Promise<AppUser>;
|
|
303
301
|
/**
|
|
304
302
|
* Register a new user with file uploads (avatar, cover photo, etc.)
|
|
305
303
|
*
|
|
@@ -400,7 +398,7 @@ export declare class Cocobase {
|
|
|
400
398
|
watchCollection(collection: string, callback: (event: {
|
|
401
399
|
event: string;
|
|
402
400
|
data: Document<any>;
|
|
403
|
-
}) => void, connectionName?: string, onOpen?: () => void, onError?: () => void):
|
|
401
|
+
}) => void, connectionName?: string, onOpen?: () => void, onError?: () => void): void;
|
|
404
402
|
/**
|
|
405
403
|
* Checks if the current user has a specific role.
|
|
406
404
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/core/core.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,QAAQ,EAER,OAAO,EACP,KAAK,EACL,WAAW,
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/core/core.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,QAAQ,EAER,OAAO,EACP,KAAK,EACL,WAAW,EAEX,gBAAgB,EAChB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,WAAW,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,QAAQ,EAET,MAAM,2BAA2B,CAAC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,OAAO,CAAS;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,aAAa,CAAC;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB;;OAEG;IACH,QAAQ,EAAE;QACR,UAAU,EAAE,CACV,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAC1B,iBAAiB,CAAC;QACvB,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,gBAAgB,CAAC;QACpE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,QAAQ,CAAC;QACvE,SAAS,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;KAC/B,CAAC;IACF;;;;;;;;;;;;;;;OAeG;gBACS,MAAM,EAAE,cAAc;IAqBlC;;;;;OAKG;IACH,QAAQ,IAAI,MAAM,GAAG,SAAS;IAI9B;;;;;OAKG;IACH,IAAI,IAAI,IAAI,OAAO,GAAG,SAAS,CAE9B;IAED;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM;YAIR,OAAO;IAsDrB,OAAO,CAAC,kBAAkB;IAiB1B;;;;;;;;;;;;;OAaG;IACG,WAAW,CAAC,CAAC,GAAG,GAAG,EACvB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAOvB;;;;;;;;;;;;;;;;OAgBG;IACG,cAAc,CAAC,CAAC,GAAG,GAAG,EAC1B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,CAAC,GACN,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAQvB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,uBAAuB,CAAC,CAAC,GAAG,GAAG,EACnC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,GACnC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAuCvB;;;;;;;;;;;;;;;;OAgBG;IACG,cAAc,CAAC,CAAC,GAAG,GAAG,EAC1B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GACf,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAQvB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,uBAAuB,CAAC,CAAC,GAAG,GAAG,EACnC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,GACpC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAyCvB;;;;;;;;;;;OAWG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAOhC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,aAAa,CAAC,CAAC,GAAG,GAAG,EACzB,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IASzB;;;;;;;;;;;;OAYG;IACG,QAAQ;IAId;;;;;;;;;;;;;OAaG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAI3C;;;;;;;;;;;;;;;;OAgBG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAI1E;;;;;;;;;;;;;;;;OAgBG;IACG,eAAe,CACnB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAC9C,OAAO,CAAC,OAAO,CAAC;IAInB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,iBAAiB,CACrB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,GACpC,OAAO,CAAC,OAAO,CAAC;IAInB;;;;;;;;;;OAUG;IACH,MAAM;IAIN;;;;;;;;;;;;OAYG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxC;;OAEG;IACG,UAAU,CACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EACjC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAAC,OAAO,CAAC;IAInB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACG,mBAAmB,CACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EACjC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,EACxB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,CAAC,GACpC,OAAO,CAAC,OAAO,CAAC;IAInB,eAAe,CACb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAA;KAAE,KAAK,IAAI,EACjE,cAAc,CAAC,EAAE,MAAM,EACvB,MAAM,GAAE,MAAM,IAAe,EAC7B,OAAO,GAAE,MAAM,IAAe,GAC7B,IAAI;IAKP;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAK9B;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC;IAIvD;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKhD,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IASxD,eAAe,CAAC,CAAC,GAAG,GAAG,EAC3B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,CAAC,EAAE,GACb,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAQzB;;;;;;OAMG;IACG,eAAe,CAAC,CAAC,GAAG,GAAG,EAC3B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,GAClC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAQzB;;;;;;OAMG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAUvB,kBAAkB,CACtB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,gBAAgB,CAAC;CAS7B"}
|
package/dist/cjs/core/core.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.Cocobase = void 0;
|
|
|
7
7
|
const utils_js_1 = require("../utils/utils.js");
|
|
8
8
|
const functions_js_1 = require("./functions.js");
|
|
9
9
|
const auth_js_1 = __importDefault(require("./auth.js"));
|
|
10
|
+
const websockets_js_1 = require("../realtime/websockets.js");
|
|
10
11
|
/**
|
|
11
12
|
* Main Cocobase client for interacting with the Cocobase backend API.
|
|
12
13
|
*
|
|
@@ -60,6 +61,13 @@ class Cocobase {
|
|
|
60
61
|
this.projectId = config.projectId;
|
|
61
62
|
this.auth = new auth_js_1.default(config);
|
|
62
63
|
this.functions = new functions_js_1.CloudFunction(config.projectId || "project id required", () => this.auth.getToken());
|
|
64
|
+
// realtime factories bound to this client configuration
|
|
65
|
+
this.realtime = {
|
|
66
|
+
collection: (collectionName, filters) => new websockets_js_1.CollectionWatcher(collectionName, this.apiKey || "", filters),
|
|
67
|
+
broadcast: (userId, userName) => new websockets_js_1.ProjectBroadcast(this.apiKey || "", userId, userName),
|
|
68
|
+
room: (roomId, userId, userName) => new websockets_js_1.RoomChat(roomId, this.apiKey || "", userId, userName),
|
|
69
|
+
listRooms: async () => (0, websockets_js_1.listRooms)(this.apiKey || ""),
|
|
70
|
+
};
|
|
63
71
|
}
|
|
64
72
|
/**
|
|
65
73
|
* Gets the current authentication token.
|
|
@@ -422,38 +430,24 @@ class Cocobase {
|
|
|
422
430
|
return this.auth.register(email, password, data);
|
|
423
431
|
}
|
|
424
432
|
/**
|
|
425
|
-
*
|
|
433
|
+
* Authenticates a user using Google Sign-In with ID token.
|
|
426
434
|
*
|
|
427
435
|
* @deprecated Use `db.auth.loginWithGoogle()` instead. This method will be removed in a future version.
|
|
428
|
-
* @
|
|
436
|
+
* @param idToken - Google ID token obtained from Google Sign-In
|
|
437
|
+
* @param platform - Optional platform identifier ('web', 'mobile', 'ios', 'android')
|
|
438
|
+
* @returns Promise resolving to the authenticated user object
|
|
429
439
|
*
|
|
430
440
|
* @example
|
|
431
441
|
* ```typescript
|
|
432
|
-
*
|
|
433
|
-
*
|
|
434
|
-
* ```
|
|
435
|
-
*/
|
|
436
|
-
async loginWithGoogle() {
|
|
437
|
-
return this.auth.loginWithGoogle();
|
|
438
|
-
}
|
|
439
|
-
/**
|
|
440
|
-
* Completes the Google OAuth login flow after redirect.
|
|
442
|
+
* // New recommended way
|
|
443
|
+
* const user = await db.auth.loginWithGoogle(idToken, 'web');
|
|
441
444
|
*
|
|
442
|
-
*
|
|
443
|
-
*
|
|
444
|
-
* @returns Promise that resolves when login is complete
|
|
445
|
-
*
|
|
446
|
-
* @example
|
|
447
|
-
* ```typescript
|
|
448
|
-
* // After Google redirects back to your app with a token
|
|
449
|
-
* const token = new URLSearchParams(window.location.search).get('token');
|
|
450
|
-
* if (token) {
|
|
451
|
-
* await db.completeGoogleLogin(token);
|
|
452
|
-
* }
|
|
445
|
+
* // Old way (deprecated)
|
|
446
|
+
* const user = await db.loginWithGoogle(idToken, 'web');
|
|
453
447
|
* ```
|
|
454
448
|
*/
|
|
455
|
-
async
|
|
456
|
-
return this.auth.
|
|
449
|
+
async loginWithGoogle(idToken, platform) {
|
|
450
|
+
return this.auth.loginWithGoogle(idToken, platform);
|
|
457
451
|
}
|
|
458
452
|
/**
|
|
459
453
|
* Register a new user with file uploads (avatar, cover photo, etc.)
|
|
@@ -565,32 +559,7 @@ class Cocobase {
|
|
|
565
559
|
return this.auth.updateUserWithFiles(data, email, password, files);
|
|
566
560
|
}
|
|
567
561
|
watchCollection(collection, callback, connectionName, onOpen = () => { }, onError = () => { }) {
|
|
568
|
-
|
|
569
|
-
socket.onerror = onError;
|
|
570
|
-
socket.onopen = () => {
|
|
571
|
-
console.log(`WebSocket connection established for collection: ${collection}`);
|
|
572
|
-
socket.send(JSON.stringify({ api_key: this.apiKey }));
|
|
573
|
-
};
|
|
574
|
-
socket.onmessage = (event) => {
|
|
575
|
-
const data = JSON.parse(event.data);
|
|
576
|
-
callback({
|
|
577
|
-
event: data.event,
|
|
578
|
-
data: data.data,
|
|
579
|
-
});
|
|
580
|
-
};
|
|
581
|
-
socket.onopen = () => {
|
|
582
|
-
onOpen();
|
|
583
|
-
};
|
|
584
|
-
return {
|
|
585
|
-
socket,
|
|
586
|
-
name: connectionName || `watch-${collection}`,
|
|
587
|
-
closed: false,
|
|
588
|
-
close: () => {
|
|
589
|
-
if (socket.readyState === WebSocket.OPEN) {
|
|
590
|
-
socket.close();
|
|
591
|
-
}
|
|
592
|
-
},
|
|
593
|
-
};
|
|
562
|
+
throw new Error("watchCollection is deprecated; use the Realtime helpers in src/realtime/websockets.ts instead");
|
|
594
563
|
}
|
|
595
564
|
/**
|
|
596
565
|
* Checks if the current user has a specific role.
|