mongodb 5.7.0 → 6.0.0-alpha.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 (203) hide show
  1. package/lib/admin.js +6 -21
  2. package/lib/admin.js.map +1 -1
  3. package/lib/bson.js +2 -1
  4. package/lib/bson.js.map +1 -1
  5. package/lib/bulk/common.js +5 -52
  6. package/lib/bulk/common.js.map +1 -1
  7. package/lib/client-side-encryption/auto_encrypter.js +360 -0
  8. package/lib/client-side-encryption/auto_encrypter.js.map +1 -0
  9. package/lib/client-side-encryption/client_encryption.js +555 -0
  10. package/lib/client-side-encryption/client_encryption.js.map +1 -0
  11. package/lib/client-side-encryption/common.js +55 -0
  12. package/lib/client-side-encryption/common.js.map +1 -0
  13. package/lib/client-side-encryption/crypto_callbacks.js +81 -0
  14. package/lib/client-side-encryption/crypto_callbacks.js.map +1 -0
  15. package/lib/client-side-encryption/errors.js +85 -0
  16. package/lib/client-side-encryption/errors.js.map +1 -0
  17. package/lib/client-side-encryption/mongocryptd_manager.js +62 -0
  18. package/lib/client-side-encryption/mongocryptd_manager.js.map +1 -0
  19. package/lib/client-side-encryption/providers/aws.js +21 -0
  20. package/lib/client-side-encryption/providers/aws.js.map +1 -0
  21. package/lib/client-side-encryption/providers/azure.js +114 -0
  22. package/lib/client-side-encryption/providers/azure.js.map +1 -0
  23. package/lib/client-side-encryption/providers/gcp.js +17 -0
  24. package/lib/client-side-encryption/providers/gcp.js.map +1 -0
  25. package/lib/client-side-encryption/providers/index.js +44 -0
  26. package/lib/client-side-encryption/providers/index.js.map +1 -0
  27. package/lib/client-side-encryption/providers/utils.js +35 -0
  28. package/lib/client-side-encryption/providers/utils.js.map +1 -0
  29. package/lib/client-side-encryption/state_machine.js +409 -0
  30. package/lib/client-side-encryption/state_machine.js.map +1 -0
  31. package/lib/cmap/auth/mongodb_aws.js.map +1 -1
  32. package/lib/cmap/connect.js +21 -9
  33. package/lib/cmap/connect.js.map +1 -1
  34. package/lib/cmap/connection.js +1 -0
  35. package/lib/cmap/connection.js.map +1 -1
  36. package/lib/cmap/connection_pool_events.js +2 -1
  37. package/lib/cmap/connection_pool_events.js.map +1 -1
  38. package/lib/cmap/wire_protocol/compression.js +2 -2
  39. package/lib/cmap/wire_protocol/compression.js.map +1 -1
  40. package/lib/collection.js +7 -13
  41. package/lib/collection.js.map +1 -1
  42. package/lib/connection_string.js +28 -89
  43. package/lib/connection_string.js.map +1 -1
  44. package/lib/db.js +5 -21
  45. package/lib/db.js.map +1 -1
  46. package/lib/deps.js +41 -9
  47. package/lib/deps.js.map +1 -1
  48. package/lib/encrypter.js +7 -8
  49. package/lib/encrypter.js.map +1 -1
  50. package/lib/index.js +15 -5
  51. package/lib/index.js.map +1 -1
  52. package/lib/mongo_client.js +25 -8
  53. package/lib/mongo_client.js.map +1 -1
  54. package/lib/operations/aggregate.js +2 -2
  55. package/lib/operations/aggregate.js.map +1 -1
  56. package/lib/operations/bulk_write.js +6 -10
  57. package/lib/operations/bulk_write.js.map +1 -1
  58. package/lib/operations/collections.js +12 -14
  59. package/lib/operations/collections.js.map +1 -1
  60. package/lib/operations/command.js +3 -3
  61. package/lib/operations/command.js.map +1 -1
  62. package/lib/operations/common_functions.js +10 -42
  63. package/lib/operations/common_functions.js.map +1 -1
  64. package/lib/operations/count.js +3 -4
  65. package/lib/operations/count.js.map +1 -1
  66. package/lib/operations/count_documents.js +9 -15
  67. package/lib/operations/count_documents.js.map +1 -1
  68. package/lib/operations/create_collection.js +48 -57
  69. package/lib/operations/create_collection.js.map +1 -1
  70. package/lib/operations/delete.js +27 -34
  71. package/lib/operations/delete.js.map +1 -1
  72. package/lib/operations/distinct.js +4 -14
  73. package/lib/operations/distinct.js.map +1 -1
  74. package/lib/operations/drop.js +37 -49
  75. package/lib/operations/drop.js.map +1 -1
  76. package/lib/operations/estimated_document_count.js +3 -8
  77. package/lib/operations/estimated_document_count.js.map +1 -1
  78. package/lib/operations/execute_operation.js +4 -1
  79. package/lib/operations/execute_operation.js.map +1 -1
  80. package/lib/operations/find.js +3 -3
  81. package/lib/operations/find.js.map +1 -1
  82. package/lib/operations/find_and_modify.js +6 -10
  83. package/lib/operations/find_and_modify.js.map +1 -1
  84. package/lib/operations/get_more.js +6 -6
  85. package/lib/operations/get_more.js.map +1 -1
  86. package/lib/operations/indexes.js +51 -75
  87. package/lib/operations/indexes.js.map +1 -1
  88. package/lib/operations/insert.js +28 -30
  89. package/lib/operations/insert.js.map +1 -1
  90. package/lib/operations/is_capped.js +8 -11
  91. package/lib/operations/is_capped.js.map +1 -1
  92. package/lib/operations/kill_cursors.js +10 -5
  93. package/lib/operations/kill_cursors.js.map +1 -1
  94. package/lib/operations/list_collections.js +2 -2
  95. package/lib/operations/list_collections.js.map +1 -1
  96. package/lib/operations/list_databases.js +2 -2
  97. package/lib/operations/list_databases.js.map +1 -1
  98. package/lib/operations/operation.js +1 -14
  99. package/lib/operations/operation.js.map +1 -1
  100. package/lib/operations/options_operation.js +8 -11
  101. package/lib/operations/options_operation.js.map +1 -1
  102. package/lib/operations/profiling_level.js +15 -18
  103. package/lib/operations/profiling_level.js.map +1 -1
  104. package/lib/operations/remove_user.js +3 -4
  105. package/lib/operations/remove_user.js.map +1 -1
  106. package/lib/operations/rename.js +17 -29
  107. package/lib/operations/rename.js.map +1 -1
  108. package/lib/operations/run_command.js +26 -11
  109. package/lib/operations/run_command.js.map +1 -1
  110. package/lib/operations/search_indexes/create.js +5 -10
  111. package/lib/operations/search_indexes/create.js.map +1 -1
  112. package/lib/operations/search_indexes/drop.js +11 -8
  113. package/lib/operations/search_indexes/drop.js.map +1 -1
  114. package/lib/operations/search_indexes/update.js +4 -9
  115. package/lib/operations/search_indexes/update.js.map +1 -1
  116. package/lib/operations/set_profiling_level.js +4 -9
  117. package/lib/operations/set_profiling_level.js.map +1 -1
  118. package/lib/operations/stats.js +3 -29
  119. package/lib/operations/stats.js.map +1 -1
  120. package/lib/operations/update.js +52 -59
  121. package/lib/operations/update.js.map +1 -1
  122. package/lib/operations/validate_collection.js +9 -15
  123. package/lib/operations/validate_collection.js.map +1 -1
  124. package/lib/sdam/server.js +3 -1
  125. package/lib/sdam/server.js.map +1 -1
  126. package/lib/sessions.js +20 -22
  127. package/lib/sessions.js.map +1 -1
  128. package/lib/utils.js +5 -40
  129. package/lib/utils.js.map +1 -1
  130. package/mongodb.d.ts +813 -492
  131. package/package.json +20 -9
  132. package/src/admin.ts +7 -31
  133. package/src/bson.ts +2 -1
  134. package/src/bulk/common.ts +21 -67
  135. package/src/bulk/unordered.ts +1 -1
  136. package/src/client-side-encryption/auto_encrypter.ts +659 -0
  137. package/src/client-side-encryption/client_encryption.ts +984 -0
  138. package/src/client-side-encryption/common.js +59 -0
  139. package/src/client-side-encryption/crypto_callbacks.ts +87 -0
  140. package/src/client-side-encryption/errors.ts +90 -0
  141. package/src/client-side-encryption/mongocryptd_manager.ts +79 -0
  142. package/src/client-side-encryption/providers/aws.ts +20 -0
  143. package/src/client-side-encryption/providers/azure.ts +168 -0
  144. package/src/client-side-encryption/providers/gcp.ts +16 -0
  145. package/src/client-side-encryption/providers/index.ts +168 -0
  146. package/src/client-side-encryption/providers/utils.ts +37 -0
  147. package/src/client-side-encryption/state_machine.ts +576 -0
  148. package/src/cmap/auth/mongodb_aws.ts +0 -8
  149. package/src/cmap/connect.ts +22 -10
  150. package/src/cmap/connection.ts +3 -6
  151. package/src/cmap/connection_pool_events.ts +7 -2
  152. package/src/collection.ts +16 -28
  153. package/src/connection_string.ts +34 -105
  154. package/src/db.ts +8 -29
  155. package/src/deps.ts +85 -217
  156. package/src/encrypter.ts +7 -10
  157. package/src/index.ts +39 -17
  158. package/src/mongo_client.ts +64 -76
  159. package/src/operations/aggregate.ts +5 -8
  160. package/src/operations/bulk_write.ts +9 -17
  161. package/src/operations/collections.ts +16 -23
  162. package/src/operations/command.ts +6 -8
  163. package/src/operations/common_functions.ts +15 -52
  164. package/src/operations/count.ts +4 -9
  165. package/src/operations/count_documents.ts +11 -22
  166. package/src/operations/create_collection.ts +61 -81
  167. package/src/operations/delete.ts +31 -39
  168. package/src/operations/distinct.ts +5 -18
  169. package/src/operations/drop.ts +39 -60
  170. package/src/operations/estimated_document_count.ts +3 -13
  171. package/src/operations/execute_operation.ts +12 -9
  172. package/src/operations/find.ts +8 -22
  173. package/src/operations/find_and_modify.ts +11 -22
  174. package/src/operations/get_more.ts +8 -19
  175. package/src/operations/indexes.ts +54 -134
  176. package/src/operations/insert.ts +35 -43
  177. package/src/operations/is_capped.ts +9 -22
  178. package/src/operations/kill_cursors.ts +11 -21
  179. package/src/operations/list_collections.ts +4 -13
  180. package/src/operations/list_databases.ts +6 -6
  181. package/src/operations/operation.ts +1 -22
  182. package/src/operations/options_operation.ts +9 -22
  183. package/src/operations/profiling_level.ts +12 -20
  184. package/src/operations/remove_user.ts +3 -9
  185. package/src/operations/rename.ts +25 -45
  186. package/src/operations/run_command.ts +34 -52
  187. package/src/operations/search_indexes/create.ts +6 -20
  188. package/src/operations/search_indexes/drop.ts +12 -15
  189. package/src/operations/search_indexes/update.ts +5 -16
  190. package/src/operations/set_profiling_level.ts +8 -16
  191. package/src/operations/stats.ts +2 -249
  192. package/src/operations/update.ts +57 -68
  193. package/src/operations/validate_collection.ts +10 -20
  194. package/src/sdam/server.ts +4 -7
  195. package/src/sessions.ts +45 -43
  196. package/src/utils.ts +5 -47
  197. package/tsconfig.json +4 -3
  198. package/lib/operations/add_user.js +0 -74
  199. package/lib/operations/add_user.js.map +0 -1
  200. package/lib/operations/eval.js +0 -55
  201. package/lib/operations/eval.js.map +0 -1
  202. package/src/operations/add_user.ts +0 -124
  203. package/src/operations/eval.ts +0 -82
