mongodb 6.5.0-dev.20240426.sha.6d8ad33 → 6.5.0-dev.20240502.sha.9d73f45

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 (36) hide show
  1. package/lib/cmap/connection.js +8 -4
  2. package/lib/cmap/connection.js.map +1 -1
  3. package/lib/cmap/wire_protocol/on_demand/document.js +27 -16
  4. package/lib/cmap/wire_protocol/on_demand/document.js.map +1 -1
  5. package/lib/cmap/wire_protocol/responses.js +106 -10
  6. package/lib/cmap/wire_protocol/responses.js.map +1 -1
  7. package/lib/cursor/abstract_cursor.js +33 -27
  8. package/lib/cursor/abstract_cursor.js.map +1 -1
  9. package/lib/cursor/find_cursor.js +14 -8
  10. package/lib/cursor/find_cursor.js.map +1 -1
  11. package/lib/cursor/run_command_cursor.js +2 -1
  12. package/lib/cursor/run_command_cursor.js.map +1 -1
  13. package/lib/index.js.map +1 -1
  14. package/lib/operations/execute_operation.js.map +1 -1
  15. package/lib/operations/find.js +4 -3
  16. package/lib/operations/find.js.map +1 -1
  17. package/lib/operations/get_more.js +2 -1
  18. package/lib/operations/get_more.js.map +1 -1
  19. package/lib/sdam/server.js +3 -7
  20. package/lib/sdam/server.js.map +1 -1
  21. package/lib/utils.js +13 -2
  22. package/lib/utils.js.map +1 -1
  23. package/mongodb.d.ts +2 -0
  24. package/package.json +1 -1
  25. package/src/cmap/connection.ts +14 -5
  26. package/src/cmap/wire_protocol/on_demand/document.ts +36 -21
  27. package/src/cmap/wire_protocol/responses.ts +139 -11
  28. package/src/cursor/abstract_cursor.ts +61 -21
  29. package/src/cursor/find_cursor.ts +12 -9
  30. package/src/cursor/run_command_cursor.ts +2 -1
  31. package/src/index.ts +5 -1
  32. package/src/operations/execute_operation.ts +2 -1
  33. package/src/operations/find.ts +14 -14
  34. package/src/operations/get_more.ts +9 -1
  35. package/src/sdam/server.ts +22 -7
  36. package/src/utils.ts +13 -0
