mongodb 6.3.0 → 6.4.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 (221) hide show
  1. package/lib/bson.js +2 -1
  2. package/lib/bson.js.map +1 -1
  3. package/lib/bulk/common.js +14 -9
  4. package/lib/bulk/common.js.map +1 -1
  5. package/lib/change_stream.js +4 -2
  6. package/lib/change_stream.js.map +1 -1
  7. package/lib/client-side-encryption/state_machine.js +58 -52
  8. package/lib/client-side-encryption/state_machine.js.map +1 -1
  9. package/lib/cmap/auth/auth_provider.js +4 -0
  10. package/lib/cmap/auth/auth_provider.js.map +1 -1
  11. package/lib/cmap/auth/gssapi.js +1 -1
  12. package/lib/cmap/auth/gssapi.js.map +1 -1
  13. package/lib/cmap/auth/mongo_credentials.js.map +1 -1
  14. package/lib/cmap/auth/mongocr.js +2 -2
  15. package/lib/cmap/auth/mongocr.js.map +1 -1
  16. package/lib/cmap/auth/mongodb_aws.js +58 -55
  17. package/lib/cmap/auth/mongodb_aws.js.map +1 -1
  18. package/lib/cmap/auth/mongodb_oidc/callback_workflow.js +2 -2
  19. package/lib/cmap/auth/mongodb_oidc/callback_workflow.js.map +1 -1
  20. package/lib/cmap/auth/mongodb_oidc/service_workflow.js +1 -1
  21. package/lib/cmap/auth/mongodb_oidc/service_workflow.js.map +1 -1
  22. package/lib/cmap/auth/plain.js +1 -1
  23. package/lib/cmap/auth/plain.js.map +1 -1
  24. package/lib/cmap/auth/scram.js +5 -7
  25. package/lib/cmap/auth/scram.js.map +1 -1
  26. package/lib/cmap/auth/x509.js +1 -1
  27. package/lib/cmap/auth/x509.js.map +1 -1
  28. package/lib/cmap/command_monitoring_events.js +6 -3
  29. package/lib/cmap/command_monitoring_events.js.map +1 -1
  30. package/lib/cmap/commands.js +2 -0
  31. package/lib/cmap/commands.js.map +1 -1
  32. package/lib/cmap/connect.js +88 -110
  33. package/lib/cmap/connect.js.map +1 -1
  34. package/lib/cmap/connection.js +280 -726
  35. package/lib/cmap/connection.js.map +1 -1
  36. package/lib/cmap/connection_pool.js +35 -95
  37. package/lib/cmap/connection_pool.js.map +1 -1
  38. package/lib/cmap/stream_description.js +19 -0
  39. package/lib/cmap/stream_description.js.map +1 -1
  40. package/lib/cmap/wire_protocol/compression.js.map +1 -1
  41. package/lib/cmap/wire_protocol/on_data.js +112 -0
  42. package/lib/cmap/wire_protocol/on_data.js.map +1 -0
  43. package/lib/collection.js +11 -3
  44. package/lib/collection.js.map +1 -1
  45. package/lib/connection_string.js +34 -2
  46. package/lib/connection_string.js.map +1 -1
  47. package/lib/constants.js +22 -2
  48. package/lib/constants.js.map +1 -1
  49. package/lib/cursor/abstract_cursor.js +5 -1
  50. package/lib/cursor/abstract_cursor.js.map +1 -1
  51. package/lib/error.js +7 -7
  52. package/lib/error.js.map +1 -1
  53. package/lib/index.js +9 -1
  54. package/lib/index.js.map +1 -1
  55. package/lib/mongo_client.js +8 -3
  56. package/lib/mongo_client.js.map +1 -1
  57. package/lib/mongo_client_auth_providers.js +55 -0
  58. package/lib/mongo_client_auth_providers.js.map +1 -0
  59. package/lib/mongo_logger.js +205 -27
  60. package/lib/mongo_logger.js.map +1 -1
  61. package/lib/mongo_types.js +26 -0
  62. package/lib/mongo_types.js.map +1 -1
  63. package/lib/operations/aggregate.js +3 -0
  64. package/lib/operations/aggregate.js.map +1 -1
  65. package/lib/operations/bulk_write.js +3 -0
  66. package/lib/operations/bulk_write.js.map +1 -1
  67. package/lib/operations/collections.js +3 -0
  68. package/lib/operations/collections.js.map +1 -1
  69. package/lib/operations/command.js +1 -1
  70. package/lib/operations/command.js.map +1 -1
  71. package/lib/operations/count.js +3 -0
  72. package/lib/operations/count.js.map +1 -1
  73. package/lib/operations/create_collection.js +3 -0
  74. package/lib/operations/create_collection.js.map +1 -1
  75. package/lib/operations/delete.js +3 -0
  76. package/lib/operations/delete.js.map +1 -1
  77. package/lib/operations/distinct.js +3 -0
  78. package/lib/operations/distinct.js.map +1 -1
  79. package/lib/operations/drop.js +6 -0
  80. package/lib/operations/drop.js.map +1 -1
  81. package/lib/operations/estimated_document_count.js +3 -0
  82. package/lib/operations/estimated_document_count.js.map +1 -1
  83. package/lib/operations/execute_operation.js +35 -9
  84. package/lib/operations/execute_operation.js.map +1 -1
  85. package/lib/operations/find.js +4 -1
  86. package/lib/operations/find.js.map +1 -1
  87. package/lib/operations/find_and_modify.js +5 -1
  88. package/lib/operations/find_and_modify.js.map +1 -1
  89. package/lib/operations/get_more.js +4 -1
  90. package/lib/operations/get_more.js.map +1 -1
  91. package/lib/operations/indexes.js +21 -0
  92. package/lib/operations/indexes.js.map +1 -1
  93. package/lib/operations/insert.js +6 -0
  94. package/lib/operations/insert.js.map +1 -1
  95. package/lib/operations/is_capped.js +3 -0
  96. package/lib/operations/is_capped.js.map +1 -1
  97. package/lib/operations/kill_cursors.js +4 -1
  98. package/lib/operations/kill_cursors.js.map +1 -1
  99. package/lib/operations/list_collections.js +3 -0
  100. package/lib/operations/list_collections.js.map +1 -1
  101. package/lib/operations/list_databases.js +3 -0
  102. package/lib/operations/list_databases.js.map +1 -1
  103. package/lib/operations/operation.js.map +1 -1
  104. package/lib/operations/options_operation.js +3 -0
  105. package/lib/operations/options_operation.js.map +1 -1
  106. package/lib/operations/profiling_level.js +3 -0
  107. package/lib/operations/profiling_level.js.map +1 -1
  108. package/lib/operations/remove_user.js +3 -0
  109. package/lib/operations/remove_user.js.map +1 -1
  110. package/lib/operations/rename.js +3 -0
  111. package/lib/operations/rename.js.map +1 -1
  112. package/lib/operations/run_command.js +8 -2
  113. package/lib/operations/run_command.js.map +1 -1
  114. package/lib/operations/search_indexes/create.js +4 -1
  115. package/lib/operations/search_indexes/create.js.map +1 -1
  116. package/lib/operations/search_indexes/drop.js +4 -1
  117. package/lib/operations/search_indexes/drop.js.map +1 -1
  118. package/lib/operations/search_indexes/update.js +4 -1
  119. package/lib/operations/search_indexes/update.js.map +1 -1
  120. package/lib/operations/set_profiling_level.js +3 -0
  121. package/lib/operations/set_profiling_level.js.map +1 -1
  122. package/lib/operations/stats.js +3 -0
  123. package/lib/operations/stats.js.map +1 -1
  124. package/lib/operations/update.js +3 -0
  125. package/lib/operations/update.js.map +1 -1
  126. package/lib/operations/validate_collection.js +3 -0
  127. package/lib/operations/validate_collection.js.map +1 -1
  128. package/lib/sdam/events.js +18 -0
  129. package/lib/sdam/events.js.map +1 -1
  130. package/lib/sdam/monitor.js +86 -71
  131. package/lib/sdam/monitor.js.map +1 -1
  132. package/lib/sdam/server.js +92 -98
  133. package/lib/sdam/server.js.map +1 -1
  134. package/lib/sdam/server_selection.js +13 -5
  135. package/lib/sdam/server_selection.js.map +1 -1
  136. package/lib/sdam/server_selection_events.js +85 -0
  137. package/lib/sdam/server_selection_events.js.map +1 -0
  138. package/lib/sdam/topology.js +61 -18
  139. package/lib/sdam/topology.js.map +1 -1
  140. package/lib/sessions.js +11 -9
  141. package/lib/sessions.js.map +1 -1
  142. package/lib/utils.js +25 -17
  143. package/lib/utils.js.map +1 -1
  144. package/mongodb.d.ts +131 -57
  145. package/package.json +28 -27
  146. package/src/bson.ts +2 -0
  147. package/src/bulk/common.ts +29 -22
  148. package/src/change_stream.ts +11 -5
  149. package/src/client-side-encryption/state_machine.ts +77 -62
  150. package/src/cmap/auth/auth_provider.ts +4 -0
  151. package/src/cmap/auth/gssapi.ts +1 -1
  152. package/src/cmap/auth/mongo_credentials.ts +2 -2
  153. package/src/cmap/auth/mongocr.ts +2 -6
  154. package/src/cmap/auth/mongodb_aws.ts +69 -64
  155. package/src/cmap/auth/mongodb_oidc/callback_workflow.ts +2 -2
  156. package/src/cmap/auth/mongodb_oidc/service_workflow.ts +1 -1
  157. package/src/cmap/auth/plain.ts +1 -1
  158. package/src/cmap/auth/scram.ts +7 -9
  159. package/src/cmap/auth/x509.ts +1 -5
  160. package/src/cmap/command_monitoring_events.ts +32 -4
  161. package/src/cmap/commands.ts +4 -0
  162. package/src/cmap/connect.ts +119 -159
  163. package/src/cmap/connection.ts +408 -961
  164. package/src/cmap/connection_pool.ts +93 -155
  165. package/src/cmap/stream_description.ts +21 -1
  166. package/src/cmap/wire_protocol/compression.ts +1 -2
  167. package/src/cmap/wire_protocol/on_data.ts +132 -0
  168. package/src/collection.ts +14 -6
  169. package/src/connection_string.ts +49 -3
  170. package/src/constants.ts +20 -0
  171. package/src/cursor/abstract_cursor.ts +7 -1
  172. package/src/error.ts +9 -9
  173. package/src/index.ts +33 -12
  174. package/src/mongo_client.ts +20 -7
  175. package/src/mongo_client_auth_providers.ts +54 -0
  176. package/src/mongo_logger.ts +376 -50
  177. package/src/mongo_types.ts +58 -3
  178. package/src/operations/aggregate.ts +4 -0
  179. package/src/operations/bulk_write.ts +4 -0
  180. package/src/operations/collections.ts +4 -0
  181. package/src/operations/command.ts +1 -1
  182. package/src/operations/count.ts +4 -0
  183. package/src/operations/create_collection.ts +4 -0
  184. package/src/operations/delete.ts +4 -0
  185. package/src/operations/distinct.ts +4 -0
  186. package/src/operations/drop.ts +8 -0
  187. package/src/operations/estimated_document_count.ts +4 -0
  188. package/src/operations/execute_operation.ts +28 -31
  189. package/src/operations/find.ts +5 -1
  190. package/src/operations/find_and_modify.ts +7 -5
  191. package/src/operations/get_more.ts +4 -1
  192. package/src/operations/indexes.ts +29 -0
  193. package/src/operations/insert.ts +8 -0
  194. package/src/operations/is_capped.ts +4 -0
  195. package/src/operations/kill_cursors.ts +5 -1
  196. package/src/operations/list_collections.ts +4 -0
  197. package/src/operations/list_databases.ts +4 -0
  198. package/src/operations/operation.ts +4 -0
  199. package/src/operations/options_operation.ts +3 -0
  200. package/src/operations/profiling_level.ts +4 -0
  201. package/src/operations/remove_user.ts +4 -0
  202. package/src/operations/rename.ts +4 -0
  203. package/src/operations/run_command.ts +10 -2
  204. package/src/operations/search_indexes/create.ts +5 -1
  205. package/src/operations/search_indexes/drop.ts +5 -1
  206. package/src/operations/search_indexes/update.ts +5 -1
  207. package/src/operations/set_profiling_level.ts +4 -0
  208. package/src/operations/stats.ts +4 -0
  209. package/src/operations/update.ts +4 -0
  210. package/src/operations/validate_collection.ts +4 -0
  211. package/src/sdam/events.ts +31 -3
  212. package/src/sdam/monitor.ts +119 -97
  213. package/src/sdam/server.ts +113 -152
  214. package/src/sdam/server_selection.ts +21 -13
  215. package/src/sdam/server_selection_events.ts +142 -0
  216. package/src/sdam/topology.ts +200 -46
  217. package/src/sessions.ts +33 -32
  218. package/src/utils.ts +28 -32
  219. package/lib/cmap/message_stream.js +0 -149
  220. package/lib/cmap/message_stream.js.map +0 -1
  221. package/src/cmap/message_stream.ts +0 -220
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ServerHeartbeatFailedEvent = exports.ServerHeartbeatSucceededEvent = exports.ServerHeartbeatStartedEvent = exports.TopologyClosedEvent = exports.TopologyOpeningEvent = exports.TopologyDescriptionChangedEvent = exports.ServerClosedEvent = exports.ServerOpeningEvent = exports.ServerDescriptionChangedEvent = void 0;
4
+ const constants_1 = require("../constants");
4
5
  /**
5
6
  * Emitted when server description changes, but does NOT include changes to the RTT.
6
7
  * @public
@@ -9,6 +10,7 @@ exports.ServerHeartbeatFailedEvent = exports.ServerHeartbeatSucceededEvent = exp
9
10
  class ServerDescriptionChangedEvent {
10
11
  /** @internal */
