@objectql/driver-mongo 4.0.2 → 4.0.4

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.
@@ -0,0 +1,4 @@
1
+
2
+ > @objectql/driver-mongo@4.0.4 build /home/runner/work/objectql/objectql/packages/drivers/mongo
3
+ > tsc
4
+
package/CHANGELOG.md CHANGED
@@ -1,5 +1,63 @@
1
1
  # @objectql/driver-mongo
2
2
 
3
+ ## 4.0.4
4
+
5
+ ### Patch Changes
6
+
7
+ - **Patch Release v4.0.4**
8
+
9
+ This patch release includes bug fixes, driver improvements, and enhanced test coverage:
10
+
11
+ ### Driver Improvements
12
+ - **MongoDB Driver**: Fixed bulk operations, transaction support, and type safety improvements
13
+ - **FileSystem Driver**: Fixed TCK test compatibility with dataDir parameter
14
+ - **SQL Driver**: Enhanced TCK test compatibility and fixed test failures
15
+ - **Redis Driver**: Improved TCK test configuration and dependencies
16
+ - **Driver Utils**: Added shared utilities package for cross-driver functionality
17
+
18
+ ### Testing & Quality
19
+ - Added comprehensive TCK (Technology Compatibility Kit) compliance tests for all drivers
20
+ - Expanded TCK test suite to 30+ comprehensive tests
21
+ - Enhanced test infrastructure with better error handling
22
+ - Added --passWithNoTests flag for packages without tests
23
+
24
+ ### Type Safety
25
+ - Improved type safety in MongoDB driver update methods
26
+ - Better handling of atomic operators in MongoDB driver
27
+ - Enhanced type definitions across driver layer
28
+
29
+ ### Documentation
30
+ - Added comprehensive driver documentation
31
+ - Enhanced official documentation with Phase 2 implementation summaries
32
+ - Improved protocol layer documentation
33
+
34
+ ### Infrastructure
35
+ - Standardized driver layer implementation
36
+ - Enhanced protocol layer with better abstraction
37
+ - Improved GitHub Actions workflow configurations
38
+ - Better CI/CD pipeline stability
39
+
40
+ This release maintains full backward compatibility with v4.0.3.
41
+
42
+ - Updated dependencies
43
+ - @objectql/types@4.0.4
44
+
45
+ ## 4.0.3
46
+
47
+ ### Patch Changes
48
+
49
+ - **Patch Release v4.0.3**
50
+
51
+ This patch release includes infrastructure improvements and development experience enhancements:
52
+ - Refactored dev server setup for improved configuration handling
53
+ - Enhanced example scripts and development workflow
54
+ - Updated build and test infrastructure
55
+ - Improved documentation and developer tools
56
+ - Bug fixes and stability improvements
57
+
58
+ - Updated dependencies
59
+ - @objectql/types@4.0.3
60
+
3
61
  ## 4.0.2
4
62
 
5
63
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -8,6 +8,22 @@ type QueryAST = Data.QueryAST;
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
10
  import { Driver } from '@objectql/types';
11
+ import { ChangeStreamDocument } from 'mongodb';
12
+ /**
13
+ * Change stream event handler callback
14
+ */
15
+ export type ChangeStreamHandler = (change: ChangeStreamDocument) => void | Promise<void>;
16
+ /**
17
+ * Change stream options
18
+ */
19
+ export interface ChangeStreamOptions {
20
+ /** Filter for specific operation types (insert, update, delete, replace) */
21
+ operationTypes?: ('insert' | 'update' | 'delete' | 'replace')[];
22
+ /** Full document lookup for update operations */
23
+ fullDocument?: 'updateLookup' | 'whenAvailable' | 'required';
24
+ /** Pipeline to filter change events */
25
+ pipeline?: any[];
26
+ }
11
27
  /**
12
28
  * Command interface for executeCommand method
13
29
  */
