mongodb-data-service 21.10.0 → 21.14.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/README.md +7 -22
- package/lib/connect-mongo-client.d.ts +11 -0
- package/lib/connect-mongo-client.js +88 -0
- package/lib/connect-mongo-client.js.map +1 -0
- package/lib/connect.js +2 -15
- package/lib/connect.js.map +1 -1
- package/lib/connection-info.d.ts +12 -0
- package/lib/connection-info.js +3 -0
- package/lib/connection-info.js.map +1 -0
- package/lib/connection-options.d.ts +2 -10
- package/lib/connection-secrets.d.ts +13 -0
- package/lib/connection-secrets.js +96 -0
- package/lib/connection-secrets.js.map +1 -0
- package/lib/connection-storage.d.ts +6 -0
- package/lib/connection-storage.js +45 -0
- package/lib/connection-storage.js.map +1 -0
- package/lib/connection-title.d.ts +2 -0
- package/lib/connection-title.js +25 -0
- package/lib/connection-title.js.map +1 -0
- package/lib/data-service.d.ts +62 -18
- package/lib/data-service.js +784 -75
- package/lib/data-service.js.map +1 -1
- package/lib/index.d.ts +8 -1
- package/lib/index.js +15 -1
- package/lib/index.js.map +1 -1
- package/lib/instance-detail-helper.d.ts +78 -32
- package/lib/instance-detail-helper.js +144 -433
- package/lib/instance-detail-helper.js.map +1 -1
- package/lib/{legacy-connection-model.d.ts → legacy/legacy-connection-model.d.ts} +25 -8
- package/lib/legacy/legacy-connection-model.js +203 -0
- package/lib/legacy/legacy-connection-model.js.map +1 -0
- package/lib/redact.d.ts +4 -1
- package/lib/redact.js +23 -11
- package/lib/redact.js.map +1 -1
- package/lib/run-command.d.ts +209 -0
- package/lib/run-command.js +11 -0
- package/lib/run-command.js.map +1 -0
- package/lib/ssh-tunnel.d.ts +5 -0
- package/lib/ssh-tunnel.js +73 -0
- package/lib/ssh-tunnel.js.map +1 -0
- package/lib/types.d.ts +2 -95
- package/package.json +26 -22
- package/lib/.esm-wrapper.mjs +0 -3
- package/lib/legacy-connect.d.ts +0 -7
- package/lib/legacy-connect.js +0 -97
- package/lib/legacy-connect.js.map +0 -1
- package/lib/legacy-connection-model.js +0 -62
- package/lib/legacy-connection-model.js.map +0 -1
- package/lib/native-client.d.ts +0 -92
- package/lib/native-client.js +0 -640
- package/lib/native-client.js.map +0 -1
package/lib/types.d.ts
CHANGED
|
@@ -1,102 +1,9 @@
|
|
|
1
|
-
import { AnyError, CollStats
|
|
1
|
+
import type { AnyError, CollStats } from 'mongodb';
|
|
2
2
|
export interface Callback<R> {
|
|
3
3
|
(err: Error | AnyError | {
|
|
4
4
|
message: string;
|
|
5
5
|
} | null | undefined, result: R): void;
|
|
6
6
|
}
|
|
7
|
-
export interface ResolvedInstanceTaskData {
|
|
8
|
-
client: MongoClient;
|
|
9
|
-
db: Db;
|
|
10
|
-
userInfo: Document;
|
|
11
|
-
host: HostInfoDetails;
|
|
12
|
-
build: BuildInfoDetails;
|
|
13
|
-
cmdLineOpts: Document;
|
|
14
|
-
genuineMongoDB: GenuineMongoDBDetails;
|
|
15
|
-
dataLake: DataLakeDetails;
|
|
16
|
-
listDatabases: string[];
|
|
17
|
-
allowedDatabases: string[];
|
|
18
|
-
databases: InstanceDatabaseDetails[];
|
|
19
|
-
listCollections: InstanceCollectionDetails[];
|
|
20
|
-
allowedCollections: InstanceCollectionDetails[];
|
|
21
|
-
collections: InstanceCollectionDetails[];
|
|
22
|
-
hierarchy: never;
|
|
23
|
-
stats: InstanceDatabaseStats;
|
|
24
|
-
}
|
|
25
|
-
export declare type InstanceDetails = Omit<ResolvedInstanceTaskData, 'db' | 'listDatabases' | 'allowedDatabases' | 'userInfo' | 'listCollections' | 'allowedCollections' | 'cmdLineOpts'>;
|
|
26
|
-
export interface Instance extends InstanceDetails {
|
|
27
|
-
_id?: string;
|
|
28
|
-
hostname: string;
|
|
29
|
-
port: number;
|
|
30
|
-
}
|
|
31
|
-
export interface InstanceCollectionDetails {
|
|
32
|
-
_id: string;
|
|
33
|
-
name: string;
|
|
34
|
-
database: string;
|
|
35
|
-
readonly: boolean;
|
|
36
|
-
collation: string | null;
|
|
37
|
-
type: string;
|
|
38
|
-
view_on?: string;
|
|
39
|
-
pipeline?: Document[];
|
|
40
|
-
}
|
|
41
|
-
export interface InstanceDatabaseDetails {
|
|
42
|
-
_id: string;
|
|
43
|
-
name: string;
|
|
44
|
-
document_count: number;
|
|
45
|
-
storage_size: number;
|
|
46
|
-
index_count: number;
|
|
47
|
-
index_size: number;
|
|
48
|
-
collections?: InstanceCollectionDetails[];
|
|
49
|
-
}
|
|
50
|
-
export interface HostInfoDetails {
|
|
51
|
-
system_time?: any;
|
|
52
|
-
hostname?: string;
|
|
53
|
-
os?: string;
|
|
54
|
-
os_family?: string;
|
|
55
|
-
kernel_version?: string;
|
|
56
|
-
kernel_version_string?: string;
|
|
57
|
-
memory_bits?: number;
|
|
58
|
-
memory_page_size?: number;
|
|
59
|
-
arch?: string;
|
|
60
|
-
cpu_cores?: number;
|
|
61
|
-
cpu_cores_physical?: number;
|
|
62
|
-
cpu_scheduler?: string;
|
|
63
|
-
cpu_frequency?: number;
|
|
64
|
-
cpu_string?: string;
|
|
65
|
-
cpu_bits?: number;
|
|
66
|
-
machine_model?: string;
|
|
67
|
-
feature_numa?: boolean;
|
|
68
|
-
feature_always_full_sync?: number;
|
|
69
|
-
feature_nfs_async?: number;
|
|
70
|
-
}
|
|
71
|
-
export interface GenuineMongoDBDetails {
|
|
72
|
-
isGenuine: boolean;
|
|
73
|
-
dbType: string;
|
|
74
|
-
}
|
|
75
|
-
export interface BuildInfoDetails {
|
|
76
|
-
version: string;
|
|
77
|
-
commit: string;
|
|
78
|
-
commit_url: string;
|
|
79
|
-
flags_loader: any;
|
|
80
|
-
flags_compiler: any;
|
|
81
|
-
allocator: string;
|
|
82
|
-
javascript_engine: string;
|
|
83
|
-
debug: boolean;
|
|
84
|
-
for_bits: number;
|
|
85
|
-
max_bson_object_size: number;
|
|
86
|
-
enterprise_module: boolean;
|
|
87
|
-
query_engine: any;
|
|
88
|
-
raw: Document;
|
|
89
|
-
}
|
|
90
|
-
export interface InstanceDatabaseStats {
|
|
91
|
-
document_count: number;
|
|
92
|
-
storage_size: number;
|
|
93
|
-
index_count: number;
|
|
94
|
-
index_size: number;
|
|
95
|
-
}
|
|
96
|
-
export interface DataLakeDetails {
|
|
97
|
-
isDataLake: boolean;
|
|
98
|
-
version: string;
|
|
99
|
-
}
|
|
100
7
|
export interface CollectionStats {
|
|
101
8
|
ns: string;
|
|
102
9
|
name: string;
|
|
@@ -105,7 +12,7 @@ export interface CollectionStats {
|
|
|
105
12
|
max?: number;
|
|
106
13
|
is_power_of_two: boolean;
|
|
107
14
|
index_sizes?: CollStats['indexSizes'];
|
|
108
|
-
document_count: CollStats['
|
|
15
|
+
document_count: CollStats['count'];
|
|
109
16
|
document_size?: CollStats['size'];
|
|
110
17
|
storage_size?: CollStats['storageSize'];
|
|
111
18
|
index_count?: CollStats['nindexes'];
|
package/package.json
CHANGED
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
"email": "compass@mongodb.com"
|
|
8
8
|
},
|
|
9
9
|
"homepage": "https://github.com/mongodb-js/compass",
|
|
10
|
-
"version": "21.
|
|
10
|
+
"version": "21.14.0",
|
|
11
11
|
"repository": {
|
|
12
12
|
"type": "git",
|
|
13
13
|
"url": "https://github.com/mongodb-js/compass.git"
|
|
14
14
|
},
|
|
15
15
|
"engines": {
|
|
16
|
-
"node": ">=
|
|
16
|
+
"node": ">=14.17.5"
|
|
17
17
|
},
|
|
18
18
|
"license": "SSPL",
|
|
19
19
|
"keywords": [
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
],
|
|
22
22
|
"main": "lib/index.js",
|
|
23
23
|
"exports": {
|
|
24
|
+
"webpack": "./src/index.ts",
|
|
24
25
|
"require": "./lib/index.js",
|
|
25
26
|
"import": "./lib/.esm-wrapper.mjs"
|
|
26
27
|
},
|
|
@@ -35,14 +36,14 @@
|
|
|
35
36
|
"prepublishOnly": "npm run compile",
|
|
36
37
|
"clean": "rimraf lib",
|
|
37
38
|
"precompile": "npm run clean",
|
|
38
|
-
"compile": "tsc -p tsconfig.json
|
|
39
|
+
"compile": "tsc -p tsconfig.json",
|
|
39
40
|
"depcheck": "depcheck",
|
|
40
41
|
"eslint": "eslint",
|
|
41
42
|
"prettier": "prettier",
|
|
42
43
|
"lint": "npm run eslint . && npm run prettier -- --check .",
|
|
43
44
|
"check": "npm run lint && npm run depcheck",
|
|
44
45
|
"check-ci": "npm run check",
|
|
45
|
-
"pretest": "
|
|
46
|
+
"pretest": "mongodb-runner start --port=27018 && node ../../scripts/rebuild.js keytar",
|
|
46
47
|
"test": "mocha",
|
|
47
48
|
"posttest": "mongodb-runner stop --port=27018",
|
|
48
49
|
"test-cov": "nyc -x \"**/*.spec.*\" npm run test",
|
|
@@ -52,46 +53,49 @@
|
|
|
52
53
|
"reformat": "npm run prettier -- --write ."
|
|
53
54
|
},
|
|
54
55
|
"peerDependencies": {
|
|
55
|
-
"mongodb": "^4.
|
|
56
|
+
"mongodb": "^4.2.2",
|
|
56
57
|
"mongodb-connection-model": "*"
|
|
57
58
|
},
|
|
58
59
|
"dependencies": {
|
|
59
|
-
"@mongodb-js/
|
|
60
|
+
"@mongodb-js/compass-logging": "^0.5.0",
|
|
61
|
+
"@mongodb-js/ssh-tunnel": "^1.2.1",
|
|
60
62
|
"async": "^3.2.0",
|
|
61
|
-
"debug": "
|
|
63
|
+
"debug": "4.3.0",
|
|
64
|
+
"get-port": "^5.1.1",
|
|
62
65
|
"lodash": "^4.17.20",
|
|
63
|
-
"mongodb-build-info": "^1.
|
|
64
|
-
"mongodb-connection-string-url": "^
|
|
65
|
-
"mongodb-index-model": "^3.
|
|
66
|
-
"mongodb-js-errors": "^0.5.0",
|
|
66
|
+
"mongodb-build-info": "^1.3.0",
|
|
67
|
+
"mongodb-connection-string-url": "^2.3.2",
|
|
68
|
+
"mongodb-index-model": "^3.7.0",
|
|
67
69
|
"mongodb-ns": "^2.2.0",
|
|
68
|
-
"mongodb-
|
|
70
|
+
"resolve-mongodb-srv": "^1.1.1",
|
|
71
|
+
"uuid": "^8.3.2"
|
|
69
72
|
},
|
|
70
73
|
"devDependencies": {
|
|
71
|
-
"@mongodb-js/devtools-docker-test-envs": "^1.
|
|
72
|
-
"@mongodb-js/eslint-config-compass": "^0.
|
|
73
|
-
"@mongodb-js/mocha-config-compass": "^0.
|
|
74
|
-
"@mongodb-js/prettier-config-compass": "^0.
|
|
75
|
-
"@mongodb-js/tsconfig-compass": "^0.
|
|
74
|
+
"@mongodb-js/devtools-docker-test-envs": "^1.2.2",
|
|
75
|
+
"@mongodb-js/eslint-config-compass": "^0.5.0",
|
|
76
|
+
"@mongodb-js/mocha-config-compass": "^0.6.0",
|
|
77
|
+
"@mongodb-js/prettier-config-compass": "^0.4.0",
|
|
78
|
+
"@mongodb-js/tsconfig-compass": "^0.4.0",
|
|
76
79
|
"@types/async": "^3.2.7",
|
|
77
80
|
"@types/debug": "^4.1.7",
|
|
78
81
|
"@types/lodash": "^4.14.172",
|
|
82
|
+
"@types/uuid": "^8.3.1",
|
|
79
83
|
"@types/whatwg-url": "^8.2.1",
|
|
80
84
|
"bson": "^4.4.1",
|
|
81
85
|
"chai": "^4.2.0",
|
|
82
86
|
"depcheck": "^1.4.1",
|
|
83
87
|
"eslint": "^7.25.0",
|
|
88
|
+
"kerberos": "^2.0.0-beta.0",
|
|
84
89
|
"mocha": "^8.4.0",
|
|
85
|
-
"
|
|
86
|
-
"mongodb": "^
|
|
87
|
-
"mongodb-connection-model": "^21.7.0",
|
|
90
|
+
"mongodb": "^4.2.1",
|
|
91
|
+
"mongodb-connection-model": "^21.10.0",
|
|
88
92
|
"mongodb-runner": "^4.8.3",
|
|
89
93
|
"nyc": "^15.0.0",
|
|
90
94
|
"prettier": "2.3.2",
|
|
91
95
|
"rimraf": "^3.0.2",
|
|
92
96
|
"sinon": "^9.2.3",
|
|
93
|
-
"
|
|
97
|
+
"storage-mixin": "^4.9.0",
|
|
94
98
|
"typescript": "^4.3.5"
|
|
95
99
|
},
|
|
96
|
-
"gitHead": "
|
|
100
|
+
"gitHead": "77166e3754e36e95c7ff7efb5a0ce5e0990b0ff7"
|
|
97
101
|
}
|
package/lib/.esm-wrapper.mjs
DELETED
package/lib/legacy-connect.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { MongoClientOptions, MongoClient } from 'mongodb';
|
|
2
|
-
import SSHTunnel from '@mongodb-js/ssh-tunnel';
|
|
3
|
-
import { LegacyConnectionModel } from './legacy-connection-model';
|
|
4
|
-
export default function connectCallback(model: LegacyConnectionModel, setupListeners: (client: MongoClient) => void, done: (err: Error | null, client: MongoClient, tunnel: SSHTunnel | null, options: {
|
|
5
|
-
url: string;
|
|
6
|
-
options: MongoClientOptions;
|
|
7
|
-
}) => void): void;
|
package/lib/legacy-connect.js
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const events_1 = require("events");
|
|
7
|
-
const mongodb_1 = require("mongodb");
|
|
8
|
-
const ssh_tunnel_1 = __importDefault(require("@mongodb-js/ssh-tunnel"));
|
|
9
|
-
const mongodb_connection_string_url_1 = __importDefault(require("mongodb-connection-string-url"));
|
|
10
|
-
const redact_1 = require("./redact");
|
|
11
|
-
const debug_1 = __importDefault(require("debug"));
|
|
12
|
-
const debug = debug_1.default('mongodb-data-service:connect');
|
|
13
|
-
function removeGssapiServiceName(url) {
|
|
14
|
-
const uri = new mongodb_connection_string_url_1.default(url);
|
|
15
|
-
uri.searchParams.delete('gssapiServiceName');
|
|
16
|
-
return uri.toString();
|
|
17
|
-
}
|
|
18
|
-
async function openSshTunnel(model) {
|
|
19
|
-
if (!model.sshTunnel ||
|
|
20
|
-
model.sshTunnel === 'NONE' ||
|
|
21
|
-
!model.sshTunnelOptions) {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
debug('creating ssh tunnel with options', model.sshTunnel, redact_1.redactSshTunnelOptions(model.sshTunnelOptions));
|
|
25
|
-
const tunnel = new ssh_tunnel_1.default(model.sshTunnelOptions);
|
|
26
|
-
debug('ssh tunnel listen ...');
|
|
27
|
-
await tunnel.listen();
|
|
28
|
-
debug('ssh tunnel opened');
|
|
29
|
-
return tunnel;
|
|
30
|
-
}
|
|
31
|
-
async function forceCloseTunnel(tunnelToClose) {
|
|
32
|
-
if (tunnelToClose) {
|
|
33
|
-
try {
|
|
34
|
-
await tunnelToClose.close();
|
|
35
|
-
debug('ssh tunnel stopped');
|
|
36
|
-
}
|
|
37
|
-
catch (err) {
|
|
38
|
-
debug('ssh tunnel stopped with error: %s', err.message);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
async function waitForTunnelError(tunnel) {
|
|
43
|
-
const [error] = await events_1.once(tunnel || new events_1.EventEmitter(), 'error');
|
|
44
|
-
throw error;
|
|
45
|
-
}
|
|
46
|
-
function addDirectConnectionWhenNeeded(options, model) {
|
|
47
|
-
var _a;
|
|
48
|
-
if (model.directConnection === undefined &&
|
|
49
|
-
((_a = model.hosts) === null || _a === void 0 ? void 0 : _a.length) === 1 &&
|
|
50
|
-
!model.isSrvRecord &&
|
|
51
|
-
!model.loadBalanced &&
|
|
52
|
-
(model.replicaSet === undefined || model.replicaSet === '')) {
|
|
53
|
-
return {
|
|
54
|
-
...options,
|
|
55
|
-
directConnection: true,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
return options;
|
|
59
|
-
}
|
|
60
|
-
async function connect(model, setupListeners) {
|
|
61
|
-
debug('connecting ...');
|
|
62
|
-
const url = removeGssapiServiceName(model.driverUrlWithSsh);
|
|
63
|
-
const options = {
|
|
64
|
-
...addDirectConnectionWhenNeeded(model.driverOptions, model),
|
|
65
|
-
};
|
|
66
|
-
delete options.auth;
|
|
67
|
-
const tunnel = await openSshTunnel(model);
|
|
68
|
-
debug('creating MongoClient', {
|
|
69
|
-
url: redact_1.redactConnectionString(url),
|
|
70
|
-
options,
|
|
71
|
-
});
|
|
72
|
-
const mongoClient = new mongodb_1.MongoClient(url, options);
|
|
73
|
-
if (setupListeners) {
|
|
74
|
-
setupListeners(mongoClient);
|
|
75
|
-
}
|
|
76
|
-
try {
|
|
77
|
-
debug('waiting for MongoClient to connect ...');
|
|
78
|
-
const client = (await Promise.race([
|
|
79
|
-
mongoClient.connect(),
|
|
80
|
-
waitForTunnelError(tunnel),
|
|
81
|
-
]));
|
|
82
|
-
return [client, tunnel, { url, options }];
|
|
83
|
-
}
|
|
84
|
-
catch (err) {
|
|
85
|
-
debug('connection error', err);
|
|
86
|
-
debug('force shutting down ssh tunnel ...');
|
|
87
|
-
await forceCloseTunnel(tunnel);
|
|
88
|
-
throw err;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
function connectCallback(model, setupListeners, done) {
|
|
92
|
-
connect(model, setupListeners).then(([client, tunnel, options]) => process.nextTick(() => done(null, client, tunnel, options)), (err) => process.nextTick(() => {
|
|
93
|
-
return done(err);
|
|
94
|
-
}));
|
|
95
|
-
}
|
|
96
|
-
exports.default = connectCallback;
|
|
97
|
-
//# sourceMappingURL=legacy-connect.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-connect.js","sourceRoot":"","sources":["../src/legacy-connect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.convertConnectionOptionsToModel = exports.convertConnectionModelToOptions = void 0;
|
|
4
|
-
const util_1 = require("util");
|
|
5
|
-
const ConnectionModel = require('mongodb-connection-model');
|
|
6
|
-
function convertConnectionModelToOptions(model) {
|
|
7
|
-
const options = {
|
|
8
|
-
connectionString: model.driverUrl,
|
|
9
|
-
};
|
|
10
|
-
if (model.sshTunnel !== 'NONE' &&
|
|
11
|
-
model.sshTunnelHostname &&
|
|
12
|
-
model.sshTunnelUsername) {
|
|
13
|
-
options.sshTunnel = {
|
|
14
|
-
host: model.sshTunnelHostname,
|
|
15
|
-
port: model.sshTunnelPort,
|
|
16
|
-
username: model.sshTunnelUsername,
|
|
17
|
-
};
|
|
18
|
-
if (model.sshTunnelPassword !== undefined) {
|
|
19
|
-
options.sshTunnel.password = model.sshTunnelPassword;
|
|
20
|
-
}
|
|
21
|
-
if (model.sshTunnelIdentityFile !== undefined) {
|
|
22
|
-
options.sshTunnel.privateKeyFile = model.sshTunnelIdentityFile;
|
|
23
|
-
}
|
|
24
|
-
if (model.sshTunnelPassphrase !== undefined) {
|
|
25
|
-
options.sshTunnel.privateKeyPassphrase = model.sshTunnelPassphrase;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
if (model.isFavorite) {
|
|
29
|
-
options.favorite = {
|
|
30
|
-
name: model.name,
|
|
31
|
-
color: model.color,
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
return options;
|
|
35
|
-
}
|
|
36
|
-
exports.convertConnectionModelToOptions = convertConnectionModelToOptions;
|
|
37
|
-
async function convertConnectionOptionsToModel(options) {
|
|
38
|
-
const connection = await util_1.promisify(ConnectionModel.from)(options.connectionString);
|
|
39
|
-
const additionalOptions = {};
|
|
40
|
-
if (options.sshTunnel) {
|
|
41
|
-
additionalOptions.sshTunnel = !options.sshTunnel.privateKeyFile
|
|
42
|
-
? 'USER_PASSWORD'
|
|
43
|
-
: 'IDENTITY_FILE';
|
|
44
|
-
additionalOptions.sshTunnelHostname = options.sshTunnel.host;
|
|
45
|
-
additionalOptions.sshTunnelUsername = options.sshTunnel.username;
|
|
46
|
-
additionalOptions.sshTunnelPassword = options.sshTunnel.password;
|
|
47
|
-
additionalOptions.sshTunnelIdentityFile = options.sshTunnel.privateKeyFile;
|
|
48
|
-
additionalOptions.sshTunnelPassphrase =
|
|
49
|
-
options.sshTunnel.privateKeyPassphrase;
|
|
50
|
-
}
|
|
51
|
-
if (options.favorite) {
|
|
52
|
-
additionalOptions.isFavorite = true;
|
|
53
|
-
additionalOptions.name = options.favorite.name;
|
|
54
|
-
additionalOptions.color = options.favorite.color;
|
|
55
|
-
}
|
|
56
|
-
return new ConnectionModel({
|
|
57
|
-
...connection.toJSON(),
|
|
58
|
-
...additionalOptions,
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
exports.convertConnectionOptionsToModel = convertConnectionOptionsToModel;
|
|
62
|
-
//# sourceMappingURL=legacy-connection-model.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-connection-model.js","sourceRoot":"","sources":["../src/legacy-connection-model.ts"],"names":[],"mappings":";;;AAEA,+BAAiC;AAIjC,MAAM,eAAe,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;AAsH5D,SAAgB,+BAA+B,CAC7C,KAA4B;IAE5B,MAAM,OAAO,GAAsB;QACjC,gBAAgB,EAAE,KAAK,CAAC,SAAS;KAClC,CAAC;IAEF,IACE,KAAK,CAAC,SAAS,KAAK,MAAM;QAC1B,KAAK,CAAC,iBAAiB;QACvB,KAAK,CAAC,iBAAiB,EACvB;QACA,OAAO,CAAC,SAAS,GAAG;YAClB,IAAI,EAAE,KAAK,CAAC,iBAAiB;YAC7B,IAAI,EAAE,KAAK,CAAC,aAAa;YACzB,QAAQ,EAAE,KAAK,CAAC,iBAAiB;SAClC,CAAC;QACF,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE;YACzC,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC,iBAAiB,CAAC;SACtD;QACD,IAAI,KAAK,CAAC,qBAAqB,KAAK,SAAS,EAAE;YAC7C,OAAO,CAAC,SAAS,CAAC,cAAc,GAAG,KAAK,CAAC,qBAAqB,CAAC;SAChE;QACD,IAAI,KAAK,CAAC,mBAAmB,KAAK,SAAS,EAAE;YAC3C,OAAO,CAAC,SAAS,CAAC,oBAAoB,GAAG,KAAK,CAAC,mBAAmB,CAAC;SACpE;KACF;IAED,IAAI,KAAK,CAAC,UAAU,EAAE;QACpB,OAAO,CAAC,QAAQ,GAAG;YACjB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC;KACH;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AApCD,0EAoCC;AAEM,KAAK,UAAU,+BAA+B,CACnD,OAA0B;IAE1B,MAAM,UAAU,GAA0B,MAAM,gBAAS,CACvD,eAAe,CAAC,IAAI,CACrB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE5B,MAAM,iBAAiB,GAA6C,EAAE,CAAC;IAEvE,IAAI,OAAO,CAAC,SAAS,EAAE;QACrB,iBAAiB,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc;YAC7D,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,eAAe,CAAC;QACpB,iBAAiB,CAAC,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;QAC7D,iBAAiB,CAAC,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;QACjE,iBAAiB,CAAC,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;QACjE,iBAAiB,CAAC,qBAAqB,GAAG,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC;QAC3E,iBAAiB,CAAC,mBAAmB;YACnC,OAAO,CAAC,SAAS,CAAC,oBAAoB,CAAC;KAC1C;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE;QACpB,iBAAiB,CAAC,UAAU,GAAG,IAAI,CAAC;QACpC,iBAAiB,CAAC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/C,iBAAiB,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;KAClD;IAED,OAAO,IAAI,eAAe,CAAC;QACzB,GAAG,UAAU,CAAC,MAAM,EAAE;QACtB,GAAG,iBAAiB;KACrB,CAAC,CAAC;AACL,CAAC;AA/BD,0EA+BC"}
|
package/lib/native-client.d.ts
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { EventEmitter } from 'events';
|
|
3
|
-
import { AggregateOptions, AggregationCursor, BulkWriteOptions, ClientSession, Collection, CollectionInfo, CollStats, CountDocumentsOptions, CreateCollectionOptions, CreateIndexesOptions, Db, DeleteOptions, DeleteResult, Document, EstimatedDocumentCountOptions, Filter, FindCursor, FindOneAndReplaceOptions, FindOneAndUpdateOptions, FindOptions, IndexSpecification, InsertManyResult, InsertOneOptions, InsertOneResult, MongoClient, MongoClientOptions, TopologyDescriptionChangedEvent, UpdateFilter, UpdateOptions, UpdateResult } from 'mongodb';
|
|
4
|
-
import { LegacyConnectionModel } from './legacy-connection-model';
|
|
5
|
-
import SSHTunnel from '@mongodb-js/ssh-tunnel';
|
|
6
|
-
import { Callback, CollectionDetails, CollectionStats, Instance, IndexDetails } from './types';
|
|
7
|
-
export declare type NativeClientConnectionOptions = {
|
|
8
|
-
url: string;
|
|
9
|
-
options: MongoClientOptions;
|
|
10
|
-
};
|
|
11
|
-
declare class NativeClient extends EventEmitter {
|
|
12
|
-
readonly model: LegacyConnectionModel;
|
|
13
|
-
connectionOptions?: NativeClientConnectionOptions;
|
|
14
|
-
tunnel?: SSHTunnel | null;
|
|
15
|
-
isWritable: boolean;
|
|
16
|
-
isMongos: boolean;
|
|
17
|
-
_isConnecting: boolean;
|
|
18
|
-
private _client?;
|
|
19
|
-
private _database?;
|
|
20
|
-
constructor(model: LegacyConnectionModel);
|
|
21
|
-
get database(): Db;
|
|
22
|
-
get client(): MongoClient;
|
|
23
|
-
isConnected(): boolean;
|
|
24
|
-
connect(done: Callback<NativeClient>): NativeClient;
|
|
25
|
-
setupListeners(client: MongoClient): void;
|
|
26
|
-
command(databaseName: string, comm: Document, callback: Callback<Document>): void;
|
|
27
|
-
estimatedCount(ns: string, options: EstimatedDocumentCountOptions, callback: Callback<number>): void;
|
|
28
|
-
count(ns: string, filter: Filter<Document>, options: CountDocumentsOptions, callback: Callback<number>): void;
|
|
29
|
-
collectionDetail(ns: string, callback: Callback<CollectionDetails>): void;
|
|
30
|
-
listCollections(databaseName: string, filter: Document, callback: Callback<CollectionInfo[]>): void;
|
|
31
|
-
listDatabases(callback: Callback<Document>): void;
|
|
32
|
-
collections(databaseName: string, callback: Callback<CollectionStats[]>): void;
|
|
33
|
-
collectionNames(databaseName: string, callback: Callback<string[]>): void;
|
|
34
|
-
currentOp(includeAll: boolean, callback: Callback<Document>): void;
|
|
35
|
-
serverStats(callback: Callback<Document>): void;
|
|
36
|
-
top(callback: Callback<Document>): void;
|
|
37
|
-
collectionStats(databaseName: string, collectionName: string, callback: Callback<CollectionStats>): void;
|
|
38
|
-
createCollection(ns: string, options: CreateCollectionOptions, callback: Callback<Collection<Document>>): void;
|
|
39
|
-
createIndex(ns: string, spec: IndexSpecification, options: CreateIndexesOptions, callback: Callback<string>): void;
|
|
40
|
-
databaseDetail(name: string, callback: Callback<Document>): void;
|
|
41
|
-
databaseStats(name: string, callback: Callback<Document>): void;
|
|
42
|
-
deleteOne(ns: string, filter: Filter<Document>, options: DeleteOptions, callback: Callback<DeleteResult>): void;
|
|
43
|
-
deleteMany(ns: string, filter: Filter<Document>, options: DeleteOptions, callback: Callback<DeleteResult>): void;
|
|
44
|
-
disconnect(callback: Callback<never>): void;
|
|
45
|
-
dropCollection(ns: string, callback: Callback<boolean>): void;
|
|
46
|
-
dropDatabase(name: string, callback: Callback<boolean>): void;
|
|
47
|
-
dropIndex(ns: string, name: string, callback: Callback<Document>): void;
|
|
48
|
-
aggregate(ns: string, pipeline: Document[], options?: AggregateOptions): AggregationCursor;
|
|
49
|
-
aggregate(ns: string, pipeline: Document[], callback: Callback<AggregationCursor>): void;
|
|
50
|
-
aggregate(ns: string, pipeline: Document[], options: AggregateOptions | undefined, callback: Callback<AggregationCursor>): void;
|
|
51
|
-
find(ns: string, filter: Filter<Document> | undefined, options: FindOptions<Document> | undefined, callback: Callback<Document[]>): void;
|
|
52
|
-
fetch(ns: string, filter: Filter<Document>, options: FindOptions): FindCursor;
|
|
53
|
-
findOneAndReplace(ns: string, filter: Filter<Document>, replacement: Document, options: FindOneAndReplaceOptions, callback: Callback<Document>): void;
|
|
54
|
-
findOneAndUpdate(ns: string, filter: Filter<Document>, update: Document, options: FindOneAndUpdateOptions, callback: Callback<Document>): void;
|
|
55
|
-
explain(ns: string, filter: Filter<Document>, options: FindOptions, callback: Callback<Document>): void;
|
|
56
|
-
indexes(ns: string, callback: Callback<IndexDetails[]>): void;
|
|
57
|
-
insertOne(ns: string, doc: Document, options: InsertOneOptions, callback: Callback<InsertOneResult<Document>>): void;
|
|
58
|
-
insertMany(ns: string, docs: Document[], options: BulkWriteOptions, callback: Callback<InsertManyResult<Document>>): void;
|
|
59
|
-
putMany(ns: string, docs: Document[], options: BulkWriteOptions): Promise<InsertManyResult<Document>>;
|
|
60
|
-
instance(callback: Callback<Instance>): void;
|
|
61
|
-
sample(ns: string, { query, size, fields, }?: {
|
|
62
|
-
query?: Filter<Document>;
|
|
63
|
-
size?: number;
|
|
64
|
-
fields?: Document;
|
|
65
|
-
}, options?: AggregateOptions): AggregationCursor;
|
|
66
|
-
startSession(): ClientSession;
|
|
67
|
-
killSession(clientSession: ClientSession): Promise<Document>;
|
|
68
|
-
updateCollection(ns: string, flags: Document & {
|
|
69
|
-
collMod?: never;
|
|
70
|
-
}, callback: Callback<Document>): void;
|
|
71
|
-
updateOne(ns: string, filter: Filter<Document>, update: UpdateFilter<Document> | Document, options: UpdateOptions, callback: Callback<Document | UpdateResult>): void;
|
|
72
|
-
updateMany(ns: string, filter: Filter<Document>, update: UpdateFilter<Document>, options: UpdateOptions, callback: Callback<Document | UpdateResult>): void;
|
|
73
|
-
createView(name: string, sourceNs: string, pipeline: Document[], options: CreateCollectionOptions, callback: Callback<Collection<Document>>): void;
|
|
74
|
-
updateView(name: string, sourceNs: string, pipeline: Document[], options: Document, callback: Callback<Document>): void;
|
|
75
|
-
dropView(ns: string, callback: Callback<boolean>): void;
|
|
76
|
-
private _buildCollectionDetail;
|
|
77
|
-
_buildCollectionStats(databaseName: string, collectionName: string, data: Partial<CollStats>): CollectionStats;
|
|
78
|
-
_buildDatabaseDetail(name: string, db: Document): Document;
|
|
79
|
-
_buildDatabaseStats(data: Document): Document;
|
|
80
|
-
_collection(ns: string): Collection;
|
|
81
|
-
_collectionName(ns: string): string;
|
|
82
|
-
_databaseName(ns: string): string;
|
|
83
|
-
_isWritable(evt: TopologyDescriptionChangedEvent): boolean;
|
|
84
|
-
_isMongos(evt: TopologyDescriptionChangedEvent): boolean;
|
|
85
|
-
_translateMessage(error: any): Error | {
|
|
86
|
-
message: string;
|
|
87
|
-
};
|
|
88
|
-
_cleanup(): void;
|
|
89
|
-
}
|
|
90
|
-
export type { NativeClient };
|
|
91
|
-
declare const WrappedClient: typeof NativeClient;
|
|
92
|
-
export default WrappedClient;
|