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/cmap/connect.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LEGAL_TCP_SOCKET_OPTIONS = exports.LEGAL_TLS_SOCKET_OPTIONS = exports.prepareHandshakeDocument = exports.
|
|
3
|
+
exports.makeSocket = exports.LEGAL_TCP_SOCKET_OPTIONS = exports.LEGAL_TLS_SOCKET_OPTIONS = exports.prepareHandshakeDocument = exports.performInitialHandshake = exports.makeConnection = exports.connect = void 0;
|
|
4
4
|
const net = require("net");
|
|
5
5
|
const tls = require("tls");
|
|
6
6
|
const constants_1 = require("../constants");
|
|
@@ -8,44 +8,31 @@ const deps_1 = require("../deps");
|
|
|
8
8
|
const error_1 = require("../error");
|
|
9
9
|
const utils_1 = require("../utils");
|
|
10
10
|
const auth_provider_1 = require("./auth/auth_provider");
|
|
11
|
-
const gssapi_1 = require("./auth/gssapi");
|
|
12
|
-
const mongocr_1 = require("./auth/mongocr");
|
|
13
|
-
const mongodb_aws_1 = require("./auth/mongodb_aws");
|
|
14
|
-
const mongodb_oidc_1 = require("./auth/mongodb_oidc");
|
|
15
|
-
const plain_1 = require("./auth/plain");
|
|
16
11
|
const providers_1 = require("./auth/providers");
|
|
17
|
-
const scram_1 = require("./auth/scram");
|
|
18
|
-
const x509_1 = require("./auth/x509");
|
|
19
12
|
const connection_1 = require("./connection");
|
|
20
13
|
const constants_2 = require("./wire_protocol/constants");
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
makeConnection({ ...options, existingSocket: undefined }, (err, socket) => {
|
|
34
|
-
if (err || !socket) {
|
|
35
|
-
return callback(err);
|
|
36
|
-
}
|
|
37
|
-
let ConnectionType = options.connectionType ?? connection_1.Connection;
|
|
38
|
-
if (options.autoEncrypter) {
|
|
39
|
-
ConnectionType = connection_1.CryptoConnection;
|
|
40
|
-
}
|
|
41
|
-
const connection = new ConnectionType(socket, options);
|
|
42
|
-
performInitialHandshake(connection, options).then(() => callback(undefined, connection), error => {
|
|
43
|
-
connection.destroy({ force: false });
|
|
44
|
-
callback(error);
|
|
45
|
-
});
|
|
46
|
-
});
|
|
14
|
+
async function connect(options) {
|
|
15
|
+
let connection = null;
|
|
16
|
+
try {
|
|
17
|
+
const socket = await makeSocket(options);
|
|
18
|
+
connection = makeConnection(options, socket);
|
|
19
|
+
await performInitialHandshake(connection, options);
|
|
20
|
+
return connection;
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
connection?.destroy({ force: false });
|
|
24
|
+
throw error;
|
|
25
|
+
}
|
|
47
26
|
}
|
|
48
27
|
exports.connect = connect;
|
|
28
|
+
function makeConnection(options, socket) {
|
|
29
|
+
let ConnectionType = options.connectionType ?? connection_1.Connection;
|
|
30
|
+
if (options.autoEncrypter) {
|
|
31
|
+
ConnectionType = connection_1.CryptoConnection;
|
|
32
|
+
}
|
|
33
|
+
return new ConnectionType(socket, options);
|
|
34
|
+
}
|
|
35
|
+
exports.makeConnection = makeConnection;
|
|
49
36
|
function checkSupportedServer(hello, options) {
|
|
50
37
|
const maxWireVersion = Number(hello.maxWireVersion);
|
|
51
38
|
const minWireVersion = Number(hello.minWireVersion);
|
|
@@ -65,7 +52,7 @@ async function performInitialHandshake(conn, options) {
|
|
|
65
52
|
const credentials = options.credentials;
|
|
66
53
|
if (credentials) {
|
|
67
54
|
if (!(credentials.mechanism === providers_1.AuthMechanism.MONGODB_DEFAULT) &&
|
|
68
|
-
!
|
|
55
|
+
!options.authProviders.getOrCreateProvider(credentials.mechanism)) {
|
|
69
56
|
throw new error_1.MongoInvalidArgumentError(`AuthMechanism '${credentials.mechanism}' not supported`);
|
|
70
57
|
}
|
|
71
58
|
}
|
|
@@ -79,7 +66,7 @@ async function performInitialHandshake(conn, options) {
|
|
|
79
66
|
handshakeOptions.socketTimeoutMS = options.connectTimeoutMS;
|
|
80
67
|
}
|
|
81
68
|
const start = new Date().getTime();
|
|
82
|
-
const response = await conn.
|
|
69
|
+
const response = await conn.command((0, utils_1.ns)('admin.$cmd'), handshakeDoc, handshakeOptions);
|
|
83
70
|
if (!('isWritablePrimary' in response)) {
|
|
84
71
|
// Provide hello-style response document.
|
|
85
72
|
response.isWritablePrimary = response[constants_1.LEGACY_HELLO_COMMAND];
|
|
@@ -106,7 +93,7 @@ async function performInitialHandshake(conn, options) {
|
|
|
106
93
|
// store the response on auth context
|
|
107
94
|
authContext.response = response;
|
|
108
95
|
const resolvedCredentials = credentials.resolveAuthMechanism(response);
|
|
109
|
-
const provider =
|
|
96
|
+
const provider = options.authProviders.getOrCreateProvider(resolvedCredentials.mechanism);
|
|
110
97
|
if (!provider) {
|
|
111
98
|
throw new error_1.MongoInvalidArgumentError(`No AuthProvider for ${resolvedCredentials.mechanism} defined.`);
|
|
112
99
|
}
|
|
@@ -123,7 +110,11 @@ async function performInitialHandshake(conn, options) {
|
|
|
123
110
|
throw error;
|
|
124
111
|
}
|
|
125
112
|
}
|
|
113
|
+
// Connection establishment is socket creation (tcp handshake, tls handshake, MongoDB handshake (saslStart, saslContinue))
|
|
114
|
+
// Once connection is established, command logging can log events (if enabled)
|
|
115
|
+
conn.established = true;
|
|
126
116
|
}
|
|
117
|
+
exports.performInitialHandshake = performInitialHandshake;
|
|
127
118
|
/**
|
|
128
119
|
* @internal
|
|
129
120
|
*
|
|
@@ -146,14 +137,14 @@ async function prepareHandshakeDocument(authContext) {
|
|
|
146
137
|
if (credentials) {
|
|
147
138
|
if (credentials.mechanism === providers_1.AuthMechanism.MONGODB_DEFAULT && credentials.username) {
|
|
148
139
|
handshakeDoc.saslSupportedMechs = `${credentials.source}.${credentials.username}`;
|
|
149
|
-
const provider =
|
|
140
|
+
const provider = authContext.options.authProviders.getOrCreateProvider(providers_1.AuthMechanism.MONGODB_SCRAM_SHA256);
|
|
150
141
|
if (!provider) {
|
|
151
142
|
// This auth mechanism is always present.
|
|
152
143
|
throw new error_1.MongoInvalidArgumentError(`No AuthProvider for ${providers_1.AuthMechanism.MONGODB_SCRAM_SHA256} defined.`);
|
|
153
144
|
}
|
|
154
145
|
return provider.prepare(handshakeDoc, authContext);
|
|
155
146
|
}
|
|
156
|
-
const provider =
|
|
147
|
+
const provider = authContext.options.authProviders.getOrCreateProvider(credentials.mechanism);
|
|
157
148
|
if (!provider) {
|
|
158
149
|
throw new error_1.MongoInvalidArgumentError(`No AuthProvider for ${credentials.mechanism} defined.`);
|
|
159
150
|
}
|
|
@@ -232,27 +223,19 @@ function parseSslOptions(options) {
|
|
|
232
223
|
}
|
|
233
224
|
return result;
|
|
234
225
|
}
|
|
235
|
-
|
|
236
|
-
const SOCKET_ERROR_EVENTS = new Set(SOCKET_ERROR_EVENT_LIST);
|
|
237
|
-
function makeConnection(options, _callback) {
|
|
226
|
+
async function makeSocket(options) {
|
|
238
227
|
const useTLS = options.tls ?? false;
|
|
239
228
|
const noDelay = options.noDelay ?? true;
|
|
240
229
|
const connectTimeoutMS = options.connectTimeoutMS ?? 30000;
|
|
241
230
|
const rejectUnauthorized = options.rejectUnauthorized ?? true;
|
|
242
231
|
const existingSocket = options.existingSocket;
|
|
243
232
|
let socket;
|
|
244
|
-
const callback = function (err, ret) {
|
|
245
|
-
if (err && socket) {
|
|
246
|
-
socket.destroy();
|
|
247
|
-
}
|
|
248
|
-
_callback(err, ret);
|
|
249
|
-
};
|
|
250
233
|
if (options.proxyHost != null) {
|
|
251
234
|
// Currently, only Socks5 is supported.
|
|
252
235
|
return makeSocks5Connection({
|
|
253
236
|
...options,
|
|
254
237
|
connectTimeoutMS // Should always be present for Socks5
|
|
255
|
-
}
|
|
238
|
+
});
|
|
256
239
|
}
|
|
257
240
|
if (useTLS) {
|
|
258
241
|
const tlsSocket = tls.connect(parseSslOptions(options));
|
|
@@ -273,44 +256,44 @@ function makeConnection(options, _callback) {
|
|
|
273
256
|
socket.setKeepAlive(true, 300000);
|
|
274
257
|
socket.setTimeout(connectTimeoutMS);
|
|
275
258
|
socket.setNoDelay(noDelay);
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
options.cancellationToken.removeListener('cancel', cancellationHandler);
|
|
292
|
-
}
|
|
293
|
-
if ('authorizationError' in socket) {
|
|
294
|
-
if (socket.authorizationError && rejectUnauthorized) {
|
|
295
|
-
// TODO(NODE-5192): wrap this with a MongoError subclass
|
|
296
|
-
return callback(socket.authorizationError);
|
|
297
|
-
}
|
|
259
|
+
let cancellationHandler = null;
|
|
260
|
+
const { promise: connectedSocket, resolve, reject } = (0, utils_1.promiseWithResolvers)();
|
|
261
|
+
if (existingSocket) {
|
|
262
|
+
resolve(socket);
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
const connectEvent = useTLS ? 'secureConnect' : 'connect';
|
|
266
|
+
socket
|
|
267
|
+
.once(connectEvent, () => resolve(socket))
|
|
268
|
+
.once('error', error => reject(connectionFailureError('error', error)))
|
|
269
|
+
.once('timeout', () => reject(connectionFailureError('timeout')))
|
|
270
|
+
.once('close', () => reject(connectionFailureError('close')));
|
|
271
|
+
if (options.cancellationToken != null) {
|
|
272
|
+
cancellationHandler = () => reject(connectionFailureError('cancel'));
|
|
273
|
+
options.cancellationToken.once('cancel', cancellationHandler);
|
|
298
274
|
}
|
|
299
|
-
socket.setTimeout(0);
|
|
300
|
-
callback(undefined, socket);
|
|
301
275
|
}
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
options.cancellationToken.once('cancel', cancellationHandler);
|
|
276
|
+
try {
|
|
277
|
+
socket = await connectedSocket;
|
|
278
|
+
return socket;
|
|
306
279
|
}
|
|
307
|
-
|
|
308
|
-
|
|
280
|
+
catch (error) {
|
|
281
|
+
socket.destroy();
|
|
282
|
+
if ('authorizationError' in socket && socket.authorizationError != null && rejectUnauthorized) {
|
|
283
|
+
// TODO(NODE-5192): wrap this with a MongoError subclass
|
|
284
|
+
throw socket.authorizationError;
|
|
285
|
+
}
|
|
286
|
+
throw error;
|
|
309
287
|
}
|
|
310
|
-
|
|
311
|
-
socket.
|
|
288
|
+
finally {
|
|
289
|
+
socket.setTimeout(0);
|
|
290
|
+
socket.removeAllListeners();
|
|
291
|
+
if (cancellationHandler != null) {
|
|
292
|
+
options.cancellationToken?.removeListener('cancel', cancellationHandler);
|
|
293
|
+
}
|
|
312
294
|
}
|
|
313
295
|
}
|
|
296
|
+
exports.makeSocket = makeSocket;
|
|
314
297
|
let socks = null;
|
|
315
298
|
function loadSocks() {
|
|
316
299
|
if (socks == null) {
|
|
@@ -322,31 +305,24 @@ function loadSocks() {
|
|
|
322
305
|
}
|
|
323
306
|
return socks;
|
|
324
307
|
}
|
|
325
|
-
function makeSocks5Connection(options
|
|
308
|
+
async function makeSocks5Connection(options) {
|
|
326
309
|
const hostAddress = utils_1.HostAddress.fromHostPort(options.proxyHost ?? '', // proxyHost is guaranteed to set here
|
|
327
310
|
options.proxyPort ?? 1080);
|
|
328
311
|
// First, connect to the proxy server itself:
|
|
329
|
-
|
|
312
|
+
const rawSocket = await makeSocket({
|
|
330
313
|
...options,
|
|
331
314
|
hostAddress,
|
|
332
315
|
tls: false,
|
|
333
316
|
proxyHost: undefined
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
}
|
|
342
|
-
try {
|
|
343
|
-
socks ??= loadSocks();
|
|
344
|
-
}
|
|
345
|
-
catch (error) {
|
|
346
|
-
return callback(error);
|
|
347
|
-
}
|
|
317
|
+
});
|
|
318
|
+
const destination = parseConnectOptions(options);
|
|
319
|
+
if (typeof destination.host !== 'string' || typeof destination.port !== 'number') {
|
|
320
|
+
throw new error_1.MongoInvalidArgumentError('Can only make Socks5 connections to TCP hosts');
|
|
321
|
+
}
|
|
322
|
+
socks ??= loadSocks();
|
|
323
|
+
try {
|
|
348
324
|
// Then, establish the Socks5 proxy connection:
|
|
349
|
-
socks.SocksClient.createConnection({
|
|
325
|
+
const { socket } = await socks.SocksClient.createConnection({
|
|
350
326
|
existing_socket: rawSocket,
|
|
351
327
|
timeout: options.connectTimeoutMS,
|
|
352
328
|
command: 'connect',
|
|
@@ -362,21 +338,23 @@ function makeSocks5Connection(options, callback) {
|
|
|
362
338
|
userId: options.proxyUsername || undefined,
|
|
363
339
|
password: options.proxyPassword || undefined
|
|
364
340
|
}
|
|
365
|
-
})
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
341
|
+
});
|
|
342
|
+
// Finally, now treat the resulting duplex stream as the
|
|
343
|
+
// socket over which we send and receive wire protocol messages:
|
|
344
|
+
return await makeSocket({
|
|
345
|
+
...options,
|
|
346
|
+
existingSocket: socket,
|
|
347
|
+
proxyHost: undefined
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
catch (error) {
|
|
351
|
+
throw connectionFailureError('error', error);
|
|
352
|
+
}
|
|
375
353
|
}
|
|
376
|
-
function connectionFailureError(type,
|
|
354
|
+
function connectionFailureError(type, cause) {
|
|
377
355
|
switch (type) {
|
|
378
356
|
case 'error':
|
|
379
|
-
return new error_1.MongoNetworkError(error_1.MongoError.buildErrorMessage(
|
|
357
|
+
return new error_1.MongoNetworkError(error_1.MongoError.buildErrorMessage(cause), { cause });
|
|
380
358
|
case 'timeout':
|
|
381
359
|
return new error_1.MongoNetworkTimeoutError('connection timed out');
|
|
382
360
|
case 'close':
|
package/lib/cmap/connect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/cmap/connect.ts"],"names":[],"mappings":";;;AACA,2BAA2B;AAE3B,2BAA2B;AAG3B,4CAAoD;AACpD,kCAAkD;AAClD,oCASkB;AAClB,oCAA0D;AAC1D,wDAAsE;AACtE,0CAAuC;AACvC,4CAAyC;AACzC,oDAAgD;AAChD,sDAAkD;AAClD,wCAAqC;AACrC,gDAAiD;AACjD,wCAAsD;AACtD,sCAAmC;AACnC,6CAKsB;AAEtB,yDAKmC;AAEnC,gBAAgB;AACH,QAAA,cAAc,GAAG,IAAI,GAAG,CAAuC;IAC1E,CAAC,yBAAa,CAAC,WAAW,EAAE,IAAI,wBAAU,EAAE,CAAC;IAC7C,CAAC,yBAAa,CAAC,UAAU,EAAE,IAAI,iBAAO,EAAE,CAAC;IACzC,CAAC,yBAAa,CAAC,cAAc,EAAE,IAAI,eAAM,EAAE,CAAC;IAC5C,CAAC,yBAAa,CAAC,YAAY,EAAE,IAAI,0BAAW,EAAE,CAAC;IAC/C,CAAC,yBAAa,CAAC,aAAa,EAAE,IAAI,aAAK,EAAE,CAAC;IAC1C,CAAC,yBAAa,CAAC,kBAAkB,EAAE,IAAI,iBAAS,EAAE,CAAC;IACnD,CAAC,yBAAa,CAAC,oBAAoB,EAAE,IAAI,mBAAW,EAAE,CAAC;IACvD,CAAC,yBAAa,CAAC,YAAY,EAAE,IAAI,WAAI,EAAE,CAAC;CACzC,CAAC,CAAC;AAKH,SAAgB,OAAO,CAAC,OAA0B,EAAE,QAA8B;IAChF,cAAc,CAAC,EAAE,GAAG,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QACxE,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE;YAClB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;SACtB;QAED,IAAI,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,uBAAU,CAAC;QAC1D,IAAI,OAAO,CAAC,aAAa,EAAE;YACzB,cAAc,GAAG,6BAAgB,CAAC;SACnC;QAED,MAAM,UAAU,GAAG,IAAI,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEvD,uBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAC/C,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,EACrC,KAAK,CAAC,EAAE;YACN,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YACrC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AArBD,0BAqBC;AAED,SAAS,oBAAoB,CAAC,KAAe,EAAE,OAA0B;IACvE,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACpD,MAAM,uBAAuB,GAC3B,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,cAAc,IAAI,sCAA0B,CAAC;IAChF,MAAM,sBAAsB,GAC1B,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,cAAc,IAAI,sCAA0B,CAAC;IAEhF,IAAI,uBAAuB,EAAE;QAC3B,IAAI,sBAAsB,EAAE;YAC1B,OAAO,IAAI,CAAC;SACb;QAED,MAAM,OAAO,GAAG,aAAa,OAAO,CAAC,WAAW,iCAAiC,IAAI,CAAC,SAAS,CAC7F,KAAK,CAAC,cAAc,CACrB,6DAA6D,sCAA0B,aAAa,wCAA4B,GAAG,CAAC;QACrI,OAAO,IAAI,+BAAuB,CAAC,OAAO,CAAC,CAAC;KAC7C;IAED,MAAM,OAAO,GAAG,aAAa,OAAO,CAAC,WAAW,iCAC9C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAC1C,8DAA8D,sCAA0B,aAAa,wCAA4B,GAAG,CAAC;IACrI,OAAO,IAAI,+BAAuB,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,IAAgB,EAChB,OAA0B;IAE1B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAExC,IAAI,WAAW,EAAE;QACf,IACE,CAAC,CAAC,WAAW,CAAC,SAAS,KAAK,yBAAa,CAAC,eAAe,CAAC;YAC1D,CAAC,sBAAc,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,EAC1C;YACA,MAAM,IAAI,iCAAyB,CAAC,kBAAkB,WAAW,CAAC,SAAS,iBAAiB,CAAC,CAAC;SAC/F;KACF;IAED,MAAM,WAAW,GAAG,IAAI,2BAAW,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAChE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAE/B,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAEjE,8HAA8H;IAC9H,MAAM,gBAAgB,GAAmB,EAAE,GAAG,OAAO,EAAE,CAAC;IACxD,IAAI,OAAO,OAAO,CAAC,gBAAgB,KAAK,QAAQ,EAAE;QAChD,oGAAoG;QACpG,gBAAgB,CAAC,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;KAC7D;IAED,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAA,UAAE,EAAC,YAAY,CAAC,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;IAE3F,IAAI,CAAC,CAAC,mBAAmB,IAAI,QAAQ,CAAC,EAAE;QACtC,yCAAyC;QACzC,QAAQ,CAAC,iBAAiB,GAAG,QAAQ,CAAC,gCAAoB,CAAC,CAAC;KAC7D;IAED,IAAI,QAAQ,CAAC,OAAO,EAAE;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACrB;IAED,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnE,IAAI,kBAAkB,EAAE;QACtB,MAAM,kBAAkB,CAAC;KAC1B;IAED,IAAI,OAAO,CAAC,YAAY,EAAE;QACxB,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YACvB,MAAM,IAAI,+BAAuB,CAC/B,yDAAyD;gBACvD,4CAA4C,CAC/C,CAAC;SACH;KACF;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,kDAAkD;IAClD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;IACtB,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC;IAEhD,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,WAAW,EAAE;QACxC,qCAAqC;QACrC,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEhC,MAAM,mBAAmB,GAAG,WAAW,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,sBAAc,CAAC,GAAG,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,iCAAyB,CACjC,uBAAuB,mBAAmB,CAAC,SAAS,WAAW,CAChE,CAAC;SACH;QAED,IAAI;YACF,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAClC;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,YAAY,kBAAU,EAAE;gBAC/B,KAAK,CAAC,aAAa,CAAC,uBAAe,CAAC,cAAc,CAAC,CAAC;gBACpD,IAAI,IAAA,gCAAwB,EAAC,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE;oBAC5D,KAAK,CAAC,aAAa,CAAC,uBAAe,CAAC,mBAAmB,CAAC,CAAC;iBAC1D;aACF;YACD,MAAM,KAAK,CAAC;SACb;KACF;AACH,CAAC;AAeD;;;;GAIG;AACI,KAAK,UAAU,wBAAwB,CAC5C,WAAwB;IAExB,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IACpC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,MAAM,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,UAAU,CAAC;IAE7C,MAAM,YAAY,GAAsB;QACtC,CAAC,SAAS,EAAE,OAAO,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gCAAoB,CAAC,EAAE,CAAC;QACzF,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,OAAO,CAAC,QAAQ;QACxB,WAAW,EAAE,WAAW;KACzB,CAAC;IAEF,IAAI,OAAO,CAAC,YAAY,KAAK,IAAI,EAAE;QACjC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC;KAClC;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;IAC5C,IAAI,WAAW,EAAE;QACf,IAAI,WAAW,CAAC,SAAS,KAAK,yBAAa,CAAC,eAAe,IAAI,WAAW,CAAC,QAAQ,EAAE;YACnF,YAAY,CAAC,kBAAkB,GAAG,GAAG,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;YAElF,MAAM,QAAQ,GAAG,sBAAc,CAAC,GAAG,CAAC,yBAAa,CAAC,oBAAoB,CAAC,CAAC;YACxE,IAAI,CAAC,QAAQ,EAAE;gBACb,yCAAyC;gBACzC,MAAM,IAAI,iCAAyB,CACjC,uBAAuB,yBAAa,CAAC,oBAAoB,WAAW,CACrE,CAAC;aACH;YACD,OAAO,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;SACpD;QACD,MAAM,QAAQ,GAAG,sBAAc,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,iCAAyB,CAAC,uBAAuB,WAAW,CAAC,SAAS,WAAW,CAAC,CAAC;SAC9F;QACD,OAAO,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;KACpD;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAvCD,4DAuCC;AAED,cAAc;AACD,QAAA,wBAAwB,GAAG;IACtC,eAAe;IACf,IAAI;IACJ,MAAM;IACN,qBAAqB;IACrB,SAAS;IACT,KAAK;IACL,WAAW;IACX,KAAK;IACL,WAAW;IACX,YAAY;IACZ,KAAK;IACL,oBAAoB;IACpB,eAAe;IACf,gBAAgB;IAChB,YAAY;IACZ,SAAS;CACD,CAAC;AAEX,cAAc;AACD,QAAA,wBAAwB,GAAG;IACtC,QAAQ;IACR,OAAO;IACP,cAAc;IACd,WAAW;IACX,QAAQ;CACA,CAAC;AAEX,SAAS,mBAAmB,CAAC,OAA0B;IACrD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACxC,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,iCAAyB,CAAC,kCAAkC,CAAC,CAAC;IAE1F,MAAM,MAAM,GAA2D,EAAE,CAAC;IAC1E,KAAK,MAAM,IAAI,IAAI,gCAAwB,EAAE;QAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;YACxB,MAAmB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;SAC5C;KACF;IAED,IAAI,OAAO,WAAW,CAAC,UAAU,KAAK,QAAQ,EAAE;QAC9C,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC,UAAU,CAAC;QACrC,OAAO,MAA+B,CAAC;KACxC;SAAM,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE;QAC/C,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAC/B,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAC/B,OAAO,MAA+B,CAAC;KACxC;SAAM;QACL,yDAAyD;QACzD,iEAAiE;QACjE,kBAAkB;QAClB,MAAM,IAAI,yBAAiB,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KACtF;AACH,CAAC;AAID,SAAS,eAAe,CAAC,OAA8B;IACrD,MAAM,MAAM,GAAsB,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC/D,6BAA6B;IAC7B,KAAK,MAAM,IAAI,IAAI,gCAAwB,EAAE;QAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;YACxB,MAAmB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;SAC5C;KACF;IAED,IAAI,OAAO,CAAC,cAAc,EAAE;QAC1B,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;KACxC;IAED,oDAAoD;IACpD,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QACtE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;KACjC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,uBAAuB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAU,CAAC;AAErF,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAE7D,SAAS,cAAc,CAAC,OAA8B,EAAE,SAA2B;IACjF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,IAAI,KAAK,CAAC;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;IACxC,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,KAAK,CAAC;IAC3D,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,IAAI,CAAC;IAC9D,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAE9C,IAAI,MAAc,CAAC;IACnB,MAAM,QAAQ,GAAqB,UAAU,GAAG,EAAE,GAAG;QACnD,IAAI,GAAG,IAAI,MAAM,EAAE;YACjB,MAAM,CAAC,OAAO,EAAE,CAAC;SAClB;QAED,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,EAAE;QAC7B,uCAAuC;QACvC,OAAO,oBAAoB,CACzB;YACE,GAAG,OAAO;YACV,gBAAgB,CAAC,sCAAsC;SACxD,EACD,QAAQ,CACT,CAAC;KACH;IAED,IAAI,MAAM,EAAE;QACV,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,IAAI,OAAO,SAAS,CAAC,oBAAoB,KAAK,UAAU,EAAE;YACxD,SAAS,CAAC,oBAAoB,EAAE,CAAC;SAClC;QACD,MAAM,GAAG,SAAS,CAAC;KACpB;SAAM,IAAI,cAAc,EAAE;QACzB,4EAA4E;QAC5E,wEAAwE;QACxE,wCAAwC;QACxC,MAAM,GAAG,cAAc,CAAC;KACzB;SAAM;QACL,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;KAC7D;IAED,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACpC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE3B,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,IAAI,mBAAyC,CAAC;IAC9C,SAAS,YAAY,CAAC,SAAgC;QACpD,OAAO,CAAC,GAAU,EAAE,EAAE;YACpB,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;YACvE,IAAI,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,EAAE;gBACpD,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;aACzE;YAED,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;YACpD,QAAQ,CAAC,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC;IACJ,CAAC;IAED,SAAS,cAAc;QACrB,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;QACvE,IAAI,mBAAmB,IAAI,OAAO,CAAC,iBAAiB,EAAE;YACpD,OAAO,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;SACzE;QAED,IAAI,oBAAoB,IAAI,MAAM,EAAE;YAClC,IAAI,MAAM,CAAC,kBAAkB,IAAI,kBAAkB,EAAE;gBACnD,wDAAwD;gBACxD,OAAO,QAAQ,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;aAC5C;SACF;QAED,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9E,IAAI,OAAO,CAAC,iBAAiB,EAAE;QAC7B,mBAAmB,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC7C,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;KAC/D;IAED,IAAI,cAAc,EAAE;QAClB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;KAClC;SAAM;QACL,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;KAC3C;AACH,CAAC;AAED,IAAI,KAAK,GAAoB,IAAI,CAAC;AAClC,SAAS,SAAS;IAChB,IAAI,KAAK,IAAI,IAAI,EAAE;QACjB,MAAM,WAAW,GAAG,IAAA,eAAQ,GAAE,CAAC;QAC/B,IAAI,cAAc,IAAI,WAAW,EAAE;YACjC,MAAM,WAAW,CAAC,YAAY,CAAC;SAChC;QACD,KAAK,GAAG,WAAW,CAAC;KACrB;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,OAA8B,EAAE,QAA0B;IACtF,MAAM,WAAW,GAAG,mBAAW,CAAC,YAAY,CAC1C,OAAO,CAAC,SAAS,IAAI,EAAE,EAAE,sCAAsC;IAC/D,OAAO,CAAC,SAAS,IAAI,IAAI,CAC1B,CAAC;IAEF,6CAA6C;IAC7C,cAAc,CACZ;QACE,GAAG,OAAO;QACV,WAAW;QACX,GAAG,EAAE,KAAK;QACV,SAAS,EAAE,SAAS;KACrB,EACD,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;QACjB,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE;YACrB,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;SACtB;QAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,OAAO,CAA0B,CAAC;QAC1E,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE;YAChF,OAAO,QAAQ,CACb,IAAI,iCAAyB,CAAC,+CAA+C,CAAC,CAC/E,CAAC;SACH;QAED,IAAI;YACF,KAAK,KAAK,SAAS,EAAE,CAAC;SACvB;QAAC,OAAO,KAAK,EAAE;YACd,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;SACxB;QAED,+CAA+C;QAC/C,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC;YACjC,eAAe,EAAE,SAAS;YAC1B,OAAO,EAAE,OAAO,CAAC,gBAAgB;YACjC,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE;gBACX,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,IAAI,EAAE,WAAW,CAAC,IAAI;aACvB;YACD,KAAK,EAAE;gBACL,4DAA4D;gBAC5D,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,CAAC;gBACP,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,OAAO,CAAC,aAAa,IAAI,SAAS;gBAC1C,QAAQ,EAAE,OAAO,CAAC,aAAa,IAAI,SAAS;aAC7C;SACF,CAAC,CAAC,IAAI,CACL,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YACb,wDAAwD;YACxD,gEAAgE;YAChE,cAAc,CACZ;gBACE,GAAG,OAAO;gBACV,cAAc,EAAE,MAAM;gBACtB,SAAS,EAAE,SAAS;aACrB,EACD,QAAQ,CACT,CAAC;QACJ,CAAC,EACD,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAC1D,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,IAA2B,EAAE,GAAU;IACrE,QAAQ,IAAI,EAAE;QACZ,KAAK,OAAO;YACV,OAAO,IAAI,yBAAiB,CAAC,kBAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAClF,KAAK,SAAS;YACZ,OAAO,IAAI,gCAAwB,CAAC,sBAAsB,CAAC,CAAC;QAC9D,KAAK,OAAO;YACV,OAAO,IAAI,yBAAiB,CAAC,mBAAmB,CAAC,CAAC;QACpD,KAAK,QAAQ;YACX,OAAO,IAAI,yBAAiB,CAAC,wCAAwC,CAAC,CAAC;QACzE;YACE,OAAO,IAAI,yBAAiB,CAAC,uBAAuB,CAAC,CAAC;KACzD;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/cmap/connect.ts"],"names":[],"mappings":"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"}
|