@@ -62,6 +78,7 @@ export declare class MongoDriver implements Driver {
62
78
  private db?;
63
79
  private config;
64
80
  private connected;
81
+ private changeStreams;
65
82
  constructor(config: {
66
83
  url: string;
67
84
  dbName?: string;
@@ -119,14 +136,114 @@ export declare class MongoDriver implements Driver {
119
136
  find(objectName: string, query: any, options?: any): Promise<any[]>;
120
137
  findOne(objectName: string, id: string | number, query?: any, options?: any): Promise<any>;
121
138
  create(objectName: string, data: any, options?: any): Promise<any>;
122
- update(objectName: string, id: string | number, data: any, options?: any): Promise<number>;
139
+ update(objectName: string, id: string | number, data: any, options?: any): Promise<any>;
123
140
  delete(objectName: string, id: string | number, options?: any): Promise<number>;
124
141
  count(objectName: string, filters: any, options?: any): Promise<number>;
125
142
  createMany(objectName: string, data: any[], options?: any): Promise<any>;
126
143
  updateMany(objectName: string, filters: any, data: any, options?: any): Promise<any>;
127
144
  deleteMany(objectName: string, filters: any, options?: any): Promise<any>;
128
145
  aggregate(objectName: string, pipeline: any[], options?: any): Promise<any[]>;
146
+ /**
147
+ * Get distinct values for a field
148
+ * @param objectName - The collection name
149
+ * @param field - The field to get distinct values from
150
+ * @param filters - Optional filters to apply
151
+ * @param options - Optional query options
152
+ * @returns Array of distinct values
153
+ */
154
+ distinct(objectName: string, field: string, filters?: any, options?: any): Promise<any[]>;
155
+ /**
156
+ * Find one document and update it atomically
157
+ * @param objectName - The collection name
158
+ * @param filters - Query filters to find the document
159
+ * @param update - Update operations to apply
160
+ * @param options - Optional query options (e.g., returnDocument, upsert)
161
+ * @returns The updated document
162
+ *
163
+ * @example
164
+ * // Find and update with returnDocument: 'after' to get the updated doc
165
+ * const updated = await driver.findOneAndUpdate('users',
166
+ * { email: 'user@example.com' },
167
+ * { $set: { status: 'active' } },
168
+ * { returnDocument: 'after' }
169
+ * );
170
+ */
171
+ findOneAndUpdate(objectName: string, filters: any, update: any, options?: any): Promise<any>;
172
+ /**
173
+ * Begin a new transaction session
174
+ *
175
+ * @returns MongoDB ClientSession that can be used for transactional operations
176
+ *
177
+ * @example
178
+ * const session = await driver.beginTransaction();
179
+ * try {
180
+ * await driver.create('users', { name: 'Alice' }, { session });
181
+ * await driver.create('orders', { userId: 'alice' }, { session });
182
+ * await driver.commitTransaction(session);
183
+ * } catch (error) {
184
+ * await driver.rollbackTransaction(session);
185
+ * throw error;
186
+ * }
187
+ */
188
+ beginTransaction(): Promise<any>;
189
+ /**
190
+ * Commit a transaction
191
+ *
192
+ * @param transaction - MongoDB ClientSession returned by beginTransaction()
193
+ *
194
+ * @example
195
+ * const session = await driver.beginTransaction();
196
+ * // ... perform operations with { session } in options
197
+ * await driver.commitTransaction(session);
198
+ */
199
+ commitTransaction(transaction: any): Promise<void>;
200
+ /**
201
+ * Rollback a transaction
202
+ *
203
+ * @param transaction - MongoDB ClientSession returned by beginTransaction()
204
+ *
205
+ * @example
206
+ * const session = await driver.beginTransaction();
207
+ * try {
208
+ * // ... perform operations
209
+ * await driver.commitTransaction(session);
210
+ * } catch (error) {
211
+ * await driver.rollbackTransaction(session);
212
+ * }
213
+ */
214
+ rollbackTransaction(transaction: any): Promise<void>;
129
215
  disconnect(): Promise<void>;
216
+ /**
217
+ * Watch for changes in a collection using MongoDB Change Streams
218
+ * @param objectName - The collection name to watch
219
+ * @param handler - Callback function to handle change events
220
+ * @param options - Optional change stream configuration
221
+ * @returns Stream ID that can be used to close the stream later
222
+ *
223
+ * @example
224
+ * const streamId = await driver.watch('users', async (change) => {
225
+ * console.log('Change detected:', change.operationType);
226
+ * if (change.operationType === 'insert') {
227
+ * console.log('New document:', change.fullDocument);
228
+ * }
229
+ * }, {
230
+ * operationTypes: ['insert', 'update'],
231
+ * fullDocument: 'updateLookup'
232
+ * });
233
+ *
234
+ * // Later, to stop watching:
235
+ * await driver.unwatchChangeStream(streamId);
236
+ */
237
+ watch(objectName: string, handler: ChangeStreamHandler, options?: ChangeStreamOptions): Promise<string>;
238
+ /**
239
+ * Stop watching a change stream
240
+ * @param streamId - The stream ID returned by watch()
241
+ */
242
+ unwatchChangeStream(streamId: string): Promise<void>;
243
+ /**
244
+ * Get all active change stream IDs
245
+ */
246
+ getActiveChangeStreams(): string[];
130
247
  /**
131
248
  * Execute a query using QueryAST (DriverInterface v4.0 method)
132
249
  *
package/dist/index.js CHANGED
@@ -32,6 +32,7 @@ class MongoDriver {
32
32
  this.config = config;
33
33
  this.client = new mongodb_1.MongoClient(config.url);
34
34
  this.connected = this.internalConnect();
35
+ this.changeStreams = new Map();
35
36
  }
36
37
  /**
37
38
  * Internal connect method used in constructor
@@ -343,7 +344,20 @@ class MongoDriver {
343
344
  if (!mongoDoc._id) {
344
345
  mongoDoc._id = new mongodb_1.ObjectId().toHexString();
345
346
  }
346
- const result = await collection.insertOne(mongoDoc);
347
+ // Add timestamps if not already present
348
+ const now = new Date().toISOString();
349
+ if (!mongoDoc.created_at) {
350
+ mongoDoc.created_at = now;
351
+ }
352
+ if (!mongoDoc.updated_at) {
353
+ mongoDoc.updated_at = now;
354
+ }
355
+ // Pass session for transactional operations only if it exists
356
+ // Support both 'transaction' and 'session' option keys for compatibility
357
+ const session = (options === null || options === void 0 ? void 0 : options.transaction) || (options === null || options === void 0 ? void 0 : options.session);
358
+ const result = session
359
+ ? await collection.insertOne(mongoDoc, { session })
360
+ : await collection.insertOne(mongoDoc);
347
361
  // Return API format document (convert _id to id)
348
362
  return this.mapFromMongo({ ...mongoDoc, _id: result.insertedId });
349
363
  }
@@ -351,16 +365,45 @@ class MongoDriver {
351
365
  const collection = await this.getCollection(objectName);
352
366
  // Map API document (id) to MongoDB document (_id) for update data
353
367
  // But we should not allow updating the _id field itself
354
- const { id: _ignoredId, ...updateData } = data; // intentionally ignore id to prevent updating primary key
368
+ const { id: _ignoredId, created_at: _ignoredCreatedAt, ...updateData } = data; // intentionally ignore id and created_at to prevent updating them
355
369
  // Handle atomic operators if present
356
370
  const isAtomic = Object.keys(updateData).some(k => k.startsWith('$'));
357
- const update = isAtomic ? updateData : { $set: updateData };
358
- const result = await collection.updateOne({ _id: this.normalizeId(id) }, update);
359
- return result.modifiedCount; // or return updated document?
371
+ // Build the update object with updated_at timestamp
372
+ let update;
373
+ if (isAtomic) {
374
+ // When using atomic operators, add updated_at to $set
375
+ // The spread is safe because id and created_at were already removed via destructuring
376
+ update = { ...updateData };
377
+ if (!update.$set) {
378
+ update.$set = {};
379
+ }
380
+ update.$set.updated_at = new Date().toISOString();
381
+ }
382
+ else {
383
+ // For regular updates, add updated_at to the data
384
+ updateData.updated_at = new Date().toISOString();
385
+ update = { $set: updateData };
386
+ }
387
+ // Use findOneAndUpdate to return the updated document
388
+ const mongoOptions = { returnDocument: 'after' };
389
+ // Support both 'transaction' and 'session' option keys for compatibility
390
+ const session = (options === null || options === void 0 ? void 0 : options.transaction) || (options === null || options === void 0 ? void 0 : options.session);
391
+ if (session) {
392
+ mongoOptions.session = session;
393
+ }
394
+ const result = await collection.findOneAndUpdate({ _id: this.normalizeId(id) }, update, mongoOptions);
395
+ // Return API format document (convert _id to id)
396
+ // findOneAndUpdate returns an object with a 'value' property containing the document
397
+ return this.mapFromMongo(result === null || result === void 0 ? void 0 : result.value);
360
398
  }
361
399
  async delete(objectName, id, options) {
362
400
  const collection = await this.getCollection(objectName);
363
- const result = await collection.deleteOne({ _id: this.normalizeId(id) });
401
+ // Pass session for transactional operations only if it exists
402
+ // Support both 'transaction' and 'session' option keys for compatibility
403
+ const session = (options === null || options === void 0 ? void 0 : options.transaction) || (options === null || options === void 0 ? void 0 : options.session);
404
+ const result = session
405
+ ? await collection.deleteOne({ _id: this.normalizeId(id) }, { session })
406
+ : await collection.deleteOne({ _id: this.normalizeId(id) });
364
407
  return result.deletedCount;
365
408
  }
366
409
  async count(objectName, filters, options) {
@@ -387,7 +430,11 @@ class MongoDriver {
387
430
  }
388
431
  return mongoDoc;
389
432
  });
390
- const result = await collection.insertMany(mongoDocs);
433
+ // Support both 'transaction' and 'session' option keys for compatibility
434
+ const session = (options === null || options === void 0 ? void 0 : options.transaction) || (options === null || options === void 0 ? void 0 : options.session);
435
+ const result = session
436
+ ? await collection.insertMany(mongoDocs, { session })
437
+ : await collection.insertMany(mongoDocs);
391
438
  // Return API format (convert _id to id)
392
439
  return Object.values(result.insertedIds).map(id => ({ id }));
393
440
  }
@@ -398,14 +445,22 @@ class MongoDriver {
398
445
  const { id: idToIgnore, ...updateData } = data;
399
446
  const isAtomic = Object.keys(updateData).some(k => k.startsWith('$'));
400
447
  const update = isAtomic ? updateData : { $set: updateData };
401
- const result = await collection.updateMany(filter, update);
402
- return result.modifiedCount;
448
+ // Support both 'transaction' and 'session' option keys for compatibility
449
+ const session = (options === null || options === void 0 ? void 0 : options.transaction) || (options === null || options === void 0 ? void 0 : options.session);
450
+ const result = session
451
+ ? await collection.updateMany(filter, update, { session })
452
+ : await collection.updateMany(filter, update);
453
+ return { modifiedCount: result.modifiedCount };
403
454
  }
404
455
  async deleteMany(objectName, filters, options) {
405
456
  const collection = await this.getCollection(objectName);
406
457
  const filter = this.mapFilters(filters);
407
- const result = await collection.deleteMany(filter);
408
- return result.deletedCount;
458
+ // Support both 'transaction' and 'session' option keys for compatibility
459
+ const session = (options === null || options === void 0 ? void 0 : options.transaction) || (options === null || options === void 0 ? void 0 : options.session);
460
+ const result = session
461
+ ? await collection.deleteMany(filter, { session })
462
+ : await collection.deleteMany(filter);
463
+ return { deletedCount: result.deletedCount };
409
464
  }
410
465
  async aggregate(objectName, pipeline, options) {
411
466
  const collection = await this.getCollection(objectName);
@@ -413,11 +468,211 @@ class MongoDriver {
413
468
  // Map MongoDB documents to API format (convert _id to id)
414
469
  return this.mapFromMongoArray(results);
415
470
  }
471
+ /**
472
+ * Get distinct values for a field
473
+ * @param objectName - The collection name
474
+ * @param field - The field to get distinct values from
475
+ * @param filters - Optional filters to apply
476
+ * @param options - Optional query options
477
+ * @returns Array of distinct values
478
+ */
479
+ async distinct(objectName, field, filters, options) {
480
+ const collection = await this.getCollection(objectName);
481
+ // Convert ObjectQL filters to MongoDB query format
482
+ const filter = filters ? this.mapFilters(filters) : {};
483
+ // Use MongoDB's native distinct method
484
+ const results = await collection.distinct(field, filter);
485
+ return results;
486
+ }
487
+ /**
488
+ * Find one document and update it atomically
489
+ * @param objectName - The collection name
490
+ * @param filters - Query filters to find the document
491
+ * @param update - Update operations to apply
492
+ * @param options - Optional query options (e.g., returnDocument, upsert)
493
+ * @returns The updated document
494
+ *
495
+ * @example
496
+ * // Find and update with returnDocument: 'after' to get the updated doc
497
+ * const updated = await driver.findOneAndUpdate('users',
498
+ * { email: 'user@example.com' },
499
+ * { $set: { status: 'active' } },
500
+ * { returnDocument: 'after' }
501
+ * );
502
+ */
503
+ async findOneAndUpdate(objectName, filters, update, options) {
504
+ const collection = await this.getCollection(objectName);
505
+ // Convert ObjectQL filters to MongoDB query format
506
+ const filter = this.mapFilters(filters);
507
+ // MongoDB findOneAndUpdate options
508
+ const mongoOptions = {
509
+ returnDocument: (options === null || options === void 0 ? void 0 : options.returnDocument) || 'after', // 'before' or 'after'
510
+ upsert: (options === null || options === void 0 ? void 0 : options.upsert) || false
511
+ };
512
+ // Execute the atomic find and update
513
+ const result = await collection.findOneAndUpdate(filter, update, mongoOptions);
514
+ // Map MongoDB document to API format (convert _id to id)
515
+ // MongoDB driver v5+ returns { value: document, ok: number }
516
+ // Older versions (v4) return the document directly
517
+ // We handle both for backward compatibility
518
+ const doc = (result === null || result === void 0 ? void 0 : result.value) !== undefined ? result.value : result;
519
+ return doc ? this.mapFromMongo(doc) : null;
520
+ }
521
+ // ========== Transaction Support ==========
522
+ /**
523
+ * Begin a new transaction session
524
+ *
525
+ * @returns MongoDB ClientSession that can be used for transactional operations
526
+ *
527
+ * @example
528
+ * const session = await driver.beginTransaction();
529
+ * try {
530
+ * await driver.create('users', { name: 'Alice' }, { session });
531
+ * await driver.create('orders', { userId: 'alice' }, { session });
532
+ * await driver.commitTransaction(session);
533
+ * } catch (error) {
534
+ * await driver.rollbackTransaction(session);
535
+ * throw error;
536
+ * }
537
+ */
538
+ async beginTransaction() {
539
+ await this.connected;
540
+ const session = this.client.startSession();
541
+ session.startTransaction();
542
+ return session;
543
+ }
544
+ /**
545
+ * Commit a transaction
546
+ *
547
+ * @param transaction - MongoDB ClientSession returned by beginTransaction()
548
+ *
549
+ * @example
550
+ * const session = await driver.beginTransaction();
551
+ * // ... perform operations with { session } in options
552
+ * await driver.commitTransaction(session);
553
+ */
554
+ async commitTransaction(transaction) {
555
+ if (!transaction || typeof transaction.commitTransaction !== 'function') {
556
+ throw new Error('Invalid transaction object. Must be a MongoDB ClientSession.');
557
+ }
558
+ try {
559
+ await transaction.commitTransaction();
560
+ }
561
+ finally {
562
+ await transaction.endSession();
563
+ }
564
+ }
565
+ /**
566
+ * Rollback a transaction
567
+ *
568
+ * @param transaction - MongoDB ClientSession returned by beginTransaction()
569
+ *
570
+ * @example
571
+ * const session = await driver.beginTransaction();
572
+ * try {
573
+ * // ... perform operations
574
+ * await driver.commitTransaction(session);
575
+ * } catch (error) {
576
+ * await driver.rollbackTransaction(session);
577
+ * }
578
+ */
579
+ async rollbackTransaction(transaction) {
580
+ if (!transaction || typeof transaction.abortTransaction !== 'function') {
581
+ throw new Error('Invalid transaction object. Must be a MongoDB ClientSession.');
582
+ }
583
+ try {
584
+ await transaction.abortTransaction();
585
+ }
586
+ finally {
587
+ await transaction.endSession();
588
+ }
589
+ }
416
590
  async disconnect() {
591
+ // Close all active change streams
592
+ for (const [streamId, stream] of this.changeStreams.entries()) {
593
+ await stream.close();
594
+ }
595
+ this.changeStreams.clear();
596
+ // Close the MongoDB client
417
597
  if (this.client) {
418
598
  await this.client.close();
419
599
  }
420
600
  }
601
+ /**
602
+ * Watch for changes in a collection using MongoDB Change Streams
603
+ * @param objectName - The collection name to watch
604
+ * @param handler - Callback function to handle change events
605
+ * @param options - Optional change stream configuration
606
+ * @returns Stream ID that can be used to close the stream later
607
+ *
608
+ * @example
609
+ * const streamId = await driver.watch('users', async (change) => {
610
+ * console.log('Change detected:', change.operationType);
611
+ * if (change.operationType === 'insert') {
612
+ * console.log('New document:', change.fullDocument);
613
+ * }
614
+ * }, {
615
+ * operationTypes: ['insert', 'update'],
616
+ * fullDocument: 'updateLookup'
617
+ * });
618
+ *
619
+ * // Later, to stop watching:
620
+ * await driver.unwatchChangeStream(streamId);
621
+ */
622
+ async watch(objectName, handler, options) {
623
+ const collection = await this.getCollection(objectName);
624
+ // Build change stream pipeline
625
+ const pipeline = (options === null || options === void 0 ? void 0 : options.pipeline) || [];
626
+ // Add operation type filter if specified
627
+ if ((options === null || options === void 0 ? void 0 : options.operationTypes) && options.operationTypes.length > 0) {
628
+ pipeline.unshift({
629
+ $match: {
630
+ operationType: { $in: options.operationTypes }
631
+ }
632
+ });
633
+ }
634
+ // Configure change stream options
635
+ const streamOptions = {};
636
+ if (options === null || options === void 0 ? void 0 : options.fullDocument) {
637
+ streamOptions.fullDocument = options.fullDocument;
638
+ }
639
+ // Create the change stream
640
+ const changeStream = collection.watch(pipeline, streamOptions);
641
+ // Generate unique stream ID
642
+ const streamId = `${objectName}_${Date.now()}_${Math.random().toString(36).substring(7)}`;
643
+ // Store the stream
644
+ this.changeStreams.set(streamId, changeStream);
645
+ // Handle change events
646
+ changeStream.on('change', async (change) => {
647
+ try {
648
+ await handler(change);
649
+ }
650
+ catch (error) {
651
+ console.error(`[MongoDriver] Error in change stream handler for ${objectName}:`, error);
652
+ }
653
+ });
654
+ changeStream.on('error', (error) => {
655
+ console.error(`[MongoDriver] Change stream error for ${objectName}:`, error);
656
+ });
657
+ return streamId;
658
+ }
659
+ /**
660
+ * Stop watching a change stream
661
+ * @param streamId - The stream ID returned by watch()
662
+ */
663
+ async unwatchChangeStream(streamId) {
664
+ const stream = this.changeStreams.get(streamId);
665
+ if (stream) {
666
+ await stream.close();
667
+ this.changeStreams.delete(streamId);
668
+ }
669
+ }
670
+ /**
671
+ * Get all active change stream IDs
672
+ */
673
+ getActiveChangeStreams() {
674
+ return Array.from(this.changeStreams.keys());
675
+ }
421
676
  /**
422
677
  * Execute a query using QueryAST (DriverInterface v4.0 method)
423
678
  *
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@objectql/driver-mongo",
3
- "version": "4.0.2",
3
+ "version": "4.0.4",
4
4
  "description": "MongoDB driver for ObjectQL - Native aggregation pipeline translation for high-performance NoSQL operations",
5
5
  "keywords": [
6
6
  "objectql",
@@ -16,9 +16,9 @@
16
16
  "main": "dist/index.js",
17
17
  "types": "dist/index.d.ts",
18
18
  "dependencies": {
19
- "@objectstack/spec": "^0.3.3",
19
+ "@objectstack/spec": "^0.8.2",
20
20
  "mongodb": "^5.9.2",
21
- "@objectql/types": "4.0.2"
21
+ "@objectql/types": "4.0.4"
22
22
  },
23
23
  "devDependencies": {
24
24
  "mongodb-memory-server": "^11.0.1"