mongodb 6.2.0 → 6.3.0

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 (54) hide show
  1. package/lib/cmap/command_monitoring_events.js +2 -2
  2. package/lib/cmap/command_monitoring_events.js.map +1 -1
  3. package/lib/cmap/commands.js +54 -11
  4. package/lib/cmap/commands.js.map +1 -1
  5. package/lib/cmap/connect.js +1 -1
  6. package/lib/cmap/connect.js.map +1 -1
  7. package/lib/cmap/connection.js +401 -3
  8. package/lib/cmap/connection.js.map +1 -1
  9. package/lib/cmap/errors.js +1 -1
  10. package/lib/cmap/errors.js.map +1 -1
  11. package/lib/cmap/message_stream.js +3 -10
  12. package/lib/cmap/message_stream.js.map +1 -1
  13. package/lib/cmap/wire_protocol/compression.js +57 -1
  14. package/lib/cmap/wire_protocol/compression.js.map +1 -1
  15. package/lib/connection_string.js +29 -3
  16. package/lib/connection_string.js.map +1 -1
  17. package/lib/error.js +4 -2
  18. package/lib/error.js.map +1 -1
  19. package/lib/gridfs/download.js.map +1 -1
  20. package/lib/gridfs/upload.js.map +1 -1
  21. package/lib/mongo_client.js +14 -0
  22. package/lib/mongo_client.js.map +1 -1
  23. package/lib/mongo_logger.js +16 -7
  24. package/lib/mongo_logger.js.map +1 -1
  25. package/lib/sdam/monitor.js +61 -38
  26. package/lib/sdam/monitor.js.map +1 -1
  27. package/lib/sdam/server.js +9 -13
  28. package/lib/sdam/server.js.map +1 -1
  29. package/lib/sdam/topology.js.map +1 -1
  30. package/lib/sessions.js +2 -2
  31. package/lib/sessions.js.map +1 -1
  32. package/lib/utils.js +15 -1
  33. package/lib/utils.js.map +1 -1
  34. package/mongodb.d.ts +52 -16
  35. package/package.json +2 -2
  36. package/src/cmap/command_monitoring_events.ts +5 -5
  37. package/src/cmap/commands.ts +65 -8
  38. package/src/cmap/connect.ts +1 -1
  39. package/src/cmap/connection.ts +543 -4
  40. package/src/cmap/errors.ts +1 -1
  41. package/src/cmap/message_stream.ts +7 -21
  42. package/src/cmap/wire_protocol/compression.ts +73 -0
  43. package/src/connection_string.ts +31 -3
  44. package/src/error.ts +6 -2
  45. package/src/gridfs/download.ts +4 -2
  46. package/src/gridfs/upload.ts +8 -2
  47. package/src/index.ts +13 -6
  48. package/src/mongo_client.ts +59 -2
  49. package/src/mongo_logger.ts +72 -12
  50. package/src/sdam/monitor.ts +76 -45
  51. package/src/sdam/server.ts +10 -15
  52. package/src/sdam/topology.ts +2 -0
  53. package/src/sessions.ts +3 -2
  54. package/src/utils.ts +17 -0
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasSessionSupport = exports.CryptoConnection = exports.Connection = void 0;
3
+ exports.read = exports.readMany = exports.writeCommand = exports.readWireProtocolMessages = exports.ModernConnection = exports.hasSessionSupport = exports.CryptoConnection = exports.Connection = void 0;
4
+ const events_1 = require("events");
5
+ const stream_1 = require("stream");
4
6
  const timers_1 = require("timers");
5
7
  const util_1 = require("util");
6
8
  const constants_1 = require("../constants");
@@ -12,6 +14,7 @@ const command_monitoring_events_1 = require("./command_monitoring_events");
12
14
  const commands_1 = require("./commands");
13
15
  const message_stream_1 = require("./message_stream");
14
16
  const stream_description_1 = require("./stream_description");
17
+ const compression_1 = require("./wire_protocol/compression");
15
18
  const shared_1 = require("./wire_protocol/shared");
16
19
  /** @internal */
17
20
  const kStream = Symbol('stream');
@@ -305,8 +308,8 @@ class Connection extends mongo_types_1.TypedEventEmitter {
305
308
  secondaryOk: readPreference.secondaryOk()
306
309
  }, options);
