mongodb 4.2.1 → 4.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 (266) 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 -6
  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 +52 -10
  16. package/lib/cmap/auth/gssapi.js.map +1 -1
  17. package/lib/cmap/auth/mongo_credentials.js +36 -27
  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 +14 -8
  34. package/lib/cmap/commands.js.map +1 -1
  35. package/lib/cmap/connect.js +119 -37
  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 +46 -47
  50. package/lib/collection.js.map +1 -1
  51. package/lib/connection_string.js +93 -54
  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 +5 -5
  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 +2 -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 +83 -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 +5 -6
  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.map +1 -1
  116. package/lib/operations/indexes.js +4 -4
  117. package/lib/operations/indexes.js.map +1 -1
  118. package/lib/operations/insert.js +3 -3
  119. package/lib/operations/insert.js.map +1 -1
  120. package/lib/operations/is_capped.js +1 -1
  121. package/lib/operations/is_capped.js.map +1 -1
  122. package/lib/operations/list_collections.js +3 -3
  123. package/lib/operations/list_collections.js.map +1 -1
  124. package/lib/operations/list_databases.js +1 -1
  125. package/lib/operations/list_databases.js.map +1 -1
  126. package/lib/operations/map_reduce.js +4 -3
  127. package/lib/operations/map_reduce.js.map +1 -1
  128. package/lib/operations/operation.js +1 -1
  129. package/lib/operations/operation.js.map +1 -1
  130. package/lib/operations/options_operation.js +1 -1
  131. package/lib/operations/options_operation.js.map +1 -1
  132. package/lib/operations/profiling_level.js +1 -1
  133. package/lib/operations/profiling_level.js.map +1 -1
  134. package/lib/operations/remove_user.js +1 -1
  135. package/lib/operations/remove_user.js.map +1 -1
  136. package/lib/operations/rename.js +3 -3
  137. package/lib/operations/rename.js.map +1 -1
  138. package/lib/operations/run_command.js +1 -1
  139. package/lib/operations/run_command.js.map +1 -1
  140. package/lib/operations/set_profiling_level.js +2 -2
  141. package/lib/operations/set_profiling_level.js.map +1 -1
  142. package/lib/operations/stats.js +1 -1
  143. package/lib/operations/stats.js.map +1 -1
  144. package/lib/operations/update.js +2 -2
  145. package/lib/operations/update.js.map +1 -1
  146. package/lib/operations/validate_collection.js +1 -1
  147. package/lib/operations/validate_collection.js.map +1 -1
  148. package/lib/read_preference.js +15 -5
  149. package/lib/read_preference.js.map +1 -1
  150. package/lib/sdam/events.js +4 -4
  151. package/lib/sdam/monitor.js +19 -18
  152. package/lib/sdam/monitor.js.map +1 -1
  153. package/lib/sdam/server.js +24 -31
  154. package/lib/sdam/server.js.map +1 -1
  155. package/lib/sdam/server_description.js +38 -38
  156. package/lib/sdam/server_description.js.map +1 -1
  157. package/lib/sdam/server_selection.js +2 -2
  158. package/lib/sdam/server_selection.js.map +1 -1
  159. package/lib/sdam/srv_polling.js +2 -2
  160. package/lib/sdam/srv_polling.js.map +1 -1
  161. package/lib/sdam/topology.js +32 -62
  162. package/lib/sdam/topology.js.map +1 -1
  163. package/lib/sdam/topology_description.js +3 -3
  164. package/lib/sdam/topology_description.js.map +1 -1
  165. package/lib/sessions.js +13 -28
  166. package/lib/sessions.js.map +1 -1
  167. package/lib/transactions.js +1 -1
  168. package/lib/transactions.js.map +1 -1
  169. package/lib/utils.js +46 -15
  170. package/lib/utils.js.map +1 -1
  171. package/mongodb.d.ts +205 -60
  172. package/mongodb.ts34.d.ts +230 -59
  173. package/package.json +40 -37
  174. package/src/admin.ts +9 -9
  175. package/src/bson.ts +25 -17
  176. package/src/bulk/common.ts +22 -23
  177. package/src/bulk/ordered.ts +4 -4
  178. package/src/bulk/unordered.ts +5 -5
  179. package/src/change_stream.ts +29 -28
  180. package/src/cmap/auth/auth_provider.ts +3 -3
  181. package/src/cmap/auth/gssapi.ts +65 -14
  182. package/src/cmap/auth/mongo_credentials.ts +28 -17
  183. package/src/cmap/auth/mongocr.ts +3 -2
  184. package/src/cmap/auth/mongodb_aws.ts +10 -11
  185. package/src/cmap/auth/plain.ts +1 -1
  186. package/src/cmap/auth/providers.ts +21 -0
  187. package/src/cmap/auth/scram.ts +9 -9
  188. package/src/cmap/auth/x509.ts +3 -3
  189. package/src/cmap/command_monitoring_events.ts +4 -3
  190. package/src/cmap/commands.ts +22 -14
  191. package/src/cmap/connect.ts +161 -45
  192. package/src/cmap/connection.ts +83 -63
  193. package/src/cmap/connection_pool.ts +39 -39
  194. package/src/cmap/connection_pool_events.ts +1 -1
  195. package/src/cmap/message_stream.ts +9 -8
  196. package/src/cmap/stream_description.ts +5 -5
  197. package/src/cmap/wire_protocol/compression.ts +4 -3
  198. package/src/cmap/wire_protocol/shared.ts +10 -9
  199. package/src/collection.ts +116 -93
  200. package/src/connection_string.ts +130 -59
  201. package/src/constants.ts +122 -0
  202. package/src/cursor/abstract_cursor.ts +14 -13
  203. package/src/cursor/aggregation_cursor.ts +6 -6
  204. package/src/cursor/find_cursor.ts +12 -4
  205. package/src/db.ts +44 -33
  206. package/src/deps.ts +44 -1
  207. package/src/encrypter.ts +12 -3
  208. package/src/error.ts +52 -24
  209. package/src/gridfs/download.ts +10 -8
  210. package/src/gridfs/index.ts +11 -11
  211. package/src/gridfs/upload.ts +13 -10
  212. package/src/index.ts +205 -199
  213. package/src/logger.ts +2 -1
  214. package/src/mongo_client.ts +46 -32
  215. package/src/mongo_types.ts +119 -21
  216. package/src/operations/add_user.ts +7 -6
  217. package/src/operations/aggregate.ts +5 -5
  218. package/src/operations/bulk_write.ts +5 -5
  219. package/src/operations/collections.ts +2 -2
  220. package/src/operations/command.ts +15 -9
  221. package/src/operations/common_functions.ts +4 -4
  222. package/src/operations/connect.ts +4 -14
  223. package/src/operations/count.ts +4 -4
  224. package/src/operations/count_documents.ts +3 -3
  225. package/src/operations/create_collection.ts +7 -6
  226. package/src/operations/delete.ts +5 -5
  227. package/src/operations/distinct.ts +4 -4
  228. package/src/operations/drop.ts +4 -4
  229. package/src/operations/estimated_document_count.ts +5 -5
  230. package/src/operations/eval.ts +5 -5
  231. package/src/operations/execute_operation.ts +10 -11
  232. package/src/operations/find.ts +14 -14
  233. package/src/operations/find_and_modify.ts +7 -7
  234. package/src/operations/get_more.ts +2 -2
  235. package/src/operations/indexes.ts +16 -16
  236. package/src/operations/insert.ts +9 -9
  237. package/src/operations/is_capped.ts +3 -3
  238. package/src/operations/list_collections.ts +6 -6
  239. package/src/operations/list_databases.ts +4 -4
  240. package/src/operations/map_reduce.ts +10 -9
  241. package/src/operations/operation.ts +3 -3
  242. package/src/operations/options_operation.ts +3 -3
  243. package/src/operations/profiling_level.ts +4 -4
  244. package/src/operations/remove_user.ts +4 -4
  245. package/src/operations/rename.ts +6 -6
  246. package/src/operations/run_command.ts +3 -3
  247. package/src/operations/set_profiling_level.ts +6 -5
  248. package/src/operations/stats.ts +4 -4
  249. package/src/operations/update.ts +10 -10
  250. package/src/operations/validate_collection.ts +4 -4
  251. package/src/read_preference.ts +18 -7
  252. package/src/sdam/common.ts +2 -2
  253. package/src/sdam/events.ts +5 -5
  254. package/src/sdam/monitor.ts +29 -32
  255. package/src/sdam/server.ts +64 -62
  256. package/src/sdam/server_description.ts +41 -48
  257. package/src/sdam/server_selection.ts +3 -3
  258. package/src/sdam/srv_polling.ts +3 -2
  259. package/src/sdam/topology.ts +71 -89
  260. package/src/sdam/topology_description.ts +5 -5
  261. package/src/sessions.ts +31 -48
  262. package/src/transactions.ts +4 -4
  263. package/src/utils.ts +64 -28
  264. package/lib/cmap/auth/defaultAuthProviders.js +0 -30
  265. package/lib/cmap/auth/defaultAuthProviders.js.map +0 -1
  266. package/src/cmap/auth/defaultAuthProviders.ts +0 -32
