mongodb 4.1.4 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. package/README.md +16 -15
  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 +3 -4
  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 +16 -18
  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 +1 -1
  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 +102 -15
  36. package/lib/cmap/connect.js.map +1 -1
  37. package/lib/cmap/connection.js +27 -26
  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.map +1 -1
  46. package/lib/cmap/wire_protocol/constants.js +4 -4
  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 +106 -49
  52. package/lib/connection_string.js.map +1 -1
  53. package/lib/constants.js +108 -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 +2 -2
  83. package/lib/operations/add_user.js.map +1 -1
  84. package/lib/operations/aggregate.js +2 -3
  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 +9 -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 +23 -7
  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 +11 -6
  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 +4 -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/monitor.js +4 -4
  152. package/lib/sdam/monitor.js.map +1 -1
  153. package/lib/sdam/server.js +31 -31
  154. package/lib/sdam/server.js.map +1 -1
  155. package/lib/sdam/server_description.js +1 -1
  156. package/lib/sdam/server_description.js.map +1 -1
  157. package/lib/sdam/server_selection.js +38 -3
  158. package/lib/sdam/server_selection.js.map +1 -1
  159. package/lib/sdam/srv_polling.js +11 -11
  160. package/lib/sdam/srv_polling.js.map +1 -1
  161. package/lib/sdam/topology.js +40 -62
  162. package/lib/sdam/topology.js.map +1 -1
  163. package/lib/sdam/topology_description.js +36 -14
  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 +90 -23
  170. package/lib/utils.js.map +1 -1
  171. package/mongodb.d.ts +159 -65
  172. package/mongodb.ts34.d.ts +184 -65
  173. package/package.json +26 -24
  174. package/src/admin.ts +9 -9
  175. package/src/bson.ts +26 -17
  176. package/src/bulk/common.ts +26 -20
  177. package/src/bulk/ordered.ts +4 -4
  178. package/src/bulk/unordered.ts +5 -5
  179. package/src/change_stream.ts +35 -32
  180. package/src/cmap/auth/auth_provider.ts +3 -3
  181. package/src/cmap/auth/gssapi.ts +8 -8
  182. package/src/cmap/auth/mongo_credentials.ts +2 -6
  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 +2 -2
  190. package/src/cmap/commands.ts +30 -19
  191. package/src/cmap/connect.ts +142 -22
  192. package/src/cmap/connection.ts +73 -52
  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 +2 -2
  198. package/src/cmap/wire_protocol/constants.ts +4 -4
  199. package/src/cmap/wire_protocol/shared.ts +10 -9
  200. package/src/collection.ts +133 -106
  201. package/src/connection_string.ts +141 -60
  202. package/src/constants.ts +116 -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 +49 -39
  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 +58 -32
  216. package/src/mongo_types.ts +98 -20
  217. package/src/operations/add_user.ts +6 -5
  218. package/src/operations/aggregate.ts +6 -7
  219. package/src/operations/bulk_write.ts +5 -5
  220. package/src/operations/collections.ts +2 -2
  221. package/src/operations/command.ts +19 -8
  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 +8 -7
  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 +30 -11
  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 +18 -10
  240. package/src/operations/list_databases.ts +4 -4
  241. package/src/operations/map_reduce.ts +10 -9
  242. package/src/operations/operation.ts +8 -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 +1 -1
  255. package/src/sdam/monitor.ts +13 -14
  256. package/src/sdam/server.ts +71 -61
  257. package/src/sdam/server_description.ts +4 -4
  258. package/src/sdam/server_selection.ts +46 -3
  259. package/src/sdam/srv_polling.ts +15 -13
  260. package/src/sdam/topology.ts +89 -90
  261. package/src/sdam/topology_description.ts +39 -15
  262. package/src/sessions.ts +31 -48
  263. package/src/transactions.ts +6 -6
  264. package/src/utils.ts +123 -43
  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