307
310
  const message = shouldUseOpMsg
308
- ? new commands_1.Msg(ns.db, cmd, commandOptions)
309
- : new commands_1.Query(ns.db, cmd, commandOptions);
311
+ ? new commands_1.OpMsgRequest(ns.db, cmd, commandOptions)
312
+ : new commands_1.OpQueryRequest(ns.db, cmd, commandOptions);
310
313
  try {
311
314
  write(this, message, commandOptions, callback);
312
315
  }
@@ -489,4 +492,399 @@ function write(conn, command, options, callback) {
489
492
  operationDescription.cb();
490
493
  }
491
494
  }
495
+ /** in-progress connection layer */
496
+ /** @internal */
497
+ class ModernConnection extends mongo_types_1.TypedEventEmitter {
498
+ constructor(stream, options) {
499
+ super();
500
+ this.commandAsync = (0, util_1.promisify)((ns, cmd, options, callback) => this.command(ns, cmd, options, callback));
501
+ this.id = options.id;
502
+ this.address = streamIdentifier(stream, options);
503
+ this.socketTimeoutMS = options.socketTimeoutMS ?? 0;
504
+ this.monitorCommands = options.monitorCommands;
505
+ this.serverApi = options.serverApi;
506
+ this.closed = false;
507
+ this[kHello] = null;
508
+ this[kClusterTime] = null;
509
+ this[kDescription] = new stream_description_1.StreamDescription(this.address, options);
510
+ this[kGeneration] = options.generation;
511
+ this[kLastUseTime] = (0, utils_1.now)();
512
+ // setup parser stream and message handling
513
+ this[kQueue] = new Map();
514
+ this[kMessageStream] = new message_stream_1.MessageStream({
515
+ ...options,
516
+ maxBsonMessageSize: this.hello?.maxBsonMessageSize
517
+ });
518
+ this.socket = stream;
519
+ this[kDelayedTimeoutId] = null;
520
+ this[kMessageStream].on('message', message => this.onMessage(message));
521
+ this[kMessageStream].on('error', error => this.onError(error));
522
+ this.socket.on('close', () => this.onClose());
523
+ this.socket.on('timeout', () => this.onTimeout());
524
+ this.socket.on('error', () => {
525
+ /* ignore errors, listen to `close` instead */
526
+ });
527
+ // hook the message stream up to the passed in stream
528
+ this.socket.pipe(this[kMessageStream]);
529
+ this[kMessageStream].pipe(this.socket);
530
+ }
531
+ get description() {
532
+ return this[kDescription];
533
+ }
534
+ get hello() {
535
+ return this[kHello];
536
+ }
537
+ // the `connect` method stores the result of the handshake hello on the connection
538
+ set hello(response) {
539
+ this[kDescription].receiveResponse(response);
540
+ this[kDescription] = Object.freeze(this[kDescription]);
541
+ // TODO: remove this, and only use the `StreamDescription` in the future
542
+ this[kHello] = response;
543
+ }
544
+ // Set the whether the message stream is for a monitoring connection.
545
+ set isMonitoringConnection(value) {
546
+ this[kMessageStream].isMonitoringConnection = value;
547
+ }
548
+ get isMonitoringConnection() {
549
+ return this[kMessageStream].isMonitoringConnection;
550
+ }
551
+ get serviceId() {
552
+ return this.hello?.serviceId;
553
+ }
554
+ get loadBalanced() {
555
+ return this.description.loadBalanced;
556
+ }
557
+ get generation() {
558
+ return this[kGeneration] || 0;
559
+ }
560
+ set generation(generation) {
561
+ this[kGeneration] = generation;
562
+ }
563
+ get idleTime() {
564
+ return (0, utils_1.calculateDurationInMs)(this[kLastUseTime]);
565
+ }
566
+ get clusterTime() {
567
+ return this[kClusterTime];
568
+ }
569
+ get stream() {
570
+ return this.socket;
571
+ }
572
+ get hasSessionSupport() {
573
+ return this.description.logicalSessionTimeoutMinutes != null;
574
+ }
575
+ get supportsOpMsg() {
576
+ return (this.description != null &&
577
+ (0, utils_1.maxWireVersion)(this) >= 6 &&
578
+ !this.description.__nodejs_mock_server__);
579
+ }
580
+ markAvailable() {
581
+ this[kLastUseTime] = (0, utils_1.now)();
582
+ }
583
+ onError(error) {
584
+ this.cleanup(true, error);
585
+ }
586
+ onClose() {
587
+ const message = `connection ${this.id} to ${this.address} closed`;
588
+ this.cleanup(true, new error_1.MongoNetworkError(message));
589
+ }
590
+ onTimeout() {
591
+ this[kDelayedTimeoutId] = (0, timers_1.setTimeout)(() => {
592
+ const message = `connection ${this.id} to ${this.address} timed out`;
593
+ const beforeHandshake = this.hello == null;
594
+ this.cleanup(true, new error_1.MongoNetworkTimeoutError(message, { beforeHandshake }));
595
+ }, 1).unref(); // No need for this timer to hold the event loop open
596
+ }
597
+ onMessage(message) {
598
+ const delayedTimeoutId = this[kDelayedTimeoutId];
599
+ if (delayedTimeoutId != null) {
600
+ (0, timers_1.clearTimeout)(delayedTimeoutId);
601
+ this[kDelayedTimeoutId] = null;
602
+ }
603
+ const socketTimeoutMS = this.socket.timeout ?? 0;
604
+ this.socket.setTimeout(0);
605
+ // always emit the message, in case we are streaming
606
+ this.emit('message', message);
607
+ let operationDescription = this[kQueue].get(message.responseTo);
608
+ if (!operationDescription && this.isMonitoringConnection) {
609
+ // This is how we recover when the initial hello's requestId is not
610
+ // the responseTo when hello responses have been skipped:
611
+ // First check if the map is of invalid size
612
+ if (this[kQueue].size > 1) {
613
+ this.cleanup(true, new error_1.MongoRuntimeError(INVALID_QUEUE_SIZE));
614
+ }
615
+ else {
616
+ // Get the first orphaned operation description.
617
+ const entry = this[kQueue].entries().next();
618
+ if (entry.value != null) {
619
+ const [requestId, orphaned] = entry.value;
620
+ // If the orphaned operation description exists then set it.
621
+ operationDescription = orphaned;
622
+ // Remove the entry with the bad request id from the queue.
623
+ this[kQueue].delete(requestId);
624
+ }
625
+ }
626
+ }
627
+ if (!operationDescription) {
628
+ return;
629
+ }
630
+ const callback = operationDescription.cb;
631
+ // SERVER-45775: For exhaust responses we should be able to use the same requestId to
632
+ // track response, however the server currently synthetically produces remote requests
633
+ // making the `responseTo` change on each response
634
+ this[kQueue].delete(message.responseTo);
635
+ if ('moreToCome' in message && message.moreToCome) {
636
+ // If the operation description check above does find an orphaned
637
+ // description and sets the operationDescription then this line will put one
638
+ // back in the queue with the correct requestId and will resolve not being able
639
+ // to find the next one via the responseTo of the next streaming hello.
640
+ this[kQueue].set(message.requestId, operationDescription);
641
+ this.socket.setTimeout(socketTimeoutMS);
642
+ }
643
+ try {
644
+ // Pass in the entire description because it has BSON parsing options
645
+ message.parse(operationDescription);
646
+ }
647
+ catch (err) {
648
+ // If this error is generated by our own code, it will already have the correct class applied
649
+ // if it is not, then it is coming from a catastrophic data parse failure or the BSON library
650
+ // in either case, it should not be wrapped
651
+ callback(err);
652
+ return;
653
+ }
654
+ if (message.documents[0]) {
655
+ const document = message.documents[0];
656
+ const session = operationDescription.session;
657
+ if (session) {
658
+ (0, sessions_1.updateSessionFromResponse)(session, document);
659
+ }
660
+ if (document.$clusterTime) {
661
+ this[kClusterTime] = document.$clusterTime;
662
+ this.emit(Connection.CLUSTER_TIME_RECEIVED, document.$clusterTime);
663
+ }
664
+ if (document.writeConcernError) {
665
+ callback(new error_1.MongoWriteConcernError(document.writeConcernError, document), document);
666
+ return;
667
+ }
668
+ if (document.ok === 0 || document.$err || document.errmsg || document.code) {
669
+ callback(new error_1.MongoServerError(document));
670
+ return;
671
+ }
672
+ }
673
+ callback(undefined, message.documents[0]);
674
+ }
675
+ destroy(options, callback) {
676
+ if (this.closed) {
677
+ process.nextTick(() => callback?.());
678
+ return;
679
+ }
680
+ if (typeof callback === 'function') {
681
+ this.once('close', () => process.nextTick(() => callback()));
682
+ }
683
+ // load balanced mode requires that these listeners remain on the connection
684
+ // after cleanup on timeouts, errors or close so we remove them before calling
685
+ // cleanup.
686
+ this.removeAllListeners(Connection.PINNED);
687
+ this.removeAllListeners(Connection.UNPINNED);
688
+ const message = `connection ${this.id} to ${this.address} closed`;
689
+ this.cleanup(options.force, new error_1.MongoNetworkError(message));
690
+ }
691
+ /**
692
+ * A method that cleans up the connection. When `force` is true, this method
693
+ * forcibly destroys the socket.
694
+ *
695
+ * If an error is provided, any in-flight operations will be closed with the error.
696
+ *
697
+ * This method does nothing if the connection is already closed.
698
+ */
699
+ cleanup(force, error) {
700
+ if (this.closed) {
701
+ return;
702
+ }
703
+ this.closed = true;
704
+ const completeCleanup = () => {
705
+ for (const op of this[kQueue].values()) {
706
+ op.cb(error);
707
+ }
708
+ this[kQueue].clear();
709
+ this.emit(Connection.CLOSE);
710
+ };
711
+ this.socket.removeAllListeners();
712
+ this[kMessageStream].removeAllListeners();
713
+ this[kMessageStream].destroy();
714
+ if (force) {
715
+ this.socket.destroy();
716
+ completeCleanup();
717
+ return;
718
+ }
719
+ if (!this.socket.writableEnded) {
720
+ this.socket.end(() => {
721
+ this.socket.destroy();
722
+ completeCleanup();
723
+ });
724
+ }
725
+ else {
726
+ completeCleanup();
727
+ }
728
+ }
729
+ command(ns, command, options, callback) {
730
+ let cmd = { ...command };
731
+ const readPreference = (0, shared_1.getReadPreference)(options);
732
+ const session = options?.session;
733
+ let clusterTime = this.clusterTime;
734
+ if (this.serverApi) {
735
+ const { version, strict, deprecationErrors } = this.serverApi;
736
+ cmd.apiVersion = version;
737
+ if (strict != null)
738
+ cmd.apiStrict = strict;
739
+ if (deprecationErrors != null)
740
+ cmd.apiDeprecationErrors = deprecationErrors;
741
+ }
742
+ if (this.hasSessionSupport && session) {
743
+ if (session.clusterTime &&
744
+ clusterTime &&
745
+ session.clusterTime.clusterTime.greaterThan(clusterTime.clusterTime)) {
746
+ clusterTime = session.clusterTime;
747
+ }
748
+ const err = (0, sessions_1.applySession)(session, cmd, options);
749
+ if (err) {
750
+ return callback(err);
751
+ }
752
+ }
753
+ else if (session?.explicit) {
754
+ return callback(new error_1.MongoCompatibilityError('Current topology does not support sessions'));
755
+ }
756
+ // if we have a known cluster time, gossip it
757
+ if (clusterTime) {
758
+ cmd.$clusterTime = clusterTime;
759
+ }
760
+ if (
761
+ // @ts-expect-error ModernConnections cannot be passed as connections
762
+ (0, shared_1.isSharded)(this) &&
763
+ !this.supportsOpMsg &&
764
+ readPreference &&
765
+ readPreference.mode !== 'primary') {
766
+ cmd = {
767
+ $query: cmd,
768
+ $readPreference: readPreference.toJSON()
769
+ };
770
+ }
771
+ const commandOptions = Object.assign({
772
+ numberToSkip: 0,
773
+ numberToReturn: -1,
774
+ checkKeys: false,
775
+ // This value is not overridable
776
+ secondaryOk: readPreference.secondaryOk()
777
+ }, options);
778
+ const message = this.supportsOpMsg
779
+ ? new commands_1.OpMsgRequest(ns.db, cmd, commandOptions)
780
+ : new commands_1.OpQueryRequest(ns.db, cmd, commandOptions);
781
+ try {
782
+ write(this, message, commandOptions, callback);
783
+ }
784
+ catch (err) {
785
+ callback(err);
786
+ }
787
+ }
788
+ }
789
+ /** @event */
790
+ ModernConnection.COMMAND_STARTED = constants_1.COMMAND_STARTED;
791
+ /** @event */
792
+ ModernConnection.COMMAND_SUCCEEDED = constants_1.COMMAND_SUCCEEDED;
793
+ /** @event */
794
+ ModernConnection.COMMAND_FAILED = constants_1.COMMAND_FAILED;
795
+ /** @event */
796
+ ModernConnection.CLUSTER_TIME_RECEIVED = constants_1.CLUSTER_TIME_RECEIVED;
797
+ /** @event */
798
+ ModernConnection.CLOSE = constants_1.CLOSE;
799
+ /** @event */
800
+ ModernConnection.MESSAGE = constants_1.MESSAGE;
801
+ /** @event */
802
+ ModernConnection.PINNED = constants_1.PINNED;
803
+ /** @event */
804
+ ModernConnection.UNPINNED = constants_1.UNPINNED;
805
+ exports.ModernConnection = ModernConnection;
806
+ const kDefaultMaxBsonMessageSize = 1024 * 1024 * 16 * 4;
807
+ /**
808
+ * @internal
809
+ *
810
+ * This helper reads chucks of data out of a socket and buffers them until it has received a
811
+ * full wire protocol message.
812
+ *
813
+ * By itself, produces an infinite async generator of wire protocol messages and consumers must end
814
+ * the stream by calling `return` on the generator.
815
+ *
816
+ * Note that `for-await` loops call `return` automatically when the loop is exited.
817
+ */
818
+ async function* readWireProtocolMessages(connection) {
819
+ const bufferPool = new utils_1.BufferPool();
820
+ const maxBsonMessageSize = connection.hello?.maxBsonMessageSize ?? kDefaultMaxBsonMessageSize;
821
+ for await (const [chunk] of (0, stream_1.on)(connection.socket, 'data')) {
822
+ bufferPool.append(chunk);
823
+ const sizeOfMessage = bufferPool.getInt32();
824
+ if (sizeOfMessage == null) {
825
+ continue;
826
+ }
827
+ if (sizeOfMessage < 0) {
828
+ throw new error_1.MongoParseError(`Invalid message size: ${sizeOfMessage}`);
829
+ }
830
+ if (sizeOfMessage > maxBsonMessageSize) {
831
+ throw new error_1.MongoParseError(`Invalid message size: ${sizeOfMessage}, max allowed: ${maxBsonMessageSize}`);
832
+ }
833
+ if (sizeOfMessage > bufferPool.length) {
834
+ continue;
835
+ }
836
+ yield bufferPool.read(sizeOfMessage);
837
+ }
838
+ }
839
+ exports.readWireProtocolMessages = readWireProtocolMessages;
840
+ /**
841
+ * @internal
842
+ *
843
+ * Writes an OP_MSG or OP_QUERY request to the socket, optionally compressing the command. This method
844
+ * waits until the socket's buffer has emptied (the Nodejs socket `drain` event has fired).
845
+ */
846
+ async function writeCommand(connection, command, options) {
847
+ const drained = (0, events_1.once)(connection.socket, 'drain');
848
+ const finalCommand = options.agreedCompressor === 'none' || !commands_1.OpCompressedRequest.canCompress(command)
849
+ ? command
850
+ : new commands_1.OpCompressedRequest(command, {
851
+ agreedCompressor: options.agreedCompressor ?? 'none',
852
+ zlibCompressionLevel: options.zlibCompressionLevel ?? 0
853
+ });
854
+ const buffer = Buffer.concat(await finalCommand.toBin());
855
+ connection.socket.push(buffer);
856
+ await drained;
857
+ }
858
+ exports.writeCommand = writeCommand;
859
+ /**
860
+ * @internal
861
+ *
862
+ * Returns an async generator that yields full wire protocol messages from the underlying socket. This function
863
+ * yields messages until `moreToCome` is false or not present in a response, or the caller cancels the request
864
+ * by calling `return` on the generator.
865
+ *
866
+ * Note that `for-await` loops call `return` automatically when the loop is exited.
867
+ */
868
+ async function* readMany(connection) {
869
+ for await (const message of readWireProtocolMessages(connection)) {
870
+ const response = await (0, compression_1.decompressResponse)(message);
871
+ yield response;
872
+ if (!('moreToCome' in response) || !response.moreToCome) {
873
+ return;
874
+ }
875
+ }
876
+ }
877
+ exports.readMany = readMany;
878
+ /**
879
+ * @internal
880
+ *
881
+ * Reads a single wire protocol message out of a connection.
882
+ */
883
+ async function read(connection) {
884
+ for await (const value of readMany(connection)) {
885
+ return value;
886
+ }
887
+ throw new error_1.MongoRuntimeError('unable to read message off of connection');
888
+ }
889
+ exports.read = read;
492
890
  //# sourceMappingURL=connection.js.map