package/lib/collection.js CHANGED
@@ -1,34 +1,34 @@
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");
12
+ const count_1 = require("./operations/count");
16
13
  const count_documents_1 = require("./operations/count_documents");
17
- const indexes_1 = require("./operations/indexes");
14
+ const delete_1 = require("./operations/delete");
18
15
  const distinct_1 = require("./operations/distinct");
19
16
  const drop_1 = require("./operations/drop");
20
17
  const estimated_document_count_1 = require("./operations/estimated_document_count");
18
+ const execute_operation_1 = require("./operations/execute_operation");
21
19
  const find_and_modify_1 = require("./operations/find_and_modify");
20
+ const indexes_1 = require("./operations/indexes");
22
21
  const insert_1 = require("./operations/insert");
23
- const update_1 = require("./operations/update");
24
- const delete_1 = require("./operations/delete");
25
22
  const is_capped_1 = require("./operations/is_capped");
26
23
  const map_reduce_1 = require("./operations/map_reduce");
27
24
  const options_operation_1 = require("./operations/options_operation");
28
25
  const rename_1 = require("./operations/rename");
29
26
  const stats_1 = require("./operations/stats");
30
- const execute_operation_1 = require("./operations/execute_operation");
31
- const find_cursor_1 = require("./cursor/find_cursor");
27
+ const update_1 = require("./operations/update");
28
+ const read_concern_1 = require("./read_concern");
29
+ const read_preference_1 = require("./read_preference");
30
+ const utils_1 = require("./utils");
31
+ const write_concern_1 = require("./write_concern");
32
32
  /**
33
33
  * The **Collection** class is an internal class that embodies a MongoDB collection
34
34
  * allowing for insert/update/remove/find and other command operation on that MongoDB collection.
@@ -64,18 +64,17 @@ class Collection {
64
64
  */
65
65
  constructor(db, name, options) {
66
66
  var _a, _b;
67
- (0, utils_2.checkCollectionName)(name);
67
+ (0, utils_1.checkCollectionName)(name);
68
68
  // Internal state
69
69
  this.s = {
70
70
  db,
71
71
  options,
72
- namespace: new utils_2.MongoDBNamespace(db.databaseName, name),
72
+ namespace: new utils_1.MongoDBNamespace(db.databaseName, name),
73
73
  pkFactory: (_b = (_a = db.options) === null || _a === void 0 ? void 0 : _a.pkFactory) !== null && _b !== void 0 ? _b : utils_1.DEFAULT_PK_FACTORY,
74
74
  readPreference: read_preference_1.ReadPreference.fromOptions(options),
75
75
  bsonOptions: (0, bson_1.resolveBSONOptions)(options, db),
76
76
  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
77
+ writeConcern: write_concern_1.WriteConcern.fromOptions(options)
79
78
  };
80
79
  }
