mongodb 6.3.0 → 6.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.
- package/lib/bson.js +2 -1
- package/lib/bson.js.map +1 -1
- package/lib/bulk/common.js +14 -9
- package/lib/bulk/common.js.map +1 -1
- package/lib/change_stream.js +4 -2
- package/lib/change_stream.js.map +1 -1
- package/lib/client-side-encryption/state_machine.js +58 -52
- package/lib/client-side-encryption/state_machine.js.map +1 -1
- package/lib/cmap/auth/auth_provider.js +4 -0
- package/lib/cmap/auth/auth_provider.js.map +1 -1
- package/lib/cmap/auth/gssapi.js +1 -1
- package/lib/cmap/auth/gssapi.js.map +1 -1
- package/lib/cmap/auth/mongo_credentials.js.map +1 -1
- package/lib/cmap/auth/mongocr.js +2 -2
- package/lib/cmap/auth/mongocr.js.map +1 -1
- package/lib/cmap/auth/mongodb_aws.js +58 -55
- package/lib/cmap/auth/mongodb_aws.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc/callback_workflow.js +2 -2
- package/lib/cmap/auth/mongodb_oidc/callback_workflow.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc/service_workflow.js +1 -1
- package/lib/cmap/auth/mongodb_oidc/service_workflow.js.map +1 -1
- package/lib/cmap/auth/plain.js +1 -1
- package/lib/cmap/auth/plain.js.map +1 -1
- package/lib/cmap/auth/scram.js +5 -7
- package/lib/cmap/auth/scram.js.map +1 -1
- package/lib/cmap/auth/x509.js +1 -1
- package/lib/cmap/auth/x509.js.map +1 -1
- package/lib/cmap/command_monitoring_events.js +6 -3
- package/lib/cmap/command_monitoring_events.js.map +1 -1
- package/lib/cmap/commands.js +2 -0
- package/lib/cmap/commands.js.map +1 -1
- package/lib/cmap/connect.js +88 -110
- package/lib/cmap/connect.js.map +1 -1
- package/lib/cmap/connection.js +280 -726
- package/lib/cmap/connection.js.map +1 -1
- package/lib/cmap/connection_pool.js +35 -95
- package/lib/cmap/connection_pool.js.map +1 -1
- package/lib/cmap/stream_description.js +19 -0
- package/lib/cmap/stream_description.js.map +1 -1
- package/lib/cmap/wire_protocol/compression.js.map +1 -1
- package/lib/cmap/wire_protocol/on_data.js +112 -0
- package/lib/cmap/wire_protocol/on_data.js.map +1 -0
- package/lib/collection.js +11 -3
- package/lib/collection.js.map +1 -1
- package/lib/connection_string.js +34 -2
- package/lib/connection_string.js.map +1 -1
- package/lib/constants.js +22 -2
- package/lib/constants.js.map +1 -1
- package/lib/cursor/abstract_cursor.js +5 -1
- package/lib/cursor/abstract_cursor.js.map +1 -1
- package/lib/error.js +7 -7
- package/lib/error.js.map +1 -1
- package/lib/index.js +9 -1
- package/lib/index.js.map +1 -1
- package/lib/mongo_client.js +8 -3
- package/lib/mongo_client.js.map +1 -1
- package/lib/mongo_client_auth_providers.js +55 -0
- package/lib/mongo_client_auth_providers.js.map +1 -0
- package/lib/mongo_logger.js +205 -27
- package/lib/mongo_logger.js.map +1 -1
- package/lib/mongo_types.js +26 -0
- package/lib/mongo_types.js.map +1 -1
- package/lib/operations/aggregate.js +3 -0
- package/lib/operations/aggregate.js.map +1 -1
- package/lib/operations/bulk_write.js +3 -0
- package/lib/operations/bulk_write.js.map +1 -1
- package/lib/operations/collections.js +3 -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 +3 -0
- package/lib/operations/count.js.map +1 -1
- package/lib/operations/create_collection.js +3 -0
- package/lib/operations/create_collection.js.map +1 -1
- package/lib/operations/delete.js +3 -0
- package/lib/operations/delete.js.map +1 -1
- package/lib/operations/distinct.js +3 -0
- package/lib/operations/distinct.js.map +1 -1
- package/lib/operations/drop.js +6 -0
- package/lib/operations/drop.js.map +1 -1
- package/lib/operations/estimated_document_count.js +3 -0
- package/lib/operations/estimated_document_count.js.map +1 -1
- package/lib/operations/execute_operation.js +35 -9
- package/lib/operations/execute_operation.js.map +1 -1
- package/lib/operations/find.js +4 -1
- package/lib/operations/find.js.map +1 -1
- package/lib/operations/find_and_modify.js +5 -1
- package/lib/operations/find_and_modify.js.map +1 -1
- package/lib/operations/get_more.js +4 -1
- package/lib/operations/get_more.js.map +1 -1
- package/lib/operations/indexes.js +21 -0
- package/lib/operations/indexes.js.map +1 -1
- package/lib/operations/insert.js +6 -0
- package/lib/operations/insert.js.map +1 -1
- package/lib/operations/is_capped.js +3 -0
- package/lib/operations/is_capped.js.map +1 -1
- package/lib/operations/kill_cursors.js +4 -1
- package/lib/operations/kill_cursors.js.map +1 -1
- package/lib/operations/list_collections.js +3 -0
- package/lib/operations/list_collections.js.map +1 -1
- package/lib/operations/list_databases.js +3 -0
- package/lib/operations/list_databases.js.map +1 -1
- package/lib/operations/operation.js.map +1 -1
- package/lib/operations/options_operation.js +3 -0
- package/lib/operations/options_operation.js.map +1 -1
- package/lib/operations/profiling_level.js +3 -0
- package/lib/operations/profiling_level.js.map +1 -1
- package/lib/operations/remove_user.js +3 -0
- package/lib/operations/remove_user.js.map +1 -1
- package/lib/operations/rename.js +3 -0
- package/lib/operations/rename.js.map +1 -1
- package/lib/operations/run_command.js +8 -2
- package/lib/operations/run_command.js.map +1 -1
- package/lib/operations/search_indexes/create.js +4 -1
- package/lib/operations/search_indexes/create.js.map +1 -1
- package/lib/operations/search_indexes/drop.js +4 -1
- package/lib/operations/search_indexes/drop.js.map +1 -1
- package/lib/operations/search_indexes/update.js +4 -1
- package/lib/operations/search_indexes/update.js.map +1 -1
- package/lib/operations/set_profiling_level.js +3 -0
- package/lib/operations/set_profiling_level.js.map +1 -1
- package/lib/operations/stats.js +3 -0
- package/lib/operations/stats.js.map +1 -1
- package/lib/operations/update.js +3 -0
- package/lib/operations/update.js.map +1 -1
- package/lib/operations/validate_collection.js +3 -0
- package/lib/operations/validate_collection.js.map +1 -1
- package/lib/sdam/events.js +18 -0
- package/lib/sdam/events.js.map +1 -1
- package/lib/sdam/monitor.js +86 -71
- package/lib/sdam/monitor.js.map +1 -1
- package/lib/sdam/server.js +92 -98
- package/lib/sdam/server.js.map +1 -1
- package/lib/sdam/server_selection.js +13 -5
- package/lib/sdam/server_selection.js.map +1 -1
- package/lib/sdam/server_selection_events.js +85 -0
- package/lib/sdam/server_selection_events.js.map +1 -0
- package/lib/sdam/topology.js +61 -18
- package/lib/sdam/topology.js.map +1 -1
- package/lib/sessions.js +11 -9
- package/lib/sessions.js.map +1 -1
- package/lib/utils.js +25 -17
- package/lib/utils.js.map +1 -1
- package/mongodb.d.ts +131 -57
- package/package.json +28 -27
- package/src/bson.ts +2 -0
- package/src/bulk/common.ts +29 -22
- package/src/change_stream.ts +11 -5
- package/src/client-side-encryption/state_machine.ts +77 -62
- package/src/cmap/auth/auth_provider.ts +4 -0
- package/src/cmap/auth/gssapi.ts +1 -1
- package/src/cmap/auth/mongo_credentials.ts +2 -2
- package/src/cmap/auth/mongocr.ts +2 -6
- package/src/cmap/auth/mongodb_aws.ts +69 -64
- package/src/cmap/auth/mongodb_oidc/callback_workflow.ts +2 -2
- package/src/cmap/auth/mongodb_oidc/service_workflow.ts +1 -1
- package/src/cmap/auth/plain.ts +1 -1
- package/src/cmap/auth/scram.ts +7 -9
- package/src/cmap/auth/x509.ts +1 -5
- package/src/cmap/command_monitoring_events.ts +32 -4
- package/src/cmap/commands.ts +4 -0
- package/src/cmap/connect.ts +119 -159
- package/src/cmap/connection.ts +408 -961
- package/src/cmap/connection_pool.ts +93 -155
- package/src/cmap/stream_description.ts +21 -1
- package/src/cmap/wire_protocol/compression.ts +1 -2
- package/src/cmap/wire_protocol/on_data.ts +132 -0
- package/src/collection.ts +14 -6
- package/src/connection_string.ts +49 -3
- package/src/constants.ts +20 -0
- package/src/cursor/abstract_cursor.ts +7 -1
- package/src/error.ts +9 -9
- package/src/index.ts +33 -12
- package/src/mongo_client.ts +20 -7
- package/src/mongo_client_auth_providers.ts +54 -0
- package/src/mongo_logger.ts +376 -50
- package/src/mongo_types.ts +58 -3
- package/src/operations/aggregate.ts +4 -0
- package/src/operations/bulk_write.ts +4 -0
- package/src/operations/collections.ts +4 -0
- package/src/operations/command.ts +1 -1
- package/src/operations/count.ts +4 -0
- package/src/operations/create_collection.ts +4 -0
- package/src/operations/delete.ts +4 -0
- package/src/operations/distinct.ts +4 -0
- package/src/operations/drop.ts +8 -0
- package/src/operations/estimated_document_count.ts +4 -0
- package/src/operations/execute_operation.ts +28 -31
- package/src/operations/find.ts +5 -1
- package/src/operations/find_and_modify.ts +7 -5
- package/src/operations/get_more.ts +4 -1
- package/src/operations/indexes.ts +29 -0
- package/src/operations/insert.ts +8 -0
- package/src/operations/is_capped.ts +4 -0
- package/src/operations/kill_cursors.ts +5 -1
- package/src/operations/list_collections.ts +4 -0
- package/src/operations/list_databases.ts +4 -0
- package/src/operations/operation.ts +4 -0
- package/src/operations/options_operation.ts +3 -0
- package/src/operations/profiling_level.ts +4 -0
- package/src/operations/remove_user.ts +4 -0
- package/src/operations/rename.ts +4 -0
- package/src/operations/run_command.ts +10 -2
- package/src/operations/search_indexes/create.ts +5 -1
- package/src/operations/search_indexes/drop.ts +5 -1
- package/src/operations/search_indexes/update.ts +5 -1
- package/src/operations/set_profiling_level.ts +4 -0
- package/src/operations/stats.ts +4 -0
- package/src/operations/update.ts +4 -0
- package/src/operations/validate_collection.ts +4 -0
- package/src/sdam/events.ts +31 -3
- package/src/sdam/monitor.ts +119 -97
- package/src/sdam/server.ts +113 -152
- package/src/sdam/server_selection.ts +21 -13
- package/src/sdam/server_selection_events.ts +142 -0
- package/src/sdam/topology.ts +200 -46
- package/src/sessions.ts +33 -32
- package/src/utils.ts +28 -32
- package/lib/cmap/message_stream.js +0 -149
- package/lib/cmap/message_stream.js.map +0 -1
- package/src/cmap/message_stream.ts +0 -220
package/lib/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MongoUnexpectedServerResponseError = exports.MongoTransactionError = exports.MongoTopologyClosedError = exports.MongoTailableCursorError = exports.MongoSystemError = exports.MongoServerSelectionError = exports.MongoServerError = exports.MongoServerClosedError = exports.MongoRuntimeError = exports.MongoParseError = exports.MongoNotConnectedError = exports.MongoNetworkTimeoutError = exports.MongoNetworkError = exports.MongoMissingDependencyError = exports.MongoMissingCredentialsError = exports.MongoKerberosError = exports.MongoInvalidArgumentError = exports.MongoGridFSStreamError = exports.MongoGridFSChunkError = exports.MongoExpiredSessionError = exports.MongoError = exports.MongoDriverError = exports.MongoDecompressionError = exports.MongoCursorInUseError = exports.MongoCursorExhaustedError = exports.MongoCompatibilityError = exports.MongoChangeStreamError = exports.MongoBatchReExecutionError = exports.MongoAzureError = exports.MongoAWSError = exports.MongoAPIError = exports.ChangeStreamCursor = exports.ClientEncryption = exports.MongoBulkWriteError = exports.UUID = exports.Timestamp = exports.ObjectId = exports.MinKey = exports.MaxKey = exports.Long = exports.Int32 = exports.Double = exports.Decimal128 = exports.DBRef = exports.Code = exports.BSONType = exports.BSONSymbol = exports.BSONRegExp = exports.Binary = exports.BSON = void 0;
|
|
4
4
|
exports.ConnectionPoolReadyEvent = exports.ConnectionPoolMonitoringEvent = exports.ConnectionPoolCreatedEvent = exports.ConnectionPoolClosedEvent = exports.ConnectionPoolClearedEvent = exports.ConnectionCreatedEvent = exports.ConnectionClosedEvent = exports.ConnectionCheckOutStartedEvent = exports.ConnectionCheckOutFailedEvent = exports.ConnectionCheckedOutEvent = exports.ConnectionCheckedInEvent = exports.CommandSucceededEvent = exports.CommandStartedEvent = exports.CommandFailedEvent = exports.WriteConcern = exports.ReadPreference = exports.ReadConcern = exports.TopologyType = exports.ServerType = exports.ReadPreferenceMode = exports.ReadConcernLevel = exports.ProfilingLevel = exports.ReturnDocument = exports.ServerApiVersion = exports.ExplainVerbosity = exports.MongoErrorLabel = exports.CURSOR_FLAGS = exports.Compressor = exports.AuthMechanism = exports.GSSAPICanonicalizationValue = exports.AutoEncryptionLoggerLevel = exports.BatchType = exports.UnorderedBulkOperation = exports.OrderedBulkOperation = exports.MongoClient = exports.ListIndexesCursor = exports.ListCollectionsCursor = exports.GridFSBucketWriteStream = exports.GridFSBucketReadStream = exports.GridFSBucket = exports.FindCursor = exports.Db = exports.Collection = exports.ClientSession = exports.ChangeStream = exports.CancellationToken = exports.AggregationCursor = exports.Admin = exports.AbstractCursor = exports.MongoWriteConcernError = void 0;
|
|
5
|
-
exports.MongoCryptKMSRequestNetworkTimeoutError = exports.MongoCryptInvalidArgumentError = exports.MongoCryptError = exports.MongoCryptCreateEncryptedCollectionError = exports.MongoCryptCreateDataKeyError = exports.MongoCryptAzureKMSRequestError = exports.SrvPollingEvent = exports.TopologyOpeningEvent = exports.TopologyDescriptionChangedEvent = exports.TopologyClosedEvent = exports.ServerOpeningEvent = exports.ServerHeartbeatSucceededEvent = exports.ServerHeartbeatStartedEvent = exports.ServerHeartbeatFailedEvent = exports.ServerDescriptionChangedEvent = exports.ServerClosedEvent = exports.ConnectionReadyEvent = void 0;
|
|
5
|
+
exports.MongoClientAuthProviders = exports.MongoCryptKMSRequestNetworkTimeoutError = exports.MongoCryptInvalidArgumentError = exports.MongoCryptError = exports.MongoCryptCreateEncryptedCollectionError = exports.MongoCryptCreateDataKeyError = exports.MongoCryptAzureKMSRequestError = exports.SrvPollingEvent = exports.WaitingForSuitableServerEvent = exports.ServerSelectionSucceededEvent = exports.ServerSelectionStartedEvent = exports.ServerSelectionFailedEvent = exports.ServerSelectionEvent = exports.TopologyOpeningEvent = exports.TopologyDescriptionChangedEvent = exports.TopologyClosedEvent = exports.ServerOpeningEvent = exports.ServerHeartbeatSucceededEvent = exports.ServerHeartbeatStartedEvent = exports.ServerHeartbeatFailedEvent = exports.ServerDescriptionChangedEvent = exports.ServerClosedEvent = exports.ConnectionReadyEvent = void 0;
|
|
6
6
|
const admin_1 = require("./admin");
|
|
7
7
|
Object.defineProperty(exports, "Admin", { enumerable: true, get: function () { return admin_1.Admin; } });
|
|
8
8
|
const ordered_1 = require("./bulk/ordered");
|
|
@@ -160,6 +160,12 @@ Object.defineProperty(exports, "ServerOpeningEvent", { enumerable: true, get: fu
|
|
|
160
160
|
Object.defineProperty(exports, "TopologyClosedEvent", { enumerable: true, get: function () { return events_1.TopologyClosedEvent; } });
|
|
161
161
|
Object.defineProperty(exports, "TopologyDescriptionChangedEvent", { enumerable: true, get: function () { return events_1.TopologyDescriptionChangedEvent; } });
|
|
162
162
|
Object.defineProperty(exports, "TopologyOpeningEvent", { enumerable: true, get: function () { return events_1.TopologyOpeningEvent; } });
|
|
163
|
+
var server_selection_events_1 = require("./sdam/server_selection_events");
|
|
164
|
+
Object.defineProperty(exports, "ServerSelectionEvent", { enumerable: true, get: function () { return server_selection_events_1.ServerSelectionEvent; } });
|
|
165
|
+
Object.defineProperty(exports, "ServerSelectionFailedEvent", { enumerable: true, get: function () { return server_selection_events_1.ServerSelectionFailedEvent; } });
|
|
166
|
+
Object.defineProperty(exports, "ServerSelectionStartedEvent", { enumerable: true, get: function () { return server_selection_events_1.ServerSelectionStartedEvent; } });
|
|
167
|
+
Object.defineProperty(exports, "ServerSelectionSucceededEvent", { enumerable: true, get: function () { return server_selection_events_1.ServerSelectionSucceededEvent; } });
|
|
168
|
+
Object.defineProperty(exports, "WaitingForSuitableServerEvent", { enumerable: true, get: function () { return server_selection_events_1.WaitingForSuitableServerEvent; } });
|
|
163
169
|
var srv_polling_1 = require("./sdam/srv_polling");
|
|
164
170
|
Object.defineProperty(exports, "SrvPollingEvent", { enumerable: true, get: function () { return srv_polling_1.SrvPollingEvent; } });
|
|
165
171
|
var errors_1 = require("./client-side-encryption/errors");
|
|
@@ -169,4 +175,6 @@ Object.defineProperty(exports, "MongoCryptCreateEncryptedCollectionError", { enu
|
|
|
169
175
|
Object.defineProperty(exports, "MongoCryptError", { enumerable: true, get: function () { return errors_1.MongoCryptError; } });
|
|
170
176
|
Object.defineProperty(exports, "MongoCryptInvalidArgumentError", { enumerable: true, get: function () { return errors_1.MongoCryptInvalidArgumentError; } });
|
|
171
177
|
Object.defineProperty(exports, "MongoCryptKMSRequestNetworkTimeoutError", { enumerable: true, get: function () { return errors_1.MongoCryptKMSRequestNetworkTimeoutError; } });
|
|
178
|
+
var mongo_client_auth_providers_1 = require("./mongo_client_auth_providers");
|
|
179
|
+
Object.defineProperty(exports, "MongoClientAuthProviders", { enumerable: true, get: function () { return mongo_client_auth_providers_1.MongoClientAuthProviders; } });
|
|
172
180
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/mongo_client.js
CHANGED
|
@@ -11,6 +11,7 @@ const connection_string_1 = require("./connection_string");
|
|
|
11
11
|
const constants_1 = require("./constants");
|
|
12
12
|
const db_1 = require("./db");
|
|
13
13
|
const error_1 = require("./error");
|
|
14
|
+
const mongo_client_auth_providers_1 = require("./mongo_client_auth_providers");
|
|
14
15
|
const mongo_logger_1 = require("./mongo_logger");
|
|
15
16
|
const mongo_types_1 = require("./mongo_types");
|
|
16
17
|
const execute_operation_1 = require("./operations/execute_operation");
|
|
@@ -49,7 +50,10 @@ class MongoClient extends mongo_types_1.TypedEventEmitter {
|
|
|
49
50
|
constructor(url, options) {
|
|
50
51
|
super();
|
|
51
52
|
this[kOptions] = (0, connection_string_1.parseOptions)(url, this, options);
|
|
52
|
-
|
|
53
|
+
const shouldSetLogger = Object.values(this[kOptions].mongoLoggerOptions.componentSeverities).some(value => value !== mongo_logger_1.SeverityLevel.OFF);
|
|
54
|
+
this.mongoLogger = shouldSetLogger
|
|
55
|
+
? new mongo_logger_1.MongoLogger(this[kOptions].mongoLoggerOptions)
|
|
56
|
+
: undefined;
|
|
53
57
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
54
58
|
const client = this;
|
|
55
59
|
// The internal state
|
|
@@ -60,6 +64,7 @@ class MongoClient extends mongo_types_1.TypedEventEmitter {
|
|
|
60
64
|
hasBeenClosed: false,
|
|
61
65
|
sessionPool: new sessions_1.ServerSessionPool(this),
|
|
62
66
|
activeSessions: new Set(),
|
|
67
|
+
authProviders: new mongo_client_auth_providers_1.MongoClientAuthProviders(),
|
|
63
68
|
get options() {
|
|
64
69
|
return client[kOptions];
|
|
65
70
|
},
|
|
@@ -85,10 +90,10 @@ class MongoClient extends mongo_types_1.TypedEventEmitter {
|
|
|
85
90
|
const cosmosDBHostnames = this[kOptions].hosts.filter((hostAddress) => (0, utils_1.isHostMatch)(utils_1.COSMOS_DB_CHECK, hostAddress.host));
|
|
86
91
|
const srvHostIsCosmosDB = (0, utils_1.isHostMatch)(utils_1.COSMOS_DB_CHECK, this[kOptions].srvHost);
|
|
87
92
|
if (documentDBHostnames.length !== 0 || srvHostIsDocumentDB) {
|
|
88
|
-
this.mongoLogger
|
|
93
|
+
this.mongoLogger?.info('client', utils_1.DOCUMENT_DB_MSG);
|
|
89
94
|
}
|
|
90
95
|
else if (cosmosDBHostnames.length !== 0 || srvHostIsCosmosDB) {
|
|
91
|
-
this.mongoLogger
|
|
96
|
+
this.mongoLogger?.info('client', utils_1.COSMOS_DB_MSG);
|
|
92
97
|
}
|
|
93
98
|
}
|
|
94
99
|
/** @see MongoOptions */
|
package/lib/mongo_client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongo_client.js","sourceRoot":"","sources":["../src/mongo_client.ts"],"names":[],"mappings":";;;AAAA,2BAAoC;AAGpC,+BAAiC;AAEjC,iCAAsF;AACtF,mDAAoG;AAEpG,qEAIuC;AACvC,qDAAsD;AAKtD,2DAAqE;AACrE,2CAAkD;AAClD,6BAA0C;AAE1C,mCAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"mongo_client.js","sourceRoot":"","sources":["../src/mongo_client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MongoClientAuthProviders = void 0;
|
|
4
|
+
const gssapi_1 = require("./cmap/auth/gssapi");
|
|
5
|
+
const mongocr_1 = require("./cmap/auth/mongocr");
|
|
6
|
+
const mongodb_aws_1 = require("./cmap/auth/mongodb_aws");
|
|
7
|
+
const mongodb_oidc_1 = require("./cmap/auth/mongodb_oidc");
|
|
8
|
+
const plain_1 = require("./cmap/auth/plain");
|
|
9
|
+
const providers_1 = require("./cmap/auth/providers");
|
|
10
|
+
const scram_1 = require("./cmap/auth/scram");
|
|
11
|
+
const x509_1 = require("./cmap/auth/x509");
|
|
12
|
+
const error_1 = require("./error");
|
|
13
|
+
/** @internal */
|
|
14
|
+
const AUTH_PROVIDERS = new Map([
|
|
15
|
+
[providers_1.AuthMechanism.MONGODB_AWS, () => new mongodb_aws_1.MongoDBAWS()],
|
|
16
|
+
[providers_1.AuthMechanism.MONGODB_CR, () => new mongocr_1.MongoCR()],
|
|
17
|
+
[providers_1.AuthMechanism.MONGODB_GSSAPI, () => new gssapi_1.GSSAPI()],
|
|
18
|
+
[providers_1.AuthMechanism.MONGODB_OIDC, () => new mongodb_oidc_1.MongoDBOIDC()],
|
|
19
|
+
[providers_1.AuthMechanism.MONGODB_PLAIN, () => new plain_1.Plain()],
|
|
20
|
+
[providers_1.AuthMechanism.MONGODB_SCRAM_SHA1, () => new scram_1.ScramSHA1()],
|
|
21
|
+
[providers_1.AuthMechanism.MONGODB_SCRAM_SHA256, () => new scram_1.ScramSHA256()],
|
|
22
|
+
[providers_1.AuthMechanism.MONGODB_X509, () => new x509_1.X509()]
|
|
23
|
+
]);
|
|
24
|
+
/**
|
|
25
|
+
* Create a set of providers per client
|
|
26
|
+
* to avoid sharing the provider's cache between different clients.
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
class MongoClientAuthProviders {
|
|
30
|
+
constructor() {
|
|
31
|
+
this.existingProviders = new Map();
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get or create an authentication provider based on the provided mechanism.
|
|
35
|
+
* We don't want to create all providers at once, as some providers may not be used.
|
|
36
|
+
* @param name - The name of the provider to get or create.
|
|
37
|
+
* @returns The provider.
|
|
38
|
+
* @throws MongoInvalidArgumentError if the mechanism is not supported.
|
|
39
|
+
* @internal
|
|
40
|
+
*/
|
|
41
|
+
getOrCreateProvider(name) {
|
|
42
|
+
const authProvider = this.existingProviders.get(name);
|
|
43
|
+
if (authProvider) {
|
|
44
|
+
return authProvider;
|
|
45
|
+
}
|
|
46
|
+
const provider = AUTH_PROVIDERS.get(name)?.();
|
|
47
|
+
if (!provider) {
|
|
48
|
+
throw new error_1.MongoInvalidArgumentError(`authMechanism ${name} not supported`);
|
|
49
|
+
}
|
|
50
|
+
this.existingProviders.set(name, provider);
|
|
51
|
+
return provider;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.MongoClientAuthProviders = MongoClientAuthProviders;
|
|
55
|
+
//# sourceMappingURL=mongo_client_auth_providers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mongo_client_auth_providers.js","sourceRoot":"","sources":["../src/mongo_client_auth_providers.ts"],"names":[],"mappings":";;;AACA,+CAA4C;AAC5C,iDAA8C;AAC9C,yDAAqD;AACrD,2DAAuD;AACvD,6CAA0C;AAC1C,qDAAsD;AACtD,6CAA2D;AAC3D,2CAAwC;AACxC,mCAAoD;AAEpD,gBAAgB;AAChB,MAAM,cAAc,GAAG,IAAI,GAAG,CAA6C;IACzE,CAAC,yBAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,wBAAU,EAAE,CAAC;IACnD,CAAC,yBAAa,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,iBAAO,EAAE,CAAC;IAC/C,CAAC,yBAAa,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,eAAM,EAAE,CAAC;IAClD,CAAC,yBAAa,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,0BAAW,EAAE,CAAC;IACrD,CAAC,yBAAa,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,aAAK,EAAE,CAAC;IAChD,CAAC,yBAAa,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,iBAAS,EAAE,CAAC;IACzD,CAAC,yBAAa,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAW,EAAE,CAAC;IAC7D,CAAC,yBAAa,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,WAAI,EAAE,CAAC;CAC/C,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAa,wBAAwB;IAArC;QACU,sBAAiB,GAA8C,IAAI,GAAG,EAAE,CAAC;IAwBnF,CAAC;IAtBC;;;;;;;OAOG;IACH,mBAAmB,CAAC,IAA4B;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,YAAY,EAAE;YAChB,OAAO,YAAY,CAAC;SACrB;QAED,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QAC9C,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,iCAAyB,CAAC,iBAAiB,IAAI,gBAAgB,CAAC,CAAC;SAC5E;QAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3C,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAzBD,4DAyBC"}
|
package/lib/mongo_logger.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MongoLogger = exports.stringifyWithMaxLen = exports.createStdioLogger = exports.MongoLoggableComponent = exports.SEVERITY_LEVEL_MAP = exports.DEFAULT_MAX_DOCUMENT_LENGTH = exports.SeverityLevel = void 0;
|
|
4
|
-
const bson_1 = require("bson");
|
|
3
|
+
exports.MongoLogger = exports.defaultLogTransform = exports.stringifyWithMaxLen = exports.createStdioLogger = exports.parseSeverityFromString = exports.MongoLoggableComponent = exports.SEVERITY_LEVEL_MAP = exports.DEFAULT_MAX_DOCUMENT_LENGTH = exports.SeverityLevel = void 0;
|
|
5
4
|
const util_1 = require("util");
|
|
5
|
+
const bson_1 = require("./bson");
|
|
6
6
|
const constants_1 = require("./constants");
|
|
7
7
|
const utils_1 = require("./utils");
|
|
8
8
|
/** @internal */
|
|
@@ -60,6 +60,7 @@ exports.MongoLoggableComponent = Object.freeze({
|
|
|
60
60
|
});
|
|
61
61
|
/**
|
|
62
62
|
* Parses a string as one of SeverityLevel
|
|
63
|
+
* @internal
|
|
63
64
|
*
|
|
64
65
|
* @param s - the value to be parsed
|
|
65
66
|
* @returns one of SeverityLevel if value can be parsed as such, otherwise null
|
|
@@ -72,13 +73,14 @@ function parseSeverityFromString(s) {
|
|
|
72
73
|
}
|
|
73
74
|
return null;
|
|
74
75
|
}
|
|
76
|
+
exports.parseSeverityFromString = parseSeverityFromString;
|
|
75
77
|
/** @internal */
|
|
76
78
|
function createStdioLogger(stream) {
|
|
77
79
|
return {
|
|
78
|
-
write: (log) => {
|
|
79
|
-
stream.write((0, util_1.inspect)(log, { compact: true, breakLength: Infinity }), 'utf-8');
|
|
80
|
+
write: (0, util_1.promisify)((log, cb) => {
|
|
81
|
+
stream.write((0, util_1.inspect)(log, { compact: true, breakLength: Infinity }), 'utf-8', cb);
|
|
80
82
|
return;
|
|
81
|
-
}
|
|
83
|
+
})
|
|
82
84
|
};
|
|
83
85
|
}
|
|
84
86
|
exports.createStdioLogger = createStdioLogger;
|
|
@@ -94,21 +96,21 @@ exports.createStdioLogger = createStdioLogger;
|
|
|
94
96
|
*/
|
|
95
97
|
function resolveLogPath({ MONGODB_LOG_PATH }, { mongodbLogPath }) {
|
|
96
98
|
if (typeof mongodbLogPath === 'string' && /^stderr$/i.test(mongodbLogPath)) {
|
|
97
|
-
return createStdioLogger(process.stderr);
|
|
99
|
+
return { mongodbLogPath: createStdioLogger(process.stderr), mongodbLogPathIsStdErr: true };
|
|
98
100
|
}
|
|
99
101
|
if (typeof mongodbLogPath === 'string' && /^stdout$/i.test(mongodbLogPath)) {
|
|
100
|
-
return createStdioLogger(process.stdout);
|
|
102
|
+
return { mongodbLogPath: createStdioLogger(process.stdout), mongodbLogPathIsStdErr: false };
|
|
101
103
|
}
|
|
102
104
|
if (typeof mongodbLogPath === 'object' && typeof mongodbLogPath?.write === 'function') {
|
|
103
|
-
return mongodbLogPath;
|
|
105
|
+
return { mongodbLogPath: mongodbLogPath, mongodbLogPathIsStdErr: false };
|
|
104
106
|
}
|
|
105
107
|
if (MONGODB_LOG_PATH && /^stderr$/i.test(MONGODB_LOG_PATH)) {
|
|
106
|
-
return createStdioLogger(process.stderr);
|
|
108
|
+
return { mongodbLogPath: createStdioLogger(process.stderr), mongodbLogPathIsStdErr: true };
|
|
107
109
|
}
|
|
108
110
|
if (MONGODB_LOG_PATH && /^stdout$/i.test(MONGODB_LOG_PATH)) {
|
|
109
|
-
return createStdioLogger(process.stdout);
|
|
111
|
+
return { mongodbLogPath: createStdioLogger(process.stdout), mongodbLogPathIsStdErr: false };
|
|
110
112
|
}
|
|
111
|
-
return createStdioLogger(process.stderr);
|
|
113
|
+
return { mongodbLogPath: createStdioLogger(process.stderr), mongodbLogPathIsStdErr: true };
|
|
112
114
|
}
|
|
113
115
|
function resolveSeverityConfiguration(clientOption, environmentOption, defaultSeverity) {
|
|
114
116
|
return (parseSeverityFromString(clientOption) ??
|
|
@@ -121,11 +123,35 @@ function compareSeverity(s0, s1) {
|
|
|
121
123
|
return s0Num < s1Num ? -1 : s0Num > s1Num ? 1 : 0;
|
|
122
124
|
}
|
|
123
125
|
/** @internal */
|
|
124
|
-
function stringifyWithMaxLen(value, maxDocumentLength) {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
126
|
+
function stringifyWithMaxLen(value, maxDocumentLength, options = {}) {
|
|
127
|
+
let strToTruncate = '';
|
|
128
|
+
if (typeof value === 'string') {
|
|
129
|
+
strToTruncate = value;
|
|
130
|
+
}
|
|
131
|
+
else if (typeof value === 'function') {
|
|
132
|
+
strToTruncate = value.name;
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
try {
|
|
136
|
+
strToTruncate = bson_1.EJSON.stringify(value, options);
|
|
137
|
+
}
|
|
138
|
+
catch (e) {
|
|
139
|
+
strToTruncate = `Extended JSON serialization failed with: ${e.message}`;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
// handle truncation that occurs in the middle of multi-byte codepoints
|
|
143
|
+
if (maxDocumentLength !== 0 &&
|
|
144
|
+
strToTruncate.length > maxDocumentLength &&
|
|
145
|
+
strToTruncate.charCodeAt(maxDocumentLength - 1) !==
|
|
146
|
+
strToTruncate.codePointAt(maxDocumentLength - 1)) {
|
|
147
|
+
maxDocumentLength--;
|
|
148
|
+
if (maxDocumentLength === 0) {
|
|
149
|
+
return '';
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return maxDocumentLength !== 0 && strToTruncate.length > maxDocumentLength
|
|
153
|
+
? `${strToTruncate.slice(0, maxDocumentLength)}...`
|
|
154
|
+
: strToTruncate;
|
|
129
155
|
}
|
|
130
156
|
exports.stringifyWithMaxLen = stringifyWithMaxLen;
|
|
131
157
|
function isLogConvertible(obj) {
|
|
@@ -133,44 +159,84 @@ function isLogConvertible(obj) {
|
|
|
133
159
|
// eslint-disable-next-line no-restricted-syntax
|
|
134
160
|
return objAsLogConvertible.toLog !== undefined && typeof objAsLogConvertible.toLog === 'function';
|
|
135
161
|
}
|
|
162
|
+
function attachServerSelectionFields(log, serverSelectionEvent, maxDocumentLength = exports.DEFAULT_MAX_DOCUMENT_LENGTH) {
|
|
163
|
+
const { selector, operation, topologyDescription, message } = serverSelectionEvent;
|
|
164
|
+
log.selector = stringifyWithMaxLen(selector, maxDocumentLength);
|
|
165
|
+
log.operation = operation;
|
|
166
|
+
log.topologyDescription = stringifyWithMaxLen(topologyDescription, maxDocumentLength);
|
|
167
|
+
log.message = message;
|
|
168
|
+
return log;
|
|
169
|
+
}
|
|
136
170
|
function attachCommandFields(log, commandEvent) {
|
|
137
171
|
log.commandName = commandEvent.commandName;
|
|
138
172
|
log.requestId = commandEvent.requestId;
|
|
139
|
-
log.driverConnectionId = commandEvent
|
|
173
|
+
log.driverConnectionId = commandEvent.connectionId;
|
|
140
174
|
const { host, port } = utils_1.HostAddress.fromString(commandEvent.address).toHostPort();
|
|
141
175
|
log.serverHost = host;
|
|
142
176
|
log.serverPort = port;
|
|
143
177
|
if (commandEvent?.serviceId) {
|
|
144
178
|
log.serviceId = commandEvent.serviceId.toHexString();
|
|
145
179
|
}
|
|
180
|
+
log.databaseName = commandEvent.databaseName;
|
|
181
|
+
log.serverConnectionId = commandEvent.serverConnectionId;
|
|
182
|
+
return log;
|
|
183
|
+
}
|
|
184
|
+
function attachConnectionFields(log, event) {
|
|
185
|
+
const { host, port } = utils_1.HostAddress.fromString(event.address).toHostPort();
|
|
186
|
+
log.serverHost = host;
|
|
187
|
+
log.serverPort = port;
|
|
188
|
+
return log;
|
|
189
|
+
}
|
|
190
|
+
function attachSDAMFields(log, sdamEvent) {
|
|
191
|
+
log.topologyId = sdamEvent.topologyId;
|
|
146
192
|
return log;
|
|
147
193
|
}
|
|
148
|
-
function
|
|
149
|
-
const {
|
|
194
|
+
function attachServerHeartbeatFields(log, serverHeartbeatEvent) {
|
|
195
|
+
const { awaited, connectionId } = serverHeartbeatEvent;
|
|
196
|
+
log.awaited = awaited;
|
|
197
|
+
log.driverConnectionId = serverHeartbeatEvent.connectionId;
|
|
198
|
+
const { host, port } = utils_1.HostAddress.fromString(connectionId).toHostPort();
|
|
150
199
|
log.serverHost = host;
|
|
151
200
|
log.serverPort = port;
|
|
152
201
|
return log;
|
|
153
202
|
}
|
|
203
|
+
/** @internal */
|
|
154
204
|
function defaultLogTransform(logObject, maxDocumentLength = exports.DEFAULT_MAX_DOCUMENT_LENGTH) {
|
|
155
205
|
let log = Object.create(null);
|
|
156
206
|
switch (logObject.name) {
|
|
207
|
+
case constants_1.SERVER_SELECTION_STARTED:
|
|
208
|
+
log = attachServerSelectionFields(log, logObject, maxDocumentLength);
|
|
209
|
+
return log;
|
|
210
|
+
case constants_1.SERVER_SELECTION_FAILED:
|
|
211
|
+
log = attachServerSelectionFields(log, logObject, maxDocumentLength);
|
|
212
|
+
log.failure = logObject.failure?.message;
|
|
213
|
+
return log;
|
|
214
|
+
case constants_1.SERVER_SELECTION_SUCCEEDED:
|
|
215
|
+
log = attachServerSelectionFields(log, logObject, maxDocumentLength);
|
|
216
|
+
log.serverHost = logObject.serverHost;
|
|
217
|
+
log.serverPort = logObject.serverPort;
|
|
218
|
+
return log;
|
|
219
|
+
case constants_1.WAITING_FOR_SUITABLE_SERVER:
|
|
220
|
+
log = attachServerSelectionFields(log, logObject, maxDocumentLength);
|
|
221
|
+
log.remainingTimeMS = logObject.remainingTimeMS;
|
|
222
|
+
return log;
|
|
157
223
|
case constants_1.COMMAND_STARTED:
|
|
158
224
|
log = attachCommandFields(log, logObject);
|
|
159
225
|
log.message = 'Command started';
|
|
160
|
-
log.command = stringifyWithMaxLen(logObject.command, maxDocumentLength);
|
|
226
|
+
log.command = stringifyWithMaxLen(logObject.command, maxDocumentLength, { relaxed: true });
|
|
161
227
|
log.databaseName = logObject.databaseName;
|
|
162
228
|
return log;
|
|
163
229
|
case constants_1.COMMAND_SUCCEEDED:
|
|
164
230
|
log = attachCommandFields(log, logObject);
|
|
165
231
|
log.message = 'Command succeeded';
|
|
166
232
|
log.durationMS = logObject.duration;
|
|
167
|
-
log.reply = stringifyWithMaxLen(logObject.reply, maxDocumentLength);
|
|
233
|
+
log.reply = stringifyWithMaxLen(logObject.reply, maxDocumentLength, { relaxed: true });
|
|
168
234
|
return log;
|
|
169
235
|
case constants_1.COMMAND_FAILED:
|
|
170
236
|
log = attachCommandFields(log, logObject);
|
|
171
237
|
log.message = 'Command failed';
|
|
172
238
|
log.durationMS = logObject.duration;
|
|
173
|
-
log.failure = logObject.failure;
|
|
239
|
+
log.failure = logObject.failure?.message ?? '(redacted)';
|
|
174
240
|
return log;
|
|
175
241
|
case constants_1.CONNECTION_POOL_CREATED:
|
|
176
242
|
log = attachConnectionFields(log, logObject);
|
|
@@ -195,7 +261,7 @@ function defaultLogTransform(logObject, maxDocumentLength = exports.DEFAULT_MAX_
|
|
|
195
261
|
log = attachConnectionFields(log, logObject);
|
|
196
262
|
log.message = 'Connection pool cleared';
|
|
197
263
|
if (logObject.serviceId?._bsontype === 'ObjectId') {
|
|
198
|
-
log.serviceId = logObject.serviceId
|
|
264
|
+
log.serviceId = logObject.serviceId?.toHexString();
|
|
199
265
|
}
|
|
200
266
|
return log;
|
|
201
267
|
case constants_1.CONNECTION_POOL_CLOSED:
|
|
@@ -271,6 +337,50 @@ function defaultLogTransform(logObject, maxDocumentLength = exports.DEFAULT_MAX_
|
|
|
271
337
|
log.message = 'Connection checked in';
|
|
272
338
|
log.driverConnectionId = logObject.connectionId;
|
|
273
339
|
return log;
|
|
340
|
+
case constants_1.SERVER_OPENING:
|
|
341
|
+
log = attachSDAMFields(log, logObject);
|
|
342
|
+
log = attachConnectionFields(log, logObject);
|
|
343
|
+
log.message = 'Starting server monitoring';
|
|
344
|
+
return log;
|
|
345
|
+
case constants_1.SERVER_CLOSED:
|
|
346
|
+
log = attachSDAMFields(log, logObject);
|
|
347
|
+
log = attachConnectionFields(log, logObject);
|
|
348
|
+
log.message = 'Stopped server monitoring';
|
|
349
|
+
return log;
|
|
350
|
+
case constants_1.SERVER_HEARTBEAT_STARTED:
|
|
351
|
+
log = attachSDAMFields(log, logObject);
|
|
352
|
+
log = attachServerHeartbeatFields(log, logObject);
|
|
353
|
+
log.message = 'Server heartbeat started';
|
|
354
|
+
return log;
|
|
355
|
+
case constants_1.SERVER_HEARTBEAT_SUCCEEDED:
|
|
356
|
+
log = attachSDAMFields(log, logObject);
|
|
357
|
+
log = attachServerHeartbeatFields(log, logObject);
|
|
358
|
+
log.message = 'Server heartbeat succeeded';
|
|
359
|
+
log.durationMS = logObject.duration;
|
|
360
|
+
log.serverConnectionId = logObject.serverConnectionId;
|
|
361
|
+
log.reply = stringifyWithMaxLen(logObject.reply, maxDocumentLength, { relaxed: true });
|
|
362
|
+
return log;
|
|
363
|
+
case constants_1.SERVER_HEARTBEAT_FAILED:
|
|
364
|
+
log = attachSDAMFields(log, logObject);
|
|
365
|
+
log = attachServerHeartbeatFields(log, logObject);
|
|
366
|
+
log.message = 'Server heartbeat failed';
|
|
367
|
+
log.durationMS = logObject.duration;
|
|
368
|
+
log.failure = logObject.failure?.message;
|
|
369
|
+
return log;
|
|
370
|
+
case constants_1.TOPOLOGY_OPENING:
|
|
371
|
+
log = attachSDAMFields(log, logObject);
|
|
372
|
+
log.message = 'Starting topology monitoring';
|
|
373
|
+
return log;
|
|
374
|
+
case constants_1.TOPOLOGY_CLOSED:
|
|
375
|
+
log = attachSDAMFields(log, logObject);
|
|
376
|
+
log.message = 'Stopped topology monitoring';
|
|
377
|
+
return log;
|
|
378
|
+
case constants_1.TOPOLOGY_DESCRIPTION_CHANGED:
|
|
379
|
+
log = attachSDAMFields(log, logObject);
|
|
380
|
+
log.message = 'Topology description changed';
|
|
381
|
+
log.previousDescription = log.reply = stringifyWithMaxLen(logObject.previousDescription, maxDocumentLength);
|
|
382
|
+
log.newDescription = log.reply = stringifyWithMaxLen(logObject.newDescription, maxDocumentLength);
|
|
383
|
+
return log;
|
|
274
384
|
default:
|
|
275
385
|
for (const [key, value] of Object.entries(logObject)) {
|
|
276
386
|
if (value != null)
|
|
@@ -279,9 +389,11 @@ function defaultLogTransform(logObject, maxDocumentLength = exports.DEFAULT_MAX_
|
|
|
279
389
|
}
|
|
280
390
|
return log;
|
|
281
391
|
}
|
|
392
|
+
exports.defaultLogTransform = defaultLogTransform;
|
|
282
393
|
/** @internal */
|
|
283
394
|
class MongoLogger {
|
|
284
395
|
constructor(options) {
|
|
396
|
+
this.pendingLog = null;
|
|
285
397
|
/**
|
|
286
398
|
* This method should be used when logging errors that do not have a public driver API for
|
|
287
399
|
* reporting errors.
|
|
@@ -310,9 +422,58 @@ class MongoLogger {
|
|
|
310
422
|
this.componentSeverities = options.componentSeverities;
|
|
311
423
|
this.maxDocumentLength = options.maxDocumentLength;
|
|
312
424
|
this.logDestination = options.logDestination;
|
|
425
|
+
this.logDestinationIsStdErr = options.logDestinationIsStdErr;
|
|
426
|
+
this.severities = this.createLoggingSeverities();
|
|
427
|
+
}
|
|
428
|
+
createLoggingSeverities() {
|
|
429
|
+
const severities = Object();
|
|
430
|
+
for (const component of Object.values(exports.MongoLoggableComponent)) {
|
|
431
|
+
severities[component] = {};
|
|
432
|
+
for (const severityLevel of Object.values(exports.SeverityLevel)) {
|
|
433
|
+
severities[component][severityLevel] =
|
|
434
|
+
compareSeverity(severityLevel, this.componentSeverities[component]) <= 0;
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
return severities;
|
|
438
|
+
}
|
|
439
|
+
turnOffSeverities() {
|
|
440
|
+
for (const component of Object.values(exports.MongoLoggableComponent)) {
|
|
441
|
+
this.componentSeverities[component] = exports.SeverityLevel.OFF;
|
|
442
|
+
for (const severityLevel of Object.values(exports.SeverityLevel)) {
|
|
443
|
+
this.severities[component][severityLevel] = false;
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
logWriteFailureHandler(error) {
|
|
448
|
+
if (this.logDestinationIsStdErr) {
|
|
449
|
+
this.turnOffSeverities();
|
|
450
|
+
this.clearPendingLog();
|
|
451
|
+
return;
|
|
452
|
+
}
|
|
453
|
+
this.logDestination = createStdioLogger(process.stderr);
|
|
454
|
+
this.logDestinationIsStdErr = true;
|
|
455
|
+
this.clearPendingLog();
|
|
456
|
+
this.error(exports.MongoLoggableComponent.CLIENT, {
|
|
457
|
+
toLog: function () {
|
|
458
|
+
return {
|
|
459
|
+
message: 'User input for mongodbLogPath is now invalid. Logging is halted.',
|
|
460
|
+
error: error.message
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
});
|
|
464
|
+
this.turnOffSeverities();
|
|
465
|
+
this.clearPendingLog();
|
|
466
|
+
}
|
|
467
|
+
clearPendingLog() {
|
|
468
|
+
this.pendingLog = null;
|
|
469
|
+
}
|
|
470
|
+
willLog(component, severity) {
|
|
471
|
+
if (severity === exports.SeverityLevel.OFF)
|
|
472
|
+
return false;
|
|
473
|
+
return this.severities[component][severity];
|
|
313
474
|
}
|
|
314
475
|
log(severity, component, message) {
|
|
315
|
-
if (
|
|
476
|
+
if (!this.willLog(component, severity))
|
|
316
477
|
return;
|
|
317
478
|
let logMessage = { t: new Date(), c: component, s: severity };
|
|
318
479
|
if (typeof message === 'string') {
|
|
@@ -326,7 +487,21 @@ class MongoLogger {
|
|
|
326
487
|
logMessage = { ...logMessage, ...defaultLogTransform(message, this.maxDocumentLength) };
|
|
327
488
|
}
|
|
328
489
|
}
|
|
329
|
-
this.
|
|
490
|
+
if ((0, utils_1.isPromiseLike)(this.pendingLog)) {
|
|
491
|
+
this.pendingLog = this.pendingLog
|
|
492
|
+
.then(() => this.logDestination.write(logMessage))
|
|
493
|
+
.then(this.clearPendingLog.bind(this), this.logWriteFailureHandler.bind(this));
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
try {
|
|
497
|
+
const logResult = this.logDestination.write(logMessage);
|
|
498
|
+
if ((0, utils_1.isPromiseLike)(logResult)) {
|
|
499
|
+
this.pendingLog = logResult.then(this.clearPendingLog.bind(this), this.logWriteFailureHandler.bind(this));
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
catch (error) {
|
|
503
|
+
this.logWriteFailureHandler(error);
|
|
504
|
+
}
|
|
330
505
|
}
|
|
331
506
|
/**
|
|
332
507
|
* Merges options set through environment variables and the MongoClient, preferring environment
|
|
@@ -343,10 +518,12 @@ class MongoLogger {
|
|
|
343
518
|
*/
|
|
344
519
|
static resolveOptions(envOptions, clientOptions) {
|
|
345
520
|
// client options take precedence over env options
|
|
521
|
+
const resolvedLogPath = resolveLogPath(envOptions, clientOptions);
|
|
346
522
|
const combinedOptions = {
|
|
347
523
|
...envOptions,
|
|
348
524
|
...clientOptions,
|
|
349
|
-
mongodbLogPath:
|
|
525
|
+
mongodbLogPath: resolvedLogPath.mongodbLogPath,
|
|
526
|
+
mongodbLogPathIsStdErr: resolvedLogPath.mongodbLogPathIsStdErr
|
|
350
527
|
};
|
|
351
528
|
const defaultSeverity = resolveSeverityConfiguration(combinedOptions.mongodbLogComponentSeverities?.default, combinedOptions.MONGODB_LOG_ALL, exports.SeverityLevel.OFF);
|
|
352
529
|
return {
|
|
@@ -361,7 +538,8 @@ class MongoLogger {
|
|
|
361
538
|
maxDocumentLength: combinedOptions.mongodbLogMaxDocumentLength ??
|
|
362
539
|
(0, utils_1.parseUnsignedInteger)(combinedOptions.MONGODB_LOG_MAX_DOCUMENT_LENGTH) ??
|
|
363
540
|
1000,
|
|
364
|
-
logDestination: combinedOptions.mongodbLogPath
|
|
541
|
+
logDestination: combinedOptions.mongodbLogPath,
|
|
542
|
+
logDestinationIsStdErr: combinedOptions.mongodbLogPathIsStdErr
|
|
365
543
|
};
|
|
366
544
|
}
|
|
367
545
|
}
|