package/lib/admin.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Admin = void 0;
4
- const add_user_1 = require("./operations/add_user");
4
+ const bson_1 = require("./bson");
5
5
  const execute_operation_1 = require("./operations/execute_operation");
6
6
  const list_databases_1 = require("./operations/list_databases");
7
7
  const remove_user_1 = require("./operations/remove_user");
@@ -57,7 +57,11 @@ class Admin {
57
57
  * @param options - Optional settings for the command
58
58
  */
59
59
  async command(command, options) {
60
- return (0, execute_operation_1.executeOperation)(this.s.db.client, new run_command_1.RunCommandOperation(this.s.db, command, { dbName: 'admin', ...options }));
60
+ return (0, execute_operation_1.executeOperation)(this.s.db.client, new run_command_1.RunAdminCommandOperation(command, {
61
+ ...(0, bson_1.resolveBSONOptions)(options),
62
+ session: options?.session,
63
+ readPreference: options?.readPreference
64
+ }));
61
65
  }
62
66
  /**
63
67
  * Retrieve the server build information
@@ -91,25 +95,6 @@ class Admin {
91
95
  async ping(options) {
92
96
  return this.command({ ping: 1 }, options);
93
97
  }
94
- /**
95
- * Add a user to the database
96
- *
97
- * @param username - The username for the new user
98
- * @param passwordOrOptions - An optional password for the new user, or the options for the command
99
- * @param options - Optional settings for the command
100
- * @deprecated Use the createUser command in `db.command()` instead.
101
- * @see https://www.mongodb.com/docs/manual/reference/command/createUser/
102
- */
103
- async addUser(username, passwordOrOptions, options) {
104
- options =
105
- options != null && typeof options === 'object'
106
- ? options
107
- : passwordOrOptions != null && typeof passwordOrOptions === 'object'
108
- ? passwordOrOptions
109
- : undefined;
110
- const password = typeof passwordOrOptions === 'string' ? passwordOrOptions : undefined;
111
- return (0, execute_operation_1.executeOperation)(this.s.db.client, new add_user_1.AddUserOperation(this.s.db, username, password, { dbName: 'admin', ...options }));
112
- }
113
98
  /**
114
99
  * Remove a user from a database
115
100
  *
package/lib/admin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin.js","sourceRoot":"","sources":["../src/admin.ts"],"names":[],"mappings":";;;AAAA,iCAA2D;AAG3D,sEAAkE;AAClE,gEAIqC;AACrC,0DAAuF;AACvF,0DAA4F;AAC5F,0EAG0C;AAO1C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAa,KAAK;IAIhB;;;OAGG;IACH,YAAY,EAAM;QAChB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,OAAO,CAAC,OAAiB,EAAE,OAA2B;QAC1D,OAAO,IAAA,oCAAgB,EACrB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAChB,IAAI,sCAAwB,CAAC,OAAO,EAAE;YACpC,GAAG,IAAA,yBAAkB,EAAC,OAAO,CAAC;YAC9B,OAAO,EAAE,OAAO,EAAE,OAAO;YACzB,cAAc,EAAE,OAAO,EAAE,cAAc;SACxC,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,OAAiC;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,OAAiC;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,OAAiC;QAClD,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,OAAiC;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,OAA2B;QAC5D,OAAO,IAAA,oCAAgB,EACrB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAChB,IAAI,iCAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAC9E,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CACtB,cAAsB,EACtB,UAAqC,EAAE;QAEvC,OAAO,IAAA,oCAAgB,EACrB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAChB,IAAI,iDAA2B,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,CAC/D,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,OAA8B;QAChD,OAAO,IAAA,oCAAgB,EAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,uCAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAAiC;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;CACF;AA/HD,sBA+HC"}
package/lib/bson.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.resolveBSONOptions = exports.pluckBSONSerializeOptions = exports.Timestamp = exports.serialize = exports.ObjectId = exports.MinKey = exports.MaxKey = exports.Long = exports.Int32 = exports.Double = exports.deserialize = exports.Decimal128 = exports.DBRef = exports.Code = exports.calculateObjectSize = exports.BSONType = exports.BSONSymbol = exports.BSONRegExp = exports.BSON = exports.Binary = void 0;
3
+ exports.resolveBSONOptions = exports.pluckBSONSerializeOptions = exports.UUID = exports.Timestamp = exports.serialize = exports.ObjectId = exports.MinKey = exports.MaxKey = exports.Long = exports.Int32 = exports.Double = exports.deserialize = exports.Decimal128 = exports.DBRef = exports.Code = exports.calculateObjectSize = exports.BSONType = exports.BSONSymbol = exports.BSONRegExp = exports.BSON = exports.Binary = void 0;
4
4
  var bson_1 = require("bson");
5
5
  Object.defineProperty(exports, "Binary", { enumerable: true, get: function () { return bson_1.Binary; } });
6
6
  Object.defineProperty(exports, "BSON", { enumerable: true, get: function () { return bson_1.BSON; } });
@@ -20,6 +20,7 @@ Object.defineProperty(exports, "MinKey", { enumerable: true, get: function () {
20
20
  Object.defineProperty(exports, "ObjectId", { enumerable: true, get: function () { return bson_1.ObjectId; } });
21
21
  Object.defineProperty(exports, "serialize", { enumerable: true, get: function () { return bson_1.serialize; } });
22
22
  Object.defineProperty(exports, "Timestamp", { enumerable: true, get: function () { return bson_1.Timestamp; } });
23
+ Object.defineProperty(exports, "UUID", { enumerable: true, get: function () { return bson_1.UUID; } });
23
24
  function pluckBSONSerializeOptions(options) {
24
25
  const { fieldsAsRaw, useBigInt64, promoteValues, promoteBuffers, promoteLongs, serializeFunctions, ignoreUndefined, bsonRegExp, raw, enableUtf8Validation } = options;
25
26
  return {
package/lib/bson.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bson.js","sourceRoot":"","sources":["../src/bson.ts"],"names":[],"mappings":";;;AAEA,6BAoBc;AAnBZ,8FAAA,MAAM,OAAA;AACN,4FAAA,IAAI,OAAA;AACJ,kGAAA,UAAU,OAAA;AACV,kGAAA,UAAU,OAAA;AACV,gGAAA,QAAQ,OAAA;AACR,2GAAA,mBAAmB,OAAA;AACnB,4FAAA,IAAI,OAAA;AACJ,6FAAA,KAAK,OAAA;AACL,kGAAA,UAAU,OAAA;AACV,mGAAA,WAAW,OAAA;AAEX,8FAAA,MAAM,OAAA;AACN,6FAAA,KAAK,OAAA;AACL,4FAAA,IAAI,OAAA;AACJ,8FAAA,MAAM,OAAA;AACN,8FAAA,MAAM,OAAA;AACN,gGAAA,QAAQ,OAAA;AACR,iGAAA,SAAS,OAAA;AACT,iGAAA,SAAS,OAAA;AA4CX,SAAgB,yBAAyB,CAAC,OAA6B;IACrE,MAAM,EACJ,WAAW,EACX,WAAW,EACX,aAAa,EACb,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,GAAG,EACH,oBAAoB,EACrB,GAAG,OAAO,CAAC;IACZ,OAAO;QACL,WAAW;QACX,WAAW;QACX,aAAa;QACb,cAAc;QACd,YAAY;QACZ,kBAAkB;QAClB,eAAe;QACf,UAAU;QACV,GAAG;QACH,oBAAoB;KACrB,CAAC;AACJ,CAAC;AAzBD,8DAyBC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,OAA8B,EAC9B,MAA+C;IAE/C,MAAM,aAAa,GAAG,MAAM,EAAE,WAAW,CAAC;IAC1C,OAAO;QACL,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,aAAa,EAAE,GAAG,IAAI,KAAK;QAChD,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,aAAa,EAAE,WAAW,IAAI,KAAK;QACxE,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,YAAY,IAAI,IAAI;QAC1E,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,aAAa,EAAE,aAAa,IAAI,IAAI;QAC7E,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,aAAa,EAAE,cAAc,IAAI,KAAK;QACjF,eAAe,EAAE,OAAO,EAAE,eAAe,IAAI,aAAa,EAAE,eAAe,IAAI,KAAK;QACpF,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,UAAU,IAAI,KAAK;QACrE,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,IAAI,aAAa,EAAE,kBAAkB,IAAI,KAAK;QAC7F,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,aAAa,EAAE,WAAW,IAAI,EAAE;QACrE,oBAAoB,EAClB,OAAO,EAAE,oBAAoB,IAAI,aAAa,EAAE,oBAAoB,IAAI,IAAI;KAC/E,CAAC;AACJ,CAAC;AAlBD,gDAkBC"}
1
+ {"version":3,"file":"bson.js","sourceRoot":"","sources":["../src/bson.ts"],"names":[],"mappings":";;;AAEA,6BAqBc;AApBZ,8FAAA,MAAM,OAAA;AACN,4FAAA,IAAI,OAAA;AACJ,kGAAA,UAAU,OAAA;AACV,kGAAA,UAAU,OAAA;AACV,gGAAA,QAAQ,OAAA;AACR,2GAAA,mBAAmB,OAAA;AACnB,4FAAA,IAAI,OAAA;AACJ,6FAAA,KAAK,OAAA;AACL,kGAAA,UAAU,OAAA;AACV,mGAAA,WAAW,OAAA;AAEX,8FAAA,MAAM,OAAA;AACN,6FAAA,KAAK,OAAA;AACL,4FAAA,IAAI,OAAA;AACJ,8FAAA,MAAM,OAAA;AACN,8FAAA,MAAM,OAAA;AACN,gGAAA,QAAQ,OAAA;AACR,iGAAA,SAAS,OAAA;AACT,iGAAA,SAAS,OAAA;AACT,4FAAA,IAAI,OAAA;AA4CN,SAAgB,yBAAyB,CAAC,OAA6B;IACrE,MAAM,EACJ,WAAW,EACX,WAAW,EACX,aAAa,EACb,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,GAAG,EACH,oBAAoB,EACrB,GAAG,OAAO,CAAC;IACZ,OAAO;QACL,WAAW;QACX,WAAW;QACX,aAAa;QACb,cAAc;QACd,YAAY;QACZ,kBAAkB;QAClB,eAAe;QACf,UAAU;QACV,GAAG;QACH,oBAAoB;KACrB,CAAC;AACJ,CAAC;AAzBD,8DAyBC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,OAA8B,EAC9B,MAA+C;IAE/C,MAAM,aAAa,GAAG,MAAM,EAAE,WAAW,CAAC;IAC1C,OAAO;QACL,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,aAAa,EAAE,GAAG,IAAI,KAAK;QAChD,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,aAAa,EAAE,WAAW,IAAI,KAAK;QACxE,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,YAAY,IAAI,IAAI;QAC1E,aAAa,EAAE,OAAO,EAAE,aAAa,IAAI,aAAa,EAAE,aAAa,IAAI,IAAI;QAC7E,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,aAAa,EAAE,cAAc,IAAI,KAAK;QACjF,eAAe,EAAE,OAAO,EAAE,eAAe,IAAI,aAAa,EAAE,eAAe,IAAI,KAAK;QACpF,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,UAAU,IAAI,KAAK;QACrE,kBAAkB,EAAE,OAAO,EAAE,kBAAkB,IAAI,aAAa,EAAE,kBAAkB,IAAI,KAAK;QAC7F,WAAW,EAAE,OAAO,EAAE,WAAW,IAAI,aAAa,EAAE,WAAW,IAAI,EAAE;QACrE,oBAAoB,EAClB,OAAO,EAAE,oBAAoB,IAAI,aAAa,EAAE,oBAAoB,IAAI,IAAI;KAC/E,CAAC;AACJ,CAAC;AAlBD,gDAkBC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BulkOperationBase = exports.FindOperators = exports.MongoBulkWriteError = exports.mergeBatchResults = exports.WriteError = exports.WriteConcernError = exports.BulkWriteResult = exports.Batch = exports.BatchType = void 0;
4
+ const util_1 = require("util");
4
5
  const bson_1 = require("../bson");
5
6
  const error_1 = require("../error");
6
7
  const delete_1 = require("../operations/delete");
@@ -67,55 +68,6 @@ class BulkWriteResult {
67
68
  get ok() {
68
69
  return this.result.ok;
69
70
  }
70
- /**
71
- * The number of inserted documents
72
- * @deprecated Use insertedCount instead.
73
- */
74
- get nInserted() {
75
- return this.result.nInserted;
76
- }
77
- /**
78
- * Number of upserted documents
79
- * @deprecated User upsertedCount instead.
80
- */
81
- get nUpserted() {
82
- return this.result.nUpserted;
83
- }
84
- /**
85
- * Number of matched documents
86
- * @deprecated Use matchedCount instead.
87
- */
88
- get nMatched() {
89
- return this.result.nMatched;
90
- }
91
- /**
92
- * Number of documents updated physically on disk
93
- * @deprecated Use modifiedCount instead.
94
- */
95
- get nModified() {
96
- return this.result.nModified;
97
- }
98
- /**
99
- * Number of removed documents
100
- * @deprecated Use deletedCount instead.
101
- */
102
- get nRemoved() {
103
- return this.result.nRemoved;
104
- }
105
- /**
106
- * Returns an array of all inserted ids
107
- * @deprecated Use insertedIds instead.
108
- */
109
- getInsertedIds() {
110
- return this.result.insertedIds;
111
- }
112
- /**
113
- * Returns an array of all upserted ids
114
- * @deprecated Use upsertedIds instead.
115
- */
116
- getUpsertedIds() {
117
- return this.result.upserted;
118
- }
119
71
  /** Returns the upserted id at the given index */
120
72
  getUpsertedIdAt(index) {
121
73
  return this.result.upserted[index];
@@ -529,6 +481,7 @@ class FindOperators {
529
481
  }
530
482
  }
531
483
  exports.FindOperators = FindOperators;
484
+ const executeCommandsAsync = (0, util_1.promisify)(executeCommands);
532
485
  /**
533
486
  * TODO(NODE-4063)
534
487
  * BulkWrites merge complexity is implemented in executeCommands
@@ -536,12 +489,12 @@ exports.FindOperators = FindOperators;
536
489
  * We would like this logic to simply live inside the BulkWriteOperation class
537
490
  * @internal
538
491
  */
539
- class BulkWriteShimOperation extends operation_1.AbstractCallbackOperation {
492
+ class BulkWriteShimOperation extends operation_1.AbstractOperation {
540
493
  constructor(bulkOperation, options) {
541
494
  super(options);
542
495
  this.bulkOperation = bulkOperation;
543
496
  }
544
- executeCallback(server, session, callback) {
497
+ execute(_server, session) {
545
498
  if (this.options.session == null) {
546
499
  // An implicit session could have been created by 'executeOperation'
547
500
  // So if we stick it on finalOptions here, each bulk operation
@@ -549,7 +502,7 @@ class BulkWriteShimOperation extends operation_1.AbstractCallbackOperation {
549
502
  // an explicit session would be
550
503
  this.options.session = session;
551
504
  }
552
- return executeCommands(this.bulkOperation, this.options, callback);
505
+ return executeCommandsAsync(this.bulkOperation, this.options);
553
506
  }
554
507
  }
555
508
  /** @public */
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/bulk/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/bulk/common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,360 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.AutoEncrypter = exports.AutoEncryptionLoggerLevel = void 0;
5
+ const bson_1 = require("../bson");
6
+ const deps_1 = require("../deps");
7
+ const error_1 = require("../error");
8
+ const mongo_client_1 = require("../mongo_client");
9
+ const utils_1 = require("../utils");
10
+ const cryptoCallbacks = require("./crypto_callbacks");
11
+ const errors_1 = require("./errors");
12
+ const mongocryptd_manager_1 = require("./mongocryptd_manager");
13
+ const providers_1 = require("./providers");
14
+ const state_machine_1 = require("./state_machine");
15
+ /** @public */
16
+ exports.AutoEncryptionLoggerLevel = Object.freeze({
17
+ FatalError: 0,
18
+ Error: 1,
19
+ Warning: 2,
20
+ Info: 3,
21
+ Trace: 4
22
+ });
23
+ // Typescript errors if we index objects with `Symbol.for(...)`, so
24
+ // to avoid TS errors we pull them out into variables. Then we can type
25
+ // the objects (and class) that we expect to see them on and prevent TS
26
+ // errors.
27
+ /** @internal */
28
+ const kDecorateResult = Symbol.for('@@mdb.decorateDecryptionResult');
29
+ /** @internal */
30
+ const kDecoratedKeys = Symbol.for('@@mdb.decryptedKeys');
31
+ /**
32
+ * @internal An internal class to be used by the driver for auto encryption
33
+ * **NOTE**: Not meant to be instantiated directly, this is for internal use only.
34
+ */
35
+ class AutoEncrypter {
36
+ /** @internal */
37
+ static getMongoCrypt() {
38
+ const encryption = (0, deps_1.getMongoDBClientEncryption)();
39
+ if ('kModuleError' in encryption) {
40
+ throw encryption.kModuleError;
41
+ }
42
+ return encryption.MongoCrypt;
43
+ }
44
+ /**
45
+ * Create an AutoEncrypter
46
+ *
47
+ * **Note**: Do not instantiate this class directly. Rather, supply the relevant options to a MongoClient
48
+ *
49
+ * **Note**: Supplying `options.schemaMap` provides more security than relying on JSON Schemas obtained from the server.
50
+ * It protects against a malicious server advertising a false JSON Schema, which could trick the client into sending unencrypted data that should be encrypted.
51
+ * Schemas supplied in the schemaMap only apply to configuring automatic encryption for Client-Side Field Level Encryption.
52
+ * Other validation rules in the JSON schema will not be enforced by the driver and will result in an error.
53
+ *
54
+ * @example <caption>Create an AutoEncrypter that makes use of mongocryptd</caption>
55
+ * ```ts
56
+ * // Enabling autoEncryption via a MongoClient using mongocryptd
57
+ * const { MongoClient } = require('mongodb');
58
+ * const client = new MongoClient(URL, {
59
+ * autoEncryption: {
60
+ * kmsProviders: {
61
+ * aws: {
62
+ * accessKeyId: AWS_ACCESS_KEY,
63
+ * secretAccessKey: AWS_SECRET_KEY
64
+ * }
65
+ * }
66
+ * }
67
+ * });
68
+ * ```
69
+ *
70
+ * await client.connect();
71
+ * // From here on, the client will be encrypting / decrypting automatically
72
+ * @example <caption>Create an AutoEncrypter that makes use of libmongocrypt's CSFLE shared library</caption>
73
+ * ```ts
74
+ * // Enabling autoEncryption via a MongoClient using CSFLE shared library
75
+ * const { MongoClient } = require('mongodb');
76
+ * const client = new MongoClient(URL, {
77
+ * autoEncryption: {
78
+ * kmsProviders: {
79
+ * aws: {}
80
+ * },
81
+ * extraOptions: {
82
+ * cryptSharedLibPath: '/path/to/local/crypt/shared/lib',
83
+ * cryptSharedLibRequired: true
84
+ * }
85
+ * }
86
+ * });
87
+ * ```
88
+ *
89
+ * await client.connect();
90
+ * // From here on, the client will be encrypting / decrypting automatically
91
+ */
92
+ constructor(client, options) {
93
+ /**
94
+ * Used by devtools to enable decorating decryption results.
95
+ *
96
+ * When set and enabled, `decrypt` will automatically recursively
97
+ * traverse a decrypted document and if a field has been decrypted,
98
+ * it will mark it as decrypted. Compass uses this to determine which
99
+ * fields were decrypted.
100
+ */
101
+ this[_a] = false;
102
+ this._client = client;
103
+ this._bypassEncryption = options.bypassAutoEncryption === true;
104
+ this._keyVaultNamespace = options.keyVaultNamespace || 'admin.datakeys';
105
+ this._keyVaultClient = options.keyVaultClient || client;
106
+ this._metaDataClient = options.metadataClient || client;
107
+ this._proxyOptions = options.proxyOptions || {};
108
+ this._tlsOptions = options.tlsOptions || {};
109
+ this._kmsProviders = options.kmsProviders || {};
110
+ const mongoCryptOptions = {
111
+ cryptoCallbacks
112
+ };
113
+ if (options.schemaMap) {
114
+ mongoCryptOptions.schemaMap = Buffer.isBuffer(options.schemaMap)
115
+ ? options.schemaMap
116
+ : (0, bson_1.serialize)(options.schemaMap);
117
+ }
118
+ if (options.encryptedFieldsMap) {
119
+ mongoCryptOptions.encryptedFieldsMap = Buffer.isBuffer(options.encryptedFieldsMap)
120
+ ? options.encryptedFieldsMap
121
+ : (0, bson_1.serialize)(options.encryptedFieldsMap);
122
+ }
123
+ mongoCryptOptions.kmsProviders = !Buffer.isBuffer(this._kmsProviders)
124
+ ? (0, bson_1.serialize)(this._kmsProviders)
125
+ : this._kmsProviders;
126
+ if (options.options?.logger) {
127
+ mongoCryptOptions.logger = options.options.logger;
128
+ }
129
+ if (options.extraOptions && options.extraOptions.cryptSharedLibPath) {
130
+ mongoCryptOptions.cryptSharedLibPath = options.extraOptions.cryptSharedLibPath;
131
+ }
132
+ if (options.bypassQueryAnalysis) {
133
+ mongoCryptOptions.bypassQueryAnalysis = options.bypassQueryAnalysis;
134
+ }
135
+ this._bypassMongocryptdAndCryptShared = this._bypassEncryption || !!options.bypassQueryAnalysis;
136
+ if (options.extraOptions && options.extraOptions.cryptSharedLibSearchPaths) {
137
+ // Only for driver testing
138
+ mongoCryptOptions.cryptSharedLibSearchPaths = options.extraOptions.cryptSharedLibSearchPaths;
139
+ }
140
+ else if (!this._bypassMongocryptdAndCryptShared) {
141
+ mongoCryptOptions.cryptSharedLibSearchPaths = ['$SYSTEM'];
142
+ }
143
+ const MongoCrypt = AutoEncrypter.getMongoCrypt();
144
+ this._mongocrypt = new MongoCrypt(mongoCryptOptions);
145
+ this._contextCounter = 0;
146
+ if (options.extraOptions &&
147
+ options.extraOptions.cryptSharedLibRequired &&
148
+ !this.cryptSharedLibVersionInfo) {
149
+ throw new errors_1.MongoCryptInvalidArgumentError('`cryptSharedLibRequired` set but no crypt_shared library loaded');
150
+ }
151
+ // Only instantiate mongocryptd manager/client once we know for sure
152
+ // that we are not using the CSFLE shared library.
153
+ if (!this._bypassMongocryptdAndCryptShared && !this.cryptSharedLibVersionInfo) {
154
+ this._mongocryptdManager = new mongocryptd_manager_1.MongocryptdManager(options.extraOptions);
155
+ const clientOptions = {
156
+ serverSelectionTimeoutMS: 10000
157
+ };
158
+ if (options.extraOptions == null || typeof options.extraOptions.mongocryptdURI !== 'string') {
159
+ clientOptions.family = 4;
160
+ }
161
+ this._mongocryptdClient = new mongo_client_1.MongoClient(this._mongocryptdManager.uri, clientOptions);
162
+ }
163
+ }
164
+ /**
165
+ * Initializes the auto encrypter by spawning a mongocryptd and connecting to it.
166
+ *
167
+ * This function is a no-op when bypassSpawn is set or the crypt shared library is used.
168
+ */
169
+ init(callback) {
170
+ if (this._bypassMongocryptdAndCryptShared || this.cryptSharedLibVersionInfo) {
171
+ return callback();
172
+ }
173
+ if (!this._mongocryptdManager) {
174
+ return callback(new error_1.MongoRuntimeError('Reached impossible state: mongocryptdManager is undefined when neither bypassSpawn nor the shared lib are specified.'));
175
+ }
176
+ if (!this._mongocryptdClient) {
177
+ return callback(new error_1.MongoRuntimeError('Reached impossible state: mongocryptdClient is undefined when neither bypassSpawn nor the shared lib are specified.'));
178
+ }
179
+ const _callback = (err, res) => {
180
+ if (err &&
181
+ err.message &&
182
+ (err.message.match(/timed out after/) || err.message.match(/ENOTFOUND/))) {
183
+ callback(new error_1.MongoRuntimeError('Unable to connect to `mongocryptd`, please make sure it is running or in your PATH for auto-spawn'));
184
+ return;
185
+ }
186
+ callback(err, res);
187
+ };
188
+ if (this._mongocryptdManager.bypassSpawn) {
189
+ this._mongocryptdClient.connect().then(result => {
190
+ return _callback(undefined, result);
191
+ }, error => {
192
+ _callback(error, undefined);
193
+ });
194
+ return;
195
+ }
196
+ this._mongocryptdManager.spawn(() => {
197
+ if (!this._mongocryptdClient) {
198
+ return callback(new error_1.MongoRuntimeError('Reached impossible state: mongocryptdClient is undefined after spawning libmongocrypt.'));
199
+ }
200
+ this._mongocryptdClient.connect().then(result => {
201
+ return _callback(undefined, result);
202
+ }, error => {
203
+ _callback(error, undefined);
204
+ });
205
+ });
206
+ }
207
+ /**
208
+ * Cleans up the `_mongocryptdClient`, if present.
209
+ */
210
+ teardown(force, callback) {
211
+ if (this._mongocryptdClient) {
212
+ this._mongocryptdClient.close(force).then(result => {
213
+ return callback(undefined, result);
214
+ }, error => {
215
+ callback(error);
216
+ });
217
+ }
218
+ else {
219
+ callback();
220
+ }
221
+ }
222
+ /**
223
+ * Encrypt a command for a given namespace.
224
+ */
225
+ encrypt(ns, cmd, options, callback) {
226
+ callback = typeof options === 'function' ? options : callback;
227
+ if (callback == null) {
228
+ throw new errors_1.MongoCryptInvalidArgumentError('Callback must be provided');
229
+ }
230
+ options = typeof options === 'function' ? {} : options;
231
+ // If `bypassAutoEncryption` has been specified, don't encrypt
232
+ if (this._bypassEncryption) {
233
+ callback(undefined, cmd);
234
+ return;
235
+ }
236
+ const commandBuffer = Buffer.isBuffer(cmd) ? cmd : (0, bson_1.serialize)(cmd, options);
237
+ let context;
238
+ try {
239
+ context = this._mongocrypt.makeEncryptionContext(utils_1.MongoDBCollectionNamespace.fromString(ns).db, commandBuffer);
240
+ }
241
+ catch (err) {
242
+ callback(err, undefined);
243
+ return;
244
+ }
245
+ context.id = this._contextCounter++;
246
+ context.ns = ns;
247
+ context.document = cmd;
248
+ const stateMachine = new state_machine_1.StateMachine({
249
+ promoteValues: false,
250
+ promoteLongs: false,
251
+ proxyOptions: this._proxyOptions,
252
+ tlsOptions: this._tlsOptions
253
+ });
254
+ stateMachine.execute(this, context, callback);
255
+ }
256
+ /**
257
+ * Decrypt a command response
258
+ */
259
+ decrypt(response, options, callback) {
260
+ callback = typeof options === 'function' ? options : callback;
261
+ if (callback == null) {
262
+ throw new errors_1.MongoCryptInvalidArgumentError('Callback must be provided');
263
+ }
264
+ options = typeof options === 'function' ? {} : options;
265
+ const buffer = Buffer.isBuffer(response) ? response : (0, bson_1.serialize)(response, options);
266
+ let context;
267
+ try {
268
+ context = this._mongocrypt.makeDecryptionContext(buffer);
269
+ }
270
+ catch (err) {
271
+ callback(err, undefined);
272
+ return;
273
+ }
274
+ context.id = this._contextCounter++;
275
+ const stateMachine = new state_machine_1.StateMachine({
276
+ ...options,
277
+ proxyOptions: this._proxyOptions,
278
+ tlsOptions: this._tlsOptions
279
+ });
280
+ const decorateResult = this[kDecorateResult];
281
+ stateMachine.execute(this, context, function (error, result) {
282
+ // Only for testing/internal usage
283
+ if (!error && result && decorateResult) {
284
+ const error = decorateDecryptionResult(result, response);
285
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
286
+ if (error)
287
+ return callback(error);
288
+ }
289
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
290
+ callback(error, result);
291
+ });
292
+ }
293
+ /**
294
+ * Ask the user for KMS credentials.
295
+ *
296
+ * This returns anything that looks like the kmsProviders original input
297
+ * option. It can be empty, and any provider specified here will override
298
+ * the original ones.
299
+ */
300
+ async askForKMSCredentials() {
301
+ return (0, providers_1.refreshKMSCredentials)(this._kmsProviders);
302
+ }
303
+ /**
304
+ * Return the current libmongocrypt's CSFLE shared library version
305
+ * as `{ version: bigint, versionStr: string }`, or `null` if no CSFLE
306
+ * shared library was loaded.
307
+ */
308
+ get cryptSharedLibVersionInfo() {
309
+ return this._mongocrypt.cryptSharedLibVersionInfo;
310
+ }
311
+ static get libmongocryptVersion() {
312
+ return AutoEncrypter.getMongoCrypt().libmongocryptVersion;
313
+ }
314
+ }
315
+ exports.AutoEncrypter = AutoEncrypter;
316
+ _a = kDecorateResult;
317
+ /**
318
+ * Recurse through the (identically-shaped) `decrypted` and `original`
319
+ * objects and attach a `decryptedKeys` property on each sub-object that
320
+ * contained encrypted fields. Because we only call this on BSON responses,
321
+ * we do not need to worry about circular references.
322
+ *
323
+ * @internal
324
+ */
325
+ function decorateDecryptionResult(decrypted, original, isTopLevelDecorateCall = true) {
326
+ if (isTopLevelDecorateCall) {
327
+ // The original value could have been either a JS object or a BSON buffer
328
+ if (Buffer.isBuffer(original)) {
329
+ original = (0, bson_1.deserialize)(original);
330
+ }
331
+ if (Buffer.isBuffer(decrypted)) {
332
+ return new error_1.MongoRuntimeError('Expected result of decryption to be deserialized BSON object');
333
+ }
334
+ }
335
+ if (!decrypted || typeof decrypted !== 'object')
336
+ return;
337
+ for (const k of Object.keys(decrypted)) {
338
+ const originalValue = original[k];
339
+ // An object was decrypted by libmongocrypt if and only if it was
340
+ // a BSON Binary object with subtype 6.
341
+ if (originalValue && originalValue._bsontype === 'Binary' && originalValue.sub_type === 6) {
342
+ if (!decrypted[kDecoratedKeys]) {
343
+ Object.defineProperty(decrypted, kDecoratedKeys, {
344
+ value: [],
345
+ configurable: true,
346
+ enumerable: false,
347
+ writable: false
348
+ });
349
+ }
350
+ // this is defined in the preceeding if-statement
351
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
352
+ decrypted[kDecoratedKeys].push(k);
353
+ // Do not recurse into this decrypted value. It could be a subdocument/array,
354
+ // in which case there is no original value associated with its subfields.
355
+ continue;
356
+ }
357
+ decorateDecryptionResult(decrypted[k], originalValue, false);
358
+ }
359
+ }
360
+ //# sourceMappingURL=auto_encrypter.js.map