mongodb 6.18.0-dev.20250805.sha.ff9a7858 → 6.18.0-dev.20250808.sha.8e06e72a

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 (98) hide show
  1. package/lib/beta.d.ts +2 -1
  2. package/lib/cmap/connection.js.map +1 -1
  3. package/lib/collection.js +5 -5
  4. package/lib/collection.js.map +1 -1
  5. package/lib/cursor/aggregation_cursor.js +2 -1
  6. package/lib/cursor/aggregation_cursor.js.map +1 -1
  7. package/lib/cursor/explainable_cursor.js +36 -0
  8. package/lib/cursor/explainable_cursor.js.map +1 -0
  9. package/lib/cursor/find_cursor.js +2 -1
  10. package/lib/cursor/find_cursor.js.map +1 -1
  11. package/lib/explain.js +1 -33
  12. package/lib/explain.js.map +1 -1
  13. package/lib/index.js +6 -6
  14. package/lib/index.js.map +1 -1
  15. package/lib/operations/aggregate.js +10 -8
  16. package/lib/operations/aggregate.js.map +1 -1
  17. package/lib/operations/client_bulk_write/client_bulk_write.js +9 -42
  18. package/lib/operations/client_bulk_write/client_bulk_write.js.map +1 -1
  19. package/lib/operations/command.js +0 -9
  20. package/lib/operations/command.js.map +1 -1
  21. package/lib/operations/count.js +8 -4
  22. package/lib/operations/count.js.map +1 -1
  23. package/lib/operations/create_collection.js +17 -20
  24. package/lib/operations/create_collection.js.map +1 -1
  25. package/lib/operations/delete.js +16 -13
  26. package/lib/operations/delete.js.map +1 -1
  27. package/lib/operations/drop.js +13 -6
  28. package/lib/operations/drop.js.map +1 -1
  29. package/lib/operations/estimated_document_count.js +8 -4
  30. package/lib/operations/estimated_document_count.js.map +1 -1
  31. package/lib/operations/execute_operation.js +2 -1
  32. package/lib/operations/execute_operation.js.map +1 -1
  33. package/lib/operations/find.js +13 -24
  34. package/lib/operations/find.js.map +1 -1
  35. package/lib/operations/find_and_modify.js +53 -42
  36. package/lib/operations/find_and_modify.js.map +1 -1
  37. package/lib/operations/get_more.js +11 -12
  38. package/lib/operations/get_more.js.map +1 -1
  39. package/lib/operations/indexes.js +24 -15
  40. package/lib/operations/indexes.js.map +1 -1
  41. package/lib/operations/insert.js +0 -13
  42. package/lib/operations/insert.js.map +1 -1
  43. package/lib/operations/kill_cursors.js +14 -16
  44. package/lib/operations/kill_cursors.js.map +1 -1
  45. package/lib/operations/list_collections.js +8 -7
  46. package/lib/operations/list_collections.js.map +1 -1
  47. package/lib/operations/list_databases.js +6 -4
  48. package/lib/operations/list_databases.js.map +1 -1
  49. package/lib/operations/operation.js +0 -1
  50. package/lib/operations/operation.js.map +1 -1
  51. package/lib/operations/rename.js +11 -9
  52. package/lib/operations/rename.js.map +1 -1
  53. package/lib/operations/search_indexes/create.js +12 -9
  54. package/lib/operations/search_indexes/create.js.map +1 -1
  55. package/lib/operations/search_indexes/update.js +12 -5
  56. package/lib/operations/search_indexes/update.js.map +1 -1
  57. package/lib/operations/update.js +23 -20
  58. package/lib/operations/update.js.map +1 -1
  59. package/lib/operations/validate_collection.js +18 -19
  60. package/lib/operations/validate_collection.js.map +1 -1
  61. package/lib/sdam/server.js +31 -27
  62. package/lib/sdam/server.js.map +1 -1
  63. package/lib/sdam/topology.js +3 -2
  64. package/lib/sdam/topology.js.map +1 -1
  65. package/mongodb.d.ts +2 -1
  66. package/package.json +1 -1
  67. package/src/cmap/connection.ts +0 -1
  68. package/src/collection.ts +7 -22
  69. package/src/cursor/aggregation_cursor.ts +1 -1
  70. package/src/cursor/explainable_cursor.ts +51 -0
  71. package/src/cursor/find_cursor.ts +1 -1
  72. package/src/explain.ts +0 -49
  73. package/src/index.ts +2 -2
  74. package/src/operations/aggregate.ts +21 -22
  75. package/src/operations/client_bulk_write/client_bulk_write.ts +23 -67
  76. package/src/operations/command.ts +1 -12
  77. package/src/operations/count.ts +11 -11
  78. package/src/operations/create_collection.ts +22 -31
  79. package/src/operations/delete.ts +32 -36
  80. package/src/operations/drop.ts +18 -17
  81. package/src/operations/estimated_document_count.ts +10 -11
  82. package/src/operations/execute_operation.ts +9 -7
  83. package/src/operations/find.ts +28 -49
  84. package/src/operations/find_and_modify.ts +80 -56
  85. package/src/operations/get_more.ts +18 -20
  86. package/src/operations/indexes.ts +30 -34
  87. package/src/operations/insert.ts +0 -20
  88. package/src/operations/kill_cursors.ts +22 -23
  89. package/src/operations/list_collections.ts +15 -23
  90. package/src/operations/list_databases.ts +8 -17
  91. package/src/operations/operation.ts +0 -3
  92. package/src/operations/rename.ts +13 -16
  93. package/src/operations/search_indexes/create.ts +16 -16
  94. package/src/operations/search_indexes/update.ts +16 -11
  95. package/src/operations/update.ts +55 -54
  96. package/src/operations/validate_collection.ts +21 -29
  97. package/src/sdam/server.ts +33 -28
  98. package/src/sdam/topology.ts +4 -3
