mongodb-data-service 21.15.1 → 21.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/lib/connect-mongo-client.d.ts +6 -4
  2. package/lib/connect-mongo-client.d.ts.map +1 -0
  3. package/lib/connect-mongo-client.js +26 -62
  4. package/lib/connect-mongo-client.js.map +1 -1
  5. package/lib/connect.d.ts +2 -1
  6. package/lib/connect.d.ts.map +1 -0
  7. package/lib/connection-info.d.ts +3 -3
  8. package/lib/connection-info.d.ts.map +1 -0
  9. package/lib/connection-options.d.ts +1 -0
  10. package/lib/connection-options.d.ts.map +1 -0
  11. package/lib/connection-secrets.d.ts +3 -1
  12. package/lib/connection-secrets.d.ts.map +1 -0
  13. package/lib/connection-secrets.js +9 -2
  14. package/lib/connection-secrets.js.map +1 -1
  15. package/lib/connection-storage.d.ts +4 -1
  16. package/lib/connection-storage.d.ts.map +1 -0
  17. package/lib/connection-storage.js +4 -3
  18. package/lib/connection-storage.js.map +1 -1
  19. package/lib/connection-title.d.ts +2 -1
  20. package/lib/connection-title.d.ts.map +1 -0
  21. package/lib/data-service.d.ts +9 -7
  22. package/lib/data-service.d.ts.map +1 -0
  23. package/lib/data-service.js +18 -18
  24. package/lib/data-service.js.map +1 -1
  25. package/lib/index.d.ts +4 -3
  26. package/lib/index.d.ts.map +1 -0
  27. package/lib/index.js +2 -1
  28. package/lib/index.js.map +1 -1
  29. package/lib/instance-detail-helper.d.ts +3 -2
  30. package/lib/instance-detail-helper.d.ts.map +1 -0
  31. package/lib/instance-detail-helper.js +1 -1
  32. package/lib/instance-detail-helper.js.map +1 -1
  33. package/lib/legacy/legacy-connection-model.d.ts +5 -3
  34. package/lib/legacy/legacy-connection-model.d.ts.map +1 -0
  35. package/lib/legacy/legacy-connection-model.js +64 -31
  36. package/lib/legacy/legacy-connection-model.js.map +1 -1
  37. package/lib/redact.d.ts +3 -2
  38. package/lib/redact.d.ts.map +1 -0
  39. package/lib/run-command.d.ts +2 -1
  40. package/lib/run-command.d.ts.map +1 -0
  41. package/lib/run-command.js.map +1 -1
  42. package/lib/ssh-tunnel.d.ts +6 -2
  43. package/lib/ssh-tunnel.d.ts.map +1 -0
  44. package/lib/ssh-tunnel.js +20 -14
  45. package/lib/ssh-tunnel.js.map +1 -1
  46. package/lib/types.d.ts +1 -0
  47. package/lib/types.d.ts.map +1 -0
  48. package/package.json +17 -19