81
80
  /**
@@ -135,7 +134,7 @@ class Collection {
135
134
  return this.s.collectionHint;
136
135
  }
137
136
  set hint(v) {
138
- this.s.collectionHint = (0, utils_2.normalizeHintField)(v);
137
+ this.s.collectionHint = (0, utils_1.normalizeHintField)(v);
139
138
  }
140
139
  insertOne(doc, options, callback) {
141
140
  if (typeof options === 'function') {
@@ -147,13 +146,13 @@ class Collection {
147
146
  if (options && Reflect.get(options, 'w')) {
148
147
  options.writeConcern = write_concern_1.WriteConcern.fromOptions(Reflect.get(options, 'w'));
149
148
  }
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);
149
+ 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
150
  }
152
151
  insertMany(docs, options, callback) {
153
152
  if (typeof options === 'function')
154
153
  (callback = options), (options = {});
155
154
  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);
155
+ 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
156
  }
158
157
  bulkWrite(operations, options, callback) {
159
158
  if (typeof options === 'function')
@@ -162,27 +161,27 @@ class Collection {
162
161
  if (!Array.isArray(operations)) {
163
162
  throw new error_1.MongoInvalidArgumentError('Argument "operations" must be an array of documents');
164
163
  }
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);
164
+ 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
165
  }
167
166
  updateOne(filter, update, options, callback) {
168
167
  if (typeof options === 'function')
169
168
  (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);
169
+ 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
170
  }
172
171
  replaceOne(filter, replacement, options, callback) {
173
172
  if (typeof options === 'function')
174
173
  (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);
174
+ 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
175
  }
177
176
  updateMany(filter, update, options, callback) {
178
177
  if (typeof options === 'function')
179
178
  (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);
179
+ 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
180
  }
182
181
  deleteOne(filter, options, callback) {
183
182
  if (typeof options === 'function')
184
183
  (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);
184
+ 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
185
  }
187
186
  deleteMany(filter, options, callback) {
188
187
  if (filter == null) {
@@ -199,13 +198,13 @@ class Collection {
199
198
  callback = options;
200
199
  options = {};
201
200
  }
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);
201
+ 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
202
  }
204
203
  rename(newName, options, callback) {
205
204
  if (typeof options === 'function')
206
205
  (callback = options), (options = {});
207
206
  // 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, {
207
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new rename_1.RenameOperation(this, newName, {
209
208
  ...options,
210
209
  readPreference: read_preference_1.ReadPreference.PRIMARY
211
210
  }), callback);
@@ -214,7 +213,7 @@ class Collection {
214
213
  if (typeof options === 'function')
215
214
  (callback = options), (options = {});
216
215
  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);
216
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new drop_1.DropCollectionOperation(this.s.db, this.collectionName, options), callback);
218
217
  }
219
218
  findOne(filter, options, callback) {
220
219
  if (callback != null && typeof callback !== 'function') {
@@ -240,22 +239,22 @@ class Collection {
240
239
  if (typeof options === 'function') {
241
240
  throw new error_1.MongoInvalidArgumentError('Argument "options" must not be function');
242
241
  }
243
- return new find_cursor_1.FindCursor((0, utils_2.getTopology)(this), this.s.namespace, filter, (0, utils_1.resolveOptions)(this, options));
242
+ return new find_cursor_1.FindCursor((0, utils_1.getTopology)(this), this.s.namespace, filter, (0, utils_1.resolveOptions)(this, options));
244
243
  }
245
244
  options(options, callback) {
246
245
  if (typeof options === 'function')
247
246
  (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);
247
+ 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
248
  }
250
249
  isCapped(options, callback) {
251
250
  if (typeof options === 'function')
252
251
  (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);
252
+ 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
253
  }
255
254
  createIndex(indexSpec, options, callback) {
256
255
  if (typeof options === 'function')
257
256
  (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);
257
+ 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
258
  }
260
259
  createIndexes(indexSpecs, options, callback) {
261
260
  if (typeof options === 'function')
@@ -263,7 +262,7 @@ class Collection {
263
262
  options = options ? Object.assign({}, options) : {};
264
263
  if (typeof options.maxTimeMS !== 'number')
265
264
  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);
265
+ 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
266
  }
268
267
  dropIndex(indexName, options, callback) {
269
268
  if (typeof options === 'function')
@@ -271,12 +270,12 @@ class Collection {
271
270
  options = (0, utils_1.resolveOptions)(this, options);
272
271
  // Run only against primary
273
272
  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);
273
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new indexes_1.DropIndexOperation(this, indexName, options), callback);
275
274
  }
276
275
  dropIndexes(options, callback) {
277
276
  if (typeof options === 'function')
278
277
  (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);
278
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new indexes_1.DropIndexesOperation(this, (0, utils_1.resolveOptions)(this, options)), callback);
280
279
  }
281
280
  /**
282
281
  * Get the list of all indexes information for the collection.
@@ -289,17 +288,17 @@ class Collection {
289
288
  indexExists(indexes, options, callback) {
290
289
  if (typeof options === 'function')
291
290
  (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);
291
+ 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
292
  }
294
293
  indexInformation(options, callback) {
295
294
  if (typeof options === 'function')
296
295
  (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);
296
+ 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
297
  }
299
298
  estimatedDocumentCount(options, callback) {
300
299
  if (typeof options === 'function')
301
300
  (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);
301
+ 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
302
  }
304
303
  countDocuments(filter, options, callback) {
305
304
  if (filter == null) {
@@ -315,7 +314,7 @@ class Collection {
315
314
  }
316
315
  }
317
316
  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);
317
+ 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
318
  }
320
319
  // Implementation
321
320
  distinct(key, filter, options, callback) {
@@ -328,33 +327,33 @@ class Collection {
328
327
  }
329
328
  }
330
329
  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);
330
+ 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
331
  }
333
332
  indexes(options, callback) {
334
333
  if (typeof options === 'function')
335
334
  (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);
335
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new indexes_1.IndexesOperation(this, (0, utils_1.resolveOptions)(this, options)), callback);
337
336
  }
338
337
  stats(options, callback) {
339
338
  if (typeof options === 'function')
340
339
  (callback = options), (options = {});
341
340
  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);
341
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new stats_1.CollStatsOperation(this, options), callback);
343
342
  }
344
343
  findOneAndDelete(filter, options, callback) {
345
344
  if (typeof options === 'function')
346
345
  (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);
346
+ 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
347
  }
349
348
  findOneAndReplace(filter, replacement, options, callback) {
350
349
  if (typeof options === 'function')
351
350
  (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);
351
+ 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
352
  }
354
353
  findOneAndUpdate(filter, update, options, callback) {
355
354
  if (typeof options === 'function')
356
355
  (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);
356
+ 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
357
  }
359
358
  /**
360
359
  * Execute an aggregation framework pipeline against the collection, needs MongoDB \>= 2.2
@@ -372,7 +371,7 @@ class Collection {
372
371
  if (typeof options === 'function') {
373
372
  throw new error_1.MongoInvalidArgumentError('Argument "options" must not be function');
374
373
  }
375
- return new aggregation_cursor_1.AggregationCursor((0, utils_2.getTopology)(this), this.s.namespace, pipeline, (0, utils_1.resolveOptions)(this, options));
374
+ return new aggregation_cursor_1.AggregationCursor((0, utils_1.getTopology)(this), this.s.namespace, pipeline, (0, utils_1.resolveOptions)(this, options));
376
375
  }
377
376
  /**
378
377
  * Create a new Change Stream, watching for new changes (insertions, updates, replacements, deletions, and invalidations) in this collection.
@@ -407,7 +406,7 @@ class Collection {
407
406
  if ('function' === typeof options.finalize) {
408
407
  options.finalize = options.finalize.toString();
409
408
  }
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);
409
+ 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
410
  }
412
411
  /** Initiate an Out of order batch write operation. All operations will be buffered into insert/update/remove commands executed out of order. */