@@ -1 +1 @@
1
- {"version":3,"file":"list_collections.js","sourceRoot":"","sources":["../../src/operations/list_collections.ts"],"names":[],"mappings":";;;AACA,+DAAiE;AAOjE,oCAA0C;AAC1C,uCAA2E;AAC3E,2CAAoD;AAmBpD,gBAAgB;AAChB,MAAa,wBAAyB,SAAQ,0BAAgC;IAe5E,YAAY,EAAM,EAAE,MAAgB,EAAE,OAAgC;QACpE,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAEnB,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QACjC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;QAElE,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,iBAA0B,CAAC;IACpC,CAAC;IAEQ,KAAK,CAAC,OAAO,CACpB,MAAc,EACd,OAAkC,EAClC,cAA8B;QAE9B,OAAO,MAAM,KAAK,CAAC,cAAc,CAC/B,MAAM,EACN,OAAO,EACP,IAAI,CAAC,eAAe,CAAC,IAAA,sBAAc,EAAC,MAAM,CAAC,CAAC,EAC5C,cAAc,EACd,0BAAc,CACf,CAAC;IACJ,CAAC;IAED,oFAAoF;IACpF,eAAe,CAAC,WAAmB;QACjC,MAAM,OAAO,GAAa;YACxB,eAAe,EAAE,CAAC;YAClB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;YAC3D,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;SAClD,CAAC;QAEF,iEAAiE;QACjE,gDAAgD;QAChD,IAAI,WAAW,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3D,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACzC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAlED,4DAkEC;AAcD,IAAA,yBAAa,EAAC,wBAAwB,EAAE;IACtC,kBAAM,CAAC,cAAc;IACrB,kBAAM,CAAC,SAAS;IAChB,kBAAM,CAAC,eAAe;CACvB,CAAC,CAAC"}
1
+ {"version":3,"file":"list_collections.js","sourceRoot":"","sources":["../../src/operations/list_collections.ts"],"names":[],"mappings":";;;AAEA,+DAA0F;AAI1F,oCAA0C;AAC1C,uCAAqF;AACrF,2CAAoD;AAmBpD,gBAAgB;AAChB,MAAa,wBAAyB,SAAQ,oCAA0C;IAgBtF,YAAY,EAAM,EAAE,MAAgB,EAAE,OAAgC;QACpE,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAhBZ,iCAA4B,GAAG,0BAAc,CAAC;QAkBrD,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QACjC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACxC,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;QAElE,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,mCAAuB,CAAC,CAAC,CAAC,0BAAc,CAAC;IAC9F,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,iBAA0B,CAAC;IACpC,CAAC;IAEQ,oBAAoB,CAAC,UAAsB;QAClD,MAAM,OAAO,GAAa;YACxB,eAAe,EAAE,CAAC;YAClB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;YAC3D,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;SAClD,CAAC;QAEF,iEAAiE;QACjE,gDAAgD;QAChD,IAAI,IAAA,sBAAc,EAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1E,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACzC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEQ,QAAQ,CACf,QAAgE;QAEhE,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AA5DD,4DA4DC;AAcD,IAAA,yBAAa,EAAC,wBAAwB,EAAE;IACtC,kBAAM,CAAC,cAAc;IACrB,kBAAM,CAAC,SAAS;IAChB,kBAAM,CAAC,eAAe;CACvB,CAAC,CAAC"}
@@ -1,20 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ListDatabasesOperation = void 0;
4
+ const responses_1 = require("../cmap/wire_protocol/responses");
4
5
  const utils_1 = require("../utils");
5
6
  const command_1 = require("./command");
6
7
  const operation_1 = require("./operation");
7
8
  /** @internal */
