mongodb 6.5.0 → 6.6.0-dev.20240504.sha.2609953

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 (207) hide show
  1. package/README.md +9 -9
  2. package/lib/admin.js +9 -9
  3. package/lib/admin.js.map +1 -1
  4. package/lib/bson.js +33 -22
  5. package/lib/bson.js.map +1 -1
  6. package/lib/bulk/common.js +13 -12
  7. package/lib/bulk/common.js.map +1 -1
  8. package/lib/change_stream.js +28 -18
  9. package/lib/change_stream.js.map +1 -1
  10. package/lib/client-side-encryption/auto_encrypter.js +2 -2
  11. package/lib/client-side-encryption/auto_encrypter.js.map +1 -1
  12. package/lib/client-side-encryption/client_encryption.js +6 -6
  13. package/lib/client-side-encryption/client_encryption.js.map +1 -1
  14. package/lib/client-side-encryption/providers/aws.js +13 -10
  15. package/lib/client-side-encryption/providers/aws.js.map +1 -1
  16. package/lib/client-side-encryption/providers/azure.js +6 -3
  17. package/lib/client-side-encryption/providers/azure.js.map +1 -1
  18. package/lib/cmap/auth/aws_temporary_credentials.js +140 -0
  19. package/lib/cmap/auth/aws_temporary_credentials.js.map +1 -0
  20. package/lib/cmap/auth/gssapi.js +7 -6
  21. package/lib/cmap/auth/gssapi.js.map +1 -1
  22. package/lib/cmap/auth/mongodb_aws.js +8 -101
  23. package/lib/cmap/auth/mongodb_aws.js.map +1 -1
  24. package/lib/cmap/auth/mongodb_oidc/aws_service_workflow.js +1 -1
  25. package/lib/cmap/auth/mongodb_oidc/aws_service_workflow.js.map +1 -1
  26. package/lib/cmap/auth/mongodb_oidc/callback_lock_cache.js +2 -1
  27. package/lib/cmap/auth/mongodb_oidc/callback_lock_cache.js.map +1 -1
  28. package/lib/cmap/auth/mongodb_oidc/service_workflow.js +1 -1
  29. package/lib/cmap/auth/mongodb_oidc/service_workflow.js.map +1 -1
  30. package/lib/cmap/auth/scram.js +2 -2
  31. package/lib/cmap/auth/scram.js.map +1 -1
  32. package/lib/cmap/commands.js +24 -111
  33. package/lib/cmap/commands.js.map +1 -1
  34. package/lib/cmap/connect.js +4 -4
  35. package/lib/cmap/connect.js.map +1 -1
  36. package/lib/cmap/connection.js +61 -36
  37. package/lib/cmap/connection.js.map +1 -1
  38. package/lib/cmap/connection_pool.js +22 -13
  39. package/lib/cmap/connection_pool.js.map +1 -1
  40. package/lib/cmap/handshake/client_metadata.js +2 -2
  41. package/lib/cmap/handshake/client_metadata.js.map +1 -1
  42. package/lib/cmap/wire_protocol/compression.js +8 -8
  43. package/lib/cmap/wire_protocol/compression.js.map +1 -1
  44. package/lib/cmap/wire_protocol/on_demand/document.js +218 -0
  45. package/lib/cmap/wire_protocol/on_demand/document.js.map +1 -0
  46. package/lib/cmap/wire_protocol/responses.js +184 -0
  47. package/lib/cmap/wire_protocol/responses.js.map +1 -0
  48. package/lib/collection.js +42 -38
  49. package/lib/collection.js.map +1 -1
  50. package/lib/connection_string.js +4 -6
  51. package/lib/connection_string.js.map +1 -1
  52. package/lib/cursor/abstract_cursor.js +76 -43
  53. package/lib/cursor/abstract_cursor.js.map +1 -1
  54. package/lib/cursor/aggregation_cursor.js +16 -33
  55. package/lib/cursor/aggregation_cursor.js.map +1 -1
  56. package/lib/cursor/find_cursor.js +36 -18
  57. package/lib/cursor/find_cursor.js.map +1 -1
  58. package/lib/cursor/run_command_cursor.js +3 -2
  59. package/lib/cursor/run_command_cursor.js.map +1 -1
  60. package/lib/db.js +15 -19
  61. package/lib/db.js.map +1 -1
  62. package/lib/deps.js +31 -26
  63. package/lib/deps.js.map +1 -1
  64. package/lib/encrypter.js +14 -5
  65. package/lib/encrypter.js.map +1 -1
  66. package/lib/error.js +4 -3
  67. package/lib/error.js.map +1 -1
  68. package/lib/gridfs/download.js +19 -14
  69. package/lib/gridfs/download.js.map +1 -1
  70. package/lib/gridfs/index.js.map +1 -1
  71. package/lib/gridfs/upload.js +6 -1
  72. package/lib/gridfs/upload.js.map +1 -1
  73. package/lib/index.js.map +1 -1
  74. package/lib/mongo_client.js +11 -7
  75. package/lib/mongo_client.js.map +1 -1
  76. package/lib/mongo_logger.js +3 -0
  77. package/lib/mongo_logger.js.map +1 -1
  78. package/lib/operations/aggregate.js +2 -1
  79. package/lib/operations/aggregate.js.map +1 -1
  80. package/lib/operations/command.js +1 -1
  81. package/lib/operations/command.js.map +1 -1
  82. package/lib/operations/create_collection.js +1 -1
  83. package/lib/operations/create_collection.js.map +1 -1
  84. package/lib/operations/delete.js +4 -3
  85. package/lib/operations/delete.js.map +1 -1
  86. package/lib/operations/drop.js +1 -1
  87. package/lib/operations/drop.js.map +1 -1
  88. package/lib/operations/execute_operation.js +23 -8
  89. package/lib/operations/execute_operation.js.map +1 -1
  90. package/lib/operations/find.js +4 -4
  91. package/lib/operations/find.js.map +1 -1
  92. package/lib/operations/get_more.js +2 -1
  93. package/lib/operations/get_more.js.map +1 -1
  94. package/lib/operations/indexes.js +29 -121
  95. package/lib/operations/indexes.js.map +1 -1
  96. package/lib/operations/insert.js +3 -3
  97. package/lib/operations/insert.js.map +1 -1
  98. package/lib/operations/kill_cursors.js +3 -1
  99. package/lib/operations/kill_cursors.js.map +1 -1
  100. package/lib/operations/list_collections.js +1 -1
  101. package/lib/operations/list_collections.js.map +1 -1
  102. package/lib/operations/list_databases.js +1 -1
  103. package/lib/operations/list_databases.js.map +1 -1
  104. package/lib/operations/operation.js.map +1 -1
  105. package/lib/operations/run_command.js +4 -2
  106. package/lib/operations/run_command.js.map +1 -1
  107. package/lib/operations/search_indexes/create.js.map +1 -1
  108. package/lib/operations/stats.js +1 -1
  109. package/lib/operations/stats.js.map +1 -1
  110. package/lib/operations/update.js +1 -1
  111. package/lib/operations/update.js.map +1 -1
  112. package/lib/sdam/common.js.map +1 -1
  113. package/lib/sdam/monitor.js +139 -42
  114. package/lib/sdam/monitor.js.map +1 -1
  115. package/lib/sdam/server.js +5 -15
  116. package/lib/sdam/server.js.map +1 -1
  117. package/lib/sdam/server_description.js +1 -0
  118. package/lib/sdam/server_description.js.map +1 -1
  119. package/lib/sdam/server_selection.js +1 -1
  120. package/lib/sdam/server_selection.js.map +1 -1
  121. package/lib/sdam/srv_polling.js +2 -1
  122. package/lib/sdam/srv_polling.js.map +1 -1
  123. package/lib/sdam/topology.js +67 -54
  124. package/lib/sdam/topology.js.map +1 -1
  125. package/lib/sdam/topology_description.js +10 -0
  126. package/lib/sdam/topology_description.js.map +1 -1
  127. package/lib/sessions.js +133 -93
  128. package/lib/sessions.js.map +1 -1
  129. package/lib/timeout.js +77 -0
  130. package/lib/timeout.js.map +1 -0
  131. package/lib/utils.js +61 -28
  132. package/lib/utils.js.map +1 -1
  133. package/mongodb.d.ts +150 -38
  134. package/package.json +17 -14
  135. package/src/admin.ts +9 -9
  136. package/src/bson.ts +14 -0
  137. package/src/bulk/common.ts +3 -2
  138. package/src/change_stream.ts +39 -30
  139. package/src/client-side-encryption/auto_encrypter.ts +2 -2
  140. package/src/client-side-encryption/client_encryption.ts +6 -6
  141. package/src/client-side-encryption/providers/aws.ts +17 -10
  142. package/src/client-side-encryption/providers/azure.ts +5 -3
  143. package/src/cmap/auth/aws_temporary_credentials.ts +169 -0
  144. package/src/cmap/auth/gssapi.ts +9 -11
  145. package/src/cmap/auth/mongodb_aws.ts +19 -126
  146. package/src/cmap/auth/mongodb_oidc/aws_service_workflow.ts +1 -1
  147. package/src/cmap/auth/mongodb_oidc/callback_lock_cache.ts +2 -1
  148. package/src/cmap/auth/mongodb_oidc/service_workflow.ts +1 -1
  149. package/src/cmap/auth/scram.ts +2 -2
  150. package/src/cmap/commands.ts +28 -132
  151. package/src/cmap/connect.ts +4 -4
  152. package/src/cmap/connection.ts +107 -43
  153. package/src/cmap/connection_pool.ts +32 -29
  154. package/src/cmap/handshake/client_metadata.ts +2 -5
  155. package/src/cmap/wire_protocol/compression.ts +11 -13
  156. package/src/cmap/wire_protocol/on_demand/document.ts +338 -0
  157. package/src/cmap/wire_protocol/responses.ts +237 -0
  158. package/src/collection.ts +87 -58
  159. package/src/connection_string.ts +9 -7
  160. package/src/cursor/abstract_cursor.ts +102 -38
  161. package/src/cursor/aggregation_cursor.ts +32 -34
  162. package/src/cursor/find_cursor.ts +33 -21
  163. package/src/cursor/list_search_indexes_cursor.ts +1 -1
  164. package/src/cursor/run_command_cursor.ts +3 -2
  165. package/src/db.ts +42 -21
  166. package/src/deps.ts +52 -40
  167. package/src/encrypter.ts +14 -5
  168. package/src/error.ts +9 -3
  169. package/src/gridfs/download.ts +19 -31
  170. package/src/gridfs/index.ts +2 -0
  171. package/src/gridfs/upload.ts +11 -8
  172. package/src/index.ts +13 -5
  173. package/src/mongo_client.ts +21 -15
  174. package/src/mongo_logger.ts +3 -0
  175. package/src/mongo_types.ts +1 -1
  176. package/src/operations/aggregate.ts +2 -1
  177. package/src/operations/command.ts +1 -1
  178. package/src/operations/create_collection.ts +7 -2
  179. package/src/operations/delete.ts +4 -3
  180. package/src/operations/drop.ts +1 -1
  181. package/src/operations/execute_operation.ts +29 -10
  182. package/src/operations/find.ts +13 -14
  183. package/src/operations/get_more.ts +9 -1
  184. package/src/operations/indexes.ts +103 -176
  185. package/src/operations/insert.ts +2 -2
  186. package/src/operations/kill_cursors.ts +3 -2
  187. package/src/operations/list_collections.ts +5 -1
  188. package/src/operations/list_databases.ts +1 -1
  189. package/src/operations/operation.ts +3 -0
  190. package/src/operations/run_command.ts +6 -4
  191. package/src/operations/search_indexes/create.ts +4 -1
  192. package/src/operations/stats.ts +1 -1
  193. package/src/operations/update.ts +7 -7
  194. package/src/sdam/common.ts +8 -2
  195. package/src/sdam/monitor.ts +178 -61
  196. package/src/sdam/server.ts +27 -20
  197. package/src/sdam/server_description.ts +8 -3
  198. package/src/sdam/server_selection.ts +2 -3
  199. package/src/sdam/srv_polling.ts +3 -2
  200. package/src/sdam/topology.ts +114 -117
  201. package/src/sdam/topology_description.ts +14 -4
  202. package/src/sessions.ts +168 -148
  203. package/src/timeout.ts +96 -0
  204. package/src/utils.ts +85 -32
  205. package/lib/operations/common_functions.js +0 -38
  206. package/lib/operations/common_functions.js.map +0 -1
  207. package/src/operations/common_functions.ts +0 -79
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assertUninitialized = exports.AbstractCursor = exports.CURSOR_FLAGS = void 0;
4
4
  const stream_1 = require("stream");