@@ -1,7 +1,8 @@
1
- import { MongoClientOptions, MongoClient } from 'mongodb';
2
- import SSHTunnel from '@mongodb-js/ssh-tunnel';
3
- import { ConnectionOptions } from './connection-options';
4
- export default function connectMongoClient(connectionOptions: ConnectionOptions, setupListeners: (client: MongoClient) => void, tunnelLocalPort: number): Promise<[
1
+ import type { MongoClientOptions } from 'mongodb';
2
+ import { MongoClient } from 'mongodb';
3
+ import type SSHTunnel from '@mongodb-js/ssh-tunnel';
4
+ import type { ConnectionOptions } from './connection-options';
5
+ export default function connectMongoClientCompass(connectionOptions: ConnectionOptions, setupListeners: (client: MongoClient) => void): Promise<[
5
6
  MongoClient,
6
7
  SSHTunnel | undefined,
7
8
  {
@@ -9,3 +10,4 @@ export default function connectMongoClient(connectionOptions: ConnectionOptions,
9
10
  options: MongoClientOptions;
10
11
  }
11
12
  ]>;
13
+ //# sourceMappingURL=connect-mongo-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect-mongo-client.d.ts","sourceRoot":"","sources":["../src/connect-mongo-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AAKpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAS9D,wBAA8B,yBAAyB,CACrD,iBAAiB,EAAE,iBAAiB,EACpC,cAAc,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GAC5C,OAAO,CACR;IACE,WAAW;IACX,SAAS,GAAG,SAAS;IACrB;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,kBAAkB,CAAA;KAAE;CAC7C,CACF,CA6DA"}
@@ -4,86 +4,50 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const mongodb_1 = require("mongodb");
7
- const mongodb_connection_string_url_1 = __importDefault(require("mongodb-connection-string-url"));
8
- const resolve_mongodb_srv_1 = __importDefault(require("resolve-mongodb-srv"));
7
+ const devtools_connect_1 = require("@mongodb-js/devtools-connect");
8
+ const events_1 = __importDefault(require("events"));
9
9
  const redact_1 = require("./redact");
10
10
  const compass_logging_1 = __importDefault(require("@mongodb-js/compass-logging"));
11
11
  const ssh_tunnel_1 = require("./ssh-tunnel");
12
- const { debug, log, mongoLogId } = (0, compass_logging_1.default)('COMPASS-CONNECT');
13
- async function connectMongoClient(connectionOptions, setupListeners, tunnelLocalPort) {
14
- var _a, _b;
12
+ const { debug, log } = (0, compass_logging_1.default)('COMPASS-CONNECT');
13
+ async function connectMongoClientCompass(connectionOptions, setupListeners) {
15
14
  debug('connectMongoClient invoked', (0, redact_1.redactConnectionOptions)(connectionOptions));
16
- const [driverUrl, driverOptions] = connectionOptionsToMongoClientParams(connectionOptions);
17
- const srvResolvedUrl = await resolveSrvRecord(driverUrl);
18
- const [tunnel, urlWithSshTunnel] = await (0, ssh_tunnel_1.openSshTunnel)(srvResolvedUrl, connectionOptions.sshTunnel, tunnelLocalPort);
19
- log.info(mongoLogId(1001000009), 'Connect', 'Initiating connection', {
20
- url: (0, redact_1.redactConnectionString)(urlWithSshTunnel),
21
- options: driverOptions,
22
- });
23
- const mongoClient = new mongodb_1.MongoClient(urlWithSshTunnel, driverOptions);
24
- if (setupListeners) {
25
- setupListeners(mongoClient);
15
+ const url = connectionOptions.connectionString;
16
+ const options = { monitorCommands: true };
17
+ const [tunnel, socks5Options] = await (0, ssh_tunnel_1.openSshTunnel)(connectionOptions.sshTunnel);
18
+ if (socks5Options) {
19
+ Object.assign(options, socks5Options);
26
20
  }
21
+ class CompassMongoClient extends mongodb_1.MongoClient {
22
+ constructor(url, options) {
23
+ super(url, options);
24
+ if (setupListeners) {
25
+ setupListeners(this);
26
+ }
27
+ }
28
+ }
29
+ const connectLogger = new events_1.default();
30
+ (0, devtools_connect_1.hookLogger)(connectLogger, log.unbound, 'compass', redact_1.redactConnectionString);
31
+ let mongoClient;
27
32
  try {
28
33
  debug('waiting for MongoClient to connect ...');
29
- await Promise.race([
34
+ mongoClient = await Promise.race([
30
35
  (async () => {
31
- await mongoClient.connect();
36
+ const mongoClient = await (0, devtools_connect_1.connectMongoClient)(url, options, connectLogger, CompassMongoClient);
32
37
  await mongoClient.db('admin').command({ ping: 1 });
38
+ return mongoClient;
33
39
  })(),
34
40
  (0, ssh_tunnel_1.waitForTunnelError)(tunnel),
35
41
  ]);
36
- log.info(mongoLogId(1001000012), 'Connect', 'Connection established', {
37
- driver: (_b = (_a = mongoClient.options) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.driver,
38
- url: (0, redact_1.redactConnectionString)(urlWithSshTunnel),
39
- });
40
- return [
41
- mongoClient,
42
- tunnel,
43
- { url: urlWithSshTunnel, options: driverOptions },
44
- ];
42
+ return [mongoClient, tunnel, { url, options }];
45
43
  }
46
44
  catch (err) {
47
- log.error(mongoLogId(1001000013), 'Connect', 'Connection attempt failed', { error: err.message });
48
45
  debug('connection error', err);
49
46
  debug('force shutting down ssh tunnel ...');
50
- await Promise.all([(0, ssh_tunnel_1.forceCloseTunnel)(tunnel), mongoClient.close()]).catch(() => {
47
+ await Promise.all([(0, ssh_tunnel_1.forceCloseTunnel)(tunnel), mongoClient === null || mongoClient === void 0 ? void 0 : mongoClient.close()]).catch(() => {
51
48
  });
52
49
  throw err;
53
50
  }
54
51
  }
55
- exports.default = connectMongoClient;
56
- function connectionOptionsToMongoClientParams(connectionOptions) {
57
- const url = new mongodb_connection_string_url_1.default(connectionOptions.connectionString);
58
- const searchParams = url.typedSearchParams();
59
- const options = {
60
- monitorCommands: true,
61
- };
62
- const isLoadBalanced = searchParams.get('loadBalanced') === 'true';
63
- const isReplicaSet = url.isSRV || url.hosts.length > 1 || searchParams.has('replicaSet');
64
- const hasDirectConnection = searchParams.has('directConnection');
65
- if (!isReplicaSet && !isLoadBalanced && !hasDirectConnection) {
66
- searchParams.set('directConnection', 'true');
67
- }
68
- if (!searchParams.has('tlsCertificateFile') &&
69
- searchParams.has('tlsCertificateKeyFile')) {
70
- searchParams.set('tlsCertificateFile', searchParams.get('tlsCertificateKeyFile'));
71
- }
72
- return [url.href, options];
73
- }
74
- async function resolveSrvRecord(url) {
75
- let resolvedUrl;
76
- try {
77
- resolvedUrl = await (0, resolve_mongodb_srv_1.default)(url);
78
- log.info(mongoLogId(1001000010), 'Connect', 'Resolved SRV record', {
79
- from: (0, redact_1.redactConnectionString)(url),
80
- to: (0, redact_1.redactConnectionString)(resolvedUrl),
81
- });
82
- }
83
- catch (error) {
84
- log.error(mongoLogId(1001000011), 'Connect', 'Resolving SRV record failed', { from: (0, redact_1.redactConnectionString)(url), error: error.message });
85
- throw error;
86
- }
87
- return resolvedUrl;
88
- }
52
+ exports.default = connectMongoClientCompass;
89
53
  //# sourceMappingURL=connect-mongo-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connect-mongo-client.js","sourceRoot":"","sources":["../src/connect-mongo-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect-mongo-client.js","sourceRoot":"","sources":["../src/connect-mongo-client.ts"],"names":[],"mappings":";;;;;AACA,qCAAsC;AACtC,mEAA8E;AAE9E,oDAAkC;AAClC,qCAA2E;AAE3E,kFAAmE;AAEnE,6CAIsB;AAEtB,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAA,yBAAwB,EAAC,iBAAiB,CAAC,CAAC;AAEpD,KAAK,UAAU,yBAAyB,CACrD,iBAAoC,EACpC,cAA6C;IAQ7C,KAAK,CACH,4BAA4B,EAC5B,IAAA,gCAAuB,EAAC,iBAAiB,CAAC,CAC3C,CAAC;IAEF,MAAM,GAAG,GAAG,iBAAiB,CAAC,gBAAgB,CAAC;IAC/C,MAAM,OAAO,GAAuB,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IAM9D,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,MAAM,IAAA,0BAAa,EACjD,iBAAiB,CAAC,SAAS,CAC5B,CAAC;IAEF,IAAI,aAAa,EAAE;QACjB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;KACvC;IAED,MAAM,kBAAmB,SAAQ,qBAAW;QAC1C,YAAY,GAAW,EAAE,OAA4B;YACnD,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACpB,IAAI,cAAc,EAAE;gBAClB,cAAc,CAAC,IAAI,CAAC,CAAC;aACtB;QACH,CAAC;KACF;IAED,MAAM,aAAa,GAAG,IAAI,gBAAY,EAAE,CAAC;IACzC,IAAA,6BAAU,EAAC,aAAa,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,+BAAsB,CAAC,CAAC;IAE1E,IAAI,WAAoC,CAAC;IACzC,IAAI;QACF,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAChD,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAC/B,CAAC,KAAK,IAAI,EAAE;gBACV,MAAM,WAAW,GAAG,MAAM,IAAA,qCAAkB,EAC1C,GAAG,EACH,OAAO,EACP,aAAa,EACb,kBAAkB,CACnB,CAAC;gBACF,MAAM,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;gBACnD,OAAO,WAAW,CAAC;YACrB,CAAC,CAAC,EAAE;YACJ,IAAA,+BAAkB,EAAC,MAAM,CAAC;SAC3B,CAAC,CAAC;QAEH,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;KAChD;IAAC,OAAO,GAAQ,EAAE;QACjB,KAAK,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;QAC/B,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC5C,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAA,6BAAgB,EAAC,MAAM,CAAC,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CACvE,GAAG,EAAE;QAEL,CAAC,CACF,CAAC;QACF,MAAM,GAAG,CAAC;KACX;AACH,CAAC;AAtED,4CAsEC"}
package/lib/connect.d.ts CHANGED
@@ -1,3 +1,4 @@
1
- import { ConnectionOptions } from './connection-options';
1
+ import type { ConnectionOptions } from './connection-options';
2
2
  import DataService from './data-service';
3
3
  export default function connect(connectionOptions: ConnectionOptions): Promise<DataService>;
4
+ //# sourceMappingURL=connect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,WAAW,MAAM,gBAAgB,CAAC;AAEzC,wBAA8B,OAAO,CACnC,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC,WAAW,CAAC,CAItB"}
@@ -1,12 +1,12 @@
1
- import { ConnectionOptions } from './connection-options';
1
+ import type { ConnectionOptions } from './connection-options';
2
2
  export interface ConnectionInfo {
3
3
  readonly id: string;
4
4
  lastUsed?: Date;
5
5
  favorite?: ConnectionFavoriteOptions;
6
6
  connectionOptions: ConnectionOptions;
7
7
  }
8
- interface ConnectionFavoriteOptions {
8
+ export interface ConnectionFavoriteOptions {
9
9
  name: string;
10
10
  color?: string;
11
11
  }
12
- export {};
12
+ //# sourceMappingURL=connection-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-info.d.ts","sourceRoot":"","sources":["../src/connection-info.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,WAAW,cAAc;IAI7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAKpB,QAAQ,CAAC,EAAE,IAAI,CAAC;IAKhB,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IAKrC,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAED,MAAM,WAAW,yBAAyB;IAIxC,IAAI,EAAE,MAAM,CAAC;IAKb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -10,3 +10,4 @@ export interface ConnectionSshOptions {
10
10
  identityKeyFile?: string;
11
11
  identityKeyPassphrase?: string;
12
12
  }
13
+ //# sourceMappingURL=connection-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-options.d.ts","sourceRoot":"","sources":["../src/connection-options.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAIhC,gBAAgB,EAAE,MAAM,CAAC;IAKzB,SAAS,CAAC,EAAE,oBAAoB,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IAInC,IAAI,EAAE,MAAM,CAAC;IAKb,IAAI,EAAE,MAAM,CAAC;IAKb,QAAQ,EAAE,MAAM,CAAC;IAKjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAKlB,eAAe,CAAC,EAAE,MAAM,CAAC;IAKzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC"}
@@ -1,6 +1,7 @@
1
- import { ConnectionInfo } from './connection-info';
1
+ import type { ConnectionInfo } from './connection-info';
2
2
  export interface ConnectionSecrets {
3
3
  password?: string;
4
+ sshTunnelPassword?: string;
4
5
  sshTunnelPassphrase?: string;
5
6
  awsSessionToken?: string;
6
7
  tlsCertificateKeyFilePassword?: string;
@@ -11,3 +12,4 @@ export declare function extractSecrets(connectionInfo: Readonly<ConnectionInfo>)
11
12
  connectionInfo: ConnectionInfo;
12
13
  secrets: ConnectionSecrets;
13
14
  };
15
+ //# sourceMappingURL=connection-secrets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-secrets.d.ts","sourceRoot":"","sources":["../src/connection-secrets.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,YAAY,CAC1B,cAAc,EAAE,QAAQ,CAAC,cAAc,CAAC,EACxC,OAAO,EAAE,iBAAiB,GAAG,SAAS,GACrC,cAAc,CAwDhB;AAED,wBAAgB,cAAc,CAAC,cAAc,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG;IACxE,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,iBAAiB,CAAC;CAC5B,CA4DA"}
@@ -36,6 +36,9 @@ function mergeSecrets(connectionInfo, secrets) {
36
36
  if (secrets.password) {
37
37
  uri.password = secrets.password;
38
38
  }
39
+ if (secrets.sshTunnelPassword && connectionOptions.sshTunnel) {
40
+ connectionOptions.sshTunnel.password = secrets.sshTunnelPassword;
41
+ }
39
42
  if (secrets.sshTunnelPassphrase && connectionOptions.sshTunnel) {
40
43
  connectionOptions.sshTunnel.identityKeyPassphrase =
41
44
  secrets.sshTunnelPassphrase;
@@ -56,7 +59,7 @@ function mergeSecrets(connectionInfo, secrets) {
56
59
  }
57
60
  exports.mergeSecrets = mergeSecrets;
58
61
  function extractSecrets(connectionInfo) {
59
- var _a;
62
+ var _a, _b;
60
63
  const connectionInfoWithoutSecrets = lodash_1.default.cloneDeep(connectionInfo);
61
64
  const secrets = {};
62
65
  const connectionOptions = connectionInfoWithoutSecrets.connectionOptions;
@@ -66,7 +69,11 @@ function extractSecrets(connectionInfo) {
66
69
  secrets.password = uri.password;
67
70
  uri.password = '';
68
71
  }
69
- if ((_a = connectionOptions.sshTunnel) === null || _a === void 0 ? void 0 : _a.identityKeyPassphrase) {
72
+ if ((_a = connectionOptions.sshTunnel) === null || _a === void 0 ? void 0 : _a.password) {
73
+ secrets.sshTunnelPassword = connectionOptions.sshTunnel.password;
74
+ delete connectionOptions.sshTunnel.password;
75
+ }
76
+ if ((_b = connectionOptions.sshTunnel) === null || _b === void 0 ? void 0 : _b.identityKeyPassphrase) {
70
77
  secrets.sshTunnelPassphrase =
71
78
  connectionOptions.sshTunnel.identityKeyPassphrase;
72
79
  delete connectionOptions.sshTunnel.identityKeyPassphrase;
@@ -1 +1 @@
1
- {"version":3,"file":"connection-secrets.js","sourceRoot":"","sources":["../src/connection-secrets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-secrets.js","sourceRoot":"","sources":["../src/connection-secrets.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
- import { ConnectionInfo } from './connection-info';
1
+ import type { ConnectionInfo } from './connection-info';
2
+ import type { AmpersandMethodOptions } from './legacy/legacy-connection-model';
2
3
  export declare class ConnectionStorage {
3
4
  loadAll(): Promise<ConnectionInfo[]>;
4
5
  save(connectionInfo: ConnectionInfo): Promise<void>;
5
6
  delete(connectionOptions: ConnectionInfo): Promise<void>;
6
7
  }
8
+ export declare function promisifyAmpersandMethod<T>(fn: (options: AmpersandMethodOptions<T>) => void): () => Promise<T>;
9
+ //# sourceMappingURL=connection-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-storage.d.ts","sourceRoot":"","sources":["../src/connection-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAM/E,qBAAa,iBAAiB;IAMtB,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAoBpC,IAAI,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBnD,MAAM,CAAC,iBAAiB,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAU/D;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,EAAE,EAAE,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,KAAK,IAAI,GAC/C,MAAM,OAAO,CAAC,CAAC,CAAC,CAYlB"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConnectionStorage = void 0;
3
+ exports.promisifyAmpersandMethod = exports.ConnectionStorage = void 0;
4
4
  const uuid_1 = require("uuid");
5
5
  const legacy_connection_model_1 = require("./legacy/legacy-connection-model");
6
6
  class ConnectionStorage {
@@ -31,8 +31,8 @@ class ConnectionStorage {
31
31
  }
32
32
  exports.ConnectionStorage = ConnectionStorage;
33
33
  function promisifyAmpersandMethod(fn) {
34
- return () => new Promise((resolve, reject) => {
35
- fn({
34
+ return (...args) => new Promise((resolve, reject) => {
35
+ fn(...args, {
36
36
  success: (model) => {
37
37
  resolve(model);
38
38
  },
@@ -42,4 +42,5 @@ function promisifyAmpersandMethod(fn) {
42
42
  });
43
43
  });
44
44
  }
45
+ exports.promisifyAmpersandMethod = promisifyAmpersandMethod;
45
46
  //# sourceMappingURL=connection-storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection-storage.js","sourceRoot":"","sources":["../src/connection-storage.ts"],"names":[],"mappings":";;;AAEA,+BAAgD;AAChD,8EAI0C;AAE1C,MAAa,iBAAiB;IAM5B,KAAK,CAAC,OAAO;QAEX,MAAM,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;QACrE,MAAM,oBAAoB,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACxD,MAAM,qBAAqB,GAAG,wBAAwB,CACpD,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CACtD,CAAC;QAEF,MAAM,qBAAqB,EAAE,CAAC;QAC9B,OAAO,oBAAoB,CAAC,GAAG,CAAC,sDAA4B,CAAC,CAAC;IAChE,CAAC;IAUD,KAAK,CAAC,IAAI,CAAC,cAA8B;QACvC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACnC;QAED,IAAI,CAAC,IAAA,eAAY,EAAC,cAAc,CAAC,EAAE,CAAC,EAAE;YACpC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;SACtC;QAED,MAAM,KAAK,GAAG,MAAM,IAAA,sDAA4B,EAAC,cAAc,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,EAAE,CAAC;IACf,CAAC;IAaD,KAAK,CAAC,MAAM,CAAC,iBAAiC;QAC5C,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE;YAGzB,OAAO;SACR;QAED,MAAM,KAAK,GAAG,MAAM,IAAA,sDAA4B,EAAC,iBAAiB,CAAC,CAAC;QACpE,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;CACF;AA5DD,8CA4DC;AAED,SAAS,wBAAwB,CAC/B,EAAgD;IAEhD,OAAO,GAAG,EAAE,CACV,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9B,EAAE,CAAC;YACD,OAAO,EAAE,CAAC,KAAQ,EAAE,EAAE;gBACpB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;YACD,KAAK,EAAE,CAAC,KAAQ,EAAE,KAAY,EAAE,EAAE;gBAChC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"connection-storage.js","sourceRoot":"","sources":["../src/connection-storage.ts"],"names":[],"mappings":";;;AAEA,+BAAgD;AAEhD,8EAG0C;AAE1C,MAAa,iBAAiB;IAM5B,KAAK,CAAC,OAAO;QAEX,MAAM,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;QACrE,MAAM,oBAAoB,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACxD,MAAM,qBAAqB,GAAG,wBAAwB,CACpD,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CACtD,CAAC;QAEF,MAAM,qBAAqB,EAAE,CAAC;QAC9B,OAAO,oBAAoB,CAAC,GAAG,CAAC,sDAA4B,CAAC,CAAC;IAChE,CAAC;IAUD,KAAK,CAAC,IAAI,CAAC,cAA8B;QACvC,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE;YACtB,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;SACnC;QAED,IAAI,CAAC,IAAA,eAAY,EAAC,cAAc,CAAC,EAAE,CAAC,EAAE;YACpC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;SACtC;QAED,MAAM,KAAK,GAAG,MAAM,IAAA,sDAA4B,EAAC,cAAc,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,EAAE,CAAC;IACf,CAAC;IAaD,KAAK,CAAC,MAAM,CAAC,iBAAiC;QAC5C,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE;YAGzB,OAAO;SACR;QAED,MAAM,KAAK,GAAG,MAAM,IAAA,sDAA4B,EAAC,iBAAiB,CAAC,CAAC;QACpE,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;CACF;AA5DD,8CA4DC;AAED,SAAgB,wBAAwB,CACtC,EAAgD;IAEhD,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE,CACjB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9B,EAAE,CAAC,GAAG,IAAI,EAAE;YACV,OAAO,EAAE,CAAC,KAAQ,EAAE,EAAE;gBACpB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;YACD,KAAK,EAAE,CAAC,KAAQ,EAAE,KAAY,EAAE,EAAE;gBAChC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAdD,4DAcC"}
@@ -1,2 +1,3 @@
1
- import { ConnectionInfo } from './connection-info';
1
+ import type { ConnectionInfo } from './connection-info';
2
2
  export declare function getConnectionTitle(info: ConnectionInfo): string;
3
+ //# sourceMappingURL=connection-title.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-title.d.ts","sourceRoot":"","sources":["../src/connection-title.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAgB/D"}
@@ -1,11 +1,12 @@
1
1
  /// <reference types="node" />
2
2
  import { EventEmitter } from 'events';
3
- import { AggregateOptions, AggregationCursor, BulkWriteOptions, ClientSession, Collection, CountDocumentsOptions, CreateCollectionOptions, CreateIndexesOptions, DeleteOptions, DeleteResult, Document, EstimatedDocumentCountOptions, ExplainOptions, Filter, FindCursor, FindOneAndReplaceOptions, FindOneAndUpdateOptions, FindOptions, IndexSpecification, InsertManyResult, InsertOneOptions, InsertOneResult, MongoClientOptions, ReadPreferenceLike, TopologyDescription, UpdateFilter, UpdateOptions, UpdateResult } from 'mongodb';
3
+ import type { AggregateOptions, AggregationCursor, BulkWriteOptions, ClientSession, Collection, CountDocumentsOptions, CreateCollectionOptions, CreateIndexesOptions, DeleteOptions, DeleteResult, Document, EstimatedDocumentCountOptions, ExplainOptions, Filter, FindCursor, FindOneAndReplaceOptions, FindOneAndUpdateOptions, FindOptions, IndexSpecification, InsertManyResult, InsertOneOptions, InsertOneResult, MongoClientOptions, ReadPreferenceLike, TopologyDescription, TopologyType, UpdateFilter, UpdateOptions, UpdateResult } from 'mongodb';
4
4
  import ConnectionStringUrl from 'mongodb-connection-string-url';
5
- import { ConnectionOptions } from './connection-options';
6
- import { adaptCollectionInfo, adaptDatabaseInfo, InstanceDetails } from './instance-detail-helper';
7
- import { Callback, CollectionStats } from './types';
8
- import { ConnectionStatusWithPrivileges } from './run-command';
5
+ import type { ConnectionOptions } from './connection-options';
6
+ import type { InstanceDetails } from './instance-detail-helper';
7
+ import { adaptCollectionInfo, adaptDatabaseInfo } from './instance-detail-helper';
8
+ import type { Callback, CollectionStats } from './types';
9
+ import type { ConnectionStatusWithPrivileges } from './run-command';
9
10
  declare class DataService extends EventEmitter {
10
11
  private readonly _connectionOptions;
11
12
  private _isConnecting;
@@ -14,7 +15,7 @@ declare class DataService extends EventEmitter {
14
15
  private _tunnel?;
15
16
  private _lastSeenTopology;
16
17
  private _isWritable;
17
- private _isMongos;
18
+ private _topologyType;
18
19
  private _id;
19
20
  constructor(connectionOptions: ConnectionOptions);
20
21
  getMongoClientConnectionOptions(): {
@@ -32,6 +33,7 @@ declare class DataService extends EventEmitter {
32
33
  command(databaseName: string, comm: Document, callback: Callback<Document>): void;
33
34
  isWritable(): boolean;
34
35
  isMongos(): boolean;
36
+ currentTopologyType(): TopologyType;
35
37
  connectionStatus(): Promise<ConnectionStatusWithPrivileges>;
36
38
  private _getPrivilegesOrFallback;
37
39
  listCollections(databaseName: string, filter?: Document, { nameOnly, privileges, }?: {
@@ -104,9 +106,9 @@ declare class DataService extends EventEmitter {
104
106
  private _collectionName;
105
107
  private _databaseName;
106
108
  private _checkIsWritable;
107
- private _checkIsMongos;
108
109
  private _translateMessage;
109
110
  private _cleanup;
110
111
  private _startLogOp;
111
112
  }
112
113
  export default DataService;
114
+ //# sourceMappingURL=data-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-service.d.ts","sourceRoot":"","sources":["../src/data-service.ts"],"names":[],"mappings":"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"}
@@ -9,17 +9,19 @@ const compass_logging_1 = __importDefault(require("@mongodb-js/compass-logging")
9
9
  const events_1 = require("events");
10
10
  const lodash_1 = require("lodash");
11
11
  const mongodb_connection_string_url_1 = __importDefault(require("mongodb-connection-string-url"));
12
+ const mongodb_ns_1 = __importDefault(require("mongodb-ns"));
12
13
  const instance_detail_helper_1 = require("./instance-detail-helper");
13
14
  const redact_1 = require("./redact");
14
15
  const connect_mongo_client_1 = __importDefault(require("./connect-mongo-client"));
15
- const get_port_1 = __importDefault(require("get-port"));
16
16
  const run_command_1 = require("./run-command");
17
17
  const { fetch: getIndexes } = require('mongodb-index-model');
18
- const parseNamespace = require('mongodb-ns');
19
18
  const { log, mongoLogId, debug } = (0, compass_logging_1.default)('COMPASS-DATA-SERVICE');
20
19
  function uniqueBy(values, key) {
21
20
  return Array.from(new Map(values.map((val) => [val[key], val])).values());
22
21
  }
22
+ function isEmptyObject(obj) {
23
+ return Object.keys(obj).length === 0;
24
+ }
23
25
  let id = 0;
24
26
  class DataService extends events_1.EventEmitter {
25
27
  constructor(connectionOptions) {
@@ -27,7 +29,7 @@ class DataService extends events_1.EventEmitter {
27
29
  this._isConnecting = false;
28
30
  this._lastSeenTopology = null;
29
31
  this._isWritable = false;
30
- this._isMongos = false;
32
+ this._topologyType = 'Unknown';
31
33
  this._id = id++;
32
34
  this._connectionOptions = connectionOptions;
33
35
  }
@@ -105,7 +107,10 @@ class DataService extends events_1.EventEmitter {
105
107
  return this._isWritable;
106
108
  }
107
109
  isMongos() {
108
- return this._isMongos;
110
+ return this._topologyType === 'Sharded';
111
+ }
112
+ currentTopologyType() {
113
+ return this._topologyType;
109
114
  }
110
115
  async connectionStatus() {
111
116
  const logop = this._startLogOp(mongoLogId(1001000100), 'Running connectionStatus');
@@ -151,7 +156,7 @@ class DataService extends events_1.EventEmitter {
151
156
  try {
152
157
  const [listedCollections, collectionsFromPrivileges] = await Promise.all([
153
158
  listCollections(),
154
- getCollectionsFromPrivileges(),
159
+ isEmptyObject(filter) ? getCollectionsFromPrivileges() : [],
155
160
  ]);
156
161
  const collections = uniqueBy([...collectionsFromPrivileges, ...listedCollections], 'name').map((coll) => (0, instance_detail_helper_1.adaptCollectionInfo)({ db: databaseName, ...coll }));
157
162
  logop(null, { collectionsCount: collections.length });
@@ -215,10 +220,7 @@ class DataService extends events_1.EventEmitter {
215
220
  url: (0, redact_1.redactConnectionString)(this._connectionOptions.connectionString),
216
221
  });
217
222
  try {
218
- const tunnelLocalPort = this._connectionOptions.sshTunnel
219
- ? await (0, get_port_1.default)()
220
- : 0;
221
- const [client, tunnel, connectionOptions] = await (0, connect_mongo_client_1.default)(this._connectionOptions, this.setupListeners.bind(this), tunnelLocalPort);
223
+ const [client, tunnel, connectionOptions] = await (0, connect_mongo_client_1.default)(this._connectionOptions, this.setupListeners.bind(this));
222
224
  const attr = {
223
225
  isWritable: this.isWritable(),
224
226
  isMongos: this.isMongos(),
@@ -372,6 +374,7 @@ class DataService extends events_1.EventEmitter {
372
374
  }
373
375
  fetch(ns, filter, options) {
374
376
  const logop = this._startLogOp(mongoLogId(1001000043), 'Running raw find', { ns });
377
+ logop(null);
375
378
  return this._collection(ns).find(filter, options);
376
379
  }
377
380
  findOneAndReplace(ns, filter, replacement, options, callback) {
@@ -622,10 +625,10 @@ class DataService extends events_1.EventEmitter {
622
625
  this._client = client;
623
626
  if (client) {
624
627
  client.on('serverDescriptionChanged', (evt) => {
625
- var _a;
628
+ var _a, _b;
626
629
  log.info(mongoLogId(1001000018), this._logCtx(), 'Server description changed', {
627
630
  address: evt.address,
628
- error: (_a = evt.newDescription.error) !== null && _a !== void 0 ? _a : null,
631
+ error: (_b = (_a = evt.newDescription.error) === null || _a === void 0 ? void 0 : _a.message) !== null && _b !== void 0 ? _b : null,
629
632
  previousType: evt.previousDescription.type,
630
633
  newType: evt.newDescription.type,
631
634
  });
@@ -651,7 +654,7 @@ class DataService extends events_1.EventEmitter {
651
654
  });
652
655
  client.on('topologyDescriptionChanged', (evt) => {
653
656
  this._isWritable = this._checkIsWritable(evt);
654
- this._isMongos = this._checkIsMongos(evt);
657
+ this._topologyType = evt.newDescription.type;
655
658
  const attr = {
656
659
  isWritable: this.isWritable(),
657
660
  isMongos: this.isMongos(),
@@ -820,17 +823,14 @@ class DataService extends events_1.EventEmitter {
820
823
  });
821
824
  }
822
825
  _collectionName(ns) {
823
- return parseNamespace(ns).collection;
826
+ return (0, mongodb_ns_1.default)(ns).collection;
824
827
  }
825
828
  _databaseName(ns) {
826
- return parseNamespace(ns).database;
829
+ return (0, mongodb_ns_1.default)(ns).database;
827
830
  }
828
831
  _checkIsWritable(evt) {
829
832
  return [...evt.newDescription.servers.values()].some((server) => server.isWritable);
830
833
  }
831
- _checkIsMongos(evt) {
832
- return evt.newDescription.type === 'Sharded';
833
- }
834
834
  _translateMessage(error) {
835
835
  if (typeof error === 'string') {
836
836
  error = { message: error };
@@ -848,7 +848,7 @@ class DataService extends events_1.EventEmitter {
848
848
  this._tunnel = undefined;
849
849
  this._mongoClientConnectionOptions = undefined;
850
850
  this._isWritable = false;
851
- this._isMongos = false;
851
+ this._topologyType = 'Unknown';
852
852
  this._isConnecting = false;
853
853
  }
854
854
  _startLogOp(logId, op, attr = {}) {