mongodb 4.2.0 → 4.3.1

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 (267) hide show
  1. package/README.md +2 -2
  2. package/lib/admin.js +3 -3
  3. package/lib/admin.js.map +1 -1
  4. package/lib/bson.js +16 -14
  5. package/lib/bson.js.map +1 -1
  6. package/lib/bulk/common.js +7 -7
  7. package/lib/bulk/common.js.map +1 -1
  8. package/lib/bulk/ordered.js +1 -1
  9. package/lib/bulk/ordered.js.map +1 -1
  10. package/lib/bulk/unordered.js +1 -1
  11. package/lib/bulk/unordered.js.map +1 -1
  12. package/lib/change_stream.js +6 -7
  13. package/lib/change_stream.js.map +1 -1
  14. package/lib/cmap/auth/auth_provider.js.map +1 -1
  15. package/lib/cmap/auth/gssapi.js +3 -3
  16. package/lib/cmap/auth/gssapi.js.map +1 -1
  17. package/lib/cmap/auth/mongo_credentials.js +24 -26
  18. package/lib/cmap/auth/mongo_credentials.js.map +1 -1
  19. package/lib/cmap/auth/mongocr.js +2 -2
  20. package/lib/cmap/auth/mongocr.js.map +1 -1
  21. package/lib/cmap/auth/mongodb_aws.js +6 -6
  22. package/lib/cmap/auth/mongodb_aws.js.map +1 -1
  23. package/lib/cmap/auth/plain.js +1 -1
  24. package/lib/cmap/auth/plain.js.map +1 -1
  25. package/lib/cmap/auth/providers.js +21 -0
  26. package/lib/cmap/auth/providers.js.map +1 -0
  27. package/lib/cmap/auth/scram.js +4 -4
  28. package/lib/cmap/auth/scram.js.map +1 -1
  29. package/lib/cmap/auth/x509.js +1 -1
  30. package/lib/cmap/auth/x509.js.map +1 -1
  31. package/lib/cmap/command_monitoring_events.js +3 -2
  32. package/lib/cmap/command_monitoring_events.js.map +1 -1
  33. package/lib/cmap/commands.js +20 -11
  34. package/lib/cmap/commands.js.map +1 -1
  35. package/lib/cmap/connect.js +119 -31
  36. package/lib/cmap/connect.js.map +1 -1
  37. package/lib/cmap/connection.js +36 -35
  38. package/lib/cmap/connection.js.map +1 -1
  39. package/lib/cmap/connection_pool.js +19 -30
  40. package/lib/cmap/connection_pool.js.map +1 -1
  41. package/lib/cmap/message_stream.js +3 -3
  42. package/lib/cmap/message_stream.js.map +1 -1
  43. package/lib/cmap/stream_description.js +4 -4
  44. package/lib/cmap/stream_description.js.map +1 -1
  45. package/lib/cmap/wire_protocol/compression.js +2 -1
  46. package/lib/cmap/wire_protocol/compression.js.map +1 -1
  47. package/lib/cmap/wire_protocol/shared.js +4 -3
  48. package/lib/cmap/wire_protocol/shared.js.map +1 -1
  49. package/lib/collection.js +45 -47
  50. package/lib/collection.js.map +1 -1
  51. package/lib/connection_string.js +48 -23
  52. package/lib/connection_string.js.map +1 -1
  53. package/lib/constants.js +113 -1
  54. package/lib/constants.js.map +1 -1
  55. package/lib/cursor/abstract_cursor.js +10 -7
  56. package/lib/cursor/abstract_cursor.js.map +1 -1
  57. package/lib/cursor/aggregation_cursor.js +1 -1
  58. package/lib/cursor/aggregation_cursor.js.map +1 -1
  59. package/lib/cursor/find_cursor.js +1 -1
  60. package/lib/cursor/find_cursor.js.map +1 -1
  61. package/lib/db.js +23 -13
  62. package/lib/db.js.map +1 -1
  63. package/lib/deps.js +0 -1
  64. package/lib/deps.js.map +1 -1
  65. package/lib/encrypter.js +12 -4
  66. package/lib/encrypter.js.map +1 -1
  67. package/lib/error.js +47 -24
  68. package/lib/error.js.map +1 -1
  69. package/lib/gridfs/download.js +1 -1
  70. package/lib/gridfs/download.js.map +1 -1
  71. package/lib/gridfs/index.js +3 -3
  72. package/lib/gridfs/index.js.map +1 -1
  73. package/lib/gridfs/upload.js +3 -2
  74. package/lib/gridfs/upload.js.map +1 -1
  75. package/lib/index.js +81 -81
  76. package/lib/index.js.map +1 -1
  77. package/lib/logger.js +1 -1
  78. package/lib/logger.js.map +1 -1
  79. package/lib/mongo_client.js +5 -5
  80. package/lib/mongo_client.js.map +1 -1
  81. package/lib/mongo_types.js.map +1 -1
  82. package/lib/operations/add_user.js +3 -3
  83. package/lib/operations/add_user.js.map +1 -1
  84. package/lib/operations/aggregate.js +1 -1
  85. package/lib/operations/aggregate.js.map +1 -1
  86. package/lib/operations/bulk_write.js.map +1 -1
  87. package/lib/operations/collections.js +1 -1
  88. package/lib/operations/collections.js.map +1 -1
  89. package/lib/operations/command.js +5 -6
  90. package/lib/operations/command.js.map +1 -1
  91. package/lib/operations/common_functions.js.map +1 -1
  92. package/lib/operations/connect.js +4 -13
  93. package/lib/operations/connect.js.map +1 -1
  94. package/lib/operations/count.js +1 -1
  95. package/lib/operations/count.js.map +1 -1
  96. package/lib/operations/count_documents.js.map +1 -1
  97. package/lib/operations/create_collection.js +3 -2
  98. package/lib/operations/create_collection.js.map +1 -1
  99. package/lib/operations/delete.js +3 -3
  100. package/lib/operations/delete.js.map +1 -1
  101. package/lib/operations/distinct.js +3 -3
  102. package/lib/operations/distinct.js.map +1 -1
  103. package/lib/operations/drop.js +1 -1
  104. package/lib/operations/drop.js.map +1 -1
  105. package/lib/operations/estimated_document_count.js +2 -2
  106. package/lib/operations/estimated_document_count.js.map +1 -1
  107. package/lib/operations/eval.js +2 -2
  108. package/lib/operations/eval.js.map +1 -1
  109. package/lib/operations/execute_operation.js +15 -9
  110. package/lib/operations/execute_operation.js.map +1 -1
  111. package/lib/operations/find.js +5 -5
  112. package/lib/operations/find.js.map +1 -1
  113. package/lib/operations/find_and_modify.js +2 -2
  114. package/lib/operations/find_and_modify.js.map +1 -1
  115. package/lib/operations/get_more.js +28 -0
  116. package/lib/operations/get_more.js.map +1 -0
  117. package/lib/operations/indexes.js +4 -4
  118. package/lib/operations/indexes.js.map +1 -1
  119. package/lib/operations/insert.js +3 -3
  120. package/lib/operations/insert.js.map +1 -1
  121. package/lib/operations/is_capped.js +1 -1
  122. package/lib/operations/is_capped.js.map +1 -1
  123. package/lib/operations/list_collections.js +3 -3
  124. package/lib/operations/list_collections.js.map +1 -1
  125. package/lib/operations/list_databases.js +1 -1
  126. package/lib/operations/list_databases.js.map +1 -1
  127. package/lib/operations/map_reduce.js +4 -3
  128. package/lib/operations/map_reduce.js.map +1 -1
  129. package/lib/operations/operation.js +3 -2
  130. package/lib/operations/operation.js.map +1 -1
  131. package/lib/operations/options_operation.js +1 -1
  132. package/lib/operations/options_operation.js.map +1 -1
  133. package/lib/operations/profiling_level.js +1 -1
  134. package/lib/operations/profiling_level.js.map +1 -1
  135. package/lib/operations/remove_user.js +1 -1
  136. package/lib/operations/remove_user.js.map +1 -1
  137. package/lib/operations/rename.js +3 -3
  138. package/lib/operations/rename.js.map +1 -1
  139. package/lib/operations/run_command.js +1 -1
  140. package/lib/operations/run_command.js.map +1 -1
  141. package/lib/operations/set_profiling_level.js +2 -2
  142. package/lib/operations/set_profiling_level.js.map +1 -1
  143. package/lib/operations/stats.js +1 -1
  144. package/lib/operations/stats.js.map +1 -1
  145. package/lib/operations/update.js +2 -2
  146. package/lib/operations/update.js.map +1 -1
  147. package/lib/operations/validate_collection.js +1 -1
  148. package/lib/operations/validate_collection.js.map +1 -1
  149. package/lib/read_preference.js +15 -5
  150. package/lib/read_preference.js.map +1 -1
  151. package/lib/sdam/events.js +4 -4
  152. package/lib/sdam/monitor.js +19 -18
  153. package/lib/sdam/monitor.js.map +1 -1
  154. package/lib/sdam/server.js +24 -31
  155. package/lib/sdam/server.js.map +1 -1
  156. package/lib/sdam/server_description.js +38 -38
  157. package/lib/sdam/server_description.js.map +1 -1
  158. package/lib/sdam/server_selection.js +19 -3
  159. package/lib/sdam/server_selection.js.map +1 -1
  160. package/lib/sdam/srv_polling.js +2 -2
  161. package/lib/sdam/srv_polling.js.map +1 -1
  162. package/lib/sdam/topology.js +32 -62
  163. package/lib/sdam/topology.js.map +1 -1
  164. package/lib/sdam/topology_description.js +3 -3
  165. package/lib/sdam/topology_description.js.map +1 -1
  166. package/lib/sessions.js +13 -28
  167. package/lib/sessions.js.map +1 -1
  168. package/lib/transactions.js +1 -1
  169. package/lib/transactions.js.map +1 -1
  170. package/lib/utils.js +46 -15
  171. package/lib/utils.js.map +1 -1
  172. package/mongodb.d.ts +145 -61
  173. package/mongodb.ts34.d.ts +173 -60
  174. package/package.json +29 -28
  175. package/src/admin.ts +9 -9
  176. package/src/bson.ts +26 -17
  177. package/src/bulk/common.ts +22 -23
  178. package/src/bulk/ordered.ts +4 -4
  179. package/src/bulk/unordered.ts +5 -5
  180. package/src/change_stream.ts +31 -28
  181. package/src/cmap/auth/auth_provider.ts +3 -3
  182. package/src/cmap/auth/gssapi.ts +8 -8
  183. package/src/cmap/auth/mongo_credentials.ts +11 -15
  184. package/src/cmap/auth/mongocr.ts +3 -2
  185. package/src/cmap/auth/mongodb_aws.ts +10 -11
  186. package/src/cmap/auth/plain.ts +1 -1
  187. package/src/cmap/auth/providers.ts +21 -0
  188. package/src/cmap/auth/scram.ts +9 -9
  189. package/src/cmap/auth/x509.ts +3 -3
  190. package/src/cmap/command_monitoring_events.ts +4 -3
  191. package/src/cmap/commands.ts +30 -19
  192. package/src/cmap/connect.ts +161 -37
  193. package/src/cmap/connection.ts +83 -63
  194. package/src/cmap/connection_pool.ts +39 -39
  195. package/src/cmap/connection_pool_events.ts +1 -1
  196. package/src/cmap/message_stream.ts +9 -8
  197. package/src/cmap/stream_description.ts +5 -5
  198. package/src/cmap/wire_protocol/compression.ts +4 -3
  199. package/src/cmap/wire_protocol/shared.ts +10 -9
  200. package/src/collection.ts +114 -95
  201. package/src/connection_string.ts +66 -29
  202. package/src/constants.ts +122 -0
  203. package/src/cursor/abstract_cursor.ts +21 -22
  204. package/src/cursor/aggregation_cursor.ts +6 -6
  205. package/src/cursor/find_cursor.ts +2 -2
  206. package/src/db.ts +44 -33
  207. package/src/deps.ts +3 -1
  208. package/src/encrypter.ts +12 -3
  209. package/src/error.ts +52 -24
  210. package/src/gridfs/download.ts +10 -8
  211. package/src/gridfs/index.ts +11 -11
  212. package/src/gridfs/upload.ts +13 -10
  213. package/src/index.ts +204 -199
  214. package/src/logger.ts +2 -1
  215. package/src/mongo_client.ts +46 -32
  216. package/src/mongo_types.ts +119 -21
  217. package/src/operations/add_user.ts +7 -6
  218. package/src/operations/aggregate.ts +5 -5
  219. package/src/operations/bulk_write.ts +5 -5
  220. package/src/operations/collections.ts +2 -2
  221. package/src/operations/command.ts +15 -9
  222. package/src/operations/common_functions.ts +4 -4
  223. package/src/operations/connect.ts +4 -14
  224. package/src/operations/count.ts +4 -4
  225. package/src/operations/count_documents.ts +3 -3
  226. package/src/operations/create_collection.ts +7 -6
  227. package/src/operations/delete.ts +5 -5
  228. package/src/operations/distinct.ts +4 -4
  229. package/src/operations/drop.ts +4 -4
  230. package/src/operations/estimated_document_count.ts +5 -5
  231. package/src/operations/eval.ts +5 -5
  232. package/src/operations/execute_operation.ts +21 -13
  233. package/src/operations/find.ts +14 -14
  234. package/src/operations/find_and_modify.ts +7 -7
  235. package/src/operations/get_more.ts +49 -0
  236. package/src/operations/indexes.ts +16 -16
  237. package/src/operations/insert.ts +9 -9
  238. package/src/operations/is_capped.ts +3 -3
  239. package/src/operations/list_collections.ts +6 -6
  240. package/src/operations/list_databases.ts +4 -4
  241. package/src/operations/map_reduce.ts +10 -9
  242. package/src/operations/operation.ts +5 -4
  243. package/src/operations/options_operation.ts +3 -3
  244. package/src/operations/profiling_level.ts +4 -4
  245. package/src/operations/remove_user.ts +4 -4
  246. package/src/operations/rename.ts +6 -6
  247. package/src/operations/run_command.ts +3 -3
  248. package/src/operations/set_profiling_level.ts +6 -5
  249. package/src/operations/stats.ts +4 -4
  250. package/src/operations/update.ts +10 -10
  251. package/src/operations/validate_collection.ts +4 -4
  252. package/src/read_preference.ts +18 -7
  253. package/src/sdam/common.ts +2 -2
  254. package/src/sdam/events.ts +5 -5
  255. package/src/sdam/monitor.ts +29 -32
  256. package/src/sdam/server.ts +64 -62
  257. package/src/sdam/server_description.ts +41 -48
  258. package/src/sdam/server_selection.ts +21 -3
  259. package/src/sdam/srv_polling.ts +3 -2
  260. package/src/sdam/topology.ts +71 -89
  261. package/src/sdam/topology_description.ts +5 -5
  262. package/src/sessions.ts +31 -48
  263. package/src/transactions.ts +4 -4
  264. package/src/utils.ts +69 -33
  265. package/lib/cmap/auth/defaultAuthProviders.js +0 -30
  266. package/lib/cmap/auth/defaultAuthProviders.js.map +0 -1
  267. package/src/cmap/auth/defaultAuthProviders.ts +0 -32
