@objectql/driver-mongo 3.0.1 → 4.0.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/index.js CHANGED
@@ -2,16 +2,66 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MongoDriver = void 0;
4
4
  const mongodb_1 = require("mongodb");
5
+ /**
6
+ * MongoDB Driver for ObjectQL
7
+ *
8
+ * Implements both the legacy Driver interface from @objectql/types and
9
+ * the standard DriverInterface from @objectstack/spec for compatibility
10
+ * with the new kernel-based plugin system.
11
+ *
12
+ * The driver internally converts QueryAST format to MongoDB query format.
13
+ */
5
14
  class MongoDriver {
6
15
  constructor(config) {
16
+ // Driver metadata (ObjectStack-compatible)
17
+ this.name = 'MongoDriver';
18
+ this.version = '3.0.1';
19
+ this.supports = {
20
+ transactions: true,
21
+ joins: false,
22
+ fullTextSearch: true,
23
+ jsonFields: true,
24
+ arrayFields: true,
25
+ queryFilters: true,
26
+ queryAggregations: true,
27
+ querySorting: true,
28
+ queryPagination: true,
29
+ queryWindowFunctions: false,
30
+ querySubqueries: false
31
+ };
7
32
  this.config = config;
8
33
  this.client = new mongodb_1.MongoClient(config.url);
9
- this.connected = this.connect();
34
+ this.connected = this.internalConnect();
10
35
  }
11
- async connect() {
36
+ /**
37
+ * Internal connect method used in constructor
38
+ */
39
+ async internalConnect() {
12
40
  await this.client.connect();
13
41
  this.db = this.client.db(this.config.dbName);
14
42
  }
43
+ /**
44
+ * Connect to the database (for DriverInterface compatibility)
45
+ * This method ensures the connection is established.
46
+ */
47
+ async connect() {
48
+ await this.connected;
49
+ }
50
+ /**
51
+ * Check database connection health
52
+ */
53
+ async checkHealth() {
54
+ try {
55
+ await this.connected;
56
+ if (!this.db)
57
+ return false;
58
+ await this.db.admin().ping();
59
+ return true;
60
+ }
61
+ catch (error) {
62
+ return false;
63
+ }
64
+ }
15
65
  async getCollection(objectName) {
16
66
  await this.connected;
17
67
  if (!this.db)
@@ -163,30 +213,75 @@ class MongoDriver {
163
213
  }
164
214
  return mongoCondition;
165
215
  }
216
+ /**
217
+ * Normalizes query format to support both legacy UnifiedQuery and QueryAST formats.
218
+ * This ensures backward compatibility while supporting the new @objectstack/spec interface.
219
+ *
220
+ * QueryAST format uses 'top' for limit, while UnifiedQuery uses 'limit'.
221
+ * QueryAST sort is array of {field, order}, while UnifiedQuery is array of [field, order].
222
+ * QueryAST uses 'aggregations', while legacy uses 'aggregate'.
223
+ */
224
+ normalizeQuery(query) {
225
+ if (!query)
226
+ return {};
227
+ const normalized = { ...query };
228
+ // Normalize limit/top
229
+ if (normalized.top !== undefined && normalized.limit === undefined) {
230
+ normalized.limit = normalized.top;
231
+ }
232
+ // Normalize aggregations/aggregate
233
+ if (normalized.aggregations !== undefined && normalized.aggregate === undefined) {
234
+ // Convert QueryAST aggregations format to legacy aggregate format
235
+ normalized.aggregate = normalized.aggregations.map((agg) => ({
236
+ func: agg.function || agg.func,
237
+ field: agg.field,
238
+ alias: agg.alias
239
+ }));
240
+ }
241
+ // Normalize sort format
242
+ if (normalized.sort && Array.isArray(normalized.sort)) {
243
+ // Check if it's already in the array format [field, order]
244
+ const firstSort = normalized.sort[0];
245
+ if (firstSort && typeof firstSort === 'object' && !Array.isArray(firstSort)) {
246
+ // Convert from QueryAST format {field, order} to internal format [field, order]
247
+ normalized.sort = normalized.sort.map((item) => [
248
+ item.field,
249
+ item.order || item.direction || item.dir || 'asc'
250
+ ]);
251
+ }
252
+ }
253
+ return normalized;
254
+ }
166
255
  async find(objectName, query, options) {
256
+ const normalizedQuery = this.normalizeQuery(query);
167
257
  const collection = await this.getCollection(objectName);
168
- const filter = this.mapFilters(query.filters);
258
+ const filter = this.mapFilters(normalizedQuery.filters);
169
259
  const findOptions = {};
170
- if (query.skip)
171
- findOptions.skip = query.skip;
172
- if (query.limit)
173
- findOptions.limit = query.limit;
174
- if (query.sort) {
260
+ if (normalizedQuery.skip)
261
+ findOptions.skip = normalizedQuery.skip;
262
+ if (normalizedQuery.limit)
263
+ findOptions.limit = normalizedQuery.limit;
264
+ if (normalizedQuery.sort) {
175
265
  // map [['field', 'desc']] to { field: -1 }
176
266
  findOptions.sort = {};
177
- for (const [field, order] of query.sort) {
267
+ for (const [field, order] of normalizedQuery.sort) {
178
268
  // Map both 'id' and '_id' to '_id' for backward compatibility
179
269
  const dbField = (field === 'id' || field === '_id') ? '_id' : field;
180
270
  findOptions.sort[dbField] = order === 'desc' ? -1 : 1;
181
271
  }
182
272
  }
183
- if (query.fields && query.fields.length > 0) {
273
+ if (normalizedQuery.fields && normalizedQuery.fields.length > 0) {
184
274
  findOptions.projection = {};
185
- for (const field of query.fields) {
275
+ for (const field of normalizedQuery.fields) {
186
276
  // Map both 'id' and '_id' to '_id' for backward compatibility
187
277
  const dbField = (field === 'id' || field === '_id') ? '_id' : field;
188
278
  findOptions.projection[dbField] = 1;
189
279
  }
280
+ // Explicitly exclude _id if 'id' is not in the requested fields
281
+ const hasIdField = normalizedQuery.fields.some((f) => f === 'id' || f === '_id');
282
+ if (!hasIdField) {
283
+ findOptions.projection._id = 0;
284
+ }
190
285
  }
191
286
  const results = await collection.find(filter, findOptions).toArray();
192
287
  // Map MongoDB documents to API format (convert _id to id)
@@ -235,7 +330,10 @@ class MongoDriver {
235
330
  }
236
331
  async count(objectName, filters, options) {
237
332
  const collection = await this.getCollection(objectName);
238
- const filter = this.mapFilters(filters);
333
+ // Normalize to support both filter arrays and full query objects
334
+ const normalizedQuery = this.normalizeQuery(filters);
335
+ const actualFilters = normalizedQuery.filters || filters;
336
+ const filter = this.mapFilters(actualFilters);
239
337
  return await collection.countDocuments(filter);
240
338
  }
241
339
  // Bulk Operations
@@ -282,6 +380,188 @@ class MongoDriver {
282
380
  await this.client.close();
283
381
  }
284
382
  }
383
+ /**
384
+ * Execute a query using QueryAST (DriverInterface v4.0 method)
385
+ *
386
+ * This is the new standard method for query execution using the
387
+ * ObjectStack QueryAST format.
388
+ *
389
+ * @param ast - The QueryAST representing the query
390
+ * @param options - Optional execution options
391
+ * @returns Query results with value and count
392
+ */
393
+ async executeQuery(ast, options) {
394
+ var _a;
395
+ const objectName = ast.object || '';
396
+ // Convert QueryAST to legacy query format
397
+ const legacyQuery = {
398
+ fields: ast.fields,
399
+ filters: this.convertFilterNodeToLegacy(ast.filters),
400
+ sort: (_a = ast.sort) === null || _a === void 0 ? void 0 : _a.map((s) => [s.field, s.order]),
401
+ limit: ast.top,
402
+ skip: ast.skip,
403
+ };
404
+ // Use existing find method
405
+ const results = await this.find(objectName, legacyQuery, options);
406
+ return {
407
+ value: results,
408
+ count: results.length
409
+ };
410
+ }
411
+ /**
412
+ * Execute a command (DriverInterface v4.0 method)
413
+ *
414
+ * This method handles all mutation operations (create, update, delete)
415
+ * using a unified command interface.
416
+ *
417
+ * @param command - The command to execute
418
+ * @param options - Optional execution options
419
+ * @returns Command execution result
420
+ */
421
+ async executeCommand(command, options) {
422
+ try {
423
+ const cmdOptions = { ...options, ...command.options };
424
+ switch (command.type) {
425
+ case 'create':
426
+ if (!command.data) {
427
+ throw new Error('Create command requires data');
428
+ }
429
+ const created = await this.create(command.object, command.data, cmdOptions);
430
+ return {
431
+ success: true,
432
+ data: created,
433
+ affected: 1
434
+ };
435
+ case 'update':
436
+ if (!command.id || !command.data) {
437
+ throw new Error('Update command requires id and data');
438
+ }
439
+ const updated = await this.update(command.object, command.id, command.data, cmdOptions);
440
+ return {
441
+ success: true,
442
+ data: updated,
443
+ affected: updated ? 1 : 0
444
+ };
445
+ case 'delete':
446
+ if (!command.id) {
447
+ throw new Error('Delete command requires id');
448
+ }
449
+ const deleteCount = await this.delete(command.object, command.id, cmdOptions);
450
+ return {
451
+ success: true,
452
+ affected: deleteCount
453
+ };
454
+ case 'bulkCreate':
455
+ if (!command.records || !Array.isArray(command.records)) {
456
+ throw new Error('BulkCreate command requires records array');
457
+ }
458
+ const bulkCreated = await this.createMany(command.object, command.records, cmdOptions);
459
+ return {
460
+ success: true,
461
+ data: bulkCreated,
462
+ affected: command.records.length
463
+ };
464
+ case 'bulkUpdate':
465
+ if (!command.updates || !Array.isArray(command.updates)) {
466
+ throw new Error('BulkUpdate command requires updates array');
467
+ }
468
+ let updateCount = 0;
469
+ const updateResults = [];
470
+ for (const update of command.updates) {
471
+ const result = await this.update(command.object, update.id, update.data, cmdOptions);
472
+ updateResults.push(result);
473
+ if (result)
474
+ updateCount++;
475
+ }
476
+ return {
477
+ success: true,
478
+ data: updateResults,
479
+ affected: updateCount
480
+ };
481
+ case 'bulkDelete':
482
+ if (!command.ids || !Array.isArray(command.ids)) {
483
+ throw new Error('BulkDelete command requires ids array');
484
+ }
485
+ let deleted = 0;
486
+ for (const id of command.ids) {
487
+ const result = await this.delete(command.object, id, cmdOptions);
488
+ deleted += result;
489
+ }
490
+ return {
491
+ success: true,
492
+ affected: deleted
493
+ };
494
+ default:
495
+ const validTypes = ['create', 'update', 'delete', 'bulkCreate', 'bulkUpdate', 'bulkDelete'];
496
+ throw new Error(`Unknown command type: ${command.type}. Valid types are: ${validTypes.join(', ')}`);
497
+ }
498
+ }
499
+ catch (error) {
500
+ return {
501
+ success: false,
502
+ error: error.message || 'Command execution failed',
503
+ affected: 0
504
+ };
505
+ }
506
+ }
507
+ /**
508
+ * Convert FilterNode (QueryAST format) to legacy filter array format
509
+ * This allows reuse of existing filter logic while supporting new QueryAST
510
+ *
511
+ * @private
512
+ */
513
+ convertFilterNodeToLegacy(node) {
514
+ if (!node)
515
+ return undefined;
516
+ switch (node.type) {
517
+ case 'comparison':
518
+ // Convert comparison node to [field, operator, value] format
519
+ const operator = node.operator || '=';
520
+ return [[node.field, operator, node.value]];
521
+ case 'and':
522
+ case 'or':
523
+ // Convert AND/OR node to array with separator
524
+ if (!node.children || node.children.length === 0)
525
+ return undefined;
526
+ const results = [];
527
+ const separator = node.type; // 'and' or 'or'
528
+ for (const child of node.children) {
529
+ const converted = this.convertFilterNodeToLegacy(child);
530
+ if (converted) {
531
+ if (results.length > 0) {
532
+ results.push(separator);
533
+ }
534
+ results.push(...(Array.isArray(converted) ? converted : [converted]));
535
+ }
536
+ }
537
+ return results.length > 0 ? results : undefined;
538
+ case 'not':
539
+ // NOT is not directly supported in the legacy filter format
540
+ // MongoDB supports $not, but legacy array format doesn't have a NOT operator
541
+ // Use native MongoDB queries with $not instead:
542
+ // Example: { field: { $not: { $eq: value } } }
543
+ throw new Error('NOT filters are not supported in legacy filter format. ' +
544
+ 'Use native MongoDB queries with $not operator instead. ' +
545
+ 'Example: { field: { $not: { $eq: value } } }');
546
+ default:
547
+ return undefined;
548
+ }
549
+ }
550
+ /**
551
+ * Execute command (alternative signature for compatibility)
552
+ *
553
+ * @param command - Command string or object
554
+ * @param parameters - Command parameters
555
+ * @param options - Execution options
556
+ */
557
+ async execute(command, parameters, options) {
558
+ // MongoDB driver doesn't support raw command execution in the traditional SQL sense
559
+ // Use executeCommand() instead for mutations (create/update/delete)
560
+ // Example: await driver.executeCommand({ type: 'create', object: 'users', data: {...} })
561
+ throw new Error('MongoDB driver does not support raw command execution. ' +
562
+ 'Use executeCommand() for mutations or aggregate() for complex queries. ' +
563
+ 'Example: driver.executeCommand({ type: "create", object: "users", data: {...} })');
564
+ }
285
565
  }
286
566
  exports.MongoDriver = MongoDriver;
287
567
  //# sourceMappingURL=index.js.map
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/jest.config.js CHANGED
@@ -1,3 +1,11 @@
1
+ /**
2
+ * ObjectQL
3
+ * Copyright (c) 2026-present ObjectStack Inc.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+
1
9
  module.exports = {
2
10
  preset: 'ts-jest',
3
11
  testEnvironment: 'node',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@objectql/driver-mongo",
3
- "version": "3.0.1",
3
+ "version": "4.0.1",
4
4
  "description": "MongoDB driver for ObjectQL - Native aggregation pipeline translation for high-performance NoSQL operations",
5
5
  "keywords": [
6
6
  "objectql",
@@ -16,8 +16,9 @@
16
16
  "main": "dist/index.js",
17
17
  "types": "dist/index.d.ts",
18
18
  "dependencies": {
19
+ "@objectstack/spec": "^0.3.1",
19
20
  "mongodb": "^5.9.2",
20
- "@objectql/types": "3.0.1"
21
+ "@objectql/types": "4.0.1"
21
22
  },
22
23
  "devDependencies": {
23
24
  "mongodb-memory-server": "^11.0.1"