cocobase 1.1.4 → 1.2.1
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/core.d.ts +239 -2
- package/dist/cjs/core/core.d.ts.map +1 -1
- package/dist/cjs/core/core.js +272 -23
- package/dist/cjs/core/core.js.map +1 -1
- package/dist/cjs/core/file.d.ts +27 -1
- package/dist/cjs/core/file.d.ts.map +1 -1
- package/dist/cjs/core/file.js +24 -2
- package/dist/cjs/core/file.js.map +1 -1
- package/dist/cjs/core/functions.d.ts +70 -0
- package/dist/cjs/core/functions.d.ts.map +1 -1
- package/dist/cjs/core/functions.js +55 -0
- package/dist/cjs/core/functions.js.map +1 -1
- package/dist/cjs/index.d.ts +4 -4
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +10 -10
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/types.d.ts +98 -0
- package/dist/cjs/types/types.d.ts.map +1 -1
- package/dist/cjs/utils/utils.d.ts +2 -2
- package/dist/cjs/utils/utils.d.ts.map +1 -1
- package/dist/core/core.d.ts +239 -2
- package/dist/core/core.d.ts.map +1 -1
- package/dist/core/core.js +259 -10
- package/dist/core/core.js.map +1 -1
- package/dist/core/file.d.ts +27 -1
- package/dist/core/file.d.ts.map +1 -1
- package/dist/core/file.js +23 -1
- package/dist/core/file.js.map +1 -1
- package/dist/core/functions.d.ts +70 -0
- package/dist/core/functions.d.ts.map +1 -1
- package/dist/core/functions.js +55 -0
- package/dist/core/functions.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/types/types.d.ts +98 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/utils/utils.d.ts +2 -2
- package/dist/utils/utils.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cjs/core/core.d.ts
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
|
-
import { CocobaseConfig, Document, AppUser, Query, Connection } from "../types/types";
|
|
2
|
-
import { CloudFunction } from "./functions";
|
|
1
|
+
import { CocobaseConfig, Document, AppUser, Query, AppUserList, GoogleLoginResponse, Connection, AggregateResults, AggregateParams } from "../types/types.js";
|
|
2
|
+
import { CloudFunction } from "./functions.js";
|
|
3
|
+
/**
|
|
4
|
+
* Main Cocobase client for interacting with the Cocobase backend API.
|
|
5
|
+
*
|
|
6
|
+
* Provides methods for:
|
|
7
|
+
* - Document CRUD operations (Create, Read, Update, Delete)
|
|
8
|
+
* - User authentication and management
|
|
9
|
+
* - File uploads
|
|
10
|
+
* - Real-time data synchronization
|
|
11
|
+
* - Cloud functions execution
|
|
12
|
+
* - Batch operations
|
|
13
|
+
* - Advanced querying and aggregations
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* // Initialize the client
|
|
18
|
+
* const db = new Cocobase({
|
|
19
|
+
* apiKey: 'your-api-key',
|
|
20
|
+
* projectId: 'your-project-id'
|
|
21
|
+
* });
|
|
22
|
+
*
|
|
23
|
+
* // Create a document
|
|
24
|
+
* await db.createDocument('users', { name: 'John Doe' });
|
|
25
|
+
*
|
|
26
|
+
* // Query documents
|
|
27
|
+
* const users = await db.listDocuments('users', {
|
|
28
|
+
* filters: { status: 'active' },
|
|
29
|
+
* limit: 10
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
3
33
|
export declare class Cocobase {
|
|
4
34
|
private baseURL;
|
|
5
35
|
apiKey?: string;
|
|
@@ -7,11 +37,63 @@ export declare class Cocobase {
|
|
|
7
37
|
projectId?: string;
|
|
8
38
|
user?: AppUser;
|
|
9
39
|
functions: CloudFunction;
|
|
40
|
+
/**
|
|
41
|
+
* Creates a new Cocobase client instance.
|
|
42
|
+
*
|
|
43
|
+
* @param config - Configuration object for the client
|
|
44
|
+
* @param config.apiKey - Your Cocobase API key (required for most operations)
|
|
45
|
+
* @param config.projectId - Your Cocobase project ID (required for cloud functions)
|
|
46
|
+
* @param config.baseURL - Optional custom base URL (defaults to https://api.cocobase.buzz)
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const db = new Cocobase({
|
|
51
|
+
* apiKey: 'your-api-key',
|
|
52
|
+
* projectId: 'your-project-id'
|
|
53
|
+
* });
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
10
56
|
constructor(config: CocobaseConfig);
|
|
57
|
+
/**
|
|
58
|
+
* Gets the current authentication token.
|
|
59
|
+
*
|
|
60
|
+
* @returns The current JWT token, or undefined if not authenticated
|
|
61
|
+
*/
|
|
11
62
|
getToken(): string | undefined;
|
|
12
63
|
private request;
|
|
13
64
|
private getErrorSuggestion;
|
|
65
|
+
/**
|
|
66
|
+
* Retrieves a single document by ID from a collection.
|
|
67
|
+
*
|
|
68
|
+
* @template T - The type of the document data
|
|
69
|
+
* @param collection - Name of the collection
|
|
70
|
+
* @param docId - Unique ID of the document
|
|
71
|
+
* @returns Promise resolving to the document with metadata
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* const user = await db.getDocument('users', 'user-123');
|
|
76
|
+
* console.log(user.data.name);
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
14
79
|
getDocument<T = any>(collection: string, docId: string): Promise<Document<T>>;
|
|
80
|
+
/**
|
|
81
|
+
* Creates a new document in a collection.
|
|
82
|
+
*
|
|
83
|
+
* @template T - The type of the document data
|
|
84
|
+
* @param collection - Name of the collection
|
|
85
|
+
* @param data - Document data to store
|
|
86
|
+
* @returns Promise resolving to the created document with metadata
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```typescript
|
|
90
|
+
* const newUser = await db.createDocument('users', {
|
|
91
|
+
* name: 'John Doe',
|
|
92
|
+
* email: 'john@example.com',
|
|
93
|
+
* age: 30
|
|
94
|
+
* });
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
15
97
|
createDocument<T = any>(collection: string, data: T): Promise<Document<T>>;
|
|
16
98
|
/**
|
|
17
99
|
* Create a document with file uploads
|
|
@@ -42,6 +124,23 @@ export declare class Cocobase {
|
|
|
42
124
|
* ```
|
|
43
125
|
*/
|
|
44
126
|
createDocumentWithFiles<T = any>(collection: string, data: T, files: Record<string, File | File[]>): Promise<Document<T>>;
|
|
127
|
+
/**
|
|
128
|
+
* Updates an existing document in a collection.
|
|
129
|
+
*
|
|
130
|
+
* @template T - The type of the document data
|
|
131
|
+
* @param collection - Name of the collection
|
|
132
|
+
* @param docId - Unique ID of the document to update
|
|
133
|
+
* @param data - Partial document data to update (only specified fields are updated)
|
|
134
|
+
* @returns Promise resolving to the updated document with metadata
|
|
135
|
+
*
|
|
136
|
+
* @example
|
|
137
|
+
* ```typescript
|
|
138
|
+
* await db.updateDocument('users', 'user-123', {
|
|
139
|
+
* age: 31,
|
|
140
|
+
* status: 'active'
|
|
141
|
+
* });
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
45
144
|
updateDocument<T = any>(collection: string, docId: string, data: Partial<T>): Promise<Document<T>>;
|
|
46
145
|
/**
|
|
47
146
|
* Update a document with file uploads
|
|
@@ -67,14 +166,125 @@ export declare class Cocobase {
|
|
|
67
166
|
* ```
|
|
68
167
|
*/
|
|
69
168
|
updateDocumentWithFiles<T = any>(collection: string, docId: string, data?: Partial<T>, files?: Record<string, File | File[]>): Promise<Document<T>>;
|
|
169
|
+
/**
|
|
170
|
+
* Deletes a document from a collection.
|
|
171
|
+
*
|
|
172
|
+
* @param collection - Name of the collection
|
|
173
|
+
* @param docId - Unique ID of the document to delete
|
|
174
|
+
* @returns Promise resolving to a success status object
|
|
175
|
+
*
|
|
176
|
+
* @example
|
|
177
|
+
* ```typescript
|
|
178
|
+
* await db.deleteDocument('users', 'user-123');
|
|
179
|
+
* ```
|
|
180
|
+
*/
|
|
70
181
|
deleteDocument(collection: string, docId: string): Promise<{
|
|
71
182
|
success: boolean;
|
|
72
183
|
}>;
|
|
184
|
+
/**
|
|
185
|
+
* Lists documents from a collection with optional filtering and pagination.
|
|
186
|
+
*
|
|
187
|
+
* @template T - The type of the document data
|
|
188
|
+
* @param collection - Name of the collection
|
|
189
|
+
* @param query - Optional query parameters for filtering, sorting, and pagination
|
|
190
|
+
* @returns Promise resolving to an array of documents
|
|
191
|
+
*
|
|
192
|
+
* @example
|
|
193
|
+
* ```typescript
|
|
194
|
+
* // Simple query
|
|
195
|
+
* const users = await db.listDocuments('users', {
|
|
196
|
+
* filters: { status: 'active' },
|
|
197
|
+
* limit: 10
|
|
198
|
+
* });
|
|
199
|
+
*
|
|
200
|
+
* // Advanced query with sorting
|
|
201
|
+
* const posts = await db.listDocuments('posts', {
|
|
202
|
+
* filters: { published: true },
|
|
203
|
+
* sort: 'createdAt',
|
|
204
|
+
* order: 'desc',
|
|
205
|
+
* limit: 20
|
|
206
|
+
* });
|
|
207
|
+
* ```
|
|
208
|
+
*/
|
|
73
209
|
listDocuments<T = any>(collection: string, query?: Query): Promise<Document<T>[]>;
|
|
210
|
+
/**
|
|
211
|
+
* Initializes authentication by restoring the session from local storage.
|
|
212
|
+
* Call this method when your application loads to restore user sessions.
|
|
213
|
+
*
|
|
214
|
+
* @example
|
|
215
|
+
* ```typescript
|
|
216
|
+
* await db.initAuth();
|
|
217
|
+
* if (db.isAuthenticated()) {
|
|
218
|
+
* console.log('User is logged in:', db.user);
|
|
219
|
+
* }
|
|
220
|
+
* ```
|
|
221
|
+
*/
|
|
74
222
|
initAuth(): Promise<void>;
|
|
223
|
+
/**
|
|
224
|
+
* Sets the authentication token and stores it in local storage.
|
|
225
|
+
*
|
|
226
|
+
* @param token - JWT authentication token
|
|
227
|
+
*/
|
|
75
228
|
setToken(token: string): void;
|
|
229
|
+
/**
|
|
230
|
+
* Authenticates a user with email and password.
|
|
231
|
+
*
|
|
232
|
+
* @param email - User's email address
|
|
233
|
+
* @param password - User's password
|
|
234
|
+
* @returns Promise that resolves when login is complete
|
|
235
|
+
*
|
|
236
|
+
* @example
|
|
237
|
+
* ```typescript
|
|
238
|
+
* await db.login('user@example.com', 'password123');
|
|
239
|
+
* console.log('Logged in as:', db.user.email);
|
|
240
|
+
* ```
|
|
241
|
+
*/
|
|
76
242
|
login(email: string, password: string): Promise<void>;
|
|
243
|
+
/**
|
|
244
|
+
* Registers a new user with email, password, and optional additional data.
|
|
245
|
+
*
|
|
246
|
+
* @param email - User's email address
|
|
247
|
+
* @param password - User's password
|
|
248
|
+
* @param data - Optional additional user data
|
|
249
|
+
* @returns Promise that resolves when registration is complete
|
|
250
|
+
*
|
|
251
|
+
* @example
|
|
252
|
+
* ```typescript
|
|
253
|
+
* await db.register('user@example.com', 'password123', {
|
|
254
|
+
* username: 'johndoe',
|
|
255
|
+
* fullName: 'John Doe'
|
|
256
|
+
* });
|
|
257
|
+
* ```
|
|
258
|
+
*/
|
|
77
259
|
register(email: string, password: string, data?: Record<string, any>): Promise<void>;
|
|
260
|
+
/**
|
|
261
|
+
* Initiates Google OAuth login flow.
|
|
262
|
+
*
|
|
263
|
+
* @returns Promise resolving to an object with the Google OAuth URL
|
|
264
|
+
*
|
|
265
|
+
* @example
|
|
266
|
+
* ```typescript
|
|
267
|
+
* const { url } = await db.loginWithGoogle();
|
|
268
|
+
* window.location.href = url; // Redirect to Google login
|
|
269
|
+
* ```
|
|
270
|
+
*/
|
|
271
|
+
loginWithGoogle(): Promise<GoogleLoginResponse>;
|
|
272
|
+
/**
|
|
273
|
+
* Completes the Google OAuth login flow after redirect.
|
|
274
|
+
*
|
|
275
|
+
* @param token - JWT token received from OAuth callback
|
|
276
|
+
* @returns Promise that resolves when login is complete
|
|
277
|
+
*
|
|
278
|
+
* @example
|
|
279
|
+
* ```typescript
|
|
280
|
+
* // After Google redirects back to your app with a token
|
|
281
|
+
* const token = new URLSearchParams(window.location.search).get('token');
|
|
282
|
+
* if (token) {
|
|
283
|
+
* await db.completeGoogleLogin(token);
|
|
284
|
+
* }
|
|
285
|
+
* ```
|
|
286
|
+
*/
|
|
287
|
+
completeGoogleLogin(token: string): Promise<void>;
|
|
78
288
|
/**
|
|
79
289
|
* Register a new user with file uploads (avatar, cover photo, etc.)
|
|
80
290
|
*
|
|
@@ -146,5 +356,32 @@ export declare class Cocobase {
|
|
|
146
356
|
}) => void, connectionName?: string, onOpen?: () => void, onError?: () => void): Connection;
|
|
147
357
|
hasRole(role: string): boolean;
|
|
148
358
|
closeConnection(name: string): void;
|
|
359
|
+
listUsers<T = any>(query?: Query): Promise<AppUserList>;
|
|
360
|
+
getUserById<T = any>(userId: string): Promise<AppUser>;
|
|
361
|
+
deleteDocuments(collection: string, docIds: string[]): Promise<{
|
|
362
|
+
status: string;
|
|
363
|
+
message: string;
|
|
364
|
+
count: number;
|
|
365
|
+
}>;
|
|
366
|
+
createDocuments<T = any>(collection: string, documents: T[]): Promise<Document<T>[]>;
|
|
367
|
+
/**
|
|
368
|
+
* Batch update documents
|
|
369
|
+
*
|
|
370
|
+
* @param collection - Collection name
|
|
371
|
+
* @param updates - Object mapping document IDs to partial update objects.
|
|
372
|
+
* Example: { "docId1": { fieldA: "value" }, "docId2": { fieldB: 2 } }
|
|
373
|
+
*/
|
|
374
|
+
updateDocuments<T = any>(collection: string, updates: Record<string, Partial<T>>): Promise<Document<T>[]>;
|
|
375
|
+
/**
|
|
376
|
+
* Count documents matching filters without returning the documents.
|
|
377
|
+
*
|
|
378
|
+
* Example:
|
|
379
|
+
* await db.countDocuments('users', { status: 'active', age_gte: 18 })
|
|
380
|
+
* // returns { count: 42 }
|
|
381
|
+
*/
|
|
382
|
+
countDocuments(collection: string, query?: Query): Promise<{
|
|
383
|
+
count: number;
|
|
384
|
+
}>;
|
|
385
|
+
aggregateDocuments(collection: string, params: AggregateParams): Promise<AggregateResults>;
|
|
149
386
|
}
|
|
150
387
|
//# sourceMappingURL=core.d.ts.map
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/core/core.ts"],"names":[],"mappings":"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"}
|