From 212592168460eb4e580a8299ac0d78f92bd3c598 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Thu, 17 Jun 2021 20:28:39 +0200 Subject: [PATCH] feat: bump driver to 4.x beta COMPASS-4805 --- package-lock.json | 773 ++++++++++++++---- .../src/modules/pipeline.js | 2 +- .../compass-deployment-awareness/.depcheckrc | 3 +- .../compass-deployment-awareness/package.json | 2 - .../src/models/topology-type.js | 12 +- packages/compass-indexes/package.json | 2 +- packages/compass-schema/package.json | 2 +- packages/compass-shell/package.json | 2 +- .../adapt-driver-v36-connection-params.js | 10 +- ...adapt-driver-v36-connection-params.spec.js | 8 +- packages/compass/package.json | 2 +- .../src/app/migrations/legacy-connection.js | 9 +- packages/connection-model/README.md | 8 +- packages/connection-model/lib/connect.js | 2 +- packages/connection-model/lib/model.js | 20 +- packages/connection-model/package.json | 6 +- .../connection-model/test/build-uri.test.js | 32 +- .../connection-model/test/connect.test.js | 1 - packages/data-service/lib/native-client.js | 35 +- packages/data-service/package.json | 4 +- .../data-service/test/data-service.test.js | 6 +- .../data-service/test/native-client.test.js | 18 - packages/databases-collections/package.json | 2 +- packages/index-model/package.json | 2 +- 24 files changed, 710 insertions(+), 253 deletions(-) diff --git a/package-lock.json b/package-lock.json index c866f0303a2..2ca19c81643 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33655,6 +33655,89 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/mongodb3": { + "name": "mongodb", + "version": "3.6.9", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.9.tgz", + "integrity": "sha512-1nSCKgSunzn/CXwgOWgbPHUWOO5OfERcuOWISmqd610jn0s8BU9K4879iJVabqgpPPbA6hO7rG48eq+fGED3Mg==", + "dependencies": { + "bl": "^2.2.1", + "bson": "^1.1.4", + "denque": "^1.4.1", + "optional-require": "^1.0.3", + "safe-buffer": "^5.1.2" + }, + "engines": { + "node": ">=4" + }, + "optionalDependencies": { + "saslprep": "^1.0.0" + }, + "peerDependenciesMeta": { + "aws4": { + "optional": true + }, + "bson-ext": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "mongodb-extjson": { + "optional": true + }, + "snappy": { + "optional": true + } + } + }, + "node_modules/mongodb3/node_modules/bl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", + "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/mongodb3/node_modules/bson": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", + "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/mongodb3/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/mongodb3/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/mongodb3/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/moo": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", @@ -47323,7 +47406,6 @@ "depcheck": "^1.4.0", "electron": "^6.1.12", "electron-mocha": "^8.2.0", - "electron-rebuild": "^1.8.8", "eslint": "^7.25.0", "eslint-config-mongodb-js": "^5.0.3", "mocha": "^7.0.0", @@ -47332,7 +47414,7 @@ "xvfb-maybe": "^0.2.1" }, "peerDependencies": { - "mongodb-data-service": "^19.3.1" + "mongodb-data-service": "*" } }, "packages/compass": { @@ -47419,7 +47501,7 @@ "make-fetch-happen": "^8.0.14", "marky": "^1.2.0", "moment": "^2.10.6", - "mongodb": "^3.6.3", + "mongodb": "4.0.0-beta.5", "mongodb-ace-autocompleter": "^0.6.0", "mongodb-ace-mode": "^1.1.0", "mongodb-ace-theme": "^1.1.0", @@ -47567,7 +47649,6 @@ "debug": "^4.1.1", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.10.0", "enzyme": "^3.9.0", "enzyme-adapter-react-16": "^1.11.0", "eslint": "^7.25.0", @@ -47638,19 +47719,19 @@ "webpack-node-externals": "^3.0.0" }, "peerDependencies": { - "@mongodb-js/compass-crud": "^11.3.1", - "@mongodb-js/compass-export-to-language": "^6.1.1", - "@mongodb-js/compass-field-store": "^6.1.1", + "@mongodb-js/compass-crud": "*", + "@mongodb-js/compass-export-to-language": "*", + "@mongodb-js/compass-field-store": "*", "async": "^1.5.2", "electron": "*", - "hadron-react-bson": "^4.1.1", - "hadron-react-buttons": "^4.1.1", - "hadron-react-components": "^4.1.1", + "hadron-react-bson": "*", + "hadron-react-buttons": "*", + "hadron-react-components": "*", "mongodb-ace-autocompleter": "*", - "mongodb-ace-mode": "^0.5.1", - "mongodb-ace-theme": "^0.1.1", - "mongodb-data-service": "^19.3.1", - "mongodb-js-metrics": "^6.1.1", + "mongodb-ace-mode": "*", + "mongodb-ace-theme": "*", + "mongodb-data-service": "*", + "mongodb-js-metrics": "*", "mongodb-query-parser": "*", "prop-types": "^15.7.2", "react": "^16.8.0", @@ -47897,7 +47978,7 @@ }, "peerDependencies": { "debug": "*", - "mongodb-instance-model": "^10.1.1", + "mongodb-instance-model": "*", "prop-types": "^15.5.8", "react": "^16.8.0", "react-bootstrap": "^0.32.1", @@ -48228,7 +48309,7 @@ "webpack-node-externals": "^3.0.0" }, "peerDependencies": { - "hadron-react-buttons": "^4.1.1", + "hadron-react-buttons": "*", "react": "^16.8.0", "react-dom": "^16.8.0", "react-redux": "^5.0.6", @@ -53151,7 +53232,6 @@ "d3-timer": "1.0.7", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.10.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.2", "eslint": "^7.25.0", @@ -53229,11 +53309,11 @@ }, "peerDependencies": { "bson": "*", - "hadron-ipc": "^1.2.1", - "hadron-react-bson": "^4.1.1", - "hadron-react-buttons": "^4.1.1", - "hadron-react-components": "^4.1.1", - "mongodb-language-model": "^1.7.1", + "hadron-ipc": "*", + "hadron-react-bson": "*", + "hadron-react-buttons": "*", + "hadron-react-components": "*", + "mongodb-language-model": "*", "mongodb-ns": "*", "mongodb-query-parser": "*", "react": "^16.8.0", @@ -53267,7 +53347,6 @@ "debug": "^4.1.1", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.10.0", "enzyme": "^3.7.0", "enzyme-adapter-react-16": "^1.6.0", "eslint": "^7.25.0", @@ -53331,9 +53410,9 @@ "xvfb-maybe": "^0.2.1" }, "peerDependencies": { - "hadron-react-bson": "^4.1.1", - "hadron-react-components": "^4.1.1", - "mongodb-data-service": "^19.3.1", + "hadron-react-bson": "*", + "hadron-react-components": "*", + "mongodb-data-service": "*", "mongodb-ns": "^2.0.0", "numeral": "*", "prop-types": "^15.5.8", @@ -53690,7 +53769,6 @@ "debug": "^4.1.0", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.8.8", "enzyme": "^3.7.0", "enzyme-adapter-react-16": "^1.6.0", "eslint": "^7.25.0", @@ -53758,12 +53836,12 @@ "xvfb-maybe": "^0.2.1" }, "peerDependencies": { - "hadron-ipc": "^1.2.1", - "hadron-react-buttons": "^4.1.1", - "hadron-react-components": "^4.1.1", + "hadron-ipc": "*", + "hadron-react-buttons": "*", + "hadron-react-components": "*", "moment": "^2.10.6", - "mongodb-connection-model": "^19.2.1", - "mongodb-data-service": "^19.3.1", + "mongodb-connection-model": "*", + "mongodb-data-service": "*", "prop-types": "^15.5.8", "react": "^16.8.0", "react-bootstrap": "^0.32.1", @@ -53851,7 +53929,6 @@ "css-loader": "^4.3.0", "depcheck": "^1.3.1", "electron": "^6.1.12", - "electron-rebuild": "^1.8.4", "enzyme": "^3.7.0", "enzyme-adapter-react-16": "^1.6.0", "eslint": "^7.19.0", @@ -53925,11 +54002,11 @@ }, "peerDependencies": { "@hot-loader/react-dom": "^16.8.4", - "@mongodb-js/compass-query-bar": "^6.5.1", - "@mongodb-js/compass-status": "^4.2.1", - "hadron-react-bson": "^4.1.1", - "hadron-react-buttons": "^4.1.1", - "hadron-react-components": "^4.1.1", + "@mongodb-js/compass-query-bar": "*", + "@mongodb-js/compass-status": "*", + "hadron-react-bson": "*", + "hadron-react-buttons": "*", + "hadron-react-components": "*", "prop-types": "^15.5.8", "react": "^16.8.0", "react-bootstrap": "^0.32.1", @@ -54169,7 +54246,7 @@ "webpack-node-externals": "^3.0.0" }, "peerDependencies": { - "hadron-react-components": "^4.1.1", + "hadron-react-components": "*", "react": "^16.8.0", "react-dom": "^16.8.0" } @@ -54319,7 +54396,6 @@ "css-loader": "^4.3.0", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.10.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.2", "eslint": "^7.25.0", @@ -54350,7 +54426,6 @@ "less-loader": "^5.0.0", "mocha": "^7.0.1", "mocha-webpack": "^2.0.0-beta.0", - "mongodb": "^3.2.2", "mongodb-connection-model": "^20.2.0", "mongodb-data-service": "^20.2.1", "mongodb-js-metrics": "^7.2.0", @@ -54384,9 +54459,8 @@ "xvfb-maybe": "^0.2.1" }, "peerDependencies": { - "hadron-react-buttons": "^4.1.1", - "hadron-react-components": "^4.1.1", - "mongodb": "^3.5.3", + "hadron-react-buttons": "*", + "hadron-react-components": "*", "react": "^16.8.0", "react-dom": "^16.8.0" } @@ -54491,7 +54565,6 @@ "debug": "^4.1.1", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.8.4", "enzyme": "^3.7.0", "enzyme-adapter-react-16": "^1.10.0", "eslint": "^7.25.0", @@ -54569,18 +54642,18 @@ "xvfb-maybe": "^0.2.1" }, "peerDependencies": { - "@mongodb-js/compass-crud": "^11.3.1", - "@mongodb-js/compass-field-store": "^6.1.1", - "@mongodb-js/compass-indexes": "^3.2.1", - "@mongodb-js/compass-query-bar": "^6.5.1", - "@mongodb-js/compass-query-history": "^7.1.1", - "@mongodb-js/compass-status": "^4.2.1", + "@mongodb-js/compass-crud": "*", + "@mongodb-js/compass-field-store": "*", + "@mongodb-js/compass-indexes": "*", + "@mongodb-js/compass-query-bar": "*", + "@mongodb-js/compass-query-history": "*", + "@mongodb-js/compass-status": "*", "d3": "3.5.17", "debug": "*", "hadron-document": "*", - "hadron-react-bson": "^4.1.1", - "hadron-react-buttons": "^4.1.1", - "hadron-react-components": "^4.1.1", + "hadron-react-bson": "*", + "hadron-react-buttons": "*", + "hadron-react-components": "*", "mongodb-query-parser": "*", "prop-types": "^15.5.8", "react": "^16.9.0", @@ -54670,7 +54743,6 @@ "debug": "^3.2.6", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.8.6", "enzyme": "^3.10.0", "enzyme-adapter-react-16": "^1.14.0", "eslint": "^7.25.0", @@ -54736,8 +54808,8 @@ }, "peerDependencies": { "bson-transpilers": "^0.13.2", - "hadron-react-buttons": "^4.1.1", - "mongodb-ace-theme": "^0.1.1", + "hadron-react-buttons": "*", + "mongodb-ace-theme": "*", "prop-types": "^15.5.8", "react": "^16.8.0", "react-bootstrap": "^0.32.1", @@ -57654,7 +57726,7 @@ }, "peerDependencies": { "debug": "*", - "hadron-ipc": "^1.2.1", + "hadron-ipc": "*", "prop-types": "^15.5.8", "react": "^16.8.0", "react-bootstrap": "*", @@ -57726,7 +57798,6 @@ "debug": "^3.0.1", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.10.0", "enzyme": "^3.7.0", "enzyme-adapter-react-16": "^1.6.0", "eslint": "^7.25.0", @@ -57799,8 +57870,8 @@ }, "peerDependencies": { "debug": "*", - "hadron-react-buttons": "^4.1.1", - "hadron-react-components": "^4.1.1", + "hadron-react-buttons": "*", + "hadron-react-components": "*", "prop-types": "^15.5.8", "react": "^16.8.0", "react-bootstrap": "^0.32.1", @@ -58045,7 +58116,6 @@ "debug": "^4.1.1", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.8.6", "enzyme": "^3.10.0", "enzyme-adapter-react-16": "^1.14.0", "eslint": "^7.25.0", @@ -58116,8 +58186,8 @@ "xvfb-maybe": "^0.2.1" }, "peerDependencies": { - "hadron-react-buttons": "^4.1.1", - "mongodb-ace-theme": "^0.1.1", + "hadron-react-buttons": "*", + "mongodb-ace-theme": "*", "prop-types": "^15.5.8", "react": "^16.8.0", "react-ace": "^6.1.1", @@ -58232,7 +58302,6 @@ "debug": "^4.1.1", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.10.0", "enzyme": "^3.7.0", "enzyme-adapter-react-16": "^1.15.2", "eslint": "^7.25.0", @@ -58263,7 +58332,7 @@ "less-loader": "^5.0.0", "mocha": "^7.0.1", "mocha-webpack": "^2.0.0-beta.0", - "mongodb": "^3.5.2", + "mongodb": "4.0.0-beta.5", "mongodb-connection-model": "^20.2.0", "mongodb-data-service": "^20.2.1", "mongodb-extended-json": "^1.11.0", @@ -58303,11 +58372,11 @@ }, "peerDependencies": { "@hot-loader/react-dom": "^16.8.2", - "@mongodb-js/compass-deployment-awareness": "^10.2.1", + "@mongodb-js/compass-deployment-awareness": "*", "debug": "^4.1.1", - "hadron-react-buttons": "^4.1.1", - "hadron-react-components": "^4.1.1", - "mongodb-index-model": "^2.7.1", + "hadron-react-buttons": "*", + "hadron-react-components": "*", + "mongodb-index-model": "*", "prop-types": "^15.5.8", "react": "^16.8.0", "react-dom": "^16.8.0", @@ -58318,6 +58387,34 @@ "redux-thunk": "^2.2.0" } }, + "packages/compass-indexes/node_modules/bson": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.4.0.tgz", + "integrity": "sha512-uX9Zqzv2DpFXJgQOWKD8nbf0dTQV57WM8eiXDXVWeJYgiu/zIRz61OGLJKwbfSEEjZJ+AgS+7TUT7Y8EloTaqQ==", + "dev": true, + "dependencies": { + "buffer": "^5.6.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "packages/compass-indexes/node_modules/mongodb": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.0.0-beta.5.tgz", + "integrity": "sha512-x2gau71J5+b8kk5jyyIO1L0KDPnojySZWf6FN2Z/T+V0e85DGCpPj3O0BieQ7vjES5NO1pQpXpo29YWREL2CZA==", + "dev": true, + "dependencies": { + "bson": "^4.4.0", + "denque": "^1.5.0" + }, + "engines": { + "node": ">=10" + }, + "optionalDependencies": { + "saslprep": "^1.0.0" + } + }, "packages/compass-indexes/node_modules/numeral": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", @@ -58426,7 +58523,7 @@ "xvfb-maybe": "^0.2.1" }, "peerDependencies": { - "hadron-react-components": "^4.1.1", + "hadron-react-components": "*", "react": "^16.8.0", "react-dom": "^16.8.0", "react-tooltip": "^3.2.6" @@ -59418,8 +59515,8 @@ }, "peerDependencies": { "debug": "*", - "hadron-ipc": "^1.2.1", - "mongodb-js-metrics": "^6.1.1", + "hadron-ipc": "*", + "mongodb-js-metrics": "*", "mongodb-schema": "^8.2.3", "redux": "^3.7.2" } @@ -59601,7 +59698,7 @@ "webpack-node-externals": "^3.0.0" }, "peerDependencies": { - "hadron-react-components": "^4.1.1", + "hadron-react-components": "*", "prop-types": "^15.5.8", "react": "^16.8.0", "react-dom": "^16.8.0", @@ -66084,10 +66181,10 @@ }, "peerDependencies": { "debug": "*", - "hadron-react-components": "^4.1.1", + "hadron-react-components": "*", "mongodb-ace-autocompleter": "*", - "mongodb-ace-mode": "^0.5.1", - "mongodb-ace-theme-query": "^0.1.1", + "mongodb-ace-mode": "*", + "mongodb-ace-theme-query": "*", "mongodb-query-parser": "*", "prop-types": "^15.7.2", "react": "^16.8.0", @@ -66227,7 +66324,7 @@ }, "peerDependencies": { "debug": "*", - "hadron-react-components": "^4.1.1", + "hadron-react-components": "*", "mongodb-query-parser": "*", "prop-types": "^15.5.8", "react": "^16.8.0", @@ -66236,7 +66333,7 @@ "react-tooltip": "^3.2.6", "reflux": "^0.4.1", "reflux-state-mixin": "github:mongodb-js/reflux-state-mixin", - "storage-mixin": "^3.4.1" + "storage-mixin": "*" } }, "packages/compass-query-history/node_modules/commander": { @@ -66435,7 +66532,6 @@ "debug": "^4.3.1", "depcheck": "^1.3.1", "electron": "^6.1.12", - "electron-rebuild": "^1.10.0", "enzyme": "^3.7.0", "enzyme-adapter-react-16": "^1.6.0", "eslint": "^7.17.0", @@ -66470,7 +66566,7 @@ "lodash": "^4.17.21", "mocha": "^5.2.0", "mocha-webpack": "^2.0.0-beta.0", - "mongodb": "^3.6.3", + "mongodb": "4.0.0-beta.5", "mongodb-ace-autocompleter": "^0.6.0", "mongodb-ace-mode": "^1.1.0", "mongodb-ace-theme-query": "^1.1.0", @@ -66509,14 +66605,14 @@ "xvfb-maybe": "^0.2.1" }, "peerDependencies": { - "@mongodb-js/compass-query-bar": "^6.5.1", - "@mongodb-js/compass-status": "^4.2.1", + "@mongodb-js/compass-query-bar": "*", + "@mongodb-js/compass-status": "*", "bson": "4.1.0", "d3": "3.5.17", "debug": "^3.0.1", - "hadron-ipc": "^1.2.1", - "hadron-react-buttons": "^4.1.1", - "hadron-react-components": "^4.1.1", + "hadron-ipc": "*", + "hadron-react-buttons": "*", + "hadron-react-components": "*", "jquery": "^2.1.4", "mongodb-ns": "^2.2.0", "prop-types": "^15.5.8", @@ -66566,7 +66662,6 @@ "debug": "^4.1.0", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.10.1", "enzyme": "^3.7.0", "enzyme-adapter-react-16": "^1.6.0", "eslint": "^7.25.0", @@ -66631,15 +66726,15 @@ "webpack-node-externals": "^3.0.0" }, "peerDependencies": { - "@mongodb-js/compass-crud": "^11.3.1", + "@mongodb-js/compass-crud": "*", "bson": "*", - "hadron-react-buttons": "^4.1.1", - "hadron-react-components": "^4.1.1", + "hadron-react-buttons": "*", + "hadron-react-components": "*", "mongodb-ace-autocompleter": "*", - "mongodb-ace-mode": "^0.5.1", - "mongodb-ace-theme": "^0.1.1", + "mongodb-ace-mode": "*", + "mongodb-ace-theme": "*", "mongodb-extended-json": "*", - "mongodb-language-model": "^1.7.1", + "mongodb-language-model": "*", "mongodb-query-parser": "*", "prop-types": "^15.5.8", "react": "^16.6.0", @@ -67093,6 +67188,22 @@ "node": "*" } }, + "packages/compass-schema/node_modules/mongodb": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.0.0-beta.5.tgz", + "integrity": "sha512-x2gau71J5+b8kk5jyyIO1L0KDPnojySZWf6FN2Z/T+V0e85DGCpPj3O0BieQ7vjES5NO1pQpXpo29YWREL2CZA==", + "dev": true, + "dependencies": { + "bson": "^4.4.0", + "denque": "^1.5.0" + }, + "engines": { + "node": ">=10" + }, + "optionalDependencies": { + "saslprep": "^1.0.0" + } + }, "packages/compass-schema/node_modules/mongodb-query-util": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/mongodb-query-util/-/mongodb-query-util-0.0.3.tgz", @@ -67110,6 +67221,18 @@ "lodash.uniq": "^4.5.0" } }, + "packages/compass-schema/node_modules/mongodb/node_modules/bson": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.4.0.tgz", + "integrity": "sha512-uX9Zqzv2DpFXJgQOWKD8nbf0dTQV57WM8eiXDXVWeJYgiu/zIRz61OGLJKwbfSEEjZJ+AgS+7TUT7Y8EloTaqQ==", + "dev": true, + "dependencies": { + "buffer": "^5.6.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "packages/compass-schema/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -68819,7 +68942,7 @@ "webpack-node-externals": "^3.0.0" }, "peerDependencies": { - "hadron-react-components": "^4.1.1", + "hadron-react-components": "*", "prop-types": "^15.5.8", "react": "^16.8.0", "react-dom": "^16.8.0", @@ -73808,8 +73931,8 @@ "xvfb-maybe": "^0.2.1" }, "peerDependencies": { - "hadron-react-buttons": "^4.1.1", - "hadron-react-components": "^4.1.1", + "hadron-react-buttons": "*", + "hadron-react-components": "*", "react": "^16.8.0", "react-dom": "^16.8.0" } @@ -75073,7 +75196,7 @@ "mini-css-extract-plugin": "^0.8.0", "mocha": "^5.2.0", "mocha-webpack": "^2.0.0-beta.0", - "mongodb": "^3.6.3", + "mongodb": "4.0.0-beta.5", "mongodb-connection-string-url": "^1.0.0", "mongodb-reflux-store": "^0.0.1", "node-loader": "^0.6.0", @@ -75111,8 +75234,8 @@ "node": ">=12.4.0" }, "peerDependencies": { - "hadron-ipc": "^1.2.1", - "hadron-react-components": "^4.1.1", + "hadron-ipc": "*", + "hadron-react-components": "*", "prop-types": "^15.7.2", "react": "^16.8.0", "react-ace": "^6.6.0", @@ -75140,6 +75263,18 @@ "lodash": "^4.17.15" } }, + "packages/compass-shell/node_modules/bson": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.4.0.tgz", + "integrity": "sha512-uX9Zqzv2DpFXJgQOWKD8nbf0dTQV57WM8eiXDXVWeJYgiu/zIRz61OGLJKwbfSEEjZJ+AgS+7TUT7Y8EloTaqQ==", + "dev": true, + "dependencies": { + "buffer": "^5.6.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "packages/compass-shell/node_modules/chai-enzyme": { "version": "1.0.0-beta.0", "resolved": "https://registry.npmjs.org/chai-enzyme/-/chai-enzyme-1.0.0-beta.0.tgz", @@ -75394,6 +75529,22 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, + "packages/compass-shell/node_modules/mongodb": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.0.0-beta.5.tgz", + "integrity": "sha512-x2gau71J5+b8kk5jyyIO1L0KDPnojySZWf6FN2Z/T+V0e85DGCpPj3O0BieQ7vjES5NO1pQpXpo29YWREL2CZA==", + "dev": true, + "dependencies": { + "bson": "^4.4.0", + "denque": "^1.5.0" + }, + "engines": { + "node": ">=10" + }, + "optionalDependencies": { + "saslprep": "^1.0.0" + } + }, "packages/compass-shell/node_modules/nise": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/nise/-/nise-1.5.3.tgz", @@ -77100,7 +77251,6 @@ "debug": "^4.1.1", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.10.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.2", "eslint": "^7.25.0", @@ -77174,7 +77324,7 @@ "xvfb-maybe": "^0.2.1" }, "peerDependencies": { - "@mongodb-js/compass-connect": "^6.3.1", + "@mongodb-js/compass-connect": "*", "debug": "*", "prop-types": "^15.5.8", "react": "^16.8.0", @@ -77283,7 +77433,7 @@ "webpack-node-externals": "^3.0.0" }, "peerDependencies": { - "hadron-react-components": "^4.1.1", + "hadron-react-components": "*", "prop-types": "^15.5.8", "react": "^16.8.0", "react-dom": "^16.8.0", @@ -82280,7 +82430,7 @@ "webpack-node-externals": "^3.0.0" }, "peerDependencies": { - "hadron-react-components": "^4.1.1", + "hadron-react-components": "*", "prop-types": "^15.5.8", "react": "^16.8.0", "react-dom": "^16.8.0", @@ -88785,6 +88935,17 @@ "node": ">=8" } }, + "packages/compass/node_modules/bson": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.4.0.tgz", + "integrity": "sha512-uX9Zqzv2DpFXJgQOWKD8nbf0dTQV57WM8eiXDXVWeJYgiu/zIRz61OGLJKwbfSEEjZJ+AgS+7TUT7Y8EloTaqQ==", + "dependencies": { + "buffer": "^5.6.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "packages/compass/node_modules/cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -89296,6 +89457,21 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, + "packages/compass/node_modules/mongodb": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.0.0-beta.5.tgz", + "integrity": "sha512-x2gau71J5+b8kk5jyyIO1L0KDPnojySZWf6FN2Z/T+V0e85DGCpPj3O0BieQ7vjES5NO1pQpXpo29YWREL2CZA==", + "dependencies": { + "bson": "^4.4.0", + "denque": "^1.5.0" + }, + "engines": { + "node": ">=10" + }, + "optionalDependencies": { + "saslprep": "^1.0.0" + } + }, "packages/compass/node_modules/ms": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.3.tgz", @@ -89438,7 +89614,7 @@ "async": "^3.1.0", "debug": "^4.1.1", "lodash": "^4.17.15", - "mongodb": "^3.6.3", + "mongodb3": "npm:mongodb@^3.6.3", "raf": "^3.4.1", "ssh2": "^0.8.7", "storage-mixin": "^4.2.0" @@ -89452,10 +89628,14 @@ "eslint-config-mongodb-js": "^5.0.3", "mocha": "^8.0.1", "mock-require": "^3.0.3", + "mongodb": "4.0.0-beta.5", "mongodb-runner": "^4.8.1", "proxyquire": "^2.1.0", "sinon": "^9.0.2", "uuid": "^8.2.0" + }, + "peerDependencies": { + "mongodb": "4.x" } }, "packages/connection-model/node_modules/anymatch": { @@ -89486,6 +89666,18 @@ "node": ">=8" } }, + "packages/connection-model/node_modules/bson": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.4.0.tgz", + "integrity": "sha512-uX9Zqzv2DpFXJgQOWKD8nbf0dTQV57WM8eiXDXVWeJYgiu/zIRz61OGLJKwbfSEEjZJ+AgS+7TUT7Y8EloTaqQ==", + "dev": true, + "dependencies": { + "buffer": "^5.6.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "packages/connection-model/node_modules/camelcase": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", @@ -89685,6 +89877,22 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "packages/connection-model/node_modules/mongodb": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.0.0-beta.5.tgz", + "integrity": "sha512-x2gau71J5+b8kk5jyyIO1L0KDPnojySZWf6FN2Z/T+V0e85DGCpPj3O0BieQ7vjES5NO1pQpXpo29YWREL2CZA==", + "dev": true, + "dependencies": { + "bson": "^4.4.0", + "denque": "^1.5.0" + }, + "engines": { + "node": ">=10" + }, + "optionalDependencies": { + "saslprep": "^1.0.0" + } + }, "packages/connection-model/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -89812,7 +90020,7 @@ "eslint-plugin-mocha": "^8.0.0", "mocha": "^8.2.1", "mock-require": "^3.0.3", - "mongodb": "^3.6.3", + "mongodb": "4.0.0-beta.5", "mongodb-connection-model": "^20.2.0", "mongodb-runner": "^4.8.0", "sinon": "^9.2.3", @@ -89822,8 +90030,8 @@ "node": ">=12" }, "peerDependencies": { - "mongodb": "3.x", - "mongodb-connection-model": "^20.2.0" + "mongodb": "4.x", + "mongodb-connection-model": "*" } }, "packages/data-service/node_modules/anymatch": { @@ -90068,6 +90276,22 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "packages/data-service/node_modules/mongodb": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.0.0-beta.5.tgz", + "integrity": "sha512-x2gau71J5+b8kk5jyyIO1L0KDPnojySZWf6FN2Z/T+V0e85DGCpPj3O0BieQ7vjES5NO1pQpXpo29YWREL2CZA==", + "dev": true, + "dependencies": { + "bson": "^4.4.0", + "denque": "^1.5.0" + }, + "engines": { + "node": ">=10" + }, + "optionalDependencies": { + "saslprep": "^1.0.0" + } + }, "packages/data-service/node_modules/mongodb-js-errors": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/mongodb-js-errors/-/mongodb-js-errors-0.5.0.tgz", @@ -90077,6 +90301,18 @@ "debug": "^4.1.1" } }, + "packages/data-service/node_modules/mongodb/node_modules/bson": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.4.0.tgz", + "integrity": "sha512-uX9Zqzv2DpFXJgQOWKD8nbf0dTQV57WM8eiXDXVWeJYgiu/zIRz61OGLJKwbfSEEjZJ+AgS+7TUT7Y8EloTaqQ==", + "dev": true, + "dependencies": { + "buffer": "^5.6.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "packages/data-service/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -91036,7 +91272,6 @@ "debug": "^4.1.1", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.10.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.2", "eslint": "^7.25.0", @@ -91067,7 +91302,7 @@ "less-loader": "^5.0.0", "mocha": "^7.0.1", "mocha-webpack": "^2.0.0-beta.0", - "mongodb": "^3.6.3", + "mongodb": "4.0.0-beta.5", "mongodb-collection-model": "^4.2.1", "mongodb-connection-model": "^20.2.0", "mongodb-data-service": "^20.2.1", @@ -91107,9 +91342,9 @@ }, "peerDependencies": { "debug": "*", - "hadron-ipc": "^1.2.1", - "hadron-react-buttons": "^4.1.1", - "hadron-react-components": "^4.1.1", + "hadron-ipc": "*", + "hadron-react-buttons": "*", + "hadron-react-components": "*", "numeral": "*", "prop-types": "^15.7.2", "react": "^16.8.0", @@ -91174,6 +91409,18 @@ "@leafygreen-ui/leafygreen-provider": "^2.1.2" } }, + "packages/databases-collections/node_modules/bson": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.4.0.tgz", + "integrity": "sha512-uX9Zqzv2DpFXJgQOWKD8nbf0dTQV57WM8eiXDXVWeJYgiu/zIRz61OGLJKwbfSEEjZJ+AgS+7TUT7Y8EloTaqQ==", + "dev": true, + "dependencies": { + "buffer": "^5.6.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "packages/databases-collections/node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -91183,6 +91430,22 @@ "node": ">=0.3.1" } }, + "packages/databases-collections/node_modules/mongodb": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.0.0-beta.5.tgz", + "integrity": "sha512-x2gau71J5+b8kk5jyyIO1L0KDPnojySZWf6FN2Z/T+V0e85DGCpPj3O0BieQ7vjES5NO1pQpXpo29YWREL2CZA==", + "dev": true, + "dependencies": { + "bson": "^4.4.0", + "denque": "^1.5.0" + }, + "engines": { + "node": ">=10" + }, + "optionalDependencies": { + "saslprep": "^1.0.0" + } + }, "packages/databases-collections/node_modules/nise": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/nise/-/nise-4.1.0.tgz", @@ -93044,9 +93307,9 @@ }, "peerDependencies": { "babel-register": "^6.26.0", - "hadron-app-registry": "^7.3.1", + "hadron-app-registry": "*", "less": "*", - "mongodb-data-service": "^19.3.1", + "mongodb-data-service": "*", "prop-types": "^15.7.0", "react": "^16.8.0", "react-dom": "^16.8.0" @@ -95618,7 +95881,7 @@ "ampersand-rest-collection": "^6.0.0", "async": "^3.2.0", "lodash": "^4.17.15", - "mongodb": "^3.5.4", + "mongodb": "4.0.0-beta.5", "mongodb-js-errors": "^0.5.0", "mongodb-ns": "^2.2.0" }, @@ -95670,6 +95933,17 @@ "hoek": "6.x.x" } }, + "packages/index-model/node_modules/bson": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.4.0.tgz", + "integrity": "sha512-uX9Zqzv2DpFXJgQOWKD8nbf0dTQV57WM8eiXDXVWeJYgiu/zIRz61OGLJKwbfSEEjZJ+AgS+7TUT7Y8EloTaqQ==", + "dependencies": { + "buffer": "^5.6.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "packages/index-model/node_modules/hoek": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.3.tgz", @@ -95755,6 +96029,21 @@ "lodash.isfunction": "^3.0.0" } }, + "packages/index-model/node_modules/mongodb": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.0.0-beta.5.tgz", + "integrity": "sha512-x2gau71J5+b8kk5jyyIO1L0KDPnojySZWf6FN2Z/T+V0e85DGCpPj3O0BieQ7vjES5NO1pQpXpo29YWREL2CZA==", + "dependencies": { + "bson": "^4.4.0", + "denque": "^1.5.0" + }, + "engines": { + "node": ">=10" + }, + "optionalDependencies": { + "saslprep": "^1.0.0" + } + }, "packages/index-model/node_modules/mongodb-js-errors": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/mongodb-js-errors/-/mongodb-js-errors-0.5.0.tgz", @@ -95794,7 +96083,7 @@ "mocha": "^6.2.2" }, "peerDependencies": { - "mongodb-data-service": "^19.3.1" + "mongodb-data-service": "*" } }, "packages/instance-model/node_modules/ampersand-collection-filterable": { @@ -100031,7 +100320,6 @@ "depcheck": "^1.4.0", "electron": "^6.1.12", "electron-mocha": "^8.1.2", - "electron-rebuild": "^1.8.8", "eslint": "^7.25.0", "eslint-config-mongodb-js": "^5.0.3", "mocha": "^7.0.0", @@ -103198,7 +103486,6 @@ "decomment": "^0.9.2", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.10.0", "enzyme": "^3.9.0", "enzyme-adapter-react-16": "^1.11.0", "eslint": "^7.25.0", @@ -107434,7 +107721,6 @@ "d3-timer": "1.0.7", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.10.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.2", "eslint": "^7.25.0", @@ -107693,7 +107979,6 @@ "debug": "^4.1.1", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.10.0", "enzyme": "^3.7.0", "enzyme-adapter-react-16": "^1.6.0", "eslint": "^7.25.0", @@ -107889,7 +108174,6 @@ "debug": "^4.1.0", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.8.8", "enzyme": "^3.7.0", "enzyme-adapter-react-16": "^1.6.0", "eslint": "^7.25.0", @@ -108013,7 +108297,6 @@ "debug": "^4.1.1", "depcheck": "^1.3.1", "electron": "^6.1.12", - "electron-rebuild": "^1.8.4", "enzyme": "^3.7.0", "enzyme-adapter-react-16": "^1.6.0", "eslint": "^7.19.0", @@ -108434,7 +108717,6 @@ "debug": "^4.1.1", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.10.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.2", "eslint": "^7.25.0", @@ -108472,7 +108754,7 @@ "lodash.zipobject": "^4.1.3", "mocha": "^7.0.1", "mocha-webpack": "^2.0.0-beta.0", - "mongodb": "^3.6.3", + "mongodb": "4.0.0-beta.5", "mongodb-collection-model": "^4.2.1", "mongodb-connection-model": "^20.2.0", "mongodb-data-service": "^20.2.1", @@ -108557,12 +108839,32 @@ "@leafygreen-ui/tokens": "^0.5.2" } }, + "bson": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.4.0.tgz", + "integrity": "sha512-uX9Zqzv2DpFXJgQOWKD8nbf0dTQV57WM8eiXDXVWeJYgiu/zIRz61OGLJKwbfSEEjZJ+AgS+7TUT7Y8EloTaqQ==", + "dev": true, + "requires": { + "buffer": "^5.6.0" + } + }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, + "mongodb": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.0.0-beta.5.tgz", + "integrity": "sha512-x2gau71J5+b8kk5jyyIO1L0KDPnojySZWf6FN2Z/T+V0e85DGCpPj3O0BieQ7vjES5NO1pQpXpo29YWREL2CZA==", + "dev": true, + "requires": { + "bson": "^4.4.0", + "denque": "^1.5.0", + "saslprep": "^1.0.0" + } + }, "nise": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/nise/-/nise-4.1.0.tgz", @@ -108625,7 +108927,6 @@ "css-loader": "^4.3.0", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.10.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.2", "eslint": "^7.25.0", @@ -108656,7 +108957,6 @@ "less-loader": "^5.0.0", "mocha": "^7.0.1", "mocha-webpack": "^2.0.0-beta.0", - "mongodb": "^3.2.2", "mongodb-connection-model": "^20.2.0", "mongodb-data-service": "^20.2.1", "mongodb-js-metrics": "^7.2.0", @@ -108771,7 +109071,6 @@ "debug": "^4.1.1", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.8.4", "enzyme": "^3.7.0", "enzyme-adapter-react-16": "^1.10.0", "eslint": "^7.25.0", @@ -108917,7 +109216,6 @@ "debug": "^3.2.6", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.8.6", "enzyme": "^3.10.0", "enzyme-adapter-react-16": "^1.14.0", "eslint": "^7.25.0", @@ -111288,7 +111586,6 @@ "debug": "^3.0.1", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.10.0", "enzyme": "^3.7.0", "enzyme-adapter-react-16": "^1.6.0", "eslint": "^7.25.0", @@ -111539,7 +111836,6 @@ "debug": "^4.1.1", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.8.6", "enzyme": "^3.10.0", "enzyme-adapter-react-16": "^1.14.0", "eslint": "^7.25.0", @@ -111701,7 +111997,6 @@ "debug": "^4.1.1", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.10.0", "enzyme": "^3.7.0", "enzyme-adapter-react-16": "^1.15.2", "eslint": "^7.25.0", @@ -111742,7 +112037,7 @@ "lodash.zipobject": "^4.1.3", "mocha": "^7.0.1", "mocha-webpack": "^2.0.0-beta.0", - "mongodb": "^3.5.2", + "mongodb": "4.0.0-beta.5", "mongodb-connection-model": "^20.2.0", "mongodb-data-service": "^20.2.1", "mongodb-extended-json": "^1.11.0", @@ -111784,6 +112079,26 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { + "bson": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.4.0.tgz", + "integrity": "sha512-uX9Zqzv2DpFXJgQOWKD8nbf0dTQV57WM8eiXDXVWeJYgiu/zIRz61OGLJKwbfSEEjZJ+AgS+7TUT7Y8EloTaqQ==", + "dev": true, + "requires": { + "buffer": "^5.6.0" + } + }, + "mongodb": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.0.0-beta.5.tgz", + "integrity": "sha512-x2gau71J5+b8kk5jyyIO1L0KDPnojySZWf6FN2Z/T+V0e85DGCpPj3O0BieQ7vjES5NO1pQpXpo29YWREL2CZA==", + "dev": true, + "requires": { + "bson": "^4.4.0", + "denque": "^1.5.0", + "saslprep": "^1.0.0" + } + }, "numeral": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", @@ -116850,7 +117165,6 @@ "debug": "^4.3.1", "depcheck": "^1.3.1", "electron": "^6.1.12", - "electron-rebuild": "^1.10.0", "enzyme": "^3.7.0", "enzyme-adapter-react-16": "^1.6.0", "eslint": "^7.17.0", @@ -116910,7 +117224,7 @@ "mocha": "^5.2.0", "mocha-webpack": "^2.0.0-beta.0", "moment": "^2.27.0", - "mongodb": "^3.6.3", + "mongodb": "4.0.0-beta.5", "mongodb-ace-autocompleter": "^0.6.0", "mongodb-ace-mode": "^1.1.0", "mongodb-ace-theme-query": "^1.1.0", @@ -117207,6 +117521,28 @@ } } }, + "mongodb": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.0.0-beta.5.tgz", + "integrity": "sha512-x2gau71J5+b8kk5jyyIO1L0KDPnojySZWf6FN2Z/T+V0e85DGCpPj3O0BieQ7vjES5NO1pQpXpo29YWREL2CZA==", + "dev": true, + "requires": { + "bson": "^4.4.0", + "denque": "^1.5.0", + "saslprep": "^1.0.0" + }, + "dependencies": { + "bson": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.4.0.tgz", + "integrity": "sha512-uX9Zqzv2DpFXJgQOWKD8nbf0dTQV57WM8eiXDXVWeJYgiu/zIRz61OGLJKwbfSEEjZJ+AgS+7TUT7Y8EloTaqQ==", + "dev": true, + "requires": { + "buffer": "^5.6.0" + } + } + } + }, "mongodb-query-util": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/mongodb-query-util/-/mongodb-query-util-0.0.3.tgz", @@ -118446,7 +118782,6 @@ "decomment": "^0.9.1", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.10.1", "enzyme": "^3.7.0", "enzyme-adapter-react-16": "^1.6.0", "eslint": "^7.25.0", @@ -123405,7 +123740,7 @@ "mini-css-extract-plugin": "^0.8.0", "mocha": "^5.2.0", "mocha-webpack": "^2.0.0-beta.0", - "mongodb": "^3.6.3", + "mongodb": "4.0.0-beta.5", "mongodb-connection-string-url": "^1.0.0", "mongodb-reflux-store": "^0.0.1", "node-loader": "^0.6.0", @@ -123461,6 +123796,15 @@ "lodash": "^4.17.15" } }, + "bson": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.4.0.tgz", + "integrity": "sha512-uX9Zqzv2DpFXJgQOWKD8nbf0dTQV57WM8eiXDXVWeJYgiu/zIRz61OGLJKwbfSEEjZJ+AgS+7TUT7Y8EloTaqQ==", + "dev": true, + "requires": { + "buffer": "^5.6.0" + } + }, "chai-enzyme": { "version": "1.0.0-beta.0", "resolved": "https://registry.npmjs.org/chai-enzyme/-/chai-enzyme-1.0.0-beta.0.tgz", @@ -123657,6 +124001,17 @@ } } }, + "mongodb": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.0.0-beta.5.tgz", + "integrity": "sha512-x2gau71J5+b8kk5jyyIO1L0KDPnojySZWf6FN2Z/T+V0e85DGCpPj3O0BieQ7vjES5NO1pQpXpo29YWREL2CZA==", + "dev": true, + "requires": { + "bson": "^4.4.0", + "denque": "^1.5.0", + "saslprep": "^1.0.0" + } + }, "nise": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/nise/-/nise-1.5.3.tgz", @@ -124910,7 +125265,6 @@ "debug": "^4.1.1", "depcheck": "^1.4.0", "electron": "^6.1.12", - "electron-rebuild": "^1.10.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.2", "eslint": "^7.25.0", @@ -163437,7 +163791,6 @@ "depcheck": "^1.4.0", "electron": "^6.1.12", "electron-mocha": "^8.2.0", - "electron-rebuild": "^1.8.8", "eslint": "^7.25.0", "eslint-config-mongodb-js": "^5.0.3", "lodash.clone": "^4.5.0", @@ -163695,7 +164048,7 @@ "mocha": "^8.3.2", "mock-require": "^3.0.3", "moment": "^2.10.6", - "mongodb": "^3.6.3", + "mongodb": "4.0.0-beta.5", "mongodb-ace-autocompleter": "^0.6.0", "mongodb-ace-mode": "^1.1.0", "mongodb-ace-theme": "^1.1.0", @@ -163877,6 +164230,14 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "bson": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.4.0.tgz", + "integrity": "sha512-uX9Zqzv2DpFXJgQOWKD8nbf0dTQV57WM8eiXDXVWeJYgiu/zIRz61OGLJKwbfSEEjZJ+AgS+7TUT7Y8EloTaqQ==", + "requires": { + "buffer": "^5.6.0" + } + }, "cacheable-lookup": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", @@ -164302,6 +164663,16 @@ } } }, + "mongodb": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.0.0-beta.5.tgz", + "integrity": "sha512-x2gau71J5+b8kk5jyyIO1L0KDPnojySZWf6FN2Z/T+V0e85DGCpPj3O0BieQ7vjES5NO1pQpXpo29YWREL2CZA==", + "requires": { + "bson": "^4.4.0", + "denque": "^1.5.0", + "saslprep": "^1.0.0" + } + }, "ms": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.3.tgz", @@ -164415,8 +164786,9 @@ "lodash": "^4.17.15", "mocha": "^8.0.1", "mock-require": "^3.0.3", - "mongodb": "^3.6.3", + "mongodb": "4.0.0-beta.5", "mongodb-runner": "^4.8.1", + "mongodb3": "npm:mongodb@^3.6.3", "proxyquire": "^2.1.0", "raf": "^3.4.1", "sinon": "^9.0.2", @@ -164447,6 +164819,15 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "bson": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.4.0.tgz", + "integrity": "sha512-uX9Zqzv2DpFXJgQOWKD8nbf0dTQV57WM8eiXDXVWeJYgiu/zIRz61OGLJKwbfSEEjZJ+AgS+7TUT7Y8EloTaqQ==", + "dev": true, + "requires": { + "buffer": "^5.6.0" + } + }, "camelcase": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", @@ -164584,6 +164965,17 @@ } } }, + "mongodb": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.0.0-beta.5.tgz", + "integrity": "sha512-x2gau71J5+b8kk5jyyIO1L0KDPnojySZWf6FN2Z/T+V0e85DGCpPj3O0BieQ7vjES5NO1pQpXpo29YWREL2CZA==", + "dev": true, + "requires": { + "bson": "^4.4.0", + "denque": "^1.5.0", + "saslprep": "^1.0.0" + } + }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -164712,7 +165104,7 @@ "lodash": "^4.17.20", "mocha": "^8.2.1", "mock-require": "^3.0.3", - "mongodb": "^3.6.3", + "mongodb": "4.0.0-beta.5", "mongodb-build-info": "^1.1.1", "mongodb-connection-model": "^20.2.0", "mongodb-index-model": "^3.1.0", @@ -164897,6 +165289,28 @@ } } }, + "mongodb": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.0.0-beta.5.tgz", + "integrity": "sha512-x2gau71J5+b8kk5jyyIO1L0KDPnojySZWf6FN2Z/T+V0e85DGCpPj3O0BieQ7vjES5NO1pQpXpo29YWREL2CZA==", + "dev": true, + "requires": { + "bson": "^4.4.0", + "denque": "^1.5.0", + "saslprep": "^1.0.0" + }, + "dependencies": { + "bson": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.4.0.tgz", + "integrity": "sha512-uX9Zqzv2DpFXJgQOWKD8nbf0dTQV57WM8eiXDXVWeJYgiu/zIRz61OGLJKwbfSEEjZJ+AgS+7TUT7Y8EloTaqQ==", + "dev": true, + "requires": { + "buffer": "^5.6.0" + } + } + } + }, "mongodb-js-errors": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/mongodb-js-errors/-/mongodb-js-errors-0.5.0.tgz", @@ -166730,7 +167144,7 @@ "eslint-config-mongodb-js": "^5.0.3", "lodash": "^4.17.15", "mocha": "^7.1.0", - "mongodb": "^3.5.4", + "mongodb": "4.0.0-beta.5", "mongodb-js-errors": "^0.5.0", "mongodb-ns": "^2.2.0", "mongodb-runner": "^4.8.0" @@ -166774,6 +167188,14 @@ "hoek": "6.x.x" } }, + "bson": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/bson/-/bson-4.4.0.tgz", + "integrity": "sha512-uX9Zqzv2DpFXJgQOWKD8nbf0dTQV57WM8eiXDXVWeJYgiu/zIRz61OGLJKwbfSEEjZJ+AgS+7TUT7Y8EloTaqQ==", + "requires": { + "buffer": "^5.6.0" + } + }, "hoek": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-6.1.3.tgz", @@ -166858,6 +167280,16 @@ "lodash.isfunction": "^3.0.0" } }, + "mongodb": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.0.0-beta.5.tgz", + "integrity": "sha512-x2gau71J5+b8kk5jyyIO1L0KDPnojySZWf6FN2Z/T+V0e85DGCpPj3O0BieQ7vjES5NO1pQpXpo29YWREL2CZA==", + "requires": { + "bson": "^4.4.0", + "denque": "^1.5.0", + "saslprep": "^1.0.0" + } + }, "mongodb-js-errors": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/mongodb-js-errors/-/mongodb-js-errors-0.5.0.tgz", @@ -168825,6 +169257,62 @@ } } }, + "mongodb3": { + "version": "npm:mongodb@3.6.9", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.9.tgz", + "integrity": "sha512-1nSCKgSunzn/CXwgOWgbPHUWOO5OfERcuOWISmqd610jn0s8BU9K4879iJVabqgpPPbA6hO7rG48eq+fGED3Mg==", + "requires": { + "bl": "^2.2.1", + "bson": "^1.1.4", + "denque": "^1.4.1", + "optional-require": "^1.0.3", + "safe-buffer": "^5.1.2", + "saslprep": "^1.0.0" + }, + "dependencies": { + "bl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", + "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "bson": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", + "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "moo": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.1.tgz", @@ -175638,7 +176126,6 @@ "depcheck": "^1.4.0", "electron": "^6.1.12", "electron-mocha": "^8.1.2", - "electron-rebuild": "^1.8.8", "eslint": "^7.25.0", "eslint-config-mongodb-js": "^5.0.3", "hadron-ipc": "^2.2.0", diff --git a/packages/compass-aggregations/src/modules/pipeline.js b/packages/compass-aggregations/src/modules/pipeline.js index 3843c9da446..38edc70f9bc 100644 --- a/packages/compass-aggregations/src/modules/pipeline.js +++ b/packages/compass-aggregations/src/modules/pipeline.js @@ -304,7 +304,7 @@ const toggleStageCollapse = (state, action) => { const updateStagePreview = (state, action) => { const newState = copyState(state); newState[action.index].previewDocuments = - action.error === null ? action.documents : []; + action.error === null || action.error === undefined ? action.documents : []; newState[action.index].error = action.error ? action.error.message : null; newState[action.index].isLoading = false; newState[action.index].isComplete = action.isComplete; diff --git a/packages/compass-deployment-awareness/.depcheckrc b/packages/compass-deployment-awareness/.depcheckrc index 270bb0e25e7..02405485979 100644 --- a/packages/compass-deployment-awareness/.depcheckrc +++ b/packages/compass-deployment-awareness/.depcheckrc @@ -12,5 +12,6 @@ ignores: [ "storage-mixin", "uuid", "webpack-bundle-analyzer", - "webpack-cli" + "webpack-cli", + "mongodb" ] diff --git a/packages/compass-deployment-awareness/package.json b/packages/compass-deployment-awareness/package.json index 0bdbaf3fed8..eca6882750b 100644 --- a/packages/compass-deployment-awareness/package.json +++ b/packages/compass-deployment-awareness/package.json @@ -31,7 +31,6 @@ "peerDependencies": { "hadron-react-buttons": "*", "hadron-react-components": "*", - "mongodb": "^3.5.3", "react": "^16.8.0", "react-dom": "^16.8.0" }, @@ -84,7 +83,6 @@ "less-loader": "^5.0.0", "mocha": "^7.0.1", "mocha-webpack": "^2.0.0-beta.0", - "mongodb": "^3.2.2", "mongodb-connection-model": "^20.2.0", "mongodb-data-service": "^20.2.1", "mongodb-js-metrics": "^7.2.0", diff --git a/packages/compass-deployment-awareness/src/models/topology-type.js b/packages/compass-deployment-awareness/src/models/topology-type.js index fca1dc64700..e4fd317d3c6 100644 --- a/packages/compass-deployment-awareness/src/models/topology-type.js +++ b/packages/compass-deployment-awareness/src/models/topology-type.js @@ -1,5 +1,3 @@ -import ReadPreference from 'mongodb/lib/core/topologies/read_preference.js'; - const SINGLE = 'Single'; const REPLICA_SET_NO_PRIMARY = 'ReplicaSetNoPrimary'; const REPLICA_SET_WITH_PRIMARY = 'ReplicaSetWithPrimary'; @@ -22,10 +20,10 @@ const TOPOLOGY_TYPES = [ * replica set no primary. */ const REPLICA_SET_NO_PRIMARY_READABLE = [ - ReadPreference.PRIMARY_PREFERRED, - ReadPreference.SECONDARY, - ReadPreference.SECONDARY_PREFERRED, - ReadPreference.NEAREST + 'primaryPreferred', + 'secondary', + 'secondaryPreferred', + 'nearest' ]; /** @@ -33,7 +31,7 @@ const REPLICA_SET_NO_PRIMARY_READABLE = [ * replica set with primary. */ const REPLICA_SET_WITH_PRIMARY_READABLE = - REPLICA_SET_NO_PRIMARY_READABLE.concat([ ReadPreference.PRIMARY ]); + REPLICA_SET_NO_PRIMARY_READABLE.concat([ 'primary' ]); /** * List of writable topology types. diff --git a/packages/compass-indexes/package.json b/packages/compass-indexes/package.json index c3cd135c833..f033c815159 100644 --- a/packages/compass-indexes/package.json +++ b/packages/compass-indexes/package.json @@ -92,7 +92,7 @@ "less-loader": "^5.0.0", "mocha": "^7.0.1", "mocha-webpack": "^2.0.0-beta.0", - "mongodb": "^3.5.2", + "mongodb": "4.0.0-beta.5", "mongodb-connection-model": "^20.2.0", "mongodb-data-service": "^20.2.1", "mongodb-extended-json": "^1.11.0", diff --git a/packages/compass-schema/package.json b/packages/compass-schema/package.json index e0946e0f53f..b19fd54ca87 100644 --- a/packages/compass-schema/package.json +++ b/packages/compass-schema/package.json @@ -98,7 +98,7 @@ "less-loader": "^4.0.5", "mocha": "^5.2.0", "mocha-webpack": "^2.0.0-beta.0", - "mongodb": "^3.6.3", + "mongodb": "4.0.0-beta.5", "mongodb-ace-autocompleter": "^0.6.0", "mongodb-ace-mode": "^1.1.0", "mongodb-ace-theme-query": "^1.1.0", diff --git a/packages/compass-shell/package.json b/packages/compass-shell/package.json index 4e587d02545..37cc52e3bf1 100644 --- a/packages/compass-shell/package.json +++ b/packages/compass-shell/package.json @@ -108,7 +108,7 @@ "mini-css-extract-plugin": "^0.8.0", "mocha": "^5.2.0", "mocha-webpack": "^2.0.0-beta.0", - "mongodb": "^3.6.3", + "mongodb": "4.0.0-beta.5", "mongodb-connection-string-url": "^1.0.0", "mongodb-reflux-store": "^0.0.1", "node-loader": "^0.6.0", diff --git a/packages/compass-shell/src/modules/adapt-driver-v36-connection-params.js b/packages/compass-shell/src/modules/adapt-driver-v36-connection-params.js index c839e8a75f0..31fb79ec09c 100644 --- a/packages/compass-shell/src/modules/adapt-driver-v36-connection-params.js +++ b/packages/compass-shell/src/modules/adapt-driver-v36-connection-params.js @@ -26,13 +26,9 @@ export function adaptDriverV36ConnectionParams( delete newDriverOptions.connectWithNoPrimary; delete newDriverOptions.useNewUrlParser; - // `true` is not a valid tls checkServerIdentity option that seems to break - // driver 4 - // - // TODO(NODE-3061): Remove when fixed on driver side - if (newDriverOptions.checkServerIdentity === true) { - delete newDriverOptions.checkServerIdentity; - } + // `checkServerIdentity` is properly handled as `tlsAllowInvalidHostnames` if passed as a boolean + newDriverOptions.tlsAllowInvalidHostnames = !newDriverOptions.checkServerIdentity; + delete newDriverOptions.checkServerIdentity; // driver 4 doesn't support certificates as buffers, so let's copy paths // back from model `driverOptions` diff --git a/packages/compass-shell/src/modules/adapt-driver-v36-connection-params.spec.js b/packages/compass-shell/src/modules/adapt-driver-v36-connection-params.spec.js index 12b144d5d03..70dbdaaab15 100644 --- a/packages/compass-shell/src/modules/adapt-driver-v36-connection-params.spec.js +++ b/packages/compass-shell/src/modules/adapt-driver-v36-connection-params.spec.js @@ -34,15 +34,15 @@ describe('adaptDriverV36ConnectionParams', () => { ).to.not.contain.key('useNewUrlParser'); }); - it('removes checkServerIdentity only if is explicitly set to true', () => { + it('converts checkServerIdentity to tlsAllowInvalidHostnames', () => { expect( adaptDriverV36ConnectionParams(LOCALHOST, { checkServerIdentity: true })[1] - ).to.not.contain.key('useNewUrlParser'); + ).to.not.contain.key('checkServerIdentity'); expect( adaptDriverV36ConnectionParams(LOCALHOST, { checkServerIdentity: false })[1] - .checkServerIdentity - ).to.equal(false); + .tlsAllowInvalidHostnames + ).to.equal(true); }); it('keeps other options', () => { diff --git a/packages/compass/package.json b/packages/compass/package.json index 444e55188f7..a557c304632 100644 --- a/packages/compass/package.json +++ b/packages/compass/package.json @@ -318,7 +318,7 @@ "make-fetch-happen": "^8.0.14", "marky": "^1.2.0", "moment": "^2.10.6", - "mongodb": "^3.6.3", + "mongodb": "4.0.0-beta.5", "mongodb-ace-autocompleter": "^0.6.0", "mongodb-ace-mode": "^1.1.0", "mongodb-ace-theme": "^1.1.0", diff --git a/packages/compass/src/app/migrations/legacy-connection.js b/packages/compass/src/app/migrations/legacy-connection.js index e3205b9689c..d237ddb5b12 100644 --- a/packages/compass/src/app/migrations/legacy-connection.js +++ b/packages/compass/src/app/migrations/legacy-connection.js @@ -317,7 +317,7 @@ var AUTHENTICATION_TO_FIELD_NAMES = { * >>> mongodb://arlo:w%40of@localhost:27017?slaveOk=true&authSource=admin * console.log(c.driver_options) * >>> { db: { readPreference: 'nearest' }, - * replSet: { connectWithNoPrimary: true } } + * replSet: { } } */ assign(props, { mongodb_username: { @@ -364,7 +364,7 @@ var MONGODB_NAMESPACE_DEFAULT = 'test'; * >>> mongodb://arlo%252Fdog%2540krb5.mongodb.parts:w%40%40f@localhost:27017/kerberos?slaveOk=true&gssapiServiceName=mongodb&authMechanism=GSSAPI * console.log(c.driver_options) * >>> { db: { readPreference: 'nearest' }, - * replSet: { connectWithNoPrimary: true } } + * replSet: { } } * * @enterprise * @see http://bit.ly/mongodb-node-driver-kerberos @@ -430,7 +430,7 @@ var KERBEROS_SERVICE_NAME_DEFAULT = 'mongodb'; * >>> mongodb://arlo:w%40of@localhost:27017/ldap?slaveOk=true&authMechanism=PLAIN * console.log(c.driver_options) * >>> { db: { readPreference: 'nearest' }, - * replSet: { connectWithNoPrimary: true } } + * replSet: { } } * * @enterprise * @see http://bit.ly/mongodb-node-driver-ldap @@ -470,7 +470,7 @@ assign(props, { * >>> mongodb://CN%253Dclient%252COU%253Darlo%252CO%253DMongoDB%252CL%253DPhiladelphia%252CST%253DPennsylvania%252CC%253DUS@localhost:27017?slaveOk=true&authMechanism=MONGODB-X509 * console.log(c.driver_options) * >>> { db: { readPreference: 'nearest' }, - * replSet: { connectWithNoPrimary: true } } + * replSet: { } } * * @see http://bit.ly/mongodb-node-driver-x509 * @see http://bit.ly/mongodb-x509 @@ -655,7 +655,6 @@ assign(props, { * `MongoClient.connect(model.driver_url, model.driver_options)`. */ var DRIVER_OPTIONS_DEFAULT = { - connectWithNoPrimary: true }; assign(derived, { diff --git a/packages/connection-model/README.md b/packages/connection-model/README.md index 15e94012fcc..ddfa9a6a91e 100644 --- a/packages/connection-model/README.md +++ b/packages/connection-model/README.md @@ -187,7 +187,7 @@ console.log(c.driverUrl) console.log(c.driverOptions) >>> { db: { readPreference: 'nearest' }, - replSet: { connectWithNoPrimary: true } + replSet: { } } ``` @@ -213,7 +213,7 @@ console.log(c.driverUrl) console.log(c.driverOptions) >>> { db: { readPreference: 'nearest' }, - replSet: { connectWithNoPrimary: true } + replSet: { } } ``` @@ -247,7 +247,7 @@ console.log(c.driverUrl) console.log(c.driverOptions) >>> { db: { readPreference: 'nearest' }, - replSet: { connectWithNoPrimary: true } + replSet: { } } ``` @@ -276,7 +276,7 @@ console.log(c.driverUrl) console.log(c.driverOptions) >>> { db: { readPreference: 'nearest' }, - replSet: { connectWithNoPrimary: true } + replSet: { } } ``` diff --git a/packages/connection-model/lib/connect.js b/packages/connection-model/lib/connect.js index e72ea4d563d..bb1fdc8d5c9 100644 --- a/packages/connection-model/lib/connect.js +++ b/packages/connection-model/lib/connect.js @@ -10,7 +10,7 @@ const { omit } = require('lodash'); const { MongoClient } = require('mongodb'); -const { parseConnectionString } = require('mongodb/lib/core'); +const { parseConnectionString } = require('mongodb3/lib/core'); const Connection = require('./extended-model'); const { default: SSHTunnel } = require('@mongodb-js/ssh-tunnel'); diff --git a/packages/connection-model/lib/model.js b/packages/connection-model/lib/model.js index c99322f152d..7c332a1b261 100644 --- a/packages/connection-model/lib/model.js +++ b/packages/connection-model/lib/model.js @@ -15,7 +15,7 @@ const { const AmpersandModel = require('ampersand-model'); const AmpersandCollection = require('ampersand-rest-collection'); const { ReadPreference } = require('mongodb'); -const { parseConnectionString } = require('mongodb/lib/core'); +const { parseConnectionString } = require('mongodb3/lib/core'); const dataTypes = require('./data-types'); const localPortGenerator = require('./local-port-generator'); @@ -46,7 +46,7 @@ const MONGODB_DATABASE_NAME_DEFAULT = 'admin'; const KERBEROS_SERVICE_NAME_DEFAULT = 'mongodb'; const SSL_DEFAULT = 'NONE'; const SSH_TUNNEL_DEFAULT = 'NONE'; -const DRIVER_OPTIONS_DEFAULT = { connectWithNoPrimary: true }; +const DRIVER_OPTIONS_DEFAULT = { }; /** * Mappings from the old connection model properties to the new one. @@ -197,7 +197,7 @@ assign(props, { * console.log(c.driverUrl) * >>> mongodb://arlo:w%40of@localhost:27017?slaveOk=true&authSource=admin * console.log(c.driverOptions) - * >>> { db: { readPreference: 'nearest' }, replSet: { connectWithNoPrimary: true } } + * >>> { db: { readPreference: 'nearest' }, replSet: { } } */ assign(props, { mongodbUsername: { type: 'string', default: undefined }, @@ -228,7 +228,7 @@ assign(props, { * console.log(c.driverUrl) * >>> mongodb://arlo%252Fdog%2540krb5.mongodb.parts@localhost:27017/kerberos?slaveOk=true&gssapiServiceName=mongodb&authMechanism=GSSAPI * console.log(c.driverOptions) - * >>> { db: { readPreference: 'nearest' }, replSet: { connectWithNoPrimary: true } } + * >>> { db: { readPreference: 'nearest' }, replSet: { } } * * @enterprise * @see http://bit.ly/mongodb-node-driver-kerberos @@ -270,7 +270,7 @@ assign(props, { * console.log(c.driverUrl) * >>> mongodb://arlo:w%40of@localhost:27017/ldap?slaveOk=true&authMechanism=PLAIN * console.log(c.driverOptions) - * >>> { db: { readPreference: 'nearest' }, replSet: { connectWithNoPrimary: true } } + * >>> { db: { readPreference: 'nearest' }, replSet: { } } * * @enterprise * @see http://bit.ly/mongodb-node-driver-ldap @@ -303,7 +303,7 @@ assign(props, { * console.log(c.driverUrl) * >>> mongodb://CN%253Dclient%252COU%253Darlo%252CO%253DMongoDB%252CL%253DPhiladelphia%252CST%253DPennsylvania%252CC%253DUS@localhost:27017?slaveOk=true&authMechanism=MONGODB-X509 * console.log(c.driverOptions) - * >>> { db: { readPreference: 'nearest' }, replSet: { connectWithNoPrimary: true } } + * >>> { db: { readPreference: 'nearest' }, replSet: { } } * * @see http://bit.ly/mongodb-node-driver-x509 * @see http://bit.ly/mongodb-x509 @@ -664,15 +664,15 @@ assign(derived, { } if (this.authStrategy === 'X509') { - opts.checkServerIdentity = false; + opts.tlsAllowInvalidHostnames = true; opts.sslValidate = false; } } else if (this.sslMethod === 'UNVALIDATED') { - assign(opts, { checkServerIdentity: false, sslValidate: false }); + assign(opts, { tlsAllowInvalidHostnames: true, sslValidate: false }); } else if (this.sslMethod === 'SYSTEMCA') { - assign(opts, { checkServerIdentity: true, sslValidate: true }); + assign(opts, { tlsAllowInvalidHostnames: false, sslValidate: true }); } else if (this.sslMethod === 'IFAVAILABLE') { - assign(opts, { checkServerIdentity: false, sslValidate: true }); + assign(opts, { tlsAllowInvalidHostnames: true, sslValidate: true }); } // Assign and overwrite all extra options provided by user. diff --git a/packages/connection-model/package.json b/packages/connection-model/package.json index d46ec58a9ba..8ff0658cf15 100644 --- a/packages/connection-model/package.json +++ b/packages/connection-model/package.json @@ -23,6 +23,9 @@ "test-ci": "npm run test", "posttest-ci": "node ../../scripts/killall-mongo.js" }, + "peerDependencies": { + "mongodb": "4.x" + }, "dependencies": { "@mongodb-js/ssh-tunnel": "^1.2.0", "ampersand-model": "^8.0.0", @@ -30,7 +33,7 @@ "async": "^3.1.0", "debug": "^4.1.1", "lodash": "^4.17.15", - "mongodb": "^3.6.3", + "mongodb3": "npm:mongodb@^3.6.3", "raf": "^3.4.1", "ssh2": "^0.8.7", "storage-mixin": "^4.2.0" @@ -43,6 +46,7 @@ "eslint": "^7.25.0", "eslint-config-mongodb-js": "^5.0.3", "mocha": "^8.0.1", + "mongodb": "4.0.0-beta.5", "mock-require": "^3.0.3", "mongodb-runner": "^4.8.1", "proxyquire": "^2.1.0", diff --git a/packages/connection-model/test/build-uri.test.js b/packages/connection-model/test/build-uri.test.js index 92bdc261148..0f1de198e16 100644 --- a/packages/connection-model/test/build-uri.test.js +++ b/packages/connection-model/test/build-uri.test.js @@ -87,10 +87,9 @@ describe('Connection model builder', () => { it('should include sslMethod equal UNVALIDATED', (done) => { const c = new Connection({ sslMethod: 'UNVALIDATED' }); const options = Object.assign({}, Connection.DRIVER_OPTIONS_DEFAULT, { - checkServerIdentity: false, + tlsAllowInvalidHostnames: true, sslValidate: false, - readPreference: 'primary', - connectWithNoPrimary: true + readPreference: 'primary' }); expect(c.driverUrl).to.be.equal( @@ -107,10 +106,9 @@ describe('Connection model builder', () => { it('should include sslMethod equal SYSTEMCA', (done) => { const c = new Connection({ sslMethod: 'SYSTEMCA' }); const options = Object.assign({}, Connection.DRIVER_OPTIONS_DEFAULT, { - checkServerIdentity: true, + tlsAllowInvalidHostnames: false, sslValidate: true, - readPreference: 'primary', - connectWithNoPrimary: true + readPreference: 'primary' }); expect(c.driverUrl).to.be.equal( @@ -127,10 +125,9 @@ describe('Connection model builder', () => { it('should include sslMethod equal IFAVAILABLE', (done) => { const c = new Connection({ sslMethod: 'IFAVAILABLE' }); const options = Object.assign({}, Connection.DRIVER_OPTIONS_DEFAULT, { - checkServerIdentity: false, + tlsAllowInvalidHostnames: true, sslValidate: true, - readPreference: 'primary', - connectWithNoPrimary: true + readPreference: 'primary' }); expect(c.driverUrl).to.be.equal( @@ -149,8 +146,7 @@ describe('Connection model builder', () => { const options = Object.assign({}, Connection.DRIVER_OPTIONS_DEFAULT, { sslCA: [sslFixture.ca], sslValidate: true, - readPreference: 'primary', - connectWithNoPrimary: true + readPreference: 'primary' }); expect(c.driverUrl).to.be.equal( @@ -177,10 +173,9 @@ describe('Connection model builder', () => { sslCA: [sslFixture.ca], sslCert: sslFixture.server, sslKey: sslFixture.server, - checkServerIdentity: false, + tlsAllowInvalidHostnames: true, sslValidate: false, - readPreference: 'primary', - connectWithNoPrimary: true + readPreference: 'primary' }); expect(c.driverUrl).to.be.equal( @@ -206,8 +201,7 @@ describe('Connection model builder', () => { sslCert: sslFixture.server, sslKey: sslFixture.server, sslValidate: true, - readPreference: 'primary', - connectWithNoPrimary: true + readPreference: 'primary' }); expect(c.driverUrl).to.be.equal( @@ -221,7 +215,6 @@ describe('Connection model builder', () => { sslCert: fs.readFileSync(sslFixture.server), sslKey: fs.readFileSync(sslFixture.server), sslValidate: true, - connectWithNoPrimary: true, readPreference: 'primary' }; /* eslint-enable no-sync */ @@ -249,7 +242,6 @@ describe('Connection model builder', () => { sslKey: sslFixture.server, sslPass: 'woof', sslValidate: true, - connectWithNoPrimary: true, readPreference: 'primary' }); @@ -917,8 +909,7 @@ describe('Connection model builder', () => { const c = new Connection({ appname: 'My App' }); expect(c.driverOptions).to.be.deep.equal({ - readPreference: 'primary', - connectWithNoPrimary: true + readPreference: 'primary' }); Connection.from(c.driverUrl, (error) => { @@ -990,7 +981,6 @@ describe('Connection model builder', () => { it('should use default driverOptions when there is no extra options', (done) => { const c = new Connection(); - expect(c.driverOptions).to.have.property('connectWithNoPrimary'); expect(c.driverOptions).to.have.property('readPreference'); expect(c.driverOptions).to.not.have.property('socketTimeoutMS'); diff --git a/packages/connection-model/test/connect.test.js b/packages/connection-model/test/connect.test.js index 62085bd15f1..21103407fb2 100644 --- a/packages/connection-model/test/connect.test.js +++ b/packages/connection-model/test/connect.test.js @@ -43,7 +43,6 @@ describe('connection model connector', () => { ); assert.deepStrictEqual(options, { - connectWithNoPrimary: true, // Driver brought this behaviour back in v3.6.3+ (but will remove in v4), we don't need to handle directConnection ourselves // See https://github.com/mongodb/node-mongodb-native/pull/2719 // directConnection: true, diff --git a/packages/data-service/lib/native-client.js b/packages/data-service/lib/native-client.js index 882bf78f6a2..e45667cd360 100644 --- a/packages/data-service/lib/native-client.js +++ b/packages/data-service/lib/native-client.js @@ -98,14 +98,14 @@ class NativeClient extends EventEmitter { this.isWritable = false; this.isMongos = false; - this._isConnected = false; + this._isConnecting = false; } isConnected() { - // This is better than just returning internal `_isConnected` as this + // This is better than just returning internal `_isConnecting` as this // actually shows when the client is available on the NativeClient instance // and connected - return !!(this.client && this.client.isConnected()); + return !!this.client; } /** @@ -117,7 +117,7 @@ class NativeClient extends EventEmitter { connect(done) { debug('connecting...'); - if (this._isConnected) { + if (this._isConnecting) { setImmediate(() => { done( new Error( @@ -131,14 +131,14 @@ class NativeClient extends EventEmitter { // Not really true at that point, we are doing it just so we don't allow // simultaneous syncronous calls to the connect method - this._isConnected = true; + this._isConnecting = true; connect( this.model, this.setupListeners.bind(this), (err, _client, tunnel, connectionOptions) => { if (err) { - this._isConnected = false; + this._isConnecting = false; return done(this._translateMessage(err)); } @@ -638,17 +638,18 @@ class NativeClient extends EventEmitter { * @return {(null|AggregationCursor)} */ aggregate(ns, pipeline, options, callback) { + if (typeof options === 'function') { + callback = options; + options = undefined; + } + const cursor = this._collection(ns).aggregate(pipeline, options); // async when a callback is provided if (isFunction(callback)) { - this._collection(ns).aggregate(pipeline, options, (error, result) => { - if (error) { - return callback(this._translateMessage(error)); - } - return callback(null, result); - }); + process.nextTick(callback, null, cursor); + return; } // otherwise return cursor - return this._collection(ns).aggregate(pipeline, options); + return cursor; } /** @@ -698,6 +699,9 @@ class NativeClient extends EventEmitter { * @param {Function} callback - The callback. */ findOneAndReplace(ns, filter, replacement, options, callback) { + if ('returnOriginal' in options) { + options.returnDocument = options.returnOriginal ? 'before' : 'after'; + } this._collection(ns).findOneAndReplace( filter, replacement, @@ -721,6 +725,9 @@ class NativeClient extends EventEmitter { * @param {Function} callback - The callback. */ findOneAndUpdate(ns, filter, update, options, callback) { + if ('returnOriginal' in options) { + options.returnDocument = options.returnOriginal ? 'before' : 'after'; + } this._collection(ns).findOneAndUpdate( filter, update, @@ -1313,7 +1320,7 @@ class NativeClient extends EventEmitter { this.tunnel = null; this.isWritable = false; this.isMongos = false; - this._isConnected = false; + this._isConnecting = false; } } diff --git a/packages/data-service/package.json b/packages/data-service/package.json index 3bd1aa1e8ef..de0922c0467 100644 --- a/packages/data-service/package.json +++ b/packages/data-service/package.json @@ -30,7 +30,7 @@ "check" ], "peerDependencies": { - "mongodb": "3.x", + "mongodb": "4.x", "mongodb-connection-model": "*" }, "dependencies": { @@ -53,7 +53,7 @@ "eslint-plugin-mocha": "^8.0.0", "mocha": "^8.2.1", "mock-require": "^3.0.3", - "mongodb": "^3.6.3", + "mongodb": "4.0.0-beta.5", "mongodb-connection-model": "^20.2.0", "mongodb-runner": "^4.8.0", "sinon": "^9.2.3", diff --git a/packages/data-service/test/data-service.test.js b/packages/data-service/test/data-service.test.js index ddb8260b34c..76773f5db71 100644 --- a/packages/data-service/test/data-service.test.js +++ b/packages/data-service/test/data-service.test.js @@ -801,16 +801,12 @@ describe('DataService', function() { expect(topology.servers.has('127.0.0.1:27018')).to.equal(true); expect(topology).to.deep.include({ - compatibilityError: null, compatible: true, heartbeatFrequencyMS: 10000, localThresholdMS: 15, logicalSessionTimeoutMinutes: 30, - maxElectionId: null, - maxSetVersion: null, stale: false, - type: 'Single', - setName: null + type: 'Single' }); }); diff --git a/packages/data-service/test/native-client.test.js b/packages/data-service/test/native-client.test.js index aa712358750..56d91c3eda9 100644 --- a/packages/data-service/test/native-client.test.js +++ b/packages/data-service/test/native-client.test.js @@ -31,7 +31,6 @@ function mockedConnectionModel(topologyDescription, connectionOptions) { url: 'mongodb://127.0.0.1:27018/data-service?readPreference=primary&ssl=false', options: { - connectWithNoPrimary: true, readPreference: 'primary', useNewUrlParser: true, useUnifiedTopology: true @@ -127,7 +126,6 @@ describe('NativeClient', function() { expect(mockedClient.connectionOptions).to.deep.equal({ url: 'mongodb://127.0.0.1:27018/data-service?readPreference=primary&ssl=false', options: { - connectWithNoPrimary: true, readPreference: 'primary', useNewUrlParser: true, useUnifiedTopology: true @@ -344,22 +342,6 @@ describe('NativeClient', function() { done(); }); }); - it('errors when given a bad option', function(done) { - try { - client.aggregate('data-service.test', - [{$project: { - author: 1, - tags: 1 - }}, - { $unwind: '$tags'}, - { $group: {_id: {tags: '$tags'}, authors: {$addToSet: '$author'}}} - ], - { cursor: 1}); - } catch (err) { - expect(err.message).to.equal('cursor options must be an object'); - done(); - } - }); }); }); diff --git a/packages/databases-collections/package.json b/packages/databases-collections/package.json index 5edb4613c5f..1212971537c 100644 --- a/packages/databases-collections/package.json +++ b/packages/databases-collections/package.json @@ -91,7 +91,7 @@ "less-loader": "^5.0.0", "mocha": "^7.0.1", "mocha-webpack": "^2.0.0-beta.0", - "mongodb": "^3.6.3", + "mongodb": "4.0.0-beta.5", "mongodb-collection-model": "^4.2.1", "mongodb-connection-model": "^20.2.0", "mongodb-data-service": "^20.2.1", diff --git a/packages/index-model/package.json b/packages/index-model/package.json index ad82e338621..117967a6f8e 100644 --- a/packages/index-model/package.json +++ b/packages/index-model/package.json @@ -28,7 +28,7 @@ "ampersand-rest-collection": "^6.0.0", "async": "^3.2.0", "lodash": "^4.17.15", - "mongodb": "^3.5.4", + "mongodb": "4.0.0-beta.5", "mongodb-js-errors": "^0.5.0", "mongodb-ns": "^2.2.0" },