5
5
  const bson_1 = require("../bson");
6
+ const responses_1 = require("../cmap/wire_protocol/responses");
6
7
  const error_1 = require("../error");
7
8
  const mongo_types_1 = require("../mongo_types");
8
9
  const execute_operation_1 = require("../operations/execute_operation");
@@ -66,6 +67,7 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
66
67
  : read_preference_1.ReadPreference.primary,
67
68
  ...(0, bson_1.pluckBSONSerializeOptions)(options)
68
69
  };
70
+ this[kOptions].timeoutMS = options.timeoutMS;
69
71
  const readConcern = read_concern_1.ReadConcern.fromOptions(options);
70
72
  if (readConcern) {
71
73
  this[kOptions].readConcern = readConcern;
@@ -144,7 +146,7 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
144
146
  const bufferedDocs = [];
145
147
  const documentsToRead = Math.min(number ?? this[kDocuments].length, this[kDocuments].length);
146
148
  for (let count = 0; count < documentsToRead; count++) {
147
- const document = this[kDocuments].shift();
149
+ const document = this[kDocuments].shift(this[kOptions]);
148
150
  if (document != null) {
149
151
  bufferedDocs.push(document);
150
152
  }
@@ -164,7 +166,12 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
164
166
  if (document === null) {
165
167
  if (!this.closed) {
166
168
  const message = 'Cursor returned a `null` document, but the cursor is not exhausted. Mapping documents to `null` is not supported in the cursor transform.';
167
- await cleanupCursor(this, { needsToEmitClosed: true }).catch(() => null);
169
+ try {
170
+ await cleanupCursor(this, { needsToEmitClosed: true });
171
+ }
172
+ catch (error) {
173
+ (0, utils_1.squashError)(error);
174
+ }
168
175
  throw new error_1.MongoAPIError(message);
169
176
  }
170
177
  break;
@@ -180,7 +187,12 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
180
187
  // Only close the cursor if it has not already been closed. This finally clause handles
181
188
  // the case when a user would break out of a for await of loop early.
182
189
  if (!this.closed) {
183
- await this.close().catch(() => null);
190
+ try {
191
+ await this.close();
192
+ }
193
+ catch (error) {
194
+ (0, utils_1.squashError)(error);
195
+ }
184
196
  }
185
197
  }
186
198
  }
@@ -215,19 +227,14 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
215
227
  if (this[kDocuments].length !== 0) {
216
228
  return true;
217
229
  }
218
- const doc = await next(this, { blocking: true, transform: false });
219
- if (doc) {
220
- this[kDocuments].unshift(doc);
221
- return true;
222
- }
223
- return false;
230
+ return await next(this, { blocking: true, transform: false, shift: false });
224
231
  }