8
- class ListDatabasesOperation extends command_1.CommandOperation {
9
+ class ListDatabasesOperation extends command_1.ModernizedCommandOperation {
9
10
  constructor(db, options) {
10
11
  super(db, options);
12
+ this.SERVER_COMMAND_RESPONSE_TYPE = responses_1.MongoDBResponse;
11
13
  this.options = options ?? {};
12
14
  this.ns = new utils_1.MongoDBNamespace('admin', '$cmd');
13
15
  }
14
16
  get commandName() {
15
17
  return 'listDatabases';
16
18
  }
17
- async execute(server, session, timeoutContext) {
19
+ buildCommandDocument(connection, _session) {
18
20
  const cmd = { listDatabases: 1 };
19
21
  if (typeof this.options.nameOnly === 'boolean') {
20
22
  cmd.nameOnly = this.options.nameOnly;
@@ -27,10 +29,10 @@ class ListDatabasesOperation extends command_1.CommandOperation {
27
29
  }
28
30
  // we check for undefined specifically here to allow falsy values
29
31
  // eslint-disable-next-line no-restricted-syntax
30
- if ((0, utils_1.maxWireVersion)(server) >= 9 && this.options.comment !== undefined) {
32
+ if ((0, utils_1.maxWireVersion)(connection) >= 9 && this.options.comment !== undefined) {
31
33
  cmd.comment = this.options.comment;
32
34
  }
33
- return await super.executeCommand(server, session, cmd, timeoutContext);
35
+ return cmd;
34
36
  }
35
37
  }
36
38
  exports.ListDatabasesOperation = ListDatabasesOperation;
@@ -1 +1 @@
1
- {"version":3,"file":"list_databases.js","sourceRoot":"","sources":["../../src/operations/list_databases.ts"],"names":[],"mappings":";;;AAMA,oCAA4D;AAC5D,uCAA2E;AAC3E,2CAAoD;AAoBpD,gBAAgB;AAChB,MAAa,sBAAuB,SAAQ,0BAAqC;IAG/E,YAAY,EAAM,EAAE,OAA8B;QAChD,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,EAAE,GAAG,IAAI,wBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,eAAwB,CAAC;IAClC,CAAC;IAEQ,KAAK,CAAC,OAAO,CACpB,MAAc,EACd,OAAkC,EAClC,cAA8B;QAE9B,MAAM,GAAG,GAAa,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QAE3C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC/C,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACvC,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACxB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,CAAC;QAED,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAC1D,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC;QAC7D,CAAC;QAED,iEAAiE;QACjE,gDAAgD;QAChD,IAAI,IAAA,sBAAc,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACtE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACrC,CAAC;QAED,OAAO,MAAO,KAAK,CAAC,cAAc,CAChC,MAAM,EACN,OAAO,EACP,GAAG,EACH,cAAc,CACa,CAAC;IAChC,CAAC;CACF;AA7CD,wDA6CC;AAED,IAAA,yBAAa,EAAC,sBAAsB,EAAE,CAAC,kBAAM,CAAC,cAAc,EAAE,kBAAM,CAAC,SAAS,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"list_databases.js","sourceRoot":"","sources":["../../src/operations/list_databases.ts"],"names":[],"mappings":";;;AAEA,+DAAkE;AAGlE,oCAA4D;AAC5D,uCAAqF;AACrF,2CAAoD;AAoBpD,gBAAgB;AAChB,MAAa,sBAAuB,SAAQ,oCAA+C;IAIzF,YAAY,EAAM,EAAE,OAA8B;QAChD,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAJZ,iCAA4B,GAAG,2BAAe,CAAC;QAKtD,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,EAAE,GAAG,IAAI,wBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,eAAwB,CAAC;IAClC,CAAC;IAEQ,oBAAoB,CAAC,UAAsB,EAAE,QAAwB;QAC5E,MAAM,GAAG,GAAa,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QAE3C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC/C,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QACvC,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACxB,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,CAAC;QAED,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAC1D,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC;QAC7D,CAAC;QAED,iEAAiE;QACjE,gDAAgD;QAChD,IAAI,IAAA,sBAAc,EAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1E,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACrC,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AArCD,wDAqCC;AAED,IAAA,yBAAa,EAAC,sBAAsB,EAAE,CAAC,kBAAM,CAAC,cAAc,EAAE,kBAAM,CAAC,SAAS,CAAC,CAAC,CAAC"}
@@ -31,7 +31,6 @@ class AbstractOperation {
31
31
  this._session = options.session != null ? options.session : undefined;
32
32
  this.options = options;
33
33
  this.bypassPinningCheck = !!options.bypassPinningCheck;
34
- this.trySecondaryWrite = false;
35
34
  }
36
35
  hasAspect(aspect) {
37
36
  const ctor = this.constructor;
@@ -1 +1 @@
1
- {"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/operations/operation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/operations/operation.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RenameOperation = void 0;
4
+ const responses_1 = require("../cmap/wire_protocol/responses");
4
5
  const collection_1 = require("../collection");
5
6
  const utils_1 = require("../utils");
6
7
  const command_1 = require("./command");
7
8
  const operation_1 = require("./operation");
8
9
  /** @internal */
9
- class RenameOperation extends command_1.CommandOperation {
10
+ class RenameOperation extends command_1.ModernizedCommandOperation {
10
11
  constructor(collection, newName, options) {
11
12
  super(collection, options);
13
+ this.SERVER_COMMAND_RESPONSE_TYPE = responses_1.MongoDBResponse;
12
14
  this.collection = collection;
13
15
  this.newName = newName;
14
16
  this.options = options;
@@ -17,17 +19,17 @@ class RenameOperation extends command_1.CommandOperation {
17
19
  get commandName() {
18
20
  return 'renameCollection';
19
21
  }
20
- async execute(server, session, timeoutContext) {
21
- // Build the command
22
+ buildCommandDocument(_connection, _session) {
22
23
  const renameCollection = this.collection.namespace;
23
- const toCollection = this.collection.s.namespace.withCollection(this.newName).toString();
24
+ const to = this.collection.s.namespace.withCollection(this.newName).toString();
24
25
  const dropTarget = typeof this.options.dropTarget === 'boolean' ? this.options.dropTarget : false;
25
- const command = {
26
- renameCollection: renameCollection,
27
- to: toCollection,
28
- dropTarget: dropTarget
26
+ return {
27
+ renameCollection,
28
+ to,
29
+ dropTarget
29
30
  };
30
- await super.executeCommand(server, session, command, timeoutContext);
31
+ }
32
+ handleOk(_response) {
31
33
  return new collection_1.Collection(this.collection.s.db, this.newName, this.collection.s.options);
32
34
  }
33
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rename.js","sourceRoot":"","sources":["../../src/operations/rename.ts"],"names":[],"mappings":";;;AACA,8CAA2C;AAI3C,oCAA4C;AAC5C,uCAA2E;AAC3E,2CAAoD;AAUpD,gBAAgB;AAChB,MAAa,eAAgB,SAAQ,0BAA0B;IAK7D,YAAY,UAAsB,EAAE,OAAe,EAAE,OAAsB;QACzE,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,IAAI,wBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,kBAA2B,CAAC;IACrC,CAAC;IAEQ,KAAK,CAAC,OAAO,CACpB,MAAc,EACd,OAAkC,EAClC,cAA8B;QAE9B,oBAAoB;QACpB,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACnD,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzF,MAAM,UAAU,GACd,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;QAEjF,MAAM,OAAO,GAAG;YACd,gBAAgB,EAAE,gBAAgB;YAClC,EAAE,EAAE,YAAY;YAChB,UAAU,EAAE,UAAU;SACvB,CAAC;QAEF,MAAM,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACrE,OAAO,IAAI,uBAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACvF,CAAC;CACF;AArCD,0CAqCC;AAED,IAAA,yBAAa,EAAC,eAAe,EAAE,CAAC,kBAAM,CAAC,eAAe,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"rename.js","sourceRoot":"","sources":["../../src/operations/rename.ts"],"names":[],"mappings":";;;AAEA,+DAAkE;AAClE,8CAA2C;AAE3C,oCAA4C;AAC5C,uCAAqF;AACrF,2CAAoD;AAUpD,gBAAgB;AAChB,MAAa,eAAgB,SAAQ,oCAAoC;IAMvE,YAAY,UAAsB,EAAE,OAAe,EAAE,OAAsB;QACzE,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QANpB,iCAA4B,GAAG,2BAAe,CAAC;QAOtD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,IAAI,wBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,kBAA2B,CAAC;IACrC,CAAC;IAEQ,oBAAoB,CAAC,WAAuB,EAAE,QAAwB;QAC7E,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QACnD,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/E,MAAM,UAAU,GACd,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC;QAEjF,OAAO;YACL,gBAAgB;YAChB,EAAE;YACF,UAAU;SACX,CAAC;IACJ,CAAC;IAEQ,QAAQ,CAAC,SAAiE;QACjF,OAAO,IAAI,uBAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACvF,CAAC;CACF;AAlCD,0CAkCC;AAED,IAAA,yBAAa,EAAC,eAAe,EAAE,CAAC,kBAAM,CAAC,eAAe,CAAC,CAAC,CAAC"}
@@ -1,29 +1,32 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CreateSearchIndexesOperation = void 0;
4
+ const responses_1 = require("../../cmap/wire_protocol/responses");
4
5
  const operation_1 = require("../operation");
5
6
  /** @internal */
6
- class CreateSearchIndexesOperation extends operation_1.AbstractOperation {
7
+ class CreateSearchIndexesOperation extends operation_1.ModernizedOperation {
7
8
  constructor(collection, descriptions) {
8
9
  super();
10
+ this.SERVER_COMMAND_RESPONSE_TYPE = responses_1.MongoDBResponse;
9
11
  this.collection = collection;
10
12
  this.descriptions = descriptions;
13
+ this.ns = collection.fullNamespace;
11
14
  }
12
15
  get commandName() {
13
16
  return 'createSearchIndexes';
14
17
  }
15
- async execute(server, session, timeoutContext) {
18
+ buildCommand(_connection, _session) {
16
19
  const namespace = this.collection.fullNamespace;
17
- const command = {
20
+ return {
18
21
  createSearchIndexes: namespace.collection,
19
22
  indexes: this.descriptions
20
23
  };
21
- const res = await server.command(namespace, command, {
22
- session,
23
- timeoutContext
24
- });
25
- const indexesCreated = res?.indexesCreated ?? [];
26
- return indexesCreated.map(({ name }) => name);
24
+ }
25
+ handleOk(response) {
26
+ return super.handleOk(response).indexesCreated.map((val) => val.name);
27
+ }
28
+ buildOptions(timeoutContext) {
29
+ return { session: this.session, timeoutContext };
27
30
  }
28
31
  }
29
32
  exports.CreateSearchIndexesOperation = CreateSearchIndexesOperation;
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/operations/search_indexes/create.ts"],"names":[],"mappings":";;;AAKA,4CAAiD;AAgBjD,gBAAgB;AAChB,MAAa,4BAA6B,SAAQ,6BAA2B;IAI3E,YAAY,UAAsB,EAAE,YAAmD;QACrF,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,qBAA8B,CAAC;IACxC,CAAC;IAEQ,KAAK,CAAC,OAAO,CACpB,MAAc,EACd,OAAkC,EAClC,cAA8B;QAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAChD,MAAM,OAAO,GAAG;YACd,mBAAmB,EAAE,SAAS,CAAC,UAAU;YACzC,OAAO,EAAE,IAAI,CAAC,YAAY;SAC3B,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE;YACnD,OAAO;YACP,cAAc;SACf,CAAC,CAAC;QAEH,MAAM,cAAc,GAA4B,GAAG,EAAE,cAAc,IAAI,EAAE,CAAC;QAC1E,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;CACF;AAjCD,oEAiCC"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/operations/search_indexes/create.ts"],"names":[],"mappings":";;;AAEA,kEAAqE;AAKrE,4CAAmD;AAgBnD,gBAAgB;AAChB,MAAa,4BAA6B,SAAQ,+BAA6B;IAK7E,YAAY,UAAsB,EAAE,YAAmD;QACrF,KAAK,EAAE,CAAC;QALD,iCAA4B,GAAG,2BAAe,CAAC;QAMtD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC;IACrC,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,qBAA8B,CAAC;IACxC,CAAC;IAEQ,YAAY,CAAC,WAAuB,EAAE,QAAwB;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAChD,OAAO;YACL,mBAAmB,EAAE,SAAS,CAAC,UAAU;YACzC,OAAO,EAAE,IAAI,CAAC,YAAY;SAC3B,CAAC;IACJ,CAAC;IAEQ,QAAQ,CAAC,QAAgE;QAChF,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAqB,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1F,CAAC;IAEQ,YAAY,CAAC,cAA8B;QAClD,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;IACnD,CAAC;CACF;AA/BD,oEA+BC"}
@@ -1,27 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UpdateSearchIndexOperation = void 0;
4
+ const responses_1 = require("../../cmap/wire_protocol/responses");
4
5
  const operation_1 = require("../operation");
5
6
  /** @internal */
6
- class UpdateSearchIndexOperation extends operation_1.AbstractOperation {
7
+ class UpdateSearchIndexOperation extends operation_1.ModernizedOperation {
7
8
  constructor(collection, name, definition) {
8
9
  super();
10
+ this.SERVER_COMMAND_RESPONSE_TYPE = responses_1.MongoDBResponse;
9
11
  this.collection = collection;
10
12
  this.name = name;
11
13
  this.definition = definition;
14
+ this.ns = collection.fullNamespace;
12
15
  }
13
16
  get commandName() {
14
17
  return 'updateSearchIndex';
15
18
  }
16
- async execute(server, session, timeoutContext) {
19
+ buildCommand(_connection, _session) {
17
20
  const namespace = this.collection.fullNamespace;
18
- const command = {
21
+ return {
19
22
  updateSearchIndex: namespace.collection,
20
23
  name: this.name,
21
24
  definition: this.definition
22
25
  };
23
- await server.command(namespace, command, { session, timeoutContext });
24
- return;
26
+ }
27
+ handleOk(_response) {
28
+ // no response.
29
+ }
30
+ buildOptions(timeoutContext) {
31
+ return { session: this.session, timeoutContext };
25
32
  }
26
33
  }
27
34
  exports.UpdateSearchIndexOperation = UpdateSearchIndexOperation;
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/operations/search_indexes/update.ts"],"names":[],"mappings":";;;AAKA,4CAAiD;AAEjD,gBAAgB;AAChB,MAAa,0BAA2B,SAAQ,6BAAuB;IAKrE,YAAY,UAAsB,EAAE,IAAY,EAAE,UAAoB;QACpE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,mBAA4B,CAAC;IACtC,CAAC;IAEQ,KAAK,CAAC,OAAO,CACpB,MAAc,EACd,OAAkC,EAClC,cAA8B;QAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAChD,MAAM,OAAO,GAAG;YACd,iBAAiB,EAAE,SAAS,CAAC,UAAU;YACvC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;QAEF,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;QACtE,OAAO;IACT,CAAC;CACF;AA/BD,gEA+BC"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/operations/search_indexes/update.ts"],"names":[],"mappings":";;;AAEA,kEAAqE;AAKrE,4CAAmD;AAEnD,gBAAgB;AAChB,MAAa,0BAA2B,SAAQ,+BAAyB;IAMvE,YAAY,UAAsB,EAAE,IAAY,EAAE,UAAoB;QACpE,KAAK,EAAE,CAAC;QAND,iCAA4B,GAAG,2BAAe,CAAC;QAOtD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC;IACrC,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,mBAA4B,CAAC;IACtC,CAAC;IAEQ,YAAY,CAAC,WAAuB,EAAE,QAAwB;QACrE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QAChD,OAAO;YACL,iBAAiB,EAAE,SAAS,CAAC,UAAU;YACvC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC;IACJ,CAAC;IAEQ,QAAQ,CAAC,SAA0B;QAC1C,eAAe;IACjB,CAAC;IAEQ,YAAY,CAAC,cAA8B;QAClD,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;IACnD,CAAC;CACF;AAlCD,gEAkCC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ReplaceOneOperation = exports.UpdateManyOperation = exports.UpdateOneOperation = exports.UpdateOperation = void 0;
4
4
  exports.makeUpdateStatement = makeUpdateStatement;
5
+ const responses_1 = require("../cmap/wire_protocol/responses");
5
6
  const error_1 = require("../error");
6
7
  const sort_1 = require("../sort");
7
8
  const utils_1 = require("../utils");
@@ -11,9 +12,10 @@ const operation_1 = require("./operation");
11
12
  * @internal
12
13
  * UpdateOperation is used in bulk write, while UpdateOneOperation and UpdateManyOperation are only used in the collections API
13
14
  */
14
- class UpdateOperation extends command_1.CommandOperation {
15
+ class UpdateOperation extends command_1.ModernizedCommandOperation {
15
16
  constructor(ns, statements, options) {
16
17
  super(undefined, options);
18
+ this.SERVER_COMMAND_RESPONSE_TYPE = responses_1.MongoDBResponse;
17
19
  this.options = options;
18
20
  this.ns = ns;
19
21
  this.statements = statements;
@@ -27,13 +29,12 @@ class UpdateOperation extends command_1.CommandOperation {
27
29
  }
28
30
  return this.statements.every(op => op.multi == null || op.multi === false);
29
31
  }
30
- async execute(server, session, timeoutContext) {
31
- const options = this.options ?? {};
32
- const ordered = typeof options.ordered === 'boolean' ? options.ordered : true;
32
+ buildCommandDocument(_connection, _session) {
33
+ const options = this.options;
33
34
  const command = {
34
35
  update: this.ns.collection,
35
36
  updates: this.statements,
36
- ordered
37
+ ordered: options.ordered ?? true
37
38
  };
38
39
  if (typeof options.bypassDocumentValidation === 'boolean') {
39
40
  command.bypassDocumentValidation = options.bypassDocumentValidation;
@@ -46,28 +47,28 @@ class UpdateOperation extends command_1.CommandOperation {
46
47
  if (options.comment !== undefined) {
47
48
  command.comment = options.comment;
48
49
  }
49
- const unacknowledgedWrite = this.writeConcern && this.writeConcern.w === 0;
50
+ const unacknowledgedWrite = this.writeConcern?.w === 0;
50
51
  if (unacknowledgedWrite) {
51
52
  if (this.statements.find((o) => o.hint)) {
52
53
  // TODO(NODE-3541): fix error for hint with unacknowledged writes
53
54
  throw new error_1.MongoCompatibilityError(`hint is not supported with unacknowledged writes`);
54
55
  }
55
56
  }
56
- const res = await super.executeCommand(server, session, command, timeoutContext);
57
- return res;
57
+ return command;
58
58
  }
59
59
  }
60
60
  exports.UpdateOperation = UpdateOperation;
61
61
  /** @internal */
62
62
  class UpdateOneOperation extends UpdateOperation {
63
- constructor(collection, filter, update, options) {
64
- super(collection.s.namespace, [makeUpdateStatement(filter, update, { ...options, multi: false })], options);
63
+ constructor(ns, filter, update, options) {
64
+ super(ns, [makeUpdateStatement(filter, update, { ...options, multi: false })], options);
65
65
  if (!(0, utils_1.hasAtomicOperators)(update, options)) {
66
66
  throw new error_1.MongoInvalidArgumentError('Update document requires atomic operators');
67
67
  }
68
68
  }
69
- async execute(server, session, timeoutContext) {
70
- const res = await super.execute(server, session, timeoutContext);
69
+ handleOk(response) {
70
+ const res = super.handleOk(response);
71
+ // @ts-expect-error Explain typing is broken
71
72
  if (this.explain != null)
72
73
  return res;
73
74
  if (res.code)
@@ -86,14 +87,15 @@ class UpdateOneOperation extends UpdateOperation {
86
87
  exports.UpdateOneOperation = UpdateOneOperation;
87
88
  /** @internal */
88
89
  class UpdateManyOperation extends UpdateOperation {
89
- constructor(collection, filter, update, options) {
90
- super(collection.s.namespace, [makeUpdateStatement(filter, update, { ...options, multi: true })], options);
90
+ constructor(ns, filter, update, options) {
91
+ super(ns, [makeUpdateStatement(filter, update, { ...options, multi: true })], options);
91
92
  if (!(0, utils_1.hasAtomicOperators)(update, options)) {
92
93
  throw new error_1.MongoInvalidArgumentError('Update document requires atomic operators');
93
94
  }
94
95
  }
95
- async execute(server, session, timeoutContext) {
96
- const res = await super.execute(server, session, timeoutContext);
96
+ handleOk(response) {
97
+ const res = super.handleOk(response);
98
+ // @ts-expect-error Explain typing is broken
97
99
  if (this.explain != null)
98
100
  return res;
99
101
  if (res.code)
@@ -112,14 +114,15 @@ class UpdateManyOperation extends UpdateOperation {
112
114
  exports.UpdateManyOperation = UpdateManyOperation;
113
115
  /** @internal */
114
116
  class ReplaceOneOperation extends UpdateOperation {
115
- constructor(collection, filter, replacement, options) {
116
- super(collection.s.namespace, [makeUpdateStatement(filter, replacement, { ...options, multi: false })], options);
117
+ constructor(ns, filter, replacement, options) {
118
+ super(ns, [makeUpdateStatement(filter, replacement, { ...options, multi: false })], options);
117
119
  if ((0, utils_1.hasAtomicOperators)(replacement)) {
118
120
  throw new error_1.MongoInvalidArgumentError('Replacement document must not contain atomic operators');
119
121
  }
120
122
  }
121
- async execute(server, session, timeoutContext) {
122
- const res = await super.execute(server, session, timeoutContext);
123
+ handleOk(response) {
124
+ const res = super.handleOk(response);
125
+ // @ts-expect-error Explain typing is broken
123
126
  if (this.explain != null)
124
127
  return res;
125
128
  if (res.code)
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/operations/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/operations/update.ts"],"names":[],"mappings":"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"}
@@ -1,37 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ValidateCollectionOperation = void 0;
4
+ const responses_1 = require("../cmap/wire_protocol/responses");
4
5
  const error_1 = require("../error");
5
6
  const command_1 = require("./command");
6
7
  /** @internal */
7
- class ValidateCollectionOperation extends command_1.CommandOperation {
8
+ class ValidateCollectionOperation extends command_1.ModernizedCommandOperation {
8
9
  constructor(admin, collectionName, options) {
9
- // Decorate command with extra options
10
- const command = { validate: collectionName };
11
- const keys = Object.keys(options);
12
- for (let i = 0; i < keys.length; i++) {
13
- if (Object.prototype.hasOwnProperty.call(options, keys[i]) && keys[i] !== 'session') {
14
- command[keys[i]] = options[keys[i]];
15
- }
16
- }
17
10
  super(admin.s.db, options);
11
+ this.SERVER_COMMAND_RESPONSE_TYPE = responses_1.MongoDBResponse;
18
12
  this.options = options;
19
- this.command = command;
20
13
  this.collectionName = collectionName;
21
14
  }
22
15
  get commandName() {
23
16
  return 'validate';
24
17
  }
25
- async execute(server, session, timeoutContext) {
26
- const collectionName = this.collectionName;
27
- const doc = await super.executeCommand(server, session, this.command, timeoutContext);
28
- if (doc.result != null && typeof doc.result !== 'string')
18
+ buildCommandDocument(_connection, _session) {
19
+ // Decorate command with extra options
20
+ return {
21
+ validate: this.collectionName,
22
+ ...Object.fromEntries(Object.entries(this.options).filter(entry => entry[0] !== 'session'))
23
+ };
24
+ }
25
+ handleOk(response) {
26
+ const result = super.handleOk(response);
27
+ if (result.result != null && typeof result.result !== 'string')
29
28
  throw new error_1.MongoUnexpectedServerResponseError('Error with validation data');
30
- if (doc.result != null && doc.result.match(/exception|corrupt/) != null)
31
- throw new error_1.MongoUnexpectedServerResponseError(`Invalid collection ${collectionName}`);
32
- if (doc.valid != null && !doc.valid)
33
- throw new error_1.MongoUnexpectedServerResponseError(`Invalid collection ${collectionName}`);
34
- return doc;
29
+ if (result.result != null && result.result.match(/exception|corrupt/) != null)
30
+ throw new error_1.MongoUnexpectedServerResponseError(`Invalid collection ${this.collectionName}`);
31
+ if (result.valid != null && !result.valid)
32
+ throw new error_1.MongoUnexpectedServerResponseError(`Invalid collection ${this.collectionName}`);
33
+ return response;
35
34
  }
36
35
  }
37
36
  exports.ValidateCollectionOperation = ValidateCollectionOperation;
@@ -1 +1 @@
1
- {"version":3,"file":"validate_collection.js","sourceRoot":"","sources":["../../src/operations/validate_collection.ts"],"names":[],"mappings":";;;AAEA,oCAA8D;AAI9D,uCAA2E;AAQ3E,gBAAgB;AAChB,MAAa,2BAA4B,SAAQ,0BAA0B;IAKzE,YAAY,KAAY,EAAE,cAAsB,EAAE,OAAkC;QAClF,sCAAsC;QACtC,MAAM,OAAO,GAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;QACvD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAI,OAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,UAAmB,CAAC;IAC7B,CAAC;IAEQ,KAAK,CAAC,OAAO,CACpB,MAAc,EACd,OAAkC,EAClC,cAA8B;QAE9B,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAE3C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACtF,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;YACtD,MAAM,IAAI,0CAAkC,CAAC,4BAA4B,CAAC,CAAC;QAC7E,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,IAAI;YACrE,MAAM,IAAI,0CAAkC,CAAC,sBAAsB,cAAc,EAAE,CAAC,CAAC;QACvF,IAAI,GAAG,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK;YACjC,MAAM,IAAI,0CAAkC,CAAC,sBAAsB,cAAc,EAAE,CAAC,CAAC;QAEvF,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AA1CD,kEA0CC"}
1
+ {"version":3,"file":"validate_collection.js","sourceRoot":"","sources":["../../src/operations/validate_collection.ts"],"names":[],"mappings":";;;AAGA,+DAAkE;AAClE,oCAA8D;AAE9D,uCAAqF;AAQrF,gBAAgB;AAChB,MAAa,2BAA4B,SAAQ,oCAAoC;IAKnF,YAAY,KAAY,EAAE,cAAsB,EAAE,OAAkC;QAClF,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QALpB,iCAA4B,GAAG,2BAAe,CAAC;QAMtD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,IAAa,WAAW;QACtB,OAAO,UAAmB,CAAC;IAC7B,CAAC;IAEQ,oBAAoB,CAAC,WAAuB,EAAE,QAAwB;QAC7E,sCAAsC;QACtC,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,cAAc;YAC7B,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;SAC5F,CAAC;IACJ,CAAC;IAEQ,QAAQ,CAAC,QAAgE;QAChF,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;YAC5D,MAAM,IAAI,0CAAkC,CAAC,4BAA4B,CAAC,CAAC;QAC7E,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,IAAI;YAC3E,MAAM,IAAI,0CAAkC,CAAC,sBAAsB,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAC5F,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;YACvC,MAAM,IAAI,0CAAkC,CAAC,sBAAsB,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QAE5F,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAlCD,kEAkCC"}
@@ -7,12 +7,14 @@ const errors_1 = require("../cmap/errors");
7
7
  const constants_1 = require("../constants");
8
8
  const error_1 = require("../error");
9
9
  const mongo_types_1 = require("../mongo_types");
10
+ const aggregate_1 = require("../operations/aggregate");
10
11
  const transactions_1 = require("../transactions");
11
12
  const utils_1 = require("../utils");
12
13
  const write_concern_1 = require("../write_concern");
13
14
  const common_1 = require("./common");
14
15
  const monitor_1 = require("./monitor");
15
16
  const server_description_1 = require("./server_description");
17
+ const server_selection_1 = require("./server_selection");
16
18
  const stateTransition = (0, utils_1.makeStateMachine)({
17
19
  [common_1.STATE_CLOSED]: [common_1.STATE_CLOSED, common_1.STATE_CONNECTING],
18
20
  [common_1.STATE_CONNECTING]: [common_1.STATE_CONNECTING, common_1.STATE_CLOSING, common_1.STATE_CONNECTED, common_1.STATE_CLOSED],
@@ -148,24 +150,45 @@ class Server extends mongo_types_1.TypedEventEmitter {
148
150
  throw checkoutError;
149
151
  }
150
152
  }
151
- const cmd = operation.buildCommand(conn, session);
153
+ let reauthPromise = null;
154
+ const cleanup = () => {
155
+ this.decrementOperationCount();
156
+ if (session?.pinnedConnection !== conn) {
157
+ if (reauthPromise != null) {
158
+ // The reauth promise only exists if it hasn't thrown.
159
+ const checkBackIn = () => {
160
+ this.pool.checkIn(conn);
161
+ };
162
+ void reauthPromise.then(checkBackIn, checkBackIn);
163
+ }
164
+ else {
165
+ this.pool.checkIn(conn);
166
+ }
167
+ }
168
+ };
169
+ let cmd;
170
+ try {
171
+ cmd = operation.buildCommand(conn, session);
172
+ }
173
+ catch (e) {
174
+ cleanup();
175
+ throw e;
176
+ }
152
177
  const options = operation.buildOptions(timeoutContext);
153
178
  const ns = operation.ns;
154
179
  if (this.loadBalanced && isPinnableCommand(cmd, session) && !session?.pinnedConnection) {
155
180
  session?.pin(conn);
156
181
  }
157
182
  options.directConnection = this.topology.s.options.directConnection;
158
- // There are cases where we need to flag the read preference not to get sent in
159
- // the command, such as pre-5.0 servers attempting to perform an aggregate write
160
- // with a non-primary read preference. In this case the effective read preference
161
- // (primary) is not the same as the provided and must be removed completely.
162
- if (options.omitReadPreference) {
183
+ const omitReadPreference = operation instanceof aggregate_1.AggregateOperation &&
184
+ operation.hasWriteStage &&
185
+ (0, utils_1.maxWireVersion)(conn) < server_selection_1.MIN_SECONDARY_WRITE_WIRE_VERSION;
186
+ if (omitReadPreference) {
163
187
  delete options.readPreference;
164
188
  }
165
189
  if (this.description.iscryptd) {
166
190
  options.omitMaxTimeMS = true;
167
191
  }
168
- let reauthPromise = null;
169
192
  try {
170
193
  try {
171
194
  const res = await conn.command(ns, cmd, options, operation.SERVER_COMMAND_RESPONSE_TYPE);
@@ -200,19 +223,7 @@ class Server extends mongo_types_1.TypedEventEmitter {
200
223
  }
201
224
  }
202
225
  finally {
203
- this.decrementOperationCount();
204
- if (session?.pinnedConnection !== conn) {
205
- if (reauthPromise != null) {
206
- // The reauth promise only exists if it hasn't thrown.
207
- const checkBackIn = () => {
208
- this.pool.checkIn(conn);
209
- };
210
- void reauthPromise.then(checkBackIn, checkBackIn);
211
- }
212
- else {
213
- this.pool.checkIn(conn);
214
- }
215
- }
226
+ cleanup();
216
227
  }
217
228
  }
218
229
  async command(ns, cmd, { ...options }, responseType) {
@@ -223,13 +234,6 @@ class Server extends mongo_types_1.TypedEventEmitter {
223
234
  throw new error_1.MongoServerClosedError();
224
235
  }
225
236
  options.directConnection = this.topology.s.options.directConnection;
226
- // There are cases where we need to flag the read preference not to get sent in
227
- // the command, such as pre-5.0 servers attempting to perform an aggregate write
228
- // with a non-primary read preference. In this case the effective read preference
229
- // (primary) is not the same as the provided and must be removed completely.
230
- if (options.omitReadPreference) {
231
- delete options.readPreference;
232
- }
233
237
  if (this.description.iscryptd) {
234
238
  options.omitMaxTimeMS = true;
235
239
  }