413
412
  initializeUnorderedBulkOp(options) {
@@ -485,7 +484,7 @@ class Collection {
485
484
  (callback = options), (options = {});
486
485
  }
487
486
  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);
487
+ return (0, execute_operation_1.executeOperation)((0, utils_1.getTopology)(this), new count_1.CountOperation(utils_1.MongoDBNamespace.fromString(this.namespace), filter, (0, utils_1.resolveOptions)(this, options)), callback);
489
488
  }
490
489
  }
491
490
  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":";;;AAAA,iCAA4E;AAE5E,4CAAsD;AACtD,gDAA0D;AAC1D,mDAAoE;AACpE,oEAAgE;AAChE,sDAAkD;AAElD,mCAAoD;AAapD,wDAA6D;AAE7D,8CAAkE;AAClE,kEAA8F;AAC9F,gDAK6B;AAC7B,oDAA2E;AAC3E,4CAAmF;AACnF,oFAG+C;AAC/C,sEAAkE;AAElE,kEAOsC;AACtC,kDAc8B;AAC9B,gDAM6B;AAC7B,sDAA2D;AAC3D,wDAKiC;AAEjC,sEAAkE;AAClE,gDAAqE;AACrE,8CAAqF;AACrF,gDAO6B;AAC7B,iDAA8D;AAC9D,uDAAuE;AACvE,mCASiB;AACjB,mDAAoE;AAqCpE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAa,UAAU;IAIrB;;;OAGG;IACH,YAAY,EAAM,EAAE,IAAY,EAAE,OAA2B;;QAC3D,IAAA,2BAAmB,EAAC,IAAI,CAAC,CAAC;QAE1B,iBAAiB;QACjB,IAAI,CAAC,CAAC,GAAG;YACP,EAAE;YACF,OAAO;YACP,SAAS,EAAE,IAAI,wBAAgB,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;YACtD,SAAS,EAAE,MAAA,MAAA,EAAE,CAAC,OAAO,0CAAE,SAAS,mCAAI,0BAAkB;YACtD,cAAc,EAAE,gCAAc,CAAC,WAAW,CAAC,OAAO,CAAC;YACnD,WAAW,EAAE,IAAA,yBAAkB,EAAC,OAAO,EAAE,EAAE,CAAC;YAC5C,WAAW,EAAE,0BAAW,CAAC,WAAW,CAAC,OAAO,CAAC;YAC7C,YAAY,EAAE,4BAAY,CAAC,WAAW,CAAC,OAAO,CAAC;SAChD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,cAAc;QAChB,oEAAoE;QACpE,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,UAAW,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW;QACb,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,IAAI,EAAE;YAC9B,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC;SAC9B;QACD,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,IAAI,cAAc;QAChB,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc,IAAI,IAAI,EAAE;YACjC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC;SACjC;QAED,OAAO,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,IAAI,YAAY;QACd,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,EAAE;YAC/B,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC;SAC/B;QACD,OAAO,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,gDAAgD;IAChD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,IAAI,IAAI,CAAC,CAAmB;QAC1B,IAAI,CAAC,CAAC,CAAC,cAAc,GAAG,IAAA,0BAAkB,EAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAyBD,SAAS,CACP,GAAsC,EACtC,OAA+D,EAC/D,QAA6C;QAE7C,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,QAAQ,GAAG,OAAO,CAAC;YACnB,OAAO,GAAG,EAAE,CAAC;SACd;QAED,gFAAgF;QAChF,yCAAyC;QACzC,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;YACxC,OAAO,CAAC,YAAY,GAAG,4BAAY,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;SAC5E;QAED,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,2BAAkB,CACpB,IAAsB,EACtB,GAAG,EACH,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CACZ,EACnB,QAAQ,CACT,CAAC;IACJ,CAAC;IAyBD,UAAU,CACR,IAAyC,EACzC,OAAgE,EAChE,QAA8C;QAE9C,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACxE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAEnE,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,4BAAmB,CACrB,IAAsB,EACtB,IAAI,EACJ,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CACZ,EACnB,QAAQ,CACT,CAAC;IACJ,CAAC;IA+CD,SAAS,CACP,UAA4C,EAC5C,OAAsD,EACtD,QAAoC;QAEpC,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACxE,OAAO,GAAG,OAAO,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAEvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC9B,MAAM,IAAI,iCAAyB,CAAC,qDAAqD,CAAC,CAAC;SAC5F;QAED,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,+BAAkB,CACpB,IAAsB,EACtB,UAA4B,EAC5B,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAC9B,EACD,QAAQ,CACT,CAAC;IACJ,CAAC;IA8BD,SAAS,CACP,MAAuB,EACvB,MAAgD,EAChD,OAAgD,EAChD,QAAiC;QAEjC,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAExE,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,2BAAkB,CACpB,IAAsB,EACtB,MAAM,EACN,MAAM,EACN,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CACZ,EACnB,QAAQ,CACT,CAAC;IACJ,CAAC;IA8BD,UAAU,CACR,MAAuB,EACvB,WAA+B,EAC/B,OAA4D,EAC5D,QAA4C;QAE5C,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAExE,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,4BAAmB,CACrB,IAAsB,EACtB,MAAM,EACN,WAAW,EACX,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAC9B,EACD,QAAQ,CACT,CAAC;IACJ,CAAC;IA8BD,UAAU,CACR,MAAuB,EACvB,MAA6B,EAC7B,OAA2D,EAC3D,QAA4C;QAE5C,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAExE,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,4BAAmB,CACrB,IAAsB,EACtB,MAAM,EACN,MAAM,EACN,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAC9B,EACD,QAAQ,CACT,CAAC;IACJ,CAAC;IAiBD,SAAS,CACP,MAAuB,EACvB,OAAgD,EAChD,QAAiC;QAEjC,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAExE,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,2BAAkB,CAAC,IAAsB,EAAE,MAAM,EAAE,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EACrF,QAAQ,CACT,CAAC;IACJ,CAAC;IAiBD,UAAU,CACR,MAAuB,EACvB,OAAgD,EAChD,QAAiC;QAEjC,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,MAAM,GAAG,EAAE,CAAC;YACZ,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,GAAG,SAAS,CAAC;SACtB;aAAM,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;YACvC,QAAQ,GAAG,MAAgC,CAAC;YAC5C,MAAM,GAAG,EAAE,CAAC;YACZ,OAAO,GAAG,EAAE,CAAC;SACd;aAAM,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACxC,QAAQ,GAAG,OAAO,CAAC;YACnB,OAAO,GAAG,EAAE,CAAC;SACd;QAED,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,4BAAmB,CAAC,IAAsB,EAAE,MAAM,EAAE,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EACtF,QAAQ,CACT,CAAC;IACJ,CAAC;IAgBD,MAAM,CACJ,OAAe,EACf,OAA8C,EAC9C,QAA+B;QAE/B,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAExE,2EAA2E;QAC3E,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,wBAAe,CAAC,IAAsB,EAAE,OAAO,EAAE;YACnD,GAAG,OAAO;YACV,cAAc,EAAE,gCAAc,CAAC,OAAO;SACvC,CAAC,EACF,QAAQ,CACT,CAAC;IACJ,CAAC;IAYD,IAAI,CACF,OAAmD,EACnD,QAA4B;QAE5B,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACxE,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;QAExB,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,8BAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,EACpE,QAAQ,CACT,CAAC;IACJ,CAAC;IA+BD,OAAO,CACL,MAA2D,EAC3D,OAAwD,EACxD,QAA2C;QAE3C,IAAI,QAAQ,IAAI,IAAI,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;YACtD,MAAM,IAAI,iCAAyB,CACjC,gEAAgE,CACjE,CAAC;SACH;QAED,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;YAChC,QAAQ,GAAG,MAA0C,CAAC;YACtD,MAAM,GAAG,EAAE,CAAC;YACZ,OAAO,GAAG,EAAE,CAAC;SACd;QACD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,QAAQ,GAAG,OAAO,CAAC;YACnB,OAAO,GAAG,EAAE,CAAC;SACd;QAED,MAAM,WAAW,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpF,CAAC;IAUD,IAAI,CAAC,MAAwB,EAAE,OAAqB;QAClD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,MAAM,IAAI,iCAAyB,CACjC,0DAA0D,CAC3D,CAAC;SACH;QACD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,MAAM,IAAI,iCAAyB,CAAC,yCAAyC,CAAC,CAAC;SAChF;QAED,OAAO,IAAI,wBAAU,CACnB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,CAAC,CAAC,CAAC,SAAS,EAChB,MAAM,EACN,IAAA,sBAAc,EAAC,IAAsB,EAAE,OAAO,CAAC,CAChD,CAAC;IACJ,CAAC;IAYD,OAAO,CACL,OAA+C,EAC/C,QAA6B;QAE7B,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAExE,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,oCAAgB,CAAC,IAAsB,EAAE,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAC3E,QAAQ,CACT,CAAC;IACJ,CAAC;IAYD,QAAQ,CACN,OAA8C,EAC9C,QAA4B;QAE5B,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAExE,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,6BAAiB,CAAC,IAAsB,EAAE,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAC5E,QAAQ,CACT,CAAC;IACJ,CAAC;IAuCD,WAAW,CACT,SAA6B,EAC7B,OAAiD,EACjD,QAA2B;QAE3B,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAExE,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,8BAAoB,CACtB,IAAsB,EACtB,IAAI,CAAC,cAAc,EACnB,SAAS,EACT,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAC9B,EACD,QAAQ,CACT,CAAC;IACJ,CAAC;IA0CD,aAAa,CACX,UAA8B,EAC9B,OAAmD,EACnD,QAA6B;QAE7B,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACxE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC,SAAS,CAAC;QAEpE,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,gCAAsB,CACxB,IAAsB,EACtB,IAAI,CAAC,cAAc,EACnB,UAAU,EACV,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAC9B,EACD,QAAQ,CACT,CAAC;IACJ,CAAC;IAaD,SAAS,CACP,SAAiB,EACjB,OAAiD,EACjD,QAA6B;QAE7B,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACxE,OAAO,GAAG,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAExC,2BAA2B;QAC3B,OAAO,CAAC,cAAc,GAAG,gCAAc,CAAC,OAAO,CAAC;QAEhD,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,4BAAkB,CAAC,IAAsB,EAAE,SAAS,EAAE,OAAO,CAAC,EAClE,QAAQ,CACT,CAAC;IACJ,CAAC;IAYD,WAAW,CACT,OAAiD,EACjD,QAA6B;QAE7B,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAExE,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,8BAAoB,CAAC,IAAsB,EAAE,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAC/E,QAAQ,CACT,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,OAA4B;QACtC,OAAO,IAAI,2BAAiB,CAAC,IAAsB,EAAE,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACtF,CAAC;IAiBD,WAAW,CACT,OAA0B,EAC1B,OAAqD,EACrD,QAA4B;QAE5B,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAExE,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,8BAAoB,CAAC,IAAsB,EAAE,OAAO,EAAE,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EACxF,QAAQ,CACT,CAAC;IACJ,CAAC;IAYD,gBAAgB,CACd,OAAsD,EACtD,QAA6B;QAE7B,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAExE,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,mCAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAC5F,QAAQ,CACT,CAAC;IACJ,CAAC;IAYD,sBAAsB,CACpB,OAA0D,EAC1D,QAA2B;QAE3B,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACxE,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,0DAA+B,CAAC,IAAsB,EAAE,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAC1F,QAAQ,CACT,CAAC;IACJ,CAAC;IAuCD,cAAc,CACZ,MAA4D,EAC5D,OAAkD,EAClD,QAA2B;QAE3B,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;SACvD;aAAM,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;YACvC,CAAC,QAAQ,GAAG,MAA0B,CAAC,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;SACxE;aAAM;YACL,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC1B,IAAI,OAAO,OAAO,KAAK,UAAU;oBAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;aACzE;SACF;QAED,MAAM,aAAN,MAAM,cAAN,MAAM,IAAN,MAAM,GAAK,EAAE,EAAC;QACd,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,yCAAuB,CACzB,IAAsB,EACtB,MAAkB,EAClB,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAgC,CAAC,CACvD,EACD,QAAQ,CACT,CAAC;IACJ,CAAC;IAkDD,iBAAiB;IACjB,QAAQ,CACN,GAAQ,EACR,MAA4D,EAC5D,OAA2C,EAC3C,QAA0B;QAE1B,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;YAChC,CAAC,QAAQ,GAAG,MAAyB,CAAC,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;SACvE;aAAM;YACL,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;gBAC3D,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;aACtC;SACF;QAED,MAAM,aAAN,MAAM,cAAN,MAAM,IAAN,MAAM,GAAK,EAAE,EAAC;QACd,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,4BAAiB,CACnB,IAAsB,EACtB,GAAqB,EACrB,MAAM,EACN,IAAA,sBAAc,EAAC,IAAI,EAAE,OAA0B,CAAC,CACjD,EACD,QAAQ,CACT,CAAC;IACJ,CAAC;IAYD,OAAO,CACL,OAAwD,EACxD,QAA+B;QAE/B,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAExE,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,0BAAgB,CAAC,IAAsB,EAAE,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,EAC3E,QAAQ,CACT,CAAC;IACJ,CAAC;IAYD,KAAK,CACH,OAAgD,EAChD,QAA8B;QAE9B,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACxE,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;QAExB,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,0BAAkB,CAAC,IAAsB,EAAE,OAAO,CAAC,EACvD,QAAQ,CACT,CAAC;IACJ,CAAC;IAoBD,gBAAgB,CACd,MAAuB,EACvB,OAAmE,EACnE,QAA0C;QAE1C,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAExE,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,2CAAyB,CAC3B,IAAsB,EACtB,MAAM,EACN,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CACZ,EACnB,QAAQ,CACT,CAAC;IACJ,CAAC;IA8BD,iBAAiB,CACf,MAAuB,EACvB,WAA+B,EAC/B,OAAoE,EACpE,QAA0C;QAE1C,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAExE,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,4CAA0B,CAC5B,IAAsB,EACtB,MAAM,EACN,WAAW,EACX,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CACZ,EACnB,QAAQ,CACT,CAAC;IACJ,CAAC;IA8BD,gBAAgB,CACd,MAAuB,EACvB,MAA6B,EAC7B,OAAmE,EACnE,QAA0C;QAE1C,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAExE,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,2CAAyB,CAC3B,IAAsB,EACtB,MAAM,EACN,MAAM,EACN,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CACZ,EACnB,QAAQ,CACT,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,SAAS,CACP,WAAuB,EAAE,EACzB,OAA0B;QAE1B,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,MAAM,IAAI,iCAAyB,CACjC,+DAA+D,CAChE,CAAC;SACH;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC5B,MAAM,IAAI,iCAAyB,CACjC,4DAA4D,CAC7D,CAAC;SACH;QACD,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;YACjC,MAAM,IAAI,iCAAyB,CAAC,yCAAyC,CAAC,CAAC;SAChF;QAED,OAAO,IAAI,sCAAiB,CAC1B,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,CAAC,CAAC,CAAC,SAAS,EAChB,QAAQ,EACR,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAC9B,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CACH,WAAuB,EAAE,EACzB,UAA+B,EAAE;QAEjC,6CAA6C;QAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC5B,OAAO,GAAG,QAAQ,CAAC;YACnB,QAAQ,GAAG,EAAE,CAAC;SACf;QAED,OAAO,IAAI,4BAAY,CAAS,IAAI,EAAE,QAAQ,EAAE,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACjF,CAAC;IA+BD,SAAS,CACP,GAAkC,EAClC,MAA6C,EAC7C,OAA0E,EAC1E,QAA0C;QAE1C,IAAA,uBAAe,EACb,0PAA0P,CAC3P,CAAC;QACF,IAAI,UAAU,KAAK,OAAO,OAAO;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACxE,oFAAoF;QACpF,sGAAsG;QACtG,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,KAAI,IAAI,EAAE;YACxB,MAAM,IAAI,iCAAyB,CACjC,oEAAoE,CACrE,CAAC;SACH;QAED,IAAI,UAAU,KAAK,OAAO,GAAG,EAAE;YAC7B,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;SACtB;QAED,IAAI,UAAU,KAAK,OAAO,MAAM,EAAE;YAChC,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;SAC5B;QAED,IAAI,UAAU,KAAK,OAAO,OAAO,CAAC,QAAQ,EAAE;YAC1C,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAChD;QAED,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,+BAAkB,CACpB,IAAsB,EACtB,GAAG,EACH,MAAM,EACN,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAmB,CAChD,EACD,QAAQ,CACT,CAAC;IACJ,CAAC;IAED,gJAAgJ;IAChJ,yBAAyB,CAAC,OAA0B;QAClD,OAAO,IAAI,kCAAsB,CAAC,IAAsB,EAAE,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,sKAAsK;IACtK,uBAAuB,CAAC,OAA0B;QAChD,OAAO,IAAI,8BAAoB,CAAC,IAAsB,EAAE,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,+BAA+B;IAC/B,SAAS;QACP,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CACJ,IAAyC,EACzC,OAAyB,EACzB,QAA6C;QAE7C,IAAA,uBAAe,EACb,kFAAkF,CACnF,CAAC;QACF,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACxE,OAAO,GAAG,OAAO,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACxC,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE5C,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE;YAC9B,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;SACzB;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CACJ,QAAyB,EACzB,MAA6B,EAC7B,OAAsB,EACtB,QAA4B;QAE5B,IAAA,uBAAe,EACb,mFAAmF,CACpF,CAAC;QACF,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACxE,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;QAExB,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CACJ,QAAyB,EACzB,OAAsB,EACtB,QAAkB;QAElB,IAAA,uBAAe,EACb,mFAAmF,CACpF,CAAC;QACF,IAAI,OAAO,OAAO,KAAK,UAAU;YAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACxE,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;QAExB,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAyBD,KAAK,CACH,MAA0D,EAC1D,OAAyC,EACzC,QAA2B;QAE3B,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;YAChC,CAAC,QAAQ,GAAG,MAA0B,CAAC,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;SACxE;aAAM;YACL,IAAI,OAAO,OAAO,KAAK,UAAU;gBAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;SACzE;QAED,MAAM,aAAN,MAAM,cAAN,MAAM,IAAN,MAAM,GAAK,EAAE,EAAC;QACd,OAAO,IAAA,oCAAgB,EACrB,IAAA,mBAAW,EAAC,IAAI,CAAC,EACjB,IAAI,sBAAc,CAChB,wBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAC3C,MAAM,EACN,IAAA,sBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,CAC9B,EACD,QAAQ,CACT,CAAC;IACJ,CAAC;CACF;AA18CD,gCA08CC"}