package/lib/collection.js CHANGED
@@ -1,34 +1,33 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Collection = void 0;
4
- const utils_1 = require("./utils");
5
- const read_preference_1 = require("./read_preference");
6
- const utils_2 = require("./utils");
7
4
  const bson_1 = require("./bson");
8
- const error_1 = require("./error");
9
- const unordered_1 = require("./bulk/unordered");
10
5
  const ordered_1 = require("./bulk/ordered");
6
+ const unordered_1 = require("./bulk/unordered");
11
7
  const change_stream_1 = require("./change_stream");
12
- const write_concern_1 = require("./write_concern");
13
- const read_concern_1 = require("./read_concern");
14
8
  const aggregation_cursor_1 = require("./cursor/aggregation_cursor");
9
+ const find_cursor_1 = require("./cursor/find_cursor");
10
+ const error_1 = require("./error");
15
11
  const bulk_write_1 = require("./operations/bulk_write");
16
12
  const count_documents_1 = require("./operations/count_documents");
17
- const indexes_1 = require("./operations/indexes");
13
+ const delete_1 = require("./operations/delete");
18
14
  const distinct_1 = require("./operations/distinct");
19
15
  const drop_1 = require("./operations/drop");
20
16
  const estimated_document_count_1 = require("./operations/estimated_document_count");
17
+ const execute_operation_1 = require("./operations/execute_operation");
21
18
  const find_and_modify_1 = require("./operations/find_and_modify");
19
+ const indexes_1 = require("./operations/indexes");
22
20
  const insert_1 = require("./operations/insert");
23
- const update_1 = require("./operations/update");
24
- const delete_1 = require("./operations/delete");
25
21
  const is_capped_1 = require("./operations/is_capped");
26
22
  const map_reduce_1 = require("./operations/map_reduce");
27
23
  const options_operation_1 = require("./operations/options_operation");
28
24
  const rename_1 = require("./operations/rename");
29
25
  const stats_1 = require("./operations/stats");
30
- const execute_operation_1 = require("./operations/execute_operation");
31
- const find_cursor_1 = require("./cursor/find_cursor");
26
+ const update_1 = require("./operations/update");
27
+ const read_concern_1 = require("./read_concern");
28
+ const read_preference_1 = require("./read_preference");
29
+ const utils_1 = require("./utils");
30
+ const write_concern_1 = require("./write_concern");
32
31
  /**
33
32
  * The **Collection** class is an internal class that embodies a MongoDB collection
34
33
  * allowing for insert/update/remove/find and other command operation on that MongoDB collection.
@@ -64,18 +63,17 @@ class Collection {
64
63
  */
65
64
  constructor(db, name, options) {
66
65
  var _a, _b;
67
- (0, utils_2.checkCollectionName)(name);
66
+ (0, utils_1.checkCollectionName)(name);
68
67
  // Internal state
69
68
  this.s = {
70
69
  db,
71
70
  options,
72
- namespace: new utils_2.MongoDBNamespace(db.databaseName, name),
71
+ namespace: new utils_1.MongoDBNamespace(db.databaseName, name),
73
72
  pkFactory: (_b = (_a = db.options) === null || _a === void 0 ? void 0 : _a.pkFactory) !== null && _b !== void 0 ? _b : utils_1.DEFAULT_PK_FACTORY,
74
73
  readPreference: read_preference_1.ReadPreference.fromOptions(options),
75
74
  bsonOptions: (0, bson_1.resolveBSONOptions)(options, db),
76
75
  readConcern: read_concern_1.ReadConcern.fromOptions(options),
77
- writeConcern: write_concern_1.WriteConcern.fromOptions(options),
78
- slaveOk: options == null || options.slaveOk == null ? db.slaveOk : options.slaveOk
76
+ writeConcern: write_concern_1.WriteConcern.fromOptions(options)
79
77
  };
80
78
  }
81
79
  /**
@@ -135,7 +133,7 @@ class Collection {
135
133
  return this.s.collectionHint;
136
134
  }
137
135
  set hint(v) {
138
- this.s.collectionHint = (0, utils_2.normalizeHintField)(v);
136
+ this.s.collectionHint = (0, utils_1.normalizeHintField)(v);
139
137
  }
140
138
  insertOne(doc, options, callback) {
141
139
  if (typeof options === 'function') {
@@ -147,13 +145,13 @@ class Collection {
147
145
  if (options && Reflect.get(options, 'w')) {
148
146
  options.writeConcern = write_concern_1.WriteConcern.fromOptions(Reflect.get(options, 'w'));
149
147
  }
150
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new insert_1.InsertOneOperation(this, doc, (0, utils_1.resolveOptions)(this, options)), callback);
148
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new insert_1.InsertOneOperation(this, doc, (0, utils_1.resolveOptions)(this, options)), callback);
151
149
  }
152
150
  insertMany(docs, options, callback) {
153
151
  if (typeof options === 'function')
154
152
  (callback = options), (options = {});
155
153
  options = options ? Object.assign({}, options) : { ordered: true };
156
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new insert_1.InsertManyOperation(this, docs, (0, utils_1.resolveOptions)(this, options)), callback);
154
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new insert_1.InsertManyOperation(this, docs, (0, utils_1.resolveOptions)(this, options)), callback);
157
155
  }
158
156
  bulkWrite(operations, options, callback) {
159
157
  if (typeof options === 'function')
@@ -162,27 +160,27 @@ class Collection {
162
160
  if (!Array.isArray(operations)) {
163
161
  throw new error_1.MongoInvalidArgumentError('Argument "operations" must be an array of documents');
164
162
  }
165
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new bulk_write_1.BulkWriteOperation(this, operations, (0, utils_1.resolveOptions)(this, options)), callback);
163
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new bulk_write_1.BulkWriteOperation(this, operations, (0, utils_1.resolveOptions)(this, options)), callback);
166
164
  }
167
165
  updateOne(filter, update, options, callback) {
168
166
  if (typeof options === 'function')
169
167
  (callback = options), (options = {});
170
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new update_1.UpdateOneOperation(this, filter, update, (0, utils_1.resolveOptions)(this, options)), callback);
168
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new update_1.UpdateOneOperation(this, filter, update, (0, utils_1.resolveOptions)(this, options)), callback);
171
169
  }
172
170
  replaceOne(filter, replacement, options, callback) {
173
171
  if (typeof options === 'function')
174
172
  (callback = options), (options = {});
175
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new update_1.ReplaceOneOperation(this, filter, replacement, (0, utils_1.resolveOptions)(this, options)), callback);
173
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new update_1.ReplaceOneOperation(this, filter, replacement, (0, utils_1.resolveOptions)(this, options)), callback);
176
174
  }
177
175
  updateMany(filter, update, options, callback) {
178
176
  if (typeof options === 'function')
179
177
  (callback = options), (options = {});
180
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new update_1.UpdateManyOperation(this, filter, update, (0, utils_1.resolveOptions)(this, options)), callback);
178
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new update_1.UpdateManyOperation(this, filter, update, (0, utils_1.resolveOptions)(this, options)), callback);
181
179
  }
182
180
  deleteOne(filter, options, callback) {
183
181
  if (typeof options === 'function')
184
182
  (callback = options), (options = {});
185
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new delete_1.DeleteOneOperation(this, filter, (0, utils_1.resolveOptions)(this, options)), callback);
183
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new delete_1.DeleteOneOperation(this, filter, (0, utils_1.resolveOptions)(this, options)), callback);
186
184
  }
187
185
  deleteMany(filter, options, callback) {
188
186
  if (filter == null) {
@@ -199,13 +197,13 @@ class Collection {
199
197
  callback = options;
200
198
  options = {};
201
199
  }
202
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new delete_1.DeleteManyOperation(this, filter, (0, utils_1.resolveOptions)(this, options)), callback);
200
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new delete_1.DeleteManyOperation(this, filter, (0, utils_1.resolveOptions)(this, options)), callback);
203
201
  }
204
202
  rename(newName, options, callback) {
205
203
  if (typeof options === 'function')
206
204
  (callback = options), (options = {});
207
205
  // Intentionally, we do not inherit options from parent for this operation.
208
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new rename_1.RenameOperation(this, newName, {
206
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new rename_1.RenameOperation(this, newName, {
209
207
  ...options,
210
208
  readPreference: read_preference_1.ReadPreference.PRIMARY
211
209
  }), callback);
@@ -214,7 +212,7 @@ class Collection {
214
212
  if (typeof options === 'function')
215
213
  (callback = options), (options = {});
216
214
  options = options !== null && options !== void 0 ? options : {};
217
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new drop_1.DropCollectionOperation(this.s.db, this.collectionName, options), callback);
215
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new drop_1.DropCollectionOperation(this.s.db, this.collectionName, options), callback);
218
216
  }
219
217
  findOne(filter, options, callback) {
220
218
  if (callback != null && typeof callback !== 'function') {
@@ -240,22 +238,22 @@ class Collection {
240
238
  if (typeof options === 'function') {
241
239
  throw new error_1.MongoInvalidArgumentError('Argument "options" must not be function');
242
240
  }
243
- return new find_cursor_1.FindCursor((0, utils_2.getTopology)(this), this.s.namespace, filter, (0, utils_1.resolveOptions)(this, options));
241
+ return new find_cursor_1.FindCursor((0, utils_1.getTopology)(this), this.s.namespace, filter, (0, utils_1.resolveOptions)(this, options));
244
242
  }
245
243
  options(options, callback) {
246
244
  if (typeof options === 'function')
247
245
  (callback = options), (options = {});
248
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new options_operation_1.OptionsOperation(this, (0, utils_1.resolveOptions)(this, options)), callback);
246
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new options_operation_1.OptionsOperation(this, (0, utils_1.resolveOptions)(this, options)), callback);
249
247
  }
250
248
  isCapped(options, callback) {
251
249
  if (typeof options === 'function')
252
250
  (callback = options), (options = {});
253
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new is_capped_1.IsCappedOperation(this, (0, utils_1.resolveOptions)(this, options)), callback);
251
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new is_capped_1.IsCappedOperation(this, (0, utils_1.resolveOptions)(this, options)), callback);
254
252
  }
255
253
  createIndex(indexSpec, options, callback) {
256
254
  if (typeof options === 'function')
257
255
  (callback = options), (options = {});
258
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new indexes_1.CreateIndexOperation(this, this.collectionName, indexSpec, (0, utils_1.resolveOptions)(this, options)), callback);
256
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new indexes_1.CreateIndexOperation(this, this.collectionName, indexSpec, (0, utils_1.resolveOptions)(this, options)), callback);
259
257
  }
260
258
  createIndexes(indexSpecs, options, callback) {
261
259
  if (typeof options === 'function')
@@ -263,7 +261,7 @@ class Collection {
263
261
  options = options ? Object.assign({}, options) : {};
264
262
  if (typeof options.maxTimeMS !== 'number')
265
263
  delete options.maxTimeMS;
266
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new indexes_1.CreateIndexesOperation(this, this.collectionName, indexSpecs, (0, utils_1.resolveOptions)(this, options)), callback);
264
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new indexes_1.CreateIndexesOperation(this, this.collectionName, indexSpecs, (0, utils_1.resolveOptions)(this, options)), callback);
267
265
  }
268
266
  dropIndex(indexName, options, callback) {
269
267
  if (typeof options === 'function')
@@ -271,12 +269,12 @@ class Collection {
271
269
  options = (0, utils_1.resolveOptions)(this, options);
272
270
  // Run only against primary
273
271
  options.readPreference = read_preference_1.ReadPreference.primary;
274
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new indexes_1.DropIndexOperation(this, indexName, options), callback);
272
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new indexes_1.DropIndexOperation(this, indexName, options), callback);
275
273
  }
276
274
  dropIndexes(options, callback) {
277
275
  if (typeof options === 'function')
278
276
  (callback = options), (options = {});
279
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new indexes_1.DropIndexesOperation(this, (0, utils_1.resolveOptions)(this, options)), callback);
277
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new indexes_1.DropIndexesOperation(this, (0, utils_1.resolveOptions)(this, options)), callback);
280
278
  }
281
279
  /**
282
280
  * Get the list of all indexes information for the collection.
@@ -289,17 +287,17 @@ class Collection {
289
287
  indexExists(indexes, options, callback) {
290
288
  if (typeof options === 'function')
291
289
  (callback = options), (options = {});
292
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new indexes_1.IndexExistsOperation(this, indexes, (0, utils_1.resolveOptions)(this, options)), callback);
290
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new indexes_1.IndexExistsOperation(this, indexes, (0, utils_1.resolveOptions)(this, options)), callback);
293
291
  }
294
292
  indexInformation(options, callback) {
295
293
  if (typeof options === 'function')
296
294
  (callback = options), (options = {});
297
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new indexes_1.IndexInformationOperation(this.s.db, this.collectionName, (0, utils_1.resolveOptions)(this, options)), callback);
295
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new indexes_1.IndexInformationOperation(this.s.db, this.collectionName, (0, utils_1.resolveOptions)(this, options)), callback);
298
296
  }
299
297
  estimatedDocumentCount(options, callback) {
300
298
  if (typeof options === 'function')
301
299
  (callback = options), (options = {});
302
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new estimated_document_count_1.EstimatedDocumentCountOperation(this, (0, utils_1.resolveOptions)(this, options)), callback);
300
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new estimated_document_count_1.EstimatedDocumentCountOperation(this, (0, utils_1.resolveOptions)(this, options)), callback);
303
301
  }
304
302
  countDocuments(filter, options, callback) {
305
303
  if (filter == null) {
@@ -315,7 +313,7 @@ class Collection {
315
313
  }
316
314
  }
317
315
  filter !== null && filter !== void 0 ? filter : (filter = {});
318
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new count_documents_1.CountDocumentsOperation(this, filter, (0, utils_1.resolveOptions)(this, options)), callback);
316
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new count_documents_1.CountDocumentsOperation(this, filter, (0, utils_1.resolveOptions)(this, options)), callback);
319
317
  }
320
318
  // Implementation
321
319
  distinct(key, filter, options, callback) {
@@ -328,33 +326,33 @@ class Collection {
328
326
  }
329
327
  }
330
328
  filter !== null && filter !== void 0 ? filter : (filter = {});
331
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new distinct_1.DistinctOperation(this, key, filter, (0, utils_1.resolveOptions)(this, options)), callback);
329
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new distinct_1.DistinctOperation(this, key, filter, (0, utils_1.resolveOptions)(this, options)), callback);
332
330
  }
333
331
  indexes(options, callback) {
334
332
  if (typeof options === 'function')
335
333
  (callback = options), (options = {});
336
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new indexes_1.IndexesOperation(this, (0, utils_1.resolveOptions)(this, options)), callback);
334
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new indexes_1.IndexesOperation(this, (0, utils_1.resolveOptions)(this, options)), callback);
337
335
  }
338
336
  stats(options, callback) {
339
337
  if (typeof options === 'function')
340
338
  (callback = options), (options = {});
341
339
  options = options !== null && options !== void 0 ? options : {};
342
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new stats_1.CollStatsOperation(this, options), callback);
340
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new stats_1.CollStatsOperation(this, options), callback);
343
341
  }
344
342
  findOneAndDelete(filter, options, callback) {
345
343
  if (typeof options === 'function')
346
344
  (callback = options), (options = {});
347
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new find_and_modify_1.FindOneAndDeleteOperation(this, filter, (0, utils_1.resolveOptions)(this, options)), callback);
345
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new find_and_modify_1.FindOneAndDeleteOperation(this, filter, (0, utils_1.resolveOptions)(this, options)), callback);
348
346
  }
349
347
  findOneAndReplace(filter, replacement, options, callback) {
350
348
  if (typeof options === 'function')
351
349
  (callback = options), (options = {});
352
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new find_and_modify_1.FindOneAndReplaceOperation(this, filter, replacement, (0, utils_1.resolveOptions)(this, options)), callback);
350
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new find_and_modify_1.FindOneAndReplaceOperation(this, filter, replacement, (0, utils_1.resolveOptions)(this, options)), callback);
353
351
  }
354
352
  findOneAndUpdate(filter, update, options, callback) {
355
353
  if (typeof options === 'function')
356
354
  (callback = options), (options = {});
357
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new find_and_modify_1.FindOneAndUpdateOperation(this, filter, update, (0, utils_1.resolveOptions)(this, options)), callback);
355
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new find_and_modify_1.FindOneAndUpdateOperation(this, filter, update, (0, utils_1.resolveOptions)(this, options)), callback);
358
356
  }
359
357
  /**
360
358
  * Execute an aggregation framework pipeline against the collection, needs MongoDB \>= 2.2
@@ -372,7 +370,7 @@ class Collection {
372
370
  if (typeof options === 'function') {
373
371
  throw new error_1.MongoInvalidArgumentError('Argument "options" must not be function');
374
372
  }
375
- return new aggregation_cursor_1.AggregationCursor((0, utils_2.getTopology)(this), this.s.namespace, pipeline, (0, utils_1.resolveOptions)(this, options));
373
+ return new aggregation_cursor_1.AggregationCursor((0, utils_1.getTopology)(this), this.s.namespace, pipeline, (0, utils_1.resolveOptions)(this, options));
376
374
  }
377
375
  /**
378
376
  * Create a new Change Stream, watching for new changes (insertions, updates, replacements, deletions, and invalidations) in this collection.
@@ -407,7 +405,7 @@ class Collection {
407
405
  if ('function' === typeof options.finalize) {
408
406
  options.finalize = options.finalize.toString();
409
407
  }
410
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new map_reduce_1.MapReduceOperation(this, map, reduce, (0, utils_1.resolveOptions)(this, options)), callback);
408
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new map_reduce_1.MapReduceOperation(this, map, reduce, (0, utils_1.resolveOptions)(this, options)), callback);
411
409
  }
412
410
  /** Initiate an Out of order batch write operation. All operations will be buffered into insert/update/remove commands executed out of order. */
