mongodb 6.8.2 → 6.9.0-dev.20240917.sha.20396e1b
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.
- package/README.md +14 -1
- package/lib/beta.d.ts +7940 -0
- package/lib/beta.js +21 -0
- package/lib/beta.js.map +1 -0
- package/lib/bson.js +5 -5
- package/lib/bson.js.map +1 -1
- package/lib/bulk/common.js +16 -21
- package/lib/bulk/common.js.map +1 -1
- package/lib/bulk/ordered.js.map +1 -1
- package/lib/bulk/unordered.js.map +1 -1
- package/lib/change_stream.js +10 -8
- package/lib/change_stream.js.map +1 -1
- package/lib/client-side-encryption/auto_encrypter.js +14 -3
- package/lib/client-side-encryption/auto_encrypter.js.map +1 -1
- package/lib/client-side-encryption/client_encryption.js +25 -7
- package/lib/client-side-encryption/client_encryption.js.map +1 -1
- package/lib/client-side-encryption/crypto_callbacks.js +6 -6
- package/lib/client-side-encryption/crypto_callbacks.js.map +1 -1
- package/lib/client-side-encryption/mongocryptd_manager.js +9 -5
- package/lib/client-side-encryption/mongocryptd_manager.js.map +1 -1
- package/lib/client-side-encryption/providers/aws.js +1 -2
- package/lib/client-side-encryption/providers/aws.js.map +1 -1
- package/lib/client-side-encryption/providers/azure.js +5 -5
- package/lib/client-side-encryption/providers/azure.js.map +1 -1
- package/lib/client-side-encryption/providers/gcp.js +1 -2
- package/lib/client-side-encryption/providers/gcp.js.map +1 -1
- package/lib/client-side-encryption/providers/index.js +2 -3
- package/lib/client-side-encryption/providers/index.js.map +1 -1
- package/lib/client-side-encryption/state_machine.js +9 -4
- package/lib/client-side-encryption/state_machine.js.map +1 -1
- package/lib/cmap/auth/auth_provider.js.map +1 -1
- package/lib/cmap/auth/aws_temporary_credentials.js.map +1 -1
- package/lib/cmap/auth/gssapi.js +4 -4
- package/lib/cmap/auth/gssapi.js.map +1 -1
- package/lib/cmap/auth/mongo_credentials.js +2 -7
- package/lib/cmap/auth/mongo_credentials.js.map +1 -1
- package/lib/cmap/auth/mongodb_aws.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc/automated_callback_workflow.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc/callback_workflow.js +0 -2
- package/lib/cmap/auth/mongodb_oidc/callback_workflow.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc/command_builders.js +2 -3
- package/lib/cmap/auth/mongodb_oidc/command_builders.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc/human_callback_workflow.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc/machine_workflow.js +0 -2
- package/lib/cmap/auth/mongodb_oidc/machine_workflow.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc/token_cache.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc.js.map +1 -1
- package/lib/cmap/auth/plain.js.map +1 -1
- package/lib/cmap/auth/scram.js.map +1 -1
- package/lib/cmap/auth/x509.js.map +1 -1
- package/lib/cmap/command_monitoring_events.js.map +1 -1
- package/lib/cmap/commands.js +62 -5
- package/lib/cmap/commands.js.map +1 -1
- package/lib/cmap/connect.js +10 -7
- package/lib/cmap/connect.js.map +1 -1
- package/lib/cmap/connection.js +3 -5
- package/lib/cmap/connection.js.map +1 -1
- package/lib/cmap/connection_pool.js +11 -9
- package/lib/cmap/connection_pool.js.map +1 -1
- package/lib/cmap/connection_pool_events.js +7 -3
- package/lib/cmap/connection_pool_events.js.map +1 -1
- package/lib/cmap/handshake/client_metadata.js +5 -5
- package/lib/cmap/handshake/client_metadata.js.map +1 -1
- package/lib/cmap/metrics.js +1 -1
- package/lib/cmap/metrics.js.map +1 -1
- package/lib/cmap/stream_description.js.map +1 -1
- package/lib/cmap/wire_protocol/compression.js +5 -5
- package/lib/cmap/wire_protocol/compression.js.map +1 -1
- package/lib/cmap/wire_protocol/constants.js +4 -4
- package/lib/cmap/wire_protocol/on_data.js +1 -2
- package/lib/cmap/wire_protocol/on_data.js.map +1 -1
- package/lib/cmap/wire_protocol/on_demand/document.js.map +1 -1
- package/lib/cmap/wire_protocol/responses.js +4 -4
- package/lib/cmap/wire_protocol/responses.js.map +1 -1
- package/lib/cmap/wire_protocol/shared.js +2 -3
- package/lib/cmap/wire_protocol/shared.js.map +1 -1
- package/lib/collection.js.map +1 -1
- package/lib/connection_string.js +12 -6
- package/lib/connection_string.js.map +1 -1
- package/lib/constants.js +1 -0
- package/lib/constants.js.map +1 -1
- package/lib/cursor/abstract_cursor.js +21 -6
- package/lib/cursor/abstract_cursor.js.map +1 -1
- package/lib/cursor/aggregation_cursor.js +1 -1
- package/lib/cursor/aggregation_cursor.js.map +1 -1
- package/lib/cursor/change_stream_cursor.js.map +1 -1
- package/lib/cursor/find_cursor.js +3 -3
- package/lib/cursor/find_cursor.js.map +1 -1
- package/lib/db.js +2 -2
- package/lib/db.js.map +1 -1
- package/lib/deps.js +16 -8
- package/lib/deps.js.map +1 -1
- package/lib/encrypter.js.map +1 -1
- package/lib/error.js +19 -14
- package/lib/error.js.map +1 -1
- package/lib/explain.js +6 -6
- package/lib/explain.js.map +1 -1
- package/lib/gridfs/download.js +1 -4
- package/lib/gridfs/download.js.map +1 -1
- package/lib/gridfs/index.js +1 -1
- package/lib/gridfs/index.js.map +1 -1
- package/lib/gridfs/upload.js +0 -4
- package/lib/gridfs/upload.js.map +1 -1
- package/lib/index.js +4 -2
- package/lib/index.js.map +1 -1
- package/lib/mongo_client.js +15 -1
- package/lib/mongo_client.js.map +1 -1
- package/lib/mongo_client_auth_providers.js +6 -2
- package/lib/mongo_client_auth_providers.js.map +1 -1
- package/lib/mongo_logger.js +8 -8
- package/lib/mongo_logger.js.map +1 -1
- package/lib/mongo_types.js +1 -0
- package/lib/mongo_types.js.map +1 -1
- package/lib/operations/aggregate.js +1 -0
- package/lib/operations/aggregate.js.map +1 -1
- package/lib/operations/bulk_write.js.map +1 -1
- package/lib/operations/client_bulk_write/command_builder.js +198 -0
- package/lib/operations/client_bulk_write/command_builder.js.map +1 -0
- package/lib/operations/client_bulk_write/common.js +3 -0
- package/lib/operations/client_bulk_write/common.js.map +1 -0
- package/lib/operations/collections.js.map +1 -1
- package/lib/operations/command.js +1 -1
- package/lib/operations/command.js.map +1 -1
- package/lib/operations/count.js.map +1 -1
- package/lib/operations/create_collection.js.map +1 -1
- package/lib/operations/delete.js +2 -2
- package/lib/operations/delete.js.map +1 -1
- package/lib/operations/distinct.js.map +1 -1
- package/lib/operations/drop.js.map +1 -1
- package/lib/operations/estimated_document_count.js.map +1 -1
- package/lib/operations/execute_operation.js +111 -109
- package/lib/operations/execute_operation.js.map +1 -1
- package/lib/operations/find.js.map +1 -1
- package/lib/operations/find_and_modify.js +2 -8
- package/lib/operations/find_and_modify.js.map +1 -1
- package/lib/operations/get_more.js.map +1 -1
- package/lib/operations/indexes.js.map +1 -1
- package/lib/operations/insert.js.map +1 -1
- package/lib/operations/is_capped.js.map +1 -1
- package/lib/operations/kill_cursors.js.map +1 -1
- package/lib/operations/list_collections.js.map +1 -1
- package/lib/operations/list_databases.js.map +1 -1
- package/lib/operations/operation.js +5 -5
- package/lib/operations/operation.js.map +1 -1
- package/lib/operations/options_operation.js.map +1 -1
- package/lib/operations/profiling_level.js.map +1 -1
- package/lib/operations/search_indexes/drop.js.map +1 -1
- package/lib/operations/set_profiling_level.js.map +1 -1
- package/lib/operations/stats.js.map +1 -1
- package/lib/operations/update.js +2 -2
- package/lib/operations/update.js.map +1 -1
- package/lib/operations/validate_collection.js.map +1 -1
- package/lib/read_concern.js.map +1 -1
- package/lib/read_preference.js +1 -1
- package/lib/read_preference.js.map +1 -1
- package/lib/resource_management.js +58 -0
- package/lib/resource_management.js.map +1 -0
- package/lib/sdam/common.js +3 -3
- package/lib/sdam/common.js.map +1 -1
- package/lib/sdam/monitor.js +1 -5
- package/lib/sdam/monitor.js.map +1 -1
- package/lib/sdam/server.js +2 -2
- package/lib/sdam/server.js.map +1 -1
- package/lib/sdam/server_description.js +3 -3
- package/lib/sdam/server_description.js.map +1 -1
- package/lib/sdam/server_selection.js +5 -5
- package/lib/sdam/server_selection.js.map +1 -1
- package/lib/sdam/srv_polling.js +2 -3
- package/lib/sdam/srv_polling.js.map +1 -1
- package/lib/sdam/topology.js +1 -1
- package/lib/sdam/topology.js.map +1 -1
- package/lib/sdam/topology_description.js.map +1 -1
- package/lib/sessions.js +221 -218
- package/lib/sessions.js.map +1 -1
- package/lib/sort.js +2 -3
- package/lib/sort.js.map +1 -1
- package/lib/timeout.js +0 -1
- package/lib/timeout.js.map +1 -1
- package/lib/transactions.js +2 -2
- package/lib/transactions.js.map +1 -1
- package/lib/utils.js +54 -54
- package/lib/utils.js.map +1 -1
- package/lib/write_concern.js +2 -2
- package/lib/write_concern.js.map +1 -1
- package/mongodb.d.ts +191 -148
- package/package.json +27 -28
- package/src/beta.ts +22 -0
- package/src/bson.ts +1 -2
- package/src/bulk/common.ts +18 -18
- package/src/change_stream.ts +33 -15
- package/src/client-side-encryption/auto_encrypter.ts +18 -82
- package/src/client-side-encryption/client_encryption.ts +51 -54
- package/src/client-side-encryption/mongocryptd_manager.ts +10 -6
- package/src/client-side-encryption/state_machine.ts +28 -6
- package/src/cmap/auth/gssapi.ts +1 -1
- package/src/cmap/auth/mongo_credentials.ts +2 -8
- package/src/cmap/auth/mongodb_aws.ts +2 -2
- package/src/cmap/auth/mongodb_oidc/callback_workflow.ts +2 -2
- package/src/cmap/auth/mongodb_oidc/machine_workflow.ts +2 -2
- package/src/cmap/commands.ts +70 -5
- package/src/cmap/connect.ts +4 -1
- package/src/cmap/connection.ts +2 -2
- package/src/cmap/connection_pool.ts +17 -9
- package/src/cmap/connection_pool_events.ts +34 -2
- package/src/cmap/handshake/client_metadata.ts +1 -1
- package/src/cmap/wire_protocol/constants.ts +4 -4
- package/src/cmap/wire_protocol/shared.ts +1 -2
- package/src/collection.ts +16 -15
- package/src/connection_string.ts +10 -3
- package/src/constants.ts +1 -0
- package/src/cursor/abstract_cursor.ts +38 -13
- package/src/cursor/aggregation_cursor.ts +8 -6
- package/src/cursor/find_cursor.ts +2 -2
- package/src/db.ts +1 -1
- package/src/deps.ts +8 -1
- package/src/error.ts +33 -14
- package/src/explain.ts +47 -11
- package/src/gridfs/download.ts +28 -4
- package/src/gridfs/upload.ts +1 -6
- package/src/index.ts +11 -2
- package/src/mongo_client.ts +29 -5
- package/src/mongo_client_auth_providers.ts +8 -2
- package/src/mongo_logger.ts +5 -3
- package/src/mongo_types.ts +69 -68
- package/src/operations/aggregate.ts +2 -1
- package/src/operations/bulk_write.ts +2 -2
- package/src/operations/client_bulk_write/command_builder.ts +283 -0
- package/src/operations/client_bulk_write/common.ts +146 -0
- package/src/operations/command.ts +1 -1
- package/src/operations/execute_operation.ts +137 -131
- package/src/operations/find_and_modify.ts +2 -7
- package/src/operations/insert.ts +3 -4
- package/src/operations/operation.ts +7 -10
- package/src/operations/search_indexes/drop.ts +4 -1
- package/src/resource_management.ts +74 -0
- package/src/sdam/monitor.ts +3 -5
- package/src/sdam/server.ts +1 -1
- package/src/sdam/server_description.ts +5 -6
- package/src/sdam/srv_polling.ts +1 -2
- package/src/sessions.ts +291 -277
- package/src/sort.ts +1 -1
- package/src/timeout.ts +0 -1
- package/src/transactions.ts +1 -2
- package/src/utils.ts +25 -9
- package/src/write_concern.ts +2 -2
- package/tsconfig.json +2 -1
- package/lib/cmap/auth/mongocr.js +0 -35
- package/lib/cmap/auth/mongocr.js.map +0 -1
- package/src/cmap/auth/mongocr.ts +0 -38
package/src/utils.ts
CHANGED
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
MongoParseError,
|
|
26
26
|
MongoRuntimeError
|
|
27
27
|
} from './error';
|
|
28
|
-
import type { Explain } from './explain';
|
|
28
|
+
import type { Explain, ExplainVerbosity } from './explain';
|
|
29
29
|
import type { MongoClient } from './mongo_client';
|
|
30
30
|
import type { CommandOperationOptions, OperationParent } from './operations/command';
|
|
31
31
|
import type { Hint, OperationOptions } from './operations/operation';
|
|
@@ -192,7 +192,6 @@ export function isPromiseLike<T = unknown>(value?: unknown): value is PromiseLik
|
|
|
192
192
|
value != null &&
|
|
193
193
|
typeof value === 'object' &&
|
|
194
194
|
'then' in value &&
|
|
195
|
-
// eslint-disable-next-line github/no-then
|
|
196
195
|
typeof value.then === 'function'
|
|
197
196
|
);
|
|
198
197
|
}
|
|
@@ -252,12 +251,23 @@ export function decorateWithReadConcern(
|
|
|
252
251
|
* @param command - the command on which to apply the explain
|
|
253
252
|
* @param options - the options containing the explain verbosity
|
|
254
253
|
*/
|
|
255
|
-
export function decorateWithExplain(
|
|
256
|
-
|
|
257
|
-
|
|
254
|
+
export function decorateWithExplain(
|
|
255
|
+
command: Document,
|
|
256
|
+
explain: Explain
|
|
257
|
+
): {
|
|
258
|
+
explain: Document;
|
|
259
|
+
verbosity: ExplainVerbosity;
|
|
260
|
+
maxTimeMS?: number;
|
|
261
|
+
} {
|
|
262
|
+
type ExplainCommand = ReturnType<typeof decorateWithExplain>;
|
|
263
|
+
const { verbosity, maxTimeMS } = explain;
|
|
264
|
+
const baseCommand: ExplainCommand = { explain: command, verbosity };
|
|
265
|
+
|
|
266
|
+
if (typeof maxTimeMS === 'number') {
|
|
267
|
+
baseCommand.maxTimeMS = maxTimeMS;
|
|
258
268
|
}
|
|
259
269
|
|
|
260
|
-
return
|
|
270
|
+
return baseCommand;
|
|
261
271
|
}
|
|
262
272
|
|
|
263
273
|
/**
|
|
@@ -301,7 +311,10 @@ export class MongoDBNamespace {
|
|
|
301
311
|
* @param db - database name
|
|
302
312
|
* @param collection - collection name
|
|
303
313
|
*/
|
|
304
|
-
constructor(
|
|
314
|
+
constructor(
|
|
315
|
+
public db: string,
|
|
316
|
+
public collection?: string
|
|
317
|
+
) {
|
|
305
318
|
this.collection = collection === '' ? undefined : collection;
|
|
306
319
|
}
|
|
307
320
|
|
|
@@ -333,7 +346,10 @@ export class MongoDBNamespace {
|
|
|
333
346
|
* used in scenarios where this can be guaranteed.
|
|
334
347
|
*/
|
|
335
348
|
export class MongoDBCollectionNamespace extends MongoDBNamespace {
|
|
336
|
-
constructor(
|
|
349
|
+
constructor(
|
|
350
|
+
db: string,
|
|
351
|
+
override collection: string
|
|
352
|
+
) {
|
|
337
353
|
super(db, collection);
|
|
338
354
|
}
|
|
339
355
|
|
|
@@ -996,7 +1012,7 @@ export const DEFAULT_PK_FACTORY = {
|
|
|
996
1012
|
* })
|
|
997
1013
|
* ```
|
|
998
1014
|
*/
|
|
999
|
-
export const MONGODB_WARNING_CODE = 'MONGODB DRIVER'
|
|
1015
|
+
export const MONGODB_WARNING_CODE = 'MONGODB DRIVER';
|
|
1000
1016
|
|
|
1001
1017
|
/** @internal */
|
|
1002
1018
|
export function emitWarning(message: string): void {
|
package/src/write_concern.ts
CHANGED
|
@@ -169,8 +169,8 @@ export function throwIfWriteConcernError(response: unknown): void {
|
|
|
169
169
|
MongoDBResponse.is(response) && response.has('writeConcernError')
|
|
170
170
|
? response.toObject()
|
|
171
171
|
: !MongoDBResponse.is(response) && 'writeConcernError' in response
|
|
172
|
-
|
|
173
|
-
|
|
172
|
+
? response
|
|
173
|
+
: null;
|
|
174
174
|
|
|
175
175
|
if (writeConcernError != null) {
|
|
176
176
|
throw new MongoWriteConcernError(writeConcernError as any);
|
package/tsconfig.json
CHANGED
package/lib/cmap/auth/mongocr.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MongoCR = void 0;
|
|
4
|
-
const crypto = require("crypto");
|
|
5
|
-
const error_1 = require("../../error");
|
|
6
|
-
const utils_1 = require("../../utils");
|
|
7
|
-
const auth_provider_1 = require("./auth_provider");
|
|
8
|
-
class MongoCR extends auth_provider_1.AuthProvider {
|
|
9
|
-
async auth(authContext) {
|
|
10
|
-
const { connection, credentials } = authContext;
|
|
11
|
-
if (!credentials) {
|
|
12
|
-
throw new error_1.MongoMissingCredentialsError('AuthContext must provide credentials.');
|
|
13
|
-
}
|
|
14
|
-
const { username, password, source } = credentials;
|
|
15
|
-
const { nonce } = await connection.command((0, utils_1.ns)(`${source}.$cmd`), { getnonce: 1 }, undefined);
|
|
16
|
-
const hashPassword = crypto
|
|
17
|
-
.createHash('md5')
|
|
18
|
-
.update(`${username}:mongo:${password}`, 'utf8')
|
|
19
|
-
.digest('hex');
|
|
20
|
-
// Final key
|
|
21
|
-
const key = crypto
|
|
22
|
-
.createHash('md5')
|
|
23
|
-
.update(`${nonce}${username}${hashPassword}`, 'utf8')
|
|
24
|
-
.digest('hex');
|
|
25
|
-
const authenticateCommand = {
|
|
26
|
-
authenticate: 1,
|
|
27
|
-
user: username,
|
|
28
|
-
nonce,
|
|
29
|
-
key
|
|
30
|
-
};
|
|
31
|
-
await connection.command((0, utils_1.ns)(`${source}.$cmd`), authenticateCommand, undefined);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
exports.MongoCR = MongoCR;
|
|
35
|
-
//# sourceMappingURL=mongocr.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mongocr.js","sourceRoot":"","sources":["../../../src/cmap/auth/mongocr.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AAEjC,uCAA2D;AAC3D,uCAAiC;AACjC,mDAAiE;AAEjE,MAAa,OAAQ,SAAQ,4BAAY;IAC9B,KAAK,CAAC,IAAI,CAAC,WAAwB;QAC1C,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC;QAChD,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,oCAA4B,CAAC,uCAAuC,CAAC,CAAC;SACjF;QAED,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;QAEnD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,IAAA,UAAE,EAAC,GAAG,MAAM,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAE7F,MAAM,YAAY,GAAG,MAAM;aACxB,UAAU,CAAC,KAAK,CAAC;aACjB,MAAM,CAAC,GAAG,QAAQ,UAAU,QAAQ,EAAE,EAAE,MAAM,CAAC;aAC/C,MAAM,CAAC,KAAK,CAAC,CAAC;QAEjB,YAAY;QACZ,MAAM,GAAG,GAAG,MAAM;aACf,UAAU,CAAC,KAAK,CAAC;aACjB,MAAM,CAAC,GAAG,KAAK,GAAG,QAAQ,GAAG,YAAY,EAAE,EAAE,MAAM,CAAC;aACpD,MAAM,CAAC,KAAK,CAAC,CAAC;QAEjB,MAAM,mBAAmB,GAAG;YAC1B,YAAY,EAAE,CAAC;YACf,IAAI,EAAE,QAAQ;YACd,KAAK;YACL,GAAG;SACJ,CAAC;QAEF,MAAM,UAAU,CAAC,OAAO,CAAC,IAAA,UAAE,EAAC,GAAG,MAAM,OAAO,CAAC,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;IACjF,CAAC;CACF;AA/BD,0BA+BC"}
|
package/src/cmap/auth/mongocr.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import * as crypto from 'crypto';
|
|
2
|
-
|
|
3
|
-
import { MongoMissingCredentialsError } from '../../error';
|
|
4
|
-
import { ns } from '../../utils';
|
|
5
|
-
import { type AuthContext, AuthProvider } from './auth_provider';
|
|
6
|
-
|
|
7
|
-
export class MongoCR extends AuthProvider {
|
|
8
|
-
override async auth(authContext: AuthContext): Promise<void> {
|
|
9
|
-
const { connection, credentials } = authContext;
|
|
10
|
-
if (!credentials) {
|
|
11
|
-
throw new MongoMissingCredentialsError('AuthContext must provide credentials.');
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const { username, password, source } = credentials;
|
|
15
|
-
|
|
16
|
-
const { nonce } = await connection.command(ns(`${source}.$cmd`), { getnonce: 1 }, undefined);
|
|
17
|
-
|
|
18
|
-
const hashPassword = crypto
|
|
19
|
-
.createHash('md5')
|
|
20
|
-
.update(`${username}:mongo:${password}`, 'utf8')
|
|
21
|
-
.digest('hex');
|
|
22
|
-
|
|
23
|
-
// Final key
|
|
24
|
-
const key = crypto
|
|
25
|
-
.createHash('md5')
|
|
26
|
-
.update(`${nonce}${username}${hashPassword}`, 'utf8')
|
|
27
|
-
.digest('hex');
|
|
28
|
-
|
|
29
|
-
const authenticateCommand = {
|
|
30
|
-
authenticate: 1,
|
|
31
|
-
user: username,
|
|
32
|
-
nonce,
|
|
33
|
-
key
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
await connection.command(ns(`${source}.$cmd`), authenticateCommand, undefined);
|
|
37
|
-
}
|
|
38
|
-
}
|