@@ -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) {
@@ -142,10 +145,18 @@ function getBoolean(name, value) {
142
145
  if (typeof value === 'boolean')
143
146
  return value;
144
147
  const valueString = String(value).toLowerCase();
145
- if (TRUTHS.has(valueString))
148
+ if (TRUTHS.has(valueString)) {
149
+ if (valueString !== 'true') {
150
+ (0, utils_1.emitWarningOnce)(`deprecated value for ${name} : ${valueString} - please update to ${name} : true instead`);
151
+ }
146
152
  return true;
147
- if (FALSEHOODS.has(valueString))
153
+ }
154
+ if (FALSEHOODS.has(valueString)) {
155
+ if (valueString !== 'false') {
156
+ (0, utils_1.emitWarningOnce)(`deprecated value for ${name} : ${valueString} - please update to ${name} : false instead`);
157
+ }
148
158
  return false;
159
+ }
149
160
  throw new error_1.MongoParseError(`Expected ${name} to be stringified boolean value, got: ${value}`);
150
161
  }
151
162
  function getInt(name, value) {
@@ -163,30 +174,19 @@ function getUint(name, value) {
163
174
  }
164
175
  return parsedValue;
165
176
  }
166
- function toRecord(value) {
167
- const record = Object.create(null);
177
+ /** Wrap a single value in an array if the value is not an array */
178
+ function toArray(value) {
179
+ return Array.isArray(value) ? value : [value];
180
+ }
181
+ function* entriesFromString(value) {
168
182
  const keyValuePairs = value.split(',');
169
183
  for (const keyValue of keyValuePairs) {
170
184
  const [key, value] = keyValue.split(':');
171
185
  if (value == null) {
172
186
  throw new error_1.MongoParseError('Cannot have undefined values in key value pairs');
173
187
  }
174
- try {
175
- // try to get a boolean
176
- record[key] = getBoolean('', value);
177
- }
178
- catch {
179
- try {
180
- // try to get a number
181
- record[key] = getInt('', value);
182
- }
183
- catch {
184
- // keep value as a string
185
- record[key] = value;
186
- }
187
- }
188
+ yield [key, value];
188
189
  }
189
- return record;
190
190
  }
191
191
  class CaseInsensitiveMap extends Map {
192
192
  constructor(entries = []) {
@@ -255,16 +255,11 @@ function parseOptions(uri, mongoClient = undefined, options = {}) {
255
255
  ...exports.DEFAULT_OPTIONS.keys()
256
256
  ]);
257
257
  for (const key of allKeys) {
258
- const values = [];
259
- if (objectOptions.has(key)) {
260
- values.push(objectOptions.get(key));
261
- }
262
- if (urlOptions.has(key)) {
263
- values.push(...urlOptions.get(key));
264
- }
265
- if (exports.DEFAULT_OPTIONS.has(key)) {
266
- values.push(exports.DEFAULT_OPTIONS.get(key));
267
- }
258
+ const values = [objectOptions, urlOptions, exports.DEFAULT_OPTIONS].flatMap(optionsObject => {
259
+ var _a;
260
+ const options = (_a = optionsObject.get(key)) !== null && _a !== void 0 ? _a : [];
261
+ return toArray(options);
262
+ });
268
263
  allOptions.set(key, values);
269
264
  }
270
265
  if (allOptions.has('tlsCertificateKeyFile') && !allOptions.has('tlsCertificateFile')) {
@@ -292,9 +287,9 @@ function parseOptions(uri, mongoClient = undefined, options = {}) {
292
287
  setOption(mongoOptions, key, descriptor, values);
293
288
  }
294
289
  if (mongoOptions.credentials) {
295
- const isGssapi = mongoOptions.credentials.mechanism === defaultAuthProviders_1.AuthMechanism.MONGODB_GSSAPI;
296
- const isX509 = mongoOptions.credentials.mechanism === defaultAuthProviders_1.AuthMechanism.MONGODB_X509;
297
- const isAws = mongoOptions.credentials.mechanism === defaultAuthProviders_1.AuthMechanism.MONGODB_AWS;
290
+ const isGssapi = mongoOptions.credentials.mechanism === providers_1.AuthMechanism.MONGODB_GSSAPI;
291
+ const isX509 = mongoOptions.credentials.mechanism === providers_1.AuthMechanism.MONGODB_X509;
292
+ const isAws = mongoOptions.credentials.mechanism === providers_1.AuthMechanism.MONGODB_AWS;
298
293
  if ((isGssapi || isX509) &&
299
294
  allOptions.has('authSource') &&
300
295
  mongoOptions.credentials.source !== '$external') {
@@ -309,6 +304,13 @@ function parseOptions(uri, mongoClient = undefined, options = {}) {
309
304
  });
310
305
  }
311
306
  mongoOptions.credentials.validate();
307
+ // Check if the only auth related option provided was authSource, if so we can remove credentials
308
+ if (mongoOptions.credentials.password === '' &&
309
+ mongoOptions.credentials.username === '' &&
310
+ mongoOptions.credentials.mechanism === providers_1.AuthMechanism.MONGODB_DEFAULT &&
311
+ Object.keys(mongoOptions.credentials.mechanismProperties).length === 0) {
312
+ delete mongoOptions.credentials;
313
+ }
312
314
  }
313
315
  if (!mongoOptions.dbName) {
314
316
  // dbName default is applied here because of the credential validation above
@@ -356,6 +358,21 @@ function parseOptions(uri, mongoClient = undefined, options = {}) {
356
358
  throw new error_1.MongoParseError('Cannot use srvMaxHosts or srvServiceName with a non-srv connection string');
357
359
  }
358
360
  }
361
+ if (mongoOptions.directConnection && mongoOptions.hosts.length !== 1) {
362
+ throw new error_1.MongoParseError('directConnection option requires exactly one host');
363
+ }
364
+ if (!mongoOptions.proxyHost &&
365
+ (mongoOptions.proxyPort || mongoOptions.proxyUsername || mongoOptions.proxyPassword)) {
366
+ throw new error_1.MongoParseError('Must specify proxyHost if other proxy options are passed');
367
+ }
368
+ if ((mongoOptions.proxyUsername && !mongoOptions.proxyPassword) ||
369
+ (!mongoOptions.proxyUsername && mongoOptions.proxyPassword)) {
370
+ throw new error_1.MongoParseError('Can only specify both of proxy username/password or neither');
371
+ }
372
+ const proxyOptions = ['proxyHost', 'proxyPort', 'proxyUsername', 'proxyPassword'].map(key => { var _a; return (_a = urlOptions.get(key)) !== null && _a !== void 0 ? _a : []; });
373
+ if (proxyOptions.some(options => options.length > 1)) {
374
+ throw new error_1.MongoParseError('Proxy options cannot be specified multiple times in the connection string');
375
+ }
359
376
  return mongoOptions;
360
377
  }
361
378
  exports.parseOptions = parseOptions;
@@ -440,21 +457,19 @@ exports.OPTIONS = {
440
457
  target: 'credentials',
441
458
  transform({ options, values: [value] }) {
442
459
  var _a, _b;
443
- const mechanisms = Object.values(defaultAuthProviders_1.AuthMechanism);
460
+ const mechanisms = Object.values(providers_1.AuthMechanism);
444
461
  const [mechanism] = mechanisms.filter(m => m.match(RegExp(String.raw `\b${value}\b`, 'i')));
445
462
  if (!mechanism) {
446
463
  throw new error_1.MongoParseError(`authMechanism one of ${mechanisms}, got ${value}`);
447
464
  }
448
465
  let source = (_a = options.credentials) === null || _a === void 0 ? void 0 : _a.source;
449
- if (mechanism === defaultAuthProviders_1.AuthMechanism.MONGODB_PLAIN ||
450
- mechanism === defaultAuthProviders_1.AuthMechanism.MONGODB_GSSAPI ||
451
- mechanism === defaultAuthProviders_1.AuthMechanism.MONGODB_AWS ||
452
- mechanism === defaultAuthProviders_1.AuthMechanism.MONGODB_X509) {
466
+ if (mechanism === providers_1.AuthMechanism.MONGODB_PLAIN ||
467
+ providers_1.AUTH_MECHS_AUTH_SRC_EXTERNAL.has(mechanism)) {
453
468
  // some mechanisms have '$external' as the Auth Source
454
469
  source = '$external';
455
470
  }
456
471
  let password = (_b = options.credentials) === null || _b === void 0 ? void 0 : _b.password;
457
- if (mechanism === defaultAuthProviders_1.AuthMechanism.MONGODB_X509 && password === '') {
472
+ if (mechanism === providers_1.AuthMechanism.MONGODB_X509 && password === '') {
458
473
  password = undefined;
459
474
  }
460
475
  return mongo_credentials_1.MongoCredentials.merge(options.credentials, {
@@ -466,14 +481,25 @@ exports.OPTIONS = {
466
481
  },
467
482
  authMechanismProperties: {
468
483
  target: 'credentials',
469
- transform({ options, values: [value] }) {
470
- if (typeof value === 'string') {
471
- value = toRecord(value);
484
+ transform({ options, values: [optionValue] }) {
485
+ if (typeof optionValue === 'string') {
486
+ const mechanismProperties = Object.create(null);
487
+ for (const [key, value] of entriesFromString(optionValue)) {
488
+ try {
489
+ mechanismProperties[key] = getBoolean(key, value);
490
+ }
491
+ catch {
492
+ mechanismProperties[key] = value;
493
+ }
494
+ }
495
+ return mongo_credentials_1.MongoCredentials.merge(options.credentials, {
496
+ mechanismProperties
497
+ });
472
498
  }
473
- if (!(0, utils_1.isRecord)(value)) {
499
+ if (!(0, utils_1.isRecord)(optionValue)) {
474
500
  throw new error_1.MongoParseError('AuthMechanismProperties must be an object');
475
501
  }
476
- return mongo_credentials_1.MongoCredentials.merge(options.credentials, { mechanismProperties: value });
502
+ return mongo_credentials_1.MongoCredentials.merge(options.credentials, { mechanismProperties: optionValue });
477
503
  }
478
504
  },
479
505
  authSource: {
@@ -552,6 +578,7 @@ exports.OPTIONS = {
552
578
  });
553
579
  }
554
580
  },
581
+ enableUtf8Validation: { type: 'boolean', default: true },
555
582
  family: {
556
583
  transform({ name, values: [value] }) {
557
584
  const transformValue = getInt(name, value);
@@ -721,6 +748,18 @@ exports.OPTIONS = {
721
748
  promoteValues: {
722
749
  type: 'boolean'
723
750
  },
751
+ proxyHost: {
752
+ type: 'string'
753
+ },
754
+ proxyPassword: {
755
+ type: 'string'
756
+ },
757
+ proxyPort: {
758
+ type: 'uint'
759
+ },
760
+ proxyUsername: {
761
+ type: 'string'
762
+ },
724
763
  raw: {
725
764
  default: false,
726
765
  type: 'boolean'
@@ -778,7 +817,7 @@ exports.OPTIONS = {
778
817
  for (const tag of values) {
779
818
  const readPreferenceTag = Object.create(null);
780
819
  if (typeof tag === 'string') {
781
- for (const [k, v] of Object.entries(toRecord(tag))) {
820
+ for (const [k, v] of entriesFromString(tag)) {
782
821
  readPreferenceTag[k] = v;
783
822
  }
784
823
  }