413
411
  initializeUnorderedBulkOp(options) {
@@ -485,7 +483,7 @@ class Collection {
485
483
  (callback = options), (options = {});
486
484
  }
487
485
  filter !== null && filter !== void 0 ? filter : (filter = {});
488
- return (0, execute_operation_1.executeOperation)((0, utils_2.getTopology)(this), new count_documents_1.CountDocumentsOperation(this, filter, (0, utils_1.resolveOptions)(this, options)), callback);
486
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new count_documents_1.CountDocumentsOperation(this, filter, (0, utils_1.resolveOptions)(this, options)), callback);
489
487
  }
490
488
  }
491
489
  exports.Collection = Collection;
@@ -1 +1 @@
1
- {"version":3,"file":"collection.js","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection.js","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"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"}
@@ -5,18 +5,18 @@ const dns = require("dns");
5
5
  const fs = require("fs");
6
6
  const mongodb_connection_string_url_1 = require("mongodb-connection-string-url");
7
7
  const url_1 = require("url");
8
- const defaultAuthProviders_1 = require("./cmap/auth/defaultAuthProviders");
9
- const read_preference_1 = require("./read_preference");
10
- const read_concern_1 = require("./read_concern");
11
- const write_concern_1 = require("./write_concern");
12
- const error_1 = require("./error");
13
- const utils_1 = require("./utils");
14
- const mongo_client_1 = require("./mongo_client");
15
8
  const mongo_credentials_1 = require("./cmap/auth/mongo_credentials");
9
+ const providers_1 = require("./cmap/auth/providers");
10
+ const compression_1 = require("./cmap/wire_protocol/compression");
11
+ const encrypter_1 = require("./encrypter");
12
+ const error_1 = require("./error");
16
13
  const logger_1 = require("./logger");
14
+ const mongo_client_1 = require("./mongo_client");
17
15
  const promise_provider_1 = require("./promise_provider");
18
- const encrypter_1 = require("./encrypter");
19
- const compression_1 = require("./cmap/wire_protocol/compression");
16
+ const read_concern_1 = require("./read_concern");
17
+ const read_preference_1 = require("./read_preference");
18
+ const utils_1 = require("./utils");
19
+ const write_concern_1 = require("./write_concern");
20
20
  const VALID_TXT_RECORDS = ['authSource', 'replicaSet', 'loadBalanced'];
21
21
  const LB_SINGLE_HOST_ERROR = 'loadBalanced option only supported with a single host in the URI';
22
22
  const LB_REPLICA_SET_ERROR = 'loadBalanced option not supported with a replicaSet option';
@@ -91,7 +91,10 @@ function resolveSRVRecord(options, callback) {
91
91
  const source = (_a = txtRecordOptions.get('authSource')) !== null && _a !== void 0 ? _a : undefined;
92
92
  const replicaSet = (_b = txtRecordOptions.get('replicaSet')) !== null && _b !== void 0 ? _b : undefined;
93
93
  const loadBalanced = (_c = txtRecordOptions.get('loadBalanced')) !== null && _c !== void 0 ? _c : undefined;
94
- if (!options.userSpecifiedAuthSource && source) {
94
+ if (!options.userSpecifiedAuthSource &&
95
+ source &&
96
+ options.credentials &&
97
+ !providers_1.AUTH_MECHS_AUTH_SRC_EXTERNAL.has(options.credentials.mechanism)) {
95
98
  options.credentials = mongo_credentials_1.MongoCredentials.merge(options.credentials, { source });
96
99
  }
97
100
  if (!options.userSpecifiedReplicaSet && replicaSet) {
@@ -206,6 +209,7 @@ class CaseInsensitiveMap extends Map {
206
209
  }
207
210
  }
208
211
  function parseOptions(uri, mongoClient = undefined, options = {}) {
212
+ var _a, _b, _c, _d;
209
213
  if (mongoClient != null && !(mongoClient instanceof mongo_client_1.MongoClient)) {
210
214
  options = mongoClient;
211
215
  mongoClient = undefined;
@@ -239,10 +243,6 @@ function parseOptions(uri, mongoClient = undefined, options = {}) {
239
243
  urlOptions.set(key, values);
240
244
  }
241
245
  }
242
- if (urlOptions.has('authSource')) {
243
- // If authSource is an explicit key in the urlOptions we need to remove the dbName
244
- urlOptions.delete('dbName');
245
- }
246
246
  const objectOptions = new CaseInsensitiveMap(Object.entries(options).filter(([, v]) => v != null));
247
247
  // Validate options that can only be provided by one of uri or object
248
248
  if (urlOptions.has('serverApi')) {
@@ -296,9 +296,9 @@ function parseOptions(uri, mongoClient = undefined, options = {}) {
296
296
  setOption(mongoOptions, key, descriptor, values);
297
297
  }
298
298
  if (mongoOptions.credentials) {
299
- const isGssapi = mongoOptions.credentials.mechanism === defaultAuthProviders_1.AuthMechanism.MONGODB_GSSAPI;
300
- const isX509 = mongoOptions.credentials.mechanism === defaultAuthProviders_1.AuthMechanism.MONGODB_X509;
301
- const isAws = mongoOptions.credentials.mechanism === defaultAuthProviders_1.AuthMechanism.MONGODB_AWS;
299
+ const isGssapi = mongoOptions.credentials.mechanism === providers_1.AuthMechanism.MONGODB_GSSAPI;
300
+ const isX509 = mongoOptions.credentials.mechanism === providers_1.AuthMechanism.MONGODB_X509;
301
+ const isAws = mongoOptions.credentials.mechanism === providers_1.AuthMechanism.MONGODB_AWS;
302
302
  if ((isGssapi || isX509) &&
303
303
  allOptions.has('authSource') &&
304
304
  mongoOptions.credentials.source !== '$external') {
@@ -360,6 +360,20 @@ function parseOptions(uri, mongoClient = undefined, options = {}) {
360
360
  throw new error_1.MongoParseError('Cannot use srvMaxHosts or srvServiceName with a non-srv connection string');
361
361
  }
362
362
  }
363
+ if (!mongoOptions.proxyHost &&
364
+ (mongoOptions.proxyPort || mongoOptions.proxyUsername || mongoOptions.proxyPassword)) {
365
+ throw new error_1.MongoParseError('Must specify proxyHost if other proxy options are passed');
366
+ }
367
+ if ((mongoOptions.proxyUsername && !mongoOptions.proxyPassword) ||
368
+ (!mongoOptions.proxyUsername && mongoOptions.proxyPassword)) {
369
+ throw new error_1.MongoParseError('Can only specify both of proxy username/password or neither');
370
+ }
371
+ if (((_a = urlOptions.get('proxyHost')) === null || _a === void 0 ? void 0 : _a.length) > 1 ||
372
+ ((_b = urlOptions.get('proxyPort')) === null || _b === void 0 ? void 0 : _b.length) > 1 ||
373
+ ((_c = urlOptions.get('proxyUsername')) === null || _c === void 0 ? void 0 : _c.length) > 1 ||
374
+ ((_d = urlOptions.get('proxyPassword')) === null || _d === void 0 ? void 0 : _d.length) > 1) {
375
+ throw new error_1.MongoParseError('Proxy options cannot be specified multiple times in the connection string');
376
+ }
363
377
  return mongoOptions;
364
378
  }
365
379
  exports.parseOptions = parseOptions;
@@ -444,21 +458,19 @@ exports.OPTIONS = {
444
458
  target: 'credentials',
445
459
  transform({ options, values: [value] }) {
446
460
  var _a, _b;
447
- const mechanisms = Object.values(defaultAuthProviders_1.AuthMechanism);
461
+ const mechanisms = Object.values(providers_1.AuthMechanism);
448
462
  const [mechanism] = mechanisms.filter(m => m.match(RegExp(String.raw `\b${value}\b`, 'i')));
449
463
  if (!mechanism) {
450
464
  throw new error_1.MongoParseError(`authMechanism one of ${mechanisms}, got ${value}`);
451
465
  }
452
466
  let source = (_a = options.credentials) === null || _a === void 0 ? void 0 : _a.source;
453
- if (mechanism === defaultAuthProviders_1.AuthMechanism.MONGODB_PLAIN ||
454
- mechanism === defaultAuthProviders_1.AuthMechanism.MONGODB_GSSAPI ||
455
- mechanism === defaultAuthProviders_1.AuthMechanism.MONGODB_AWS ||
456
- mechanism === defaultAuthProviders_1.AuthMechanism.MONGODB_X509) {
467
+ if (mechanism === providers_1.AuthMechanism.MONGODB_PLAIN ||
468
+ providers_1.AUTH_MECHS_AUTH_SRC_EXTERNAL.has(mechanism)) {
457
469
  // some mechanisms have '$external' as the Auth Source
458
470
  source = '$external';
459
471
  }
460
472
  let password = (_b = options.credentials) === null || _b === void 0 ? void 0 : _b.password;
461
- if (mechanism === defaultAuthProviders_1.AuthMechanism.MONGODB_X509 && password === '') {
473
+ if (mechanism === providers_1.AuthMechanism.MONGODB_X509 && password === '') {
462
474
  password = undefined;
463
475
  }
464
476
  return mongo_credentials_1.MongoCredentials.merge(options.credentials, {
@@ -556,6 +568,7 @@ exports.OPTIONS = {
556
568
  });
557
569
  }
558
570
  },
571
+ enableUtf8Validation: { type: 'boolean', default: true },
559
572
  family: {
560
573
  transform({ name, values: [value] }) {
561
574
  const transformValue = getInt(name, value);
@@ -725,6 +738,18 @@ exports.OPTIONS = {
725
738
  promoteValues: {
726
739
  type: 'boolean'
727
740
  },
741
+ proxyHost: {
742
+ type: 'string'
743
+ },
744
+ proxyPassword: {
745
+ type: 'string'
746
+ },
747
+ proxyPort: {
748
+ type: 'uint'
749
+ },
750
+ proxyUsername: {
751
+ type: 'string'
752
+ },
728
753
  raw: {
729
754
  default: false,
730
755
  type: 'boolean'