225
232
  /** Get the next available document from the cursor, returns null if no more documents are available. */
226
233
  async next() {
227
234
  if (this[kId] === bson_1.Long.ZERO) {
228
235
  throw new error_1.MongoCursorExhaustedError();
229
236
  }
230
- return next(this, { blocking: true, transform: true });
237
+ return await next(this, { blocking: true, transform: true, shift: true });
231
238
  }
232
239
  /**
233
240
  * Try to get the next available document from the cursor or `null` if an empty batch is returned
@@ -236,7 +243,7 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
236
243
  if (this[kId] === bson_1.Long.ZERO) {
237
244
  throw new error_1.MongoCursorExhaustedError();
238
245
  }
239
- return next(this, { blocking: false, transform: true });
246
+ return await next(this, { blocking: false, transform: true, shift: true });
240
247
  }
241
248
  /**
242
249
  * Iterates over all the documents for this cursor using the iterator, callback pattern.
@@ -426,21 +433,23 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
426
433
  // We only want to end this session if we created it, and it hasn't ended yet
427
434
  if (session.explicit === false) {
428
435
  if (!session.hasEnded) {
429
- session.endSession().catch(() => null);
436
+ // eslint-disable-next-line github/no-then
437
+ session.endSession().then(undefined, utils_1.squashError);
430
438
  }
431
439
  this[kSession] = this.client.startSession({ owner: this, explicit: false });
432
440
  }
433
441
  }
434
442
  }
435
443
  /** @internal */