@@ -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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"}
@@ -49,7 +49,7 @@ class PoolClearedError extends error_1.MongoNetworkError {
49
49
  : `Connection pool for ${pool.address} was cleared because another operation failed with: "${pool.serverError?.message}"`;
50
50
  super(errorMessage, pool.serverError ? { cause: pool.serverError } : undefined);
51
51
  this.address = pool.address;
52
- this.addErrorLabel(error_1.MongoErrorLabel.RetryableWriteError);
52
+ this.addErrorLabel(error_1.MongoErrorLabel.PoolRequstedRetry);
53
53
  }
54
54
  get name() {
55
55
  return 'MongoPoolClearedError';
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/cmap/errors.ts"],"names":[],"mappings":";;;AAAA,oCAAgF;AAGhF;;;GAGG;AACH,MAAa,eAAgB,SAAQ,wBAAgB;IAInD;;;;;;;;;;QAUI;IACJ,YAAY,IAAoB;QAC9B,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,IAAa,IAAI;QACf,OAAO,sBAAsB,CAAC;IAChC,CAAC;CACF;AAvBD,0CAuBC;AAED;;;GAGG;AACH,MAAa,gBAAiB,SAAQ,yBAAiB;IAIrD;;;;;;;;;;QAUI;IACJ,YAAY,IAAoB,EAAE,OAAgB;QAChD,MAAM,YAAY,GAAG,OAAO;YAC1B,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,uBAAuB,IAAI,CAAC,OAAO,wDAAwD,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,CAAC;QAC5H,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAChF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE5B,IAAI,CAAC,aAAa,CAAC,uBAAe,CAAC,mBAAmB,CAAC,CAAC;IAC1D,CAAC;IAED,IAAa,IAAI;QACf,OAAO,uBAAuB,CAAC;IACjC,CAAC;CACF;AA5BD,4CA4BC;AAED;;;GAGG;AACH,MAAa,yBAA0B,SAAQ,gBAAgB;IAC7D;;;;;;;;;;QAUI;IACJ,YAAY,IAAoB;QAC9B,KAAK,CAAC,IAAI,EAAE,iBAAiB,IAAI,CAAC,OAAO,4CAA4C,CAAC,CAAC;IACzF,CAAC;IAED,IAAa,IAAI;QACf,OAAO,2BAA2B,CAAC;IACrC,CAAC;CACF;AAnBD,8DAmBC;AAED;;;GAGG;AACH,MAAa,qBAAsB,SAAQ,wBAAgB;IAIzD;;;;;;;;;;QAUI;IACJ,YAAY,OAAe,EAAE,OAAe;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,IAAa,IAAI;QACf,OAAO,4BAA4B,CAAC;IACtC,CAAC;CACF;AAvBD,sDAuBC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/cmap/errors.ts"],"names":[],"mappings":";;;AAAA,oCAAgF;AAGhF;;;GAGG;AACH,MAAa,eAAgB,SAAQ,wBAAgB;IAInD;;;;;;;;;;QAUI;IACJ,YAAY,IAAoB;QAC9B,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,IAAa,IAAI;QACf,OAAO,sBAAsB,CAAC;IAChC,CAAC;CACF;AAvBD,0CAuBC;AAED;;;GAGG;AACH,MAAa,gBAAiB,SAAQ,yBAAiB;IAIrD;;;;;;;;;;QAUI;IACJ,YAAY,IAAoB,EAAE,OAAgB;QAChD,MAAM,YAAY,GAAG,OAAO;YAC1B,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,uBAAuB,IAAI,CAAC,OAAO,wDAAwD,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,CAAC;QAC5H,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAChF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE5B,IAAI,CAAC,aAAa,CAAC,uBAAe,CAAC,iBAAiB,CAAC,CAAC;IACxD,CAAC;IAED,IAAa,IAAI;QACf,OAAO,uBAAuB,CAAC;IACjC,CAAC;CACF;AA5BD,4CA4BC;AAED;;;GAGG;AACH,MAAa,yBAA0B,SAAQ,gBAAgB;IAC7D;;;;;;;;;;QAUI;IACJ,YAAY,IAAoB;QAC9B,KAAK,CAAC,IAAI,EAAE,iBAAiB,IAAI,CAAC,OAAO,4CAA4C,CAAC,CAAC;IACzF,CAAC;IAED,IAAa,IAAI;QACf,OAAO,2BAA2B,CAAC;IACrC,CAAC;CACF;AAnBD,8DAmBC;AAED;;;GAGG;AACH,MAAa,qBAAsB,SAAQ,wBAAgB;IAIzD;;;;;;;;;;QAUI;IACJ,YAAY,OAAe,EAAE,OAAe;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,IAAa,IAAI;QACf,OAAO,4BAA4B,CAAC;IACtC,CAAC;CACF;AAvBD,sDAuBC"}
@@ -39,7 +39,7 @@ class MessageStream extends stream_1.Duplex {
39
39
  }
40
40
  writeCommand(command, operationDescription) {
41
41
  const agreedCompressor = operationDescription.agreedCompressor ?? 'none';
42
- if (agreedCompressor === 'none' || !canCompress(command)) {
42
+ if (agreedCompressor === 'none' || !commands_1.OpCompressedRequest.canCompress(command)) {
43
43
  const data = command.toBin();
44
44
  this.push(Array.isArray(data) ? Buffer.concat(data) : data);
45
45
  return;
@@ -73,13 +73,6 @@ class MessageStream extends stream_1.Duplex {
73
73
  }
74
74
  }
75
75
  exports.MessageStream = MessageStream;
76
- // Return whether a command contains an uncompressible command term
77
- // Will return true if command contains no uncompressible command terms
78
- function canCompress(command) {
79
- const commandDoc = command instanceof commands_1.Msg ? command.command : command.query;
80
- const commandName = Object.keys(commandDoc)[0];
81
- return !compression_1.uncompressibleCommands.has(commandName);
82
- }
83
76
  function processIncomingData(stream, callback) {
84
77
  const buffer = stream[kBuffer];
85
78
  const sizeOfMessage = buffer.getInt32();
@@ -112,7 +105,7 @@ function processIncomingData(stream, callback) {
112
105
  }
113
106
  return false;
114
107
  };
115
- let ResponseType = messageHeader.opCode === constants_1.OP_MSG ? commands_1.BinMsg : commands_1.Response;
108
+ let ResponseType = messageHeader.opCode === constants_1.OP_MSG ? commands_1.OpMsgResponse : commands_1.OpQueryResponse;
116
109
  if (messageHeader.opCode !== constants_1.OP_COMPRESSED) {
117
110
  const messageBody = message.subarray(MESSAGE_HEADER_SIZE);
118
111
  // If we are a monitoring connection message stream and
@@ -133,7 +126,7 @@ function processIncomingData(stream, callback) {
133
126
  const compressorID = message[MESSAGE_HEADER_SIZE + 8];
134
127
  const compressedBuffer = message.slice(MESSAGE_HEADER_SIZE + 9);
135
128
  // recalculate based on wrapped opcode
136
- ResponseType = messageHeader.opCode === constants_1.OP_MSG ? commands_1.BinMsg : commands_1.Response;
129
+ ResponseType = messageHeader.opCode === constants_1.OP_MSG ? commands_1.OpMsgResponse : commands_1.OpQueryResponse;
137
130
  (0, compression_1.decompress)(compressorID, compressedBuffer).then(messageBody => {
138
131
  if (messageBody.length !== messageHeader.length) {
139
132
  return callback(new error_1.MongoDecompressionError('Message body and message header must be the same length'));
@@ -1 +1 @@
1
- {"version":3,"file":"message_stream.js","sourceRoot":"","sources":["../../src/cmap/message_stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message_stream.js","sourceRoot":"","sources":["../../src/cmap/message_stream.ts"],"names":[],"mappings":"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"}