@@ -239,7 +239,11 @@ class Connection extends mongo_types_1.TypedEventEmitter {
239
239
  for await (const response of this.readMany()) {
240
240
  this.socket.setTimeout(0);
241
241
  const bson = response.parse();
242
- const document = new (responseType ?? responses_1.MongoDBResponse)(bson, 0, false);
242
+ const document = responseType == null
243
+ ? new responses_1.MongoDBResponse(bson)
244
+ : (0, responses_1.isErrorResponse)(bson)
245
+ ? new responses_1.MongoDBResponse(bson)
246
+ : new responseType(bson);
243
247
  yield document;
244
248
  this.throwIfAborted();
245
249
  if (typeof options.socketTimeoutMS === 'number') {
@@ -432,7 +436,7 @@ class CryptoConnection extends Connection {
432
436
  super(stream, options);
433
437
  this.autoEncrypter = options.autoEncrypter;
434
438
  }
435
- async command(ns, cmd, options, responseType) {
439
+ async command(ns, cmd, options, _responseType) {
436
440
  const { autoEncrypter } = this;
437
441
  if (!autoEncrypter) {
438
442
  // TODO(NODE-6065): throw a MongoRuntimeError in Node V7
@@ -444,7 +448,7 @@ class CryptoConnection extends Connection {
444
448
  const serverWireVersion = (0, utils_1.maxWireVersion)(this);
445
449
  if (serverWireVersion === 0) {
446
450
  // This means the initial handshake hasn't happened yet
447
- return await super.command(ns, cmd, options, responseType);
451
+ return await super.command(ns, cmd, options, undefined);
448
452
  }
449
453
  if (serverWireVersion < 8) {
450
454
  throw new error_1.MongoCompatibilityError('Auto-encryption requires a minimum MongoDB version of 4.2');
@@ -470,7 +474,7 @@ class CryptoConnection extends Connection {
470
474
  encrypted.indexes[offset].key = index;
471
475
  }
472
476
  }
473
- const response = await super.command(ns, encrypted, options, responseType);
477
+ const response = await super.command(ns, encrypted, options, undefined);
474
478
  return await autoEncrypter.decrypt(response, options);
475
479
  }
476
480
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/cmap/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/cmap/connection.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,23 @@ class OnDemandDocument {
57
57
  if (cachedElement != null) {
58
58
  return cachedElement;
59
59
  }
60
+ if (typeof name === 'number') {
61
+ if (this.isArray) {
62
+ if (name < this.elements.length) {
63
+ const element = this.elements[name];
64
+ const cachedElement = { element, value: undefined };
65
+ this.cache[name] = cachedElement;
66
+ this.indexFound[name] = true;
67
+ return cachedElement;
68
+ }
69
+ else {
70
+ return null;
71
+ }
72
+ }
73
+ else {
74
+ return null;
75
+ }
76
+ }
60
77
  for (let index = 0; index < this.elements.length; index++) {
61
78
  const element = this.elements[index];
62
79
  // skip this element if it has already been associated with a name
@@ -121,6 +138,12 @@ class OnDemandDocument {
121
138
  throw new bson_1.BSONError(`Unsupported BSON type: ${as}`);
122
139
  }
123
140
  }
141
+ /**
142
+ * Returns the number of elements in this BSON document
143
+ */
144
+ size() {
145
+ return this.elements.length;
146
+ }
124
147
  /**
125
148
  * Checks for the existence of an element by name.
126
149
  *
@@ -185,22 +208,10 @@ class OnDemandDocument {
185
208
  allowObjectSmallerThanBufferSize: true
186
209
  });
187
210
  }
188
- /**
189
- * Iterates through the elements of a document reviving them using the `as` BSONType.
190
- *
191
- * @param as - The type to revive all elements as
192
- */
193
- *valuesAs(as) {
194
- if (!this.isArray) {
195
- throw new bson_1.BSONError('Unexpected conversion of non-array value to array');
196
- }
197
- let counter = 0;
198
- for (const element of this.elements) {
199
- const value = this.toJSValue(element, as);
200
- this.cache[counter] = { element, value };
201
- yield value;
202
- counter += 1;
203
- }
211
+ /** Returns this document's bytes only */
212
+ toBytes() {
213
+ const size = (0, bson_1.getInt32LE)(this.bson, this.offset);
214
+ return this.bson.subarray(this.offset, this.offset + size);
204
215
  }
205
216
  }
206
217
  exports.OnDemandDocument = OnDemandDocument;
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../../../../src/cmap/wire_protocol/on_demand/document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../../../src/cmap/wire_protocol/on_demand/document.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,49 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MongoDBResponse = void 0;
3
+ exports.CursorResponse = exports.MongoDBResponse = exports.isErrorResponse = void 0;
4
4
  const bson_1 = require("../../bson");
5
+ const error_1 = require("../../error");
6
+ const utils_1 = require("../../utils");
5
7
  const document_1 = require("./on_demand/document");
8
+ /**
9
+ * Accepts a BSON payload and checks for na "ok: 0" element.
10
+ * This utility is intended to prevent calling response class constructors
11
+ * that expect the result to be a success and demand certain properties to exist.
12
+ *
13
+ * For example, a cursor response always expects a cursor embedded document.
14
+ * In order to write the class such that the properties reflect that assertion (non-null)
15
+ * we cannot invoke the subclass constructor if the BSON represents an error.
16
+ *
17
+ * @param bytes - BSON document returned from the server
18
+ */
19
+ function isErrorResponse(bson) {
20
+ const elements = (0, bson_1.parseToElementsToArray)(bson, 0);
21
+ for (let eIdx = 0; eIdx < elements.length; eIdx++) {
22
+ const element = elements[eIdx];
23
+ if (element[2 /* BSONElementOffset.nameLength */] === 2) {
24
+ const nameOffset = element[1 /* BSONElementOffset.nameOffset */];
25
+ // 111 == "o", 107 == "k"
26
+ if (bson[nameOffset] === 111 && bson[nameOffset + 1] === 107) {
27
+ const valueOffset = element[3 /* BSONElementOffset.offset */];
28
+ const valueLength = element[4 /* BSONElementOffset.length */];
29
+ // If any byte in the length of the ok number (works for any type) is non zero,
30
+ // then it is considered "ok: 1"
31
+ for (let i = valueOffset; i < valueOffset + valueLength; i++) {
32
+ if (bson[i] !== 0x00)
33
+ return false;
34
+ }
35
+ return true;
36
+ }
37
+ }
38
+ }
39
+ return true;
40
+ }
41
+ exports.isErrorResponse = isErrorResponse;
6
42
  /** @internal */
7
43
  class MongoDBResponse extends document_1.OnDemandDocument {
44
+ static is(value) {
45
+ return value instanceof MongoDBResponse;
46
+ }
8
47
  /** Indicates this document is a server error */
9
48
  get isError() {
10
49
  let isError = this.ok === 0;
@@ -62,20 +101,21 @@ class MongoDBResponse extends document_1.OnDemandDocument {
62
101
  }
63
102
  return this.clusterTime ?? null;
64
103
  }
65
- toObject(options = {}) {
104
+ toObject(options) {
66
105
  const exactBSONOptions = {
67
- useBigInt64: options.useBigInt64,
68
- promoteLongs: options.promoteLongs,
69
- promoteValues: options.promoteValues,
70
- promoteBuffers: options.promoteBuffers,
71
- bsonRegExp: options.bsonRegExp,
72
- raw: options.raw ?? false,
73
- fieldsAsRaw: options.fieldsAsRaw ?? {},
106
+ useBigInt64: options?.useBigInt64,
107
+ promoteLongs: options?.promoteLongs,
108
+ promoteValues: options?.promoteValues,
109
+ promoteBuffers: options?.promoteBuffers,
110
+ bsonRegExp: options?.bsonRegExp,
111
+ raw: options?.raw ?? false,
112
+ fieldsAsRaw: options?.fieldsAsRaw ?? {},
74
113
  validation: this.parseBsonSerializationOptions(options)
75
114
  };
76
115
  return super.toObject(exactBSONOptions);
77
116
  }
78
- parseBsonSerializationOptions({ enableUtf8Validation }) {
117
+ parseBsonSerializationOptions(options) {
118
+ const enableUtf8Validation = options?.enableUtf8Validation;
79
119
  if (enableUtf8Validation === false) {
80
120
  return { utf8: false };
81
121
  }
@@ -85,4 +125,60 @@ class MongoDBResponse extends document_1.OnDemandDocument {
85
125
  // {ok:1}
86
126
  MongoDBResponse.empty = new MongoDBResponse(new Uint8Array([13, 0, 0, 0, 16, 111, 107, 0, 1, 0, 0, 0, 0]));
87
127
  exports.MongoDBResponse = MongoDBResponse;
128
+ /** @internal */
129
+ class CursorResponse extends MongoDBResponse {
130
+ static is(value) {
131
+ return value instanceof CursorResponse || value === CursorResponse.emptyGetMore;
132
+ }
133
+ constructor(bytes, offset, isArray) {
134
+ super(bytes, offset, isArray);
135
+ this.ns = null;
136
+ this.batchSize = 0;
137
+ this.iterated = 0;
138
+ const cursor = this.get('cursor', bson_1.BSONType.object, true);
139
+ const id = cursor.get('id', bson_1.BSONType.long, true);
140
+ this.id = new bson_1.Long(Number(id & 0xffffffffn), Number((id >> 32n) & 0xffffffffn));
141
+ const namespace = cursor.get('ns', bson_1.BSONType.string);
142
+ if (namespace != null)
143
+ this.ns = (0, utils_1.ns)(namespace);
144
+ if (cursor.has('firstBatch'))
145
+ this.batch = cursor.get('firstBatch', bson_1.BSONType.array, true);
146
+ else if (cursor.has('nextBatch'))
147
+ this.batch = cursor.get('nextBatch', bson_1.BSONType.array, true);
148
+ else
149
+ throw new error_1.MongoUnexpectedServerResponseError('Cursor document did not contain a batch');
150
+ this.batchSize = this.batch.size();
151
+ }
152
+ get length() {
153
+ return Math.max(this.batchSize - this.iterated, 0);
154
+ }
155
+ shift(options) {
156
+ if (this.iterated >= this.batchSize) {
157
+ return null;
158
+ }
159
+ const result = this.batch.get(this.iterated, bson_1.BSONType.object, true) ?? null;
160
+ this.iterated += 1;
161
+ if (options?.raw) {
162
+ return result.toBytes();
163
+ }
164
+ else {
165
+ return result.toObject(options);
166
+ }
167
+ }
168
+ clear() {
169
+ this.iterated = this.batchSize;
170
+ }
171
+ pushMany() {
172
+ throw new Error('pushMany Unsupported method');
173
+ }
174
+ push() {
175
+ throw new Error('push Unsupported method');
176
+ }
177
+ }
178
+ /**
179
+ * This supports a feature of the FindCursor.
180
+ * It is an optimization to avoid an extra getMore when the limit has been reached
181
+ */
182
+ CursorResponse.emptyGetMore = { id: new bson_1.Long(0), length: 0, shift: () => null };
183
+ exports.CursorResponse = CursorResponse;
88
184
  //# sourceMappingURL=responses.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"responses.js","sourceRoot":"","sources":["../../../src/cmap/wire_protocol/responses.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"responses.js","sourceRoot":"","sources":["../../../src/cmap/wire_protocol/responses.ts"],"names":[],"mappings":"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"}
@@ -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");
@@ -145,7 +146,7 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
145
146
  const bufferedDocs = [];
146
147
  const documentsToRead = Math.min(number ?? this[kDocuments].length, this[kDocuments].length);
147
148
  for (let count = 0; count < documentsToRead; count++) {
148
- const document = this[kDocuments].shift();
149
+ const document = this[kDocuments].shift(this[kOptions]);
149
150
  if (document != null) {
150
151
  bufferedDocs.push(document);
151
152
  }
@@ -226,19 +227,14 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
226
227
  if (this[kDocuments].length !== 0) {
227
228
  return true;
228
229
  }
229
- const doc = await next(this, { blocking: true, transform: false });
230
- if (doc) {
231
- this[kDocuments].unshift(doc);
232
- return true;
233
- }
234
- return false;
230
+ return await next(this, { blocking: true, transform: false, shift: false });
235
231
  }
236
232
  /** Get the next available document from the cursor, returns null if no more documents are available. */
237
233
  async next() {
238
234
  if (this[kId] === bson_1.Long.ZERO) {
239
235
  throw new error_1.MongoCursorExhaustedError();
240
236
  }
241
- return await next(this, { blocking: true, transform: true });
237
+ return await next(this, { blocking: true, transform: true, shift: true });
242
238
  }
243
239
  /**
244
240
  * Try to get the next available document from the cursor or `null` if an empty batch is returned
@@ -247,7 +243,7 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
247
243
  if (this[kId] === bson_1.Long.ZERO) {
248
244
  throw new error_1.MongoCursorExhaustedError();
249
245
  }
250
- return await next(this, { blocking: false, transform: true });
246
+ return await next(this, { blocking: false, transform: true, shift: true });
251
247
  }
252
248
  /**
253
249
  * Iterates over all the documents for this cursor using the iterator, callback pattern.
@@ -445,12 +441,13 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
445
441
  }
446
442
  }
447
443
  /** @internal */
448
- async getMore(batchSize) {
444
+ async getMore(batchSize, useCursorResponse = false) {
449
445
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
450
446
  const getMoreOperation = new get_more_1.GetMoreOperation(this[kNamespace], this[kId], this[kServer], {
451
447
  ...this[kOptions],
452
448
  session: this[kSession],
453
- batchSize
449
+ batchSize,
450
+ useCursorResponse
454
451
  });
455
452
  return await (0, execute_operation_1.executeOperation)(this[kClient], getMoreOperation);
456
453
  }
@@ -466,7 +463,13 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
466
463
  const state = await this._initialize(this[kSession]);
467
464
  const response = state.response;
468
465
  this[kServer] = state.server;
469
- 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) {
470
473
  // TODO(NODE-2674): Preserve int64 sent from MongoDB
471
474
  this[kId] =
472
475
  typeof response.cursor.id === 'number'
@@ -505,19 +508,10 @@ class AbstractCursor extends mongo_types_1.TypedEventEmitter {
505
508
  /** @event */
506
509
  AbstractCursor.CLOSE = 'close';
507
510
  exports.AbstractCursor = AbstractCursor;
508
- /**
509
- * @param cursor - the cursor on which to call `next`
510
- * @param blocking - a boolean indicating whether or not the cursor should `block` until data
511
- * is available. Generally, this flag is set to `false` because if the getMore returns no documents,
512
- * the cursor has been exhausted. In certain scenarios (ChangeStreams, tailable await cursors and
513
- * `tryNext`, for example) blocking is necessary because a getMore returning no documents does
514
- * not indicate the end of the cursor.
515
- * @param transform - if true, the cursor's transform function is applied to the result document (if the transform exists)
516
- * @returns the next document in the cursor, or `null`. When `blocking` is `true`, a `null` document means
517
- * the cursor has been exhausted. Otherwise, it means that there is no document available in the cursor's buffer.
518
- */
519
- async function next(cursor, { blocking, transform }) {
511
+ async function next(cursor, { blocking, transform, shift }) {
520
512
  if (cursor.closed) {
513
+ if (!shift)
514
+ return false;
521
515
  return null;
522
516
  }
523
517
  do {
@@ -526,7 +520,9 @@ async function next(cursor, { blocking, transform }) {
526
520
  await cursor[kInit]();
527
521
  }
528
522
  if (cursor[kDocuments].length !== 0) {
529
- const doc = cursor[kDocuments].shift();
523
+ if (!shift)
524
+ return true;
525
+ const doc = cursor[kDocuments].shift(cursor[kOptions]);
530
526
  if (doc != null && transform && cursor[kTransform]) {
531
527
  try {
532
528
  return cursor[kTransform](doc);
@@ -549,13 +545,19 @@ async function next(cursor, { blocking, transform }) {
549
545
  // cleanupCursor should never throw, but if it does it indicates a bug in the driver
550
546
  // and we should surface the error
551
547
  await cleanupCursor(cursor, {});
548
+ if (!shift)
549
+ return false;
552
550
  return null;
553
551
  }
554
552
  // otherwise need to call getMore
555
553
  const batchSize = cursor[kOptions].batchSize || 1000;
556
554
  try {
557
555
  const response = await cursor.getMore(batchSize);
558
- if (response) {
556
+ if (responses_1.CursorResponse.is(response)) {
557
+ cursor[kId] = response.id;
558
+ cursor[kDocuments] = response;
559
+ }
560
+ else if (response) {
559
561
  const cursorId = typeof response.cursor.id === 'number'
560
562
  ? bson_1.Long.fromNumber(response.cursor.id)
561
563
  : typeof response.cursor.id === 'bigint'
@@ -586,9 +588,13 @@ async function next(cursor, { blocking, transform }) {
586
588
  await cleanupCursor(cursor, {});
587
589
  }
588
590
  if (cursor[kDocuments].length === 0 && blocking === false) {
591
+ if (!shift)
592
+ return false;
589
593
  return null;
590
594
  }
591
595
  } while (!cursor.isDead || cursor[kDocuments].length !== 0);
596
+ if (!shift)
597
+ return false;
592
598
  return null;
593
599
  }
594
600
  async function cleanupCursor(cursor, options) {
@@ -685,7 +691,7 @@ class ReadableCursorStream extends stream_1.Readable {
685
691
  }
686
692
  _readNext() {
687
693
  // eslint-disable-next-line github/no-then
688
- next(this._cursor, { blocking: true, transform: true }).then(result => {
694
+ next(this._cursor, { blocking: true, transform: true, shift: true }).then(result => {
689
695
  if (result == null) {
690
696
  this.push(null);
691
697
  }
@@ -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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"}