436
- async getMore(batchSize) {
444
+ async getMore(batchSize, useCursorResponse = false) {
437
445
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
438
446
  const getMoreOperation = new get_more_1.GetMoreOperation(this[kNamespace], this[kId], this[kServer], {
439
447
  ...this[kOptions],
440
448
  session: this[kSession],
441
- batchSize
449
+ batchSize,
450
+ useCursorResponse
442
451
  });
443
- return (0, execute_operation_1.executeOperation)(this[kClient], getMoreOperation);
452
+ return await (0, execute_operation_1.executeOperation)(this[kClient], getMoreOperation);
444
453
  }
445
454
  /**
446
455
  * @internal
@@ -454,7 +463,13 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
454
463
  const state = await this._initialize(this[kSession]);
455
464
  const response = state.response;
456
465
  this[kServer] = state.server;
457
- if (response.cursor) {
466
+ if (responses_1.CursorResponse.is(response)) {
467
+ this[kId] = response.id;
468
+ if (response.ns)
469
+ this[kNamespace] = response.ns;
470
+ this[kDocuments] = response;
471
+ }
472
+ else if (response.cursor) {
458
473
  // TODO(NODE-2674): Preserve int64 sent from MongoDB
459
474
  this[kId] =
460
475
  typeof response.cursor.id === 'number'
@@ -493,19 +508,10 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
493
508
  /** @event */
494
509
  AbstractCursor.CLOSE = 'close';
495
510
  exports.AbstractCursor = AbstractCursor;
496
- /**
497
- * @param cursor - the cursor on which to call `next`
498
- * @param blocking - a boolean indicating whether or not the cursor should `block` until data
499
- * is available. Generally, this flag is set to `false` because if the getMore returns no documents,
500
- * the cursor has been exhausted. In certain scenarios (ChangeStreams, tailable await cursors and
501
- * `tryNext`, for example) blocking is necessary because a getMore returning no documents does
502
- * not indicate the end of the cursor.
503
- * @param transform - if true, the cursor's transform function is applied to the result document (if the transform exists)
504
- * @returns the next document in the cursor, or `null`. When `blocking` is `true`, a `null` document means
505
- * the cursor has been exhausted. Otherwise, it means that there is no document available in the cursor's buffer.
506
- */
507
- async function next(cursor, { blocking, transform }) {
511
+ async function next(cursor, { blocking, transform, shift }) {
508
512
  if (cursor.closed) {
513
+ if (!shift)
514
+ return false;
509
515
  return null;
510
516
  }
511
517
  do {
@@ -514,15 +520,21 @@ async function next(cursor, { blocking, transform }) {
514
520
  await cursor[kInit]();
515
521
  }
516
522
  if (cursor[kDocuments].length !== 0) {
517
- const doc = cursor[kDocuments].shift();
523
+ if (!shift)
524
+ return true;
525
+ const doc = cursor[kDocuments].shift(cursor[kOptions]);
518
526
  if (doc != null && transform && cursor[kTransform]) {
519
527
  try {
520
528
  return cursor[kTransform](doc);
521
529
  }
522
530
  catch (error) {
523
- // `cleanupCursorAsync` should never throw, but if it does we want to throw the original
524
- // error instead.
525
- await cleanupCursor(cursor, { error, needsToEmitClosed: true }).catch(() => null);
531
+ try {
532
+ await cleanupCursor(cursor, { error, needsToEmitClosed: true });
533
+ }
534
+ catch (error) {
535
+ // `cleanupCursor` should never throw, squash and throw the original error
536
+ (0, utils_1.squashError)(error);
537
+ }
526
538
  throw error;
527
539
  }
528
540
  }
@@ -530,16 +542,22 @@ async function next(cursor, { blocking, transform }) {
530
542
  }
531
543
  if (cursor.isDead) {
532
544
  // if the cursor is dead, we clean it up
533
- // cleanupCursorAsync should never throw, but if it does it indicates a bug in the driver
545
+ // cleanupCursor should never throw, but if it does it indicates a bug in the driver
534
546
  // and we should surface the error
535
547
  await cleanupCursor(cursor, {});
548
+ if (!shift)
549
+ return false;
536
550
  return null;
537
551
  }
538
552
  // otherwise need to call getMore
539
553
  const batchSize = cursor[kOptions].batchSize || 1000;
540
554
  try {
541
555
  const response = await cursor.getMore(batchSize);
542
- if (response) {
556
+ if (responses_1.CursorResponse.is(response)) {
557
+ cursor[kId] = response.id;
558
+ cursor[kDocuments] = response;
559
+ }
560
+ else if (response) {
543
561
  const cursorId = typeof response.cursor.id === 'number'
544
562
  ? bson_1.Long.fromNumber(response.cursor.id)
545
563
  : typeof response.cursor.id === 'bigint'
@@ -550,9 +568,13 @@ async function next(cursor, { blocking, transform }) {
550
568
  }
551
569
  }
552
570
  catch (error) {
553
- // `cleanupCursorAsync` should never throw, but if it does we want to throw the original
554
- // error instead.
555
- await cleanupCursor(cursor, { error }).catch(() => null);
571
+ try {
572
+ await cleanupCursor(cursor, { error, needsToEmitClosed: true });
573
+ }
574
+ catch (error) {
575
+ // `cleanupCursor` should never throw, squash and throw the original error
576
+ (0, utils_1.squashError)(error);
577
+ }
556
578
  throw error;
557
579
  }
558
580
  if (cursor.isDead) {
@@ -566,9 +588,13 @@ async function next(cursor, { blocking, transform }) {
566
588
  await cleanupCursor(cursor, {});
567
589
  }
568
590
  if (cursor[kDocuments].length === 0 && blocking === false) {
591
+ if (!shift)
592
+ return false;
569
593
  return null;
570
594
  }
571
595
  } while (!cursor.isDead || cursor[kDocuments].length !== 0);
596
+ if (!shift)
597
+ return false;
572
598
  return null;
573
599
  }
574
600
  async function cleanupCursor(cursor, options) {
@@ -583,7 +609,7 @@ async function cleanupCursor(cursor, options) {
583
609
  const needsToEmitClosed = options?.needsToEmitClosed ?? cursor[kDocuments].length === 0;
584
610
  if (error) {
585
611
  if (cursor.loadBalanced && error instanceof error_1.MongoNetworkError) {
586
- return completeCleanup();
612
+ return await completeCleanup();
587
613
  }
588
614
  }
589
615
  if (cursorId == null || server == null || cursorId.isZero() || cursorNs == null) {
@@ -623,10 +649,13 @@ async function cleanupCursor(cursor, options) {
623
649
  }
624
650
  cursor[kKilled] = true;
625
651
  if (session.hasEnded) {
626
- return completeCleanup();
652
+ return await completeCleanup();
627
653
  }
628
654
  try {
629
- await (0, execute_operation_1.executeOperation)(cursor[kClient], new kill_cursors_1.KillCursorsOperation(cursorId, cursorNs, server, { session })).catch(() => null);
655
+ await (0, execute_operation_1.executeOperation)(cursor[kClient], new kill_cursors_1.KillCursorsOperation(cursorId, cursorNs, server, { session }));
656
+ }
657
+ catch (error) {
658
+ (0, utils_1.squashError)(error);
630
659
  }
631
660
  finally {
632
661
  await completeCleanup();
@@ -657,15 +686,18 @@ class ReadableCursorStream extends stream_1.Readable {
657
686
  }
658
687
  }
659
688
  _destroy(error, callback) {
689
+ // eslint-disable-next-line github/no-then
660
690
  this._cursor.close().then(() => callback(error), closeError => callback(closeError));
661
691
  }
662
692
  _readNext() {
663
- next(this._cursor, { blocking: true, transform: true }).then(result => {
693
+ // eslint-disable-next-line github/no-then
694
+ next(this._cursor, { blocking: true, transform: true, shift: true }).then(result => {
664
695
  if (result == null) {
665
696
  this.push(null);
666
697
  }
667
698
  else if (this.destroyed) {
668
- this._cursor.close().catch(() => null);
699
+ // eslint-disable-next-line github/no-then
700
+ this._cursor.close().then(undefined, utils_1.squashError);
669
701
  }
670
702
  else {
671
703
  if (this.push(result)) {
@@ -679,7 +711,8 @@ class ReadableCursorStream extends stream_1.Readable {
679
711
  // a client during iteration. Alternatively, we could do the "right" thing and
680
712
  // propagate the error message by removing this special case.
681
713
  if (err.message.match(/server is closed/)) {
682
- this._cursor.close().catch(() => null);
714
+ // eslint-disable-next-line github/no-then
715
+ this._cursor.close().then(undefined, utils_1.squashError);
683
716
  return this.push(null);
684
717
  }
685
718
  // NOTE: This is also perhaps questionable. The rationale here is that these errors tend
@@ -1 +1 @@
1
- {"version":3,"file":"abstract_cursor.js","sourceRoot":"","sources":["../../src/cursor/abstract_cursor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abstract_cursor.js","sourceRoot":"","sources":["../../src/cursor/abstract_cursor.ts"],"names":[],"mappings":"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"}
@@ -49,34 +49,31 @@ class AggregationCursor extends abstract_cursor_1.AbstractCursor {
49
49
  }
50
50
  /** Execute the explain for the cursor */
51
51
  async explain(verbosity) {
52
- return (0, execute_operation_1.executeOperation)(this.client, new aggregate_1.AggregateOperation(this.namespace, this[kPipeline], {
52
+ return await (0, execute_operation_1.executeOperation)(this.client, new aggregate_1.AggregateOperation(this.namespace, this[kPipeline], {
53
53
  ...this[kOptions],
54
54
  ...this.cursorOptions,
55
55
  explain: verbosity ?? true
56
56
  }));
57
57
  }
58
- group($group) {
58
+ addStage(stage) {
59
59
  (0, abstract_cursor_1.assertUninitialized)(this);
60
- this[kPipeline].push({ $group });
60
+ this[kPipeline].push(stage);
61
61
  return this;
62
62
  }
63
+ group($group) {
64
+ return this.addStage({ $group });
65
+ }
63
66
  /** Add a limit stage to the aggregation pipeline */
64
67
  limit($limit) {
65
- (0, abstract_cursor_1.assertUninitialized)(this);
66
- this[kPipeline].push({ $limit });
67
- return this;
68
+ return this.addStage({ $limit });
68
69
  }
69
70
  /** Add a match stage to the aggregation pipeline */
70
71
  match($match) {
71
- (0, abstract_cursor_1.assertUninitialized)(this);
72
- this[kPipeline].push({ $match });
73
- return this;
72
+ return this.addStage({ $match });
74
73
  }
75
74
  /** Add an out stage to the aggregation pipeline */
76
75
  out($out) {
77
- (0, abstract_cursor_1.assertUninitialized)(this);
78
- this[kPipeline].push({ $out });
79
- return this;
76
+ return this.addStage({ $out });
80
77
  }
81
78
  /**
82
79
  * Add a project stage to the aggregation pipeline
@@ -120,45 +117,31 @@ class AggregationCursor extends abstract_cursor_1.AbstractCursor {
120
117
  * ```
121
118
  */
122
119
  project($project) {
123
- (0, abstract_cursor_1.assertUninitialized)(this);
124
- this[kPipeline].push({ $project });
125
- return this;
120
+ return this.addStage({ $project });
126
121
  }
127
122
  /** Add a lookup stage to the aggregation pipeline */
128
123
  lookup($lookup) {
129
- (0, abstract_cursor_1.assertUninitialized)(this);
130
- this[kPipeline].push({ $lookup });
131
- return this;
124
+ return this.addStage({ $lookup });
132
125
  }
133
126
  /** Add a redact stage to the aggregation pipeline */
134
127
  redact($redact) {
135
- (0, abstract_cursor_1.assertUninitialized)(this);
136
- this[kPipeline].push({ $redact });
137
- return this;
128
+ return this.addStage({ $redact });
138
129
  }
139
130
  /** Add a skip stage to the aggregation pipeline */
140
131
  skip($skip) {
141
- (0, abstract_cursor_1.assertUninitialized)(this);
142
- this[kPipeline].push({ $skip });
143
- return this;
132
+ return this.addStage({ $skip });
144
133
  }
145
134
  /** Add a sort stage to the aggregation pipeline */
146
135
  sort($sort) {
147
- (0, abstract_cursor_1.assertUninitialized)(this);
148
- this[kPipeline].push({ $sort });
149
- return this;
136
+ return this.addStage({ $sort });
150
137
  }
151
138
  /** Add a unwind stage to the aggregation pipeline */
152
139
  unwind($unwind) {
153
- (0, abstract_cursor_1.assertUninitialized)(this);
154
- this[kPipeline].push({ $unwind });
155
- return this;
140
+ return this.addStage({ $unwind });
156
141
  }
157
142
  /** Add a geoNear stage to the aggregation pipeline */
158
143
  geoNear($geoNear) {
159
- (0, abstract_cursor_1.assertUninitialized)(this);
160
- this[kPipeline].push({ $geoNear });
161
- return this;
144
+ return this.addStage({ $geoNear });
162
145
  }
163
146
  }
164
147
  exports.AggregationCursor = AggregationCursor;
@@ -1 +1 @@
1
- {"version":3,"file":"aggregation_cursor.js","sourceRoot":"","sources":["../../src/cursor/aggregation_cursor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregation_cursor.js","sourceRoot":"","sources":["../../src/cursor/aggregation_cursor.ts"],"names":[],"mappings":";;;AAGA,uDAAoF;AACpF,uEAAyF;AAIzF,oCAAwC;AAExC,uDAAwE;AAKxE,gBAAgB;AAChB,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACrC,gBAAgB;AAChB,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAEnC;;;;;;GAMG;AACH,MAAa,iBAAiC,SAAQ,gCAAuB;IAM3E,gBAAgB;IAChB,YACE,MAAmB,EACnB,SAA2B,EAC3B,WAAuB,EAAE,EACzB,UAA4B,EAAE;QAE9B,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAElC,IAAI,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC;IAED,KAAK;QACH,MAAM,aAAa,GAAG,IAAA,oBAAY,EAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvD,OAAO,aAAa,CAAC,OAAO,CAAC;QAC7B,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;YACzE,GAAG,aAAa;SACjB,CAAC,CAAC;IACL,CAAC;IAEQ,GAAG,CAAI,SAA8B;QAC5C,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAyB,CAAC;IACtD,CAAC;IAED,gBAAgB;IAChB,KAAK,CAAC,WAAW,CAAC,OAAsB;QACtC,MAAM,kBAAkB,GAAG,IAAI,8BAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;YACjF,GAAG,IAAI,CAAC,QAAQ,CAAC;YACjB,GAAG,IAAI,CAAC,aAAa;YACrB,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,IAAA,oCAAgB,EAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QAEzE,kBAAkB;QAClB,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAClE,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,OAAO,CAAC,SAAgC;QAC5C,OAAO,MAAM,IAAA,oCAAgB,EAC3B,IAAI,CAAC,MAAM,EACX,IAAI,8BAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;YACtD,GAAG,IAAI,CAAC,QAAQ,CAAC;YACjB,GAAG,IAAI,CAAC,aAAa;YACrB,OAAO,EAAE,SAAS,IAAI,IAAI;SAC3B,CAAC,CACH,CAAC;IACJ,CAAC;IAgBD,QAAQ,CAAe,KAAe;QACpC,IAAA,qCAAmB,EAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,OAAO,IAAuC,CAAC;IACjD,CAAC;IAID,KAAK,CAAC,MAAgB;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,oDAAoD;IACpD,KAAK,CAAC,MAAc;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,oDAAoD;IACpD,KAAK,CAAC,MAAgB;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,mDAAmD;IACnD,GAAG,CAAC,IAA2C;QAC7C,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,OAAO,CAAgC,QAAkB;QACvD,OAAO,IAAI,CAAC,QAAQ,CAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,qDAAqD;IACrD,MAAM,CAAC,OAAiB;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,qDAAqD;IACrD,MAAM,CAAC,OAAiB;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,mDAAmD;IACnD,IAAI,CAAC,KAAa;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,mDAAmD;IACnD,IAAI,CAAC,KAAW;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,qDAAqD;IACrD,MAAM,CAAC,OAA0B;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,sDAAsD;IACtD,OAAO,CAAC,QAAkB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrC,CAAC;CACF;AAhLD,8CAgLC"}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
+ var _a;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.FindCursor = exports.FLAGS = void 0;
4
- const bson_1 = require("../bson");
5
+ const responses_1 = require("../cmap/wire_protocol/responses");
5
6
  const error_1 = require("../error");
6
7
  const count_1 = require("../operations/count");
7
8
  const execute_operation_1 = require("../operations/execute_operation");
@@ -29,6 +30,8 @@ class FindCursor extends abstract_cursor_1.AbstractCursor {
29
30
  /** @internal */
30
31
  constructor(client, namespace, filter = {}, options = {}) {
31
32
  super(client, namespace, options);
33
+ /** @internal */
34
+ this[_a] = 0;
32
35
  this[kFilter] = filter;
33
36
  this[kBuiltOptions] = options;
34
37
  if (options.sort != null) {
@@ -47,14 +50,20 @@ class FindCursor extends abstract_cursor_1.AbstractCursor {
47
50
  }
48
51
  /** @internal */
49
52
  async _initialize(session) {
50
- const findOperation = new find_1.FindOperation(undefined, this.namespace, this[kFilter], {
53
+ const findOperation = new find_1.FindOperation(this.namespace, this[kFilter], {
51
54
  ...this[kBuiltOptions],
52
55
  ...this.cursorOptions,
53
56
  session
54
57
  });
55
58
  const response = await (0, execute_operation_1.executeOperation)(this.client, findOperation);
56
59
  // the response is not a cursor when `explain` is enabled
57
- this[kNumReturned] = response.cursor?.firstBatch?.length;
60
+ if (responses_1.CursorResponse.is(response)) {
61
+ this[kNumReturned] = response.batchSize;
62
+ }
63
+ else {
64
+ // Can be an explain response, hence the ?. on everything
65
+ this[kNumReturned] = this[kNumReturned] + (response?.cursor?.firstBatch?.length ?? 0);
66
+ }
58
67
  // TODO: NODE-2882
59
68
  return { server: findOperation.server, session, response };
60
69
  }
@@ -67,22 +76,30 @@ class FindCursor extends abstract_cursor_1.AbstractCursor {
67
76
  batchSize =
68
77
  limit && limit > 0 && numReturned + batchSize > limit ? limit - numReturned : batchSize;
69
78
  if (batchSize <= 0) {
70
- // this is an optimization for the special case of a limit for a find command to avoid an
71
- // extra getMore when the limit has been reached and the limit is a multiple of the batchSize.
72
- // This is a consequence of the new query engine in 5.0 having no knowledge of the limit as it
73
- // produces results for the find command. Once a batch is filled up, it is returned and only
74
- // on the subsequent getMore will the query framework consider the limit, determine the cursor
75
- // is exhausted and return a cursorId of zero.
76
- // instead, if we determine there are no more documents to request from the server, we preemptively
77
- // close the cursor
78
- await this.close().catch(() => null);
79
- return { cursor: { id: bson_1.Long.ZERO, nextBatch: [] } };
79
+ try {
80
+ await this.close();
81
+ }
82
+ catch (error) {
83
+ (0, utils_1.squashError)(error);
84
+ // this is an optimization for the special case of a limit for a find command to avoid an
85
+ // extra getMore when the limit has been reached and the limit is a multiple of the batchSize.
86
+ // This is a consequence of the new query engine in 5.0 having no knowledge of the limit as it
87
+ // produces results for the find command. Once a batch is filled up, it is returned and only
88
+ // on the subsequent getMore will the query framework consider the limit, determine the cursor
89
+ // is exhausted and return a cursorId of zero.
90
+ // instead, if we determine there are no more documents to request from the server, we preemptively
91
+ // close the cursor
92
+ }
93
+ return responses_1.CursorResponse.emptyGetMore;
80
94
  }
81
95
  }
82
- const response = await super.getMore(batchSize);
96
+ const response = await super.getMore(batchSize, false);
83
97
  // TODO: wrap this in some logic to prevent it from happening if we don't need this support
84
- if (response) {
85
- this[kNumReturned] = this[kNumReturned] + response.cursor.nextBatch.length;
98
+ if (responses_1.CursorResponse.is(response)) {
99
+ this[kNumReturned] = this[kNumReturned] + response.batchSize;
100
+ }
101
+ else {
102
+ this[kNumReturned] = this[kNumReturned] + (response?.cursor?.nextBatch?.length ?? 0);
86
103
  }
87
104
  return response;
88
105
  }
@@ -95,7 +112,7 @@ class FindCursor extends abstract_cursor_1.AbstractCursor {
95
112
  if (typeof options === 'boolean') {
96
113
  throw new error_1.MongoInvalidArgumentError('Invalid first parameter to count');
97
114
  }
98
- return (0, execute_operation_1.executeOperation)(this.client, new count_1.CountOperation(this.namespace, this[kFilter], {
115
+ return await (0, execute_operation_1.executeOperation)(this.client, new count_1.CountOperation(this.namespace, this[kFilter], {
99
116
  ...this[kBuiltOptions],
100
117
  ...this.cursorOptions,
101
118
  ...options
@@ -103,7 +120,7 @@ class FindCursor extends abstract_cursor_1.AbstractCursor {
103
120
  }
104
121
  /** Execute the explain for the cursor */
105
122
  async explain(verbosity) {
106
- return (0, execute_operation_1.executeOperation)(this.client, new find_1.FindOperation(undefined, this.namespace, this[kFilter], {
123
+ return await (0, execute_operation_1.executeOperation)(this.client, new find_1.FindOperation(this.namespace, this[kFilter], {
107
124
  ...this[kBuiltOptions],
108
125
  ...this.cursorOptions,
109
126
  explain: verbosity ?? true
@@ -375,4 +392,5 @@ class FindCursor extends abstract_cursor_1.AbstractCursor {
375
392
  }
376
393
  }
377
394
  exports.FindCursor = FindCursor;
395
+ _a = kNumReturned;
378
396
  //# sourceMappingURL=find_cursor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"find_cursor.js","sourceRoot":"","sources":["../../src/cursor/find_cursor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find_cursor.js","sourceRoot":"","sources":["../../src/cursor/find_cursor.ts"],"names":[],"mappings":"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"}