Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Socket
Sign inDemoInstall

@mongodb-js/devtools-connect

Package Overview
Dependencies
Maintainers
0
Versions
61
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mongodb-js/devtools-connect - npm Package Compare versions

Comparing version 3.1.0 to 3.2.0

3

dist/connect.d.ts

@@ -14,3 +14,3 @@ import type { ConnectLogEmitter } from './index';

private stateShareServer;
constructor(options: Pick<DevtoolsConnectOptions, 'productDocsLink' | 'productName' | 'oidc' | 'parentHandle'>, logger: ConnectLogEmitter, systemCA: string | undefined);
constructor(options: Pick<DevtoolsConnectOptions, 'productDocsLink' | 'productName' | 'oidc' | 'parentHandle'>, logger: ConnectLogEmitter, ca: string);
getStateShareServer(): Promise<string>;

@@ -20,3 +20,2 @@ destroy(): Promise<void>;

export interface DevtoolsConnectOptions extends MongoClientOptions {
useSystemCA?: boolean;
productDocsLink: string;

@@ -23,0 +22,0 @@ productName: string;

@@ -32,3 +32,2 @@ "use strict";

const fast_failure_connect_1 = require("./fast-failure-connect");
const system_ca_1 = require("system-ca");
const oidc_plugin_1 = require("@mongodb-js/oidc-plugin");

@@ -242,3 +241,3 @@ const lodash_merge_1 = __importDefault(require("lodash.merge"));

class DevtoolsConnectionState {
constructor(options, logger, systemCA) {
constructor(options, logger, ca) {
this.stateShareClient = null;

@@ -259,5 +258,3 @@ this.stateShareServer = null;

redirectServerRequestHandler: handler_1.oidcServerRequestHandler.bind(null, options),
...(systemCA
? addToOIDCPluginHttpOptions(options.oidc, { ca: systemCA })
: {}),
...addToOIDCPluginHttpOptions(options.oidc, { ca }),
});

@@ -285,12 +282,11 @@ }

try {
let systemCA;
if (clientOptions.useSystemCA) {
const systemCAOpts = { includeNodeCertificates: true };
const ca = await (0, system_ca_1.systemCertsAsync)(systemCAOpts);
logger.emit('devtools-connect:used-system-ca', {
caCount: ca.length,
asyncFallbackError: systemCAOpts.asyncFallbackError,
});
systemCA = ca.join('\n');
}
const { ca, asyncFallbackError, systemCertsError, systemCACount } = await (0, devtools_proxy_support_1.systemCA)({
ca: clientOptions.ca,
tlsCAFile: clientOptions.tlsCAFile || getConnectionStringParam(uri, 'tlsCAFile'),
});
logger.emit('devtools-connect:used-system-ca', {
caCount: systemCACount,
asyncFallbackError,
systemCertsError,
});
const proxyAgent = clientOptions.proxy &&

@@ -301,3 +297,3 @@ (0, devtools_proxy_support_1.useOrCreateAgent)('createConnection' in clientOptions.proxy

...clientOptions.proxy,
...(systemCA ? { ca: systemCA } : {}),
ca,
}, clientOptions.applyProxyToOIDC ? undefined : 'mongodb://');

@@ -332,4 +328,4 @@ cleanupOnClientClose.push(() => proxyAgent?.destroy());

const state = clientOptions.parentState ??
new DevtoolsConnectionState(clientOptions, logger, systemCA);
const mongoClientOptions = (0, lodash_merge_1.default)({}, clientOptions, shouldAddOidcCallbacks ? state.oidcPlugin.mongoClientOptions : {}, systemCA ? { ca: systemCA } : {});
new DevtoolsConnectionState(clientOptions, logger, ca);
const mongoClientOptions = (0, lodash_merge_1.default)({}, clientOptions, shouldAddOidcCallbacks ? state.oidcPlugin.mongoClientOptions : {}, { ca });
mongoClientOptions.lookup = (hostname, options, callback) => {

@@ -381,15 +377,21 @@ return dns_1.default.lookup(hostname, { verbatim: false, ...options }, callback);

exports.connectMongoClient = connectMongoClient;
function hasProxyHostOption(uri, clientOptions) {
if (clientOptions.proxyHost || clientOptions.proxyPort)
return true;
let cs;
function getMaybeConectionString(uri) {
try {
cs = new mongodb_connection_string_url_1.default(uri, { looseValidation: true });
return new mongodb_connection_string_url_1.default(uri, { looseValidation: true });
}
catch {
return false;
return null;
}
const sp = cs.typedSearchParams();
return sp.has('proxyHost') || sp.has('proxyPort');
}
function getConnectionStringParam(uri, key) {
return (getMaybeConectionString(uri)
?.typedSearchParams()
.get(key) ?? null);
}
function hasProxyHostOption(uri, clientOptions) {
if (clientOptions.proxyHost || clientOptions.proxyPort)
return true;
const sp = getMaybeConectionString(uri)?.typedSearchParams();
return sp?.has('proxyHost') || sp?.has('proxyPort') || false;
}
function isHumanOidcFlow(uri, clientOptions) {

@@ -402,13 +404,6 @@ if ((clientOptions.authMechanism &&

}
let cs;
try {
cs = new mongodb_connection_string_url_1.default(uri, { looseValidation: true });
}
catch {
return false;
}
const sp = cs.typedSearchParams();
const authMechanism = clientOptions.authMechanism ?? sp.get('authMechanism');
const sp = getMaybeConectionString(uri)?.typedSearchParams();
const authMechanism = clientOptions.authMechanism ?? sp?.get('authMechanism');
return (authMechanism === 'MONGODB-OIDC' &&
!new mongodb_connection_string_url_1.CommaAndColonSeparatedRecord(sp.get('authMechanismProperties')).get('ENVIRONMENT'));
!new mongodb_connection_string_url_1.CommaAndColonSeparatedRecord(sp?.get('authMechanismProperties')).get('ENVIRONMENT'));
}

@@ -415,0 +410,0 @@ exports.isHumanOidcFlow = isHumanOidcFlow;

@@ -65,2 +65,3 @@ "use strict";

asyncFallbackError: ev.asyncFallbackError?.message,
systemCertsError: ev.systemCertsError?.message,
});

@@ -67,0 +68,0 @@ });

@@ -51,2 +51,3 @@ import { ProxyEventMap } from '@mongodb-js/devtools-proxy-support';

asyncFallbackError: Error | undefined;
systemCertsError: Error | undefined;
}

@@ -53,0 +54,0 @@ export interface ConnectEventMap extends MongoDBOIDCLogEventsMap, ProxyEventMap {

{
"name": "@mongodb-js/devtools-connect",
"version": "3.1.0",
"version": "3.2.0",
"description": "A connection establishment utility for MongoDB developer tools",

@@ -50,8 +50,7 @@ "homepage": "https://github.com/mongodb-js/devtools-shared/tree/main/packages/devtools-connect",

"dependencies": {
"@mongodb-js/devtools-proxy-support": "^0.2.0",
"@mongodb-js/devtools-proxy-support": "^0.3.0",
"@mongodb-js/oidc-http-server-pages": "1.1.2",
"lodash.merge": "^4.6.2",
"mongodb-connection-string-url": "^3.0.0",
"socks": "^2.7.3",
"system-ca": "^2.0.0"
"socks": "^2.7.3"
},

@@ -96,3 +95,3 @@ "peerDependencies": {

},
"gitHead": "cb955eba7effce5aabd90f41119484f253fb1755"
"gitHead": "64b898106d63c9da98f49fe4d9748caad465bad6"
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc