diff --git a/.depcheckrc b/.depcheckrc index 072cfc17c..0e97bb13c 100644 --- a/.depcheckrc +++ b/.depcheckrc @@ -1,11 +1,11 @@ ignores: - "@babel/core" - - "@leafygreen-ui/palette" - "@mongodb-js/prettier-config-compass" - "@types/jest" - "buffer" - "eslint-config-mongodb-js" - "keytar" + - "electron" - "mocha-junit-reporter" - "mocha-multi" - "mongodb-client-encryption" diff --git a/package-lock.json b/package-lock.json index 64a679992..fd82a0354 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,6 @@ "@iconify-icons/codicon": "^1.2.16", "@iconify/react": "^1.1.4", "@leafygreen-ui/logo": "^6.1.3", - "@leafygreen-ui/palette": "^3.4.2", "@leafygreen-ui/toggle": "^7.0.5", "@mongodb-js/mongodb-constants": "^0.2.1", "@mongosh/browser-runtime-electron": "^1.6.2", @@ -35,13 +34,13 @@ "mongodb-build-info": "^1.5.0", "mongodb-cloud-info": "^1.1.3", "mongodb-connection-string-url": "^2.5.3", - "mongodb-data-service": "^22.1.1", + "mongodb-data-service": "^22.4.1", "mongodb-query-parser": "^2.4.6", "mongodb-schema": "^10.0.0", "numeral": "^2.0.6", - "react": "^16.14.0", - "react-dom": "^16.14.0", - "react-redux": "^7.2.8", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "react-redux": "^8.0.5", "redux": "^4.2.0", "ts-log": "^2.2.5", "uuid": "^8.3.2", @@ -71,6 +70,7 @@ "@typescript-eslint/eslint-plugin": "^5.38.0", "@typescript-eslint/parser": "^5.38.0", "@vscode/test-electron": "^2.1.5", + "@wojtekmaj/enzyme-adapter-react-17": "^0.8.0", "autoprefixer": "^9.8.8", "buffer": "^6.0.3", "chai": "^4.3.6", @@ -84,8 +84,8 @@ "css-loader": "^3.6.0", "depcheck": "^1.4.3", "download": "^8.0.0", + "electron": "^23.0.0", "enzyme": "^3.11.0", - "enzyme-adapter-react-16": "^1.15.6", "eslint": "^8.23.1", "eslint-config-mongodb-js": "^5.0.3", "eslint-plugin-mocha": "^10.1.0", @@ -101,7 +101,7 @@ "mocha": "^8.4.0", "mocha-junit-reporter": "^2.0.2", "mocha-multi": "^1.1.6", - "mongodb-client-encryption": "^2.2.1", + "mongodb-client-encryption": "^2.4.0", "mongodb-runner": "^4.9.0", "node-loader": "^0.6.0", "npm-run-all": "^4.1.5", @@ -2068,10 +2068,174 @@ "node": ">=10.0.0" } }, + "node_modules/@electron/get": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.2.tgz", + "integrity": "sha512-eFZVFoRXb3GFGd7Ak7W4+6jBl9wBtiZ4AaYOse97ej6mKj5tkyO0dUnUChs1IhJZtx1BENo4/p4WUTXpi6vT+g==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "global-agent": "^3.0.0" + } + }, + "node_modules/@electron/get/node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@electron/get/node_modules/cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@electron/get/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@electron/get/node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/@electron/get/node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/@electron/get/node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/@electron/get/node_modules/keyv": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/@electron/get/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@electron/get/node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@electron/get/node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@electron/get/node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@electron/get/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@electron/remote": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.0.8.tgz", - "integrity": "sha512-P10v3+iFCIvEPeYzTWWGwwHmqWnjoh8RYnbtZAb3RlQefy4guagzIwcWtfftABIfm6JJTNQf4WPSKWZOpLmHXw==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.0.9.tgz", + "integrity": "sha512-LR0W0ID6WAKHaSs0x5LX9aiG+5pFBNAJL6eQAJfGkCuZPUa6nZz+czZLdlTDETG45CgF/0raSvCtYOYUpr6c+A==", + "optional": true, "peerDependencies": { "electron": ">= 13.0.0" } @@ -3147,24 +3311,24 @@ } }, "node_modules/@mongodb-js/compass-logging": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@mongodb-js/compass-logging/-/compass-logging-1.1.0.tgz", - "integrity": "sha512-Z3VLjv0sOeTqWT6VEuE5PBKm+I8j47vlRvFETFYqChV8GHeWiPtt9uVQOHGRd/6LpZ+zEuTUgYySoti/l29s7g==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@mongodb-js/compass-logging/-/compass-logging-1.1.2.tgz", + "integrity": "sha512-NYa90MYVSjWZ+wDcx2OmeIJptWJFmMMXHOkfIjZKm8Uw5muKElInyxEbXAoCR/QAL10lKc51C6rCV7TqTzr1SA==", "dependencies": { "debug": "^4.2.0", "is-electron-renderer": "^2.0.1", "mongodb-log-writer": "^1.1.4" }, "peerDependencies": { - "hadron-ipc": "^3.1.0" + "hadron-ipc": "^3.1.1" } }, "node_modules/@mongodb-js/compass-utils": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@mongodb-js/compass-utils/-/compass-utils-0.1.1.tgz", - "integrity": "sha512-kodwgUzdQl1nfI1eJ1lIJB00d2Y/NORYz3M/b2cV2uOlITfMw1GBcmp3jMB6nPSSXz0cdtF+VlWjj9H3W5hRuA==", - "dependencies": { - "@electron/remote": "^2.0.8" + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@mongodb-js/compass-utils/-/compass-utils-0.2.1.tgz", + "integrity": "sha512-bNKRZ/TfJ48ctRv8M4LMX3PatKhvih6sl23gpay9y+E5JhntPPTlUzlacRbpnWfGOUR8bEl5xwe+Sno5gTuQrw==", + "optionalDependencies": { + "@electron/remote": "^2.0.9" } }, "node_modules/@mongodb-js/devtools-connect": { @@ -3198,9 +3362,9 @@ } }, "node_modules/@mongodb-js/ssh-tunnel": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@mongodb-js/ssh-tunnel/-/ssh-tunnel-2.0.1.tgz", - "integrity": "sha512-SJyZo3/Bt6QJjeKFkoPbHD4QVZqUO1GVipHCZWGJsO8lJY4DibpIq/3Lpu8KZt2X0lnxDVLhdD0HlKcohfsM+w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mongodb-js/ssh-tunnel/-/ssh-tunnel-2.0.2.tgz", + "integrity": "sha512-EfcYYpVi69qPknmS6hJSLvG2wv9kbMNKZWtgrF/ZBL1kclkgSd/A0Tf3kst1CMgASP4ZK0GvQkM2nwx1DmQnPQ==", "dependencies": { "debug": "^4.2.0", "socksv5": "0.0.6", @@ -3844,6 +4008,18 @@ "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -3920,6 +4096,18 @@ "@babel/types": "^7.3.0" } }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dev": true, + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, "node_modules/@types/chai": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.3.tgz", @@ -4026,6 +4214,12 @@ "hoist-non-react-statics": "^3.3.0" } }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", + "dev": true + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", @@ -4151,6 +4345,15 @@ "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -4221,15 +4424,13 @@ "@types/react": "^17" } }, - "node_modules/@types/react-redux": { - "version": "7.1.20", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.20.tgz", - "integrity": "sha512-q42es4c8iIeTgcnB+yJgRTTzftv3eYYvCZOh1Ckn2eX/3o5TdsQYKUWpLoLuGlcY/p+VAhV9IOEZJcWk/vfkXw==", + "node_modules/@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dev": true, "dependencies": { - "@types/hoist-non-react-statics": "^3.3.0", - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0", - "redux": "^4.0.0" + "@types/node": "*" } }, "node_modules/@types/scheduler": { @@ -4271,6 +4472,11 @@ "integrity": "sha512-NtJmi+XbYocrLb5Au4Q64srX4FlCPDvrSF/OnK3H0QJwrw40tIUoQPDoUHnZ5wpAB2KThtVyeS+kOEQyZabORg==", "dev": true }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", + "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" + }, "node_modules/@types/uuid": { "version": "8.3.4", "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", @@ -4303,6 +4509,16 @@ "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", "dev": true }, + "node_modules/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "5.38.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.38.0.tgz", @@ -4838,6 +5054,77 @@ } } }, + "node_modules/@wojtekmaj/enzyme-adapter-react-17": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@wojtekmaj/enzyme-adapter-react-17/-/enzyme-adapter-react-17-0.8.0.tgz", + "integrity": "sha512-zeUGfQRziXW7R7skzNuJyi01ZwuKCH8WiBNnTgUJwdS/CURrJwAhWsfW7nG7E30ak8Pu3ZwD9PlK9skBfAoOBw==", + "dev": true, + "dependencies": { + "@wojtekmaj/enzyme-adapter-utils": "^0.2.0", + "enzyme-shallow-equal": "^1.0.0", + "has": "^1.0.0", + "prop-types": "^15.7.0", + "react-is": "^17.0.0", + "react-test-renderer": "^17.0.0" + }, + "funding": { + "url": "https://github.com/wojtekmaj/enzyme-adapter-react-17?sponsor=1" + }, + "peerDependencies": { + "enzyme": "^3.0.0", + "react": "^17.0.0-0", + "react-dom": "^17.0.0-0" + } + }, + "node_modules/@wojtekmaj/enzyme-adapter-react-17/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "node_modules/@wojtekmaj/enzyme-adapter-react-17/node_modules/react-test-renderer": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz", + "integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "react-is": "^17.0.2", + "react-shallow-renderer": "^16.13.1", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/@wojtekmaj/enzyme-adapter-react-17/node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dev": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/@wojtekmaj/enzyme-adapter-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@wojtekmaj/enzyme-adapter-utils/-/enzyme-adapter-utils-0.2.0.tgz", + "integrity": "sha512-ZvZm9kZxZEKAbw+M1/Q3iDuqQndVoN8uLnxZ8bzxm7KgGTBejrGRoJAp8f1EN8eoO3iAjBNEQnTDW/H4Ekb0FQ==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.0", + "has": "^1.0.0", + "object.fromentries": "^2.0.0", + "prop-types": "^15.7.0" + }, + "funding": { + "url": "https://github.com/wojtekmaj/enzyme-adapter-utils?sponsor=1" + }, + "peerDependencies": { + "react": "^17.0.0-0" + } + }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -4917,23 +5204,6 @@ "node": ">= 6.0.0" } }, - "node_modules/airbnb-prop-types": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz", - "integrity": "sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==", - "dev": true, - "dependencies": { - "array.prototype.find": "^2.1.1", - "function.prototype.name": "^1.1.2", - "is-regex": "^1.1.0", - "object-is": "^1.1.2", - "object.assign": "^4.1.0", - "object.entries": "^1.1.2", - "prop-types": "^15.7.2", - "prop-types-exact": "^1.2.0", - "react-is": "^16.13.1" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -5183,7 +5453,8 @@ "node_modules/aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "optional": true }, "node_modules/archive-type": { "version": "4.0.0", @@ -5210,6 +5481,7 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "devOptional": true, "dependencies": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -5218,12 +5490,14 @@ "node_modules/are-we-there-yet/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "devOptional": true }, "node_modules/are-we-there-yet/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==", + "devOptional": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -5238,6 +5512,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "devOptional": true, "dependencies": { "safe-buffer": "~5.1.0" } @@ -5350,47 +5625,6 @@ "node": ">=0.10.0" } }, - "node_modules/array.prototype.find": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.1.tgz", - "integrity": "sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.4" - } - }, - "node_modules/array.prototype.find/node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/array.prototype.find/node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/array.prototype.flat": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", @@ -5902,6 +6136,13 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", "dev": true }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "dev": true, + "optional": true + }, "node_modules/boom": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/boom/-/boom-7.3.0.tgz", @@ -6140,6 +6381,15 @@ "node": ">=0.10.0" } }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "dev": true, + "engines": { + "node": ">=10.6.0" + } + }, "node_modules/cacheable-request": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", @@ -7299,7 +7549,8 @@ "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "optional": true }, "node_modules/consolidate": { "version": "0.16.0", @@ -7663,14 +7914,17 @@ } }, "node_modules/decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dependencies": { - "mimic-response": "^2.0.0" + "mimic-response": "^3.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/decompress-tar": { @@ -7922,6 +8176,15 @@ "node": ">=0.8" } }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -8005,7 +8268,8 @@ "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "devOptional": true }, "node_modules/denque": { "version": "1.5.0", @@ -8240,14 +8504,11 @@ "dev": true }, "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", "engines": { - "node": ">=0.10" + "node": ">=8" } }, "node_modules/detect-newline": { @@ -8259,6 +8520,13 @@ "node": ">=8" } }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "optional": true + }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -8578,11 +8846,35 @@ "node": ">=0.4.0" } }, + "node_modules/electron": { + "version": "23.0.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-23.0.0.tgz", + "integrity": "sha512-S6hVtTAjauMiiWP9sBVR5RpcUC464cNZ06I2EMUjeZBq+KooS6tLmNsfw0zLpAXDp1qosjlBP3v71NTZ3gd9iA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@electron/get": "^2.0.0", + "@types/node": "^16.11.26", + "extract-zip": "^2.0.1" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 12.20.55" + } + }, "node_modules/electron-to-chromium": { "version": "1.4.73", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.73.tgz", "integrity": "sha512-RlCffXkE/LliqfA5m29+dVDPB2r72y2D2egMMfIy3Le8ODrxjuZNVo4NIC2yPL01N4xb4nZQLwzi6Z5tGIGLnA==" }, + "node_modules/electron/node_modules/@types/node": { + "version": "16.18.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.12.tgz", + "integrity": "sha512-vzLe5NaNMjIE3mcddFVGlAXN1LEWueUsMsOJWaT6wWMJGyljHAWHznqfnKUQWGzu7TLPrGvWdNAsvQYW+C0xtw==", + "dev": true + }, "node_modules/emittery": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", @@ -8634,6 +8926,15 @@ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", "dev": true }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/envinfo": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", @@ -8676,56 +8977,6 @@ "string.prototype.trim": "^1.2.1" } }, - "node_modules/enzyme-adapter-react-16": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.6.tgz", - "integrity": "sha512-yFlVJCXh8T+mcQo8M6my9sPgeGzj85HSHi6Apgf1Cvq/7EL/J9+1JoJmJsRxZgyTvPMAqOEpRSu/Ii/ZpyOk0g==", - "dev": true, - "dependencies": { - "enzyme-adapter-utils": "^1.14.0", - "enzyme-shallow-equal": "^1.0.4", - "has": "^1.0.3", - "object.assign": "^4.1.2", - "object.values": "^1.1.2", - "prop-types": "^15.7.2", - "react-is": "^16.13.1", - "react-test-renderer": "^16.0.0-0", - "semver": "^5.7.0" - } - }, - "node_modules/enzyme-adapter-react-16/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/enzyme-adapter-utils": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0.tgz", - "integrity": "sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg==", - "dev": true, - "dependencies": { - "airbnb-prop-types": "^2.16.0", - "function.prototype.name": "^1.1.3", - "has": "^1.0.3", - "object.assign": "^4.1.2", - "object.fromentries": "^2.0.3", - "prop-types": "^15.7.2", - "semver": "^5.7.1" - } - }, - "node_modules/enzyme-adapter-utils/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, "node_modules/enzyme-shallow-equal": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz", @@ -8831,6 +9082,13 @@ "next-tick": "~1.0.0" } }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "optional": true + }, "node_modules/es6-iterator": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", @@ -10424,6 +10682,41 @@ "node": ">=8" } }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -10878,6 +11171,7 @@ "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "optional": true, "dependencies": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -11086,6 +11380,24 @@ "process": "^0.11.10" } }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -11094,6 +11406,22 @@ "node": ">=4" } }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "optional": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -11218,9 +11546,9 @@ "optional": true }, "node_modules/hadron-ipc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hadron-ipc/-/hadron-ipc-3.1.0.tgz", - "integrity": "sha512-PTtZ5cXFpTTwlcPKkBhLR/tmkqvjJgEoGdV/IbLMIxNUpcOV0aiGP4YLxWVrIdwmmcgz8XzdMv2NvjahS4KqNg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/hadron-ipc/-/hadron-ipc-3.1.1.tgz", + "integrity": "sha512-7mwPThMsHWSOoZkJnFW2tsGxyzL8DnJQA2sKH1C4Swj0uCWWl22wpnbCu/yWovK7juw58Bt1ezmRxP/+E2IFpA==", "dependencies": { "debug": "^4.2.0", "is-electron-renderer": "^2.0.1", @@ -11310,7 +11638,8 @@ "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "devOptional": true }, "node_modules/has-value": { "version": "1.0.0", @@ -11528,6 +11857,31 @@ "npm": ">=1.3.7" } }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dev": true, + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/http2-wrapper/node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/https-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", @@ -14988,60 +15342,6 @@ "node": ">=12.9.0" } }, - "node_modules/kerberos/node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "optional": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/kerberos/node_modules/detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/kerberos/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/kerberos/node_modules/node-abi": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.8.0.tgz", - "integrity": "sha512-tzua9qWWi7iW4I42vUPKM+SfaF0vQSLAm4yO5J83mSwB7GeoWrDKC/K+8YCnYNwqP5duwazbw2X9l4m8SC2cUw==", - "optional": true, - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/kerberos/node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", - "optional": true - }, "node_modules/kerberos/node_modules/prebuild-install": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.0.1.tgz", @@ -15069,44 +15369,19 @@ "node": ">=10" } }, - "node_modules/kerberos/node_modules/simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true, - "dependencies": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, "node_modules/key-tree-store": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/key-tree-store/-/key-tree-store-1.3.0.tgz", "integrity": "sha1-XqKa/CUppCWThDfWlVtxTOapeR8=" }, "node_modules/keytar": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.7.0.tgz", - "integrity": "sha512-YEY9HWqThQc5q5xbXbRwsZTh2PJ36OSYRjSv3NN2xf5s5dpLTjEZnC2YikR29OaVybf9nQ0dJ/80i40RS97t/A==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz", + "integrity": "sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==", "hasInstallScript": true, "dependencies": { - "node-addon-api": "^3.0.0", - "prebuild-install": "^6.0.0" + "node-addon-api": "^4.3.0", + "prebuild-install": "^7.0.1" } }, "node_modules/keyv": { @@ -15614,12 +15889,6 @@ "node-addon-api": "^4.3.0" } }, - "node_modules/macos-export-certificate-and-key/node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", - "optional": true - }, "node_modules/magic-string": { "version": "0.25.7", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", @@ -15734,6 +16003,32 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/matcher/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/md5": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", @@ -16043,11 +16338,14 @@ } }, "node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/min-document": { @@ -16628,9 +16926,9 @@ } }, "node_modules/mongodb-client-encryption": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/mongodb-client-encryption/-/mongodb-client-encryption-2.3.0.tgz", - "integrity": "sha512-cXuRYBmCj43rLeqP8gHa+CrloFe7TUCd/f16VduFGQzAN9ef5buMGIfSr2CEGBul/EjTCLlioctSSDmHAmpTqA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/mongodb-client-encryption/-/mongodb-client-encryption-2.5.0.tgz", + "integrity": "sha512-et7DSQDhkbioK/G3FYtjML34ylLHmapM2665k7MMWCxSiXBNGovp8wSV4dRvJzXzKMfGvc/A4bJ7EcPSjxLCwg==", "devOptional": true, "hasInstallScript": true, "dependencies": { @@ -16643,112 +16941,13 @@ "node": ">=12.9.0" }, "peerDependencies": { + "@aws-sdk/credential-providers": "^3.186.0", "mongodb": ">=3.4.0" - } - }, - "node_modules/mongodb-client-encryption/node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "devOptional": true, - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mongodb-client-encryption/node_modules/detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", - "devOptional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/mongodb-client-encryption/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "devOptional": true, - "engines": { - "node": ">=10" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mongodb-client-encryption/node_modules/node-abi": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.24.0.tgz", - "integrity": "sha512-YPG3Co0luSu6GwOBsmIdGW6Wx0NyNDLg/hriIyDllVsNwnI6UeqaWShxC3lbH4LtEQUgoLP3XR1ndXiDAWvmRw==", - "devOptional": true, - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mongodb-client-encryption/node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", - "devOptional": true - }, - "node_modules/mongodb-client-encryption/node_modules/prebuild-install": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", - "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", - "devOptional": true, - "dependencies": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mongodb-client-encryption/node_modules/simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "devOptional": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true } - ], - "dependencies": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" } }, "node_modules/mongodb-cloud-info": { @@ -16981,26 +17180,26 @@ } }, "node_modules/mongodb-connection-model": { - "version": "22.1.1", - "resolved": "https://registry.npmjs.org/mongodb-connection-model/-/mongodb-connection-model-22.1.1.tgz", - "integrity": "sha512-JLPxOaosOAdamcyftvcYAXjqMsHYBIyxG6hHYyKPbhMzwJpKUWNvlpc9wQE4k6iru6tjsVm94mynb/Hh5Ny+VA==", + "version": "22.2.1", + "resolved": "https://registry.npmjs.org/mongodb-connection-model/-/mongodb-connection-model-22.2.1.tgz", + "integrity": "sha512-CGJ8zFNTfP2EOpoV36MHl767dkMDt4o+HIsxGWtUi7BSSieAJF0t4EE8fleInfJLQueD/Qaiq4zAGgwBjl+lgg==", "dependencies": { - "@mongodb-js/compass-utils": "^0.1.1", - "@mongodb-js/ssh-tunnel": "^2.0.1", + "@mongodb-js/compass-utils": "^0.2.1", + "@mongodb-js/ssh-tunnel": "^2.0.2", "ampersand-model": "^8.0.1", "ampersand-rest-collection": "^6.0.0", "debug": "^4.2.0", "lodash": "^4.17.15", - "mongodb-connection-string-url": "^2.5.3", + "mongodb-connection-string-url": "^2.6.0", "mongodb3": "npm:mongodb@^3.6.3", "os-dns-native": "^1.2.0", "raf": "^3.4.1", "resolve-mongodb-srv": "^1.1.2", "ssh2": "^0.8.7", - "storage-mixin": "^5.1.0" + "storage-mixin": "^5.1.1" }, "peerDependencies": { - "mongodb": "^4.10.0" + "mongodb": "^4.13.0" } }, "node_modules/mongodb-connection-string-url": { @@ -17067,29 +17266,29 @@ } }, "node_modules/mongodb-data-service": { - "version": "22.1.1", - "resolved": "https://registry.npmjs.org/mongodb-data-service/-/mongodb-data-service-22.1.1.tgz", - "integrity": "sha512-HKKJi50Tbqm2p86EOswD84D58BjR9DFoXsqNht4+fwbnoUYe95vdzxE76V5/JIHerEIAGNYrZSL3auLDZeEBOA==", + "version": "22.4.1", + "resolved": "https://registry.npmjs.org/mongodb-data-service/-/mongodb-data-service-22.4.1.tgz", + "integrity": "sha512-SBdUe/F9Dan3h5AZMmx0VGFHjU3wprKAMNjOIbzq3YqhFu/5d3gnp58NC8Lq/QjNR+Mvie+QjoGtTjuDcy6Bmg==", "dependencies": { - "@mongodb-js/compass-logging": "^1.1.0", - "@mongodb-js/compass-utils": "^0.1.1", + "@mongodb-js/compass-logging": "^1.1.2", + "@mongodb-js/compass-utils": "^0.2.1", "@mongodb-js/devtools-connect": "^1.4.3", - "@mongodb-js/ssh-tunnel": "^2.0.1", + "@mongodb-js/ssh-tunnel": "^2.0.2", "async": "^3.2.0", "debug": "^4.2.0", "lodash": "^4.17.20", - "mongodb-build-info": "^1.3.0", - "mongodb-connection-model": "^22.1.1", - "mongodb-connection-string-url": "^2.5.3", - "mongodb-index-model": "^4.0.2", + "mongodb-build-info": "^1.5.0", + "mongodb-connection-model": "^22.2.1", + "mongodb-connection-string-url": "^2.6.0", + "mongodb-index-model": "^4.1.1", "mongodb-ns": "^2.4.0", "uuid": "^8.3.2" }, "optionalDependencies": { - "mongodb-client-encryption": "^2.2.1" + "mongodb-client-encryption": "^2.4.0" }, "peerDependencies": { - "mongodb": "^4.10.0" + "mongodb": "^4.13.0" } }, "node_modules/mongodb-data-service/node_modules/async": { @@ -17196,9 +17395,9 @@ } }, "node_modules/mongodb-index-model": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/mongodb-index-model/-/mongodb-index-model-4.0.2.tgz", - "integrity": "sha512-4Anbr7DIeSs9JA2BQIYYWQUFTJsqXWTBsuwiT7OYz8GQw9DraCHXQ2yLlARgLP0Wble4+nYF2Gl+ZnI75ZDI3Q==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/mongodb-index-model/-/mongodb-index-model-4.1.1.tgz", + "integrity": "sha512-ALVHvkcE/XVnH6KfmOi1iqiOTdHc1HOugbrN+EmJn1tRl5v7qreEv9VrWPUHN8O52na2y5cbpNGhShqUdS0s1g==", "dependencies": { "ampersand-collection": "^2.0.1", "ampersand-model": "^8.0.1", @@ -18054,25 +18253,20 @@ } }, "node_modules/node-abi": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.0.tgz", - "integrity": "sha512-g6bZh3YCKQRdwuO/tSZZYJAw622SjsRfJ2X0Iy4sSOHZ34/sPPdVBn8fev2tj7njzLwuqPw9uMtGsGkO5kIQvg==", + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.32.0.tgz", + "integrity": "sha512-HkwdiLzE/LeuOMIQq/dJq70oNyRc88+wt5CH/RXYseE00LkA/c4PkS6Ti1vE4OHYUiKjkwuxjWq9pItgrz8UJw==", "dependencies": { - "semver": "^5.4.1" - } - }, - "node_modules/node-abi/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" } }, "node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" }, "node_modules/node-fetch": { "version": "2.6.1", @@ -18450,6 +18644,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "optional": true, "dependencies": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -18872,11 +19067,6 @@ "node-addon-api": "^4.3.0" } }, - "node_modules/os-dns-native/node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" - }, "node_modules/os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", @@ -19769,21 +19959,20 @@ "dev": true }, "node_modules/prebuild-install": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz", - "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", "dependencies": { - "detect-libc": "^1.0.3", + "detect-libc": "^2.0.0", "expand-template": "^2.0.3", "github-from-package": "0.0.0", "minimist": "^1.2.3", "mkdirp-classic": "^0.5.3", "napi-build-utils": "^1.0.1", - "node-abi": "^2.21.0", - "npmlog": "^4.0.1", + "node-abi": "^3.3.0", "pump": "^3.0.0", "rc": "^1.2.7", - "simple-get": "^3.0.3", + "simple-get": "^4.0.0", "tar-fs": "^2.0.0", "tunnel-agent": "^0.6.0" }, @@ -19791,7 +19980,7 @@ "prebuild-install": "bin.js" }, "engines": { - "node": ">=6" + "node": ">=10" } }, "node_modules/prelude-ls": { @@ -19871,17 +20060,6 @@ "react-is": "^16.13.1" } }, - "node_modules/prop-types-exact": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/prop-types-exact/-/prop-types-exact-1.2.0.tgz", - "integrity": "sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA==", - "dev": true, - "dependencies": { - "has": "^1.0.3", - "object.assign": "^4.1.0", - "reflect.ownkeys": "^0.2.0" - } - }, "node_modules/proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", @@ -20057,27 +20235,37 @@ } }, "node_modules/react": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", "dependencies": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" + "object-assign": "^4.1.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", - "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", "dependencies": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/react-dom/node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" } }, "node_modules/react-is": { @@ -20086,44 +20274,59 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/react-redux": { - "version": "7.2.8", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.8.tgz", - "integrity": "sha512-6+uDjhs3PSIclqoCk0kd6iX74gzrGc3W5zcAjbrFgEdIjRSQObdIwfx80unTkVUYvbQ95Y8Av3OvFHq1w5EOUw==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.5.tgz", + "integrity": "sha512-Q2f6fCKxPFpkXt1qNRZdEDLlScsDWyrgSj0mliK59qU6W5gvBiKkdMEG2lJzhd1rCctf0hb6EtePPLZ2e0m1uw==", "dependencies": { - "@babel/runtime": "^7.15.4", - "@types/react-redux": "^7.1.20", + "@babel/runtime": "^7.12.1", + "@types/hoist-non-react-statics": "^3.3.1", + "@types/use-sync-external-store": "^0.0.3", "hoist-non-react-statics": "^3.3.2", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" + "react-is": "^18.0.0", + "use-sync-external-store": "^1.0.0" }, "peerDependencies": { - "react": "^16.8.3 || ^17 || ^18" + "@types/react": "^16.8 || ^17.0 || ^18.0", + "@types/react-dom": "^16.8 || ^17.0 || ^18.0", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0", + "react-native": ">=0.59", + "redux": "^4" }, "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + }, "react-dom": { "optional": true }, "react-native": { "optional": true + }, + "redux": { + "optional": true } } }, "node_modules/react-redux/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, - "node_modules/react-test-renderer": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.14.0.tgz", - "integrity": "sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg==", + "node_modules/react-shallow-renderer": { + "version": "16.15.0", + "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", + "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", "dev": true, "dependencies": { "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "react-is": "^16.8.6", - "scheduler": "^0.19.1" + "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0" } }, "node_modules/read": { @@ -20252,12 +20455,6 @@ "@babel/runtime": "^7.9.2" } }, - "node_modules/reflect.ownkeys": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz", - "integrity": "sha1-dJrO7H8/34tj+SegSAnpDFwLNGA=", - "dev": true - }, "node_modules/regenerator-runtime": { "version": "0.13.7", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", @@ -20505,6 +20702,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true + }, "node_modules/resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", @@ -20634,6 +20837,31 @@ "rimraf": "bin.js" } }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/roarr/node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true, + "optional": true + }, "node_modules/rst-selector-parser": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", @@ -20945,15 +21173,6 @@ "node": ">=10" } }, - "node_modules/scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, "node_modules/schema-utils": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", @@ -21023,6 +21242,35 @@ "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", "dev": true }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serialize-error/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/serialize-javascript": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", @@ -21143,11 +21391,25 @@ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" }, "node_modules/simple-get": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", - "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "decompress-response": "^4.2.0", + "decompress-response": "^6.0.0", "once": "^1.3.1", "simple-concat": "^1.0.0" } @@ -21709,17 +21971,18 @@ } }, "node_modules/storage-mixin": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/storage-mixin/-/storage-mixin-5.1.0.tgz", - "integrity": "sha512-FcHSdOMt2Wj9RzqoTlDSoigQBZoEQ8sPetHz5LT+fzS9bbtPGXevGGskEY6P+bzWu0BbAeL7VxtL4jPCTIH52w==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/storage-mixin/-/storage-mixin-5.1.1.tgz", + "integrity": "sha512-gg55rrSpd2+2zoc894+kn8bw8tHdahXqsQKNcZqfR2YPVS+3GWoQVW3hekeFFvqVpqFBkKkELoi/7v5YG9j8mg==", "dependencies": { + "@mongodb-js/compass-logging": "^1.1.2", "ampersand-model": "^8.0.1", "ampersand-rest-collection": "^6.0.0", "ampersand-sync": "^5.1.0", "async": "^3.2.0", "debug": "^4.2.0", - "hadron-ipc": "^3.1.0", - "keytar": "^7.7.0", + "hadron-ipc": "^3.1.1", + "keytar": "^7.9.0", "localforage": "^1.7.3", "lodash": "^4.17.15", "rimraf": "^3.0.0", @@ -22069,6 +22332,18 @@ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.10.tgz", "integrity": "sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg==" }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -23127,6 +23402,14 @@ "node": ">=0.10.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/user-home": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", @@ -23670,6 +23953,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "devOptional": true, "dependencies": { "string-width": "^1.0.2 || 2" } @@ -23751,12 +24035,6 @@ "node-forge": "^1.2.1" } }, - "node_modules/win-export-certificate-and-key/node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", - "optional": true - }, "node_modules/window-size": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", @@ -25909,10 +26187,132 @@ "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true }, + "@electron/get": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.2.tgz", + "integrity": "sha512-eFZVFoRXb3GFGd7Ak7W4+6jBl9wBtiZ4AaYOse97ej6mKj5tkyO0dUnUChs1IhJZtx1BENo4/p4WUTXpi6vT+g==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "global-agent": "^3.0.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "dependencies": { + "@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true + }, + "cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dev": true, + "requires": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + } + }, + "http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "keyv": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "dev": true, + "requires": { + "json-buffer": "3.0.1" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "dev": true + }, + "responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "requires": { + "lowercase-keys": "^2.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "@electron/remote": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.0.8.tgz", - "integrity": "sha512-P10v3+iFCIvEPeYzTWWGwwHmqWnjoh8RYnbtZAb3RlQefy4guagzIwcWtfftABIfm6JJTNQf4WPSKWZOpLmHXw==" + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.0.9.tgz", + "integrity": "sha512-LR0W0ID6WAKHaSs0x5LX9aiG+5pFBNAJL6eQAJfGkCuZPUa6nZz+czZLdlTDETG45CgF/0raSvCtYOYUpr6c+A==", + "optional": true }, "@emotion/babel-plugin": { "version": "11.3.0", @@ -26817,9 +27217,9 @@ } }, "@mongodb-js/compass-logging": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@mongodb-js/compass-logging/-/compass-logging-1.1.0.tgz", - "integrity": "sha512-Z3VLjv0sOeTqWT6VEuE5PBKm+I8j47vlRvFETFYqChV8GHeWiPtt9uVQOHGRd/6LpZ+zEuTUgYySoti/l29s7g==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@mongodb-js/compass-logging/-/compass-logging-1.1.2.tgz", + "integrity": "sha512-NYa90MYVSjWZ+wDcx2OmeIJptWJFmMMXHOkfIjZKm8Uw5muKElInyxEbXAoCR/QAL10lKc51C6rCV7TqTzr1SA==", "requires": { "debug": "^4.2.0", "is-electron-renderer": "^2.0.1", @@ -26827,11 +27227,11 @@ } }, "@mongodb-js/compass-utils": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@mongodb-js/compass-utils/-/compass-utils-0.1.1.tgz", - "integrity": "sha512-kodwgUzdQl1nfI1eJ1lIJB00d2Y/NORYz3M/b2cV2uOlITfMw1GBcmp3jMB6nPSSXz0cdtF+VlWjj9H3W5hRuA==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@mongodb-js/compass-utils/-/compass-utils-0.2.1.tgz", + "integrity": "sha512-bNKRZ/TfJ48ctRv8M4LMX3PatKhvih6sl23gpay9y+E5JhntPPTlUzlacRbpnWfGOUR8bEl5xwe+Sno5gTuQrw==", "requires": { - "@electron/remote": "^2.0.8" + "@electron/remote": "^2.0.9" } }, "@mongodb-js/devtools-connect": { @@ -26856,9 +27256,9 @@ "dev": true }, "@mongodb-js/ssh-tunnel": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@mongodb-js/ssh-tunnel/-/ssh-tunnel-2.0.1.tgz", - "integrity": "sha512-SJyZo3/Bt6QJjeKFkoPbHD4QVZqUO1GVipHCZWGJsO8lJY4DibpIq/3Lpu8KZt2X0lnxDVLhdD0HlKcohfsM+w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mongodb-js/ssh-tunnel/-/ssh-tunnel-2.0.2.tgz", + "integrity": "sha512-EfcYYpVi69qPknmS6hJSLvG2wv9kbMNKZWtgrF/ZBL1kclkgSd/A0Tf3kst1CMgASP4ZK0GvQkM2nwx1DmQnPQ==", "requires": { "debug": "^4.2.0", "socksv5": "0.0.6", @@ -27371,6 +27771,15 @@ "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, + "@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, + "requires": { + "defer-to-connect": "^2.0.0" + } + }, "@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -27444,6 +27853,18 @@ "@babel/types": "^7.3.0" } }, + "@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dev": true, + "requires": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, "@types/chai": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.3.tgz", @@ -27550,6 +27971,12 @@ "hoist-non-react-statics": "^3.3.0" } }, + "@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", + "dev": true + }, "@types/istanbul-lib-coverage": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", @@ -27662,6 +28089,15 @@ "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, + "@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -27732,15 +28168,13 @@ "@types/react": "^17" } }, - "@types/react-redux": { - "version": "7.1.20", - "resolved": "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.20.tgz", - "integrity": "sha512-q42es4c8iIeTgcnB+yJgRTTzftv3eYYvCZOh1Ckn2eX/3o5TdsQYKUWpLoLuGlcY/p+VAhV9IOEZJcWk/vfkXw==", + "@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dev": true, "requires": { - "@types/hoist-non-react-statics": "^3.3.0", - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0", - "redux": "^4.0.0" + "@types/node": "*" } }, "@types/scheduler": { @@ -27782,6 +28216,11 @@ "integrity": "sha512-NtJmi+XbYocrLb5Au4Q64srX4FlCPDvrSF/OnK3H0QJwrw40tIUoQPDoUHnZ5wpAB2KThtVyeS+kOEQyZabORg==", "dev": true }, + "@types/use-sync-external-store": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", + "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" + }, "@types/uuid": { "version": "8.3.4", "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", @@ -27814,6 +28253,16 @@ "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", "dev": true }, + "@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "requires": { + "@types/node": "*" + } + }, "@typescript-eslint/eslint-plugin": { "version": "5.38.0", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.38.0.tgz", @@ -28222,6 +28671,62 @@ "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", "dev": true }, + "@wojtekmaj/enzyme-adapter-react-17": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@wojtekmaj/enzyme-adapter-react-17/-/enzyme-adapter-react-17-0.8.0.tgz", + "integrity": "sha512-zeUGfQRziXW7R7skzNuJyi01ZwuKCH8WiBNnTgUJwdS/CURrJwAhWsfW7nG7E30ak8Pu3ZwD9PlK9skBfAoOBw==", + "dev": true, + "requires": { + "@wojtekmaj/enzyme-adapter-utils": "^0.2.0", + "enzyme-shallow-equal": "^1.0.0", + "has": "^1.0.0", + "prop-types": "^15.7.0", + "react-is": "^17.0.0", + "react-test-renderer": "^17.0.0" + }, + "dependencies": { + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "react-test-renderer": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz", + "integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "react-is": "^17.0.2", + "react-shallow-renderer": "^16.13.1", + "scheduler": "^0.20.2" + } + }, + "scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + } + } + }, + "@wojtekmaj/enzyme-adapter-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@wojtekmaj/enzyme-adapter-utils/-/enzyme-adapter-utils-0.2.0.tgz", + "integrity": "sha512-ZvZm9kZxZEKAbw+M1/Q3iDuqQndVoN8uLnxZ8bzxm7KgGTBejrGRoJAp8f1EN8eoO3iAjBNEQnTDW/H4Ekb0FQ==", + "dev": true, + "requires": { + "function.prototype.name": "^1.1.0", + "has": "^1.0.0", + "object.fromentries": "^2.0.0", + "prop-types": "^15.7.0" + } + }, "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -28283,23 +28788,6 @@ "debug": "4" } }, - "airbnb-prop-types": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz", - "integrity": "sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==", - "dev": true, - "requires": { - "array.prototype.find": "^2.1.1", - "function.prototype.name": "^1.1.2", - "is-regex": "^1.1.0", - "object-is": "^1.1.2", - "object.assign": "^4.1.0", - "object.entries": "^1.1.2", - "prop-types": "^15.7.2", - "prop-types-exact": "^1.2.0", - "react-is": "^16.13.1" - } - }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -28529,7 +29017,8 @@ "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "optional": true }, "archive-type": { "version": "4.0.0", @@ -28552,6 +29041,7 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "devOptional": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -28560,12 +29050,14 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "devOptional": true }, "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==", + "devOptional": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -28580,6 +29072,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "devOptional": true, "requires": { "safe-buffer": "~5.1.0" } @@ -28670,43 +29163,6 @@ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, - "array.prototype.find": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.1.tgz", - "integrity": "sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.4" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - } - } - }, "array.prototype.flat": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", @@ -29139,6 +29595,13 @@ "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", "dev": true }, + "boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "dev": true, + "optional": true + }, "boom": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/boom/-/boom-7.3.0.tgz", @@ -29321,6 +29784,12 @@ "unset-value": "^1.0.0" } }, + "cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "dev": true + }, "cacheable-request": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", @@ -30238,7 +30707,8 @@ "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "optional": true }, "consolidate": { "version": "0.16.0", @@ -30549,11 +31019,11 @@ } }, "decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "requires": { - "mimic-response": "^2.0.0" + "mimic-response": "^3.1.0" } }, "decompress-tar": { @@ -30749,6 +31219,12 @@ } } }, + "defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -30815,7 +31291,8 @@ "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "devOptional": true }, "denque": { "version": "1.5.0", @@ -30998,9 +31475,9 @@ "dev": true }, "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==" }, "detect-newline": { "version": "3.1.0", @@ -31008,6 +31485,13 @@ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "optional": true + }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", @@ -31286,6 +31770,25 @@ } } }, + "electron": { + "version": "23.0.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-23.0.0.tgz", + "integrity": "sha512-S6hVtTAjauMiiWP9sBVR5RpcUC464cNZ06I2EMUjeZBq+KooS6tLmNsfw0zLpAXDp1qosjlBP3v71NTZ3gd9iA==", + "dev": true, + "requires": { + "@electron/get": "^2.0.0", + "@types/node": "^16.11.26", + "extract-zip": "^2.0.1" + }, + "dependencies": { + "@types/node": { + "version": "16.18.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.12.tgz", + "integrity": "sha512-vzLe5NaNMjIE3mcddFVGlAXN1LEWueUsMsOJWaT6wWMJGyljHAWHznqfnKUQWGzu7TLPrGvWdNAsvQYW+C0xtw==", + "dev": true + } + } + }, "electron-to-chromium": { "version": "1.4.73", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.73.tgz", @@ -31333,6 +31836,12 @@ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", "dev": true }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true + }, "envinfo": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", @@ -31383,54 +31892,6 @@ } } }, - "enzyme-adapter-react-16": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.6.tgz", - "integrity": "sha512-yFlVJCXh8T+mcQo8M6my9sPgeGzj85HSHi6Apgf1Cvq/7EL/J9+1JoJmJsRxZgyTvPMAqOEpRSu/Ii/ZpyOk0g==", - "dev": true, - "requires": { - "enzyme-adapter-utils": "^1.14.0", - "enzyme-shallow-equal": "^1.0.4", - "has": "^1.0.3", - "object.assign": "^4.1.2", - "object.values": "^1.1.2", - "prop-types": "^15.7.2", - "react-is": "^16.13.1", - "react-test-renderer": "^16.0.0-0", - "semver": "^5.7.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "enzyme-adapter-utils": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0.tgz", - "integrity": "sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg==", - "dev": true, - "requires": { - "airbnb-prop-types": "^2.16.0", - "function.prototype.name": "^1.1.3", - "has": "^1.0.3", - "object.assign": "^4.1.2", - "object.fromentries": "^2.0.3", - "prop-types": "^15.7.2", - "semver": "^5.7.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, "enzyme-shallow-equal": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz", @@ -31514,6 +31975,13 @@ "next-tick": "~1.0.0" } }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "optional": true + }, "es6-iterator": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", @@ -32771,6 +33239,29 @@ "integrity": "sha512-AEo4zm+TenK7zQorGK1f9mJ8L14hnTDi2ZQPR+Mub1NX8zimka1mXpV5LpH8x9HoUmFSHZCfLHqWvp0Y4FxxzQ==", "dev": true }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -33134,6 +33625,7 @@ "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "optional": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -33305,11 +33797,36 @@ "process": "^0.11.10" } }, + "global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "optional": true, + "requires": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + } + }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "optional": true, + "requires": { + "define-properties": "^1.1.3" + } + }, "globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -33411,9 +33928,9 @@ "optional": true }, "hadron-ipc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hadron-ipc/-/hadron-ipc-3.1.0.tgz", - "integrity": "sha512-PTtZ5cXFpTTwlcPKkBhLR/tmkqvjJgEoGdV/IbLMIxNUpcOV0aiGP4YLxWVrIdwmmcgz8XzdMv2NvjahS4KqNg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/hadron-ipc/-/hadron-ipc-3.1.1.tgz", + "integrity": "sha512-7mwPThMsHWSOoZkJnFW2tsGxyzL8DnJQA2sKH1C4Swj0uCWWl22wpnbCu/yWovK7juw58Bt1ezmRxP/+E2IFpA==", "requires": { "debug": "^4.2.0", "is-electron-renderer": "^2.0.1", @@ -33479,7 +33996,8 @@ "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "devOptional": true }, "has-value": { "version": "1.0.0", @@ -33668,6 +34186,24 @@ "sshpk": "^1.7.0" } }, + "http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dev": true, + "requires": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "dependencies": { + "quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true + } + } + }, "https-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", @@ -36556,42 +37092,6 @@ "prebuild-install": "7.0.1" }, "dependencies": { - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "optional": true, - "requires": { - "mimic-response": "^3.1.0" - } - }, - "detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", - "optional": true - }, - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "optional": true - }, - "node-abi": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.8.0.tgz", - "integrity": "sha512-tzua9qWWi7iW4I42vUPKM+SfaF0vQSLAm4yO5J83mSwB7GeoWrDKC/K+8YCnYNwqP5duwazbw2X9l4m8SC2cUw==", - "optional": true, - "requires": { - "semver": "^7.3.5" - } - }, - "node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", - "optional": true - }, "prebuild-install": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.0.1.tgz", @@ -36612,17 +37112,6 @@ "tar-fs": "^2.0.0", "tunnel-agent": "^0.6.0" } - }, - "simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "optional": true, - "requires": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } } } }, @@ -36632,12 +37121,12 @@ "integrity": "sha1-XqKa/CUppCWThDfWlVtxTOapeR8=" }, "keytar": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.7.0.tgz", - "integrity": "sha512-YEY9HWqThQc5q5xbXbRwsZTh2PJ36OSYRjSv3NN2xf5s5dpLTjEZnC2YikR29OaVybf9nQ0dJ/80i40RS97t/A==", + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz", + "integrity": "sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==", "requires": { - "node-addon-api": "^3.0.0", - "prebuild-install": "^6.0.0" + "node-addon-api": "^4.3.0", + "prebuild-install": "^7.0.1" } }, "keyv": { @@ -37076,14 +37565,6 @@ "requires": { "bindings": "^1.5.0", "node-addon-api": "^4.3.0" - }, - "dependencies": { - "node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", - "optional": true - } } }, "magic-string": { @@ -37180,6 +37661,25 @@ } } }, + "matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "optional": true, + "requires": { + "escape-string-regexp": "^4.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "optional": true + } + } + }, "md5": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", @@ -37427,9 +37927,9 @@ "dev": true }, "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" }, "min-document": { "version": "2.19.0", @@ -37875,84 +38375,15 @@ } }, "mongodb-client-encryption": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/mongodb-client-encryption/-/mongodb-client-encryption-2.3.0.tgz", - "integrity": "sha512-cXuRYBmCj43rLeqP8gHa+CrloFe7TUCd/f16VduFGQzAN9ef5buMGIfSr2CEGBul/EjTCLlioctSSDmHAmpTqA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/mongodb-client-encryption/-/mongodb-client-encryption-2.5.0.tgz", + "integrity": "sha512-et7DSQDhkbioK/G3FYtjML34ylLHmapM2665k7MMWCxSiXBNGovp8wSV4dRvJzXzKMfGvc/A4bJ7EcPSjxLCwg==", "devOptional": true, "requires": { "bindings": "^1.5.0", "node-addon-api": "^4.3.0", "prebuild-install": "^7.1.1", "socks": "^2.6.1" - }, - "dependencies": { - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "devOptional": true, - "requires": { - "mimic-response": "^3.1.0" - } - }, - "detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", - "devOptional": true - }, - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "devOptional": true - }, - "node-abi": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.24.0.tgz", - "integrity": "sha512-YPG3Co0luSu6GwOBsmIdGW6Wx0NyNDLg/hriIyDllVsNwnI6UeqaWShxC3lbH4LtEQUgoLP3XR1ndXiDAWvmRw==", - "devOptional": true, - "requires": { - "semver": "^7.3.5" - } - }, - "node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", - "devOptional": true - }, - "prebuild-install": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", - "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", - "devOptional": true, - "requires": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - } - }, - "simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "devOptional": true, - "requires": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - } } }, "mongodb-cloud-info": { @@ -38140,23 +38571,23 @@ } }, "mongodb-connection-model": { - "version": "22.1.1", - "resolved": "https://registry.npmjs.org/mongodb-connection-model/-/mongodb-connection-model-22.1.1.tgz", - "integrity": "sha512-JLPxOaosOAdamcyftvcYAXjqMsHYBIyxG6hHYyKPbhMzwJpKUWNvlpc9wQE4k6iru6tjsVm94mynb/Hh5Ny+VA==", + "version": "22.2.1", + "resolved": "https://registry.npmjs.org/mongodb-connection-model/-/mongodb-connection-model-22.2.1.tgz", + "integrity": "sha512-CGJ8zFNTfP2EOpoV36MHl767dkMDt4o+HIsxGWtUi7BSSieAJF0t4EE8fleInfJLQueD/Qaiq4zAGgwBjl+lgg==", "requires": { - "@mongodb-js/compass-utils": "^0.1.1", - "@mongodb-js/ssh-tunnel": "^2.0.1", + "@mongodb-js/compass-utils": "^0.2.1", + "@mongodb-js/ssh-tunnel": "^2.0.2", "ampersand-model": "^8.0.1", "ampersand-rest-collection": "^6.0.0", "debug": "^4.2.0", "lodash": "^4.17.15", - "mongodb-connection-string-url": "^2.5.3", + "mongodb-connection-string-url": "^2.6.0", "mongodb3": "npm:mongodb@^3.6.3", "os-dns-native": "^1.2.0", "raf": "^3.4.1", "resolve-mongodb-srv": "^1.1.2", "ssh2": "^0.8.7", - "storage-mixin": "^5.1.0" + "storage-mixin": "^5.1.1" } }, "mongodb-connection-string-url": { @@ -38213,22 +38644,22 @@ } }, "mongodb-data-service": { - "version": "22.1.1", - "resolved": "https://registry.npmjs.org/mongodb-data-service/-/mongodb-data-service-22.1.1.tgz", - "integrity": "sha512-HKKJi50Tbqm2p86EOswD84D58BjR9DFoXsqNht4+fwbnoUYe95vdzxE76V5/JIHerEIAGNYrZSL3auLDZeEBOA==", + "version": "22.4.1", + "resolved": "https://registry.npmjs.org/mongodb-data-service/-/mongodb-data-service-22.4.1.tgz", + "integrity": "sha512-SBdUe/F9Dan3h5AZMmx0VGFHjU3wprKAMNjOIbzq3YqhFu/5d3gnp58NC8Lq/QjNR+Mvie+QjoGtTjuDcy6Bmg==", "requires": { - "@mongodb-js/compass-logging": "^1.1.0", - "@mongodb-js/compass-utils": "^0.1.1", + "@mongodb-js/compass-logging": "^1.1.2", + "@mongodb-js/compass-utils": "^0.2.1", "@mongodb-js/devtools-connect": "^1.4.3", - "@mongodb-js/ssh-tunnel": "^2.0.1", + "@mongodb-js/ssh-tunnel": "^2.0.2", "async": "^3.2.0", "debug": "^4.2.0", "lodash": "^4.17.20", - "mongodb-build-info": "^1.3.0", - "mongodb-client-encryption": "^2.2.1", - "mongodb-connection-model": "^22.1.1", - "mongodb-connection-string-url": "^2.5.3", - "mongodb-index-model": "^4.0.2", + "mongodb-build-info": "^1.5.0", + "mongodb-client-encryption": "^2.4.0", + "mongodb-connection-model": "^22.2.1", + "mongodb-connection-string-url": "^2.6.0", + "mongodb-index-model": "^4.1.1", "mongodb-ns": "^2.4.0", "uuid": "^8.3.2" }, @@ -38328,9 +38759,9 @@ } }, "mongodb-index-model": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/mongodb-index-model/-/mongodb-index-model-4.0.2.tgz", - "integrity": "sha512-4Anbr7DIeSs9JA2BQIYYWQUFTJsqXWTBsuwiT7OYz8GQw9DraCHXQ2yLlARgLP0Wble4+nYF2Gl+ZnI75ZDI3Q==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/mongodb-index-model/-/mongodb-index-model-4.1.1.tgz", + "integrity": "sha512-ALVHvkcE/XVnH6KfmOi1iqiOTdHc1HOugbrN+EmJn1tRl5v7qreEv9VrWPUHN8O52na2y5cbpNGhShqUdS0s1g==", "requires": { "ampersand-collection": "^2.0.1", "ampersand-model": "^8.0.1", @@ -39030,24 +39461,17 @@ } }, "node-abi": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.0.tgz", - "integrity": "sha512-g6bZh3YCKQRdwuO/tSZZYJAw622SjsRfJ2X0Iy4sSOHZ34/sPPdVBn8fev2tj7njzLwuqPw9uMtGsGkO5kIQvg==", + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.32.0.tgz", + "integrity": "sha512-HkwdiLzE/LeuOMIQq/dJq70oNyRc88+wt5CH/RXYseE00LkA/c4PkS6Ti1vE4OHYUiKjkwuxjWq9pItgrz8UJw==", "requires": { - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } + "semver": "^7.3.5" } }, "node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" }, "node-fetch": { "version": "2.6.1", @@ -39348,6 +39772,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "optional": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -39667,13 +40092,6 @@ "debug": "^4.3.3", "ipv6-normalize": "^1.0.1", "node-addon-api": "^4.3.0" - }, - "dependencies": { - "node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" - } } }, "os-locale": { @@ -40367,21 +40785,20 @@ } }, "prebuild-install": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz", - "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", "requires": { - "detect-libc": "^1.0.3", + "detect-libc": "^2.0.0", "expand-template": "^2.0.3", "github-from-package": "0.0.0", "minimist": "^1.2.3", "mkdirp-classic": "^0.5.3", "napi-build-utils": "^1.0.1", - "node-abi": "^2.21.0", - "npmlog": "^4.0.1", + "node-abi": "^3.3.0", "pump": "^3.0.0", "rc": "^1.2.7", - "simple-get": "^3.0.3", + "simple-get": "^4.0.0", "tar-fs": "^2.0.0", "tunnel-agent": "^0.6.0" } @@ -40439,17 +40856,6 @@ "react-is": "^16.13.1" } }, - "prop-types-exact": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/prop-types-exact/-/prop-types-exact-1.2.0.tgz", - "integrity": "sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA==", - "dev": true, - "requires": { - "has": "^1.0.3", - "object.assign": "^4.1.0", - "reflect.ownkeys": "^0.2.0" - } - }, "proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", @@ -40592,24 +40998,33 @@ } }, "react": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", "requires": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" + "object-assign": "^4.1.1" } }, "react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", - "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", "requires": { "loose-envify": "^1.1.0", "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" + "scheduler": "^0.20.2" + }, + "dependencies": { + "scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + } } }, "react-is": { @@ -40618,35 +41033,33 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "react-redux": { - "version": "7.2.8", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.8.tgz", - "integrity": "sha512-6+uDjhs3PSIclqoCk0kd6iX74gzrGc3W5zcAjbrFgEdIjRSQObdIwfx80unTkVUYvbQ95Y8Av3OvFHq1w5EOUw==", + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.0.5.tgz", + "integrity": "sha512-Q2f6fCKxPFpkXt1qNRZdEDLlScsDWyrgSj0mliK59qU6W5gvBiKkdMEG2lJzhd1rCctf0hb6EtePPLZ2e0m1uw==", "requires": { - "@babel/runtime": "^7.15.4", - "@types/react-redux": "^7.1.20", + "@babel/runtime": "^7.12.1", + "@types/hoist-non-react-statics": "^3.3.1", + "@types/use-sync-external-store": "^0.0.3", "hoist-non-react-statics": "^3.3.2", - "loose-envify": "^1.4.0", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" + "react-is": "^18.0.0", + "use-sync-external-store": "^1.0.0" }, "dependencies": { "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" } } }, - "react-test-renderer": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.14.0.tgz", - "integrity": "sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg==", + "react-shallow-renderer": { + "version": "16.15.0", + "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", + "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", "dev": true, "requires": { "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "react-is": "^16.8.6", - "scheduler": "^0.19.1" + "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" } }, "read": { @@ -40756,12 +41169,6 @@ "@babel/runtime": "^7.9.2" } }, - "reflect.ownkeys": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz", - "integrity": "sha1-dJrO7H8/34tj+SegSAnpDFwLNGA=", - "dev": true - }, "regenerator-runtime": { "version": "0.13.7", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", @@ -40961,6 +41368,12 @@ "path-parse": "^1.0.6" } }, + "resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true + }, "resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", @@ -41060,6 +41473,30 @@ "glob": "^7.1.3" } }, + "roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "optional": true, + "requires": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true, + "optional": true + } + } + }, "rst-selector-parser": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", @@ -41312,15 +41749,6 @@ "xmlchars": "^2.2.0" } }, - "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, "schema-utils": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", @@ -41376,6 +41804,25 @@ "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", "dev": true }, + "serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "optional": true, + "requires": { + "type-fest": "^0.13.1" + }, + "dependencies": { + "type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "optional": true + } + } + }, "serialize-javascript": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", @@ -41483,11 +41930,11 @@ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" }, "simple-get": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", - "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", "requires": { - "decompress-response": "^4.2.0", + "decompress-response": "^6.0.0", "once": "^1.3.1", "simple-concat": "^1.0.0" } @@ -41943,17 +42390,18 @@ "dev": true }, "storage-mixin": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/storage-mixin/-/storage-mixin-5.1.0.tgz", - "integrity": "sha512-FcHSdOMt2Wj9RzqoTlDSoigQBZoEQ8sPetHz5LT+fzS9bbtPGXevGGskEY6P+bzWu0BbAeL7VxtL4jPCTIH52w==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/storage-mixin/-/storage-mixin-5.1.1.tgz", + "integrity": "sha512-gg55rrSpd2+2zoc894+kn8bw8tHdahXqsQKNcZqfR2YPVS+3GWoQVW3hekeFFvqVpqFBkKkELoi/7v5YG9j8mg==", "requires": { + "@mongodb-js/compass-logging": "^1.1.2", "ampersand-model": "^8.0.1", "ampersand-rest-collection": "^6.0.0", "ampersand-sync": "^5.1.0", "async": "^3.2.0", "debug": "^4.2.0", - "hadron-ipc": "^3.1.0", - "keytar": "^7.7.0", + "hadron-ipc": "^3.1.1", + "keytar": "^7.9.0", "localforage": "^1.7.3", "lodash": "^4.17.15", "rimraf": "^3.0.0", @@ -42238,6 +42686,15 @@ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.10.tgz", "integrity": "sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg==" }, + "sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "requires": { + "debug": "^4.1.0" + } + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -43058,6 +43515,11 @@ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, + "use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==" + }, "user-home": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", @@ -43474,6 +43936,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "devOptional": true, "requires": { "string-width": "^1.0.2 || 2" } @@ -43536,14 +43999,6 @@ "bindings": "^1.5.0", "node-addon-api": "^4.3.0", "node-forge": "^1.2.1" - }, - "dependencies": { - "node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", - "optional": true - } } }, "window-size": { diff --git a/package.json b/package.json index b9a6e5f51..1b350c90d 100644 --- a/package.json +++ b/package.json @@ -1002,7 +1002,6 @@ "@iconify-icons/codicon": "^1.2.16", "@iconify/react": "^1.1.4", "@leafygreen-ui/logo": "^6.1.3", - "@leafygreen-ui/palette": "^3.4.2", "@leafygreen-ui/toggle": "^7.0.5", "@mongodb-js/mongodb-constants": "^0.2.1", "@mongosh/browser-runtime-electron": "^1.6.2", @@ -1020,13 +1019,13 @@ "mongodb-build-info": "^1.5.0", "mongodb-cloud-info": "^1.1.3", "mongodb-connection-string-url": "^2.5.3", - "mongodb-data-service": "^22.1.1", + "mongodb-data-service": "^22.4.1", "mongodb-query-parser": "^2.4.6", "mongodb-schema": "^10.0.0", "numeral": "^2.0.6", - "react": "^16.14.0", - "react-dom": "^16.14.0", - "react-redux": "^7.2.8", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "react-redux": "^8.0.5", "redux": "^4.2.0", "ts-log": "^2.2.5", "uuid": "^8.3.2", @@ -1056,6 +1055,7 @@ "@typescript-eslint/eslint-plugin": "^5.38.0", "@typescript-eslint/parser": "^5.38.0", "@vscode/test-electron": "^2.1.5", + "@wojtekmaj/enzyme-adapter-react-17": "^0.8.0", "autoprefixer": "^9.8.8", "buffer": "^6.0.3", "chai": "^4.3.6", @@ -1069,8 +1069,8 @@ "css-loader": "^3.6.0", "depcheck": "^1.4.3", "download": "^8.0.0", + "electron": "^23.0.0", "enzyme": "^3.11.0", - "enzyme-adapter-react-16": "^1.15.6", "eslint": "^8.23.1", "eslint-config-mongodb-js": "^5.0.3", "eslint-plugin-mocha": "^10.1.0", @@ -1086,7 +1086,7 @@ "mocha": "^8.4.0", "mocha-junit-reporter": "^2.0.2", "mocha-multi": "^1.1.6", - "mongodb-client-encryption": "^2.2.1", + "mongodb-client-encryption": "^2.4.0", "mongodb-runner": "^4.9.0", "node-loader": "^0.6.0", "npm-run-all": "^4.1.5", diff --git a/scripts/no-npm-list-fail.js b/scripts/no-npm-list-fail.js index 02d68da32..b9a480f50 100644 --- a/scripts/no-npm-list-fail.js +++ b/scripts/no-npm-list-fail.js @@ -1,7 +1,6 @@ 'use strict'; // Monkey-patch child_process so that the `npm list` command run by -// `vsce package` does not fail because of `mongodb` being a 4.x prerelease -// rather than a "proper" version number. +// `vsce package` does not fail. const child_process = require('child_process'); const origExec = child_process.exec; child_process.exec = (cmd, options, cb) => { diff --git a/src/editors/collectionDocumentsProvider.ts b/src/editors/collectionDocumentsProvider.ts index 59dce9a1d..dc095e172 100644 --- a/src/editors/collectionDocumentsProvider.ts +++ b/src/editors/collectionDocumentsProvider.ts @@ -1,5 +1,4 @@ import * as vscode from 'vscode'; -import * as util from 'util'; import { URLSearchParams } from 'url'; import CollectionDocumentsOperationsStore from './collectionDocumentsOperationsStore'; @@ -85,8 +84,7 @@ export default class CollectionViewProvider } try { - const find = util.promisify(dataservice.find.bind(dataservice)); - const documents = await find( + const documents = await dataservice.find( namespace, {}, // No filter. { limit: documentLimit } diff --git a/src/editors/mongoDBDocumentService.ts b/src/editors/mongoDBDocumentService.ts index ddcb41f14..3567ff9e3 100644 --- a/src/editors/mongoDBDocumentService.ts +++ b/src/editors/mongoDBDocumentService.ts @@ -133,8 +133,7 @@ export default class MongoDBDocumentService { this._statusView.showMessage('Fetching document...'); try { - const find = util.promisify(dataservice.find.bind(dataservice)); - const documents = await find( + const documents = await dataservice.find( namespace, { _id: documentId }, { limit: 1 } diff --git a/src/explorer/collectionTreeItem.ts b/src/explorer/collectionTreeItem.ts index 88646f181..e88fce3ae 100644 --- a/src/explorer/collectionTreeItem.ts +++ b/src/explorer/collectionTreeItem.ts @@ -1,6 +1,7 @@ import * as util from 'util'; import * as vscode from 'vscode'; import path from 'path'; +import type { DataService } from 'mongodb-data-service'; import DocumentListTreeItem, { CollectionTypes, @@ -72,7 +73,7 @@ export default class CollectionTreeItem databaseName: string; namespace: string; - private _dataService: any; + private _dataService: DataService; private _type: CollectionTypes; documentCount: number | null = null; @@ -320,16 +321,13 @@ export default class CollectionTreeItem try { // We fetch the document when we expand in order to show // the document count in the document list tree item `description`. - const estimatedCount = util.promisify( - this._dataService.estimatedCount.bind(this._dataService) - ); - - this.documentCount = await estimatedCount( + this.documentCount = await this._dataService.estimatedCount( this.namespace, - {} // No options. + {}, // No options. + undefined ); - return this.documentCount as number; + return this.documentCount; } catch (err) { this.documentCount = null; return 0; diff --git a/src/explorer/documentListTreeItem.ts b/src/explorer/documentListTreeItem.ts index 518bdfa1d..4c7d8e06a 100644 --- a/src/explorer/documentListTreeItem.ts +++ b/src/explorer/documentListTreeItem.ts @@ -1,4 +1,3 @@ -import * as util from 'util'; import * as vscode from 'vscode'; import numeral from 'numeral'; @@ -202,10 +201,7 @@ export default class DocumentListTreeItem let documents; try { - const find = util.promisify( - this._dataService.find.bind(this._dataService) - ); - documents = await find( + documents = await this._dataService.find( this.namespace, {}, // No filter. { limit: this._maxDocumentsToShow } diff --git a/src/explorer/documentTreeItem.ts b/src/explorer/documentTreeItem.ts index 161a9871d..c8bbf4233 100644 --- a/src/explorer/documentTreeItem.ts +++ b/src/explorer/documentTreeItem.ts @@ -59,8 +59,7 @@ export default class DocumentTreeItem } async getDocumentContents(): Promise { - const find = promisify(this.dataService.find.bind(this.dataService)); - const documents = await find( + const documents = await this.dataService.find( this.namespace, { _id: this.documentId }, { limit: 1 } diff --git a/src/explorer/schemaTreeItem.ts b/src/explorer/schemaTreeItem.ts index a052f3320..3bb3c7e75 100644 --- a/src/explorer/schemaTreeItem.ts +++ b/src/explorer/schemaTreeItem.ts @@ -1,4 +1,3 @@ -import * as util from 'util'; import * as vscode from 'vscode'; import parseSchema from 'mongodb-schema'; import path from 'path'; @@ -9,6 +8,7 @@ import formatError from '../utils/formatError'; import { getImagesPath } from '../extensionConstants'; import TreeItemParent from './treeItemParentInterface'; import { MAX_DOCUMENTS_VISIBLE } from './documentListTreeItem'; +import { DataService } from 'mongodb-data-service'; const log = createLogger('tree view document list'); @@ -52,7 +52,7 @@ export default class SchemaTreeItem collectionName: string; databaseName: string; - private _dataService: any; + private _dataService: DataService; isExpanded: boolean; @@ -62,7 +62,7 @@ export default class SchemaTreeItem constructor( collectionName: string, databaseName: string, - dataService: any, + dataService: DataService, isExpanded: boolean, hasClickedShowMoreFields: boolean, hasMoreFieldsToShow: boolean, @@ -100,10 +100,7 @@ export default class SchemaTreeItem const namespace = `${this.databaseName}.${this.collectionName}`; let documents; try { - const find = util.promisify( - this._dataService.find.bind(this._dataService) - ); - documents = await find( + documents = await this._dataService.find( namespace, {}, // No filter. { limit: MAX_DOCUMENTS_VISIBLE } diff --git a/src/test/suite/editors/activeDBCodeLensProvider.test.ts b/src/test/suite/editors/activeDBCodeLensProvider.test.ts index 725149cb6..463e1b242 100644 --- a/src/test/suite/editors/activeDBCodeLensProvider.test.ts +++ b/src/test/suite/editors/activeDBCodeLensProvider.test.ts @@ -1,8 +1,8 @@ import * as vscode from 'vscode'; import { beforeEach, afterEach } from 'mocha'; -import { DataService } from 'mongodb-data-service'; import chai from 'chai'; import sinon from 'sinon'; +import type { DataService } from 'mongodb-data-service'; import ActiveDBCodeLensProvider from '../../../editors/activeConnectionCodeLensProvider'; import ConnectionController from '../../../connectionController'; @@ -63,19 +63,24 @@ suite('Active DB CodeLens Provider Test Suite', () => { const testCodeLensProvider = new ActiveDBCodeLensProvider( testConnectionController ); - const mockActiveDataService = { - find: (namespace, filter, options, callback): void => { - return callback(null, [{ field: 'Text message' }]); - }, - instance: () => - Promise.resolve({ - dataLake: {}, - build: {}, - genuineMongoDB: {}, - host: {}, - }), - } as DataService; + const findStub = sinon.stub(); + findStub.resolves([ + { + field: 'Text message', + }, + ]); + const instanceStub = sinon.stub(); + instanceStub.resolves({ + dataLake: {}, + build: {}, + genuineMongoDB: {}, + host: {}, + } as unknown as Awaited>); + const mockActiveDataService = { + find: findStub, + instance: instanceStub, + } as Pick as unknown as DataService; testConnectionController.setActiveDataService(mockActiveDataService); beforeEach(() => { diff --git a/src/test/suite/editors/collectionDocumentsProvider.test.ts b/src/test/suite/editors/collectionDocumentsProvider.test.ts index ed845c685..8df217d2f 100644 --- a/src/test/suite/editors/collectionDocumentsProvider.test.ts +++ b/src/test/suite/editors/collectionDocumentsProvider.test.ts @@ -1,7 +1,7 @@ import * as vscode from 'vscode'; import { afterEach } from 'mocha'; import assert from 'assert'; -import { DataService } from 'mongodb-data-service'; +import type { DataService } from 'mongodb-data-service'; import sinon from 'sinon'; import { DocumentSource } from '../../../documentSource'; @@ -44,28 +44,18 @@ suite('Collection Documents Provider Test Suite', () => { }); test('provideTextDocumentContent parses uri and return documents in the form of a string from a find call', async () => { - const mockActiveDataService = { - find: (namespace, filter, options, callback): void => { - assert( - namespace === 'my-favorite-fruit-is.pineapple', - `Expected find namespace to be 'my-favorite-fruit-is.pineapple' found ${namespace}` - ); - - assert( - options.limit === 10, - `Expected find limit to be 10, found ${options.limit}` - ); - - return callback(null, [{ field: 'Declaration of Independence' }]); - }, - } as DataService; + const findStub = sinon.stub(); + findStub.resolves([{ field: 'Declaration of Independence' }]); + const testDataService = { + find: findStub, + } as Pick as unknown as DataService; const mockConnectionController = new ConnectionController( new StatusView(mockExtensionContext), mockStorageController, testTelemetryService ); - mockConnectionController.setActiveDataService(mockActiveDataService); + mockConnectionController.setActiveDataService(testDataService); const testQueryStore = new CollectionDocumentsOperationsStore(); const testCodeLensProvider = new EditDocumentCodeLensProvider( @@ -87,6 +77,11 @@ suite('Collection Documents Provider Test Suite', () => { const documents = await testCollectionViewProvider.provideTextDocumentContent(uri); + assert.strictEqual( + findStub.firstCall.args[0], + 'my-favorite-fruit-is.pineapple' + ); + assert.strictEqual(findStub.firstCall.args[2]?.limit, 10); assert( documents.includes('Declaration of Independence'), `Expected provideTextDocumentContent to return documents string, found ${documents}` @@ -105,17 +100,18 @@ suite('Collection Documents Provider Test Suite', () => { }, ]; - const mockActiveDataService = { - find: (namespace, filter, options, callback): void => { - return callback(null, mockDocuments); - }, - } as DataService; + const findStub = sinon.stub(); + findStub.resolves(mockDocuments); + const testDataService = { + find: findStub, + } as Pick as unknown as DataService; + const mockConnectionController = new ConnectionController( new StatusView(mockExtensionContext), mockStorageController, testTelemetryService ); - mockConnectionController.setActiveDataService(mockActiveDataService); + mockConnectionController.setActiveDataService(testDataService); const testQueryStore = new CollectionDocumentsOperationsStore(); const testCodeLensProvider = new EditDocumentCodeLensProvider( @@ -145,17 +141,17 @@ suite('Collection Documents Provider Test Suite', () => { }); test('provideTextDocumentContent sets hasMoreDocumentsToShow to false when there arent more documents', async () => { - const mockActiveDataService = { - find: (namespace, filter, options, callback): void => { - return callback(null, [{ field: 'Apollo' }, { field: 'Gemini ' }]); - }, - } as DataService; + const findStub = sinon.stub(); + findStub.resolves([{ field: 'Apollo' }, { field: 'Gemini ' }]); + const testDataService = { + find: findStub, + } as Pick as unknown as DataService; const mockConnectionController = new ConnectionController( new StatusView(mockExtensionContext), mockStorageController, testTelemetryService ); - mockConnectionController.setActiveDataService(mockActiveDataService); + mockConnectionController.setActiveDataService(testDataService); const testQueryStore = new CollectionDocumentsOperationsStore(); const testCodeLensProvider = new EditDocumentCodeLensProvider( @@ -193,7 +189,10 @@ suite('Collection Documents Provider Test Suite', () => { }); test('provideTextDocumentContent shows a status bar item while it is running then hide it', async () => { - const mockActiveDataService = { find: {} } as DataService; + const mockActiveDataService = { find: () => Promise.resolve([]) } as Pick< + DataService, + 'find' + > as unknown as DataService; const mockConnectionController = new ConnectionController( new StatusView(mockExtensionContext), mockStorageController, @@ -227,17 +226,12 @@ suite('Collection Documents Provider Test Suite', () => { const mockHideMessage = sinon.fake(); sinon.replace(testStatusView, 'hideMessage', mockHideMessage); - mockActiveDataService.find = ( - namespace, - filter, - options, - callback - ): void => { + mockActiveDataService.find = () => { assert(mockShowMessage.called); assert(!mockHideMessage.called); assert(mockShowMessage.firstCall.args[0] === 'Fetching documents...'); - return callback(null, [{ field: 'aaaaaaaaaaaaaaaaa' }]); + return Promise.resolve([{ field: 'aaaaaaaaaaaaaaaaa' }]); }; await testCollectionViewProvider.provideTextDocumentContent(uri); @@ -269,13 +263,8 @@ suite('Collection Documents Provider Test Suite', () => { { _id: '5ea8745ee4811fafe8b65ecb', koko: 'nothing5' }, ]; const mockGetActiveDataService = sinon.fake.returns({ - find: ( - namespace: string, - filter: object, - options: object, - callback: (error: Error | null, result: object) => void - ) => { - return callback(null, documents); + find: () => { + return Promise.resolve(documents); }, }); sinon.replace( @@ -476,13 +465,8 @@ suite('Collection Documents Provider Test Suite', () => { { _id: '5ea8745ee4811fafe8b65ecb', location: 'alexanderplatz' }, ]; const mockGetActiveDataService = sinon.fake.returns({ - find: ( - namespace: string, - filter: object, - options: object, - callback: (error: Error | null, result: object) => void - ) => { - return callback(null, documents); + find: () => { + return Promise.resolve(documents); }, }); sinon.replace( diff --git a/src/test/suite/editors/mongoDBDocumentService.test.ts b/src/test/suite/editors/mongoDBDocumentService.test.ts index b7823a1a2..4d61a4df8 100644 --- a/src/test/suite/editors/mongoDBDocumentService.test.ts +++ b/src/test/suite/editors/mongoDBDocumentService.test.ts @@ -103,13 +103,8 @@ suite('MongoDB Document Service Test Suite', () => { const source = DocumentSource.DOCUMENT_SOURCE_PLAYGROUND; const mockGetActiveDataService = sinon.fake.returns({ - find: ( - namespace: string, - filter: object, - options: object, - callback: (error: Error | null, result: object) => void - ) => { - return callback(null, [{ _id: '123' }]); + find: () => { + return Promise.resolve([{ _id: '123' }]); }, }); sinon.replace( diff --git a/src/test/suite/editors/playgroundResultProvider.test.ts b/src/test/suite/editors/playgroundResultProvider.test.ts index 2ddc2615f..5004fa548 100644 --- a/src/test/suite/editors/playgroundResultProvider.test.ts +++ b/src/test/suite/editors/playgroundResultProvider.test.ts @@ -2,6 +2,8 @@ import * as vscode from 'vscode'; import { afterEach } from 'mocha'; import chai from 'chai'; import sinon from 'sinon'; +import type { DataService } from 'mongodb-data-service'; +import type { Document } from 'mongodb'; import ConnectionController from '../../../connectionController'; import CollectionDocumentsOperationsStore from '../../../editors/collectionDocumentsOperationsStore'; @@ -33,7 +35,7 @@ suite('Playground Result Provider Test Suite', () => { const testEditDocumentCodeLensProvider = new EditDocumentCodeLensProvider( testConnectionController ); - const sandbox: any = sinon.createSandbox(); + const sandbox = sinon.createSandbox(); afterEach(() => { sandbox.restore(); @@ -233,7 +235,7 @@ suite('Playground Result Provider Test Suite', () => { language: 'json', }; - const mockRefresh: any = sinon.fake(); + const mockRefresh = sinon.fake(); sinon.replace( testPlaygroundResultViewProvider._editDocumentCodeLensProvider, 'updateCodeLensesForPlayground', @@ -244,10 +246,10 @@ suite('Playground Result Provider Test Suite', () => { const result = testPlaygroundResultViewProvider.provideTextDocumentContent(); - mockRefresh.firstArg; expect(result).to.be.equal(JSON.stringify(content, null, 2)); - expect(mockRefresh.firstArg).to.be.deep.equal(playgroundResult); + expect(mockRefresh.calledOnce).to.equal(true); + expect(mockRefresh.firstCall.firstArg).to.be.deep.equal(playgroundResult); }); test('provideTextDocumentContent returns Document formatted to string if content is string', () => { @@ -266,7 +268,7 @@ suite('Playground Result Provider Test Suite', () => { language: 'json', }; - const mockRefresh: any = sinon.fake(); + const mockRefresh = sinon.fake(); sinon.replace( testPlaygroundResultViewProvider._editDocumentCodeLensProvider, 'updateCodeLensesForPlayground', @@ -277,10 +279,10 @@ suite('Playground Result Provider Test Suite', () => { const result = testPlaygroundResultViewProvider.provideTextDocumentContent(); - mockRefresh.firstArg; expect(result).to.be.equal(JSON.stringify(content, null, 2)); - expect(mockRefresh.firstArg).to.be.deep.equal(playgroundResult); + expect(mockRefresh.calledOnce).to.equal(true); + expect(mockRefresh.firstCall.firstArg).to.be.deep.equal(playgroundResult); }); test('provideTextDocumentContent sets different code lenses for the playground and the collection', async () => { @@ -312,7 +314,7 @@ suite('Playground Result Provider Test Suite', () => { }; const connectionId = '1c8c2b06-fbfb-40b7-bd8a-bd1f8333a487'; - const mockActiveConnectionId: any = sinon.fake.returns(connectionId); + const mockActiveConnectionId = sinon.fake.returns(connectionId); sinon.replace( testConnectionController, 'getActiveConnectionId', @@ -323,9 +325,14 @@ suite('Playground Result Provider Test Suite', () => { 'PLAYGROUND_RESULT_SCHEME:/Playground Result' ); const activeTextEditorDocument = { uri: playgroundResultUri }; - sandbox.replaceGetter(vscode.window, 'activeTextEditor', () => ({ - document: activeTextEditorDocument, - })); + sandbox.replaceGetter( + vscode.window, + 'activeTextEditor', + () => + ({ + document: activeTextEditorDocument, + } as unknown as typeof vscode.window.activeTextEditor) + ); testPlaygroundResultViewProvider.setPlaygroundResult(playgroundResult); testPlaygroundResultViewProvider.provideTextDocumentContent(); @@ -377,33 +384,28 @@ suite('Playground Result Provider Test Suite', () => { testCollectionViewProvider._operationsStore = new CollectionDocumentsOperationsStore(); - const documents: any[] = [ + const documents: Document[] = [ { _id: '5ea8745ee4811fafe8b65ecb', koko: 'nothing5' }, ]; - const mockGetActiveDataService: any = sinon.fake.returns({ - find: ( - namespace: string, - filter: object, - options: object, - callback: (error: Error | null, result: object) => void - ) => { - return callback(null, documents); - }, - }); - sinon.replace( - testCollectionViewProvider._connectionController, - 'getActiveDataService', - mockGetActiveDataService - ); + sinon + .stub( + testCollectionViewProvider._connectionController, + 'getActiveDataService' + ) + .returns({ + find: () => { + return Promise.resolve(documents); + }, + } as unknown as DataService); - const mockShowMessage: any = sinon.fake(); + const mockShowMessage = sinon.fake(); sinon.replace( testCollectionViewProvider._statusView, 'showMessage', mockShowMessage ); - const mockHideMessage: any = sinon.fake(); + const mockHideMessage = sinon.fake(); sinon.replace( testCollectionViewProvider._statusView, 'hideMessage', diff --git a/src/test/suite/explorer/collectionTreeItem.test.ts b/src/test/suite/explorer/collectionTreeItem.test.ts index cbdf7573a..1fc1f9702 100644 --- a/src/test/suite/explorer/collectionTreeItem.test.ts +++ b/src/test/suite/explorer/collectionTreeItem.test.ts @@ -78,7 +78,7 @@ suite('CollectionTreeItem Test Suite', () => { type: CollectionTypes.collection, }, 'mock_db_name', - { estimatedCount: (ns, options, cb): void => cb(null, 5000) }, + { estimatedCount: () => Promise.resolve(5000) }, false, false, null diff --git a/src/test/suite/explorer/connectionTreeItem.test.ts b/src/test/suite/explorer/connectionTreeItem.test.ts index 730a8a8df..0ffc3919a 100644 --- a/src/test/suite/explorer/connectionTreeItem.test.ts +++ b/src/test/suite/explorer/connectionTreeItem.test.ts @@ -2,6 +2,7 @@ import * as vscode from 'vscode'; import assert from 'assert'; import { beforeEach, afterEach } from 'mocha'; import sinon from 'sinon'; +import type { DataService } from 'mongodb-data-service'; import ConnectionTreeItem, { ConnectionItemContextValues, @@ -58,7 +59,7 @@ suite('ConnectionTreeItem Test Suite', () => { sinon.replace( mdbTestExtension.testExtensionController._connectionController, 'getActiveDataService', - () => new DataServiceStub() as any + () => new DataServiceStub() as unknown as DataService ); const databaseItems = await testConnectionTreeItem.getChildren(); @@ -78,7 +79,7 @@ suite('ConnectionTreeItem Test Suite', () => { new Promise(() => { throw Error('peaches'); }), - } as any) + } as unknown as DataService) ); try { @@ -115,7 +116,7 @@ suite('ConnectionTreeItem Test Suite', () => { sinon.replace( mdbTestExtension.testExtensionController._connectionController, 'getActiveDataService', - () => new DataServiceStub() as any + () => new DataServiceStub() as unknown as DataService ); const dbNames = await testConnectionTreeItem.listDatabases(); diff --git a/src/test/suite/explorer/documentListTreeItem.test.ts b/src/test/suite/explorer/documentListTreeItem.test.ts index a1045948d..0454fb6c0 100644 --- a/src/test/suite/explorer/documentListTreeItem.test.ts +++ b/src/test/suite/explorer/documentListTreeItem.test.ts @@ -17,7 +17,7 @@ suite('DocumentListTreeItem Test Suite', () => { let dataServiceMock: DataService; before(() => { - dataServiceMock = new DataServiceStub() as any as DataService; + dataServiceMock = new DataServiceStub() as unknown as DataService; }); test('its context value should be in the package json', () => { @@ -52,7 +52,7 @@ suite('DocumentListTreeItem Test Suite', () => { 'collectionName', 'databaseName', CollectionTypes.collection, - 'not_real_dataservice' as any as DataService, + {} as DataService, false, MAX_DOCUMENTS_VISIBLE, null, diff --git a/src/test/suite/explorer/documentTreeItem.test.ts b/src/test/suite/explorer/documentTreeItem.test.ts index 561adefca..640828450 100644 --- a/src/test/suite/explorer/documentTreeItem.test.ts +++ b/src/test/suite/explorer/documentTreeItem.test.ts @@ -16,7 +16,7 @@ suite('DocumentTreeItem Test Suite', () => { mockDocument, 'namespace', 1, - {} as any, + {} as DataService, () => Promise.resolve() ); diff --git a/src/test/suite/explorer/schemaTreeItem.test.ts b/src/test/suite/explorer/schemaTreeItem.test.ts index cf7e3df6f..3a2e08d46 100644 --- a/src/test/suite/explorer/schemaTreeItem.test.ts +++ b/src/test/suite/explorer/schemaTreeItem.test.ts @@ -3,6 +3,8 @@ import * as sinon from 'sinon'; import { after, afterEach, before } from 'mocha'; import assert from 'assert'; import { inspect } from 'util'; +import type { DataService } from 'mongodb-data-service'; +import type { Document } from 'mongodb'; import { ext } from '../../../extensionConstants'; import { fieldIsExpandable } from '../../../explorer/fieldTreeItem'; @@ -32,7 +34,7 @@ suite('SchemaTreeItem Test Suite', function () { const testSchemaTreeItem = new SchemaTreeItem( 'cheesePizza', TEST_DB_NAME, - {}, + {} as DataService, false, false, false, @@ -56,7 +58,7 @@ suite('SchemaTreeItem Test Suite', function () { const testSchemaTreeItem = new SchemaTreeItem( 'favoritePiesIWantToEatRightNow', TEST_DB_NAME, - {}, + {} as DataService, false, false, false, @@ -86,14 +88,16 @@ suite('SchemaTreeItem Test Suite', function () { const expectedMessage = 'No documents were found when attempting to parse schema.'; + const findStub = sinon.stub(); + findStub.resolves([]); + const testDataService = { + find: findStub, + } as Pick as unknown as DataService; + const testSchemaTreeItem = new SchemaTreeItem( 'peanutButter', TEST_DB_NAME, - { - find: (ns, filter, options, callback): void => { - callback(null, []); - }, - }, + testDataService, true, false, false, @@ -125,14 +129,15 @@ suite('SchemaTreeItem Test Suite', function () { for (let i = 0; i < 20; i++) { mockDocWithTwentyFields[`${i}`] = 'some value'; } + const findStub = sinon.stub(); + findStub.resolves([mockDocWithTwentyFields]); + const testDataService = { + find: findStub, + } as Pick as unknown as DataService; const testSchemaTreeItem = new SchemaTreeItem( 'favoritePiesIWantToEatRightNow', TEST_DB_NAME, - { - find: (ns, filter, options, callback): void => { - callback(null, [mockDocWithTwentyFields]); - }, - }, + testDataService, true, false, false, @@ -161,14 +166,15 @@ suite('SchemaTreeItem Test Suite', function () { for (let i = 0; i < 30; i++) { mockDocWithThirtyFields[`${i}`] = 'some value'; } + const findStub = sinon.stub(); + findStub.resolves([mockDocWithThirtyFields]); + const testDataService = { + find: findStub, + } as Pick as unknown as DataService; const testSchemaTreeItem = new SchemaTreeItem( 'favoritePiesIWantToEatRightNow', TEST_DB_NAME, - { - find: (ns, filter, options, callback): void => { - callback(null, [mockDocWithThirtyFields]); - }, - }, + testDataService, true, false, false, @@ -188,14 +194,16 @@ suite('SchemaTreeItem Test Suite', function () { }); test('When schema parsing fails it displays an error message', async () => { + const findStub = sinon.stub(); + findStub.resolves('invalid schema to parse' as unknown as Document[]); + const testDataService = { + find: findStub, + } as Pick as unknown as DataService; + const testSchemaTreeItem = new SchemaTreeItem( 'favoritePiesIWantToEatRightNow', TEST_DB_NAME, - { - find: (ns, filter, options, callback): void => { - callback(null, 'invalid schema to parse'); - }, - }, + testDataService, true, false, false, @@ -356,7 +364,7 @@ suite('SchemaTreeItem Test Suite', function () { const testSchemaTreeItem = new SchemaTreeItem( 'favoritePiesIWantToEatRightNow', TEST_DB_NAME, - {}, + {} as DataService, false, false, false, diff --git a/src/test/suite/language/languageServerController.test.ts b/src/test/suite/language/languageServerController.test.ts index 1455b8958..5a9e2cdef 100644 --- a/src/test/suite/language/languageServerController.test.ts +++ b/src/test/suite/language/languageServerController.test.ts @@ -3,6 +3,7 @@ import chai from 'chai'; import fs from 'fs'; import path from 'path'; import sinon from 'sinon'; +import type { DataService } from 'mongodb-data-service'; import ActiveDBCodeLensProvider from '../../../editors/activeConnectionCodeLensProvider'; import CodeActionProvider from '../../../editors/codeActionProvider'; @@ -88,7 +89,7 @@ suite('Language Server Controller Test Suite', () => { url: TEST_DATABASE_URI, options: {}, }), - } as any) + } as unknown as DataService) ); sinon.replace(testConnectionController, 'isCurrentlyConnected', () => true); diff --git a/src/test/suite/mdbExtensionController.test.ts b/src/test/suite/mdbExtensionController.test.ts index d48191422..76bf15622 100644 --- a/src/test/suite/mdbExtensionController.test.ts +++ b/src/test/suite/mdbExtensionController.test.ts @@ -229,7 +229,7 @@ suite('MDBExtensionController Test Suite', function () { const mockCopyToClipboard = sinon.fake(); sinon.replaceGetter(vscode.env, 'clipboard', () => ({ writeText: mockCopyToClipboard, - readText: sinon.fake() as any, + readText: sinon.fake(), })); const mockStubUri = sinon.fake.returns('weStubThisUri'); @@ -259,7 +259,7 @@ suite('MDBExtensionController Test Suite', function () { const mockCopyToClipboard = sinon.fake(); sinon.replaceGetter(vscode.env, 'clipboard', () => ({ writeText: mockCopyToClipboard, - readText: sinon.fake() as any, + readText: sinon.fake(), })); await vscode.commands.executeCommand('mdb.copyDatabaseName', mockTreeItem); @@ -286,7 +286,7 @@ suite('MDBExtensionController Test Suite', function () { const mockCopyToClipboard = sinon.fake(); sinon.replaceGetter(vscode.env, 'clipboard', () => ({ writeText: mockCopyToClipboard, - readText: sinon.fake() as any, + readText: sinon.fake(), })); await vscode.commands.executeCommand( @@ -318,7 +318,7 @@ suite('MDBExtensionController Test Suite', function () { const mockCopyToClipboard = sinon.fake(); sinon.replaceGetter(vscode.env, 'clipboard', () => ({ writeText: mockCopyToClipboard, - readText: sinon.fake() as any, + readText: sinon.fake(), })); const commandResult = await vscode.commands.executeCommand( @@ -412,7 +412,7 @@ suite('MDBExtensionController Test Suite', function () { type: CollectionTypes.collection, }, 'airZebra', - { estimatedCount: (ns, opts, cb): void => cb(null, count) }, + { estimatedCount: () => Promise.resolve(count) }, false, false, null @@ -459,7 +459,7 @@ suite('MDBExtensionController Test Suite', function () { const mockTreeItem = new SchemaTreeItem( 'zebraWearwolf', 'giraffeVampire', - {}, + {} as DataService, false, false, false, @@ -1116,13 +1116,8 @@ suite('MDBExtensionController Test Suite', function () { ); const mockGetActiveDataService = sinon.fake.returns({ - find: ( - namespace: string, - filter: object, - options: object, - callback: (error: Error | undefined, documents: object[]) => void - ) => { - callback(undefined, [mockDocument]); + find: () => { + return Promise.resolve([mockDocument]); }, findOneAndReplace: ( namespace: string, @@ -1146,7 +1141,7 @@ suite('MDBExtensionController Test Suite', function () { mockDocument, 'waffle.house', 0, - {} as any as DataService, + {} as DataService, () => Promise.resolve() ); @@ -1202,7 +1197,7 @@ suite('MDBExtensionController Test Suite', function () { mockDocument, 'waffle.house', 0, - {} as any as DataService, + {} as DataService, () => Promise.resolve() ); @@ -1288,7 +1283,7 @@ suite('MDBExtensionController Test Suite', function () { getText: () => JSON.stringify(mockDocument), save: () => {}, }, - } as any) + } as unknown as typeof vscode.window.activeTextEditor) ); const mockReplaceDocument = sinon.fake.resolves(null); @@ -1345,7 +1340,7 @@ suite('MDBExtensionController Test Suite', function () { getText: () => JSON.stringify(mockDocument), save: () => {}, }, - } as any) + } as unknown as typeof vscode.window.activeTextEditor) ); const mockReplaceDocument = sinon.fake.resolves(null); @@ -1557,17 +1552,12 @@ suite('MDBExtensionController Test Suite', function () { let namespaceUsed = ''; - const mockDataService: DataService = { - find: ( - namespace: string, - filter: object, - options: object, - callback: (error: Error | undefined, documents: object[]) => void - ) => { + const mockDataService = { + find: (namespace: string) => { namespaceUsed = namespace; - callback(undefined, [mockDocument]); + return Promise.resolve([mockDocument]); }, - } as any; + } as Pick as unknown as DataService; const documentTreeItem = new DocumentTreeItem( mockDocument, @@ -1580,7 +1570,7 @@ suite('MDBExtensionController Test Suite', function () { const mockCopyToClipboard = sinon.fake(); sinon.replaceGetter(vscode.env, 'clipboard', () => ({ writeText: mockCopyToClipboard, - readText: sinon.fake() as any, + readText: sinon.fake(), })); await vscode.commands.executeCommand( @@ -1609,17 +1599,12 @@ suite('MDBExtensionController Test Suite', function () { let namespaceUsed = ''; - const mockDataService: DataService = { - find: ( - namespace: string, - filter: object, - options: object, - callback: (error: Error | undefined, documents: object[]) => void - ) => { + const mockDataService = { + find: (namespace: string) => { namespaceUsed = namespace; - callback(undefined, [mockDocument]); + return Promise.resolve([mockDocument]); }, - } as any; + } as Pick as unknown as DataService; const documentTreeItem = new DocumentTreeItem( mockDocument, @@ -1705,17 +1690,22 @@ suite('MDBExtensionController Test Suite', function () { let calledDelete = false; - const mockDataService: DataService = { + const mockDataService = { deleteOne: ( namespace: string, _id: any, options: object, - callback: (error: Error | undefined, documents: object[]) => void + callback: ( + error: Error | undefined, + result: { deletedCount: number } + ) => void ) => { calledDelete = true; - callback(undefined, [mockDocument]); + callback(undefined, { + deletedCount: 1, + }); }, - } as any; + } as Pick as unknown as DataService; const documentTreeItem = new DocumentTreeItem( mockDocument, @@ -1747,7 +1737,7 @@ suite('MDBExtensionController Test Suite', function () { let namespaceUsed = ''; let _idUsed; - const mockDataService: DataService = { + const mockDataService = { deleteOne: ( namespace: string, query: any, @@ -1763,7 +1753,7 @@ suite('MDBExtensionController Test Suite', function () { deletedCount: 1, }); }, - } as any; + } as Pick as unknown as DataService; const documentTreeItem = new DocumentTreeItem( mockDocument, diff --git a/src/test/suite/stubs.ts b/src/test/suite/stubs.ts index 0caa68137..b04aa784c 100644 --- a/src/test/suite/stubs.ts +++ b/src/test/suite/stubs.ts @@ -151,12 +151,12 @@ class DataServiceStub { return Promise.resolve(mockDatabases[databaseName].collections); } - find(namespace: string, filter: any, options: any, callback: any): void { - callback(null, mockDocuments.slice(0, options.limit)); + find(namespace: string, filter: any, options: any) { + return Promise.resolve(mockDocuments.slice(0, options.limit)); } - estimatedCount(namespace: string, options: any, callback: any): void { - callback(null, mockDocuments.length); + estimatedCount() { + return Promise.resolve(mockDocuments.length); } } diff --git a/src/test/suite/telemetry/connectionTelemetry.test.ts b/src/test/suite/telemetry/connectionTelemetry.test.ts index af3bd5a63..36cf9131e 100644 --- a/src/test/suite/telemetry/connectionTelemetry.test.ts +++ b/src/test/suite/telemetry/connectionTelemetry.test.ts @@ -1,5 +1,6 @@ -import { beforeEach, afterEach } from 'mocha'; +import { before, after, beforeEach, afterEach } from 'mocha'; import { connect } from 'mongodb-data-service'; +import type { DataService } from 'mongodb-data-service'; import { expect } from 'chai'; import sinon from 'sinon'; @@ -12,20 +13,36 @@ suite('ConnectionTelemetry Controller Test Suite', function () { this.timeout(8000); suite('with mock data service', () => { - const mockDataService: any = { - getConnectionString: () => ({ + let mockDataService: DataService; + + before(() => { + const getConnectionStringStub = sinon.stub(); + getConnectionStringStub.returns({ hosts: ['localhost:27018'], searchParams: { get: () => null }, username: 'authMechanism', - }), - instance: () => - Promise.resolve({ - dataLake: {}, - build: {}, - genuineMongoDB: {}, - host: {}, - }), - }; + } as unknown as ReturnType); + + const instanceStub = sinon.stub(); + instanceStub.resolves({ + dataLake: {}, + build: {}, + genuineMongoDB: {}, + host: {}, + } as unknown as Awaited>); + + mockDataService = { + getConnectionString: getConnectionStringStub, + instance: instanceStub, + } as Pick< + DataService, + 'getConnectionString' | 'instance' + > as unknown as DataService; + }); + + after(() => { + sinon.restore(); + }); test('it returns is_used_connect_screen true when the connection type is form', async () => { const instanceTelemetry = await getConnectionTelemetryProperties( diff --git a/src/test/suite/telemetry/telemetryService.test.ts b/src/test/suite/telemetry/telemetryService.test.ts index a8ba99cf9..f3d1ea262 100644 --- a/src/test/suite/telemetry/telemetryService.test.ts +++ b/src/test/suite/telemetry/telemetryService.test.ts @@ -1,13 +1,14 @@ import * as vscode from 'vscode'; -import * as path from 'path'; +import path from 'path'; import { afterEach, beforeEach } from 'mocha'; import chai from 'chai'; import { connect } from 'mongodb-data-service'; +import type { DataService } from 'mongodb-data-service'; import { config } from 'dotenv'; import { resolve } from 'path'; import sinon from 'sinon'; import sinonChai from 'sinon-chai'; -import Sinon = require('sinon'); +import SegmentAnalytics from 'analytics-node'; import { ConnectionTypes } from '../../../connectionController'; import { DocumentSource } from '../../../documentSource'; @@ -31,21 +32,13 @@ config({ path: resolve(__dirname, '../../../../.env') }); suite('Telemetry Controller Test Suite', () => { const testTelemetryService = mdbTestExtension.testExtensionController._telemetryService; - const mockDataService: any = sinon.fake.returns({ - instance: () => - Promise.resolve({ - dataLake: {}, - build: {}, - genuineMongoDB: {}, - host: {}, - }), - }); + let mockDataService: DataService; - let mockTrackNewConnection: Sinon.SinonSpy; - let mockTrackCommandRun: Sinon.SinonSpy; - let mockTrackPlaygroundCodeExecuted: Sinon.SinonSpy; - let mockTrackPlaygroundLoadedMethod: Sinon.SinonSpy; - let mockTrack: Sinon.SinonSpy; + let mockTrackNewConnection: sinon.SinonSpy; + let mockTrackCommandRun: sinon.SinonSpy; + let mockTrackPlaygroundCodeExecuted: sinon.SinonSpy; + let mockTrackPlaygroundLoadedMethod: sinon.SinonSpy; + let mockTrack: sinon.SinonSpy; beforeEach(() => { mockTrackNewConnection = sinon.fake.resolves(true); @@ -54,6 +47,17 @@ suite('Telemetry Controller Test Suite', () => { mockTrackPlaygroundLoadedMethod = sinon.fake(); mockTrack = sinon.fake(); + const instanceStub = sinon.stub(); + instanceStub.resolves({ + dataLake: {}, + build: {}, + genuineMongoDB: {}, + host: {}, + } as unknown as Awaited>); + mockDataService = { + instance: instanceStub, + } as Pick as unknown as DataService; + sinon.replace( mdbTestExtension.testExtensionController._telemetryService, 'trackCommandRun', @@ -262,7 +266,7 @@ suite('Telemetry Controller Test Suite', () => { const fakeSegmentTrack = sinon.fake.yields(null); sinon.replace(testTelemetryService, '_segmentAnalytics', { track: fakeSegmentTrack, - } as any); + } as unknown as SegmentAnalytics); testTelemetryService.track(TelemetryEventTypes.EXTENSION_LINK_CLICKED); @@ -284,7 +288,7 @@ suite('Telemetry Controller Test Suite', () => { const fakeSegmentTrack = sinon.fake.yields(null); sinon.replace(testTelemetryService, '_segmentAnalytics', { track: fakeSegmentTrack, - } as any); + } as unknown as SegmentAnalytics); testTelemetryService.track(TelemetryEventTypes.PLAYGROUND_LOADED, { source: DocumentSource.DOCUMENT_SOURCE_PLAYGROUND, diff --git a/src/test/suite/views/webview-app/jest-setup.js b/src/test/suite/views/webview-app/jest-setup.js index d52a38389..6da3ddfce 100644 --- a/src/test/suite/views/webview-app/jest-setup.js +++ b/src/test/suite/views/webview-app/jest-setup.js @@ -2,7 +2,7 @@ // that vscode embeds in webviews and our jest tests need. const Enzyme = require('enzyme'); -const Adapter = require('enzyme-adapter-react-16'); +const Adapter = require('@wojtekmaj/enzyme-adapter-react-17'); Enzyme.configure({ adapter: new Adapter() }); // eslint-disable-next-line no-undef diff --git a/webpack.config.js b/webpack.config.js index 71219e512..143722db8 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -43,6 +43,7 @@ const extensionConfig = { // own keytar dependency. Here we are telling it to use vscode's keytar. keytar: 'keytar', electron: 'electron', + '@electron/remote': '@electron/remote', snappy: 'snappy', 'snappy/package.json': 'snappy/package.json', 'bson-ext': 'bson-ext',