@@ -1 +1 @@
1
- {"version":3,"file":"transactions.js","sourceRoot":"","sources":["../src/transactions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transactions.js","sourceRoot":"","sources":["../src/transactions.ts"],"names":[],"mappings":"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"}
package/lib/utils.js CHANGED
@@ -1,17 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parsePackageVersion = exports.supportsRetryableWrites = exports.enumToString = exports.emitWarningOnce = exports.emitWarning = exports.MONGODB_WARNING_CODE = exports.DEFAULT_PK_FACTORY = exports.HostAddress = exports.BufferPool = exports.deepCopy = exports.isRecord = exports.setDifference = exports.isSuperset = exports.resolveOptions = exports.hasAtomicOperators = exports.makeInterruptibleAsyncInterval = exports.calculateDurationInMs = exports.now = exports.makeClientMetadata = exports.makeStateMachine = exports.errorStrictEqual = exports.arrayStrictEqual = exports.eachAsyncSeries = exports.eachAsync = exports.collationNotSupported = exports.maxWireVersion = exports.uuidV4 = exports.databaseNamespace = exports.maybePromise = exports.makeCounter = exports.MongoDBNamespace = exports.ns = exports.deprecateOptions = exports.defaultMsgHandler = exports.getTopology = exports.decorateWithExplain = exports.decorateWithReadConcern = exports.decorateWithCollation = exports.isPromiseLike = exports.applyWriteConcern = exports.applyRetryableWrites = exports.executeLegacyOperation = exports.filterOptions = exports.mergeOptions = exports.isObject = exports.parseIndexOptions = exports.normalizeHintField = exports.checkCollectionName = exports.MAX_JS_INT = void 0;
4
- const os = require("os");
3
+ exports.parsePackageVersion = exports.supportsRetryableWrites = exports.enumToString = exports.emitWarningOnce = exports.emitWarning = exports.MONGODB_WARNING_CODE = exports.DEFAULT_PK_FACTORY = exports.HostAddress = exports.BufferPool = exports.deepCopy = exports.isRecord = exports.setDifference = exports.isHello = exports.isSuperset = exports.resolveOptions = exports.hasAtomicOperators = exports.makeInterruptibleAsyncInterval = exports.calculateDurationInMs = exports.now = exports.makeClientMetadata = exports.makeStateMachine = exports.errorStrictEqual = exports.arrayStrictEqual = exports.eachAsyncSeries = exports.eachAsync = exports.collationNotSupported = exports.maxWireVersion = exports.uuidV4 = exports.databaseNamespace = exports.maybePromise = exports.makeCounter = exports.MongoDBNamespace = exports.ns = exports.deprecateOptions = exports.defaultMsgHandler = exports.getTopology = exports.decorateWithExplain = exports.decorateWithReadConcern = exports.decorateWithCollation = exports.isPromiseLike = exports.applyWriteConcern = exports.applyRetryableWrites = exports.executeLegacyOperation = exports.filterOptions = exports.mergeOptions = exports.isObject = exports.parseIndexOptions = exports.normalizeHintField = exports.checkCollectionName = exports.MAX_JS_INT = void 0;
4
+ exports.commandSupportsReadConcern = exports.shuffle = void 0;
5
5
  const crypto = require("crypto");
6
- const promise_provider_1 = require("./promise_provider");
6
+ const os = require("os");
7
+ const url_1 = require("url");
8
+ const bson_1 = require("./bson");
9
+ const constants_1 = require("./cmap/wire_protocol/constants");
10
+ const constants_2 = require("./constants");
7
11
  const error_1 = require("./error");
8
- const write_concern_1 = require("./write_concern");
9
- const common_1 = require("./sdam/common");
12
+ const promise_provider_1 = require("./promise_provider");
10
13
  const read_concern_1 = require("./read_concern");
11
- const bson_1 = require("./bson");
12
14
  const read_preference_1 = require("./read_preference");
13
- const url_1 = require("url");
14
- const constants_1 = require("./cmap/wire_protocol/constants");
15
+ const common_1 = require("./sdam/common");
16
+ const write_concern_1 = require("./write_concern");
15
17
  exports.MAX_JS_INT = Number.MAX_SAFE_INTEGER + 1;
16
18
  /**
17
19
  * Throws if collectionName is not a valid mongodb collection namespace.
@@ -731,7 +733,7 @@ exports.calculateDurationInMs = calculateDurationInMs;
731
733
  function makeInterruptibleAsyncInterval(fn, options) {
732
734
  let timerId;
733
735
  let lastCallTime;
734
- let lastWakeTime;
736
+ let cannotBeExpedited = false;
735
737
  let stopped = false;
736
738
  options = options !== null && options !== void 0 ? options : {};
737
739
  const interval = options.interval || 1000;
@@ -740,30 +742,30 @@ function makeInterruptibleAsyncInterval(fn, options) {
740
742
  const clock = typeof options.clock === 'function' ? options.clock : now;
741
743
  function wake() {
742
744
  const currentTime = clock();
743
- const timeSinceLastWake = currentTime - lastWakeTime;
744
- const timeSinceLastCall = currentTime - lastCallTime;
745
- const timeUntilNextCall = interval - timeSinceLastCall;
746
- lastWakeTime = currentTime;
745
+ const nextScheduledCallTime = lastCallTime + interval;
746
+ const timeUntilNextCall = nextScheduledCallTime - currentTime;
747
747
  // For the streaming protocol: there is nothing obviously stopping this
748
748
  // interval from being woken up again while we are waiting "infinitely"
749
749
  // for `fn` to be called again`. Since the function effectively
750
750
  // never completes, the `timeUntilNextCall` will continue to grow
751
751
  // negatively unbounded, so it will never trigger a reschedule here.
752
+ // This is possible in virtualized environments like AWS Lambda where our
753
+ // clock is unreliable. In these cases the timer is "running" but never
754
+ // actually completes, so we want to execute immediately and then attempt
755
+ // to reschedule.
756
+ if (timeUntilNextCall < 0) {
757
+ executeAndReschedule();
758
+ return;
759
+ }
752
760
  // debounce multiple calls to wake within the `minInterval`
753
- if (timeSinceLastWake < minInterval) {
761
+ if (cannotBeExpedited) {
754
762
  return;
755
763
  }
756
764
  // reschedule a call as soon as possible, ensuring the call never happens
757
765
  // faster than the `minInterval`
758
766
  if (timeUntilNextCall > minInterval) {
759
767
  reschedule(minInterval);
760
- }
761
- // This is possible in virtualized environments like AWS Lambda where our
762
- // clock is unreliable. In these cases the timer is "running" but never
763
- // actually completes, so we want to execute immediately and then attempt
764
- // to reschedule.
765
- if (timeUntilNextCall < 0) {
766
- executeAndReschedule();
768
+ cannotBeExpedited = true;
767
769
  }
768
770
  }
769
771
  function stop() {
@@ -773,7 +775,7 @@ function makeInterruptibleAsyncInterval(fn, options) {
773
775
  timerId = undefined;
774
776
  }
775
777
  lastCallTime = 0;
776
- lastWakeTime = 0;
778
+ cannotBeExpedited = false;
777
779
  }
778
780
  function reschedule(ms) {
779
781
  if (stopped)
@@ -784,7 +786,7 @@ function makeInterruptibleAsyncInterval(fn, options) {
784
786
  timerId = setTimeout(executeAndReschedule, ms || interval);
785
787
  }
786
788
  function executeAndReschedule() {
787
- lastWakeTime = 0;
789
+ cannotBeExpedited = false;
788
790
  lastCallTime = clock();
789
791
  fn(err => {
790
792
  if (err)
@@ -854,6 +856,15 @@ function isSuperset(set, subset) {
854
856
  return true;
855
857
  }
856
858
  exports.isSuperset = isSuperset;
859
+ /**
860
+ * Checks if the document is a Hello request
861
+ * @internal
862
+ */
863
+ function isHello(doc) {
864
+ return doc[constants_2.LEGACY_HELLO_COMMAND] || doc.hello ? true : false;
865
+ }
866
+ exports.isHello = isHello;
867
+ /** Returns the items that are uniquely in setA */
857
868
  function setDifference(setA, setB) {
858
869
  const difference = new Set(setA);
859
870
  for (const elem of setB) {
@@ -1040,6 +1051,12 @@ class HostAddress {
1040
1051
  }
1041
1052
  Object.freeze(this);
1042
1053
  }
1054
+ [Symbol.for('nodejs.util.inspect.custom')]() {
1055
+ return this.inspect();
1056
+ }
1057
+ inspect() {
1058
+ return `new HostAddress('${this.toString(true)}')`;
1059
+ }
1043
1060
  /**
1044
1061
  * @param ipv6Brackets - optionally request ipv6 bracket notation required for connection strings
1045
1062
  */
@@ -1055,6 +1072,15 @@ class HostAddress {
1055
1072
  static fromString(s) {
1056
1073
  return new HostAddress(s);
1057
1074
  }
1075
+ static fromHostPort(host, port) {
1076
+ if (host.includes(':')) {
1077
+ host = `[${host}]`; // IPv6 address
1078
+ }
1079
+ return HostAddress.fromString(`${host}:${port}`);
1080
+ }
1081
+ static fromSrvRecord({ name, port }) {
1082
+ return HostAddress.fromHostPort(name, port);
1083
+ }
1058
1084
  }
1059
1085
  exports.HostAddress = HostAddress;
1060
1086
  exports.DEFAULT_PK_FACTORY = {
@@ -1118,4 +1144,45 @@ function parsePackageVersion({ version }) {
1118
1144
  return { major, minor, patch };
1119
1145
  }
1120
1146
  exports.parsePackageVersion = parsePackageVersion;
1147
+ /**
1148
+ * Fisher–Yates Shuffle
1149
+ *
1150
+ * Reference: https://bost.ocks.org/mike/shuffle/
1151
+ * @param sequence - items to be shuffled
1152
+ * @param limit - Defaults to `0`. If nonzero shuffle will slice the randomized array e.g, `.slice(0, limit)` otherwise will return the entire randomized array.
1153
+ */
1154
+ function shuffle(sequence, limit = 0) {
1155
+ const items = Array.from(sequence); // shallow copy in order to never shuffle the input
1156
+ if (limit > items.length) {
1157
+ throw new error_1.MongoRuntimeError('Limit must be less than the number of items');
1158
+ }
1159
+ let remainingItemsToShuffle = items.length;
1160
+ const lowerBound = limit % items.length === 0 ? 1 : items.length - limit;
1161
+ while (remainingItemsToShuffle > lowerBound) {
1162
+ // Pick a remaining element
1163
+ const randomIndex = Math.floor(Math.random() * remainingItemsToShuffle);
1164
+ remainingItemsToShuffle -= 1;
1165
+ // And swap it with the current element
1166
+ const swapHold = items[remainingItemsToShuffle];
1167
+ items[remainingItemsToShuffle] = items[randomIndex];
1168
+ items[randomIndex] = swapHold;
1169
+ }
1170
+ return limit % items.length === 0 ? items : items.slice(lowerBound);
1171
+ }
1172
+ exports.shuffle = shuffle;
1173
+ // TODO: this should be codified in command construction
1174
+ // @see https://github.com/mongodb/specifications/blob/master/source/read-write-concern/read-write-concern.rst#read-concern
1175
+ function commandSupportsReadConcern(command, options) {
1176
+ if (command.aggregate || command.count || command.distinct || command.find || command.geoNear) {
1177
+ return true;
1178
+ }
1179
+ if (command.mapReduce &&
1180
+ options &&
1181
+ options.out &&
1182
+ (options.out.inline === 1 || options.out === 'inline')) {
1183
+ return true;
1184
+ }
1185
+ return false;
1186
+ }
1187
+ exports.commandSupportsReadConcern = commandSupportsReadConcern;
1121
1188
  //# sourceMappingURL=utils.js.map
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}