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.
Files changed (41) hide show
  1. package/dist/cjs/core/core.d.ts +239 -2
  2. package/dist/cjs/core/core.d.ts.map +1 -1
  3. package/dist/cjs/core/core.js +272 -23
  4. package/dist/cjs/core/core.js.map +1 -1
  5. package/dist/cjs/core/file.d.ts +27 -1
  6. package/dist/cjs/core/file.d.ts.map +1 -1
  7. package/dist/cjs/core/file.js +24 -2
  8. package/dist/cjs/core/file.js.map +1 -1
  9. package/dist/cjs/core/functions.d.ts +70 -0
  10. package/dist/cjs/core/functions.d.ts.map +1 -1
  11. package/dist/cjs/core/functions.js +55 -0
  12. package/dist/cjs/core/functions.js.map +1 -1
  13. package/dist/cjs/index.d.ts +4 -4
  14. package/dist/cjs/index.d.ts.map +1 -1
  15. package/dist/cjs/index.js +10 -10
  16. package/dist/cjs/index.js.map +1 -1
  17. package/dist/cjs/types/types.d.ts +98 -0
  18. package/dist/cjs/types/types.d.ts.map +1 -1
  19. package/dist/cjs/utils/utils.d.ts +2 -2
  20. package/dist/cjs/utils/utils.d.ts.map +1 -1
  21. package/dist/core/core.d.ts +239 -2
  22. package/dist/core/core.d.ts.map +1 -1
  23. package/dist/core/core.js +259 -10
  24. package/dist/core/core.js.map +1 -1
  25. package/dist/core/file.d.ts +27 -1
  26. package/dist/core/file.d.ts.map +1 -1
  27. package/dist/core/file.js +23 -1
  28. package/dist/core/file.js.map +1 -1
  29. package/dist/core/functions.d.ts +70 -0
  30. package/dist/core/functions.d.ts.map +1 -1
  31. package/dist/core/functions.js +55 -0
  32. package/dist/core/functions.js.map +1 -1
  33. package/dist/index.d.ts +4 -4
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +3 -3
  36. package/dist/index.js.map +1 -1
  37. package/dist/types/types.d.ts +98 -0
  38. package/dist/types/types.d.ts.map +1 -1
  39. package/dist/utils/utils.d.ts +2 -2
  40. package/dist/utils/utils.d.ts.map +1 -1
  41. package/package.json +1 -1
@@ -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,UAAU,EACX,MAAM,gBAAgB,CAAC;AAUxB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,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,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,aAAa,CAAC;gBAEb,MAAM,EAAE,cAAc;IAWlC,QAAQ,IAAI,MAAM,GAAG,SAAS;YAIhB,OAAO;IAoDrB,OAAO,CAAC,kBAAkB;IAkBpB,WAAW,CAAC,CAAC,GAAG,GAAG,EACvB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAQjB,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;IAsCjB,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;IAwCjB,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAQ1B,aAAa,CAAC,CAAC,GAAG,GAAG,EACzB,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAUnB,QAAQ;IAgBd,QAAQ,CAAC,KAAK,EAAE,MAAM;IAKhB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAYrC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAY1E;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;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;IA0CnB,MAAM;IAGN,eAAe,IAAI,OAAO;IAGpB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAalC,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;IAuBnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;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;IAoDnB,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,UAAU;IAiCb,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAM9B,eAAe,CAAC,IAAI,EAAE,MAAM;CAG7B"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/core/core.ts"],"names":[],"mappings":"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"}