11
12
  constructor(topologyId, address, previousDescription, newDescription) {
13
+ this.name = constants_1.SERVER_DESCRIPTION_CHANGED;
12
14
  this.topologyId = topologyId;
13
15
  this.address = address;
14
16
  this.previousDescription = previousDescription;
@@ -24,6 +26,8 @@ exports.ServerDescriptionChangedEvent = ServerDescriptionChangedEvent;
24
26
  class ServerOpeningEvent {
25
27
  /** @internal */
26
28
  constructor(topologyId, address) {
29
+ /** @internal */
30
+ this.name = constants_1.SERVER_OPENING;
27
31
  this.topologyId = topologyId;
28
32
  this.address = address;
29
33
  }
@@ -37,6 +41,8 @@ exports.ServerOpeningEvent = ServerOpeningEvent;
37
41
  class ServerClosedEvent {
38
42
  /** @internal */
39
43
  constructor(topologyId, address) {
44
+ /** @internal */
45
+ this.name = constants_1.SERVER_CLOSED;
40
46
  this.topologyId = topologyId;
41
47
  this.address = address;
42
48
  }
@@ -50,6 +56,8 @@ exports.ServerClosedEvent = ServerClosedEvent;
50
56
  class TopologyDescriptionChangedEvent {
51
57
  /** @internal */
52
58
  constructor(topologyId, previousDescription, newDescription) {
59
+ /** @internal */
60
+ this.name = constants_1.TOPOLOGY_DESCRIPTION_CHANGED;
53
61
  this.topologyId = topologyId;
54
62
  this.previousDescription = previousDescription;
55
63
  this.newDescription = newDescription;
@@ -64,6 +72,8 @@ exports.TopologyDescriptionChangedEvent = TopologyDescriptionChangedEvent;
64
72
  class TopologyOpeningEvent {
65
73
  /** @internal */
66
74
  constructor(topologyId) {
75
+ /** @internal */
76
+ this.name = constants_1.TOPOLOGY_OPENING;
67
77
  this.topologyId = topologyId;
68
78
  }
69
79
  }
@@ -76,6 +86,8 @@ exports.TopologyOpeningEvent = TopologyOpeningEvent;
76
86
  class TopologyClosedEvent {
77
87
  /** @internal */
78
88
  constructor(topologyId) {
89
+ /** @internal */
90
+ this.name = constants_1.TOPOLOGY_CLOSED;
79
91
  this.topologyId = topologyId;
80
92
  }
81
93
  }
@@ -90,6 +102,8 @@ exports.TopologyClosedEvent = TopologyClosedEvent;
90
102
  class ServerHeartbeatStartedEvent {
91
103
  /** @internal */
92
104
  constructor(connectionId, awaited) {
105
+ /** @internal */
106
+ this.name = constants_1.SERVER_HEARTBEAT_STARTED;
93
107
  this.connectionId = connectionId;
94
108
  this.awaited = awaited;
95
109
  }
@@ -103,6 +117,8 @@ exports.ServerHeartbeatStartedEvent = ServerHeartbeatStartedEvent;
103
117
  class ServerHeartbeatSucceededEvent {
104
118
  /** @internal */
105
119
  constructor(connectionId, duration, reply, awaited) {
120
+ /** @internal */
121
+ this.name = constants_1.SERVER_HEARTBEAT_SUCCEEDED;
106
122
  this.connectionId = connectionId;
107
123
  this.duration = duration;
108
124
  this.reply = reply ?? {};
@@ -118,6 +134,8 @@ exports.ServerHeartbeatSucceededEvent = ServerHeartbeatSucceededEvent;
118
134
  class ServerHeartbeatFailedEvent {
119
135
  /** @internal */
120
136
  constructor(connectionId, duration, failure, awaited) {
137
+ /** @internal */
138
+ this.name = constants_1.SERVER_HEARTBEAT_FAILED;
121
139
  this.connectionId = connectionId;
122
140
  this.duration = duration;
123
141
  this.failure = failure;
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/sdam/events.ts"],"names":[],"mappings":";;;AAIA;;;;GAIG;AACH,MAAa,6BAA6B;IAUxC,gBAAgB;IAChB,YACE,UAAkB,EAClB,OAAe,EACf,mBAAsC,EACtC,cAAiC;QAEjC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;CACF;AAtBD,sEAsBC;AAED;;;;GAIG;AACH,MAAa,kBAAkB;IAM7B,gBAAgB;IAChB,YAAY,UAAkB,EAAE,OAAe;QAC7C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAXD,gDAWC;AAED;;;;GAIG;AACH,MAAa,iBAAiB;IAM5B,gBAAgB;IAChB,YAAY,UAAkB,EAAE,OAAe;QAC7C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAXD,8CAWC;AAED;;;;GAIG;AACH,MAAa,+BAA+B;IAQ1C,gBAAgB;IAChB,YACE,UAAkB,EAClB,mBAAwC,EACxC,cAAmC;QAEnC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;CACF;AAlBD,0EAkBC;AAED;;;;GAIG;AACH,MAAa,oBAAoB;IAI/B,gBAAgB;IAChB,YAAY,UAAkB;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AARD,oDAQC;AAED;;;;GAIG;AACH,MAAa,mBAAmB;IAI9B,gBAAgB;IAChB,YAAY,UAAkB;QAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AARD,kDAQC;AAED;;;;;;GAMG;AACH,MAAa,2BAA2B;IAMtC,gBAAgB;IAChB,YAAY,YAAoB,EAAE,OAAgB;QAChD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAXD,kEAWC;AAED;;;;GAIG;AACH,MAAa,6BAA6B;IAUxC,gBAAgB;IAChB,YAAY,YAAoB,EAAE,QAAgB,EAAE,KAAsB,EAAE,OAAgB;QAC1F,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAjBD,sEAiBC;AAED;;;;GAIG;AACH,MAAa,0BAA0B;IAUrC,gBAAgB;IAChB,YAAY,YAAoB,EAAE,QAAgB,EAAE,OAAc,EAAE,OAAgB;QAClF,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAjBD,gEAiBC"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/sdam/events.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,10 @@ exports.MonitorInterval = exports.RTTPinger = exports.Monitor = exports.ServerMo
4
4
  const timers_1 = require("timers");
5
5
  const bson_1 = require("../bson");
6
6
  const connect_1 = require("../cmap/connect");
7
- const connection_1 = require("../cmap/connection");
8
7
  const client_metadata_1 = require("../cmap/handshake/client_metadata");
9
8
  const constants_1 = require("../constants");
10
9
  const error_1 = require("../error");
10
+ const mongo_logger_1 = require("../mongo_logger");
11
11
  const mongo_types_1 = require("../mongo_types");
12
12
  const utils_1 = require("../utils");
13
13
  const common_1 = require("./common");
@@ -18,8 +18,6 @@ const kServer = Symbol('server');
18
18
  /** @internal */
19
19
  const kMonitorId = Symbol('monitorId');
20
20
  /** @internal */
21
- const kConnection = Symbol('connection');
22
- /** @internal */
23
21
  const kCancellationToken = Symbol('cancellationToken');
24
22
  /** @internal */
25
23
  const kRoundTripTime = Symbol('roundTripTime');
@@ -43,13 +41,12 @@ exports.ServerMonitoringMode = Object.freeze({
43
41
  });
44
42
  /** @internal */
45
43
  class Monitor extends mongo_types_1.TypedEventEmitter {
46
- get connection() {
47
- return this[kConnection];
48
- }
49
44
  constructor(server, options) {
50
45
  super();
46
+ /** @internal */
47
+ this.component = mongo_logger_1.MongoLoggableComponent.TOPOLOGY;
51
48
  this[kServer] = server;
52
- this[kConnection] = undefined;
49
+ this.connection = null;
53
50
  this[kCancellationToken] = new mongo_types_1.CancellationToken();
54
51
  this[kCancellationToken].setMaxListeners(Infinity);
55
52
  this[kMonitorId] = undefined;
@@ -64,23 +61,22 @@ class Monitor extends mongo_types_1.TypedEventEmitter {
64
61
  serverMonitoringMode: options.serverMonitoringMode
65
62
  });
66
63
  this.isRunningInFaasEnv = (0, client_metadata_1.getFAASEnv)() != null;
64
+ this.mongoLogger = this[kServer].topology.client?.mongoLogger;
67
65
  const cancellationToken = this[kCancellationToken];
68
66
  // TODO: refactor this to pull it directly from the pool, requires new ConnectionPool integration
69
- const connectOptions = Object.assign({
67
+ const connectOptions = {
70
68
  id: '<monitor>',
71
69
  generation: server.pool.generation,
72
- connectionType: connection_1.Connection,
73
70
  cancellationToken,
74
- hostAddress: server.description.hostAddress
75
- }, options,
76
- // force BSON serialization options
77
- {
71
+ hostAddress: server.description.hostAddress,
72
+ ...options,
73
+ // force BSON serialization options
78
74
  raw: false,
79
75
  useBigInt64: false,
80
76
  promoteLongs: true,
81
77
  promoteValues: true,
82
78
  promoteBuffers: true
83
- });
79
+ };
84
80
  // ensure no authentication is used for monitoring
85
81
  delete connectOptions.credentials;
86
82
  if (connectOptions.autoEncrypter) {
@@ -142,8 +138,8 @@ function resetMonitorState(monitor) {
142
138
  monitor.rttPinger?.close();
143
139
  monitor.rttPinger = undefined;
144
140
  monitor[kCancellationToken].emit('cancel');
145
- monitor[kConnection]?.destroy({ force: true });
146
- monitor[kConnection] = undefined;
141
+ monitor.connection?.destroy({ force: true });
142
+ monitor.connection = null;
147
143
  }
148
144
  function useStreamingProtocol(monitor, topologyVersion) {
149
145
  // If we have no topology version we always poll no matter
@@ -163,14 +159,15 @@ function useStreamingProtocol(monitor, topologyVersion) {
163
159
  return true;
164
160
  }
165
161
  function checkServer(monitor, callback) {
166
- let start = (0, utils_1.now)();
162
+ let start;
163
+ let awaited;
167
164
  const topologyVersion = monitor[kServer].description.topologyVersion;
168
165
  const isAwaitable = useStreamingProtocol(monitor, topologyVersion);
169
- monitor.emit(server_1.Server.SERVER_HEARTBEAT_STARTED, new events_1.ServerHeartbeatStartedEvent(monitor.address, isAwaitable));
170
- function failureHandler(err, awaited) {
171
- monitor[kConnection]?.destroy({ force: true });
172
- monitor[kConnection] = undefined;
173
- monitor.emit(server_1.Server.SERVER_HEARTBEAT_FAILED, new events_1.ServerHeartbeatFailedEvent(monitor.address, (0, utils_1.calculateDurationInMs)(start), err, awaited));
166
+ monitor.emitAndLogHeartbeat(server_1.Server.SERVER_HEARTBEAT_STARTED, monitor[kServer].topology.s.id, undefined, new events_1.ServerHeartbeatStartedEvent(monitor.address, isAwaitable));
167
+ function onHeartbeatFailed(err) {
168
+ monitor.connection?.destroy({ force: true });
169
+ monitor.connection = null;
170
+ monitor.emitAndLogHeartbeat(server_1.Server.SERVER_HEARTBEAT_FAILED, monitor[kServer].topology.s.id, undefined, new events_1.ServerHeartbeatFailedEvent(monitor.address, (0, utils_1.calculateDurationInMs)(start), err, awaited));
174
171
  const error = !(err instanceof error_1.MongoError)
175
172
  ? new error_1.MongoError(error_1.MongoError.buildErrorMessage(err), { cause: err })
176
173
  : err;
@@ -181,7 +178,30 @@ function checkServer(monitor, callback) {
181
178
  monitor.emit('resetServer', error);
182
179
  callback(err);
183
180
  }
184
- const connection = monitor[kConnection];
181
+ function onHeartbeatSucceeded(hello) {
182
+ if (!('isWritablePrimary' in hello)) {
183
+ // Provide hello-style response document.
184
+ hello.isWritablePrimary = hello[constants_1.LEGACY_HELLO_COMMAND];
185
+ }
186
+ const duration = isAwaitable && monitor.rttPinger
187
+ ? monitor.rttPinger.roundTripTime
188
+ : (0, utils_1.calculateDurationInMs)(start);
189
+ monitor.emitAndLogHeartbeat(server_1.Server.SERVER_HEARTBEAT_SUCCEEDED, monitor[kServer].topology.s.id, hello.connectionId, new events_1.ServerHeartbeatSucceededEvent(monitor.address, duration, hello, isAwaitable));
190
+ if (isAwaitable) {
191
+ // If we are using the streaming protocol then we immediately issue another 'started'
192
+ // event, otherwise the "check" is complete and return to the main monitor loop
193
+ monitor.emitAndLogHeartbeat(server_1.Server.SERVER_HEARTBEAT_STARTED, monitor[kServer].topology.s.id, undefined, new events_1.ServerHeartbeatStartedEvent(monitor.address, true));
194
+ // We have not actually sent an outgoing handshake, but when we get the next response we
195
+ // want the duration to reflect the time since we last heard from the server
196
+ start = (0, utils_1.now)();
197
+ }
198
+ else {
199
+ monitor.rttPinger?.close();
200
+ monitor.rttPinger = undefined;
201
+ callback(undefined, hello);
202
+ }
203
+ }
204
+ const { connection } = monitor;
185
205
  if (connection && !connection.closed) {
186
206
  const { serverApi, helloOk } = connection;
187
207
  const connectTimeoutMS = monitor.options.connectTimeoutMS;
@@ -201,51 +221,48 @@ function checkServer(monitor, callback) {
201
221
  if (isAwaitable && monitor.rttPinger == null) {
202
222
  monitor.rttPinger = new RTTPinger(monitor[kCancellationToken], Object.assign({ heartbeatFrequencyMS: monitor.options.heartbeatFrequencyMS }, monitor.connectOptions));
203
223
  }
204
- connection.command((0, utils_1.ns)('admin.$cmd'), cmd, options, (err, hello) => {
205
- if (err) {
206
- return failureHandler(err, isAwaitable);
207
- }
208
- if (!('isWritablePrimary' in hello)) {
209
- // Provide hello-style response document.
210
- hello.isWritablePrimary = hello[constants_1.LEGACY_HELLO_COMMAND];
211
- }
212
- const duration = isAwaitable && monitor.rttPinger
213
- ? monitor.rttPinger.roundTripTime
214
- : (0, utils_1.calculateDurationInMs)(start);
215
- monitor.emit(server_1.Server.SERVER_HEARTBEAT_SUCCEEDED, new events_1.ServerHeartbeatSucceededEvent(monitor.address, duration, hello, isAwaitable));
216
- // If we are using the streaming protocol then we immediately issue another 'started'
217
- // event, otherwise the "check" is complete and return to the main monitor loop.
218
- if (isAwaitable) {
219
- monitor.emit(server_1.Server.SERVER_HEARTBEAT_STARTED, new events_1.ServerHeartbeatStartedEvent(monitor.address, true));
220
- start = (0, utils_1.now)();
221
- }
222
- else {
223
- monitor.rttPinger?.close();
224
- monitor.rttPinger = undefined;
225
- callback(undefined, hello);
226
- }
227
- });
224
+ // Record new start time before sending handshake
225
+ start = (0, utils_1.now)();
226
+ if (isAwaitable) {
227
+ awaited = true;
228
+ return connection.exhaustCommand((0, utils_1.ns)('admin.$cmd'), cmd, options, (error, hello) => {
229
+ if (error)
230
+ return onHeartbeatFailed(error);
231
+ return onHeartbeatSucceeded(hello);
232
+ });
233
+ }
234
+ awaited = false;
235
+ connection
236
+ .command((0, utils_1.ns)('admin.$cmd'), cmd, options)
237
+ .then(onHeartbeatSucceeded, onHeartbeatFailed);
228
238
  return;
229
239
  }
230
240
  // connecting does an implicit `hello`
231
- (0, connect_1.connect)(monitor.connectOptions, (err, conn) => {
232
- if (err) {
233
- monitor[kConnection] = undefined;
234
- failureHandler(err, false);
235
- return;
241
+ (async () => {
242
+ const socket = await (0, connect_1.makeSocket)(monitor.connectOptions);
243
+ const connection = (0, connect_1.makeConnection)(monitor.connectOptions, socket);
244
+ // The start time is after socket creation but before the handshake
245
+ start = (0, utils_1.now)();
246
+ try {
247
+ await (0, connect_1.performInitialHandshake)(connection, monitor.connectOptions);
248
+ return connection;
236
249
  }
237
- if (conn) {
238
- // Tell the connection that we are using the streaming protocol so that the
239
- // connection's message stream will only read the last hello on the buffer.
240
- conn.isMonitoringConnection = true;
241
- if (isInCloseState(monitor)) {
242
- conn.destroy({ force: true });
243
- return;
244
- }
245
- monitor[kConnection] = conn;
246
- monitor.emit(server_1.Server.SERVER_HEARTBEAT_SUCCEEDED, new events_1.ServerHeartbeatSucceededEvent(monitor.address, (0, utils_1.calculateDurationInMs)(start), conn.hello, useStreamingProtocol(monitor, conn.hello?.topologyVersion)));
247
- callback(undefined, conn.hello);
250
+ catch (error) {
251
+ connection.destroy({ force: false });
252
+ throw error;
253
+ }
254
+ })().then(connection => {
255
+ if (isInCloseState(monitor)) {
256
+ connection.destroy({ force: true });
257
+ return;
248
258
  }
259
+ monitor.connection = connection;
260
+ monitor.emitAndLogHeartbeat(server_1.Server.SERVER_HEARTBEAT_SUCCEEDED, monitor[kServer].topology.s.id, connection.hello?.connectionId, new events_1.ServerHeartbeatSucceededEvent(monitor.address, (0, utils_1.calculateDurationInMs)(start), connection.hello, useStreamingProtocol(monitor, connection.hello?.topologyVersion)));
261
+ callback(undefined, connection.hello);
262
+ }, error => {
263
+ monitor.connection = null;
264
+ awaited = false;
265
+ onHeartbeatFailed(error);
249
266
  });
250
267
  }
251
268
  function monitorServer(monitor) {
@@ -329,18 +346,16 @@ function measureRoundTripTime(rttPinger, options) {
329
346
  }
330
347
  const connection = rttPinger.connection;
331
348
  if (connection == null) {
332
- (0, connect_1.connect)(options, (err, conn) => {
333
- if (err) {
334
- rttPinger.connection = undefined;
335
- rttPinger[kRoundTripTime] = 0;
336
- return;
337
- }
338
- measureAndReschedule(conn);
349
+ (0, connect_1.connect)(options).then(connection => {
350
+ measureAndReschedule(connection);
351
+ }, () => {
352
+ rttPinger.connection = undefined;
353
+ rttPinger[kRoundTripTime] = 0;
339
354
  });
340
355
  return;
341
356
  }
342
357
  const commandName = connection.serverApi?.version || connection.helloOk ? 'hello' : constants_1.LEGACY_HELLO_COMMAND;
343
- connection.commandAsync((0, utils_1.ns)('admin.$cmd'), { [commandName]: 1 }, undefined).then(() => measureAndReschedule(), () => {
358
+ connection.command((0, utils_1.ns)('admin.$cmd'), { [commandName]: 1 }, undefined).then(() => measureAndReschedule(), () => {
344
359
  rttPinger.connection?.destroy({ force: true });
345
360
  rttPinger.connection = undefined;
346
361
  rttPinger[kRoundTripTime] = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/sdam/monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/sdam/monitor.ts"],"names":[],"mappings":"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"}